diff --git a/.gitignore b/.gitignore
index df5cb58aaf6117ee35c705bfcc0b54a6afed1440..d217a9f056ef2d187b035ab9da6ba7c82d4fdaf6 100755
--- a/.gitignore
+++ b/.gitignore
@@ -30,23 +30,25 @@
 /win32/*/Release/
 /win32/*/*.user
 win32/ipch
-framework/win32/Debug/
-framework/win32/Release/
-framework/win32/*/Debug/
-framework/win32/*/Release/
-framework/win32/*/*.user
-framework/win32/BuildLog.txt
-framework/win32/*/ipch
+framework/msvcpp/framework/Debug/
+framework/msvcpp/framework/Release/
+framework/msvcpp/*/*.user
+framework/msvcpp/*/Debug/
+framework/msvcpp/*/Release/
+framework/msvcpp/BuildLog.txt
+framework/msvcpp/*/ipch
+framework/runtime/
+framework/SampleConfig/to_install/
 
 # IntelliSense data
 /win32/*.ncb
 /win32/*.sdf
-framework/win32/framework/*.ncb
-framework/win32/framework/*sdf
+framework/msvcpp/framework/*.ncb
+framework/msvcpp/framework/*sdf
 
 # Visual Studio user options
 /win32/tsk-win.suo
-framework/win32/framework/*.suo
+framework/msvcpp/framework/*.suo
 *.sln.cache
 
 # Make crud
@@ -63,10 +65,9 @@ Makefile
 
 # Files generated by running configure
 *.in
-*.am
 stamp-h1
-tsk3/tsk_config.h
-tsk3/tsk_incs.h
+tsk/tsk_config.h
+tsk/tsk_incs.h
 tools/fstools/blkcalc
 aclocal.m4
 autom4te.cache
diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index 2a72d392d8c2487696a07c68fba9cc9a03b30e4c..0000000000000000000000000000000000000000
--- a/.gitmodules
+++ /dev/null
@@ -1,30 +0,0 @@
-[submodule "framework/TskModules/c_HashCalcModule"]
-	path = framework/TskModules/c_HashCalcModule
-	url = git://github.com/sleuthkit/c_HashCalcModule.git
-[submodule "framework/TskModules/c_ZIPExtractionModule"]
-	path = framework/TskModules/c_ZIPExtractionModule
-	url = git://github.com/sleuthkit/c_ZIPExtractionModule.git
-[submodule "framework/TskModules/c_EntropyModule"]
-	path = framework/TskModules/c_EntropyModule
-	url = git://github.com/sleuthkit/c_EntropyModule.git
-[submodule "framework/TskModules/c_SaveInterestingFilesModule"]
-	path = framework/TskModules/c_SaveInterestingFilesModule
-	url = git://github.com/sleuthkit/c_SaveInterestingFilesModule.git
-[submodule "framework/TskModules/c_RegRipperModule"]
-	path = framework/TskModules/c_RegRipperModule
-	url = git://github.com/sleuthkit/c_RegRipperModule.git
-[submodule "framework/TskModules/c_InterestingFilesModule"]
-	path = framework/TskModules/c_InterestingFilesModule
-	url = git://github.com/sleuthkit/c_InterestingFilesModule.git
-[submodule "framework/TskModules/c_TskHashLookupModule"]
-	path = framework/TskModules/c_TskHashLookupModule
-	url = git://github.com/sleuthkit/c_TskHashLookupModule.git
-[submodule "framework/TskModules/c_SummaryReportModule"]
-	path = framework/TskModules/c_SummaryReportModule
-	url = git://github.com/sleuthkit/c_SummaryReportModule.git
-[submodule "framework/TskModules/c_FileTypeSigModule"]
-	path = framework/TskModules/c_FileTypeSigModule
-	url = git://github.com/sleuthkit/c_FileTypeSigModule.git
-[submodule "framework/TskModules/c_LibExifModule"]
-	path = framework/TskModules/c_LibExifModule
-	url = git://github.com/sleuthkit/c_LibExifModule.git
diff --git a/Makefile.am b/Makefile.am
index b68243e375233c6b3fd79e61d7ab56da95a9c436..70e7c3fbd73d63d80f1f5b82767b62f61cd8e585 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -6,39 +6,39 @@ EXTRA_DIST = README_win32.txt README.txt INSTALL.txt ChangeLog.txt NEWS.txt \
     packages/sleuthkit.spec \
     win32/BUILDING.txt \
     win32/NOTES.txt \
-    win32/*/*.vcproj \
+    win32/*/*.vcxproj \
     win32/tsk-win.sln \
     win32/docs/* \
     bindings/java/README.txt \
     bindings/java/*.xml \
-    bindings/java/doxygen/* \
+    bindings/java/doxygen/Doxyfile \
+    bindings/java/doxygen/*.dox \
+    bindings/java/doxygen/*.html \
     bindings/java/nbproject/project.xml \
     bindings/java/src/org/sleuthkit/datamodel/*.java \
     bindings/java/src/org/sleuthkit/datamodel/*.html \
     bindings/java/src/*.html \
-    bindings/java/test \
-    bindings/java/teststandards \
     framework/*.txt \
-    framework/*.h \
-    framework/Extraction/*.cpp \
-    framework/Extraction/*.h \
-    framework/File/*.cpp \
-    framework/File/*.h \
-    framework/Pipeline/*.cpp \
-    framework/Pipeline/*.h \
+    framework/tsk/framework/*.h \
+    framework/tsk/framework/extraction/*.cpp \
+    framework/tsk/framework/extraction/*.h \
+    framework/tsk/framework/file/*.cpp \
+    framework/tsk/framework/file/*.h \
+    framework/tsk/framework/pipeline/*.cpp \
+    framework/tsk/framework/pipeline/*.h \
+    framework/tsk/framework/services/*.cpp \
+    framework/tsk/framework/services/*.h \
+    framework/modules/* \
+    framework/tsk/framework/utilities/*.cpp \
+    framework/tsk/framework/utilities/*.h \
     framework/SampleConfig/*.xml \
-    framework/Services/*.cpp \
-    framework/Services/*.h \
-    framework/TskModules/* \
-    framework/Utilities/*.cpp \
-    framework/Utilities/*.h \
     framework/docs/* \
     framework/man/* \
-    framework/tsk_analyzeimg/*.cpp \
-    framework/tsk_validatepipeline/*.cpp \
-    framework/win32/*/*.vcproj \
-    framework/win32/*/*.sln \
-    framework/win32/Makefile
+    framework/tools/tsk_analyzeimg/*.cpp \
+    framework/tools/tsk_validatepipeline/*.cpp \
+    framework/msvcpp/*/*.vcproj \
+    framework/msvcpp/*/*.sln \
+    framework/msvcpp/Makefile
 
 ACLOCAL_AMFLAGS = -I m4
 
@@ -49,23 +49,23 @@ endif
 if X_JNI
   JNI=bindings/java/jni
 endif
-SUBDIRS = tsk3 tools tests samples man $(UNIT_TESTS) $(JNI)
+SUBDIRS = tsk tools tests samples man $(UNIT_TESTS) $(JNI) 
 
-nobase_include_HEADERS = tsk3/libtsk.h tsk3/tsk_incs.h \
-    tsk3/base/tsk_base.h tsk3/base/tsk_os.h \
-    tsk3/img/tsk_img.h tsk3/vs/tsk_vs.h \
-    tsk3/vs/tsk_bsd.h tsk3/vs/tsk_dos.h tsk3/vs/tsk_gpt.h \
-    tsk3/vs/tsk_mac.h tsk3/vs/tsk_sun.h \
-    tsk3/fs/tsk_fs.h tsk3/fs/tsk_ffs.h tsk3/fs/tsk_ext2fs.h tsk3/fs/tsk_fatfs.h \
-    tsk3/fs/tsk_ntfs.h tsk3/fs/tsk_iso9660.h tsk3/fs/tsk_hfs.h \
-    tsk3/hashdb/tsk_hashdb.h tsk3/auto/tsk_auto.h
+nobase_include_HEADERS = tsk/libtsk.h tsk/tsk_incs.h \
+    tsk/base/tsk_base.h tsk/base/tsk_os.h \
+    tsk/img/tsk_img.h tsk/vs/tsk_vs.h \
+    tsk/vs/tsk_bsd.h tsk/vs/tsk_dos.h tsk/vs/tsk_gpt.h \
+    tsk/vs/tsk_mac.h tsk/vs/tsk_sun.h \
+    tsk/fs/tsk_fs.h tsk/fs/tsk_ffs.h tsk/fs/tsk_ext2fs.h tsk/fs/tsk_fatfs.h \
+    tsk/fs/tsk_ntfs.h tsk/fs/tsk_iso9660.h tsk/fs/tsk_hfs.h tsk/fs/tsk_yaffs.h \
+    tsk/hashdb/tsk_hashdb.h tsk/auto/tsk_auto.h
 
-nobase_dist_data_DATA = tsk3/sorter/default.sort tsk3/sorter/freebsd.sort \
-    tsk3/sorter/images.sort tsk3/sorter/linux.sort tsk3/sorter/openbsd.sort \
-    tsk3/sorter/solaris.sort tsk3/sorter/windows.sort 
+nobase_dist_data_DATA = tsk/sorter/default.sort tsk/sorter/freebsd.sort \
+    tsk/sorter/images.sort tsk/sorter/linux.sort tsk/sorter/openbsd.sort \
+    tsk/sorter/solaris.sort tsk/sorter/windows.sort 
 
 api-docs:
-	doxygen tsk3/docs/Doxyfile
+	doxygen tsk/docs/Doxyfile
 	doxygen framework/docs/Doxyfile
 	doxygen bindings/java/doxygen/Doxyfile
 
diff --git a/NEWS.txt b/NEWS.txt
index 9ad906dc71f484f898da45412420ba0a3e91af0b..73b9e1da45a88ad056f2158ec705ad3d543b157b 100644
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -1,6 +1,17 @@
 Numbers refer to SourceForge.net tracker IDs:
     http://sourceforge.net/tracker/?group_id=55685
 
+---------------- VERSION 4.1.0 --------------
+Core:
+- Added YAFFS2 support (patch from viaForensics).
+- Added Ext4 support (patch from kfairbanks)
+ 
+Framework:
+- Added Linux and MAC support.
+- Added L01 support.
+- Added APIs to find files by name, path and extension.
+- Removed deprecated TskFile::getAttributes methods.
+
 ---------------- VERSION Current --------------
 	
 	
diff --git a/bindings/java/jni/Makefile.am b/bindings/java/jni/Makefile.am
index 581cd6235238493b4bc2eb79a2a0997bb9f0809f..55071b916fab5aa5ce70fa462e612e77becb4583 100644
--- a/bindings/java/jni/Makefile.am
+++ b/bindings/java/jni/Makefile.am
@@ -3,7 +3,7 @@ EXTRA_DIST = .indent.pro
 
 lib_LTLIBRARIES = libtsk_jni.la
 libtsk_jni_la_SOURCES = dataModel_SleuthkitJNI.cpp dataModel_SleuthkitJNI.h 
-libtsk_jni_la_LIBADD = ../../../tsk3/libtsk3.la
+libtsk_jni_la_LIBADD = ../../../tsk/libtsk.la
 
 indent:
 	indent *.cpp *.h
diff --git a/bindings/java/jni/dataModel_SleuthkitJNI.cpp b/bindings/java/jni/dataModel_SleuthkitJNI.cpp
index cfb6278d00989bd6b8ad29be5a4cc3ca9fa832ae..c998e9c6aa9a6d56f306e1b7d33f04203b1b3d62 100644
--- a/bindings/java/jni/dataModel_SleuthkitJNI.cpp
+++ b/bindings/java/jni/dataModel_SleuthkitJNI.cpp
@@ -8,8 +8,8 @@
  ** This software is distributed under the Common Public License 1.0
  **
  */
-#include "tsk3/tsk_tools_i.h"
-#include "tsk3/auto/tsk_case_db.h"
+#include "tsk/tsk_tools_i.h"
+#include "tsk/auto/tsk_case_db.h"
 #include "jni.h"
 #include "dataModel_SleuthkitJNI.h"
 #include <locale.h>
diff --git a/bootstrap b/bootstrap
index 3e07f660deed811e3b040c5f0985e7d5745a0f3f..d7b8cb01c0828e6cd7dc7029688cb9e4aa039474 100755
--- a/bootstrap
+++ b/bootstrap
@@ -1,5 +1,5 @@
 #!/bin/sh
 aclocal \
-    && (libtoolize -c || glibtoolize -c) \
+    && (libtoolize -c --force || glibtoolize -c --force) \
     && automake --foreign --add-missing --copy \
     && autoconf
diff --git a/configure.ac b/configure.ac
index 4a1bd802ada2a6999c94e7c73d209742d07ffa58..820e89f0b141c886d4d9278efdeb0f328bd662f8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -13,8 +13,8 @@ m4_include([m4/ac_prog_javac_works.m4])
 m4_include([m4/ac_prog_javac.m4])
 
 
-AC_CONFIG_SRCDIR([tsk3/base/tsk_base.h])
-AC_CONFIG_HEADERS([tsk3/tsk_config.h])
+AC_CONFIG_SRCDIR([tsk/base/tsk_base.h])
+AC_CONFIG_HEADERS([tsk/tsk_config.h])
 AC_CONFIG_AUX_DIR(config)
 AM_INIT_AUTOMAKE([foreign])
 AM_PATH_CPPUNIT(1.12.1)
@@ -202,32 +202,32 @@ if test "x$JAVAC" != x; then
 fi
 AM_CONDITIONAL([X_JNI],[test "x$JNI_CPPFLAGS" != x])
 
-AC_CONFIG_COMMANDS([tsk3/tsk_incs.h],
+AC_CONFIG_COMMANDS([tsk/tsk_incs.h],
         [
-          echo "#ifndef _TSK_INCS_H" > tsk3/tsk_incs.h
-          echo "#define _TSK_INCS_H" >> tsk3/tsk_incs.h
-          echo "// automatically by ./configure" >> tsk3/tsk_incs.h
-          echo "// Contains the config.h data needed by programs that use libtsk" >> tsk3/tsk_incs.h
-          echo "" >> tsk3/tsk_incs.h
+          echo "#ifndef _TSK_INCS_H" > tsk/tsk_incs.h
+          echo "#define _TSK_INCS_H" >> tsk/tsk_incs.h
+          echo "// automatically by ./configure" >> tsk/tsk_incs.h
+          echo "// Contains the config.h data needed by programs that use libtsk" >> tsk/tsk_incs.h
+          echo "" >> tsk/tsk_incs.h
           if test x$ac_cv_header_unistd_h = xyes; then
-            echo "#include <unistd.h>" >> tsk3/tsk_incs.h
+            echo "#include <unistd.h>" >> tsk/tsk_incs.h
           fi
           if test x$ac_cv_header_inttypes_h = xyes; then
-            echo "#ifndef __STDC_FORMAT_MACROS" >> tsk3/tsk_incs.h
-            echo "#define  __STDC_FORMAT_MACROS" >> tsk3/tsk_incs.h
-            echo "#endif" >> tsk3/tsk_incs.h
-            echo "#include <inttypes.h>" >> tsk3/tsk_incs.h
+            echo "#ifndef __STDC_FORMAT_MACROS" >> tsk/tsk_incs.h
+            echo "#define  __STDC_FORMAT_MACROS" >> tsk/tsk_incs.h
+            echo "#endif" >> tsk/tsk_incs.h
+            echo "#include <inttypes.h>" >> tsk/tsk_incs.h
           fi
           if test x$ac_cv_header_sys_param_h = xyes; then
-            echo "#include <sys/param.h>" >> tsk3/tsk_incs.h
+            echo "#include <sys/param.h>" >> tsk/tsk_incs.h
           fi
 
           if test x$ax_pthread_ok = xyes; then
-            echo "#define TSK_MULTITHREAD_LIB // set because we have pthreads" >> tsk3/tsk_incs.h
+            echo "#define TSK_MULTITHREAD_LIB // set because we have pthreads" >> tsk/tsk_incs.h
           fi
 
-          echo "" >> tsk3/tsk_incs.h
-          echo "#endif" >> tsk3/tsk_incs.h
+          echo "" >> tsk/tsk_incs.h
+          echo "#endif" >> tsk/tsk_incs.h
         ],
         [
           ac_cv_header_unistd_h=$ac_cv_header_unistd_h
@@ -236,14 +236,15 @@ AC_CONFIG_COMMANDS([tsk3/tsk_incs.h],
           ax_pthread_ok=$ax_pthread_ok
         ])
 
+
 AC_CONFIG_FILES([Makefile
-                 tsk3/Makefile
-                 tsk3/base/Makefile
-                 tsk3/img/Makefile
-                 tsk3/vs/Makefile
-                 tsk3/fs/Makefile
-                 tsk3/hashdb/Makefile
-                 tsk3/auto/Makefile
+                 tsk/Makefile
+                 tsk/base/Makefile
+                 tsk/img/Makefile
+                 tsk/vs/Makefile
+                 tsk/fs/Makefile
+                 tsk/hashdb/Makefile
+                 tsk/auto/Makefile
                  tools/Makefile
                  tools/imgtools/Makefile
                  tools/vstools/Makefile
@@ -253,9 +254,9 @@ AC_CONFIG_FILES([Makefile
                  tools/autotools/Makefile
                  tools/sorter/Makefile
                  tools/timeline/Makefile
-		 tools/fiwalk/Makefile
-		 tools/fiwalk/src/Makefile
-		 tools/fiwalk/plugins/Makefile
+                 tools/fiwalk/Makefile
+                 tools/fiwalk/src/Makefile
+                 tools/fiwalk/plugins/Makefile
                  tests/Makefile
                  samples/Makefile
                  man/Makefile
diff --git a/framework/Extraction/TskImageFile.h b/framework/Extraction/TskImageFile.h
deleted file mode 100755
index 94db88e576d3457cc0748bf474c6796ab32ebdd6..0000000000000000000000000000000000000000
--- a/framework/Extraction/TskImageFile.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- *
- *  The Sleuth Kit
- *
- *  Contact: Brian Carrier [carrier <at> sleuthkit [dot] org]
- *  Copyright (c) 2010-2012 Basis Technology Corporation. All Rights
- *  reserved.
- *
- *  This software is distributed under the Common Public License 1.0
- */
-
-/**
- * \file TskImageFile.h
- * Contains the interface for the TskImageFile class.
- */
-
-#ifndef _TSK_IMAGEFILE_H
-#define _TSK_IMAGEFILE_H
-
-#include "framework_i.h"
-#include <vector>
-#include <string>
-
-/**
- * An interface to a class that allows file system and low-level 
- * access to a disk image.
- * It supports opening split image files, extracting file system 
- * information from the image and extracting data for a specific file
- * or for a range of sectors.  You must call one of the open() methods
- * before using any of the other methods in the interface. 
- */
-class TSK_FRAMEWORK_API TskImageFile
-{
-public:
-    /**
-     * You must call one of the open() methods after creating the object.
-     */
-    TskImageFile();
-
-    virtual ~TskImageFile();
-
-    /**
-     * Open the disk image represented by one or more actual files.
-     * @param imageFiles One or more files that make up the disk image
-     * @return 0 on success and -1 on error
-     */
-    virtual int open(const std::vector<std::wstring> &imageFiles) = 0;
-
-    /**
-     * Open the disk image at the following path using TSK_TCHAR type. 
-     * @param imageFile Path to image (or first in a set of images).
-     * @return 0 on success and -1 on error
-     */
-    virtual int open(const TSK_TCHAR *imageFile) = 0;
-
-    /**
-     * open the images at the paths saved in ImgDB
-     * @returns 0 on success and -1 on error
-     */
-    virtual int open() = 0;
-
-    /// Close the disk image.
-    virtual void close() = 0;
-
-    /// Return the file name(s) that make up the image.
-    virtual std::vector<std::wstring> filenames() const = 0;
-
-    /**
-     * Analyze the volume and file systems in the opened images and 
-     * populate the TskImgDB instance registered with TskServices.  This
-     * will not perform file carving.
-     * @returns 1 if there was a major error that prevented any extraction.  0 will
-     * be returned if there were minor errors during extraction or if there were 
-     * no errors.
-     */
-    virtual int extractFiles() = 0;
-
-    /**
-     * Return the data located at the given sector offset in the disk image.
-     * @param sect_start Sector offset into image from which to return data
-     * @param sect_len Number of sectors to read
-     * @param buffer A buffer into which data will be placed. Must be at
-     * least len * 512 large
-     * @return Number of sectors read or -1 on error
-     */
-    virtual int getSectorData(const uint64_t sect_start, 
-                              const uint64_t sect_len, 
-                              char *buffer) = 0;
-
-    /**
-     * Return the data located at the given byte offset in the disk image.
-     * @param byte_start Byte offset into image from which to return data
-     * @param byte_len Number of bytes to read
-     * @param buffer A buffer into which data will be placed. Must be at
-     * least byte_len large
-     * @return Number of bytes read or -1 on error
-     */
-    virtual int getByteData(const uint64_t byte_start, 
-                            const uint64_t byte_len, 
-                            char *buffer) = 0;
-
-    /**
-     * Provides access to the content of a specific file that was extracted from the disk image.
-     *
-     * @param fileId ID of the file (can be found in database)
-     * @returns A handle to the file or -1 on error.
-     */
-    virtual int openFile(const uint64_t fileId) = 0;
-
-    /**
-     * Reads content of a file that was opened with openFile(). 
-     * @param handle File handle that was returned by an earlier call to openFile()
-     * @param byte_offset Starting byte offset from which to read data
-     * @param byte_len The number of bytes to read
-     * @param buffer A buffer into which data will be placed. Must be at least
-     * byte_len bytes.
-     * @return Number of bytes read or -1 on error
-     */
-    virtual int readFile(const int handle, 
-                         const uint64_t byte_offset, 
-                         const size_t byte_len, 
-                         char * buffer) = 0;
-   /**
-     * Closes an opened file.
-     * @param handle File handle that was returned by an earlier call to openFile()
-     */
-    virtual int closeFile(const int handle) = 0;
-
-private:
-
-};
-
-#endif
diff --git a/framework/INSTALL_unix.txt b/framework/INSTALL_unix.txt
new file mode 100644
index 0000000000000000000000000000000000000000..fdcb159091ba82a50474d66a33e01de7216962ed
--- /dev/null
+++ b/framework/INSTALL_unix.txt
@@ -0,0 +1,95 @@
+                    The Sleuth Kit Framework
+                http://www.sleuthkit.org/sleuthkit
+
+              Installation Instructions for Linux / OS X
+
+                   Last Modified: Apr 8, 2013
+
+
+REQUIREMENTS
+=============================================================================
+Tested Platform:
+- Linux 2.*
+- Mac OS X
+
+Build System:
+- C/C++ compiler
+- GNU Make
+- GNU autoconf, automake, and libtool
+
+
+Required Libraries:
+The following libraries must be installed before building and install
+the framework.
+
+- POCO: POCO is a set of open source C++ classes for building
+portable applications.  The Sleuth Kit framework uses POCO to handle
+some basic internal tasks.  Testing has been performed with version
+1.4.4 of the POCO libraries.
+    Available at http://www.pocoproject.org
+
+The modules may also have library dependencies.  For example, the
+file type module requires libmagic.  The documents in each module
+will list them .
+
+
+INSTALLATION
+=============================================================================
+
+Refer to the INSTALL_win.txt file for details on building using
+Microsoft Visual Studio 2010.
+
+The Sleuth Kit framework uses the GNU autotools for building and
+installation.  There are a few steps to this process.  First, run
+the 'configure' script in the framework directory.  This will also
+run configure in all of the modules.  The modules have been designed
+to not fatally fail if a dependency exists so that you can continue
+to build all of them.  Refer to the end of the output for messages
+about missing dependencies.
+
+    $ ./configure
+
+If there were no errors, then run 'make'.  This will also run make
+in all of the modules.
+
+    $ make
+
+The 'make' process will take a while and will build the framework
+library, tools that use the framework, and modules that load into
+the framework.  
+
+The tools are in the "tools" directory and the modules were copied
+into the "runtime" directory. You can run the tools from this layout.
+For quick reference, tsk_analyzeimg is a tool that can drive the
+entire framework.
+
+To install the tools, moduless, and framework, type 'make install'.
+
+    $ make install
+
+By default, this will copy everything in to the /usr/local/ structure.
+
+If you get an error like:
+
+  libtool: Version mismatch error.  This is libtool 2.2.10, but the
+  libtool: definition of this LT_INIT comes from libtool 2.2.4.
+  libtool: You should recreate aclocal.m4 with macros from libtool 2.2.10
+  libtool: and run autoconf again.
+
+Run:
+    ./bootstrap 
+
+and then go back to running configure and make.  To run 'bootstrap',
+you'll need to have the autotools installed (see the list at the
+top of this page).
+
+
+CONFIGURE OPTIONS
+-----------------------------------------------------------------------------
+The framework doesn't support extra arguments to 'configure'
+
+
+-----------------------------------------------------------------------------
+
+Brian Carrier
+carrier <at> sleuthkit <dot> org
diff --git a/framework/BUILDING.txt b/framework/INSTALL_win.txt
similarity index 88%
rename from framework/BUILDING.txt
rename to framework/INSTALL_win.txt
index c0ca5de270169e2f1be86f9a5f095e466f96cdb5..19cda7d70df04aa0e0ce86d0c080550c7145411b 100644
--- a/framework/BUILDING.txt
+++ b/framework/INSTALL_win.txt
@@ -1,7 +1,7 @@
                        Sleuth Kit Framework
                       Building Instructions
 
-                           July 11, 2012
+                           January 22, 2013
 
 
 
@@ -25,7 +25,10 @@ Development environment setup consists of the following steps:
    Sleuth Kit BUILDING.txt file for details on setting LIBEWF_HOME.
 4) Ensure that the TSK_HOME environment variable is set and refers to the
    directory to which you extracted the Sleuth Kit.
-5) Run 'nmake' in the framework\win32 directory.
+5) Run 'nmake' in the framework\msvcpp directory. This will result in
+   debug versions of the framework and analysis modules in the 
+   framework\runtime directory. For release builds, run 'nmake release'.
+   For other build options run 'nmake usage'.
 
 
 If the above simple build process does not work the following sections
@@ -72,17 +75,8 @@ project in the Sleuth Kit solution although you may choose to build
 the entire solution. Once complete you should see a file named
 "libtsk.lib" in either the "Debug" or "Release" folder under "win32".
 
-Before you compile the framework, ensure that you have downloaded
-all of the modules (or some of the projects in the solution file
-will fail).  The modules are loaded as git Submodules. Use the
-following commands to download all of the modules before compiling:
-
-% git submodule init
-% git submodule update
-
-
 To compile the framework, open the solution file in
-"framework/win32/framework". Compile the framework project to get
+"framework/msvcpp/framework". Compile the framework project to get
 the release or debug version.  This will create a dll file that
 includes the libtsk static library.  There are other projects in 
 the solution for other modules and command line tools. 
diff --git a/framework/Makefile.am b/framework/Makefile.am
index a0e62cedccd85689496e4a48ee0255b9d3417c87..cde3f4daaec6437a7f75bf05462931006a42c00e 100644
--- a/framework/Makefile.am
+++ b/framework/Makefile.am
@@ -1,10 +1,88 @@
-SUBDIRS = Utilities 
+ACLOCAL_AMFLAGS = -I m4
+SUBDIRS = tsk/framework tools modules
 
+nobase_include_HEADERS = \
+    tsk/framework/framework.h \
+    tsk/framework/framework_i.h \
+    tsk/framework/TskVersionInfo.h \
+    tsk/framework/extraction/CarveExtract.h \
+    tsk/framework/extraction/CarvePrep.h \
+    tsk/framework/extraction/TskAutoImpl.h \
+    tsk/framework/extraction/TskCarveExtractScalpel.h \
+    tsk/framework/extraction/TskCarvePrepSectorConcat.h \
+    tsk/framework/extraction/TskImageFile.h \
+    tsk/framework/extraction/TskImageFileTsk.h \
+    tsk/framework/file/TskFile.h \
+    tsk/framework/file/TskFileManager.h \
+    tsk/framework/file/TskFileManagerImpl.h \
+    tsk/framework/file/TskFileTsk.h \
+    tsk/framework/pipeline/TskExecutableModule.h \
+    tsk/framework/pipeline/TskFileAnalysisPipeline.h \
+    tsk/framework/pipeline/TskFileAnalysisPluginModule.h \
+    tsk/framework/pipeline/TskModule.h \
+    tsk/framework/pipeline/TskPipeline.h \
+    tsk/framework/pipeline/TskPipelineManager.h \
+    tsk/framework/pipeline/TskPluginModule.h \
+    tsk/framework/pipeline/TskReportPipeline.h \
+    tsk/framework/pipeline/TskReportPluginModule.h \
+    tsk/framework/services/Log.h \
+    tsk/framework/services/Scheduler.h \
+    tsk/framework/services/TskBlackboardArtifact.h \
+    tsk/framework/services/TskBlackboardAttribute.h \
+    tsk/framework/services/TskBlackboard.h \
+    tsk/framework/services/TskDBBlackboard.h \
+    tsk/framework/services/TskImgDB.h \
+    tsk/framework/services/TskImgDBSqlite.h \
+    tsk/framework/services/TskSchedulerQueue.h \
+    tsk/framework/services/TskServices.h \
+    tsk/framework/services/TskSystemProperties.h \
+    tsk/framework/services/TskSystemPropertiesImpl.h \
+    tsk/framework/utilities/SectorRuns.h \
+    tsk/framework/utilities/TskException.h \
+    tsk/framework/utilities/TskModuleDev.h \
+    tsk/framework/utilities/TskUtilities.h \
+    tsk/framework/utilities/UnallocRun.h
 
-# Merge the libraries into one
-lib_LTLIBRARIES = libtskframework.la
-libtskframework_la_SOURCES =
-libtskframework_la_LIBADD = Utilities/libfwutil.la
 
-# current:revision:age
-libtskframework_la_LDFLAGS = -version-info 0:0:0
+if DARWIN
+  PLATFORM=mac
+  LIBEXT=dylib
+else
+  PLATFORM=linux
+  LIBEXT=so
+endif
+
+.PHONY: copy_libs copy_configs
+# Copy the modules libraries into the Modules directory
+bin_PROGRAMS = copy_libs copy_configs
+
+runtime/modules:
+	-mkdir -p $@
+
+copy_libs_SOURCES = 
+copy_libs: runtime/modules
+	(cd $<; ln -sf ../../modules/c_*/.libs/libtsk*Module.* .)
+	(cd $<; ln -sf ../../tsk/framework/.libs/libtskframework.* .)
+	(cd $<; ln -sf ../../../tsk/.libs/libtsk.* .)
+
+copy_configs_SOURCES = 
+copy_configs:
+	-mkdir -p runtime
+	cp SampleConfig/framework_config_unixdev.xml runtime/framework_config.xml
+	if ! test -d SampleConfig/to_install; then \
+		mkdir SampleConfig/to_install; \
+	else \
+        rm -f SampleConfig/to_install/framework_config.xml; \
+	fi
+
+installdir = ${datadir}/tsk
+dist_install_DATA = SampleConfig/to_install/framework_config.xml SampleConfig/pipeline_config.xml
+
+# Creates a framework_config file that has the paths for where things will be installed.
+SampleConfig/to_install/framework_config.xml:
+	sed \
+		-e 's?#CONFIGDIRPATH#?$(DESTDIR)/usr/local/share/tsk?' \
+		-e 's?#MODULEDIRPATH#?$(DESTDIR)/usr/local/lib?' \
+		-e 's?#MODULECONFIGDIRPATH#?$(DESTDIR)/usr/local/share/tsk?' \
+		SampleConfig/framework_config_template.xml \
+	 > $@
diff --git a/framework/RUNNING_unix.txt b/framework/RUNNING_unix.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4b5cc9cb91514a98670929a89446c89ccf4290d7
--- /dev/null
+++ b/framework/RUNNING_unix.txt
@@ -0,0 +1,31 @@
+This file has some notes on how the code is organized.  It's a bit
+complex because the framework needs a bunch of things to be in
+exactly the right place, so we make the dev environment look kind
+of like the installed environment.
+
+
+BUILDING:
+- Running configure and make in the framework folder should also
+compile all of the modules.
+
+- The TSK modules have mostly been configured to continue on even
+if they have a critical dependency. You should see messages along
+the way.  if you do not find a module, then try to compile it
+manually by going into the 'modules' folder.
+
+- Each module has some logic in it to detect if it is being compiled
+as part of the framework or stand alone.  If part of the framework,
+it will copy its configuration files to the 'runtime' folder.
+
+- The top-level framework Makefile.am folder will make symlinks between
+the compiled modules and the 'runtime' folder. 
+
+
+RUNNING:
+- tsk_analyzeimg has special logic to find the runtime folder if
+you run it from the tsk_analyzeimg folder.
+
+- The runtime folder is where you will find the framework config
+file and module config files that you can edit while running
+tsk_analyzeimg from its source folder (i.e. not an installed version).
+
diff --git a/framework/SampleConfig/framework_config_bindist.xml b/framework/SampleConfig/framework_config_bindist.xml
index dff56876218d3d161cad9993e716ff05658e3597..8b4829c05f908546d4e7c7df1c0b08fadde520e1 100755
--- a/framework/SampleConfig/framework_config_bindist.xml
+++ b/framework/SampleConfig/framework_config_bindist.xml
@@ -4,5 +4,6 @@
 <TSK_FRAMEWORK_CONFIG>
   <CONFIG_DIR>#PROG_DIR#</CONFIG_DIR>
   <MODULE_DIR>#PROG_DIR#\..\modules\</MODULE_DIR>  
+  <MODULE_CONFIG_DIR>#PROG_DIR#\..\modules\</MODULE_CONFIG_DIR>  
   <!-- <SCALPEL_DIR>path</SCALPEL_DIR> -->
 </TSK_FRAMEWORK_CONFIG>
diff --git a/framework/SampleConfig/framework_config_template.xml b/framework/SampleConfig/framework_config_template.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6355eeb781807d79b60cb91e5cb4e34dec2f2f8e
--- /dev/null
+++ b/framework/SampleConfig/framework_config_template.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Template of framework config.  Contains enough settings for installation. -->
+<!-- For more information please consult the TskSystemProperties::PredefinedProperty member enumeration documentation at http://www.sleuthkit.org/sleuthkit/docs/framework-docs/classTskSystemProperties.html -->
+<TSK_FRAMEWORK_CONFIG>
+  <CONFIG_DIR>#CONFIGDIRPATH#</CONFIG_DIR>
+  <MODULE_DIR>#MODULEDIRPATH#</MODULE_DIR>
+  <MODULE_CONFIG_DIR>#MODULECONFIGDIRPATH#</MODULE_CONFIG_DIR>
+  <PIPELINE_CONFIG_FILE>#CONFIG_DIR#/pipeline_config.xml</PIPELINE_CONFIG_FILE>
+</TSK_FRAMEWORK_CONFIG>
diff --git a/framework/SampleConfig/framework_config_unixdev.xml b/framework/SampleConfig/framework_config_unixdev.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8e5344a93230f2e3dcbca5c8f781ed3779cd7f33
--- /dev/null
+++ b/framework/SampleConfig/framework_config_unixdev.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- General version of the framework config for running in src tree in Linux/OS X. -->
+<!-- For more information please consult the TskSystemProperties::PredefinedProperty member enumeration documentation at http://www.sleuthkit.org/sleuthkit/docs/framework-docs/classTskSystemProperties.html -->
+<TSK_FRAMEWORK_CONFIG>
+  <CONFIG_DIR>#PROG_DIR#/../../../SampleConfig</CONFIG_DIR>
+  <PIPELINE_CONFIG_FILE>#CONFIG_DIR#/pipeline_config.xml</PIPELINE_CONFIG_FILE>
+  <MODULE_DIR>#PROG_DIR#/../../../runtime/modules</MODULE_DIR>
+  <MODULE_CONFIG_DIR>#PROG_DIR#/../../../runtime/modules_config</MODULE_CONFIG_DIR>
+</TSK_FRAMEWORK_CONFIG>
diff --git a/framework/SampleConfig/framework_config_win32dev.xml b/framework/SampleConfig/framework_config_win32dev.xml
index 7fe65548fd0afc44aeaf6fbc81ae7da4f1645d3e..2530836bd2383542dcc6ee9a4b0880fd2ff60a67 100755
--- a/framework/SampleConfig/framework_config_win32dev.xml
+++ b/framework/SampleConfig/framework_config_win32dev.xml
@@ -2,6 +2,7 @@
 <!-- Framework config that is used when running from the VS dev environment - gets copied into debug/release folder. - contains only relevant settings -->
 <!-- For more information please consult the TskSystemProperties::PredefinedProperty member enumeration documentation at http://www.sleuthkit.org/sleuthkit/docs/framework-docs/classTskSystemProperties.html -->
 <TSK_FRAMEWORK_CONFIG>
-  <CONFIG_DIR>#PROG_DIR#\..\..\..\SampleConfig</CONFIG_DIR>
-  <MODULE_DIR>#PROG_DIR#</MODULE_DIR>  
+  <CONFIG_DIR>#PROG_DIR#\..\SampleConfig</CONFIG_DIR>
+  <MODULE_DIR>#PROG_DIR#</MODULE_DIR>
+  <MODULE_CONFIG_DIR>#PROG_DIR#</MODULE_CONFIG_DIR>
 </TSK_FRAMEWORK_CONFIG>
diff --git a/framework/SampleConfig/pipeline_config.xml b/framework/SampleConfig/pipeline_config.xml
index f82fa22098591353710db1534e603a5f60018369..247ef67599b69a79c797b579431c3f801abc489a 100755
--- a/framework/SampleConfig/pipeline_config.xml
+++ b/framework/SampleConfig/pipeline_config.xml
@@ -2,24 +2,24 @@
 <!-- Contains only the modules that ship with TSK -->
 <PIPELINE_CONFIG>
     <PIPELINE type="FileAnalysis">
-      <MODULE order="1" type="plugin" location="HashCalcModule"/>
-<!--<MODULE order="2" type="plugin" location="TskHashLookupModule" arguments="TODO: See README for how to create NSRL index file"/>-->
+      <MODULE order="1" type="plugin" location="tskHashCalcModule"/>
+<!--<MODULE order="2" type="plugin" location="tskHashLookupModule" arguments="TODO: See README for how to create NSRL index file"/>-->
 
-      <MODULE order="3" type="plugin" location="FileTypeSigModule"/>
-      <MODULE order="4" type="plugin" location="EntropyModule"/>
-      <MODULE order="5" type="plugin" location="ZipExtractionModule"/>
-      <MODULE order="6" type="plugin" location="LibExifModule"/>
+      <MODULE order="3" type="plugin" location="tskFileTypeSigModule"/>
+      <MODULE order="4" type="plugin" location="tskEntropyModule"/>
+      <MODULE order="5" type="plugin" location="tskZipExtractionModule"/>
+      <MODULE order="6" type="plugin" location="tskLibExifModule"/>
     </PIPELINE>
 
     <PIPELINE type="PostProcessing">
       <!--This pipeline configuration assumes that the RegRipper executable is named rip.exe and is present in the program directory-->
-      <!--<MODULE order="1" type="plugin" location="RegRipperModule" arguments="-e #PROG_DIR#\\RegRipper\\rip.exe; -o #MODULE_OUT_DIR#\\RegRipper\\"/>-->
+      <!--<MODULE order="1" type="plugin" location="tskRegRipperModule" arguments="-e #PROG_DIR#/RegRipper/rip.exe; -o #MODULE_OUT_DIR#/RegRipper/"/>-->
 
-      <MODULE order="2" type="plugin" location="InterestingFilesModule" arguments="#MODULE_DIR#\\InterestingFilesModule\\interesting_files.xml"/>
+      <MODULE order="2" type="plugin" location="tskInterestingFilesModule"/>
 
-      <MODULE order="3" type="plugin" location="SaveInterestingFilesModule"/>
+      <MODULE order="3" type="plugin" location="tskSaveInterestingFilesModule"/>
 
-      <MODULE order="4" type="plugin" location="SummaryReportModule"/>
+      <MODULE order="4" type="plugin" location="tskSummaryReportModule"/>
 
     </PIPELINE>
 </PIPELINE_CONFIG>
diff --git a/framework/Services/Log.cpp b/framework/Services/Log.cpp
deleted file mode 100755
index 9a82cddd9145256f5d6581ff0f3a7eae5a5840f1..0000000000000000000000000000000000000000
--- a/framework/Services/Log.cpp
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * The Sleuth Kit
- *
- * Contact: Brian Carrier [carrier <at> sleuthkit [dot] org]
- * Copyright (c) 2010-2012 Basis Technology Corporation. All Rights
- * reserved.
- *
- * This software is distributed under the Common Public License 1.0
- */
-
-#include <string.h>
-#include <errno.h>
-#include <share.h>
-#include "string.h"
-#include "Log.h"
-#include "Utilities/TskUtilities.h"
-#include "sys/stat.h"
-
-// @@@ imports for directory creation and deletion
-#include "windows.h"
-
-
-Log::Log()
-: m_logFile(NULL)
-{
-    m_filePath[0] = '\0';
-}
-
-
-/**
- * Opens a single log file with a default name, based on the time
- * that the log was opened.
- * @returns 1 on error and 0 on success.
- */
-int Log::open()
-{
-    struct tm newtime;
-    time_t aclock;
-
-    time(&aclock);   // Get time in seconds
-    localtime_s(&newtime, &aclock);   // Convert time to struct tm form 
-    wchar_t filename[MAX_BUFF_LENGTH];
-    _snwprintf_s(filename, MAX_BUFF_LENGTH, MAX_BUFF_LENGTH, L"log_%.4d-%.2d-%.2d-%.2d-%.2d-%.2d.txt",
-        newtime.tm_year + 1900, newtime.tm_mon+1, newtime.tm_mday,  
-        newtime.tm_hour, newtime.tm_min, newtime.tm_sec);
-
-    return open(filename);
-}
-/**
- * Open the single log file at the path specified. All messages
- * will be printed to the log.
- * @param a_logFileFullPath Path to logfile to open.
- * @returns 1 on error and 0 on success.
- */
-int Log::open(const wchar_t * a_logFileFullPath)
-{
-    close(); // if needed
-
-    // open the log file for writing
-    if ((m_logFile = _wfsopen(a_logFileFullPath, L"a", _SH_DENYWR)) == NULL) {
-        wprintf(L"The file '%s' cannot be opened.\n", a_logFileFullPath);
-        return 1;
-    }
-
-    wcsncpy_s(m_filePath, a_logFileFullPath,MAX_BUFF_LENGTH);
-
-    return 0;
-}
-
-/**
- * Close the opened log file.
- * @returns 0 on success
- */
-int Log::close()
-{
-    errno_t err = 0;
-    if (m_logFile)
-    {
-        if (err = fclose(m_logFile))
-            wprintf(L"The file '%s' was not closed.", m_logFile);
-
-        m_logFile = NULL;
-    }
-
-    return err;
-}
-
-Log::~Log()
-{
-    close();
-}
-
-
-void Log::logf(Channel a_channel, char const *format, ...)
-{
-    va_list args;
-    va_start(args, format);
-
-    char buf[2048];
-#ifdef TSK_WIN32
-    vsnprintf_s(buf, 2048, _TRUNCATE, format, args);
-#else
-    buf[2047] = '\0';
-    vsnprintf(buf, 2047, format, args);
-#endif
-    std::string msg(buf);
-    log(a_channel, buf);
-    va_end(args);
-}
-
-void Log::log(Channel a_channel, const std::string &a_msg)
-{
-    std::wstring msg_w = TskUtilities::toUTF16(a_msg);
-    log(a_channel, msg_w);
-}
-
-void Log::log(Channel a_channel, const std::wstring &a_msg)
-{
-    wchar_t level[10];
-    switch (a_channel)
-    {
-    case Error:
-        wcsncpy_s(level, 10, L"[ERROR]", 7);
-        break;
-    case Warn:
-        wcsncpy_s(level, 10, L"[WARN]", 6);
-        break;
-    case Info:
-        wcsncpy_s(level, 10, L"[INFO]", 6);
-        break;
-    }
-
-    struct tm newtime;
-    time_t aclock;
-
-    time(&aclock);   // Get time in seconds
-    localtime_s(&newtime, &aclock);   // Convert time to struct tm form 
-    char timeStr[64];
-    _snprintf_s(timeStr, 64, "%.2d/%.2d/%.2d %.2d:%.2d:%.2d",
-        newtime.tm_mon+1,newtime.tm_mday,newtime.tm_year % 100, 
-        newtime.tm_hour, newtime.tm_min, newtime.tm_sec);
-
-    if (m_logFile) {
-        fwprintf(m_logFile, L"%S %s %s\n", timeStr, level, a_msg.data());
-        fflush(m_logFile);
-    }
-    else {
-        fwprintf(stderr, L"%S %s %s\n", timeStr, level, a_msg.data());
-    }
-}
-
-/**
- * Return the path to the log file.
- * @returns path to log or NULL if log is going to STDERR
- */
-const wchar_t * Log::getLogPath()
-{
-    if (m_logFile)
-        return (const wchar_t * )&m_filePath;
-    else
-        return NULL;
-}
-
diff --git a/framework/TskModules/README.txt b/framework/TskModules/README.txt
deleted file mode 100644
index 6f459ec283fac818c405390f032ac8db046fe4c5..0000000000000000000000000000000000000000
--- a/framework/TskModules/README.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-This folder contains external read-only references to modules.  The modules are located in different repositories at http://github.com/sleuthkit/
-
-To populate the folders, run the following from the root folder of the repository:
-
-% git submodule init
-% git submodule update
-
diff --git a/framework/TskModules/c_EntropyModule b/framework/TskModules/c_EntropyModule
deleted file mode 160000
index 19e24c51ffa57c528d407cee8e4dac621dda6f34..0000000000000000000000000000000000000000
--- a/framework/TskModules/c_EntropyModule
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 19e24c51ffa57c528d407cee8e4dac621dda6f34
diff --git a/framework/TskModules/c_FileTypeSigModule b/framework/TskModules/c_FileTypeSigModule
deleted file mode 160000
index 2e315f7460699b4892df69e709b4893d39953e65..0000000000000000000000000000000000000000
--- a/framework/TskModules/c_FileTypeSigModule
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 2e315f7460699b4892df69e709b4893d39953e65
diff --git a/framework/TskModules/c_HashCalcModule b/framework/TskModules/c_HashCalcModule
deleted file mode 160000
index faa0197f7f7d6a7cb64c7366522b90dd2cea7599..0000000000000000000000000000000000000000
--- a/framework/TskModules/c_HashCalcModule
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit faa0197f7f7d6a7cb64c7366522b90dd2cea7599
diff --git a/framework/TskModules/c_InterestingFilesModule b/framework/TskModules/c_InterestingFilesModule
deleted file mode 160000
index e57da97f4027b03082995e95f496199cbc8f3a10..0000000000000000000000000000000000000000
--- a/framework/TskModules/c_InterestingFilesModule
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit e57da97f4027b03082995e95f496199cbc8f3a10
diff --git a/framework/TskModules/c_LibExifModule b/framework/TskModules/c_LibExifModule
deleted file mode 160000
index 11cef8bb1374b9402033754583813f8ba27994b7..0000000000000000000000000000000000000000
--- a/framework/TskModules/c_LibExifModule
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 11cef8bb1374b9402033754583813f8ba27994b7
diff --git a/framework/TskModules/c_RegRipperModule b/framework/TskModules/c_RegRipperModule
deleted file mode 160000
index ae114211fb51499eddd3fbe992716382be5f1668..0000000000000000000000000000000000000000
--- a/framework/TskModules/c_RegRipperModule
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit ae114211fb51499eddd3fbe992716382be5f1668
diff --git a/framework/TskModules/c_SaveInterestingFilesModule b/framework/TskModules/c_SaveInterestingFilesModule
deleted file mode 160000
index 1f67319dcd817c910067323ab79bf7301a5ab641..0000000000000000000000000000000000000000
--- a/framework/TskModules/c_SaveInterestingFilesModule
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 1f67319dcd817c910067323ab79bf7301a5ab641
diff --git a/framework/TskModules/c_SummaryReportModule b/framework/TskModules/c_SummaryReportModule
deleted file mode 160000
index cc2283aca91fc497cecc7c36cc709fb52d9bc279..0000000000000000000000000000000000000000
--- a/framework/TskModules/c_SummaryReportModule
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit cc2283aca91fc497cecc7c36cc709fb52d9bc279
diff --git a/framework/TskModules/c_TskHashLookupModule b/framework/TskModules/c_TskHashLookupModule
deleted file mode 160000
index 4dad8917296582eaf6b9daf93a3b77ccb0173ffe..0000000000000000000000000000000000000000
--- a/framework/TskModules/c_TskHashLookupModule
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 4dad8917296582eaf6b9daf93a3b77ccb0173ffe
diff --git a/framework/aclocal.m4 b/framework/aclocal.m4
index 05af9343441d2d594432cd4c2fab148998bb3fd8..65d0bbc50dd13a84f4cad64f6170012d72c58856 100644
--- a/framework/aclocal.m4
+++ b/framework/aclocal.m4
@@ -1,7 +1,8 @@
-# generated automatically by aclocal 1.12.3 -*- Autoconf -*-
-
-# Copyright (C) 1996-2012 Free Software Foundation, Inc.
+# generated automatically by aclocal 1.11.3 -*- Autoconf -*-
 
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
+# Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,7 +18,7 @@ m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
 [m4_warning([this file was generated for autoconf 2.69.
 You have another version of autoconf.  It may work, but is not guaranteed to.
 If you have problems, you may need to regenerate the build system entirely.
-To do so, use the procedure documented by the package, typically 'autoreconf'.])])
+To do so, use the procedure documented by the package, typically `autoreconf'.])])
 
 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
 #
@@ -2697,6 +2698,18 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)
   dynamic_linker='GNU/Linux ld.so'
   ;;
 
+netbsdelf*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='NetBSD ld.elf_so'
+  ;;
+
 netbsd*)
   version_type=sunos
   need_lib_prefix=no
@@ -3302,7 +3315,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-netbsd*)
+netbsd* | netbsdelf*-gnu)
   if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
     lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
   else
@@ -4114,7 +4127,7 @@ m4_if([$1], [CXX], [
 	    ;;
 	esac
 	;;
-      netbsd*)
+      netbsd* | netbsdelf*-gnu)
 	;;
       *qnx* | *nto*)
         # QNX uses GNU C++, but need to define -shared option too, otherwise
@@ -4591,6 +4604,9 @@ m4_if([$1], [CXX], [
       ;;
     esac
     ;;
+  linux* | k*bsd*-gnu | gnu*)
+    _LT_TAGVAR(link_all_deplibs, $1)=no
+    ;;
   *)
     _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
     ;;
@@ -4653,6 +4669,9 @@ dnl Note also adjust exclude_expsyms for C++ above.
   openbsd*)
     with_gnu_ld=no
     ;;
+  linux* | k*bsd*-gnu | gnu*)
+    _LT_TAGVAR(link_all_deplibs, $1)=no
+    ;;
   esac
 
   _LT_TAGVAR(ld_shlibs, $1)=yes
@@ -4874,7 +4893,7 @@ _LT_EOF
       fi
       ;;
 
-    netbsd*)
+    netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
 	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
 	wlarc=
@@ -5051,6 +5070,7 @@ _LT_EOF
 	if test "$aix_use_runtimelinking" = yes; then
 	  shared_flag="$shared_flag "'${wl}-G'
 	fi
+	_LT_TAGVAR(link_all_deplibs, $1)=no
       else
 	# not using gcc
 	if test "$host_cpu" = ia64; then
@@ -5355,7 +5375,7 @@ _LT_EOF
       _LT_TAGVAR(link_all_deplibs, $1)=yes
       ;;
 
-    netbsd*)
+    netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
 	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
       else
@@ -8606,22 +8626,25 @@ m4_ifndef([_LT_PROG_F77],		[AC_DEFUN([_LT_PROG_F77])])
 m4_ifndef([_LT_PROG_FC],		[AC_DEFUN([_LT_PROG_FC])])
 m4_ifndef([_LT_PROG_CXX],		[AC_DEFUN([_LT_PROG_CXX])])
 
-# Copyright (C) 2002-2012 Free Software Foundation, Inc.
+# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software
+# Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 1
+
 # AM_AUTOMAKE_VERSION(VERSION)
 # ----------------------------
 # Automake X.Y traces this macro to ensure aclocal.m4 has been
 # generated from the m4 files accompanying Automake X.Y.
 # (This private macro should not be called outside this file.)
 AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.12'
+[am__api_version='1.11'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.12.3], [],
+m4_if([$1], [1.11.3], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -8637,22 +8660,24 @@ m4_define([_AM_AUTOCONF_VERSION], [])
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.12.3])dnl
+[AM_AUTOMAKE_VERSION([1.11.3])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001-2012 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 1
+
 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-# $ac_aux_dir to '$srcdir/foo'.  In other projects, it is set to
-# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
+# $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
 #
 # Of course, Automake must honor this variable whenever it calls a
 # tool from the auxiliary directory.  The problem is that $srcdir (and
@@ -8671,7 +8696,7 @@ _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 #
 # The reason of the latter failure is that $top_srcdir and $ac_aux_dir
 # are both prefixed by $srcdir.  In an in-source build this is usually
-# harmless because $srcdir is '.', but things will broke when you
+# harmless because $srcdir is `.', but things will broke when you
 # start a VPATH build or use an absolute $srcdir.
 #
 # So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
@@ -8697,19 +8722,22 @@ am_aux_dir=`cd $ac_aux_dir && pwd`
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997-2012 Free Software Foundation, Inc.
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
+# Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 9
+
 # AM_CONDITIONAL(NAME, SHELL-CONDITION)
 # -------------------------------------
 # Define a conditional.
 AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ([2.52])dnl
- m4_if([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
-       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+[AC_PREREQ(2.52)dnl
+ ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+	[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
 AC_SUBST([$1_TRUE])dnl
 AC_SUBST([$1_FALSE])dnl
 _AM_SUBST_NOTMAKE([$1_TRUE])dnl
@@ -8728,14 +8756,16 @@ AC_CONFIG_COMMANDS_PRE(
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999-2012 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009,
+# 2010, 2011 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 12
 
-# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
 # written in clear, in which case automake, when reading aclocal.m4,
 # will think it sees a *use*, and therefore will trigger all it's
 # C support machinery.  Also note that it means that autoscan, seeing
@@ -8745,7 +8775,7 @@ fi])])
 # _AM_DEPENDENCIES(NAME)
 # ----------------------
 # See how the compiler implements dependency checking.
-# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
+# NAME is "CC", "CXX", "GCJ", or "OBJC".
 # We try a few techniques and use that to set a single cache variable.
 #
 # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
@@ -8758,13 +8788,12 @@ AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
 AC_REQUIRE([AM_MAKE_INCLUDE])dnl
 AC_REQUIRE([AM_DEP_TRACK])dnl
 
-m4_if([$1], [CC],   [depcc="$CC"   am_compiler_list=],
-      [$1], [CXX],  [depcc="$CXX"  am_compiler_list=],
-      [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
-      [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
-      [$1], [UPC],  [depcc="$UPC"  am_compiler_list=],
-      [$1], [GCJ],  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
-                    [depcc="$$1"   am_compiler_list=])
+ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
+       [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
+       [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+       [$1], UPC,  [depcc="$UPC"  am_compiler_list=],
+       [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
+                   [depcc="$$1"   am_compiler_list=])
 
 AC_CACHE_CHECK([dependency style of $depcc],
                [am_cv_$1_dependencies_compiler_type],
@@ -8772,8 +8801,8 @@ AC_CACHE_CHECK([dependency style of $depcc],
   # We make a subdir and do the tests there.  Otherwise we can end up
   # making bogus files that we don't know about and never remove.  For
   # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named 'D' -- because '-MD' means "put the output
-  # in D".
+  # making a dummy file named `D' -- because `-MD' means `put the output
+  # in D'.
   rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
@@ -8813,16 +8842,16 @@ AC_CACHE_CHECK([dependency style of $depcc],
     : > sub/conftest.c
     for i in 1 2 3 4 5 6; do
       echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
-      # Solaris 10 /bin/sh.
-      echo '/* dummy */' > sub/conftst$i.h
+      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+      # Solaris 8's {/usr,}/bin/sh.
+      touch sub/conftst$i.h
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
-    # We check with '-c' and '-o' for the sake of the "dashmstdout"
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
     # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle '-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs.
+    # handle `-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs
     am__obj=sub/conftest.${OBJEXT-o}
     am__minus_obj="-o $am__obj"
     case $depmode in
@@ -8831,8 +8860,8 @@ AC_CACHE_CHECK([dependency style of $depcc],
       test "$am__universal" = false || continue
       ;;
     nosideeffect)
-      # After this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested.
+      # after this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested
       if test "x$enable_dependency_tracking" = xyes; then
 	continue
       else
@@ -8840,7 +8869,7 @@ AC_CACHE_CHECK([dependency style of $depcc],
       fi
       ;;
     msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok '-c -o', but also, the minuso test has
+      # This compiler won't grok `-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
       am__obj=conftest.${OBJEXT-o}
@@ -8888,7 +8917,7 @@ AM_CONDITIONAL([am__fastdep$1], [
 # AM_SET_DEPDIR
 # -------------
 # Choose a directory name for dependency files.
-# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES
 AC_DEFUN([AM_SET_DEPDIR],
 [AC_REQUIRE([AM_SET_LEADING_DOT])dnl
 AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
@@ -8898,13 +8927,9 @@ AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
 # AM_DEP_TRACK
 # ------------
 AC_DEFUN([AM_DEP_TRACK],
-[AC_ARG_ENABLE([dependency-tracking], [dnl
-AS_HELP_STRING(
-  [--enable-dependency-tracking],
-  [do not reject slow dependency extractors])
-AS_HELP_STRING(
-  [--disable-dependency-tracking],
-  [speeds up one-time build])])
+[AC_ARG_ENABLE(dependency-tracking,
+[  --disable-dependency-tracking  speeds up one-time build
+  --enable-dependency-tracking   do not reject slow dependency extractors])
 if test "x$enable_dependency_tracking" != xno; then
   am_depcomp="$ac_aux_dir/depcomp"
   AMDEPBACKSLASH='\'
@@ -8919,12 +8944,14 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999-2012 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
+# Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+#serial 5
 
 # _AM_OUTPUT_DEPENDENCY_COMMANDS
 # ------------------------------
@@ -8943,7 +8970,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
     # Strip MF so we end up with the name of the file.
     mf=`echo "$mf" | sed -e 's/:.*$//'`
     # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named 'Makefile.in', but
+    # We used to match only the files named `Makefile.in', but
     # some people rename them; so instead we look at the file content.
     # Grep'ing the first line is not enough: some people post-process
     # each Makefile.in and add a new line on top of each file to say so.
@@ -8955,19 +8982,21 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
       continue
     fi
     # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running 'make'.
+    # from the Makefile without running `make'.
     DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
     test -z "$DEPDIR" && continue
     am__include=`sed -n 's/^am__include = //p' < "$mf"`
     test -z "am__include" && continue
     am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+    # When using ansi2knr, U may be empty or an underscore; expand it
+    U=`sed -n 's/^U = //p' < "$mf"`
     # Find all dependency output files, they are included files with
     # $(DEPDIR) in their names.  We invoke sed twice because it is the
     # simplest approach to changing $(DEPDIR) to its actual value in the
     # expansion.
     for file in `sed -n "
       s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
+	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
       # Make sure the directory exists.
       test -f "$dirpart/$file" && continue
       fdir=`AS_DIRNAME(["$file"])`
@@ -8985,7 +9014,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
 # This macro should only be invoked once -- use via AC_REQUIRE.
 #
 # This code is only required when automatic dependency tracking
-# is enabled.  FIXME.  This creates each '.P' file that we will
+# is enabled.  FIXME.  This creates each `.P' file that we will
 # need in order to bootstrap the dependency handling code.
 AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 [AC_CONFIG_COMMANDS([depfiles],
@@ -8995,12 +9024,15 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996-2012 Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 16
+
 # This macro actually does too much.  Some checks are only needed if
 # your package does certain things.  But this isn't really a big deal.
 
@@ -9045,41 +9077,31 @@ AC_SUBST([CYGPATH_W])
 # Define the identity of the package.
 dnl Distinguish between old-style and new-style calls.
 m4_ifval([$2],
-[AC_DIAGNOSE([obsolete],
-[$0: two- and three-arguments forms are deprecated.  For more info, see:
-http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_INIT_AUTOMAKE-invocation])
-m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
  AC_SUBST([PACKAGE], [$1])dnl
  AC_SUBST([VERSION], [$2])],
 [_AM_SET_OPTIONS([$1])dnl
 dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
-m4_if(
-  m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
-  [ok:ok],,
+m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
   [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
  AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
  AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
 
 _AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
- AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
 
 # Some tools Automake needs.
 AC_REQUIRE([AM_SANITY_CHECK])dnl
 AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
-AM_MISSING_PROG([AUTOCONF], [autoconf])
-AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
-AM_MISSING_PROG([AUTOHEADER], [autoheader])
-AM_MISSING_PROG([MAKEINFO], [makeinfo])
+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
 AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
 AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
-AC_REQUIRE([AC_PROG_MKDIR_P])dnl
-# For better backward compatibility.  To be removed once Automake 1.9.x
-# dies out for good.  For more background, see:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
-AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
+AC_REQUIRE([AM_PROG_MKDIR_P])dnl
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
 AC_REQUIRE([AC_PROG_AWK])dnl
@@ -9090,35 +9112,28 @@ _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
 			     [_AM_PROG_TAR([v7])])])
 _AM_IF_OPTION([no-dependencies],,
 [AC_PROVIDE_IFELSE([AC_PROG_CC],
-		  [_AM_DEPENDENCIES([CC])],
-		  [m4_define([AC_PROG_CC],
-			     m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
+		  [_AM_DEPENDENCIES(CC)],
+		  [define([AC_PROG_CC],
+			  defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
 AC_PROVIDE_IFELSE([AC_PROG_CXX],
-		  [_AM_DEPENDENCIES([CXX])],
-		  [m4_define([AC_PROG_CXX],
-			     m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
+		  [_AM_DEPENDENCIES(CXX)],
+		  [define([AC_PROG_CXX],
+			  defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
 AC_PROVIDE_IFELSE([AC_PROG_OBJC],
-		  [_AM_DEPENDENCIES([OBJC])],
-		  [m4_define([AC_PROG_OBJC],
-			     m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
-dnl Support for Objective C++ was only introduced in Autoconf 2.65,
-dnl but we still cater to Autoconf 2.62.
-m4_ifdef([AC_PROG_OBJCXX],
-[AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
-		  [_AM_DEPENDENCIES([OBJCXX])],
-		  [m4_define([AC_PROG_OBJCXX],
-			     m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])])dnl
+		  [_AM_DEPENDENCIES(OBJC)],
+		  [define([AC_PROG_OBJC],
+			  defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
 ])
 _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
-dnl The 'parallel-tests' driver may need to know about EXEEXT, so add the
-dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This macro
+dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
+dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This macro
 dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
 AC_CONFIG_COMMANDS_PRE(dnl
 [m4_provide_if([_AM_COMPILER_EXEEXT],
   [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
 ])
 
-dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
+dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
 dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
 dnl mangled by Autoconf and run in a shell conditional statement.
 m4_define([_AC_COMPILER_EXEEXT],
@@ -9146,12 +9161,15 @@ for _am_header in $config_headers :; do
 done
 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001-2012 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation,
+# Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 1
+
 # AM_PROG_INSTALL_SH
 # ------------------
 # Define $install_sh.
@@ -9165,14 +9183,16 @@ if test x"${install_sh}" != xset; then
     install_sh="\${SHELL} $am_aux_dir/install-sh"
   esac
 fi
-AC_SUBST([install_sh])])
+AC_SUBST(install_sh)])
 
-# Copyright (C) 2003-2012 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2005  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 2
+
 # Check whether the underlying file-system supports filenames
 # with a leading dot.  For instance MS-DOS doesn't.
 AC_DEFUN([AM_SET_LEADING_DOT],
@@ -9189,17 +9209,20 @@ AC_SUBST([am__leading_dot])])
 # Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
 # From Jim Meyering
 
-# Copyright (C) 1996-2012 Free Software Foundation, Inc.
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008,
+# 2011 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 5
+
 # AM_MAINTAINER_MODE([DEFAULT-MODE])
 # ----------------------------------
 # Control maintainer-specific portions of Makefiles.
-# Default is to disable them, unless 'enable' is passed literally.
-# For symmetry, 'disable' may be passed as well.  Anyway, the user
+# Default is to disable them, unless `enable' is passed literally.
+# For symmetry, `disable' may be passed as well.  Anyway, the user
 # can override the default with the --enable/--disable switch.
 AC_DEFUN([AM_MAINTAINER_MODE],
 [m4_case(m4_default([$1], [disable]),
@@ -9210,11 +9233,10 @@ AC_DEFUN([AM_MAINTAINER_MODE],
 AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
   dnl maintainer-mode's default is 'disable' unless 'enable' is passed
   AC_ARG_ENABLE([maintainer-mode],
-    [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
-      am_maintainer_other[ make rules and dependencies not useful
-      (and sometimes confusing) to the casual installer])],
-    [USE_MAINTAINER_MODE=$enableval],
-    [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
+[  --][am_maintainer_other][-maintainer-mode  am_maintainer_other make rules and dependencies not useful
+			  (and sometimes confusing) to the casual installer],
+      [USE_MAINTAINER_MODE=$enableval],
+      [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
   AC_MSG_RESULT([$USE_MAINTAINER_MODE])
   AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
   MAINT=$MAINTAINER_MODE_TRUE
@@ -9226,12 +9248,14 @@ AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
 
 # Check to see how 'make' treats includes.	            -*- Autoconf -*-
 
-# Copyright (C) 2001-2012 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2005, 2009  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 4
+
 # AM_MAKE_INCLUDE()
 # -----------------
 # Check to see how make treats includes.
@@ -9249,7 +9273,7 @@ am__quote=
 _am_result=none
 # First try GNU make style include.
 echo "include confinc" > confmf
-# Ignore all kinds of additional output from 'make'.
+# Ignore all kinds of additional output from `make'.
 case `$am_make -s -f confmf 2> /dev/null` in #(
 *the\ am__doit\ target*)
   am__include=include
@@ -9276,12 +9300,15 @@ rm -f confinc confmf
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997-2012 Free Software Foundation, Inc.
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
+# Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 6
+
 # AM_MISSING_PROG(NAME, PROGRAM)
 # ------------------------------
 AC_DEFUN([AM_MISSING_PROG],
@@ -9289,6 +9316,7 @@ AC_DEFUN([AM_MISSING_PROG],
 $1=${$1-"${am_missing_run}$2"}
 AC_SUBST($1)])
 
+
 # AM_MISSING_HAS_RUN
 # ------------------
 # Define MISSING if not defined so far and test if it supports --run.
@@ -9309,18 +9337,50 @@ if eval "$MISSING --run true"; then
   am_missing_run="$MISSING --run "
 else
   am_missing_run=
-  AC_MSG_WARN(['missing' script is too old or missing])
+  AC_MSG_WARN([`missing' script is too old or missing])
 fi
 ])
 
+# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation,
+# Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 1
+
+# AM_PROG_MKDIR_P
+# ---------------
+# Check for `mkdir -p'.
+AC_DEFUN([AM_PROG_MKDIR_P],
+[AC_PREREQ([2.60])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+dnl Automake 1.8 to 1.9.6 used to define mkdir_p.  We now use MKDIR_P,
+dnl while keeping a definition of mkdir_p for backward compatibility.
+dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
+dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
+dnl Makefile.ins that do not define MKDIR_P, so we do our own
+dnl adjustment using top_builddir (which is defined more often than
+dnl MKDIR_P).
+AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
+case $mkdir_p in
+  [[\\/$]]* | ?:[[\\/]]*) ;;
+  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+])
+
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001-2012 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software
+# Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 5
+
 # _AM_MANGLE_OPTION(NAME)
 # -----------------------
 AC_DEFUN([_AM_MANGLE_OPTION],
@@ -9330,7 +9390,7 @@ AC_DEFUN([_AM_MANGLE_OPTION],
 # --------------------
 # Set option NAME.  Presently that only means defining a flag for this option.
 AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
+[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
 
 # _AM_SET_OPTIONS(OPTIONS)
 # ------------------------
@@ -9346,16 +9406,22 @@ AC_DEFUN([_AM_IF_OPTION],
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996-2012 Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
+# Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 5
+
 # AM_SANITY_CHECK
 # ---------------
 AC_DEFUN([AM_SANITY_CHECK],
 [AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftest.file
 # Reject unsafe characters in $srcdir or the absolute working directory
 # name.  Accept space and tab only in the latter.
 am_lf='
@@ -9366,40 +9432,32 @@ case `pwd` in
 esac
 case $srcdir in
   *[[\\\"\#\$\&\'\`$am_lf\ \	]]*)
-    AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
+    AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
 esac
 
-# Do 'set' in a subshell so we don't clobber the current shell's
+# Do `set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   am_has_slept=no
-   for am_try in 1 2; do
-     echo "timestamp, slept: $am_has_slept" > conftest.file
-     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
-     if test "$[*]" = "X"; then
-	# -L didn't work.
-	set X `ls -t "$srcdir/configure" conftest.file`
-     fi
-     if test "$[*]" != "X $srcdir/configure conftest.file" \
-	&& test "$[*]" != "X conftest.file $srcdir/configure"; then
-
-	# If neither matched, then we have a broken ls.  This can happen
-	# if, for instance, CONFIG_SHELL is bash and it inherits a
-	# broken ls alias from the environment.  This has actually
-	# happened.  Such a system could not be considered "sane".
-	AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
-  alias in your environment])
-     fi
-     if test "$[2]" = conftest.file || test $am_try -eq 2; then
-       break
-     fi
-     # Just in case.
-     sleep 1
-     am_has_slept=yes
-   done
+   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+   if test "$[*]" = "X"; then
+      # -L didn't work.
+      set X `ls -t "$srcdir/configure" conftest.file`
+   fi
+   rm -f conftest.file
+   if test "$[*]" != "X $srcdir/configure conftest.file" \
+      && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+      # If neither matched, then we have a broken ls.  This can happen
+      # if, for instance, CONFIG_SHELL is bash and it inherits a
+      # broken ls alias from the environment.  This has actually
+      # happened.  Such a system could not be considered "sane".
+      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
+alias in your environment])
+   fi
+
    test "$[2]" = conftest.file
    )
 then
@@ -9409,58 +9467,46 @@ else
    AC_MSG_ERROR([newly created file is older than distributed files!
 Check your system clock])
 fi
-AC_MSG_RESULT([yes])
-# If we didn't sleep, we still need to ensure time stamps of config.status and
-# generated files are strictly newer.
-am_sleep_pid=
-if grep 'slept: no' conftest.file >/dev/null 2>&1; then
-  ( sleep 1 ) &
-  am_sleep_pid=$!
-fi
-AC_CONFIG_COMMANDS_PRE(
-  [AC_MSG_CHECKING([that generated files are newer than configure])
-   if test -n "$am_sleep_pid"; then
-     # Hide warnings about reused PIDs.
-     wait $am_sleep_pid 2>/dev/null
-   fi
-   AC_MSG_RESULT([done])])
-rm -f conftest.file
-])
+AC_MSG_RESULT(yes)])
 
-# Copyright (C) 2001-2012 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 1
+
 # AM_PROG_INSTALL_STRIP
 # ---------------------
-# One issue with vendor 'install' (even GNU) is that you can't
+# One issue with vendor `install' (even GNU) is that you can't
 # specify the program used to strip binaries.  This is especially
 # annoying in cross-compiling environments, where the build's strip
 # is unlikely to handle the host's binaries.
 # Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in "make install-strip", and initialize
+# always use install-sh in `make install-strip', and initialize
 # STRIPPROG with the value of the STRIP variable (set by the user).
 AC_DEFUN([AM_PROG_INSTALL_STRIP],
 [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using 'strip' when the user
-# run "make install-strip".  However 'strip' might not be the right
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'.  However `strip' might not be the right
 # tool to use in cross-compilation environments, therefore Automake
-# will honor the 'STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
+# will honor the `STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
 if test "$cross_compiling" != no; then
   AC_CHECK_TOOL([STRIP], [strip], :)
 fi
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006-2012 Free Software Foundation, Inc.
+# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 3
+
 # _AM_SUBST_NOTMAKE(VARIABLE)
 # ---------------------------
 # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
@@ -9474,16 +9520,18 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004-2012 Free Software Foundation, Inc.
+# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 2
+
 # _AM_PROG_TAR(FORMAT)
 # --------------------
 # Check how to create a tarball in format FORMAT.
-# FORMAT should be one of 'v7', 'ustar', or 'pax'.
+# FORMAT should be one of `v7', `ustar', or `pax'.
 #
 # Substitute a variable $(am__tar) that is a command
 # writing to stdout a FORMAT-tarball containing the directory
@@ -9506,7 +9554,7 @@ AC_MSG_CHECKING([how to create a $1 tar archive])
 _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
 _am_tools=${am_cv_prog_tar_$1-$_am_tools}
 # Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of '-'.
+# Solaris sh will not grok spaces in the rhs of `-'.
 for _am_tool in $_am_tools
 do
   case $_am_tool in
diff --git a/framework/bootstrap b/framework/bootstrap
index db001054c3e684aae6efc1bf48532cf7e572e0cc..9cce19a8cddf3b2981d9f05d396ae47e908bcea9 100755
--- a/framework/bootstrap
+++ b/framework/bootstrap
@@ -1,5 +1,15 @@
 #!/bin/sh
 aclocal \
-    && (libtoolize || glibtoolize) \
-    && automake --foreign --add-missing \
+    && (libtoolize -c --force || glibtoolize -c --force) \
+    && automake --foreign --add-missing --copy \
     && autoconf
+
+for m in `ls modules`
+do
+    (cd modules;
+    if test -d $m; then
+        echo $m
+        (cd $m; sh ./bootstrap)
+    fi;
+    )
+done
diff --git a/framework/configure.ac b/framework/configure.ac
index d6659f9eb50e06adb71528365a6e556fb55ce449..a6841a21d01c7c15026d75bb5367c40dfeb11e68 100644
--- a/framework/configure.ac
+++ b/framework/configure.ac
@@ -1,10 +1,10 @@
 #                                               -*- Autoconf -*-
 # Process this file with autoconf to produce a configure script.
 
-AC_PREREQ([2.69])
+AC_PREREQ([2.59])
 
 AC_INIT(sleuthkitframework, 4.0.0)
-AC_CONFIG_SRCDIR([framework.h])
+AC_CONFIG_SRCDIR([tsk/framework/framework.h])
 AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_AUX_DIR(config)
 AM_INIT_AUTOMAKE([foreign])
@@ -13,8 +13,34 @@ AM_MAINTAINER_MODE
 AC_CONFIG_MACRO_DIR([m4])
 
 # Checks for programs.
+AC_LANG([C++])
 AC_PROG_CXX
 AC_PROG_CC
+AC_PROG_CPP
+
+# Check for OS
+AC_CANONICAL_HOST
+AM_CONDITIONAL([DARWIN],false)
+case $host_os in
+    darwin*)
+        # Mac
+        AM_CONDITIONAL([DARWIN],true)
+        ;;
+    linux*)
+        # Linux
+        # nothing special to do for now
+        ;;
+    *)
+        # Default Case
+        AC_MSG_ERROR([Your platform is not currently supported])
+        ;;
+esac
+
+# Not all compilers include /usr/local in the include and link path
+if test -e /usr/local/include; then
+    CFLAGS="$CFLAGS -I/usr/local/include"
+    LDFLAGS="$LDFLAGS -L/usr/local/lib"
+fi
 
 # Checks for libraries.
 
@@ -22,7 +48,7 @@ AC_PROG_CC
 AC_CHECK_HEADERS([stdlib.h string.h])
 
 # Checks for typedefs, structures, and compiler characteristics.
-AC_CHECK_HEADER_STDBOOL
+# AC_CHECK_HEADER_STDBOOL
 AC_C_INLINE
 AC_TYPE_INT32_T
 AC_TYPE_INT64_T
@@ -37,6 +63,134 @@ AC_FUNC_MALLOC
 AC_FUNC_REALLOC
 AC_CHECK_FUNCS([memset strtoul strtoull])
 
-AC_CONFIG_FILES([Makefile Utilities/Makefile])
+# Check for methods in library and check for header files
+AC_CHECK_HEADERS([Poco/Foundation.h Poco/Net/HTTPCookie.h Poco/DOM/Entity.h Poco/Util/Timer.h],[],AC_MSG_ERROR([Poco include files not found.]))
+
+AC_CHECK_LIB([PocoFoundation],[main],[HAVE_POCOFOUNDATION=1],AC_MSG_ERROR([PocoFoundation library not found.]))
+if test "$HAVE_POCOFOUNDATION"; then
+    save_libs="${LIBS}"
+    LIBS="-lPocoFoundation"
+    AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+            [#include "Poco/UnicodeConverter.h"],
+            [std::wstring wstr; Poco::UnicodeConverter::toUTF16("hello", wstr);]
+        )],
+        [LIBS="$LIBS $save_libs"],
+        [AC_MSG_ERROR([linking with PocoFoundation failed.])]
+    )
+fi
+
+AC_CHECK_LIB([PocoUtil],[main],[HAVE_POCOUTIL=1],AC_MSG_ERROR([PocoUtil library not found.]))
+if test "$HAVE_POCOUTIL"; then
+    save_libs="${LIBS}"
+    LIBS="-lPocoUtil"
+    AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+            [#include "Poco/Util/Option.h"],
+            [Poco::Util::Option();]
+        )],
+        [LIBS="$LIBS $save_libs"],
+        [AC_MSG_ERROR([linking with PocoUtil failed.])]
+    )
+fi
+
+AC_CHECK_LIB([PocoXML],[main],[HAVE_POCOXML=1],AC_MSG_ERROR([PocoXML library not found.]))
+if test "$HAVE_POCOXML"; then
+    save_libs="${LIBS}"
+    LIBS="-lPocoXML"
+    AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+            [#include "Poco/DOM/DOMParser.h"],
+            [Poco::XML::DOMParser().parse("http://www.google.com");]
+        )],
+        [LIBS="$LIBS $save_libs"],
+        [AC_MSG_ERROR([linking with PocoXML failed.])]
+    )
+fi
+
+AC_CHECK_LIB([PocoNet],[main],[HAVE_POCONET=1],AC_MSG_ERROR([PocoNet library not found.]))
+if test "$HAVE_POCONET"; then
+    save_libs="${LIBS}"
+    LIBS="-lPocoNet"
+    AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+            [#include "Poco/Net/HTTPClientSession.h"],
+            [Poco::Net::HTTPClientSession();]
+        )],
+        [LIBS="$LIBS $save_libs"],
+        [AC_MSG_ERROR([linking with PocoNET failed.])]
+    )
+fi
+
+AC_CHECK_LIB([PocoZip],[main],[HAVE_POCOZIP=1],AC_MSG_ERROR([PocoZip library not found.]))
+if test "$HAVE_POCOZIP"; then
+    save_libs="${LIBS}"
+    LIBS="-lPocoZip"
+    AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+            [#include "Poco/Zip/ZipArchive.h"],
+            [Poco::Zip::ZipArchive::FileHeaders::const_iterator fh;]
+        )],
+        [LIBS="$LIBS $save_libs"],
+        [AC_MSG_ERROR([linking with PocoZip failed.])]
+    )
+fi
+
+# Standard values for modules in the modules folder
+AC_SUBST(AM_CXXFLAGS_MOD, "-I../.. -I../../.. -Wall")
+AC_SUBST(AM_LIBADD_MOD, "../../tsk/framework/libtskframework.la ../../../tsk/libtsk.la")
+
+# REMOVE THESE
+AC_SUBST(TSK_INCLUDE, "-I../../..")
+AC_SUBST(FW_INCLUDE,  "-I../..")
+AC_SUBST(FW_LIBS, "../../tsk/framework/libtskframework.la ../../../tsk/libtsk.la")
+
+# RUNTIME_MODULES_CONFIG_DIR
+AC_SUBST(RUNTIME_MODULES_CONFIG_DIR, "../../runtime/modules_config")
+
+# MODULES_ROOT_DIR is the tsk/framework/modules directory
+# MODULES_ROOT_DIR is relative to RUNTIME_MODULES_CONFIG_DIR/<module_name>
+# so that each module can do the following to populate config files to the runtime directory.
+#   mkdir -p $(RUNTIME_MODULES_CONFIG_DIR)/<module_name>
+#   (cd $(RUNTIME_MODULES_CONFIG_DIR)/<module_name>; ln -s $(MODULES_ROOT_DIR)/c_foobarModule/foobar_config.xml .)
+AC_SUBST(MODULES_ROOT_DIR, "../../../modules")
+
+[rm -f modules/*/missing_libs.txt]
+for i in `ls modules/`
+do
+  if test -d "modules/${i}"; then
+    case ${i} in
+      c_FileTypeSigModule)          AC_CONFIG_SUBDIRS([modules/c_FileTypeSigModule]) ;;
+      c_LibExifModule)              AC_CONFIG_SUBDIRS([modules/c_LibExifModule]) ;;
+# NOTE: There is a small amount of code in the ZIP configure.ac to list out
+# all modules that missed dependencies.  If one gets added after it, then 
+# besure to move that code to that module so that it is shown at the end
+# of a "./configure" run
+      *)
+        AC_MSG_WARN([Unknown project (${i}) won't be configured automatically.]) ;;
+    esac
+  fi
+done
+
+AC_CONFIG_FILES([Makefile
+        tsk/framework/Makefile
+        tsk/framework/extraction/Makefile
+        tsk/framework/file/Makefile
+        tsk/framework/pipeline/Makefile
+        tsk/framework/services/Makefile
+        tsk/framework/utilities/Makefile
+        modules/Makefile
+        modules/c_EntropyModule/Makefile
+        modules/c_HashCalcModule/Makefile
+        modules/c_InterestingFilesModule/Makefile
+        modules/c_RegRipperModule/Makefile
+        modules/c_SaveInterestingFilesModule/Makefile
+        modules/c_SummaryReportModule/Makefile
+        modules/c_TskHashLookupModule/Makefile
+        modules/c_ZIPExtractionModule/Makefile
+        tools/Makefile
+        tools/tsk_analyzeimg/Makefile
+        tools/tsk_validatepipeline/Makefile
+])
 
 AC_OUTPUT
diff --git a/framework/docs/Doxyfile b/framework/docs/Doxyfile
index b7302442cffc45d68fea381e55bbf85f96c135c7..d11c8953891ad1582de44eef1a002c2fd2f589d1 100644
--- a/framework/docs/Doxyfile
+++ b/framework/docs/Doxyfile
@@ -32,7 +32,7 @@ PROJECT_NAME           = "The Sleuth Kit Framework"
 # This could be handy for archiving the generated documentation or
 # if some version control system is used.
 
-PROJECT_NUMBER         = 4.0
+PROJECT_NUMBER         = 4.1
 
 # Using the PROJECT_BRIEF tag one can provide an optional one line description
 # for a project that appears at the top of each page and should give viewer
@@ -673,11 +673,11 @@ INPUT                  = framework/docs/main.dox \
                          framework/docs/fw_extract.dox \
                          framework/docs/fw_pipelines.dox \
                          framework/docs/fw_examples.dox \
-                         framework/Extraction \
-                         framework/File \
-                         framework/Pipeline \
-                         framework/Services \
-                         framework/Utilities
+                         framework/tsk/framework/extraction \
+                         framework/tsk/framework/file \
+                         framework/tsk/framework/pipeline \
+                         framework/tsk/framework/services \
+                         framework/tsk/framework/utilities
 
 # This tag can be used to specify the character encoding of the source files
 # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
diff --git a/framework/docs/sample_pipeline_config_file.dox b/framework/docs/sample_pipeline_config_file.dox
index fbb0d53456553315666f98f182f39d7ac0fb8c8a..2bcc9d4a4ac401bab1a3006e6d1dd0145aa7fd1b 100755
--- a/framework/docs/sample_pipeline_config_file.dox
+++ b/framework/docs/sample_pipeline_config_file.dox
@@ -6,24 +6,24 @@
 <!-- Contains only the modules that ship with TSK -->
 <PIPELINE_CONFIG>
     <PIPELINE type="FileAnalysis">
-      <MODULE order="1" type="plugin" location="HashCalcModule"/>
-<!--<MODULE order="2" type="plugin" location="TskHashLookupModule" arguments="TODO: See README for how to create NSRL index file"/>-->
+      <MODULE order="1" type="plugin" location="tskHashCalcModule"/>
+<!--<MODULE order="2" type="plugin" location="tskHashLookupModule" arguments="TODO: See README for how to create NSRL index file"/>-->
 
-      <MODULE order="3" type="plugin" location="FileTypeSigModule"/>
-      <MODULE order="4" type="plugin" location="EntropyModule"/>
-      <MODULE order="5" type="plugin" location="ZipExtractionModule"/>
-      <MODULE order="6" type="plugin" location="LibExifModule"/>
+      <MODULE order="3" type="plugin" location="tskFileTypeSigModule"/>
+      <MODULE order="4" type="plugin" location="tskEntropyModule"/>
+      <MODULE order="5" type="plugin" location="tskZipExtractionModule"/>
+      <MODULE order="6" type="plugin" location="tskLibExifModule"/>
     </PIPELINE>
 
     <PIPELINE type="PostProcessing">
       <!--This pipeline configuration assumes that the RegRipper executable is named rip.exe and is present in the program directory-->
-      <!--<MODULE order="1" type="plugin" location="RegRipperModule" arguments="-e #PROG_DIR#\\RegRipper\\rip.exe; -o #MODULE_OUT_DIR#\\RegRipper\\"/>-->
+      <!--<MODULE order="1" type="plugin" location="tskRegRipperModule" arguments="-e #PROG_DIR#/RegRipper/rip.exe; -o #MODULE_OUT_DIR#/RegRipper/"/>-->
 
-      <MODULE order="2" type="plugin" location="InterestingFilesModule" arguments="#MODULE_DIR#\\InterestingFilesModule\\interesting_files.xml"/>
+      <MODULE order="2" type="plugin" location="tskInterestingFilesModule" arguments="#MODULE_CONFIG_DIR#/InterestingFilesModule/interesting_files.xml"/>
 
-      <MODULE order="3" type="plugin" location="SaveInterestingFilesModule"/>
+      <MODULE order="3" type="plugin" location="tskSaveInterestingFilesModule"/>
 
-      <MODULE order="4" type="plugin" location="SummaryReportModule"/>
+      <MODULE order="4" type="plugin" location="tskSummaryReportModule"/>
 
     </PIPELINE>
 </PIPELINE_CONFIG>
@@ -31,4 +31,4 @@
 
 \endcode
 
-*/
\ No newline at end of file
+*/
diff --git a/framework/framework.h b/framework/framework.h
deleted file mode 100755
index 34d06219f377f01d61f058c84eebf09fe491de42..0000000000000000000000000000000000000000
--- a/framework/framework.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- *
- *  The Sleuth Kit
- *
- *  Contact: Brian Carrier [carrier <at> sleuthkit [dot] org]
- *  Copyright (c) 2010-2012 Basis Technology Corporation. All Rights
- *  reserved.
- *
- *  This software is distributed under the Common Public License 1.0
- */
-
-#ifndef _TSK_OSSLIBTSK_H
-#define _TSK_OSSLIBTSK_H
-
-/**
- * Include this file when incorporating the framework into an
- * application.
- */
-
-#include "framework_i.h"
-
-#include "Services/TskServices.h"
-#include "Services/Log.h"
-#include "Services/TskImgDB.h"
-#include "Services/Scheduler.h"
-#include "Services/TskSystemProperties.h"
-#include "Services/TskBlackboard.h"
-#include "Services/TskDBBlackboard.h"
-#include "Utilities/SectorRuns.h"
-#include "Utilities/TskException.h"
-#include "Utilities/TskUtilities.h"
-#include "Extraction/TskImageFileTsk.h"
-#include "Extraction/CarveExtract.h"
-#include "Extraction/CarvePrep.h"
-#include "File/TskFileManager.h"
-#include "File/TskFile.h"
-#include "Pipeline/TskPipelineManager.h"
-#include "Pipeline/TskPipeline.h"
-#include "Pipeline/TskFileAnalysisPipeline.h"
-#include "Pipeline/TskReportPipeline.h"
-#include "Pipeline/TskModule.h"
-#include "Pipeline/TskExecutableModule.h"
-#include "Pipeline/TskPluginModule.h"
-#include "Pipeline/TskFileAnalysisPluginModule.h"
-#include "Pipeline/TskReportPluginModule.h"
-
-#endif
diff --git a/framework/modules/Makefile.am b/framework/modules/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..6f643bab7e06ea2e5663b94ddf09bffb078a05a0
--- /dev/null
+++ b/framework/modules/Makefile.am
@@ -0,0 +1,12 @@
+ACLOCAL_AMFLAGS = -I m4
+SUBDIRS= c_EntropyModule \
+	c_FileTypeSigModule \
+	c_HashCalcModule \
+	c_LibExifModule \
+	c_InterestingFilesModule \
+	c_ZIPExtractionModule \
+	c_SaveInterestingFilesModule \
+	c_SummaryReportModule \
+	c_TskHashLookupModule \
+	c_RegRipperModule
+
diff --git a/framework/modules/c_EntropyModule/EntropyModule.cpp b/framework/modules/c_EntropyModule/EntropyModule.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..4e8142b97dd412e396c4f09258aa38ca4f173737
--- /dev/null
+++ b/framework/modules/c_EntropyModule/EntropyModule.cpp
@@ -0,0 +1,445 @@
+/*
+*
+*  The Sleuth Kit
+*
+*  Contact: Brian Carrier [carrier <at> sleuthkit [dot] org]
+*
+*  This is free and unencumbered software released into the public domain.
+*  
+*  Anyone is free to copy, modify, publish, use, compile, sell, or
+*  distribute this software, either in source code form or as a compiled
+*  binary, for any purpose, commercial or non-commercial, and by any
+*  means.
+*  
+*  In jurisdictions that recognize copyright laws, the author or authors
+*  of this software dedicate any and all copyright interest in the
+*  software to the public domain. We make this dedication for the benefit
+*  of the public at large and to the detriment of our heirs and
+*  successors. We intend this dedication to be an overt act of
+*  relinquishment in perpetuity of all present and future rights to this
+*  software under copyright law.
+*  
+*  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+*  IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+*  OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+*  ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+*  OTHER DEALINGS IN THE SOFTWARE. 
+*/
+
+/**
+* \file EntropyModule.cpp
+* Contains the implementation of a file analysis module that calculates the
+* entropy of a file's contents.
+*
+* This sample module shows a basic Sleuth Kit Framework module.  It is
+* released as public domain and you are free to remove this header,  use
+* it as a starting point for your module, and choose whatever license that
+* you want.  Note that the framework itself is NOT public domain.
+*/
+
+// TSK Framework includes
+#include "tsk/framework/utilities/TskModuleDev.h"
+
+// Poco includes
+// Uncomment this include if using the Poco catch blocks.
+//#include "Poco/Exception.h"
+
+// C/C++ library includes
+#include <string>
+#include <cstring>
+#include <sstream>
+#include <math.h>
+#include <assert.h>
+
+// More complex modules will likely put functions and variables other than 
+// the module API functions in separate source files and/or may define various
+// C++ classes to perform the work of the module. However, it is possible to simply 
+// enclose such functions and variables in an anonymous namespace to give them file scope 
+// instead of global scope, as is done in this module. This replaces the older practice 
+// of declaring file scope functions and variables using the "static" keyword. An 
+// anonymous namespace is a more flexible construct, since it is possible to define 
+// types within it.
+//
+// NOTE: Linux/OS-X module developers should make sure module functions
+// other than the module API functions are either uniquely named or bound at module link time. 
+// Placing these functions in an anonymous namespace to give them static-linkage is one way to 
+// accomplish this.
+//
+// CAVEAT: Static data can be incompatible with multithreading, since each
+// thread will get its own copy of the data.
+namespace
+{
+    const char *MODULE_NAME = "tskEntropyModule";
+    const char *MODULE_DESCRIPTION = "Performs an entropy calculation for the contents of a given file";
+    const char *MODULE_VERSION = "1.0.0";
+
+    /**
+    * Calculates the entropy of a file.
+    *
+    * @param pFile A TskFile object corrersponding to a file.
+    * @return The entropy of the file.
+    */
+    double calculateEntropy(TskFile *pFile)
+    {
+        const uint32_t FILE_BUFFER_SIZE = 8193;
+
+        uint8_t byte = 0;
+        long byteCounts[256];
+        memset(byteCounts, 0, sizeof(long) * 256);
+        long totalBytes = 0;
+        char buffer[FILE_BUFFER_SIZE];
+        ssize_t bytesRead = 0;
+        do
+        {
+            memset(buffer, 0, FILE_BUFFER_SIZE);
+            bytesRead = pFile->read(buffer, FILE_BUFFER_SIZE);
+            if (bytesRead > 0)
+            {
+                for (int i = 0; i < bytesRead; ++i)
+                {
+                    byte = static_cast<uint8_t>(buffer[i]);
+                    byteCounts[byte]++;
+                }
+
+                totalBytes += bytesRead;
+            }
+        } 
+        while (bytesRead > 0);
+
+        double entropy = 0.0;
+        for (int i = 0; i<256; ++i)
+        {
+            double p = static_cast<double>(byteCounts[i]) / static_cast<double>(totalBytes);
+            if (p > 0.0)
+            {
+                entropy -= p * (log(p) / log(2.0));
+            }
+        }
+
+        return entropy;
+    }
+}
+
+extern "C" 
+{
+    /**
+    * Module identification function. 
+    *
+    * CAVEAT: This function is intended to be called by TSK Framework only. 
+    * Linux/OS-X modules should *not* call this function within the module 
+    * unless appropriate compiler/linker options are used to bind all 
+    * library-internal symbols at link time. 
+    *
+    * @return The name of the module.
+    */
+    TSK_MODULE_EXPORT const char *name()
+    {
+        return MODULE_NAME;
+    }
+
+    /**
+    * Module identification function. 
+    *
+    * CAVEAT: This function is intended to be called by TSK Framework only. 
+    * Linux/OS-X modules should *not* call this function within the module 
+    * unless appropriate compiler/linker options are used to bind all 
+    * library-internal symbols at link time. 
+    *
+    * @return A description of the module.
+    */
+    TSK_MODULE_EXPORT const char *description()
+    {
+        return MODULE_DESCRIPTION;
+    }
+
+    /**
+    * Module identification function. 
+    *
+    * CAVEAT: This function is intended to be called by TSK Framework only. 
+    * Linux/OS-X modules should *not* call this function within the module 
+    * unless appropriate compiler/linker options are used to bind all 
+    * library-internal symbols at link time. 
+    *
+    * @return The version of the module.
+    */
+    TSK_MODULE_EXPORT const char *version()
+    {
+        return MODULE_VERSION;
+    }
+
+    /**
+    * Module initialization function. Receives a string of initialization arguments, 
+    * typically read by the caller from a pipeline configuration file. 
+    * Returns TskModule::OK or TskModule::FAIL. Returning TskModule::FAIL indicates 
+    * the module is not in an operational state.  
+    *
+    * CAVEAT: This function is intended to be called by TSK Framework only. 
+    * Linux/OS-X modules should *not* call this function within the module 
+    * unless appropriate compiler/linker options are used to bind all 
+    * library-internal symbols at link time. 
+    *
+    * @param args a string of initialization arguments.
+    * @return TskModule::OK if initialization succeeded, otherwise TskModule::FAIL.
+    */
+    TskModule::Status TSK_MODULE_EXPORT initialize(const char* arguments)
+    {    
+        // The TSK Framework convention is to prefix error messages with the
+        // name of the module/class and the function that emitted the message. 
+        std::ostringstream msgPrefix;
+        msgPrefix << MODULE_NAME << "::initialize : ";
+
+        // Well-behaved modules should catch and log all possible exceptions
+        // and return an appropriate TskModule::Status to the TSK Framework. 
+        try
+        {
+            // If this module required initialization, the initialization code would
+            // go here.
+
+            return TskModule::OK;
+        }
+        catch (TskException &ex)
+        {
+            std::ostringstream msg;
+            msg << msgPrefix.str() << "TskException: " << ex.message();
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+        // Uncomment this catch block and the #include of "Poco/Exception.h" if using Poco.
+        //catch (Poco::Exception &ex)
+        //{
+        //    std::ostringstream msg;
+        //    msg << msgPrefix.str() << "Poco::Exception: " << ex.displayText();
+        //    LOGERROR(msg.str());
+        //    return TskModule::FAIL;
+        //}
+        catch (std::exception &ex)
+        {
+            std::ostringstream msg;
+            msg << msgPrefix.str() << "std::exception: " << ex.what();
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+        // Uncomment this catch block and add necessary .NET references if using C++/CLI.
+        //catch (System::Exception ^ex)
+        //{
+        //    std::ostringstream msg;
+        //    msg << msgPrefix.str() << "System::Exception: " << Maytag::systemStringToStdString(ex->Message);
+        //    LOGERROR(msg.str());
+        //    return TskModule::FAIL;
+        //}        
+        catch (...)
+        {
+            LOGERROR(msgPrefix.str() + "unrecognized exception");
+            return TskModule::FAIL;
+        }
+    }
+
+    /**
+    * Module execution function for file analysis modules. 
+    * Receives a pointer to a file the module is to process. The file is 
+    * represented by a TskFile interface from which both file content and file 
+    * metadata can be retrieved. Returns TskModule::OK, TskModule::FAIL, or 
+    * TskModule::STOP. Returning TskModule::FAIL indicates the module 
+    * experienced an error processing the file. 
+    *
+    * CAVEAT: This function is intended to be called by TSK Framework only. 
+    * Linux/OS-X modules should *not* call this function within the module 
+    * unless appropriate compiler/linker options are used to bind all 
+    * library-internal symbols at link time. 
+    *
+    * @param pFile A pointer to a file to be processed.
+    * @returns TskModule::OK on success, TskModule::FAIL on error, or 
+    * TskModule::STOP. Returning TskModule::STOP is a request to terminate 
+    * processing of the file.     
+    */
+    TskModule::Status TSK_MODULE_EXPORT run(TskFile *pFile)
+    {
+        // The TSK Framework convention is to prefix error messages with the
+        // name of the module/class and the function that emitted the message. 
+        std::ostringstream msgPrefix;
+        msgPrefix << MODULE_NAME << "::run : ";
+
+        // Well-behaved modules should catch and log all possible exceptions
+        // and return an appropriate TskModule::Status to the TSK Framework. 
+        try
+        {
+            assert(pFile != NULL);
+            if (pFile == NULL) 
+            {
+                throw TskException("passed NULL TskFile pointer");
+            }
+
+            // Calculate an entropy value for the file.
+            double entropy = calculateEntropy(pFile);
+
+            // Post the value to the blackboard.
+            pFile->addGenInfoAttribute(TskBlackboardAttribute(TSK_ENTROPY, MODULE_NAME, "", entropy));
+
+            return TskModule::OK;
+        }
+        catch (TskException &ex)
+        {
+            std::ostringstream msg;
+            msg << msgPrefix.str() << "TskException: " << ex.message();
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+        // Uncomment this catch block and the #include of "Poco/Exception.h" if using Poco.
+        //catch (Poco::Exception &ex)
+        //{
+        //    std::ostringstream msg;
+        //    msg << msgPrefix.str() << "Poco::Exception: " << ex.displayText();
+        //    LOGERROR(msg.str());
+        //    return TskModule::FAIL;
+        //}
+        catch (std::exception &ex)
+        {
+            std::ostringstream msg;
+            msg << msgPrefix.str() << "std::exception: " << ex.what();
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+        // Uncomment this catch block and add necessary .NET references if using C++/CLI.
+        //catch (System::Exception ^ex)
+        //{
+        //    std::ostringstream msg;
+        //    msg << msgPrefix.str() << "System::Exception: " << Maytag::systemStringToStdString(ex->Message);
+        //    LOGERROR(msg.str());
+        //    return TskModule::FAIL;
+        //}        
+        catch (...)
+        {
+            LOGERROR(msgPrefix.str() + "unrecognized exception");
+            return TskModule::FAIL;
+        }
+    }
+
+    //  /**
+    //   * Module execution function for post-processing modules. 
+    //   *
+    //   * CAVEAT: This function is intended to be called by TSK Framework only. 
+    //   * Linux/OS-X modules should *not* call this function within the module 
+    //   * unless appropriate compiler/linker options are used to bind all 
+    //   * library-internal symbols at link time. 
+    //   *
+    //   * @returns TskModule::OK on success, TskModule::FAIL on error
+    //   */
+    //  TskModule::Status TSK_MODULE_EXPORT report()
+    //  {
+    //      // The TSK Framework convention is to prefix error messages with the
+    //      // name of the module/class and the function that emitted the message. 
+    //      std::ostringstream msgPrefix;
+    //      msgPrefix << MODULE_NAME << "::report : ";
+    //
+    //      // Well-behaved modules should catch and log all possible exceptions
+    //      // and return an appropriate TskModule::Status to the TSK Framework. 
+    //      try
+    //      {
+    //          // If this module could be used in a post-processing pipeline, the 
+    //	      // code would go here.
+    //
+    //		  return TskModule::OK;
+    //      }
+    //      catch (TskException &ex)
+    //      {
+    //          std::ostringstream msg;
+    //          msg << msgPrefix.str() << "TskException: " << ex.message();
+    //          LOGERROR(msg.str());
+    //          return TskModule::FAIL;
+    //      }
+    //      // Uncomment this catch block and the #include of "Poco/Exception.h" if using Poco.
+    //      //catch (Poco::Exception &ex)
+    //      //{
+    //      //    std::ostringstream msg;
+    //      //    msg << msgPrefix.str() << "Poco::Exception: " << ex.displayText();
+    //      //    LOGERROR(msg.str());
+    //      //    return TskModule::FAIL;
+    //      //}
+    //      catch (std::exception &ex)
+    //      {
+    //          std::ostringstream msg;
+    //          msg << msgPrefix.str() << "std::exception: " << ex.what();
+    //          LOGERROR(msg.str());
+    //          return TskModule::FAIL;
+    //      }
+    //      // Uncomment this catch block and add necessary .NET references if using C++/CLI.
+    //      //catch (System::Exception ^ex)
+    //      //{
+    //      //    std::ostringstream msg;
+    //      //    msg << msgPrefix.str() << "System::Exception: " << Maytag::systemStringToStdString(ex->Message);
+    //      //    LOGERROR(msg.str());
+    //      //    return TskModule::FAIL;
+    //      //}        
+    //      catch (...)
+    //      {
+    //          LOGERROR(msgPrefix.str() + "unrecognized exception");
+    //          return TskModule::FAIL;
+    //      }
+    //  }
+
+    /**
+    * Module cleanup function. This is where the module should free any resources 
+    * allocated during initialization or execution.
+    *
+    * CAVEAT: This function is intended to be called by TSK Framework only. 
+    * Linux/OS-X modules should *not* call this function within the module 
+    * unless appropriate compiler/linker options are used to bind all 
+    * library-internal symbols at link time. 
+    *
+    * @returns TskModule::OK on success and TskModule::FAIL on error.
+    */
+    TskModule::Status TSK_MODULE_EXPORT finalize()
+    {
+        // The TSK Framework convention is to prefix error messages with the
+        // name of the module/class and the function that emitted the message. 
+        std::ostringstream msgPrefix;
+        msgPrefix << MODULE_NAME << "::finalize : ";
+
+        // Well-behaved modules should catch and log all possible exceptions
+        // and return an appropriate TskModule::Status to the TSK Framework. 
+        try
+        {
+            // If this module required finalization, the finalization code would
+            // go here.
+
+            return TskModule::OK;
+        }
+        catch (TskException &ex)
+        {
+            std::ostringstream msg;
+            msg << msgPrefix.str() << "TskException: " << ex.message();
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+        // Uncomment this catch block and the #include of "Poco/Exception.h" if using Poco.
+        //catch (Poco::Exception &ex)
+        //{
+        //    std::ostringstream msg;
+        //    msg << msgPrefix.str() << "Poco::Exception: " << ex.displayText();
+        //    LOGERROR(msg.str());
+        //    return TskModule::FAIL;
+        //}
+        catch (std::exception &ex)
+        {
+            std::ostringstream msg;
+            msg << msgPrefix.str() << "std::exception: " << ex.what();
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+        // Uncomment this catch block and add necessary .NET references if using C++/CLI.
+        //catch (System::Exception ^ex)
+        //{
+        //    std::ostringstream msg;
+        //    msg << msgPrefix.str() << "System::Exception: " << Maytag::systemStringToStdString(ex->Message);
+        //    LOGERROR(msg.str());
+        //    return TskModule::FAIL;
+        //}        
+        catch (...)
+        {
+            LOGERROR(msgPrefix.str() + "unrecognized exception");
+            return TskModule::FAIL;
+        }
+    }
+}
diff --git a/framework/modules/c_EntropyModule/Makefile.am b/framework/modules/c_EntropyModule/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..2332aa240f6c8f13c6df32e4c9060a592b9df9c1
--- /dev/null
+++ b/framework/modules/c_EntropyModule/Makefile.am
@@ -0,0 +1,5 @@
+AM_CXXFLAGS = $(AM_CXXFLAGS_MOD)
+
+lib_LTLIBRARIES = libtskEntropyModule.la
+libtskEntropyModule_la_SOURCES = EntropyModule.cpp
+libtskEntropyModule_la_LIBADD = $(AM_LIBADD_MOD)
diff --git a/framework/modules/c_EntropyModule/NEWS.txt b/framework/modules/c_EntropyModule/NEWS.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5735901a666aa601774569c092a809d7ae6cdae8
--- /dev/null
+++ b/framework/modules/c_EntropyModule/NEWS.txt
@@ -0,0 +1,9 @@
+Numbers refer to github.net issue #s:
+    https://github.com/sleuthkit/c_EntropyModule/issues
+    
+---------------- VERSION 1.0.0 --------------
+New Features:
+- Initial public release.
+
+Bug Fixes:
+- N/A. 
diff --git a/framework/modules/c_EntropyModule/README.txt b/framework/modules/c_EntropyModule/README.txt
new file mode 100644
index 0000000000000000000000000000000000000000..da7708e6e2fd8e5a6318e4991a81e8cb0c0db04d
--- /dev/null
+++ b/framework/modules/c_EntropyModule/README.txt
@@ -0,0 +1,33 @@
+Entropy Calculation Module
+Sleuth Kit Framework C++ Module
+May 2012
+
+
+This module is for the C++ Sleuth Kit Framework.
+
+
+DESCRIPTION
+
+This module is a file analysis module that performs an 
+entropy calculation for the contents of a given file. Entropy
+shows how random the file is and can be used to detect 
+encrypted or compressed files.
+
+DEPLOYMENT REQUIREMENTS
+
+This module does not have any specific deployment requirements.
+
+USAGE
+
+Add this module to a file analysis pipeline.  See the TSK 
+Framework documents for information on adding the module 
+to the pipeline:
+
+    http://www.sleuthkit.org/sleuthkit/docs/framework-docs/
+
+This module takes no configuration arguments.  
+
+RESULTS
+
+The result of the calculation is written to an attribute
+in the blackboard.
diff --git a/framework/modules/c_EntropyModule/win32/EntropyModule.sln b/framework/modules/c_EntropyModule/win32/EntropyModule.sln
new file mode 100644
index 0000000000000000000000000000000000000000..4197985fc54d5a2ea8c9ed844c0fcdb20719e2cb
--- /dev/null
+++ b/framework/modules/c_EntropyModule/win32/EntropyModule.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual C++ Express 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EntropyModule", "EntropyModule.vcproj", "{00E3B0EE-B612-433A-A43E-1CE0B3DE1015}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{00E3B0EE-B612-433A-A43E-1CE0B3DE1015}.Debug|Win32.ActiveCfg = Debug|Win32
+		{00E3B0EE-B612-433A-A43E-1CE0B3DE1015}.Debug|Win32.Build.0 = Debug|Win32
+		{00E3B0EE-B612-433A-A43E-1CE0B3DE1015}.Release|Win32.ActiveCfg = Release|Win32
+		{00E3B0EE-B612-433A-A43E-1CE0B3DE1015}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/framework/modules/c_EntropyModule/win32/EntropyModule.vcxproj b/framework/modules/c_EntropyModule/win32/EntropyModule.vcxproj
new file mode 100755
index 0000000000000000000000000000000000000000..85a2d4be87d2110036b53ac49f0429d3fbe0afb3
--- /dev/null
+++ b/framework/modules/c_EntropyModule/win32/EntropyModule.vcxproj
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{00E3B0EE-B612-433A-A43E-1CE0B3DE1015}</ProjectGuid>
+    <RootNamespace>EntropyModule</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">tsk$(ProjectName)</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">tsk$(ProjectName)</TargetName>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>$(TSK_HOME);$(TSK_HOME)\framework;$(POCO_HOME)\Foundation\include;$(POCO_HOME)\Util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <MinimalRebuild>true</MinimalRebuild>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>libtskframework.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(TSK_HOME)\framework\msvcpp\framework\$(Configuration);$(POCO_HOME)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+    <PostBuildEvent>
+      <Command>move /Y "$(SolutionDir)$(Configuration)\tsk$(ProjectName).dll" "$(ProjectDir)..\..\..\runtime"</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <AdditionalIncludeDirectories>$(TSK_HOME);$(TSK_HOME)\framework;$(POCO_HOME)\Foundation\include;$(POCO_HOME)\Util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>libtskframework.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(TSK_HOME)\framework\msvcpp\framework\$(Configuration);$(POCO_HOME)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+    <PostBuildEvent>
+      <Command>move /Y "$(SolutionDir)$(Configuration)\tsk$(ProjectName).dll" "$(ProjectDir)..\..\..\runtime"</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\EntropyModule.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\..\msvcpp\framework\framework.vcxproj">
+      <Project>{f791b16a-1489-4526-9fff-cb481cec5414}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/framework/modules/c_FileTypeSigModule/FileTypeModule.cpp b/framework/modules/c_FileTypeSigModule/FileTypeModule.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..e80a8ba9ea6d06df008197e339c0b42a9c437230
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/FileTypeModule.cpp
@@ -0,0 +1,203 @@
+/*
+ * The Sleuth Kit
+ *
+ * Contact: Brian Carrier [carrier <at> sleuthkit [dot] org]
+ * Copyright (c) 2010-2012 Basis Technology Corporation. All Rights
+ * reserved.
+ *
+ * This software is distributed under the Common Public License 1.0
+ */
+
+/**
+ * \file FileTypeSigModule.cpp
+ * Contains the module that uses libmagic to determine the
+ * file type based on signatures.
+ */
+
+// System includes
+#include <string>
+#include <sstream>
+#include <stdlib.h>
+#include <string.h>
+
+// Framework includes
+#include "tsk/framework/utilities/TskModuleDev.h"
+
+// Poco includes
+#include "Poco/UnicodeConverter.h"
+#include "Poco/File.h"
+#include "Poco/Path.h"
+
+// Magic includes
+#include "magic.h"
+
+namespace 
+{
+    const char *MODULE_NAME = "tskFileTypeSigModule";
+    const char *MODULE_DESCRIPTION = "Determines file type based on signature using libmagic";
+    const char *MODULE_VERSION = "1.0.3";
+
+  static const uint32_t FILE_BUFFER_SIZE = 1024;
+
+  static magic_t magicHandle = NULL;
+}
+
+extern "C" 
+{
+    /**
+     * Module identification function. 
+     *
+     * @return The name of the module.
+     */
+    TSK_MODULE_EXPORT const char *name() 
+    {
+        return MODULE_NAME;
+    }
+
+    /**
+     * Module identification function. 
+     *
+     * @return A description of the module.
+     */
+    TSK_MODULE_EXPORT const char *description()
+    {
+        return MODULE_DESCRIPTION;
+    }
+
+    /**
+     * Module identification function. 
+     *
+     * @return The version of the module.
+     */
+    TSK_MODULE_EXPORT const char *version()
+    {
+        return MODULE_VERSION;
+    }
+
+    /**
+     * Module initialization function. Takes a string as input that allows
+     * arguments to be passed into the module.
+     * @param arguments Tells the module which
+     */
+    TskModule::Status TSK_MODULE_EXPORT initialize(const char* arguments)
+    {
+        magicHandle = magic_open(MAGIC_NONE);
+        if (magicHandle == NULL) {
+            LOGERROR("FileTypeSigModule: Error allocating magic cookie.");
+            return TskModule::FAIL;
+        }
+
+//Attempt to load magic database from default places on Linux.
+//Don't bother trying magic_load() for defaults on win32 because it will always cause an exception instead of gracefully returning.
+#ifndef TSK_WIN32
+        /* Load the default magic database, which is found in this order:
+               1. MAGIC env variable
+               2. $HOME/.magic.mgc (or $HOME/.magic dir)
+               3. /usr/share/misc/magic.mgc (or /usr/share/misc/magic dir) (unless libmagic was build configured abnormally)
+        */
+        if (magic_load(magicHandle, NULL)) {
+            std::stringstream msg;
+            msg << "FileTypeSigModule: Error loading default magic file: " << magic_error(magicHandle);
+            LOGERROR(msg.str());
+            //don't return, just fall through to the default loading below
+        } else {
+            return TskModule::OK;
+        }
+#endif
+        //Load the magic database file in the repo
+        std::string path = GetSystemProperty(TskSystemProperties::MODULE_CONFIG_DIR) + Poco::Path::separator() + MODULE_NAME + Poco::Path::separator() + "magic.mgc";
+
+        Poco::File magicFile = Poco::File(path);
+        if (magicFile.exists() == false) {
+            std::stringstream msg;
+            msg << "FileTypeSigModule: Magic file not found: " << path;
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+
+        if (magic_load(magicHandle, path.c_str())) {
+            std::stringstream msg;
+            msg << "FileTypeSigModule: Error loading magic file: " << magic_error(magicHandle) << GetSystemProperty(TskSystemProperties::MODULE_CONFIG_DIR);
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+
+        return TskModule::OK;
+    }
+
+    /**
+     * The run() method is where the module's work is performed.
+     * The module will be passed a pointer to a file from which both
+     * content and metadata can be retrieved.
+     * @param pFile A pointer to a file to be processed.
+     * @returns TskModule::OK on success and TskModule::FAIL on error.
+     */
+    TskModule::Status TSK_MODULE_EXPORT run(TskFile * pFile)
+    {
+        if (pFile == NULL)
+        {
+            LOGERROR("FileTypeSigModule: Passed NULL file pointer.");
+            return TskModule::FAIL;
+        }
+
+        if (pFile->getSize() == 0)
+            return TskModule::OK;
+
+        try
+        {
+            char buffer[FILE_BUFFER_SIZE];
+
+            //Do that magic magic
+            ssize_t readLen = pFile->read(buffer, FILE_BUFFER_SIZE);
+            // we shouldn't get zero as a return value since we know the file is not 0 sized at this point
+            if (readLen <= 0) {
+                std::stringstream msg;
+                msg << "FileTypeSigModule: Error reading file contents for file " << pFile->getId();
+                LOGERROR(msg.str());
+                return TskModule::FAIL;
+            }
+
+            const char *type = magic_buffer(magicHandle, buffer, readLen);
+            if (type == NULL) {
+                std::stringstream msg;
+                msg << "FileTypeSigModule: Error getting file type: " << magic_error(magicHandle);
+                LOGERROR(msg.str());
+                return TskModule::FAIL;
+            }
+
+            // clean up type -- we've seen invalid UTF-8 data being returned
+            char cleanType[1024];
+            cleanType[1023] = '\0';
+            strncpy(cleanType, type, 1023);
+            TskUtilities::cleanUTF8(cleanType);
+
+            // Add to blackboard
+            TskBlackboardAttribute attr(TSK_FILE_TYPE_SIG, MODULE_NAME, "", cleanType);
+            pFile->addGenInfoAttribute(attr);
+        }
+        catch (TskException& tskEx)
+        {
+            std::stringstream msg;
+            msg << "FileTypeModule: Caught framework exception: " << tskEx.message();
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+        catch (std::exception& ex)
+        {
+            std::stringstream msg;
+            msg << "FileTypeModule: Caught exception: " << ex.what();
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+
+        return TskModule::OK;
+    }
+
+    TskModule::Status TSK_MODULE_EXPORT finalize()
+    {
+        if (magicHandle != NULL) {
+            magic_close(magicHandle);
+        }
+        return TskModule::OK;
+    }
+}
diff --git a/framework/modules/c_FileTypeSigModule/Makefile.am b/framework/modules/c_FileTypeSigModule/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..7f5e221875ecb30e1c199fcc5c43b3d1fe378ab3
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/Makefile.am
@@ -0,0 +1,40 @@
+ACLOCAL_AMFLAGS = -I m4
+AM_CXXFLAGS = $(FW_INCLUDE) $(TSK_INCLUDE) -Wall
+LDFLAGS="-lmagic"
+
+# this will be true if libmagic was found by configure. 
+# We don't have configure fail at runtime because then no modules
+# can be compiled. 
+if HAS_LIBMAGIC
+
+lib_LTLIBRARIES = libtskFileTypeSigModule.la
+libtskFileTypeSigModule_la_SOURCES = FileTypeModule.cpp
+libtskFileTypeSigModule_la_LIBADD = $(FW_LIBS)
+
+nobase_dist_data_DATA = tsk/FileTypeSigModule/magic.mgc
+
+.PHONY: maybe_copy_configs setup_data
+bin_PROGRAMS = maybe_copy_configs setup_data
+
+setup_data_SOURCES = 
+setup_data:
+	-mkdir -p tsk/FileTypeSigModule
+	(cd tsk/FileTypeSigModule; ln -sf ../../file-5.08/magic/magic.mgc .)
+
+MODULE_CONFIG_DIR = $(RUNTIME_MODULES_CONFIG_DIR)/tskFileTypeSigModule
+
+maybe_copy_configs_SOURCES =
+maybe_copy_configs:
+	if test "$(FW_LIBS)" != ""; then \
+		mkdir -p $(MODULE_CONFIG_DIR); \
+		(cd $(MODULE_CONFIG_DIR); ln -sf $(MODULES_ROOT_DIR)/c_FileTypeSigModule/file-5.08/magic/magic.mgc .); \
+	fi
+
+else
+
+bin_PROGRAMS = no_libmagic
+no_libmagic_SOURCES = 
+no_libmagic:
+	@echo "Nothing to do for FileTypeSigModule, libmagic not found."
+
+endif
diff --git a/framework/modules/c_FileTypeSigModule/NEWS.txt b/framework/modules/c_FileTypeSigModule/NEWS.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ad2cd52fb14ec393aa78394b09c3b62b1c211353
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/NEWS.txt
@@ -0,0 +1,18 @@
+Numbers refer to github.net issue #s:
+    https://github.com/sleuthkit/c_FileTypeSigModule/issues
+    
+---------------- VERSION 1.0.3 --------------
+- Linux support
+
+---------------- VERSION 1.0.2 --------------
+- Log message update
+
+---------------- VERSION 1.0.1 --------------
+
+
+---------------- VERSION 1.0.0 --------------
+New Features:
+- Initial public release.
+
+Bug Fixes:
+- N/A. 
diff --git a/framework/modules/c_FileTypeSigModule/README.txt b/framework/modules/c_FileTypeSigModule/README.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2861d035654a61886a3528eb5cdcab137edee5c2
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/README.txt
@@ -0,0 +1,83 @@
+File Type Detection Based on Signature Module
+Sleuth Kit Framework C++ Module
+July 2012. Updated Dec 2012.
+
+This module is for the C++ Sleuth Kit Framework.
+
+
+DESCRIPTION
+
+This module is a file analysis module that examines the file content
+to determine its type (i.e. PDF, JPEG).  It does this based on file
+signatures in libmagic.
+
+DEPLOYMENT REQUIREMENTS
+
+This module has the following deployment requirements for each platform.
+
+Linux:
+
+1. libmagic1
+2. libmagic-dev
+
+Install libmagic1 and libmagic-dev packages, or download the source from one of these places:
+    ftp://ftp.astron.com/pub/file/
+    https://github.com/glensc/file
+If downloaded from the FTP site, the source archive name will be something like "file-5.11.tar.gz".
+
+Win32:
+
+1. libmagic-1.dll must be in the same folder as the module.
+2. The magic file "magic.mgc" must be in a folder named
+   "FileTypeSigModule" in your modules folder.
+
+See also "README_BuildingLibMagicWin32.txt".
+
+USAGE
+
+Add this module to a file analysis pipeline.  See the TSK 
+Framework documents for information on adding the module 
+to the pipeline:
+
+    http://www.sleuthkit.org/sleuthkit/docs/framework-docs/
+
+This module takes no configuration arguments.  
+
+RESULTS
+
+The result of the signature check is written to an attribute
+in the blackboard.
+
+LICENSES
+
+This module uses libmagic.  It has the following license requirements:
+
+$File: COPYING,v 1.1 2008/02/05 19:08:11 christos Exp $
+Copyright (c) Ian F. Darwin 1986, 1987, 1989, 1990, 1991, 1992, 1994, 1995.
+Software written by Ian F. Darwin and others;
+maintained 1994- Christos Zoulas.
+
+This software is not subject to any export provision of the United States
+Department of Commerce, and may be exported to any country or planet.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice immediately at the beginning of the file, without modification,
+   this list of conditions, and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+ 
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
diff --git a/framework/modules/c_FileTypeSigModule/README_BuildingLibMagicWin32.txt b/framework/modules/c_FileTypeSigModule/README_BuildingLibMagicWin32.txt
new file mode 100755
index 0000000000000000000000000000000000000000..ffd6c74cf4bd6e3683d269bf1f5040413d957b1b
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/README_BuildingLibMagicWin32.txt
@@ -0,0 +1,41 @@
+Building libmagic (and libgnurx, I guess):
+
+  First, you need a copy of mingw and msys installed (for convenience, in the
+top-level directory (C:)).  Then, you need to go into the mingw-libgnurx-2.5.1
+directory in third-party-tools.  From there, run this in an msys shell (yes, it
+does matter):
+
+  ./configure --prefix=/mingw && make && make install
+
+  Now you have a copy of libgnurx.  The configure script should be able to tell
+that it has to cross-compile, so now you should have a copy of libgnurx-0.dll
+installed in the right place (which is under /mingw, because the mingw linker is
+funny and doesn't look other places).  Go back to this directory (file-5.08) and
+run
+
+  ./configure && make
+
+  There should now be a copy of libmagic-1.dll sitting in src/.libs.   Copy it
+into this directory.
+
+Creating libmagic-1.lib:
+
+  Linking against libmagic using Microsoft development tools requires the creation
+  of an "import library" (aka a .lib file). You can create the .lib file as follows:
+  
+  1. Generate a .def file (export definitions) for the dll by running the following 
+     commands in your MSYS shell:
+  
+     a. mingw-get install mingw32-gendef
+  
+     b. gendef libmagic-1.dll
+     
+     This will result in a file named libmagic-1.def
+     
+  2. Generate the .lib file by running the following command in a Microsoft Visual
+     Studio shell:
+     
+     a. lib.exe /machine:i386 /def:libmagic-1.def /out:libmagic-1.lib
+     
+   That's it. You can now link against libmagic in Visual Studio project files by
+   including libmagic-1.lib (and the path in which it lives) as linker settings.
\ No newline at end of file
diff --git a/framework/modules/c_FileTypeSigModule/bootstrap b/framework/modules/c_FileTypeSigModule/bootstrap
new file mode 100755
index 0000000000000000000000000000000000000000..db001054c3e684aae6efc1bf48532cf7e572e0cc
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/bootstrap
@@ -0,0 +1,5 @@
+#!/bin/sh
+aclocal \
+    && (libtoolize || glibtoolize) \
+    && automake --foreign --add-missing \
+    && autoconf
diff --git a/framework/modules/c_FileTypeSigModule/config/config.guess b/framework/modules/c_FileTypeSigModule/config/config.guess
new file mode 120000
index 0000000000000000000000000000000000000000..2a81b2837d066bda2938389e684d894ebfa87d0d
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/config/config.guess
@@ -0,0 +1 @@
+/usr/local/Cellar/automake/1.12.3/share/automake-1.12/config.guess
\ No newline at end of file
diff --git a/framework/modules/c_FileTypeSigModule/config/config.sub b/framework/modules/c_FileTypeSigModule/config/config.sub
new file mode 120000
index 0000000000000000000000000000000000000000..4b62869cb9cb47d8d2390ad64f3716df4737eff0
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/config/config.sub
@@ -0,0 +1 @@
+/usr/local/Cellar/automake/1.12.3/share/automake-1.12/config.sub
\ No newline at end of file
diff --git a/framework/modules/c_FileTypeSigModule/config/depcomp b/framework/modules/c_FileTypeSigModule/config/depcomp
new file mode 120000
index 0000000000000000000000000000000000000000..f116400df9c9fb3bdfe2b44dcb6e9e7fe62362fd
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/config/depcomp
@@ -0,0 +1 @@
+/usr/local/Cellar/automake/1.12.3/share/automake-1.12/depcomp
\ No newline at end of file
diff --git a/framework/modules/c_FileTypeSigModule/config/install-sh b/framework/modules/c_FileTypeSigModule/config/install-sh
new file mode 120000
index 0000000000000000000000000000000000000000..8372cd29dfabb741b676881d7eb2c603d59e0255
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/config/install-sh
@@ -0,0 +1 @@
+/usr/local/Cellar/automake/1.12.3/share/automake-1.12/install-sh
\ No newline at end of file
diff --git a/framework/modules/c_FileTypeSigModule/config/ltmain.sh b/framework/modules/c_FileTypeSigModule/config/ltmain.sh
new file mode 120000
index 0000000000000000000000000000000000000000..a8ce566234a320b1b512ccf534082c8816c19958
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/config/ltmain.sh
@@ -0,0 +1 @@
+/usr/local/Cellar/libtool/2.4.2/share/libtool/config/ltmain.sh
\ No newline at end of file
diff --git a/framework/modules/c_FileTypeSigModule/config/missing b/framework/modules/c_FileTypeSigModule/config/missing
new file mode 120000
index 0000000000000000000000000000000000000000..cc0c0a6fb8fe1cdeba5895244a9ab341aab53665
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/config/missing
@@ -0,0 +1 @@
+/usr/local/Cellar/automake/1.12.3/share/automake-1.12/missing
\ No newline at end of file
diff --git a/framework/modules/c_FileTypeSigModule/configure.ac b/framework/modules/c_FileTypeSigModule/configure.ac
new file mode 100644
index 0000000000000000000000000000000000000000..c78379eaac86d6c54a253610382517b4534a3ccd
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/configure.ac
@@ -0,0 +1,173 @@
+#                                               -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+AC_PREREQ([2.59])
+
+AC_INIT(c_FileTypeModule, 1.0.0)
+AC_CONFIG_SRCDIR([FileTypeModule.cpp])
+AC_CONFIG_AUX_DIR(config)
+AM_INIT_AUTOMAKE([foreign])
+AM_PROG_LIBTOOL
+AM_MAINTAINER_MODE
+AC_CONFIG_MACRO_DIR([m4])
+
+# Checks for programs.
+AC_LANG([C++])
+AC_PROG_CXX
+AC_PROG_CC
+AC_PROG_CPP
+
+# Not all compilers include /usr/local in the include and link path
+if test -e /usr/local/include; then
+    CFLAGS="$CFLAGS -I/usr/local/include"
+    LDFLAGS="$LDFLAGS -L/usr/local/lib"
+fi
+
+# Checks for libraries.
+
+# Checks for header files.
+AC_CHECK_HEADERS([stdlib.h string.h])
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_C_INLINE
+AC_TYPE_INT32_T
+AC_TYPE_INT64_T
+AC_TYPE_SIZE_T
+AC_TYPE_SSIZE_T
+AC_TYPE_UINT32_T
+AC_TYPE_UINT64_T
+AC_TYPE_UINT8_T
+
+# Checks for library functions.
+AC_FUNC_MALLOC
+AC_FUNC_REALLOC
+AC_CHECK_FUNCS([memset strtoul strtoull])
+
+# Check for methods in library and check for header files
+AC_CHECK_HEADERS([Poco/Foundation.h Poco/Net/HTTPCookie.h Poco/DOM/Entity.h Poco/Util/Timer.h],
+  [],
+  AC_MSG_ERROR([Poco include files not found.])
+)
+
+AC_CHECK_LIB([PocoFoundation],[main],[HAVE_POCOFOUNDATION=1],AC_MSG_ERROR([PocoFoundation library not found.]))
+if test "$HAVE_POCOFOUNDATION"; then
+    save_libs="${LIBS}"
+    LIBS="-lPocoFoundation"
+    AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+            [#include "Poco/UnicodeConverter.h"],
+            [std::wstring wstr; Poco::UnicodeConverter::toUTF16("hello", wstr);]
+        )],
+        [LIBS="$LIBS $save_libs"],
+        [AC_MSG_ERROR([linking with PocoFoundation failed.])]
+    )
+fi
+
+AC_CHECK_LIB([PocoUtil],[main],[HAVE_POCOUTIL=1],AC_MSG_ERROR([PocoUtil library not found.]))
+if test "$HAVE_POCOUTIL"; then
+    save_libs="${LIBS}"
+    LIBS="-lPocoUtil"
+    AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+            [#include "Poco/Util/Option.h"],
+            [Poco::Util::Option();]
+        )],
+        [LIBS="$LIBS $save_libs"],
+        [AC_MSG_ERROR([linking with PocoUtil failed.])]
+    )
+fi
+
+AC_CHECK_LIB([PocoXML],[main],[HAVE_POCOXML=1],AC_MSG_ERROR([PocoXML library not found.]))
+if test "$HAVE_POCOXML"; then
+    save_libs="${LIBS}"
+    LIBS="-lPocoXML"
+    AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+            [#include "Poco/DOM/DOMParser.h"],
+            [Poco::XML::DOMParser().parse("http://www.google.com");]
+        )],
+        [LIBS="$LIBS $save_libs"],
+        [AC_MSG_ERROR([linking with PocoXML failed.])]
+    )
+fi
+
+AC_CHECK_LIB([PocoNet],[main],[HAVE_POCONET=1],AC_MSG_ERROR([PocoNet library not found.]))
+if test "$HAVE_POCONET"; then
+    save_libs="${LIBS}"
+    LIBS="-lPocoNet"
+    AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+            [#include "Poco/Net/HTTPClientSession.h"],
+            [Poco::Net::HTTPClientSession();]
+        )],
+        [LIBS="$LIBS $save_libs"],
+        [AC_MSG_ERROR([linking with PocoNET failed.])]
+    )
+fi
+
+AC_CHECK_LIB([PocoZip],[main],[HAVE_POCOZIP=1],AC_MSG_ERROR([PocoZip library not found.]))
+if test "$HAVE_POCOZIP"; then
+    save_libs="${LIBS}"
+    LIBS="-lPocoZip"
+    AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+            [#include "Poco/Zip/ZipArchive.h"],
+            [Poco::Zip::ZipArchive::FileHeaders::const_iterator fh;]
+        )],
+        [LIBS="$LIBS $save_libs"],
+        [AC_MSG_ERROR([linking with PocoZip failed.])]
+    )
+fi
+
+# Check for libmagic
+AC_CHECK_HEADERS([magic.h],
+  [AC_CHECK_LIB([magic], [magic_open], 
+     [with_magic=yes],
+     [AC_MSG_WARN([Found magic headers, but could not link to libmagic library.])],
+  )],
+  [AC_MSG_WARN([Cound not find magic headers.])]
+)
+AM_CONDITIONAL([HAS_LIBMAGIC], [test "x$with_magic" = "xyes"])
+AM_COND_IF([HAS_LIBMAGIC], [rm -f missing_libs.txt], [echo "libmagic for FileTypeModule" > missing_libs.txt])
+
+# If libmagic was not found, we continue on and do not error. 
+# The makefile will simply not compile anything. 
+# This allows us to more easily build from the top-level makefile in the framework.
+
+if test "x$with_magic" = "xyes"; then
+
+# RUNTIME_MODULES_CONFIG_DIR
+AC_SUBST(RUNTIME_MODULES_CONFIG_DIR, "../../runtime/modules_config")
+
+# MODULES_ROOT_DIR is the tsk/framework/modules directory
+# MODULES_ROOT_DIR is relative to RUNTIME_MODULES_CONFIG_DIR/<module_name>
+# so that each module can do the following to populate config files to the runtime directory.
+#   mkdir -p $(RUNTIME_MODULES_CONFIG_DIR)/<module_name>
+#   (cd $(RUNTIME_MODULES_CONFIG_DIR)/<module_name>; ln -s $(MODULES_ROOT_DIR)/c_foobarModule/foobar_config.xml .)
+AC_SUBST(MODULES_ROOT_DIR, "../../../modules")
+
+# Check if the module is under tsk/framework/modules
+if test -f ../../modules/Makefile.am; then
+   AC_SUBST(FW_LIBS, "../../tsk/framework/libtskframework.la ../../../tsk/libtsk.la")
+   AC_SUBST(TSK_INCLUDE, "-I../../..")
+   AC_SUBST(FW_INCLUDE,  "-I../..")
+else
+   # Not part of tsk/framework/modules, check if Tsk and Framework has been installed
+   AC_SUBST(FW_LIBS, "")
+   AC_SUBST(TSK_INCLUDE, "")
+   AC_SUBST(FW_INCLUDE,  "")
+   AC_CHECK_HEADERS([tsk/libtsk.h],[],AC_MSG_ERROR([Tsk include files not found.]))
+   AC_CHECK_LIB([tsk],[main],[],AC_MSG_ERROR([Tsk library not found.]))
+   AC_CHECK_HEADERS([tsk/framework/framework.h],[],AC_MSG_ERROR([Framework include files not found.]))
+   AC_CHECK_LIB([tskframework],[main],[],AC_MSG_ERROR([tskframework library not found.]))
+fi
+
+else
+# action if libmagic is not found
+AC_MSG_WARN([libmagic library not found. FileTypeSigModule will not be built.])
+fi
+
+AC_CONFIG_FILES([Makefile])
+
+AC_OUTPUT
+
diff --git a/framework/modules/c_FileTypeSigModule/cpl1.0.txt b/framework/modules/c_FileTypeSigModule/cpl1.0.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c9990a7ea45dbb64f81f7bface6d0f765d96c086
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/cpl1.0.txt
@@ -0,0 +1,213 @@
+Common Public License Version 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC
+LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
+CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+    a) in the case of the initial Contributor, the initial code and
+documentation distributed under this Agreement, and
+
+    b) in the case of each subsequent Contributor:
+
+    i) changes to the Program, and
+
+    ii) additions to the Program;
+
+    where such changes and/or additions to the Program originate from and are
+distributed by that particular Contributor. A Contribution 'originates' from a
+Contributor if it was added to the Program by such Contributor itself or anyone
+acting on such Contributor's behalf. Contributions do not include additions to
+the Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii) are not
+derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are
+necessarily infringed by the use or sale of its Contribution alone or when
+combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement,
+including all Contributors.
+
+2. GRANT OF RIGHTS
+
+    a) Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide, royalty-free copyright license to
+reproduce, prepare derivative works of, publicly display, publicly perform,
+distribute and sublicense the Contribution of such Contributor, if any, and such
+derivative works, in source code and object code form.
+
+    b) Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed
+Patents to make, use, sell, offer to sell, import and otherwise transfer the
+Contribution of such Contributor, if any, in source code and object code form.
+This patent license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor, such
+addition of the Contribution causes such combination to be covered by the
+Licensed Patents. The patent license shall not apply to any other combinations
+which include the Contribution. No hardware per se is licensed hereunder.
+
+    c) Recipient understands that although each Contributor grants the licenses
+to its Contributions set forth herein, no assurances are provided by any
+Contributor that the Program does not infringe the patent or other intellectual
+property rights of any other entity. Each Contributor disclaims any liability to
+Recipient for claims brought by any other entity based on infringement of
+intellectual property rights or otherwise. As a condition to exercising the
+rights and licenses granted hereunder, each Recipient hereby assumes sole
+responsibility to secure any other intellectual property rights needed, if any.
+For example, if a third party patent license is required to allow Recipient to
+distribute the Program, it is Recipient's responsibility to acquire that license
+before distributing the Program.
+
+    d) Each Contributor represents that to its knowledge it has sufficient
+copyright rights in its Contribution, if any, to grant the copyright license set
+forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its
+own license agreement, provided that:
+
+    a) it complies with the terms and conditions of this Agreement; and
+
+    b) its license agreement:
+
+    i) effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title and
+non-infringement, and implied warranties or conditions of merchantability and
+fitness for a particular purpose;
+
+    ii) effectively excludes on behalf of all Contributors all liability for
+damages, including direct, indirect, special, incidental and consequential
+damages, such as lost profits;
+
+    iii) states that any provisions which differ from this Agreement are offered
+by that Contributor alone and not by any other party; and
+
+    iv) states that source code for the Program is available from such
+Contributor, and informs licensees how to obtain it in a reasonable manner on or
+through a medium customarily used for software exchange. 
+
+When the Program is made available in source code form:
+
+    a) it must be made available under this Agreement; and
+
+    b) a copy of this Agreement must be included with each copy of the Program. 
+
+Contributors may not remove or alter any copyright notices contained within the
+Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if
+any, in a manner that reasonably allows subsequent Recipients to identify the
+originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with
+respect to end users, business partners and the like. While this license is
+intended to facilitate the commercial use of the Program, the Contributor who
+includes the Program in a commercial product offering should do so in a manner
+which does not create potential liability for other Contributors. Therefore, if
+a Contributor includes the Program in a commercial product offering, such
+Contributor ("Commercial Contributor") hereby agrees to defend and indemnify
+every other Contributor ("Indemnified Contributor") against any losses, damages
+and costs (collectively "Losses") arising from claims, lawsuits and other legal
+actions brought by a third party against the Indemnified Contributor to the
+extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor to
+control, and cooperate with the Commercial Contributor in, the defense and any
+related settlement negotiations. The Indemnified Contributor may participate in
+any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product
+offering, Product X. That Contributor is then a Commercial Contributor. If that
+Commercial Contributor then makes performance claims, or offers warranties
+related to Product X, those performance claims and warranties are such
+Commercial Contributor's responsibility alone. Under this section, the
+Commercial Contributor would have to defend claims against the other
+Contributors related to those performance claims and warranties, and if a court
+requires any other Contributor to pay any damages as a result, the Commercial
+Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
+IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each
+Recipient is solely responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its exercise of
+rights under this Agreement, including but not limited to the risks and costs of
+program errors, compliance with applicable laws, damage to or loss of data,
+programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
+CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
+PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
+GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable
+law, it shall not affect the validity or enforceability of the remainder of the
+terms of this Agreement, and without further action by the parties hereto, such
+provision shall be reformed to the minimum extent necessary to make such
+provision valid and enforceable.
+
+If Recipient institutes patent litigation against a Contributor with respect to
+a patent applicable to software (including a cross-claim or counterclaim in a
+lawsuit), then any patent licenses granted by that Contributor to such Recipient
+under this Agreement shall terminate as of the date such litigation is filed. In
+addition, if Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the Program
+itself (excluding combinations of the Program with other software or hardware)
+infringes such Recipient's patent(s), then such Recipient's rights granted under
+Section 2(b) shall terminate as of the date such litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to
+comply with any of the material terms or conditions of this Agreement and does
+not cure such failure in a reasonable period of time after becoming aware of
+such noncompliance. If all Recipient's rights under this Agreement terminate,
+Recipient agrees to cease use and distribution of the Program as soon as
+reasonably practicable. However, Recipient's obligations under this Agreement
+and any licenses granted by Recipient relating to the Program shall continue and
+survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in
+order to avoid inconsistency the Agreement is copyrighted and may only be
+modified in the following manner. The Agreement Steward reserves the right to
+publish new versions (including revisions) of this Agreement from time to time.
+No one other than the Agreement Steward has the right to modify this Agreement.
+IBM is the initial Agreement Steward. IBM may assign the responsibility to serve
+as the Agreement Steward to a suitable separate entity. Each new version of the
+Agreement will be given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the Agreement
+under which it was received. In addition, after a new version of the Agreement
+is published, Contributor may elect to distribute the Program (including its
+Contributions) under the new version. Except as expressly stated in Sections
+2(a) and 2(b) above, Recipient receives no rights or licenses to the
+intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the
+intellectual property laws of the United States of America. No party to this
+Agreement will bring a legal action under this Agreement more than one year
+after the cause of action arose. Each party waives its rights to a jury trial in
+any resulting litigation.
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/AUTHORS b/framework/modules/c_FileTypeSigModule/file-5.08/AUTHORS
new file mode 100755
index 0000000000000000000000000000000000000000..3d3d34a0af6a698fdd503c20819d42e1eea157c4
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/AUTHORS
@@ -0,0 +1 @@
+See COPYING.
\ No newline at end of file
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/COPYING b/framework/modules/c_FileTypeSigModule/file-5.08/COPYING
new file mode 100755
index 0000000000000000000000000000000000000000..b3db8b23fbf3f4e85e67de0f2376fc836f1ca5c5
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/COPYING
@@ -0,0 +1,29 @@
+$File: COPYING,v 1.1 2008/02/05 19:08:11 christos Exp $
+Copyright (c) Ian F. Darwin 1986, 1987, 1989, 1990, 1991, 1992, 1994, 1995.
+Software written by Ian F. Darwin and others;
+maintained 1994- Christos Zoulas.
+
+This software is not subject to any export provision of the United States
+Department of Commerce, and may be exported to any country or planet.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice immediately at the beginning of the file, without modification,
+   this list of conditions, and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+ 
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/ChangeLog b/framework/modules/c_FileTypeSigModule/file-5.08/ChangeLog
new file mode 100755
index 0000000000000000000000000000000000000000..49325356e6823e8ede61249f31461fdf407e8c08
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/ChangeLog
@@ -0,0 +1,1084 @@
+2011-07-12  12:32  Reuben Thomas <rrt@sc3d.org>
+
+	* Fix detection of Zip files (Mantis #128).
+	* Make some minor improvements to file(1).
+	* Rename MIME types for filesystem objects for consistency with
+	  xdg-utils. Typically this means that application/x-foo becomes
+	  inode/foo, but some names also change slightly, e.g.
+	  application/x-character-device becomes inode/chardevice.
+
+2011-05-10  20:57  Christos Zoulas <christos@zoulas.com>
+
+	* fix mingw compilation (Abradoks)
+
+2011-05-10  20:57  Christos Zoulas <christos@zoulas.com>
+
+	* remove patchlevel.h
+	* Fix read past allocated memory caused by double-incrementing
+	  a pointer in a loop (reported by Roberto Maar)
+
+2011-03-30  15:45  Christos Zoulas <christos@zoulas.com>
+
+	* Fix cdf string buffer setting (Sven Anders)
+
+2011-03-20  16:35  Christos Zoulas <christos@zoulas.com>
+
+	* Eliminate MAXPATHLEN and use dynamic allocation for
+	  path and file buffers.
+
+2011-03-15  18:15  Christos Zoulas <christos@zoulas.com>
+
+	* binary tests on magic entries with masks could spuriously
+	  get converted to ascii.
+
+2011-03-12  18:06  Reuben Thomas <rrt@sc3d.org>
+
+	* Improve file.man (remove BUGS, present email addresses consistently).
+
+2011-03-07  19:38  Christos Zoulas <christos@zoulas.com>
+
+	* add lrzip support (from Ville Skytta)
+
+2011-02-10  16:36  Christos Zoulas <christos@zoulas.com>
+
+	* fix CDF bounds checking (Guy Helmer)
+
+2011-02-10  12:03  Christos Zoulas <christos@zoulas.com>
+
+	* add cdf_ctime() that prints a meaningful error when time cannot
+	  be converted.
+
+2011-02-02  20:40  Christos Zoulas <christos@zoulas.com>
+
+	* help and version output to stdout.
+
+	* When matching softmagic for ascii files, don't just print
+	  the softmagic classification, keep going and print the
+	  text classification too. This fixes broken troff files when
+	  we moved them from keyword recognition to softmagic
+	  (they stopped printing "with CRLF" etc.)
+	  Reported by Doug McIlroy.
+
+2011-01-16  19:31  Reuben Thomas <rrt@sc3d.org>
+
+	* Fix two potential buffer overruns in apprentice_list.
+
+2011-01-14  22:33  Reuben Thomas <rrt@sc3d.org>
+
+	* New Python binding in pure Python.
+	* Update libmagic(3).
+
+2011-01-06  21:40  Reuben Thomas <rrt@sc3d.org>
+
+	* Fix Python bindings (including recent Python 3 compatibility
+	  update).
+
+2011-01-04  18:43  Reuben Thomas <rrt@sc3d.org>
+
+	* magic/Makefile.am: make it easier to recover from magic build failures.
+	* Fix pstring length specifier parsing to avoid generating invalid
+	  magic files.
+	* Add pstring length "J" (for "JPEG") to specify that the length
+	  include itself.
+	* Fix JPEG comment parsing at last using pstring/HJ!
+	* Ignore section 5 man pages in doc/.cvsignore.
+
+2010-12-22  13:12  Christos Zoulas <christos@zoulas.com>
+
+	* Add pstring/BHhLl to specify the type of the length of pascal
+	  strings.
+
+2010-11-26  18:39  Reuben Thomas <rrt@sc3d.org>
+
+	* Fix "-e soft": it was ignored when softmagic was called
+	  during asciimagic.
+	* Improve comments and use "unsigned char" in tar.h/is_tar.c.
+
+2010-11-05  17:26  Reuben Thomas <rrt@sc3d.org>
+
+	* Make bug reporting addresses more visible.
+
+2010-11-01  18:35  Reuben Thomas <rrt@sc3d.org>
+
+	* Add tcl magic from Gustaf Neumann
+
+2010-10-24  10:42  Christos Zoulas <christos@zoulas.com>
+
+	* Fix the whitespace comparing code (Christopher Chittleborough)
+
+2010-10-06  21:05  Christos Zoulas <christos@zoulas.com>
+
+	* allow string/t to work (Jan Kaluza)
+
+2010-09-20  22:11  Reuben Thomas <rrt@sc3d.org>
+
+	* Apply some patches from Ubuntu and Fedora.
+
+2010-09-20  21:16  Reuben Thomas <rrt@sc3d.org>
+
+	* Apply all patches from Debian package 5.04-6 which have not
+	  already been applied and are not Debian-specific.
+
+2010-09-20  15:24  Reuben Thomas <rrt@sc3d.org>
+
+	* Minor security fix to softmagic.c (don't use untrusted
+	  string as printf format).
+
+2010-07-21  12:20  Christos Zoulas <christos@zoulas.com>
+
+	* MINGW32 portability from LRN
+
+	* Don't warn about escaping magic regex chars when we are in a regex.
+
+2010-07-19  10:55  Christos Zoulas <christos@zoulas.com>
+
+	* Only try to print prpsinfo for core files. (Jan Kaluza)
+
+2010-04-22  12:55  Christos Zoulas <christos@zoulas.com>
+
+	* Try more elf offsets for Debian core files.  (Arnaud Giersch)
+
+2010-02-20  15:18  Reuben Thomas <rrt@sc3d.org>
+
+	* Clarify which sort of CDF we mean.
+
+2010-02-14  22:58  Reuben Thomas <rrt@sc3d.org>
+
+	* Re-jig Zip file type magic so that unsupported special
+	  Zip types (those with "mimetype" at offset 30) can be
+	  recognized.
+
+2010-02-02  21:50  Reuben Thomas <rrt@sc3d.org>
+
+	* Add support for OCF (EPUB) files (application/epub+zip)
+
+2010-01-28  18:25  Christos Zoulas <christos@zoulas.com>
+
+	* Fix core-dump from unbound loop:
+	  https://bugzilla.redhat.com/show_bug.cgi?id=533245
+
+2010-01-22  15:45  Christos Zoulas <christos@zoulas.com>
+
+	* print proper mime for crystal reports file
+
+	* print the last summary information of a cdf document, not the
+	  first so that nested documents print the right info
+
+2010-01-16  18:42  Charles Longeau <chl@tuxfamily.org>
+
+	* bring back some fixes from OpenBSD:
+		- make gcc2 builds file
+		- fix typos in a magic file comment
+
+2009-11-17  18:35  Christos Zoulas <christos@zoulas.com>
+
+	* ctime/asctime can return NULL on some OS's although
+	  they should not (Toshit Antani)
+
+2009-09-14  13:49  Christos Zoulas <christos@zoulas.com>
+
+	* Centralize magic path handling routines and remove the
+	  special-casing from file.c so that the python module for
+	  example comes up with the same magic path (Fixes ~/.magic
+	  handling) (from Gab)
+
+2009-09-11  23:38  Reuben Thomas <rrt@sc3d.org>
+
+	* When magic argument is a directory, read the files in
+	  strcmp-sorted order (fixes Debian bug #488562 and our own FIXME).
+
+2009-09-11  13:11  Reuben Thomas <rrt@sc3d.org>
+
+	* Combine overlapping epoc and psion magic files into one (epoc).
+
+	* Add some more EPOC MIME types.
+
+2009-08-19  15:55  Christos Zoulas <christos@zoulas.com>
+
+	* Fix 3 bugs (From Ian Darwin):
+	    - file_showstr could move one past the end of the array
+	    - parse_apple did not nul terminate the string in the overflow case
+	    - parse_mime truncated the wrong string in the overflow case
+
+2009-08-12  12:28  Robert Byrnes  <byrnes@wildpumpkin.net>
+
+	* Include Localstuff when compiling magic.
+
+2009-07-15  10:05  Christos Zoulas <christos@zoulas.com>
+
+	* Fix logic for including mygetopts.h
+
+	* Make cdf.c compile again with debugging
+
+	* Add the necessary field handling for crystal reports files to work
+
+2009-06-23 01:34  Reuben Thomas <rrt@sc3d.org>
+
+	* Stop "(if" identifying Lisp files, that's plain dumb!
+
+2009-06-09 22:13  Reuben Thomas <rrt@sc3d.org>
+
+	* Add a couple of missing MP3 MIME types.
+
+2009-05-27 23:00  Reuben Thomas <rrt@sc3d.org>
+
+	* Add full range of hash-bang tests for Python and Ruby.
+
+	* Add MIME types for Python and Ruby scripts.
+
+2009-05-13  10:44  Christos Zoulas <christos@zoulas.com>
+
+	* off by one in parsing hw capabilities in elf
+	  (Cheng Renquan)
+
+2009-05-08  13:40  Christos Zoulas <christos@zoulas.com>
+	
+	* lint fixes and more from NetBSD
+
+2009-05-06  10:25  Christos Zoulas <christos@zoulas.com>
+
+	* Avoid null dereference in cdf code (Drew Yao)
+
+	* More cdf bounds checks and overflow checks
+
+2009-05-01  18:37  Christos Zoulas <christos@zoulas.com>
+
+	* Buffer overflow fixes from Drew Yao
+
+2009-04-30  17:10  Christos Zoulas <christos@zoulas.com>
+
+	* Fix more cdf lossage. All the documents I have
+	  right now print the correct information.
+
+2009-03-27  18:43  Christos Zoulas <christos@zoulas.com>
+
+	* don't print \012- separators in the same magic entry 
+	  if it consists of multiple magic printing lines.
+
+2009-03-23  10:20  Christos Zoulas <christos@zoulas.com>
+
+	* Avoid file descriptor leak in compress code from
+	  (Daniel Novotny)
+
+2009-03-18  16:50  Christos Zoulas <christos@zoulas.com>
+
+	* Allow escaping of relation characters, so that we can say \^[A-Z]
+	  and the ^ is not eaten as a relation char.
+
+	* Fix troff and fortran to their previous glory using
+	  regex. This was broken since their removel from ascmagic.
+
+2009-03-10  16:50  Christos Zoulas <christos@zoulas.com>
+
+	* don't use strlen in strndup() (Toby Peterson)
+
+2009-03-10  7:45  Christos Zoulas <christos@zoulas.com>
+
+	* avoid c99 syntax.
+
+2009-02-23 15:45  Christos Zoulas <christos@zoulas.com>
+
+	* make the cdf code use the buffer first if available,
+	  and then the fd code.
+
+2009-02-13 13:45  Christos Zoulas <christos@zoulas.com>
+
+	* look for struct option to determine if getopt.h is usable for IRIX.
+
+	* sanitize cdf document strings
+
+2009-02-04 13:25  Christos Zoulas <christos@zoulas.com>
+
+	* fix OS/2 warnings.
+
+2008-12-12 15:50  Christos Zoulas <christos@zoulas.com>
+
+	* fix initial offset calculation for non 4K sector files
+
+	* add loop limits to avoid DoS attacks by constructing
+	  looping sector references.
+
+2008-12-03 13:05  Christos Zoulas <christos@zoulas.com>
+
+	* fix memory botches on cdf file parsing.
+
+	* exit with non-zero value for any error, not just for the last
+	  file processed.
+
+2008-11-09 20:42  Charles Longeau <chl@tuxfamily.org>
+
+	* Replace all str{cpy,cat} functions with strl{cpy,cat}
+	* Ensure that strl{cpy,cat} are included in libmagic,
+	  as needed.
+
+2008-11-06 18:18  Christos Zoulas <christos@zoulas.com>
+
+	* Handle ID3 format files.
+
+2008-11-06 23:00  Reuben Thomas <rrt@sc3d.org>
+
+	* Fix --mime, --mime-type and --mime-encoding under new scheme.
+
+	* Rename "ascii" to "text" and add "encoding" test.
+
+	* Return a precise ("utf-16le" or "utf-16be") MIME charset for
+	  UTF-16.
+
+	* Fix error in comment caused by automatic indentation adding
+	  words!
+
+2008-11-06 10:35  Christos Zoulas <christos@astron.com>
+
+	* use memchr instead of strchr because the string
+	  might not be NUL terminated (Scott MacVicar)
+
+2008-11-03 07:31  Reuben Thomas <rrt@sc3d.org>
+
+	* Fix a printf with a non-literal format string.
+
+	* Fix formatting and punctuation of help for "--apple".
+
+2008-10-30 11:00  Reuben Thomas <rrt@sc3d.org>
+
+	* Correct words counts in comments of struct magic.
+
+	* Fix handle_annotation to allow both Apple and MIME types to be
+	  printed, and to return correct code if MIME type is
+	  printed (1, not 0) or if there's an error (-1 not 1).
+
+	* Fix output of charset for MIME type (precede with semi-colon;
+	  fixes Debian bug #501460).
+
+	* Fix potential attacks via conversion specifications in magic
+	  strings.
+
+	* Add a FIXME for Debian bug #488562 (magic files should be
+	  read in a defined order, by sorting the names).
+
+2008-10-18 16:45  Christos Zoulas <christos@astron.com>
+
+	* Added APPLE file creator/type
+
+2008-10-12 10:20  Christos Zoulas <christos@astron.com>
+
+	* Added CDF parsing
+
+2008-10-09 16:40  Christos Zoulas <christos@astron.com>
+
+	* filesystem and msdos patches (Joerg Jenderek)
+
+2008-10-09 13:20  Christos Zoulas <christos@astron.com>
+
+	* correct --exclude documentation issues: remove troff and fortran
+	  and rename "token" to "tokens". (Randy McMurchy)
+
+2008-10-01 10:30  Christos Zoulas <christos@astron.com>
+
+	* Read ~/.magic in addition to the default magic file not instead
+	  of, as documented in the man page.
+
+2008-09-10 21:30  Reuben Thomas  <rrt@sc3d.org>
+
+	* Comment out graphviz patterns, as they match too many files.
+
+2008-08-30 12:54  Christos Zoulas <christos@astron.com>
+
+	* Don't eat trailing \n in magic enties.
+
+	* Cast defines to allow compilation using a c++ compiler.
+
+2008-08-25 23:56  Reuben Thomas  <rrt@sc3d.org>
+
+	* Add text/x-lua MIME type for Lua scripts.
+
+	* Escape { in regex in graphviz patterns.
+
+2008-07-26 00:59  Reuben Thomas  <rrt@sc3d.org>
+
+	* Add MIME types for special files.
+
+	* Use access to give more accurate information for files that
+	  can't be opened.
+
+	* Add a TODO list.
+
+2008-07-02 11:15  Christos Zoulas  <christos@astron.com>
+
+	* add !:strength op to adjust magic strength (experimental)
+
+2008-06-16 21:41  Reuben Thomas  <rrt@sc3d.org>
+
+	* Fix automake error in configure.ac.
+
+	* Add MIME type for Psion Sketch files.
+
+2008-06-05 08:59  Christos Zoulas  <christos@astron.com>
+
+	* Don't print warnings about bad namesize in stripped
+	  binaries with PT_NOTE is still there, and the actual
+	  note is gone (Jakub Jelinek)
+
+2008-05-28 15:12  Robert Byrnes  <byrnes@wildpumpkin.net>
+
+	* magic/Magdir/elf:
+	  Note invalid byte order for little-endian SPARC32PLUS.
+	  Add SPARC V9 vendor extensions and memory model.
+
+	* src/elfclass.h:
+	  Pass target machine to doshn (for Solaris hardware capabilities).
+
+	* src/readelf.c (doshn):
+	  Add support for Solaris hardware/software capabilities.
+
+	* src/readelf.h:
+	  Ditto.
+
+	* src/vasprintf.c (dispatch):
+	  Add support for ll modifier.
+
+2008-05-16 10:25  Christos Zoulas  <christos@astron.com>
+
+	* Fix compiler warnings.
+
+	* remove stray printf, and fix a vprintf bug. (Martin Dorey)
+
+2008-05-06 00:13  Robert Byrnes  <byrnes@wildpumpkin.net>
+
+	* src/Makefile.am:
+	  Ensure that getopt_long and [v]asprintf are included in libmagic,
+	  as needed.
+
+	  Remove unnecessary EXTRA_DIST.
+
+	* src/Makefile.in:
+	  Rerun automake.
+
+	* src/vasprintf.c (dispatch):
+	  Fix variable precision bug: be sure to step past '*'.
+
+	* src/vasprintf.c (core):
+	  Remove unreachable code.
+
+	* src/apprentice.c (set_test_type):
+	  Add cast to avoid compiler warning.
+
+2008-04-22 23:45  Christos Zoulas  <christos@astron.com>
+
+	* Add magic submission guidelines (Abel Cheung)
+
+	* split msdos and windows magic (Abel Cheung)
+
+2008-04-04 11:00  Christos Zoulas  <christos@astron.com>
+
+	* >= <= is not supported, so fix the magic and warn about it.
+	  reported by: Thien-Thi Nguyen <ttn@gnuvola.org>
+
+2008-03-27 16:16  Robert Byrnes  <byrnes@wildpumpkin.net>
+
+	* src/readelf.c (donote):
+	  ELF core file command name/line bug fixes and enhancements:
+
+	  Try larger offsets first to avoid false matches
+	  from earlier data that happen to look like strings;
+	  this primarily affected SunOS 5.x 32-bit Intel core files.
+
+	  Add support for command line (instead of just short name)
+	  for SunOS 5.x.
+
+	  Add information about NT_PSINFO for SunOS 5.x.
+
+	  Only trim whitespace from end of command line.
+
+2007-02-11 01:36 Reuben Thomas <rrt@sc3d.org>
+
+	* Change strength of ! from MULT to 0, as it matches almost
+		  anything (Reuben Thomas)
+
+	* Debian fixes (Reuben Thomas)
+
+2007-02-11 00:17 Reuben Thomas <rrt@sc3d.org>
+
+	* Clarify UTF-8 BOM message (Reuben Thomas)
+
+	* Add HTML comment to token list in names.h
+
+2007-02-04 15:50 Christos Zoulas <christos@astron.com>
+
+	* Debian fixes (Reuben Thomas)
+
+2007-02-04 11:31 Christos Zoulas <christos@astron.com>
+
+	* !:mime annotations in magic files (Reuben Thomas)
+
+2007-01-29 15:35 Christos Zoulas <christos@astron.com>
+
+	* zero out utime/utimes structs (Gavin Atkinson)
+
+2007-01-26 13:45 Christos Zoulas <christos@astron.com>
+
+	* reduce writable data from Diego "Flameeyes" Petten
+
+2007-12-28 15:06 Christos Zoulas <christos@astron.com>
+
+	* strtof detection
+
+	* remove bogus regex magic that could cause a DoS
+
+	* better mismatch version message
+
+2007-12-27 11:35 Christos Zoulas <christos@astron.com>
+
+	* bring back some fixes from OpenBSD
+
+	* treat ELF dynamic objects as executables
+
+	* fix gcc warnings
+
+2007-12-01 19:55 Christos Zoulas <christos@astron.com>
+
+	* make sure we have zlib.h and libz to compile the builtin
+	  decompress code
+
+2007-10-28 20:48 Christos Zoulas <christos@astron.com>
+
+ 	* float and double magic support (Behan Webster)
+
+2007-10-28 20:48 Christos Zoulas <christos@astron.com>
+
+	* Convert fortran to a soft test (Reuben Thomas)
+
+2007-10-23  5:25 Christos Zoulas <christos@astron.com>
+
+	* Add --with-filename, and --no-filename (Reuben Thomas)
+
+2007-10-23  3:59 Christos Zoulas <christos@astron.com>
+
+	* Rest of the mime split (Reuben Thomas)
+
+	* Make usage message generated from the flags so that
+	  they stay consistent (Reuben Thomas)
+
+2007-10-20  3:06 Christos Zoulas <christos@astron.com>
+
+	* typo in comment, missing ifdef QUICK, remove unneeded code
+		(Charles Longeau)
+
+2007-10-17  3:33 Christos Zoulas <christos@astron.com>
+
+	* Fix problem printing -\012 in some entries
+
+	* Separate magic type and encoding flags (Reuben Thomas)
+
+2007-10-09  3:55 Christos Zoulas <christos@astron.com>
+
+	* configure fix for int64 and strndup (Reuben Thomas)
+
+2007-09-26  4:45 Christos Zoulas <christos@astron.com>
+
+	* Add magic_descriptor() function.
+
+	* Fix regression in elf reading code where the core name was
+	  not being printed.
+
+	* Don't convert NUL's to spaces in {l,b}estring16 (Daniel Dawson)
+
+2007-08-19  6:30 Christos Zoulas <christos@astron.com>
+
+	* Make mime format consistent so that it can
+	  be easily parsed:
+	      mimetype [charset=character-set] [encoding=encoding-mime-type]
+
+	  Remove spurious extra text from some MIME type printouts
+	  (mostly in is_tar).
+
+	  Fix one case where -i produced nothing at all (for a 1-byte file,
+	  which is now classed as application/octet-stream).
+
+	  Remove 7/8bit classifications, since they were arbitrary
+	  and not based on the file data.
+
+	  This work was done by Reuben Thomas
+
+2007-05-24 10:00 Christos Zoulas <christos@astron.com>
+
+	* Fix another integer overflow (Colin Percival)
+
+2007-03-26 13:58 Christos Zoulas <christos@astron.com>
+
+	* make sure that all of struct magic_set is initialized appropriately
+	  (Brett)
+
+2007-03-25 17:44 Christos Zoulas <christos@astron.com>
+
+	* reset left bytes in the buffer (Dmitry V. Levin)
+
+	* compilation failed with COMPILE_ONLY and ENABLE_CONDITIONALS
+	  (Peter Avalos)
+
+2007-03-15 10:51 Christos Zoulas <christos@astron.com>
+
+	* fix fortran and nroff reversed tests (Dmitry V. Levin)
+
+	* fix exclude option (Dmitry V. Levin)
+
+2007-02-08 17:30 Christos Zoulas <christos@astron.com>
+
+	* fix integer underflow in file_printf which can lead to
+	  to exploitable heap overflow (Jean-Sebastien Guay-Lero)
+
+2007-02-05 11:35 Christos Zoulas <christos@astron.com>
+
+	* make socket/pipe reading more robust
+
+2007-01-25 16:01 Christos Zoulas <christos@astron.com>
+
+	* Centralize all the tests in file_buffer.
+
+	* Add exclude flag.
+
+2007-01-18 05:29 Anon Ymous <do@not.spam.me>
+
+	* Move the "type" detection code from parse() into its own table
+	  driven routine.  This avoids maintaining multiple lists in
+	  file.h.
+
+	* Add an optional conditional field (ust before the type field).
+	  This code is wrapped in "#ifdef ENABLE_CONDITIONALS" as it is
+	  likely to go away.
+
+2007-01-16 23:24 Anon Ymous <do@not.spam.me>
+
+	* Fix an initialization bug in check_mem().
+
+2007-01-16 14:58 Anon Ymous <do@not.spam.me>
+
+	* Add a "default" type to print a message if nothing previously
+	  matched at that level or since the last default at that
+	  level.  This is useful for setting up switch-like statements.
+	  It can also be used to do if/else constructions without a
+	  redundant second test.
+
+	* Fix the "x" special case test so that one can test for that
+	  string with "=x".
+
+	* Allow "search" to search the entire buffer if the "/N"
+	  search count is missing.
+
+	* Make "regex" work!  It now starts its search at the
+	  specified offset and takes an (optional) "/N" line count to
+	  specify the search range; otherwise it searches to the end
+	  of the file.  The match is now grabbed correctly for format
+	  strings and the offset set to the end of the match.
+
+	* Add a "/s" flag to "regex" and "search" to set the offset to
+	  the start of the match.  By default the offset is set to the
+	  end of the match, as it is with other tests.  This is mostly
+	  useful for "regex".
+
+	* Make "search", "string" and "pstring" use the same
+	  file_strncmp() routine so that they support the same flags;
+	  "bestring16" and "lestring16" call the same routine, but
+	  with flags = 0.  Also add a "/C" flag (in analogy to "/c")
+	  to ignore the case on uppercase (lowercase) characters in
+	  the test string.
+
+	* Strict adherence to C style string escapes.  A warnings are
+	  printed when compiling.  Note: previously "\a" was
+	  incorrectly translated to 'a' instead of an <alert> (i.e.,
+	  BELL, typically 0x07).
+
+	* Make this compile with "-Wall -Wextra" and all the warning
+	  flags used with WARNS=4 in the NetBSD source.  Also make it
+	  pass lint.
+
+	* Many "cleanups" and hopefully not too many new bugs!
+
+2007-01-16 14:56 Anon Ymous <do@not.spam.me>
+
+	* make several more files compile with gcc warnings
+	  on and also make them pass lint.
+
+2007-01-16 14:54 Anon Ymous <do@not.spam.me>
+
+	* fix a puts()/putc() usage goof in file.c
+
+	* make file.c compile with gcc warnings and pass lint
+
+2006-12-11 16:49 Christos Zoulas <christos@astron.com>
+
+	* fix byteswapping issue
+
+	* report the number of bytes we tried to
+	  allocate when allocation fails
+
+	* add a few missed cases in the strength routine
+
+2006-12-08 16:32 Christos Zoulas <christos@astron.com>
+
+	* store and print the line number of the magic
+	  entry for debugging.
+
+	* if the magic entry did not print anything,
+	  don't treat it as a match
+
+	* change the magic strength algorithm to take
+	  into account the relationship op.
+
+	* fix a bug in search where we could accidentally
+	  return a match.
+
+	* propagate the error return from match to
+	  file_softmagic.
+
+2006-11-25 13:35 Christos Zoulas <christos@astron.com>
+
+	* Don't store the current offset in the magic
+	  struct, because it needs to be restored and
+	  it was not done properly all the time. Bug
+	  found by: Arkadiusz Miskiewicz
+
+	* Fix problem in the '\0' separator; and don't
+	  print it as an additional separator; print
+	  it as the only separator.
+
+2006-11-17 10:51 Christos Zoulas <christos@astron.com>
+
+	* Added a -0 option to print a '\0' separator
+	  Etienne Buira <etienne.buira@free.fr>
+
+2006-10-31 15:14 Christos Zoulas <christos@astron.com>
+
+	* Check offset before copying (Mike Frysinger)
+
+	* merge duplicated code
+
+	* add quad date support
+
+	* make sure that we nul terminate desc (Ryoji Kanai)
+
+	* don't process elf notes multiple times
+
+	* allow -z to report empty compressed files
+
+	* use calloc to initialize the ascii buffers (Jos van den Oever)
+
+2006-06-08 11:11 Christos Zoulas <christos@astron.com>
+
+	* QNX fixes (Mike Gorchak)
+
+	* Add quad support.
+
+	* FIFO checks (Dr. Werner Fink)
+
+	* Linux ELF fixes (Dr. Werner Fink)
+
+	* Magic format checks (Dr. Werner Fink)
+
+	* Magic format function improvent (Karl Chen)
+
+2006-05-03 11:11 Christos Zoulas <christos@astron.com>
+
+	* Pick up some elf changes and some constant fixes from SUSE
+
+	* Identify gnu tar vs. posix tar
+
+	* When keep going, don't print spurious newlines (Radek Vok�l)
+
+2006-04-01 12:02 Christos Zoulas <christos@astron.com>
+
+	* Use calloc instead of malloc (Mike Frysinger)
+
+	* Fix configure script to detect wctypes.h (Mike Frysinger)
+
+2006-03-02 16:06 Christos Zoulas <christos@astron.com>
+
+	* Print empty if the file is (Mike Frysinger)
+
+	* Don't try to read past the end of the buffer (Mike Frysinger)
+
+	* Sort magic entries by strength [experimental]
+
+2005-11-29 13:26 Christos Zoulas <christos@astron.com>
+
+	* Use iswprint() to convert the output string.
+	    (Bastien Nocera)
+
+2005-10-31 8:54 Christos Zoulas <christos@astron.com>
+
+	* Fix regression where the core info was not completely processed
+	    (Radek Vok�l)
+
+2005-10-20 11:15 Christos Zoulas <christos@astron.com>
+
+	* Middle Endian magic (Diomidis Spinellis)
+
+2005-10-17 11:15 Christos Zoulas <christos@astron.com>
+
+	* Open with O_BINARY for CYGWIN (Corinna Vinschen)
+
+	* Don't close stdin (Arkadiusz Miskiewicz)
+
+	* Look for note sections in non executables.
+
+2005-09-20 13:33 Christos Zoulas <christos@astron.com>
+
+	* Don't print SVR4 Style in core files multiple times
+	    (Radek Vok�l)
+
+2005-08-27 04:09 Christos Zoulas <christos@astron.com>
+
+	* Cygwin changes Corinna Vinschen
+
+2005-08-18 09:53 Christos Zoulas <christos@astron.com>
+
+	* Remove erroreous mention of /etc/magic in the file man page
+	  This is gentoo bug 101639. (Mike Frysinger)
+
+	* Cross-compile support and detection (Mike Frysinger)
+
+2005-08-12 10:17 Christos Zoulas <christos@astron.com>
+
+	* Add -h flag and dereference symlinks if POSIXLY_CORRECT
+	  is set.
+
+2005-07-29 13:57 Christos Zoulas <christos@astron.com>
+
+	* Avoid search and regex buffer overflows (Kelledin)
+
+2005-07-12 11:48 Christos Zoulas <christos@astron.com>
+
+	* Provide stub implementations for {v,}nsprintf() for older
+	  OS's that don't have them.
+	* Change mbstate_t autoconf detection macro from AC_MBSTATE_T
+	  to AC_TYPE_MBSTATE_T.
+
+2005-06-25 11:48 Christos Zoulas <christos@astron.com>
+
+	* Dynamically allocate the string buffers and make the
+	  default read size 256K.
+
+2005-06-01 00:00 Joerg Sonnenberger <joerg@britannica.bec.de>
+
+	* Dragonfly ELF note support
+
+2005-03-14 00:00 Giuliano Bertoletti <gb@symbolic.it>
+
+	* Avoid NULL pointer dereference in time conversion.
+
+2005-03-06 00:00  Joerg Walter <jwalt@mail.garni.ch>
+
+	* Add indirect magic offset support, and search mode.
+
+2005-01-12 00:00  Stepan Kasal  <kasal@ucw.cz>
+
+	* src/ascmagic.c (file_ascmagic): Fix three bugs about text files:
+	  If a CRLF text file happens to have CR at offset HOWMANY - 1
+	  (currently 0xffff), it should not be counted as CR line
+	  terminator.
+	  If a line has length exactly MAXLINELEN, it should not yet be
+	  treated as a ``very long line'', as MAXLINELEN is ``longest sane
+	  line length''.
+	  With CRLF, the line length was not computed correctly, and even
+	  lines of length MAXLINELEN - 1 were treated as ``very long''.
+
+2004-12-07 14:15  Christos Zoulas  <christos@astron.com>
+
+	* bzip2 needs a lot of input buffer space on some files
+	  before it can begin uncompressing. This makes file -z
+	  fail on some bz2 files. Fix it by giving it a copy of
+	  the file descriptor to read as much as it wants if we
+	  have access to it. <christos@astron.com>
+
+2004-11-24 12:39  Christos Zoulas  <christos@astron.com>
+
+	* Stack smash fix, and ELF more conservative reading.
+	  Jakub Bogusz <qboosh@pld-linux.org>
+
+2004-11-20 18:50  Christos Zoulas  <christos@astron.com>
+
+	* New FreeBSD version parsing code:
+	  Jon Noack <noackjr@alumni.rice.edu>
+
+	* Hackish support for ucs16 strings <christos@astron.com>
+
+2004-11-13 03:07  Christos Zoulas  <christos@astron.com>
+
+	* print the file name and line number in syntax errors.
+
+2004 10-12 10:50  Christos Zoulas  <christos@astron.com>
+
+	* Fix stack overwriting on 0 length strings: Tim Waugh
+	    <twaugh@redhat.com> Ned Ludd <solar@gentoo.org>
+
+2004-09-27 11:30  Christos Zoulas  <christos@astron.com>
+
+	* Remove 3rd and 4th copyright clause; approved by Ian Darwin.
+
+	* Fix small memory leaks; caught by: Tamas Sarlos
+	    <stamas@csillag.ilab.sztaki.hu>
+
+2004-07-24 16:33  Christos Zoulas  <christos@astron.com>
+
+	* magic.mime update Danny Milosavljevic <danny.milo@gmx.net>
+
+	* FreeBSD version update Oliver Eikemeier <eikemeier@fillmore-labs.com>
+
+	* utime/utimes detection Ian Lance Taylor <ian@wasabisystems.com>
+
+  	* errors reading elf magic Jakub Bogusz <qboosh@pld-linux.org>
+
+2004-04-12 10:55  Christos Zoulas  <christos@astron.com>
+
+	* make sure that magic formats match magic types during compilation
+
+	* fix broken sgi magic file
+
+2004-04-06 20:36  Christos Zoulas  <christos@astron.com>
+
+	* detect present of mbstate_t Petter Reinholdtsen <pere@hungry.com>
+
+	* magic fixes
+
+2004-03-22 15:25  Christos Zoulas  <christos@astron.com>
+
+	* Lots of mime fixes
+	  (Joerg Ostertag) <ostertag@rechengilde.de>
+
+	* FreeBSD ELF version handling
+	  (Edwin Groothuis) <edwin@mavetju.org>
+
+	* correct cleanup in all cases; don't just close the file.
+	  (Christos Zoulas) <christos@astron.com>
+
+	* add gettext message catalogue support
+	  (Michael Piefel) <piefel@debian.org>
+
+	* better printout for unreadable files
+	  (Michael Piefel) <piefel@debian.org>
+
+	* compensate for missing MAXPATHLEN
+	  (Michael Piefel) <piefel@debian.org>
+
+	* add wide character string length computation
+	  (Michael Piefel) <piefel@debian.org>
+
+	* Avoid infinite loops caused by bad elf alignments
+	  or name and description note sizes. Reported by
+	  (Mikael Magnusson) <mmikael@comhem.se>
+
+2004-03-09 13:55  Christos Zoulas  <christos@astron.com>
+
+	* Fix possible memory leak on error and add missing regfree
+	  (Dmitry V. Levin) <ldv@altlinux.org>
+
+2003-12-23 12:12  Christos Zoulas  <christos@astron.com>
+
+	* fix -k flag (Maciej W. Rozycki)
+
+2003-11-18 14:10  Christos Zoulas  <christos@astron.com>
+
+	* Try to give us much info as possible on corrupt elf files.
+	  (Willy Tarreau) <willy@w.ods.org>
+	* Updated python bindings (Brett Funderburg)
+	   <brettf@deepfile.com>
+
+2003-11-11 15:03  Christos Zoulas  <christos@astron.com>
+
+	* Include file.h first, because it includes config.h
+	  breaks largefile test macros otherwise.
+	  (Paul Eggert <eggert@CS.UCLA.EDU> via
+	   Lars Hecking <lhecking@nmrc.ie>)
+
+2003-10-14 21:39  Christos Zoulas  <christos@astron.com>
+
+	* Python bindings (Brett Funderburg) <brettf@deepfile.com>
+	* Don't lookup past the end of the buffer
+	  (Chad Hanson) <chanson@tcs-sec.com>
+	* Add MAGIC_ERROR and api on magic_errno()
+
+2003-10-08 12:40  Christos Zoulas  <christos@astron.com>
+
+	* handle error conditions from compile as fatal
+	  (Antti Kantee) <pooka@netbsd.org>
+	* handle magic filename parsing sanely
+	* more magic fixes.
+	* fix a memory leak (Illes Marton) <illes.marton@balabit.hu>
+	* describe magic file handling
+	  (Bryan Henderson) <bryanh@giraffe-data.com>
+
+2003-09-12 15:09  Christos Zoulas  <christos@astron.com>
+
+	* update magic files.
+	* remove largefile support from file.h; it breaks things on most OS's
+
+2003-08-10 10:25  Christos Zoulas  <christos@astron.com>
+
+	* fix unmapping'ing of mmaped files.
+
+2003-07-10 12:03  Christos Zoulas  <christos@astron.com>
+
+	* don't exit with -1 on error; always exit 1 (Marty Leisner)
+	* restore utimes code.
+
+2003-06-10 17:03  Christos Zoulas  <christos@astron.com>
+
+	* make sure we don't access uninitialized memory.
+	* pass lint
+	* #ifdef __cplusplus in magic.h
+
+2003-05-25 19:23  Christos Zoulas  <christos@astron.com>
+
+	* rename cvs magic file to revision to deal with
+	  case insensitive filesystems.
+
+2003-05-23 17:03  Christos Zoulas  <christos@astron.com>
+
+	* documentation fixes from Michael Piefel <piefel@debian.org>
+	* magic fixes (various)
+	* revert basename magic in .mgc name determination
+	* buffer protection in uncompress,
+	  signness issues,
+	  close files
+	  Maciej W. Rozycki <macro@ds2.pg.gda.pl
+
+2003-04-21 20:12  Christos Zoulas  <christos@astron.com>
+
+	* fix zsh magic
+
+2003-04-04 16:59  Christos Zoulas  <christos@astron.com>
+
+	* fix operand sort order in string.
+
+2003-04-02 17:30  Christos Zoulas  <christos@astron.com>
+
+	* cleanup namespace in magic.h
+
+2003-04-02 13:50  Christos Zoulas  <christos@astron.com>
+
+	* Magic additions (Alex Ott)
+	* Fix bug that broke VPATH compilation (Peter Breitenlohner)
+
+2003-03-28 16:03  Christos Zoulas  <christos@astron.com>
+
+	* remove packed attribute from magic struct.
+	* make the magic struct properly aligned.
+	* bump version number of compiled files to 2.
+
+2003-03-27 13:10  Christos Zoulas  <christos@astron.com>
+
+	* separate tar detection and run it before softmagic.
+	* fix reversed symlink test.
+	* fix version printing.
+	* make separator a string instead of a char.
+	* update manual page and sort options.
+
+2003-03-26 11:00  Christos Zoulas  <christos@astron.com>
+
+	* Pass lint
+	* make NULL in magic_file mean stdin
+	* Fix "-" argument to file to pass NULL to magic_file
+	* avoid pointer casts by using memcpy
+	* rename magic_buf -> magic_buffer
+	* keep only the first error
+	* manual page: new sentence, new line
+	* fix typo in api function (magic_buf -> magic_buffer)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/INSTALL b/framework/modules/c_FileTypeSigModule/file-5.08/INSTALL
new file mode 100755
index 0000000000000000000000000000000000000000..7d1c323beae76333f523f6df31c47a87f5597edb
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/INSTALL
@@ -0,0 +1,365 @@
+Installation Instructions
+*************************
+
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
+2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+
+   Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.  This file is offered as-is,
+without warranty of any kind.
+
+Basic Installation
+==================
+
+   Briefly, the shell commands `./configure; make; make install' should
+configure, build, and install this package.  The following
+more-detailed instructions are generic; see the `README' file for
+instructions specific to this package.  Some packages provide this
+`INSTALL' file but do not implement all of the features documented
+below.  The lack of an optional feature in a given package is not
+necessarily a bug.  More recommendations for GNU packages can be found
+in *note Makefile Conventions: (standards)Makefile Conventions.
+
+   The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation.  It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions.  Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+   It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring.  Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.
+
+   If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release.  If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+   The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'.  You need `configure.ac' if
+you want to change it or regenerate `configure' using a newer version
+of `autoconf'.
+
+   The simplest way to compile this package is:
+
+  1. `cd' to the directory containing the package's source code and type
+     `./configure' to configure the package for your system.
+
+     Running `configure' might take a while.  While running, it prints
+     some messages telling which features it is checking for.
+
+  2. Type `make' to compile the package.
+
+  3. Optionally, type `make check' to run any self-tests that come with
+     the package, generally using the just-built uninstalled binaries.
+
+  4. Type `make install' to install the programs and any data files and
+     documentation.  When installing into a prefix owned by root, it is
+     recommended that the package be configured and built as a regular
+     user, and only the `make install' phase executed with root
+     privileges.
+
+  5. Optionally, type `make installcheck' to repeat any self-tests, but
+     this time using the binaries in their final installed location.
+     This target does not install anything.  Running this target as a
+     regular user, particularly if the prior `make install' required
+     root privileges, verifies that the installation completed
+     correctly.
+
+  6. You can remove the program binaries and object files from the
+     source code directory by typing `make clean'.  To also remove the
+     files that `configure' created (so you can compile the package for
+     a different kind of computer), type `make distclean'.  There is
+     also a `make maintainer-clean' target, but that is intended mainly
+     for the package's developers.  If you use it, you may have to get
+     all sorts of other programs in order to regenerate files that came
+     with the distribution.
+
+  7. Often, you can also type `make uninstall' to remove the installed
+     files again.  In practice, not all packages have tested that
+     uninstallation works correctly, even though it is required by the
+     GNU Coding Standards.
+
+  8. Some packages, particularly those that use Automake, provide `make
+     distcheck', which can by used by developers to test that all other
+     targets like `make install' and `make uninstall' work correctly.
+     This target is generally not run by end users.
+
+Compilers and Options
+=====================
+
+   Some systems require unusual options for compilation or linking that
+the `configure' script does not know about.  Run `./configure --help'
+for details on some of the pertinent environment variables.
+
+   You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment.  Here
+is an example:
+
+     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
+
+   *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+   You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory.  To do this, you can use GNU `make'.  `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script.  `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.  This
+is known as a "VPATH" build.
+
+   With a non-GNU `make', it is safer to compile the package for one
+architecture at a time in the source code directory.  After you have
+installed the package for one architecture, use `make distclean' before
+reconfiguring for another architecture.
+
+   On MacOS X 10.5 and later systems, you can create libraries and
+executables that work on multiple system types--known as "fat" or
+"universal" binaries--by specifying multiple `-arch' options to the
+compiler but only a single `-arch' option to the preprocessor.  Like
+this:
+
+     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+                 CPP="gcc -E" CXXCPP="g++ -E"
+
+   This is not guaranteed to produce working output in all cases, you
+may have to build one architecture at a time and combine the results
+using the `lipo' tool if you have problems.
+
+Installation Names
+==================
+
+   By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc.  You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX', where PREFIX must be an
+absolute file name.
+
+   You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files.  If you
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
+
+   In addition, if you use an unusual directory layout you can give
+options like `--bindir=DIR' to specify different values for particular
+kinds of files.  Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.  In general, the
+default for these options is expressed in terms of `${prefix}', so that
+specifying just `--prefix' will affect all of the other directory
+specifications that were not explicitly provided.
+
+   The most portable way to affect installation locations is to pass the
+correct locations to `configure'; however, many packages provide one or
+both of the following shortcuts of passing variable assignments to the
+`make install' command line to change installation locations without
+having to reconfigure or recompile.
+
+   The first method involves providing an override variable for each
+affected directory.  For example, `make install
+prefix=/alternate/directory' will choose an alternate location for all
+directory configuration variables that were expressed in terms of
+`${prefix}'.  Any directories that were specified during `configure',
+but not in terms of `${prefix}', must each be overridden at install
+time for the entire installation to be relocated.  The approach of
+makefile variable overrides for each directory variable is required by
+the GNU Coding Standards, and ideally causes no recompilation.
+However, some platforms have known limitations with the semantics of
+shared libraries that end up requiring recompilation when using this
+method, particularly noticeable in packages that use GNU Libtool.
+
+   The second method involves providing the `DESTDIR' variable.  For
+example, `make install DESTDIR=/alternate/directory' will prepend
+`/alternate/directory' before all installation names.  The approach of
+`DESTDIR' overrides is not required by the GNU Coding Standards, and
+does not work on platforms that have drive letters.  On the other hand,
+it does better at avoiding recompilation issues, and works well even
+when some directory options were not specified in terms of `${prefix}'
+at `configure' time.
+
+Optional Features
+=================
+
+   If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+   Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System).  The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+   For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+   Some packages offer the ability to configure how verbose the
+execution of `make' will be.  For these packages, running `./configure
+--enable-silent-rules' sets the default to minimal output, which can be
+overridden with `make V=1'; while running `./configure
+--disable-silent-rules' sets the default to verbose, which can be
+overridden with `make V=0'.
+
+Particular systems
+==================
+
+   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
+CC is not installed, it is recommended to use the following options in
+order to use an ANSI C compiler:
+
+     ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
+
+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+
+   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
+parse its `<wchar.h>' header file.  The option `-nodtk' can be used as
+a workaround.  If GNU CC is not installed, it is therefore recommended
+to try
+
+     ./configure CC="cc"
+
+and if that doesn't work, try
+
+     ./configure CC="cc -nodtk"
+
+   On Solaris, don't put `/usr/ucb' early in your `PATH'.  This
+directory contains several dysfunctional programs; working variants of
+these programs are available in `/usr/bin'.  So, if you need `/usr/ucb'
+in your `PATH', put it _after_ `/usr/bin'.
+
+   On Haiku, software installed for all users goes in `/boot/common',
+not `/usr/local'.  It is recommended to use the following options:
+
+     ./configure --prefix=/boot/common
+
+Specifying the System Type
+==========================
+
+   There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on.  Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
+`--build=TYPE' option.  TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+     CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+     OS
+     KERNEL-OS
+
+   See the file `config.sub' for the possible values of each field.  If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+   If you are _building_ compiler tools for cross-compiling, you should
+use the option `--target=TYPE' to select the type of system they will
+produce code for.
+
+   If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+   If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists.  Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+   Variables not defined in a site shell script can be set in the
+environment passed to `configure'.  However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost.  In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'.  For example:
+
+     ./configure CC=/usr/local2/bin/gcc
+
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+an Autoconf bug.  Until the bug is fixed you can use this workaround:
+
+     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+`configure' Invocation
+======================
+
+   `configure' recognizes the following options to control how it
+operates.
+
+`--help'
+`-h'
+     Print a summary of all of the options to `configure', and exit.
+
+`--help=short'
+`--help=recursive'
+     Print a summary of the options unique to this package's
+     `configure', and exit.  The `short' variant lists options used
+     only in the top level, while the `recursive' variant lists options
+     also present in any nested packages.
+
+`--version'
+`-V'
+     Print the version of Autoconf used to generate the `configure'
+     script, and exit.
+
+`--cache-file=FILE'
+     Enable the cache: use and save the results of the tests in FILE,
+     traditionally `config.cache'.  FILE defaults to `/dev/null' to
+     disable caching.
+
+`--config-cache'
+`-C'
+     Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+     Do not print messages saying which checks are being made.  To
+     suppress all normal output, redirect it to `/dev/null' (any error
+     messages will still be shown).
+
+`--srcdir=DIR'
+     Look for the package's source code in directory DIR.  Usually
+     `configure' can determine that directory automatically.
+
+`--prefix=DIR'
+     Use DIR as the installation prefix.  *note Installation Names::
+     for more details, including other options available for fine-tuning
+     the installation locations.
+
+`--no-create'
+`-n'
+     Run the configure checks, but stop before creating any output
+     files.
+
+`configure' also accepts some other, not widely useful, options.  Run
+`configure --help' for more details.
+
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/MAINT b/framework/modules/c_FileTypeSigModule/file-5.08/MAINT
new file mode 100755
index 0000000000000000000000000000000000000000..b881615c3c15692dd8241af01378dde7412ee9aa
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/MAINT
@@ -0,0 +1,44 @@
+$File: MAINT,v 1.10 2008/02/05 19:08:11 christos Exp $
+
+Maintenance notes:
+
+I am continuing to maintain the file command. I welcome your help,
+but to make my life easier I'd like to request the following:
+
+- Do not distribute changed versions.
+
+People trying to be helpful occasionally put up their hacked versions
+of the file command for anonymous FTP, and people all over the
+world get copies of the hacked versions.  Within a day or two I am
+getting email from around the world asking me why "my" file command
+won't compile!!! Needless to say this detracts from the limited
+time I have available to work on the actual software. Therefore I
+ask you again to please NOT distribute your changed version. If
+you need to make changes, please add a patch file next to the
+distribution tar, and a README file that clearly explains what you
+are trying to fix.
+
+Thank you for your assistance and cooperation.
+
+Code Overview
+
+This is a rough idea of the control flow from the main program:
+
+file.c	main()
+file.c	process (called for each file)
+		printf file name
+magic.c		magic_file()
+fsmagic.c		file_fsmagic()
+				(handles statbuf modes for DEV)
+			(handles statbuf modes for executable &c.
+			reads data from file.
+funcs.c:		file_buffer()
+compress.c			file_zmagic()
+is_tar.c			file_is_tar()
+softmagic.c			file_softmagic()
+						match() - looks for match against main magic database
+ascmagic.c			file_ascmagic()
+readelf.c		file_tryelf()
+				"unknown"
+
+Christos Zoulas (see README for email address)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/Makefile.am b/framework/modules/c_FileTypeSigModule/file-5.08/Makefile.am
new file mode 100755
index 0000000000000000000000000000000000000000..8bd927d943ac20e0bdfc0182d638aaca950f094d
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/Makefile.am
@@ -0,0 +1,5 @@
+ACLOCAL_AMFLAGS = -I m4
+
+EXTRA_DIST = MAINT
+
+SUBDIRS = src magic tests doc python
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/NEWS b/framework/modules/c_FileTypeSigModule/file-5.08/NEWS
new file mode 100755
index 0000000000000000000000000000000000000000..939a2790ecc925c90f6d1f8fb61131fd34ad4e0f
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/NEWS
@@ -0,0 +1 @@
+See ChangeLog.
\ No newline at end of file
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/README b/framework/modules/c_FileTypeSigModule/file-5.08/README
new file mode 100755
index 0000000000000000000000000000000000000000..2b57a70624fdda906128c47e99883da23bd7fba0
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/README
@@ -0,0 +1,118 @@
+** README for file(1) Command **
+@(#) $File: README,v 1.44 2011/03/24 13:03:39 rrt Exp $
+
+Mailing List: file@mx.gw.com
+Bug tracker: http://bugs.gw.com/
+E-mail: christos@astron.com
+
+Phone: Do not even think of telephoning me about this program. Send cash first!
+
+This is Release 5.x of Ian Darwin's (copyright but distributable)
+file(1) command, an implementation of the Unix File(1) command.
+It knows the 'magic number' of several thousands of file types.
+This version is the standard "file" command for Linux,
+*BSD, and other systems. (See "patchlevel.h" for the exact release number).
+
+You can download the latest version of file from:
+
+	ftp://ftp.astron.com/pub/file/
+
+A public read-only git repository is available at:
+
+	https://github.com/glensc/file
+
+The major changes for 5.x are CDF file parsing, indirect magic, and
+overhaul in mime and ascii encoding handling.
+
+The major feature of 4.x is the refactoring of the code into a library,
+and the re-write of the file command in terms of that library. The library
+itself, libmagic can be used by 3rd party programs that wish to identify
+file types without having to fork() and exec() file. The prime contributor
+for 4.0 was M\xe5ns Rullg\xe5rd.
+
+UNIX is a trademark of UNIX System Laboratories.
+
+The prime contributor to Release 3.8 was Guy Harris, who put in megachanges
+including byte-order independence.
+
+The prime contributor to Release 3.0 was Christos Zoulas, who put
+in hundreds of lines of source code changes, including his own
+ANSIfication of the code (I liked my own ANSIfication better, but
+his (__P()) is the "Berkeley standard" way of doing it, and I wanted UCB
+to include the code...), his HP-like "indirection" (a feature of
+the HP file command, I think), and his mods that finally got the
+uncompress (-z) mode finished and working.
+
+This release has compiled in numerous environments; see PORTING
+for a list and problems.
+
+This fine freeware file(1) follows the USG (System V) model of the file
+command, rather than the Research (V7) version or the V7-derived 4.[23]
+Berkeley one. That is, the file /etc/magic contains much of the ritual
+information that is the source of this program's power. My version
+knows a little more magic (including tar archives) than System V; the
+/etc/magic parsing seems to be compatible with the (poorly documented)
+System V /etc/magic format (with one exception; see the man page).
+
+In addition, the /etc/magic file is built from a subdirectory
+for easier(?) maintenance.  I will act as a clearinghouse for
+magic numbers assigned to all sorts of data files that
+are in reasonable circulation. Send your magic numbers,
+in magic(5) format please, to the maintainer, Christos Zoulas.
+
+COPYING - read this first.
+README - read this second (you are currently reading this file).
+INSTALL - read on how to install
+
+src/apprentice.c - parses /etc/magic to learn magic
+src/apptype.c - used for OS/2 specific application type magic
+src/asprintf.c - replacement for OS's that don't have it.
+src/ascmagic.c - third & last set of tests, based on hardwired assumptions.
+src/cdf.c - parser for Microsoft Compound Document Files
+src/cdf_time.c - time converter for CDF.
+src/compress.c - handles decompressing files to look inside.
+src/encoding.c - handles unicode encodings
+src/file.c - the main program
+src/file.h - header file
+src/fsmagic.c - first set of tests the program runs, based on filesystem info
+src/funcs.c - utilility functions
+src/getopt_long.c - used for OS/2 specific application type magic
+src/is_tar.c, tar.h - knows about tarchives (courtesy John Gilmore).
+src/names.h - header file for ascmagic.c
+src/magic.c - the libmagic api
+src/print.c - print results, errors, warnings.
+src/readcdf.c - CDF wrapper.
+src/readelf.[ch] - Stand-alone elf parsing code.
+src/softmagic.c - 2nd set of tests, based on /etc/magic
+src/strlcat.c - used for OS/2 specific application type magic
+src/strlcpy.c - used for OS/2 specific application type magic
+src/vasprintf.c - used for OS/2 specific application type magic
+doc/file.1 - man page for the command
+doc/magic.4 - man page for the magic file, courtesy Guy Harris.
+	Install as magic.4 on USG and magic.5 on V7 or Berkeley; cf Makefile.
+Magdir - directory of /etc/magic pieces
+
+------------------------------------------------------------------------------
+
+If you submit a new magic entry please make sure you read the following
+guidelines:
+
+- Initial match is preferably at least 32 bits long, and is a _unique_ match
+- If this is not feasible, use additional check
+- Match of <= 16 bits are not accepted
+- Delay printing string as much as possible, don't print output too early
+- Avoid printf arbitrary byte as string, which can be a source of
+  crash and buffer overflow
+
+- Provide complete information with entry:
+  * One line short summary
+  * Optional long description
+  * File extension, if applicable
+  * Full name and contact method (for discussion when entry has problem)
+  * Further reference, such as documentation of format
+
+------------------------------------------------------------------------------
+
+Parts of this software were developed at SoftQuad Inc., developers
+of SGML/HTML/XML publishing software, in Toronto, Canada.
+SoftQuad was swallowed up by Corel in 2002 and does not exist any longer.
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/TODO b/framework/modules/c_FileTypeSigModule/file-5.08/TODO
new file mode 100755
index 0000000000000000000000000000000000000000..bdfbdc4146db729832ca5f4c03023c153d486a99
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/TODO
@@ -0,0 +1,6 @@
+TODOs live in the TODO section of doc/file.man (i.e. file(1)). They
+are more visible there, so please add any further TODOs to that file,
+not here.
+
+(This change was made when Reuben Thomas noticed that all the bugs
+listed in the BUGS section of the man page had been fixed!)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/acinclude.m4 b/framework/modules/c_FileTypeSigModule/file-5.08/acinclude.m4
new file mode 100755
index 0000000000000000000000000000000000000000..dcbf92f50308a8ef08411dc259e9bcde4ab7e821
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/acinclude.m4
@@ -0,0 +1,58 @@
+dnl from autoconf 2.13 acspecific.m4, with changes to check for daylight
+
+AC_DEFUN([AC_STRUCT_TIMEZONE_DAYLIGHT],
+[AC_REQUIRE([AC_STRUCT_TM])dnl
+AC_CACHE_CHECK([for tm_zone in struct tm], ac_cv_struct_tm_zone,
+[AC_TRY_COMPILE([#include <sys/types.h>
+#include <$ac_cv_struct_tm>], [struct tm tm; tm.tm_zone;],
+  ac_cv_struct_tm_zone=yes, ac_cv_struct_tm_zone=no)])
+if test "$ac_cv_struct_tm_zone" = yes; then
+  AC_DEFINE(HAVE_TM_ZONE,1,[HAVE_TM_ZONE])
+fi
+
+# On SGI, apparently tzname is a #define, but that's ok, AC_CHECK_DECL will
+# consider it declared and we won't give our own extern.
+AC_CHECK_DECLS([tzname], , , [#include <time.h>])
+AC_CACHE_CHECK(for tzname, ac_cv_var_tzname,
+[AC_TRY_LINK(
+[#include <time.h>
+#if !HAVE_DECL_TZNAME
+extern char *tzname[];
+#endif],
+[return tzname[0][0];], [ac_cv_var_tzname=yes], [ac_cv_var_tzname=no])])
+  if test $ac_cv_var_tzname = yes; then
+    AC_DEFINE(HAVE_TZNAME,1,[HAVE_TZNAME])
+  fi
+
+AC_CACHE_CHECK([for tm_isdst in struct tm], ac_cv_struct_tm_isdst,
+[AC_TRY_COMPILE([#include <sys/types.h>
+#include <$ac_cv_struct_tm>], [struct tm tm; tm.tm_isdst;],
+  ac_cv_struct_tm_isdst=yes, ac_cv_struct_tm_isdst=no)])
+if test "$ac_cv_struct_tm_isdst" = yes; then
+  AC_DEFINE(HAVE_TM_ISDST,1,[HAVE_TM_ISDST])
+fi
+
+
+AC_CHECK_DECLS([daylight], , , [#include <time.h>])
+AC_CACHE_CHECK(for daylight, ac_cv_var_daylight,
+[AC_TRY_LINK(
+changequote(<<, >>)dnl
+<<#include <time.h>
+#if !HAVE_DECL_DAYLIGHT
+extern int daylight;
+#endif>>,
+changequote([, ])dnl
+[atoi(daylight);], ac_cv_var_daylight=yes, ac_cv_var_daylight=no)])
+  if test $ac_cv_var_daylight = yes; then
+    AC_DEFINE(HAVE_DAYLIGHT,1,[HAVE_DAYLIGHT])
+  fi
+])
+
+AC_DEFUN([AC_STRUCT_OPTION_GETOPT_H],
+[AC_CACHE_CHECK([for struct option in getopt], ac_cv_struct_option_getopt_h,
+[AC_TRY_COMPILE([#include <getopt.h>], [struct option op; op.name;],
+  ac_cv_struct_option_getopt_h=yes, ac_cv_struct_option_getopt_h=no)])
+if test "$ac_cv_struct_option_getopt_h" = yes; then
+  AC_DEFINE(HAVE_STRUCT_OPTION,1,[HAVE_STRUCT_OPTION])
+fi
+])
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/compile b/framework/modules/c_FileTypeSigModule/file-5.08/compile
new file mode 100755
index 0000000000000000000000000000000000000000..c0096a7b563231c0c7ade728962574ec3b8df270
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/compile
@@ -0,0 +1,143 @@
+#! /bin/sh
+# Wrapper for compilers which do not understand `-c -o'.
+
+scriptversion=2009-10-06.20; # UTC
+
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009  Free Software
+# Foundation, Inc.
+# Written by Tom Tromey <tromey@cygnus.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+case $1 in
+  '')
+     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
+     exit 1;
+     ;;
+  -h | --h*)
+    cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand `-c -o'.
+Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
+
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file `INSTALL'.
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+    exit $?
+    ;;
+  -v | --v*)
+    echo "compile $scriptversion"
+    exit $?
+    ;;
+esac
+
+ofile=
+cfile=
+eat=
+
+for arg
+do
+  if test -n "$eat"; then
+    eat=
+  else
+    case $1 in
+      -o)
+	# configure might choose to run compile as `compile cc -o foo foo.c'.
+	# So we strip `-o arg' only if arg is an object.
+	eat=1
+	case $2 in
+	  *.o | *.obj)
+	    ofile=$2
+	    ;;
+	  *)
+	    set x "$@" -o "$2"
+	    shift
+	    ;;
+	esac
+	;;
+      *.c)
+	cfile=$1
+	set x "$@" "$1"
+	shift
+	;;
+      *)
+	set x "$@" "$1"
+	shift
+	;;
+    esac
+  fi
+  shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+  # If no `-o' option was seen then we might have been invoked from a
+  # pattern rule where we don't need one.  That is ok -- this is a
+  # normal compilation that the losing compiler can handle.  If no
+  # `.c' file was seen then we are probably linking.  That is also
+  # ok.
+  exec "$@"
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
+
+# Create the lock directory.
+# Note: use `[/\\:.-]' here to ensure that we don't use the same name
+# that we are using for the .o file.  Also, base the name on the expected
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
+while true; do
+  if mkdir "$lockdir" >/dev/null 2>&1; then
+    break
+  fi
+  sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir '$lockdir'; exit 1" 1 2 15
+
+# Run the compile.
+"$@"
+ret=$?
+
+if test -f "$cofile"; then
+  test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+  test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
+fi
+
+rmdir "$lockdir"
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/config.guess b/framework/modules/c_FileTypeSigModule/file-5.08/config.guess
new file mode 100755
index 0000000000000000000000000000000000000000..c2246a4f7f4c78281ccfc4238a54cf7d83c4f421
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/config.guess
@@ -0,0 +1,1502 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+#   Free Software Foundation, Inc.
+
+timestamp='2009-12-30'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# Originally written by Per Bothner.  Please send patches (context
+# diff format) to <config-patches@gnu.org> and include a ChangeLog
+# entry.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub.  If it succeeds, it prints the system name on stdout, and
+# exits with 0.  Otherwise, it exits with 1.
+#
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
+Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )	# Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help" >&2
+       exit 1 ;;
+    * )
+       break ;;
+  esac
+done
+
+if test $# != 0; then
+  echo "$me: too many arguments$help" >&2
+  exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,)    echo "int x;" > $dummy.c ;
+	for c in cc gcc c89 c99 ; do
+	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+	     CC_FOR_BUILD="$c"; break ;
+	  fi ;
+	done ;
+	if test x"$CC_FOR_BUILD" = x ; then
+	  CC_FOR_BUILD=no_compiler_found ;
+	fi
+	;;
+ ,,*)   CC_FOR_BUILD=$CC ;;
+ ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
+esac ; set_cc_for_build= ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+	PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+    *:NetBSD:*:*)
+	# NetBSD (nbsd) targets should (where applicable) match one or
+	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
+	# switched to ELF, *-*-netbsd* would select the old
+	# object file format.  This provides both forward
+	# compatibility and a consistent mechanism for selecting the
+	# object file format.
+	#
+	# Note: NetBSD doesn't particularly care about the vendor
+	# portion of the name.  We always set it to "unknown".
+	sysctl="sysctl -n hw.machine_arch"
+	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+	case "${UNAME_MACHINE_ARCH}" in
+	    armeb) machine=armeb-unknown ;;
+	    arm*) machine=arm-unknown ;;
+	    sh3el) machine=shl-unknown ;;
+	    sh3eb) machine=sh-unknown ;;
+	    sh5el) machine=sh5le-unknown ;;
+	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+	esac
+	# The Operating System including object format, if it has switched
+	# to ELF recently, or will in the future.
+	case "${UNAME_MACHINE_ARCH}" in
+	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+		eval $set_cc_for_build
+		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+			| grep -q __ELF__
+		then
+		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+		    # Return netbsd for either.  FIX?
+		    os=netbsd
+		else
+		    os=netbsdelf
+		fi
+		;;
+	    *)
+	        os=netbsd
+		;;
+	esac
+	# The OS release
+	# Debian GNU/NetBSD machines have a different userland, and
+	# thus, need a distinct triplet. However, they do not need
+	# kernel version information, so it can be replaced with a
+	# suitable tag, in the style of linux-gnu.
+	case "${UNAME_VERSION}" in
+	    Debian*)
+		release='-gnu'
+		;;
+	    *)
+		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+		;;
+	esac
+	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+	# contains redundant information, the shorter form:
+	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+	echo "${machine}-${os}${release}"
+	exit ;;
+    *:OpenBSD:*:*)
+	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+	exit ;;
+    *:ekkoBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+	exit ;;
+    *:SolidBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+	exit ;;
+    macppc:MirBSD:*:*)
+	echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+	exit ;;
+    *:MirBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+	exit ;;
+    alpha:OSF1:*:*)
+	case $UNAME_RELEASE in
+	*4.0)
+		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+		;;
+	*5.*)
+	        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+		;;
+	esac
+	# According to Compaq, /usr/sbin/psrinfo has been available on
+	# OSF/1 and Tru64 systems produced since 1995.  I hope that
+	# covers most systems running today.  This code pipes the CPU
+	# types through head -n 1, so we only detect the type of CPU 0.
+	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+	case "$ALPHA_CPU_TYPE" in
+	    "EV4 (21064)")
+		UNAME_MACHINE="alpha" ;;
+	    "EV4.5 (21064)")
+		UNAME_MACHINE="alpha" ;;
+	    "LCA4 (21066/21068)")
+		UNAME_MACHINE="alpha" ;;
+	    "EV5 (21164)")
+		UNAME_MACHINE="alphaev5" ;;
+	    "EV5.6 (21164A)")
+		UNAME_MACHINE="alphaev56" ;;
+	    "EV5.6 (21164PC)")
+		UNAME_MACHINE="alphapca56" ;;
+	    "EV5.7 (21164PC)")
+		UNAME_MACHINE="alphapca57" ;;
+	    "EV6 (21264)")
+		UNAME_MACHINE="alphaev6" ;;
+	    "EV6.7 (21264A)")
+		UNAME_MACHINE="alphaev67" ;;
+	    "EV6.8CB (21264C)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.8AL (21264B)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.8CX (21264D)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.9A (21264/EV69A)")
+		UNAME_MACHINE="alphaev69" ;;
+	    "EV7 (21364)")
+		UNAME_MACHINE="alphaev7" ;;
+	    "EV7.9 (21364A)")
+		UNAME_MACHINE="alphaev79" ;;
+	esac
+	# A Pn.n version is a patched version.
+	# A Vn.n version is a released version.
+	# A Tn.n version is a released field test version.
+	# A Xn.n version is an unreleased experimental baselevel.
+	# 1.2 uses "1.2" for uname -r.
+	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+	exit ;;
+    Alpha\ *:Windows_NT*:*)
+	# How do we know it's Interix rather than the generic POSIX subsystem?
+	# Should we change UNAME_MACHINE based on the output of uname instead
+	# of the specific Alpha model?
+	echo alpha-pc-interix
+	exit ;;
+    21064:Windows_NT:50:3)
+	echo alpha-dec-winnt3.5
+	exit ;;
+    Amiga*:UNIX_System_V:4.0:*)
+	echo m68k-unknown-sysv4
+	exit ;;
+    *:[Aa]miga[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-amigaos
+	exit ;;
+    *:[Mm]orph[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-morphos
+	exit ;;
+    *:OS/390:*:*)
+	echo i370-ibm-openedition
+	exit ;;
+    *:z/VM:*:*)
+	echo s390-ibm-zvmoe
+	exit ;;
+    *:OS400:*:*)
+        echo powerpc-ibm-os400
+	exit ;;
+    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+	echo arm-acorn-riscix${UNAME_RELEASE}
+	exit ;;
+    arm:riscos:*:*|arm:RISCOS:*:*)
+	echo arm-unknown-riscos
+	exit ;;
+    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+	echo hppa1.1-hitachi-hiuxmpp
+	exit ;;
+    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+	if test "`(/bin/universe) 2>/dev/null`" = att ; then
+		echo pyramid-pyramid-sysv3
+	else
+		echo pyramid-pyramid-bsd
+	fi
+	exit ;;
+    NILE*:*:*:dcosx)
+	echo pyramid-pyramid-svr4
+	exit ;;
+    DRS?6000:unix:4.0:6*)
+	echo sparc-icl-nx6
+	exit ;;
+    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+	case `/usr/bin/uname -p` in
+	    sparc) echo sparc-icl-nx7; exit ;;
+	esac ;;
+    s390x:SunOS:*:*)
+	echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4H:SunOS:5.*:*)
+	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
+	echo i386-pc-auroraux${UNAME_RELEASE}
+	exit ;;
+    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+	eval $set_cc_for_build
+	SUN_ARCH="i386"
+	# If there is a compiler, see if it is configured for 64-bit objects.
+	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+	# This test works for both compilers.
+	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		grep IS_64BIT_ARCH >/dev/null
+	    then
+		SUN_ARCH="x86_64"
+	    fi
+	fi
+	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:6*:*)
+	# According to config.sub, this is the proper way to canonicalize
+	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
+	# it's likely to be more like Solaris than SunOS4.
+	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:*:*)
+	case "`/usr/bin/arch -k`" in
+	    Series*|S4*)
+		UNAME_RELEASE=`uname -v`
+		;;
+	esac
+	# Japanese Language versions have a version number like `4.1.3-JL'.
+	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+	exit ;;
+    sun3*:SunOS:*:*)
+	echo m68k-sun-sunos${UNAME_RELEASE}
+	exit ;;
+    sun*:*:4.2BSD:*)
+	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+	case "`/bin/arch`" in
+	    sun3)
+		echo m68k-sun-sunos${UNAME_RELEASE}
+		;;
+	    sun4)
+		echo sparc-sun-sunos${UNAME_RELEASE}
+		;;
+	esac
+	exit ;;
+    aushp:SunOS:*:*)
+	echo sparc-auspex-sunos${UNAME_RELEASE}
+	exit ;;
+    # The situation for MiNT is a little confusing.  The machine name
+    # can be virtually everything (everything which is not
+    # "atarist" or "atariste" at least should have a processor
+    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
+    # to the lowercase version "mint" (or "freemint").  Finally
+    # the system name "TOS" denotes a system which is actually not
+    # MiNT.  But MiNT is downward compatible to TOS, so this should
+    # be no problem.
+    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+	exit ;;
+    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+	echo m68k-atari-mint${UNAME_RELEASE}
+        exit ;;
+    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+	exit ;;
+    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+        echo m68k-milan-mint${UNAME_RELEASE}
+        exit ;;
+    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+        echo m68k-hades-mint${UNAME_RELEASE}
+        exit ;;
+    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+        echo m68k-unknown-mint${UNAME_RELEASE}
+        exit ;;
+    m68k:machten:*:*)
+	echo m68k-apple-machten${UNAME_RELEASE}
+	exit ;;
+    powerpc:machten:*:*)
+	echo powerpc-apple-machten${UNAME_RELEASE}
+	exit ;;
+    RISC*:Mach:*:*)
+	echo mips-dec-mach_bsd4.3
+	exit ;;
+    RISC*:ULTRIX:*:*)
+	echo mips-dec-ultrix${UNAME_RELEASE}
+	exit ;;
+    VAX*:ULTRIX*:*:*)
+	echo vax-dec-ultrix${UNAME_RELEASE}
+	exit ;;
+    2020:CLIX:*:* | 2430:CLIX:*:*)
+	echo clipper-intergraph-clix${UNAME_RELEASE}
+	exit ;;
+    mips:*:*:UMIPS | mips:*:*:RISCos)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h>  /* for printf() prototype */
+	int main (int argc, char *argv[]) {
+#else
+	int main (argc, argv) int argc; char *argv[]; {
+#endif
+	#if defined (host_mips) && defined (MIPSEB)
+	#if defined (SYSTYPE_SYSV)
+	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_SVR4)
+	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+	#endif
+	#endif
+	  exit (-1);
+	}
+EOF
+	$CC_FOR_BUILD -o $dummy $dummy.c &&
+	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+	  SYSTEM_NAME=`$dummy $dummyarg` &&
+	    { echo "$SYSTEM_NAME"; exit; }
+	echo mips-mips-riscos${UNAME_RELEASE}
+	exit ;;
+    Motorola:PowerMAX_OS:*:*)
+	echo powerpc-motorola-powermax
+	exit ;;
+    Motorola:*:4.3:PL8-*)
+	echo powerpc-harris-powermax
+	exit ;;
+    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+	echo powerpc-harris-powermax
+	exit ;;
+    Night_Hawk:Power_UNIX:*:*)
+	echo powerpc-harris-powerunix
+	exit ;;
+    m88k:CX/UX:7*:*)
+	echo m88k-harris-cxux7
+	exit ;;
+    m88k:*:4*:R4*)
+	echo m88k-motorola-sysv4
+	exit ;;
+    m88k:*:3*:R3*)
+	echo m88k-motorola-sysv3
+	exit ;;
+    AViiON:dgux:*:*)
+        # DG/UX returns AViiON for all architectures
+        UNAME_PROCESSOR=`/usr/bin/uname -p`
+	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+	then
+	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+	       [ ${TARGET_BINARY_INTERFACE}x = x ]
+	    then
+		echo m88k-dg-dgux${UNAME_RELEASE}
+	    else
+		echo m88k-dg-dguxbcs${UNAME_RELEASE}
+	    fi
+	else
+	    echo i586-dg-dgux${UNAME_RELEASE}
+	fi
+ 	exit ;;
+    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
+	echo m88k-dolphin-sysv3
+	exit ;;
+    M88*:*:R3*:*)
+	# Delta 88k system running SVR3
+	echo m88k-motorola-sysv3
+	exit ;;
+    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+	echo m88k-tektronix-sysv3
+	exit ;;
+    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+	echo m68k-tektronix-bsd
+	exit ;;
+    *:IRIX*:*:*)
+	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+	exit ;;
+    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
+	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
+    i*86:AIX:*:*)
+	echo i386-ibm-aix
+	exit ;;
+    ia64:AIX:*:*)
+	if [ -x /usr/bin/oslevel ] ; then
+		IBM_REV=`/usr/bin/oslevel`
+	else
+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+	fi
+	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+	exit ;;
+    *:AIX:2:3)
+	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+		eval $set_cc_for_build
+		sed 's/^		//' << EOF >$dummy.c
+		#include <sys/systemcfg.h>
+
+		main()
+			{
+			if (!__power_pc())
+				exit(1);
+			puts("powerpc-ibm-aix3.2.5");
+			exit(0);
+			}
+EOF
+		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+		then
+			echo "$SYSTEM_NAME"
+		else
+			echo rs6000-ibm-aix3.2.5
+		fi
+	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+		echo rs6000-ibm-aix3.2.4
+	else
+		echo rs6000-ibm-aix3.2
+	fi
+	exit ;;
+    *:AIX:*:[456])
+	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+		IBM_ARCH=rs6000
+	else
+		IBM_ARCH=powerpc
+	fi
+	if [ -x /usr/bin/oslevel ] ; then
+		IBM_REV=`/usr/bin/oslevel`
+	else
+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+	fi
+	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+	exit ;;
+    *:AIX:*:*)
+	echo rs6000-ibm-aix
+	exit ;;
+    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+	echo romp-ibm-bsd4.4
+	exit ;;
+    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
+	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
+	exit ;;                             # report: romp-ibm BSD 4.3
+    *:BOSX:*:*)
+	echo rs6000-bull-bosx
+	exit ;;
+    DPX/2?00:B.O.S.:*:*)
+	echo m68k-bull-sysv3
+	exit ;;
+    9000/[34]??:4.3bsd:1.*:*)
+	echo m68k-hp-bsd
+	exit ;;
+    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+	echo m68k-hp-bsd4.4
+	exit ;;
+    9000/[34678]??:HP-UX:*:*)
+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+	case "${UNAME_MACHINE}" in
+	    9000/31? )            HP_ARCH=m68000 ;;
+	    9000/[34]?? )         HP_ARCH=m68k ;;
+	    9000/[678][0-9][0-9])
+		if [ -x /usr/bin/getconf ]; then
+		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+                    case "${sc_cpu_version}" in
+                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+                      532)                      # CPU_PA_RISC2_0
+                        case "${sc_kernel_bits}" in
+                          32) HP_ARCH="hppa2.0n" ;;
+                          64) HP_ARCH="hppa2.0w" ;;
+			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
+                        esac ;;
+                    esac
+		fi
+		if [ "${HP_ARCH}" = "" ]; then
+		    eval $set_cc_for_build
+		    sed 's/^              //' << EOF >$dummy.c
+
+              #define _HPUX_SOURCE
+              #include <stdlib.h>
+              #include <unistd.h>
+
+              int main ()
+              {
+              #if defined(_SC_KERNEL_BITS)
+                  long bits = sysconf(_SC_KERNEL_BITS);
+              #endif
+                  long cpu  = sysconf (_SC_CPU_VERSION);
+
+                  switch (cpu)
+              	{
+              	case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+              	case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+              	case CPU_PA_RISC2_0:
+              #if defined(_SC_KERNEL_BITS)
+              	    switch (bits)
+              		{
+              		case 64: puts ("hppa2.0w"); break;
+              		case 32: puts ("hppa2.0n"); break;
+              		default: puts ("hppa2.0"); break;
+              		} break;
+              #else  /* !defined(_SC_KERNEL_BITS) */
+              	    puts ("hppa2.0"); break;
+              #endif
+              	default: puts ("hppa1.0"); break;
+              	}
+                  exit (0);
+              }
+EOF
+		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+		    test -z "$HP_ARCH" && HP_ARCH=hppa
+		fi ;;
+	esac
+	if [ ${HP_ARCH} = "hppa2.0w" ]
+	then
+	    eval $set_cc_for_build
+
+	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
+	    # generating 64-bit code.  GNU and HP use different nomenclature:
+	    #
+	    # $ CC_FOR_BUILD=cc ./config.guess
+	    # => hppa2.0w-hp-hpux11.23
+	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+	    # => hppa64-hp-hpux11.23
+
+	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+		grep -q __LP64__
+	    then
+		HP_ARCH="hppa2.0w"
+	    else
+		HP_ARCH="hppa64"
+	    fi
+	fi
+	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+	exit ;;
+    ia64:HP-UX:*:*)
+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+	echo ia64-hp-hpux${HPUX_REV}
+	exit ;;
+    3050*:HI-UX:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#include <unistd.h>
+	int
+	main ()
+	{
+	  long cpu = sysconf (_SC_CPU_VERSION);
+	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
+	     results, however.  */
+	  if (CPU_IS_PA_RISC (cpu))
+	    {
+	      switch (cpu)
+		{
+		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+		  default: puts ("hppa-hitachi-hiuxwe2"); break;
+		}
+	    }
+	  else if (CPU_IS_HP_MC68K (cpu))
+	    puts ("m68k-hitachi-hiuxwe2");
+	  else puts ("unknown-hitachi-hiuxwe2");
+	  exit (0);
+	}
+EOF
+	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+		{ echo "$SYSTEM_NAME"; exit; }
+	echo unknown-hitachi-hiuxwe2
+	exit ;;
+    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+	echo hppa1.1-hp-bsd
+	exit ;;
+    9000/8??:4.3bsd:*:*)
+	echo hppa1.0-hp-bsd
+	exit ;;
+    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+	echo hppa1.0-hp-mpeix
+	exit ;;
+    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+	echo hppa1.1-hp-osf
+	exit ;;
+    hp8??:OSF1:*:*)
+	echo hppa1.0-hp-osf
+	exit ;;
+    i*86:OSF1:*:*)
+	if [ -x /usr/sbin/sysversion ] ; then
+	    echo ${UNAME_MACHINE}-unknown-osf1mk
+	else
+	    echo ${UNAME_MACHINE}-unknown-osf1
+	fi
+	exit ;;
+    parisc*:Lites*:*:*)
+	echo hppa1.1-hp-lites
+	exit ;;
+    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+	echo c1-convex-bsd
+        exit ;;
+    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+	if getsysinfo -f scalar_acc
+	then echo c32-convex-bsd
+	else echo c2-convex-bsd
+	fi
+        exit ;;
+    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+	echo c34-convex-bsd
+        exit ;;
+    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+	echo c38-convex-bsd
+        exit ;;
+    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+	echo c4-convex-bsd
+        exit ;;
+    CRAY*Y-MP:*:*:*)
+	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*[A-Z]90:*:*:*)
+	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+	      -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*TS:*:*:*)
+	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*T3E:*:*:*)
+	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*SV1:*:*:*)
+	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    *:UNICOS/mp:*:*)
+	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+        exit ;;
+    5000:UNIX_System_V:4.*:*)
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+	exit ;;
+    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+	exit ;;
+    sparc*:BSD/OS:*:*)
+	echo sparc-unknown-bsdi${UNAME_RELEASE}
+	exit ;;
+    *:BSD/OS:*:*)
+	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+	exit ;;
+    *:FreeBSD:*:*)
+	case ${UNAME_MACHINE} in
+	    pc98)
+		echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	    amd64)
+		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	    *)
+		echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	esac
+	exit ;;
+    i*:CYGWIN*:*)
+	echo ${UNAME_MACHINE}-pc-cygwin
+	exit ;;
+    *:MINGW*:*)
+	echo ${UNAME_MACHINE}-pc-mingw32
+	exit ;;
+    i*:windows32*:*)
+    	# uname -m includes "-pc" on this system.
+    	echo ${UNAME_MACHINE}-mingw32
+	exit ;;
+    i*:PW*:*)
+	echo ${UNAME_MACHINE}-pc-pw32
+	exit ;;
+    *:Interix*:*)
+    	case ${UNAME_MACHINE} in
+	    x86)
+		echo i586-pc-interix${UNAME_RELEASE}
+		exit ;;
+	    authenticamd | genuineintel | EM64T)
+		echo x86_64-unknown-interix${UNAME_RELEASE}
+		exit ;;
+	    IA64)
+		echo ia64-unknown-interix${UNAME_RELEASE}
+		exit ;;
+	esac ;;
+    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+	echo i${UNAME_MACHINE}-pc-mks
+	exit ;;
+    8664:Windows_NT:*)
+	echo x86_64-pc-mks
+	exit ;;
+    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+	# How do we know it's Interix rather than the generic POSIX subsystem?
+	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+	# UNAME_MACHINE based on the output of uname instead of i386?
+	echo i586-pc-interix
+	exit ;;
+    i*:UWIN*:*)
+	echo ${UNAME_MACHINE}-pc-uwin
+	exit ;;
+    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+	echo x86_64-unknown-cygwin
+	exit ;;
+    p*:CYGWIN*:*)
+	echo powerpcle-unknown-cygwin
+	exit ;;
+    prep*:SunOS:5.*:*)
+	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    *:GNU:*:*)
+	# the GNU system
+	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+	exit ;;
+    *:GNU/*:*:*)
+	# other systems with GNU libc and userland
+	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+	exit ;;
+    i*86:Minix:*:*)
+	echo ${UNAME_MACHINE}-pc-minix
+	exit ;;
+    alpha:Linux:*:*)
+	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+	  EV5)   UNAME_MACHINE=alphaev5 ;;
+	  EV56)  UNAME_MACHINE=alphaev56 ;;
+	  PCA56) UNAME_MACHINE=alphapca56 ;;
+	  PCA57) UNAME_MACHINE=alphapca56 ;;
+	  EV6)   UNAME_MACHINE=alphaev6 ;;
+	  EV67)  UNAME_MACHINE=alphaev67 ;;
+	  EV68*) UNAME_MACHINE=alphaev68 ;;
+        esac
+	objdump --private-headers /bin/sh | grep -q ld.so.1
+	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+	exit ;;
+    arm*:Linux:*:*)
+	eval $set_cc_for_build
+	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+	    | grep -q __ARM_EABI__
+	then
+	    echo ${UNAME_MACHINE}-unknown-linux-gnu
+	else
+	    echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+	fi
+	exit ;;
+    avr32*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    cris:Linux:*:*)
+	echo cris-axis-linux-gnu
+	exit ;;
+    crisv32:Linux:*:*)
+	echo crisv32-axis-linux-gnu
+	exit ;;
+    frv:Linux:*:*)
+    	echo frv-unknown-linux-gnu
+	exit ;;
+    i*86:Linux:*:*)
+	LIBC=gnu
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#ifdef __dietlibc__
+	LIBC=dietlibc
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+	echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+	exit ;;
+    ia64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    m32r*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    m68*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    mips:Linux:*:* | mips64:Linux:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#undef CPU
+	#undef ${UNAME_MACHINE}
+	#undef ${UNAME_MACHINE}el
+	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+	CPU=${UNAME_MACHINE}el
+	#else
+	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+	CPU=${UNAME_MACHINE}
+	#else
+	CPU=
+	#endif
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+	;;
+    or32:Linux:*:*)
+	echo or32-unknown-linux-gnu
+	exit ;;
+    padre:Linux:*:*)
+	echo sparc-unknown-linux-gnu
+	exit ;;
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+	echo hppa64-unknown-linux-gnu
+	exit ;;
+    parisc:Linux:*:* | hppa:Linux:*:*)
+	# Look for CPU level
+	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
+	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
+	  *)    echo hppa-unknown-linux-gnu ;;
+	esac
+	exit ;;
+    ppc64:Linux:*:*)
+	echo powerpc64-unknown-linux-gnu
+	exit ;;
+    ppc:Linux:*:*)
+	echo powerpc-unknown-linux-gnu
+	exit ;;
+    s390:Linux:*:* | s390x:Linux:*:*)
+	echo ${UNAME_MACHINE}-ibm-linux
+	exit ;;
+    sh64*:Linux:*:*)
+    	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    sh*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    sparc:Linux:*:* | sparc64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    vax:Linux:*:*)
+	echo ${UNAME_MACHINE}-dec-linux-gnu
+	exit ;;
+    x86_64:Linux:*:*)
+	echo x86_64-unknown-linux-gnu
+	exit ;;
+    xtensa*:Linux:*:*)
+    	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    i*86:DYNIX/ptx:4*:*)
+	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+	# earlier versions are messed up and put the nodename in both
+	# sysname and nodename.
+	echo i386-sequent-sysv4
+	exit ;;
+    i*86:UNIX_SV:4.2MP:2.*)
+        # Unixware is an offshoot of SVR4, but it has its own version
+        # number series starting with 2...
+        # I am not positive that other SVR4 systems won't match this,
+	# I just have to hope.  -- rms.
+        # Use sysv4.2uw... so that sysv4* matches it.
+	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+	exit ;;
+    i*86:OS/2:*:*)
+	# If we were able to find `uname', then EMX Unix compatibility
+	# is probably installed.
+	echo ${UNAME_MACHINE}-pc-os2-emx
+	exit ;;
+    i*86:XTS-300:*:STOP)
+	echo ${UNAME_MACHINE}-unknown-stop
+	exit ;;
+    i*86:atheos:*:*)
+	echo ${UNAME_MACHINE}-unknown-atheos
+	exit ;;
+    i*86:syllable:*:*)
+	echo ${UNAME_MACHINE}-pc-syllable
+	exit ;;
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
+	echo i386-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    i*86:*DOS:*:*)
+	echo ${UNAME_MACHINE}-pc-msdosdjgpp
+	exit ;;
+    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+	else
+		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+	fi
+	exit ;;
+    i*86:*:5:[678]*)
+    	# UnixWare 7.x, OpenUNIX and OpenServer 6.
+	case `/bin/uname -X | grep "^Machine"` in
+	    *486*)	     UNAME_MACHINE=i486 ;;
+	    *Pentium)	     UNAME_MACHINE=i586 ;;
+	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+	esac
+	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+	exit ;;
+    i*86:*:3.2:*)
+	if test -f /usr/options/cb.name; then
+		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+	elif /bin/uname -X 2>/dev/null >/dev/null ; then
+		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+			&& UNAME_MACHINE=i586
+		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+			&& UNAME_MACHINE=i686
+		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+			&& UNAME_MACHINE=i686
+		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+	else
+		echo ${UNAME_MACHINE}-pc-sysv32
+	fi
+	exit ;;
+    pc:*:*:*)
+	# Left here for compatibility:
+        # uname -m prints for DJGPP always 'pc', but it prints nothing about
+        # the processor, so we play safe by assuming i586.
+	# Note: whatever this is, it MUST be the same as what config.sub
+	# prints for the "djgpp" host, or else GDB configury will decide that
+	# this is a cross-build.
+	echo i586-pc-msdosdjgpp
+        exit ;;
+    Intel:Mach:3*:*)
+	echo i386-pc-mach3
+	exit ;;
+    paragon:*:*:*)
+	echo i860-intel-osf1
+	exit ;;
+    i860:*:4.*:*) # i860-SVR4
+	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+	else # Add other i860-SVR4 vendors below as they are discovered.
+	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
+	fi
+	exit ;;
+    mini*:CTIX:SYS*5:*)
+	# "miniframe"
+	echo m68010-convergent-sysv
+	exit ;;
+    mc68k:UNIX:SYSTEM5:3.51m)
+	echo m68k-convergent-sysv
+	exit ;;
+    M680?0:D-NIX:5.3:*)
+	echo m68k-diab-dnix
+	exit ;;
+    M68*:*:R3V[5678]*:*)
+	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+	OS_REL=''
+	test -r /etc/.relid \
+	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+          && { echo i486-ncr-sysv4; exit; } ;;
+    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+	OS_REL='.3'
+	test -r /etc/.relid \
+	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+	echo m68k-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    mc68030:UNIX_System_V:4.*:*)
+	echo m68k-atari-sysv4
+	exit ;;
+    TSUNAMI:LynxOS:2.*:*)
+	echo sparc-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    rs6000:LynxOS:2.*:*)
+	echo rs6000-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
+	echo powerpc-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    SM[BE]S:UNIX_SV:*:*)
+	echo mips-dde-sysv${UNAME_RELEASE}
+	exit ;;
+    RM*:ReliantUNIX-*:*:*)
+	echo mips-sni-sysv4
+	exit ;;
+    RM*:SINIX-*:*:*)
+	echo mips-sni-sysv4
+	exit ;;
+    *:SINIX-*:*:*)
+	if uname -p 2>/dev/null >/dev/null ; then
+		UNAME_MACHINE=`(uname -p) 2>/dev/null`
+		echo ${UNAME_MACHINE}-sni-sysv4
+	else
+		echo ns32k-sni-sysv
+	fi
+	exit ;;
+    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+                      # says <Richard.M.Bartel@ccMail.Census.GOV>
+        echo i586-unisys-sysv4
+        exit ;;
+    *:UNIX_System_V:4*:FTX*)
+	# From Gerald Hewes <hewes@openmarket.com>.
+	# How about differentiating between stratus architectures? -djm
+	echo hppa1.1-stratus-sysv4
+	exit ;;
+    *:*:*:FTX*)
+	# From seanf@swdc.stratus.com.
+	echo i860-stratus-sysv4
+	exit ;;
+    i*86:VOS:*:*)
+	# From Paul.Green@stratus.com.
+	echo ${UNAME_MACHINE}-stratus-vos
+	exit ;;
+    *:VOS:*:*)
+	# From Paul.Green@stratus.com.
+	echo hppa1.1-stratus-vos
+	exit ;;
+    mc68*:A/UX:*:*)
+	echo m68k-apple-aux${UNAME_RELEASE}
+	exit ;;
+    news*:NEWS-OS:6*:*)
+	echo mips-sony-newsos6
+	exit ;;
+    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+	if [ -d /usr/nec ]; then
+	        echo mips-nec-sysv${UNAME_RELEASE}
+	else
+	        echo mips-unknown-sysv${UNAME_RELEASE}
+	fi
+        exit ;;
+    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
+	echo powerpc-be-beos
+	exit ;;
+    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
+	echo powerpc-apple-beos
+	exit ;;
+    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
+	echo i586-pc-beos
+	exit ;;
+    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
+	echo i586-pc-haiku
+	exit ;;
+    SX-4:SUPER-UX:*:*)
+	echo sx4-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-5:SUPER-UX:*:*)
+	echo sx5-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-6:SUPER-UX:*:*)
+	echo sx6-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-7:SUPER-UX:*:*)
+	echo sx7-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-8:SUPER-UX:*:*)
+	echo sx8-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-8R:SUPER-UX:*:*)
+	echo sx8r-nec-superux${UNAME_RELEASE}
+	exit ;;
+    Power*:Rhapsody:*:*)
+	echo powerpc-apple-rhapsody${UNAME_RELEASE}
+	exit ;;
+    *:Rhapsody:*:*)
+	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+	exit ;;
+    *:Darwin:*:*)
+	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+	case $UNAME_PROCESSOR in
+	    i386)
+		eval $set_cc_for_build
+		if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+		  if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+		      (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		      grep IS_64BIT_ARCH >/dev/null
+		  then
+		      UNAME_PROCESSOR="x86_64"
+		  fi
+		fi ;;
+	    unknown) UNAME_PROCESSOR=powerpc ;;
+	esac
+	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+	exit ;;
+    *:procnto*:*:* | *:QNX:[0123456789]*:*)
+	UNAME_PROCESSOR=`uname -p`
+	if test "$UNAME_PROCESSOR" = "x86"; then
+		UNAME_PROCESSOR=i386
+		UNAME_MACHINE=pc
+	fi
+	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+	exit ;;
+    *:QNX:*:4*)
+	echo i386-pc-qnx
+	exit ;;
+    NSE-?:NONSTOP_KERNEL:*:*)
+	echo nse-tandem-nsk${UNAME_RELEASE}
+	exit ;;
+    NSR-?:NONSTOP_KERNEL:*:*)
+	echo nsr-tandem-nsk${UNAME_RELEASE}
+	exit ;;
+    *:NonStop-UX:*:*)
+	echo mips-compaq-nonstopux
+	exit ;;
+    BS2000:POSIX*:*:*)
+	echo bs2000-siemens-sysv
+	exit ;;
+    DS/*:UNIX_System_V:*:*)
+	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+	exit ;;
+    *:Plan9:*:*)
+	# "uname -m" is not consistent, so use $cputype instead. 386
+	# is converted to i386 for consistency with other x86
+	# operating systems.
+	if test "$cputype" = "386"; then
+	    UNAME_MACHINE=i386
+	else
+	    UNAME_MACHINE="$cputype"
+	fi
+	echo ${UNAME_MACHINE}-unknown-plan9
+	exit ;;
+    *:TOPS-10:*:*)
+	echo pdp10-unknown-tops10
+	exit ;;
+    *:TENEX:*:*)
+	echo pdp10-unknown-tenex
+	exit ;;
+    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+	echo pdp10-dec-tops20
+	exit ;;
+    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+	echo pdp10-xkl-tops20
+	exit ;;
+    *:TOPS-20:*:*)
+	echo pdp10-unknown-tops20
+	exit ;;
+    *:ITS:*:*)
+	echo pdp10-unknown-its
+	exit ;;
+    SEI:*:*:SEIUX)
+        echo mips-sei-seiux${UNAME_RELEASE}
+	exit ;;
+    *:DragonFly:*:*)
+	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+	exit ;;
+    *:*VMS:*:*)
+    	UNAME_MACHINE=`(uname -p) 2>/dev/null`
+	case "${UNAME_MACHINE}" in
+	    A*) echo alpha-dec-vms ; exit ;;
+	    I*) echo ia64-dec-vms ; exit ;;
+	    V*) echo vax-dec-vms ; exit ;;
+	esac ;;
+    *:XENIX:*:SysV)
+	echo i386-pc-xenix
+	exit ;;
+    i*86:skyos:*:*)
+	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+	exit ;;
+    i*86:rdos:*:*)
+	echo ${UNAME_MACHINE}-pc-rdos
+	exit ;;
+    i*86:AROS:*:*)
+	echo ${UNAME_MACHINE}-pc-aros
+	exit ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
+     I don't know....  */
+  printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+  printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+          "4"
+#else
+	  ""
+#endif
+         ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+  printf ("arm-acorn-riscix\n"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+  printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+  int version;
+  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+  if (version < 4)
+    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+  else
+    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+  exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+  printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+  printf ("ns32k-encore-mach\n"); exit (0);
+#else
+  printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+  printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+  printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+  printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+    struct utsname un;
+
+    uname(&un);
+
+    if (strncmp(un.version, "V2", 2) == 0) {
+	printf ("i386-sequent-ptx2\n"); exit (0);
+    }
+    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+	printf ("i386-sequent-ptx1\n"); exit (0);
+    }
+    printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+#  include <sys/param.h>
+#  if defined (BSD)
+#   if BSD == 43
+      printf ("vax-dec-bsd4.3\n"); exit (0);
+#   else
+#    if BSD == 199006
+      printf ("vax-dec-bsd4.3reno\n"); exit (0);
+#    else
+      printf ("vax-dec-bsd\n"); exit (0);
+#    endif
+#   endif
+#  else
+    printf ("vax-dec-bsd\n"); exit (0);
+#  endif
+# else
+    printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+  printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+  exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+	{ echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+    case `getsysinfo -f cpu_type` in
+    c1*)
+	echo c1-convex-bsd
+	exit ;;
+    c2*)
+	if getsysinfo -f scalar_acc
+	then echo c32-convex-bsd
+	else echo c2-convex-bsd
+	fi
+	exit ;;
+    c34*)
+	echo c34-convex-bsd
+	exit ;;
+    c38*)
+	echo c38-convex-bsd
+	exit ;;
+    c4*)
+	echo c4-convex-bsd
+	exit ;;
+    esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+and
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches@gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo               = `(hostinfo) 2>/dev/null`
+/bin/universe          = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch              = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM  = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/config.sub b/framework/modules/c_FileTypeSigModule/file-5.08/config.sub
new file mode 100755
index 0000000000000000000000000000000000000000..85186096a9e1c6953474b9294f9d5c6041d648cf
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/config.sub
@@ -0,0 +1,1708 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+#   Free Software Foundation, Inc.
+
+timestamp='2009-12-31'
+
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
+# can handle that machine.  It does not imply ALL GNU software can.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# Please send patches to <config-patches@gnu.org>.  Submit a context
+# diff and a properly formatted GNU ChangeLog entry.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support.  The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+       $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
+Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )	# Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help"
+       exit 1 ;;
+
+    *local*)
+       # First pass through any local machine types.
+       echo $1
+       exit ;;
+
+    * )
+       break ;;
+  esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+    exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+    exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
+  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+  kopensolaris*-gnu* | \
+  storm-chaos* | os2-emx* | rtmk-nova*)
+    os=-$maybe_os
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+    ;;
+  *)
+    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+    if [ $basic_machine != $1 ]
+    then os=`echo $1 | sed 's/.*-/-/'`
+    else os=; fi
+    ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work.  We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+	-sun*os*)
+		# Prevent following clause from handling this invalid input.
+		;;
+	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+	-apple | -axis | -knuth | -cray | -microblaze)
+		os=
+		basic_machine=$1
+		;;
+        -bluegene*)
+	        os=-cnk
+		;;
+	-sim | -cisco | -oki | -wec | -winbond)
+		os=
+		basic_machine=$1
+		;;
+	-scout)
+		;;
+	-wrs)
+		os=-vxworks
+		basic_machine=$1
+		;;
+	-chorusos*)
+		os=-chorusos
+		basic_machine=$1
+		;;
+ 	-chorusrdb)
+ 		os=-chorusrdb
+		basic_machine=$1
+ 		;;
+	-hiux*)
+		os=-hiuxwe2
+		;;
+	-sco6)
+		os=-sco5v6
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco5)
+		os=-sco3.2v5
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco4)
+		os=-sco3.2v4
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2.[4-9]*)
+		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2v[4-9]*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco5v6*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco*)
+		os=-sco3.2v2
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-udk*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-isc)
+		os=-isc2.2
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-clix*)
+		basic_machine=clipper-intergraph
+		;;
+	-isc*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-lynx*)
+		os=-lynxos
+		;;
+	-ptx*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+		;;
+	-windowsnt*)
+		os=`echo $os | sed -e 's/windowsnt/winnt/'`
+		;;
+	-psos*)
+		os=-psos
+		;;
+	-mint | -mint[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
+		;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+	# Recognize the basic CPU types without company name.
+	# Some are omitted here because they have special meanings below.
+	1750a | 580 \
+	| a29k \
+	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+	| am33_2.0 \
+	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+	| bfin \
+	| c4x | clipper \
+	| d10v | d30v | dlx | dsp16xx \
+	| fido | fr30 | frv \
+	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+	| i370 | i860 | i960 | ia64 \
+	| ip2k | iq2000 \
+	| lm32 \
+	| m32c | m32r | m32rle | m68000 | m68k | m88k \
+	| maxq | mb | microblaze | mcore | mep | metag \
+	| mips | mipsbe | mipseb | mipsel | mipsle \
+	| mips16 \
+	| mips64 | mips64el \
+	| mips64octeon | mips64octeonel \
+	| mips64orion | mips64orionel \
+	| mips64r5900 | mips64r5900el \
+	| mips64vr | mips64vrel \
+	| mips64vr4100 | mips64vr4100el \
+	| mips64vr4300 | mips64vr4300el \
+	| mips64vr5000 | mips64vr5000el \
+	| mips64vr5900 | mips64vr5900el \
+	| mipsisa32 | mipsisa32el \
+	| mipsisa32r2 | mipsisa32r2el \
+	| mipsisa64 | mipsisa64el \
+	| mipsisa64r2 | mipsisa64r2el \
+	| mipsisa64sb1 | mipsisa64sb1el \
+	| mipsisa64sr71k | mipsisa64sr71kel \
+	| mipstx39 | mipstx39el \
+	| mn10200 | mn10300 \
+	| moxie \
+	| mt \
+	| msp430 \
+	| nios | nios2 \
+	| ns16k | ns32k \
+	| or32 \
+	| pdp10 | pdp11 | pj | pjl \
+	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+	| pyramid \
+	| rx \
+	| score \
+	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+	| sh64 | sh64le \
+	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+	| spu | strongarm \
+	| tahoe | thumb | tic4x | tic80 | tron \
+	| ubicom32 \
+	| v850 | v850e \
+	| we32k \
+	| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
+	| z8k | z80)
+		basic_machine=$basic_machine-unknown
+		;;
+	m6811 | m68hc11 | m6812 | m68hc12 | picochip)
+		# Motorola 68HC11/12.
+		basic_machine=$basic_machine-unknown
+		os=-none
+		;;
+	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+		;;
+	ms1)
+		basic_machine=mt-unknown
+		;;
+
+	# We use `pc' rather than `unknown'
+	# because (1) that's what they normally are, and
+	# (2) the word "unknown" tends to confuse beginning users.
+	i*86 | x86_64)
+	  basic_machine=$basic_machine-pc
+	  ;;
+	# Object if more than one company name word.
+	*-*-*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+	# Recognize the basic CPU types with company name.
+	580-* \
+	| a29k-* \
+	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
+	| avr-* | avr32-* \
+	| bfin-* | bs2000-* \
+	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
+	| clipper-* | craynv-* | cydra-* \
+	| d10v-* | d30v-* | dlx-* \
+	| elxsi-* \
+	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+	| h8300-* | h8500-* \
+	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+	| i*86-* | i860-* | i960-* | ia64-* \
+	| ip2k-* | iq2000-* \
+	| lm32-* \
+	| m32c-* | m32r-* | m32rle-* \
+	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
+	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+	| mips16-* \
+	| mips64-* | mips64el-* \
+	| mips64octeon-* | mips64octeonel-* \
+	| mips64orion-* | mips64orionel-* \
+	| mips64r5900-* | mips64r5900el-* \
+	| mips64vr-* | mips64vrel-* \
+	| mips64vr4100-* | mips64vr4100el-* \
+	| mips64vr4300-* | mips64vr4300el-* \
+	| mips64vr5000-* | mips64vr5000el-* \
+	| mips64vr5900-* | mips64vr5900el-* \
+	| mipsisa32-* | mipsisa32el-* \
+	| mipsisa32r2-* | mipsisa32r2el-* \
+	| mipsisa64-* | mipsisa64el-* \
+	| mipsisa64r2-* | mipsisa64r2el-* \
+	| mipsisa64sb1-* | mipsisa64sb1el-* \
+	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+	| mipstx39-* | mipstx39el-* \
+	| mmix-* \
+	| mt-* \
+	| msp430-* \
+	| nios-* | nios2-* \
+	| none-* | np1-* | ns16k-* | ns32k-* \
+	| orion-* \
+	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+	| pyramid-* \
+	| romp-* | rs6000-* | rx-* \
+	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+	| sparclite-* \
+	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
+	| tahoe-* | thumb-* \
+	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
+	| tron-* \
+	| ubicom32-* \
+	| v850-* | v850e-* | vax-* \
+	| we32k-* \
+	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
+	| xstormy16-* | xtensa*-* \
+	| ymp-* \
+	| z8k-* | z80-*)
+		;;
+	# Recognize the basic CPU types without company name, with glob match.
+	xtensa*)
+		basic_machine=$basic_machine-unknown
+		;;
+	# Recognize the various machine names and aliases which stand
+	# for a CPU type and a company and sometimes even an OS.
+	386bsd)
+		basic_machine=i386-unknown
+		os=-bsd
+		;;
+	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+		basic_machine=m68000-att
+		;;
+	3b*)
+		basic_machine=we32k-att
+		;;
+	a29khif)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+    	abacus)
+		basic_machine=abacus-unknown
+		;;
+	adobe68k)
+		basic_machine=m68010-adobe
+		os=-scout
+		;;
+	alliant | fx80)
+		basic_machine=fx80-alliant
+		;;
+	altos | altos3068)
+		basic_machine=m68k-altos
+		;;
+	am29k)
+		basic_machine=a29k-none
+		os=-bsd
+		;;
+	amd64)
+		basic_machine=x86_64-pc
+		;;
+	amd64-*)
+		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	amdahl)
+		basic_machine=580-amdahl
+		os=-sysv
+		;;
+	amiga | amiga-*)
+		basic_machine=m68k-unknown
+		;;
+	amigaos | amigados)
+		basic_machine=m68k-unknown
+		os=-amigaos
+		;;
+	amigaunix | amix)
+		basic_machine=m68k-unknown
+		os=-sysv4
+		;;
+	apollo68)
+		basic_machine=m68k-apollo
+		os=-sysv
+		;;
+	apollo68bsd)
+		basic_machine=m68k-apollo
+		os=-bsd
+		;;
+	aros)
+		basic_machine=i386-pc
+		os=-aros
+		;;
+	aux)
+		basic_machine=m68k-apple
+		os=-aux
+		;;
+	balance)
+		basic_machine=ns32k-sequent
+		os=-dynix
+		;;
+	blackfin)
+		basic_machine=bfin-unknown
+		os=-linux
+		;;
+	blackfin-*)
+		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	bluegene*)
+		basic_machine=powerpc-ibm
+		os=-cnk
+		;;
+	c90)
+		basic_machine=c90-cray
+		os=-unicos
+		;;
+        cegcc)
+		basic_machine=arm-unknown
+		os=-cegcc
+		;;
+	convex-c1)
+		basic_machine=c1-convex
+		os=-bsd
+		;;
+	convex-c2)
+		basic_machine=c2-convex
+		os=-bsd
+		;;
+	convex-c32)
+		basic_machine=c32-convex
+		os=-bsd
+		;;
+	convex-c34)
+		basic_machine=c34-convex
+		os=-bsd
+		;;
+	convex-c38)
+		basic_machine=c38-convex
+		os=-bsd
+		;;
+	cray | j90)
+		basic_machine=j90-cray
+		os=-unicos
+		;;
+	craynv)
+		basic_machine=craynv-cray
+		os=-unicosmp
+		;;
+	cr16)
+		basic_machine=cr16-unknown
+		os=-elf
+		;;
+	crds | unos)
+		basic_machine=m68k-crds
+		;;
+	crisv32 | crisv32-* | etraxfs*)
+		basic_machine=crisv32-axis
+		;;
+	cris | cris-* | etrax*)
+		basic_machine=cris-axis
+		;;
+	crx)
+		basic_machine=crx-unknown
+		os=-elf
+		;;
+	da30 | da30-*)
+		basic_machine=m68k-da30
+		;;
+	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+		basic_machine=mips-dec
+		;;
+	decsystem10* | dec10*)
+		basic_machine=pdp10-dec
+		os=-tops10
+		;;
+	decsystem20* | dec20*)
+		basic_machine=pdp10-dec
+		os=-tops20
+		;;
+	delta | 3300 | motorola-3300 | motorola-delta \
+	      | 3300-motorola | delta-motorola)
+		basic_machine=m68k-motorola
+		;;
+	delta88)
+		basic_machine=m88k-motorola
+		os=-sysv3
+		;;
+	dicos)
+		basic_machine=i686-pc
+		os=-dicos
+		;;
+	djgpp)
+		basic_machine=i586-pc
+		os=-msdosdjgpp
+		;;
+	dpx20 | dpx20-*)
+		basic_machine=rs6000-bull
+		os=-bosx
+		;;
+	dpx2* | dpx2*-bull)
+		basic_machine=m68k-bull
+		os=-sysv3
+		;;
+	ebmon29k)
+		basic_machine=a29k-amd
+		os=-ebmon
+		;;
+	elxsi)
+		basic_machine=elxsi-elxsi
+		os=-bsd
+		;;
+	encore | umax | mmax)
+		basic_machine=ns32k-encore
+		;;
+	es1800 | OSE68k | ose68k | ose | OSE)
+		basic_machine=m68k-ericsson
+		os=-ose
+		;;
+	fx2800)
+		basic_machine=i860-alliant
+		;;
+	genix)
+		basic_machine=ns32k-ns
+		;;
+	gmicro)
+		basic_machine=tron-gmicro
+		os=-sysv
+		;;
+	go32)
+		basic_machine=i386-pc
+		os=-go32
+		;;
+	h3050r* | hiux*)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	h8300hms)
+		basic_machine=h8300-hitachi
+		os=-hms
+		;;
+	h8300xray)
+		basic_machine=h8300-hitachi
+		os=-xray
+		;;
+	h8500hms)
+		basic_machine=h8500-hitachi
+		os=-hms
+		;;
+	harris)
+		basic_machine=m88k-harris
+		os=-sysv3
+		;;
+	hp300-*)
+		basic_machine=m68k-hp
+		;;
+	hp300bsd)
+		basic_machine=m68k-hp
+		os=-bsd
+		;;
+	hp300hpux)
+		basic_machine=m68k-hp
+		os=-hpux
+		;;
+	hp3k9[0-9][0-9] | hp9[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hp9k2[0-9][0-9] | hp9k31[0-9])
+		basic_machine=m68000-hp
+		;;
+	hp9k3[2-9][0-9])
+		basic_machine=m68k-hp
+		;;
+	hp9k6[0-9][0-9] | hp6[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hp9k7[0-79][0-9] | hp7[0-79][0-9])
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k78[0-9] | hp78[0-9])
+		# FIXME: really hppa2.0-hp
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+		# FIXME: really hppa2.0-hp
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[0-9][13679] | hp8[0-9][13679])
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[0-9][0-9] | hp8[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hppa-next)
+		os=-nextstep3
+		;;
+	hppaosf)
+		basic_machine=hppa1.1-hp
+		os=-osf
+		;;
+	hppro)
+		basic_machine=hppa1.1-hp
+		os=-proelf
+		;;
+	i370-ibm* | ibm*)
+		basic_machine=i370-ibm
+		;;
+# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
+	i*86v32)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv32
+		;;
+	i*86v4*)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv4
+		;;
+	i*86v)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv
+		;;
+	i*86sol2)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-solaris2
+		;;
+	i386mach)
+		basic_machine=i386-mach
+		os=-mach
+		;;
+	i386-vsta | vsta)
+		basic_machine=i386-unknown
+		os=-vsta
+		;;
+	iris | iris4d)
+		basic_machine=mips-sgi
+		case $os in
+		    -irix*)
+			;;
+		    *)
+			os=-irix4
+			;;
+		esac
+		;;
+	isi68 | isi)
+		basic_machine=m68k-isi
+		os=-sysv
+		;;
+	m68knommu)
+		basic_machine=m68k-unknown
+		os=-linux
+		;;
+	m68knommu-*)
+		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	m88k-omron*)
+		basic_machine=m88k-omron
+		;;
+	magnum | m3230)
+		basic_machine=mips-mips
+		os=-sysv
+		;;
+	merlin)
+		basic_machine=ns32k-utek
+		os=-sysv
+		;;
+        microblaze)
+		basic_machine=microblaze-xilinx
+		;;
+	mingw32)
+		basic_machine=i386-pc
+		os=-mingw32
+		;;
+	mingw32ce)
+		basic_machine=arm-unknown
+		os=-mingw32ce
+		;;
+	miniframe)
+		basic_machine=m68000-convergent
+		;;
+	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
+		;;
+	mips3*-*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+		;;
+	mips3*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+		;;
+	monitor)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
+	morphos)
+		basic_machine=powerpc-unknown
+		os=-morphos
+		;;
+	msdos)
+		basic_machine=i386-pc
+		os=-msdos
+		;;
+	ms1-*)
+		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+		;;
+	mvs)
+		basic_machine=i370-ibm
+		os=-mvs
+		;;
+	ncr3000)
+		basic_machine=i486-ncr
+		os=-sysv4
+		;;
+	netbsd386)
+		basic_machine=i386-unknown
+		os=-netbsd
+		;;
+	netwinder)
+		basic_machine=armv4l-rebel
+		os=-linux
+		;;
+	news | news700 | news800 | news900)
+		basic_machine=m68k-sony
+		os=-newsos
+		;;
+	news1000)
+		basic_machine=m68030-sony
+		os=-newsos
+		;;
+	news-3600 | risc-news)
+		basic_machine=mips-sony
+		os=-newsos
+		;;
+	necv70)
+		basic_machine=v70-nec
+		os=-sysv
+		;;
+	next | m*-next )
+		basic_machine=m68k-next
+		case $os in
+		    -nextstep* )
+			;;
+		    -ns2*)
+		      os=-nextstep2
+			;;
+		    *)
+		      os=-nextstep3
+			;;
+		esac
+		;;
+	nh3000)
+		basic_machine=m68k-harris
+		os=-cxux
+		;;
+	nh[45]000)
+		basic_machine=m88k-harris
+		os=-cxux
+		;;
+	nindy960)
+		basic_machine=i960-intel
+		os=-nindy
+		;;
+	mon960)
+		basic_machine=i960-intel
+		os=-mon960
+		;;
+	nonstopux)
+		basic_machine=mips-compaq
+		os=-nonstopux
+		;;
+	np1)
+		basic_machine=np1-gould
+		;;
+	nsr-tandem)
+		basic_machine=nsr-tandem
+		;;
+	op50n-* | op60c-*)
+		basic_machine=hppa1.1-oki
+		os=-proelf
+		;;
+	openrisc | openrisc-*)
+		basic_machine=or32-unknown
+		;;
+	os400)
+		basic_machine=powerpc-ibm
+		os=-os400
+		;;
+	OSE68000 | ose68000)
+		basic_machine=m68000-ericsson
+		os=-ose
+		;;
+	os68k)
+		basic_machine=m68k-none
+		os=-os68k
+		;;
+	pa-hitachi)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	paragon)
+		basic_machine=i860-intel
+		os=-osf
+		;;
+	parisc)
+		basic_machine=hppa-unknown
+		os=-linux
+		;;
+	parisc-*)
+		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	pbd)
+		basic_machine=sparc-tti
+		;;
+	pbb)
+		basic_machine=m68k-tti
+		;;
+	pc532 | pc532-*)
+		basic_machine=ns32k-pc532
+		;;
+	pc98)
+		basic_machine=i386-pc
+		;;
+	pc98-*)
+		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentium | p5 | k5 | k6 | nexgen | viac3)
+		basic_machine=i586-pc
+		;;
+	pentiumpro | p6 | 6x86 | athlon | athlon_*)
+		basic_machine=i686-pc
+		;;
+	pentiumii | pentium2 | pentiumiii | pentium3)
+		basic_machine=i686-pc
+		;;
+	pentium4)
+		basic_machine=i786-pc
+		;;
+	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumpro-* | p6-* | 6x86-* | athlon-*)
+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentium4-*)
+		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pn)
+		basic_machine=pn-gould
+		;;
+	power)	basic_machine=power-ibm
+		;;
+	ppc)	basic_machine=powerpc-unknown
+		;;
+	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppcle | powerpclittle | ppc-le | powerpc-little)
+		basic_machine=powerpcle-unknown
+		;;
+	ppcle-* | powerpclittle-*)
+		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppc64)	basic_machine=powerpc64-unknown
+		;;
+	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+		basic_machine=powerpc64le-unknown
+		;;
+	ppc64le-* | powerpc64little-*)
+		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ps2)
+		basic_machine=i386-ibm
+		;;
+	pw32)
+		basic_machine=i586-unknown
+		os=-pw32
+		;;
+	rdos)
+		basic_machine=i386-pc
+		os=-rdos
+		;;
+	rom68k)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
+	rm[46]00)
+		basic_machine=mips-siemens
+		;;
+	rtpc | rtpc-*)
+		basic_machine=romp-ibm
+		;;
+	s390 | s390-*)
+		basic_machine=s390-ibm
+		;;
+	s390x | s390x-*)
+		basic_machine=s390x-ibm
+		;;
+	sa29200)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	sb1)
+		basic_machine=mipsisa64sb1-unknown
+		;;
+	sb1el)
+		basic_machine=mipsisa64sb1el-unknown
+		;;
+	sde)
+		basic_machine=mipsisa32-sde
+		os=-elf
+		;;
+	sei)
+		basic_machine=mips-sei
+		os=-seiux
+		;;
+	sequent)
+		basic_machine=i386-sequent
+		;;
+	sh)
+		basic_machine=sh-hitachi
+		os=-hms
+		;;
+	sh5el)
+		basic_machine=sh5le-unknown
+		;;
+	sh64)
+		basic_machine=sh64-unknown
+		;;
+	sparclite-wrs | simso-wrs)
+		basic_machine=sparclite-wrs
+		os=-vxworks
+		;;
+	sps7)
+		basic_machine=m68k-bull
+		os=-sysv2
+		;;
+	spur)
+		basic_machine=spur-unknown
+		;;
+	st2000)
+		basic_machine=m68k-tandem
+		;;
+	stratus)
+		basic_machine=i860-stratus
+		os=-sysv4
+		;;
+	sun2)
+		basic_machine=m68000-sun
+		;;
+	sun2os3)
+		basic_machine=m68000-sun
+		os=-sunos3
+		;;
+	sun2os4)
+		basic_machine=m68000-sun
+		os=-sunos4
+		;;
+	sun3os3)
+		basic_machine=m68k-sun
+		os=-sunos3
+		;;
+	sun3os4)
+		basic_machine=m68k-sun
+		os=-sunos4
+		;;
+	sun4os3)
+		basic_machine=sparc-sun
+		os=-sunos3
+		;;
+	sun4os4)
+		basic_machine=sparc-sun
+		os=-sunos4
+		;;
+	sun4sol2)
+		basic_machine=sparc-sun
+		os=-solaris2
+		;;
+	sun3 | sun3-*)
+		basic_machine=m68k-sun
+		;;
+	sun4)
+		basic_machine=sparc-sun
+		;;
+	sun386 | sun386i | roadrunner)
+		basic_machine=i386-sun
+		;;
+	sv1)
+		basic_machine=sv1-cray
+		os=-unicos
+		;;
+	symmetry)
+		basic_machine=i386-sequent
+		os=-dynix
+		;;
+	t3e)
+		basic_machine=alphaev5-cray
+		os=-unicos
+		;;
+	t90)
+		basic_machine=t90-cray
+		os=-unicos
+		;;
+	tic54x | c54x*)
+		basic_machine=tic54x-unknown
+		os=-coff
+		;;
+	tic55x | c55x*)
+		basic_machine=tic55x-unknown
+		os=-coff
+		;;
+	tic6x | c6x*)
+		basic_machine=tic6x-unknown
+		os=-coff
+		;;
+	tile*)
+		basic_machine=tile-unknown
+		os=-linux-gnu
+		;;
+	tx39)
+		basic_machine=mipstx39-unknown
+		;;
+	tx39el)
+		basic_machine=mipstx39el-unknown
+		;;
+	toad1)
+		basic_machine=pdp10-xkl
+		os=-tops20
+		;;
+	tower | tower-32)
+		basic_machine=m68k-ncr
+		;;
+	tpf)
+		basic_machine=s390x-ibm
+		os=-tpf
+		;;
+	udi29k)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	ultra3)
+		basic_machine=a29k-nyu
+		os=-sym1
+		;;
+	v810 | necv810)
+		basic_machine=v810-nec
+		os=-none
+		;;
+	vaxv)
+		basic_machine=vax-dec
+		os=-sysv
+		;;
+	vms)
+		basic_machine=vax-dec
+		os=-vms
+		;;
+	vpp*|vx|vx-*)
+		basic_machine=f301-fujitsu
+		;;
+	vxworks960)
+		basic_machine=i960-wrs
+		os=-vxworks
+		;;
+	vxworks68)
+		basic_machine=m68k-wrs
+		os=-vxworks
+		;;
+	vxworks29k)
+		basic_machine=a29k-wrs
+		os=-vxworks
+		;;
+	w65*)
+		basic_machine=w65-wdc
+		os=-none
+		;;
+	w89k-*)
+		basic_machine=hppa1.1-winbond
+		os=-proelf
+		;;
+	xbox)
+		basic_machine=i686-pc
+		os=-mingw32
+		;;
+	xps | xps100)
+		basic_machine=xps100-honeywell
+		;;
+	ymp)
+		basic_machine=ymp-cray
+		os=-unicos
+		;;
+	z8k-*-coff)
+		basic_machine=z8k-unknown
+		os=-sim
+		;;
+	z80-*-coff)
+		basic_machine=z80-unknown
+		os=-sim
+		;;
+	none)
+		basic_machine=none-none
+		os=-none
+		;;
+
+# Here we handle the default manufacturer of certain CPU types.  It is in
+# some cases the only manufacturer, in others, it is the most popular.
+	w89k)
+		basic_machine=hppa1.1-winbond
+		;;
+	op50n)
+		basic_machine=hppa1.1-oki
+		;;
+	op60c)
+		basic_machine=hppa1.1-oki
+		;;
+	romp)
+		basic_machine=romp-ibm
+		;;
+	mmix)
+		basic_machine=mmix-knuth
+		;;
+	rs6000)
+		basic_machine=rs6000-ibm
+		;;
+	vax)
+		basic_machine=vax-dec
+		;;
+	pdp10)
+		# there are many clones, so DEC is not a safe bet
+		basic_machine=pdp10-unknown
+		;;
+	pdp11)
+		basic_machine=pdp11-dec
+		;;
+	we32k)
+		basic_machine=we32k-att
+		;;
+	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
+		basic_machine=sh-unknown
+		;;
+	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
+		basic_machine=sparc-sun
+		;;
+	cydra)
+		basic_machine=cydra-cydrome
+		;;
+	orion)
+		basic_machine=orion-highlevel
+		;;
+	orion105)
+		basic_machine=clipper-highlevel
+		;;
+	mac | mpw | mac-mpw)
+		basic_machine=m68k-apple
+		;;
+	pmac | pmac-mpw)
+		basic_machine=powerpc-apple
+		;;
+	*-unknown)
+		# Make sure to match an already-canonicalized machine name.
+		;;
+	*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+	*-digital*)
+		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+		;;
+	*-commodore*)
+		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+		;;
+	*)
+		;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+        # First match some system type aliases
+        # that might get confused with valid system types.
+	# -solaris* is a basic system type, with this one exception.
+        -auroraux)
+	        os=-auroraux
+		;;
+	-solaris1 | -solaris1.*)
+		os=`echo $os | sed -e 's|solaris1|sunos4|'`
+		;;
+	-solaris)
+		os=-solaris2
+		;;
+	-svr4*)
+		os=-sysv4
+		;;
+	-unixware*)
+		os=-sysv4.2uw
+		;;
+	-gnu/linux*)
+		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+		;;
+	# First accept the basic system types.
+	# The portable systems comes first.
+	# Each alternative MUST END IN A *, to match a version number.
+	# -sysv* is not here because it comes later, after sysvr4.
+	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+	      | -sym* | -kopensolaris* \
+	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+	      | -aos* | -aros* \
+	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+	      | -openbsd* | -solidbsd* \
+	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+	      | -chorusos* | -chorusrdb* | -cegcc* \
+	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+	      | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
+	      | -uxpv* | -beos* | -mpeix* | -udk* \
+	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
+	# Remember, each alternative MUST END IN *, to match a version number.
+		;;
+	-qnx*)
+		case $basic_machine in
+		    x86-* | i*86-*)
+			;;
+		    *)
+			os=-nto$os
+			;;
+		esac
+		;;
+	-nto-qnx*)
+		;;
+	-nto*)
+		os=`echo $os | sed -e 's|nto|nto-qnx|'`
+		;;
+	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+		;;
+	-mac*)
+		os=`echo $os | sed -e 's|mac|macos|'`
+		;;
+	-linux-dietlibc)
+		os=-linux-dietlibc
+		;;
+	-linux*)
+		os=`echo $os | sed -e 's|linux|linux-gnu|'`
+		;;
+	-sunos5*)
+		os=`echo $os | sed -e 's|sunos5|solaris2|'`
+		;;
+	-sunos6*)
+		os=`echo $os | sed -e 's|sunos6|solaris3|'`
+		;;
+	-opened*)
+		os=-openedition
+		;;
+        -os400*)
+		os=-os400
+		;;
+	-wince*)
+		os=-wince
+		;;
+	-osfrose*)
+		os=-osfrose
+		;;
+	-osf*)
+		os=-osf
+		;;
+	-utek*)
+		os=-bsd
+		;;
+	-dynix*)
+		os=-bsd
+		;;
+	-acis*)
+		os=-aos
+		;;
+	-atheos*)
+		os=-atheos
+		;;
+	-syllable*)
+		os=-syllable
+		;;
+	-386bsd)
+		os=-bsd
+		;;
+	-ctix* | -uts*)
+		os=-sysv
+		;;
+	-nova*)
+		os=-rtmk-nova
+		;;
+	-ns2 )
+		os=-nextstep2
+		;;
+	-nsk*)
+		os=-nsk
+		;;
+	# Preserve the version number of sinix5.
+	-sinix5.*)
+		os=`echo $os | sed -e 's|sinix|sysv|'`
+		;;
+	-sinix*)
+		os=-sysv4
+		;;
+        -tpf*)
+		os=-tpf
+		;;
+	-triton*)
+		os=-sysv3
+		;;
+	-oss*)
+		os=-sysv3
+		;;
+	-svr4)
+		os=-sysv4
+		;;
+	-svr3)
+		os=-sysv3
+		;;
+	-sysvr4)
+		os=-sysv4
+		;;
+	# This must come after -sysvr4.
+	-sysv*)
+		;;
+	-ose*)
+		os=-ose
+		;;
+	-es1800*)
+		os=-ose
+		;;
+	-xenix)
+		os=-xenix
+		;;
+	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+		os=-mint
+		;;
+	-aros*)
+		os=-aros
+		;;
+	-kaos*)
+		os=-kaos
+		;;
+	-zvmoe)
+		os=-zvmoe
+		;;
+	-dicos*)
+		os=-dicos
+		;;
+        -nacl*)
+	        ;;
+	-none)
+		;;
+	*)
+		# Get rid of the `-' at the beginning of $os.
+		os=`echo $os | sed 's/[^-]*-//'`
+		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+		exit 1
+		;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system.  Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+        score-*)
+		os=-elf
+		;;
+        spu-*)
+		os=-elf
+		;;
+	*-acorn)
+		os=-riscix1.2
+		;;
+	arm*-rebel)
+		os=-linux
+		;;
+	arm*-semi)
+		os=-aout
+		;;
+        c4x-* | tic4x-*)
+        	os=-coff
+		;;
+	# This must come before the *-dec entry.
+	pdp10-*)
+		os=-tops20
+		;;
+	pdp11-*)
+		os=-none
+		;;
+	*-dec | vax-*)
+		os=-ultrix4.2
+		;;
+	m68*-apollo)
+		os=-domain
+		;;
+	i386-sun)
+		os=-sunos4.0.2
+		;;
+	m68000-sun)
+		os=-sunos3
+		# This also exists in the configure program, but was not the
+		# default.
+		# os=-sunos4
+		;;
+	m68*-cisco)
+		os=-aout
+		;;
+        mep-*)
+		os=-elf
+		;;
+	mips*-cisco)
+		os=-elf
+		;;
+	mips*-*)
+		os=-elf
+		;;
+	or32-*)
+		os=-coff
+		;;
+	*-tti)	# must be before sparc entry or we get the wrong os.
+		os=-sysv3
+		;;
+	sparc-* | *-sun)
+		os=-sunos4.1.1
+		;;
+	*-be)
+		os=-beos
+		;;
+	*-haiku)
+		os=-haiku
+		;;
+	*-ibm)
+		os=-aix
+		;;
+    	*-knuth)
+		os=-mmixware
+		;;
+	*-wec)
+		os=-proelf
+		;;
+	*-winbond)
+		os=-proelf
+		;;
+	*-oki)
+		os=-proelf
+		;;
+	*-hp)
+		os=-hpux
+		;;
+	*-hitachi)
+		os=-hiux
+		;;
+	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+		os=-sysv
+		;;
+	*-cbm)
+		os=-amigaos
+		;;
+	*-dg)
+		os=-dgux
+		;;
+	*-dolphin)
+		os=-sysv3
+		;;
+	m68k-ccur)
+		os=-rtu
+		;;
+	m88k-omron*)
+		os=-luna
+		;;
+	*-next )
+		os=-nextstep
+		;;
+	*-sequent)
+		os=-ptx
+		;;
+	*-crds)
+		os=-unos
+		;;
+	*-ns)
+		os=-genix
+		;;
+	i370-*)
+		os=-mvs
+		;;
+	*-next)
+		os=-nextstep3
+		;;
+	*-gould)
+		os=-sysv
+		;;
+	*-highlevel)
+		os=-bsd
+		;;
+	*-encore)
+		os=-bsd
+		;;
+	*-sgi)
+		os=-irix
+		;;
+	*-siemens)
+		os=-sysv4
+		;;
+	*-masscomp)
+		os=-rtu
+		;;
+	f30[01]-fujitsu | f700-fujitsu)
+		os=-uxpv
+		;;
+	*-rom68k)
+		os=-coff
+		;;
+	*-*bug)
+		os=-coff
+		;;
+	*-apple)
+		os=-macos
+		;;
+	*-atari*)
+		os=-mint
+		;;
+	*)
+		os=-none
+		;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer.  We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+	*-unknown)
+		case $os in
+			-riscix*)
+				vendor=acorn
+				;;
+			-sunos*)
+				vendor=sun
+				;;
+			-cnk*|-aix*)
+				vendor=ibm
+				;;
+			-beos*)
+				vendor=be
+				;;
+			-hpux*)
+				vendor=hp
+				;;
+			-mpeix*)
+				vendor=hp
+				;;
+			-hiux*)
+				vendor=hitachi
+				;;
+			-unos*)
+				vendor=crds
+				;;
+			-dgux*)
+				vendor=dg
+				;;
+			-luna*)
+				vendor=omron
+				;;
+			-genix*)
+				vendor=ns
+				;;
+			-mvs* | -opened*)
+				vendor=ibm
+				;;
+			-os400*)
+				vendor=ibm
+				;;
+			-ptx*)
+				vendor=sequent
+				;;
+			-tpf*)
+				vendor=ibm
+				;;
+			-vxsim* | -vxworks* | -windiss*)
+				vendor=wrs
+				;;
+			-aux*)
+				vendor=apple
+				;;
+			-hms*)
+				vendor=hitachi
+				;;
+			-mpw* | -macos*)
+				vendor=apple
+				;;
+			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+				vendor=atari
+				;;
+			-vos*)
+				vendor=stratus
+				;;
+		esac
+		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+		;;
+esac
+
+echo $basic_machine$os
+exit
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/configure.ac b/framework/modules/c_FileTypeSigModule/file-5.08/configure.ac
new file mode 100755
index 0000000000000000000000000000000000000000..482e46d7f628152706dc07489587eee411f6ba8d
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/configure.ac
@@ -0,0 +1,174 @@
+dnl Process this file with autoconf to produce a configure script.
+AC_INIT(file, 5.08, christos@astron.com)
+AM_INIT_AUTOMAKE()
+m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+
+AM_CONFIG_HEADER(config.h)
+AC_CONFIG_MACRO_DIR([m4])
+
+AC_MSG_CHECKING(for builtin ELF support)
+AC_ARG_ENABLE(elf,
+[  --disable-elf            disable builtin ELF support],
+[if test "${enableval}" = yes; then
+  AC_MSG_RESULT(yes)
+  AC_DEFINE([BUILTIN_ELF], 1, [Define if built-in ELF support is used])
+else
+  AC_MSG_RESULT(no)
+fi], [
+  # enable by default
+  AC_MSG_RESULT(yes)
+  AC_DEFINE([BUILTIN_ELF], 1, [Define in built-in ELF support is used])
+])
+
+AC_MSG_CHECKING(for ELF core file support)
+AC_ARG_ENABLE(elf-core,
+[  --disable-elf-core       disable ELF core file support],
+[if test "${enableval}" = yes; then
+  AC_MSG_RESULT(yes)
+  AC_DEFINE([ELFCORE], 1, [Define for ELF core file support])
+else
+  AC_MSG_RESULT(no)
+fi], [
+  # enable by default
+  AC_MSG_RESULT(yes)
+  AC_DEFINE([ELFCORE], 1, [Define for ELF core file support])
+])
+
+AC_MSG_CHECKING(for file formats in man section 5)
+AC_ARG_ENABLE(fsect-man5,
+[  --enable-fsect-man5      enable file formats in man section 5],
+[if test "${enableval}" = yes; then
+  AC_MSG_RESULT(yes)
+  fsect=5
+else
+  AC_MSG_RESULT(no)
+  fsect=4
+fi], [
+  # disable by default
+  AC_MSG_RESULT(no)
+  fsect=4
+])
+
+AC_CANONICAL_HOST
+case "$host_os" in
+   mingw32*)
+      MINGW=1
+      ;;
+   *)
+      MINGW=0
+      ;;
+esac
+AC_SUBST(MINGW)
+AM_CONDITIONAL(MINGW, test "$MINGW" = 1)
+
+AC_SUBST([pkgdatadir], ['$(datadir)/misc'])
+AC_SUBST(fsect)
+AM_CONDITIONAL(FSECT5, test x$fsect = x5)
+
+AC_SUBST(WARNINGS)
+AC_GNU_SOURCE
+
+dnl Checks for programs.
+AC_PROG_CC
+AM_PROG_CC_C_O
+AC_PROG_INSTALL
+AC_PROG_LN_S
+AC_PROG_LIBTOOL
+
+dnl Checks for headers
+AC_HEADER_STDC
+AC_HEADER_MAJOR
+AC_HEADER_SYS_WAIT
+AC_CHECK_HEADERS(stdint.h fcntl.h locale.h stdint.h inttypes.h unistd.h)
+AC_CHECK_HEADERS(utime.h wchar.h wctype.h limits.h)
+AC_CHECK_HEADERS(getopt.h err.h)
+AC_CHECK_HEADERS(sys/mman.h sys/stat.h sys/types.h sys/utime.h sys/time.h)
+AC_CHECK_HEADERS(zlib.h)
+
+dnl Checks for typedefs, structures, and compiler characteristics.
+AC_C_CONST
+AC_TYPE_OFF_T
+AC_TYPE_SIZE_T
+AC_CHECK_MEMBERS([struct stat.st_rdev])
+
+AC_STRUCT_TM
+AC_CHECK_MEMBERS([struct tm.tm_gmtoff, struct tm.tm_zone])
+AC_STRUCT_TIMEZONE_DAYLIGHT
+AC_SYS_LARGEFILE
+AC_FUNC_FSEEKO
+AC_TYPE_MBSTATE_T
+
+AC_STRUCT_OPTION_GETOPT_H
+
+AC_CHECK_TYPES([uint8_t, uint16_t, uint32_t, int32_t, uint64_t, int64_t])
+AC_CHECK_SIZEOF(long long)
+AH_BOTTOM([
+#ifndef HAVE_UINT8_T
+typedef unsigned char uint8_t;
+#endif
+#ifndef HAVE_UINT16_T
+typedef unsigned short uint16_t;
+#endif
+#ifndef HAVE_UINT32_T
+typedef unsigned int uint32_t;
+#endif
+#ifndef HAVE_INT32_T
+typedef int int32_t;
+#endif
+#ifndef HAVE_UINT64_T
+#if SIZEOF_LONG_LONG == 8
+typedef unsigned long long uint64_t;
+#else
+typedef unsigned long uint64_t;
+#endif
+#endif
+#ifndef HAVE_INT64_T
+#if SIZEOF_LONG_LONG == 8
+typedef long long int64_t;
+#else
+typedef long int64_t;
+#endif
+#endif
+])
+
+AC_MSG_CHECKING(for gcc compiler warnings)
+AC_ARG_ENABLE(warnings,
+[  --disable-warnings	disable compiler warnings],
+[if test "${enableval}" = no -o "$GCC" = no; then
+   AC_MSG_RESULT(no)
+   WARNINGS=
+else
+   AC_MSG_RESULT(yes)
+   WARNINGS="-Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith \
+       -Wmissing-declarations -Wredundant-decls -Wnested-externs \
+       -Wsign-compare -Wreturn-type -Wswitch -Wshadow \
+       -Wcast-qual -Wwrite-strings -Wextra -Wunused-parameter"
+fi], [
+if test "$GCC" = yes; then
+   AC_MSG_RESULT(yes)
+   WARNINGS="-Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith \
+       -Wmissing-declarations -Wredundant-decls -Wnested-externs \
+       -Wsign-compare -Wreturn-type -Wswitch -Wshadow \
+       -Wcast-qual -Wwrite-strings -Wextra -Wunused-parameter"
+else
+   WARNINGS=
+   AC_MSG_RESULT(no)
+fi])
+
+dnl Checks for functions
+AC_CHECK_FUNCS(mmap strerror strndup strtoul mbrtowc mkstemp utimes utime wcwidth strtof fork)
+
+dnl Provide implementation of some required functions if necessary
+AC_REPLACE_FUNCS(getopt_long asprintf vasprintf strlcpy strlcat getline)
+
+dnl Checks for libraries
+AC_CHECK_LIB(z,gzopen)
+if test "$MINGW" = 1; then
+  AC_CHECK_LIB(gnurx,regexec,,AC_MSG_ERROR([libgnurx is required to build file(1) with MinGW]))
+fi
+
+dnl See if we are cross-compiling
+AM_CONDITIONAL(IS_CROSS_COMPILE, test "$cross_compiling" = yes)
+
+AC_CONFIG_FILES([Makefile src/Makefile magic/Makefile tests/Makefile doc/Makefile python/Makefile])
+AC_OUTPUT
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/depcomp b/framework/modules/c_FileTypeSigModule/file-5.08/depcomp
new file mode 100755
index 0000000000000000000000000000000000000000..df8eea7e4ce8862105fcd7929b20bdb45488048b
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/depcomp
@@ -0,0 +1,630 @@
+#! /bin/sh
+# depcomp - compile a program generating dependencies as side-effects
+
+scriptversion=2009-04-28.21; # UTC
+
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free
+# Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
+
+case $1 in
+  '')
+     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
+     exit 1;
+     ;;
+  -h | --h*)
+    cat <<\EOF
+Usage: depcomp [--help] [--version] PROGRAM [ARGS]
+
+Run PROGRAMS ARGS to compile a file, generating dependencies
+as side-effects.
+
+Environment variables:
+  depmode     Dependency tracking mode.
+  source      Source file read by `PROGRAMS ARGS'.
+  object      Object file output by `PROGRAMS ARGS'.
+  DEPDIR      directory where to store dependencies.
+  depfile     Dependency file to output.
+  tmpdepfile  Temporary file to use when outputing dependencies.
+  libtool     Whether libtool is used (yes/no).
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+    exit $?
+    ;;
+  -v | --v*)
+    echo "depcomp $scriptversion"
+    exit $?
+    ;;
+esac
+
+if test -z "$depmode" || test -z "$source" || test -z "$object"; then
+  echo "depcomp: Variables source, object and depmode must be set" 1>&2
+  exit 1
+fi
+
+# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
+depfile=${depfile-`echo "$object" |
+  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
+tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
+
+rm -f "$tmpdepfile"
+
+# Some modes work just like other modes, but use different flags.  We
+# parameterize here, but still list the modes in the big case below,
+# to make depend.m4 easier to write.  Note that we *cannot* use a case
+# here, because this file can only contain one case statement.
+if test "$depmode" = hp; then
+  # HP compiler uses -M and no extra arg.
+  gccflag=-M
+  depmode=gcc
+fi
+
+if test "$depmode" = dashXmstdout; then
+   # This is just like dashmstdout with a different argument.
+   dashmflag=-xM
+   depmode=dashmstdout
+fi
+
+cygpath_u="cygpath -u -f -"
+if test "$depmode" = msvcmsys; then
+   # This is just like msvisualcpp but w/o cygpath translation.
+   # Just convert the backslash-escaped backslashes to single forward
+   # slashes to satisfy depend.m4
+   cygpath_u="sed s,\\\\\\\\,/,g"
+   depmode=msvisualcpp
+fi
+
+case "$depmode" in
+gcc3)
+## gcc 3 implements dependency tracking that does exactly what
+## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
+## it if -MD -MP comes after the -MF stuff.  Hmm.
+## Unfortunately, FreeBSD c89 acceptance of flags depends upon
+## the command line argument order; so add the flags where they
+## appear in depend2.am.  Note that the slowdown incurred here
+## affects only configure: in makefiles, %FASTDEP% shortcuts this.
+  for arg
+  do
+    case $arg in
+    -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
+    *)  set fnord "$@" "$arg" ;;
+    esac
+    shift # fnord
+    shift # $arg
+  done
+  "$@"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  mv "$tmpdepfile" "$depfile"
+  ;;
+
+gcc)
+## There are various ways to get dependency output from gcc.  Here's
+## why we pick this rather obscure method:
+## - Don't want to use -MD because we'd like the dependencies to end
+##   up in a subdir.  Having to rename by hand is ugly.
+##   (We might end up doing this anyway to support other compilers.)
+## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
+##   -MM, not -M (despite what the docs say).
+## - Using -M directly means running the compiler twice (even worse
+##   than renaming).
+  if test -z "$gccflag"; then
+    gccflag=-MD,
+  fi
+  "$@" -Wp,"$gccflag$tmpdepfile"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
+## The second -e expression handles DOS-style file names with drive letters.
+  sed -e 's/^[^:]*: / /' \
+      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
+## This next piece of magic avoids the `deleted header file' problem.
+## The problem is that when a header file which appears in a .P file
+## is deleted, the dependency causes make to die (because there is
+## typically no way to rebuild the header).  We avoid this by adding
+## dummy dependencies for each header file.  Too bad gcc doesn't do
+## this for us directly.
+  tr ' ' '
+' < "$tmpdepfile" |
+## Some versions of gcc put a space before the `:'.  On the theory
+## that the space means something, we add a space to the output as
+## well.
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+hp)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+sgi)
+  if test "$libtool" = yes; then
+    "$@" "-Wp,-MDupdate,$tmpdepfile"
+  else
+    "$@" -MDupdate "$tmpdepfile"
+  fi
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+
+  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
+    echo "$object : \\" > "$depfile"
+
+    # Clip off the initial element (the dependent).  Don't try to be
+    # clever and replace this with sed code, as IRIX sed won't handle
+    # lines with more than a fixed number of characters (4096 in
+    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
+    # the IRIX cc adds comments like `#:fec' to the end of the
+    # dependency line.
+    tr ' ' '
+' < "$tmpdepfile" \
+    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
+    tr '
+' ' ' >> "$depfile"
+    echo >> "$depfile"
+
+    # The second pass generates a dummy entry for each header file.
+    tr ' ' '
+' < "$tmpdepfile" \
+   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+   >> "$depfile"
+  else
+    # The sourcefile does not contain any dependencies, so just
+    # store a dummy comment line, to avoid errors with the Makefile
+    # "include basename.Plo" scheme.
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile"
+  ;;
+
+aix)
+  # The C for AIX Compiler uses -M and outputs the dependencies
+  # in a .u file.  In older versions, this file always lives in the
+  # current directory.  Also, the AIX compiler puts `$object:' at the
+  # start of each line; $object doesn't have directory information.
+  # Version 6 uses the directory in both cases.
+  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+  test "x$dir" = "x$object" && dir=
+  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  if test "$libtool" = yes; then
+    tmpdepfile1=$dir$base.u
+    tmpdepfile2=$base.u
+    tmpdepfile3=$dir.libs/$base.u
+    "$@" -Wc,-M
+  else
+    tmpdepfile1=$dir$base.u
+    tmpdepfile2=$dir$base.u
+    tmpdepfile3=$dir$base.u
+    "$@" -M
+  fi
+  stat=$?
+
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+    exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  if test -f "$tmpdepfile"; then
+    # Each line is of the form `foo.o: dependent.h'.
+    # Do two passes, one to just change these to
+    # `$object: dependent.h' and one to simply `dependent.h:'.
+    sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+    # That's a tab and a space in the [].
+    sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+  else
+    # The sourcefile does not contain any dependencies, so just
+    # store a dummy comment line, to avoid errors with the Makefile
+    # "include basename.Plo" scheme.
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile"
+  ;;
+
+icc)
+  # Intel's C compiler understands `-MD -MF file'.  However on
+  #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
+  # ICC 7.0 will fill foo.d with something like
+  #    foo.o: sub/foo.c
+  #    foo.o: sub/foo.h
+  # which is wrong.  We want:
+  #    sub/foo.o: sub/foo.c
+  #    sub/foo.o: sub/foo.h
+  #    sub/foo.c:
+  #    sub/foo.h:
+  # ICC 7.1 will output
+  #    foo.o: sub/foo.c sub/foo.h
+  # and will wrap long lines using \ :
+  #    foo.o: sub/foo.c ... \
+  #     sub/foo.h ... \
+  #     ...
+
+  "$@" -MD -MF "$tmpdepfile"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  # Each line is of the form `foo.o: dependent.h',
+  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
+  # Do two passes, one to just change these to
+  # `$object: dependent.h' and one to simply `dependent.h:'.
+  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process this invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
+    sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+hp2)
+  # The "hp" stanza above does not work with aCC (C++) and HP's ia64
+  # compilers, which have integrated preprocessors.  The correct option
+  # to use with these is +Maked; it writes dependencies to a file named
+  # 'foo.d', which lands next to the object file, wherever that
+  # happens to be.
+  # Much of this is similar to the tru64 case; see comments there.
+  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+  test "x$dir" = "x$object" && dir=
+  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  if test "$libtool" = yes; then
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir.libs/$base.d
+    "$@" -Wc,+Maked
+  else
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir$base.d
+    "$@" +Maked
+  fi
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+     rm -f "$tmpdepfile1" "$tmpdepfile2"
+     exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  if test -f "$tmpdepfile"; then
+    sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
+    # Add `dependent.h:' lines.
+    sed -ne '2,${
+	       s/^ *//
+	       s/ \\*$//
+	       s/$/:/
+	       p
+	     }' "$tmpdepfile" >> "$depfile"
+  else
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile" "$tmpdepfile2"
+  ;;
+
+tru64)
+   # The Tru64 compiler uses -MD to generate dependencies as a side
+   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
+   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+   # dependencies in `foo.d' instead, so we check for that too.
+   # Subdirectories are respected.
+   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+   test "x$dir" = "x$object" && dir=
+   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+
+   if test "$libtool" = yes; then
+      # With Tru64 cc, shared objects can also be used to make a
+      # static library.  This mechanism is used in libtool 1.4 series to
+      # handle both shared and static libraries in a single compilation.
+      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
+      #
+      # With libtool 1.5 this exception was removed, and libtool now
+      # generates 2 separate objects for the 2 libraries.  These two
+      # compilations output dependencies in $dir.libs/$base.o.d and
+      # in $dir$base.o.d.  We have to check for both files, because
+      # one of the two compilations can be disabled.  We should prefer
+      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+      # automatically cleaned when .libs/ is deleted, while ignoring
+      # the former would cause a distcleancheck panic.
+      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
+      tmpdepfile2=$dir$base.o.d          # libtool 1.5
+      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
+      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
+      "$@" -Wc,-MD
+   else
+      tmpdepfile1=$dir$base.o.d
+      tmpdepfile2=$dir$base.d
+      tmpdepfile3=$dir$base.d
+      tmpdepfile4=$dir$base.d
+      "$@" -MD
+   fi
+
+   stat=$?
+   if test $stat -eq 0; then :
+   else
+      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+      exit $stat
+   fi
+
+   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+   do
+     test -f "$tmpdepfile" && break
+   done
+   if test -f "$tmpdepfile"; then
+      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+      # That's a tab and a space in the [].
+      sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+   else
+      echo "#dummy" > "$depfile"
+   fi
+   rm -f "$tmpdepfile"
+   ;;
+
+#nosideeffect)
+  # This comment above is used by automake to tell side-effect
+  # dependency tracking mechanisms from slower ones.
+
+dashmstdout)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout, regardless of -o.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  # Remove `-o $object'.
+  IFS=" "
+  for arg
+  do
+    case $arg in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    *)
+      set fnord "$@" "$arg"
+      shift # fnord
+      shift # $arg
+      ;;
+    esac
+  done
+
+  test -z "$dashmflag" && dashmflag=-M
+  # Require at least two characters before searching for `:'
+  # in the target name.  This is to cope with DOS-style filenames:
+  # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
+  "$@" $dashmflag |
+    sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"
+  rm -f "$depfile"
+  cat < "$tmpdepfile" > "$depfile"
+  tr ' ' '
+' < "$tmpdepfile" | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+dashXmstdout)
+  # This case only exists to satisfy depend.m4.  It is never actually
+  # run, as this mode is specially recognized in the preamble.
+  exit 1
+  ;;
+
+makedepend)
+  "$@" || exit $?
+  # Remove any Libtool call
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+  # X makedepend
+  shift
+  cleared=no eat=no
+  for arg
+  do
+    case $cleared in
+    no)
+      set ""; shift
+      cleared=yes ;;
+    esac
+    if test $eat = yes; then
+      eat=no
+      continue
+    fi
+    case "$arg" in
+    -D*|-I*)
+      set fnord "$@" "$arg"; shift ;;
+    # Strip any option that makedepend may not understand.  Remove
+    # the object too, otherwise makedepend will parse it as a source file.
+    -arch)
+      eat=yes ;;
+    -*|$object)
+      ;;
+    *)
+      set fnord "$@" "$arg"; shift ;;
+    esac
+  done
+  obj_suffix=`echo "$object" | sed 's/^.*\././'`
+  touch "$tmpdepfile"
+  ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
+  rm -f "$depfile"
+  cat < "$tmpdepfile" > "$depfile"
+  sed '1,2d' "$tmpdepfile" | tr ' ' '
+' | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile" "$tmpdepfile".bak
+  ;;
+
+cpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  # Remove `-o $object'.
+  IFS=" "
+  for arg
+  do
+    case $arg in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    *)
+      set fnord "$@" "$arg"
+      shift # fnord
+      shift # $arg
+      ;;
+    esac
+  done
+
+  "$@" -E |
+    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+       -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
+    sed '$ s: \\$::' > "$tmpdepfile"
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  cat < "$tmpdepfile" >> "$depfile"
+  sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+msvisualcpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  IFS=" "
+  for arg
+  do
+    case "$arg" in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
+	set fnord "$@"
+	shift
+	shift
+	;;
+    *)
+	set fnord "$@" "$arg"
+	shift
+	shift
+	;;
+    esac
+  done
+  "$@" -E 2>/dev/null |
+  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::	\1 \\:p' >> "$depfile"
+  echo "	" >> "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+msvcmsys)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+none)
+  exec "$@"
+  ;;
+
+*)
+  echo "Unknown depmode $depmode" 1>&2
+  exit 1
+  ;;
+esac
+
+exit 0
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/doc/Makefile.am b/framework/modules/c_FileTypeSigModule/file-5.08/doc/Makefile.am
new file mode 100755
index 0000000000000000000000000000000000000000..4a78589cede5bb2b97f300e4db4e66c63939c1f2
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/doc/Makefile.am
@@ -0,0 +1,32 @@
+MAGIC	 = $(pkgdatadir)/magic
+if FSECT5
+man_MAGIC = magic.5
+else
+man_MAGIC = magic.4
+endif
+fsect = @fsect@
+man_MANS = file.1 $(man_MAGIC) libmagic.3
+
+EXTRA_DIST = file.man magic.man libmagic.man
+CLEANFILES = $(man_MANS)
+
+file.1:	Makefile file.man
+	@rm -f $@
+	sed -e s@__CSECTION__@1@g \
+	    -e s@__FSECTION__@${fsect}@g \
+	    -e s@__VERSION__@${VERSION}@g \
+	    -e s@__MAGIC__@${MAGIC}@g $(srcdir)/file.man > $@
+
+magic.${fsect}: Makefile magic.man
+	@rm -f $@
+	sed -e s@__CSECTION__@1@g \
+	    -e s@__FSECTION__@${fsect}@g \
+	    -e s@__VERSION__@${VERSION}@g \
+	    -e s@__MAGIC__@${MAGIC}@g $(srcdir)/magic.man > $@
+
+libmagic.3: Makefile libmagic.man
+	@rm -f $@
+	sed -e s@__CSECTION__@1@g \
+	    -e s@__FSECTION__@${fsect}@g \
+	    -e s@__VERSION__@${VERSION}@g \
+	    -e s@__MAGIC__@${MAGIC}@g $(srcdir)/libmagic.man > $@
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/doc/file.man b/framework/modules/c_FileTypeSigModule/file-5.08/doc/file.man
new file mode 100755
index 0000000000000000000000000000000000000000..5b22438467374d85d72d50a8eef0ea4c064c01c5
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/doc/file.man
@@ -0,0 +1,565 @@
+.\" $File: file.man,v 1.96 2011/07/12 11:23:38 rrt Exp $
+.Dd April 20, 2011
+.Dt FILE __CSECTION__
+.Os
+.Sh NAME
+.Nm file
+.Nd determine file type
+.Sh SYNOPSIS
+.Nm
+.Bk -words
+.Op Fl bchiklLNnprsvz0
+.Op Fl Fl apple
+.Op Fl Fl mime-encoding
+.Op Fl Fl mime-type
+.Op Fl e Ar testname
+.Op Fl F Ar separator
+.Op Fl f Ar namefile
+.Op Fl m Ar magicfiles
+.Ar
+.Ek
+.Nm
+.Fl C
+.Op Fl m Ar magicfiles
+.Nm
+.Op Fl Fl help
+.Sh DESCRIPTION
+This manual page documents version __VERSION__ of the
+.Nm
+command.
+.Pp
+.Nm
+tests each argument in an attempt to classify it.
+There are three sets of tests, performed in this order:
+filesystem tests, magic tests, and language tests.
+The
+.Em first
+test that succeeds causes the file type to be printed.
+.Pp
+The type printed will usually contain one of the words
+.Em text
+(the file contains only
+printing characters and a few common control
+characters and is probably safe to read on an
+.Dv ASCII
+terminal),
+.Em executable
+(the file contains the result of compiling a program
+in a form understandable to some
+.Tn UNIX
+kernel or another),
+or
+.Em data
+meaning anything else (data is usually
+.Dq binary
+or non-printable).
+Exceptions are well-known file formats (core files, tar archives)
+that are known to contain binary data.
+When modifying magic files or the program itself, make sure to
+.Em "preserve these keywords" .
+Users depend on knowing that all the readable files in a directory
+have the word
+.Dq text
+printed.
+Don't do as Berkeley did and change
+.Dq shell commands text
+to
+.Dq shell script .
+.Pp
+The filesystem tests are based on examining the return from a
+.Xr stat 2
+system call.
+The program checks to see if the file is empty,
+or if it's some sort of special file.
+Any known file types appropriate to the system you are running on
+(sockets, symbolic links, or named pipes (FIFOs) on those systems that
+implement them)
+are intuited if they are defined in the system header file
+.In sys/stat.h .
+.Pp
+The magic tests are used to check for files with data in
+particular fixed formats.
+The canonical example of this is a binary executable (compiled program)
+.Dv a.out
+file, whose format is defined in
+.In elf.h ,
+.In a.out.h
+and possibly
+.In exec.h
+in the standard include directory.
+These files have a
+.Dq "magic number"
+stored in a particular place
+near the beginning of the file that tells the
+.Tn UNIX
+operating system
+that the file is a binary executable, and which of several types thereof.
+The concept of a
+.Dq "magic"
+has been applied by extension to data files.
+Any file with some invariant identifier at a small fixed
+offset into the file can usually be described in this way.
+The information identifying these files is read from the compiled
+magic file
+.Pa __MAGIC__.mgc ,
+or the files in the directory
+.Pa __MAGIC__
+if the compiled file does not exist.
+In addition, if
+.Pa $HOME/.magic.mgc
+or
+.Pa $HOME/.magic
+exists, it will be used in preference to the system magic files.
+.Pp
+If a file does not match any of the entries in the magic file,
+it is examined to see if it seems to be a text file.
+ASCII, ISO-8859-x, non-ISO 8-bit extended-ASCII character sets
+(such as those used on Macintosh and IBM PC systems),
+UTF-8-encoded Unicode, UTF-16-encoded Unicode, and EBCDIC
+character sets can be distinguished by the different
+ranges and sequences of bytes that constitute printable text
+in each set.
+If a file passes any of these tests, its character set is reported.
+ASCII, ISO-8859-x, UTF-8, and extended-ASCII files are identified
+as
+.Dq text
+because they will be mostly readable on nearly any terminal;
+UTF-16 and EBCDIC are only
+.Dq character data
+because, while
+they contain text, it is text that will require translation
+before it can be read.
+In addition,
+.Nm
+will attempt to determine other characteristics of text-type files.
+If the lines of a file are terminated by CR, CRLF, or NEL, instead
+of the Unix-standard LF, this will be reported.
+Files that contain embedded escape sequences or overstriking
+will also be identified.
+.Pp
+Once
+.Nm
+has determined the character set used in a text-type file,
+it will
+attempt to determine in what language the file is written.
+The language tests look for particular strings (cf.
+.In names.h )
+that can appear anywhere in the first few blocks of a file.
+For example, the keyword
+.Em .br
+indicates that the file is most likely a
+.Xr troff 1
+input file, just as the keyword
+.Em struct
+indicates a C program.
+These tests are less reliable than the previous
+two groups, so they are performed last.
+The language test routines also test for some miscellany
+(such as
+.Xr tar 1
+archives).
+.Pp
+Any file that cannot be identified as having been written
+in any of the character sets listed above is simply said to be
+.Dq data .
+.Sh OPTIONS
+.Bl -tag -width indent
+.It Fl b , Fl Fl brief
+Do not prepend filenames to output lines (brief mode).
+.It Fl C , Fl Fl compile
+Write a
+.Pa magic.mgc
+output file that contains a pre-parsed version of the magic file or directory.
+.It Fl c , Fl Fl checking-printout
+Cause a checking printout of the parsed form of the magic file.
+This is usually used in conjunction with the
+.Fl m
+flag to debug a new magic file before installing it.
+.It Fl e , Fl Fl exclude Ar testname
+Exclude the test named in
+.Ar testname
+from the list of tests made to determine the file type.
+Valid test names are:
+.Bl -tag -width compress
+.It apptype
+.Dv EMX
+application type (only on EMX).
+.It ascii
+Various types of text files (this test will try to guess the text
+encoding, irrespective of the setting of the
+.Sq encoding
+option).
+.It encoding
+Different text encodings for soft magic tests.
+.It tokens
+Looks for known tokens inside text files.
+.It cdf
+Prints details of Compound Document Files.
+.It compress
+Checks for, and looks inside, compressed files.
+.It elf
+Prints ELF file details.
+.It soft
+Consults magic files.
+.It tar
+Examines tar files.
+.El
+.It Fl F , Fl Fl separator Ar separator
+Use the specified string as the separator between the filename and the
+file result returned.
+Defaults to
+.Sq \&: .
+.It Fl f , Fl Fl files-from Ar namefile
+Read the names of the files to be examined from
+.Ar namefile
+(one per line)
+before the argument list.
+Either
+.Ar namefile
+or at least one filename argument must be present;
+to test the standard input, use
+.Sq -
+as a filename argument.
+.It Fl h , Fl Fl no-dereference
+option causes symlinks not to be followed
+(on systems that support symbolic links).
+This is the default if the environment variable
+.Dv POSIXLY_CORRECT
+is not defined.
+.It Fl i , Fl Fl mime
+Causes the file command to output mime type strings rather than the more
+traditional human readable ones.
+Thus it may say
+.Sq text/plain; charset=us-ascii
+rather than
+.Dq ASCII text .
+.It Fl Fl mime-type , Fl Fl mime-encoding
+Like
+.Fl i ,
+but print only the specified element(s).
+.It Fl k , Fl Fl keep-going
+Don't stop at the first match, keep going.
+Subsequent matches will be
+have the string
+.Sq "\[rs]012\- "
+prepended.
+(If you want a newline, see the
+.Fl r
+option.)
+.It Fl l , Fl Fl list
+Print information about the strength of each magic pattern.
+.It Fl L , Fl Fl dereference
+option causes symlinks to be followed, as the like-named option in
+.Xr ls 1
+(on systems that support symbolic links).
+This is the default if the environment variable
+.Ev POSIXLY_CORRECT
+is defined.
+.It Fl l
+Shows sorted patterns list in the order which is used for the matching.
+.It Fl m , Fl Fl magic-file Ar magicfiles
+Specify an alternate list of files and directories containing magic.
+This can be a single item, or a colon-separated list.
+If a compiled magic file is found alongside a file or directory,
+it will be used instead.
+.It Fl N , Fl Fl no-pad
+Don't pad filenames so that they align in the output.
+.It Fl n , Fl Fl no-buffer
+Force stdout to be flushed after checking each file.
+This is only useful if checking a list of files.
+It is intended to be used by programs that want filetype output from a pipe.
+.It Fl p , Fl Fl preserve-date
+On systems that support
+.Xr utime 3
+or
+.Xr utimes 2 ,
+attempt to preserve the access time of files analyzed, to pretend that
+.Nm
+never read them.
+.It Fl r , Fl Fl raw
+Don't translate unprintable characters to \eooo.
+Normally
+.Nm
+translates unprintable characters to their octal representation.
+.It Fl s , Fl Fl special-files
+Normally,
+.Nm
+only attempts to read and determine the type of argument files which
+.Xr stat 2
+reports are ordinary files.
+This prevents problems, because reading special files may have peculiar
+consequences.
+Specifying the
+.Fl s
+option causes
+.Nm
+to also read argument files which are block or character special files.
+This is useful for determining the filesystem types of the data in raw
+disk partitions, which are block special files.
+This option also causes
+.Nm
+to disregard the file size as reported by
+.Xr stat 2
+since on some systems it reports a zero size for raw disk partitions.
+.It Fl v , Fl Fl version
+Print the version of the program and exit.
+.It Fl z , Fl Fl uncompress
+Try to look inside compressed files.
+.It Fl 0 , Fl Fl print0
+Output a null character
+.Sq \e0
+after the end of the filename.
+Nice to
+.Xr cut 1
+the output.
+This does not affect the separator which is still printed.
+.It Fl -help
+Print a help message and exit.
+.El
+.Sh FILES
+.Bl -tag -width __MAGIC__.mgc -compact
+.It Pa __MAGIC__.mgc
+Default compiled list of magic.
+.It Pa __MAGIC__
+Directory containing default magic files.
+.El
+.Sh ENVIRONMENT
+The environment variable
+.Ev MAGIC
+can be used to set the default magic file name.
+If that variable is set, then
+.Nm
+will not attempt to open
+.Pa $HOME/.magic .
+.Nm
+adds
+.Dq Pa .mgc
+to the value of this variable as appropriate.
+However,
+.Pa file
+has to exist in order for
+.Pa file.mime
+to be considered.
+The environment variable
+.Ev POSIXLY_CORRECT
+controls (on systems that support symbolic links), whether
+.Nm
+will attempt to follow symlinks or not.
+If set, then
+.Nm
+follows symlink, otherwise it does not.
+This is also controlled by the
+.Fl L
+and
+.Fl h
+options.
+.Sh SEE ALSO
+.Xr magic __FSECTION__ ,
+.Xr hexdump 1 ,
+.Xr od 1 ,
+.Xr strings 1 ,
+.Sh STANDARDS CONFORMANCE
+This program is believed to exceed the System V Interface Definition
+of FILE(CMD), as near as one can determine from the vague language
+contained therein.
+Its behavior is mostly compatible with the System V program of the same name.
+This version knows more magic, however, so it will produce
+different (albeit more accurate) output in many cases.
+.\" URL: http://www.opengroup.org/onlinepubs/009695399/utilities/file.html
+.Pp
+The one significant difference
+between this version and System V
+is that this version treats any white space
+as a delimiter, so that spaces in pattern strings must be escaped.
+For example,
+.Bd -literal -offset indent
+\*[Gt]10	string	language impress\ 	(imPRESS data)
+.Ed
+.Pp
+in an existing magic file would have to be changed to
+.Bd -literal -offset indent
+\*[Gt]10	string	language\e impress	(imPRESS data)
+.Ed
+.Pp
+In addition, in this version, if a pattern string contains a backslash,
+it must be escaped.
+For example
+.Bd -literal -offset indent
+0	string		\ebegindata	Andrew Toolkit document
+.Ed
+.Pp
+in an existing magic file would have to be changed to
+.Bd -literal -offset indent
+0	string		\e\ebegindata	Andrew Toolkit document
+.Ed
+.Pp
+SunOS releases 3.2 and later from Sun Microsystems include a
+.Nm
+command derived from the System V one, but with some extensions.
+This version differs from Sun's only in minor ways.
+It includes the extension of the
+.Sq \*[Am]
+operator, used as,
+for example,
+.Bd -literal -offset indent
+\*[Gt]16	long\*[Am]0x7fffffff	\*[Gt]0		not stripped
+.Ed
+.Sh MAGIC DIRECTORY
+The magic file entries have been collected from various sources,
+mainly USENET, and contributed by various authors.
+Christos Zoulas (address below) will collect additional
+or corrected magic file entries.
+A consolidation of magic file entries
+will be distributed periodically.
+.Pp
+The order of entries in the magic file is significant.
+Depending on what system you are using, the order that
+they are put together may be incorrect.
+If your old
+.Nm
+command uses a magic file,
+keep the old magic file around for comparison purposes
+(rename it to
+.Pa __MAGIC__.orig ) .
+.Sh EXAMPLES
+.Bd -literal -offset indent
+$ file file.c file /dev/{wd0a,hda}
+file.c:   C program text
+file:     ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
+          dynamically linked (uses shared libs), stripped
+/dev/wd0a: block special (0/0)
+/dev/hda: block special (3/0)
+
+$ file -s /dev/wd0{b,d}
+/dev/wd0b: data
+/dev/wd0d: x86 boot sector
+
+$ file -s /dev/hda{,1,2,3,4,5,6,7,8,9,10}
+/dev/hda:   x86 boot sector
+/dev/hda1:  Linux/i386 ext2 filesystem
+/dev/hda2:  x86 boot sector
+/dev/hda3:  x86 boot sector, extended partition table
+/dev/hda4:  Linux/i386 ext2 filesystem
+/dev/hda5:  Linux/i386 swap file
+/dev/hda6:  Linux/i386 swap file
+/dev/hda7:  Linux/i386 swap file
+/dev/hda8:  Linux/i386 swap file
+/dev/hda9:  empty
+/dev/hda10: empty
+
+$ file -i file.c file /dev/{wd0a,hda}
+file.c:      text/x-c
+file:        application/x-executable
+/dev/hda:    application/x-not-regular-file
+/dev/wd0a:   application/x-not-regular-file
+
+.Ed
+.Sh HISTORY
+There has been a
+.Nm
+command in every
+.Dv UNIX since at least Research Version 4
+(man page dated November, 1973).
+The System V version introduced one significant major change:
+the external list of magic types.
+This slowed the program down slightly but made it a lot more flexible.
+.Pp
+This program, based on the System V version,
+was written by Ian Darwin
+.Aq ian@darwinsys.com
+without looking at anybody else's source code.
+.Pp
+John Gilmore revised the code extensively, making it better than
+the first version.
+Geoff Collyer found several inadequacies
+and provided some magic file entries.
+Contributions by the
+.Sq \*[Am]
+operator by Rob McMahon, 
+.Aq cudcv@warwick.ac.uk ,
+1989.
+.Pp
+Guy Harris, 
+.Aq guy@netapp.com ,
+made many changes from 1993 to the present.
+1989.
+.Pp
+Primary development and maintenance from 1990 to the present by
+Christos Zoulas
+.Aq christos@astron.com .
+.Pp
+Altered by Chris Lowth
+.Aq chris@lowth.com ,
+2000: handle the
+.Fl i
+option to output mime type strings, using an alternative
+magic file and internal logic.
+.Pp
+Altered by Eric Fischer
+.Aq enf@pobox.com ,
+July, 2000,
+to identify character codes and attempt to identify the languages
+of non-ASCII files.
+.Pp
+Altered by Reuben Thomas
+.Aq rrt@sc3d.org ,
+2007-2011, to improve MIME support, merge MIME and non-MIME magic,
+support directories as well as files of magic, apply many bug fixes,
+update and fix a lot of magic, improve the build system, improve the
+documentation, and rewrite the Python bindings in pure Python.
+.Pp
+The list of contributors to the
+.Sq magic
+directory (magic files)
+is too long to include here.
+You know who you are; thank you.
+Many contributors are listed in the source files.
+.Sh LEGAL NOTICE
+Copyright (c) Ian F. Darwin, Toronto, Canada, 1986-1999.
+Covered by the standard Berkeley Software Distribution copyright; see the file
+COPYING in the source distribution.
+.Pp
+The files
+.Pa tar.h
+and
+.Pa is_tar.c
+were written by John Gilmore from his public-domain
+.Xr tar 1
+program, and are not covered by the above license.
+.Sh RETURN CODE
+.Nm
+returns 0 on success, and non-zero on error.
+.Sh BUGS
+.Pp
+Please report bugs and send patches to the bug tracker at
+.Pa http://bugs.gw.com/
+or the mailing list at
+.Aq file@mx.gw.com .
+.Sh TODO
+.Pp
+Fix output so that tests for MIME and APPLE flags are not needed all
+over the place, and actual output is only done in one place. This
+needs a design. Suggestion: push possible outputs on to a list, then
+pick the last-pushed (most specific, one hopes) value at the end, or
+use a default if the list is empty. This should not slow down evaluation.
+.Pp
+Continue to squash all magic bugs. See Debian BTS for a good source.
+.Pp
+Store arbitrarily long strings, for example for %s patterns, so that
+they can be printed out. Fixes Debian bug #271672. Would require more
+complex store/load code in apprentice.
+.Pp
+Add syntax for relative offsets after current level (Debian bug #466037).
+.Pp
+Make file -ki work, i.e. give multiple MIME types.
+.Pp
+Add a zip library so we can peek inside Office2007 documents to
+figure out what they are.
+.Pp
+Add an option to print URLs for the sources of the file descriptions.
+.Sh AVAILABILITY
+You can obtain the original author's latest version by anonymous FTP
+on
+.Pa ftp.astron.com
+in the directory
+.Pa /pub/file/file-X.YZ.tar.gz .
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/doc/libmagic.man b/framework/modules/c_FileTypeSigModule/file-5.08/doc/libmagic.man
new file mode 100755
index 0000000000000000000000000000000000000000..2f218db2216cbe39eb0fcf7e4112cc44f56af4a4
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/doc/libmagic.man
@@ -0,0 +1,287 @@
+.\" $File: libmagic.man,v 1.24 2011/05/13 22:11:44 christos Exp $
+.\"
+.\" Copyright (c) Christos Zoulas 2003.
+.\" All Rights Reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice immediately at the beginning of the file, without modification,
+.\"    this list of conditions, and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+.\" ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.Dd January 14, 2011
+.Dt LIBMAGIC 3
+.Os
+.Sh NAME
+.Nm magic_open ,
+.Nm magic_close ,
+.Nm magic_error ,
+.Nm magic_descriptor ,
+.Nm magic_buffer ,
+.Nm magic_setflags ,
+.Nm magic_check ,
+.Nm magic_compile ,
+.Nm magic_load
+.Nd Magic number recognition library
+.Sh LIBRARY
+.Lb libmagic
+.Sh SYNOPSIS
+.In magic.h
+.Ft magic_t
+.Fn magic_open "int flags"
+.Ft void
+.Fn magic_close "magic_t cookie"
+.Ft const char *
+.Fn magic_error "magic_t cookie"
+.Ft int
+.Fn magic_errno "magic_t cookie"
+.Ft const char *
+.Fn magic_descriptor "magic_t cookie, "int fd"
+.Ft const char *
+.Fn magic_file "magic_t cookie, const char *filename"
+.Ft const char *
+.Fn magic_buffer "magic_t cookie" "const void *buffer" "size_t length"
+.Ft int
+.Fn magic_setflags "magic_t cookie" "int flags"
+.Ft int
+.Fn magic_check "magic_t cookie" "const char *filename"
+.Ft int
+.Fn magic_compile "magic_t cookie" "const char *filename"
+.Ft int
+.Fn magic_load "magic_t cookie" "const char *filename"
+.Sh DESCRIPTION
+These functions
+operate on the magic database file
+which is described
+in
+.Xr magic __FSECTION__ .
+.Pp
+The function
+.Fn magic_open
+creates a magic cookie pointer and returns it.
+It returns
+.Dv NULL
+if there was an error allocating the magic cookie.
+The
+.Ar flags
+argument specifies how the other magic functions should behave:
+.Bl -tag -width MAGIC_COMPRESS
+.It Dv MAGIC_NONE
+No special handling.
+.It Dv MAGIC_DEBUG
+Print debugging messages to stderr.
+.It Dv MAGIC_SYMLINK
+If the file queried is a symlink, follow it.
+.It Dv MAGIC_COMPRESS
+If the file is compressed, unpack it and look at the contents.
+.It Dv MAGIC_DEVICES
+If the file is a block or character special device, then open the device
+and try to look in its contents.
+.It Dv MAGIC_MIME_TYPE
+Return a MIME type string, instead of a textual description.
+.It Dv MAGIC_MIME_ENCODING
+Return a MIME encoding, instead of a textual description.
+.It Dv MAGIC_MIME
+A shorthand for MAGIC_MIME_TYPE | MAGIC_MIME_ENCODING.
+.It Dv MAGIC_CONTINUE
+Return all matches, not just the first.
+.It Dv MAGIC_CHECK
+Check the magic database for consistency and print warnings to stderr.
+.It Dv MAGIC_PRESERVE_ATIME
+On systems that support
+.Xr utime 3
+or
+.Xr utimes 2 ,
+attempt to preserve the access time of files analysed.
+.It Dv MAGIC_RAW
+Don't translate unprintable characters to a \eooo octal representation.
+.It Dv MAGIC_ERROR
+Treat operating system errors while trying to open files and follow symlinks
+as real errors, instead of printing them in the magic buffer.
+.It Dv MAGIC_APPLE
+Return the Apple creator and type.
+.It Dv MAGIC_NO_CHECK_APPTYPE
+Don't check for
+.Dv EMX
+application type (only on EMX).
+.It Dv MAGIC_NO_CHECK_CDF
+Don't get extra information on MS Composite Document Files.
+.It Dv MAGIC_NO_CHECK_COMPRESS
+Don't look inside compressed files.
+.It Dv MAGIC_NO_CHECK_ELF
+Don't print ELF details.
+.It Dv NO_CHECK_ENCODING
+Don't check text encodings.
+.It Dv MAGIC_NO_CHECK_SOFT
+Don't consult magic files.
+.It Dv MAGIC_NO_CHECK_TAR
+Don't examine tar files.
+.It Dv MAGIC_NO_CHECK_TEXT
+Don't check for various types of text files.
+.It Dv MAGIC_NO_CHECK_TOKENS
+Don't look for known tokens inside ascii files.
+.El
+.Pp
+The
+.Fn magic_close
+function closes the
+.Xr magic __FSECTION__
+database and deallocates any resources used.
+.Pp
+The
+.Fn magic_error
+function returns a textual explanation of the last error, or
+.Dv NULL
+if there was no error.
+.Pp
+The
+.Fn magic_errno
+function returns the last operating system error number
+.Pq Xr errno 2
+that was encountered by a system call.
+.Pp
+The
+.Fn magic_file
+function returns a textual description of the contents of the
+.Ar filename
+argument, or
+.Dv NULL
+if an error occurred.
+If the
+.Ar filename
+is
+.Dv NULL ,
+then stdin is used.
+.Pp
+The
+.Fn magic_descriptor
+function returns a textual description of the contents of the
+.Ar fd
+argument, or
+.Dv NULL
+if an error occurred.
+.Pp
+The
+.Fn magic_buffer
+function returns a textual description of the contents of the
+.Ar buffer
+argument with
+.Ar length
+bytes size.
+.Pp
+The
+.Fn magic_setflags
+function sets the
+.Ar flags
+described above.
+Note that using both MIME flags together can also
+return extra information on the charset.
+.Pp
+The
+.Fn magic_check
+function can be used to check the validity of entries in the colon
+separated database files passed in as
+.Ar filename ,
+or
+.Dv NULL
+for the default database.
+It returns 0 on success and \-1 on failure.
+.Pp
+The
+.Fn magic_compile
+function can be used to compile the the colon
+separated list of database files passed in as
+.Ar filename ,
+or
+.Dv NULL
+for the default database.
+It returns 0 on success and \-1 on failure.
+The compiled files created are named from the
+.Xr basename 1
+of each file argument with
+.Dq .mgc
+appended to it.
+.Pp
+The
+.Fn magic_load
+function must be used to load the the colon
+separated list of database files passed in as
+.Ar filename ,
+or
+.Dv NULL
+for the default database file before any magic queries can performed.
+.Pp
+The default database file is named by the MAGIC environment variable.
+If that variable is not set, the default database file name is __MAGIC__.
+.Fn magic_load
+adds
+.Dq .mgc
+to the database filename as appropriate.
+.Sh RETURN VALUES
+The function
+.Fn magic_open
+returns a magic cookie on success and
+.Dv NULL
+on failure setting errno to an appropriate value.
+It will set errno to
+.Er EINVAL
+if an unsupported value for flags was given.
+The
+.Fn magic_load ,
+.Fn magic_compile ,
+and
+.Fn magic_check
+functions return 0 on success and \-1 on failure.
+The
+.Fn magic_file ,
+and
+.Fn magic_buffer
+functions return a string on success and
+.Dv NULL
+on failure.
+The
+.Fn magic_error
+function returns a textual description of the errors of the above
+functions, or
+.Dv NULL
+if there was no error.
+Finally,
+.Fn magic_setflags
+returns \-1 on systems that don't support
+.Xr utime 3 ,
+or
+.Xr utimes 2
+when
+.Dv MAGIC_PRESERVE_ATIME
+is set.
+.Sh FILES
+.Bl -tag -width __MAGIC__.mgc -compact
+.It Pa __MAGIC__
+The non-compiled default magic database.
+.It Pa __MAGIC__.mgc
+The compiled default magic database.
+.El
+.Sh SEE ALSO
+.Xr file __CSECTION__ ,
+.Xr magic __FSECTION__
+.Sh AUTHORS
+.An M\(oans Rullg\(oard
+Initial libmagic implementation, and configuration.
+.An Christos Zoulas
+API cleanup, error code and allocation handling.
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/doc/magic.man b/framework/modules/c_FileTypeSigModule/file-5.08/doc/magic.man
new file mode 100755
index 0000000000000000000000000000000000000000..c648ba783ab6ddc563a52dfb87a490e49e23b9bc
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/doc/magic.man
@@ -0,0 +1,565 @@
+.\" $File: magic.man,v 1.69 2011/05/13 22:11:44 christos Exp $
+.Dd April 20, 2011
+.Dt MAGIC __FSECTION__
+.Os
+.\" install as magic.4 on USG, magic.5 on V7, Berkeley and Linux systems.
+.Sh NAME
+.Nm magic
+.Nd file command's magic pattern file
+.Sh DESCRIPTION
+This manual page documents the format of the magic file as
+used by the
+.Xr file __CSECTION__
+command, version __VERSION__.
+The
+.Xr file __CSECTION__
+command identifies the type of a file using,
+among other tests,
+a test for whether the file contains certain
+.Dq "magic patterns" .
+The file
+.Pa __MAGIC__
+specifies what patterns are to be tested for, what message or
+MIME type to print if a particular pattern is found,
+and additional information to extract from the file.
+.Pp
+Each line of the file specifies a test to be performed.
+A test compares the data starting at a particular offset
+in the file with a byte value, a string or a numeric value.
+If the test succeeds, a message is printed.
+The line consists of the following fields:
+.Bl -tag -width ".Dv message"
+.It Dv offset
+A number specifying the offset, in bytes, into the file of the data
+which is to be tested.
+.It Dv type
+The type of the data to be tested.
+The possible values are:
+.Bl -tag -width ".Dv lestring16"
+.It Dv byte
+A one-byte value.
+.It Dv short
+A two-byte value in this machine's native byte order.
+.It Dv long
+A four-byte value in this machine's native byte order.
+.It Dv quad
+An eight-byte value in this machine's native byte order.
+.It Dv float
+A 32-bit single precision IEEE floating point number in this machine's native byte order.
+.It Dv double
+A 64-bit double precision IEEE floating point number in this machine's native byte order.
+.It Dv string
+A string of bytes.
+The string type specification can be optionally followed
+by /[WwcCtb]*.
+The
+.Dq W
+flag compacts whitespace in the target, which must
+contain at least one whitespace character.
+If the magic has
+.Dv n
+consecutive blanks, the target needs at least
+.Dv n
+consecutive blanks to match.
+The
+.Dq w
+flag treats every blank in the target as an optional blank.
+The
+.Dq c
+flag, specifies case insensitive matching: lower case
+characters in the magic match both lower and upper case characters in the
+target, whereas upper case characters in the magic only match upper case
+characters in the target.
+The
+.Dq C
+flag, specifies case insensitive matching: upper case
+characters in the magic match both lower and upper case characters in the
+target, whereas lower case characters in the magic only match upper case
+characters in the target.
+To do a complete case insensitive match, specify both
+.Dq c
+and
+.Dq C .
+The
+.Dq t
+flag, forces the test to be done for text files, while the
+.Dq b
+flag, forces the test to be done for binary files.
+.It Dv pstring
+A Pascal-style string where the first byte/short/int is interpreted as the an
+unsigned length.
+The length defaults to byte and can be specified as a modifier.
+The following modifiers are supported:
+.Bl -tag -compact -width B
+.It B
+A byte length (default).
+.It H
+A 2 byte big endian length.
+.It h
+A 2 byte big little length.
+.It L
+A 4 byte big endian length.
+.It l
+A 4 byte big little length.
+.It J
+The length includes itself in its count.
+.El
+The string is not NUL terminated.
+.Dq J
+is used rather than the more
+valuable
+.Dq I
+because this type of length is a feature of the JPEG
+format.
+.It Dv date
+A four-byte value interpreted as a UNIX date.
+.It Dv qdate
+A eight-byte value interpreted as a UNIX date.
+.It Dv ldate
+A four-byte value interpreted as a UNIX-style date, but interpreted as
+local time rather than UTC.
+.It Dv qldate
+An eight-byte value interpreted as a UNIX-style date, but interpreted as
+local time rather than UTC.
+.It Dv beid3
+A 32-bit ID3 length in big-endian byte order.
+.It Dv beshort
+A two-byte value in big-endian byte order.
+.It Dv belong
+A four-byte value in big-endian byte order.
+.It Dv bequad
+An eight-byte value in big-endian byte order.
+.It Dv befloat
+A 32-bit single precision IEEE floating point number in big-endian byte order.
+.It Dv bedouble
+A 64-bit double precision IEEE floating point number in big-endian byte order.
+.It Dv bedate
+A four-byte value in big-endian byte order,
+interpreted as a Unix date.
+.It Dv beqdate
+An eight-byte value in big-endian byte order,
+interpreted as a Unix date.
+.It Dv beldate
+A four-byte value in big-endian byte order,
+interpreted as a UNIX-style date, but interpreted as local time rather
+than UTC.
+.It Dv beqldate
+An eight-byte value in big-endian byte order,
+interpreted as a UNIX-style date, but interpreted as local time rather
+than UTC.
+.It Dv bestring16
+A two-byte unicode (UCS16) string in big-endian byte order.
+.It Dv leid3
+A 32-bit ID3 length in little-endian byte order.
+.It Dv leshort
+A two-byte value in little-endian byte order.
+.It Dv lelong
+A four-byte value in little-endian byte order.
+.It Dv lequad
+An eight-byte value in little-endian byte order.
+.It Dv lefloat
+A 32-bit single precision IEEE floating point number in little-endian byte order.
+.It Dv ledouble
+A 64-bit double precision IEEE floating point number in little-endian byte order.
+.It Dv ledate
+A four-byte value in little-endian byte order,
+interpreted as a UNIX date.
+.It Dv leqdate
+An eight-byte value in little-endian byte order,
+interpreted as a UNIX date.
+.It Dv leldate
+A four-byte value in little-endian byte order,
+interpreted as a UNIX-style date, but interpreted as local time rather
+than UTC.
+.It Dv leqldate
+An eight-byte value in little-endian byte order,
+interpreted as a UNIX-style date, but interpreted as local time rather
+than UTC.
+.It Dv lestring16
+A two-byte unicode (UCS16) string in little-endian byte order.
+.It Dv melong
+A four-byte value in middle-endian (PDP-11) byte order.
+.It Dv medate
+A four-byte value in middle-endian (PDP-11) byte order,
+interpreted as a UNIX date.
+.It Dv meldate
+A four-byte value in middle-endian (PDP-11) byte order,
+interpreted as a UNIX-style date, but interpreted as local time rather
+than UTC.
+.It Dv indirect
+Starting at the given offset, consult the magic database again.
+.It Dv regex
+A regular expression match in extended POSIX regular expression syntax
+(like egrep).
+Regular expressions can take exponential time to process, and their
+performance is hard to predict, so their use is discouraged.
+When used in production environments, their performance
+should be carefully checked.
+The type specification can be optionally followed by
+.Dv /[c][s] .
+The
+.Dq c
+flag makes the match case insensitive, while the
+.Dq s
+flag update the offset to the start offset of the match, rather than the end.
+The regular expression is tested against line
+.Dv N + 1
+onwards, where
+.Dv N
+is the given offset.
+Line endings are assumed to be in the machine's native format.
+.Dv ^
+and
+.Dv $
+match the beginning and end of individual lines, respectively,
+not beginning and end of file.
+.It Dv search
+A literal string search starting at the given offset.
+The same modifier flags can be used as for string patterns.
+The modifier flags (if any) must be followed by
+.Dv /number
+the range, that is, the number of positions at which the match will be
+attempted, starting from the start offset.
+This is suitable for
+searching larger binary expressions with variable offsets, using
+.Dv \e
+escapes for special characters.
+The offset works as for regex.
+.It Dv default
+This is intended to be used with the test
+.Em x
+(which is always true) and a message that is to be used if there are
+no other matches.
+.El
+.Pp
+Each top-level magic pattern (see below for an explanation of levels)
+is classified as text or binary according to the types used.
+Types
+.Dq regex
+and
+.Dq search
+are classified as text tests, unless non-printable characters are used
+in the pattern.
+All other tests are classified as binary.
+A top-level
+pattern is considered to be a test text when all its patterns are text
+patterns; otherwise, it is considered to be a binary pattern.
+When
+matching a file, binary patterns are tried first; if no match is
+found, and the file looks like text, then its encoding is determined
+and the text patterns are tried.
+.Pp
+The numeric types may optionally be followed by
+.Dv \*[Am]
+and a numeric value,
+to specify that the value is to be AND'ed with the
+numeric value before any comparisons are done.
+Prepending a
+.Dv u
+to the type indicates that ordered comparisons should be unsigned.
+.It Dv test
+The value to be compared with the value from the file.
+If the type is
+numeric, this value
+is specified in C form; if it is a string, it is specified as a C string
+with the usual escapes permitted (e.g. \en for new-line).
+.Pp
+Numeric values
+may be preceded by a character indicating the operation to be performed.
+It may be
+.Dv = ,
+to specify that the value from the file must equal the specified value,
+.Dv \*[Lt] ,
+to specify that the value from the file must be less than the specified
+value,
+.Dv \*[Gt] ,
+to specify that the value from the file must be greater than the specified
+value,
+.Dv \*[Am] ,
+to specify that the value from the file must have set all of the bits
+that are set in the specified value,
+.Dv ^ ,
+to specify that the value from the file must have clear any of the bits
+that are set in the specified value, or
+.Dv ~ ,
+the value specified after is negated before tested.
+.Dv x ,
+to specify that any value will match.
+If the character is omitted, it is assumed to be
+.Dv = .
+Operators
+.Dv \*[Am] ,
+.Dv ^ ,
+and
+.Dv ~
+don't work with floats and doubles.
+The operator
+.Dv !\&
+specifies that the line matches if the test does
+.Em not
+succeed.
+.Pp
+Numeric values are specified in C form; e.g.
+.Dv 13
+is decimal,
+.Dv 013
+is octal, and
+.Dv 0x13
+is hexadecimal.
+.Pp
+For string values, the string from the
+file must match the specified string.
+The operators
+.Dv = ,
+.Dv \*[Lt]
+and
+.Dv \*[Gt]
+(but not
+.Dv \*[Am] )
+can be applied to strings.
+The length used for matching is that of the string argument
+in the magic file.
+This means that a line can match any non-empty string (usually used to
+then print the string), with
+.Em \*[Gt]\e0
+(because all non-empty strings are greater than the empty string).
+.Pp
+The special test
+.Em x
+always evaluates to true.
+.It Dv message
+The message to be printed if the comparison succeeds.
+If the string contains a
+.Xr printf 3
+format specification, the value from the file (with any specified masking
+performed) is printed using the message as the format string.
+If the string begins with
+.Dq \eb ,
+the message printed is the remainder of the string with no whitespace
+added before it: multiple matches are normally separated by a single
+space.
+.El
+.Pp
+An APPLE 4+4 character APPLE creator and type can be specified as:
+.Bd -literal -offset indent
+!:apple	CREATYPE
+.Ed
+.Pp
+A MIME type is given on a separate line, which must be the next
+non-blank or comment line after the magic line that identifies the
+file type, and has the following format:
+.Bd -literal -offset indent
+!:mime	MIMETYPE
+.Ed
+.Pp
+i.e. the literal string
+.Dq !:mime
+followed by the MIME type.
+.Pp
+An optional strength can be supplied on a separate line which refers to
+the current magic description using the following format:
+.Bd -literal -offset indent
+!:strength OP VALUE
+.Ed
+.Pp
+The operand
+.Dv OP
+can be:
+.Dv + ,
+.Dv - ,
+.Dv * ,
+or
+.Dv /
+and
+.Dv VALUE
+is a constant between 0 and 255.
+This constant is applied using the specified operand
+to the currently computed default magic strength.
+.Pp
+Some file formats contain additional information which is to be printed
+along with the file type or need additional tests to determine the true
+file type.
+These additional tests are introduced by one or more
+.Em \*[Gt]
+characters preceding the offset.
+The number of
+.Em \*[Gt]
+on the line indicates the level of the test; a line with no
+.Em \*[Gt]
+at the beginning is considered to be at level 0.
+Tests are arranged in a tree-like hierarchy:
+if the test on a line at level
+.Em n
+succeeds, all following tests at level
+.Em n+1
+are performed, and the messages printed if the tests succeed, until a line
+with level
+.Em n
+(or less) appears.
+For more complex files, one can use empty messages to get just the
+"if/then" effect, in the following way:
+.Bd -literal -offset indent
+0      string   MZ
+\*[Gt]0x18  leshort  \*[Lt]0x40   MS-DOS executable
+\*[Gt]0x18  leshort  \*[Gt]0x3f   extended PC executable (e.g., MS Windows)
+.Ed
+.Pp
+Offsets do not need to be constant, but can also be read from the file
+being examined.
+If the first character following the last
+.Em \*[Gt]
+is a
+.Em \&(
+then the string after the parenthesis is interpreted as an indirect offset.
+That means that the number after the parenthesis is used as an offset in
+the file.
+The value at that offset is read, and is used again as an offset
+in the file.
+Indirect offsets are of the form:
+.Em (( x [.[bislBISL]][+\-][ y ]) .
+The value of
+.Em x
+is used as an offset in the file.
+A byte, id3 length, short or long is read at that offset depending on the
+.Em [bislBISLm]
+type specifier.
+The capitalized types interpret the number as a big endian
+value, whereas the small letter versions interpret the number as a little
+endian value;
+the
+.Em m
+type interprets the number as a middle endian (PDP-11) value.
+To that number the value of
+.Em y
+is added and the result is used as an offset in the file.
+The default type if one is not specified is long.
+.Pp
+That way variable length structures can be examined:
+.Bd -literal -offset indent
+# MS Windows executables are also valid MS-DOS executables
+0           string  MZ
+\*[Gt]0x18       leshort \*[Lt]0x40   MZ executable (MS-DOS)
+# skip the whole block below if it is not an extended executable
+\*[Gt]0x18       leshort \*[Gt]0x3f
+\*[Gt]\*[Gt](0x3c.l)  string  PE\e0\e0  PE executable (MS-Windows)
+\*[Gt]\*[Gt](0x3c.l)  string  LX\e0\e0  LX executable (OS/2)
+.Ed
+.Pp
+This strategy of examining has a drawback: You must make sure that
+you eventually print something, or users may get empty output (like, when
+there is neither PE\e0\e0 nor LE\e0\e0 in the above example)
+.Pp
+If this indirect offset cannot be used directly, simple calculations are
+possible: appending
+.Em [+-*/%\*[Am]|^]number
+inside parentheses allows one to modify
+the value read from the file before it is used as an offset:
+.Bd -literal -offset indent
+# MS Windows executables are also valid MS-DOS executables
+0           string  MZ
+# sometimes, the value at 0x18 is less that 0x40 but there's still an
+# extended executable, simply appended to the file
+\*[Gt]0x18       leshort \*[Lt]0x40
+\*[Gt]\*[Gt](4.s*512) leshort 0x014c  COFF executable (MS-DOS, DJGPP)
+\*[Gt]\*[Gt](4.s*512) leshort !0x014c MZ executable (MS-DOS)
+.Ed
+.Pp
+Sometimes you do not know the exact offset as this depends on the length or
+position (when indirection was used before) of preceding fields.
+You can specify an offset relative to the end of the last up-level
+field using
+.Sq \*[Am]
+as a prefix to the offset:
+.Bd -literal -offset indent
+0           string  MZ
+\*[Gt]0x18       leshort \*[Gt]0x3f
+\*[Gt]\*[Gt](0x3c.l)  string  PE\e0\e0    PE executable (MS-Windows)
+# immediately following the PE signature is the CPU type
+\*[Gt]\*[Gt]\*[Gt]\*[Am]0       leshort 0x14c     for Intel 80386
+\*[Gt]\*[Gt]\*[Gt]\*[Am]0       leshort 0x184     for DEC Alpha
+.Ed
+.Pp
+Indirect and relative offsets can be combined:
+.Bd -literal -offset indent
+0             string  MZ
+\*[Gt]0x18         leshort \*[Lt]0x40
+\*[Gt]\*[Gt](4.s*512)   leshort !0x014c MZ executable (MS-DOS)
+# if it's not COFF, go back 512 bytes and add the offset taken
+# from byte 2/3, which is yet another way of finding the start
+# of the extended executable
+\*[Gt]\*[Gt]\*[Gt]\*[Am](2.s-514) string  LE      LE executable (MS Windows VxD driver)
+.Ed
+.Pp
+Or the other way around:
+.Bd -literal -offset indent
+0                 string  MZ
+\*[Gt]0x18             leshort \*[Gt]0x3f
+\*[Gt]\*[Gt](0x3c.l)        string  LE\e0\e0  LE executable (MS-Windows)
+# at offset 0x80 (-4, since relative offsets start at the end
+# of the up-level match) inside the LE header, we find the absolute
+# offset to the code area, where we look for a specific signature
+\*[Gt]\*[Gt]\*[Gt](\*[Am]0x7c.l+0x26) string  UPX     \eb, UPX compressed
+.Ed
+.Pp
+Or even both!
+.Bd -literal -offset indent
+0                string  MZ
+\*[Gt]0x18            leshort \*[Gt]0x3f
+\*[Gt]\*[Gt](0x3c.l)       string  LE\e0\e0 LE executable (MS-Windows)
+# at offset 0x58 inside the LE header, we find the relative offset
+# to a data area where we look for a specific signature
+\*[Gt]\*[Gt]\*[Gt]\*[Am](\*[Am]0x54.l-3)  string  UNACE  \eb, ACE self-extracting archive
+.Ed
+.Pp
+Finally, if you have to deal with offset/length pairs in your file, even the
+second value in a parenthesized expression can be taken from the file itself,
+using another set of parentheses.
+Note that this additional indirect offset is always relative to the
+start of the main indirect offset.
+.Bd -literal -offset indent
+0                 string       MZ
+\*[Gt]0x18             leshort      \*[Gt]0x3f
+\*[Gt]\*[Gt](0x3c.l)        string       PE\e0\e0 PE executable (MS-Windows)
+# search for the PE section called ".idata"...
+\*[Gt]\*[Gt]\*[Gt]\*[Am]0xf4          search/0x140 .idata
+# ...and go to the end of it, calculated from start+length;
+# these are located 14 and 10 bytes after the section name
+\*[Gt]\*[Gt]\*[Gt]\*[Gt](\*[Am]0xe.l+(-4)) string       PK\e3\e4 \eb, ZIP self-extracting archive
+.Ed
+.Sh SEE ALSO
+.Xr file __CSECTION__
+\- the command that reads this file.
+.Sh BUGS
+The formats
+.Dv long ,
+.Dv belong ,
+.Dv lelong ,
+.Dv melong ,
+.Dv short ,
+.Dv beshort ,
+.Dv leshort ,
+.Dv date ,
+.Dv bedate ,
+.Dv medate ,
+.Dv ledate ,
+.Dv beldate ,
+.Dv leldate ,
+and
+.Dv meldate
+are system-dependent; perhaps they should be specified as a number
+of bytes (2B, 4B, etc),
+since the files being recognized typically come from
+a system on which the lengths are invariant.
+.\"
+.\" From: guy@sun.uucp (Guy Harris)
+.\" Newsgroups: net.bugs.usg
+.\" Subject: /etc/magic's format isn't well documented
+.\" Message-ID: <2752@sun.uucp>
+.\" Date: 3 Sep 85 08:19:07 GMT
+.\" Organization: Sun Microsystems, Inc.
+.\" Lines: 136
+.\"
+.\" Here's a manual page for the format accepted by the "file" made by adding
+.\" the changes I posted to the S5R2 version.
+.\"
+.\" Modified for Ian Darwin's version of the file command.
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/install-sh b/framework/modules/c_FileTypeSigModule/file-5.08/install-sh
new file mode 100755
index 0000000000000000000000000000000000000000..68b81002eaebadc28cd7760fc45aaadaae2e11ff
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/install-sh
@@ -0,0 +1,291 @@
+#!/bin/sh
+#
+# $NetBSD: install-sh.in,v 1.5 2010/10/08 19:57:05 tez Exp $
+# This script now also installs multiple files, but might choke on installing
+# multiple files with spaces in the file names.
+#
+# install - install a program, script, or datafile
+# This comes from X11R5 (mit/util/scripts/install.sh).
+#
+# Copyright 1991 by the Massachusetts Institute of Technology
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of M.I.T. not be used in advertising or
+# publicity pertaining to distribution of the software without specific,
+# written prior permission.  M.I.T. makes no representations about the
+# suitability of this software for any purpose.  It is provided "as is"
+# without express or implied warranty.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit="${DOITPROG-}"
+
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+awkprog="${AWKPROG-awk}"
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+mkdirprog="${MKDIRPROG-mkdir}"
+
+instcmd="$cpprog"
+pathcompchmodcmd="$chmodprog 755"
+chmodcmd="$chmodprog 755"
+chowncmd=""
+chgrpcmd=""
+stripcmd=""
+stripflags=""
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=""
+msrc=""
+dst=""
+dir_arg=""
+suffix=""
+suffixfmt=""
+
+while [ x"$1" != x ]; do
+    case $1 in
+	-b) suffix=".old"
+	    shift
+	    continue;;
+
+	-B) suffixfmt="$2"
+	    shift
+	    shift
+	    continue;;
+
+	-c) instcmd="$cpprog"
+	    shift
+	    continue;;
+
+	-d) dir_arg=true
+	    shift
+	    continue;;
+
+	-m) chmodcmd="$chmodprog $2"
+	    shift
+	    shift
+	    continue;;
+
+	-o) chowncmd="$chownprog $2"
+	    shift
+	    shift
+	    continue;;
+
+	-g) chgrpcmd="$chgrpprog $2"
+	    shift
+	    shift
+	    continue;;
+
+	-s) stripcmd="$stripprog"
+	    shift
+	    continue;;
+
+	-S) stripcmd="$stripprog"
+	    stripflags="-S $2 $stripflags"
+	    shift
+	    shift
+	    continue;;
+
+	*)  if [ x"$msrc" = x ]
+	    then
+		msrc="$dst"
+	    else
+		msrc="$msrc $dst"
+	    fi
+	    src="$dst"
+	    dst="$1"
+	    shift
+	    continue;;
+    esac
+done
+
+if [ x"$dir_arg" = x ]
+then
+	dstisfile=""
+	if [ ! -d "$dst" ]
+	then
+		if [ x"$msrc" = x"$src" ]
+		then
+			dstisfile=true
+		else
+			echo "install: destination is not a directory"
+			exit 1
+		fi
+	fi
+else
+	msrc="$msrc $dst"
+fi
+
+if [ x"$msrc" = x ]
+then
+	echo "install: no destination specified"
+	exit 1
+fi      
+
+for srcarg in $msrc; do
+
+if [ x"$dir_arg" != x ]; then
+
+	dstarg="$srcarg"
+else
+	dstarg="$dst"
+
+# Waiting for this to be detected by the "$instcmd $srcarg $dsttmp" command
+# might cause directories to be created, which would be especially bad 
+# if $src (and thus $dsttmp) contains '*'.
+
+	if [ -f "$srcarg" ]
+	then
+		doinst="$instcmd"
+	elif [ -d "$srcarg" ]
+	then
+		echo "install: $srcarg: not a regular file"
+		exit 1
+	elif [ "$srcarg" = "/dev/null" ]
+	then
+		doinst="$cpprog"
+	else
+		echo "install:  $srcarg does not exist"
+		exit 1
+	fi
+	
+# If destination is a directory, append the input filename; if your system
+# does not like double slashes in filenames, you may need to add some logic
+
+	if [ -d "$dstarg" ]
+	then
+		dstarg="$dstarg"/`basename "$srcarg"`
+	fi
+fi
+
+## this sed command emulates the dirname command
+dstdir=`echo "$dstarg" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
+
+# Make sure that the destination directory exists.
+#  this part is taken from Noah Friedman's mkinstalldirs script
+
+# Skip lots of stat calls in the usual case.
+if [ ! -d "$dstdir" ]; then
+defaultIFS='	
+'
+IFS="${IFS-${defaultIFS}}"
+
+oIFS="${IFS}"
+# Some sh's can't handle IFS=/ for some reason.
+IFS='%'
+set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
+IFS="${oIFS}"
+
+pathcomp=''
+
+while [ $# -ne 0 ] ; do
+	pathcomp="${pathcomp}${1}"
+	shift
+
+	if [ ! -d "${pathcomp}" ] ;
+        then
+		$doit $mkdirprog "${pathcomp}"
+        	if [ x"$chowncmd" != x ]; then $doit $chowncmd "${pathcomp}"; else true ; fi &&
+        	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "${pathcomp}"; else true ; fi &&
+        	if [ x"$pathcompchmodcmd" != x ]; then $doit $pathcompchmodcmd "${pathcomp}"; else true ; fi
+
+	else
+		true
+	fi
+
+	pathcomp="${pathcomp}/"
+done
+fi
+
+	if [ x"$dir_arg" != x ]
+	then
+		if [ -d "$dstarg" ]; then
+			true
+		else
+			$doit $mkdirprog "$dstarg" &&
+
+			if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dstarg"; else true ; fi &&
+			if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dstarg"; else true ; fi &&
+			if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dstarg"; else true ; fi
+		fi
+	else
+
+		if [ x"$dstisfile" = x ]
+		then
+			file=$srcarg
+		else
+			file=$dst
+		fi
+
+		dstfile=`basename "$file"`
+		dstfinal="$dstdir/$dstfile"
+
+# Make a temp file name in the proper directory.
+
+		dsttmp=$dstdir/#inst.$$#
+
+# Make a backup file name in the proper directory.
+		case x$suffixfmt in
+		*%*)	suffix=`echo x |
+			$awkprog -v bname="$dstfinal" -v fmt="$suffixfmt" '
+			{ cnt = 0;
+			  do {
+				sfx = sprintf(fmt, cnt++);
+				name = bname sfx;
+			  } while (system("test -f " name) == 0);
+			  print sfx; }' -`;;
+		x)	;;
+		*)	suffix="$suffixfmt";;
+		esac
+		dstbackup="$dstfinal$suffix"
+
+# Move or copy the file name to the temp name
+
+		$doit $doinst $srcarg "$dsttmp" &&
+
+		trap "rm -f ${dsttmp}" 0 &&
+
+# and set any options; do chmod last to preserve setuid bits
+
+# If any of these fail, we abort the whole thing.  If we want to
+# ignore errors from any of these, just make sure not to ignore
+# errors from the above "$doit $instcmd $src $dsttmp" command.
+
+		if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else true;fi &&
+		if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else true;fi &&
+		if [ x"$stripcmd" != x ]; then $doit $stripcmd $stripflags "$dsttmp"; else true;fi &&
+		if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else true;fi &&
+
+# Now rename the file to the real destination.
+
+		if [ x"$suffix" != x ] && [ -f "$dstfinal" ]
+		then
+			$doit $mvcmd "$dstfinal" "$dstbackup"
+		else
+			$doit $rmcmd -f "$dstfinal"
+		fi &&
+		$doit $mvcmd "$dsttmp" "$dstfinal"
+	fi
+
+done &&
+
+
+exit 0
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/libmagic-1.def b/framework/modules/c_FileTypeSigModule/file-5.08/libmagic-1.def
new file mode 100755
index 0000000000000000000000000000000000000000..a78cd0e18afac511dd0bd995ef504b4c57e55461
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/libmagic-1.def
@@ -0,0 +1,93 @@
+;
+; Definition file of libmagic-1.dll
+; Automatic generated by gendef
+; written by Kai Tietz 2008
+;
+LIBRARY "libmagic-1.dll"
+EXPORTS
+_get_output_format
+asprintf
+cdf_count_chain
+cdf_ctime
+cdf_print_classid
+cdf_print_elapsed_time
+cdf_print_property_name
+cdf_read_dir
+cdf_read_header
+cdf_read_long_sector_chain
+cdf_read_property_info
+cdf_read_sat
+cdf_read_sector
+cdf_read_sector_chain
+cdf_read_short_sector
+cdf_read_short_sector_chain
+cdf_read_short_stream
+cdf_read_ssat
+cdf_read_summary_info
+cdf_swap_class
+cdf_swap_dir
+cdf_swap_header
+cdf_timespec_to_timestamp
+cdf_timestamp_to_timespec
+cdf_tole2
+cdf_tole4
+cdf_tole8
+cdf_unpack_dir
+cdf_unpack_header
+cdf_unpack_summary_info
+file_apprentice
+file_ascmagic
+file_ascmagic_with_encoding
+file_badread
+file_badseek
+file_buffer
+file_check_mem
+file_delmagic
+file_encoding
+file_error
+file_fmttime
+file_formats DATA
+file_fsmagic
+file_getbuffer
+file_is_tar
+file_looks_utf8
+file_magerror
+file_magwarn
+file_mdump
+file_names DATA
+file_nformats DATA
+file_nnames DATA
+file_oomem
+file_pipe2file
+file_printedlen
+file_printf
+file_pstring_get_length
+file_pstring_length_size
+file_replace
+file_reset
+file_showstr
+file_signextend
+file_softmagic
+file_trycdf
+file_tryelf
+file_vprintf
+getdelim
+getline
+magic_buffer
+magic_check
+magic_close
+magic_compile
+magic_descriptor
+magic_errno
+magic_error
+magic_file
+magic_getpath
+magic_list
+magic_load
+magic_open
+magic_setflags
+sread
+strlcat
+strlcpy
+strndup
+vasprintf
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/libmagic-1.dll b/framework/modules/c_FileTypeSigModule/file-5.08/libmagic-1.dll
new file mode 100755
index 0000000000000000000000000000000000000000..74b25ac0d502e03743f1a5d6e80ce81a5c7d3422
Binary files /dev/null and b/framework/modules/c_FileTypeSigModule/file-5.08/libmagic-1.dll differ
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/libmagic-1.lib b/framework/modules/c_FileTypeSigModule/file-5.08/libmagic-1.lib
new file mode 100755
index 0000000000000000000000000000000000000000..602aad84434f96c33de5a2740e8deca546c3cef9
Binary files /dev/null and b/framework/modules/c_FileTypeSigModule/file-5.08/libmagic-1.lib differ
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/ltmain.sh b/framework/modules/c_FileTypeSigModule/file-5.08/ltmain.sh
new file mode 100755
index 0000000000000000000000000000000000000000..c3098b537f909024e2ec3a4d14157e83258953b2
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/ltmain.sh
@@ -0,0 +1,8410 @@
+# Generated from ltmain.m4sh.
+
+# ltmain.sh (GNU libtool) 2.2.6b
+# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions.  There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Libtool; see the file COPYING.  If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html,
+# or obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# Usage: $progname [OPTION]... [MODE-ARG]...
+#
+# Provide generalized library-building support services.
+#
+#     --config             show all configuration variables
+#     --debug              enable verbose shell tracing
+# -n, --dry-run            display commands without modifying any files
+#     --features           display basic configuration information and exit
+#     --mode=MODE          use operation mode MODE
+#     --preserve-dup-deps  don't remove duplicate dependency libraries
+#     --quiet, --silent    don't print informational messages
+#     --tag=TAG            use configuration variables from tag TAG
+# -v, --verbose            print informational messages (default)
+#     --version            print version information
+# -h, --help               print short or long help message
+#
+# MODE must be one of the following:
+#
+#       clean              remove files from the build directory
+#       compile            compile a source file into a libtool object
+#       execute            automatically set library path, then run a program
+#       finish             complete the installation of libtool libraries
+#       install            install libraries or executables
+#       link               create a library or an executable
+#       uninstall          remove libraries from an installed directory
+#
+# MODE-ARGS vary depending on the MODE.
+# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
+#
+# When reporting a bug, please describe a test case to reproduce it and
+# include the following information:
+#
+#       host-triplet:	$host
+#       shell:		$SHELL
+#       compiler:		$LTCC
+#       compiler flags:		$LTCFLAGS
+#       linker:		$LD (gnu? $with_gnu_ld)
+#       $progname:		(GNU libtool) 2.2.6b
+#       automake:		$automake_version
+#       autoconf:		$autoconf_version
+#
+# Report bugs to <bug-libtool@gnu.org>.
+
+PROGRAM=ltmain.sh
+PACKAGE=libtool
+VERSION=2.2.6b
+TIMESTAMP=""
+package_revision=1.3017
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# NLS nuisances: We save the old values to restore during execute mode.
+# Only set LANG and LC_ALL to C if already set.
+# These must not be set unconditionally because not all systems understand
+# e.g. LANG=C (notably SCO).
+lt_user_locale=
+lt_safe_locale=
+for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+do
+  eval "if test \"\${$lt_var+set}\" = set; then
+          save_$lt_var=\$$lt_var
+          $lt_var=C
+	  export $lt_var
+	  lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
+	  lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
+	fi"
+done
+
+$lt_unset CDPATH
+
+
+unset CP
+unset MV
+unset RM
+: ${CP="cp -f"}
+: ${ECHO="echo"}
+: ${EGREP="/bin/grep -E"}
+: ${FGREP="/bin/grep -F"}
+: ${GREP="/bin/grep"}
+: ${LN_S="ln -s"}
+: ${MAKE="make"}
+: ${MKDIR="mkdir"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+: ${SED="/bin/sed"}
+: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
+: ${Xsed="$SED -e 1s/^X//"}
+
+# Global variables:
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
+EXIT_SKIP=77	  # $? = 77 is used to indicate a skipped test to automake.
+
+exit_status=$EXIT_SUCCESS
+
+# Make sure IFS has a sensible default
+lt_nl='
+'
+IFS=" 	$lt_nl"
+
+dirname="s,/[^/]*$,,"
+basename="s,^.*/,,"
+
+# func_dirname_and_basename file append nondir_replacement
+# perform func_basename and func_dirname in a single function
+# call:
+#   dirname:  Compute the dirname of FILE.  If nonempty,
+#             add APPEND to the result, otherwise set result
+#             to NONDIR_REPLACEMENT.
+#             value returned in "$func_dirname_result"
+#   basename: Compute filename of FILE.
+#             value retuned in "$func_basename_result"
+# Implementation must be kept synchronized with func_dirname
+# and func_basename. For efficiency, we do not delegate to
+# those functions but instead duplicate the functionality here.
+func_dirname_and_basename ()
+{
+  # Extract subdirectory from the argument.
+  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
+  if test "X$func_dirname_result" = "X${1}"; then
+    func_dirname_result="${3}"
+  else
+    func_dirname_result="$func_dirname_result${2}"
+  fi
+  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
+}
+
+# Generated shell functions inserted here.
+
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath="$0"
+
+# The name of this program:
+# In the unlikely event $progname began with a '-', it would play havoc with
+# func_echo (imagine progname=-n), so we prepend ./ in that case:
+func_dirname_and_basename "$progpath"
+progname=$func_basename_result
+case $progname in
+  -*) progname=./$progname ;;
+esac
+
+# Make sure we have an absolute path for reexecution:
+case $progpath in
+  [\\/]*|[A-Za-z]:\\*) ;;
+  *[\\/]*)
+     progdir=$func_dirname_result
+     progdir=`cd "$progdir" && pwd`
+     progpath="$progdir/$progname"
+     ;;
+  *)
+     save_IFS="$IFS"
+     IFS=:
+     for progdir in $PATH; do
+       IFS="$save_IFS"
+       test -x "$progdir/$progname" && break
+     done
+     IFS="$save_IFS"
+     test -n "$progdir" || progdir=`pwd`
+     progpath="$progdir/$progname"
+     ;;
+esac
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed="${SED}"' -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Re-`\' parameter expansions in output of double_quote_subst that were
+# `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
+# in input to double_quote_subst, that '$' was protected from expansion.
+# Since each input `\' is now two `\'s, look for any number of runs of
+# four `\'s followed by two `\'s and then a '$'.  `\' that '$'.
+bs='\\'
+bs2='\\\\'
+bs4='\\\\\\\\'
+dollar='\$'
+sed_double_backslash="\
+  s/$bs4/&\\
+/g
+  s/^$bs2$dollar/$bs&/
+  s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
+  s/\n//g"
+
+# Standard options:
+opt_dry_run=false
+opt_help=false
+opt_quiet=false
+opt_verbose=false
+opt_warning=:
+
+# func_echo arg...
+# Echo program name prefixed message, along with the current mode
+# name if it has been set yet.
+func_echo ()
+{
+    $ECHO "$progname${mode+: }$mode: $*"
+}
+
+# func_verbose arg...
+# Echo program name prefixed message in verbose mode only.
+func_verbose ()
+{
+    $opt_verbose && func_echo ${1+"$@"}
+
+    # A bug in bash halts the script if the last line of a function
+    # fails when set -e is in force, so we need another command to
+    # work around that:
+    :
+}
+
+# func_error arg...
+# Echo program name prefixed message to standard error.
+func_error ()
+{
+    $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2
+}
+
+# func_warning arg...
+# Echo program name prefixed warning message to standard error.
+func_warning ()
+{
+    $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
+
+    # bash bug again:
+    :
+}
+
+# func_fatal_error arg...
+# Echo program name prefixed message to standard error, and exit.
+func_fatal_error ()
+{
+    func_error ${1+"$@"}
+    exit $EXIT_FAILURE
+}
+
+# func_fatal_help arg...
+# Echo program name prefixed message to standard error, followed by
+# a help hint, and exit.
+func_fatal_help ()
+{
+    func_error ${1+"$@"}
+    func_fatal_error "$help"
+}
+help="Try \`$progname --help' for more information."  ## default
+
+
+# func_grep expression filename
+# Check whether EXPRESSION matches any line of FILENAME, without output.
+func_grep ()
+{
+    $GREP "$1" "$2" >/dev/null 2>&1
+}
+
+
+# func_mkdir_p directory-path
+# Make sure the entire path to DIRECTORY-PATH is available.
+func_mkdir_p ()
+{
+    my_directory_path="$1"
+    my_dir_list=
+
+    if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
+
+      # Protect directory names starting with `-'
+      case $my_directory_path in
+        -*) my_directory_path="./$my_directory_path" ;;
+      esac
+
+      # While some portion of DIR does not yet exist...
+      while test ! -d "$my_directory_path"; do
+        # ...make a list in topmost first order.  Use a colon delimited
+	# list incase some portion of path contains whitespace.
+        my_dir_list="$my_directory_path:$my_dir_list"
+
+        # If the last portion added has no slash in it, the list is done
+        case $my_directory_path in */*) ;; *) break ;; esac
+
+        # ...otherwise throw away the child directory and loop
+        my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"`
+      done
+      my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'`
+
+      save_mkdir_p_IFS="$IFS"; IFS=':'
+      for my_dir in $my_dir_list; do
+	IFS="$save_mkdir_p_IFS"
+        # mkdir can fail with a `File exist' error if two processes
+        # try to create one of the directories concurrently.  Don't
+        # stop in that case!
+        $MKDIR "$my_dir" 2>/dev/null || :
+      done
+      IFS="$save_mkdir_p_IFS"
+
+      # Bail out if we (or some other process) failed to create a directory.
+      test -d "$my_directory_path" || \
+        func_fatal_error "Failed to create \`$1'"
+    fi
+}
+
+
+# func_mktempdir [string]
+# Make a temporary directory that won't clash with other running
+# libtool processes, and avoids race conditions if possible.  If
+# given, STRING is the basename for that directory.
+func_mktempdir ()
+{
+    my_template="${TMPDIR-/tmp}/${1-$progname}"
+
+    if test "$opt_dry_run" = ":"; then
+      # Return a directory name, but don't create it in dry-run mode
+      my_tmpdir="${my_template}-$$"
+    else
+
+      # If mktemp works, use that first and foremost
+      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
+
+      if test ! -d "$my_tmpdir"; then
+        # Failing that, at least try and use $RANDOM to avoid a race
+        my_tmpdir="${my_template}-${RANDOM-0}$$"
+
+        save_mktempdir_umask=`umask`
+        umask 0077
+        $MKDIR "$my_tmpdir"
+        umask $save_mktempdir_umask
+      fi
+
+      # If we're not in dry-run mode, bomb out on failure
+      test -d "$my_tmpdir" || \
+        func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
+    fi
+
+    $ECHO "X$my_tmpdir" | $Xsed
+}
+
+
+# func_quote_for_eval arg
+# Aesthetically quote ARG to be evaled later.
+# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
+# is double-quoted, suitable for a subsequent eval, whereas
+# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
+# which are still active within double quotes backslashified.
+func_quote_for_eval ()
+{
+    case $1 in
+      *[\\\`\"\$]*)
+	func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;;
+      *)
+        func_quote_for_eval_unquoted_result="$1" ;;
+    esac
+
+    case $func_quote_for_eval_unquoted_result in
+      # Double-quote args containing shell metacharacters to delay
+      # word splitting, command substitution and and variable
+      # expansion for a subsequent eval.
+      # Many Bourne shells cannot handle close brackets correctly
+      # in scan sets, so we specify it separately.
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+        func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
+        ;;
+      *)
+        func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
+    esac
+}
+
+
+# func_quote_for_expand arg
+# Aesthetically quote ARG to be evaled later; same as above,
+# but do not quote variable references.
+func_quote_for_expand ()
+{
+    case $1 in
+      *[\\\`\"]*)
+	my_arg=`$ECHO "X$1" | $Xsed \
+	    -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
+      *)
+        my_arg="$1" ;;
+    esac
+
+    case $my_arg in
+      # Double-quote args containing shell metacharacters to delay
+      # word splitting and command substitution for a subsequent eval.
+      # Many Bourne shells cannot handle close brackets correctly
+      # in scan sets, so we specify it separately.
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+        my_arg="\"$my_arg\""
+        ;;
+    esac
+
+    func_quote_for_expand_result="$my_arg"
+}
+
+
+# func_show_eval cmd [fail_exp]
+# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
+# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it.
+func_show_eval ()
+{
+    my_cmd="$1"
+    my_fail_exp="${2-:}"
+
+    ${opt_silent-false} || {
+      func_quote_for_expand "$my_cmd"
+      eval "func_echo $func_quote_for_expand_result"
+    }
+
+    if ${opt_dry_run-false}; then :; else
+      eval "$my_cmd"
+      my_status=$?
+      if test "$my_status" -eq 0; then :; else
+	eval "(exit $my_status); $my_fail_exp"
+      fi
+    fi
+}
+
+
+# func_show_eval_locale cmd [fail_exp]
+# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
+# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it.  Use the saved locale for evaluation.
+func_show_eval_locale ()
+{
+    my_cmd="$1"
+    my_fail_exp="${2-:}"
+
+    ${opt_silent-false} || {
+      func_quote_for_expand "$my_cmd"
+      eval "func_echo $func_quote_for_expand_result"
+    }
+
+    if ${opt_dry_run-false}; then :; else
+      eval "$lt_user_locale
+	    $my_cmd"
+      my_status=$?
+      eval "$lt_safe_locale"
+      if test "$my_status" -eq 0; then :; else
+	eval "(exit $my_status); $my_fail_exp"
+      fi
+    fi
+}
+
+
+
+
+
+# func_version
+# Echo version message to standard output and exit.
+func_version ()
+{
+    $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / {
+        s/^# //
+	s/^# *$//
+        s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
+        p
+     }' < "$progpath"
+     exit $?
+}
+
+# func_usage
+# Echo short help message to standard output and exit.
+func_usage ()
+{
+    $SED -n '/^# Usage:/,/# -h/ {
+        s/^# //
+	s/^# *$//
+	s/\$progname/'$progname'/
+	p
+    }' < "$progpath"
+    $ECHO
+    $ECHO "run \`$progname --help | more' for full usage"
+    exit $?
+}
+
+# func_help
+# Echo long help message to standard output and exit.
+func_help ()
+{
+    $SED -n '/^# Usage:/,/# Report bugs to/ {
+        s/^# //
+	s/^# *$//
+	s*\$progname*'$progname'*
+	s*\$host*'"$host"'*
+	s*\$SHELL*'"$SHELL"'*
+	s*\$LTCC*'"$LTCC"'*
+	s*\$LTCFLAGS*'"$LTCFLAGS"'*
+	s*\$LD*'"$LD"'*
+	s/\$with_gnu_ld/'"$with_gnu_ld"'/
+	s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
+	s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
+	p
+     }' < "$progpath"
+    exit $?
+}
+
+# func_missing_arg argname
+# Echo program name prefixed message to standard error and set global
+# exit_cmd.
+func_missing_arg ()
+{
+    func_error "missing argument for $1"
+    exit_cmd=exit
+}
+
+exit_cmd=:
+
+
+
+
+
+# Check that we have a working $ECHO.
+if test "X$1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X$1" = X--fallback-echo; then
+  # Avoid inline document here, it may be left over
+  :
+elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
+  # Yippee, $ECHO works!
+  :
+else
+  # Restart under the correct shell, and then maybe $ECHO will work.
+  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+  # used as fallback echo
+  shift
+  cat <<EOF
+$*
+EOF
+  exit $EXIT_SUCCESS
+fi
+
+magic="%%%MAGIC variable%%%"
+magic_exe="%%%MAGIC EXE variable%%%"
+
+# Global variables.
+# $mode is unset
+nonopt=
+execute_dlfiles=
+preserve_args=
+lo2o="s/\\.lo\$/.${objext}/"
+o2lo="s/\\.${objext}\$/.lo/"
+extracted_archives=
+extracted_serial=0
+
+opt_dry_run=false
+opt_duplicate_deps=false
+opt_silent=false
+opt_debug=:
+
+# If this variable is set in any of the actions, the command in it
+# will be execed at the end.  This prevents here-documents from being
+# left over by shells.
+exec_cmd=
+
+# func_fatal_configuration arg...
+# Echo program name prefixed message to standard error, followed by
+# a configuration failure hint, and exit.
+func_fatal_configuration ()
+{
+    func_error ${1+"$@"}
+    func_error "See the $PACKAGE documentation for more information."
+    func_fatal_error "Fatal configuration error."
+}
+
+
+# func_config
+# Display the configuration for all the tags in this script.
+func_config ()
+{
+    re_begincf='^# ### BEGIN LIBTOOL'
+    re_endcf='^# ### END LIBTOOL'
+
+    # Default configuration.
+    $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
+
+    # Now print the configurations for the tags.
+    for tagname in $taglist; do
+      $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
+    done
+
+    exit $?
+}
+
+# func_features
+# Display the features supported by this script.
+func_features ()
+{
+    $ECHO "host: $host"
+    if test "$build_libtool_libs" = yes; then
+      $ECHO "enable shared libraries"
+    else
+      $ECHO "disable shared libraries"
+    fi
+    if test "$build_old_libs" = yes; then
+      $ECHO "enable static libraries"
+    else
+      $ECHO "disable static libraries"
+    fi
+
+    exit $?
+}
+
+# func_enable_tag tagname
+# Verify that TAGNAME is valid, and either flag an error and exit, or
+# enable the TAGNAME tag.  We also add TAGNAME to the global $taglist
+# variable here.
+func_enable_tag ()
+{
+  # Global variable:
+  tagname="$1"
+
+  re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
+  re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
+  sed_extractcf="/$re_begincf/,/$re_endcf/p"
+
+  # Validate tagname.
+  case $tagname in
+    *[!-_A-Za-z0-9,/]*)
+      func_fatal_error "invalid tag name: $tagname"
+      ;;
+  esac
+
+  # Don't test for the "default" C tag, as we know it's
+  # there but not specially marked.
+  case $tagname in
+    CC) ;;
+    *)
+      if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
+	taglist="$taglist $tagname"
+
+	# Evaluate the configuration.  Be careful to quote the path
+	# and the sed script, to avoid splitting on whitespace, but
+	# also don't use non-portable quotes within backquotes within
+	# quotes we have to do it in 2 steps:
+	extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
+	eval "$extractedcf"
+      else
+	func_error "ignoring unknown tag $tagname"
+      fi
+      ;;
+  esac
+}
+
+# Parse options once, thoroughly.  This comes as soon as possible in
+# the script to make things like `libtool --version' happen quickly.
+{
+
+  # Shorthand for --mode=foo, only valid as the first argument
+  case $1 in
+  clean|clea|cle|cl)
+    shift; set dummy --mode clean ${1+"$@"}; shift
+    ;;
+  compile|compil|compi|comp|com|co|c)
+    shift; set dummy --mode compile ${1+"$@"}; shift
+    ;;
+  execute|execut|execu|exec|exe|ex|e)
+    shift; set dummy --mode execute ${1+"$@"}; shift
+    ;;
+  finish|finis|fini|fin|fi|f)
+    shift; set dummy --mode finish ${1+"$@"}; shift
+    ;;
+  install|instal|insta|inst|ins|in|i)
+    shift; set dummy --mode install ${1+"$@"}; shift
+    ;;
+  link|lin|li|l)
+    shift; set dummy --mode link ${1+"$@"}; shift
+    ;;
+  uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
+    shift; set dummy --mode uninstall ${1+"$@"}; shift
+    ;;
+  esac
+
+  # Parse non-mode specific arguments:
+  while test "$#" -gt 0; do
+    opt="$1"
+    shift
+
+    case $opt in
+      --config)		func_config					;;
+
+      --debug)		preserve_args="$preserve_args $opt"
+			func_echo "enabling shell trace mode"
+			opt_debug='set -x'
+			$opt_debug
+			;;
+
+      -dlopen)		test "$#" -eq 0 && func_missing_arg "$opt" && break
+			execute_dlfiles="$execute_dlfiles $1"
+			shift
+			;;
+
+      --dry-run | -n)	opt_dry_run=:					;;
+      --features)       func_features					;;
+      --finish)		mode="finish"					;;
+
+      --mode)		test "$#" -eq 0 && func_missing_arg "$opt" && break
+			case $1 in
+			  # Valid mode arguments:
+			  clean)	;;
+			  compile)	;;
+			  execute)	;;
+			  finish)	;;
+			  install)	;;
+			  link)		;;
+			  relink)	;;
+			  uninstall)	;;
+
+			  # Catch anything else as an error
+			  *) func_error "invalid argument for $opt"
+			     exit_cmd=exit
+			     break
+			     ;;
+		        esac
+
+			mode="$1"
+			shift
+			;;
+
+      --preserve-dup-deps)
+			opt_duplicate_deps=:				;;
+
+      --quiet|--silent)	preserve_args="$preserve_args $opt"
+			opt_silent=:
+			;;
+
+      --verbose| -v)	preserve_args="$preserve_args $opt"
+			opt_silent=false
+			;;
+
+      --tag)		test "$#" -eq 0 && func_missing_arg "$opt" && break
+			preserve_args="$preserve_args $opt $1"
+			func_enable_tag "$1"	# tagname is set here
+			shift
+			;;
+
+      # Separate optargs to long options:
+      -dlopen=*|--mode=*|--tag=*)
+			func_opt_split "$opt"
+			set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"}
+			shift
+			;;
+
+      -\?|-h)		func_usage					;;
+      --help)		opt_help=:					;;
+      --version)	func_version					;;
+
+      -*)		func_fatal_help "unrecognized option \`$opt'"	;;
+
+      *)		nonopt="$opt"
+			break
+			;;
+    esac
+  done
+
+
+  case $host in
+    *cygwin* | *mingw* | *pw32* | *cegcc*)
+      # don't eliminate duplications in $postdeps and $predeps
+      opt_duplicate_compiler_generated_deps=:
+      ;;
+    *)
+      opt_duplicate_compiler_generated_deps=$opt_duplicate_deps
+      ;;
+  esac
+
+  # Having warned about all mis-specified options, bail out if
+  # anything was wrong.
+  $exit_cmd $EXIT_FAILURE
+}
+
+# func_check_version_match
+# Ensure that we are using m4 macros, and libtool script from the same
+# release of libtool.
+func_check_version_match ()
+{
+  if test "$package_revision" != "$macro_revision"; then
+    if test "$VERSION" != "$macro_version"; then
+      if test -z "$macro_version"; then
+        cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from an older release.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+      else
+        cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+      fi
+    else
+      cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
+$progname: but the definition of this LT_INIT comes from revision $macro_revision.
+$progname: You should recreate aclocal.m4 with macros from revision $package_revision
+$progname: of $PACKAGE $VERSION and run autoconf again.
+_LT_EOF
+    fi
+
+    exit $EXIT_MISMATCH
+  fi
+}
+
+
+## ----------- ##
+##    Main.    ##
+## ----------- ##
+
+$opt_help || {
+  # Sanity checks first:
+  func_check_version_match
+
+  if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
+    func_fatal_configuration "not configured to build any kind of library"
+  fi
+
+  test -z "$mode" && func_fatal_error "error: you must specify a MODE."
+
+
+  # Darwin sucks
+  eval std_shrext=\"$shrext_cmds\"
+
+
+  # Only execute mode is allowed to have -dlopen flags.
+  if test -n "$execute_dlfiles" && test "$mode" != execute; then
+    func_error "unrecognized option \`-dlopen'"
+    $ECHO "$help" 1>&2
+    exit $EXIT_FAILURE
+  fi
+
+  # Change the help message to a mode-specific one.
+  generic_help="$help"
+  help="Try \`$progname --help --mode=$mode' for more information."
+}
+
+
+# func_lalib_p file
+# True iff FILE is a libtool `.la' library or `.lo' object file.
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_lalib_p ()
+{
+    test -f "$1" &&
+      $SED -e 4q "$1" 2>/dev/null \
+        | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
+}
+
+# func_lalib_unsafe_p file
+# True iff FILE is a libtool `.la' library or `.lo' object file.
+# This function implements the same check as func_lalib_p without
+# resorting to external programs.  To this end, it redirects stdin and
+# closes it afterwards, without saving the original file descriptor.
+# As a safety measure, use it only where a negative result would be
+# fatal anyway.  Works if `file' does not exist.
+func_lalib_unsafe_p ()
+{
+    lalib_p=no
+    if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
+	for lalib_p_l in 1 2 3 4
+	do
+	    read lalib_p_line
+	    case "$lalib_p_line" in
+		\#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
+	    esac
+	done
+	exec 0<&5 5<&-
+    fi
+    test "$lalib_p" = yes
+}
+
+# func_ltwrapper_script_p file
+# True iff FILE is a libtool wrapper script
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_script_p ()
+{
+    func_lalib_p "$1"
+}
+
+# func_ltwrapper_executable_p file
+# True iff FILE is a libtool wrapper executable
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_executable_p ()
+{
+    func_ltwrapper_exec_suffix=
+    case $1 in
+    *.exe) ;;
+    *) func_ltwrapper_exec_suffix=.exe ;;
+    esac
+    $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
+}
+
+# func_ltwrapper_scriptname file
+# Assumes file is an ltwrapper_executable
+# uses $file to determine the appropriate filename for a
+# temporary ltwrapper_script.
+func_ltwrapper_scriptname ()
+{
+    func_ltwrapper_scriptname_result=""
+    if func_ltwrapper_executable_p "$1"; then
+	func_dirname_and_basename "$1" "" "."
+	func_stripname '' '.exe' "$func_basename_result"
+	func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
+    fi
+}
+
+# func_ltwrapper_p file
+# True iff FILE is a libtool wrapper script or wrapper executable
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_p ()
+{
+    func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
+}
+
+
+# func_execute_cmds commands fail_cmd
+# Execute tilde-delimited COMMANDS.
+# If FAIL_CMD is given, eval that upon failure.
+# FAIL_CMD may read-access the current command in variable CMD!
+func_execute_cmds ()
+{
+    $opt_debug
+    save_ifs=$IFS; IFS='~'
+    for cmd in $1; do
+      IFS=$save_ifs
+      eval cmd=\"$cmd\"
+      func_show_eval "$cmd" "${2-:}"
+    done
+    IFS=$save_ifs
+}
+
+
+# func_source file
+# Source FILE, adding directory component if necessary.
+# Note that it is not necessary on cygwin/mingw to append a dot to
+# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
+# behavior happens only for exec(3), not for open(2)!  Also, sourcing
+# `FILE.' does not work on cygwin managed mounts.
+func_source ()
+{
+    $opt_debug
+    case $1 in
+    */* | *\\*)	. "$1" ;;
+    *)		. "./$1" ;;
+    esac
+}
+
+
+# func_infer_tag arg
+# Infer tagged configuration to use if any are available and
+# if one wasn't chosen via the "--tag" command line option.
+# Only attempt this if the compiler in the base compile
+# command doesn't match the default compiler.
+# arg is usually of the form 'gcc ...'
+func_infer_tag ()
+{
+    $opt_debug
+    if test -n "$available_tags" && test -z "$tagname"; then
+      CC_quoted=
+      for arg in $CC; do
+        func_quote_for_eval "$arg"
+	CC_quoted="$CC_quoted $func_quote_for_eval_result"
+      done
+      case $@ in
+      # Blanks in the command may have been stripped by the calling shell,
+      # but not from the CC environment variable when configure was run.
+      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;;
+      # Blanks at the start of $base_compile will cause this to fail
+      # if we don't check for them as well.
+      *)
+	for z in $available_tags; do
+	  if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
+	    # Evaluate the configuration.
+	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
+	    CC_quoted=
+	    for arg in $CC; do
+	      # Double-quote args containing other shell metacharacters.
+	      func_quote_for_eval "$arg"
+	      CC_quoted="$CC_quoted $func_quote_for_eval_result"
+	    done
+	    case "$@ " in
+	      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*)
+	      # The compiler in the base compile command matches
+	      # the one in the tagged configuration.
+	      # Assume this is the tagged configuration we want.
+	      tagname=$z
+	      break
+	      ;;
+	    esac
+	  fi
+	done
+	# If $tagname still isn't set, then no tagged configuration
+	# was found and let the user know that the "--tag" command
+	# line option must be used.
+	if test -z "$tagname"; then
+	  func_echo "unable to infer tagged configuration"
+	  func_fatal_error "specify a tag with \`--tag'"
+#	else
+#	  func_verbose "using $tagname tagged configuration"
+	fi
+	;;
+      esac
+    fi
+}
+
+
+
+# func_write_libtool_object output_name pic_name nonpic_name
+# Create a libtool object file (analogous to a ".la" file),
+# but don't create it if we're doing a dry run.
+func_write_libtool_object ()
+{
+    write_libobj=${1}
+    if test "$build_libtool_libs" = yes; then
+      write_lobj=\'${2}\'
+    else
+      write_lobj=none
+    fi
+
+    if test "$build_old_libs" = yes; then
+      write_oldobj=\'${3}\'
+    else
+      write_oldobj=none
+    fi
+
+    $opt_dry_run || {
+      cat >${write_libobj}T <<EOF
+# $write_libobj - a libtool object file
+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object=$write_lobj
+
+# Name of the non-PIC object
+non_pic_object=$write_oldobj
+
+EOF
+      $MV "${write_libobj}T" "${write_libobj}"
+    }
+}
+
+# func_mode_compile arg...
+func_mode_compile ()
+{
+    $opt_debug
+    # Get the compilation command and the source file.
+    base_compile=
+    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
+    suppress_opt=yes
+    suppress_output=
+    arg_mode=normal
+    libobj=
+    later=
+    pie_flag=
+
+    for arg
+    do
+      case $arg_mode in
+      arg  )
+	# do not "continue".  Instead, add this to base_compile
+	lastarg="$arg"
+	arg_mode=normal
+	;;
+
+      target )
+	libobj="$arg"
+	arg_mode=normal
+	continue
+	;;
+
+      normal )
+	# Accept any command-line options.
+	case $arg in
+	-o)
+	  test -n "$libobj" && \
+	    func_fatal_error "you cannot specify \`-o' more than once"
+	  arg_mode=target
+	  continue
+	  ;;
+
+	-pie | -fpie | -fPIE)
+          pie_flag="$pie_flag $arg"
+	  continue
+	  ;;
+
+	-shared | -static | -prefer-pic | -prefer-non-pic)
+	  later="$later $arg"
+	  continue
+	  ;;
+
+	-no-suppress)
+	  suppress_opt=no
+	  continue
+	  ;;
+
+	-Xcompiler)
+	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
+	  continue      #  The current "srcfile" will either be retained or
+	  ;;            #  replaced later.  I would guess that would be a bug.
+
+	-Wc,*)
+	  func_stripname '-Wc,' '' "$arg"
+	  args=$func_stripname_result
+	  lastarg=
+	  save_ifs="$IFS"; IFS=','
+	  for arg in $args; do
+	    IFS="$save_ifs"
+	    func_quote_for_eval "$arg"
+	    lastarg="$lastarg $func_quote_for_eval_result"
+	  done
+	  IFS="$save_ifs"
+	  func_stripname ' ' '' "$lastarg"
+	  lastarg=$func_stripname_result
+
+	  # Add the arguments to base_compile.
+	  base_compile="$base_compile $lastarg"
+	  continue
+	  ;;
+
+	*)
+	  # Accept the current argument as the source file.
+	  # The previous "srcfile" becomes the current argument.
+	  #
+	  lastarg="$srcfile"
+	  srcfile="$arg"
+	  ;;
+	esac  #  case $arg
+	;;
+      esac    #  case $arg_mode
+
+      # Aesthetically quote the previous argument.
+      func_quote_for_eval "$lastarg"
+      base_compile="$base_compile $func_quote_for_eval_result"
+    done # for arg
+
+    case $arg_mode in
+    arg)
+      func_fatal_error "you must specify an argument for -Xcompile"
+      ;;
+    target)
+      func_fatal_error "you must specify a target with \`-o'"
+      ;;
+    *)
+      # Get the name of the library object.
+      test -z "$libobj" && {
+	func_basename "$srcfile"
+	libobj="$func_basename_result"
+      }
+      ;;
+    esac
+
+    # Recognize several different file suffixes.
+    # If the user specifies -o file.o, it is replaced with file.lo
+    case $libobj in
+    *.[cCFSifmso] | \
+    *.ada | *.adb | *.ads | *.asm | \
+    *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
+    *.[fF][09]? | *.for | *.java | *.obj | *.sx)
+      func_xform "$libobj"
+      libobj=$func_xform_result
+      ;;
+    esac
+
+    case $libobj in
+    *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
+    *)
+      func_fatal_error "cannot determine name of library object from \`$libobj'"
+      ;;
+    esac
+
+    func_infer_tag $base_compile
+
+    for arg in $later; do
+      case $arg in
+      -shared)
+	test "$build_libtool_libs" != yes && \
+	  func_fatal_configuration "can not build a shared library"
+	build_old_libs=no
+	continue
+	;;
+
+      -static)
+	build_libtool_libs=no
+	build_old_libs=yes
+	continue
+	;;
+
+      -prefer-pic)
+	pic_mode=yes
+	continue
+	;;
+
+      -prefer-non-pic)
+	pic_mode=no
+	continue
+	;;
+      esac
+    done
+
+    func_quote_for_eval "$libobj"
+    test "X$libobj" != "X$func_quote_for_eval_result" \
+      && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'	 &()|`$[]' \
+      && func_warning "libobj name \`$libobj' may not contain shell special characters."
+    func_dirname_and_basename "$obj" "/" ""
+    objname="$func_basename_result"
+    xdir="$func_dirname_result"
+    lobj=${xdir}$objdir/$objname
+
+    test -z "$base_compile" && \
+      func_fatal_help "you must specify a compilation command"
+
+    # Delete any leftover library objects.
+    if test "$build_old_libs" = yes; then
+      removelist="$obj $lobj $libobj ${libobj}T"
+    else
+      removelist="$lobj $libobj ${libobj}T"
+    fi
+
+    # On Cygwin there's no "real" PIC flag so we must build both object types
+    case $host_os in
+    cygwin* | mingw* | pw32* | os2* | cegcc*)
+      pic_mode=default
+      ;;
+    esac
+    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
+      # non-PIC code in shared libraries is not supported
+      pic_mode=default
+    fi
+
+    # Calculate the filename of the output object if compiler does
+    # not support -o with -c
+    if test "$compiler_c_o" = no; then
+      output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
+      lockfile="$output_obj.lock"
+    else
+      output_obj=
+      need_locks=no
+      lockfile=
+    fi
+
+    # Lock this critical section if it is needed
+    # We use this script file to make the link, it avoids creating a new file
+    if test "$need_locks" = yes; then
+      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
+	func_echo "Waiting for $lockfile to be removed"
+	sleep 2
+      done
+    elif test "$need_locks" = warn; then
+      if test -f "$lockfile"; then
+	$ECHO "\
+*** ERROR, $lockfile exists and contains:
+`cat $lockfile 2>/dev/null`
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$opt_dry_run || $RM $removelist
+	exit $EXIT_FAILURE
+      fi
+      removelist="$removelist $output_obj"
+      $ECHO "$srcfile" > "$lockfile"
+    fi
+
+    $opt_dry_run || $RM $removelist
+    removelist="$removelist $lockfile"
+    trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
+
+    if test -n "$fix_srcfile_path"; then
+      eval srcfile=\"$fix_srcfile_path\"
+    fi
+    func_quote_for_eval "$srcfile"
+    qsrcfile=$func_quote_for_eval_result
+
+    # Only build a PIC object if we are building libtool libraries.
+    if test "$build_libtool_libs" = yes; then
+      # Without this assignment, base_compile gets emptied.
+      fbsd_hideous_sh_bug=$base_compile
+
+      if test "$pic_mode" != no; then
+	command="$base_compile $qsrcfile $pic_flag"
+      else
+	# Don't build PIC code
+	command="$base_compile $qsrcfile"
+      fi
+
+      func_mkdir_p "$xdir$objdir"
+
+      if test -z "$output_obj"; then
+	# Place PIC objects in $objdir
+	command="$command -o $lobj"
+      fi
+
+      func_show_eval_locale "$command"	\
+          'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
+
+      if test "$need_locks" = warn &&
+	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+	$ECHO "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$opt_dry_run || $RM $removelist
+	exit $EXIT_FAILURE
+      fi
+
+      # Just move the object if needed, then go on to compile the next one
+      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
+	func_show_eval '$MV "$output_obj" "$lobj"' \
+	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
+      fi
+
+      # Allow error messages only from the first compilation.
+      if test "$suppress_opt" = yes; then
+	suppress_output=' >/dev/null 2>&1'
+      fi
+    fi
+
+    # Only build a position-dependent object if we build old libraries.
+    if test "$build_old_libs" = yes; then
+      if test "$pic_mode" != yes; then
+	# Don't build PIC code
+	command="$base_compile $qsrcfile$pie_flag"
+      else
+	command="$base_compile $qsrcfile $pic_flag"
+      fi
+      if test "$compiler_c_o" = yes; then
+	command="$command -o $obj"
+      fi
+
+      # Suppress compiler output if we already did a PIC compilation.
+      command="$command$suppress_output"
+      func_show_eval_locale "$command" \
+        '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
+
+      if test "$need_locks" = warn &&
+	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+	$ECHO "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$opt_dry_run || $RM $removelist
+	exit $EXIT_FAILURE
+      fi
+
+      # Just move the object if needed
+      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
+	func_show_eval '$MV "$output_obj" "$obj"' \
+	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
+      fi
+    fi
+
+    $opt_dry_run || {
+      func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
+
+      # Unlock the critical section if it was locked
+      if test "$need_locks" != no; then
+	removelist=$lockfile
+        $RM "$lockfile"
+      fi
+    }
+
+    exit $EXIT_SUCCESS
+}
+
+$opt_help || {
+test "$mode" = compile && func_mode_compile ${1+"$@"}
+}
+
+func_mode_help ()
+{
+    # We need to display help for each of the modes.
+    case $mode in
+      "")
+        # Generic help is extracted from the usage comments
+        # at the start of this file.
+        func_help
+        ;;
+
+      clean)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
+
+Remove files from the build directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, object or program, all the files associated
+with it are deleted. Otherwise, only FILE itself is deleted using RM."
+        ;;
+
+      compile)
+      $ECHO \
+"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
+
+Compile a source file into a libtool library object.
+
+This mode accepts the following additional options:
+
+  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
+  -no-suppress      do not suppress compiler output for multiple passes
+  -prefer-pic       try to building PIC objects only
+  -prefer-non-pic   try to building non-PIC objects only
+  -shared           do not build a \`.o' file suitable for static linking
+  -static           only build a \`.o' file suitable for static linking
+
+COMPILE-COMMAND is a command to be used in creating a \`standard' object file
+from the given SOURCEFILE.
+
+The output file name is determined by removing the directory component from
+SOURCEFILE, then substituting the C source code suffix \`.c' with the
+library object suffix, \`.lo'."
+        ;;
+
+      execute)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
+
+Automatically set library path, then run a program.
+
+This mode accepts the following additional options:
+
+  -dlopen FILE      add the directory containing FILE to the library path
+
+This mode sets the library path environment variable according to \`-dlopen'
+flags.
+
+If any of the ARGS are libtool executable wrappers, then they are translated
+into their corresponding uninstalled binary, and any of their required library
+directories are added to the library path.
+
+Then, COMMAND is executed, with ARGS as arguments."
+        ;;
+
+      finish)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
+
+Complete the installation of libtool libraries.
+
+Each LIBDIR is a directory that contains libtool libraries.
+
+The commands that this mode executes may require superuser privileges.  Use
+the \`--dry-run' option if you just want to see what would be executed."
+        ;;
+
+      install)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
+
+Install executables or libraries.
+
+INSTALL-COMMAND is the installation command.  The first component should be
+either the \`install' or \`cp' program.
+
+The following components of INSTALL-COMMAND are treated specially:
+
+  -inst-prefix PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
+
+The rest of the components are interpreted as arguments to that command (only
+BSD-compatible install options are recognized)."
+        ;;
+
+      link)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
+
+Link object files or libraries together to form another library, or to
+create an executable program.
+
+LINK-COMMAND is a command using the C compiler that you would use to create
+a program from several object files.
+
+The following components of LINK-COMMAND are treated specially:
+
+  -all-static       do not do any dynamic linking at all
+  -avoid-version    do not add a version suffix if possible
+  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
+  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
+  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
+  -export-symbols SYMFILE
+                    try to export only the symbols listed in SYMFILE
+  -export-symbols-regex REGEX
+                    try to export only the symbols matching REGEX
+  -LLIBDIR          search LIBDIR for required installed libraries
+  -lNAME            OUTPUT-FILE requires the installed library libNAME
+  -module           build a library that can dlopened
+  -no-fast-install  disable the fast-install mode
+  -no-install       link a not-installable executable
+  -no-undefined     declare that a library does not refer to external symbols
+  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
+  -objectlist FILE  Use a list of object files found in FILE to specify objects
+  -precious-files-regex REGEX
+                    don't remove output files matching REGEX
+  -release RELEASE  specify package release information
+  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
+  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
+  -shared           only do dynamic linking of libtool libraries
+  -shrext SUFFIX    override the standard shared library file extension
+  -static           do not do any dynamic linking of uninstalled libtool libraries
+  -static-libtool-libs
+                    do not do any dynamic linking of libtool libraries
+  -version-info CURRENT[:REVISION[:AGE]]
+                    specify library version info [each variable defaults to 0]
+  -weak LIBNAME     declare that the target provides the LIBNAME interface
+
+All other options (arguments beginning with \`-') are ignored.
+
+Every other argument is treated as a filename.  Files ending in \`.la' are
+treated as uninstalled libtool libraries, other files are standard or library
+object files.
+
+If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
+only library objects (\`.lo' files) may be specified, and \`-rpath' is
+required, except when creating a convenience library.
+
+If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
+using \`ar' and \`ranlib', or on Windows using \`lib'.
+
+If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
+is created, otherwise an executable program is created."
+        ;;
+
+      uninstall)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
+
+Remove libraries from an installation directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, all the files associated with it are deleted.
+Otherwise, only FILE itself is deleted using RM."
+        ;;
+
+      *)
+        func_fatal_help "invalid operation mode \`$mode'"
+        ;;
+    esac
+
+    $ECHO
+    $ECHO "Try \`$progname --help' for more information about other modes."
+
+    exit $?
+}
+
+  # Now that we've collected a possible --mode arg, show help if necessary
+  $opt_help && func_mode_help
+
+
+# func_mode_execute arg...
+func_mode_execute ()
+{
+    $opt_debug
+    # The first argument is the command name.
+    cmd="$nonopt"
+    test -z "$cmd" && \
+      func_fatal_help "you must specify a COMMAND"
+
+    # Handle -dlopen flags immediately.
+    for file in $execute_dlfiles; do
+      test -f "$file" \
+	|| func_fatal_help "\`$file' is not a file"
+
+      dir=
+      case $file in
+      *.la)
+	# Check to see that this really is a libtool archive.
+	func_lalib_unsafe_p "$file" \
+	  || func_fatal_help "\`$lib' is not a valid libtool archive"
+
+	# Read the libtool library.
+	dlname=
+	library_names=
+	func_source "$file"
+
+	# Skip this library if it cannot be dlopened.
+	if test -z "$dlname"; then
+	  # Warn if it was a shared library.
+	  test -n "$library_names" && \
+	    func_warning "\`$file' was not linked with \`-export-dynamic'"
+	  continue
+	fi
+
+	func_dirname "$file" "" "."
+	dir="$func_dirname_result"
+
+	if test -f "$dir/$objdir/$dlname"; then
+	  dir="$dir/$objdir"
+	else
+	  if test ! -f "$dir/$dlname"; then
+	    func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
+	  fi
+	fi
+	;;
+
+      *.lo)
+	# Just add the directory containing the .lo file.
+	func_dirname "$file" "" "."
+	dir="$func_dirname_result"
+	;;
+
+      *)
+	func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
+	continue
+	;;
+      esac
+
+      # Get the absolute pathname.
+      absdir=`cd "$dir" && pwd`
+      test -n "$absdir" && dir="$absdir"
+
+      # Now add the directory to shlibpath_var.
+      if eval "test -z \"\$$shlibpath_var\""; then
+	eval "$shlibpath_var=\"\$dir\""
+      else
+	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
+      fi
+    done
+
+    # This variable tells wrapper scripts just to set shlibpath_var
+    # rather than running their programs.
+    libtool_execute_magic="$magic"
+
+    # Check if any of the arguments is a wrapper script.
+    args=
+    for file
+    do
+      case $file in
+      -*) ;;
+      *)
+	# Do a test to see if this is really a libtool program.
+	if func_ltwrapper_script_p "$file"; then
+	  func_source "$file"
+	  # Transform arg to wrapped name.
+	  file="$progdir/$program"
+	elif func_ltwrapper_executable_p "$file"; then
+	  func_ltwrapper_scriptname "$file"
+	  func_source "$func_ltwrapper_scriptname_result"
+	  # Transform arg to wrapped name.
+	  file="$progdir/$program"
+	fi
+	;;
+      esac
+      # Quote arguments (to preserve shell metacharacters).
+      func_quote_for_eval "$file"
+      args="$args $func_quote_for_eval_result"
+    done
+
+    if test "X$opt_dry_run" = Xfalse; then
+      if test -n "$shlibpath_var"; then
+	# Export the shlibpath_var.
+	eval "export $shlibpath_var"
+      fi
+
+      # Restore saved environment variables
+      for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+      do
+	eval "if test \"\${save_$lt_var+set}\" = set; then
+                $lt_var=\$save_$lt_var; export $lt_var
+	      else
+		$lt_unset $lt_var
+	      fi"
+      done
+
+      # Now prepare to actually exec the command.
+      exec_cmd="\$cmd$args"
+    else
+      # Display what would be done.
+      if test -n "$shlibpath_var"; then
+	eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
+	$ECHO "export $shlibpath_var"
+      fi
+      $ECHO "$cmd$args"
+      exit $EXIT_SUCCESS
+    fi
+}
+
+test "$mode" = execute && func_mode_execute ${1+"$@"}
+
+
+# func_mode_finish arg...
+func_mode_finish ()
+{
+    $opt_debug
+    libdirs="$nonopt"
+    admincmds=
+
+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+      for dir
+      do
+	libdirs="$libdirs $dir"
+      done
+
+      for libdir in $libdirs; do
+	if test -n "$finish_cmds"; then
+	  # Do each command in the finish commands.
+	  func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
+'"$cmd"'"'
+	fi
+	if test -n "$finish_eval"; then
+	  # Do the single finish_eval.
+	  eval cmds=\"$finish_eval\"
+	  $opt_dry_run || eval "$cmds" || admincmds="$admincmds
+       $cmds"
+	fi
+      done
+    fi
+
+    # Exit here if they wanted silent mode.
+    $opt_silent && exit $EXIT_SUCCESS
+
+    $ECHO "X----------------------------------------------------------------------" | $Xsed
+    $ECHO "Libraries have been installed in:"
+    for libdir in $libdirs; do
+      $ECHO "   $libdir"
+    done
+    $ECHO
+    $ECHO "If you ever happen to want to link against installed libraries"
+    $ECHO "in a given directory, LIBDIR, you must either use libtool, and"
+    $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'"
+    $ECHO "flag during linking and do at least one of the following:"
+    if test -n "$shlibpath_var"; then
+      $ECHO "   - add LIBDIR to the \`$shlibpath_var' environment variable"
+      $ECHO "     during execution"
+    fi
+    if test -n "$runpath_var"; then
+      $ECHO "   - add LIBDIR to the \`$runpath_var' environment variable"
+      $ECHO "     during linking"
+    fi
+    if test -n "$hardcode_libdir_flag_spec"; then
+      libdir=LIBDIR
+      eval flag=\"$hardcode_libdir_flag_spec\"
+
+      $ECHO "   - use the \`$flag' linker flag"
+    fi
+    if test -n "$admincmds"; then
+      $ECHO "   - have your system administrator run these commands:$admincmds"
+    fi
+    if test -f /etc/ld.so.conf; then
+      $ECHO "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+    fi
+    $ECHO
+
+    $ECHO "See any operating system documentation about shared libraries for"
+    case $host in
+      solaris2.[6789]|solaris2.1[0-9])
+        $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual"
+	$ECHO "pages."
+	;;
+      *)
+        $ECHO "more information, such as the ld(1) and ld.so(8) manual pages."
+        ;;
+    esac
+    $ECHO "X----------------------------------------------------------------------" | $Xsed
+    exit $EXIT_SUCCESS
+}
+
+test "$mode" = finish && func_mode_finish ${1+"$@"}
+
+
+# func_mode_install arg...
+func_mode_install ()
+{
+    $opt_debug
+    # There may be an optional sh(1) argument at the beginning of
+    # install_prog (especially on Windows NT).
+    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
+       # Allow the use of GNU shtool's install command.
+       $ECHO "X$nonopt" | $GREP shtool >/dev/null; then
+      # Aesthetically quote it.
+      func_quote_for_eval "$nonopt"
+      install_prog="$func_quote_for_eval_result "
+      arg=$1
+      shift
+    else
+      install_prog=
+      arg=$nonopt
+    fi
+
+    # The real first argument should be the name of the installation program.
+    # Aesthetically quote it.
+    func_quote_for_eval "$arg"
+    install_prog="$install_prog$func_quote_for_eval_result"
+
+    # We need to accept at least all the BSD install flags.
+    dest=
+    files=
+    opts=
+    prev=
+    install_type=
+    isdir=no
+    stripme=
+    for arg
+    do
+      if test -n "$dest"; then
+	files="$files $dest"
+	dest=$arg
+	continue
+      fi
+
+      case $arg in
+      -d) isdir=yes ;;
+      -f)
+	case " $install_prog " in
+	*[\\\ /]cp\ *) ;;
+	*) prev=$arg ;;
+	esac
+	;;
+      -g | -m | -o)
+	prev=$arg
+	;;
+      -s)
+	stripme=" -s"
+	continue
+	;;
+      -*)
+	;;
+      *)
+	# If the previous option needed an argument, then skip it.
+	if test -n "$prev"; then
+	  prev=
+	else
+	  dest=$arg
+	  continue
+	fi
+	;;
+      esac
+
+      # Aesthetically quote the argument.
+      func_quote_for_eval "$arg"
+      install_prog="$install_prog $func_quote_for_eval_result"
+    done
+
+    test -z "$install_prog" && \
+      func_fatal_help "you must specify an install program"
+
+    test -n "$prev" && \
+      func_fatal_help "the \`$prev' option requires an argument"
+
+    if test -z "$files"; then
+      if test -z "$dest"; then
+	func_fatal_help "no file or destination specified"
+      else
+	func_fatal_help "you must specify a destination"
+      fi
+    fi
+
+    # Strip any trailing slash from the destination.
+    func_stripname '' '/' "$dest"
+    dest=$func_stripname_result
+
+    # Check to see that the destination is a directory.
+    test -d "$dest" && isdir=yes
+    if test "$isdir" = yes; then
+      destdir="$dest"
+      destname=
+    else
+      func_dirname_and_basename "$dest" "" "."
+      destdir="$func_dirname_result"
+      destname="$func_basename_result"
+
+      # Not a directory, so check to see that there is only one file specified.
+      set dummy $files; shift
+      test "$#" -gt 1 && \
+	func_fatal_help "\`$dest' is not a directory"
+    fi
+    case $destdir in
+    [\\/]* | [A-Za-z]:[\\/]*) ;;
+    *)
+      for file in $files; do
+	case $file in
+	*.lo) ;;
+	*)
+	  func_fatal_help "\`$destdir' must be an absolute directory name"
+	  ;;
+	esac
+      done
+      ;;
+    esac
+
+    # This variable tells wrapper scripts just to set variables rather
+    # than running their programs.
+    libtool_install_magic="$magic"
+
+    staticlibs=
+    future_libdirs=
+    current_libdirs=
+    for file in $files; do
+
+      # Do each installation.
+      case $file in
+      *.$libext)
+	# Do the static libraries later.
+	staticlibs="$staticlibs $file"
+	;;
+
+      *.la)
+	# Check to see that this really is a libtool archive.
+	func_lalib_unsafe_p "$file" \
+	  || func_fatal_help "\`$file' is not a valid libtool archive"
+
+	library_names=
+	old_library=
+	relink_command=
+	func_source "$file"
+
+	# Add the libdir to current_libdirs if it is the destination.
+	if test "X$destdir" = "X$libdir"; then
+	  case "$current_libdirs " in
+	  *" $libdir "*) ;;
+	  *) current_libdirs="$current_libdirs $libdir" ;;
+	  esac
+	else
+	  # Note the libdir as a future libdir.
+	  case "$future_libdirs " in
+	  *" $libdir "*) ;;
+	  *) future_libdirs="$future_libdirs $libdir" ;;
+	  esac
+	fi
+
+	func_dirname "$file" "/" ""
+	dir="$func_dirname_result"
+	dir="$dir$objdir"
+
+	if test -n "$relink_command"; then
+	  # Determine the prefix the user has applied to our future dir.
+	  inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"`
+
+	  # Don't allow the user to place us outside of our expected
+	  # location b/c this prevents finding dependent libraries that
+	  # are installed to the same prefix.
+	  # At present, this check doesn't affect windows .dll's that
+	  # are installed into $libdir/../bin (currently, that works fine)
+	  # but it's something to keep an eye on.
+	  test "$inst_prefix_dir" = "$destdir" && \
+	    func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
+
+	  if test -n "$inst_prefix_dir"; then
+	    # Stick the inst_prefix_dir data into the link command.
+	    relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
+	  else
+	    relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"`
+	  fi
+
+	  func_warning "relinking \`$file'"
+	  func_show_eval "$relink_command" \
+	    'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
+	fi
+
+	# See the names of the shared library.
+	set dummy $library_names; shift
+	if test -n "$1"; then
+	  realname="$1"
+	  shift
+
+	  srcname="$realname"
+	  test -n "$relink_command" && srcname="$realname"T
+
+	  # Install the shared library and build the symlinks.
+	  func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \
+	      'exit $?'
+	  tstripme="$stripme"
+	  case $host_os in
+	  cygwin* | mingw* | pw32* | cegcc*)
+	    case $realname in
+	    *.dll.a)
+	      tstripme=""
+	      ;;
+	    esac
+	    ;;
+	  esac
+	  if test -n "$tstripme" && test -n "$striplib"; then
+	    func_show_eval "$striplib $destdir/$realname" 'exit $?'
+	  fi
+
+	  if test "$#" -gt 0; then
+	    # Delete the old symlinks, and create new ones.
+	    # Try `ln -sf' first, because the `ln' binary might depend on
+	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
+	    # so we also need to try rm && ln -s.
+	    for linkname
+	    do
+	      test "$linkname" != "$realname" \
+		&& func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
+	    done
+	  fi
+
+	  # Do each command in the postinstall commands.
+	  lib="$destdir/$realname"
+	  func_execute_cmds "$postinstall_cmds" 'exit $?'
+	fi
+
+	# Install the pseudo-library for information purposes.
+	func_basename "$file"
+	name="$func_basename_result"
+	instname="$dir/$name"i
+	func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
+
+	# Maybe install the static library, too.
+	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
+	;;
+
+      *.lo)
+	# Install (i.e. copy) a libtool object.
+
+	# Figure out destination file name, if it wasn't already specified.
+	if test -n "$destname"; then
+	  destfile="$destdir/$destname"
+	else
+	  func_basename "$file"
+	  destfile="$func_basename_result"
+	  destfile="$destdir/$destfile"
+	fi
+
+	# Deduce the name of the destination old-style object file.
+	case $destfile in
+	*.lo)
+	  func_lo2o "$destfile"
+	  staticdest=$func_lo2o_result
+	  ;;
+	*.$objext)
+	  staticdest="$destfile"
+	  destfile=
+	  ;;
+	*)
+	  func_fatal_help "cannot copy a libtool object to \`$destfile'"
+	  ;;
+	esac
+
+	# Install the libtool object if requested.
+	test -n "$destfile" && \
+	  func_show_eval "$install_prog $file $destfile" 'exit $?'
+
+	# Install the old object if enabled.
+	if test "$build_old_libs" = yes; then
+	  # Deduce the name of the old-style object file.
+	  func_lo2o "$file"
+	  staticobj=$func_lo2o_result
+	  func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
+	fi
+	exit $EXIT_SUCCESS
+	;;
+
+      *)
+	# Figure out destination file name, if it wasn't already specified.
+	if test -n "$destname"; then
+	  destfile="$destdir/$destname"
+	else
+	  func_basename "$file"
+	  destfile="$func_basename_result"
+	  destfile="$destdir/$destfile"
+	fi
+
+	# If the file is missing, and there is a .exe on the end, strip it
+	# because it is most likely a libtool script we actually want to
+	# install
+	stripped_ext=""
+	case $file in
+	  *.exe)
+	    if test ! -f "$file"; then
+	      func_stripname '' '.exe' "$file"
+	      file=$func_stripname_result
+	      stripped_ext=".exe"
+	    fi
+	    ;;
+	esac
+
+	# Do a test to see if this is really a libtool program.
+	case $host in
+	*cygwin* | *mingw*)
+	    if func_ltwrapper_executable_p "$file"; then
+	      func_ltwrapper_scriptname "$file"
+	      wrapper=$func_ltwrapper_scriptname_result
+	    else
+	      func_stripname '' '.exe' "$file"
+	      wrapper=$func_stripname_result
+	    fi
+	    ;;
+	*)
+	    wrapper=$file
+	    ;;
+	esac
+	if func_ltwrapper_script_p "$wrapper"; then
+	  notinst_deplibs=
+	  relink_command=
+
+	  func_source "$wrapper"
+
+	  # Check the variables that should have been set.
+	  test -z "$generated_by_libtool_version" && \
+	    func_fatal_error "invalid libtool wrapper script \`$wrapper'"
+
+	  finalize=yes
+	  for lib in $notinst_deplibs; do
+	    # Check to see that each library is installed.
+	    libdir=
+	    if test -f "$lib"; then
+	      func_source "$lib"
+	    fi
+	    libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
+	    if test -n "$libdir" && test ! -f "$libfile"; then
+	      func_warning "\`$lib' has not been installed in \`$libdir'"
+	      finalize=no
+	    fi
+	  done
+
+	  relink_command=
+	  func_source "$wrapper"
+
+	  outputname=
+	  if test "$fast_install" = no && test -n "$relink_command"; then
+	    $opt_dry_run || {
+	      if test "$finalize" = yes; then
+	        tmpdir=`func_mktempdir`
+		func_basename "$file$stripped_ext"
+		file="$func_basename_result"
+	        outputname="$tmpdir/$file"
+	        # Replace the output file specification.
+	        relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
+
+	        $opt_silent || {
+	          func_quote_for_expand "$relink_command"
+		  eval "func_echo $func_quote_for_expand_result"
+	        }
+	        if eval "$relink_command"; then :
+	          else
+		  func_error "error: relink \`$file' with the above command before installing it"
+		  $opt_dry_run || ${RM}r "$tmpdir"
+		  continue
+	        fi
+	        file="$outputname"
+	      else
+	        func_warning "cannot relink \`$file'"
+	      fi
+	    }
+	  else
+	    # Install the binary that we compiled earlier.
+	    file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
+	  fi
+	fi
+
+	# remove .exe since cygwin /usr/bin/install will append another
+	# one anyway
+	case $install_prog,$host in
+	*/usr/bin/install*,*cygwin*)
+	  case $file:$destfile in
+	  *.exe:*.exe)
+	    # this is ok
+	    ;;
+	  *.exe:*)
+	    destfile=$destfile.exe
+	    ;;
+	  *:*.exe)
+	    func_stripname '' '.exe' "$destfile"
+	    destfile=$func_stripname_result
+	    ;;
+	  esac
+	  ;;
+	esac
+	func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
+	$opt_dry_run || if test -n "$outputname"; then
+	  ${RM}r "$tmpdir"
+	fi
+	;;
+      esac
+    done
+
+    for file in $staticlibs; do
+      func_basename "$file"
+      name="$func_basename_result"
+
+      # Set up the ranlib parameters.
+      oldlib="$destdir/$name"
+
+      func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
+
+      if test -n "$stripme" && test -n "$old_striplib"; then
+	func_show_eval "$old_striplib $oldlib" 'exit $?'
+      fi
+
+      # Do each command in the postinstall commands.
+      func_execute_cmds "$old_postinstall_cmds" 'exit $?'
+    done
+
+    test -n "$future_libdirs" && \
+      func_warning "remember to run \`$progname --finish$future_libdirs'"
+
+    if test -n "$current_libdirs"; then
+      # Maybe just do a dry run.
+      $opt_dry_run && current_libdirs=" -n$current_libdirs"
+      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
+    else
+      exit $EXIT_SUCCESS
+    fi
+}
+
+test "$mode" = install && func_mode_install ${1+"$@"}
+
+
+# func_generate_dlsyms outputname originator pic_p
+# Extract symbols from dlprefiles and create ${outputname}S.o with
+# a dlpreopen symbol table.
+func_generate_dlsyms ()
+{
+    $opt_debug
+    my_outputname="$1"
+    my_originator="$2"
+    my_pic_p="${3-no}"
+    my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
+    my_dlsyms=
+
+    if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+      if test -n "$NM" && test -n "$global_symbol_pipe"; then
+	my_dlsyms="${my_outputname}S.c"
+      else
+	func_error "not configured to extract global symbols from dlpreopened files"
+      fi
+    fi
+
+    if test -n "$my_dlsyms"; then
+      case $my_dlsyms in
+      "") ;;
+      *.c)
+	# Discover the nlist of each of the dlfiles.
+	nlist="$output_objdir/${my_outputname}.nm"
+
+	func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
+
+	# Parse the name list into a source file.
+	func_verbose "creating $output_objdir/$my_dlsyms"
+
+	$opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
+/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
+/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
+
+#ifdef __cplusplus
+extern \"C\" {
+#endif
+
+/* External symbol declarations for the compiler. */\
+"
+
+	if test "$dlself" = yes; then
+	  func_verbose "generating symbol list for \`$output'"
+
+	  $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
+
+	  # Add our own program objects to the symbol list.
+	  progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	  for progfile in $progfiles; do
+	    func_verbose "extracting global C symbols from \`$progfile'"
+	    $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
+	  done
+
+	  if test -n "$exclude_expsyms"; then
+	    $opt_dry_run || {
+	      eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
+	      eval '$MV "$nlist"T "$nlist"'
+	    }
+	  fi
+
+	  if test -n "$export_symbols_regex"; then
+	    $opt_dry_run || {
+	      eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
+	      eval '$MV "$nlist"T "$nlist"'
+	    }
+	  fi
+
+	  # Prepare the list of exported symbols
+	  if test -z "$export_symbols"; then
+	    export_symbols="$output_objdir/$outputname.exp"
+	    $opt_dry_run || {
+	      $RM $export_symbols
+	      eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+	      case $host in
+	      *cygwin* | *mingw* | *cegcc* )
+                eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+                eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
+	        ;;
+	      esac
+	    }
+	  else
+	    $opt_dry_run || {
+	      eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
+	      eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
+	      eval '$MV "$nlist"T "$nlist"'
+	      case $host in
+	        *cygwin | *mingw* | *cegcc* )
+	          eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+	          eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
+	          ;;
+	      esac
+	    }
+	  fi
+	fi
+
+	for dlprefile in $dlprefiles; do
+	  func_verbose "extracting global C symbols from \`$dlprefile'"
+	  func_basename "$dlprefile"
+	  name="$func_basename_result"
+	  $opt_dry_run || {
+	    eval '$ECHO ": $name " >> "$nlist"'
+	    eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+	  }
+	done
+
+	$opt_dry_run || {
+	  # Make sure we have at least an empty file.
+	  test -f "$nlist" || : > "$nlist"
+
+	  if test -n "$exclude_expsyms"; then
+	    $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
+	    $MV "$nlist"T "$nlist"
+	  fi
+
+	  # Try sorting and uniquifying the output.
+	  if $GREP -v "^: " < "$nlist" |
+	      if sort -k 3 </dev/null >/dev/null 2>&1; then
+		sort -k 3
+	      else
+		sort +2
+	      fi |
+	      uniq > "$nlist"S; then
+	    :
+	  else
+	    $GREP -v "^: " < "$nlist" > "$nlist"S
+	  fi
+
+	  if test -f "$nlist"S; then
+	    eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
+	  else
+	    $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms"
+	  fi
+
+	  $ECHO >> "$output_objdir/$my_dlsyms" "\
+
+/* The mapping between symbol names and symbols.  */
+typedef struct {
+  const char *name;
+  void *address;
+} lt_dlsymlist;
+"
+	  case $host in
+	  *cygwin* | *mingw* | *cegcc* )
+	    $ECHO >> "$output_objdir/$my_dlsyms" "\
+/* DATA imports from DLLs on WIN32 con't be const, because
+   runtime relocations are performed -- see ld's documentation
+   on pseudo-relocs.  */"
+	    lt_dlsym_const= ;;
+	  *osf5*)
+	    echo >> "$output_objdir/$my_dlsyms" "\
+/* This system does not cope well with relocations in const data */"
+	    lt_dlsym_const= ;;
+	  *)
+	    lt_dlsym_const=const ;;
+	  esac
+
+	  $ECHO >> "$output_objdir/$my_dlsyms" "\
+extern $lt_dlsym_const lt_dlsymlist
+lt_${my_prefix}_LTX_preloaded_symbols[];
+$lt_dlsym_const lt_dlsymlist
+lt_${my_prefix}_LTX_preloaded_symbols[] =
+{\
+  { \"$my_originator\", (void *) 0 },"
+
+	  case $need_lib_prefix in
+	  no)
+	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
+	    ;;
+	  *)
+	    eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
+	    ;;
+	  esac
+	  $ECHO >> "$output_objdir/$my_dlsyms" "\
+  {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+  return lt_${my_prefix}_LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif\
+"
+	} # !$opt_dry_run
+
+	pic_flag_for_symtable=
+	case "$compile_command " in
+	*" -static "*) ;;
+	*)
+	  case $host in
+	  # compiling the symbol table file with pic_flag works around
+	  # a FreeBSD bug that causes programs to crash when -lm is
+	  # linked before any other PIC object.  But we must not use
+	  # pic_flag when linking with -static.  The problem exists in
+	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
+	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+	    pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
+	  *-*-hpux*)
+	    pic_flag_for_symtable=" $pic_flag"  ;;
+	  *)
+	    if test "X$my_pic_p" != Xno; then
+	      pic_flag_for_symtable=" $pic_flag"
+	    fi
+	    ;;
+	  esac
+	  ;;
+	esac
+	symtab_cflags=
+	for arg in $LTCFLAGS; do
+	  case $arg in
+	  -pie | -fpie | -fPIE) ;;
+	  *) symtab_cflags="$symtab_cflags $arg" ;;
+	  esac
+	done
+
+	# Now compile the dynamic symbol file.
+	func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
+
+	# Clean up the generated files.
+	func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
+
+	# Transform the symbol file into the correct name.
+	symfileobj="$output_objdir/${my_outputname}S.$objext"
+	case $host in
+	*cygwin* | *mingw* | *cegcc* )
+	  if test -f "$output_objdir/$my_outputname.def"; then
+	    compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+	    finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+	  else
+	    compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+	    finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+	  fi
+	  ;;
+	*)
+	  compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+	  finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+	  ;;
+	esac
+	;;
+      *)
+	func_fatal_error "unknown suffix for \`$my_dlsyms'"
+	;;
+      esac
+    else
+      # We keep going just in case the user didn't refer to
+      # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
+      # really was required.
+
+      # Nullify the symbol file.
+      compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
+      finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
+    fi
+}
+
+# func_win32_libid arg
+# return the library type of file 'arg'
+#
+# Need a lot of goo to handle *both* DLLs and import libs
+# Has to be a shell function in order to 'eat' the argument
+# that is supplied when $file_magic_command is called.
+func_win32_libid ()
+{
+  $opt_debug
+  win32_libid_type="unknown"
+  win32_fileres=`file -L $1 2>/dev/null`
+  case $win32_fileres in
+  *ar\ archive\ import\ library*) # definitely import
+    win32_libid_type="x86 archive import"
+    ;;
+  *ar\ archive*) # could be an import, or static
+    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
+       $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
+      win32_nmres=`eval $NM -f posix -A $1 |
+	$SED -n -e '
+	    1,100{
+		/ I /{
+		    s,.*,import,
+		    p
+		    q
+		}
+	    }'`
+      case $win32_nmres in
+      import*)  win32_libid_type="x86 archive import";;
+      *)        win32_libid_type="x86 archive static";;
+      esac
+    fi
+    ;;
+  *DLL*)
+    win32_libid_type="x86 DLL"
+    ;;
+  *executable*) # but shell scripts are "executable" too...
+    case $win32_fileres in
+    *MS\ Windows\ PE\ Intel*)
+      win32_libid_type="x86 DLL"
+      ;;
+    esac
+    ;;
+  esac
+  $ECHO "$win32_libid_type"
+}
+
+
+
+# func_extract_an_archive dir oldlib
+func_extract_an_archive ()
+{
+    $opt_debug
+    f_ex_an_ar_dir="$1"; shift
+    f_ex_an_ar_oldlib="$1"
+    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?'
+    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
+     :
+    else
+      func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
+    fi
+}
+
+
+# func_extract_archives gentop oldlib ...
+func_extract_archives ()
+{
+    $opt_debug
+    my_gentop="$1"; shift
+    my_oldlibs=${1+"$@"}
+    my_oldobjs=""
+    my_xlib=""
+    my_xabs=""
+    my_xdir=""
+
+    for my_xlib in $my_oldlibs; do
+      # Extract the objects.
+      case $my_xlib in
+	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
+	*) my_xabs=`pwd`"/$my_xlib" ;;
+      esac
+      func_basename "$my_xlib"
+      my_xlib="$func_basename_result"
+      my_xlib_u=$my_xlib
+      while :; do
+        case " $extracted_archives " in
+	*" $my_xlib_u "*)
+	  func_arith $extracted_serial + 1
+	  extracted_serial=$func_arith_result
+	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
+	*) break ;;
+	esac
+      done
+      extracted_archives="$extracted_archives $my_xlib_u"
+      my_xdir="$my_gentop/$my_xlib_u"
+
+      func_mkdir_p "$my_xdir"
+
+      case $host in
+      *-darwin*)
+	func_verbose "Extracting $my_xabs"
+	# Do not bother doing anything if just a dry run
+	$opt_dry_run || {
+	  darwin_orig_dir=`pwd`
+	  cd $my_xdir || exit $?
+	  darwin_archive=$my_xabs
+	  darwin_curdir=`pwd`
+	  darwin_base_archive=`basename "$darwin_archive"`
+	  darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
+	  if test -n "$darwin_arches"; then
+	    darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
+	    darwin_arch=
+	    func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
+	    for darwin_arch in  $darwin_arches ; do
+	      func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+	      $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
+	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
+	      cd "$darwin_curdir"
+	      $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
+	    done # $darwin_arches
+            ## Okay now we've a bunch of thin objects, gotta fatten them up :)
+	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
+	    darwin_file=
+	    darwin_files=
+	    for darwin_file in $darwin_filelist; do
+	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
+	      $LIPO -create -output "$darwin_file" $darwin_files
+	    done # $darwin_filelist
+	    $RM -rf unfat-$$
+	    cd "$darwin_orig_dir"
+	  else
+	    cd $darwin_orig_dir
+	    func_extract_an_archive "$my_xdir" "$my_xabs"
+	  fi # $darwin_arches
+	} # !$opt_dry_run
+	;;
+      *)
+        func_extract_an_archive "$my_xdir" "$my_xabs"
+	;;
+      esac
+      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
+    done
+
+    func_extract_archives_result="$my_oldobjs"
+}
+
+
+
+# func_emit_wrapper_part1 [arg=no]
+#
+# Emit the first part of a libtool wrapper script on stdout.
+# For more information, see the description associated with
+# func_emit_wrapper(), below.
+func_emit_wrapper_part1 ()
+{
+	func_emit_wrapper_part1_arg1=no
+	if test -n "$1" ; then
+	  func_emit_wrapper_part1_arg1=$1
+	fi
+
+	$ECHO "\
+#! $SHELL
+
+# $output - temporary wrapper script for $objdir/$outputname
+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+#
+# The $output program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='${SED} -e 1s/^X//'
+sed_quote_subst='$sed_quote_subst'
+
+# Be Bourne compatible
+if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else
+  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command=\"$relink_command\"
+
+# This environment variable determines our operation mode.
+if test \"\$libtool_install_magic\" = \"$magic\"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='$macro_version'
+  notinst_deplibs='$notinst_deplibs'
+else
+  # When we are sourced in execute mode, \$file and \$ECHO are already set.
+  if test \"\$libtool_execute_magic\" != \"$magic\"; then
+    ECHO=\"$qecho\"
+    file=\"\$0\"
+    # Make sure echo works.
+    if test \"X\$1\" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then
+      # Yippee, \$ECHO works!
+      :
+    else
+      # Restart under the correct shell, and then maybe \$ECHO will work.
+      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
+    fi
+  fi\
+"
+	$ECHO "\
+
+  # Find the directory that this script lives in.
+  thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
+  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
+  while test -n \"\$file\"; do
+    destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
+
+    # If there was a directory component, then change thisdir.
+    if test \"x\$destdir\" != \"x\$file\"; then
+      case \"\$destdir\" in
+      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
+      *) thisdir=\"\$thisdir/\$destdir\" ;;
+      esac
+    fi
+
+    file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
+    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
+  done
+"
+}
+# end: func_emit_wrapper_part1
+
+# func_emit_wrapper_part2 [arg=no]
+#
+# Emit the second part of a libtool wrapper script on stdout.
+# For more information, see the description associated with
+# func_emit_wrapper(), below.
+func_emit_wrapper_part2 ()
+{
+	func_emit_wrapper_part2_arg1=no
+	if test -n "$1" ; then
+	  func_emit_wrapper_part2_arg1=$1
+	fi
+
+	$ECHO "\
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1
+  if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
+    # special case for '.'
+    if test \"\$thisdir\" = \".\"; then
+      thisdir=\`pwd\`
+    fi
+    # remove .libs from thisdir
+    case \"\$thisdir\" in
+    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;;
+    $objdir )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=\`cd \"\$thisdir\" && pwd\`
+  test -n \"\$absdir\" && thisdir=\"\$absdir\"
+"
+
+	if test "$fast_install" = yes; then
+	  $ECHO "\
+  program=lt-'$outputname'$exeext
+  progdir=\"\$thisdir/$objdir\"
+
+  if test ! -f \"\$progdir/\$program\" ||
+     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
+       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
+
+    file=\"\$\$-\$program\"
+
+    if test ! -d \"\$progdir\"; then
+      $MKDIR \"\$progdir\"
+    else
+      $RM \"\$progdir/\$file\"
+    fi"
+
+	  $ECHO "\
+
+    # relink executable if necessary
+    if test -n \"\$relink_command\"; then
+      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
+      else
+	$ECHO \"\$relink_command_output\" >&2
+	$RM \"\$progdir/\$file\"
+	exit 1
+      fi
+    fi
+
+    $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
+    { $RM \"\$progdir/\$program\";
+      $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
+    $RM \"\$progdir/\$file\"
+  fi"
+	else
+	  $ECHO "\
+  program='$outputname'
+  progdir=\"\$thisdir/$objdir\"
+"
+	fi
+
+	$ECHO "\
+
+  if test -f \"\$progdir/\$program\"; then"
+
+	# Export our shlibpath_var if we have one.
+	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+	  $ECHO "\
+    # Add our own library path to $shlibpath_var
+    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
+
+    # Some systems cannot cope with colon-terminated $shlibpath_var
+    # The second colon is a workaround for a bug in BeOS R4 sed
+    $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
+
+    export $shlibpath_var
+"
+	fi
+
+	# fixup the dll searchpath if we need to.
+	if test -n "$dllsearchpath"; then
+	  $ECHO "\
+    # Add the dll search path components to the executable PATH
+    PATH=$dllsearchpath:\$PATH
+"
+	fi
+
+	$ECHO "\
+    if test \"\$libtool_execute_magic\" != \"$magic\"; then
+      # Run the actual program with our arguments.
+"
+	case $host in
+	# Backslashes separate directories on plain windows
+	*-*-mingw | *-*-os2* | *-cegcc*)
+	  $ECHO "\
+      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
+"
+	  ;;
+
+	*)
+	  $ECHO "\
+      exec \"\$progdir/\$program\" \${1+\"\$@\"}
+"
+	  ;;
+	esac
+	$ECHO "\
+      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
+      exit 1
+    fi
+  else
+    # The program doesn't exist.
+    \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
+    \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
+    $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
+    exit 1
+  fi
+fi\
+"
+}
+# end: func_emit_wrapper_part2
+
+
+# func_emit_wrapper [arg=no]
+#
+# Emit a libtool wrapper script on stdout.
+# Don't directly open a file because we may want to
+# incorporate the script contents within a cygwin/mingw
+# wrapper executable.  Must ONLY be called from within
+# func_mode_link because it depends on a number of variables
+# set therein.
+#
+# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
+# variable will take.  If 'yes', then the emitted script
+# will assume that the directory in which it is stored is
+# the $objdir directory.  This is a cygwin/mingw-specific
+# behavior.
+func_emit_wrapper ()
+{
+	func_emit_wrapper_arg1=no
+	if test -n "$1" ; then
+	  func_emit_wrapper_arg1=$1
+	fi
+
+	# split this up so that func_emit_cwrapperexe_src
+	# can call each part independently.
+	func_emit_wrapper_part1 "${func_emit_wrapper_arg1}"
+	func_emit_wrapper_part2 "${func_emit_wrapper_arg1}"
+}
+
+
+# func_to_host_path arg
+#
+# Convert paths to host format when used with build tools.
+# Intended for use with "native" mingw (where libtool itself
+# is running under the msys shell), or in the following cross-
+# build environments:
+#    $build          $host
+#    mingw (msys)    mingw  [e.g. native]
+#    cygwin          mingw
+#    *nix + wine     mingw
+# where wine is equipped with the `winepath' executable.
+# In the native mingw case, the (msys) shell automatically
+# converts paths for any non-msys applications it launches,
+# but that facility isn't available from inside the cwrapper.
+# Similar accommodations are necessary for $host mingw and
+# $build cygwin.  Calling this function does no harm for other
+# $host/$build combinations not listed above.
+#
+# ARG is the path (on $build) that should be converted to
+# the proper representation for $host. The result is stored
+# in $func_to_host_path_result.
+func_to_host_path ()
+{
+  func_to_host_path_result="$1"
+  if test -n "$1" ; then
+    case $host in
+      *mingw* )
+        lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+        case $build in
+          *mingw* ) # actually, msys
+            # awkward: cmd appends spaces to result
+            lt_sed_strip_trailing_spaces="s/[ ]*\$//"
+            func_to_host_path_tmp1=`( cmd //c echo "$1" |\
+              $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
+            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
+              $SED -e "$lt_sed_naive_backslashify"`
+            ;;
+          *cygwin* )
+            func_to_host_path_tmp1=`cygpath -w "$1"`
+            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
+              $SED -e "$lt_sed_naive_backslashify"`
+            ;;
+          * )
+            # Unfortunately, winepath does not exit with a non-zero
+            # error code, so we are forced to check the contents of
+            # stdout. On the other hand, if the command is not
+            # found, the shell will set an exit code of 127 and print
+            # *an error message* to stdout. So we must check for both
+            # error code of zero AND non-empty stdout, which explains
+            # the odd construction:
+            func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
+            if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
+              func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
+                $SED -e "$lt_sed_naive_backslashify"`
+            else
+              # Allow warning below.
+              func_to_host_path_result=""
+            fi
+            ;;
+        esac
+        if test -z "$func_to_host_path_result" ; then
+          func_error "Could not determine host path corresponding to"
+          func_error "  '$1'"
+          func_error "Continuing, but uninstalled executables may not work."
+          # Fallback:
+          func_to_host_path_result="$1"
+        fi
+        ;;
+    esac
+  fi
+}
+# end: func_to_host_path
+
+# func_to_host_pathlist arg
+#
+# Convert pathlists to host format when used with build tools.
+# See func_to_host_path(), above. This function supports the
+# following $build/$host combinations (but does no harm for
+# combinations not listed here):
+#    $build          $host
+#    mingw (msys)    mingw  [e.g. native]
+#    cygwin          mingw
+#    *nix + wine     mingw
+#
+# Path separators are also converted from $build format to
+# $host format. If ARG begins or ends with a path separator
+# character, it is preserved (but converted to $host format)
+# on output.
+#
+# ARG is a pathlist (on $build) that should be converted to
+# the proper representation on $host. The result is stored
+# in $func_to_host_pathlist_result.
+func_to_host_pathlist ()
+{
+  func_to_host_pathlist_result="$1"
+  if test -n "$1" ; then
+    case $host in
+      *mingw* )
+        lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+        # Remove leading and trailing path separator characters from
+        # ARG. msys behavior is inconsistent here, cygpath turns them
+        # into '.;' and ';.', and winepath ignores them completely.
+        func_to_host_pathlist_tmp2="$1"
+        # Once set for this call, this variable should not be
+        # reassigned. It is used in tha fallback case.
+        func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\
+          $SED -e 's|^:*||' -e 's|:*$||'`
+        case $build in
+          *mingw* ) # Actually, msys.
+            # Awkward: cmd appends spaces to result.
+            lt_sed_strip_trailing_spaces="s/[ ]*\$//"
+            func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\
+              $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
+            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
+              $SED -e "$lt_sed_naive_backslashify"`
+            ;;
+          *cygwin* )
+            func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"`
+            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
+              $SED -e "$lt_sed_naive_backslashify"`
+            ;;
+          * )
+            # unfortunately, winepath doesn't convert pathlists
+            func_to_host_pathlist_result=""
+            func_to_host_pathlist_oldIFS=$IFS
+            IFS=:
+            for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do
+              IFS=$func_to_host_pathlist_oldIFS
+              if test -n "$func_to_host_pathlist_f" ; then
+                func_to_host_path "$func_to_host_pathlist_f"
+                if test -n "$func_to_host_path_result" ; then
+                  if test -z "$func_to_host_pathlist_result" ; then
+                    func_to_host_pathlist_result="$func_to_host_path_result"
+                  else
+                    func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result"
+                  fi
+                fi
+              fi
+              IFS=:
+            done
+            IFS=$func_to_host_pathlist_oldIFS
+            ;;
+        esac
+        if test -z "$func_to_host_pathlist_result" ; then
+          func_error "Could not determine the host path(s) corresponding to"
+          func_error "  '$1'"
+          func_error "Continuing, but uninstalled executables may not work."
+          # Fallback. This may break if $1 contains DOS-style drive
+          # specifications. The fix is not to complicate the expression
+          # below, but for the user to provide a working wine installation
+          # with winepath so that path translation in the cross-to-mingw
+          # case works properly.
+          lt_replace_pathsep_nix_to_dos="s|:|;|g"
+          func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\
+            $SED -e "$lt_replace_pathsep_nix_to_dos"`
+        fi
+        # Now, add the leading and trailing path separators back
+        case "$1" in
+          :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result"
+            ;;
+        esac
+        case "$1" in
+          *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;"
+            ;;
+        esac
+        ;;
+    esac
+  fi
+}
+# end: func_to_host_pathlist
+
+# func_emit_cwrapperexe_src
+# emit the source code for a wrapper executable on stdout
+# Must ONLY be called from within func_mode_link because
+# it depends on a number of variable set therein.
+func_emit_cwrapperexe_src ()
+{
+	cat <<EOF
+
+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
+   Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+
+   The $output program cannot be directly executed until all the libtool
+   libraries that it depends on are installed.
+
+   This wrapper executable should never be moved out of the build directory.
+   If it is, it will not operate correctly.
+
+   Currently, it simply execs the wrapper *script* "$SHELL $output",
+   but could eventually absorb all of the scripts functionality and
+   exec $objdir/$outputname directly.
+*/
+EOF
+	    cat <<"EOF"
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef _MSC_VER
+# include <direct.h>
+# include <process.h>
+# include <io.h>
+# define setmode _setmode
+#else
+# include <unistd.h>
+# include <stdint.h>
+# ifdef __CYGWIN__
+#  include <io.h>
+#  define HAVE_SETENV
+#  ifdef __STRICT_ANSI__
+char *realpath (const char *, char *);
+int putenv (char *);
+int setenv (const char *, const char *, int);
+#  endif
+# endif
+#endif
+#include <malloc.h>
+#include <stdarg.h>
+#include <assert.h>
+#include <string.h>
+#include <ctype.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+
+#if defined(PATH_MAX)
+# define LT_PATHMAX PATH_MAX
+#elif defined(MAXPATHLEN)
+# define LT_PATHMAX MAXPATHLEN
+#else
+# define LT_PATHMAX 1024
+#endif
+
+#ifndef S_IXOTH
+# define S_IXOTH 0
+#endif
+#ifndef S_IXGRP
+# define S_IXGRP 0
+#endif
+
+#ifdef _MSC_VER
+# define S_IXUSR _S_IEXEC
+# define stat _stat
+# ifndef _INTPTR_T_DEFINED
+#  define intptr_t int
+# endif
+#endif
+
+#ifndef DIR_SEPARATOR
+# define DIR_SEPARATOR '/'
+# define PATH_SEPARATOR ':'
+#endif
+
+#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
+  defined (__OS2__)
+# define HAVE_DOS_BASED_FILE_SYSTEM
+# define FOPEN_WB "wb"
+# ifndef DIR_SEPARATOR_2
+#  define DIR_SEPARATOR_2 '\\'
+# endif
+# ifndef PATH_SEPARATOR_2
+#  define PATH_SEPARATOR_2 ';'
+# endif
+#endif
+
+#ifndef DIR_SEPARATOR_2
+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
+#else /* DIR_SEPARATOR_2 */
+# define IS_DIR_SEPARATOR(ch) \
+	(((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
+#endif /* DIR_SEPARATOR_2 */
+
+#ifndef PATH_SEPARATOR_2
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
+#else /* PATH_SEPARATOR_2 */
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
+#endif /* PATH_SEPARATOR_2 */
+
+#ifdef __CYGWIN__
+# define FOPEN_WB "wb"
+#endif
+
+#ifndef FOPEN_WB
+# define FOPEN_WB "w"
+#endif
+#ifndef _O_BINARY
+# define _O_BINARY 0
+#endif
+
+#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
+#define XFREE(stale) do { \
+  if (stale) { free ((void *) stale); stale = 0; } \
+} while (0)
+
+#undef LTWRAPPER_DEBUGPRINTF
+#if defined DEBUGWRAPPER
+# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args
+static void
+ltwrapper_debugprintf (const char *fmt, ...)
+{
+    va_list args;
+    va_start (args, fmt);
+    (void) vfprintf (stderr, fmt, args);
+    va_end (args);
+}
+#else
+# define LTWRAPPER_DEBUGPRINTF(args)
+#endif
+
+const char *program_name = NULL;
+
+void *xmalloc (size_t num);
+char *xstrdup (const char *string);
+const char *base_name (const char *name);
+char *find_executable (const char *wrapper);
+char *chase_symlinks (const char *pathspec);
+int make_executable (const char *path);
+int check_executable (const char *path);
+char *strendzap (char *str, const char *pat);
+void lt_fatal (const char *message, ...);
+void lt_setenv (const char *name, const char *value);
+char *lt_extend_str (const char *orig_value, const char *add, int to_end);
+void lt_opt_process_env_set (const char *arg);
+void lt_opt_process_env_prepend (const char *arg);
+void lt_opt_process_env_append (const char *arg);
+int lt_split_name_value (const char *arg, char** name, char** value);
+void lt_update_exe_path (const char *name, const char *value);
+void lt_update_lib_path (const char *name, const char *value);
+
+static const char *script_text_part1 =
+EOF
+
+	    func_emit_wrapper_part1 yes |
+	        $SED -e 's/\([\\"]\)/\\\1/g' \
+	             -e 's/^/  "/' -e 's/$/\\n"/'
+	    echo ";"
+	    cat <<EOF
+
+static const char *script_text_part2 =
+EOF
+	    func_emit_wrapper_part2 yes |
+	        $SED -e 's/\([\\"]\)/\\\1/g' \
+	             -e 's/^/  "/' -e 's/$/\\n"/'
+	    echo ";"
+
+	    cat <<EOF
+const char * MAGIC_EXE = "$magic_exe";
+const char * LIB_PATH_VARNAME = "$shlibpath_var";
+EOF
+
+	    if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+              func_to_host_pathlist "$temp_rpath"
+	      cat <<EOF
+const char * LIB_PATH_VALUE   = "$func_to_host_pathlist_result";
+EOF
+	    else
+	      cat <<"EOF"
+const char * LIB_PATH_VALUE   = "";
+EOF
+	    fi
+
+	    if test -n "$dllsearchpath"; then
+              func_to_host_pathlist "$dllsearchpath:"
+	      cat <<EOF
+const char * EXE_PATH_VARNAME = "PATH";
+const char * EXE_PATH_VALUE   = "$func_to_host_pathlist_result";
+EOF
+	    else
+	      cat <<"EOF"
+const char * EXE_PATH_VARNAME = "";
+const char * EXE_PATH_VALUE   = "";
+EOF
+	    fi
+
+	    if test "$fast_install" = yes; then
+	      cat <<EOF
+const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
+EOF
+	    else
+	      cat <<EOF
+const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
+EOF
+	    fi
+
+
+	    cat <<"EOF"
+
+#define LTWRAPPER_OPTION_PREFIX         "--lt-"
+#define LTWRAPPER_OPTION_PREFIX_LENGTH  5
+
+static const size_t opt_prefix_len         = LTWRAPPER_OPTION_PREFIX_LENGTH;
+static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
+
+static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
+
+static const size_t env_set_opt_len     = LTWRAPPER_OPTION_PREFIX_LENGTH + 7;
+static const char *env_set_opt          = LTWRAPPER_OPTION_PREFIX "env-set";
+  /* argument is putenv-style "foo=bar", value of foo is set to bar */
+
+static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11;
+static const char *env_prepend_opt      = LTWRAPPER_OPTION_PREFIX "env-prepend";
+  /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */
+
+static const size_t env_append_opt_len  = LTWRAPPER_OPTION_PREFIX_LENGTH + 10;
+static const char *env_append_opt       = LTWRAPPER_OPTION_PREFIX "env-append";
+  /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */
+
+int
+main (int argc, char *argv[])
+{
+  char **newargz;
+  int  newargc;
+  char *tmp_pathspec;
+  char *actual_cwrapper_path;
+  char *actual_cwrapper_name;
+  char *target_name;
+  char *lt_argv_zero;
+  intptr_t rval = 127;
+
+  int i;
+
+  program_name = (char *) xstrdup (base_name (argv[0]));
+  LTWRAPPER_DEBUGPRINTF (("(main) argv[0]      : %s\n", argv[0]));
+  LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name));
+
+  /* very simple arg parsing; don't want to rely on getopt */
+  for (i = 1; i < argc; i++)
+    {
+      if (strcmp (argv[i], dumpscript_opt) == 0)
+	{
+EOF
+	    case "$host" in
+	      *mingw* | *cygwin* )
+		# make stdout use "unix" line endings
+		echo "          setmode(1,_O_BINARY);"
+		;;
+	      esac
+
+	    cat <<"EOF"
+	  printf ("%s", script_text_part1);
+	  printf ("%s", script_text_part2);
+	  return 0;
+	}
+    }
+
+  newargz = XMALLOC (char *, argc + 1);
+  tmp_pathspec = find_executable (argv[0]);
+  if (tmp_pathspec == NULL)
+    lt_fatal ("Couldn't find %s", argv[0]);
+  LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n",
+			  tmp_pathspec));
+
+  actual_cwrapper_path = chase_symlinks (tmp_pathspec);
+  LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n",
+			  actual_cwrapper_path));
+  XFREE (tmp_pathspec);
+
+  actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path));
+  strendzap (actual_cwrapper_path, actual_cwrapper_name);
+
+  /* wrapper name transforms */
+  strendzap (actual_cwrapper_name, ".exe");
+  tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
+  XFREE (actual_cwrapper_name);
+  actual_cwrapper_name = tmp_pathspec;
+  tmp_pathspec = 0;
+
+  /* target_name transforms -- use actual target program name; might have lt- prefix */
+  target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
+  strendzap (target_name, ".exe");
+  tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
+  XFREE (target_name);
+  target_name = tmp_pathspec;
+  tmp_pathspec = 0;
+
+  LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n",
+			  target_name));
+EOF
+
+	    cat <<EOF
+  newargz[0] =
+    XMALLOC (char, (strlen (actual_cwrapper_path) +
+		    strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
+  strcpy (newargz[0], actual_cwrapper_path);
+  strcat (newargz[0], "$objdir");
+  strcat (newargz[0], "/");
+EOF
+
+	    cat <<"EOF"
+  /* stop here, and copy so we don't have to do this twice */
+  tmp_pathspec = xstrdup (newargz[0]);
+
+  /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
+  strcat (newargz[0], actual_cwrapper_name);
+
+  /* DO want the lt- prefix here if it exists, so use target_name */
+  lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
+  XFREE (tmp_pathspec);
+  tmp_pathspec = NULL;
+EOF
+
+	    case $host_os in
+	      mingw*)
+	    cat <<"EOF"
+  {
+    char* p;
+    while ((p = strchr (newargz[0], '\\')) != NULL)
+      {
+	*p = '/';
+      }
+    while ((p = strchr (lt_argv_zero, '\\')) != NULL)
+      {
+	*p = '/';
+      }
+  }
+EOF
+	    ;;
+	    esac
+
+	    cat <<"EOF"
+  XFREE (target_name);
+  XFREE (actual_cwrapper_path);
+  XFREE (actual_cwrapper_name);
+
+  lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
+  lt_setenv ("DUALCASE", "1");  /* for MSK sh */
+  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
+  lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
+
+  newargc=0;
+  for (i = 1; i < argc; i++)
+    {
+      if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0)
+        {
+          if (argv[i][env_set_opt_len] == '=')
+            {
+              const char *p = argv[i] + env_set_opt_len + 1;
+              lt_opt_process_env_set (p);
+            }
+          else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc)
+            {
+              lt_opt_process_env_set (argv[++i]); /* don't copy */
+            }
+          else
+            lt_fatal ("%s missing required argument", env_set_opt);
+          continue;
+        }
+      if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0)
+        {
+          if (argv[i][env_prepend_opt_len] == '=')
+            {
+              const char *p = argv[i] + env_prepend_opt_len + 1;
+              lt_opt_process_env_prepend (p);
+            }
+          else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc)
+            {
+              lt_opt_process_env_prepend (argv[++i]); /* don't copy */
+            }
+          else
+            lt_fatal ("%s missing required argument", env_prepend_opt);
+          continue;
+        }
+      if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0)
+        {
+          if (argv[i][env_append_opt_len] == '=')
+            {
+              const char *p = argv[i] + env_append_opt_len + 1;
+              lt_opt_process_env_append (p);
+            }
+          else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc)
+            {
+              lt_opt_process_env_append (argv[++i]); /* don't copy */
+            }
+          else
+            lt_fatal ("%s missing required argument", env_append_opt);
+          continue;
+        }
+      if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0)
+        {
+          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
+             namespace, but it is not one of the ones we know about and
+             have already dealt with, above (inluding dump-script), then
+             report an error. Otherwise, targets might begin to believe
+             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
+             namespace. The first time any user complains about this, we'll
+             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
+             or a configure.ac-settable value.
+           */
+          lt_fatal ("Unrecognized option in %s namespace: '%s'",
+                    ltwrapper_option_prefix, argv[i]);
+        }
+      /* otherwise ... */
+      newargz[++newargc] = xstrdup (argv[i]);
+    }
+  newargz[++newargc] = NULL;
+
+  LTWRAPPER_DEBUGPRINTF     (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>")));
+  for (i = 0; i < newargc; i++)
+    {
+      LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d]   : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>")));
+    }
+
+EOF
+
+	    case $host_os in
+	      mingw*)
+		cat <<"EOF"
+  /* execv doesn't actually work on mingw as expected on unix */
+  rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
+  if (rval == -1)
+    {
+      /* failed to start process */
+      LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno));
+      return 127;
+    }
+  return rval;
+EOF
+		;;
+	      *)
+		cat <<"EOF"
+  execv (lt_argv_zero, newargz);
+  return rval; /* =127, but avoids unused variable warning */
+EOF
+		;;
+	    esac
+
+	    cat <<"EOF"
+}
+
+void *
+xmalloc (size_t num)
+{
+  void *p = (void *) malloc (num);
+  if (!p)
+    lt_fatal ("Memory exhausted");
+
+  return p;
+}
+
+char *
+xstrdup (const char *string)
+{
+  return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
+			  string) : NULL;
+}
+
+const char *
+base_name (const char *name)
+{
+  const char *base;
+
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  /* Skip over the disk name in MSDOS pathnames. */
+  if (isalpha ((unsigned char) name[0]) && name[1] == ':')
+    name += 2;
+#endif
+
+  for (base = name; *name; name++)
+    if (IS_DIR_SEPARATOR (*name))
+      base = name + 1;
+  return base;
+}
+
+int
+check_executable (const char *path)
+{
+  struct stat st;
+
+  LTWRAPPER_DEBUGPRINTF (("(check_executable)  : %s\n",
+			  path ? (*path ? path : "EMPTY!") : "NULL!"));
+  if ((!path) || (!*path))
+    return 0;
+
+  if ((stat (path, &st) >= 0)
+      && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
+    return 1;
+  else
+    return 0;
+}
+
+int
+make_executable (const char *path)
+{
+  int rval = 0;
+  struct stat st;
+
+  LTWRAPPER_DEBUGPRINTF (("(make_executable)   : %s\n",
+			  path ? (*path ? path : "EMPTY!") : "NULL!"));
+  if ((!path) || (!*path))
+    return 0;
+
+  if (stat (path, &st) >= 0)
+    {
+      rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
+    }
+  return rval;
+}
+
+/* Searches for the full path of the wrapper.  Returns
+   newly allocated full path name if found, NULL otherwise
+   Does not chase symlinks, even on platforms that support them.
+*/
+char *
+find_executable (const char *wrapper)
+{
+  int has_slash = 0;
+  const char *p;
+  const char *p_next;
+  /* static buffer for getcwd */
+  char tmp[LT_PATHMAX + 1];
+  int tmp_len;
+  char *concat_name;
+
+  LTWRAPPER_DEBUGPRINTF (("(find_executable)   : %s\n",
+			  wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"));
+
+  if ((wrapper == NULL) || (*wrapper == '\0'))
+    return NULL;
+
+  /* Absolute path? */
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
+    {
+      concat_name = xstrdup (wrapper);
+      if (check_executable (concat_name))
+	return concat_name;
+      XFREE (concat_name);
+    }
+  else
+    {
+#endif
+      if (IS_DIR_SEPARATOR (wrapper[0]))
+	{
+	  concat_name = xstrdup (wrapper);
+	  if (check_executable (concat_name))
+	    return concat_name;
+	  XFREE (concat_name);
+	}
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+    }
+#endif
+
+  for (p = wrapper; *p; p++)
+    if (*p == '/')
+      {
+	has_slash = 1;
+	break;
+      }
+  if (!has_slash)
+    {
+      /* no slashes; search PATH */
+      const char *path = getenv ("PATH");
+      if (path != NULL)
+	{
+	  for (p = path; *p; p = p_next)
+	    {
+	      const char *q;
+	      size_t p_len;
+	      for (q = p; *q; q++)
+		if (IS_PATH_SEPARATOR (*q))
+		  break;
+	      p_len = q - p;
+	      p_next = (*q == '\0' ? q : q + 1);
+	      if (p_len == 0)
+		{
+		  /* empty path: current directory */
+		  if (getcwd (tmp, LT_PATHMAX) == NULL)
+		    lt_fatal ("getcwd failed");
+		  tmp_len = strlen (tmp);
+		  concat_name =
+		    XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
+		  memcpy (concat_name, tmp, tmp_len);
+		  concat_name[tmp_len] = '/';
+		  strcpy (concat_name + tmp_len + 1, wrapper);
+		}
+	      else
+		{
+		  concat_name =
+		    XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
+		  memcpy (concat_name, p, p_len);
+		  concat_name[p_len] = '/';
+		  strcpy (concat_name + p_len + 1, wrapper);
+		}
+	      if (check_executable (concat_name))
+		return concat_name;
+	      XFREE (concat_name);
+	    }
+	}
+      /* not found in PATH; assume curdir */
+    }
+  /* Relative path | not found in path: prepend cwd */
+  if (getcwd (tmp, LT_PATHMAX) == NULL)
+    lt_fatal ("getcwd failed");
+  tmp_len = strlen (tmp);
+  concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
+  memcpy (concat_name, tmp, tmp_len);
+  concat_name[tmp_len] = '/';
+  strcpy (concat_name + tmp_len + 1, wrapper);
+
+  if (check_executable (concat_name))
+    return concat_name;
+  XFREE (concat_name);
+  return NULL;
+}
+
+char *
+chase_symlinks (const char *pathspec)
+{
+#ifndef S_ISLNK
+  return xstrdup (pathspec);
+#else
+  char buf[LT_PATHMAX];
+  struct stat s;
+  char *tmp_pathspec = xstrdup (pathspec);
+  char *p;
+  int has_symlinks = 0;
+  while (strlen (tmp_pathspec) && !has_symlinks)
+    {
+      LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n",
+			      tmp_pathspec));
+      if (lstat (tmp_pathspec, &s) == 0)
+	{
+	  if (S_ISLNK (s.st_mode) != 0)
+	    {
+	      has_symlinks = 1;
+	      break;
+	    }
+
+	  /* search backwards for last DIR_SEPARATOR */
+	  p = tmp_pathspec + strlen (tmp_pathspec) - 1;
+	  while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
+	    p--;
+	  if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
+	    {
+	      /* no more DIR_SEPARATORS left */
+	      break;
+	    }
+	  *p = '\0';
+	}
+      else
+	{
+	  char *errstr = strerror (errno);
+	  lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr);
+	}
+    }
+  XFREE (tmp_pathspec);
+
+  if (!has_symlinks)
+    {
+      return xstrdup (pathspec);
+    }
+
+  tmp_pathspec = realpath (pathspec, buf);
+  if (tmp_pathspec == 0)
+    {
+      lt_fatal ("Could not follow symlinks for %s", pathspec);
+    }
+  return xstrdup (tmp_pathspec);
+#endif
+}
+
+char *
+strendzap (char *str, const char *pat)
+{
+  size_t len, patlen;
+
+  assert (str != NULL);
+  assert (pat != NULL);
+
+  len = strlen (str);
+  patlen = strlen (pat);
+
+  if (patlen <= len)
+    {
+      str += len - patlen;
+      if (strcmp (str, pat) == 0)
+	*str = '\0';
+    }
+  return str;
+}
+
+static void
+lt_error_core (int exit_status, const char *mode,
+	       const char *message, va_list ap)
+{
+  fprintf (stderr, "%s: %s: ", program_name, mode);
+  vfprintf (stderr, message, ap);
+  fprintf (stderr, ".\n");
+
+  if (exit_status >= 0)
+    exit (exit_status);
+}
+
+void
+lt_fatal (const char *message, ...)
+{
+  va_list ap;
+  va_start (ap, message);
+  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
+  va_end (ap);
+}
+
+void
+lt_setenv (const char *name, const char *value)
+{
+  LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n",
+                          (name ? name : "<NULL>"),
+                          (value ? value : "<NULL>")));
+  {
+#ifdef HAVE_SETENV
+    /* always make a copy, for consistency with !HAVE_SETENV */
+    char *str = xstrdup (value);
+    setenv (name, str, 1);
+#else
+    int len = strlen (name) + 1 + strlen (value) + 1;
+    char *str = XMALLOC (char, len);
+    sprintf (str, "%s=%s", name, value);
+    if (putenv (str) != EXIT_SUCCESS)
+      {
+        XFREE (str);
+      }
+#endif
+  }
+}
+
+char *
+lt_extend_str (const char *orig_value, const char *add, int to_end)
+{
+  char *new_value;
+  if (orig_value && *orig_value)
+    {
+      int orig_value_len = strlen (orig_value);
+      int add_len = strlen (add);
+      new_value = XMALLOC (char, add_len + orig_value_len + 1);
+      if (to_end)
+        {
+          strcpy (new_value, orig_value);
+          strcpy (new_value + orig_value_len, add);
+        }
+      else
+        {
+          strcpy (new_value, add);
+          strcpy (new_value + add_len, orig_value);
+        }
+    }
+  else
+    {
+      new_value = xstrdup (add);
+    }
+  return new_value;
+}
+
+int
+lt_split_name_value (const char *arg, char** name, char** value)
+{
+  const char *p;
+  int len;
+  if (!arg || !*arg)
+    return 1;
+
+  p = strchr (arg, (int)'=');
+
+  if (!p)
+    return 1;
+
+  *value = xstrdup (++p);
+
+  len = strlen (arg) - strlen (*value);
+  *name = XMALLOC (char, len);
+  strncpy (*name, arg, len-1);
+  (*name)[len - 1] = '\0';
+
+  return 0;
+}
+
+void
+lt_opt_process_env_set (const char *arg)
+{
+  char *name = NULL;
+  char *value = NULL;
+
+  if (lt_split_name_value (arg, &name, &value) != 0)
+    {
+      XFREE (name);
+      XFREE (value);
+      lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg);
+    }
+
+  lt_setenv (name, value);
+  XFREE (name);
+  XFREE (value);
+}
+
+void
+lt_opt_process_env_prepend (const char *arg)
+{
+  char *name = NULL;
+  char *value = NULL;
+  char *new_value = NULL;
+
+  if (lt_split_name_value (arg, &name, &value) != 0)
+    {
+      XFREE (name);
+      XFREE (value);
+      lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg);
+    }
+
+  new_value = lt_extend_str (getenv (name), value, 0);
+  lt_setenv (name, new_value);
+  XFREE (new_value);
+  XFREE (name);
+  XFREE (value);
+}
+
+void
+lt_opt_process_env_append (const char *arg)
+{
+  char *name = NULL;
+  char *value = NULL;
+  char *new_value = NULL;
+
+  if (lt_split_name_value (arg, &name, &value) != 0)
+    {
+      XFREE (name);
+      XFREE (value);
+      lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg);
+    }
+
+  new_value = lt_extend_str (getenv (name), value, 1);
+  lt_setenv (name, new_value);
+  XFREE (new_value);
+  XFREE (name);
+  XFREE (value);
+}
+
+void
+lt_update_exe_path (const char *name, const char *value)
+{
+  LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
+                          (name ? name : "<NULL>"),
+                          (value ? value : "<NULL>")));
+
+  if (name && *name && value && *value)
+    {
+      char *new_value = lt_extend_str (getenv (name), value, 0);
+      /* some systems can't cope with a ':'-terminated path #' */
+      int len = strlen (new_value);
+      while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
+        {
+          new_value[len-1] = '\0';
+        }
+      lt_setenv (name, new_value);
+      XFREE (new_value);
+    }
+}
+
+void
+lt_update_lib_path (const char *name, const char *value)
+{
+  LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
+                          (name ? name : "<NULL>"),
+                          (value ? value : "<NULL>")));
+
+  if (name && *name && value && *value)
+    {
+      char *new_value = lt_extend_str (getenv (name), value, 0);
+      lt_setenv (name, new_value);
+      XFREE (new_value);
+    }
+}
+
+
+EOF
+}
+# end: func_emit_cwrapperexe_src
+
+# func_mode_link arg...
+func_mode_link ()
+{
+    $opt_debug
+    case $host in
+    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+      # It is impossible to link a dll without this setting, and
+      # we shouldn't force the makefile maintainer to figure out
+      # which system we are compiling for in order to pass an extra
+      # flag for every libtool invocation.
+      # allow_undefined=no
+
+      # FIXME: Unfortunately, there are problems with the above when trying
+      # to make a dll which has undefined symbols, in which case not
+      # even a static library is built.  For now, we need to specify
+      # -no-undefined on the libtool link line when we can be certain
+      # that all symbols are satisfied, otherwise we get a static library.
+      allow_undefined=yes
+      ;;
+    *)
+      allow_undefined=yes
+      ;;
+    esac
+    libtool_args=$nonopt
+    base_compile="$nonopt $@"
+    compile_command=$nonopt
+    finalize_command=$nonopt
+
+    compile_rpath=
+    finalize_rpath=
+    compile_shlibpath=
+    finalize_shlibpath=
+    convenience=
+    old_convenience=
+    deplibs=
+    old_deplibs=
+    compiler_flags=
+    linker_flags=
+    dllsearchpath=
+    lib_search_path=`pwd`
+    inst_prefix_dir=
+    new_inherited_linker_flags=
+
+    avoid_version=no
+    dlfiles=
+    dlprefiles=
+    dlself=no
+    export_dynamic=no
+    export_symbols=
+    export_symbols_regex=
+    generated=
+    libobjs=
+    ltlibs=
+    module=no
+    no_install=no
+    objs=
+    non_pic_objects=
+    precious_files_regex=
+    prefer_static_libs=no
+    preload=no
+    prev=
+    prevarg=
+    release=
+    rpath=
+    xrpath=
+    perm_rpath=
+    temp_rpath=
+    thread_safe=no
+    vinfo=
+    vinfo_number=no
+    weak_libs=
+    single_module="${wl}-single_module"
+    func_infer_tag $base_compile
+
+    # We need to know -static, to get the right output filenames.
+    for arg
+    do
+      case $arg in
+      -shared)
+	test "$build_libtool_libs" != yes && \
+	  func_fatal_configuration "can not build a shared library"
+	build_old_libs=no
+	break
+	;;
+      -all-static | -static | -static-libtool-libs)
+	case $arg in
+	-all-static)
+	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
+	    func_warning "complete static linking is impossible in this configuration"
+	  fi
+	  if test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	  prefer_static_libs=yes
+	  ;;
+	-static)
+	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	  prefer_static_libs=built
+	  ;;
+	-static-libtool-libs)
+	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	  prefer_static_libs=yes
+	  ;;
+	esac
+	build_libtool_libs=no
+	build_old_libs=yes
+	break
+	;;
+      esac
+    done
+
+    # See if our shared archives depend on static archives.
+    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
+
+    # Go through the arguments, transforming them on the way.
+    while test "$#" -gt 0; do
+      arg="$1"
+      shift
+      func_quote_for_eval "$arg"
+      qarg=$func_quote_for_eval_unquoted_result
+      func_append libtool_args " $func_quote_for_eval_result"
+
+      # If the previous option needs an argument, assign it.
+      if test -n "$prev"; then
+	case $prev in
+	output)
+	  func_append compile_command " @OUTPUT@"
+	  func_append finalize_command " @OUTPUT@"
+	  ;;
+	esac
+
+	case $prev in
+	dlfiles|dlprefiles)
+	  if test "$preload" = no; then
+	    # Add the symbol object into the linking commands.
+	    func_append compile_command " @SYMFILE@"
+	    func_append finalize_command " @SYMFILE@"
+	    preload=yes
+	  fi
+	  case $arg in
+	  *.la | *.lo) ;;  # We handle these cases below.
+	  force)
+	    if test "$dlself" = no; then
+	      dlself=needless
+	      export_dynamic=yes
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  self)
+	    if test "$prev" = dlprefiles; then
+	      dlself=yes
+	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
+	      dlself=yes
+	    else
+	      dlself=needless
+	      export_dynamic=yes
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  *)
+	    if test "$prev" = dlfiles; then
+	      dlfiles="$dlfiles $arg"
+	    else
+	      dlprefiles="$dlprefiles $arg"
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  esac
+	  ;;
+	expsyms)
+	  export_symbols="$arg"
+	  test -f "$arg" \
+	    || func_fatal_error "symbol file \`$arg' does not exist"
+	  prev=
+	  continue
+	  ;;
+	expsyms_regex)
+	  export_symbols_regex="$arg"
+	  prev=
+	  continue
+	  ;;
+	framework)
+	  case $host in
+	    *-*-darwin*)
+	      case "$deplibs " in
+		*" $qarg.ltframework "*) ;;
+		*) deplibs="$deplibs $qarg.ltframework" # this is fixed later
+		   ;;
+	      esac
+	      ;;
+	  esac
+	  prev=
+	  continue
+	  ;;
+	inst_prefix)
+	  inst_prefix_dir="$arg"
+	  prev=
+	  continue
+	  ;;
+	objectlist)
+	  if test -f "$arg"; then
+	    save_arg=$arg
+	    moreargs=
+	    for fil in `cat "$save_arg"`
+	    do
+#	      moreargs="$moreargs $fil"
+	      arg=$fil
+	      # A libtool-controlled object.
+
+	      # Check to see that this really is a libtool object.
+	      if func_lalib_unsafe_p "$arg"; then
+		pic_object=
+		non_pic_object=
+
+		# Read the .lo file
+		func_source "$arg"
+
+		if test -z "$pic_object" ||
+		   test -z "$non_pic_object" ||
+		   test "$pic_object" = none &&
+		   test "$non_pic_object" = none; then
+		  func_fatal_error "cannot find name of object for \`$arg'"
+		fi
+
+		# Extract subdirectory from the argument.
+		func_dirname "$arg" "/" ""
+		xdir="$func_dirname_result"
+
+		if test "$pic_object" != none; then
+		  # Prepend the subdirectory the object is found in.
+		  pic_object="$xdir$pic_object"
+
+		  if test "$prev" = dlfiles; then
+		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+		      dlfiles="$dlfiles $pic_object"
+		      prev=
+		      continue
+		    else
+		      # If libtool objects are unsupported, then we need to preload.
+		      prev=dlprefiles
+		    fi
+		  fi
+
+		  # CHECK ME:  I think I busted this.  -Ossama
+		  if test "$prev" = dlprefiles; then
+		    # Preload the old-style object.
+		    dlprefiles="$dlprefiles $pic_object"
+		    prev=
+		  fi
+
+		  # A PIC object.
+		  func_append libobjs " $pic_object"
+		  arg="$pic_object"
+		fi
+
+		# Non-PIC object.
+		if test "$non_pic_object" != none; then
+		  # Prepend the subdirectory the object is found in.
+		  non_pic_object="$xdir$non_pic_object"
+
+		  # A standard non-PIC object
+		  func_append non_pic_objects " $non_pic_object"
+		  if test -z "$pic_object" || test "$pic_object" = none ; then
+		    arg="$non_pic_object"
+		  fi
+		else
+		  # If the PIC object exists, use it instead.
+		  # $xdir was prepended to $pic_object above.
+		  non_pic_object="$pic_object"
+		  func_append non_pic_objects " $non_pic_object"
+		fi
+	      else
+		# Only an error if not doing a dry-run.
+		if $opt_dry_run; then
+		  # Extract subdirectory from the argument.
+		  func_dirname "$arg" "/" ""
+		  xdir="$func_dirname_result"
+
+		  func_lo2o "$arg"
+		  pic_object=$xdir$objdir/$func_lo2o_result
+		  non_pic_object=$xdir$func_lo2o_result
+		  func_append libobjs " $pic_object"
+		  func_append non_pic_objects " $non_pic_object"
+	        else
+		  func_fatal_error "\`$arg' is not a valid libtool object"
+		fi
+	      fi
+	    done
+	  else
+	    func_fatal_error "link input file \`$arg' does not exist"
+	  fi
+	  arg=$save_arg
+	  prev=
+	  continue
+	  ;;
+	precious_regex)
+	  precious_files_regex="$arg"
+	  prev=
+	  continue
+	  ;;
+	release)
+	  release="-$arg"
+	  prev=
+	  continue
+	  ;;
+	rpath | xrpath)
+	  # We need an absolute path.
+	  case $arg in
+	  [\\/]* | [A-Za-z]:[\\/]*) ;;
+	  *)
+	    func_fatal_error "only absolute run-paths are allowed"
+	    ;;
+	  esac
+	  if test "$prev" = rpath; then
+	    case "$rpath " in
+	    *" $arg "*) ;;
+	    *) rpath="$rpath $arg" ;;
+	    esac
+	  else
+	    case "$xrpath " in
+	    *" $arg "*) ;;
+	    *) xrpath="$xrpath $arg" ;;
+	    esac
+	  fi
+	  prev=
+	  continue
+	  ;;
+	shrext)
+	  shrext_cmds="$arg"
+	  prev=
+	  continue
+	  ;;
+	weak)
+	  weak_libs="$weak_libs $arg"
+	  prev=
+	  continue
+	  ;;
+	xcclinker)
+	  linker_flags="$linker_flags $qarg"
+	  compiler_flags="$compiler_flags $qarg"
+	  prev=
+	  func_append compile_command " $qarg"
+	  func_append finalize_command " $qarg"
+	  continue
+	  ;;
+	xcompiler)
+	  compiler_flags="$compiler_flags $qarg"
+	  prev=
+	  func_append compile_command " $qarg"
+	  func_append finalize_command " $qarg"
+	  continue
+	  ;;
+	xlinker)
+	  linker_flags="$linker_flags $qarg"
+	  compiler_flags="$compiler_flags $wl$qarg"
+	  prev=
+	  func_append compile_command " $wl$qarg"
+	  func_append finalize_command " $wl$qarg"
+	  continue
+	  ;;
+	*)
+	  eval "$prev=\"\$arg\""
+	  prev=
+	  continue
+	  ;;
+	esac
+      fi # test -n "$prev"
+
+      prevarg="$arg"
+
+      case $arg in
+      -all-static)
+	if test -n "$link_static_flag"; then
+	  # See comment for -static flag below, for more details.
+	  func_append compile_command " $link_static_flag"
+	  func_append finalize_command " $link_static_flag"
+	fi
+	continue
+	;;
+
+      -allow-undefined)
+	# FIXME: remove this flag sometime in the future.
+	func_fatal_error "\`-allow-undefined' must not be used because it is the default"
+	;;
+
+      -avoid-version)
+	avoid_version=yes
+	continue
+	;;
+
+      -dlopen)
+	prev=dlfiles
+	continue
+	;;
+
+      -dlpreopen)
+	prev=dlprefiles
+	continue
+	;;
+
+      -export-dynamic)
+	export_dynamic=yes
+	continue
+	;;
+
+      -export-symbols | -export-symbols-regex)
+	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+	  func_fatal_error "more than one -exported-symbols argument is not allowed"
+	fi
+	if test "X$arg" = "X-export-symbols"; then
+	  prev=expsyms
+	else
+	  prev=expsyms_regex
+	fi
+	continue
+	;;
+
+      -framework)
+	prev=framework
+	continue
+	;;
+
+      -inst-prefix-dir)
+	prev=inst_prefix
+	continue
+	;;
+
+      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
+      # so, if we see these flags be careful not to treat them like -L
+      -L[A-Z][A-Z]*:*)
+	case $with_gcc/$host in
+	no/*-*-irix* | /*-*-irix*)
+	  func_append compile_command " $arg"
+	  func_append finalize_command " $arg"
+	  ;;
+	esac
+	continue
+	;;
+
+      -L*)
+	func_stripname '-L' '' "$arg"
+	dir=$func_stripname_result
+	if test -z "$dir"; then
+	  if test "$#" -gt 0; then
+	    func_fatal_error "require no space between \`-L' and \`$1'"
+	  else
+	    func_fatal_error "need path for \`-L' option"
+	  fi
+	fi
+	# We need an absolute path.
+	case $dir in
+	[\\/]* | [A-Za-z]:[\\/]*) ;;
+	*)
+	  absdir=`cd "$dir" && pwd`
+	  test -z "$absdir" && \
+	    func_fatal_error "cannot determine absolute directory name of \`$dir'"
+	  dir="$absdir"
+	  ;;
+	esac
+	case "$deplibs " in
+	*" -L$dir "*) ;;
+	*)
+	  deplibs="$deplibs -L$dir"
+	  lib_search_path="$lib_search_path $dir"
+	  ;;
+	esac
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+	  testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`
+	  case :$dllsearchpath: in
+	  *":$dir:"*) ;;
+	  ::) dllsearchpath=$dir;;
+	  *) dllsearchpath="$dllsearchpath:$dir";;
+	  esac
+	  case :$dllsearchpath: in
+	  *":$testbindir:"*) ;;
+	  ::) dllsearchpath=$testbindir;;
+	  *) dllsearchpath="$dllsearchpath:$testbindir";;
+	  esac
+	  ;;
+	esac
+	continue
+	;;
+
+      -l*)
+	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
+	  case $host in
+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
+	    # These systems don't actually have a C or math library (as such)
+	    continue
+	    ;;
+	  *-*-os2*)
+	    # These systems don't actually have a C library (as such)
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+	    # Do not include libc due to us having libc/libc_r.
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  *-*-rhapsody* | *-*-darwin1.[012])
+	    # Rhapsody C and math libraries are in the System framework
+	    deplibs="$deplibs System.ltframework"
+	    continue
+	    ;;
+	  *-*-sco3.2v5* | *-*-sco5v6*)
+	    # Causes problems with __ctype
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+	    # Compiler inserts libc in the correct place for threads to work
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  esac
+	elif test "X$arg" = "X-lc_r"; then
+	 case $host in
+	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+	   # Do not include libc_r directly, use -pthread flag.
+	   continue
+	   ;;
+	 esac
+	fi
+	deplibs="$deplibs $arg"
+	continue
+	;;
+
+      -module)
+	module=yes
+	continue
+	;;
+
+      # Tru64 UNIX uses -model [arg] to determine the layout of C++
+      # classes, name mangling, and exception handling.
+      # Darwin uses the -arch flag to determine output architecture.
+      -model|-arch|-isysroot)
+	compiler_flags="$compiler_flags $arg"
+	func_append compile_command " $arg"
+	func_append finalize_command " $arg"
+	prev=xcompiler
+	continue
+	;;
+
+      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
+	compiler_flags="$compiler_flags $arg"
+	func_append compile_command " $arg"
+	func_append finalize_command " $arg"
+	case "$new_inherited_linker_flags " in
+	    *" $arg "*) ;;
+	    * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
+	esac
+	continue
+	;;
+
+      -multi_module)
+	single_module="${wl}-multi_module"
+	continue
+	;;
+
+      -no-fast-install)
+	fast_install=no
+	continue
+	;;
+
+      -no-install)
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
+	  # The PATH hackery in wrapper scripts is required on Windows
+	  # and Darwin in order for the loader to find any dlls it needs.
+	  func_warning "\`-no-install' is ignored for $host"
+	  func_warning "assuming \`-no-fast-install' instead"
+	  fast_install=no
+	  ;;
+	*) no_install=yes ;;
+	esac
+	continue
+	;;
+
+      -no-undefined)
+	allow_undefined=no
+	continue
+	;;
+
+      -objectlist)
+	prev=objectlist
+	continue
+	;;
+
+      -o) prev=output ;;
+
+      -precious-files-regex)
+	prev=precious_regex
+	continue
+	;;
+
+      -release)
+	prev=release
+	continue
+	;;
+
+      -rpath)
+	prev=rpath
+	continue
+	;;
+
+      -R)
+	prev=xrpath
+	continue
+	;;
+
+      -R*)
+	func_stripname '-R' '' "$arg"
+	dir=$func_stripname_result
+	# We need an absolute path.
+	case $dir in
+	[\\/]* | [A-Za-z]:[\\/]*) ;;
+	*)
+	  func_fatal_error "only absolute run-paths are allowed"
+	  ;;
+	esac
+	case "$xrpath " in
+	*" $dir "*) ;;
+	*) xrpath="$xrpath $dir" ;;
+	esac
+	continue
+	;;
+
+      -shared)
+	# The effects of -shared are defined in a previous loop.
+	continue
+	;;
+
+      -shrext)
+	prev=shrext
+	continue
+	;;
+
+      -static | -static-libtool-libs)
+	# The effects of -static are defined in a previous loop.
+	# We used to do the same as -all-static on platforms that
+	# didn't have a PIC flag, but the assumption that the effects
+	# would be equivalent was wrong.  It would break on at least
+	# Digital Unix and AIX.
+	continue
+	;;
+
+      -thread-safe)
+	thread_safe=yes
+	continue
+	;;
+
+      -version-info)
+	prev=vinfo
+	continue
+	;;
+
+      -version-number)
+	prev=vinfo
+	vinfo_number=yes
+	continue
+	;;
+
+      -weak)
+        prev=weak
+	continue
+	;;
+
+      -Wc,*)
+	func_stripname '-Wc,' '' "$arg"
+	args=$func_stripname_result
+	arg=
+	save_ifs="$IFS"; IFS=','
+	for flag in $args; do
+	  IFS="$save_ifs"
+          func_quote_for_eval "$flag"
+	  arg="$arg $wl$func_quote_for_eval_result"
+	  compiler_flags="$compiler_flags $func_quote_for_eval_result"
+	done
+	IFS="$save_ifs"
+	func_stripname ' ' '' "$arg"
+	arg=$func_stripname_result
+	;;
+
+      -Wl,*)
+	func_stripname '-Wl,' '' "$arg"
+	args=$func_stripname_result
+	arg=
+	save_ifs="$IFS"; IFS=','
+	for flag in $args; do
+	  IFS="$save_ifs"
+          func_quote_for_eval "$flag"
+	  arg="$arg $wl$func_quote_for_eval_result"
+	  compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"
+	  linker_flags="$linker_flags $func_quote_for_eval_result"
+	done
+	IFS="$save_ifs"
+	func_stripname ' ' '' "$arg"
+	arg=$func_stripname_result
+	;;
+
+      -Xcompiler)
+	prev=xcompiler
+	continue
+	;;
+
+      -Xlinker)
+	prev=xlinker
+	continue
+	;;
+
+      -XCClinker)
+	prev=xcclinker
+	continue
+	;;
+
+      # -msg_* for osf cc
+      -msg_*)
+	func_quote_for_eval "$arg"
+	arg="$func_quote_for_eval_result"
+	;;
+
+      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
+      # -r[0-9][0-9]* specifies the processor on the SGI compiler
+      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
+      # +DA*, +DD* enable 64-bit mode on the HP compiler
+      # -q* pass through compiler args for the IBM compiler
+      # -m*, -t[45]*, -txscale* pass through architecture-specific
+      # compiler args for GCC
+      # -F/path gives path to uninstalled frameworks, gcc on darwin
+      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
+      # @file GCC response files
+      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
+      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
+        func_quote_for_eval "$arg"
+	arg="$func_quote_for_eval_result"
+        func_append compile_command " $arg"
+        func_append finalize_command " $arg"
+        compiler_flags="$compiler_flags $arg"
+        continue
+        ;;
+
+      # Some other compiler flag.
+      -* | +*)
+        func_quote_for_eval "$arg"
+	arg="$func_quote_for_eval_result"
+	;;
+
+      *.$objext)
+	# A standard object.
+	objs="$objs $arg"
+	;;
+
+      *.lo)
+	# A libtool-controlled object.
+
+	# Check to see that this really is a libtool object.
+	if func_lalib_unsafe_p "$arg"; then
+	  pic_object=
+	  non_pic_object=
+
+	  # Read the .lo file
+	  func_source "$arg"
+
+	  if test -z "$pic_object" ||
+	     test -z "$non_pic_object" ||
+	     test "$pic_object" = none &&
+	     test "$non_pic_object" = none; then
+	    func_fatal_error "cannot find name of object for \`$arg'"
+	  fi
+
+	  # Extract subdirectory from the argument.
+	  func_dirname "$arg" "/" ""
+	  xdir="$func_dirname_result"
+
+	  if test "$pic_object" != none; then
+	    # Prepend the subdirectory the object is found in.
+	    pic_object="$xdir$pic_object"
+
+	    if test "$prev" = dlfiles; then
+	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+		dlfiles="$dlfiles $pic_object"
+		prev=
+		continue
+	      else
+		# If libtool objects are unsupported, then we need to preload.
+		prev=dlprefiles
+	      fi
+	    fi
+
+	    # CHECK ME:  I think I busted this.  -Ossama
+	    if test "$prev" = dlprefiles; then
+	      # Preload the old-style object.
+	      dlprefiles="$dlprefiles $pic_object"
+	      prev=
+	    fi
+
+	    # A PIC object.
+	    func_append libobjs " $pic_object"
+	    arg="$pic_object"
+	  fi
+
+	  # Non-PIC object.
+	  if test "$non_pic_object" != none; then
+	    # Prepend the subdirectory the object is found in.
+	    non_pic_object="$xdir$non_pic_object"
+
+	    # A standard non-PIC object
+	    func_append non_pic_objects " $non_pic_object"
+	    if test -z "$pic_object" || test "$pic_object" = none ; then
+	      arg="$non_pic_object"
+	    fi
+	  else
+	    # If the PIC object exists, use it instead.
+	    # $xdir was prepended to $pic_object above.
+	    non_pic_object="$pic_object"
+	    func_append non_pic_objects " $non_pic_object"
+	  fi
+	else
+	  # Only an error if not doing a dry-run.
+	  if $opt_dry_run; then
+	    # Extract subdirectory from the argument.
+	    func_dirname "$arg" "/" ""
+	    xdir="$func_dirname_result"
+
+	    func_lo2o "$arg"
+	    pic_object=$xdir$objdir/$func_lo2o_result
+	    non_pic_object=$xdir$func_lo2o_result
+	    func_append libobjs " $pic_object"
+	    func_append non_pic_objects " $non_pic_object"
+	  else
+	    func_fatal_error "\`$arg' is not a valid libtool object"
+	  fi
+	fi
+	;;
+
+      *.$libext)
+	# An archive.
+	deplibs="$deplibs $arg"
+	old_deplibs="$old_deplibs $arg"
+	continue
+	;;
+
+      *.la)
+	# A libtool-controlled library.
+
+	if test "$prev" = dlfiles; then
+	  # This library was specified with -dlopen.
+	  dlfiles="$dlfiles $arg"
+	  prev=
+	elif test "$prev" = dlprefiles; then
+	  # The library was specified with -dlpreopen.
+	  dlprefiles="$dlprefiles $arg"
+	  prev=
+	else
+	  deplibs="$deplibs $arg"
+	fi
+	continue
+	;;
+
+      # Some other compiler argument.
+      *)
+	# Unknown arguments in both finalize_command and compile_command need
+	# to be aesthetically quoted because they are evaled later.
+	func_quote_for_eval "$arg"
+	arg="$func_quote_for_eval_result"
+	;;
+      esac # arg
+
+      # Now actually substitute the argument into the commands.
+      if test -n "$arg"; then
+	func_append compile_command " $arg"
+	func_append finalize_command " $arg"
+      fi
+    done # argument parsing loop
+
+    test -n "$prev" && \
+      func_fatal_help "the \`$prevarg' option requires an argument"
+
+    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
+      eval arg=\"$export_dynamic_flag_spec\"
+      func_append compile_command " $arg"
+      func_append finalize_command " $arg"
+    fi
+
+    oldlibs=
+    # calculate the name of the file, without its directory
+    func_basename "$output"
+    outputname="$func_basename_result"
+    libobjs_save="$libobjs"
+
+    if test -n "$shlibpath_var"; then
+      # get the directories listed in $shlibpath_var
+      eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
+    else
+      shlib_search_path=
+    fi
+    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
+    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
+
+    func_dirname "$output" "/" ""
+    output_objdir="$func_dirname_result$objdir"
+    # Create the object directory.
+    func_mkdir_p "$output_objdir"
+
+    # Determine the type of output
+    case $output in
+    "")
+      func_fatal_help "you must specify an output file"
+      ;;
+    *.$libext) linkmode=oldlib ;;
+    *.lo | *.$objext) linkmode=obj ;;
+    *.la) linkmode=lib ;;
+    *) linkmode=prog ;; # Anything else should be a program.
+    esac
+
+    specialdeplibs=
+
+    libs=
+    # Find all interdependent deplibs by searching for libraries
+    # that are linked more than once (e.g. -la -lb -la)
+    for deplib in $deplibs; do
+      if $opt_duplicate_deps ; then
+	case "$libs " in
+	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	esac
+      fi
+      libs="$libs $deplib"
+    done
+
+    if test "$linkmode" = lib; then
+      libs="$predeps $libs $compiler_lib_search_path $postdeps"
+
+      # Compute libraries that are listed more than once in $predeps
+      # $postdeps and mark them as special (i.e., whose duplicates are
+      # not to be eliminated).
+      pre_post_deps=
+      if $opt_duplicate_compiler_generated_deps; then
+	for pre_post_dep in $predeps $postdeps; do
+	  case "$pre_post_deps " in
+	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
+	  esac
+	  pre_post_deps="$pre_post_deps $pre_post_dep"
+	done
+      fi
+      pre_post_deps=
+    fi
+
+    deplibs=
+    newdependency_libs=
+    newlib_search_path=
+    need_relink=no # whether we're linking any uninstalled libtool libraries
+    notinst_deplibs= # not-installed libtool libraries
+    notinst_path= # paths that contain not-installed libtool libraries
+
+    case $linkmode in
+    lib)
+	passes="conv dlpreopen link"
+	for file in $dlfiles $dlprefiles; do
+	  case $file in
+	  *.la) ;;
+	  *)
+	    func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
+	    ;;
+	  esac
+	done
+	;;
+    prog)
+	compile_deplibs=
+	finalize_deplibs=
+	alldeplibs=no
+	newdlfiles=
+	newdlprefiles=
+	passes="conv scan dlopen dlpreopen link"
+	;;
+    *)  passes="conv"
+	;;
+    esac
+
+    for pass in $passes; do
+      # The preopen pass in lib mode reverses $deplibs; put it back here
+      # so that -L comes before libs that need it for instance...
+      if test "$linkmode,$pass" = "lib,link"; then
+	## FIXME: Find the place where the list is rebuilt in the wrong
+	##        order, and fix it there properly
+        tmp_deplibs=
+	for deplib in $deplibs; do
+	  tmp_deplibs="$deplib $tmp_deplibs"
+	done
+	deplibs="$tmp_deplibs"
+      fi
+
+      if test "$linkmode,$pass" = "lib,link" ||
+	 test "$linkmode,$pass" = "prog,scan"; then
+	libs="$deplibs"
+	deplibs=
+      fi
+      if test "$linkmode" = prog; then
+	case $pass in
+	dlopen) libs="$dlfiles" ;;
+	dlpreopen) libs="$dlprefiles" ;;
+	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
+	esac
+      fi
+      if test "$linkmode,$pass" = "lib,dlpreopen"; then
+	# Collect and forward deplibs of preopened libtool libs
+	for lib in $dlprefiles; do
+	  # Ignore non-libtool-libs
+	  dependency_libs=
+	  case $lib in
+	  *.la)	func_source "$lib" ;;
+	  esac
+
+	  # Collect preopened libtool deplibs, except any this library
+	  # has declared as weak libs
+	  for deplib in $dependency_libs; do
+            deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"`
+	    case " $weak_libs " in
+	    *" $deplib_base "*) ;;
+	    *) deplibs="$deplibs $deplib" ;;
+	    esac
+	  done
+	done
+	libs="$dlprefiles"
+      fi
+      if test "$pass" = dlopen; then
+	# Collect dlpreopened libraries
+	save_deplibs="$deplibs"
+	deplibs=
+      fi
+
+      for deplib in $libs; do
+	lib=
+	found=no
+	case $deplib in
+	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
+	  if test "$linkmode,$pass" = "prog,link"; then
+	    compile_deplibs="$deplib $compile_deplibs"
+	    finalize_deplibs="$deplib $finalize_deplibs"
+	  else
+	    compiler_flags="$compiler_flags $deplib"
+	    if test "$linkmode" = lib ; then
+		case "$new_inherited_linker_flags " in
+		    *" $deplib "*) ;;
+		    * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
+		esac
+	    fi
+	  fi
+	  continue
+	  ;;
+	-l*)
+	  if test "$linkmode" != lib && test "$linkmode" != prog; then
+	    func_warning "\`-l' is ignored for archives/objects"
+	    continue
+	  fi
+	  func_stripname '-l' '' "$deplib"
+	  name=$func_stripname_result
+	  if test "$linkmode" = lib; then
+	    searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
+	  else
+	    searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
+	  fi
+	  for searchdir in $searchdirs; do
+	    for search_ext in .la $std_shrext .so .a; do
+	      # Search the libtool library
+	      lib="$searchdir/lib${name}${search_ext}"
+	      if test -f "$lib"; then
+		if test "$search_ext" = ".la"; then
+		  found=yes
+		else
+		  found=no
+		fi
+		break 2
+	      fi
+	    done
+	  done
+	  if test "$found" != yes; then
+	    # deplib doesn't seem to be a libtool library
+	    if test "$linkmode,$pass" = "prog,link"; then
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    else
+	      deplibs="$deplib $deplibs"
+	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+	    fi
+	    continue
+	  else # deplib is a libtool library
+	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
+	    # We need to do some special things here, and not later.
+	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+	      case " $predeps $postdeps " in
+	      *" $deplib "*)
+		if func_lalib_p "$lib"; then
+		  library_names=
+		  old_library=
+		  func_source "$lib"
+		  for l in $old_library $library_names; do
+		    ll="$l"
+		  done
+		  if test "X$ll" = "X$old_library" ; then # only static version available
+		    found=no
+		    func_dirname "$lib" "" "."
+		    ladir="$func_dirname_result"
+		    lib=$ladir/$old_library
+		    if test "$linkmode,$pass" = "prog,link"; then
+		      compile_deplibs="$deplib $compile_deplibs"
+		      finalize_deplibs="$deplib $finalize_deplibs"
+		    else
+		      deplibs="$deplib $deplibs"
+		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+		    fi
+		    continue
+		  fi
+		fi
+		;;
+	      *) ;;
+	      esac
+	    fi
+	  fi
+	  ;; # -l
+	*.ltframework)
+	  if test "$linkmode,$pass" = "prog,link"; then
+	    compile_deplibs="$deplib $compile_deplibs"
+	    finalize_deplibs="$deplib $finalize_deplibs"
+	  else
+	    deplibs="$deplib $deplibs"
+	    if test "$linkmode" = lib ; then
+		case "$new_inherited_linker_flags " in
+		    *" $deplib "*) ;;
+		    * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
+		esac
+	    fi
+	  fi
+	  continue
+	  ;;
+	-L*)
+	  case $linkmode in
+	  lib)
+	    deplibs="$deplib $deplibs"
+	    test "$pass" = conv && continue
+	    newdependency_libs="$deplib $newdependency_libs"
+	    func_stripname '-L' '' "$deplib"
+	    newlib_search_path="$newlib_search_path $func_stripname_result"
+	    ;;
+	  prog)
+	    if test "$pass" = conv; then
+	      deplibs="$deplib $deplibs"
+	      continue
+	    fi
+	    if test "$pass" = scan; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    fi
+	    func_stripname '-L' '' "$deplib"
+	    newlib_search_path="$newlib_search_path $func_stripname_result"
+	    ;;
+	  *)
+	    func_warning "\`-L' is ignored for archives/objects"
+	    ;;
+	  esac # linkmode
+	  continue
+	  ;; # -L
+	-R*)
+	  if test "$pass" = link; then
+	    func_stripname '-R' '' "$deplib"
+	    dir=$func_stripname_result
+	    # Make sure the xrpath contains only unique directories.
+	    case "$xrpath " in
+	    *" $dir "*) ;;
+	    *) xrpath="$xrpath $dir" ;;
+	    esac
+	  fi
+	  deplibs="$deplib $deplibs"
+	  continue
+	  ;;
+	*.la) lib="$deplib" ;;
+	*.$libext)
+	  if test "$pass" = conv; then
+	    deplibs="$deplib $deplibs"
+	    continue
+	  fi
+	  case $linkmode in
+	  lib)
+	    # Linking convenience modules into shared libraries is allowed,
+	    # but linking other static libraries is non-portable.
+	    case " $dlpreconveniencelibs " in
+	    *" $deplib "*) ;;
+	    *)
+	      valid_a_lib=no
+	      case $deplibs_check_method in
+		match_pattern*)
+		  set dummy $deplibs_check_method; shift
+		  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+		  if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \
+		    | $EGREP "$match_pattern_regex" > /dev/null; then
+		    valid_a_lib=yes
+		  fi
+		;;
+		pass_all)
+		  valid_a_lib=yes
+		;;
+	      esac
+	      if test "$valid_a_lib" != yes; then
+		$ECHO
+		$ECHO "*** Warning: Trying to link with static lib archive $deplib."
+		$ECHO "*** I have the capability to make that library automatically link in when"
+		$ECHO "*** you link to this library.  But I can only do this if you have a"
+		$ECHO "*** shared version of the library, which you do not appear to have"
+		$ECHO "*** because the file extensions .$libext of this argument makes me believe"
+		$ECHO "*** that it is just a static archive that I should not use here."
+	      else
+		$ECHO
+		$ECHO "*** Warning: Linking the shared library $output against the"
+		$ECHO "*** static library $deplib is not portable!"
+		deplibs="$deplib $deplibs"
+	      fi
+	      ;;
+	    esac
+	    continue
+	    ;;
+	  prog)
+	    if test "$pass" != link; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    fi
+	    continue
+	    ;;
+	  esac # linkmode
+	  ;; # *.$libext
+	*.lo | *.$objext)
+	  if test "$pass" = conv; then
+	    deplibs="$deplib $deplibs"
+	  elif test "$linkmode" = prog; then
+	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
+	      # If there is no dlopen support or we're linking statically,
+	      # we need to preload.
+	      newdlprefiles="$newdlprefiles $deplib"
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    else
+	      newdlfiles="$newdlfiles $deplib"
+	    fi
+	  fi
+	  continue
+	  ;;
+	%DEPLIBS%)
+	  alldeplibs=yes
+	  continue
+	  ;;
+	esac # case $deplib
+
+	if test "$found" = yes || test -f "$lib"; then :
+	else
+	  func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
+	fi
+
+	# Check to see that this really is a libtool archive.
+	func_lalib_unsafe_p "$lib" \
+	  || func_fatal_error "\`$lib' is not a valid libtool archive"
+
+	func_dirname "$lib" "" "."
+	ladir="$func_dirname_result"
+
+	dlname=
+	dlopen=
+	dlpreopen=
+	libdir=
+	library_names=
+	old_library=
+	inherited_linker_flags=
+	# If the library was installed with an old release of libtool,
+	# it will not redefine variables installed, or shouldnotlink
+	installed=yes
+	shouldnotlink=no
+	avoidtemprpath=
+
+
+	# Read the .la file
+	func_source "$lib"
+
+	# Convert "-framework foo" to "foo.ltframework"
+	if test -n "$inherited_linker_flags"; then
+	  tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
+	  for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
+	    case " $new_inherited_linker_flags " in
+	      *" $tmp_inherited_linker_flag "*) ;;
+	      *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
+	    esac
+	  done
+	fi
+	dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	if test "$linkmode,$pass" = "lib,link" ||
+	   test "$linkmode,$pass" = "prog,scan" ||
+	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
+	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
+	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
+	fi
+
+	if test "$pass" = conv; then
+	  # Only check for convenience libraries
+	  deplibs="$lib $deplibs"
+	  if test -z "$libdir"; then
+	    if test -z "$old_library"; then
+	      func_fatal_error "cannot find name of link library for \`$lib'"
+	    fi
+	    # It is a libtool convenience library, so add in its objects.
+	    convenience="$convenience $ladir/$objdir/$old_library"
+	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
+	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
+	    func_fatal_error "\`$lib' is not a convenience library"
+	  fi
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    deplibs="$deplib $deplibs"
+	    if $opt_duplicate_deps ; then
+	      case "$tmp_libs " in
+	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	      esac
+	    fi
+	    tmp_libs="$tmp_libs $deplib"
+	  done
+	  continue
+	fi # $pass = conv
+
+
+	# Get the name of the library we link against.
+	linklib=
+	for l in $old_library $library_names; do
+	  linklib="$l"
+	done
+	if test -z "$linklib"; then
+	  func_fatal_error "cannot find name of link library for \`$lib'"
+	fi
+
+	# This library was specified with -dlopen.
+	if test "$pass" = dlopen; then
+	  if test -z "$libdir"; then
+	    func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
+	  fi
+	  if test -z "$dlname" ||
+	     test "$dlopen_support" != yes ||
+	     test "$build_libtool_libs" = no; then
+	    # If there is no dlname, no dlopen support or we're linking
+	    # statically, we need to preload.  We also need to preload any
+	    # dependent libraries so libltdl's deplib preloader doesn't
+	    # bomb out in the load deplibs phase.
+	    dlprefiles="$dlprefiles $lib $dependency_libs"
+	  else
+	    newdlfiles="$newdlfiles $lib"
+	  fi
+	  continue
+	fi # $pass = dlopen
+
+	# We need an absolute path.
+	case $ladir in
+	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
+	*)
+	  abs_ladir=`cd "$ladir" && pwd`
+	  if test -z "$abs_ladir"; then
+	    func_warning "cannot determine absolute directory name of \`$ladir'"
+	    func_warning "passing it literally to the linker, although it might fail"
+	    abs_ladir="$ladir"
+	  fi
+	  ;;
+	esac
+	func_basename "$lib"
+	laname="$func_basename_result"
+
+	# Find the relevant object directory and library name.
+	if test "X$installed" = Xyes; then
+	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+	    func_warning "library \`$lib' was moved."
+	    dir="$ladir"
+	    absdir="$abs_ladir"
+	    libdir="$abs_ladir"
+	  else
+	    dir="$libdir"
+	    absdir="$libdir"
+	  fi
+	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
+	else
+	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+	    dir="$ladir"
+	    absdir="$abs_ladir"
+	    # Remove this search path later
+	    notinst_path="$notinst_path $abs_ladir"
+	  else
+	    dir="$ladir/$objdir"
+	    absdir="$abs_ladir/$objdir"
+	    # Remove this search path later
+	    notinst_path="$notinst_path $abs_ladir"
+	  fi
+	fi # $installed = yes
+	func_stripname 'lib' '.la' "$laname"
+	name=$func_stripname_result
+
+	# This library was specified with -dlpreopen.
+	if test "$pass" = dlpreopen; then
+	  if test -z "$libdir" && test "$linkmode" = prog; then
+	    func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
+	  fi
+	  # Prefer using a static library (so that no silly _DYNAMIC symbols
+	  # are required to link).
+	  if test -n "$old_library"; then
+	    newdlprefiles="$newdlprefiles $dir/$old_library"
+	    # Keep a list of preopened convenience libraries to check
+	    # that they are being used correctly in the link pass.
+	    test -z "$libdir" && \
+		dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
+	  # Otherwise, use the dlname, so that lt_dlopen finds it.
+	  elif test -n "$dlname"; then
+	    newdlprefiles="$newdlprefiles $dir/$dlname"
+	  else
+	    newdlprefiles="$newdlprefiles $dir/$linklib"
+	  fi
+	fi # $pass = dlpreopen
+
+	if test -z "$libdir"; then
+	  # Link the convenience library
+	  if test "$linkmode" = lib; then
+	    deplibs="$dir/$old_library $deplibs"
+	  elif test "$linkmode,$pass" = "prog,link"; then
+	    compile_deplibs="$dir/$old_library $compile_deplibs"
+	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
+	  else
+	    deplibs="$lib $deplibs" # used for prog,scan pass
+	  fi
+	  continue
+	fi
+
+
+	if test "$linkmode" = prog && test "$pass" != link; then
+	  newlib_search_path="$newlib_search_path $ladir"
+	  deplibs="$lib $deplibs"
+
+	  linkalldeplibs=no
+	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
+	     test "$build_libtool_libs" = no; then
+	    linkalldeplibs=yes
+	  fi
+
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    case $deplib in
+	    -L*) func_stripname '-L' '' "$deplib"
+	         newlib_search_path="$newlib_search_path $func_stripname_result"
+		 ;;
+	    esac
+	    # Need to link against all dependency_libs?
+	    if test "$linkalldeplibs" = yes; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      # Need to hardcode shared library paths
+	      # or/and link against static libraries
+	      newdependency_libs="$deplib $newdependency_libs"
+	    fi
+	    if $opt_duplicate_deps ; then
+	      case "$tmp_libs " in
+	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	      esac
+	    fi
+	    tmp_libs="$tmp_libs $deplib"
+	  done # for deplib
+	  continue
+	fi # $linkmode = prog...
+
+	if test "$linkmode,$pass" = "prog,link"; then
+	  if test -n "$library_names" &&
+	     { { test "$prefer_static_libs" = no ||
+	         test "$prefer_static_libs,$installed" = "built,yes"; } ||
+	       test -z "$old_library"; }; then
+	    # We need to hardcode the library path
+	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
+	      # Make sure the rpath contains only unique directories.
+	      case "$temp_rpath:" in
+	      *"$absdir:"*) ;;
+	      *) temp_rpath="$temp_rpath$absdir:" ;;
+	      esac
+	    fi
+
+	    # Hardcode the library path.
+	    # Skip directories that are in the system default run-time
+	    # search path.
+	    case " $sys_lib_dlsearch_path " in
+	    *" $absdir "*) ;;
+	    *)
+	      case "$compile_rpath " in
+	      *" $absdir "*) ;;
+	      *) compile_rpath="$compile_rpath $absdir"
+	      esac
+	      ;;
+	    esac
+	    case " $sys_lib_dlsearch_path " in
+	    *" $libdir "*) ;;
+	    *)
+	      case "$finalize_rpath " in
+	      *" $libdir "*) ;;
+	      *) finalize_rpath="$finalize_rpath $libdir"
+	      esac
+	      ;;
+	    esac
+	  fi # $linkmode,$pass = prog,link...
+
+	  if test "$alldeplibs" = yes &&
+	     { test "$deplibs_check_method" = pass_all ||
+	       { test "$build_libtool_libs" = yes &&
+		 test -n "$library_names"; }; }; then
+	    # We only need to search for static libraries
+	    continue
+	  fi
+	fi
+
+	link_static=no # Whether the deplib will be linked statically
+	use_static_libs=$prefer_static_libs
+	if test "$use_static_libs" = built && test "$installed" = yes; then
+	  use_static_libs=no
+	fi
+	if test -n "$library_names" &&
+	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
+	  case $host in
+	  *cygwin* | *mingw* | *cegcc*)
+	      # No point in relinking DLLs because paths are not encoded
+	      notinst_deplibs="$notinst_deplibs $lib"
+	      need_relink=no
+	    ;;
+	  *)
+	    if test "$installed" = no; then
+	      notinst_deplibs="$notinst_deplibs $lib"
+	      need_relink=yes
+	    fi
+	    ;;
+	  esac
+	  # This is a shared library
+
+	  # Warn about portability, can't link against -module's on some
+	  # systems (darwin).  Don't bleat about dlopened modules though!
+	  dlopenmodule=""
+	  for dlpremoduletest in $dlprefiles; do
+	    if test "X$dlpremoduletest" = "X$lib"; then
+	      dlopenmodule="$dlpremoduletest"
+	      break
+	    fi
+	  done
+	  if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
+	    $ECHO
+	    if test "$linkmode" = prog; then
+	      $ECHO "*** Warning: Linking the executable $output against the loadable module"
+	    else
+	      $ECHO "*** Warning: Linking the shared library $output against the loadable module"
+	    fi
+	    $ECHO "*** $linklib is not portable!"
+	  fi
+	  if test "$linkmode" = lib &&
+	     test "$hardcode_into_libs" = yes; then
+	    # Hardcode the library path.
+	    # Skip directories that are in the system default run-time
+	    # search path.
+	    case " $sys_lib_dlsearch_path " in
+	    *" $absdir "*) ;;
+	    *)
+	      case "$compile_rpath " in
+	      *" $absdir "*) ;;
+	      *) compile_rpath="$compile_rpath $absdir"
+	      esac
+	      ;;
+	    esac
+	    case " $sys_lib_dlsearch_path " in
+	    *" $libdir "*) ;;
+	    *)
+	      case "$finalize_rpath " in
+	      *" $libdir "*) ;;
+	      *) finalize_rpath="$finalize_rpath $libdir"
+	      esac
+	      ;;
+	    esac
+	  fi
+
+	  if test -n "$old_archive_from_expsyms_cmds"; then
+	    # figure out the soname
+	    set dummy $library_names
+	    shift
+	    realname="$1"
+	    shift
+	    libname=`eval "\\$ECHO \"$libname_spec\""`
+	    # use dlname if we got it. it's perfectly good, no?
+	    if test -n "$dlname"; then
+	      soname="$dlname"
+	    elif test -n "$soname_spec"; then
+	      # bleh windows
+	      case $host in
+	      *cygwin* | mingw* | *cegcc*)
+	        func_arith $current - $age
+		major=$func_arith_result
+		versuffix="-$major"
+		;;
+	      esac
+	      eval soname=\"$soname_spec\"
+	    else
+	      soname="$realname"
+	    fi
+
+	    # Make a new name for the extract_expsyms_cmds to use
+	    soroot="$soname"
+	    func_basename "$soroot"
+	    soname="$func_basename_result"
+	    func_stripname 'lib' '.dll' "$soname"
+	    newlib=libimp-$func_stripname_result.a
+
+	    # If the library has no export list, then create one now
+	    if test -f "$output_objdir/$soname-def"; then :
+	    else
+	      func_verbose "extracting exported symbol list from \`$soname'"
+	      func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
+	    fi
+
+	    # Create $newlib
+	    if test -f "$output_objdir/$newlib"; then :; else
+	      func_verbose "generating import library for \`$soname'"
+	      func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
+	    fi
+	    # make sure the library variables are pointing to the new library
+	    dir=$output_objdir
+	    linklib=$newlib
+	  fi # test -n "$old_archive_from_expsyms_cmds"
+
+	  if test "$linkmode" = prog || test "$mode" != relink; then
+	    add_shlibpath=
+	    add_dir=
+	    add=
+	    lib_linked=yes
+	    case $hardcode_action in
+	    immediate | unsupported)
+	      if test "$hardcode_direct" = no; then
+		add="$dir/$linklib"
+		case $host in
+		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
+		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
+		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
+		    *-*-unixware7*) add_dir="-L$dir" ;;
+		  *-*-darwin* )
+		    # if the lib is a (non-dlopened) module then we can not
+		    # link against it, someone is ignoring the earlier warnings
+		    if /usr/bin/file -L $add 2> /dev/null |
+			 $GREP ": [^:]* bundle" >/dev/null ; then
+		      if test "X$dlopenmodule" != "X$lib"; then
+			$ECHO "*** Warning: lib $linklib is a module, not a shared library"
+			if test -z "$old_library" ; then
+			  $ECHO
+			  $ECHO "*** And there doesn't seem to be a static archive available"
+			  $ECHO "*** The link will probably fail, sorry"
+			else
+			  add="$dir/$old_library"
+			fi
+		      elif test -n "$old_library"; then
+			add="$dir/$old_library"
+		      fi
+		    fi
+		esac
+	      elif test "$hardcode_minus_L" = no; then
+		case $host in
+		*-*-sunos*) add_shlibpath="$dir" ;;
+		esac
+		add_dir="-L$dir"
+		add="-l$name"
+	      elif test "$hardcode_shlibpath_var" = no; then
+		add_shlibpath="$dir"
+		add="-l$name"
+	      else
+		lib_linked=no
+	      fi
+	      ;;
+	    relink)
+	      if test "$hardcode_direct" = yes &&
+	         test "$hardcode_direct_absolute" = no; then
+		add="$dir/$linklib"
+	      elif test "$hardcode_minus_L" = yes; then
+		add_dir="-L$dir"
+		# Try looking first in the location we're being installed to.
+		if test -n "$inst_prefix_dir"; then
+		  case $libdir in
+		    [\\/]*)
+		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
+		      ;;
+		  esac
+		fi
+		add="-l$name"
+	      elif test "$hardcode_shlibpath_var" = yes; then
+		add_shlibpath="$dir"
+		add="-l$name"
+	      else
+		lib_linked=no
+	      fi
+	      ;;
+	    *) lib_linked=no ;;
+	    esac
+
+	    if test "$lib_linked" != yes; then
+	      func_fatal_configuration "unsupported hardcode properties"
+	    fi
+
+	    if test -n "$add_shlibpath"; then
+	      case :$compile_shlibpath: in
+	      *":$add_shlibpath:"*) ;;
+	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
+	      esac
+	    fi
+	    if test "$linkmode" = prog; then
+	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
+	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
+	    else
+	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
+	      test -n "$add" && deplibs="$add $deplibs"
+	      if test "$hardcode_direct" != yes &&
+		 test "$hardcode_minus_L" != yes &&
+		 test "$hardcode_shlibpath_var" = yes; then
+		case :$finalize_shlibpath: in
+		*":$libdir:"*) ;;
+		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+		esac
+	      fi
+	    fi
+	  fi
+
+	  if test "$linkmode" = prog || test "$mode" = relink; then
+	    add_shlibpath=
+	    add_dir=
+	    add=
+	    # Finalize command for both is simple: just hardcode it.
+	    if test "$hardcode_direct" = yes &&
+	       test "$hardcode_direct_absolute" = no; then
+	      add="$libdir/$linklib"
+	    elif test "$hardcode_minus_L" = yes; then
+	      add_dir="-L$libdir"
+	      add="-l$name"
+	    elif test "$hardcode_shlibpath_var" = yes; then
+	      case :$finalize_shlibpath: in
+	      *":$libdir:"*) ;;
+	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+	      esac
+	      add="-l$name"
+	    elif test "$hardcode_automatic" = yes; then
+	      if test -n "$inst_prefix_dir" &&
+		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
+		add="$inst_prefix_dir$libdir/$linklib"
+	      else
+		add="$libdir/$linklib"
+	      fi
+	    else
+	      # We cannot seem to hardcode it, guess we'll fake it.
+	      add_dir="-L$libdir"
+	      # Try looking first in the location we're being installed to.
+	      if test -n "$inst_prefix_dir"; then
+		case $libdir in
+		  [\\/]*)
+		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
+		    ;;
+		esac
+	      fi
+	      add="-l$name"
+	    fi
+
+	    if test "$linkmode" = prog; then
+	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
+	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
+	    else
+	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
+	      test -n "$add" && deplibs="$add $deplibs"
+	    fi
+	  fi
+	elif test "$linkmode" = prog; then
+	  # Here we assume that one of hardcode_direct or hardcode_minus_L
+	  # is not unsupported.  This is valid on all known static and
+	  # shared platforms.
+	  if test "$hardcode_direct" != unsupported; then
+	    test -n "$old_library" && linklib="$old_library"
+	    compile_deplibs="$dir/$linklib $compile_deplibs"
+	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
+	  else
+	    compile_deplibs="-l$name -L$dir $compile_deplibs"
+	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
+	  fi
+	elif test "$build_libtool_libs" = yes; then
+	  # Not a shared library
+	  if test "$deplibs_check_method" != pass_all; then
+	    # We're trying link a shared library against a static one
+	    # but the system doesn't support it.
+
+	    # Just print a warning and add the library to dependency_libs so
+	    # that the program can be linked against the static library.
+	    $ECHO
+	    $ECHO "*** Warning: This system can not link to static lib archive $lib."
+	    $ECHO "*** I have the capability to make that library automatically link in when"
+	    $ECHO "*** you link to this library.  But I can only do this if you have a"
+	    $ECHO "*** shared version of the library, which you do not appear to have."
+	    if test "$module" = yes; then
+	      $ECHO "*** But as you try to build a module library, libtool will still create "
+	      $ECHO "*** a static module, that should work as long as the dlopening application"
+	      $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime."
+	      if test -z "$global_symbol_pipe"; then
+		$ECHO
+		$ECHO "*** However, this would only work if libtool was able to extract symbol"
+		$ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
+		$ECHO "*** not find such a program.  So, this module is probably useless."
+		$ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
+	      fi
+	      if test "$build_old_libs" = no; then
+		build_libtool_libs=module
+		build_old_libs=yes
+	      else
+		build_libtool_libs=no
+	      fi
+	    fi
+	  else
+	    deplibs="$dir/$old_library $deplibs"
+	    link_static=yes
+	  fi
+	fi # link shared/static library?
+
+	if test "$linkmode" = lib; then
+	  if test -n "$dependency_libs" &&
+	     { test "$hardcode_into_libs" != yes ||
+	       test "$build_old_libs" = yes ||
+	       test "$link_static" = yes; }; then
+	    # Extract -R from dependency_libs
+	    temp_deplibs=
+	    for libdir in $dependency_libs; do
+	      case $libdir in
+	      -R*) func_stripname '-R' '' "$libdir"
+	           temp_xrpath=$func_stripname_result
+		   case " $xrpath " in
+		   *" $temp_xrpath "*) ;;
+		   *) xrpath="$xrpath $temp_xrpath";;
+		   esac;;
+	      *) temp_deplibs="$temp_deplibs $libdir";;
+	      esac
+	    done
+	    dependency_libs="$temp_deplibs"
+	  fi
+
+	  newlib_search_path="$newlib_search_path $absdir"
+	  # Link against this library
+	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
+	  # ... and its dependency_libs
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    newdependency_libs="$deplib $newdependency_libs"
+	    if $opt_duplicate_deps ; then
+	      case "$tmp_libs " in
+	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	      esac
+	    fi
+	    tmp_libs="$tmp_libs $deplib"
+	  done
+
+	  if test "$link_all_deplibs" != no; then
+	    # Add the search paths of all dependency libraries
+	    for deplib in $dependency_libs; do
+	      case $deplib in
+	      -L*) path="$deplib" ;;
+	      *.la)
+	        func_dirname "$deplib" "" "."
+		dir="$func_dirname_result"
+		# We need an absolute path.
+		case $dir in
+		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
+		*)
+		  absdir=`cd "$dir" && pwd`
+		  if test -z "$absdir"; then
+		    func_warning "cannot determine absolute directory name of \`$dir'"
+		    absdir="$dir"
+		  fi
+		  ;;
+		esac
+		if $GREP "^installed=no" $deplib > /dev/null; then
+		case $host in
+		*-*-darwin*)
+		  depdepl=
+		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
+		  if test -n "$deplibrary_names" ; then
+		    for tmp in $deplibrary_names ; do
+		      depdepl=$tmp
+		    done
+		    if test -f "$absdir/$objdir/$depdepl" ; then
+		      depdepl="$absdir/$objdir/$depdepl"
+		      darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
+                      if test -z "$darwin_install_name"; then
+                          darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
+                      fi
+		      compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
+		      linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
+		      path=
+		    fi
+		  fi
+		  ;;
+		*)
+		  path="-L$absdir/$objdir"
+		  ;;
+		esac
+		else
+		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+		  test -z "$libdir" && \
+		    func_fatal_error "\`$deplib' is not a valid libtool archive"
+		  test "$absdir" != "$libdir" && \
+		    func_warning "\`$deplib' seems to be moved"
+
+		  path="-L$absdir"
+		fi
+		;;
+	      esac
+	      case " $deplibs " in
+	      *" $path "*) ;;
+	      *) deplibs="$path $deplibs" ;;
+	      esac
+	    done
+	  fi # link_all_deplibs != no
+	fi # linkmode = lib
+      done # for deplib in $libs
+      if test "$pass" = link; then
+	if test "$linkmode" = "prog"; then
+	  compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
+	  finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
+	else
+	  compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	fi
+      fi
+      dependency_libs="$newdependency_libs"
+      if test "$pass" = dlpreopen; then
+	# Link the dlpreopened libraries before other libraries
+	for deplib in $save_deplibs; do
+	  deplibs="$deplib $deplibs"
+	done
+      fi
+      if test "$pass" != dlopen; then
+	if test "$pass" != conv; then
+	  # Make sure lib_search_path contains only unique directories.
+	  lib_search_path=
+	  for dir in $newlib_search_path; do
+	    case "$lib_search_path " in
+	    *" $dir "*) ;;
+	    *) lib_search_path="$lib_search_path $dir" ;;
+	    esac
+	  done
+	  newlib_search_path=
+	fi
+
+	if test "$linkmode,$pass" != "prog,link"; then
+	  vars="deplibs"
+	else
+	  vars="compile_deplibs finalize_deplibs"
+	fi
+	for var in $vars dependency_libs; do
+	  # Add libraries to $var in reverse order
+	  eval tmp_libs=\"\$$var\"
+	  new_libs=
+	  for deplib in $tmp_libs; do
+	    # FIXME: Pedantically, this is the right thing to do, so
+	    #        that some nasty dependency loop isn't accidentally
+	    #        broken:
+	    #new_libs="$deplib $new_libs"
+	    # Pragmatically, this seems to cause very few problems in
+	    # practice:
+	    case $deplib in
+	    -L*) new_libs="$deplib $new_libs" ;;
+	    -R*) ;;
+	    *)
+	      # And here is the reason: when a library appears more
+	      # than once as an explicit dependence of a library, or
+	      # is implicitly linked in more than once by the
+	      # compiler, it is considered special, and multiple
+	      # occurrences thereof are not removed.  Compare this
+	      # with having the same library being listed as a
+	      # dependency of multiple other libraries: in this case,
+	      # we know (pedantically, we assume) the library does not
+	      # need to be listed more than once, so we keep only the
+	      # last copy.  This is not always right, but it is rare
+	      # enough that we require users that really mean to play
+	      # such unportable linking tricks to link the library
+	      # using -Wl,-lname, so that libtool does not consider it
+	      # for duplicate removal.
+	      case " $specialdeplibs " in
+	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
+	      *)
+		case " $new_libs " in
+		*" $deplib "*) ;;
+		*) new_libs="$deplib $new_libs" ;;
+		esac
+		;;
+	      esac
+	      ;;
+	    esac
+	  done
+	  tmp_libs=
+	  for deplib in $new_libs; do
+	    case $deplib in
+	    -L*)
+	      case " $tmp_libs " in
+	      *" $deplib "*) ;;
+	      *) tmp_libs="$tmp_libs $deplib" ;;
+	      esac
+	      ;;
+	    *) tmp_libs="$tmp_libs $deplib" ;;
+	    esac
+	  done
+	  eval $var=\"$tmp_libs\"
+	done # for var
+      fi
+      # Last step: remove runtime libs from dependency_libs
+      # (they stay in deplibs)
+      tmp_libs=
+      for i in $dependency_libs ; do
+	case " $predeps $postdeps $compiler_lib_search_path " in
+	*" $i "*)
+	  i=""
+	  ;;
+	esac
+	if test -n "$i" ; then
+	  tmp_libs="$tmp_libs $i"
+	fi
+      done
+      dependency_libs=$tmp_libs
+    done # for pass
+    if test "$linkmode" = prog; then
+      dlfiles="$newdlfiles"
+    fi
+    if test "$linkmode" = prog || test "$linkmode" = lib; then
+      dlprefiles="$newdlprefiles"
+    fi
+
+    case $linkmode in
+    oldlib)
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+	func_warning "\`-dlopen' is ignored for archives"
+      fi
+
+      case " $deplibs" in
+      *\ -l* | *\ -L*)
+	func_warning "\`-l' and \`-L' are ignored for archives" ;;
+      esac
+
+      test -n "$rpath" && \
+	func_warning "\`-rpath' is ignored for archives"
+
+      test -n "$xrpath" && \
+	func_warning "\`-R' is ignored for archives"
+
+      test -n "$vinfo" && \
+	func_warning "\`-version-info/-version-number' is ignored for archives"
+
+      test -n "$release" && \
+	func_warning "\`-release' is ignored for archives"
+
+      test -n "$export_symbols$export_symbols_regex" && \
+	func_warning "\`-export-symbols' is ignored for archives"
+
+      # Now set the variables for building old libraries.
+      build_libtool_libs=no
+      oldlibs="$output"
+      objs="$objs$old_deplibs"
+      ;;
+
+    lib)
+      # Make sure we only generate libraries of the form `libNAME.la'.
+      case $outputname in
+      lib*)
+	func_stripname 'lib' '.la' "$outputname"
+	name=$func_stripname_result
+	eval shared_ext=\"$shrext_cmds\"
+	eval libname=\"$libname_spec\"
+	;;
+      *)
+	test "$module" = no && \
+	  func_fatal_help "libtool library \`$output' must begin with \`lib'"
+
+	if test "$need_lib_prefix" != no; then
+	  # Add the "lib" prefix for modules if required
+	  func_stripname '' '.la' "$outputname"
+	  name=$func_stripname_result
+	  eval shared_ext=\"$shrext_cmds\"
+	  eval libname=\"$libname_spec\"
+	else
+	  func_stripname '' '.la' "$outputname"
+	  libname=$func_stripname_result
+	fi
+	;;
+      esac
+
+      if test -n "$objs"; then
+	if test "$deplibs_check_method" != pass_all; then
+	  func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
+	else
+	  $ECHO
+	  $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
+	  $ECHO "*** objects $objs is not portable!"
+	  libobjs="$libobjs $objs"
+	fi
+      fi
+
+      test "$dlself" != no && \
+	func_warning "\`-dlopen self' is ignored for libtool libraries"
+
+      set dummy $rpath
+      shift
+      test "$#" -gt 1 && \
+	func_warning "ignoring multiple \`-rpath's for a libtool library"
+
+      install_libdir="$1"
+
+      oldlibs=
+      if test -z "$rpath"; then
+	if test "$build_libtool_libs" = yes; then
+	  # Building a libtool convenience library.
+	  # Some compilers have problems with a `.al' extension so
+	  # convenience libraries should have the same extension an
+	  # archive normally would.
+	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
+	  build_libtool_libs=convenience
+	  build_old_libs=yes
+	fi
+
+	test -n "$vinfo" && \
+	  func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
+
+	test -n "$release" && \
+	  func_warning "\`-release' is ignored for convenience libraries"
+      else
+
+	# Parse the version information argument.
+	save_ifs="$IFS"; IFS=':'
+	set dummy $vinfo 0 0 0
+	shift
+	IFS="$save_ifs"
+
+	test -n "$7" && \
+	  func_fatal_help "too many parameters to \`-version-info'"
+
+	# convert absolute version numbers to libtool ages
+	# this retains compatibility with .la files and attempts
+	# to make the code below a bit more comprehensible
+
+	case $vinfo_number in
+	yes)
+	  number_major="$1"
+	  number_minor="$2"
+	  number_revision="$3"
+	  #
+	  # There are really only two kinds -- those that
+	  # use the current revision as the major version
+	  # and those that subtract age and use age as
+	  # a minor version.  But, then there is irix
+	  # which has an extra 1 added just for fun
+	  #
+	  case $version_type in
+	  darwin|linux|osf|windows|none)
+	    func_arith $number_major + $number_minor
+	    current=$func_arith_result
+	    age="$number_minor"
+	    revision="$number_revision"
+	    ;;
+	  freebsd-aout|freebsd-elf|sunos)
+	    current="$number_major"
+	    revision="$number_minor"
+	    age="0"
+	    ;;
+	  irix|nonstopux)
+	    func_arith $number_major + $number_minor
+	    current=$func_arith_result
+	    age="$number_minor"
+	    revision="$number_minor"
+	    lt_irix_increment=no
+	    ;;
+	  esac
+	  ;;
+	no)
+	  current="$1"
+	  revision="$2"
+	  age="$3"
+	  ;;
+	esac
+
+	# Check that each of the things are valid numbers.
+	case $current in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  func_error "CURRENT \`$current' must be a nonnegative integer"
+	  func_fatal_error "\`$vinfo' is not valid version information"
+	  ;;
+	esac
+
+	case $revision in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  func_error "REVISION \`$revision' must be a nonnegative integer"
+	  func_fatal_error "\`$vinfo' is not valid version information"
+	  ;;
+	esac
+
+	case $age in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  func_error "AGE \`$age' must be a nonnegative integer"
+	  func_fatal_error "\`$vinfo' is not valid version information"
+	  ;;
+	esac
+
+	if test "$age" -gt "$current"; then
+	  func_error "AGE \`$age' is greater than the current interface number \`$current'"
+	  func_fatal_error "\`$vinfo' is not valid version information"
+	fi
+
+	# Calculate the version variables.
+	major=
+	versuffix=
+	verstring=
+	case $version_type in
+	none) ;;
+
+	darwin)
+	  # Like Linux, but with the current version available in
+	  # verstring for coding it into the library header
+	  func_arith $current - $age
+	  major=.$func_arith_result
+	  versuffix="$major.$age.$revision"
+	  # Darwin ld doesn't like 0 for these options...
+	  func_arith $current + 1
+	  minor_current=$func_arith_result
+	  xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
+	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+	  ;;
+
+	freebsd-aout)
+	  major=".$current"
+	  versuffix=".$current.$revision";
+	  ;;
+
+	freebsd-elf)
+	  major=".$current"
+	  versuffix=".$current"
+	  ;;
+
+	irix | nonstopux)
+	  if test "X$lt_irix_increment" = "Xno"; then
+	    func_arith $current - $age
+	  else
+	    func_arith $current - $age + 1
+	  fi
+	  major=$func_arith_result
+
+	  case $version_type in
+	    nonstopux) verstring_prefix=nonstopux ;;
+	    *)         verstring_prefix=sgi ;;
+	  esac
+	  verstring="$verstring_prefix$major.$revision"
+
+	  # Add in all the interfaces that we are compatible with.
+	  loop=$revision
+	  while test "$loop" -ne 0; do
+	    func_arith $revision - $loop
+	    iface=$func_arith_result
+	    func_arith $loop - 1
+	    loop=$func_arith_result
+	    verstring="$verstring_prefix$major.$iface:$verstring"
+	  done
+
+	  # Before this point, $major must not contain `.'.
+	  major=.$major
+	  versuffix="$major.$revision"
+	  ;;
+
+	linux)
+	  func_arith $current - $age
+	  major=.$func_arith_result
+	  versuffix="$major.$age.$revision"
+	  versuffix2="$major.$age"
+	  ;;
+
+	osf)
+	  func_arith $current - $age
+	  major=.$func_arith_result
+	  versuffix=".$current.$age.$revision"
+	  verstring="$current.$age.$revision"
+
+	  # Add in all the interfaces that we are compatible with.
+	  loop=$age
+	  while test "$loop" -ne 0; do
+	    func_arith $current - $loop
+	    iface=$func_arith_result
+	    func_arith $loop - 1
+	    loop=$func_arith_result
+	    verstring="$verstring:${iface}.0"
+	  done
+
+	  # Make executables depend on our current version.
+	  verstring="$verstring:${current}.0"
+	  ;;
+
+	qnx)
+	  major=".$current"
+	  versuffix=".$current"
+	  ;;
+
+	sunos)
+	  major=".$current"
+	  versuffix=".$current.$revision"
+	  ;;
+
+	windows)
+	  # Use '-' rather than '.', since we only want one
+	  # extension on DOS 8.3 filesystems.
+	  func_arith $current - $age
+	  major=$func_arith_result
+	  versuffix="-$major"
+	  ;;
+
+	*)
+	  func_fatal_configuration "unknown library version type \`$version_type'"
+	  ;;
+	esac
+
+	# Clear the version info if we defaulted, and they specified a release.
+	if test -z "$vinfo" && test -n "$release"; then
+	  major=
+	  case $version_type in
+	  darwin)
+	    # we can't check for "0.0" in archive_cmds due to quoting
+	    # problems, so we reset it completely
+	    verstring=
+	    ;;
+	  *)
+	    verstring="0.0"
+	    ;;
+	  esac
+	  if test "$need_version" = no; then
+	    versuffix=
+	    versuffix2=
+	  else
+	    versuffix=".0.0"
+	    versuffix2=".0.0"
+	  fi
+	fi
+
+	# Remove version info from name if versioning should be avoided
+	if test "$avoid_version" = yes && test "$need_version" = no; then
+	  major=
+	  versuffix=
+	  versuffix2=
+	  verstring=""
+	fi
+
+	# Check to see if the archive will have undefined symbols.
+	if test "$allow_undefined" = yes; then
+	  if test "$allow_undefined_flag" = unsupported; then
+	    func_warning "undefined symbols not allowed in $host shared libraries"
+	    build_libtool_libs=no
+	    build_old_libs=yes
+	  fi
+	else
+	  # Don't allow undefined symbols.
+	  allow_undefined_flag="$no_undefined_flag"
+	fi
+
+      fi
+
+      func_generate_dlsyms "$libname" "$libname" "yes"
+      libobjs="$libobjs $symfileobj"
+      test "X$libobjs" = "X " && libobjs=
+
+      if test "$mode" != relink; then
+	# Remove our outputs, but don't remove object files since they
+	# may have been created when compiling PIC objects.
+	removelist=
+	tempremovelist=`$ECHO "$output_objdir/*"`
+	for p in $tempremovelist; do
+	  case $p in
+	    *.$objext | *.gcno)
+	       ;;
+	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
+	       if test "X$precious_files_regex" != "X"; then
+		 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
+		 then
+		   continue
+		 fi
+	       fi
+	       removelist="$removelist $p"
+	       ;;
+	    *) ;;
+	  esac
+	done
+	test -n "$removelist" && \
+	  func_show_eval "${RM}r \$removelist"
+      fi
+
+      # Now set the variables for building old libraries.
+      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
+	oldlibs="$oldlibs $output_objdir/$libname.$libext"
+
+	# Transform .lo files to .o files.
+	oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
+      fi
+
+      # Eliminate all temporary directories.
+      #for path in $notinst_path; do
+      #	lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`
+      #	deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`
+      #	dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`
+      #done
+
+      if test -n "$xrpath"; then
+	# If the user specified any rpath flags, then add them.
+	temp_xrpath=
+	for libdir in $xrpath; do
+	  temp_xrpath="$temp_xrpath -R$libdir"
+	  case "$finalize_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_rpath="$finalize_rpath $libdir" ;;
+	  esac
+	done
+	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
+	  dependency_libs="$temp_xrpath $dependency_libs"
+	fi
+      fi
+
+      # Make sure dlfiles contains only unique files that won't be dlpreopened
+      old_dlfiles="$dlfiles"
+      dlfiles=
+      for lib in $old_dlfiles; do
+	case " $dlprefiles $dlfiles " in
+	*" $lib "*) ;;
+	*) dlfiles="$dlfiles $lib" ;;
+	esac
+      done
+
+      # Make sure dlprefiles contains only unique files
+      old_dlprefiles="$dlprefiles"
+      dlprefiles=
+      for lib in $old_dlprefiles; do
+	case "$dlprefiles " in
+	*" $lib "*) ;;
+	*) dlprefiles="$dlprefiles $lib" ;;
+	esac
+      done
+
+      if test "$build_libtool_libs" = yes; then
+	if test -n "$rpath"; then
+	  case $host in
+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
+	    # these systems don't actually have a c library (as such)!
+	    ;;
+	  *-*-rhapsody* | *-*-darwin1.[012])
+	    # Rhapsody C library is in the System framework
+	    deplibs="$deplibs System.ltframework"
+	    ;;
+	  *-*-netbsd*)
+	    # Don't link with libc until the a.out ld.so is fixed.
+	    ;;
+	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+	    # Do not include libc due to us having libc/libc_r.
+	    ;;
+	  *-*-sco3.2v5* | *-*-sco5v6*)
+	    # Causes problems with __ctype
+	    ;;
+	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+	    # Compiler inserts libc in the correct place for threads to work
+	    ;;
+	  *)
+	    # Add libc to deplibs on all other systems if necessary.
+	    if test "$build_libtool_need_lc" = "yes"; then
+	      deplibs="$deplibs -lc"
+	    fi
+	    ;;
+	  esac
+	fi
+
+	# Transform deplibs into only deplibs that can be linked in shared.
+	name_save=$name
+	libname_save=$libname
+	release_save=$release
+	versuffix_save=$versuffix
+	major_save=$major
+	# I'm not sure if I'm treating the release correctly.  I think
+	# release should show up in the -l (ie -lgmp5) so we don't want to
+	# add it in twice.  Is that correct?
+	release=""
+	versuffix=""
+	major=""
+	newdeplibs=
+	droppeddeps=no
+	case $deplibs_check_method in
+	pass_all)
+	  # Don't check for shared/static.  Everything works.
+	  # This might be a little naive.  We might want to check
+	  # whether the library exists or not.  But this is on
+	  # osf3 & osf4 and I'm not really sure... Just
+	  # implementing what was already the behavior.
+	  newdeplibs=$deplibs
+	  ;;
+	test_compile)
+	  # This code stresses the "libraries are programs" paradigm to its
+	  # limits. Maybe even breaks it.  We compile a program, linking it
+	  # against the deplibs as a proxy for the library.  Then we can check
+	  # whether they linked in statically or dynamically with ldd.
+	  $opt_dry_run || $RM conftest.c
+	  cat > conftest.c <<EOF
+	  int main() { return 0; }
+EOF
+	  $opt_dry_run || $RM conftest
+	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
+	    ldd_output=`ldd conftest`
+	    for i in $deplibs; do
+	      case $i in
+	      -l*)
+		func_stripname -l '' "$i"
+		name=$func_stripname_result
+		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		  case " $predeps $postdeps " in
+		  *" $i "*)
+		    newdeplibs="$newdeplibs $i"
+		    i=""
+		    ;;
+		  esac
+		fi
+		if test -n "$i" ; then
+		  libname=`eval "\\$ECHO \"$libname_spec\""`
+		  deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+		  set dummy $deplib_matches; shift
+		  deplib_match=$1
+		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+		    newdeplibs="$newdeplibs $i"
+		  else
+		    droppeddeps=yes
+		    $ECHO
+		    $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+		    $ECHO "*** I have the capability to make that library automatically link in when"
+		    $ECHO "*** you link to this library.  But I can only do this if you have a"
+		    $ECHO "*** shared version of the library, which I believe you do not have"
+		    $ECHO "*** because a test_compile did reveal that the linker did not use it for"
+		    $ECHO "*** its dynamic dependency list that programs get resolved with at runtime."
+		  fi
+		fi
+		;;
+	      *)
+		newdeplibs="$newdeplibs $i"
+		;;
+	      esac
+	    done
+	  else
+	    # Error occurred in the first compile.  Let's try to salvage
+	    # the situation: Compile a separate program for each library.
+	    for i in $deplibs; do
+	      case $i in
+	      -l*)
+		func_stripname -l '' "$i"
+		name=$func_stripname_result
+		$opt_dry_run || $RM conftest
+		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
+		  ldd_output=`ldd conftest`
+		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		    case " $predeps $postdeps " in
+		    *" $i "*)
+		      newdeplibs="$newdeplibs $i"
+		      i=""
+		      ;;
+		    esac
+		  fi
+		  if test -n "$i" ; then
+		    libname=`eval "\\$ECHO \"$libname_spec\""`
+		    deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+		    set dummy $deplib_matches; shift
+		    deplib_match=$1
+		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+		      newdeplibs="$newdeplibs $i"
+		    else
+		      droppeddeps=yes
+		      $ECHO
+		      $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+		      $ECHO "*** I have the capability to make that library automatically link in when"
+		      $ECHO "*** you link to this library.  But I can only do this if you have a"
+		      $ECHO "*** shared version of the library, which you do not appear to have"
+		      $ECHO "*** because a test_compile did reveal that the linker did not use this one"
+		      $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime."
+		    fi
+		  fi
+		else
+		  droppeddeps=yes
+		  $ECHO
+		  $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
+		  $ECHO "*** make it link in!  You will probably need to install it or some"
+		  $ECHO "*** library that it depends on before this library will be fully"
+		  $ECHO "*** functional.  Installing it before continuing would be even better."
+		fi
+		;;
+	      *)
+		newdeplibs="$newdeplibs $i"
+		;;
+	      esac
+	    done
+	  fi
+	  ;;
+	file_magic*)
+	  set dummy $deplibs_check_method; shift
+	  file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+	  for a_deplib in $deplibs; do
+	    case $a_deplib in
+	    -l*)
+	      func_stripname -l '' "$a_deplib"
+	      name=$func_stripname_result
+	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		case " $predeps $postdeps " in
+		*" $a_deplib "*)
+		  newdeplibs="$newdeplibs $a_deplib"
+		  a_deplib=""
+		  ;;
+		esac
+	      fi
+	      if test -n "$a_deplib" ; then
+		libname=`eval "\\$ECHO \"$libname_spec\""`
+		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+		  for potent_lib in $potential_libs; do
+		      # Follow soft links.
+		      if ls -lLd "$potent_lib" 2>/dev/null |
+			 $GREP " -> " >/dev/null; then
+			continue
+		      fi
+		      # The statement above tries to avoid entering an
+		      # endless loop below, in case of cyclic links.
+		      # We might still enter an endless loop, since a link
+		      # loop can be closed while we follow links,
+		      # but so what?
+		      potlib="$potent_lib"
+		      while test -h "$potlib" 2>/dev/null; do
+			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
+			case $potliblink in
+			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
+			*) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
+			esac
+		      done
+		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
+			 $SED -e 10q |
+			 $EGREP "$file_magic_regex" > /dev/null; then
+			newdeplibs="$newdeplibs $a_deplib"
+			a_deplib=""
+			break 2
+		      fi
+		  done
+		done
+	      fi
+	      if test -n "$a_deplib" ; then
+		droppeddeps=yes
+		$ECHO
+		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
+		$ECHO "*** I have the capability to make that library automatically link in when"
+		$ECHO "*** you link to this library.  But I can only do this if you have a"
+		$ECHO "*** shared version of the library, which you do not appear to have"
+		$ECHO "*** because I did check the linker path looking for a file starting"
+		if test -z "$potlib" ; then
+		  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
+		else
+		  $ECHO "*** with $libname and none of the candidates passed a file format test"
+		  $ECHO "*** using a file magic. Last file checked: $potlib"
+		fi
+	      fi
+	      ;;
+	    *)
+	      # Add a -L argument.
+	      newdeplibs="$newdeplibs $a_deplib"
+	      ;;
+	    esac
+	  done # Gone through all deplibs.
+	  ;;
+	match_pattern*)
+	  set dummy $deplibs_check_method; shift
+	  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+	  for a_deplib in $deplibs; do
+	    case $a_deplib in
+	    -l*)
+	      func_stripname -l '' "$a_deplib"
+	      name=$func_stripname_result
+	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		case " $predeps $postdeps " in
+		*" $a_deplib "*)
+		  newdeplibs="$newdeplibs $a_deplib"
+		  a_deplib=""
+		  ;;
+		esac
+	      fi
+	      if test -n "$a_deplib" ; then
+		libname=`eval "\\$ECHO \"$libname_spec\""`
+		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+		  for potent_lib in $potential_libs; do
+		    potlib="$potent_lib" # see symlink-check above in file_magic test
+		    if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \
+		       $EGREP "$match_pattern_regex" > /dev/null; then
+		      newdeplibs="$newdeplibs $a_deplib"
+		      a_deplib=""
+		      break 2
+		    fi
+		  done
+		done
+	      fi
+	      if test -n "$a_deplib" ; then
+		droppeddeps=yes
+		$ECHO
+		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
+		$ECHO "*** I have the capability to make that library automatically link in when"
+		$ECHO "*** you link to this library.  But I can only do this if you have a"
+		$ECHO "*** shared version of the library, which you do not appear to have"
+		$ECHO "*** because I did check the linker path looking for a file starting"
+		if test -z "$potlib" ; then
+		  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
+		else
+		  $ECHO "*** with $libname and none of the candidates passed a file format test"
+		  $ECHO "*** using a regex pattern. Last file checked: $potlib"
+		fi
+	      fi
+	      ;;
+	    *)
+	      # Add a -L argument.
+	      newdeplibs="$newdeplibs $a_deplib"
+	      ;;
+	    esac
+	  done # Gone through all deplibs.
+	  ;;
+	none | unknown | *)
+	  newdeplibs=""
+	  tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \
+	      -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`
+	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+	    for i in $predeps $postdeps ; do
+	      # can't use Xsed below, because $i might contain '/'
+	      tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
+	    done
+	  fi
+	  if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[	 ]//g' |
+	     $GREP . >/dev/null; then
+	    $ECHO
+	    if test "X$deplibs_check_method" = "Xnone"; then
+	      $ECHO "*** Warning: inter-library dependencies are not supported in this platform."
+	    else
+	      $ECHO "*** Warning: inter-library dependencies are not known to be supported."
+	    fi
+	    $ECHO "*** All declared inter-library dependencies are being dropped."
+	    droppeddeps=yes
+	  fi
+	  ;;
+	esac
+	versuffix=$versuffix_save
+	major=$major_save
+	release=$release_save
+	libname=$libname_save
+	name=$name_save
+
+	case $host in
+	*-*-rhapsody* | *-*-darwin1.[012])
+	  # On Rhapsody replace the C library with the System framework
+	  newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+	  ;;
+	esac
+
+	if test "$droppeddeps" = yes; then
+	  if test "$module" = yes; then
+	    $ECHO
+	    $ECHO "*** Warning: libtool could not satisfy all declared inter-library"
+	    $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
+	    $ECHO "*** a static module, that should work as long as the dlopening"
+	    $ECHO "*** application is linked with the -dlopen flag."
+	    if test -z "$global_symbol_pipe"; then
+	      $ECHO
+	      $ECHO "*** However, this would only work if libtool was able to extract symbol"
+	      $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
+	      $ECHO "*** not find such a program.  So, this module is probably useless."
+	      $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
+	    fi
+	    if test "$build_old_libs" = no; then
+	      oldlibs="$output_objdir/$libname.$libext"
+	      build_libtool_libs=module
+	      build_old_libs=yes
+	    else
+	      build_libtool_libs=no
+	    fi
+	  else
+	    $ECHO "*** The inter-library dependencies that have been dropped here will be"
+	    $ECHO "*** automatically added whenever a program is linked with this library"
+	    $ECHO "*** or is declared to -dlopen it."
+
+	    if test "$allow_undefined" = no; then
+	      $ECHO
+	      $ECHO "*** Since this library must not contain undefined symbols,"
+	      $ECHO "*** because either the platform does not support them or"
+	      $ECHO "*** it was explicitly requested with -no-undefined,"
+	      $ECHO "*** libtool will only create a static version of it."
+	      if test "$build_old_libs" = no; then
+		oldlibs="$output_objdir/$libname.$libext"
+		build_libtool_libs=module
+		build_old_libs=yes
+	      else
+		build_libtool_libs=no
+	      fi
+	    fi
+	  fi
+	fi
+	# Done checking deplibs!
+	deplibs=$newdeplibs
+      fi
+      # Time to change all our "foo.ltframework" stuff back to "-framework foo"
+      case $host in
+	*-*-darwin*)
+	  newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	  new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	  deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	  ;;
+      esac
+
+      # move library search paths that coincide with paths to not yet
+      # installed libraries to the beginning of the library search list
+      new_libs=
+      for path in $notinst_path; do
+	case " $new_libs " in
+	*" -L$path/$objdir "*) ;;
+	*)
+	  case " $deplibs " in
+	  *" -L$path/$objdir "*)
+	    new_libs="$new_libs -L$path/$objdir" ;;
+	  esac
+	  ;;
+	esac
+      done
+      for deplib in $deplibs; do
+	case $deplib in
+	-L*)
+	  case " $new_libs " in
+	  *" $deplib "*) ;;
+	  *) new_libs="$new_libs $deplib" ;;
+	  esac
+	  ;;
+	*) new_libs="$new_libs $deplib" ;;
+	esac
+      done
+      deplibs="$new_libs"
+
+      # All the library-specific variables (install_libdir is set above).
+      library_names=
+      old_library=
+      dlname=
+
+      # Test again, we may have decided not to build it any more
+      if test "$build_libtool_libs" = yes; then
+	if test "$hardcode_into_libs" = yes; then
+	  # Hardcode the library paths
+	  hardcode_libdirs=
+	  dep_rpath=
+	  rpath="$finalize_rpath"
+	  test "$mode" != relink && rpath="$compile_rpath$rpath"
+	  for libdir in $rpath; do
+	    if test -n "$hardcode_libdir_flag_spec"; then
+	      if test -n "$hardcode_libdir_separator"; then
+		if test -z "$hardcode_libdirs"; then
+		  hardcode_libdirs="$libdir"
+		else
+		  # Just accumulate the unique libdirs.
+		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		    ;;
+		  *)
+		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		    ;;
+		  esac
+		fi
+	      else
+		eval flag=\"$hardcode_libdir_flag_spec\"
+		dep_rpath="$dep_rpath $flag"
+	      fi
+	    elif test -n "$runpath_var"; then
+	      case "$perm_rpath " in
+	      *" $libdir "*) ;;
+	      *) perm_rpath="$perm_rpath $libdir" ;;
+	      esac
+	    fi
+	  done
+	  # Substitute the hardcoded libdirs into the rpath.
+	  if test -n "$hardcode_libdir_separator" &&
+	     test -n "$hardcode_libdirs"; then
+	    libdir="$hardcode_libdirs"
+	    if test -n "$hardcode_libdir_flag_spec_ld"; then
+	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
+	    else
+	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
+	    fi
+	  fi
+	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
+	    # We should set the runpath_var.
+	    rpath=
+	    for dir in $perm_rpath; do
+	      rpath="$rpath$dir:"
+	    done
+	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
+	  fi
+	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
+	fi
+
+	shlibpath="$finalize_shlibpath"
+	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+	if test -n "$shlibpath"; then
+	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
+	fi
+
+	# Get the real and link names of the library.
+	eval shared_ext=\"$shrext_cmds\"
+	eval library_names=\"$library_names_spec\"
+	set dummy $library_names
+	shift
+	realname="$1"
+	shift
+
+	if test -n "$soname_spec"; then
+	  eval soname=\"$soname_spec\"
+	else
+	  soname="$realname"
+	fi
+	if test -z "$dlname"; then
+	  dlname=$soname
+	fi
+
+	lib="$output_objdir/$realname"
+	linknames=
+	for link
+	do
+	  linknames="$linknames $link"
+	done
+
+	# Use standard objects if they are pic
+	test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	test "X$libobjs" = "X " && libobjs=
+
+	delfiles=
+	if test -n "$export_symbols" && test -n "$include_expsyms"; then
+	  $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
+	  export_symbols="$output_objdir/$libname.uexp"
+	  delfiles="$delfiles $export_symbols"
+	fi
+
+	orig_export_symbols=
+	case $host_os in
+	cygwin* | mingw* | cegcc*)
+	  if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
+	    # exporting using user supplied symfile
+	    if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
+	      # and it's NOT already a .def file. Must figure out
+	      # which of the given symbols are data symbols and tag
+	      # them as such. So, trigger use of export_symbols_cmds.
+	      # export_symbols gets reassigned inside the "prepare
+	      # the list of exported symbols" if statement, so the
+	      # include_expsyms logic still works.
+	      orig_export_symbols="$export_symbols"
+	      export_symbols=
+	      always_export_symbols=yes
+	    fi
+	  fi
+	  ;;
+	esac
+
+	# Prepare the list of exported symbols
+	if test -z "$export_symbols"; then
+	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
+	    func_verbose "generating symbol list for \`$libname.la'"
+	    export_symbols="$output_objdir/$libname.exp"
+	    $opt_dry_run || $RM $export_symbols
+	    cmds=$export_symbols_cmds
+	    save_ifs="$IFS"; IFS='~'
+	    for cmd in $cmds; do
+	      IFS="$save_ifs"
+	      eval cmd=\"$cmd\"
+	      func_len " $cmd"
+	      len=$func_len_result
+	      if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+		func_show_eval "$cmd" 'exit $?'
+		skipped_export=false
+	      else
+		# The command line is too long to execute in one step.
+		func_verbose "using reloadable object file for export list..."
+		skipped_export=:
+		# Break out early, otherwise skipped_export may be
+		# set to false by a later but shorter cmd.
+		break
+	      fi
+	    done
+	    IFS="$save_ifs"
+	    if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
+	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
+	    fi
+	  fi
+	fi
+
+	if test -n "$export_symbols" && test -n "$include_expsyms"; then
+	  tmp_export_symbols="$export_symbols"
+	  test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
+	  $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
+	fi
+
+	if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
+	  # The given exports_symbols file has to be filtered, so filter it.
+	  func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
+	  # FIXME: $output_objdir/$libname.filter potentially contains lots of
+	  # 's' commands which not all seds can handle. GNU sed should be fine
+	  # though. Also, the filter scales superlinearly with the number of
+	  # global variables. join(1) would be nice here, but unfortunately
+	  # isn't a blessed tool.
+	  $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
+	  delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
+	  export_symbols=$output_objdir/$libname.def
+	  $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
+	fi
+
+	tmp_deplibs=
+	for test_deplib in $deplibs; do
+	  case " $convenience " in
+	  *" $test_deplib "*) ;;
+	  *)
+	    tmp_deplibs="$tmp_deplibs $test_deplib"
+	    ;;
+	  esac
+	done
+	deplibs="$tmp_deplibs"
+
+	if test -n "$convenience"; then
+	  if test -n "$whole_archive_flag_spec" &&
+	    test "$compiler_needs_object" = yes &&
+	    test -z "$libobjs"; then
+	    # extract the archives, so we have objects to list.
+	    # TODO: could optimize this to just extract one archive.
+	    whole_archive_flag_spec=
+	  fi
+	  if test -n "$whole_archive_flag_spec"; then
+	    save_libobjs=$libobjs
+	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+	    test "X$libobjs" = "X " && libobjs=
+	  else
+	    gentop="$output_objdir/${outputname}x"
+	    generated="$generated $gentop"
+
+	    func_extract_archives $gentop $convenience
+	    libobjs="$libobjs $func_extract_archives_result"
+	    test "X$libobjs" = "X " && libobjs=
+	  fi
+	fi
+
+	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
+	  eval flag=\"$thread_safe_flag_spec\"
+	  linker_flags="$linker_flags $flag"
+	fi
+
+	# Make a backup of the uninstalled library when relinking
+	if test "$mode" = relink; then
+	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
+	fi
+
+	# Do each of the archive commands.
+	if test "$module" = yes && test -n "$module_cmds" ; then
+	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+	    eval test_cmds=\"$module_expsym_cmds\"
+	    cmds=$module_expsym_cmds
+	  else
+	    eval test_cmds=\"$module_cmds\"
+	    cmds=$module_cmds
+	  fi
+	else
+	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+	    eval test_cmds=\"$archive_expsym_cmds\"
+	    cmds=$archive_expsym_cmds
+	  else
+	    eval test_cmds=\"$archive_cmds\"
+	    cmds=$archive_cmds
+	  fi
+	fi
+
+	if test "X$skipped_export" != "X:" &&
+	   func_len " $test_cmds" &&
+	   len=$func_len_result &&
+	   test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	  :
+	else
+	  # The command line is too long to link in one step, link piecewise
+	  # or, if using GNU ld and skipped_export is not :, use a linker
+	  # script.
+
+	  # Save the value of $output and $libobjs because we want to
+	  # use them later.  If we have whole_archive_flag_spec, we
+	  # want to use save_libobjs as it was before
+	  # whole_archive_flag_spec was expanded, because we can't
+	  # assume the linker understands whole_archive_flag_spec.
+	  # This may have to be revisited, in case too many
+	  # convenience libraries get linked in and end up exceeding
+	  # the spec.
+	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
+	    save_libobjs=$libobjs
+	  fi
+	  save_output=$output
+	  output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
+
+	  # Clear the reloadable object creation command queue and
+	  # initialize k to one.
+	  test_cmds=
+	  concat_cmds=
+	  objlist=
+	  last_robj=
+	  k=1
+
+	  if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
+	    output=${output_objdir}/${output_la}.lnkscript
+	    func_verbose "creating GNU ld script: $output"
+	    $ECHO 'INPUT (' > $output
+	    for obj in $save_libobjs
+	    do
+	      $ECHO "$obj" >> $output
+	    done
+	    $ECHO ')' >> $output
+	    delfiles="$delfiles $output"
+	  elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
+	    output=${output_objdir}/${output_la}.lnk
+	    func_verbose "creating linker input file list: $output"
+	    : > $output
+	    set x $save_libobjs
+	    shift
+	    firstobj=
+	    if test "$compiler_needs_object" = yes; then
+	      firstobj="$1 "
+	      shift
+	    fi
+	    for obj
+	    do
+	      $ECHO "$obj" >> $output
+	    done
+	    delfiles="$delfiles $output"
+	    output=$firstobj\"$file_list_spec$output\"
+	  else
+	    if test -n "$save_libobjs"; then
+	      func_verbose "creating reloadable object files..."
+	      output=$output_objdir/$output_la-${k}.$objext
+	      eval test_cmds=\"$reload_cmds\"
+	      func_len " $test_cmds"
+	      len0=$func_len_result
+	      len=$len0
+
+	      # Loop over the list of objects to be linked.
+	      for obj in $save_libobjs
+	      do
+		func_len " $obj"
+		func_arith $len + $func_len_result
+		len=$func_arith_result
+		if test "X$objlist" = X ||
+		   test "$len" -lt "$max_cmd_len"; then
+		  func_append objlist " $obj"
+		else
+		  # The command $test_cmds is almost too long, add a
+		  # command to the queue.
+		  if test "$k" -eq 1 ; then
+		    # The first file doesn't have a previous command to add.
+		    eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
+		  else
+		    # All subsequent reloadable object files will link in
+		    # the last one created.
+		    eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\"
+		  fi
+		  last_robj=$output_objdir/$output_la-${k}.$objext
+		  func_arith $k + 1
+		  k=$func_arith_result
+		  output=$output_objdir/$output_la-${k}.$objext
+		  objlist=$obj
+		  func_len " $last_robj"
+		  func_arith $len0 + $func_len_result
+		  len=$func_arith_result
+		fi
+	      done
+	      # Handle the remaining objects by creating one last
+	      # reloadable object file.  All subsequent reloadable object
+	      # files will link in the last one created.
+	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	      eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
+	      if test -n "$last_robj"; then
+	        eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
+	      fi
+	      delfiles="$delfiles $output"
+
+	    else
+	      output=
+	    fi
+
+	    if ${skipped_export-false}; then
+	      func_verbose "generating symbol list for \`$libname.la'"
+	      export_symbols="$output_objdir/$libname.exp"
+	      $opt_dry_run || $RM $export_symbols
+	      libobjs=$output
+	      # Append the command to create the export file.
+	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	      eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
+	      if test -n "$last_robj"; then
+		eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
+	      fi
+	    fi
+
+	    test -n "$save_libobjs" &&
+	      func_verbose "creating a temporary reloadable object file: $output"
+
+	    # Loop through the commands generated above and execute them.
+	    save_ifs="$IFS"; IFS='~'
+	    for cmd in $concat_cmds; do
+	      IFS="$save_ifs"
+	      $opt_silent || {
+		  func_quote_for_expand "$cmd"
+		  eval "func_echo $func_quote_for_expand_result"
+	      }
+	      $opt_dry_run || eval "$cmd" || {
+		lt_exit=$?
+
+		# Restore the uninstalled library and exit
+		if test "$mode" = relink; then
+		  ( cd "$output_objdir" && \
+		    $RM "${realname}T" && \
+		    $MV "${realname}U" "$realname" )
+		fi
+
+		exit $lt_exit
+	      }
+	    done
+	    IFS="$save_ifs"
+
+	    if test -n "$export_symbols_regex" && ${skipped_export-false}; then
+	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
+	    fi
+	  fi
+
+          if ${skipped_export-false}; then
+	    if test -n "$export_symbols" && test -n "$include_expsyms"; then
+	      tmp_export_symbols="$export_symbols"
+	      test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
+	      $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
+	    fi
+
+	    if test -n "$orig_export_symbols"; then
+	      # The given exports_symbols file has to be filtered, so filter it.
+	      func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
+	      # FIXME: $output_objdir/$libname.filter potentially contains lots of
+	      # 's' commands which not all seds can handle. GNU sed should be fine
+	      # though. Also, the filter scales superlinearly with the number of
+	      # global variables. join(1) would be nice here, but unfortunately
+	      # isn't a blessed tool.
+	      $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
+	      delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
+	      export_symbols=$output_objdir/$libname.def
+	      $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
+	    fi
+	  fi
+
+	  libobjs=$output
+	  # Restore the value of output.
+	  output=$save_output
+
+	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
+	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+	    test "X$libobjs" = "X " && libobjs=
+	  fi
+	  # Expand the library linking commands again to reset the
+	  # value of $libobjs for piecewise linking.
+
+	  # Do each of the archive commands.
+	  if test "$module" = yes && test -n "$module_cmds" ; then
+	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+	      cmds=$module_expsym_cmds
+	    else
+	      cmds=$module_cmds
+	    fi
+	  else
+	    if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+	      cmds=$archive_expsym_cmds
+	    else
+	      cmds=$archive_cmds
+	    fi
+	  fi
+	fi
+
+	if test -n "$delfiles"; then
+	  # Append the command to remove temporary files to $cmds.
+	  eval cmds=\"\$cmds~\$RM $delfiles\"
+	fi
+
+	# Add any objects from preloaded convenience libraries
+	if test -n "$dlprefiles"; then
+	  gentop="$output_objdir/${outputname}x"
+	  generated="$generated $gentop"
+
+	  func_extract_archives $gentop $dlprefiles
+	  libobjs="$libobjs $func_extract_archives_result"
+	  test "X$libobjs" = "X " && libobjs=
+	fi
+
+	save_ifs="$IFS"; IFS='~'
+	for cmd in $cmds; do
+	  IFS="$save_ifs"
+	  eval cmd=\"$cmd\"
+	  $opt_silent || {
+	    func_quote_for_expand "$cmd"
+	    eval "func_echo $func_quote_for_expand_result"
+	  }
+	  $opt_dry_run || eval "$cmd" || {
+	    lt_exit=$?
+
+	    # Restore the uninstalled library and exit
+	    if test "$mode" = relink; then
+	      ( cd "$output_objdir" && \
+	        $RM "${realname}T" && \
+		$MV "${realname}U" "$realname" )
+	    fi
+
+	    exit $lt_exit
+	  }
+	done
+	IFS="$save_ifs"
+
+	# Restore the uninstalled library and exit
+	if test "$mode" = relink; then
+	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
+
+	  if test -n "$convenience"; then
+	    if test -z "$whole_archive_flag_spec"; then
+	      func_show_eval '${RM}r "$gentop"'
+	    fi
+	  fi
+
+	  exit $EXIT_SUCCESS
+	fi
+
+	# Create links to the real library.
+	for linkname in $linknames; do
+	  if test "$realname" != "$linkname"; then
+	    func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
+	  fi
+	done
+
+	# If -module or -export-dynamic was specified, set the dlname.
+	if test "$module" = yes || test "$export_dynamic" = yes; then
+	  # On all known operating systems, these are identical.
+	  dlname="$soname"
+	fi
+      fi
+      ;;
+
+    obj)
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+	func_warning "\`-dlopen' is ignored for objects"
+      fi
+
+      case " $deplibs" in
+      *\ -l* | *\ -L*)
+	func_warning "\`-l' and \`-L' are ignored for objects" ;;
+      esac
+
+      test -n "$rpath" && \
+	func_warning "\`-rpath' is ignored for objects"
+
+      test -n "$xrpath" && \
+	func_warning "\`-R' is ignored for objects"
+
+      test -n "$vinfo" && \
+	func_warning "\`-version-info' is ignored for objects"
+
+      test -n "$release" && \
+	func_warning "\`-release' is ignored for objects"
+
+      case $output in
+      *.lo)
+	test -n "$objs$old_deplibs" && \
+	  func_fatal_error "cannot build library object \`$output' from non-libtool objects"
+
+	libobj=$output
+	func_lo2o "$libobj"
+	obj=$func_lo2o_result
+	;;
+      *)
+	libobj=
+	obj="$output"
+	;;
+      esac
+
+      # Delete the old objects.
+      $opt_dry_run || $RM $obj $libobj
+
+      # Objects from convenience libraries.  This assumes
+      # single-version convenience libraries.  Whenever we create
+      # different ones for PIC/non-PIC, this we'll have to duplicate
+      # the extraction.
+      reload_conv_objs=
+      gentop=
+      # reload_cmds runs $LD directly, so let us get rid of
+      # -Wl from whole_archive_flag_spec and hope we can get by with
+      # turning comma into space..
+      wl=
+
+      if test -n "$convenience"; then
+	if test -n "$whole_archive_flag_spec"; then
+	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
+	  reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
+	else
+	  gentop="$output_objdir/${obj}x"
+	  generated="$generated $gentop"
+
+	  func_extract_archives $gentop $convenience
+	  reload_conv_objs="$reload_objs $func_extract_archives_result"
+	fi
+      fi
+
+      # Create the old-style object.
+      reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
+
+      output="$obj"
+      func_execute_cmds "$reload_cmds" 'exit $?'
+
+      # Exit if we aren't doing a library object file.
+      if test -z "$libobj"; then
+	if test -n "$gentop"; then
+	  func_show_eval '${RM}r "$gentop"'
+	fi
+
+	exit $EXIT_SUCCESS
+      fi
+
+      if test "$build_libtool_libs" != yes; then
+	if test -n "$gentop"; then
+	  func_show_eval '${RM}r "$gentop"'
+	fi
+
+	# Create an invalid libtool object if no PIC, so that we don't
+	# accidentally link it into a program.
+	# $show "echo timestamp > $libobj"
+	# $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
+	exit $EXIT_SUCCESS
+      fi
+
+      if test -n "$pic_flag" || test "$pic_mode" != default; then
+	# Only do commands if we really have different PIC objects.
+	reload_objs="$libobjs $reload_conv_objs"
+	output="$libobj"
+	func_execute_cmds "$reload_cmds" 'exit $?'
+      fi
+
+      if test -n "$gentop"; then
+	func_show_eval '${RM}r "$gentop"'
+      fi
+
+      exit $EXIT_SUCCESS
+      ;;
+
+    prog)
+      case $host in
+	*cygwin*) func_stripname '' '.exe' "$output"
+	          output=$func_stripname_result.exe;;
+      esac
+      test -n "$vinfo" && \
+	func_warning "\`-version-info' is ignored for programs"
+
+      test -n "$release" && \
+	func_warning "\`-release' is ignored for programs"
+
+      test "$preload" = yes \
+        && test "$dlopen_support" = unknown \
+	&& test "$dlopen_self" = unknown \
+	&& test "$dlopen_self_static" = unknown && \
+	  func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
+
+      case $host in
+      *-*-rhapsody* | *-*-darwin1.[012])
+	# On Rhapsody replace the C library is the System framework
+	compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+	finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+	;;
+      esac
+
+      case $host in
+      *-*-darwin*)
+	# Don't allow lazy linking, it breaks C++ global constructors
+	# But is supposedly fixed on 10.4 or later (yay!).
+	if test "$tagname" = CXX ; then
+	  case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
+	    10.[0123])
+	      compile_command="$compile_command ${wl}-bind_at_load"
+	      finalize_command="$finalize_command ${wl}-bind_at_load"
+	    ;;
+	  esac
+	fi
+	# Time to change all our "foo.ltframework" stuff back to "-framework foo"
+	compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	;;
+      esac
+
+
+      # move library search paths that coincide with paths to not yet
+      # installed libraries to the beginning of the library search list
+      new_libs=
+      for path in $notinst_path; do
+	case " $new_libs " in
+	*" -L$path/$objdir "*) ;;
+	*)
+	  case " $compile_deplibs " in
+	  *" -L$path/$objdir "*)
+	    new_libs="$new_libs -L$path/$objdir" ;;
+	  esac
+	  ;;
+	esac
+      done
+      for deplib in $compile_deplibs; do
+	case $deplib in
+	-L*)
+	  case " $new_libs " in
+	  *" $deplib "*) ;;
+	  *) new_libs="$new_libs $deplib" ;;
+	  esac
+	  ;;
+	*) new_libs="$new_libs $deplib" ;;
+	esac
+      done
+      compile_deplibs="$new_libs"
+
+
+      compile_command="$compile_command $compile_deplibs"
+      finalize_command="$finalize_command $finalize_deplibs"
+
+      if test -n "$rpath$xrpath"; then
+	# If the user specified any rpath flags, then add them.
+	for libdir in $rpath $xrpath; do
+	  # This is the magic to use -rpath.
+	  case "$finalize_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_rpath="$finalize_rpath $libdir" ;;
+	  esac
+	done
+      fi
+
+      # Now hardcode the library paths
+      rpath=
+      hardcode_libdirs=
+      for libdir in $compile_rpath $finalize_rpath; do
+	if test -n "$hardcode_libdir_flag_spec"; then
+	  if test -n "$hardcode_libdir_separator"; then
+	    if test -z "$hardcode_libdirs"; then
+	      hardcode_libdirs="$libdir"
+	    else
+	      # Just accumulate the unique libdirs.
+	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		;;
+	      *)
+		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		;;
+	      esac
+	    fi
+	  else
+	    eval flag=\"$hardcode_libdir_flag_spec\"
+	    rpath="$rpath $flag"
+	  fi
+	elif test -n "$runpath_var"; then
+	  case "$perm_rpath " in
+	  *" $libdir "*) ;;
+	  *) perm_rpath="$perm_rpath $libdir" ;;
+	  esac
+	fi
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+	  testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
+	  case :$dllsearchpath: in
+	  *":$libdir:"*) ;;
+	  ::) dllsearchpath=$libdir;;
+	  *) dllsearchpath="$dllsearchpath:$libdir";;
+	  esac
+	  case :$dllsearchpath: in
+	  *":$testbindir:"*) ;;
+	  ::) dllsearchpath=$testbindir;;
+	  *) dllsearchpath="$dllsearchpath:$testbindir";;
+	  esac
+	  ;;
+	esac
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+	 test -n "$hardcode_libdirs"; then
+	libdir="$hardcode_libdirs"
+	eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      compile_rpath="$rpath"
+
+      rpath=
+      hardcode_libdirs=
+      for libdir in $finalize_rpath; do
+	if test -n "$hardcode_libdir_flag_spec"; then
+	  if test -n "$hardcode_libdir_separator"; then
+	    if test -z "$hardcode_libdirs"; then
+	      hardcode_libdirs="$libdir"
+	    else
+	      # Just accumulate the unique libdirs.
+	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		;;
+	      *)
+		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		;;
+	      esac
+	    fi
+	  else
+	    eval flag=\"$hardcode_libdir_flag_spec\"
+	    rpath="$rpath $flag"
+	  fi
+	elif test -n "$runpath_var"; then
+	  case "$finalize_perm_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
+	  esac
+	fi
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+	 test -n "$hardcode_libdirs"; then
+	libdir="$hardcode_libdirs"
+	eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      finalize_rpath="$rpath"
+
+      if test -n "$libobjs" && test "$build_old_libs" = yes; then
+	# Transform all the library objects into standard objects.
+	compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+      fi
+
+      func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
+
+      # template prelinking step
+      if test -n "$prelink_cmds"; then
+	func_execute_cmds "$prelink_cmds" 'exit $?'
+      fi
+
+      wrappers_required=yes
+      case $host in
+      *cygwin* | *mingw* )
+        if test "$build_libtool_libs" != yes; then
+          wrappers_required=no
+        fi
+        ;;
+      *cegcc)
+        # Disable wrappers for cegcc, we are cross compiling anyway.
+        wrappers_required=no
+        ;;
+      *)
+        if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
+          wrappers_required=no
+        fi
+        ;;
+      esac
+      if test "$wrappers_required" = no; then
+	# Replace the output file specification.
+	compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+	link_command="$compile_command$compile_rpath"
+
+	# We have no uninstalled library dependencies, so finalize right now.
+	exit_status=0
+	func_show_eval "$link_command" 'exit_status=$?'
+
+	# Delete the generated files.
+	if test -f "$output_objdir/${outputname}S.${objext}"; then
+	  func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
+	fi
+
+	exit $exit_status
+      fi
+
+      if test -n "$compile_shlibpath$finalize_shlibpath"; then
+	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
+      fi
+      if test -n "$finalize_shlibpath"; then
+	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
+      fi
+
+      compile_var=
+      finalize_var=
+      if test -n "$runpath_var"; then
+	if test -n "$perm_rpath"; then
+	  # We should set the runpath_var.
+	  rpath=
+	  for dir in $perm_rpath; do
+	    rpath="$rpath$dir:"
+	  done
+	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
+	fi
+	if test -n "$finalize_perm_rpath"; then
+	  # We should set the runpath_var.
+	  rpath=
+	  for dir in $finalize_perm_rpath; do
+	    rpath="$rpath$dir:"
+	  done
+	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+	fi
+      fi
+
+      if test "$no_install" = yes; then
+	# We don't need to create a wrapper script.
+	link_command="$compile_var$compile_command$compile_rpath"
+	# Replace the output file specification.
+	link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+	# Delete the old output file.
+	$opt_dry_run || $RM $output
+	# Link the executable and exit
+	func_show_eval "$link_command" 'exit $?'
+	exit $EXIT_SUCCESS
+      fi
+
+      if test "$hardcode_action" = relink; then
+	# Fast installation is not supported
+	link_command="$compile_var$compile_command$compile_rpath"
+	relink_command="$finalize_var$finalize_command$finalize_rpath"
+
+	func_warning "this platform does not like uninstalled shared libraries"
+	func_warning "\`$output' will be relinked during installation"
+      else
+	if test "$fast_install" != no; then
+	  link_command="$finalize_var$compile_command$finalize_rpath"
+	  if test "$fast_install" = yes; then
+	    relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
+	  else
+	    # fast_install is set to needless
+	    relink_command=
+	  fi
+	else
+	  link_command="$compile_var$compile_command$compile_rpath"
+	  relink_command="$finalize_var$finalize_command$finalize_rpath"
+	fi
+      fi
+
+      # Replace the output file specification.
+      link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+
+      # Delete the old output files.
+      $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
+
+      func_show_eval "$link_command" 'exit $?'
+
+      # Now create the wrapper script.
+      func_verbose "creating $output"
+
+      # Quote the relink command for shipping.
+      if test -n "$relink_command"; then
+	# Preserve any variables that may affect compiler behavior
+	for var in $variables_saved_for_relink; do
+	  if eval test -z \"\${$var+set}\"; then
+	    relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
+	  elif eval var_value=\$$var; test -z "$var_value"; then
+	    relink_command="$var=; export $var; $relink_command"
+	  else
+	    func_quote_for_eval "$var_value"
+	    relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
+	  fi
+	done
+	relink_command="(cd `pwd`; $relink_command)"
+	relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+      fi
+
+      # Quote $ECHO for shipping.
+      if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then
+	case $progpath in
+	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
+	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
+	esac
+	qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`
+      else
+	qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`
+      fi
+
+      # Only actually do things if not in dry run mode.
+      $opt_dry_run || {
+	# win32 will think the script is a binary if it has
+	# a .exe suffix, so we strip it off here.
+	case $output in
+	  *.exe) func_stripname '' '.exe' "$output"
+	         output=$func_stripname_result ;;
+	esac
+	# test for cygwin because mv fails w/o .exe extensions
+	case $host in
+	  *cygwin*)
+	    exeext=.exe
+	    func_stripname '' '.exe' "$outputname"
+	    outputname=$func_stripname_result ;;
+	  *) exeext= ;;
+	esac
+	case $host in
+	  *cygwin* | *mingw* )
+	    func_dirname_and_basename "$output" "" "."
+	    output_name=$func_basename_result
+	    output_path=$func_dirname_result
+	    cwrappersource="$output_path/$objdir/lt-$output_name.c"
+	    cwrapper="$output_path/$output_name.exe"
+	    $RM $cwrappersource $cwrapper
+	    trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
+
+	    func_emit_cwrapperexe_src > $cwrappersource
+
+	    # The wrapper executable is built using the $host compiler,
+	    # because it contains $host paths and files. If cross-
+	    # compiling, it, like the target executable, must be
+	    # executed on the $host or under an emulation environment.
+	    $opt_dry_run || {
+	      $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
+	      $STRIP $cwrapper
+	    }
+
+	    # Now, create the wrapper script for func_source use:
+	    func_ltwrapper_scriptname $cwrapper
+	    $RM $func_ltwrapper_scriptname_result
+	    trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
+	    $opt_dry_run || {
+	      # note: this script will not be executed, so do not chmod.
+	      if test "x$build" = "x$host" ; then
+		$cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
+	      else
+		func_emit_wrapper no > $func_ltwrapper_scriptname_result
+	      fi
+	    }
+	  ;;
+	  * )
+	    $RM $output
+	    trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
+
+	    func_emit_wrapper no > $output
+	    chmod +x $output
+	  ;;
+	esac
+      }
+      exit $EXIT_SUCCESS
+      ;;
+    esac
+
+    # See if we need to build an old-fashioned archive.
+    for oldlib in $oldlibs; do
+
+      if test "$build_libtool_libs" = convenience; then
+	oldobjs="$libobjs_save $symfileobj"
+	addlibs="$convenience"
+	build_libtool_libs=no
+      else
+	if test "$build_libtool_libs" = module; then
+	  oldobjs="$libobjs_save"
+	  build_libtool_libs=no
+	else
+	  oldobjs="$old_deplibs $non_pic_objects"
+	  if test "$preload" = yes && test -f "$symfileobj"; then
+	    oldobjs="$oldobjs $symfileobj"
+	  fi
+	fi
+	addlibs="$old_convenience"
+      fi
+
+      if test -n "$addlibs"; then
+	gentop="$output_objdir/${outputname}x"
+	generated="$generated $gentop"
+
+	func_extract_archives $gentop $addlibs
+	oldobjs="$oldobjs $func_extract_archives_result"
+      fi
+
+      # Do each command in the archive commands.
+      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
+	cmds=$old_archive_from_new_cmds
+      else
+
+	# Add any objects from preloaded convenience libraries
+	if test -n "$dlprefiles"; then
+	  gentop="$output_objdir/${outputname}x"
+	  generated="$generated $gentop"
+
+	  func_extract_archives $gentop $dlprefiles
+	  oldobjs="$oldobjs $func_extract_archives_result"
+	fi
+
+	# POSIX demands no paths to be encoded in archives.  We have
+	# to avoid creating archives with duplicate basenames if we
+	# might have to extract them afterwards, e.g., when creating a
+	# static archive out of a convenience library, or when linking
+	# the entirety of a libtool archive into another (currently
+	# not supported by libtool).
+	if (for obj in $oldobjs
+	    do
+	      func_basename "$obj"
+	      $ECHO "$func_basename_result"
+	    done | sort | sort -uc >/dev/null 2>&1); then
+	  :
+	else
+	  $ECHO "copying selected object files to avoid basename conflicts..."
+	  gentop="$output_objdir/${outputname}x"
+	  generated="$generated $gentop"
+	  func_mkdir_p "$gentop"
+	  save_oldobjs=$oldobjs
+	  oldobjs=
+	  counter=1
+	  for obj in $save_oldobjs
+	  do
+	    func_basename "$obj"
+	    objbase="$func_basename_result"
+	    case " $oldobjs " in
+	    " ") oldobjs=$obj ;;
+	    *[\ /]"$objbase "*)
+	      while :; do
+		# Make sure we don't pick an alternate name that also
+		# overlaps.
+		newobj=lt$counter-$objbase
+		func_arith $counter + 1
+		counter=$func_arith_result
+		case " $oldobjs " in
+		*[\ /]"$newobj "*) ;;
+		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
+		esac
+	      done
+	      func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
+	      oldobjs="$oldobjs $gentop/$newobj"
+	      ;;
+	    *) oldobjs="$oldobjs $obj" ;;
+	    esac
+	  done
+	fi
+	eval cmds=\"$old_archive_cmds\"
+
+	func_len " $cmds"
+	len=$func_len_result
+	if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	  cmds=$old_archive_cmds
+	else
+	  # the command line is too long to link in one step, link in parts
+	  func_verbose "using piecewise archive linking..."
+	  save_RANLIB=$RANLIB
+	  RANLIB=:
+	  objlist=
+	  concat_cmds=
+	  save_oldobjs=$oldobjs
+	  oldobjs=
+	  # Is there a better way of finding the last object in the list?
+	  for obj in $save_oldobjs
+	  do
+	    last_oldobj=$obj
+	  done
+	  eval test_cmds=\"$old_archive_cmds\"
+	  func_len " $test_cmds"
+	  len0=$func_len_result
+	  len=$len0
+	  for obj in $save_oldobjs
+	  do
+	    func_len " $obj"
+	    func_arith $len + $func_len_result
+	    len=$func_arith_result
+	    func_append objlist " $obj"
+	    if test "$len" -lt "$max_cmd_len"; then
+	      :
+	    else
+	      # the above command should be used before it gets too long
+	      oldobjs=$objlist
+	      if test "$obj" = "$last_oldobj" ; then
+		RANLIB=$save_RANLIB
+	      fi
+	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
+	      objlist=
+	      len=$len0
+	    fi
+	  done
+	  RANLIB=$save_RANLIB
+	  oldobjs=$objlist
+	  if test "X$oldobjs" = "X" ; then
+	    eval cmds=\"\$concat_cmds\"
+	  else
+	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
+	  fi
+	fi
+      fi
+      func_execute_cmds "$cmds" 'exit $?'
+    done
+
+    test -n "$generated" && \
+      func_show_eval "${RM}r$generated"
+
+    # Now create the libtool archive.
+    case $output in
+    *.la)
+      old_library=
+      test "$build_old_libs" = yes && old_library="$libname.$libext"
+      func_verbose "creating $output"
+
+      # Preserve any variables that may affect compiler behavior
+      for var in $variables_saved_for_relink; do
+	if eval test -z \"\${$var+set}\"; then
+	  relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
+	elif eval var_value=\$$var; test -z "$var_value"; then
+	  relink_command="$var=; export $var; $relink_command"
+	else
+	  func_quote_for_eval "$var_value"
+	  relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
+	fi
+      done
+      # Quote the link command for shipping.
+      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
+      relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+      if test "$hardcode_automatic" = yes ; then
+	relink_command=
+      fi
+
+      # Only create the output if not a dry run.
+      $opt_dry_run || {
+	for installed in no yes; do
+	  if test "$installed" = yes; then
+	    if test -z "$install_libdir"; then
+	      break
+	    fi
+	    output="$output_objdir/$outputname"i
+	    # Replace all uninstalled libtool libraries with the installed ones
+	    newdependency_libs=
+	    for deplib in $dependency_libs; do
+	      case $deplib in
+	      *.la)
+		func_basename "$deplib"
+		name="$func_basename_result"
+		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+		test -z "$libdir" && \
+		  func_fatal_error "\`$deplib' is not a valid libtool archive"
+		newdependency_libs="$newdependency_libs $libdir/$name"
+		;;
+	      *) newdependency_libs="$newdependency_libs $deplib" ;;
+	      esac
+	    done
+	    dependency_libs="$newdependency_libs"
+	    newdlfiles=
+
+	    for lib in $dlfiles; do
+	      case $lib in
+	      *.la)
+	        func_basename "$lib"
+		name="$func_basename_result"
+		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+		test -z "$libdir" && \
+		  func_fatal_error "\`$lib' is not a valid libtool archive"
+		newdlfiles="$newdlfiles $libdir/$name"
+		;;
+	      *) newdlfiles="$newdlfiles $lib" ;;
+	      esac
+	    done
+	    dlfiles="$newdlfiles"
+	    newdlprefiles=
+	    for lib in $dlprefiles; do
+	      case $lib in
+	      *.la)
+		# Only pass preopened files to the pseudo-archive (for
+		# eventual linking with the app. that links it) if we
+		# didn't already link the preopened objects directly into
+		# the library:
+		func_basename "$lib"
+		name="$func_basename_result"
+		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+		test -z "$libdir" && \
+		  func_fatal_error "\`$lib' is not a valid libtool archive"
+		newdlprefiles="$newdlprefiles $libdir/$name"
+		;;
+	      esac
+	    done
+	    dlprefiles="$newdlprefiles"
+	  else
+	    newdlfiles=
+	    for lib in $dlfiles; do
+	      case $lib in
+		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+		*) abs=`pwd`"/$lib" ;;
+	      esac
+	      newdlfiles="$newdlfiles $abs"
+	    done
+	    dlfiles="$newdlfiles"
+	    newdlprefiles=
+	    for lib in $dlprefiles; do
+	      case $lib in
+		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+		*) abs=`pwd`"/$lib" ;;
+	      esac
+	      newdlprefiles="$newdlprefiles $abs"
+	    done
+	    dlprefiles="$newdlprefiles"
+	  fi
+	  $RM $output
+	  # place dlname in correct position for cygwin
+	  tdlname=$dlname
+	  case $host,$output,$installed,$module,$dlname in
+	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
+	  esac
+	  $ECHO > $output "\
+# $outputname - a libtool library file
+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='$tdlname'
+
+# Names of this library.
+library_names='$library_names'
+
+# The name of the static archive.
+old_library='$old_library'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags='$new_inherited_linker_flags'
+
+# Libraries that this one depends upon.
+dependency_libs='$dependency_libs'
+
+# Names of additional weak libraries provided by this library
+weak_library_names='$weak_libs'
+
+# Version information for $libname.
+current=$current
+age=$age
+revision=$revision
+
+# Is this an already installed library?
+installed=$installed
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=$module
+
+# Files to dlopen/dlpreopen
+dlopen='$dlfiles'
+dlpreopen='$dlprefiles'
+
+# Directory that this library needs to be installed in:
+libdir='$install_libdir'"
+	  if test "$installed" = no && test "$need_relink" = yes; then
+	    $ECHO >> $output "\
+relink_command=\"$relink_command\""
+	  fi
+	done
+      }
+
+      # Do a symbolic link so that the libtool archive can be found in
+      # LD_LIBRARY_PATH before the program is installed.
+      func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
+      ;;
+    esac
+    exit $EXIT_SUCCESS
+}
+
+{ test "$mode" = link || test "$mode" = relink; } &&
+    func_mode_link ${1+"$@"}
+
+
+# func_mode_uninstall arg...
+func_mode_uninstall ()
+{
+    $opt_debug
+    RM="$nonopt"
+    files=
+    rmforce=
+    exit_status=0
+
+    # This variable tells wrapper scripts just to set variables rather
+    # than running their programs.
+    libtool_install_magic="$magic"
+
+    for arg
+    do
+      case $arg in
+      -f) RM="$RM $arg"; rmforce=yes ;;
+      -*) RM="$RM $arg" ;;
+      *) files="$files $arg" ;;
+      esac
+    done
+
+    test -z "$RM" && \
+      func_fatal_help "you must specify an RM program"
+
+    rmdirs=
+
+    origobjdir="$objdir"
+    for file in $files; do
+      func_dirname "$file" "" "."
+      dir="$func_dirname_result"
+      if test "X$dir" = X.; then
+	objdir="$origobjdir"
+      else
+	objdir="$dir/$origobjdir"
+      fi
+      func_basename "$file"
+      name="$func_basename_result"
+      test "$mode" = uninstall && objdir="$dir"
+
+      # Remember objdir for removal later, being careful to avoid duplicates
+      if test "$mode" = clean; then
+	case " $rmdirs " in
+	  *" $objdir "*) ;;
+	  *) rmdirs="$rmdirs $objdir" ;;
+	esac
+      fi
+
+      # Don't error if the file doesn't exist and rm -f was used.
+      if { test -L "$file"; } >/dev/null 2>&1 ||
+	 { test -h "$file"; } >/dev/null 2>&1 ||
+	 test -f "$file"; then
+	:
+      elif test -d "$file"; then
+	exit_status=1
+	continue
+      elif test "$rmforce" = yes; then
+	continue
+      fi
+
+      rmfiles="$file"
+
+      case $name in
+      *.la)
+	# Possibly a libtool archive, so verify it.
+	if func_lalib_p "$file"; then
+	  func_source $dir/$name
+
+	  # Delete the libtool libraries and symlinks.
+	  for n in $library_names; do
+	    rmfiles="$rmfiles $objdir/$n"
+	  done
+	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
+
+	  case "$mode" in
+	  clean)
+	    case "  $library_names " in
+	    # "  " in the beginning catches empty $dlname
+	    *" $dlname "*) ;;
+	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
+	    esac
+	    test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
+	    ;;
+	  uninstall)
+	    if test -n "$library_names"; then
+	      # Do each command in the postuninstall commands.
+	      func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
+	    fi
+
+	    if test -n "$old_library"; then
+	      # Do each command in the old_postuninstall commands.
+	      func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
+	    fi
+	    # FIXME: should reinstall the best remaining shared library.
+	    ;;
+	  esac
+	fi
+	;;
+
+      *.lo)
+	# Possibly a libtool object, so verify it.
+	if func_lalib_p "$file"; then
+
+	  # Read the .lo file
+	  func_source $dir/$name
+
+	  # Add PIC object to the list of files to remove.
+	  if test -n "$pic_object" &&
+	     test "$pic_object" != none; then
+	    rmfiles="$rmfiles $dir/$pic_object"
+	  fi
+
+	  # Add non-PIC object to the list of files to remove.
+	  if test -n "$non_pic_object" &&
+	     test "$non_pic_object" != none; then
+	    rmfiles="$rmfiles $dir/$non_pic_object"
+	  fi
+	fi
+	;;
+
+      *)
+	if test "$mode" = clean ; then
+	  noexename=$name
+	  case $file in
+	  *.exe)
+	    func_stripname '' '.exe' "$file"
+	    file=$func_stripname_result
+	    func_stripname '' '.exe' "$name"
+	    noexename=$func_stripname_result
+	    # $file with .exe has already been added to rmfiles,
+	    # add $file without .exe
+	    rmfiles="$rmfiles $file"
+	    ;;
+	  esac
+	  # Do a test to see if this is a libtool program.
+	  if func_ltwrapper_p "$file"; then
+	    if func_ltwrapper_executable_p "$file"; then
+	      func_ltwrapper_scriptname "$file"
+	      relink_command=
+	      func_source $func_ltwrapper_scriptname_result
+	      rmfiles="$rmfiles $func_ltwrapper_scriptname_result"
+	    else
+	      relink_command=
+	      func_source $dir/$noexename
+	    fi
+
+	    # note $name still contains .exe if it was in $file originally
+	    # as does the version of $file that was added into $rmfiles
+	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
+	    if test "$fast_install" = yes && test -n "$relink_command"; then
+	      rmfiles="$rmfiles $objdir/lt-$name"
+	    fi
+	    if test "X$noexename" != "X$name" ; then
+	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
+	    fi
+	  fi
+	fi
+	;;
+      esac
+      func_show_eval "$RM $rmfiles" 'exit_status=1'
+    done
+    objdir="$origobjdir"
+
+    # Try to remove the ${objdir}s in the directories where we deleted files
+    for dir in $rmdirs; do
+      if test -d "$dir"; then
+	func_show_eval "rmdir $dir >/dev/null 2>&1"
+      fi
+    done
+
+    exit $exit_status
+}
+
+{ test "$mode" = uninstall || test "$mode" = clean; } &&
+    func_mode_uninstall ${1+"$@"}
+
+test -z "$mode" && {
+  help="$generic_help"
+  func_fatal_help "you must specify a MODE"
+}
+
+test -z "$exec_cmd" && \
+  func_fatal_help "invalid operation mode \`$mode'"
+
+if test -n "$exec_cmd"; then
+  eval exec "$exec_cmd"
+  exit $EXIT_FAILURE
+fi
+
+exit $exit_status
+
+
+# The TAGs below are defined such that we never get into a situation
+# in which we disable both kinds of libraries.  Given conflicting
+# choices, we go for a static library, that is the most portable,
+# since we can't tell whether shared libraries were disabled because
+# the user asked for that or because the platform doesn't support
+# them.  This is particularly important on AIX, because we don't
+# support having both static and shared libraries enabled at the same
+# time on that platform, so we default to a shared-only configuration.
+# If a disable-shared tag is given, we'll fallback to a static-only
+# configuration.  But we'll never go from static-only to shared-only.
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
+build_libtool_libs=no
+build_old_libs=yes
+# ### END LIBTOOL TAG CONFIG: disable-shared
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-static
+build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
+# ### END LIBTOOL TAG CONFIG: disable-static
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation:2
+# End:
+# vi:sw=2
+
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/m4/libtool.m4 b/framework/modules/c_FileTypeSigModule/file-5.08/m4/libtool.m4
new file mode 100755
index 0000000000000000000000000000000000000000..39ba996cb960e22873667c57deeff94bf23bef56
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/m4/libtool.m4
@@ -0,0 +1,7357 @@
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+#
+#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#   Written by Gordon Matzigkeit, 1996
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+m4_define([_LT_COPYING], [dnl
+#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#   Written by Gordon Matzigkeit, 1996
+#
+#   This file is part of GNU Libtool.
+#
+# GNU Libtool is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Libtool; see the file COPYING.  If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
+# obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+])
+
+# serial 56 LT_INIT
+
+
+# LT_PREREQ(VERSION)
+# ------------------
+# Complain and exit if this libtool version is less that VERSION.
+m4_defun([LT_PREREQ],
+[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
+       [m4_default([$3],
+		   [m4_fatal([Libtool version $1 or higher is required],
+		             63)])],
+       [$2])])
+
+
+# _LT_CHECK_BUILDDIR
+# ------------------
+# Complain if the absolute build directory name contains unusual characters
+m4_defun([_LT_CHECK_BUILDDIR],
+[case `pwd` in
+  *\ * | *\	*)
+    AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
+esac
+])
+
+
+# LT_INIT([OPTIONS])
+# ------------------
+AC_DEFUN([LT_INIT],
+[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
+AC_BEFORE([$0], [LT_LANG])dnl
+AC_BEFORE([$0], [LT_OUTPUT])dnl
+AC_BEFORE([$0], [LTDL_INIT])dnl
+m4_require([_LT_CHECK_BUILDDIR])dnl
+
+dnl Autoconf doesn't catch unexpanded LT_ macros by default:
+m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
+m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
+dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
+dnl unless we require an AC_DEFUNed macro:
+AC_REQUIRE([LTOPTIONS_VERSION])dnl
+AC_REQUIRE([LTSUGAR_VERSION])dnl
+AC_REQUIRE([LTVERSION_VERSION])dnl
+AC_REQUIRE([LTOBSOLETE_VERSION])dnl
+m4_require([_LT_PROG_LTMAIN])dnl
+
+dnl Parse OPTIONS
+_LT_SET_OPTIONS([$0], [$1])
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ltmain"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+_LT_SETUP
+
+# Only expand once:
+m4_define([LT_INIT])
+])# LT_INIT
+
+# Old names:
+AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
+AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
+dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
+
+
+# _LT_CC_BASENAME(CC)
+# -------------------
+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+m4_defun([_LT_CC_BASENAME],
+[for cc_temp in $1""; do
+  case $cc_temp in
+    compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
+    distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+])
+
+
+# _LT_FILEUTILS_DEFAULTS
+# ----------------------
+# It is okay to use these file commands and assume they have been set
+# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
+m4_defun([_LT_FILEUTILS_DEFAULTS],
+[: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+])# _LT_FILEUTILS_DEFAULTS
+
+
+# _LT_SETUP
+# ---------
+m4_defun([_LT_SETUP],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+_LT_DECL([], [host_alias], [0], [The host system])dnl
+_LT_DECL([], [host], [0])dnl
+_LT_DECL([], [host_os], [0])dnl
+dnl
+_LT_DECL([], [build_alias], [0], [The build system])dnl
+_LT_DECL([], [build], [0])dnl
+_LT_DECL([], [build_os], [0])dnl
+dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([LT_PATH_LD])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+dnl
+AC_REQUIRE([AC_PROG_LN_S])dnl
+test -z "$LN_S" && LN_S="ln -s"
+_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
+dnl
+AC_REQUIRE([LT_CMD_MAX_LEN])dnl
+_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
+_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
+dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_CMD_RELOAD])dnl
+m4_require([_LT_CHECK_MAGIC_METHOD])dnl
+m4_require([_LT_CMD_OLD_ARCHIVE])dnl
+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+
+_LT_CONFIG_LIBTOOL_INIT([
+# See if we are running on zsh, and set the options which allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}" ; then
+   setopt NO_GLOB_SUBST
+fi
+])
+if test -n "${ZSH_VERSION+set}" ; then
+   setopt NO_GLOB_SUBST
+fi
+
+_LT_CHECK_OBJDIR
+
+m4_require([_LT_TAG_COMPILER])dnl
+_LT_PROG_ECHO_BACKSLASH
+
+case $host_os in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test "X${COLLECT_NAMES+set}" != Xset; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([["`\\]]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+_LT_CC_BASENAME([$compiler])
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+    _LT_PATH_MAGIC
+  fi
+  ;;
+esac
+
+# Use C for the default configuration in the libtool script
+LT_SUPPORTED_TAG([CC])
+_LT_LANG_C_CONFIG
+_LT_LANG_DEFAULT_CONFIG
+_LT_CONFIG_COMMANDS
+])# _LT_SETUP
+
+
+# _LT_PROG_LTMAIN
+# ---------------
+# Note that this code is called both from `configure', and `config.status'
+# now that we use AC_CONFIG_COMMANDS to generate libtool.  Notably,
+# `config.status' has no value for ac_aux_dir unless we are using Automake,
+# so we pass a copy along to make sure it has a sensible value anyway.
+m4_defun([_LT_PROG_LTMAIN],
+[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
+_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
+ltmain="$ac_aux_dir/ltmain.sh"
+])# _LT_PROG_LTMAIN
+
+
+## ------------------------------------- ##
+## Accumulate code for creating libtool. ##
+## ------------------------------------- ##
+
+# So that we can recreate a full libtool script including additional
+# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
+# in macros and then make a single call at the end using the `libtool'
+# label.
+
+
+# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
+# ----------------------------------------
+# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+m4_define([_LT_CONFIG_LIBTOOL_INIT],
+[m4_ifval([$1],
+          [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
+                     [$1
+])])])
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_INIT])
+
+
+# _LT_CONFIG_LIBTOOL([COMMANDS])
+# ------------------------------
+# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+m4_define([_LT_CONFIG_LIBTOOL],
+[m4_ifval([$1],
+          [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
+                     [$1
+])])])
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
+
+
+# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
+# -----------------------------------------------------
+m4_defun([_LT_CONFIG_SAVE_COMMANDS],
+[_LT_CONFIG_LIBTOOL([$1])
+_LT_CONFIG_LIBTOOL_INIT([$2])
+])
+
+
+# _LT_FORMAT_COMMENT([COMMENT])
+# -----------------------------
+# Add leading comment marks to the start of each line, and a trailing
+# full-stop to the whole comment if one is not present already.
+m4_define([_LT_FORMAT_COMMENT],
+[m4_ifval([$1], [
+m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
+              [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
+)])
+
+
+
+## ------------------------ ##
+## FIXME: Eliminate VARNAME ##
+## ------------------------ ##
+
+
+# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
+# -------------------------------------------------------------------
+# CONFIGNAME is the name given to the value in the libtool script.
+# VARNAME is the (base) name used in the configure script.
+# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
+# VARNAME.  Any other value will be used directly.
+m4_define([_LT_DECL],
+[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
+    [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
+	[m4_ifval([$1], [$1], [$2])])
+    lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
+    m4_ifval([$4],
+	[lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
+    lt_dict_add_subkey([lt_decl_dict], [$2],
+	[tagged?], [m4_ifval([$5], [yes], [no])])])
+])
+
+
+# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
+# --------------------------------------------------------
+m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
+
+
+# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+m4_define([lt_decl_tag_varnames],
+[_lt_decl_filter([tagged?], [yes], $@)])
+
+
+# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
+# ---------------------------------------------------------
+m4_define([_lt_decl_filter],
+[m4_case([$#],
+  [0], [m4_fatal([$0: too few arguments: $#])],
+  [1], [m4_fatal([$0: too few arguments: $#: $1])],
+  [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
+  [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
+  [lt_dict_filter([lt_decl_dict], $@)])[]dnl
+])
+
+
+# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
+# --------------------------------------------------
+m4_define([lt_decl_quote_varnames],
+[_lt_decl_filter([value], [1], $@)])
+
+
+# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+m4_define([lt_decl_dquote_varnames],
+[_lt_decl_filter([value], [2], $@)])
+
+
+# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+m4_define([lt_decl_varnames_tagged],
+[m4_assert([$# <= 2])dnl
+_$0(m4_quote(m4_default([$1], [[, ]])),
+    m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
+    m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
+m4_define([_lt_decl_varnames_tagged],
+[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
+
+
+# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+m4_define([lt_decl_all_varnames],
+[_$0(m4_quote(m4_default([$1], [[, ]])),
+     m4_if([$2], [],
+	   m4_quote(lt_decl_varnames),
+	m4_quote(m4_shift($@))))[]dnl
+])
+m4_define([_lt_decl_all_varnames],
+[lt_join($@, lt_decl_varnames_tagged([$1],
+			lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
+])
+
+
+# _LT_CONFIG_STATUS_DECLARE([VARNAME])
+# ------------------------------------
+# Quote a variable value, and forward it to `config.status' so that its
+# declaration there will have the same value as in `configure'.  VARNAME
+# must have a single quote delimited value for this to work.
+m4_define([_LT_CONFIG_STATUS_DECLARE],
+[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`'])
+
+
+# _LT_CONFIG_STATUS_DECLARATIONS
+# ------------------------------
+# We delimit libtool config variables with single quotes, so when
+# we write them to config.status, we have to be sure to quote all
+# embedded single quotes properly.  In configure, this macro expands
+# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
+#
+#    <var>='`$ECHO "X$<var>" | $Xsed -e "$delay_single_quote_subst"`'
+m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
+[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
+    [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
+
+
+# _LT_LIBTOOL_TAGS
+# ----------------
+# Output comment and list of tags supported by the script
+m4_defun([_LT_LIBTOOL_TAGS],
+[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
+available_tags="_LT_TAGS"dnl
+])
+
+
+# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
+# -----------------------------------
+# Extract the dictionary values for VARNAME (optionally with TAG) and
+# expand to a commented shell variable setting:
+#
+#    # Some comment about what VAR is for.
+#    visible_name=$lt_internal_name
+m4_define([_LT_LIBTOOL_DECLARE],
+[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
+					   [description])))[]dnl
+m4_pushdef([_libtool_name],
+    m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
+m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
+    [0], [_libtool_name=[$]$1],
+    [1], [_libtool_name=$lt_[]$1],
+    [2], [_libtool_name=$lt_[]$1],
+    [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
+m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
+])
+
+
+# _LT_LIBTOOL_CONFIG_VARS
+# -----------------------
+# Produce commented declarations of non-tagged libtool config variables
+# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
+# script.  Tagged libtool config variables (even for the LIBTOOL CONFIG
+# section) are produced by _LT_LIBTOOL_TAG_VARS.
+m4_defun([_LT_LIBTOOL_CONFIG_VARS],
+[m4_foreach([_lt_var],
+    m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
+    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
+
+
+# _LT_LIBTOOL_TAG_VARS(TAG)
+# -------------------------
+m4_define([_LT_LIBTOOL_TAG_VARS],
+[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
+    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
+
+
+# _LT_TAGVAR(VARNAME, [TAGNAME])
+# ------------------------------
+m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
+
+
+# _LT_CONFIG_COMMANDS
+# -------------------
+# Send accumulated output to $CONFIG_STATUS.  Thanks to the lists of
+# variables for single and double quote escaping we saved from calls
+# to _LT_DECL, we can put quote escaped variables declarations
+# into `config.status', and then the shell code to quote escape them in
+# for loops in `config.status'.  Finally, any additional code accumulated
+# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
+m4_defun([_LT_CONFIG_COMMANDS],
+[AC_PROVIDE_IFELSE([LT_OUTPUT],
+	dnl If the libtool generation code has been placed in $CONFIG_LT,
+	dnl instead of duplicating it all over again into config.status,
+	dnl then we will have config.status run $CONFIG_LT later, so it
+	dnl needs to know what name is stored there:
+        [AC_CONFIG_COMMANDS([libtool],
+            [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
+    dnl If the libtool generation code is destined for config.status,
+    dnl expand the accumulated commands and init code now:
+    [AC_CONFIG_COMMANDS([libtool],
+        [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
+])#_LT_CONFIG_COMMANDS
+
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
+[
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+_LT_CONFIG_STATUS_DECLARATIONS
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# Quote evaled strings.
+for var in lt_decl_all_varnames([[ \
+]], lt_decl_quote_varnames); do
+    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+    *[[\\\\\\\`\\"\\\$]]*)
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+      ;;
+    *)
+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+      ;;
+    esac
+done
+
+# Double-quote double-evaled strings.
+for var in lt_decl_all_varnames([[ \
+]], lt_decl_dquote_varnames); do
+    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+    *[[\\\\\\\`\\"\\\$]]*)
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+      ;;
+    *)
+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+      ;;
+    esac
+done
+
+# Fix-up fallback echo if it was mangled by the above quoting rules.
+case \$lt_ECHO in
+*'\\\[$]0 --fallback-echo"')dnl "
+  lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\`
+  ;;
+esac
+
+_LT_OUTPUT_LIBTOOL_INIT
+])
+
+
+# LT_OUTPUT
+# ---------
+# This macro allows early generation of the libtool script (before
+# AC_OUTPUT is called), incase it is used in configure for compilation
+# tests.
+AC_DEFUN([LT_OUTPUT],
+[: ${CONFIG_LT=./config.lt}
+AC_MSG_NOTICE([creating $CONFIG_LT])
+cat >"$CONFIG_LT" <<_LTEOF
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate a libtool stub with the current configuration.
+
+lt_cl_silent=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_LTEOF
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+AS_SHELL_SANITIZE
+_AS_PREPARE
+
+exec AS_MESSAGE_FD>&1
+exec AS_MESSAGE_LOG_FD>>config.log
+{
+  echo
+  AS_BOX([Running $as_me.])
+} >&AS_MESSAGE_LOG_FD
+
+lt_cl_help="\
+\`$as_me' creates a local libtool stub from the current configuration,
+for use in further configure time tests before the real libtool is
+generated.
+
+Usage: $[0] [[OPTIONS]]
+
+  -h, --help      print this help, then exit
+  -V, --version   print version number, then exit
+  -q, --quiet     do not print progress messages
+  -d, --debug     don't remove temporary files
+
+Report bugs to <bug-libtool@gnu.org>."
+
+lt_cl_version="\
+m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
+m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
+configured by $[0], generated by m4_PACKAGE_STRING.
+
+Copyright (C) 2008 Free Software Foundation, Inc.
+This config.lt script is free software; the Free Software Foundation
+gives unlimited permision to copy, distribute and modify it."
+
+while test $[#] != 0
+do
+  case $[1] in
+    --version | --v* | -V )
+      echo "$lt_cl_version"; exit 0 ;;
+    --help | --h* | -h )
+      echo "$lt_cl_help"; exit 0 ;;
+    --debug | --d* | -d )
+      debug=: ;;
+    --quiet | --q* | --silent | --s* | -q )
+      lt_cl_silent=: ;;
+
+    -*) AC_MSG_ERROR([unrecognized option: $[1]
+Try \`$[0] --help' for more information.]) ;;
+
+    *) AC_MSG_ERROR([unrecognized argument: $[1]
+Try \`$[0] --help' for more information.]) ;;
+  esac
+  shift
+done
+
+if $lt_cl_silent; then
+  exec AS_MESSAGE_FD>/dev/null
+fi
+_LTEOF
+
+cat >>"$CONFIG_LT" <<_LTEOF
+_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
+_LTEOF
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+AC_MSG_NOTICE([creating $ofile])
+_LT_OUTPUT_LIBTOOL_COMMANDS
+AS_EXIT(0)
+_LTEOF
+chmod +x "$CONFIG_LT"
+
+# configure is writing to config.log, but config.lt does its own redirection,
+# appending to config.log, which fails on DOS, as config.log is still kept
+# open by configure.  Here we exec the FD to /dev/null, effectively closing
+# config.log, so it can be properly (re)opened and appended to by config.lt.
+if test "$no_create" != yes; then
+  lt_cl_success=:
+  test "$silent" = yes &&
+    lt_config_lt_args="$lt_config_lt_args --quiet"
+  exec AS_MESSAGE_LOG_FD>/dev/null
+  $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
+  exec AS_MESSAGE_LOG_FD>>config.log
+  $lt_cl_success || AS_EXIT(1)
+fi
+])# LT_OUTPUT
+
+
+# _LT_CONFIG(TAG)
+# ---------------
+# If TAG is the built-in tag, create an initial libtool script with a
+# default configuration from the untagged config vars.  Otherwise add code
+# to config.status for appending the configuration named by TAG from the
+# matching tagged config vars.
+m4_defun([_LT_CONFIG],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+_LT_CONFIG_SAVE_COMMANDS([
+  m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
+  m4_if(_LT_TAG, [C], [
+    # See if we are running on zsh, and set the options which allow our
+    # commands through without removal of \ escapes.
+    if test -n "${ZSH_VERSION+set}" ; then
+      setopt NO_GLOB_SUBST
+    fi
+
+    cfgfile="${ofile}T"
+    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+    $RM "$cfgfile"
+
+    cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+
+# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+_LT_COPYING
+_LT_LIBTOOL_TAGS
+
+# ### BEGIN LIBTOOL CONFIG
+_LT_LIBTOOL_CONFIG_VARS
+_LT_LIBTOOL_TAG_VARS
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+  case $host_os in
+  aix3*)
+    cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program.  For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+  COLLECT_NAMES=
+  export COLLECT_NAMES
+fi
+_LT_EOF
+    ;;
+  esac
+
+  _LT_PROG_LTMAIN
+
+  # We use sed instead of cat because bash on DJGPP gets confused if
+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+  # text mode, it properly converts lines to CR/LF.  This bash problem
+  # is reportedly fixed, but why not run on old versions too?
+  sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
+    || (rm -f "$cfgfile"; exit 1)
+
+  _LT_PROG_XSI_SHELLFNS
+
+  sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
+    || (rm -f "$cfgfile"; exit 1)
+
+  mv -f "$cfgfile" "$ofile" ||
+    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+  chmod +x "$ofile"
+],
+[cat <<_LT_EOF >> "$ofile"
+
+dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
+dnl in a comment (ie after a #).
+# ### BEGIN LIBTOOL TAG CONFIG: $1
+_LT_LIBTOOL_TAG_VARS(_LT_TAG)
+# ### END LIBTOOL TAG CONFIG: $1
+_LT_EOF
+])dnl /m4_if
+],
+[m4_if([$1], [], [
+    PACKAGE='$PACKAGE'
+    VERSION='$VERSION'
+    TIMESTAMP='$TIMESTAMP'
+    RM='$RM'
+    ofile='$ofile'], [])
+])dnl /_LT_CONFIG_SAVE_COMMANDS
+])# _LT_CONFIG
+
+
+# LT_SUPPORTED_TAG(TAG)
+# ---------------------
+# Trace this macro to discover what tags are supported by the libtool
+# --tag option, using:
+#    autoconf --trace 'LT_SUPPORTED_TAG:$1'
+AC_DEFUN([LT_SUPPORTED_TAG], [])
+
+
+# C support is built-in for now
+m4_define([_LT_LANG_C_enabled], [])
+m4_define([_LT_TAGS], [])
+
+
+# LT_LANG(LANG)
+# -------------
+# Enable libtool support for the given language if not already enabled.
+AC_DEFUN([LT_LANG],
+[AC_BEFORE([$0], [LT_OUTPUT])dnl
+m4_case([$1],
+  [C],			[_LT_LANG(C)],
+  [C++],		[_LT_LANG(CXX)],
+  [Java],		[_LT_LANG(GCJ)],
+  [Fortran 77],		[_LT_LANG(F77)],
+  [Fortran],		[_LT_LANG(FC)],
+  [Windows Resource],	[_LT_LANG(RC)],
+  [m4_ifdef([_LT_LANG_]$1[_CONFIG],
+    [_LT_LANG($1)],
+    [m4_fatal([$0: unsupported language: "$1"])])])dnl
+])# LT_LANG
+
+
+# _LT_LANG(LANGNAME)
+# ------------------
+m4_defun([_LT_LANG],
+[m4_ifdef([_LT_LANG_]$1[_enabled], [],
+  [LT_SUPPORTED_TAG([$1])dnl
+  m4_append([_LT_TAGS], [$1 ])dnl
+  m4_define([_LT_LANG_]$1[_enabled], [])dnl
+  _LT_LANG_$1_CONFIG($1)])dnl
+])# _LT_LANG
+
+
+# _LT_LANG_DEFAULT_CONFIG
+# -----------------------
+m4_defun([_LT_LANG_DEFAULT_CONFIG],
+[AC_PROVIDE_IFELSE([AC_PROG_CXX],
+  [LT_LANG(CXX)],
+  [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
+
+AC_PROVIDE_IFELSE([AC_PROG_F77],
+  [LT_LANG(F77)],
+  [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
+
+AC_PROVIDE_IFELSE([AC_PROG_FC],
+  [LT_LANG(FC)],
+  [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
+
+dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
+dnl pulling things in needlessly.
+AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+  [LT_LANG(GCJ)],
+  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+    [LT_LANG(GCJ)],
+    [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
+      [LT_LANG(GCJ)],
+      [m4_ifdef([AC_PROG_GCJ],
+	[m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
+       m4_ifdef([A][M_PROG_GCJ],
+	[m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
+       m4_ifdef([LT_PROG_GCJ],
+	[m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
+
+AC_PROVIDE_IFELSE([LT_PROG_RC],
+  [LT_LANG(RC)],
+  [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
+])# _LT_LANG_DEFAULT_CONFIG
+
+# Obsolete macros:
+AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
+AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
+AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
+AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
+dnl AC_DEFUN([AC_LIBTOOL_F77], [])
+dnl AC_DEFUN([AC_LIBTOOL_FC], [])
+dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
+
+
+# _LT_TAG_COMPILER
+# ----------------
+m4_defun([_LT_TAG_COMPILER],
+[AC_REQUIRE([AC_PROG_CC])dnl
+
+_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
+_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
+_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
+_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+])# _LT_TAG_COMPILER
+
+
+# _LT_COMPILER_BOILERPLATE
+# ------------------------
+# Check for compiler boilerplate output or warnings with
+# the simple compiler test code.
+m4_defun([_LT_COMPILER_BOILERPLATE],
+[m4_require([_LT_DECL_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+])# _LT_COMPILER_BOILERPLATE
+
+
+# _LT_LINKER_BOILERPLATE
+# ----------------------
+# Check for linker boilerplate output or warnings with
+# the simple link test code.
+m4_defun([_LT_LINKER_BOILERPLATE],
+[m4_require([_LT_DECL_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+])# _LT_LINKER_BOILERPLATE
+
+# _LT_REQUIRED_DARWIN_CHECKS
+# -------------------------
+m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
+  case $host_os in
+    rhapsody* | darwin*)
+    AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
+    AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
+    AC_CHECK_TOOL([LIPO], [lipo], [:])
+    AC_CHECK_TOOL([OTOOL], [otool], [:])
+    AC_CHECK_TOOL([OTOOL64], [otool64], [:])
+    _LT_DECL([], [DSYMUTIL], [1],
+      [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
+    _LT_DECL([], [NMEDIT], [1],
+      [Tool to change global to local symbols on Mac OS X])
+    _LT_DECL([], [LIPO], [1],
+      [Tool to manipulate fat objects and archives on Mac OS X])
+    _LT_DECL([], [OTOOL], [1],
+      [ldd/readelf like tool for Mach-O binaries on Mac OS X])
+    _LT_DECL([], [OTOOL64], [1],
+      [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
+
+    AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
+      [lt_cv_apple_cc_single_mod=no
+      if test -z "${LT_MULTI_MODULE}"; then
+	# By default we will add the -single_module flag. You can override
+	# by either setting the environment variable LT_MULTI_MODULE
+	# non-empty at configure time, or by adding -multi_module to the
+	# link flags.
+	rm -rf libconftest.dylib*
+	echo "int foo(void){return 1;}" > conftest.c
+	echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
+	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+        _lt_result=$?
+	if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+	  lt_cv_apple_cc_single_mod=yes
+	else
+	  cat conftest.err >&AS_MESSAGE_LOG_FD
+	fi
+	rm -rf libconftest.dylib*
+	rm -f conftest.*
+      fi])
+    AC_CACHE_CHECK([for -exported_symbols_list linker flag],
+      [lt_cv_ld_exported_symbols_list],
+      [lt_cv_ld_exported_symbols_list=no
+      save_LDFLAGS=$LDFLAGS
+      echo "_main" > conftest.sym
+      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+      AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+	[lt_cv_ld_exported_symbols_list=yes],
+	[lt_cv_ld_exported_symbols_list=no])
+	LDFLAGS="$save_LDFLAGS"
+    ])
+    case $host_os in
+    rhapsody* | darwin1.[[012]])
+      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+    darwin1.*)
+      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+    darwin*) # darwin 5.x on
+      # if running on 10.5 or later, the deployment target defaults
+      # to the OS version, if on x86, and 10.4, the deployment
+      # target defaults to 10.4. Don't you love it?
+      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+	10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
+	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+	10.[[012]]*)
+	  _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+	10.*)
+	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+      esac
+    ;;
+  esac
+    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+      _lt_dar_single_mod='$single_module'
+    fi
+    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+    else
+      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    fi
+    if test "$DSYMUTIL" != ":"; then
+      _lt_dsymutil='~$DSYMUTIL $lib || :'
+    else
+      _lt_dsymutil=
+    fi
+    ;;
+  esac
+])
+
+
+# _LT_DARWIN_LINKER_FEATURES
+# --------------------------
+# Checks for linker and compiler features on darwin
+m4_defun([_LT_DARWIN_LINKER_FEATURES],
+[
+  m4_require([_LT_REQUIRED_DARWIN_CHECKS])
+  _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+  _LT_TAGVAR(hardcode_direct, $1)=no
+  _LT_TAGVAR(hardcode_automatic, $1)=yes
+  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+  _LT_TAGVAR(whole_archive_flag_spec, $1)=''
+  _LT_TAGVAR(link_all_deplibs, $1)=yes
+  _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
+  case $cc_basename in
+     ifort*) _lt_dar_can_shared=yes ;;
+     *) _lt_dar_can_shared=$GCC ;;
+  esac
+  if test "$_lt_dar_can_shared" = "yes"; then
+    output_verbose_link_cmd=echo
+    _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+    _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+    _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+    m4_if([$1], [CXX],
+[   if test "$lt_cv_apple_cc_single_mod" != "yes"; then
+      _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
+      _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
+    fi
+],[])
+  else
+  _LT_TAGVAR(ld_shlibs, $1)=no
+  fi
+])
+
+# _LT_SYS_MODULE_PATH_AIX
+# -----------------------
+# Links a minimal program and checks the executable
+# for the system default hardcoded library path. In most cases,
+# this is /usr/lib:/lib, but when the MPI compilers are used
+# the location of the communication and MPI libs are included too.
+# If we don't find anything, use the default library path according
+# to the aix ld manual.
+m4_defun([_LT_SYS_MODULE_PATH_AIX],
+[m4_require([_LT_DECL_SED])dnl
+AC_LINK_IFELSE(AC_LANG_PROGRAM,[
+lt_aix_libpath_sed='
+    /Import File Strings/,/^$/ {
+	/^0/ {
+	    s/^0  *\(.*\)$/\1/
+	    p
+	}
+    }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi],[])
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+])# _LT_SYS_MODULE_PATH_AIX
+
+
+# _LT_SHELL_INIT(ARG)
+# -------------------
+m4_define([_LT_SHELL_INIT],
+[ifdef([AC_DIVERSION_NOTICE],
+	     [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
+	 [AC_DIVERT_PUSH(NOTICE)])
+$1
+AC_DIVERT_POP
+])# _LT_SHELL_INIT
+
+
+# _LT_PROG_ECHO_BACKSLASH
+# -----------------------
+# Add some code to the start of the generated configure script which
+# will find an echo command which doesn't interpret backslashes.
+m4_defun([_LT_PROG_ECHO_BACKSLASH],
+[_LT_SHELL_INIT([
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$lt_ECHO in
+X*--fallback-echo)
+  # Remove one level of quotation (which was required for Make).
+  ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
+  ;;
+esac
+
+ECHO=${lt_ECHO-echo}
+if test "X[$]1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X[$]1" = X--fallback-echo; then
+  # Avoid inline document here, it may be left over
+  :
+elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
+  # Yippee, $ECHO works!
+  :
+else
+  # Restart under the correct shell.
+  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
+fi
+
+if test "X[$]1" = X--fallback-echo; then
+  # used as fallback echo
+  shift
+  cat <<_LT_EOF
+[$]*
+_LT_EOF
+  exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test -z "$lt_ECHO"; then
+  if test "X${echo_test_string+set}" != Xset; then
+    # find a string as large as possible, as long as the shell can cope with it
+    for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
+      # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+      if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
+	 { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
+      then
+        break
+      fi
+    done
+  fi
+
+  if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
+     echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
+     test "X$echo_testing_string" = "X$echo_test_string"; then
+    :
+  else
+    # The Solaris, AIX, and Digital Unix default echo programs unquote
+    # backslashes.  This makes it impossible to quote backslashes using
+    #   echo "$something" | sed 's/\\/\\\\/g'
+    #
+    # So, first we look for a working echo in the user's PATH.
+
+    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    for dir in $PATH /usr/ucb; do
+      IFS="$lt_save_ifs"
+      if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+         test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+         echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+         test "X$echo_testing_string" = "X$echo_test_string"; then
+        ECHO="$dir/echo"
+        break
+      fi
+    done
+    IFS="$lt_save_ifs"
+
+    if test "X$ECHO" = Xecho; then
+      # We didn't find a better echo, so look for alternatives.
+      if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
+         echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
+         test "X$echo_testing_string" = "X$echo_test_string"; then
+        # This shell has a builtin print -r that does the trick.
+        ECHO='print -r'
+      elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
+	   test "X$CONFIG_SHELL" != X/bin/ksh; then
+        # If we have ksh, try running configure again with it.
+        ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+        export ORIGINAL_CONFIG_SHELL
+        CONFIG_SHELL=/bin/ksh
+        export CONFIG_SHELL
+        exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
+      else
+        # Try using printf.
+        ECHO='printf %s\n'
+        if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
+	   echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	  # Cool, printf works
+	  :
+        elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+	     test "X$echo_testing_string" = 'X\t' &&
+	     echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	     test "X$echo_testing_string" = "X$echo_test_string"; then
+	  CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+	  export CONFIG_SHELL
+	  SHELL="$CONFIG_SHELL"
+	  export SHELL
+	  ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
+        elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+	     test "X$echo_testing_string" = 'X\t' &&
+	     echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	     test "X$echo_testing_string" = "X$echo_test_string"; then
+	  ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
+        else
+	  # maybe with a smaller string...
+	  prev=:
+
+	  for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
+	    if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
+	    then
+	      break
+	    fi
+	    prev="$cmd"
+	  done
+
+	  if test "$prev" != 'sed 50q "[$]0"'; then
+	    echo_test_string=`eval $prev`
+	    export echo_test_string
+	    exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
+	  else
+	    # Oops.  We lost completely, so just stick with echo.
+	    ECHO=echo
+	  fi
+        fi
+      fi
+    fi
+  fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+lt_ECHO=$ECHO
+if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
+   lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
+fi
+
+AC_SUBST(lt_ECHO)
+])
+_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
+_LT_DECL([], [ECHO], [1],
+    [An echo program that does not interpret backslashes])
+])# _LT_PROG_ECHO_BACKSLASH
+
+
+# _LT_ENABLE_LOCK
+# ---------------
+m4_defun([_LT_ENABLE_LOCK],
+[AC_ARG_ENABLE([libtool-lock],
+  [AS_HELP_STRING([--disable-libtool-lock],
+    [avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.$ac_objext` in
+      *ELF-32*)
+	HPUX_IA64_MODE="32"
+	;;
+      *ELF-64*)
+	HPUX_IA64_MODE="64"
+	;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+*-*-irix6*)
+  # Find out which ABI we are using.
+  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    if test "$lt_cv_prog_gnu_ld" = yes; then
+      case `/usr/bin/file conftest.$ac_objext` in
+	*32-bit*)
+	  LD="${LD-ld} -melf32bsmip"
+	  ;;
+	*N32*)
+	  LD="${LD-ld} -melf32bmipn32"
+	  ;;
+	*64-bit*)
+	  LD="${LD-ld} -melf64bmip"
+	;;
+      esac
+    else
+      case `/usr/bin/file conftest.$ac_objext` in
+	*32-bit*)
+	  LD="${LD-ld} -32"
+	  ;;
+	*N32*)
+	  LD="${LD-ld} -n32"
+	  ;;
+	*64-bit*)
+	  LD="${LD-ld} -64"
+	  ;;
+      esac
+    fi
+  fi
+  rm -rf conftest*
+  ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+      *32-bit*)
+	case $host in
+	  x86_64-*kfreebsd*-gnu)
+	    LD="${LD-ld} -m elf_i386_fbsd"
+	    ;;
+	  x86_64-*linux*)
+	    LD="${LD-ld} -m elf_i386"
+	    ;;
+	  ppc64-*linux*|powerpc64-*linux*)
+	    LD="${LD-ld} -m elf32ppclinux"
+	    ;;
+	  s390x-*linux*)
+	    LD="${LD-ld} -m elf_s390"
+	    ;;
+	  sparc64-*linux*)
+	    LD="${LD-ld} -m elf32_sparc"
+	    ;;
+	esac
+	;;
+      *64-bit*)
+	case $host in
+	  x86_64-*kfreebsd*-gnu)
+	    LD="${LD-ld} -m elf_x86_64_fbsd"
+	    ;;
+	  x86_64-*linux*)
+	    LD="${LD-ld} -m elf_x86_64"
+	    ;;
+	  ppc*-*linux*|powerpc*-*linux*)
+	    LD="${LD-ld} -m elf64ppc"
+	    ;;
+	  s390*-*linux*|s390*-*tpf*)
+	    LD="${LD-ld} -m elf64_s390"
+	    ;;
+	  sparc*-*linux*)
+	    LD="${LD-ld} -m elf64_sparc"
+	    ;;
+	esac
+	;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+*-*-sco3.2v5*)
+  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+  SAVE_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -belf"
+  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+    [AC_LANG_PUSH(C)
+     AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+     AC_LANG_POP])
+  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+    CFLAGS="$SAVE_CFLAGS"
+  fi
+  ;;
+sparc*-*solaris*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+    *64-bit*)
+      case $lt_cv_prog_gnu_ld in
+      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      *)
+	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+	  LD="${LD-ld} -64"
+	fi
+	;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+esac
+
+need_locks="$enable_libtool_lock"
+])# _LT_ENABLE_LOCK
+
+
+# _LT_CMD_OLD_ARCHIVE
+# -------------------
+m4_defun([_LT_CMD_OLD_ARCHIVE],
+[AC_CHECK_TOOL(AR, ar, false)
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+_LT_DECL([], [AR], [1], [The archiver])
+_LT_DECL([], [AR_FLAGS], [1])
+
+AC_CHECK_TOOL(STRIP, strip, :)
+test -z "$STRIP" && STRIP=:
+_LT_DECL([], [STRIP], [1], [A symbol stripping program])
+
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+test -z "$RANLIB" && RANLIB=:
+_LT_DECL([], [RANLIB], [1],
+    [Commands used to install an old-style archive])
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+  case $host_os in
+  openbsd*)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+    ;;
+  *)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+    ;;
+  esac
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+_LT_DECL([], [old_postinstall_cmds], [2])
+_LT_DECL([], [old_postuninstall_cmds], [2])
+_LT_TAGDECL([], [old_archive_cmds], [2],
+    [Commands used to build an old-style archive])
+])# _LT_CMD_OLD_ARCHIVE
+
+
+# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([_LT_COMPILER_OPTION],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+   m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$3"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       $2=yes
+     fi
+   fi
+   $RM conftest*
+])
+
+if test x"[$]$2" = xyes; then
+    m4_if([$5], , :, [$5])
+else
+    m4_if([$6], , :, [$6])
+fi
+])# _LT_COMPILER_OPTION
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
+
+
+# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#                  [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------
+# Check whether the given linker option works
+AC_DEFUN([_LT_LINKER_OPTION],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $3"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&AS_MESSAGE_LOG_FD
+       $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         $2=yes
+       fi
+     else
+       $2=yes
+     fi
+   fi
+   $RM -r conftest*
+   LDFLAGS="$save_LDFLAGS"
+])
+
+if test x"[$]$2" = xyes; then
+    m4_if([$4], , :, [$4])
+else
+    m4_if([$5], , :, [$5])
+fi
+])# _LT_LINKER_OPTION
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
+
+
+# LT_CMD_MAX_LEN
+#---------------
+AC_DEFUN([LT_CMD_MAX_LEN],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+  i=0
+  teststring="ABCD"
+
+  case $build_os in
+  msdosdjgpp*)
+    # On DJGPP, this test can blow up pretty badly due to problems in libc
+    # (any single argument exceeding 2000 bytes causes a buffer overrun
+    # during glob expansion).  Even if it were fixed, the result of this
+    # check would be larger than it should be.
+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
+    ;;
+
+  gnu*)
+    # Under GNU Hurd, this test is not required because there is
+    # no limit to the length of command line arguments.
+    # Libtool will interpret -1 as no limit whatsoever
+    lt_cv_sys_max_cmd_len=-1;
+    ;;
+
+  cygwin* | mingw* | cegcc*)
+    # On Win9x/ME, this test blows up -- it succeeds, but takes
+    # about 5 minutes as the teststring grows exponentially.
+    # Worse, since 9x/ME are not pre-emptively multitasking,
+    # you end up with a "frozen" computer, even though with patience
+    # the test eventually succeeds (with a max line length of 256k).
+    # Instead, let's just punt: use the minimum linelength reported by
+    # all of the supported platforms: 8192 (on NT/2K/XP).
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  amigaos*)
+    # On AmigaOS with pdksh, this test takes hours, literally.
+    # So we just punt and use a minimum line length of 8192.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+    # This has been around since 386BSD, at least.  Likely further.
+    if test -x /sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+    elif test -x /usr/sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+    else
+      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
+    fi
+    # And add a safety zone
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    ;;
+
+  interix*)
+    # We know the value 262144 and hardcode it with a safety zone (like BSD)
+    lt_cv_sys_max_cmd_len=196608
+    ;;
+
+  osf*)
+    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+    # nice to cause kernel panics so lets avoid the loop below.
+    # First set a reasonable default.
+    lt_cv_sys_max_cmd_len=16384
+    #
+    if test -x /sbin/sysconfig; then
+      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+        *1*) lt_cv_sys_max_cmd_len=-1 ;;
+      esac
+    fi
+    ;;
+  sco3.2v5*)
+    lt_cv_sys_max_cmd_len=102400
+    ;;
+  sysv5* | sco5v6* | sysv4.2uw2*)
+    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+    if test -n "$kargmax"; then
+      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[	 ]]//'`
+    else
+      lt_cv_sys_max_cmd_len=32768
+    fi
+    ;;
+  *)
+    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+    if test -n "$lt_cv_sys_max_cmd_len"; then
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    else
+      # Make teststring a little bigger before we do anything with it.
+      # a 1K string should be a reasonable start.
+      for i in 1 2 3 4 5 6 7 8 ; do
+        teststring=$teststring$teststring
+      done
+      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+      # If test is not a shell built-in, we'll probably end up computing a
+      # maximum length that is only half of the actual maximum length, but
+      # we can't tell.
+      while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
+	         = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
+	      test $i != 17 # 1/2 MB should be enough
+      do
+        i=`expr $i + 1`
+        teststring=$teststring$teststring
+      done
+      # Only check the string length outside the loop.
+      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+      teststring=
+      # Add a significant safety factor because C++ compilers can tack on
+      # massive amounts of additional arguments before passing them to the
+      # linker.  It appears as though 1/2 is a usable value.
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    fi
+    ;;
+  esac
+])
+if test -n $lt_cv_sys_max_cmd_len ; then
+  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+else
+  AC_MSG_RESULT(none)
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+_LT_DECL([], [max_cmd_len], [0],
+    [What is the maximum length of a command?])
+])# LT_CMD_MAX_LEN
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
+
+
+# _LT_HEADER_DLFCN
+# ----------------
+m4_defun([_LT_HEADER_DLFCN],
+[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
+])# _LT_HEADER_DLFCN
+
+
+# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+#                      ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ----------------------------------------------------------------
+m4_defun([_LT_TRY_DLOPEN_SELF],
+[m4_require([_LT_HEADER_DLFCN])dnl
+if test "$cross_compiling" = yes; then :
+  [$4]
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<_LT_EOF
+[#line __oline__ "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+  else
+    puts (dlerror ());
+
+  return status;
+}]
+_LT_EOF
+  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) $1 ;;
+      x$lt_dlneed_uscore) $2 ;;
+      x$lt_dlunknown|x*) $3 ;;
+    esac
+  else :
+    # compilation failed
+    $3
+  fi
+fi
+rm -fr conftest*
+])# _LT_TRY_DLOPEN_SELF
+
+
+# LT_SYS_DLOPEN_SELF
+# ------------------
+AC_DEFUN([LT_SYS_DLOPEN_SELF],
+[m4_require([_LT_HEADER_DLFCN])dnl
+if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32* | cegcc*)
+    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen_libs=
+    ;;
+
+  cygwin*)
+    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen_libs=
+    ;;
+
+  darwin*)
+  # if libdl is installed we need to link against it
+    AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
+    lt_cv_dlopen="dyld"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ])
+    ;;
+
+  *)
+    AC_CHECK_FUNC([shl_load],
+	  [lt_cv_dlopen="shl_load"],
+      [AC_CHECK_LIB([dld], [shl_load],
+	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
+	[AC_CHECK_FUNC([dlopen],
+	      [lt_cv_dlopen="dlopen"],
+	  [AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+	    [AC_CHECK_LIB([svld], [dlopen],
+		  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+	      [AC_CHECK_LIB([dld], [dld_link],
+		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
+	      ])
+	    ])
+	  ])
+	])
+      ])
+    ;;
+  esac
+
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  else
+    enable_dlopen=no
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS="$CPPFLAGS"
+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS="$LDFLAGS"
+    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS="$LIBS"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    AC_CACHE_CHECK([whether a program can dlopen itself],
+	  lt_cv_dlopen_self, [dnl
+	  _LT_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+    ])
+
+    if test "x$lt_cv_dlopen_self" = xyes; then
+      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+	  lt_cv_dlopen_self_static, [dnl
+	  _LT_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
+      ])
+    fi
+
+    CPPFLAGS="$save_CPPFLAGS"
+    LDFLAGS="$save_LDFLAGS"
+    LIBS="$save_LIBS"
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+_LT_DECL([dlopen_support], [enable_dlopen], [0],
+	 [Whether dlopen is supported])
+_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
+	 [Whether dlopen of programs is supported])
+_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
+	 [Whether dlopen of statically linked programs is supported])
+])# LT_SYS_DLOPEN_SELF
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
+
+
+# _LT_COMPILER_C_O([TAGNAME])
+# ---------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler.
+# This macro does not hard code the compiler like AC_PROG_CC_C_O.
+m4_defun([_LT_COMPILER_C_O],
+[m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
+  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
+  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
+   $RM -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+     fi
+   fi
+   chmod u+w . 2>&AS_MESSAGE_LOG_FD
+   $RM conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+   $RM out/* && rmdir out
+   cd ..
+   $RM -r conftest
+   $RM conftest*
+])
+_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
+	[Does compiler simultaneously support -c and -o options?])
+])# _LT_COMPILER_C_O
+
+
+# _LT_COMPILER_FILE_LOCKS([TAGNAME])
+# ----------------------------------
+# Check to see if we can do hard links to lock some files if needed
+m4_defun([_LT_COMPILER_FILE_LOCKS],
+[m4_require([_LT_ENABLE_LOCK])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+_LT_COMPILER_C_O([$1])
+
+hard_links="nottested"
+if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  AC_MSG_CHECKING([if we can lock with hard links])
+  hard_links=yes
+  $RM conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  AC_MSG_RESULT([$hard_links])
+  if test "$hard_links" = no; then
+    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
+])# _LT_COMPILER_FILE_LOCKS
+
+
+# _LT_CHECK_OBJDIR
+# ----------------
+m4_defun([_LT_CHECK_OBJDIR],
+[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
+[rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+  lt_cv_objdir=.libs
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null])
+objdir=$lt_cv_objdir
+_LT_DECL([], [objdir], [0],
+         [The name of the directory that contains temporary libtool files])dnl
+m4_pattern_allow([LT_OBJDIR])dnl
+AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/",
+  [Define to the sub-directory in which libtool stores uninstalled libraries.])
+])# _LT_CHECK_OBJDIR
+
+
+# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
+# --------------------------------------
+# Check hardcoding attributes.
+m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
+[AC_MSG_CHECKING([how to hardcode library paths into programs])
+_LT_TAGVAR(hardcode_action, $1)=
+if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
+   test -n "$_LT_TAGVAR(runpath_var, $1)" ||
+   test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
+
+  # We can hardcode non-existent directories.
+  if test "$_LT_TAGVAR(hardcode_direct, $1)" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
+     test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then
+    # Linking always hardcodes the temporary library directory.
+    _LT_TAGVAR(hardcode_action, $1)=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    _LT_TAGVAR(hardcode_action, $1)=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  _LT_TAGVAR(hardcode_action, $1)=unsupported
+fi
+AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
+
+if test "$_LT_TAGVAR(hardcode_action, $1)" = relink ||
+   test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+_LT_TAGDECL([], [hardcode_action], [0],
+    [How to hardcode a shared library path into an executable])
+])# _LT_LINKER_HARDCODE_LIBPATH
+
+
+# _LT_CMD_STRIPLIB
+# ----------------
+m4_defun([_LT_CMD_STRIPLIB],
+[m4_require([_LT_DECL_EGREP])
+striplib=
+old_striplib=
+AC_MSG_CHECKING([whether stripping libraries is possible])
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  AC_MSG_RESULT([yes])
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+  darwin*)
+    if test -n "$STRIP" ; then
+      striplib="$STRIP -x"
+      old_striplib="$STRIP -S"
+      AC_MSG_RESULT([yes])
+    else
+      AC_MSG_RESULT([no])
+    fi
+    ;;
+  *)
+    AC_MSG_RESULT([no])
+    ;;
+  esac
+fi
+_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
+_LT_DECL([], [striplib], [1])
+])# _LT_CMD_STRIPLIB
+
+
+# _LT_SYS_DYNAMIC_LINKER([TAG])
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+m4_defun([_LT_SYS_DYNAMIC_LINKER],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_OBJDUMP])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_MSG_CHECKING([dynamic linker characteristics])
+m4_if([$1],
+	[], [
+if test "$GCC" = yes; then
+  case $host_os in
+    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
+    *) lt_awk_arg="/^libraries:/" ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+  if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
+  else
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+  fi
+  # Ok, now we have the path, separated by spaces, we can step through it
+  # and add multilib dir if necessary.
+  lt_tmp_lt_search_path_spec=
+  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  for lt_sys_path in $lt_search_path_spec; do
+    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
+      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
+    else
+      test -d "$lt_sys_path" && \
+	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+    fi
+  done
+  lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
+BEGIN {RS=" "; FS="/|\n";} {
+  lt_foo="";
+  lt_count=0;
+  for (lt_i = NF; lt_i > 0; lt_i--) {
+    if ($lt_i != "" && $lt_i != ".") {
+      if ($lt_i == "..") {
+        lt_count++;
+      } else {
+        if (lt_count == 0) {
+          lt_foo="/" $lt_i lt_foo;
+        } else {
+          lt_count--;
+        }
+      }
+    }
+  }
+  if (lt_foo != "") { lt_freq[[lt_foo]]++; }
+  if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
+}'`
+  sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi])
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix[[4-9]]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[[01]] | aix4.[[01]].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  case $host_cpu in
+  powerpc)
+    # Since July 2007 AmigaOS4 officially supports .so libraries.
+    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    ;;
+  m68k)
+    library_names_spec='$libname.ixlibrary $libname.a'
+    # Create ${libname}_ixlibrary.a entries in /sys/libs.
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    ;;
+  esac
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[[45]]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname~
+      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+      fi'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw* | cegcc*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+m4_if([$1], [],[
+  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[[123]]*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[[01]]* | freebsdelf3.[[01]]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
+  freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  *) # from 4.6 on, and DragonFly
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+  hppa*64*)
+    shrext_cmds='.sl'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+  *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+interix[[3-9]]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  # Some binutils ld are patched to set DT_RUNPATH
+  save_LDFLAGS=$LDFLAGS
+  save_libdir=$libdir
+  eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
+       LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
+  AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+    [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
+       [shlibpath_overrides_runpath=yes])])
+  LDFLAGS=$save_LDFLAGS
+  libdir=$save_libdir
+
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+*nto* | *qnx*)
+  version_type=qnx
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='ldqnx.so'
+  ;;
+
+openbsd*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
+    *)				need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[[89]] | openbsd2.[[89]].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+rdos*)
+  dynamic_linker=no
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+tpf*)
+  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+AC_MSG_RESULT([$dynamic_linker])
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+fi
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+fi
+
+_LT_DECL([], [variables_saved_for_relink], [1],
+    [Variables whose values should be saved in libtool wrapper scripts and
+    restored at link time])
+_LT_DECL([], [need_lib_prefix], [0],
+    [Do we need the "lib" prefix for modules?])
+_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
+_LT_DECL([], [version_type], [0], [Library versioning type])
+_LT_DECL([], [runpath_var], [0],  [Shared library runtime path variable])
+_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
+_LT_DECL([], [shlibpath_overrides_runpath], [0],
+    [Is shlibpath searched before the hard-coded library search path?])
+_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
+_LT_DECL([], [library_names_spec], [1],
+    [[List of archive names.  First name is the real one, the rest are links.
+    The last name is the one that the linker finds with -lNAME]])
+_LT_DECL([], [soname_spec], [1],
+    [[The coded name of the library, if different from the real name]])
+_LT_DECL([], [postinstall_cmds], [2],
+    [Command to use after installation of a shared archive])
+_LT_DECL([], [postuninstall_cmds], [2],
+    [Command to use after uninstallation of a shared archive])
+_LT_DECL([], [finish_cmds], [2],
+    [Commands used to finish a libtool library installation in a directory])
+_LT_DECL([], [finish_eval], [1],
+    [[As "finish_cmds", except a single script fragment to be evaled but
+    not shown]])
+_LT_DECL([], [hardcode_into_libs], [0],
+    [Whether we should hardcode library paths into libraries])
+_LT_DECL([], [sys_lib_search_path_spec], [2],
+    [Compile-time system search path for libraries])
+_LT_DECL([], [sys_lib_dlsearch_path_spec], [2],
+    [Run-time system search path for libraries])
+])# _LT_SYS_DYNAMIC_LINKER
+
+
+# _LT_PATH_TOOL_PREFIX(TOOL)
+# --------------------------
+# find a file program which can recognize shared library
+AC_DEFUN([_LT_PATH_TOOL_PREFIX],
+[m4_require([_LT_DECL_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] |  ?:[\\/]*])
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word.  This closes a longstanding sh security hole.
+  ac_dummy="m4_if([$2], , $PATH, [$2])"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$1; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac])
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  AC_MSG_RESULT($MAGIC_CMD)
+else
+  AC_MSG_RESULT(no)
+fi
+_LT_DECL([], [MAGIC_CMD], [0],
+	 [Used to examine libraries when file_magic_cmd begins with "file"])dnl
+])# _LT_PATH_TOOL_PREFIX
+
+# Old name:
+AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
+
+
+# _LT_PATH_MAGIC
+# --------------
+# find a file program which can recognize a shared library
+m4_defun([_LT_PATH_MAGIC],
+[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+  if test -n "$ac_tool_prefix"; then
+    _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
+  else
+    MAGIC_CMD=:
+  fi
+fi
+])# _LT_PATH_MAGIC
+
+
+# LT_PATH_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+AC_DEFUN([LT_PATH_LD],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+
+AC_ARG_WITH([gnu-ld],
+    [AS_HELP_STRING([--with-gnu-ld],
+	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
+    [test "$withval" = no || with_gnu_ld=yes],
+    [with_gnu_ld=no])dnl
+
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  AC_MSG_CHECKING([for ld used by $CC])
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [[\\/]]* | ?:[[\\/]]*)
+      re_direlt='/[[^/]][[^/]]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  AC_MSG_CHECKING([for GNU ld])
+else
+  AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some variants of GNU ld only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break
+	;;
+      *)
+	test "$with_gnu_ld" != yes && break
+	;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+else
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  AC_MSG_RESULT($LD)
+else
+  AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+_LT_PATH_LD_GNU
+AC_SUBST([LD])
+
+_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
+])# LT_PATH_LD
+
+# Old names:
+AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
+AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_PROG_LD], [])
+dnl AC_DEFUN([AC_PROG_LD], [])
+
+
+# _LT_PATH_LD_GNU
+#- --------------
+m4_defun([_LT_PATH_LD_GNU],
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac])
+with_gnu_ld=$lt_cv_prog_gnu_ld
+])# _LT_PATH_LD_GNU
+
+
+# _LT_CMD_RELOAD
+# --------------
+# find reload flag for linker
+#   -- PORTME Some linkers may need a different reload flag.
+m4_defun([_LT_CMD_RELOAD],
+[AC_CACHE_CHECK([for $LD option to reload object files],
+  lt_cv_ld_reload_flag,
+  [lt_cv_ld_reload_flag='-r'])
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+  darwin*)
+    if test "$GCC" = yes; then
+      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+    else
+      reload_cmds='$LD$reload_flag -o $output$reload_objs'
+    fi
+    ;;
+esac
+_LT_DECL([], [reload_flag], [1], [How to create reloadable object files])dnl
+_LT_DECL([], [reload_cmds], [2])dnl
+])# _LT_CMD_RELOAD
+
+
+# _LT_CHECK_MAGIC_METHOD
+# ----------------------
+# how to check for library dependencies
+#  -- PORTME fill in with the dynamic library characteristics
+m4_defun([_LT_CHECK_MAGIC_METHOD],
+[m4_require([_LT_DECL_EGREP])
+m4_require([_LT_DECL_OBJDUMP])
+AC_CACHE_CHECK([how to recognize dependent libraries],
+lt_cv_deplibs_check_method,
+[lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[[4-9]]*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+beos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+bsdi[[45]]*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  ;;
+
+cygwin*)
+  # func_win32_libid is a shell function defined in ltmain.sh
+  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+  lt_cv_file_magic_cmd='func_win32_libid'
+  ;;
+
+mingw* | pw32*)
+  # Base MSYS/MinGW do not provide the 'file' command needed by
+  # func_win32_libid shell function, so use a weaker test based on 'objdump',
+  # unless we find 'file', for example because we are cross-compiling.
+  if ( file / ) >/dev/null 2>&1; then
+    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+    lt_cv_file_magic_cmd='func_win32_libid'
+  else
+    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+    lt_cv_file_magic_cmd='$OBJDUMP -f'
+  fi
+  ;;
+
+cegcc)
+  # use the weaker test based on 'objdump'. See mingw*.
+  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+  lt_cv_file_magic_cmd='$OBJDUMP -f'
+  ;;
+
+darwin* | rhapsody*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+freebsd* | dragonfly*)
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+    case $host_cpu in
+    i*86 )
+      # Not sure whether the presence of OpenBSD here was a mistake.
+      # Let's accept both of them until this is cleared up.
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
+      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+      ;;
+    esac
+  else
+    lt_cv_deplibs_check_method=pass_all
+  fi
+  ;;
+
+gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+hpux10.20* | hpux11*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  case $host_cpu in
+  ia64*)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+    ;;
+  hppa*64*)
+    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+    ;;
+  *)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
+    ;;
+  esac
+  ;;
+
+interix[[3-9]]*)
+  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+  lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $LD in
+  *-32|*"-32 ") libmagic=32-bit;;
+  *-n32|*"-n32 ") libmagic=N32;;
+  *-64|*"-64 ") libmagic=64-bit;;
+  *) libmagic=never-match;;
+  esac
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+netbsd*)
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
+  fi
+  ;;
+
+newos6*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+  ;;
+
+*nto* | *qnx*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+openbsd*)
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  fi
+  ;;
+
+osf3* | osf4* | osf5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+rdos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv4 | sysv4.3*)
+  case $host_vendor in
+  motorola)
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  sequent)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+    ;;
+  sni)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+    lt_cv_file_magic_test_file=/lib/libc.so
+    ;;
+  siemens)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  pc)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
+
+tpf*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+esac
+])
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+_LT_DECL([], [deplibs_check_method], [1],
+    [Method to check whether dependent libraries are shared objects])
+_LT_DECL([], [file_magic_cmd], [1],
+    [Command to use when deplibs_check_method == "file_magic"])
+])# _LT_CHECK_MAGIC_METHOD
+
+
+# LT_PATH_NM
+# ----------
+# find the pathname to a BSD- or MS-compatible name lister
+AC_DEFUN([LT_PATH_NM],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
+[if test -n "$NM"; then
+  # Let the user override the test.
+  lt_cv_path_NM="$NM"
+else
+  lt_nm_to_check="${ac_tool_prefix}nm"
+  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+    lt_nm_to_check="$lt_nm_to_check nm"
+  fi
+  for lt_tmp_nm in $lt_nm_to_check; do
+    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+      IFS="$lt_save_ifs"
+      test -z "$ac_dir" && ac_dir=.
+      tmp_nm="$ac_dir/$lt_tmp_nm"
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+	# Check to see if the nm accepts a BSD-compat flag.
+	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
+	#   nm: unknown option "B" ignored
+	# Tru64's nm complains that /dev/null is an invalid object file
+	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+	*/dev/null* | *'Invalid file or object type'*)
+	  lt_cv_path_NM="$tmp_nm -B"
+	  break
+	  ;;
+	*)
+	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+	  */dev/null*)
+	    lt_cv_path_NM="$tmp_nm -p"
+	    break
+	    ;;
+	  *)
+	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+	    continue # so that we can try to find one that supports BSD flags
+	    ;;
+	  esac
+	  ;;
+	esac
+      fi
+    done
+    IFS="$lt_save_ifs"
+  done
+  : ${lt_cv_path_NM=no}
+fi])
+if test "$lt_cv_path_NM" != "no"; then
+  NM="$lt_cv_path_NM"
+else
+  # Didn't find any BSD compatible name lister, look for dumpbin.
+  AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :)
+  AC_SUBST([DUMPBIN])
+  if test "$DUMPBIN" != ":"; then
+    NM="$DUMPBIN"
+  fi
+fi
+test -z "$NM" && NM=nm
+AC_SUBST([NM])
+_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
+
+AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
+  [lt_cv_nm_interface="BSD nm"
+  echo "int some_variable = 0;" > conftest.$ac_ext
+  (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
+  (eval "$ac_compile" 2>conftest.err)
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
+  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD)
+  cat conftest.out >&AS_MESSAGE_LOG_FD
+  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+    lt_cv_nm_interface="MS dumpbin"
+  fi
+  rm -f conftest*])
+])# LT_PATH_NM
+
+# Old names:
+AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
+AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_PROG_NM], [])
+dnl AC_DEFUN([AC_PROG_NM], [])
+
+
+# LT_LIB_M
+# --------
+# check for math library
+AC_DEFUN([LT_LIB_M],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+  # These system don't have libm, or don't need it
+  ;;
+*-ncr-sysv4.3*)
+  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+  ;;
+*)
+  AC_CHECK_LIB(m, cos, LIBM="-lm")
+  ;;
+esac
+AC_SUBST([LIBM])
+])# LT_LIB_M
+
+# Old name:
+AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_CHECK_LIBM], [])
+
+
+# _LT_COMPILER_NO_RTTI([TAGNAME])
+# -------------------------------
+m4_defun([_LT_COMPILER_NO_RTTI],
+[m4_require([_LT_TAG_COMPILER])dnl
+
+_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+
+if test "$GCC" = yes; then
+  _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+
+  _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
+    lt_cv_prog_compiler_rtti_exceptions,
+    [-fno-rtti -fno-exceptions], [],
+    [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
+fi
+_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
+	[Compiler flag to turn off builtin functions])
+])# _LT_COMPILER_NO_RTTI
+
+
+# _LT_CMD_GLOBAL_SYMBOLS
+# ----------------------
+m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+AC_REQUIRE([LT_PATH_LD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+AC_MSG_CHECKING([command to parse $NM output from $compiler object])
+AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
+[
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[[BCDEGRST]]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+  symcode='[[BCDT]]'
+  ;;
+cygwin* | mingw* | pw32* | cegcc*)
+  symcode='[[ABCDGISTW]]'
+  ;;
+hpux*)
+  if test "$host_cpu" = ia64; then
+    symcode='[[ABCDEGRST]]'
+  fi
+  ;;
+irix* | nonstopux*)
+  symcode='[[BCDEGRST]]'
+  ;;
+osf*)
+  symcode='[[BCDEGQRST]]'
+  ;;
+solaris*)
+  symcode='[[BDRT]]'
+  ;;
+sco3.2v5*)
+  symcode='[[DT]]'
+  ;;
+sysv4.2uw2*)
+  symcode='[[DT]]'
+  ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+  symcode='[[ABDT]]'
+  ;;
+sysv4)
+  symcode='[[DFNSTU]]'
+  ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+  symcode='[[ABCDGIRSTW]]' ;;
+esac
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+  ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+  symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+  # Write the raw and C identifiers.
+  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+    # Fake it for dumpbin and say T for any non-static function
+    # and D for any global variable.
+    # Also find C++ and __fastcall symbols from MSVC++,
+    # which start with @ or ?.
+    lt_cv_sys_global_symbol_pipe="$AWK ['"\
+"     {last_section=section; section=\$ 3};"\
+"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+"     \$ 0!~/External *\|/{next};"\
+"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+"     {if(hide[section]) next};"\
+"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
+"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
+"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
+"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
+"     ' prfx=^$ac_symprfx]"
+  else
+    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[	 ]]\($symcode$symcode*\)[[	 ]][[	 ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+  fi
+
+  # Check to see that the pipe works correctly.
+  pipe_works=no
+
+  rm -f conftest*
+  cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+  if AC_TRY_EVAL(ac_compile); then
+    # Now try to grab the symbols.
+    nlist=conftest.nm
+    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
+      # Try sorting and uniquifying the output.
+      if sort "$nlist" | uniq > "$nlist"T; then
+	mv -f "$nlist"T "$nlist"
+      else
+	rm -f "$nlist"T
+      fi
+
+      # Make sure that we snagged all the symbols we need.
+      if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+	  cat <<_LT_EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+	  # Now generate the symbol file.
+	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+	  cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols.  */
+const struct {
+  const char *name;
+  void       *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[[]] =
+{
+  { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+	  cat <<\_LT_EOF >> conftest.$ac_ext
+  {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+  return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+	  # Now try linking the two files.
+	  mv conftest.$ac_objext conftstm.$ac_objext
+	  lt_save_LIBS="$LIBS"
+	  lt_save_CFLAGS="$CFLAGS"
+	  LIBS="conftstm.$ac_objext"
+	  CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
+	  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
+	    pipe_works=yes
+	  fi
+	  LIBS="$lt_save_LIBS"
+	  CFLAGS="$lt_save_CFLAGS"
+	else
+	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
+	fi
+      else
+	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
+      fi
+    else
+      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+    fi
+  else
+    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
+    cat conftest.$ac_ext >&5
+  fi
+  rm -rf conftest* conftst*
+
+  # Do not use the global_symbol_pipe unless it works.
+  if test "$pipe_works" = yes; then
+    break
+  else
+    lt_cv_sys_global_symbol_pipe=
+  fi
+done
+])
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+  lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+  AC_MSG_RESULT(failed)
+else
+  AC_MSG_RESULT(ok)
+fi
+
+_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
+    [Take the output of nm and produce a listing of raw symbols and C names])
+_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
+    [Transform the output of nm in a proper C declaration])
+_LT_DECL([global_symbol_to_c_name_address],
+    [lt_cv_sys_global_symbol_to_c_name_address], [1],
+    [Transform the output of nm in a C name address pair])
+_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
+    [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
+    [Transform the output of nm in a C name address pair when lib prefix is needed])
+]) # _LT_CMD_GLOBAL_SYMBOLS
+
+
+# _LT_COMPILER_PIC([TAGNAME])
+# ---------------------------
+m4_defun([_LT_COMPILER_PIC],
+[m4_require([_LT_TAG_COMPILER])dnl
+_LT_TAGVAR(lt_prog_compiler_wl, $1)=
+_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+_LT_TAGVAR(lt_prog_compiler_static, $1)=
+
+AC_MSG_CHECKING([for $compiler option to produce PIC])
+m4_if([$1], [CXX], [
+  # C++ specific cases for pic, static, wl, etc.
+  if test "$GXX" = yes; then
+    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+    aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+        ;;
+      m68k)
+            # FIXME: we need at least 68020 code to build shared libraries, but
+            # adding the `-m68020' flag to GCC prevents building anything better,
+            # like `-m68040'.
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+        ;;
+      esac
+      ;;
+
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+    mingw* | cygwin* | os2* | pw32* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      m4_if([$1], [GCJ], [],
+	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      ;;
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+    *djgpp*)
+      # DJGPP does not support shared libraries at all
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+      ;;
+    interix[[3-9]]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+    hpux*)
+      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
+      # sets the default TLS model and affects inlining.
+      case $host_cpu in
+      hppa*64*)
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+    *qnx* | *nto*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+    *)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    case $host_os in
+      aix[[4-9]]*)
+	# All AIX code is PIC.
+	if test "$host_cpu" = ia64; then
+	  # AIX 5 now supports IA64 processor
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	else
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+	fi
+	;;
+      chorus*)
+	case $cc_basename in
+	cxch68*)
+	  # Green Hills C++ Compiler
+	  # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+	  ;;
+	esac
+	;;
+      dgux*)
+	case $cc_basename in
+	  ec++*)
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  ghcx*)
+	    # Green Hills C++ Compiler
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      freebsd* | dragonfly*)
+	# FreeBSD uses GNU C++
+	;;
+      hpux9* | hpux10* | hpux11*)
+	case $cc_basename in
+	  CC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+	    if test "$host_cpu" != ia64; then
+	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	    fi
+	    ;;
+	  aCC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+	    case $host_cpu in
+	    hppa*64*|ia64*)
+	      # +Z the default
+	      ;;
+	    *)
+	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	      ;;
+	    esac
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      interix*)
+	# This is c89, which is MS Visual C++ (no shared libs)
+	# Anyone wants to do a port?
+	;;
+      irix5* | irix6* | nonstopux*)
+	case $cc_basename in
+	  CC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    # CC pic flag -KPIC is the default.
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      linux* | k*bsd*-gnu)
+	case $cc_basename in
+	  KCC*)
+	    # KAI C++ Compiler
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	    ;;
+	  ecpc* )
+	    # old Intel C++ for x86_64 which still supported -KPIC.
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	    ;;
+	  icpc* )
+	    # Intel C++, used to be incompatible with GCC.
+	    # ICC 10 doesn't accept -KPIC any more.
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	    ;;
+	  pgCC* | pgcpp*)
+	    # Portland Group C++ compiler
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	  cxx*)
+	    # Compaq C++
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  xlc* | xlC*)
+	    # IBM XL 8.0 on PPC
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+	    ;;
+	  *)
+	    case `$CC -V 2>&1 | sed 5q` in
+	    *Sun\ C*)
+	      # Sun C++ 5.9
+	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	      ;;
+	    esac
+	    ;;
+	esac
+	;;
+      lynxos*)
+	;;
+      m88k*)
+	;;
+      mvs*)
+	case $cc_basename in
+	  cxx*)
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      netbsd*)
+	;;
+      *qnx* | *nto*)
+        # QNX uses GNU C++, but need to define -shared option too, otherwise
+        # it will coredump.
+        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+        ;;
+      osf3* | osf4* | osf5*)
+	case $cc_basename in
+	  KCC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    ;;
+	  RCC*)
+	    # Rational C++ 2.4.1
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  cxx*)
+	    # Digital/Compaq C++
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      psos*)
+	;;
+      solaris*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	    ;;
+	  gcx*)
+	    # Green Hills C++ Compiler
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sunos4*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.x
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	  lcc*)
+	    # Lucid
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+	case $cc_basename in
+	  CC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	esac
+	;;
+      tandem*)
+	case $cc_basename in
+	  NCC*)
+	    # NonStop-UX NCC 3.20
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      vxworks*)
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+	;;
+    esac
+  fi
+],
+[
+  if test "$GCC" = yes; then
+    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+        ;;
+      m68k)
+            # FIXME: we need at least 68020 code to build shared libraries, but
+            # adding the `-m68020' flag to GCC prevents building anything better,
+            # like `-m68040'.
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+        ;;
+      esac
+      ;;
+
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      m4_if([$1], [GCJ], [],
+	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+
+    hpux*)
+      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
+      # sets the default TLS model and affects inlining.
+      case $host_cpu in
+      hppa*64*)
+	# +Z the default
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+
+    interix[[3-9]]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      enable_shared=no
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+
+    *)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      else
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      m4_if([$1], [GCJ], [],
+	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC (with -KPIC) is the default.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    linux* | k*bsd*-gnu)
+      case $cc_basename in
+      # old Intel for x86_64 which still supported -KPIC.
+      ecc*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
+      # icc used to be incompatible with GCC.
+      # ICC 10 doesn't accept -KPIC any more.
+      icc* | ifort*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
+      # Lahey Fortran 8.1.
+      lf95*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
+	;;
+      pgcc* | pgf77* | pgf90* | pgf95*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+	# which looks to be a dead project)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+        ;;
+      ccc*)
+        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+        # All Alpha code is PIC.
+        _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+        ;;
+      xl*)
+	# IBM XL C 8.0/Fortran 10.1 on PPC
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+	;;
+      *)
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)
+	  # Sun C 5.9
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	  ;;
+	*Sun\ F*)
+	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
+	  ;;
+	esac
+	;;
+      esac
+      ;;
+
+    newsos6)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+
+    osf3* | osf4* | osf5*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # All OSF/1 code is PIC.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    rdos*)
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    solaris*)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
+      esac
+      ;;
+
+    sunos4*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    unicos*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+
+    uts4*)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    *)
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+    esac
+  fi
+])
+case $host_os in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+    ;;
+  *)
+    _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
+    ;;
+esac
+AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
+_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
+	[How to pass a linker flag through the compiler])
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
+  _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
+    [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
+    [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
+    [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
+     "" | " "*) ;;
+     *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
+     esac],
+    [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+     _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
+fi
+_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
+	[Additional compiler flags for building library objects])
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
+_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
+  _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
+  $lt_tmp_static_flag,
+  [],
+  [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
+_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
+	[Compiler flag to prevent dynamic linking])
+])# _LT_COMPILER_PIC
+
+
+# _LT_LINKER_SHLIBS([TAGNAME])
+# ----------------------------
+# See if the linker supports building shared libraries.
+m4_defun([_LT_LINKER_SHLIBS],
+[AC_REQUIRE([LT_PATH_LD])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+m4_if([$1], [CXX], [
+  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  case $host_os in
+  aix[[4-9]]*)
+    # If we're using GNU nm, then we don't want the "-C" option.
+    # -C means demangle to AIX nm, but means don't demangle with GNU nm
+    if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+    else
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+    fi
+    ;;
+  pw32*)
+    _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
+  ;;
+  cygwin* | mingw* | cegcc*)
+    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  *)
+    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  esac
+  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+], [
+  runpath_var=
+  _LT_TAGVAR(allow_undefined_flag, $1)=
+  _LT_TAGVAR(always_export_symbols, $1)=no
+  _LT_TAGVAR(archive_cmds, $1)=
+  _LT_TAGVAR(archive_expsym_cmds, $1)=
+  _LT_TAGVAR(compiler_needs_object, $1)=no
+  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+  _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  _LT_TAGVAR(hardcode_automatic, $1)=no
+  _LT_TAGVAR(hardcode_direct, $1)=no
+  _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+  _LT_TAGVAR(hardcode_libdir_separator, $1)=
+  _LT_TAGVAR(hardcode_minus_L, $1)=no
+  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+  _LT_TAGVAR(inherit_rpath, $1)=no
+  _LT_TAGVAR(link_all_deplibs, $1)=unknown
+  _LT_TAGVAR(module_cmds, $1)=
+  _LT_TAGVAR(module_expsym_cmds, $1)=
+  _LT_TAGVAR(old_archive_from_new_cmds, $1)=
+  _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
+  _LT_TAGVAR(thread_safe_flag_spec, $1)=
+  _LT_TAGVAR(whole_archive_flag_spec, $1)=
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  _LT_TAGVAR(include_expsyms, $1)=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  # Exclude shared library initialization/finalization symbols.
+dnl Note also adjust exclude_expsyms for C++ above.
+  extract_expsyms_cmds=
+
+  case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  _LT_TAGVAR(ld_shlibs, $1)=yes
+  if test "$with_gnu_ld" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+      _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    else
+      _LT_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v 2>&1` in
+      *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix[[3-9]]*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+_LT_EOF
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            _LT_TAGVAR(archive_expsym_cmds, $1)=''
+        ;;
+      m68k)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes
+        ;;
+      esac
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	_LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+      # as there is no search path for DLLs.
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_TAGVAR(always_export_symbols, $1)=no
+      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    interix[[3-9]]*)
+      _LT_TAGVAR(hardcode_direct, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
+
+    gnu* | linux* | tpf* | k*bsd*-gnu)
+      tmp_diet=no
+      if test "$host_os" = linux-dietlibc; then
+	case $cc_basename in
+	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
+	esac
+      fi
+      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+	 && test "$tmp_diet" = no
+      then
+	tmp_addflag=
+	tmp_sharedflag='-shared'
+	case $cc_basename,$host_cpu in
+        pgcc*)				# Portland Group C compiler
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag'
+	  ;;
+	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag -Mnomain' ;;
+	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
+	  tmp_addflag=' -i_dynamic' ;;
+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
+	ifc* | ifort*)			# Intel Fortran compiler
+	  tmp_addflag=' -nofor_main' ;;
+	lf95*)				# Lahey Fortran 8.1
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)=
+	  tmp_sharedflag='--shared' ;;
+	xl[[cC]]*)			# IBM XL C 8.0 on PPC (deal with xlf below)
+	  tmp_sharedflag='-qmkshrobj'
+	  tmp_addflag= ;;
+	esac
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)			# Sun C 5.9
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	  _LT_TAGVAR(compiler_needs_object, $1)=yes
+	  tmp_sharedflag='-G' ;;
+	*Sun\ F*)			# Sun Fortran 8.3
+	  tmp_sharedflag='-G' ;;
+	esac
+	_LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+        if test "x$supports_anon_versioning" = xyes; then
+          _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+	    cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+	    echo "local: *; };" >> $output_objdir/$libname.ver~
+	    $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+        fi
+
+	case $cc_basename in
+	xlf*)
+	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+	  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
+	  if test "x$supports_anon_versioning" = xyes; then
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+	      echo "local: *; };" >> $output_objdir/$libname.ver~
+	      $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+	  fi
+	  ;;
+	esac
+      else
+        _LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris*)
+      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+	;;
+	*)
+	  # For security reasons, it is highly recommended that you always
+	  # use absolute paths for naming shared libraries, and exclude the
+	  # DT_RUNPATH tag from executables and libraries.  But doing so
+	  # requires that you compile everything twice, which is a pain.
+	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	  else
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	  fi
+	;;
+      esac
+      ;;
+
+    sunos4*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+    esac
+
+    if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then
+      runpath_var=
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+      _LT_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_TAGVAR(always_export_symbols, $1)=yes
+      _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	_LT_TAGVAR(hardcode_direct, $1)=unsupported
+      fi
+      ;;
+
+    aix[[4-9]]*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+	else
+	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+	fi
+	aix_use_runtimelinking=no
+
+	# Test if we are trying to use run time linking or normal
+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+	# need to do runtime linking.
+	case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+	  for ld_flag in $LDFLAGS; do
+	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+	    aix_use_runtimelinking=yes
+	    break
+	  fi
+	  done
+	  ;;
+	esac
+
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      _LT_TAGVAR(archive_cmds, $1)=''
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.[[012]]|aix4.[[012]].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" &&
+	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+	  then
+	  # We have reworked collect2
+	  :
+	  else
+	  # We have old collect2
+	  _LT_TAGVAR(hardcode_direct, $1)=unsupported
+	  # It fails to find uninstalled libraries when the uninstalled
+	  # path is not listed in the libpath.  Setting hardcode_minus_L
+	  # to unsupported forces relinking
+	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	  _LT_TAGVAR(hardcode_libdir_separator, $1)=
+	  fi
+	  ;;
+	esac
+	shared_flag='-shared'
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag="$shared_flag "'${wl}-G'
+	fi
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+	  if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='${wl}-G'
+	  else
+	    shared_flag='${wl}-bM:SRE'
+	  fi
+	fi
+      fi
+
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      _LT_TAGVAR(always_export_symbols, $1)=yes
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	_LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+        # Determine the default libpath from the value encoded in an
+        # empty executable.
+        _LT_SYS_MODULE_PATH_AIX
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+      else
+	if test "$host_cpu" = ia64; then
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+	  _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an
+	 # empty executable.
+	 _LT_SYS_MODULE_PATH_AIX
+	 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+	  _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+	  # Exported symbols can be pulled into shared objects from archives
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+	  # This is similar to how AIX traditionally builds its shared libraries.
+	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            _LT_TAGVAR(archive_expsym_cmds, $1)=''
+        ;;
+      m68k)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes
+        ;;
+      esac
+      ;;
+
+    bsdi[[45]]*)
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext_cmds=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+      # FIXME: Should let the user specify the lib program.
+      _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
+      _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
+      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      ;;
+
+    darwin* | rhapsody*)
+      _LT_DARWIN_LINKER_FEATURES($1)
+      ;;
+
+    dgux*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    freebsd1*)
+      _LT_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | dragonfly*)
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      ;;
+
+    hpux10*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test "$with_gnu_ld" = no; then
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
+	_LT_TAGVAR(hardcode_direct, $1)=yes
+	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	# hardcode_minus_L: Not really in the search PATH,
+	# but as the default location of the library.
+	_LT_TAGVAR(hardcode_minus_L, $1)=yes
+      fi
+      ;;
+
+    hpux11*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	case $host_cpu in
+	hppa*64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      else
+	case $host_cpu in
+	hppa*64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	case $host_cpu in
+	hppa*64*|ia64*)
+	  _LT_TAGVAR(hardcode_direct, $1)=no
+	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	  ;;
+	*)
+	  _LT_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	# Try to use the -exported_symbol ld option, if it does not
+	# work, assume that -exports_file does not work either and
+	# implicitly export all symbols.
+        save_LDFLAGS="$LDFLAGS"
+        LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+        AC_LINK_IFELSE(int foo(void) {},
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+        )
+        LDFLAGS="$save_LDFLAGS"
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(inherit_rpath, $1)=yes
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    newsos6)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *nto* | *qnx*)
+      ;;
+
+    openbsd*)
+      if test -f /usr/libexec/ld.so; then
+	_LT_TAGVAR(hardcode_direct, $1)=yes
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	else
+	  case $host_os in
+	   openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
+	     _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	     ;;
+	   *)
+	     _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	     ;;
+	  esac
+	fi
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    os2*)
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      else
+	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    solaris*)
+      _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
+      if test "$GCC" = yes; then
+	wlarc='${wl}'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+      else
+	case `$CC -V 2>&1` in
+	*"Compilers 5.0"*)
+	  wlarc=''
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	  $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+	  ;;
+	*)
+	  wlarc='${wl}'
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	  $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+	  ;;
+	esac
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      case $host_os in
+      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+      *)
+	# The compiler driver will combine and reorder linker options,
+	# but understands `-z linker_flag'.  GCC discards it without `$wl',
+	# but is careful enough not to reorder.
+	# Supported since Solaris 2.6 (maybe 2.5.1?)
+	if test "$GCC" = yes; then
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+	else
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+	fi
+	;;
+      esac
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
+	  _LT_TAGVAR(hardcode_direct, $1)=no
+        ;;
+	motorola)
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4.3*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	_LT_TAGVAR(ld_shlibs, $1)=yes
+      fi
+      ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We can NOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    uts4*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      _LT_TAGVAR(ld_shlibs, $1)=no
+      ;;
+    esac
+
+    if test x$host_vendor = xsni; then
+      case $host in
+      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym'
+	;;
+      esac
+    fi
+  fi
+])
+AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
+
+_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
+_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
+_LT_DECL([], [extract_expsyms_cmds], [2],
+    [The commands to extract the exported symbol list from a shared archive])
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
+x|xyes)
+  # Assume -lc should be added
+  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $_LT_TAGVAR(archive_cmds, $1) in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      AC_MSG_CHECKING([whether -lc should be explicitly linked in])
+      $RM conftest*
+      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+      if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
+	pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
+        _LT_TAGVAR(allow_undefined_flag, $1)=
+        if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
+        then
+	  _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+        else
+	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+        fi
+        _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $RM conftest*
+      AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)])
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
+    [Whether or not to add -lc for building shared libraries])
+_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
+    [enable_shared_with_static_runtimes], [0],
+    [Whether or not to disallow shared libs when runtime libs are static])
+_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
+    [Compiler flag to allow reflexive dlopens])
+_LT_TAGDECL([], [whole_archive_flag_spec], [1],
+    [Compiler flag to generate shared objects directly from archives])
+_LT_TAGDECL([], [compiler_needs_object], [1],
+    [Whether the compiler copes with passing no objects directly])
+_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
+    [Create an old-style archive from a shared archive])
+_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
+    [Create a temporary old-style archive to link instead of a shared archive])
+_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
+_LT_TAGDECL([], [archive_expsym_cmds], [2])
+_LT_TAGDECL([], [module_cmds], [2],
+    [Commands used to build a loadable module if different from building
+    a shared archive.])
+_LT_TAGDECL([], [module_expsym_cmds], [2])
+_LT_TAGDECL([], [with_gnu_ld], [1],
+    [Whether we are building with GNU ld or not])
+_LT_TAGDECL([], [allow_undefined_flag], [1],
+    [Flag that allows shared libraries with undefined symbols to be built])
+_LT_TAGDECL([], [no_undefined_flag], [1],
+    [Flag that enforces no undefined symbols])
+_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
+    [Flag to hardcode $libdir into a binary during linking.
+    This must work even if $libdir does not exist])
+_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1],
+    [[If ld is used when linking, flag to hardcode $libdir into a binary
+    during linking.  This must work even if $libdir does not exist]])
+_LT_TAGDECL([], [hardcode_libdir_separator], [1],
+    [Whether we need a single "-rpath" flag with a separated argument])
+_LT_TAGDECL([], [hardcode_direct], [0],
+    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+    DIR into the resulting binary])
+_LT_TAGDECL([], [hardcode_direct_absolute], [0],
+    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+    DIR into the resulting binary and the resulting library dependency is
+    "absolute", i.e impossible to change by setting ${shlibpath_var} if the
+    library is relocated])
+_LT_TAGDECL([], [hardcode_minus_L], [0],
+    [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+    into the resulting binary])
+_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
+    [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+    into the resulting binary])
+_LT_TAGDECL([], [hardcode_automatic], [0],
+    [Set to "yes" if building a shared library automatically hardcodes DIR
+    into the library and all subsequent libraries and executables linked
+    against it])
+_LT_TAGDECL([], [inherit_rpath], [0],
+    [Set to yes if linker adds runtime paths of dependent libraries
+    to runtime path list])
+_LT_TAGDECL([], [link_all_deplibs], [0],
+    [Whether libtool must link a program against all its dependency libraries])
+_LT_TAGDECL([], [fix_srcfile_path], [1],
+    [Fix the shell variable $srcfile for the compiler])
+_LT_TAGDECL([], [always_export_symbols], [0],
+    [Set to "yes" if exported symbols are required])
+_LT_TAGDECL([], [export_symbols_cmds], [2],
+    [The commands to list exported symbols])
+_LT_TAGDECL([], [exclude_expsyms], [1],
+    [Symbols that should not be listed in the preloaded symbols])
+_LT_TAGDECL([], [include_expsyms], [1],
+    [Symbols that must always be exported])
+_LT_TAGDECL([], [prelink_cmds], [2],
+    [Commands necessary for linking programs (against libraries) with templates])
+_LT_TAGDECL([], [file_list_spec], [1],
+    [Specify filename containing input files])
+dnl FIXME: Not yet implemented
+dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
+dnl    [Compiler flag to generate thread safe objects])
+])# _LT_LINKER_SHLIBS
+
+
+# _LT_LANG_C_CONFIG([TAG])
+# ------------------------
+# Ensure that the configuration variables for a C compiler are suitably
+# defined.  These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_C_CONFIG],
+[m4_require([_LT_DECL_EGREP])dnl
+lt_save_CC="$CC"
+AC_LANG_PUSH(C)
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+_LT_TAG_COMPILER
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_SYS_DYNAMIC_LINKER($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+  LT_SYS_DLOPEN_SELF
+  _LT_CMD_STRIPLIB
+
+  # Report which library types will actually be built
+  AC_MSG_CHECKING([if libtool supports shared libraries])
+  AC_MSG_RESULT([$can_build_shared])
+
+  AC_MSG_CHECKING([whether to build shared libraries])
+  test "$can_build_shared" = "no" && enable_shared=no
+
+  # On AIX, shared libraries and static libraries use the same namespace, and
+  # are all built from PIC.
+  case $host_os in
+  aix3*)
+    test "$enable_shared" = yes && enable_static=no
+    if test -n "$RANLIB"; then
+      archive_cmds="$archive_cmds~\$RANLIB \$lib"
+      postinstall_cmds='$RANLIB $lib'
+    fi
+    ;;
+
+  aix[[4-9]]*)
+    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+      test "$enable_shared" = yes && enable_static=no
+    fi
+    ;;
+  esac
+  AC_MSG_RESULT([$enable_shared])
+
+  AC_MSG_CHECKING([whether to build static libraries])
+  # Make sure either enable_shared or enable_static is yes.
+  test "$enable_shared" = yes || enable_static=yes
+  AC_MSG_RESULT([$enable_static])
+
+  _LT_CONFIG($1)
+fi
+AC_LANG_POP
+CC="$lt_save_CC"
+])# _LT_LANG_C_CONFIG
+
+
+# _LT_PROG_CXX
+# ------------
+# Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++
+# compiler, we have our own version here.
+m4_defun([_LT_PROG_CXX],
+[
+pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes])
+AC_PROG_CXX
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+    (test "X$CXX" != "Xg++"))) ; then
+  AC_PROG_CXXCPP
+else
+  _lt_caught_CXX_error=yes
+fi
+popdef([AC_MSG_ERROR])
+])# _LT_PROG_CXX
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([_LT_PROG_CXX], [])
+
+
+# _LT_LANG_CXX_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a C++ compiler are suitably
+# defined.  These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_CXX_CONFIG],
+[AC_REQUIRE([_LT_PROG_CXX])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_EGREP])dnl
+
+AC_LANG_PUSH(C++)
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(compiler_needs_object, $1)=no
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for C++ test sources.
+ac_ext=cpp
+
+# Object file extension for compiled C++ test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the CXX compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_caught_CXX_error" != yes; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="int some_variable = 0;"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC=$CC
+  lt_save_LD=$LD
+  lt_save_GCC=$GCC
+  GCC=$GXX
+  lt_save_with_gnu_ld=$with_gnu_ld
+  lt_save_path_LD=$lt_cv_path_LD
+  if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+    lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+  else
+    $as_unset lt_cv_prog_gnu_ld
+  fi
+  if test -n "${lt_cv_path_LDCXX+set}"; then
+    lt_cv_path_LD=$lt_cv_path_LDCXX
+  else
+    $as_unset lt_cv_path_LD
+  fi
+  test -z "${LDCXX+set}" || LD=$LDCXX
+  CC=${CXX-"c++"}
+  compiler=$CC
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+
+  if test -n "$compiler"; then
+    # We don't want -fno-exception when compiling C++ code, so set the
+    # no_builtin_flag separately
+    if test "$GXX" = yes; then
+      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+    else
+      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+    fi
+
+    if test "$GXX" = yes; then
+      # Set up default GNU C++ configuration
+
+      LT_PATH_LD
+
+      # Check if GNU C++ uses GNU ld as the underlying linker, since the
+      # archiving commands below assume that GNU ld is being used.
+      if test "$with_gnu_ld" = yes; then
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+        # If archive_cmds runs LD, not CC, wlarc should be empty
+        # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+        #     investigate it a little bit more. (MM)
+        wlarc='${wl}'
+
+        # ancient GNU ld didn't support --whole-archive et. al.
+        if eval "`$CC -print-prog-name=ld` --help 2>&1" |
+	  $GREP 'no-whole-archive' > /dev/null; then
+          _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+        else
+          _LT_TAGVAR(whole_archive_flag_spec, $1)=
+        fi
+      else
+        with_gnu_ld=no
+        wlarc=
+
+        # A generic and very simple default shared library creation
+        # command for GNU C++ for the case where it uses the native
+        # linker, instead of GNU ld.  If possible, this setting should
+        # overridden to take advantage of the native linker features on
+        # the platform it is being used on.
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+      fi
+
+      # Commands to make compiler produce verbose output that lists
+      # what "hidden" libraries, object files and flags are used when
+      # linking a shared library.
+      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+
+    else
+      GXX=no
+      with_gnu_ld=no
+      wlarc=
+    fi
+
+    # PORTME: fill in a description of your system's C++ link characteristics
+    AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+    _LT_TAGVAR(ld_shlibs, $1)=yes
+    case $host_os in
+      aix3*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+      aix[[4-9]]*)
+        if test "$host_cpu" = ia64; then
+          # On IA64, the linker does run time linking by default, so we don't
+          # have to do anything special.
+          aix_use_runtimelinking=no
+          exp_sym_flag='-Bexport'
+          no_entry_flag=""
+        else
+          aix_use_runtimelinking=no
+
+          # Test if we are trying to use run time linking or normal
+          # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+          # need to do runtime linking.
+          case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+	    for ld_flag in $LDFLAGS; do
+	      case $ld_flag in
+	      *-brtl*)
+	        aix_use_runtimelinking=yes
+	        break
+	        ;;
+	      esac
+	    done
+	    ;;
+          esac
+
+          exp_sym_flag='-bexport'
+          no_entry_flag='-bnoentry'
+        fi
+
+        # When large executables or shared objects are built, AIX ld can
+        # have problems creating the table of contents.  If linking a library
+        # or program results in "error TOC overflow" add -mminimal-toc to
+        # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+        # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+        _LT_TAGVAR(archive_cmds, $1)=''
+        _LT_TAGVAR(hardcode_direct, $1)=yes
+        _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+        _LT_TAGVAR(link_all_deplibs, $1)=yes
+        _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
+
+        if test "$GXX" = yes; then
+          case $host_os in aix4.[[012]]|aix4.[[012]].*)
+          # We only want to do this on AIX 4.2 and lower, the check
+          # below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" &&
+	     strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+	  then
+	    # We have reworked collect2
+	    :
+	  else
+	    # We have old collect2
+	    _LT_TAGVAR(hardcode_direct, $1)=unsupported
+	    # It fails to find uninstalled libraries when the uninstalled
+	    # path is not listed in the libpath.  Setting hardcode_minus_L
+	    # to unsupported forces relinking
+	    _LT_TAGVAR(hardcode_minus_L, $1)=yes
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=
+	  fi
+          esac
+          shared_flag='-shared'
+	  if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag="$shared_flag "'${wl}-G'
+	  fi
+        else
+          # not using gcc
+          if test "$host_cpu" = ia64; then
+	  # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	  # chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+          else
+	    if test "$aix_use_runtimelinking" = yes; then
+	      shared_flag='${wl}-G'
+	    else
+	      shared_flag='${wl}-bM:SRE'
+	    fi
+          fi
+        fi
+
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
+        # It seems that -bexpall does not export symbols beginning with
+        # underscore (_), so it is better to generate a list of symbols to
+	# export.
+        _LT_TAGVAR(always_export_symbols, $1)=yes
+        if test "$aix_use_runtimelinking" = yes; then
+          # Warning - without using the other runtime loading flags (-brtl),
+          # -berok will link without error, but may produce a broken library.
+          _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+          # Determine the default libpath from the value encoded in an empty
+          # executable.
+          _LT_SYS_MODULE_PATH_AIX
+          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+        else
+          if test "$host_cpu" = ia64; then
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+	    _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+          else
+	    # Determine the default libpath from the value encoded in an
+	    # empty executable.
+	    _LT_SYS_MODULE_PATH_AIX
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	    # Warning - without using the other run time loading flags,
+	    # -berok will link without error, but may produce a broken library.
+	    _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+	    _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+	    # Exported symbols can be pulled into shared objects from archives
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	    _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+	    # This is similar to how AIX traditionally builds its shared
+	    # libraries.
+	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+          fi
+        fi
+        ;;
+
+      beos*)
+	if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	  # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+	  # support --undefined.  This deserves some investigation.  FIXME
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	else
+	  _LT_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+
+      chorus*)
+        case $cc_basename in
+          *)
+	  # FIXME: insert proper C++ library support
+	  _LT_TAGVAR(ld_shlibs, $1)=no
+	  ;;
+        esac
+        ;;
+
+      cygwin* | mingw* | pw32* | cegcc*)
+        # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+        # as there is no search path for DLLs.
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+        _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+        _LT_TAGVAR(always_export_symbols, $1)=no
+        _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+        if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+          # If the export-symbols file already is a .def file (1st line
+          # is EXPORTS), use it as is; otherwise, prepend...
+          _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	    cp $export_symbols $output_objdir/$soname.def;
+          else
+	    echo EXPORTS > $output_objdir/$soname.def;
+	    cat $export_symbols >> $output_objdir/$soname.def;
+          fi~
+          $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+        else
+          _LT_TAGVAR(ld_shlibs, $1)=no
+        fi
+        ;;
+      darwin* | rhapsody*)
+        _LT_DARWIN_LINKER_FEATURES($1)
+	;;
+
+      dgux*)
+        case $cc_basename in
+          ec++*)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          ghcx*)
+	    # Green Hills C++ Compiler
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+        esac
+        ;;
+
+      freebsd[[12]]*)
+        # C++ shared libraries reported to be fairly broken before
+	# switch to ELF
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      freebsd-elf*)
+        _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+        ;;
+
+      freebsd* | dragonfly*)
+        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+        # conventions
+        _LT_TAGVAR(ld_shlibs, $1)=yes
+        ;;
+
+      gnu*)
+        ;;
+
+      hpux9*)
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+        _LT_TAGVAR(hardcode_direct, $1)=yes
+        _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+				             # but as the default
+				             # location of the library.
+
+        case $cc_basename in
+          CC*)
+            # FIXME: insert proper C++ library support
+            _LT_TAGVAR(ld_shlibs, $1)=no
+            ;;
+          aCC*)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+            # Commands to make compiler produce verbose output that lists
+            # what "hidden" libraries, object files and flags are used when
+            # linking a shared library.
+            #
+            # There doesn't appear to be a way to prevent this compiler from
+            # explicitly linking system object files so we need to strip them
+            # from the output so that they don't get included in the library
+            # dependencies.
+            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+            ;;
+          *)
+            if test "$GXX" = yes; then
+              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+            else
+              # FIXME: insert proper C++ library support
+              _LT_TAGVAR(ld_shlibs, $1)=no
+            fi
+            ;;
+        esac
+        ;;
+
+      hpux10*|hpux11*)
+        if test $with_gnu_ld = no; then
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	  _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+          case $host_cpu in
+            hppa*64*|ia64*)
+              ;;
+            *)
+	      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+              ;;
+          esac
+        fi
+        case $host_cpu in
+          hppa*64*|ia64*)
+            _LT_TAGVAR(hardcode_direct, $1)=no
+            _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+            ;;
+          *)
+            _LT_TAGVAR(hardcode_direct, $1)=yes
+            _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+					         # but as the default
+					         # location of the library.
+            ;;
+        esac
+
+        case $cc_basename in
+          CC*)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          aCC*)
+	    case $host_cpu in
+	      hppa*64*)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        ;;
+	      ia64*)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        ;;
+	      *)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        ;;
+	    esac
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+	    ;;
+          *)
+	    if test "$GXX" = yes; then
+	      if test $with_gnu_ld = no; then
+	        case $host_cpu in
+	          hppa*64*)
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            ;;
+	          ia64*)
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            ;;
+	          *)
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            ;;
+	        esac
+	      fi
+	    else
+	      # FIXME: insert proper C++ library support
+	      _LT_TAGVAR(ld_shlibs, $1)=no
+	    fi
+	    ;;
+        esac
+        ;;
+
+      interix[[3-9]]*)
+	_LT_TAGVAR(hardcode_direct, $1)=no
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	# Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+	# Instead, shared libraries are loaded at an image base (0x10000000 by
+	# default) and relocated if they conflict, which is a slow very memory
+	# consuming and fragmenting process.  To avoid this, we pick a random,
+	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+	;;
+      irix5* | irix6*)
+        case $cc_basename in
+          CC*)
+	    # SGI C++
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+
+	    # Archives containing C++ object files must be created using
+	    # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
+	    # necessary to make sure instantiated templates are included
+	    # in the archive.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
+	    ;;
+          *)
+	    if test "$GXX" = yes; then
+	      if test "$with_gnu_ld" = no; then
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	      else
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib'
+	      fi
+	    fi
+	    _LT_TAGVAR(link_all_deplibs, $1)=yes
+	    ;;
+        esac
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+        _LT_TAGVAR(inherit_rpath, $1)=yes
+        ;;
+
+      linux* | k*bsd*-gnu)
+        case $cc_basename in
+          KCC*)
+	    # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	    # KCC will only create a shared library if the output file
+	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
+	    # to its proper name (with version) after linking.
+	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+	    # Archives containing C++ object files must be created using
+	    # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+	    ;;
+	  icpc* | ecpc* )
+	    # Intel C++
+	    with_gnu_ld=yes
+	    # version 8.0 and above of icpc choke on multiply defined symbols
+	    # if we add $predep_objects and $postdep_objects, however 7.1 and
+	    # earlier do not add the objects themselves.
+	    case `$CC -V 2>&1` in
+	      *"Version 7."*)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+		;;
+	      *)  # Version 8.0 or newer
+	        tmp_idyn=
+	        case $host_cpu in
+		  ia64*) tmp_idyn=' -i_dynamic';;
+		esac
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+		;;
+	    esac
+	    _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	    ;;
+          pgCC* | pgcpp*)
+            # Portland Group C++ compiler
+	    case `$CC -V` in
+	    *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*)
+	      _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
+		rm -rf $tpldir~
+		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+		compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
+	      _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
+		rm -rf $tpldir~
+		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
+		$RANLIB $oldlib'
+	      _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
+		rm -rf $tpldir~
+		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
+		rm -rf $tpldir~
+		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+	      ;;
+	    *) # Version 6 will use weak symbols
+	      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+	      ;;
+	    esac
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+            ;;
+	  cxx*)
+	    # Compaq C++
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+	    runpath_var=LD_RUN_PATH
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+	    ;;
+	  xl*)
+	    # IBM XL 8.0 on PPC, with GNU ld
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	    if test "x$supports_anon_versioning" = xyes; then
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+		cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+		echo "local: *; };" >> $output_objdir/$libname.ver~
+		$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+	    fi
+	    ;;
+	  *)
+	    case `$CC -V 2>&1 | sed 5q` in
+	    *Sun\ C*)
+	      # Sun C++ 5.9
+	      _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+	      _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
+	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	      _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	      _LT_TAGVAR(compiler_needs_object, $1)=yes
+
+	      # Not sure whether something based on
+	      # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
+	      # would be better.
+	      output_verbose_link_cmd='echo'
+
+	      # Archives containing C++ object files must be created using
+	      # "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	      # necessary to make sure instantiated templates are included
+	      # in the archive.
+	      _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+	      ;;
+	    esac
+	    ;;
+	esac
+	;;
+
+      lynxos*)
+        # FIXME: insert proper C++ library support
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	;;
+
+      m88k*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+	;;
+
+      mvs*)
+        case $cc_basename in
+          cxx*)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+	  *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+	esac
+	;;
+
+      netbsd*)
+        if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+	  wlarc=
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	  _LT_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	fi
+	# Workaround some broken pre-1.5 toolchains
+	output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+	;;
+
+      *nto* | *qnx*)
+        _LT_TAGVAR(ld_shlibs, $1)=yes
+	;;
+
+      openbsd2*)
+        # C++ shared libraries are fairly broken
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	;;
+
+      openbsd*)
+	if test -f /usr/libexec/ld.so; then
+	  _LT_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+	  fi
+	  output_verbose_link_cmd=echo
+	else
+	  _LT_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+
+      osf3* | osf4* | osf5*)
+        case $cc_basename in
+          KCC*)
+	    # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	    # KCC will only create a shared library if the output file
+	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
+	    # to its proper name (with version) after linking.
+	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	    # Archives containing C++ object files must be created using
+	    # the KAI C++ compiler.
+	    case $host in
+	      osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
+	      *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
+	    esac
+	    ;;
+          RCC*)
+	    # Rational C++ 2.4.1
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          cxx*)
+	    case $host in
+	      osf3*)
+	        _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+		;;
+	      *)
+	        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	        _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+	          echo "-hidden">> $lib.exp~
+	          $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~
+	          $RM $lib.exp'
+	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+		;;
+	    esac
+
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+	    ;;
+	  *)
+	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	      _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	      case $host in
+	        osf3*)
+	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+		  ;;
+	        *)
+	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+		  ;;
+	      esac
+
+	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	      # Commands to make compiler produce verbose output that lists
+	      # what "hidden" libraries, object files and flags are used when
+	      # linking a shared library.
+	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+
+	    else
+	      # FIXME: insert proper C++ library support
+	      _LT_TAGVAR(ld_shlibs, $1)=no
+	    fi
+	    ;;
+        esac
+        ;;
+
+      psos*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      sunos4*)
+        case $cc_basename in
+          CC*)
+	    # Sun C++ 4.x
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          lcc*)
+	    # Lucid
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+        esac
+        ;;
+
+      solaris*)
+        case $cc_basename in
+          CC*)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+            _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
+	    _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	      $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	    _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	    case $host_os in
+	      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+	      *)
+		# The compiler driver will combine and reorder linker options,
+		# but understands `-z linker_flag'.
+	        # Supported since Solaris 2.6 (maybe 2.5.1?)
+		_LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+	        ;;
+	    esac
+	    _LT_TAGVAR(link_all_deplibs, $1)=yes
+
+	    output_verbose_link_cmd='echo'
+
+	    # Archives containing C++ object files must be created using
+	    # "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	    # necessary to make sure instantiated templates are included
+	    # in the archive.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+	    ;;
+          gcx*)
+	    # Green Hills C++ Compiler
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+
+	    # The C++ compiler must be used to create the archive.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+	    ;;
+          *)
+	    # GNU C++ compiler with Solaris linker
+	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	      _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
+	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+		  $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+	        # Commands to make compiler produce verbose output that lists
+	        # what "hidden" libraries, object files and flags are used when
+	        # linking a shared library.
+	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+	      else
+	        # g++ 2.7 appears to require `-G' NOT `-shared' on this
+	        # platform.
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+		  $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+	        # Commands to make compiler produce verbose output that lists
+	        # what "hidden" libraries, object files and flags are used when
+	        # linking a shared library.
+	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+	      fi
+
+	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
+	      case $host_os in
+		solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+		*)
+		  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+		  ;;
+	      esac
+	    fi
+	    ;;
+        esac
+        ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      runpath_var='LD_RUN_PATH'
+
+      case $cc_basename in
+        CC*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+      esac
+      ;;
+
+      sysv5* | sco3.2v5* | sco5v6*)
+	# Note: We can NOT use -z defs as we might desire, because we do not
+	# link with -lc, and that would cause any symbols used from libc to
+	# always be unresolved, which means just about no library would
+	# ever link correctly.  If we're not using GNU ld we use -z text
+	# though, which does catch some bad symbols but isn't as heavy-handed
+	# as -z defs.
+	_LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+	_LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+	_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
+	_LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+	_LT_TAGVAR(link_all_deplibs, $1)=yes
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+	runpath_var='LD_RUN_PATH'
+
+	case $cc_basename in
+          CC*)
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    ;;
+	  *)
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    ;;
+	esac
+      ;;
+
+      tandem*)
+        case $cc_basename in
+          NCC*)
+	    # NonStop-UX NCC 3.20
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+        esac
+        ;;
+
+      vxworks*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      *)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+    esac
+
+    AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+    test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+    _LT_TAGVAR(GCC, $1)="$GXX"
+    _LT_TAGVAR(LD, $1)="$LD"
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_SYS_HIDDEN_LIBDEPS($1)
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  CC=$lt_save_CC
+  LDCXX=$LD
+  LD=$lt_save_LD
+  GCC=$lt_save_GCC
+  with_gnu_ld=$lt_save_with_gnu_ld
+  lt_cv_path_LDCXX=$lt_cv_path_LD
+  lt_cv_path_LD=$lt_save_path_LD
+  lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+  lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+fi # test "$_lt_caught_CXX_error" != yes
+
+AC_LANG_POP
+])# _LT_LANG_CXX_CONFIG
+
+
+# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
+# ---------------------------------
+# Figure out "hidden" library dependencies from verbose
+# compiler output when linking a shared library.
+# Parse the compiler output and extract the necessary
+# objects, libraries and library flags.
+m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+# Dependencies to place before and after the object being linked:
+_LT_TAGVAR(predep_objects, $1)=
+_LT_TAGVAR(postdep_objects, $1)=
+_LT_TAGVAR(predeps, $1)=
+_LT_TAGVAR(postdeps, $1)=
+_LT_TAGVAR(compiler_lib_search_path, $1)=
+
+dnl we can't use the lt_simple_compile_test_code here,
+dnl because it contains code intended for an executable,
+dnl not a library.  It's possible we should let each
+dnl tag define a new lt_????_link_test_code variable,
+dnl but it's only used here...
+m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
+int a;
+void foo (void) { a = 0; }
+_LT_EOF
+], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
+class Foo
+{
+public:
+  Foo (void) { a = 0; }
+private:
+  int a;
+};
+_LT_EOF
+], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
+      subroutine foo
+      implicit none
+      integer*4 a
+      a=0
+      return
+      end
+_LT_EOF
+], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
+      subroutine foo
+      implicit none
+      integer a
+      a=0
+      return
+      end
+_LT_EOF
+], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
+public class foo {
+  private int a;
+  public void bar (void) {
+    a = 0;
+  }
+};
+_LT_EOF
+])
+dnl Parse the compiler output and extract the necessary
+dnl objects, libraries and library flags.
+if AC_TRY_EVAL(ac_compile); then
+  # Parse the compiler output and extract the necessary
+  # objects, libraries and library flags.
+
+  # Sentinel used to keep track of whether or not we are before
+  # the conftest object file.
+  pre_test_object_deps_done=no
+
+  for p in `eval "$output_verbose_link_cmd"`; do
+    case $p in
+
+    -L* | -R* | -l*)
+       # Some compilers place space between "-{L,R}" and the path.
+       # Remove the space.
+       if test $p = "-L" ||
+          test $p = "-R"; then
+	 prev=$p
+	 continue
+       else
+	 prev=
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 case $p in
+	 -L* | -R*)
+	   # Internal compiler library paths should come after those
+	   # provided the user.  The postdeps already come after the
+	   # user supplied libs so there is no need to process them.
+	   if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
+	     _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
+	   else
+	     _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
+	   fi
+	   ;;
+	 # The "-l" case would never come before the object being
+	 # linked, so don't bother handling this case.
+	 esac
+       else
+	 if test -z "$_LT_TAGVAR(postdeps, $1)"; then
+	   _LT_TAGVAR(postdeps, $1)="${prev}${p}"
+	 else
+	   _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
+	 fi
+       fi
+       ;;
+
+    *.$objext)
+       # This assumes that the test object file only shows up
+       # once in the compiler output.
+       if test "$p" = "conftest.$objext"; then
+	 pre_test_object_deps_done=yes
+	 continue
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
+	   _LT_TAGVAR(predep_objects, $1)="$p"
+	 else
+	   _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
+	 fi
+       else
+	 if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
+	   _LT_TAGVAR(postdep_objects, $1)="$p"
+	 else
+	   _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
+	 fi
+       fi
+       ;;
+
+    *) ;; # Ignore the rest.
+
+    esac
+  done
+
+  # Clean up.
+  rm -f a.out a.exe
+else
+  echo "libtool.m4: error: problem compiling $1 test program"
+fi
+
+$RM -f confest.$objext
+
+# PORTME: override above test on systems where it is broken
+m4_if([$1], [CXX],
+[case $host_os in
+interix[[3-9]]*)
+  # Interix 3.5 installs completely hosed .la files for C++, so rather than
+  # hack all around it, let's just trust "g++" to DTRT.
+  _LT_TAGVAR(predep_objects,$1)=
+  _LT_TAGVAR(postdep_objects,$1)=
+  _LT_TAGVAR(postdeps,$1)=
+  ;;
+
+linux*)
+  case `$CC -V 2>&1 | sed 5q` in
+  *Sun\ C*)
+    # Sun C++ 5.9
+
+    # The more standards-conforming stlport4 library is
+    # incompatible with the Cstd library. Avoid specifying
+    # it if it's in CXXFLAGS. Ignore libCrun as
+    # -library=stlport4 depends on it.
+    case " $CXX $CXXFLAGS " in
+    *" -library=stlport4 "*)
+      solaris_use_stlport4=yes
+      ;;
+    esac
+
+    if test "$solaris_use_stlport4" != yes; then
+      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
+    fi
+    ;;
+  esac
+  ;;
+
+solaris*)
+  case $cc_basename in
+  CC*)
+    # The more standards-conforming stlport4 library is
+    # incompatible with the Cstd library. Avoid specifying
+    # it if it's in CXXFLAGS. Ignore libCrun as
+    # -library=stlport4 depends on it.
+    case " $CXX $CXXFLAGS " in
+    *" -library=stlport4 "*)
+      solaris_use_stlport4=yes
+      ;;
+    esac
+
+    # Adding this requires a known-good setup of shared libraries for
+    # Sun compiler versions before 5.6, else PIC objects from an old
+    # archive will be linked into the output, leading to subtle bugs.
+    if test "$solaris_use_stlport4" != yes; then
+      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
+    fi
+    ;;
+  esac
+  ;;
+esac
+])
+
+case " $_LT_TAGVAR(postdeps, $1) " in
+*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
+esac
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=
+if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+fi
+_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
+    [The directories searched by this compiler when creating a shared library])
+_LT_TAGDECL([], [predep_objects], [1],
+    [Dependencies to place before and after the objects being linked to
+    create a shared library])
+_LT_TAGDECL([], [postdep_objects], [1])
+_LT_TAGDECL([], [predeps], [1])
+_LT_TAGDECL([], [postdeps], [1])
+_LT_TAGDECL([], [compiler_lib_search_path], [1],
+    [The library search path used internally by the compiler when linking
+    a shared library])
+])# _LT_SYS_HIDDEN_LIBDEPS
+
+
+# _LT_PROG_F77
+# ------------
+# Since AC_PROG_F77 is broken, in that it returns the empty string
+# if there is no fortran compiler, we have our own version here.
+m4_defun([_LT_PROG_F77],
+[
+pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes])
+AC_PROG_F77
+if test -z "$F77" || test "X$F77" = "Xno"; then
+  _lt_disable_F77=yes
+fi
+popdef([AC_MSG_ERROR])
+])# _LT_PROG_F77
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([_LT_PROG_F77], [])
+
+
+# _LT_LANG_F77_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a Fortran 77 compiler are
+# suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_F77_CONFIG],
+[AC_REQUIRE([_LT_PROG_F77])dnl
+AC_LANG_PUSH(Fortran 77)
+
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the F77 compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_disable_F77" != yes; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="\
+      subroutine t
+      return
+      end
+"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code="\
+      program t
+      end
+"
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC="$CC"
+  lt_save_GCC=$GCC
+  CC=${F77-"f77"}
+  compiler=$CC
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+  GCC=$G77
+  if test -n "$compiler"; then
+    AC_MSG_CHECKING([if libtool supports shared libraries])
+    AC_MSG_RESULT([$can_build_shared])
+
+    AC_MSG_CHECKING([whether to build shared libraries])
+    test "$can_build_shared" = "no" && enable_shared=no
+
+    # On AIX, shared libraries and static libraries use the same namespace, and
+    # are all built from PIC.
+    case $host_os in
+      aix3*)
+        test "$enable_shared" = yes && enable_static=no
+        if test -n "$RANLIB"; then
+          archive_cmds="$archive_cmds~\$RANLIB \$lib"
+          postinstall_cmds='$RANLIB $lib'
+        fi
+        ;;
+      aix[[4-9]]*)
+	if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+	  test "$enable_shared" = yes && enable_static=no
+	fi
+        ;;
+    esac
+    AC_MSG_RESULT([$enable_shared])
+
+    AC_MSG_CHECKING([whether to build static libraries])
+    # Make sure either enable_shared or enable_static is yes.
+    test "$enable_shared" = yes || enable_static=yes
+    AC_MSG_RESULT([$enable_static])
+
+    _LT_TAGVAR(GCC, $1)="$G77"
+    _LT_TAGVAR(LD, $1)="$LD"
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  GCC=$lt_save_GCC
+  CC="$lt_save_CC"
+fi # test "$_lt_disable_F77" != yes
+
+AC_LANG_POP
+])# _LT_LANG_F77_CONFIG
+
+
+# _LT_PROG_FC
+# -----------
+# Since AC_PROG_FC is broken, in that it returns the empty string
+# if there is no fortran compiler, we have our own version here.
+m4_defun([_LT_PROG_FC],
+[
+pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes])
+AC_PROG_FC
+if test -z "$FC" || test "X$FC" = "Xno"; then
+  _lt_disable_FC=yes
+fi
+popdef([AC_MSG_ERROR])
+])# _LT_PROG_FC
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([_LT_PROG_FC], [])
+
+
+# _LT_LANG_FC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for a Fortran compiler are
+# suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_FC_CONFIG],
+[AC_REQUIRE([_LT_PROG_FC])dnl
+AC_LANG_PUSH(Fortran)
+
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for fc test sources.
+ac_ext=${ac_fc_srcext-f}
+
+# Object file extension for compiled fc test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the FC compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_disable_FC" != yes; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="\
+      subroutine t
+      return
+      end
+"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code="\
+      program t
+      end
+"
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC="$CC"
+  lt_save_GCC=$GCC
+  CC=${FC-"f95"}
+  compiler=$CC
+  GCC=$ac_cv_fc_compiler_gnu
+
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+
+  if test -n "$compiler"; then
+    AC_MSG_CHECKING([if libtool supports shared libraries])
+    AC_MSG_RESULT([$can_build_shared])
+
+    AC_MSG_CHECKING([whether to build shared libraries])
+    test "$can_build_shared" = "no" && enable_shared=no
+
+    # On AIX, shared libraries and static libraries use the same namespace, and
+    # are all built from PIC.
+    case $host_os in
+      aix3*)
+        test "$enable_shared" = yes && enable_static=no
+        if test -n "$RANLIB"; then
+          archive_cmds="$archive_cmds~\$RANLIB \$lib"
+          postinstall_cmds='$RANLIB $lib'
+        fi
+        ;;
+      aix[[4-9]]*)
+	if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+	  test "$enable_shared" = yes && enable_static=no
+	fi
+        ;;
+    esac
+    AC_MSG_RESULT([$enable_shared])
+
+    AC_MSG_CHECKING([whether to build static libraries])
+    # Make sure either enable_shared or enable_static is yes.
+    test "$enable_shared" = yes || enable_static=yes
+    AC_MSG_RESULT([$enable_static])
+
+    _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu"
+    _LT_TAGVAR(LD, $1)="$LD"
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_SYS_HIDDEN_LIBDEPS($1)
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  GCC=$lt_save_GCC
+  CC="$lt_save_CC"
+fi # test "$_lt_disable_FC" != yes
+
+AC_LANG_POP
+])# _LT_LANG_FC_CONFIG
+
+
+# _LT_LANG_GCJ_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Java Compiler compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_GCJ_CONFIG],
+[AC_REQUIRE([LT_PROG_GCJ])dnl
+AC_LANG_SAVE
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+lt_save_GCC=$GCC
+GCC=yes
+CC=${GCJ-"gcj"}
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_TAGVAR(LD, $1)="$LD"
+_LT_CC_BASENAME([$compiler])
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+
+  _LT_CONFIG($1)
+fi
+
+AC_LANG_RESTORE
+
+GCC=$lt_save_GCC
+CC="$lt_save_CC"
+])# _LT_LANG_GCJ_CONFIG
+
+
+# _LT_LANG_RC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for the Windows resource compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_RC_CONFIG],
+[AC_REQUIRE([LT_PROG_RC])dnl
+AC_LANG_SAVE
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="$lt_simple_compile_test_code"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+lt_save_GCC=$GCC
+GCC=
+CC=${RC-"windres"}
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+
+if test -n "$compiler"; then
+  :
+  _LT_CONFIG($1)
+fi
+
+GCC=$lt_save_GCC
+AC_LANG_RESTORE
+CC="$lt_save_CC"
+])# _LT_LANG_RC_CONFIG
+
+
+# LT_PROG_GCJ
+# -----------
+AC_DEFUN([LT_PROG_GCJ],
+[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
+  [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
+    [AC_CHECK_TOOL(GCJ, gcj,)
+      test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
+      AC_SUBST(GCJFLAGS)])])[]dnl
+])
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
+
+
+# LT_PROG_RC
+# ----------
+AC_DEFUN([LT_PROG_RC],
+[AC_CHECK_TOOL(RC, windres,)
+])
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_RC], [])
+
+
+# _LT_DECL_EGREP
+# --------------
+# If we don't have a new enough Autoconf to choose the best grep
+# available, choose the one first in the user's PATH.
+m4_defun([_LT_DECL_EGREP],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_REQUIRE([AC_PROG_FGREP])dnl
+test -z "$GREP" && GREP=grep
+_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
+_LT_DECL([], [EGREP], [1], [An ERE matcher])
+_LT_DECL([], [FGREP], [1], [A literal string matcher])
+dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
+AC_SUBST([GREP])
+])
+
+
+# _LT_DECL_OBJDUMP
+# --------------
+# If we don't have a new enough Autoconf to choose the best objdump
+# available, choose the one first in the user's PATH.
+m4_defun([_LT_DECL_OBJDUMP],
+[AC_CHECK_TOOL(OBJDUMP, objdump, false)
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
+AC_SUBST([OBJDUMP])
+])
+
+
+# _LT_DECL_SED
+# ------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible.  Prefer GNU sed if found.
+m4_defun([_LT_DECL_SED],
+[AC_PROG_SED
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
+_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
+    [Sed that helps us avoid accidentally triggering echo(1) options like -n])
+])# _LT_DECL_SED
+
+m4_ifndef([AC_PROG_SED], [
+############################################################
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+############################################################
+
+m4_defun([AC_PROG_SED],
+[AC_MSG_CHECKING([for a sed that does not truncate output])
+AC_CACHE_VAL(lt_cv_path_SED,
+[# Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for lt_ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+      fi
+    done
+  done
+done
+IFS=$as_save_IFS
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+  test ! -f $lt_ac_sed && continue
+  cat /dev/null > conftest.in
+  lt_ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+  # Check for GNU sed and select it if it is found.
+  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+    lt_cv_path_SED=$lt_ac_sed
+    break
+  fi
+  while true; do
+    cat conftest.in conftest.in >conftest.tmp
+    mv conftest.tmp conftest.in
+    cp conftest.in conftest.nl
+    echo >>conftest.nl
+    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+    cmp -s conftest.out conftest.nl || break
+    # 10000 chars as input seems more than enough
+    test $lt_ac_count -gt 10 && break
+    lt_ac_count=`expr $lt_ac_count + 1`
+    if test $lt_ac_count -gt $lt_ac_max; then
+      lt_ac_max=$lt_ac_count
+      lt_cv_path_SED=$lt_ac_sed
+    fi
+  done
+done
+])
+SED=$lt_cv_path_SED
+AC_SUBST([SED])
+AC_MSG_RESULT([$SED])
+])#AC_PROG_SED
+])#m4_ifndef
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_SED], [])
+
+
+# _LT_CHECK_SHELL_FEATURES
+# ------------------------
+# Find out whether the shell is Bourne or XSI compatible,
+# or has some other useful features.
+m4_defun([_LT_CHECK_SHELL_FEATURES],
+[AC_MSG_CHECKING([whether the shell understands some XSI constructs])
+# Try some XSI features
+xsi_shell=no
+( _lt_dummy="a/b/c"
+  test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
+      = c,a/b,, \
+    && eval 'test $(( 1 + 1 )) -eq 2 \
+    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
+  && xsi_shell=yes
+AC_MSG_RESULT([$xsi_shell])
+_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell'])
+
+AC_MSG_CHECKING([whether the shell understands "+="])
+lt_shell_append=no
+( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \
+    >/dev/null 2>&1 \
+  && lt_shell_append=yes
+AC_MSG_RESULT([$lt_shell_append])
+_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append'])
+
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  lt_unset=unset
+else
+  lt_unset=false
+fi
+_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+  lt_SP2NL='tr \040 \012'
+  lt_NL2SP='tr \015\012 \040\040'
+  ;;
+ *) # EBCDIC based system
+  lt_SP2NL='tr \100 \n'
+  lt_NL2SP='tr \r\n \100\100'
+  ;;
+esac
+_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
+_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
+])# _LT_CHECK_SHELL_FEATURES
+
+
+# _LT_PROG_XSI_SHELLFNS
+# ---------------------
+# Bourne and XSI compatible variants of some useful shell functions.
+m4_defun([_LT_PROG_XSI_SHELLFNS],
+[case $xsi_shell in
+  yes)
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+  case ${1} in
+    */*) func_dirname_result="${1%/*}${2}" ;;
+    *  ) func_dirname_result="${3}" ;;
+  esac
+}
+
+# func_basename file
+func_basename ()
+{
+  func_basename_result="${1##*/}"
+}
+
+# func_dirname_and_basename file append nondir_replacement
+# perform func_basename and func_dirname in a single function
+# call:
+#   dirname:  Compute the dirname of FILE.  If nonempty,
+#             add APPEND to the result, otherwise set result
+#             to NONDIR_REPLACEMENT.
+#             value returned in "$func_dirname_result"
+#   basename: Compute filename of FILE.
+#             value retuned in "$func_basename_result"
+# Implementation must be kept synchronized with func_dirname
+# and func_basename. For efficiency, we do not delegate to
+# those functions but instead duplicate the functionality here.
+func_dirname_and_basename ()
+{
+  case ${1} in
+    */*) func_dirname_result="${1%/*}${2}" ;;
+    *  ) func_dirname_result="${3}" ;;
+  esac
+  func_basename_result="${1##*/}"
+}
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+func_stripname ()
+{
+  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+  # positional parameters, so assign one to ordinary parameter first.
+  func_stripname_result=${3}
+  func_stripname_result=${func_stripname_result#"${1}"}
+  func_stripname_result=${func_stripname_result%"${2}"}
+}
+
+# func_opt_split
+func_opt_split ()
+{
+  func_opt_split_opt=${1%%=*}
+  func_opt_split_arg=${1#*=}
+}
+
+# func_lo2o object
+func_lo2o ()
+{
+  case ${1} in
+    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+    *)    func_lo2o_result=${1} ;;
+  esac
+}
+
+# func_xform libobj-or-source
+func_xform ()
+{
+  func_xform_result=${1%.*}.lo
+}
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+  func_arith_result=$(( $[*] ))
+}
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+  func_len_result=${#1}
+}
+
+_LT_EOF
+    ;;
+  *) # Bourne compatible functions.
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+  # Extract subdirectory from the argument.
+  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
+  if test "X$func_dirname_result" = "X${1}"; then
+    func_dirname_result="${3}"
+  else
+    func_dirname_result="$func_dirname_result${2}"
+  fi
+}
+
+# func_basename file
+func_basename ()
+{
+  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
+}
+
+dnl func_dirname_and_basename
+dnl A portable version of this function is already defined in general.m4sh
+dnl so there is no need for it here.
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+# func_strip_suffix prefix name
+func_stripname ()
+{
+  case ${2} in
+    .*) func_stripname_result=`$ECHO "X${3}" \
+           | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
+    *)  func_stripname_result=`$ECHO "X${3}" \
+           | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
+  esac
+}
+
+# sed scripts:
+my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q'
+my_sed_long_arg='1s/^-[[^=]]*=//'
+
+# func_opt_split
+func_opt_split ()
+{
+  func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
+  func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
+}
+
+# func_lo2o object
+func_lo2o ()
+{
+  func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
+}
+
+# func_xform libobj-or-source
+func_xform ()
+{
+  func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'`
+}
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+  func_arith_result=`expr "$[@]"`
+}
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+  func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len`
+}
+
+_LT_EOF
+esac
+
+case $lt_shell_append in
+  yes)
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+  eval "$[1]+=\$[2]"
+}
+_LT_EOF
+    ;;
+  *)
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+  eval "$[1]=\$$[1]\$[2]"
+}
+
+_LT_EOF
+    ;;
+  esac
+])
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/m4/ltoptions.m4 b/framework/modules/c_FileTypeSigModule/file-5.08/m4/ltoptions.m4
new file mode 100755
index 0000000000000000000000000000000000000000..34151a3ba625f326e6645d6afc79586f10746a3e
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/m4/ltoptions.m4
@@ -0,0 +1,368 @@
+# Helper functions for option handling.                    -*- Autoconf -*-
+#
+#   Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+#   Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 6 ltoptions.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
+
+
+# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
+# ------------------------------------------
+m4_define([_LT_MANGLE_OPTION],
+[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
+
+
+# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
+# ---------------------------------------
+# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
+# matching handler defined, dispatch to it.  Other OPTION-NAMEs are
+# saved as a flag.
+m4_define([_LT_SET_OPTION],
+[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
+m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
+        _LT_MANGLE_DEFUN([$1], [$2]),
+    [m4_warning([Unknown $1 option `$2'])])[]dnl
+])
+
+
+# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
+# ------------------------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+m4_define([_LT_IF_OPTION],
+[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
+
+
+# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
+# -------------------------------------------------------
+# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
+# are set.
+m4_define([_LT_UNLESS_OPTIONS],
+[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+	    [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
+		      [m4_define([$0_found])])])[]dnl
+m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
+])[]dnl
+])
+
+
+# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
+# ----------------------------------------
+# OPTION-LIST is a space-separated list of Libtool options associated
+# with MACRO-NAME.  If any OPTION has a matching handler declared with
+# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
+# the unknown option and exit.
+m4_defun([_LT_SET_OPTIONS],
+[# Set options
+m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+    [_LT_SET_OPTION([$1], _LT_Option)])
+
+m4_if([$1],[LT_INIT],[
+  dnl
+  dnl Simply set some default values (i.e off) if boolean options were not
+  dnl specified:
+  _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
+  ])
+  _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
+  ])
+  dnl
+  dnl If no reference was made to various pairs of opposing options, then
+  dnl we run the default mode handler for the pair.  For example, if neither
+  dnl `shared' nor `disable-shared' was passed, we enable building of shared
+  dnl archives by default:
+  _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
+  _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
+  _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
+  _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
+  		   [_LT_ENABLE_FAST_INSTALL])
+  ])
+])# _LT_SET_OPTIONS
+
+
+## --------------------------------- ##
+## Macros to handle LT_INIT options. ##
+## --------------------------------- ##
+
+# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
+# -----------------------------------------
+m4_define([_LT_MANGLE_DEFUN],
+[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
+
+
+# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
+# -----------------------------------------------
+m4_define([LT_OPTION_DEFINE],
+[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
+])# LT_OPTION_DEFINE
+
+
+# dlopen
+# ------
+LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
+])
+
+AU_DEFUN([AC_LIBTOOL_DLOPEN],
+[_LT_SET_OPTION([LT_INIT], [dlopen])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `dlopen' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
+
+
+# win32-dll
+# ---------
+# Declare package support for building win32 dll's.
+LT_OPTION_DEFINE([LT_INIT], [win32-dll],
+[enable_win32_dll=yes
+
+case $host in
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
+  AC_CHECK_TOOL(AS, as, false)
+  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+  AC_CHECK_TOOL(OBJDUMP, objdump, false)
+  ;;
+esac
+
+test -z "$AS" && AS=as
+_LT_DECL([], [AS],      [0], [Assembler program])dnl
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl
+])# win32-dll
+
+AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+_LT_SET_OPTION([LT_INIT], [win32-dll])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `win32-dll' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
+
+
+# _LT_ENABLE_SHARED([DEFAULT])
+# ----------------------------
+# implement the --enable-shared flag, and supports the `shared' and
+# `disable-shared' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_SHARED],
+[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([shared],
+    [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+	[build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_shared=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
+
+    _LT_DECL([build_libtool_libs], [enable_shared], [0],
+	[Whether or not to build shared libraries])
+])# _LT_ENABLE_SHARED
+
+LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
+])
+
+AC_DEFUN([AC_DISABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], [disable-shared])
+])
+
+AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
+AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_SHARED], [])
+dnl AC_DEFUN([AM_DISABLE_SHARED], [])
+
+
+
+# _LT_ENABLE_STATIC([DEFAULT])
+# ----------------------------
+# implement the --enable-static flag, and support the `static' and
+# `disable-static' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_STATIC],
+[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([static],
+    [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+	[build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_static=yes ;;
+    no) enable_static=no ;;
+    *)
+     enable_static=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_static=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
+
+    _LT_DECL([build_old_libs], [enable_static], [0],
+	[Whether or not to build static libraries])
+])# _LT_ENABLE_STATIC
+
+LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
+])
+
+AC_DEFUN([AC_DISABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], [disable-static])
+])
+
+AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
+AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_STATIC], [])
+dnl AC_DEFUN([AM_DISABLE_STATIC], [])
+
+
+
+# _LT_ENABLE_FAST_INSTALL([DEFAULT])
+# ----------------------------------
+# implement the --enable-fast-install flag, and support the `fast-install'
+# and `disable-fast-install' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_FAST_INSTALL],
+[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([fast-install],
+    [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+    [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_fast_install=yes ;;
+    no) enable_fast_install=no ;;
+    *)
+      enable_fast_install=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_fast_install=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
+
+_LT_DECL([fast_install], [enable_fast_install], [0],
+	 [Whether or not to optimize for fast installation])dnl
+])# _LT_ENABLE_FAST_INSTALL
+
+LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
+
+# Old names:
+AU_DEFUN([AC_ENABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `fast-install' option into LT_INIT's first parameter.])
+])
+
+AU_DEFUN([AC_DISABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `disable-fast-install' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
+dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
+
+
+# _LT_WITH_PIC([MODE])
+# --------------------
+# implement the --with-pic flag, and support the `pic-only' and `no-pic'
+# LT_INIT options.
+# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
+m4_define([_LT_WITH_PIC],
+[AC_ARG_WITH([pic],
+    [AS_HELP_STRING([--with-pic],
+	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+    [pic_mode="$withval"],
+    [pic_mode=default])
+
+test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
+
+_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
+])# _LT_WITH_PIC
+
+LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
+
+# Old name:
+AU_DEFUN([AC_LIBTOOL_PICMODE],
+[_LT_SET_OPTION([LT_INIT], [pic-only])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `pic-only' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
+
+## ----------------- ##
+## LTDL_INIT Options ##
+## ----------------- ##
+
+m4_define([_LTDL_MODE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
+		 [m4_define([_LTDL_MODE], [nonrecursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [recursive],
+		 [m4_define([_LTDL_MODE], [recursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [subproject],
+		 [m4_define([_LTDL_MODE], [subproject])])
+
+m4_define([_LTDL_TYPE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [installable],
+		 [m4_define([_LTDL_TYPE], [installable])])
+LT_OPTION_DEFINE([LTDL_INIT], [convenience],
+		 [m4_define([_LTDL_TYPE], [convenience])])
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/m4/ltsugar.m4 b/framework/modules/c_FileTypeSigModule/file-5.08/m4/ltsugar.m4
new file mode 100755
index 0000000000000000000000000000000000000000..9000a057d31ddf75cb85ccda8757de4493bcdbe7
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/m4/ltsugar.m4
@@ -0,0 +1,123 @@
+# ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
+#
+# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+# Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 6 ltsugar.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
+
+
+# lt_join(SEP, ARG1, [ARG2...])
+# -----------------------------
+# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
+# associated separator.
+# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
+# versions in m4sugar had bugs.
+m4_define([lt_join],
+[m4_if([$#], [1], [],
+       [$#], [2], [[$2]],
+       [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
+m4_define([_lt_join],
+[m4_if([$#$2], [2], [],
+       [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
+
+
+# lt_car(LIST)
+# lt_cdr(LIST)
+# ------------
+# Manipulate m4 lists.
+# These macros are necessary as long as will still need to support
+# Autoconf-2.59 which quotes differently.
+m4_define([lt_car], [[$1]])
+m4_define([lt_cdr],
+[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
+       [$#], 1, [],
+       [m4_dquote(m4_shift($@))])])
+m4_define([lt_unquote], $1)
+
+
+# lt_append(MACRO-NAME, STRING, [SEPARATOR])
+# ------------------------------------------
+# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
+# Note that neither SEPARATOR nor STRING are expanded; they are appended
+# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
+# No SEPARATOR is output if MACRO-NAME was previously undefined (different
+# than defined and empty).
+#
+# This macro is needed until we can rely on Autoconf 2.62, since earlier
+# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
+m4_define([lt_append],
+[m4_define([$1],
+	   m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
+
+
+
+# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
+# ----------------------------------------------------------
+# Produce a SEP delimited list of all paired combinations of elements of
+# PREFIX-LIST with SUFFIX1 through SUFFIXn.  Each element of the list
+# has the form PREFIXmINFIXSUFFIXn.
+# Needed until we can rely on m4_combine added in Autoconf 2.62.
+m4_define([lt_combine],
+[m4_if(m4_eval([$# > 3]), [1],
+       [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
+[[m4_foreach([_Lt_prefix], [$2],
+	     [m4_foreach([_Lt_suffix],
+		]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
+	[_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
+
+
+# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
+# -----------------------------------------------------------------------
+# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
+# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
+m4_define([lt_if_append_uniq],
+[m4_ifdef([$1],
+	  [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
+		 [lt_append([$1], [$2], [$3])$4],
+		 [$5])],
+	  [lt_append([$1], [$2], [$3])$4])])
+
+
+# lt_dict_add(DICT, KEY, VALUE)
+# -----------------------------
+m4_define([lt_dict_add],
+[m4_define([$1($2)], [$3])])
+
+
+# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
+# --------------------------------------------
+m4_define([lt_dict_add_subkey],
+[m4_define([$1($2:$3)], [$4])])
+
+
+# lt_dict_fetch(DICT, KEY, [SUBKEY])
+# ----------------------------------
+m4_define([lt_dict_fetch],
+[m4_ifval([$3],
+	m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
+    m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
+
+
+# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
+# -----------------------------------------------------------------
+m4_define([lt_if_dict_fetch],
+[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
+	[$5],
+    [$6])])
+
+
+# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
+# --------------------------------------------------------------
+m4_define([lt_dict_filter],
+[m4_if([$5], [], [],
+  [lt_join(m4_quote(m4_default([$4], [[, ]])),
+           lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
+		      [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
+])
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/m4/ltversion.m4 b/framework/modules/c_FileTypeSigModule/file-5.08/m4/ltversion.m4
new file mode 100755
index 0000000000000000000000000000000000000000..f3c5309802447a3b341b1a2c5e4d74ec138b311a
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/m4/ltversion.m4
@@ -0,0 +1,23 @@
+# ltversion.m4 -- version numbers			-*- Autoconf -*-
+#
+#   Copyright (C) 2004 Free Software Foundation, Inc.
+#   Written by Scott James Remnant, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# Generated from ltversion.in.
+
+# serial 3017 ltversion.m4
+# This file is part of GNU Libtool
+
+m4_define([LT_PACKAGE_VERSION], [2.2.6b])
+m4_define([LT_PACKAGE_REVISION], [1.3017])
+
+AC_DEFUN([LTVERSION_VERSION],
+[macro_version='2.2.6b'
+macro_revision='1.3017'
+_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
+_LT_DECL(, macro_revision, 0)
+])
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/m4/lt~obsolete.m4 b/framework/modules/c_FileTypeSigModule/file-5.08/m4/lt~obsolete.m4
new file mode 100755
index 0000000000000000000000000000000000000000..637bb2066c425f79faecd6cc9e4e6b5074c6b55c
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/m4/lt~obsolete.m4
@@ -0,0 +1,92 @@
+# lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
+#
+#   Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
+#   Written by Scott James Remnant, 2004.
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 4 lt~obsolete.m4
+
+# These exist entirely to fool aclocal when bootstrapping libtool.
+#
+# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
+# which have later been changed to m4_define as they aren't part of the
+# exported API, or moved to Autoconf or Automake where they belong.
+#
+# The trouble is, aclocal is a bit thick.  It'll see the old AC_DEFUN
+# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
+# using a macro with the same name in our local m4/libtool.m4 it'll
+# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
+# and doesn't know about Autoconf macros at all.)
+#
+# So we provide this file, which has a silly filename so it's always
+# included after everything else.  This provides aclocal with the
+# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
+# because those macros already exist, or will be overwritten later.
+# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. 
+#
+# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
+# Yes, that means every name once taken will need to remain here until
+# we give up compatibility with versions before 1.7, at which point
+# we need to keep only those names which we still refer to.
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
+
+m4_ifndef([AC_LIBTOOL_LINKER_OPTION],	[AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
+m4_ifndef([AC_PROG_EGREP],		[AC_DEFUN([AC_PROG_EGREP])])
+m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH],	[AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_AC_SHELL_INIT],		[AC_DEFUN([_LT_AC_SHELL_INIT])])
+m4_ifndef([_LT_AC_SYS_LIBPATH_AIX],	[AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
+m4_ifndef([_LT_PROG_LTMAIN],		[AC_DEFUN([_LT_PROG_LTMAIN])])
+m4_ifndef([_LT_AC_TAGVAR],		[AC_DEFUN([_LT_AC_TAGVAR])])
+m4_ifndef([AC_LTDL_ENABLE_INSTALL],	[AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
+m4_ifndef([AC_LTDL_PREOPEN],		[AC_DEFUN([AC_LTDL_PREOPEN])])
+m4_ifndef([_LT_AC_SYS_COMPILER],	[AC_DEFUN([_LT_AC_SYS_COMPILER])])
+m4_ifndef([_LT_AC_LOCK],		[AC_DEFUN([_LT_AC_LOCK])])
+m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE],	[AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
+m4_ifndef([_LT_AC_TRY_DLOPEN_SELF],	[AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
+m4_ifndef([AC_LIBTOOL_PROG_CC_C_O],	[AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
+m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
+m4_ifndef([AC_LIBTOOL_OBJDIR],		[AC_DEFUN([AC_LIBTOOL_OBJDIR])])
+m4_ifndef([AC_LTDL_OBJDIR],		[AC_DEFUN([AC_LTDL_OBJDIR])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
+m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP],	[AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
+m4_ifndef([AC_PATH_MAGIC],		[AC_DEFUN([AC_PATH_MAGIC])])
+m4_ifndef([AC_PROG_LD_GNU],		[AC_DEFUN([AC_PROG_LD_GNU])])
+m4_ifndef([AC_PROG_LD_RELOAD_FLAG],	[AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
+m4_ifndef([AC_DEPLIBS_CHECK_METHOD],	[AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
+m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS],	[AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
+m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP],	[AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
+m4_ifndef([LT_AC_PROG_EGREP],		[AC_DEFUN([LT_AC_PROG_EGREP])])
+m4_ifndef([LT_AC_PROG_SED],		[AC_DEFUN([LT_AC_PROG_SED])])
+m4_ifndef([_LT_CC_BASENAME],		[AC_DEFUN([_LT_CC_BASENAME])])
+m4_ifndef([_LT_COMPILER_BOILERPLATE],	[AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
+m4_ifndef([_LT_LINKER_BOILERPLATE],	[AC_DEFUN([_LT_LINKER_BOILERPLATE])])
+m4_ifndef([_AC_PROG_LIBTOOL],		[AC_DEFUN([_AC_PROG_LIBTOOL])])
+m4_ifndef([AC_LIBTOOL_SETUP],		[AC_DEFUN([AC_LIBTOOL_SETUP])])
+m4_ifndef([_LT_AC_CHECK_DLFCN],		[AC_DEFUN([_LT_AC_CHECK_DLFCN])])
+m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER],	[AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
+m4_ifndef([_LT_AC_TAGCONFIG],		[AC_DEFUN([_LT_AC_TAGCONFIG])])
+m4_ifndef([AC_DISABLE_FAST_INSTALL],	[AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
+m4_ifndef([_LT_AC_LANG_CXX],		[AC_DEFUN([_LT_AC_LANG_CXX])])
+m4_ifndef([_LT_AC_LANG_F77],		[AC_DEFUN([_LT_AC_LANG_F77])])
+m4_ifndef([_LT_AC_LANG_GCJ],		[AC_DEFUN([_LT_AC_LANG_GCJ])])
+m4_ifndef([AC_LIBTOOL_RC],		[AC_DEFUN([AC_LIBTOOL_RC])])
+m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
+m4_ifndef([_LT_AC_LANG_C_CONFIG],	[AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
+m4_ifndef([_LT_AC_LANG_CXX_CONFIG],	[AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
+m4_ifndef([_LT_AC_LANG_F77_CONFIG],	[AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
+m4_ifndef([_LT_AC_LANG_GCJ_CONFIG],	[AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
+m4_ifndef([_LT_AC_LANG_RC_CONFIG],	[AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
+m4_ifndef([AC_LIBTOOL_CONFIG],		[AC_DEFUN([AC_LIBTOOL_CONFIG])])
+m4_ifndef([_LT_AC_FILE_LTDLL_C],	[AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Header b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Header
new file mode 100755
index 0000000000000000000000000000000000000000..831122e27a80753b39226b3ceea1a86fe15e26ad
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Header
@@ -0,0 +1,5 @@
+# Magic data for file(1) command.
+# Format is described in magic(files), where:
+# files is 5 on V7 and BSD, 4 on SV, and ?? on SVID.
+# Don't edit this file, edit /etc/magic or send your magic improvements
+# to the maintainers, at file@mx.gw.com
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Localstuff b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Localstuff
new file mode 100755
index 0000000000000000000000000000000000000000..419855fb62204f70e314afd8157d60b710d2e04e
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Localstuff
@@ -0,0 +1,7 @@
+
+#------------------------------------------------------------------------------
+# Localstuff:  file(1) magic for locally observed files
+#
+# $File: Localstuff,v 1.4 2003/03/23 04:17:27 christos Exp $
+# Add any locally observed files here.  Remember:
+# text if readable, executable if runnable binary, data if unreadable.
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/acorn b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/acorn
new file mode 100755
index 0000000000000000000000000000000000000000..4202be912419418352fd29ab77f58263a9af02c9
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/acorn
@@ -0,0 +1,69 @@
+
+#------------------------------------------------------------------------------
+# $File: acorn,v 1.5 2009/09/19 16:28:07 christos Exp $
+# acorn:  file(1) magic for files found on Acorn systems
+#
+
+# RISC OS Chunk File Format
+# From RISC OS Programmer's Reference Manual, Appendix D
+# We guess the file type from the type of the first chunk.
+0	lelong		0xc3cbc6c5	RISC OS Chunk data
+>12	string		OBJ_		\b, AOF object
+>12	string		LIB_		\b, ALF library
+
+# RISC OS AIF, contains "SWI OS_Exit" at offset 16.
+16	lelong		0xef000011	RISC OS AIF executable
+
+# RISC OS Draw files
+# From RISC OS Programmer's Reference Manual, Appendix E
+0	string 		Draw		RISC OS Draw file data
+
+# RISC OS new format font files
+# From RISC OS Programmer's Reference Manual, Appendix E
+0	string		FONT\0		RISC OS outline font data,
+>5	byte		x		version %d
+0	string		FONT\1		RISC OS 1bpp font data,
+>5	byte		x		version %d
+0	string		FONT\4		RISC OS 4bpp font data
+>5	byte		x		version %d
+
+# RISC OS Music files
+# From RISC OS Programmer's Reference Manual, Appendix E
+0	string		Maestro\r	RISC OS music file
+>8	byte		x		version %d
+
+>8	byte		x		type %d
+
+# Digital Symphony data files
+# From: Bernard Jungen (bern8817@euphonynet.be)
+0		string	\x02\x01\x13\x13\x13\x01\x0d\x10	Digital Symphony sound sample (RISC OS),
+>8		byte	x	version %d,
+>9		pstring	x	named "%s",
+>(9.b+19)	byte	=0	8-bit logarithmic
+>(9.b+19)	byte	=1	LZW-compressed linear
+>(9.b+19)	byte	=2	8-bit linear signed
+>(9.b+19)	byte	=3	16-bit linear signed
+>(9.b+19)	byte	=4	SigmaDelta-compressed linear
+>(9.b+19)	byte	=5	SigmaDelta-compressed logarithmic
+>(9.b+19)	byte	>5	unknown format
+
+0	string	\x02\x01\x13\x13\x14\x12\x01\x0b	Digital Symphony song (RISC OS),
+>8	byte	x	version %d,
+>9	byte	=1	1 voice,
+>9	byte	!1	%d voices,
+>10	leshort	=1	1 track,
+>10	leshort	!1	%d tracks,
+>12	leshort	=1	1 pattern
+>12	leshort	!1	%d patterns
+
+0	string	\x02\x01\x13\x13\x10\x14\x12\x0e
+>9	byte	=0	Digital Symphony sequence (RISC OS),
+>>8	byte	x	version %d,
+>>10	byte	=1	1 line,
+>>10	byte	!1	%d lines,
+>>11	leshort	=1	1 position
+>>11	leshort	!1	%d positions
+>9	byte	=1	Digital Symphony pattern data (RISC OS),
+>>8	byte	x	version %d,
+>>10	leshort	=1	1 pattern
+>>10	leshort	!1	%d patterns
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/adi b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/adi
new file mode 100755
index 0000000000000000000000000000000000000000..2fe79d443119541a46200898a326e13d6eaa34fa
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/adi
@@ -0,0 +1,13 @@
+
+#------------------------------------------------------------------------------
+# $File: adi,v 1.4 2009/09/19 16:28:07 christos Exp $
+# adi: file(1) magic for ADi's objects
+# From Gregory McGarry <g.mcgarry@ieee.org>
+#
+0	leshort		0x521c		COFF DSP21k
+>18	lelong		&02		executable,
+>18	lelong		^02
+>>18	lelong		&01		static object,
+>>18	lelong		^01		relocatable object,
+>18	lelong		&010		stripped
+>18	lelong		^010		not stripped
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/adventure b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/adventure
new file mode 100755
index 0000000000000000000000000000000000000000..febc2077f1292d8c3bc5c199f5f84e271396bbea
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/adventure
@@ -0,0 +1,106 @@
+
+#------------------------------------------------------------------------------
+# $File: adventure,v 1.13 2010/12/31 16:32:54 christos Exp $
+# adventure: file(1) magic for Adventure game files
+#
+# from Allen Garvin <earendil@faeryland.tamu-commerce.edu>
+# Edited by Dave Chapeskie <dchapes@ddm.on.ca> Jun 28, 1998
+# Edited by Chris Chittleborough <cchittleborough@yahoo.com.au>, March 2002
+#
+# ALAN
+# I assume there are other, lower versions, but these are the only ones I
+# saw in the archive.
+0	beshort	0x0206	ALAN game data
+>2	byte	<10	version 2.6%d
+
+
+# Infocom (see z-machine)
+#------------------------------------------------------------------------------
+# Z-machine:  file(1) magic for Z-machine binaries.
+# Updated by Adam Buchbinder <adam.buchbinder@gmail.com>
+#
+#http://www.gnelson.demon.co.uk/zspec/sect11.html
+#http://www.jczorkmid.net/~jpenney/ZSpec11-latest.txt
+#http://en.wikipedia.org/wiki/Z-machine
+# The first byte is the Z-machine revision; it is always between 1 and 8. We
+# had false matches (for instance, inbig5.ocp from the Omega TeX extension as
+# well as an occasional MP3 file), so we sanity-check the version number.
+#
+# It might be possible to sanity-check the release number as well, as it seems
+# (at least in classic Infocom games) to always be a relatively small number,
+# always under 150 or so, but as this isn't rigorous, we'll wait on that until
+# it becomes clear that it's needed.
+#
+0	ubyte			>0
+>0	ubyte			<9
+>>16	belong&0xfe00f0f0	0x3030	Infocom game data
+>>>0	ubyte			x	(Z-machine %d,
+>>>>2	ubeshort		x	Release %d /
+>>>>18	string			>\0	Serial %.6s)
+
+#------------------------------------------------------------------------------
+# Glulx:  file(1) magic for Glulx binaries.
+#
+# I haven't checked for false matches yet.
+#
+0	string			Glul	Glulx game data
+>4	beshort			x	(Version %d
+>>6	byte			x	\b.%d
+>>8	byte			x	\b.%d)
+>36	string			Info	Compiled by Inform
+
+
+
+# For Quetzal and blorb magic see iff
+
+
+# TADS (Text Adventure Development System) version 2
+#  All files are machine-independent (games compile to byte-code) and are tagged
+#  with a version string of the form "V2.<digit>.<digit>\0".
+#  Game files start with "TADS2 bin\n\r\032\0" then the compiler version.
+0	string	TADS2\ bin	TADS
+>9	belong  !0x0A0D1A00	game data, CORRUPTED
+>9	belong	 0x0A0D1A00
+>>13	string	>\0		%s game data
+#  Resource files start with "TADS2 rsc\n\r\032\0" then the compiler version.
+0	string	TADS2\ rsc	TADS
+>9	belong  !0x0A0D1A00	resource data, CORRUPTED
+>9	belong	 0x0A0D1A00
+>>13	string	>\0		%s resource data
+#  Some saved game files start with "TADS2 save/g\n\r\032\0", a little-endian
+#  2-byte length N, the N-char name of the game file *without* a NUL (darn!),
+# "TADS2 save\n\r\032\0" and the interpreter version. 
+0	string	TADS2\ save/g	TADS
+>12	belong	!0x0A0D1A00	saved game data, CORRUPTED
+>12	belong	 0x0A0D1A00
+>>(16.s+32) string >\0		%s saved game data
+#  Other saved game files start with "TADS2 save\n\r\032\0" and the interpreter
+#  version.
+0	string	TADS2\ save	TADS
+>10	belong	!0x0A0D1A00	saved game data, CORRUPTED
+>10	belong	 0x0A0D1A00
+>>14	string	>\0		%s saved game data
+
+# TADS (Text Adventure Development System) version 3
+#  Game files start with "T3-image\015\012\032"
+0	string	T3-image\015\012\032
+>11	leshort	x		TADS 3 game data (format version %d)
+#  Saved game files start with "T3-state-v####\015\012\032"
+#  where #### is a format version number
+0	string	T3-state-v
+>14	string	\015\012\032	TADS 3 saved game data (format version
+>>10	byte	x		%c
+>>11	byte	x		\b%c
+>>12	byte	x		\b%c
+>>13	byte	x		\b%c)
+
+# Danny Milosavljevic <danny.milo@gmx.net>
+# this are adrift (adventure game standard) game files, extension .taf
+# depending on version magic continues with 0x93453E6139FA (V 4.0)
+# 0x9445376139FA (V 3.90)
+# 0x9445366139FA (V 3.80)
+# this is from source (http://www.adrift.org.uk/) and I have some taf
+# files, and checked them.
+#0	belong	0x3C423FC9
+#>4	belong	0x6A87C2CF	Adrift game file
+#!:mime	application/x-adrift
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/allegro b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/allegro
new file mode 100755
index 0000000000000000000000000000000000000000..b937c9cb0254377e340ddefa076091e038d46ad7
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/allegro
@@ -0,0 +1,9 @@
+
+#------------------------------------------------------------------------------
+# $File: allegro,v 1.4 2009/09/19 16:28:07 christos Exp $
+# allegro:  file(1) magic for Allegro datafiles
+# Toby Deshane <hac@shoelace.digivill.net>
+#
+0 belong 0x736C6821   Allegro datafile (packed)
+0 belong 0x736C682E   Allegro datafile (not packed/autodetect)
+0 belong 0x736C682B   Allegro datafile (appended exe data)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/alliant b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/alliant
new file mode 100755
index 0000000000000000000000000000000000000000..962020238e1745f32dbda4163649fc5a2d561523
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/alliant
@@ -0,0 +1,18 @@
+
+#------------------------------------------------------------------------------
+# $File: alliant,v 1.7 2009/09/19 16:28:07 christos Exp $
+# alliant:  file(1) magic for Alliant FX series a.out files
+#
+# If the FX series is the one that had a processor with a 68K-derived
+# instruction set, the "short" should probably become "beshort" and the
+# "long" should probably become "belong".
+# If it's the i860-based one, they should probably become either the
+# big-endian or little-endian versions, depending on the mode they ran
+# the 860 in....
+#
+0	short		0420		0420 Alliant virtual executable
+>2	short		&0x0020		common library
+>16	long		>0		not stripped
+0	short		0421		0421 Alliant compact executable
+>2	short		&0x0020		common library
+>16	long		>0		not stripped
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/amanda b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/amanda
new file mode 100755
index 0000000000000000000000000000000000000000..395ef545c2baceee9965ee840622ba5b35425da0
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/amanda
@@ -0,0 +1,12 @@
+
+#------------------------------------------------------------------------------
+# $File: amanda,v 1.5 2009/09/19 16:28:07 christos Exp $
+# amanda:  file(1) magic for amanda file format
+#
+0	string	AMANDA:\ 		AMANDA 
+>8	string	TAPESTART\ DATE		tape header file,
+>>23	string	X
+>>>25	string	>\ 			Unused %s
+>>23	string	>\ 			DATE %s
+>8	string	FILE\ 			dump file,
+>>13	string	>\ 			DATE %s
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/amigaos b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/amigaos
new file mode 100755
index 0000000000000000000000000000000000000000..f4c9cf26531778f2516b3de618453baab2799838
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/amigaos
@@ -0,0 +1,65 @@
+
+#------------------------------------------------------------------------------
+# $File: amigaos,v 1.14 2009/09/19 16:28:07 christos Exp $
+# amigaos:  file(1) magic for AmigaOS binary formats:
+
+#
+# From ignatios@cs.uni-bonn.de (Ignatios Souvatzis)
+#
+0	belong		0x000003fa	AmigaOS shared library
+0	belong		0x000003f3	AmigaOS loadseg()ble executable/binary
+0	belong		0x000003e7	AmigaOS object/library data
+#
+0	beshort		0xe310		Amiga Workbench
+>2	beshort		1		
+>>48	byte		1		disk icon
+>>48	byte		2		drawer icon
+>>48	byte		3		tool icon
+>>48	byte		4		project icon
+>>48	byte		5		garbage icon
+>>48	byte		6		device icon
+>>48	byte		7		kickstart icon
+>>48	byte		8		workbench application icon
+>2	beshort		>1		icon, vers. %d
+#
+# various sound formats from the Amiga
+# G=F6tz Waschk <waschk@informatik.uni-rostock.de>
+#
+0	string		FC14		Future Composer 1.4 Module sound file
+0	string		SMOD		Future Composer 1.3 Module sound file
+0	string		AON4artofnoise	Art Of Noise Module sound file
+1	string		MUGICIAN/SOFTEYES Mugician Module sound file
+58	string		SIDMON\ II\ -\ THE	Sidmon 2.0 Module sound file
+0	string		Synth4.0	Synthesis Module sound file
+0	string		ARP.		The Holy Noise Module sound file
+0	string		BeEp\0		JamCracker Module sound file
+0	string		COSO\0		Hippel-COSO Module sound file
+# Too simple (short, pure ASCII, deep), MPi
+#26	string		V.3		Brian Postma's Soundmon Module sound file v3
+#26	string		BPSM		Brian Postma's Soundmon Module sound file v3
+#26	string		V.2		Brian Postma's Soundmon Module sound file v2
+
+# The following are from: "Stefan A. Haubenthal" <polluks@web.de>
+0	beshort		0x0f00		AmigaOS bitmap font
+0	beshort		0x0f03		AmigaOS outline font
+0	belong		0x80001001	AmigaOS outline tag
+0	string		##\ version	catalog translation
+0	string		EMOD\0		Amiga E module
+8	string		ECXM\0		ECX module
+0	string/c	@database	AmigaGuide file
+
+# Amiga disk types
+# 
+0	string		RDSK		Rigid Disk Block
+>160	string		x		on %.24s
+0	string		DOS\0		Amiga DOS disk
+0	string		DOS\1		Amiga FFS disk
+0	string		DOS\2		Amiga Inter DOS disk
+0	string		DOS\3		Amiga Inter FFS disk
+0	string		DOS\4		Amiga Fastdir DOS disk
+0	string		DOS\5		Amiga Fastdir FFS disk
+0	string		KICK		Kickstart disk
+
+# From: Alex Beregszaszi <alex@fsn.hu>
+0	string		LZX		LZX compressed archive (Amiga)
+
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/animation b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/animation
new file mode 100755
index 0000000000000000000000000000000000000000..e5836963538551cdefdd97c47aa6aa10171e2ebd
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/animation
@@ -0,0 +1,837 @@
+
+#------------------------------------------------------------------------------
+# $File: animation,v 1.44 2010/11/25 15:00:12 christos Exp $
+# animation:  file(1) magic for animation/movie formats
+#
+# animation formats
+# MPEG, FLI, DL originally from vax@ccwf.cc.utexas.edu (VaX#n8)
+# FLC, SGI, Apple originally from Daniel Quinlan (quinlan@yggdrasil.com)
+
+# SGI and Apple formats
+0	string		MOVI		Silicon Graphics movie file
+!:mime	video/x-sgi-movie
+4       string          moov            Apple QuickTime
+!:mime	video/quicktime
+>12     string          mvhd            \b movie (fast start)
+>12     string          mdra            \b URL
+>12     string          cmov            \b movie (fast start, compressed header)
+>12     string          rmra            \b multiple URLs
+4       string          mdat            Apple QuickTime movie (unoptimized)
+!:mime	video/quicktime
+#4       string          wide            Apple QuickTime movie (unoptimized)
+#!:mime	video/quicktime
+#4       string          skip            Apple QuickTime movie (modified)
+#!:mime	video/quicktime
+#4       string          free            Apple QuickTime movie (modified)
+#!:mime	video/quicktime
+4       string          idsc            Apple QuickTime image (fast start)
+!:mime	image/x-quicktime
+#4       string          idat            Apple QuickTime image (unoptimized)
+#!:mime	image/x-quicktime
+4       string          pckg            Apple QuickTime compressed archive
+!:mime	application/x-quicktime-player
+4	string/W	jP		JPEG 2000 image
+!:mime	image/jp2
+4	string		ftyp		ISO Media
+>8	string		isom		\b, MPEG v4 system, version 1
+!:mime	video/mp4
+>8	string		iso2		\b, MPEG v4 system, part 12 revision
+>8	string		mp41		\b, MPEG v4 system, version 1
+!:mime	video/mp4
+>8	string		mp42		\b, MPEG v4 system, version 2
+!:mime	video/mp4
+>8	string		mp7t		\b, MPEG v4 system, MPEG v7 XML
+>8	string		mp7b		\b, MPEG v4 system, MPEG v7 binary XML
+>8	string/W	jp2		\b, JPEG 2000
+!:mime	image/jp2
+>8	string		3ge		\b, MPEG v4 system, 3GPP
+!:mime	video/3gpp
+>8	string		3gg		\b, MPEG v4 system, 3GPP
+!:mime	video/3gpp
+>8	string		3gp		\b, MPEG v4 system, 3GPP
+!:mime	video/3gpp
+>8	string		3gs		\b, MPEG v4 system, 3GPP
+!:mime	video/3gpp
+>8	string		3g2		\b, MPEG v4 system, 3GPP2
+!:mime	video/3gpp2
+>>11	byte		4		\b v4 (H.263/AMR GSM 6.10)
+>>11	byte		5		\b v5 (H.263/AMR GSM 6.10)
+>>11	byte		6		\b v6 (ITU H.264/AMR GSM 6.10)
+>8	string		mmp4		\b, MPEG v4 system, 3GPP Mobile
+!:mime	video/mp4
+>8	string		avc1		\b, MPEG v4 system, 3GPP JVT AVC
+!:mime	video/3gpp
+>8	string/W	M4A		\b, MPEG v4 system, iTunes AAC-LC
+!:mime	audio/mp4
+>8	string/W	M4V		\b, MPEG v4 system, iTunes AVC-LC
+!:mime	video/mp4
+>8	string/W	M4P		\b, MPEG v4 system, iTunes AES encrypted
+>8	string/W	M4B		\b, MPEG v4 system, iTunes bookmarked
+>8	string/W	qt		\b, Apple QuickTime movie
+!:mime	video/quicktime
+
+# MPEG sequences
+# Scans for all common MPEG header start codes
+0	 belong		    0x00000001     
+>4	 byte&0x1F	    0x07	   JVT NAL sequence, H.264 video
+>>5      byte               66             \b, baseline
+>>5      byte               77             \b, main
+>>5      byte               88             \b, extended
+>>7      byte               x              \b @ L %u
+0        belong&0xFFFFFF00  0x00000100     
+>3       byte               0xBA           MPEG sequence
+!:mime  video/mpeg
+>>4      byte               &0x40          \b, v2, program multiplex
+>>4      byte               ^0x40          \b, v1, system multiplex
+>3       byte               0xBB           MPEG sequence, v1/2, multiplex (missing pack header)
+>3       byte&0x1F          0x07           MPEG sequence, H.264 video
+>>4      byte               66             \b, baseline
+>>4      byte               77             \b, main
+>>4      byte               88             \b, extended
+>>6      byte               x              \b @ L %u
+>3       byte               0xB0           MPEG sequence, v4
+!:mime  video/mpeg4-generic
+>>5      belong             0x000001B5
+>>>9     byte               &0x80
+>>>>10   byte&0xF0          16             \b, video
+>>>>10   byte&0xF0          32             \b, still texture
+>>>>10   byte&0xF0          48             \b, mesh
+>>>>10   byte&0xF0          64             \b, face
+>>>9     byte&0xF8          8              \b, video
+>>>9     byte&0xF8          16             \b, still texture
+>>>9     byte&0xF8          24             \b, mesh
+>>>9     byte&0xF8          32             \b, face
+>>4      byte               1              \b, simple @ L1
+>>4      byte               2              \b, simple @ L2
+>>4      byte               3              \b, simple @ L3
+>>4      byte               4              \b, simple @ L0
+>>4      byte               17             \b, simple scalable @ L1
+>>4      byte               18             \b, simple scalable @ L2
+>>4      byte               33             \b, core @ L1
+>>4      byte               34             \b, core @ L2
+>>4      byte               50             \b, main @ L2
+>>4      byte               51             \b, main @ L3
+>>4      byte               53             \b, main @ L4
+>>4      byte               66             \b, n-bit @ L2
+>>4      byte               81             \b, scalable texture @ L1
+>>4      byte               97             \b, simple face animation @ L1
+>>4      byte               98             \b, simple face animation @ L2
+>>4      byte               99             \b, simple face basic animation @ L1
+>>4      byte               100            \b, simple face basic animation @ L2
+>>4      byte               113            \b, basic animation text @ L1
+>>4      byte               114            \b, basic animation text @ L2
+>>4      byte               129            \b, hybrid @ L1
+>>4      byte               130            \b, hybrid @ L2
+>>4      byte               145            \b, advanced RT simple @ L!
+>>4      byte               146            \b, advanced RT simple @ L2
+>>4      byte               147            \b, advanced RT simple @ L3
+>>4      byte               148            \b, advanced RT simple @ L4
+>>4      byte               161            \b, core scalable @ L1
+>>4      byte               162            \b, core scalable @ L2
+>>4      byte               163            \b, core scalable @ L3
+>>4      byte               177            \b, advanced coding efficiency @ L1
+>>4      byte               178            \b, advanced coding efficiency @ L2
+>>4      byte               179            \b, advanced coding efficiency @ L3
+>>4      byte               180            \b, advanced coding efficiency @ L4
+>>4      byte               193            \b, advanced core @ L1
+>>4      byte               194            \b, advanced core @ L2
+>>4      byte               209            \b, advanced scalable texture @ L1
+>>4      byte               210            \b, advanced scalable texture @ L2
+>>4      byte               211            \b, advanced scalable texture @ L3
+>>4      byte               225            \b, simple studio @ L1
+>>4      byte               226            \b, simple studio @ L2
+>>4      byte               227            \b, simple studio @ L3
+>>4      byte               228            \b, simple studio @ L4
+>>4      byte               229            \b, core studio @ L1
+>>4      byte               230            \b, core studio @ L2
+>>4      byte               231            \b, core studio @ L3
+>>4      byte               232            \b, core studio @ L4
+>>4      byte               240            \b, advanced simple @ L0
+>>4      byte               241            \b, advanced simple @ L1
+>>4      byte               242            \b, advanced simple @ L2
+>>4      byte               243            \b, advanced simple @ L3
+>>4      byte               244            \b, advanced simple @ L4
+>>4      byte               245            \b, advanced simple @ L5
+>>4      byte               247            \b, advanced simple @ L3b
+>>4      byte               248            \b, FGS @ L0
+>>4      byte               249            \b, FGS @ L1
+>>4      byte               250            \b, FGS @ L2
+>>4      byte               251            \b, FGS @ L3
+>>4      byte               252            \b, FGS @ L4
+>>4      byte               253            \b, FGS @ L5
+>3       byte               0xB5           MPEG sequence, v4
+!:mime  video/mpeg4-generic
+>>4      byte               &0x80
+>>>5     byte&0xF0          16             \b, video (missing profile header)
+>>>5     byte&0xF0          32             \b, still texture (missing profile header)
+>>>5     byte&0xF0          48             \b, mesh (missing profile header)
+>>>5     byte&0xF0          64             \b, face (missing profile header)
+>>4      byte&0xF8          8              \b, video (missing profile header)
+>>4      byte&0xF8          16             \b, still texture (missing profile header)
+>>4      byte&0xF8          24             \b, mesh (missing profile header)
+>>4      byte&0xF8          32             \b, face (missing profile header)
+>3       byte               0xB3           MPEG sequence
+!:mime  video/mpeg
+>>12     belong             0x000001B8     \b, v1, progressive Y'CbCr 4:2:0 video
+>>12     belong             0x000001B2     \b, v1, progressive Y'CbCr 4:2:0 video
+>>12     belong             0x000001B5     \b, v2,
+>>>16    byte&0x0F          1              \b HP
+>>>16    byte&0x0F          2              \b Spt
+>>>16    byte&0x0F          3              \b SNR
+>>>16    byte&0x0F          4              \b MP
+>>>16    byte&0x0F          5              \b SP
+>>>17    byte&0xF0          64             \b@HL
+>>>17    byte&0xF0          96             \b@H-14
+>>>17    byte&0xF0          128            \b@ML
+>>>17    byte&0xF0          160            \b@LL
+>>>17    byte               &0x08          \b progressive
+>>>17    byte               ^0x08          \b interlaced
+>>>17    byte&0x06          2              \b Y'CbCr 4:2:0 video
+>>>17    byte&0x06          4              \b Y'CbCr 4:2:2 video
+>>>17    byte&0x06          6              \b Y'CbCr 4:4:4 video
+>>11     byte               &0x02
+>>>75    byte               &0x01
+>>>>140  belong             0x000001B8     \b, v1, progressive Y'CbCr 4:2:0 video
+>>>>140  belong             0x000001B2     \b, v1, progressive Y'CbCr 4:2:0 video
+>>>>140  belong             0x000001B5     \b, v2,
+>>>>>144 byte&0x0F          1              \b HP
+>>>>>144 byte&0x0F          2              \b Spt
+>>>>>144 byte&0x0F          3              \b SNR
+>>>>>144 byte&0x0F          4              \b MP
+>>>>>144 byte&0x0F          5              \b SP
+>>>>>145 byte&0xF0          64             \b@HL
+>>>>>145 byte&0xF0          96             \b@H-14
+>>>>>145 byte&0xF0          128            \b@ML
+>>>>>145 byte&0xF0          160            \b@LL
+>>>>>145 byte               &0x08          \b progressive
+>>>>>145 byte               ^0x08          \b interlaced
+>>>>>145 byte&0x06          2              \b Y'CbCr 4:2:0 video
+>>>>>145 byte&0x06          4              \b Y'CbCr 4:2:2 video
+>>>>>145 byte&0x06          6              \b Y'CbCr 4:4:4 video
+>>76    belong             0x000001B8     \b, v1, progressive Y'CbCr 4:2:0 video
+>>76    belong             0x000001B2     \b, v1, progressive Y'CbCr 4:2:0 video
+>>76    belong             0x000001B5     \b, v2,
+>>>80   byte&0x0F          1              \b HP
+>>>80   byte&0x0F          2              \b Spt
+>>>80   byte&0x0F          3              \b SNR
+>>>80   byte&0x0F          4              \b MP
+>>>80   byte&0x0F          5              \b SP
+>>>81   byte&0xF0          64             \b@HL
+>>>81   byte&0xF0          96             \b@H-14
+>>>81   byte&0xF0          128            \b@ML
+>>>81   byte&0xF0          160            \b@LL
+>>>81   byte               &0x08          \b progressive
+>>>81   byte               ^0x08          \b interlaced
+>>>81   byte&0x06          2              \b Y'CbCr 4:2:0 video
+>>>81   byte&0x06          4              \b Y'CbCr 4:2:2 video
+>>>81   byte&0x06          6              \b Y'CbCr 4:4:4 video
+>>4      belong&0xFFFFFF00  0x78043800     \b, HD-TV 1920P
+>>>7     byte&0xF0          0x10           \b, 16:9
+>>4      belong&0xFFFFFF00  0x50002D00     \b, SD-TV 1280I
+>>>7     byte&0xF0          0x10           \b, 16:9
+>>4      belong&0xFFFFFF00  0x30024000     \b, PAL Capture
+>>>7     byte&0xF0          0x10           \b, 4:3
+>>4      beshort&0xFFF0     0x2C00         \b, 4CIF
+>>>5     beshort&0x0FFF     0x01E0         \b NTSC
+>>>5     beshort&0x0FFF     0x0240         \b PAL
+>>>7     byte&0xF0          0x20           \b, 4:3
+>>>7     byte&0xF0          0x30           \b, 16:9
+>>>7     byte&0xF0          0x40           \b, 11:5
+>>>7     byte&0xF0          0x80           \b, PAL 4:3
+>>>7     byte&0xF0          0xC0           \b, NTSC 4:3
+>>4      belong&0xFFFFFF00  0x2801E000     \b, LD-TV 640P
+>>>7     byte&0xF0          0x10           \b, 4:3
+>>4      belong&0xFFFFFF00  0x1400F000     \b, 320x240
+>>>7     byte&0xF0          0x10           \b, 4:3
+>>4      belong&0xFFFFFF00  0x0F00A000     \b, 240x160
+>>>7     byte&0xF0          0x10           \b, 4:3
+>>4      belong&0xFFFFFF00  0x0A007800     \b, 160x120
+>>>7     byte&0xF0          0x10           \b, 4:3
+>>4      beshort&0xFFF0     0x1600         \b, CIF
+>>>5     beshort&0x0FFF     0x00F0         \b NTSC
+>>>5     beshort&0x0FFF     0x0120         \b PAL
+>>>7     byte&0xF0          0x20           \b, 4:3
+>>>7     byte&0xF0          0x30           \b, 16:9
+>>>7     byte&0xF0          0x40           \b, 11:5
+>>>7     byte&0xF0          0x80           \b, PAL 4:3
+>>>7     byte&0xF0          0xC0           \b, NTSC 4:3
+>>>5     beshort&0x0FFF     0x0240         \b PAL 625
+>>>>7    byte&0xF0          0x20           \b, 4:3
+>>>>7    byte&0xF0          0x30           \b, 16:9
+>>>>7    byte&0xF0          0x40           \b, 11:5
+>>4      beshort&0xFFF0     0x2D00         \b, CCIR/ITU
+>>>5     beshort&0x0FFF     0x01E0         \b NTSC 525
+>>>5     beshort&0x0FFF     0x0240         \b PAL 625
+>>>7     byte&0xF0          0x20           \b, 4:3
+>>>7     byte&0xF0          0x30           \b, 16:9
+>>>7     byte&0xF0          0x40           \b, 11:5
+>>4      beshort&0xFFF0     0x1E00         \b, SVCD
+>>>5     beshort&0x0FFF     0x01E0         \b NTSC 525
+>>>5     beshort&0x0FFF     0x0240         \b PAL 625
+>>>7     byte&0xF0          0x20           \b, 4:3
+>>>7     byte&0xF0          0x30           \b, 16:9
+>>>7     byte&0xF0          0x40           \b, 11:5
+>>7      byte&0x0F          1              \b, 23.976 fps
+>>7      byte&0x0F          2              \b, 24 fps
+>>7      byte&0x0F          3              \b, 25 fps
+>>7      byte&0x0F          4              \b, 29.97 fps
+>>7      byte&0x0F          5              \b, 30 fps
+>>7      byte&0x0F          6              \b, 50 fps
+>>7      byte&0x0F          7              \b, 59.94 fps
+>>7      byte&0x0F          8              \b, 60 fps
+>>11     byte               &0x04          \b, Constrained
+
+# MPEG ADTS Audio (*.mpx/mxa/aac)
+# from dreesen@math.fu-berlin.de
+# modified to fully support MPEG ADTS
+
+# MP3, M1A
+# modified by Joerg Jenderek
+# GRR the original test are too common for many DOS files
+# so don't accept as MP3 until we've tested the rate
+0       beshort&0xFFFE  0xFFFA
+# rates
+>2      byte&0xF0       0x10           MPEG ADTS, layer III, v1,  32 kbps
+!:mime	audio/mpeg
+>2      byte&0xF0       0x20           MPEG ADTS, layer III, v1,  40 kbps
+!:mime	audio/mpeg
+>2      byte&0xF0       0x30           MPEG ADTS, layer III, v1,  48 kbps
+!:mime	audio/mpeg
+>2      byte&0xF0       0x40           MPEG ADTS, layer III, v1,  56 kbps
+!:mime	audio/mpeg
+>2      byte&0xF0       0x50           MPEG ADTS, layer III, v1,  64 kbps
+!:mime	audio/mpeg
+>2      byte&0xF0       0x60           MPEG ADTS, layer III, v1,  80 kbps
+!:mime	audio/mpeg
+>2      byte&0xF0       0x70           MPEG ADTS, layer III, v1,  96 kbps
+!:mime	audio/mpeg
+>2      byte&0xF0       0x80           MPEG ADTS, layer III, v1, 112 kbps
+!:mime	audio/mpeg
+>2      byte&0xF0       0x90           MPEG ADTS, layer III, v1, 128 kbps
+!:mime	audio/mpeg
+>2      byte&0xF0       0xA0           MPEG ADTS, layer III, v1, 160 kbps
+!:mime	audio/mpeg
+>2      byte&0xF0       0xB0           MPEG ADTS, layer III, v1, 192 kbps
+!:mime	audio/mpeg
+>2      byte&0xF0       0xC0           MPEG ADTS, layer III, v1, 224 kbps
+!:mime	audio/mpeg
+>2      byte&0xF0       0xD0           MPEG ADTS, layer III, v1, 256 kbps
+!:mime	audio/mpeg
+>2      byte&0xF0       0xE0           MPEG ADTS, layer III, v1, 320 kbps
+!:mime	audio/mpeg
+# timing
+>2      byte&0x0C       0x00           \b, 44.1 kHz
+>2      byte&0x0C       0x04           \b, 48 kHz
+>2      byte&0x0C       0x08           \b, 32 kHz
+# channels/options
+>3      byte&0xC0       0x00           \b, Stereo
+>3      byte&0xC0       0x40           \b, JntStereo
+>3      byte&0xC0       0x80           \b, 2x Monaural
+>3      byte&0xC0       0xC0           \b, Monaural
+#>1     byte            ^0x01          \b, Data Verify
+#>2     byte            &0x02          \b, Packet Pad
+#>2     byte            &0x01          \b, Custom Flag
+#>3     byte            &0x08          \b, Copyrighted
+#>3     byte            &0x04          \b, Original Source
+#>3     byte&0x03       1              \b, NR: 50/15 ms
+#>3     byte&0x03       3              \b, NR: CCIT J.17
+
+# MP2, M1A
+0       beshort&0xFFFE  0xFFFC         MPEG ADTS, layer II, v1
+!:mime	audio/mpeg
+# rates
+>2      byte&0xF0       0x10           \b,  32 kbps
+>2      byte&0xF0       0x20           \b,  48 kbps
+>2      byte&0xF0       0x30           \b,  56 kbps
+>2      byte&0xF0       0x40           \b,  64 kbps
+>2      byte&0xF0       0x50           \b,  80 kbps
+>2      byte&0xF0       0x60           \b,  96 kbps
+>2      byte&0xF0       0x70           \b, 112 kbps
+>2      byte&0xF0       0x80           \b, 128 kbps
+>2      byte&0xF0       0x90           \b, 160 kbps
+>2      byte&0xF0       0xA0           \b, 192 kbps
+>2      byte&0xF0       0xB0           \b, 224 kbps
+>2      byte&0xF0       0xC0           \b, 256 kbps
+>2      byte&0xF0       0xD0           \b, 320 kbps
+>2      byte&0xF0       0xE0           \b, 384 kbps
+# timing
+>2      byte&0x0C       0x00           \b, 44.1 kHz
+>2      byte&0x0C       0x04           \b, 48 kHz
+>2      byte&0x0C       0x08           \b, 32 kHz
+# channels/options
+>3      byte&0xC0       0x00           \b, Stereo
+>3      byte&0xC0       0x40           \b, JntStereo
+>3      byte&0xC0       0x80           \b, 2x Monaural
+>3      byte&0xC0       0xC0           \b, Monaural
+#>1     byte            ^0x01          \b, Data Verify
+#>2     byte            &0x02          \b, Packet Pad
+#>2     byte            &0x01          \b, Custom Flag
+#>3     byte            &0x08          \b, Copyrighted
+#>3     byte            &0x04          \b, Original Source
+#>3     byte&0x03       1              \b, NR: 50/15 ms
+#>3     byte&0x03       3              \b, NR: CCIT J.17
+
+# MPA, M1A
+# updated by Joerg Jenderek
+# GRR the original test are too common for many DOS files, so test 32 <= kbits <= 448
+# GRR this test is still too general as it catches a BOM of UTF-16 files (0xFFFE)
+# FIXME: Almost all little endian UTF-16 text with BOM are clobbered by these entries
+#0	beshort&0xFFFE		0xFFFE	
+#>2	ubyte&0xF0	>0x0F		
+#>>2	ubyte&0xF0	<0xE1		MPEG ADTS, layer I, v1
+## rate
+#>>>2      byte&0xF0       0x10           \b,  32 kbps
+#>>>2      byte&0xF0       0x20           \b,  64 kbps
+#>>>2      byte&0xF0       0x30           \b,  96 kbps
+#>>>2      byte&0xF0       0x40           \b, 128 kbps
+#>>>2      byte&0xF0       0x50           \b, 160 kbps
+#>>>2      byte&0xF0       0x60           \b, 192 kbps
+#>>>2      byte&0xF0       0x70           \b, 224 kbps
+#>>>2      byte&0xF0       0x80           \b, 256 kbps
+#>>>2      byte&0xF0       0x90           \b, 288 kbps
+#>>>2      byte&0xF0       0xA0           \b, 320 kbps
+#>>>2      byte&0xF0       0xB0           \b, 352 kbps
+#>>>2      byte&0xF0       0xC0           \b, 384 kbps
+#>>>2      byte&0xF0       0xD0           \b, 416 kbps
+#>>>2      byte&0xF0       0xE0           \b, 448 kbps
+## timing
+#>>>2      byte&0x0C       0x00           \b, 44.1 kHz
+#>>>2      byte&0x0C       0x04           \b, 48 kHz
+#>>>2      byte&0x0C       0x08           \b, 32 kHz
+## channels/options
+#>>>3      byte&0xC0       0x00           \b, Stereo
+#>>>3      byte&0xC0       0x40           \b, JntStereo
+#>>>3      byte&0xC0       0x80           \b, 2x Monaural
+#>>>3      byte&0xC0       0xC0           \b, Monaural
+##>1     byte            ^0x01          \b, Data Verify
+##>2     byte            &0x02          \b, Packet Pad
+##>2     byte            &0x01          \b, Custom Flag
+##>3     byte            &0x08          \b, Copyrighted
+##>3     byte            &0x04          \b, Original Source
+##>3     byte&0x03       1              \b, NR: 50/15 ms
+##>3     byte&0x03       3              \b, NR: CCIT J.17
+
+# MP3, M2A
+0       beshort&0xFFFE  0xFFF2         MPEG ADTS, layer III, v2
+!:mime	audio/mpeg
+# rate
+>2      byte&0xF0       0x10           \b,   8 kbps
+>2      byte&0xF0       0x20           \b,  16 kbps
+>2      byte&0xF0       0x30           \b,  24 kbps
+>2      byte&0xF0       0x40           \b,  32 kbps
+>2      byte&0xF0       0x50           \b,  40 kbps
+>2      byte&0xF0       0x60           \b,  48 kbps
+>2      byte&0xF0       0x70           \b,  56 kbps
+>2      byte&0xF0       0x80           \b,  64 kbps
+>2      byte&0xF0       0x90           \b,  80 kbps
+>2      byte&0xF0       0xA0           \b,  96 kbps
+>2      byte&0xF0       0xB0           \b, 112 kbps
+>2      byte&0xF0       0xC0           \b, 128 kbps
+>2      byte&0xF0       0xD0           \b, 144 kbps
+>2      byte&0xF0       0xE0           \b, 160 kbps
+# timing
+>2      byte&0x0C       0x00           \b, 22.05 kHz
+>2      byte&0x0C       0x04           \b, 24 kHz
+>2      byte&0x0C       0x08           \b, 16 kHz
+# channels/options
+>3      byte&0xC0       0x00           \b, Stereo
+>3      byte&0xC0       0x40           \b, JntStereo
+>3      byte&0xC0       0x80           \b, 2x Monaural
+>3      byte&0xC0       0xC0           \b, Monaural
+#>1     byte            ^0x01          \b, Data Verify
+#>2     byte            &0x02          \b, Packet Pad
+#>2     byte            &0x01          \b, Custom Flag
+#>3     byte            &0x08          \b, Copyrighted
+#>3     byte            &0x04          \b, Original Source
+#>3     byte&0x03       1              \b, NR: 50/15 ms
+#>3     byte&0x03       3              \b, NR: CCIT J.17
+
+# MP2, M2A
+0       beshort&0xFFFE  0xFFF4         MPEG ADTS, layer II, v2
+# rate 
+>2      byte&0xF0       0x10           \b,   8 kbps
+>2      byte&0xF0       0x20           \b,  16 kbps 
+>2      byte&0xF0       0x30           \b,  24 kbps
+>2      byte&0xF0       0x40           \b,  32 kbps
+>2      byte&0xF0       0x50           \b,  40 kbps
+>2      byte&0xF0       0x60           \b,  48 kbps
+>2      byte&0xF0       0x70           \b,  56 kbps
+>2      byte&0xF0       0x80           \b,  64 kbps
+>2      byte&0xF0       0x90           \b,  80 kbps
+>2      byte&0xF0       0xA0           \b,  96 kbps
+>2      byte&0xF0       0xB0           \b, 112 kbps
+>2      byte&0xF0       0xC0           \b, 128 kbps
+>2      byte&0xF0       0xD0           \b, 144 kbps
+>2      byte&0xF0       0xE0           \b, 160 kbps
+# timing
+>2      byte&0x0C       0x00           \b, 22.05 kHz
+>2      byte&0x0C       0x04           \b, 24 kHz
+>2      byte&0x0C       0x08           \b, 16 kHz
+# channels/options
+>3      byte&0xC0       0x00           \b, Stereo
+>3      byte&0xC0       0x40           \b, JntStereo
+>3      byte&0xC0       0x80           \b, 2x Monaural
+>3      byte&0xC0       0xC0           \b, Monaural
+#>1     byte            ^0x01          \b, Data Verify
+#>2     byte            &0x02          \b, Packet Pad
+#>2     byte            &0x01          \b, Custom Flag
+#>3     byte            &0x08          \b, Copyrighted
+#>3     byte            &0x04          \b, Original Source
+#>3     byte&0x03       1              \b, NR: 50/15 ms
+#>3     byte&0x03       3              \b, NR: CCIT J.17
+
+# MPA, M2A
+0       beshort&0xFFFE  0xFFF6         MPEG ADTS, layer I, v2
+!:mime	audio/mpeg
+# rate
+>2      byte&0xF0       0x10           \b,  32 kbps
+>2      byte&0xF0       0x20           \b,  48 kbps
+>2      byte&0xF0       0x30           \b,  56 kbps
+>2      byte&0xF0       0x40           \b,  64 kbps
+>2      byte&0xF0       0x50           \b,  80 kbps
+>2      byte&0xF0       0x60           \b,  96 kbps
+>2      byte&0xF0       0x70           \b, 112 kbps
+>2      byte&0xF0       0x80           \b, 128 kbps
+>2      byte&0xF0       0x90           \b, 144 kbps
+>2      byte&0xF0       0xA0           \b, 160 kbps
+>2      byte&0xF0       0xB0           \b, 176 kbps
+>2      byte&0xF0       0xC0           \b, 192 kbps
+>2      byte&0xF0       0xD0           \b, 224 kbps
+>2      byte&0xF0       0xE0           \b, 256 kbps
+# timing
+>2      byte&0x0C       0x00           \b, 22.05 kHz
+>2      byte&0x0C       0x04           \b, 24 kHz
+>2      byte&0x0C       0x08           \b, 16 kHz
+# channels/options
+>3      byte&0xC0       0x00           \b, Stereo
+>3      byte&0xC0       0x40           \b, JntStereo
+>3      byte&0xC0       0x80           \b, 2x Monaural
+>3      byte&0xC0       0xC0           \b, Monaural
+#>1     byte            ^0x01          \b, Data Verify
+#>2     byte            &0x02          \b, Packet Pad
+#>2     byte            &0x01          \b, Custom Flag
+#>3     byte            &0x08          \b, Copyrighted
+#>3     byte            &0x04          \b, Original Source
+#>3     byte&0x03       1              \b, NR: 50/15 ms
+#>3     byte&0x03       3              \b, NR: CCIT J.17
+
+# MP3, M25A
+0       beshort&0xFFFE  0xFFE2         MPEG ADTS, layer III,  v2.5
+!:mime	audio/mpeg
+# rate  
+>2      byte&0xF0       0x10           \b,   8 kbps
+>2      byte&0xF0       0x20           \b,  16 kbps
+>2      byte&0xF0       0x30           \b,  24 kbps
+>2      byte&0xF0       0x40           \b,  32 kbps
+>2      byte&0xF0       0x50           \b,  40 kbps
+>2      byte&0xF0       0x60           \b,  48 kbps
+>2      byte&0xF0       0x70           \b,  56 kbps
+>2      byte&0xF0       0x80           \b,  64 kbps
+>2      byte&0xF0       0x90           \b,  80 kbps
+>2      byte&0xF0       0xA0           \b,  96 kbps
+>2      byte&0xF0       0xB0           \b, 112 kbps
+>2      byte&0xF0       0xC0           \b, 128 kbps
+>2      byte&0xF0       0xD0           \b, 144 kbps
+>2      byte&0xF0       0xE0           \b, 160 kbps
+# timing
+>2      byte&0x0C       0x00           \b, 11.025 kHz
+>2      byte&0x0C       0x04           \b, 12 kHz
+>2      byte&0x0C       0x08           \b, 8 kHz
+# channels/options
+>3      byte&0xC0       0x00           \b, Stereo
+>3      byte&0xC0       0x40           \b, JntStereo
+>3      byte&0xC0       0x80           \b, 2x Monaural
+>3      byte&0xC0       0xC0           \b, Monaural
+#>1     byte            ^0x01          \b, Data Verify
+#>2     byte            &0x02          \b, Packet Pad
+#>2     byte            &0x01          \b, Custom Flag
+#>3     byte            &0x08          \b, Copyrighted
+#>3     byte            &0x04          \b, Original Source
+#>3     byte&0x03       1              \b, NR: 50/15 ms
+#>3     byte&0x03       3              \b, NR: CCIT J.17
+
+# AAC (aka MPEG-2 NBC audio) and MPEG-4 audio
+
+# Stored AAC streams (instead of the MP4 format)
+0       string          ADIF           MPEG ADIF, AAC
+!:mime	audio/x-hx-aac-adif
+>4      byte            &0x80
+>>13    byte            &0x10          \b, VBR
+>>13    byte            ^0x10          \b, CBR
+>>16    byte&0x1E       0x02           \b, single stream
+>>16    byte&0x1E       0x04           \b, 2 streams
+>>16    byte&0x1E       0x06           \b, 3 streams
+>>16    byte            &0x08          \b, 4 or more streams
+>>16    byte            &0x10          \b, 8 or more streams
+>>4    byte            &0x80          \b, Copyrighted
+>>13   byte            &0x40          \b, Original Source
+>>13   byte            &0x20          \b, Home Flag
+>4      byte            ^0x80
+>>4     byte            &0x10          \b, VBR
+>>4     byte            ^0x10          \b, CBR
+>>7     byte&0x1E       0x02           \b, single stream
+>>7     byte&0x1E       0x04           \b, 2 streams
+>>7     byte&0x1E       0x06           \b, 3 streams
+>>7     byte            &0x08          \b, 4 or more streams
+>>7     byte            &0x10          \b, 8 or more streams
+>>4    byte            &0x40          \b, Original Stream(s)
+>>4    byte            &0x20          \b, Home Source
+
+# Live or stored single AAC stream (used with MPEG-2 systems)
+0       beshort&0xFFF6  0xFFF0         MPEG ADTS, AAC
+!:mime	audio/x-hx-aac-adts
+>1      byte            &0x08          \b, v2
+>1      byte            ^0x08          \b, v4
+# profile
+>>2     byte            &0xC0          \b LTP
+>2      byte&0xc0       0x00           \b Main
+>2      byte&0xc0       0x40           \b LC
+>2      byte&0xc0       0x80           \b SSR
+# timing
+>2      byte&0x3c       0x00           \b, 96 kHz
+>2      byte&0x3c       0x04           \b, 88.2 kHz
+>2      byte&0x3c       0x08           \b, 64 kHz
+>2      byte&0x3c       0x0c           \b, 48 kHz
+>2      byte&0x3c       0x10           \b, 44.1 kHz
+>2      byte&0x3c       0x14           \b, 32 kHz
+>2      byte&0x3c       0x18           \b, 24 kHz
+>2      byte&0x3c       0x1c           \b, 22.05 kHz
+>2      byte&0x3c       0x20           \b, 16 kHz
+>2      byte&0x3c       0x24           \b, 12 kHz
+>2      byte&0x3c       0x28           \b, 11.025 kHz
+>2      byte&0x3c       0x2c           \b, 8 kHz
+# channels
+>2      beshort&0x01c0  0x0040         \b, monaural
+>2      beshort&0x01c0  0x0080         \b, stereo
+>2      beshort&0x01c0  0x00c0         \b, stereo + center
+>2      beshort&0x01c0  0x0100         \b, stereo+center+LFE
+>2      beshort&0x01c0  0x0140         \b, surround
+>2      beshort&0x01c0  0x0180         \b, surround + LFE
+>2      beshort         &0x01C0        \b, surround + side
+#>1     byte            ^0x01           \b, Data Verify
+#>2     byte            &0x02           \b, Custom Flag
+#>3     byte            &0x20           \b, Original Stream
+#>3     byte            &0x10           \b, Home Source
+#>3     byte            &0x08           \b, Copyrighted
+
+# Live MPEG-4 audio streams (instead of RTP FlexMux)
+0       beshort&0xFFE0  0x56E0         MPEG-4 LOAS
+!:mime	audio/x-mp4a-latm
+#>1     beshort&0x1FFF  x              \b, %u byte packet
+>3      byte&0xE0       0x40
+>>4     byte&0x3C       0x04           \b, single stream
+>>4     byte&0x3C       0x08           \b, 2 streams
+>>4     byte&0x3C       0x0C           \b, 3 streams
+>>4     byte            &0x08          \b, 4 or more streams
+>>4     byte            &0x20          \b, 8 or more streams
+>3      byte&0xC0       0
+>>4     byte&0x78       0x08           \b, single stream
+>>4     byte&0x78       0x10           \b, 2 streams
+>>4     byte&0x78       0x18           \b, 3 streams
+>>4     byte            &0x20          \b, 4 or more streams
+>>4     byte            &0x40          \b, 8 or more streams
+# This magic isn't strong enough (matches plausible ISO-8859-1 text)
+#0       beshort         0x4DE1         MPEG-4 LO-EP audio stream
+#!:mime	audio/x-mp4a-latm
+
+# Summary: FLI animation format
+# Created by: Daniel Quinlan <quinlan@yggdrasil.com>
+# Modified by (1): Abel Cheung <abelcheung@gmail.com> (avoid over-generic detection)
+4	leshort		0xAF11
+# standard FLI always has 320x200 resolution and 8 bit color
+>8	leshort		320
+>>10	leshort		200
+>>>12	leshort		8			FLI animation, 320x200x8
+!:mime	video/x-fli
+>>>>6	leshort		x			\b, %d frames
+# frame speed is multiple of 1/70s
+>>>>16	leshort		x			\b, %d/70s per frame
+
+# Summary: FLC animation format
+# Created by: Daniel Quinlan <quinlan@yggdrasil.com>
+# Modified by (1): Abel Cheung <abelcheung@gmail.com> (avoid over-generic detection)
+4	leshort		0xAF12
+# standard FLC always use 8 bit color
+>12	leshort		8			FLC animation
+!:mime	video/x-flc
+>>8	leshort		x			\b, %d
+>>10	leshort		x			\bx%dx8
+>>6	uleshort	x			\b, %d frames
+>>16	uleshort	x			\b, %dms per frame
+
+# DL animation format
+# XXX - collision with most `mips' magic
+#
+# I couldn't find a real magic number for these, however, this
+# -appears- to work.  Note that it might catch other files, too, so be
+# careful!
+#
+# Note that title and author appear in the two 20-byte chunks
+# at decimal offsets 2 and 22, respectively, but they are XOR'ed with
+# 255 (hex FF)!  The DL format is really bad.
+#
+#0	byte	1	DL version 1, medium format (160x100, 4 images/screen)
+#!:mime	video/x-unknown
+#>42	byte	x	- %d screens,
+#>43	byte	x	%d commands
+#0	byte	2	DL version 2
+#!:mime	video/x-unknown
+#>1	byte	1	- large format (320x200,1 image/screen),
+#>1	byte	2	- medium format (160x100,4 images/screen),
+#>1	byte	>2	- unknown format,
+#>42	byte	x	%d screens,
+#>43	byte	x	%d commands
+# Based on empirical evidence, DL version 3 have several nulls following the
+# \003.  Most of them start with non-null values at hex offset 0x34 or so.
+#0	string	\3\0\0\0\0\0\0\0\0\0\0\0	DL version 3
+
+# iso 13818 transport stream
+#
+# from Oskar Schirmer <schirmer@scara.com> Feb 3, 2001 (ISO 13818.1)
+# (the following is a little bit restrictive and works fine for a stream
+#  that starts with PAT properly. it won't work for stream data, that is
+#  cut from an input device data right in the middle, but this shouldn't
+#  disturb)
+# syncbyte      8 bit	0x47
+# error_ind     1 bit	-
+# payload_start 1 bit	1
+# priority      1 bit	-
+# PID          13 bit	0x0000
+# scrambling    2 bit	-
+# adaptfld_ctrl 2 bit	1 or 3
+# conti_count   4 bit	0
+0	belong&0xFF5FFF1F	0x47400010	MPEG transport stream data
+>188	byte			!0x47		CORRUPTED
+
+# DIF digital video file format <mpruett@sgi.com>
+0	belong&0xffffff00	0x1f070000      DIF
+>4	byte			&0x01		(DVCPRO) movie file
+>4	byte			^0x01		(DV) movie file
+>3	byte			&0x80		(PAL)
+>3	byte			^0x80		(NTSC)
+
+# Microsoft Advanced Streaming Format (ASF) <mpruett@sgi.com>
+0	belong			0x3026b275	Microsoft ASF
+!:mime  video/x-ms-asf
+
+# MNG Video Format, <URL:http://www.libpng.org/pub/mng/spec/>
+0	string			\x8aMNG		MNG video data,
+!:mime	video/x-mng
+>4	belong			!0x0d0a1a0a	CORRUPTED,
+>4	belong			0x0d0a1a0a
+>>16    belong	x				%ld x
+>>20    belong	x				%ld
+
+# JNG Video Format, <URL:http://www.libpng.org/pub/mng/spec/>
+0	string			\x8bJNG		JNG video data,
+!:mime	video/x-jng
+>4	belong			!0x0d0a1a0a	CORRUPTED,
+>4	belong			0x0d0a1a0a
+>>16    belong	x				%ld x
+>>20    belong	x				%ld
+
+# Vivo video (Wolfram Kleff)
+3	string		\x0D\x0AVersion:Vivo	Vivo video data
+
+# VRML (Virtual Reality Modelling Language)
+0       string/w        #VRML\ V1.0\ ascii	VRML 1 file
+!:mime	model/vrml
+0	string/w	#VRML\ V2.0\ utf8	ISO/IEC 14772 VRML 97 file
+!:mime	model/vrml
+
+# X3D (Extensible 3D) [http://www.web3d.org/specifications/x3d-3.0.dtd]
+# From Michel Briand <michelbriand@free.fr>
+0	string/t		\<?xml\ version="
+!:strength +1
+>20	search/1000/cw  \<!DOCTYPE\ X3D		X3D (Extensible 3D) model xml text
+!:mime model/x3d
+
+#---------------------------------------------------------------------------
+# HVQM4: compressed movie format designed by Hudson for Nintendo GameCube
+# From Mark Sheppard <msheppard@climax.co.uk>, 2002-10-03
+#
+0	string		HVQM4		%s
+>6	string		>\0		v%s
+>0	byte		x		GameCube movie,
+>0x34	ubeshort	x		%d x
+>0x36	ubeshort	x		%d,
+>0x26	ubeshort	x		%dµs,
+>0x42	ubeshort	0		no audio
+>0x42	ubeshort	>0		%dHz audio
+
+# From: "Stefan A. Haubenthal" <polluks@web.de>
+0	string		DVDVIDEO-VTS	Video title set,
+>0x21	byte		x		v%x
+0	string		DVDVIDEO-VMG	Video manager,
+>0x21	byte		x		v%x
+
+# From: Behan Webster <behanw@websterwood.com>
+# NuppelVideo used by Mythtv (*.nuv)
+# Note: there are two identical stanzas here differing only in the
+# initial string matched. It used to be done with a regex, but we're
+# trying to get rid of those.
+0	string		NuppelVideo	MythTV NuppelVideo
+>12	string		x		v%s
+>20	lelong		x		(%d
+>24	lelong		x		\bx%d),
+>36	string		P		\bprogressive,
+>36	string		I		\binterlaced,
+>40	ledouble	x		\baspect:%.2f,
+>48	ledouble	x		\bfps:%.2f
+0	string		MythTV		MythTV NuppelVideo
+>12	string		x		v%s
+>20	lelong		x		(%d
+>24	lelong		x		\bx%d),
+>36	string		P		\bprogressive,
+>36	string		I		\binterlaced,
+>40	ledouble	x		\baspect:%.2f,
+>48	ledouble	x		\bfps:%.2f
+
+#						MPEG file
+# MPEG sequences
+# FIXME: This section is from the old magic.mime file and needs integrating with the rest
+0       belong             0x000001BA
+>4      byte               &0x40
+!:mime	video/mp2p
+>4      byte               ^0x40
+!:mime	video/mpeg
+0       belong             0x000001BB
+!:mime	video/mpeg
+0       belong             0x000001B0
+!:mime	video/mp4v-es
+0       belong             0x000001B5
+!:mime	video/mp4v-es
+0       belong             0x000001B3
+!:mime	video/mpv
+0       belong&0xFF5FFF1F  0x47400010
+!:mime	video/mp2t
+0       belong             0x00000001
+>4      byte&0x1F	   0x07
+!:mime	video/h264
+
+# Type: Bink Video
+# Extension: .bik
+# URL:  http://wiki.multimedia.cx/index.php?title=Bink_Container
+# From: <hoehle@users.sourceforge.net>  2008-07-18
+0	string		BIK	Bink Video
+>3	regex		=[a-z]	rev.%s
+#>4	ulelong		x	size %d
+>20	ulelong		x	\b, %d
+>24	ulelong		x	\bx%d
+>8	ulelong		x	\b, %d frames
+>32	ulelong		x	at rate %d/
+>28	ulelong		>1	\b%d
+>40	ulelong		=0	\b, no audio
+>40	ulelong		!0	\b, %d audio track
+>>40	ulelong		!1	\bs
+# follow properties of the first audio track only
+>>48	uleshort	x	%dHz
+>>51	byte&0x20	0	mono
+>>51	byte&0x20	!0	stereo
+#>>51	byte&0x10	0	FFT
+#>>51	byte&0x10	!0	DCT
+
+# Type:	NUT Container
+# URL:	http://wiki.multimedia.cx/index.php?title=NUT
+# From:	Adam Buchbinder <adam.buchbinder@gmail.com>
+0	string	nut/multimedia\ container\0	NUT multimedia container
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/apl b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/apl
new file mode 100755
index 0000000000000000000000000000000000000000..d717e377dc3e92480aa72f882a7c7fcad4a7ddb7
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/apl
@@ -0,0 +1,7 @@
+
+#------------------------------------------------------------------------------
+# $File: apl,v 1.6 2009/09/19 16:28:07 christos Exp $
+# apl:  file(1) magic for APL (see also "pdp" and "vax" for other APL
+#       workspaces)
+#
+0	long		0100554		APL workspace (Ken's original?)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/apple b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/apple
new file mode 100755
index 0000000000000000000000000000000000000000..dad3eee9258d3fe5d459077c588656f3810118c9
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/apple
@@ -0,0 +1,251 @@
+
+#------------------------------------------------------------------------------
+# $File: apple,v 1.24 2010/11/25 15:00:12 christos Exp $
+# apple:  file(1) magic for Apple file formats
+#
+0	search/1/t	FiLeStArTfIlEsTaRt	binscii (apple ][) text
+0	string		\x0aGL			Binary II (apple ][) data
+0	string		\x76\xff		Squeezed (apple ][) data
+0	string		NuFile			NuFile archive (apple ][) data
+0	string		N\xf5F\xe9l\xe5		NuFile archive (apple ][) data
+0	belong		0x00051600		AppleSingle encoded Macintosh file
+0	belong		0x00051607		AppleDouble encoded Macintosh file
+
+# Type: Apple Emulator 2IMG format
+# From: Radek Vokal <rvokal@redhat.com>
+0	string		2IMG	Apple ][ 2IMG Disk Image
+>4	string		XGS!	\b, XGS
+>4	string		CTKG	\b, Catakig
+>4	string		ShIm	\b, Sheppy's ImageMaker
+>4	string		WOOF	\b, Sweet 16
+>4	string		B2TR	\b, Bernie ][ the Rescue
+>4	string		!nfc	\b, ASIMOV2
+>4	string		x	\b, Unknown Format
+>0xc	byte		00	\b, DOS 3.3 sector order
+>>0x10	byte		00	\b, Volume 254
+>>0x10	byte&0x7f	x	\b, Volume %u
+>0xc	byte		01	\b, ProDOS sector order
+>>0x14	short		x	\b, %u Blocks
+>0xc	byte		02	\b, NIB data
+
+# magic for Newton PDA package formats
+# from Ruda Moura <ruda@helllabs.org>
+0	string	package0	Newton package, NOS 1.x,
+>12	belong	&0x80000000	AutoRemove,
+>12	belong	&0x40000000	CopyProtect,
+>12	belong	&0x10000000	NoCompression,
+>12	belong	&0x04000000	Relocation,
+>12	belong	&0x02000000	UseFasterCompression,
+>16	belong	x		version %d
+
+0	string	package1	Newton package, NOS 2.x,
+>12	belong	&0x80000000	AutoRemove,
+>12	belong	&0x40000000	CopyProtect,
+>12	belong	&0x10000000	NoCompression,
+>12	belong	&0x04000000	Relocation,
+>12	belong	&0x02000000	UseFasterCompression,
+>16	belong	x		version %d
+
+0	string	package4	Newton package,
+>8	byte	8		NOS 1.x,
+>8	byte	9		NOS 2.x,
+>12	belong	&0x80000000	AutoRemove,
+>12	belong	&0x40000000	CopyProtect,
+>12	belong	&0x10000000	NoCompression,
+
+# The following entries for the Apple II are for files that have
+# been transferred as raw binary data from an Apple, without having
+# been encapsulated by any of the above archivers.
+#
+# In general, Apple II formats are hard to identify because Apple DOS
+# and especially Apple ProDOS have strong typing in the file system and
+# therefore programmers never felt much need to include type information
+# in the files themselves.
+#
+# Eric Fischer <enf@pobox.com>
+
+# AppleWorks word processor:
+#
+# This matches the standard tab stops for an AppleWorks file, but if
+# a file has a tab stop set in the first four columns this will fail.
+#
+# The "O" is really the magic number, but that's so common that it's
+# necessary to check the tab stops that follow it to avoid false positives.
+
+4       string          O====   AppleWorks word processor data
+>85     byte&0x01       >0      \b, zoomed
+>90     byte&0x01       >0      \b, paginated
+>92     byte&0x01       >0      \b, with mail merge
+#>91    byte            x       \b, left margin %d
+
+# AppleWorks database:
+#
+# This isn't really a magic number, but it's the closest thing to one
+# that I could find.  The 1 and 2 really mean "order in which you defined
+# categories" and "left to right, top to bottom," respectively; the D and R
+# mean that the cursor should move either down or right when you press Return.
+
+#30	string		\x01D	AppleWorks database data
+#30	string		\x02D	AppleWorks database data
+#30	string		\x01R	AppleWorks database data
+#30	string		\x02R	AppleWorks database data
+
+# AppleWorks spreadsheet:
+#
+# Likewise, this isn't really meant as a magic number.  The R or C means
+# row- or column-order recalculation; the A or M means automatic or manual
+# recalculation.
+
+#131	string		RA	AppleWorks spreadsheet data
+#131	string		RM	AppleWorks spreadsheet data
+#131	string		CA	AppleWorks spreadsheet data
+#131	string		CM	AppleWorks spreadsheet data
+
+# Applesoft BASIC:
+#
+# This is incredibly sloppy, but will be true if the program was
+# written at its usual memory location of 2048 and its first line
+# number is less than 256.  Yuck.
+
+0       belong&0xff00ff 0x80000 Applesoft BASIC program data
+#>2     leshort         x       \b, first line number %d
+
+# ORCA/EZ assembler:
+# 
+# This will not identify ORCA/M source files, since those have
+# some sort of date code instead of the two zero bytes at 6 and 7
+# XXX Conflicts with ELF
+#4       belong&0xff00ffff       0x01000000      ORCA/EZ assembler source data
+#>5      byte                    x               \b, build number %d
+
+# Broderbund Fantavision
+#
+# I don't know what these values really mean, but they seem to recur.
+# Will they cause too many conflicts?
+
+# Probably :-)
+#2	belong&0xFF00FF		0x040008	Fantavision movie data
+
+# Some attempts at images.
+#
+# These are actually just bit-for-bit dumps of the frame buffer, so
+# there's really no reasonably way to distinguish them except for their
+# address (if preserved) -- 8192 or 16384 -- and their length -- 8192
+# or, occasionally, 8184.
+#
+# Nevertheless this will manage to catch a lot of images that happen
+# to have a solid-colored line at the bottom of the screen.
+
+# GRR: Magic too weak
+#8144	string	\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F	Apple II image with white background
+#8144	string	\x55\x2A\x55\x2A\x55\x2A\x55\x2A	Apple II image with purple background
+#8144	string	\x2A\x55\x2A\x55\x2A\x55\x2A\x55	Apple II image with green background
+#8144	string	\xD5\xAA\xD5\xAA\xD5\xAA\xD5\xAA	Apple II image with blue background
+#8144	string	\xAA\xD5\xAA\xD5\xAA\xD5\xAA\xD5	Apple II image with orange background
+
+# Beagle Bros. Apple Mechanic fonts
+
+0	belong&0xFF00FFFF	0x6400D000	Apple Mechanic font
+
+# Apple Universal Disk Image Format (UDIF) - dmg files.
+# From Johan Gade.
+# These entries are disabled for now until we fix the following issues.
+#
+# Note there might be some problems with the "VAX COFF executable" 
+# entry. Note this entry should be placed before the mac filesystem section, 
+# particularly the "Apple Partition data" entry.
+#
+# The intended meaning of these tests is, that the file is only of the 
+# specified type if both of the lines are correct - i.e. if the first
+# line matches and the second doesn't then it is not of that type.
+#
+#0	long	0x7801730d
+#>4	long	0x62626060	UDIF read-only zlib-compressed image (UDZO)
+#
+# Note that this entry is recognized correctly by the "Apple Partition 
+# data" entry - however since this entry is more specific - this
+# information seems to be more useful.
+#0	long	0x45520200
+#>0x410	string	disk\ image	UDIF read/write image (UDRW)
+
+# From: Toby Peterson <toby@apple.com>
+0	string	bplist00	Apple binary property list
+
+# Apple binary property list (bplist)
+#  Assumes version bytes are hex.
+#  Provides content hints for version 0 files. Assumes that the root
+#  object is the first object (true for CoreFoundation implementation).
+# From: David Remahl <dremahl@apple.com>
+0		string	bplist
+>6		byte	x	\bCoreFoundation binary property list data, version 0x%c
+>>7		byte	x	\b%c
+>6		string		00		\b
+>>8		byte&0xF0	0x00	\b
+>>>8	byte&0x0F	0x00	\b, root type: null
+>>>8	byte&0x0F	0x08	\b, root type: false boolean
+>>>8	byte&0x0F	0x09	\b, root type: true boolean
+>>8		byte&0xF0	0x10	\b, root type: integer
+>>8		byte&0xF0	0x20	\b, root type: real
+>>8		byte&0xF0	0x30	\b, root type: date
+>>8		byte&0xF0	0x40    \b, root type: data
+>>8		byte&0xF0	0x50	\b, root type: ascii string
+>>8		byte&0xF0	0x60	\b, root type: unicode string
+>>8		byte&0xF0	0x80	\b, root type: uid (CORRUPT)
+>>8		byte&0xF0	0xa0	\b, root type: array
+>>8		byte&0xF0	0xd0	\b, root type: dictionary
+
+# Apple/NeXT typedstream data
+#  Serialization format used by NeXT and Apple for various
+#  purposes in YellowStep/Cocoa, including some nib files.
+# From: David Remahl <dremahl@apple.com>
+2		string		typedstream	NeXT/Apple typedstream data, big endian
+>0		byte		x		\b, version %hhd
+>0		byte		<5		\b
+>>13	byte		0x81	\b
+>>>14	ubeshort	x		\b, system %hd
+2		string		streamtyped NeXT/Apple typedstream data, little endian
+>0		byte		x		\b, version %hhd
+>0		byte		<5		\b
+>>13	byte		0x81	\b
+>>>14	uleshort	x		\b, system %hd
+
+#------------------------------------------------------------------------------
+# CAF: Apple CoreAudio File Format
+#
+# Container format for high-end audio purposes.
+# From: David Remahl <dremahl@apple.com>
+#
+0	string		caff		CoreAudio Format audio file
+>4	beshort		<10		version %d
+>6	beshort		x
+
+
+#------------------------------------------------------------------------------
+# Keychain database files
+0	string		kych		Mac OS X Keychain File
+
+#------------------------------------------------------------------------------
+# Code Signing related file types
+0	belong		0xfade0c00	Mac OS X Code Requirement
+>8	belong		1			(opExpr)
+>4	belong		x			- %d bytes
+
+0	belong		0xfade0c01	Mac OS X Code Requirement Set
+>8	belong		>1			containing %d items
+>4	belong		x			- %d bytes
+
+0	belong		0xfade0c02	Mac OS X Code Directory
+>8	belong		x			version %x
+>12	belong		>0			flags 0x%x
+>4	belong		x			- %d bytes
+
+0	belong		0xfade0cc0	Mac OS X Detached Code Signature (non-executable)
+>4	belong		x			- %d bytes
+
+0	belong		0xfade0cc1	Mac OS X Detached Code Signature
+>8	belong		>1			(%d elements)
+>4	belong		x			- %d bytes
+
+# From: "Nelson A. de Oliveira" <naoliv@gmail.com>
+# .vdi
+4	string innotek\ VirtualBox\ Disk\ Image %s
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/applix b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/applix
new file mode 100755
index 0000000000000000000000000000000000000000..f3f362eec7739f4982044adacf283fc512341dd3
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/applix
@@ -0,0 +1,13 @@
+
+#------------------------------------------------------------------------------
+# $File: applix,v 1.5 2009/09/19 16:28:08 christos Exp $
+# applix:  file(1) magic for Applixware
+# From: Peter Soos <sp@osb.hu>
+#
+0	string		*BEGIN		Applixware
+>7	string		WORDS			Words Document
+>7	string		GRAPHICS		Graphic
+>7	string		RASTER			Bitmap
+>7	string		SPREADSHEETS		Spreadsheet
+>7	string		MACRO			Macro
+>7	string		BUILDER			Builder Object
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/archive b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/archive
new file mode 100755
index 0000000000000000000000000000000000000000..5bf66e0aaeeaea2d66c3fb54dbd2d2f05b0397e5
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/archive
@@ -0,0 +1,892 @@
+#------------------------------------------------------------------------------
+# $File: archive,v 1.67 2011/07/12 11:31:09 rrt Exp $
+# archive:  file(1) magic for archive formats (see also "msdos" for self-
+#           extracting compressed archives)
+#
+# cpio, ar, arc, arj, hpack, lha/lharc, rar, squish, uc2, zip, zoo, etc.
+# pre-POSIX "tar" archives are handled in the C code.
+
+# POSIX tar archives
+257	string		ustar\0		POSIX tar archive
+!:mime	application/x-tar # encoding: posix
+257	string		ustar\040\040\0	GNU tar archive
+!:mime	application/x-tar # encoding: gnu
+
+# cpio archives
+#
+# Yes, the top two "cpio archive" formats *are* supposed to just be "short".
+# The idea is to indicate archives produced on machines with the same
+# byte order as the machine running "file" with "cpio archive", and
+# to indicate archives produced on machines with the opposite byte order
+# from the machine running "file" with "byte-swapped cpio archive".
+#
+# The SVR4 "cpio(4)" hints that there are additional formats, but they
+# are defined as "short"s; I think all the new formats are
+# character-header formats and thus are strings, not numbers.
+0	short		070707		cpio archive
+!:mime	application/x-cpio
+0	short		0143561		byte-swapped cpio archive
+!:mime	application/x-cpio # encoding: swapped
+0	string		070707		ASCII cpio archive (pre-SVR4 or odc)
+0	string		070701		ASCII cpio archive (SVR4 with no CRC)
+0	string		070702		ASCII cpio archive (SVR4 with CRC)
+
+# Debian package (needs to go before regular portable archives)
+#
+0	string		=!<arch>\ndebian
+!:mime	application/x-debian-package
+>8	string		debian-split	part of multipart Debian package
+>8	string		debian-binary	Debian binary package
+>8	string		!debian
+>68	string		>\0		(format %s)
+# These next two lines do not work, because a bzip2 Debian archive
+# still uses gzip for the control.tar (first in the archive).  Only
+# data.tar varies, and the location of its filename varies too.
+# file/libmagic does not current have support for ascii-string based
+# (offsets) as of 2005-09-15.
+#>81	string		bz2		\b, uses bzip2 compression
+#>84	string		gz		\b, uses gzip compression
+#>136	ledate		x		created: %s
+
+# other archives
+0	long		0177555		very old archive
+0	short		0177555		very old PDP-11 archive
+0	long		0177545		old archive
+0	short		0177545		old PDP-11 archive
+0	long		0100554		apl workspace
+0	string		=<ar>		archive
+!:mime	application/x-archive
+
+# MIPS archive (needs to go before regular portable archives)
+#
+0	string	=!<arch>\n__________E	MIPS archive
+>20	string	U			with MIPS Ucode members
+>21	string	L			with MIPSEL members
+>21	string	B			with MIPSEB members
+>19	string	L			and an EL hash table
+>19	string	B			and an EB hash table
+>22	string	X			-- out of date
+
+0	search/1	-h-		Software Tools format archive text
+
+#
+# XXX - why are there multiple <ar> thingies?  Note that 0x213c6172 is
+# "!<ar", so, for new-style (4.xBSD/SVR2andup) archives, we have:
+#
+# 0	string		=!<arch>		current ar archive
+# 0	long		0x213c6172	archive file
+#
+# and for SVR1 archives, we have:
+#
+# 0	string		\<ar>		System V Release 1 ar archive
+# 0	string		=<ar>		archive
+#
+# XXX - did Aegis really store shared libraries, breakpointed modules,
+# and absolute code program modules in the same format as new-style
+# "ar" archives?
+#
+0	string		=!<arch>		current ar archive
+!:mime	application/x-archive
+>8	string		__.SYMDEF	random library
+>0	belong		=65538		- pre SR9.5
+>0	belong		=65539		- post SR9.5
+>0	beshort		2		- object archive
+>0	beshort		3		- shared library module
+>0	beshort		4		- debug break-pointed module
+>0	beshort		5		- absolute code program module
+0	string		\<ar>		System V Release 1 ar archive
+0	string		=<ar>		archive
+#
+# XXX - from "vax", which appears to collect a bunch of byte-swapped
+# thingies, to help you recognize VAX files on big-endian machines;
+# with "leshort", "lelong", and "string", that's no longer necessary....
+#
+0	belong		0x65ff0000	VAX 3.0 archive
+0	belong		0x3c61723e	VAX 5.0 archive
+#
+0	long		0x213c6172	archive file
+0	lelong		0177555		very old VAX archive
+0	leshort		0177555		very old PDP-11 archive
+#
+# XXX - "pdp" claims that 0177545 can have an __.SYMDEF member and thus
+# be a random library (it said 0xff65 rather than 0177545).
+#
+0	lelong		0177545		old VAX archive
+>8	string		__.SYMDEF	random library
+0	leshort		0177545		old PDP-11 archive
+>8	string		__.SYMDEF	random library
+#
+# From "pdp" (but why a 4-byte quantity?)
+#
+0	lelong		0x39bed		PDP-11 old archive
+0	lelong		0x39bee		PDP-11 4.0 archive
+
+# ARC archiver, from Daniel Quinlan (quinlan@yggdrasil.com)
+#
+# The first byte is the magic (0x1a), byte 2 is the compression type for
+# the first file (0x01 through 0x09), and bytes 3 to 15 are the MS-DOS
+# filename of the first file (null terminated).  Since some types collide
+# we only test some types on basis of frequency: 0x08 (83%), 0x09 (5%),
+# 0x02 (5%), 0x03 (3%), 0x04 (2%), 0x06 (2%).  0x01 collides with terminfo.
+0	lelong&0x8080ffff	0x0000081a	ARC archive data, dynamic LZW
+!:mime	application/x-arc
+0	lelong&0x8080ffff	0x0000091a	ARC archive data, squashed
+!:mime	application/x-arc
+0	lelong&0x8080ffff	0x0000021a	ARC archive data, uncompressed
+!:mime	application/x-arc
+0	lelong&0x8080ffff	0x0000031a	ARC archive data, packed
+!:mime	application/x-arc
+0	lelong&0x8080ffff	0x0000041a	ARC archive data, squeezed
+!:mime	application/x-arc
+0	lelong&0x8080ffff	0x0000061a	ARC archive data, crunched
+!:mime	application/x-arc
+# [JW] stuff taken from idarc, obviously ARC successors:
+0	lelong&0x8080ffff	0x00000a1a	PAK archive data
+!:mime	application/x-arc
+0	lelong&0x8080ffff	0x0000141a	ARC+ archive data
+!:mime	application/x-arc
+0	lelong&0x8080ffff	0x0000481a	HYP archive data
+!:mime	application/x-arc
+
+# Acorn archive formats (Disaster prone simpleton, m91dps@ecs.ox.ac.uk)
+# I can't create either SPARK or ArcFS archives so I have not tested this stuff
+# [GRR:  the original entries collide with ARC, above; replaced with combined
+#  version (not tested)]
+#0	byte		0x1a		RISC OS archive (spark format)
+0	string		\032archive	RISC OS archive (ArcFS format)
+0       string          Archive\000     RISC OS archive (ArcFS format)
+
+# All these were taken from idarc, many could not be verified. Unfortunately,
+# there were many low-quality sigs, i.e. easy to trigger false positives.
+# Please notify me of any real-world fishy/ambiguous signatures and I'll try
+# to get my hands on the actual archiver and see if I find something better. [JW]
+# probably many can be enhanced by finding some 0-byte or control char near the start
+
+# idarc calls this Crush/Uncompressed... *shrug*
+0	string	CRUSH Crush archive data
+# Squeeze It (.sqz)
+0	string	HLSQZ Squeeze It archive data
+# SQWEZ
+0	string	SQWEZ SQWEZ archive data
+# HPack (.hpk)
+0	string	HPAK HPack archive data
+# HAP
+0	string	\x91\x33HF HAP archive data
+# MD/MDCD
+0	string	MDmd MDCD archive data
+# LIM
+0	string	LIM\x1a LIM archive data
+# SAR
+3	string	LH5 SAR archive data
+# BSArc/BS2
+0	string	\212\3SB \0 BSArc/BS2 archive data
+# MAR
+2	string	=-ah MAR archive data
+# ACB
+0	belong&0x00f800ff	0x00800000 ACB archive data
+# CPZ
+# TODO, this is what idarc says: 0	string	\0\0\0 CPZ archive data
+# JRC
+0	string	JRchive JRC archive data
+# Quantum
+0	string	DS\0 Quantum archive data
+# ReSOF
+0	string	PK\3\6 ReSOF archive data
+# QuArk
+0	string	7\4 QuArk archive data
+# YAC
+14	string	YC YAC archive data
+# X1
+0	string	X1 X1 archive data
+0	string	XhDr X1 archive data
+# CDC Codec (.dqt)
+0	belong&0xffffe000	0x76ff2000 CDC Codec archive data
+# AMGC
+0	string	\xad6" AMGC archive data
+# NuLIB
+0	string	NõFélå NuLIB archive data
+# PakLeo
+0	string	LEOLZW PAKLeo archive data
+# ChArc
+0	string	SChF ChArc archive data
+# PSA
+0	string	PSA PSA archive data
+# CrossePAC
+0	string	DSIGDCC CrossePAC archive data
+# Freeze
+0	string	\x1f\x9f\x4a\x10\x0a Freeze archive data
+# KBoom
+0	string	¨MP¨ KBoom archive data
+# NSQ, must go after CDC Codec
+0	string	\x76\xff NSQ archive data
+# DPA
+0	string	Dirk\ Paehl DPA archive data
+# BA
+# TODO: idarc says "bytes 0-2 == bytes 3-5"
+# TTComp
+0	string	\0\6 TTComp archive data
+# ESP, could this conflict with Easy Software Products' (e.g.ESP ghostscript) documentation?
+0	string	ESP ESP archive data
+# ZPack
+0	string	\1ZPK\1 ZPack archive data
+# Sky
+0	string	\xbc\x40 Sky archive data
+# UFA
+0	string	UFA UFA archive data
+# Dry
+0	string	=-H2O DRY archive data
+# FoxSQZ
+0	string	FOXSQZ FoxSQZ archive data
+# AR7
+0	string	,AR7 AR7 archive data
+# PPMZ
+0	string	PPMZ PPMZ archive data
+# MS Compress
+4	string	\x88\xf0\x27 MS Compress archive data
+# updated by Joerg Jenderek
+>9	string	\0
+>>0	string	KWAJ
+>>>7	string	\321\003	MS Compress archive data
+>>>>14	ulong	>0		\b, original size: %ld bytes
+>>>>18		ubyte	>0x65
+>>>>>18		string	x       \b, was %.8s
+>>>>>(10.b-4)	string	x       \b.%.3s
+# MP3 (archiver, not lossy audio compression)
+0	string	MP3\x1a MP3-Archiver archive data
+# ZET
+0	string	OZÝ ZET archive data
+# TSComp
+0	string	\x65\x5d\x13\x8c\x08\x01\x03\x00 TSComp archive data
+# ARQ
+0	string	gW\4\1 ARQ archive data
+# Squash
+3	string	OctSqu Squash archive data
+# Terse
+0	string	\5\1\1\0 Terse archive data
+# PUCrunch
+0	string	\x01\x08\x0b\x08\xef\x00\x9e\x32\x30\x36\x31 PUCrunch archive data
+# UHarc
+0	string	UHA UHarc archive data
+# ABComp
+0	string	\2AB ABComp archive data
+0	string	\3AB2 ABComp archive data
+# CMP
+0	string	CO\0 CMP archive data
+# Splint
+0	string	\x93\xb9\x06 Splint archive data
+# InstallShield
+0	string	\x13\x5d\x65\x8c InstallShield Z archive Data
+# Gather
+1	string	GTH Gather archive data
+# BOA
+0	string	BOA BOA archive data
+# RAX
+0	string	ULEB\xa RAX archive data
+# Xtreme
+0	string	ULEB\0 Xtreme archive data
+# Pack Magic
+0	string	@â\1\0 Pack Magic archive data
+# BTS
+0	belong&0xfeffffff	0x1a034465 BTS archive data
+# ELI 5750
+0	string	Ora\  ELI 5750 archive data
+# QFC
+0	string	\x1aFC\x1a QFC archive data
+0	string	\x1aQF\x1a QFC archive data
+# PRO-PACK
+0	string	RNC PRO-PACK archive data
+# 777
+0	string	777 777 archive data
+# LZS221
+0	string	sTaC LZS221 archive data
+# HPA
+0	string	HPA HPA archive data
+# Arhangel
+0	string	LG Arhangel archive data
+# EXP1, uses bzip2
+0	string	0123456789012345BZh EXP1 archive data
+# IMP
+0	string	IMP\xa IMP archive data
+# NRV
+0	string	\x00\x9E\x6E\x72\x76\xFF NRV archive data
+# Squish
+0	string	\x73\xb2\x90\xf4 Squish archive data
+# Par
+0	string	PHILIPP Par archive data
+0	string	PAR Par archive data
+# HIT
+0	string	UB HIT archive data
+# SBX
+0	belong&0xfffff000	0x53423000 SBX archive data
+# NaShrink
+0	string	NSK NaShrink archive data
+# SAPCAR
+0	string	#\ CAR\ archive\ header SAPCAR archive data
+0	string	CAR\ 2.00RG SAPCAR archive data
+# Disintegrator
+0	string	DST Disintegrator archive data
+# ASD
+0	string	ASD ASD archive data
+# InstallShield CAB
+0	string	ISc( InstallShield CAB
+# TOP4
+0	string	T4\x1a TOP4 archive data
+# BatComp left out: sig looks like COM executable
+# so TODO: get real 4dos batcomp file and find sig
+# BlakHole
+0	string	BH\5\7 BlakHole archive data
+# BIX
+0	string	BIX0 BIX archive data
+# ChiefLZA
+0	string	ChfLZ ChiefLZA archive data
+# Blink
+0	string	Blink Blink archive data
+# Logitech Compress
+0	string	\xda\xfa Logitech Compress archive data
+# ARS-Sfx (FIXME: really a SFX? then goto COM/EXE)
+1	string	(C)\ STEPANYUK ARS-Sfx archive data
+# AKT/AKT32
+0	string	AKT32 AKT32 archive data
+0	string	AKT AKT archive data
+# NPack
+0	string	MSTSM NPack archive data
+# PFT
+0	string	\0\x50\0\x14 PFT archive data
+# SemOne
+0	string	SEM SemOne archive data
+# PPMD
+0	string	\x8f\xaf\xac\x84 PPMD archive data
+# FIZ
+0	string	FIZ FIZ archive data
+# MSXiE
+0	belong&0xfffff0f0	0x4d530000 MSXiE archive data
+# DeepFreezer
+0	belong&0xfffffff0	0x797a3030 DeepFreezer archive data
+# DC
+0	string	=<DC- DC archive data
+# TPac
+0	string	\4TPAC\3 TPac archive data
+# Ai
+0	string	Ai\1\1\0 Ai archive data
+0	string	Ai\1\0\0 Ai archive data
+# Ai32
+0	string	Ai\2\0 Ai32 archive data
+0	string	Ai\2\1 Ai32 archive data
+# SBC
+0	string	SBC SBC archive data
+# Ybs
+0	string	YBS Ybs archive data
+# DitPack
+0	string	\x9e\0\0 DitPack archive data
+# DMS
+0	string	DMS! DMS archive data
+# EPC
+0	string	\x8f\xaf\xac\x8c EPC archive data
+# VSARC
+0	string	VS\x1a VSARC archive data
+# PDZ
+0	string	PDZ PDZ archive data
+# ReDuq
+0	string	rdqx ReDuq archive data
+# GCA
+0	string	GCAX GCA archive data
+# PPMN
+0	string	pN PPMN archive data
+# WinImage
+3	string	WINIMAGE WinImage archive data
+# Compressia
+0	string	CMP0CMP Compressia archive data
+# UHBC
+0	string	UHB UHBC archive data
+# WinHKI
+0	string	\x61\x5C\x04\x05 WinHKI archive data
+# WWPack data file
+0	string	WWP WWPack archive data
+# BSN (BSA, PTS-DOS)
+0	string	\xffBSG BSN archive data
+1	string	\xffBSG BSN archive data
+3	string	\xffBSG BSN archive data
+1	string	\0\xae\2 BSN archive data
+1	string	\0\xae\3 BSN archive data
+1	string	\0\xae\7 BSN archive data
+# AIN
+0	string	\x33\x18 AIN archive data
+0	string	\x33\x17 AIN archive data
+# XPA32
+0	string	xpa\0\1 XPA32 archive data
+# SZip (TODO: doesn't catch all versions)
+0	string	SZ\x0a\4 SZip archive data
+# XPack DiskImage
+0	string	jm XPack DiskImage archive data
+# XPack Data
+0	string	xpa XPack archive data
+# XPack Single Data
+0	string	Í\ jm XPack single archive data
+
+# TODO: missing due to unknown magic/magic at end of file:
+#DWC
+#ARG
+#ZAR
+#PC/3270
+#InstallIt
+#RKive
+#RK
+#XPack Diskimage
+
+# These were inspired by idarc, but actually verified
+# Dzip archiver (.dz)
+0	string	DZ Dzip archive data
+>2	byte	x \b, version %i
+>3	byte	x \b.%i
+# ZZip archiver (.zz)
+0	string	ZZ\ \0\0 ZZip archive data
+0	string	ZZ0 ZZip archive data
+# PAQ archiver (.paq)
+0	string	\xaa\x40\x5f\x77\x1f\xe5\x82\x0d PAQ archive data
+0	string	PAQ PAQ archive data
+>3	byte&0xf0	0x30
+>>3	byte	x (v%c)
+# JAR archiver (.j), this is the successor to ARJ, not Java's JAR (which is essentially ZIP)
+0xe	string	\x1aJar\x1b JAR (ARJ Software, Inc.) archive data
+0	string	JARCS JAR (ARJ Software, Inc.) archive data
+
+# ARJ archiver (jason@jarthur.Claremont.EDU)
+0	leshort		0xea60		ARJ archive data
+!:mime	application/x-arj
+>5	byte		x		\b, v%d,
+>8	byte		&0x04		multi-volume,
+>8	byte		&0x10		slash-switched,
+>8	byte		&0x20		backup,
+>34	string		x		original name: %s,
+>7	byte		0		os: MS-DOS
+>7	byte		1		os: PRIMOS
+>7	byte		2		os: Unix
+>7	byte		3		os: Amiga
+>7	byte		4		os: Macintosh
+>7	byte		5		os: OS/2
+>7	byte		6		os: Apple ][ GS
+>7	byte		7		os: Atari ST
+>7	byte		8		os: NeXT
+>7	byte		9		os: VAX/VMS
+>3	byte		>0		%d]
+# [JW] idarc says this is also possible
+2	leshort		0xea60		ARJ archive data
+
+# HA archiver (Greg Roelofs, newt@uchicago.edu)
+# This is a really bad format. A file containing HAWAII will match this...
+#0	string		HA		HA archive data,
+#>2	leshort		=1		1 file,
+#>2	leshort		>1		%u files,
+#>4	byte&0x0f	=0		first is type CPY
+#>4	byte&0x0f	=1		first is type ASC
+#>4	byte&0x0f	=2		first is type HSC
+#>4	byte&0x0f	=0x0e		first is type DIR
+#>4	byte&0x0f	=0x0f		first is type SPECIAL
+# suggestion: at least identify small archives (<1024 files)
+0  belong&0xffff00fc 0x48410000 HA archive data
+>2	leshort		=1		1 file,
+>2	leshort		>1		%u files,
+>4	byte&0x0f	=0		first is type CPY
+>4	byte&0x0f	=1		first is type ASC
+>4	byte&0x0f	=2		first is type HSC
+>4	byte&0x0f	=0x0e		first is type DIR
+>4	byte&0x0f	=0x0f		first is type SPECIAL
+
+# HPACK archiver (Peter Gutmann, pgut1@cs.aukuni.ac.nz)
+0	string		HPAK		HPACK archive data
+
+# JAM Archive volume format, by Dmitry.Kohmanyuk@UA.net
+0	string		\351,\001JAM\ 		JAM archive,
+>7	string		>\0			version %.4s
+>0x26	byte		=0x27			-
+>>0x2b	string          >\0			label %.11s,
+>>0x27	lelong		x			serial %08x,
+>>0x36	string		>\0			fstype %.8s
+
+# LHARC/LHA archiver (Greg Roelofs, newt@uchicago.edu)
+2	string		-lh0-		LHarc 1.x/ARX archive data [lh0]
+!:mime	application/x-lharc
+2	string		-lh1-		LHarc 1.x/ARX archive data [lh1]
+!:mime	application/x-lharc
+2	string		-lz4-		LHarc 1.x archive data [lz4]
+!:mime	application/x-lharc
+2	string		-lz5-		LHarc 1.x archive data [lz5]
+!:mime	application/x-lharc
+#	[never seen any but the last; -lh4- reported in comp.compression:]
+2	string		-lzs-		LHa/LZS archive data [lzs]
+!:mime	application/x-lha
+2	string		-lh\40-		LHa 2.x? archive data [lh ]
+!:mime	application/x-lha
+2	string		-lhd-		LHa 2.x? archive data [lhd]
+!:mime	application/x-lha
+2	string		-lh2-		LHa 2.x? archive data [lh2]
+!:mime	application/x-lha
+2	string		-lh3-		LHa 2.x? archive data [lh3]
+!:mime	application/x-lha
+2	string		-lh4-		LHa (2.x) archive data [lh4]
+!:mime	application/x-lha
+2	string		-lh5-		LHa (2.x) archive data [lh5]
+!:mime	application/x-lha
+2	string		-lh6-		LHa (2.x) archive data [lh6]
+!:mime	application/x-lha
+2	string		-lh7-		LHa (2.x)/LHark archive data [lh7]
+!:mime	application/x-lha
+>20	byte		x		- header level %d
+# taken from idarc [JW]
+2   string      -lZ         PUT archive data
+2   string      -lz         LZS archive data
+2   string      -sw1-       Swag archive data
+
+# RAR archiver (Greg Roelofs, newt@uchicago.edu)
+0	string		Rar!		RAR archive data,
+!:mime	application/x-rar
+>44	byte		x		v%0x,
+>10	byte		>0		flags:
+>>10	byte		&0x01		Archive volume,
+>>10	byte		&0x02		Commented,
+>>10	byte		&0x04		Locked,
+>>10	byte		&0x08		Solid,
+>>10	byte		&0x20		Authenticated,
+>35	byte		0		os: MS-DOS
+>35	byte		1		os: OS/2
+>35	byte		2		os: Win32
+>35	byte		3		os: Unix
+# some old version? idarc says:
+0   string      RE\x7e\x5e  RAR archive data
+
+# SQUISH archiver (Greg Roelofs, newt@uchicago.edu)
+0	string		SQSH		squished archive data (Acorn RISCOS)
+
+# UC2 archiver (Greg Roelofs, newt@uchicago.edu)
+# [JW] see exe section for self-extracting version
+0	string		UC2\x1a		UC2 archive data
+
+# PKZIP multi-volume archive
+0	string		PK\x07\x08PK\x03\x04	Zip multi-volume archive data, at least PKZIP v2.50 to extract
+!:mime	application/zip
+
+# Zip archives (Greg Roelofs, c/o zip-bugs@wkuvx1.wku.edu)
+0	string		PK\003\004
+
+# Specialised zip formats which start with a member named 'mimetype'
+# (stored uncompressed, with no 'extra field') containing the file's MIME type.
+# Check for have 8-byte name, 0-byte extra field, name "mimetype", and
+#  contents starting with "application/":
+>26	string		\x8\0\0\0mimetypeapplication/
+
+#  KOffice / OpenOffice & StarOffice / OpenDocument formats
+#    From: Abel Cheung <abel@oaka.org>
+
+#   KOffice (1.2 or above) formats
+#    (mimetype contains "application/vnd.kde.<SUBTYPE>")
+>>50	string	vnd.kde.		KOffice (>=1.2)
+>>>58	string	karbon			Karbon document
+>>>58	string	kchart			KChart document
+>>>58	string	kformula		KFormula document
+>>>58	string	kivio			Kivio document
+>>>58	string	kontour			Kontour document
+>>>58	string	kpresenter		KPresenter document
+>>>58	string	kspread			KSpread document
+>>>58	string	kword			KWord document
+
+#   OpenOffice formats (for OpenOffice 1.x / StarOffice 6/7)
+#    (mimetype contains "application/vnd.sun.xml.<SUBTYPE>")
+>>50	string	vnd.sun.xml.		OpenOffice.org 1.x
+>>>62	string	writer			Writer
+>>>>68	byte	!0x2e			document
+>>>>68	string	.template		template
+>>>>68	string	.global			global document
+>>>62	string	calc			Calc
+>>>>66	byte	!0x2e			spreadsheet
+>>>>66	string	.template		template
+>>>62	string	draw			Draw
+>>>>66	byte	!0x2e			document
+>>>>66	string	.template		template
+>>>62	string	impress			Impress
+>>>>69	byte	!0x2e			presentation
+>>>>69	string	.template		template
+>>>62	string	math			Math document
+>>>62	string	base			Database file
+
+#   OpenDocument formats (for OpenOffice 2.x / StarOffice >= 8)
+#    http://lists.oasis-open.org/archives/office/200505/msg00006.html
+#    (mimetype contains "application/vnd.oasis.opendocument.<SUBTYPE>")
+>>50	string	vnd.oasis.opendocument.	OpenDocument
+>>>73	string	text
+>>>>77	byte	!0x2d			Text
+!:mime	application/vnd.oasis.opendocument.text
+>>>>77	string	-template		Text Template
+!:mime	application/vnd.oasis.opendocument.text-template
+>>>>77	string	-web			HTML Document Template
+!:mime	application/vnd.oasis.opendocument.text-web
+>>>>77	string	-master			Master Document
+!:mime	application/vnd.oasis.opendocument.text-master
+>>>73	string	graphics
+>>>>81	byte	!0x2d			Drawing
+!:mime	application/vnd.oasis.opendocument.graphics
+>>>>81	string	-template		Template
+!:mime	application/vnd.oasis.opendocument.graphics-template
+>>>73	string	presentation
+>>>>85	byte	!0x2d			Presentation
+!:mime	application/vnd.oasis.opendocument.presentation
+>>>>85	string	-template		Template
+!:mime	application/vnd.oasis.opendocument.presentation-template
+>>>73	string	spreadsheet
+>>>>84	byte	!0x2d			Spreadsheet
+!:mime	application/vnd.oasis.opendocument.spreadsheet
+>>>>84	string	-template		Template
+!:mime	application/vnd.oasis.opendocument.spreadsheet-template
+>>>73	string	chart
+>>>>78	byte	!0x2d			Chart
+!:mime	application/vnd.oasis.opendocument.chart
+>>>>78	string	-template		Template
+!:mime	application/vnd.oasis.opendocument.chart-template
+>>>73	string	formula
+>>>>80	byte	!0x2d			Formula
+!:mime	application/vnd.oasis.opendocument.formula
+>>>>80	string	-template		Template
+!:mime	application/vnd.oasis.opendocument.formula-template
+>>>73	string	database		Database
+!:mime	application/vnd.oasis.opendocument.database
+>>>73	string	image
+>>>>78	byte	!0x2d			Image
+!:mime	application/vnd.oasis.opendocument.image
+>>>>78	string	-template		Template
+!:mime	application/vnd.oasis.opendocument.image-template
+
+#  EPUB (OEBPS) books using OCF (OEBPS Container Format)
+#    From: Adam Buchbinder <adam.buchbinder@gmail.com>
+#    http://www.idpf.org/ocf/ocf1.0/download/ocf10.htm, section 4.
+#    (mimetype contains "application/epub+zip")
+>>50	string	epub+zip		EPUB ebook data
+!:mime	application/epub+zip
+
+#  Catch other ZIP-with-mimetype formats
+#	In a ZIP file, the bytes immediately after a member's contents are
+#	always "PK". The 2 regex rules here print the "mimetype" member's
+#	contents up to the first 'P'. Luckily, most MIME types don't contain
+#	any capital 'P's. This is a kludge.
+#    (mimetype contains "application/<OTHER>")
+>>50		string	!epub+zip
+>>>50		string	!vnd.oasis.opendocument.
+>>>>50		string	!vnd.sun.xml.
+>>>>>50		string	!vnd.kde.
+>>>>>>38	regex	[!-OQ-~]+		Zip data (MIME type "%s"?)
+!:mime	application/zip
+#    (mimetype contents other than "application/*")
+>26		string	\x8\0\0\0mimetype
+>>38		string	!application/
+>>>38		regex	[!-OQ-~]+		Zip data (MIME type "%s"?)
+!:mime	application/zip
+
+# Generic zip archives (Greg Roelofs, c/o zip-bugs@wkuvx1.wku.edu)
+#   Next line excludes specialized formats:
+>26    string          !\x8\0\0\0mimetype	Zip archive data
+!:mime	application/zip
+>>4	byte		0x09		\b, at least v0.9 to extract
+>>4	byte		0x0a		\b, at least v1.0 to extract
+>>4	byte		0x0b		\b, at least v1.1 to extract
+>>4	byte		0x14		\b, at least v2.0 to extract
+>>4	byte		0x2d		\b, at least v3.0 to extract
+>>0x161	string		WINZIP		\b, WinZIP self-extracting
+
+# StarView Metafile
+# From Pierre Ducroquet <pinaraf@pinaraf.info>
+0	string	VCLMTF	StarView MetaFile
+>6	beshort	x	\b, version %d
+>8	belong	x	\b, size %d
+
+# Zoo archiver
+20	lelong		0xfdc4a7dc	Zoo archive data
+!:mime	application/x-zoo
+>4	byte		>48		\b, v%c.
+>>6	byte		>47		\b%c
+>>>7	byte		>47		\b%c
+>32	byte		>0		\b, modify: v%d
+>>33	byte		x		\b.%d+
+>42	lelong		0xfdc4a7dc	\b,
+>>70	byte		>0		extract: v%d
+>>>71	byte		x		\b.%d+
+
+# Shell archives
+10	string		#\ This\ is\ a\ shell\ archive	shell archive text
+!:mime	application/octet-stream
+
+#
+# LBR. NB: May conflict with the questionable
+#          "binary Computer Graphics Metafile" format.
+#
+0       string  \0\ \ \ \ \ \ \ \ \ \ \ \0\0    LBR archive data
+#
+# PMA (CP/M derivative of LHA)
+#
+2       string          -pm0-           PMarc archive data [pm0]
+2       string          -pm1-           PMarc archive data [pm1]
+2       string          -pm2-           PMarc archive data [pm2]
+2       string          -pms-           PMarc SFX archive (CP/M, DOS)
+5       string          -pc1-           PopCom compressed executable (CP/M)
+
+# From Rafael Laboissiere <rafael@laboissiere.net>
+# The Project Revision Control System (see
+# http://prcs.sourceforge.net) generates a packaged project
+# file which is recognized by the following entry:
+0	leshort		0xeb81	PRCS packaged project
+
+# Microsoft cabinets
+# by David Necas (Yeti) <yeti@physics.muni.cz>
+#0	string	MSCF\0\0\0\0	Microsoft cabinet file data,
+#>25	byte	x		v%d
+#>24	byte	x		\b.%d
+# MPi: All CABs have version 1.3, so this is pointless.
+# Better magic in debian-additions.
+
+# GTKtalog catalogs
+# by David Necas (Yeti) <yeti@physics.muni.cz>
+4	string	gtktalog\ 	GTKtalog catalog data,
+>13	string	3		version 3
+>>14	beshort	0x677a		(gzipped)
+>>14	beshort	!0x677a		(not gzipped)
+>13	string	>3		version %s
+
+############################################################################
+# Parity archive reconstruction file, the 'par' file format now used on Usenet.
+0       string          PAR\0	PARity archive data
+>48	leshort		=0	- Index file
+>48	leshort		>0	- file number %d
+
+# Felix von Leitner <felix-file@fefe.de>
+0	string	d8:announce	BitTorrent file
+!:mime	application/x-bittorrent
+
+# Atari MSA archive - Teemu Hukkanen <tjhukkan@iki.fi>
+0	beshort 0x0e0f		Atari MSA archive data
+>2	beshort x		\b, %d sectors per track
+>4	beshort 0		\b, 1 sided
+>4	beshort 1		\b, 2 sided
+>6	beshort x		\b, starting track: %d
+>8	beshort x		\b, ending track: %d
+
+# Alternate ZIP string (amc@arwen.cs.berkeley.edu)
+0	string	PK00PK\003\004	Zip archive data
+
+# ACE archive (from http://www.wotsit.org/download.asp?f=ace)
+# by Stefan `Sec` Zehl <sec@42.org>
+7	string		**ACE**		ACE archive data
+>15	byte	>0		version %d
+>16	byte	=0x00		\b, from MS-DOS
+>16	byte	=0x01		\b, from OS/2
+>16	byte	=0x02		\b, from Win/32
+>16	byte	=0x03		\b, from Unix
+>16	byte	=0x04		\b, from MacOS
+>16	byte	=0x05		\b, from WinNT
+>16	byte	=0x06		\b, from Primos
+>16	byte	=0x07		\b, from AppleGS
+>16	byte	=0x08		\b, from Atari
+>16	byte	=0x09		\b, from Vax/VMS
+>16	byte	=0x0A		\b, from Amiga
+>16	byte	=0x0B		\b, from Next
+>14	byte	x		\b, version %d to extract
+>5	leshort &0x0080		\b, multiple volumes,
+>>17	byte	x		\b (part %d),
+>5	leshort &0x0002		\b, contains comment
+>5	leshort	&0x0200		\b, sfx
+>5	leshort	&0x0400		\b, small dictionary
+>5	leshort	&0x0800		\b, multi-volume
+>5	leshort	&0x1000		\b, contains AV-String
+>>30	string	\x16*UNREGISTERED\x20VERSION*	(unregistered)
+>5	leshort &0x2000		\b, with recovery record
+>5	leshort &0x4000		\b, locked
+>5	leshort &0x8000		\b, solid
+# Date in MS-DOS format (whatever that is)
+#>18	lelong	x		Created on
+
+# sfArk : compression program for Soundfonts (sf2) by Dirk Jagdmann
+# <doj@cubic.org>
+0x1A	string	sfArk		sfArk compressed Soundfont
+>0x15	string	2
+>>0x1	string	>\0		Version %s
+>>0x2A	string	>\0		: %s
+
+# DR-DOS 7.03 Packed File *.??_
+0	string	Packed\ File\ 	Personal NetWare Packed File
+>12	string	x		\b, was "%.12s"
+
+# EET archive
+# From: Tilman Sauerbeck <tilman@code-monkey.de>
+0	belong	0x1ee7ff00	EET archive
+!:mime	application/x-eet
+
+# rzip archives
+0	string	RZIP		rzip compressed data
+>4	byte	x		- version %d
+>5	byte	x		\b.%d
+>6	belong	x		(%d bytes)
+
+# From: "Robert Dale" <robdale@gmail.com>
+0	belong	123		dar archive,
+>4	belong	x		label "%.8x
+>>8	belong	x		%.8x
+>>>12	beshort	x		%.4x"
+>14	byte	0x54		end slice
+>14	beshort	0x4e4e		multi-part
+>14	beshort	0x4e53		multi-part, with -S
+
+# Symbian installation files
+#  http://www.thouky.co.uk/software/psifs/sis.html
+#  http://developer.symbian.com/main/downloads/papers/SymbianOSv91/softwareinstallsis.pdf
+8	lelong	0x10000419	Symbian installation file
+!:mime	application/vnd.symbian.install
+>4	lelong	0x1000006D	(EPOC release 3/4/5)
+>4	lelong	0x10003A12	(EPOC release 6)
+0	lelong	0x10201A7A	Symbian installation file (Symbian OS 9.x)
+!:mime	x-epoc/x-sisx-app
+
+# From "Nelson A. de Oliveira" <naoliv@gmail.com>
+0	string	MPQ\032		MoPaQ (MPQ) archive
+
+# From: Dirk Jagdmann <doj@cubic.org>
+# xar archive format: http://code.google.com/p/xar/
+0	string	xar!		xar archive
+>6	beshort	x		- version %ld
+
+# From: "Nelson A. de Oliveira" <naoliv@gmail.com>
+# .kgb
+0	string KGB_arch		KGB Archiver file
+>10	string x		with compression level %.1s
+
+# xar (eXtensible ARchiver) archive
+# From: "David Remahl" <dremahl@apple.com>
+0	string	xar!		xar archive
+#>4	beshort	x		header size %d
+>6	beshort	x		version %d,
+#>8	quad	x		compressed TOC: %d,
+#>16	quad	x		uncompressed TOC: %d,
+>24	belong	0		no checksum
+>24	belong	1		SHA-1 checksum
+>24	belong	2		MD5 checksum
+
+# Type: Parity Archive
+# From: Daniel van Eeden <daniel_e@dds.nl>
+0	string	PAR2		Parity Archive Volume Set
+
+# Bacula volume format. (Volumes always start with a block header.)
+# URL: http://bacula.org/3.0.x-manuals/en/developers/developers/Block_Header.html
+# From: Adam Buchbinder <adam.buchbinder@gmail.com>
+12	string	BB02		Bacula volume
+>20	bedate	x		\b, started %s
+
+# ePub is XHTML + XML inside a ZIP archive.  The first member of the
+#   archive must be an uncompressed file called 'mimetype' with contents
+#   'application/epub+zip'
+
+# start by checking that this is a ZIP archive, then check for the
+#   proper mimetype file
+# From: Ralf Brown <ralf.brown@gmail.com>
+0	string	PK\003\004
+>0x1E	string	mimetypeapplication/epub+zip	EPUB document
+!:mime application/epub+zip
+
+# From: "Michał Górny" <mgorny@gentoo.org>
+# ZPAQ: http://mattmahoney.net/dc/zpaq.html
+0	string	zPQ	ZPAQ stream
+>3	byte	x	\b, level %d
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/asterix b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/asterix
new file mode 100755
index 0000000000000000000000000000000000000000..a9ea885cdb8c01cab3a7b9c0b19cc5042f549d57
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/asterix
@@ -0,0 +1,18 @@
+
+#------------------------------------------------------------------------------
+# $File: asterix,v 1.5 2009/09/19 16:28:08 christos Exp $
+# asterix:  file(1) magic for Aster*x; SunOS 5.5.1 gave the 4-character
+# strings as "long" - we assume they're just strings:
+# From: guy@netapp.com (Guy Harris)
+#
+0	string		*STA		Aster*x
+>7	string		WORD			Words Document
+>7	string		GRAP			Graphic
+>7	string		SPRE			Spreadsheet
+>7	string		MACR			Macro
+0	string		2278		Aster*x Version 2
+>29	byte		0x36			Words Document
+>29	byte		0x35			Graphic
+>29	byte		0x32			Spreadsheet
+>29	byte		0x38			Macro
+
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/att3b b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/att3b
new file mode 100755
index 0000000000000000000000000000000000000000..96880111e0577ca7479d67435cd5271d24ded2dc
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/att3b
@@ -0,0 +1,41 @@
+
+#------------------------------------------------------------------------------
+# $File: att3b,v 1.8 2009/09/19 16:28:08 christos Exp $
+# att3b:  file(1) magic for AT&T 3B machines
+#
+# The `versions' should be un-commented if they work for you.
+# (Was the problem just one of endianness?)
+#
+# 3B20
+#
+# The 3B20 conflicts with SCCS.
+#0	beshort		0550		3b20 COFF executable
+#>12	belong		>0		not stripped
+#>22	beshort		>0		- version %ld
+#0	beshort		0551		3b20 COFF executable (TV)
+#>12	belong		>0		not stripped
+#>22	beshort		>0		- version %ld
+#
+# WE32K
+#
+0	beshort		0560		WE32000 COFF
+>18	beshort		^00000020	object
+>18	beshort		&00000020	executable
+>12	belong		>0		not stripped
+>18	beshort		^00010000	N/A on 3b2/300 w/paging
+>18	beshort		&00020000	32100 required
+>18	beshort		&00040000	and MAU hardware required
+>20	beshort		0407		(impure)
+>20	beshort		0410		(pure)
+>20	beshort		0413		(demand paged)
+>20	beshort		0443		(target shared library)
+>22	beshort		>0		- version %ld
+0	beshort		0561		WE32000 COFF executable (TV)
+>12	belong		>0		not stripped
+#>18	beshort		&00020000	- 32100 required
+#>18	beshort		&00040000	and MAU hardware required
+#>22	beshort		>0		- version %ld
+#
+# core file for 3b2 
+0	string		\000\004\036\212\200	3b2 core file
+>364	string		>\0		of '%s'
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/audio b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/audio
new file mode 100755
index 0000000000000000000000000000000000000000..a1be2f9a805d722256995b46a1f3dcde38fffd17
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/audio
@@ -0,0 +1,627 @@
+
+#------------------------------------------------------------------------------
+# $File: audio,v 1.62 2011/04/05 20:27:13 christos Exp $
+# audio:  file(1) magic for sound formats (see also "iff")
+#
+# Jan Nicolai Langfeldt (janl@ifi.uio.no), Dan Quinlan (quinlan@yggdrasil.com),
+# and others
+#
+
+# Sun/NeXT audio data
+0	string		.snd		Sun/NeXT audio data:
+>12	belong		1		8-bit ISDN mu-law,
+!:mime	audio/basic
+>12	belong		2		8-bit linear PCM [REF-PCM],
+!:mime	audio/basic
+>12	belong		3		16-bit linear PCM,
+!:mime	audio/basic
+>12	belong		4		24-bit linear PCM,
+!:mime	audio/basic
+>12	belong		5		32-bit linear PCM,
+!:mime	audio/basic
+>12	belong		6		32-bit IEEE floating point,
+!:mime	audio/basic
+>12	belong		7		64-bit IEEE floating point,
+!:mime	audio/basic
+>12	belong		8		Fragmented sample data,
+>12	belong		10		DSP program,
+>12	belong		11		8-bit fixed point,
+>12	belong		12		16-bit fixed point,
+>12	belong		13		24-bit fixed point,
+>12	belong		14		32-bit fixed point,
+>12	belong		18		16-bit linear with emphasis,
+>12	belong		19		16-bit linear compressed,
+>12	belong		20		16-bit linear with emphasis and compression,
+>12	belong		21		Music kit DSP commands,
+>12	belong		23		8-bit ISDN mu-law compressed (CCITT G.721 ADPCM voice enc.),
+!:mime  audio/x-adpcm
+>12	belong		24		compressed (8-bit CCITT G.722 ADPCM)
+>12	belong		25		compressed (3-bit CCITT G.723.3 ADPCM),
+>12	belong		26		compressed (5-bit CCITT G.723.5 ADPCM),
+>12	belong		27		8-bit A-law (CCITT G.711),
+>20	belong		1		mono,
+>20	belong		2		stereo,
+>20	belong		4		quad,
+>16	belong		>0		%d Hz
+
+# DEC systems (e.g. DECstation 5000) use a variant of the Sun/NeXT format
+# that uses little-endian encoding and has a different magic number
+0	lelong		0x0064732E	DEC audio data:
+>12	lelong		1		8-bit ISDN mu-law,
+!:mime	audio/x-dec-basic
+>12	lelong		2		8-bit linear PCM [REF-PCM],
+!:mime	audio/x-dec-basic
+>12	lelong		3		16-bit linear PCM,
+!:mime	audio/x-dec-basic
+>12	lelong		4		24-bit linear PCM,
+!:mime	audio/x-dec-basic
+>12	lelong		5		32-bit linear PCM,
+!:mime	audio/x-dec-basic
+>12	lelong		6		32-bit IEEE floating point,
+!:mime	audio/x-dec-basic
+>12	lelong		7		64-bit IEEE floating point,
+!:mime	audio/x-dec-basic
+>12	belong		8		Fragmented sample data,
+>12	belong		10		DSP program,
+>12	belong		11		8-bit fixed point,
+>12	belong		12		16-bit fixed point,
+>12	belong		13		24-bit fixed point,
+>12	belong		14		32-bit fixed point,
+>12	belong		18		16-bit linear with emphasis,
+>12	belong		19		16-bit linear compressed,
+>12	belong		20		16-bit linear with emphasis and compression,
+>12	belong		21		Music kit DSP commands,
+>12	lelong		23		8-bit ISDN mu-law compressed (CCITT G.721 ADPCM voice enc.),
+!:mime	audio/x-dec-basic
+>12	belong		24		compressed (8-bit CCITT G.722 ADPCM)
+>12	belong		25		compressed (3-bit CCITT G.723.3 ADPCM),
+>12	belong		26		compressed (5-bit CCITT G.723.5 ADPCM),
+>12	belong		27		8-bit A-law (CCITT G.711),
+>20	lelong		1		mono,
+>20	lelong		2		stereo,
+>20	lelong		4		quad,
+>16	lelong		>0		%d Hz
+
+# Creative Labs AUDIO stuff
+0	string	MThd			Standard MIDI data
+!:mime	audio/midi
+>8 	beshort	x			(format %d)
+>10	beshort	x			using %d track
+>10	beshort		>1		\bs
+>12	beshort&0x7fff	x		at 1/%d
+>12	beshort&0x8000	>0		SMPTE
+
+0	string	CTMF			Creative Music (CMF) data
+!:mime	audio/x-unknown
+0	string	SBI			SoundBlaster instrument data
+!:mime	audio/x-unknown
+0	string	Creative\ Voice\ File	Creative Labs voice data
+!:mime	audio/x-unknown
+# is this next line right?  it came this way...
+>19	byte	0x1A
+>23	byte	>0			- version %d
+>22	byte	>0			\b.%d
+
+# first entry is also the string "NTRK"
+0	belong		0x4e54524b	MultiTrack sound data
+>4	belong		x		- version %ld
+
+# Extended MOD format (*.emd) (Greg Roelofs, newt@uchicago.edu); NOT TESTED
+# [based on posting 940824 by "Dirk/Elastik", husberg@lehtori.cc.tut.fi]
+0	string		EMOD		Extended MOD sound data,
+>4	byte&0xf0	x		version %d
+>4	byte&0x0f	x		\b.%d,
+>45	byte		x		%d instruments
+>83	byte		0		(module)
+>83	byte		1		(song)
+
+# Real Audio (Magic .ra\0375)
+0	belong		0x2e7261fd	RealAudio sound file
+!:mime	audio/x-pn-realaudio
+0	string		.RMF\0\0\0	RealMedia file
+!:mime	application/vnd.rn-realmedia
+#video/x-pn-realvideo
+#video/vnd.rn-realvideo
+#application/vnd.rn-realmedia
+#	sigh, there are many mimes for that but the above are the most common.
+
+# MTM/669/FAR/S3M/ULT/XM format checking [Aaron Eppert, aeppert@dialin.ind.net]
+# Oct 31, 1995
+# fixed by <doj@cubic.org> 2003-06-24
+# Too short...
+#0	string		MTM		MultiTracker Module sound file
+#0	string		if		Composer 669 Module sound data
+#0	string		JN		Composer 669 Module sound data (extended format)
+0	string		MAS_U		ULT(imate) Module sound data
+
+#0	string		FAR		Module sound data
+#>4	string		>\15		Title: "%s"
+
+0x2c	string		SCRM		ScreamTracker III Module sound data
+>0	string		>\0		Title: "%s"
+
+# Gravis UltraSound patches
+# From <ache@nagual.ru>
+
+0	string		GF1PATCH110\0ID#000002\0	GUS patch
+0	string		GF1PATCH100\0ID#000002\0	Old GUS	patch
+
+# mime types according to http://www.geocities.com/nevilo/mod.htm:
+#	audio/it	.it
+#	audio/x-zipped-it	.itz
+#	audio/xm	fasttracker modules
+#	audio/x-s3m	screamtracker modules
+#	audio/s3m	screamtracker modules
+#	audio/x-zipped-mod	mdz
+#	audio/mod	mod
+#	audio/x-mod	All modules (mod, s3m, 669, mtm, med, xm, it, mdz, stm, itz, xmz, s3z)
+
+#
+# Taken from loader code from mikmod version 2.14
+# by Steve McIntyre (stevem@chiark.greenend.org.uk)
+# <doj@cubic.org> added title printing on 2003-06-24
+0	string	MAS_UTrack_V00
+>14	string	>/0		ultratracker V1.%.1s module sound data
+!:mime	audio/x-mod
+#audio/x-tracker-module
+
+0	string	UN05		MikMod UNI format module sound data
+
+0	string	Extended\ Module: Fasttracker II module sound data
+!:mime	audio/x-mod
+#audio/x-tracker-module
+>17	string	>\0		Title: "%s"
+
+21	string/c	=!SCREAM!	Screamtracker 2 module sound data
+!:mime	audio/x-mod
+#audio/x-screamtracker-module
+21	string	BMOD2STM	Screamtracker 2 module sound data
+!:mime	audio/x-mod
+#audio/x-screamtracker-module
+1080	string	M.K.		4-channel Protracker module sound data
+!:mime	audio/x-mod
+#audio/x-protracker-module
+>0	string	>\0		Title: "%s"
+1080	string	M!K!		4-channel Protracker module sound data
+!:mime	audio/x-mod
+#audio/x-protracker-module
+>0	string	>\0		Title: "%s"
+1080	string	FLT4		4-channel Startracker module sound data
+!:mime	audio/x-mod
+#audio/x-startracker-module
+>0	string	>\0		Title: "%s"
+1080	string	FLT8		8-channel Startracker module sound data
+!:mime	audio/x-mod
+#audio/x-startracker-module
+>0	string	>\0		Title: "%s"
+1080	string	4CHN		4-channel Fasttracker module sound data
+!:mime	audio/x-mod
+#audio/x-fasttracker-module
+>0	string	>\0		Title: "%s"
+1080	string	6CHN		6-channel Fasttracker module sound data
+!:mime	audio/x-mod
+#audio/x-fasttracker-module
+>0	string	>\0		Title: "%s"
+1080	string	8CHN		8-channel Fasttracker module sound data
+!:mime	audio/x-mod
+#audio/x-fasttracker-module
+>0	string	>\0		Title: "%s"
+1080	string	CD81		8-channel Octalyser module sound data
+!:mime	audio/x-mod
+#audio/x-octalysertracker-module
+>0	string	>\0		Title: "%s"
+1080	string	OKTA		8-channel Octalyzer module sound data
+!:mime	audio/x-mod
+#audio/x-octalysertracker-module
+>0	string	>\0		Title: "%s"
+# Not good enough.
+#1082	string	CH
+#>1080	string	>/0		%.2s-channel Fasttracker "oktalyzer" module sound data
+1080	string	16CN		16-channel Taketracker module sound data
+!:mime	audio/x-mod
+#audio/x-taketracker-module
+>0	string	>\0		Title: "%s"
+1080	string	32CN		32-channel Taketracker module sound data
+!:mime	audio/x-mod
+#audio/x-taketracker-module
+>0	string	>\0		Title: "%s"
+
+# TOC sound files -Trevor Johnson <trevor@jpj.net>
+#
+0       string          TOC             TOC sound file
+
+# sidfiles <pooka@iki.fi>
+# added name,author,(c) and new RSID type by <doj@cubic.org> 2003-06-24
+0	string		SIDPLAY\ INFOFILE	Sidplay info file
+
+0	string		PSID			PlaySID v2.2+ (AMIGA) sidtune
+>4	beshort		>0			w/ header v%d,
+>14	beshort		=1			single song,
+>14	beshort		>1			%d songs,
+>16	beshort		>0			default song: %d
+>0x16	string		>\0			name: "%s"
+>0x36	string		>\0			author: "%s"
+>0x56	string		>\0			copyright: "%s"
+
+0	string		RSID			RSID sidtune PlaySID compatible
+>4	beshort		>0			w/ header v%d,
+>14	beshort		=1			single song,
+>14	beshort		>1			%d songs,
+>16	beshort		>0			default song: %d
+>0x16	string		>\0			name: "%s"
+>0x36	string		>\0			author: "%s"
+>0x56	string		>\0			copyright: "%s"
+
+# IRCAM sound files - Michael Pruett <michael@68k.org>
+# http://www-mmsp.ece.mcgill.ca/documents/AudioFormats/IRCAM/IRCAM.html
+0	belong		0x64a30100		IRCAM file (VAX little-endian)
+0	belong		0x0001a364		IRCAM file (VAX big-endian)
+0	belong		0x64a30200		IRCAM file (Sun big-endian)
+0	belong		0x0002a364		IRCAM file (Sun little-endian)
+0	belong		0x64a30300		IRCAM file (MIPS little-endian)
+0	belong		0x0003a364		IRCAM file (MIPS big-endian)
+0	belong		0x64a30400		IRCAM file (NeXT big-endian)
+0	belong		0x64a30400		IRCAM file (NeXT big-endian)
+0	belong		0x0004a364		IRCAM file (NeXT little-endian)
+
+# NIST SPHERE <mpruett@sgi.com>
+0	string		NIST_1A\n\ \ \ 1024\n	NIST SPHERE file
+
+# Sample Vision <mpruett@sgi.com>
+0	string		SOUND\ SAMPLE\ DATA\ 	Sample Vision file
+
+# Audio Visual Research <tonigonenstein@users.sourceforge.net>
+0	string		2BIT			Audio Visual Research file,
+>12	beshort		=0			mono,
+>12	beshort		=-1			stereo,
+>14	beshort		x			%d bits
+>16	beshort		=0			unsigned,
+>16	beshort		=-1			signed,
+>22	belong&0x00ffffff	x		%d Hz,
+>18	beshort		=0			no loop,
+>18	beshort		=-1			loop,
+>21	ubyte		<128			note %d,
+>22	byte		=0			replay 5.485 KHz
+>22	byte		=1			replay 8.084 KHz
+>22	byte		=2			replay 10.971 KHz
+>22	byte		=3			replay 16.168 KHz
+>22	byte		=4			replay 21.942 KHz
+>22	byte		=5			replay 32.336 KHz
+>22	byte		=6			replay 43.885 KHz
+>22	byte		=7			replay 47.261 KHz
+
+# SGI SoundTrack <mpruett@sgi.com>
+0	string		_SGI_SoundTrack		SGI SoundTrack project file
+# ID3 version 2 tags <waschk@informatik.uni-rostock.de>
+0	string		ID3	Audio file with ID3 version 2
+>3	byte		x	\b.%d
+>4	byte		x	\b.%d
+>>5	byte		&0x80	\b, unsynchronized frames
+>>5	byte		&0x40	\b, extended header
+>>5	byte		&0x20	\b, experimental
+>>5	byte		&0x10	\b, footer present
+>(6.I)	indirect	x	\b, contains: 
+
+# NSF (NES sound file) magic
+0	string		NESM\x1a	NES Sound File
+>14	string		>\0		("%s" by
+>46	string		>\0		%s, copyright
+>78	string		>\0		%s),
+>5	byte		x		version %d,
+>6	byte		x		%d tracks,
+>122	byte&0x2	=1		dual PAL/NTSC
+>122	byte&0x1	=1		PAL
+>122	byte&0x1	=0		NTSC
+
+# Type: SNES SPC700 sound files
+# From: Josh Triplett <josh@freedesktop.org>
+0	string	SNES-SPC700\ Sound\ File\ Data\ v	SNES SPC700 sound file
+>&0	string	0.30					\b, version %s
+>>0x23	byte	0x1B					\b, without ID666 tag
+>>0x23	byte	0x1A					\b, with ID666 tag
+>>>0x2E	string	>\0					\b, song "%.32s"
+>>>0x4E	string	>\0					\b, game "%.32s"
+
+# Impulse tracker module (audio/x-it)
+0	string		IMPM		Impulse Tracker module sound data -
+!:mime	audio/x-mod
+>4	string		>\0		"%s"
+>40	leshort		!0		compatible w/ITv%x
+>42	leshort		!0		created w/ITv%x
+
+# Imago Orpheus module (audio/x-imf)
+60	string		IM10		Imago Orpheus module sound data -
+>0	string		>\0		"%s"
+
+# From <collver1@attbi.com>
+# These are the /etc/magic entries to decode modules, instruments, and
+# samples in Impulse Tracker's native format.
+
+0	string		IMPS		Impulse Tracker Sample
+>18	byte		&2		16 bit
+>18	byte		^2		8 bit
+>18	byte		&4		stereo
+>18	byte		^4		mono
+0	string		IMPI		Impulse Tracker Instrument
+>28	leshort		!0		ITv%x
+>30	byte		!0		%d samples
+
+# Yamaha TX Wave:  file(1) magic for Yamaha TX Wave audio files
+# From <collver1@attbi.com>
+0	string		LM8953		Yamaha TX Wave
+>22	byte		0x49		looped
+>22	byte		0xC9		non-looped
+>23	byte		1		33kHz
+>23	byte		2		50kHz
+>23	byte		3		16kHz
+
+# scream tracker:  file(1) magic for Scream Tracker sample files
+#
+# From <collver1@attbi.com>
+76	string		SCRS		Scream Tracker Sample
+>0	byte		1		sample
+>0	byte		2		adlib melody
+>0	byte		>2		adlib drum
+>31	byte		&2		stereo
+>31	byte		^2		mono
+>31	byte		&4		16bit little endian
+>31	byte		^4		8bit
+>30	byte		0		unpacked
+>30	byte		1		packed
+
+# audio
+# From: Cory Dikkers <cdikkers@swbell.net>
+0	string		MMD0		MED music file, version 0
+0	string		MMD1		OctaMED Pro music file, version 1
+0	string		MMD3		OctaMED Soundstudio music file, version 3
+0	string		OctaMEDCmpr	OctaMED Soundstudio compressed file
+0	string		MED		MED_Song
+0	string		SymM		Symphonie SymMOD music file
+#
+0	string		THX		AHX version
+>3	byte		=0		1 module data
+>3	byte		=1		2 module data
+#
+0	string		OKTASONG	Oktalyzer module data
+#
+0	string		DIGI\ Booster\ module\0	%s
+>20	byte		>0		%c
+>>21	byte		>0		\b%c
+>>>22	byte		>0		\b%c
+>>>>23	byte		>0		\b%c
+>610	string		>\0		\b, "%s"
+#
+0	string		DBM0	   	DIGI Booster Pro Module
+>4	byte		>0		V%X.
+>>5	byte		x		\b%02X
+>16	string		>\0		\b, "%s"
+#
+0	string		FTMN		FaceTheMusic module
+>16	string		>\0d		\b, "%s"
+
+# From: <doj@cubic.org> 2003-06-24
+0	string		AMShdr\32	Velvet Studio AMS Module v2.2
+0	string		Extreme		Extreme Tracker AMS Module v1.3
+0	string		DDMF		Xtracker DMF Module
+>4	byte		x		v%i
+>0xD	string		>\0		Title: "%s"
+>0x2B	string		>\0		Composer: "%s"
+0	string		DSM\32		Dynamic Studio Module DSM
+0	string		SONG		DigiTrekker DTM Module
+0	string		DMDL		DigiTrakker MDL Module
+0	string		PSM\32		Protracker Studio PSM Module
+44	string		PTMF		Poly Tracker PTM Module
+>0	string		>\32		Title: "%s"
+0	string		MT20		MadTracker 2.0 Module MT2
+0	string		RAD\40by\40REALiTY!! RAD Adlib Tracker Module RAD
+0	string		RTMM		RTM Module
+0x426	string		MaDoKaN96	XMS Adlib Module
+>0	string		>\0		Composer: "%s"
+0	string		AMF		AMF Module
+>4	string		>\0		Title: "%s"
+0	string		MODINFO1	Open Cubic Player Module Inforation MDZ
+0	string		Extended\40Instrument: Fast Tracker II Instrument
+
+# From: Takeshi Hamasaki <hma@syd.odn.ne.jp>
+# NOA Nancy Codec file
+0	string		\210NOA\015\012\032	NOA Nancy Codec Movie file
+# Yamaha SMAF format
+0	string		MMMD		Yamaha SMAF file
+# Sharp Jisaku Melody format for PDC
+0	string		\001Sharp\040JisakuMelody	SHARP Cell-Phone ringing Melody
+>20	string		Ver01.00	Ver. 1.00
+>>32	byte		x		, %d tracks
+
+# Free lossless audio codec <http://flac.sourceforge.net>
+# From: Przemyslaw Augustyniak <silvathraec@rpg.pl>
+0	string			fLaC		FLAC audio bitstream data
+!:mime	audio/x-flac
+>4	byte&0x7f		>0		\b, unknown version
+>4	byte&0x7f		0		\b
+# some common bits/sample values
+>>20	beshort&0x1f0		0x030		\b, 4 bit
+>>20	beshort&0x1f0		0x050		\b, 6 bit
+>>20	beshort&0x1f0		0x070		\b, 8 bit
+>>20	beshort&0x1f0		0x0b0		\b, 12 bit
+>>20	beshort&0x1f0		0x0f0		\b, 16 bit
+>>20	beshort&0x1f0		0x170		\b, 24 bit
+>>20	byte&0xe		0x0		\b, mono
+>>20	byte&0xe		0x2		\b, stereo
+>>20	byte&0xe		0x4		\b, 3 channels
+>>20	byte&0xe		0x6		\b, 4 channels
+>>20	byte&0xe		0x8		\b, 5 channels
+>>20	byte&0xe		0xa		\b, 6 channels
+>>20	byte&0xe		0xc		\b, 7 channels
+>>20	byte&0xe		0xe		\b, 8 channels
+# some common sample rates
+>>17	belong&0xfffff0		0x0ac440	\b, 44.1 kHz
+>>17	belong&0xfffff0		0x0bb800	\b, 48 kHz
+>>17	belong&0xfffff0		0x07d000	\b, 32 kHz
+>>17	belong&0xfffff0		0x056220	\b, 22.05 kHz
+>>17	belong&0xfffff0		0x05dc00	\b, 24 kHz
+>>17	belong&0xfffff0		0x03e800	\b, 16 kHz
+>>17	belong&0xfffff0		0x02b110	\b, 11.025 kHz
+>>17	belong&0xfffff0		0x02ee00	\b, 12 kHz
+>>17	belong&0xfffff0		0x01f400	\b, 8 kHz
+>>17	belong&0xfffff0		0x177000	\b, 96 kHz
+>>17	belong&0xfffff0		0x0fa000	\b, 64 kHz
+>>21	byte&0xf		>0		\b, >4G samples
+>>21	byte&0xf		0		\b
+>>>22	belong			>0		\b, %u samples
+>>>22	belong			0		\b, length unknown
+
+# (ISDN) VBOX voice message file (Wolfram Kleff)
+0       string          VBOX            VBOX voice message data
+
+# ReBorn Song Files (.rbs)
+# David J. Singer <doc@deadvirgins.org.uk>
+8       string          RB40             RBS Song file
+>29     string          ReBorn           created by ReBorn
+>37     string          Propellerhead    created by ReBirth
+
+# Synthesizer Generator and Kimwitu share their file format
+0	string		A#S#C#S#S#L#V#3	    Synthesizer Generator or Kimwitu data
+# Kimwitu++ uses a slightly different magic
+0	string		A#S#C#S#S#L#HUB	    Kimwitu++ data
+
+# From "Simon Hosie
+0       string  TFMX-SONG       TFMX module sound data
+
+# Monkey's Audio compressed audio format (.ape)
+# From danny.milo@gmx.net (Danny Milosavljevic)
+# New version from Abel Cheung <abel (@) oaka.org>
+0		string		MAC\040		Monkey's Audio compressed format
+>4		uleshort	>0x0F8B		version %d
+>>(0x08.l)	uleshort	=1000		with fast compression
+>>(0x08.l)	uleshort	=2000		with normal compression
+>>(0x08.l)	uleshort	=3000		with high compression
+>>(0x08.l)	uleshort	=4000		with extra high compression
+>>(0x08.l)	uleshort	=5000		with insane compression
+>>(0x08.l+18)	uleshort	=1		\b, mono
+>>(0x08.l+18)	uleshort	=2		\b, stereo
+>>(0x08.l+20)	ulelong		x		\b, sample rate %d
+>4		uleshort	<0x0F8C		version %d
+>>6		uleshort	=1000		with fast compression
+>>6		uleshort	=2000		with normal compression
+>>6		uleshort	=3000		with high compression
+>>6		uleshort	=4000		with extra high compression
+>>6		uleshort	=5000		with insane compression
+>>10		uleshort	=1		\b, mono
+>>10		uleshort	=2		\b, stereo
+>>12		ulelong		x		\b, sample rate %d
+
+# adlib sound files
+# From Gürkan Sengün <gurkan@linuks.mine.nu>, http://www.linuks.mine.nu
+0    	string		RAWADATA	RdosPlay RAW
+
+1068	string		RoR		AMUSIC Adlib Tracker
+
+0	string		JCH		EdLib
+
+0	string		mpu401tr	MPU-401 Trakker
+
+0	string		SAdT		Surprise! Adlib Tracker
+>4	byte		x		Version %d
+
+0	string		XAD!		eXotic ADlib
+
+0	string		ofTAZ!		eXtra Simple Music
+
+# Spectrum 128 tunes (.ay files).
+# From: Emanuel Haupt <ehaupt@critical.ch>
+0	string		ZXAYEMUL	Spectrum 128 tune
+
+0	string		\0BONK		BONK,
+#>5	byte		x		version %d
+>14	byte		x		%d channel(s),
+>15	byte		=1		lossless,
+>15	byte		=0		lossy,
+>16	byte		x		mid-side
+
+384	string		LockStream	LockStream Embedded file (mostly MP3 on old Nokia phones)
+
+# format VQF (proprietary codec for sound)
+# some infos on the header file available at :
+# http://www.twinvq.org/english/technology_format.html
+0	string		TWIN97012000	VQF data
+>27	short		0		\b, Mono
+>27	short		1		\b, Stereo
+>31	short 		>0		\b, %d kbit/s
+>35	short 		>0		\b, %d kHz
+
+# Nelson A. de Oliveira (naoliv@gmail.com)
+# .eqf
+0	string	Winamp\ EQ\ library\ file	%s
+# it will match only versions like v<digit>.<digit>
+# Since I saw only eqf files with version v1.1 I think that it's OK
+>23	string	x	\b%.4s
+# .preset
+0	string	[Equalizer\ preset]	XMMS equalizer preset
+# .m3u
+0	search/1	#EXTM3U 	M3U playlist text
+# .pls
+0	search/1	[playlist]	PLS playlist text
+# licq.conf
+1	string	[licq]			LICQ configuration file
+
+# Atari ST audio files by Dirk Jagdmann <doj@cubic.org>
+0	string		ICE!		SNDH Atari ST music
+0	string		SC68\ Music-file\ /\ (c)\ (BeN)jami	sc68 Atari ST music
+
+# musepak support From: "Jiri Pejchal" <jiri.pejchal@gmail.com>
+0       string          MP+     Musepack audio
+>3      byte            255     \b, SV pre8
+>3      byte&0xF        0x6     \b, SV 6
+>3      byte&0xF        0x8     \b, SV 8
+>3      byte&0xF        0x7     \b, SV 7
+>>3     byte&0xF0       0x0     \b.0
+>>3     byte&0xF0       0x10    \b.1
+>>3     byte&0xF0       240     \b.15
+>>10    byte&0xF0       0x0     \b, no profile
+>>10    byte&0xF0       0x10    \b, profile 'Unstable/Experimental'
+>>10    byte&0xF0       0x50    \b, quality 0
+>>10    byte&0xF0       0x60    \b, quality 1
+>>10    byte&0xF0       0x70    \b, quality 2 (Telephone)
+>>10    byte&0xF0       0x80    \b, quality 3 (Thumb)
+>>10    byte&0xF0       0x90    \b, quality 4 (Radio)
+>>10    byte&0xF0       0xA0    \b, quality 5 (Standard)
+>>10    byte&0xF0       0xB0    \b, quality 6 (Xtreme)
+>>10    byte&0xF0       0xC0    \b, quality 7 (Insane)
+>>10    byte&0xF0       0xD0    \b, quality 8 (BrainDead)
+>>10    byte&0xF0       0xE0    \b, quality 9
+>>10    byte&0xF0       0xF0    \b, quality 10
+>>27    byte            0x0     \b, Buschmann 1.7.0-9, Klemm 0.90-1.05
+>>27    byte            102     \b, Beta 1.02
+>>27    byte            104     \b, Beta 1.04
+>>27    byte            105     \b, Alpha 1.05
+>>27    byte            106     \b, Beta 1.06
+>>27    byte            110     \b, Release 1.1
+>>27    byte            111     \b, Alpha 1.11
+>>27    byte            112     \b, Beta 1.12
+>>27    byte            113     \b, Alpha 1.13
+>>27    byte            114     \b, Beta 1.14
+>>27    byte            115     \b, Alpha 1.15
+
+# IMY
+# from http://filext.com/detaillist.php?extdetail=IMY
+# http://cellphones.about.com/od/cellularfaqs/f/rf_imelody.htm
+# http://download.ncl.ie/doc/api/ie/ncl/media/music/IMelody.html
+# http://www.wx800.com/msg/download/irda/iMelody.pdf
+0	string	BEGIN:IMELODY	iMelody Ringtone Format
+
+# From: "Mateus Caruccio" <mateus@caruccio.com>
+# guitar pro v3,4,5 from http://filext.com/file-extension/gp3
+0	string	\030FICHIER\ GUITAR\ PRO\ v3.	Guitar Pro Ver. 3 Tablature
+
+# From: "Leslie P. Polzer" <leslie.polzer@gmx.net>
+60	string	SONG		SoundFX Module sound file
+
+# Type: Adaptive Multi-Rate Codec
+# URL:  http://filext.com/detaillist.php?extdetail=AMR
+# From: Russell Coker <russell@coker.com.au>
+0	string	#!AMR		Adaptive Multi-Rate Codec (GSM telephony)
+
+# Type: SuperCollider 3 Synth Definition File Format
+# From: Mario Lang <mlang@debian.org>
+0	string	SCgf	SuperCollider3 Synth Definition file,
+>4	belong	x	version %d
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/basis b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/basis
new file mode 100755
index 0000000000000000000000000000000000000000..128aa4c77c2d8909d33f94b7b381baa61284a40e
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/basis
@@ -0,0 +1,18 @@
+
+#----------------------------------------------------------------
+# $File: basis,v 1.4 2009/09/19 16:28:08 christos Exp $
+# basis: file(1) magic for BBx/Pro5-files
+#      Oliver Dammer <dammer@olida.de>	 2005/11/07
+# http://www.basis.com business-basic-files.
+#
+0	string		\074\074bbx\076\076	BBx
+>7	string		\000			indexed file
+>7	string		\001			serial file
+>7	string		\002			keyed file
+>>13	short		0			(sort)
+>7	string		\004			program
+>>18	byte		x			(LEVEL %d)
+>>>23	string		>\000			psaved
+>7	string		\006			mkeyed file
+>>13	short		0			(sort)
+>>8	string		\000			(mkey)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/bflt b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/bflt
new file mode 100755
index 0000000000000000000000000000000000000000..03eb59d34ae17d19717a99e46200438092e8205e
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/bflt
@@ -0,0 +1,14 @@
+
+#------------------------------------------------------------------------------
+# $File: bflt,v 1.4 2009/09/19 16:28:08 christos Exp $
+# bFLT: file(1) magic for BFLT uclinux binary files
+#
+# From Philippe De Muyter <phdm@macqel.be>
+#
+0	string		bFLT		BFLT executable
+>4	belong		x		- version %ld
+>4	belong		4
+>>36	belong&0x1	0x1		ram
+>>36	belong&0x2	0x2		gotpic
+>>36	belong&0x4	0x4		gzip
+>>36	belong&0x8	0x8		gzdata
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/blcr b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/blcr
new file mode 100755
index 0000000000000000000000000000000000000000..70ea563e182d0fb30ebb4b5139c69af60c8f1604
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/blcr
@@ -0,0 +1,25 @@
+# Berkeley Lab Checkpoint Restart (BLCR) checkpoint context files
+# http://ftg.lbl.gov/checkpoint
+0	string	C\0\0\0R\0\0\0	BLCR
+>16	lelong	1	x86
+>16	lelong	3	alpha
+>16	lelong	5	x86-64
+>16	lelong	7	ARM
+>8	lelong	x	context data (little endian, version %d)
+# Uncomment the following only of your "file" program supports "search"
+#>0	search/1024	VMA\06	for kernel
+#>>&1	byte	x	%d.
+#>>&2	byte	x	%d.
+#>>&3	byte	x	%d
+0	string	\0\0\0C\0\0\0R	BLCR
+>16	belong	2	SPARC
+>16	belong	4	ppc
+>16	belong	6	ppc64
+>16	belong	7	ARMEB
+>16	belong	8	SPARC64
+>8	belong	x	context data (big endian, version %d)
+# Uncomment the following only of your "file" program supports "search"
+#>0	search/1024	VMA\06	for kernel
+#>>&1	byte	x	%d.
+#>>&2	byte	x	\b%d.
+#>>&3	byte	x	\b%d
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/blender b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/blender
new file mode 100755
index 0000000000000000000000000000000000000000..1814738ab4a2448fd6c046bd251a965c9ba623c7
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/blender
@@ -0,0 +1,39 @@
+
+#------------------------------------------------------------------------------
+# $File: blender,v 1.5 2009/09/19 16:28:08 christos Exp $
+# blender: file(1) magic for Blender 3D related files
+#
+# Native format rule v1.2. For questions use the developers list 
+# http://lists.blender.org/mailman/listinfo/bf-committers
+# GLOB chunk was moved near start and provides subversion info since 2.42 
+
+0		string	=BLENDER	Blender3D,
+>7		string	=_		saved as 32-bits
+>>8		string	=v		little endian
+>>>9		byte	x		with version %c.
+>>>10		byte	x		\b%c
+>>>11		byte	x		\b%c
+>>>0x40		string	=GLOB		\b.
+>>>>0x58	leshort	x		\b%.4d
+>>8		string	=V		big endian
+>>>9		byte	x		with version %c.
+>>>10		byte	x		\b%c
+>>>11		byte	x		\b%c
+>>>0x40		string	=GLOB		\b.
+>>>>0x58	beshort	x		\b%.4d
+>7		string	=-		saved as 64-bits
+>>8		string	=v		little endian
+>>9		byte	x		with version %c.
+>>10		byte	x		\b%c
+>>11		byte	x		\b%c
+>>0x44		string	=GLOB		\b.
+>>>0x60		leshort	x		\b%.4d
+>>8		string	=V		big endian
+>>>9		byte	x		with version %c.
+>>>10		byte	x		\b%c
+>>>11		byte	x		\b%c
+>>>0x44		string	=GLOB		\b.
+>>>>0x60	beshort	x		\b%.4d
+
+# Scripts that run in the embeded Python interpreter
+0		string	#!BPY		Blender3D BPython script
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/blit b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/blit
new file mode 100755
index 0000000000000000000000000000000000000000..d5b687fce60b87f946a6c42c689ccb96e8c6737c
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/blit
@@ -0,0 +1,20 @@
+
+#------------------------------------------------------------------------------
+# $File: blit,v 1.8 2009/09/19 16:28:08 christos Exp $
+# blit:  file(1) magic for 68K Blit stuff as seen from 680x0 machine
+#
+# Note that this 0407 conflicts with several other a.out formats...
+#
+# XXX - should this be redone with "be" and "le", so that it works on
+# little-endian machines as well?  If so, what's the deal with
+# "VAX-order" and "VAX-order2"?
+#
+#0	long		0407		68K Blit (standalone) executable
+#0	short		0407		VAX-order2 68K Blit (standalone) executable
+0	short		03401		VAX-order 68K Blit (standalone) executable
+0	long		0406		68k Blit mpx/mux executable
+0	short		0406		VAX-order2 68k Blit mpx/mux executable
+0	short		03001		VAX-order 68k Blit mpx/mux executable
+# Need more values for WE32 DMD executables.
+# Note that 0520 is the same as COFF
+#0	short		0520		tty630 layers executable
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/bout b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/bout
new file mode 100755
index 0000000000000000000000000000000000000000..693cc2a4bd8196d7caa3b2c0b108a942fffcec0b
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/bout
@@ -0,0 +1,11 @@
+
+#------------------------------------------------------------------------------
+# $File: bout,v 1.5 2009/09/19 16:28:08 christos Exp $
+# i80960 b.out objects and archives
+#
+0	long		0x10d		i960 b.out relocatable object
+>16	long		>0		not stripped
+#
+# b.out archive (hp-rt on i960)
+0	string		=!<bout>	b.out archive
+>8	string		__.SYMDEF	random library
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/bsdi b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/bsdi
new file mode 100755
index 0000000000000000000000000000000000000000..be16e3a1a23b4cfe93c194be72ca98f8ac6b12af
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/bsdi
@@ -0,0 +1,43 @@
+
+#------------------------------------------------------------------------------
+# $File: bsdi,v 1.5 2009/09/19 16:28:08 christos Exp $
+# bsdi:  file(1) magic for BSD/OS (from BSDI) objects
+#
+
+0	lelong		0314		386 compact demand paged pure executable
+>16	lelong		>0		not stripped
+>32	byte		0x6a		(uses shared libs)
+
+0	lelong		0407		386 executable
+>16	lelong		>0		not stripped
+>32	byte		0x6a		(uses shared libs)
+
+0	lelong		0410		386 pure executable
+>16	lelong		>0		not stripped
+>32	byte		0x6a		(uses shared libs)
+
+0	lelong		0413		386 demand paged pure executable
+>16	lelong		>0		not stripped
+>32	byte		0x6a		(uses shared libs)
+
+# same as in SunOS 4.x, except for static shared libraries
+0	belong&077777777	0600413		sparc demand paged
+>0	byte		&0x80
+>>20	belong		<4096		shared library
+>>20	belong		=4096		dynamically linked executable
+>>20	belong		>4096		dynamically linked executable
+>0	byte		^0x80		executable
+>16	belong		>0		not stripped
+>36	belong		0xb4100001	(uses shared libs)
+
+0	belong&077777777	0600410		sparc pure
+>0	byte		&0x80		dynamically linked executable
+>0	byte		^0x80		executable
+>16	belong		>0		not stripped
+>36	belong		0xb4100001	(uses shared libs)
+
+0	belong&077777777	0600407		sparc
+>0	byte		&0x80		dynamically linked executable
+>0	byte		^0x80		executable
+>16	belong		>0		not stripped
+>36	belong		0xb4100001	(uses shared libs)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/bsi b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/bsi
new file mode 100755
index 0000000000000000000000000000000000000000..51a62891c2c8bb303b75aa2e1d714f88d33c1bfc
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/bsi
@@ -0,0 +1,9 @@
+# Chiasmus is a encryption standard developed by the German Federal
+# Office for Information Security (Bundesamt fuer Sicherheit in der
+# Informationstechnik).
+
+# Extension: .xia
+0	string	XIA1	Chiasmus encrypted data
+
+# Extension: .xis
+0	string	XIS	Chiasmus key
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/btsnoop b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/btsnoop
new file mode 100755
index 0000000000000000000000000000000000000000..d72daad877d7d5ac0d691e6c66c803a351e40ac7
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/btsnoop
@@ -0,0 +1,13 @@
+
+#------------------------------------------------------------------------------
+# $File: btsnoop,v 1.5 2009/09/19 16:28:08 christos Exp $
+# BTSnoop:  file(1) magic for BTSnoop files
+#
+# From <marcel@holtmann.org>
+0	string		btsnoop\0		BTSnoop
+>8	belong		x			version %d,
+>12	belong		1001			Unencapsulated HCI
+>12	belong		1002			HCI UART (H4)
+>12	belong		1003			HCI BCSP
+>12	belong		1004			HCI Serial (H5)
+>>12	belong		x			type %d
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/c-lang b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/c-lang
new file mode 100755
index 0000000000000000000000000000000000000000..cb6d10abccad7c07ab593b263acfd522c35848fb
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/c-lang
@@ -0,0 +1,29 @@
+
+#------------------------------------------------------------------------------
+# $File: c-lang,v 1.14 2009/09/19 16:28:08 christos Exp $
+# c-lang:  file(1) magic for C programs (or REXX)
+#
+
+# XPM icons (Greg Roelofs, newt@uchicago.edu)
+# if you uncomment "/*" for C/REXX below, also uncomment this entry
+#0	string		/*\ XPM\ */	X pixmap image data
+#!:mime	image/x-xpmi
+
+# 3DS (3d Studio files) Conflicts with diff output 0x3d '='
+#16	beshort		0x3d3d		image/x-3ds
+
+# this first will upset you if you're a PL/1 shop...
+# in which case rm it; ascmagic will catch real C programs
+#0	search/1	/*		C or REXX program text
+#0	search/1	//		C++ program text
+
+# From: Mikhail Teterin <mi@aldan.algebra.com> 
+0	string		cscope		cscope reference data
+>7	string		x		version %.2s
+# We skip the path here, because it is often long (so file will
+# truncate it) and mostly redundant.
+# The inverted index functionality was added some time betwen
+# versions 11 and 15, so look for -q if version is above 14:
+>7	string		>14
+>>10	search/100	\ -q\ 		with inverted index
+>10	search/100	\ -c\ 		text (non-compressed)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/c64 b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/c64
new file mode 100755
index 0000000000000000000000000000000000000000..eea3e319101a74047e1786f10621638c3feafe78
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/c64
@@ -0,0 +1,43 @@
+
+#------------------------------------------------------------------------------
+# $File: c64,v 1.5 2009/09/19 16:28:08 christos Exp $
+# c64:  file(1) magic for various commodore 64 related files
+#
+# From: Dirk Jagdmann <doj@cubic.org>
+
+0x16500	belong		0x12014100	D64 Image
+0x16500	belong		0x12014180	D71 Image
+0x61800 belong		0x28034400	D81 Image
+0	string		C64\40CARTRIDGE	CCS C64 Emultar Cartridge Image
+0	belong		0x43154164	X64 Image
+
+0	string		GCR-1541	GCR Image
+>8	byte		x		version: %i
+>9	byte		x		tracks: %i
+
+9	string		PSUR		ARC archive (c64)
+2	string		-LH1-		LHA archive (c64)
+
+0	string		C64File		PC64 Emulator file
+>8	string		>\0		"%s"
+0	string		C64Image	PC64 Freezer Image
+
+0	beshort		0x38CD		C64 PCLink Image
+0	string		CBM\144\0\0	Power 64 C64 Emulator Snapshot
+
+0	belong		0xFF424CFF	WRAptor packer (c64)
+
+0	string		C64S\x20tape\x20file	T64 tape Image
+>32	leshort		x		Version:0x%x
+>36	leshort		!0		Entries:%i
+>40	string		x		Name:%.24s
+
+0	string		C64\x20tape\x20image\x20file\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0	T64 tape Image
+>32	leshort		x		Version:0x%x
+>36	leshort		!0		Entries:%i
+>40	string		x		Name:%.24s
+
+0	string		C64S\x20tape\x20image\x20file\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0	T64 tape Image
+>32	leshort		x		Version:0x%x
+>36	leshort		!0		Entries:%i
+>40	string		x		Name:%.24s
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/cad b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/cad
new file mode 100755
index 0000000000000000000000000000000000000000..8069b1d47e10167b484387001fdd2b7e2bb3b1a7
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/cad
@@ -0,0 +1,115 @@
+
+#------------------------------------------------------------------------------
+# $File: cad,v 1.10 2010/12/25 14:33:43 christos Exp $
+# autocad:  file(1) magic for cad files
+#
+
+# AutoCAD DWG versions R13/R14 (www.autodesk.com)
+# Written December 01, 2003 by Lester Hightower
+# Based on the DWG File Format Specifications at http://www.opendwg.org/
+0	string	       \101\103\061\060\061		   AutoCAD
+>5	string	       \062\000\000\000\000		   DWG ver. R13
+>5	string	       \064\000\000\000\000		   DWG ver. R14
+
+# Microstation DGN/CIT Files (www.bentley.com)
+# Last updated July 29, 2005 by Lester Hightower
+# DGN is the default file extension of Microstation/Intergraph CAD files.
+# CIT is the proprietary raster format (similar to TIFF) used to attach
+# raster underlays to Microstation DGN (vector) drawings.
+# 
+# http://www.wotsit.org/search.asp
+# http://filext.com/detaillist.php?extdetail=DGN
+# http://filext.com/detaillist.php?extdetail=CIT
+#
+# http://www.bentley.com/products/default.cfm?objectid=97F351F5-9C35-4E5E-89C2
+# 3F86C928&method=display&p_objectid=97F351F5-9C35-4E5E-89C280A93F86C928
+# http://www.bentley.com/products/default.cfm?objectid=A5C2FD43-3AC9-4C71-B682
+# 721C479F&method=display&p_objectid=A5C2FD43-3AC9-4C71-B682C7BE721C479F
+0	string	\010\011\376			Microstation
+>3	string	\002
+>>30	string	\026\105			DGNFile
+>>30	string	\034\105			DGNFile
+>>30	string	\073\107			DGNFile
+>>30	string	\073\110			DGNFile
+>>30	string	\106\107			DGNFile
+>>30	string	\110\103			DGNFile
+>>30	string	\120\104			DGNFile
+>>30	string	\172\104			DGNFile
+>>30	string	\172\105			DGNFile
+>>30	string	\172\106			DGNFile
+>>30	string	\234\106			DGNFile
+>>30	string	\273\105			DGNFile
+>>30	string	\306\106			DGNFile
+>>30	string	\310\104			DGNFile
+>>30	string	\341\104			DGNFile
+>>30	string	\372\103			DGNFile
+>>30	string	\372\104			DGNFile
+>>30	string	\372\106			DGNFile
+>>30	string	\376\103			DGNFile
+>4	string	\030\000\000			CITFile
+>4	string	\030\000\003			CITFile
+
+# AutoCad, from Nahuel Greco
+# AutoCAD DWG versions R12/R13/R14 (www.autodesk.com)
+0	string	AC1012		DWG AutoDesk AutoCad (release 12)
+0	string	AC1013		DWG AutoDesk AutoCad (release 13)
+0	string	AC1014		DWG AutoDesk AutoCad (release 14)
+# A new version of AutoCAD DWG
+# Sergey Zaykov (mail_of_sergey@mail.ru, sergey_zaikov@rambler.ru,
+# ICQ 358572321)
+# From various sources like:
+# http://autodesk.blogs.com/between_the_lines/autocad-release-history.html
+0	string	AC1018 		DWG AutoDesk AutoCAD 2004/2005/2006
+0	string	AC1021 		DWG AutoDesk AutoCAD 2007/2008/2009
+0	string	AC1024 		DWG AutoDesk AutoCAD 2010/2011
+
+# KOMPAS 2D drawing from ASCON 
+# This is KOMPAS 2D drawing or fragment of drawing but is not detailed nor
+# gathered nor specification
+# ASCON http://ascon.net/main/ in English,
+#	http://ascon.ru/ main site in Russian
+# Extension is CDW for drawing and FRW for fragment of drawing 
+# Sergey Zaykov (mail_of_sergey@mail.ru, sergey_zaikov@rambler.ru,
+# ICQ 358572321, http://vkontakte.ru/id16076543)
+# From:
+# http://sd.ascon.ru/otrs/customer.pl?Action=CustomerFAQ&CategoryID=4&ItemID=292
+# (in russian) and my experiments
+0	string	KF
+>2	belong	0x4E00000C	Kompas drawing 12.0 SP1 
+>2	belong	0x4D00000C	Kompas drawing 12.0 
+>2	belong	0x3200000B	Kompas drawing 11.0 SP1 
+>2	belong	0x3100000B	Kompas drawing 11.0 
+>2	belong	0x2310000A	Kompas drawing 10.0 SP1 
+>2	belong	0x2110000A	Kompas drawing 10.0 
+>2	belong	0x08000009	Kompas drawing 9.0 SP1 
+>2	belong	0x05000009	Kompas drawing 9.0 
+>2	belong	0x33010008	Kompas drawing 8+ 
+>2	belong	0x1A000008	Kompas drawing 8.0 
+>2	belong	0x2C010107	Kompas drawing 7+ 
+>2	belong	0x05000007	Kompas drawing 7.0 
+>2	belong	0x32000006	Kompas drawing 6+ 
+>2	belong	0x09000006	Kompas drawing 6.0 
+>2	belong	0x5C009005	Kompas drawing 5.11R03 
+>2	belong	0x54009005	Kompas drawing 5.11R02 
+>2	belong	0x51009005	Kompas drawing 5.11R01 
+>2	belong	0x22009005	Kompas drawing 5.10R03 
+>2	belong	0x22009005	Kompas drawing 5.10R02 mar 
+>2	belong	0x21009005	Kompas drawing 5.10R02 febr 
+>2	belong	0x19009005	Kompas drawing 5.10R01 
+>2	belong	0xF4008005	Kompas drawing 5.9R01.003 
+>2	belong	0x1C008005	Kompas drawing 5.9R01.002 
+>2	belong	0x11008005	Kompas drawing 5.8R01.003 
+
+# CAD: file(1) magic for computer aided design files
+# Phillip Griffith <phillip dot griffith at gmail dot com>
+# AutoCAD magic taken from the Open Design Alliance's OpenDWG specifications.
+#
+0	belong	0x08051700	Bentley/Intergraph MicroStation DGN cell library
+0	belong	0x0809fe02	Bentley/Intergraph MicroStation DGN vector CAD
+0	belong	0xc809fe02	Bentley/Intergraph MicroStation DGN vector CAD
+0	beshort	0x0809		Bentley/Intergraph MicroStation
+>0x02	byte	0xfe
+>>0x04	beshort	0x1800		CIT raster CAD
+0	string	AC1012		AutoDesk AutoCAD R13
+0	string	AC1014		AutoDesk AutoCAD R14 
+0	string	AC1015		AutoDesk AutoCAD R2000
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/cafebabe b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/cafebabe
new file mode 100755
index 0000000000000000000000000000000000000000..6400e2f3b0e2d7b58546f68e67310e86243b4659
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/cafebabe
@@ -0,0 +1,40 @@
+
+#------------------------------------------------------------------------------
+# $File: cafebabe,v 1.8 2009/09/19 16:28:08 christos Exp $
+# Cafe Babes unite!
+#
+# Since Java bytecode and Mach-O fat-files have the same magic number, the test
+# must be performed in the same "magic" sequence to get both right.  The long
+# at offset 4 in a mach-O fat file tells the number of architectures; the short at
+# offset 4 in a Java bytecode file is the JVM minor version and the
+# short at offset 6 is the JVM major version.  Since there are only 
+# only 18 labeled Mach-O architectures at current, and the first released 
+# Java class format was version 43.0, we can safely choose any number
+# between 18 and 39 to test the number of architectures against
+# (and use as a hack). Let's not use 18, because the Mach-O people
+# might add another one or two as time goes by...
+#
+0	belong		0xcafebabe
+!:mime	application/x-java-applet
+>4	belong		>30		compiled Java class data,
+>>6	beshort		x	        version %d.
+>>4	beshort		x       	\b%d
+# Which is which?
+#>>4	belong		0x032d		(Java 1.0)
+#>>4	belong		0x032d		(Java 1.1)
+>>4	belong		0x002e		(Java 1.2)
+>>4	belong		0x002f		(Java 1.3)
+>>4	belong		0x0030		(Java 1.4)
+>>4	belong		0x0031		(Java 1.5)
+>>4	belong		0x0032		(Java 1.6)
+
+
+0	belong		0xcafebabe
+>4	belong		1		Mach-O fat file with 1 architecture
+>4	belong		>1
+>>4	belong		<20		Mach-O fat file with %ld architectures
+
+0	belong		0xcafed00d	JAR compressed with pack200,
+>>5	byte		x		version %d.
+>>4	byte		x		\b%d
+!:mime	application/x-java-pack200
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/cddb b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/cddb
new file mode 100755
index 0000000000000000000000000000000000000000..5d8a8517e276088a58fcaa19673a5cb66e45a4c0
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/cddb
@@ -0,0 +1,12 @@
+
+#------------------------------------------------------------------------------
+# $File: cddb,v 1.4 2009/09/19 16:28:08 christos Exp $
+# CDDB: file(1) magic for CDDB(tm) format CD text data files
+#
+# From <steve@gracenote.com>
+#
+# This is the /etc/magic entry to decode datafiles as used by
+# CDDB-enabled CD player applications.
+#
+
+0	search/1/w	#\040xmcd	CDDB(tm) format CD text data
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/chord b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/chord
new file mode 100755
index 0000000000000000000000000000000000000000..00d0bec65a5e3f6473a6cabb650c2666d91642bb
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/chord
@@ -0,0 +1,15 @@
+
+#------------------------------------------------------------------------------
+# $File: chord,v 1.5 2010/09/20 19:19:16 rrt Exp $
+# chord: file(1) magic for Chord music sheet typesetting utility input files
+#
+# From Philippe De Muyter <phdm@macqel.be>
+# File format is actually free, but many distributed files begin with `{title'
+#
+0	string		{title		Chord text file
+
+# Type:	PowerTab file format
+# URL:	http://www.power-tab.net/
+# From:	Jelmer Vernooij <jelmer@samba.org>
+0	string		ptab\003\000	Power-Tab v3 Tablature File
+0	string		ptab\004\000	Power-Tab v4 Tablature File
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/cisco b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/cisco
new file mode 100755
index 0000000000000000000000000000000000000000..0279bbb5b5af1bd72be6dec34efba922be9af2ad
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/cisco
@@ -0,0 +1,12 @@
+
+#------------------------------------------------------------------------------
+# $File: cisco,v 1.4 2009/09/19 16:28:08 christos Exp $
+# cisco:  file(1) magic for cisco Systems routers
+#
+# Most cisco file-formats are covered by the generic elf code
+#
+# Microcode files are non-ELF, 0x8501 conflicts with NetBSD/alpha.
+0	belong&0xffffff00	0x85011400  cisco IOS microcode
+>7	string		>\0		    for '%s'
+0	belong&0xffffff00	0x8501cb00  cisco IOS experimental microcode
+>7	string		>\0		    for '%s'
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/citrus b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/citrus
new file mode 100755
index 0000000000000000000000000000000000000000..ff2471ea75ace98cccb1d416a20ad4a0b616801a
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/citrus
@@ -0,0 +1,8 @@
+
+#------------------------------------------------------------------------------
+# $File: citrus,v 1.4 2009/09/19 16:28:08 christos Exp $
+# citrus locale declaration
+#
+
+0	string		RuneCT		Citrus locale declaration for LC_CTYPE
+
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/clarion b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/clarion
new file mode 100755
index 0000000000000000000000000000000000000000..cff7a3bdd0e03b43c2b4fed5bce02f6cbbff8b55
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/clarion
@@ -0,0 +1,27 @@
+
+#------------------------------------------------------------------------------
+# $File: clarion,v 1.4 2009/09/19 16:28:08 christos Exp $
+# clarion:  file(1) magic for # Clarion Personal/Professional Developer
+# (v2 and above)
+# From: Julien Blache <jb@jblache.org>
+
+# Database files
+# signature
+0	leshort	0x3343	Clarion Developer (v2 and above) data file
+# attributes
+>2	leshort	&0x0001	\b, locked
+>2	leshort	&0x0004	\b, encrypted
+>2	leshort	&0x0008	\b, memo file exists
+>2	leshort	&0x0010	\b, compressed
+>2	leshort	&0x0040	\b, read only
+# number of records
+>5	lelong	x	\b, %ld records
+
+# Memo files
+0	leshort	0x334d	Clarion Developer (v2 and above) memo data
+
+# Key/Index files
+# No magic? :(
+
+# Help files
+0	leshort	0x49e0	Clarion Developer (v2 and above) help data
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/claris b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/claris
new file mode 100755
index 0000000000000000000000000000000000000000..a2b120a834c5e8514487bde4ba3e246fef0b2b42
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/claris
@@ -0,0 +1,47 @@
+
+#------------------------------------------------------------------------------
+# $File: claris,v 1.5 2009/09/19 16:28:08 christos Exp $
+# claris:  file(1) magic for claris
+# "H. Nanosecond" <aldomel@ix.netcom.com>
+# Claris Works a word processor, etc.
+# Version 3.0
+
+# .pct claris works clip art files
+#0000000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
+#*
+#0001000 #010 250 377 377 377 377 000 213 000 230 000 021 002 377 014 000
+#null to byte 1000 octal
+514	string	\377\377\377\377\000	Claris clip art?
+>0	string	\0\0\0\0\0\0\0\0\0\0\0\0\0	yes.
+514	string	\377\377\377\377\001	Claris clip art?
+>0	string	\0\0\0\0\0\0\0\0\0\0\0\0\0	yes.
+
+# Claris works files
+# .cwk
+0	string	\002\000\210\003\102\117\102\117\000\001\206 Claris works document
+# .plt
+0	string	\020\341\000\000\010\010	Claris Works pallete files .plt
+
+# .msp a dictionary file I am not sure about this I have only one .msp file
+0	string	\002\271\262\000\040\002\000\164	Claris works dictionary
+
+# .usp are user dictionary bits
+# I am not sure about a magic header:
+#0000000 001 123 160 146 070 125 104 040 136 123 015 012 160 157 144 151
+#        soh   S   p   f   8   U   D  sp   ^   S  cr  nl   p   o   d   i
+#0000020 141 164 162 151 163 164 040 136 123 015 012 144 151 166 040 043
+#          a   t   r   i   s   t  sp   ^   S  cr  nl   d   i   v  sp   #
+
+# .mth Thesaurus
+# starts with \0 but no magic header
+
+# .chy Hyphenation file
+# I am not sure: 000 210 034 000 000
+
+# other claris files
+#./windows/claris/useng.ndx: data
+#./windows/claris/xtndtran.l32: data
+#./windows/claris/xtndtran.lst: data
+#./windows/claris/clworks.lbl: data
+#./windows/claris/clworks.prf: data
+#./windows/claris/userd.spl: data
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/clipper b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/clipper
new file mode 100755
index 0000000000000000000000000000000000000000..9f47534059060b6e8d332093a95575dada3b34d9
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/clipper
@@ -0,0 +1,65 @@
+
+#------------------------------------------------------------------------------
+# $File: clipper,v 1.6 2009/09/19 16:28:08 christos Exp $
+# clipper:  file(1) magic for Intergraph (formerly Fairchild) Clipper.
+#
+# XXX - what byte order does the Clipper use?
+#
+# XXX - what's the "!" stuff:
+#
+# >18	short		!074000,000000	C1 R1 
+# >18	short		!074000,004000	C2 R1
+# >18	short		!074000,010000	C3 R1
+# >18	short		!074000,074000	TEST
+#
+# I shall assume it's ANDing the field with the first value and
+# comparing it with the second, and rewrite it as:
+#
+# >18	short&074000	000000		C1 R1 
+# >18	short&074000	004000		C2 R1
+# >18	short&074000	010000		C3 R1
+# >18	short&074000	074000		TEST
+#
+# as SVR3.1's "file" doesn't support anything of the "!074000,000000"
+# sort, nor does SunOS 4.x, so either it's something Intergraph added
+# in CLIX, or something AT&T added in SVR3.2 or later, or something
+# somebody else thought was a good idea; it's not documented in the
+# man page for this version of "magic", nor does it appear to be
+# implemented (at least not after I blew off the bogus code to turn
+# old-style "&"s into new-style "&"s, which just didn't work at all).
+#
+0	short		0575		CLIPPER COFF executable (VAX #)
+>20	short		0407		(impure)
+>20	short		0410		(5.2 compatible)
+>20	short		0411		(pure)
+>20	short		0413		(demand paged)
+>20	short		0443		(target shared library)
+>12	long		>0		not stripped
+>22	short		>0		- version %ld
+0	short		0577		CLIPPER COFF executable
+>18	short&074000	000000		C1 R1 
+>18	short&074000	004000		C2 R1
+>18	short&074000	010000		C3 R1
+>18	short&074000	074000		TEST
+>20	short		0407		(impure)
+>20	short		0410		(pure)
+>20	short		0411		(separate I&D)
+>20	short		0413		(paged)
+>20	short		0443		(target shared library)
+>12	long		>0		not stripped
+>22	short		>0		- version %ld
+>48	long&01		01		alignment trap enabled
+>52	byte		1		-Ctnc
+>52	byte		2		-Ctsw
+>52	byte		3		-Ctpw
+>52	byte		4		-Ctcb
+>53	byte		1		-Cdnc
+>53	byte		2		-Cdsw
+>53	byte		3		-Cdpw
+>53	byte		4		-Cdcb
+>54	byte		1		-Csnc
+>54	byte		2		-Cssw
+>54	byte		3		-Cspw
+>54	byte		4		-Cscb
+4	string		pipe		CLIPPER instruction trace
+4	string		prof		CLIPPER instruction profile
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/commands b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/commands
new file mode 100755
index 0000000000000000000000000000000000000000..caba6541372ec5ceb2605f5efc8affef60af3ef0
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/commands
@@ -0,0 +1,98 @@
+
+#------------------------------------------------------------------------------
+# $File: commands,v 1.41 2011/05/02 12:36:41 christos Exp $
+# commands:  file(1) magic for various shells and interpreters
+#
+#0	string/w	:			shell archive or script for antique kernel text
+0	string/wt	#!\ /bin/sh		POSIX shell script text executable
+!:mime	text/x-shellscript
+0	string/wt	#!\ /bin/csh		C shell script text executable
+!:mime	text/x-shellscript
+# korn shell magic, sent by George Wu, gwu@clyde.att.com
+0	string/wt	#!\ /bin/ksh		Korn shell script text executable
+!:mime	text/x-shellscript
+0	string/wt 	#!\ /bin/tcsh		Tenex C shell script text executable
+!:mime	text/x-shellscript
+0	string/wt	#!\ /usr/bin/tcsh	Tenex C shell script text executable
+!:mime	text/x-shellscript
+0	string/wt 	#!\ /usr/local/tcsh	Tenex C shell script text executable
+!:mime	text/x-shellscript
+0	string/wt	#!\ /usr/local/bin/tcsh	Tenex C shell script text executable
+!:mime	text/x-shellscript
+
+#
+# zsh/ash/ae/nawk/gawk magic from cameron@cs.unsw.oz.au (Cameron Simpson)
+0	string/wt	#!\ /bin/zsh		Paul Falstad's zsh script text executable
+!:mime	text/x-shellscript
+0	string/wt	#!\ /usr/bin/zsh	Paul Falstad's zsh script text executable
+!:mime	text/x-shellscript
+0	string/wt	#!\ /usr/local/bin/zsh	Paul Falstad's zsh script text executable
+!:mime	text/x-shellscript
+0	string/wt	#!\ /usr/local/bin/ash	Neil Brown's ash script text executable
+!:mime	text/x-shellscript
+0	string/wt	#!\ /usr/local/bin/ae	Neil Brown's ae script text executable
+!:mime	text/x-shellscript
+0	string/wt	#!\ /bin/nawk		new awk script text executable
+!:mime	text/x-nawk
+0	string/wt	#!\ /usr/bin/nawk	new awk script text executable
+!:mime	text/x-nawk
+0	string/wt	#!\ /usr/local/bin/nawk	new awk script text executable
+!:mime	text/x-nawk
+0	string/wt	#!\ /bin/gawk		GNU awk script text executable
+!:mime	text/x-gawk
+0	string/wt	#!\ /usr/bin/gawk	GNU awk script text executable
+!:mime	text/x-gawk
+0	string/wt	#!\ /usr/local/bin/gawk	GNU awk script text executable
+!:mime	text/x-gawk
+#
+0	string/wt	#!\ /bin/awk		awk script text executable
+!:mime	text/x-awk
+0	string/wt	#!\ /usr/bin/awk	awk script text executable
+!:mime	text/x-awk
+0	regex		=^\\s*BEGIN\\s*[{]	awk script text
+
+# AT&T Bell Labs' Plan 9 shell
+0	string/wt	#!\ /bin/rc	Plan 9 rc shell script text executable
+
+# bash shell magic, from Peter Tobias (tobias@server.et-inf.fho-emden.de)
+0	string/wt	#!\ /bin/bash	Bourne-Again shell script text executable
+!:mime	text/x-shellscript
+0	string/wt	#!\ /usr/bin/bash	Bourne-Again shell script text executable
+!:mime	text/x-shellscript
+0	string/wt	#!\ /usr/local/bash	Bourne-Again shell script text executable
+!:mime	text/x-shellscript
+0	string/wt	#!\ /usr/local/bin/bash	Bourne-Again shell script text executable
+!:mime	text/x-shellscript
+
+# using env
+0	string/t	#!/usr/bin/env		a
+>15	string/t	>\0			%s script text executable
+0	string/t	#!\ /usr/bin/env	a
+>16	string/t	>\0			%s script text executable
+
+# PHP scripts
+# Ulf Harnhammar <ulfh@update.uu.se>
+0	search/1/c	=<?php			PHP script text
+!:mime	text/x-php
+0	search/1	=<?\n			PHP script text
+!:mime	text/x-php
+0	search/1	=<?\r			PHP script text
+!:mime	text/x-php
+0	search/1/w	#!\ /usr/local/bin/php	PHP script text executable
+!:mime	text/x-php
+0	search/1/w	#!\ /usr/bin/php	PHP script text executable
+!:mime	text/x-php
+# Smarty compiled template, http://www.smarty.net/
+# Elan Ruusamäe <glen@delfi.ee>
+0	string	=<?php\ /*\ Smarty\ version	Smarty compiled template
+>24	regex	[0-9.]+				\b, version %s
+!:mime	text/x-php
+
+0	string		Zend\x00		PHP script Zend Optimizer data
+
+0	string/t	$!			DCL command file
+
+# Type: Pdmenu
+# URL:  http://packages.debian.org/pdmenu
+# From: Edward Betts <edward@debian.org>
+0	string		#!/usr/bin/pdmenu	Pdmenu configuration file text
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/communications b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/communications
new file mode 100755
index 0000000000000000000000000000000000000000..8e1d908b6759d52fc69d39533c795ad64ac0bedb
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/communications
@@ -0,0 +1,22 @@
+
+#----------------------------------------------------------------------------
+# $File: communications,v 1.5 2009/09/19 16:28:08 christos Exp $
+# communication
+
+# TTCN is the Tree and Tabular Combined Notation described in ISO 9646-3.
+# It is used for conformance testing of communication protocols.
+# Added by W. Borgert <debacle@debian.org>.
+0	string		$Suite			TTCN Abstract Test Suite
+>&1	string		$SuiteId
+>>&1	string		>\n			%s
+>&2	string		$SuiteId
+>>&1	string		>\n			%s
+>&3	string		$SuiteId
+>>&1	string		>\n			%s
+
+# MSC (message sequence charts) are a formal description technique,
+# described in ITU-T Z.120, mainly used for communication protocols.
+# Added by W. Borgert <debacle@debian.org>.
+0	string		mscdocument	Message Sequence Chart (document)
+0	string		msc		Message Sequence Chart (chart)
+0	string		submsc		Message Sequence Chart (subchart)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/compress b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/compress
new file mode 100755
index 0000000000000000000000000000000000000000..98d2e091d0c437fdd6c2681730c811c0ce23c1c2
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/compress
@@ -0,0 +1,230 @@
+#------------------------------------------------------------------------------
+# $File: compress,v 1.47 2011/03/08 00:39:46 christos Exp $
+# compress:  file(1) magic for pure-compression formats (no archives)
+#
+# compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, etc.
+#
+# Formats for various forms of compressed data
+# Formats for "compress" proper have been moved into "compress.c",
+# because it tries to uncompress it to figure out what's inside.
+
+# standard unix compress
+0	string		\037\235	compress'd data
+!:mime	application/x-compress
+!:apple	LZIVZIVU
+>2	byte&0x80	>0		block compressed
+>2	byte&0x1f	x		%d bits
+
+# gzip (GNU zip, not to be confused with Info-ZIP or PKWARE zip archiver)
+#   Edited by Chris Chittleborough <cchittleborough@yahoo.com.au>, March 2002
+#	* Original filename is only at offset 10 if "extra field" absent
+#	* Produce shorter output - notably, only report compression methods
+#         other than 8 ("deflate", the only method defined in RFC 1952).
+0       string          \037\213        gzip compressed data
+!:mime	application/x-gzip
+>2	byte		<8		\b, reserved method
+>2	byte		>8		\b, unknown method
+>3	byte		&0x01		\b, ASCII
+>3	byte		&0x02		\b, has CRC
+>3	byte		&0x04		\b, extra field
+>3	byte&0xC	=0x08
+>>10	string		x		\b, was "%s"
+>3	byte		&0x10		\b, has comment
+>9	byte		=0x00		\b, from FAT filesystem (MS-DOS, OS/2, NT)
+>9	byte		=0x01		\b, from Amiga
+>9	byte		=0x02		\b, from VMS
+>9	byte		=0x03		\b, from Unix
+>9	byte		=0x04		\b, from VM/CMS
+>9	byte		=0x05		\b, from Atari
+>9	byte		=0x06		\b, from HPFS filesystem (OS/2, NT)
+>9	byte		=0x07		\b, from MacOS
+>9	byte		=0x08		\b, from Z-System
+>9	byte		=0x09		\b, from CP/M
+>9	byte		=0x0A		\b, from TOPS/20
+>9	byte		=0x0B		\b, from NTFS filesystem (NT)
+>9	byte		=0x0C		\b, from QDOS
+>9	byte		=0x0D		\b, from Acorn RISCOS
+>3	byte		&0x10		\b, comment
+>3	byte		&0x20		\b, encrypted
+>4	ledate		>0		\b, last modified: %s
+>8	byte		2		\b, max compression
+>8	byte		4		\b, max speed
+
+# packed data, Huffman (minimum redundancy) codes on a byte-by-byte basis
+0	string		\037\036	packed data
+!:mime	application/octet-stream
+>2	belong		>1		\b, %d characters originally
+>2	belong		=1		\b, %d character originally
+#
+# This magic number is byte-order-independent.
+0	short		0x1f1f		old packed data
+!:mime	application/octet-stream
+
+# XXX - why *two* entries for "compacted data", one of which is
+# byte-order independent, and one of which is byte-order dependent?
+#
+0	short		0x1fff		compacted data
+!:mime	application/octet-stream
+# This string is valid for SunOS (BE) and a matching "short" is listed
+# in the Ultrix (LE) magic file.
+0	string		\377\037	compacted data
+!:mime	application/octet-stream
+0	short		0145405		huf output
+!:mime	application/octet-stream
+
+# bzip2
+0	string		BZh		bzip2 compressed data
+!:mime	application/x-bzip2
+>3	byte		>47		\b, block size = %c00k
+
+# lzip
+0	string		LZIP		lzip compressed data
+!:mime application/x-lzip
+>4	byte		x		\b, version: %d
+
+# squeeze and crunch
+# Michael Haardt <michael@cantor.informatik.rwth-aachen.de>
+0	beshort		0x76FF		squeezed data,
+>4	string		x		original name %s
+0	beshort		0x76FE		crunched data,
+>2	string		x		original name %s
+0	beshort		0x76FD		LZH compressed data,
+>2	string		x		original name %s
+
+# Freeze
+0	string		\037\237	frozen file 2.1
+0	string		\037\236	frozen file 1.0 (or gzip 0.5)
+
+# SCO compress -H (LZH)
+0	string		\037\240	SCO compress -H (LZH) data
+
+# European GSM 06.10 is a provisional standard for full-rate speech
+# transcoding, prI-ETS 300 036, which uses RPE/LTP (residual pulse
+# excitation/long term prediction) coding at 13 kbit/s.
+#
+# There's only a magic nibble (4 bits); that nibble repeats every 33
+# bytes.  This isn't suited for use, but maybe we can use it someday.
+#
+# This will cause very short GSM files to be declared as data and
+# mismatches to be declared as data too!
+#0	byte&0xF0	0xd0		data
+#>33	byte&0xF0	0xd0
+#>66	byte&0xF0	0xd0
+#>99	byte&0xF0	0xd0
+#>132	byte&0xF0	0xd0		GSM 06.10 compressed audio
+
+# bzip	a block-sorting file compressor
+#	by Julian Seward <sewardj@cs.man.ac.uk> and others
+#
+#0	string		BZ		bzip compressed data
+#>2	byte		x		\b, version: %c
+#>3	string		=1		\b, compression block size 100k
+#>3	string		=2		\b, compression block size 200k
+#>3	string		=3		\b, compression block size 300k
+#>3	string		=4		\b, compression block size 400k
+#>3	string		=5		\b, compression block size 500k
+#>3	string		=6		\b, compression block size 600k
+#>3	string		=7		\b, compression block size 700k
+#>3	string		=8		\b, compression block size 800k
+#>3	string		=9		\b, compression block size 900k
+
+# lzop from <markus.oberhumer@jk.uni-linz.ac.at>
+0	string		\x89\x4c\x5a\x4f\x00\x0d\x0a\x1a\x0a	lzop compressed data
+>9	beshort		<0x0940
+>>9	byte&0xf0	=0x00		- version 0.
+>>9	beshort&0x0fff	x		\b%03x,
+>>13	byte		1		LZO1X-1,
+>>13	byte		2		LZO1X-1(15),
+>>13	byte		3		LZO1X-999,
+## >>22	bedate		>0		last modified: %s,
+>>14	byte		=0x00		os: MS-DOS
+>>14	byte		=0x01		os: Amiga
+>>14	byte		=0x02		os: VMS
+>>14	byte		=0x03		os: Unix
+>>14	byte		=0x05		os: Atari
+>>14	byte		=0x06		os: OS/2
+>>14	byte		=0x07		os: MacOS
+>>14	byte		=0x0A		os: Tops/20
+>>14	byte		=0x0B		os: WinNT
+>>14	byte		=0x0E		os: Win32
+>9	beshort		>0x0939
+>>9	byte&0xf0	=0x00		- version 0.
+>>9	byte&0xf0	=0x10		- version 1.
+>>9	byte&0xf0	=0x20		- version 2.
+>>9	beshort&0x0fff	x		\b%03x,
+>>15	byte		1		LZO1X-1,
+>>15	byte		2		LZO1X-1(15),
+>>15	byte		3		LZO1X-999,
+## >>25	bedate		>0		last modified: %s,
+>>17	byte		=0x00		os: MS-DOS
+>>17	byte		=0x01		os: Amiga
+>>17	byte		=0x02		os: VMS
+>>17	byte		=0x03		os: Unix
+>>17	byte		=0x05		os: Atari
+>>17	byte		=0x06		os: OS/2
+>>17	byte		=0x07		os: MacOS
+>>17	byte		=0x0A		os: Tops/20
+>>17	byte		=0x0B		os: WinNT
+>>17	byte		=0x0E		os: Win32
+
+# 4.3BSD-Quasijarus Strong Compression
+# http://minnie.tuhs.org/Quasijarus/compress.html
+0	string		\037\241	Quasijarus strong compressed data
+
+# From: Cory Dikkers <cdikkers@swbell.net>
+0	string		XPKF		Amiga xpkf.library compressed data
+0	string		PP11		Power Packer 1.1 compressed data
+0	string		PP20		Power Packer 2.0 compressed data,
+>4	belong		0x09090909	fast compression
+>4	belong		0x090A0A0A	mediocre compression
+>4	belong		0x090A0B0B	good compression
+>4	belong		0x090A0C0C	very good compression
+>4	belong		0x090A0C0D	best compression
+
+# 7-zip archiver, from Thomas Klausner (wiz@danbala.tuwien.ac.at)
+# http://www.7-zip.org or DOC/7zFormat.txt
+#
+0	string		7z\274\257\047\034	7-zip archive data,
+>6	byte		x			version %d
+>7	byte		x			\b.%d
+!:mime	application/x-7z-compressed
+
+# Type: LZMA
+0	lelong		0x8000005d		LZMA compressed data,
+>5	lequad		=0xffffffffffffffff	streamed
+>5	lequad		!0xffffffffffffffff	non-streamed, size %lld
+!:mime	application/x-lzma
+
+# http://tukaani.org/xz/xz-file-format.txt
+0	ustring		\xFD7zXZ\x00		XZ compressed data
+!:mime	application/x-xz
+
+# https://github.com/ckolivas/lrzip/blob/master/doc/magic.header.txt
+0	string		LRZI			LRZIP compressed data
+>4	byte		x			- version %d
+>5	byte		x			\b.%d
+!:mime	application/x-lrzip
+
+# AFX compressed files (Wolfram Kleff)
+2	string		-afx-		AFX compressed file data
+
+# Supplementary magic data for the file(1) command to support
+# rzip(1).  The format is described in magic(5).
+#
+# Copyright (C) 2003 by Andrew Tridgell.  You may do whatever you want with
+# this file.
+#
+0	string		RZIP		rzip compressed data
+>4	byte		x		- version %d
+>5	byte		x		\b.%d
+>6	belong		x		(%d bytes)
+
+0	string		ArC\x01		FreeArc archive <http://freearc.org>
+
+# Type:	DACT compressed files
+0	long	0x444354C3	DACT compressed data
+>4	byte	>-1		(version %i.
+>5	byte	>-1		%i.
+>6	byte	>-1		%i)
+>7	long	>0		, original size: %i bytes
+>15	long	>30		, block size: %i bytes
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/console b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/console
new file mode 100755
index 0000000000000000000000000000000000000000..573dd15fd582fc67f38a4231042b8d5bee8d7027
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/console
@@ -0,0 +1,264 @@
+
+#------------------------------------------------------------------------------
+# $File: console,v 1.18 2010/09/20 19:19:17 rrt Exp $
+# Console game magic
+# Toby Deshane <hac@shoelace.digivill.net>
+#    ines:  file(1) magic for Marat's iNES Nintendo Entertainment System
+#           ROM dump format
+
+0 string NES\032 iNES ROM dump,
+>4 byte  x     %dx16k PRG
+>5 byte  x     \b, %dx8k CHR
+>6 byte&0x01  =0x1  \b, [Vert.]
+>6 byte&0x01  =0x0  \b, [Horiz.]
+>6 byte&0x02  =0x2  \b, [SRAM]
+>6 byte&0x04  =0x4  \b, [Trainer]
+>6 byte&0x04  =0x8  \b, [4-Scr]
+
+#------------------------------------------------------------------------------
+# gameboy:  file(1) magic for the Nintendo (Color) Gameboy raw ROM format
+#
+0x104 belong 0xCEED6666 Gameboy ROM:
+>0x134 string >\0 "%.16s"
+>0x146 byte 0x03  \b,[SGB]
+>0x147 byte 0x00  \b, [ROM ONLY]
+>0x147 byte 0x01  \b, [ROM+MBC1]
+>0x147 byte 0x02  \b, [ROM+MBC1+RAM]
+>0x147 byte 0x03  \b, [ROM+MBC1+RAM+BATT]
+>0x147 byte 0x05  \b, [ROM+MBC2]
+>0x147 byte 0x06  \b, [ROM+MBC2+BATTERY]
+>0x147 byte 0x08  \b, [ROM+RAM]
+>0x147 byte 0x09  \b, [ROM+RAM+BATTERY]
+>0x147 byte 0x0B  \b, [ROM+MMM01]
+>0x147 byte 0x0C  \b, [ROM+MMM01+SRAM]
+>0x147 byte 0x0D  \b, [ROM+MMM01+SRAM+BATT]
+>0x147 byte 0x0F  \b, [ROM+MBC3+TIMER+BATT]
+>0x147 byte 0x10  \b, [ROM+MBC3+TIMER+RAM+BATT]
+>0x147 byte 0x11  \b, [ROM+MBC3]
+>0x147 byte 0x12  \b, [ROM+MBC3+RAM]
+>0x147 byte 0x13  \b, [ROM+MBC3+RAM+BATT]
+>0x147 byte 0x19  \b, [ROM+MBC5]
+>0x147 byte 0x1A  \b, [ROM+MBC5+RAM]
+>0x147 byte 0x1B  \b, [ROM+MBC5+RAM+BATT]
+>0x147 byte 0x1C  \b, [ROM+MBC5+RUMBLE]
+>0x147 byte 0x1D  \b, [ROM+MBC5+RUMBLE+SRAM]
+>0x147 byte 0x1E  \b, [ROM+MBC5+RUMBLE+SRAM+BATT]
+>0x147 byte 0x1F  \b, [Pocket Camera]
+>0x147 byte 0xFD  \b, [Bandai TAMA5]
+>0x147 byte 0xFE  \b, [Hudson HuC-3]
+>0x147 byte 0xFF  \b, [Hudson HuC-1]
+
+>0x148 byte 0     \b, ROM: 256Kbit
+>0x148 byte 1     \b, ROM: 512Kbit
+>0x148 byte 2     \b, ROM: 1Mbit
+>0x148 byte 3     \b, ROM: 2Mbit
+>0x148 byte 4     \b, ROM: 4Mbit
+>0x148 byte 5     \b, ROM: 8Mbit
+>0x148 byte 6     \b, ROM: 16Mbit
+>0x148 byte 0x52  \b, ROM: 9Mbit
+>0x148 byte 0x53  \b, ROM: 10Mbit
+>0x148 byte 0x54  \b, ROM: 12Mbit
+
+>0x149 byte 1     \b, RAM: 16Kbit
+>0x149 byte 2     \b, RAM: 64Kbit
+>0x149 byte 3     \b, RAM: 128Kbit
+>0x149 byte 4     \b, RAM: 1Mbit
+
+#>0x14e long  x     \b, CRC: %x
+
+#------------------------------------------------------------------------------
+# genesis:  file(1) magic for the Sega MegaDrive/Genesis raw ROM format
+#
+0x100 string SEGA  Sega MegaDrive/Genesis raw ROM dump
+>0x120 string >\0 Name: "%.16s"
+>0x110 string >\0 %.16s
+>0x1B0 string RA with SRAM
+
+#------------------------------------------------------------------------------
+# genesis:  file(1) magic for the Super MegaDrive ROM dump format
+#
+0x280 string EAGN  Super MagicDrive ROM dump
+>0 byte x %dx16k blocks
+>2 byte 0 \b, last in series or standalone
+>2 byte >0 \b, split ROM
+>8 byte 0xAA
+>9 byte 0xBB
+
+#------------------------------------------------------------------------------
+# genesis:  file(1) alternate magic for the Super MegaDrive ROM dump format
+#
+0x280 string EAMG  Super MagicDrive ROM dump
+>0 byte x %dx16k blocks
+>2 byte x \b, last in series or standalone
+>8 byte 0xAA
+>9 byte 0xBB
+
+#------------------------------------------------------------------------------
+# smsgg:  file(1) magic for Sega Master System and Game Gear ROM dumps
+#
+# Does not detect all images.  Very preliminary guesswork.  Need more data
+# on format.
+#
+# FIXME: need a little more info...;P
+#
+#0 byte 0xF3
+#>1 byte 0xED  Sega Master System/Game Gear ROM dump
+#>1 byte 0x31  Sega Master System/Game Gear ROM dump
+#>1 byte 0xDB  Sega Master System/Game Gear ROM dump
+#>1 byte 0xAF  Sega Master System/Game Gear ROM dump
+#>1 byte 0xC3  Sega Master System/Game Gear ROM dump
+
+#------------------------------------------------------------------------------
+# dreamcast:  file(1) uncertain magic for the Sega Dreamcast VMU image format
+#
+0 belong 0x21068028   Sega Dreamcast VMU game image
+0 string LCDi         Dream Animator file
+
+#------------------------------------------------------------------------------
+# v64: file(1) uncertain magic for the V64 format N64 ROM dumps
+#
+0 belong 0x37804012    V64 Nintendo 64 ROM dump
+
+# From: "Nelson A. de Oliveira" <naoliv@gmail.com>
+# Nintendo .nds
+192	string	\044\377\256Qi\232	Nintendo DS Game ROM Image
+# Nintendo .gba
+0	string	\056\000\000\352$\377\256Qi	Nintendo Game Boy Advance ROM Image
+
+#------------------------------------------------------------------------------
+# msx: file(1) magic for MSX game cartridge dumps
+# Too simple - MPi
+#0 beshort 0x4142 MSX game cartridge dump 
+
+#------------------------------------------------------------------------------
+# Sony Playstation executables (Adam Sjoegren <asjo@diku.dk>) :
+0	string	PS-X\ EXE	Sony Playstation executable
+#  Area:
+>113	string	x		(%s)
+
+#------------------------------------------------------------------------------
+# Microsoft Xbox executables .xbe (Esa Hyytiä <ehyytia@cc.hut.fi>)
+0       string          XBEH            XBE, Microsoft Xbox executable
+# probabilistic checks whether signed or not
+>0x0004 ulelong =0x0
+>>&2    ulelong =0x0
+>>>&2   ulelong =0x0  \b, not signed
+>0x0004 ulelong >0
+>>&2    ulelong >0
+>>>&2   ulelong >0    \b, signed
+# expect base address of 0x10000
+>0x0104               ulelong =0x10000
+>>(0x0118-0x0FF60)    ulelong&0x80000007  0x80000007 \b, all regions
+>>(0x0118-0x0FF60)    ulelong&0x80000007  !0x80000007
+>>>(0x0118-0x0FF60)   ulelong >0           (regions:
+>>>>(0x0118-0x0FF60)  ulelong &0x00000001  NA
+>>>>(0x0118-0x0FF60)  ulelong &0x00000002  Japan
+>>>>(0x0118-0x0FF60)  ulelong &0x00000004  Rest_of_World
+>>>>(0x0118-0x0FF60)  ulelong &0x80000000  Manufacturer
+>>>(0x0118-0x0FF60)   ulelong >0           \b)
+
+# --------------------------------
+# Microsoft Xbox data file formats
+0       string          XIP0            XIP, Microsoft Xbox data
+0       string          XTF0            XTF, Microsoft Xbox data
+
+# Atari Lynx cartridge dump (EXE/BLL header)
+# From: "Stefan A. Haubenthal" <polluks@web.de>
+
+# Double-check that the image type matches too, 0x8008 conflicts with
+# 8 character OMF-86 object file headers.
+0	beshort		0x8008		
+>6	string		BS93		Lynx homebrew cartridge
+>>2	beshort		x		\b, RAM start $%04x
+>6	string		LYNX		Lynx cartridge
+>>2	beshort		x		\b, RAM start $%04x
+
+# Opera file system that is used on the 3DO console
+# From: Serge van den Boom <svdb@stack.nl>
+0	string		\x01ZZZZZ\x01	3DO "Opera" file system
+
+# From Gürkan Sengün <gurkan@linuks.mine.nu>, www.linuks.mine.nu
+0	string		GBS		Nintendo Gameboy Music/Audio Data
+12	string		GameBoy\ Music\ Module	Nintendo Gameboy Music Module
+
+# Playstations Patch Files from: From: Thomas Klausner <tk@giga.or.at>
+0	string	PPF30			Playstation Patch File version 3.0
+>5	byte	0			\b, PPF 1.0 patch
+>5	byte	1			\b, PPF 2.0 patch
+>5	byte	2			\b, PPF 3.0 patch
+>>56	byte	0			\b, Imagetype BIN (any)
+>>56	byte	1			\b, Imagetype GI (PrimoDVD)
+>>57	byte	0			\b, Blockcheck disabled
+>>57	byte	1			\b, Blockcheck enabled
+>>58	byte	0			\b, Undo data not available
+>>58	byte	1			\b, Undo data available
+>6	string	x			\b, description: %s
+
+0	string	PPF20			Playstation Patch File version 2.0
+>5	byte	0			\b, PPF 1.0 patch
+>5	byte	1			\b, PPF 2.0 patch
+>>56	lelong	>0			\b, size of file to patch %d
+>6	string	x			\b, description: %s
+
+0	string	PPF10			Playstation Patch File version 1.0
+>5	byte	0			\b, Simple Encoding
+>6	string	x			\b, description: %s
+
+# From: Daniel Dawson <ddawson@icehouse.net>
+# SNES9x .smv "movie" file format.
+0		string		SMV\x1A	SNES9x input recording
+>0x4		lelong		x	\b, version %d
+# version 4 is latest so far 
+>0x4		lelong		<5
+>>0x8		ledate		x	\b, recorded at %s
+>>0xc		lelong		>0	\b, rerecorded %d times
+>>0x10		lelong		x	\b, %d frames long
+>>0x14		byte		>0	\b, data for controller(s):
+>>>0x14		byte		&0x1	#1
+>>>0x14		byte		&0x2	#2
+>>>0x14		byte		&0x4	#3
+>>>0x14		byte		&0x8	#4
+>>>0x14		byte		&0x10	#5
+>>0x15		byte		^0x1	\b, begins from snapshot
+>>0x15		byte		&0x1	\b, begins from reset
+>>0x15		byte		^0x2	\b, NTSC standard
+>>0x15		byte		&0x2	\b, PAL standard
+>>0x17		byte		&0x1    \b, settings:
+# WIP1Timing not used as of version 4
+>>>0x4		lelong		<4
+>>>>0x17	byte		&0x2	WIP1Timing
+>>>0x17		byte		&0x4	Left+Right
+>>>0x17		byte		&0x8	VolumeEnvX
+>>>0x17		byte		&0x10	FakeMute
+>>>0x17		byte		&0x20	SyncSound
+# New flag as of version 4
+>>>0x4		lelong		>3
+>>>>0x17	byte		&0x80	NoCPUShutdown
+>>0x4		lelong		<4
+>>>0x18		lelong		>0x23
+>>>>0x20	leshort		!0
+>>>>>0x20	lestring16	x	\b, metadata: "%s"
+>>0x4		lelong		>3
+>>>0x24		byte		>0	\b, port 1:
+>>>>0x24	byte		1	joypad
+>>>>0x24	byte		2	mouse
+>>>>0x24	byte		3	SuperScope
+>>>>0x24	byte		4	Justifier
+>>>>0x24	byte		5	multitap
+>>>0x24		byte		>0	\b, port 2:
+>>>>0x25	byte		1	joypad
+>>>>0x25	byte		2	mouse
+>>>>0x25	byte		3	SuperScope
+>>>>0x25	byte		4	Justifier
+>>>>0x25	byte		5	multitap
+>>>0x18		lelong		>0x43
+>>>>0x40	leshort		!0
+>>>>>0x40	lestring16	x	\b, metadata: "%s"
+>>0x17		byte		&0x40   \b, ROM:
+>>>(0x18.l-26)	lelong		x	CRC32 0x%08x
+>>>(0x18.l-23)	string		x	"%s"
+
+# Type: scummVM savegame files
+# From: Sven Hartge <debian@ds9.argh.org>
+0	string	SCVM	ScummVM savegame
+>12	string	>\0	"%s"
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/convex b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/convex
new file mode 100755
index 0000000000000000000000000000000000000000..6141a82bba08b26821d2986ad28ea42619964230
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/convex
@@ -0,0 +1,71 @@
+
+#------------------------------------------------------------------------------
+# $File: convex,v 1.7 2009/09/19 16:28:08 christos Exp $
+# convex:  file(1) magic for Convex boxes
+#
+# Convexes are big-endian.
+#
+# /*\
+#  * Below are the magic numbers and tests added for Convex.
+#  * Added at beginning, because they are expected to be used most.
+# \*/
+0	belong	0507	Convex old-style object
+>16	belong	>0	not stripped
+0	belong	0513	Convex old-style demand paged executable
+>16	belong	>0	not stripped
+0	belong	0515	Convex old-style pre-paged executable
+>16	belong	>0	not stripped
+0	belong	0517	Convex old-style pre-paged, non-swapped executable
+>16	belong	>0	not stripped
+0	belong	0x011257	Core file
+#
+# The following are a series of dump format magic numbers.  Each one
+# corresponds to a drastically different dump format.  The first on is
+# the original dump format on a 4.1 BSD or earlier file system.  The
+# second marks the change between the 4.1 file system and the 4.2 file
+# system.  The Third marks the changing of the block size from 1K
+# to 2K to be compatible with an IDC file system.  The fourth indicates
+# a dump that is dependent on Convex Storage Manager, because data in
+# secondary storage is not physically contained within the dump.
+# The restore program uses these number to determine how the data is
+# to be extracted.
+#
+24	belong	=60011	dump format, 4.1 BSD or earlier
+24	belong	=60012	dump format, 4.2 or 4.3 BSD without IDC
+24	belong	=60013	dump format, 4.2 or 4.3 BSD (IDC compatible)
+24	belong	=60014	dump format, Convex Storage Manager by-reference dump
+#
+# what follows is a bunch of bit-mask checks on the flags field of the opthdr.
+# If there is no `=' sign, assume just checking for whether the bit is set?
+#
+0	belong	0601		Convex SOFF
+>88	belong&0x000f0000	=0x00000000	c1
+>88	belong			&0x00010000	c2
+>88	belong			&0x00020000	c2mp
+>88	belong			&0x00040000	parallel
+>88	belong			&0x00080000	intrinsic
+>88	belong			&0x00000001	demand paged
+>88	belong			&0x00000002	pre-paged
+>88	belong			&0x00000004	non-swapped
+>88	belong			&0x00000008	POSIX
+#
+>84	belong			&0x80000000	executable
+>84	belong			&0x40000000	object
+>84	belong&0x20000000	=0		not stripped
+>84	belong&0x18000000	=0x00000000	native fpmode
+>84	belong&0x18000000	=0x10000000	ieee fpmode
+>84	belong&0x18000000	=0x18000000	undefined fpmode
+#
+0	belong			0605		Convex SOFF core
+#
+0	belong			0607		Convex SOFF checkpoint
+>88	belong&0x000f0000	=0x00000000	c1
+>88	belong			&0x00010000	c2
+>88	belong			&0x00020000	c2mp
+>88	belong			&0x00040000	parallel
+>88	belong			&0x00080000	intrinsic
+>88	belong			&0x00000008	POSIX
+#
+>84	belong&0x18000000	=0x00000000	native fpmode
+>84	belong&0x18000000	=0x10000000	ieee fpmode
+>84	belong&0x18000000	=0x18000000	undefined fpmode
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/cracklib b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/cracklib
new file mode 100755
index 0000000000000000000000000000000000000000..167659670d9307aa8e2d41acaa214295f71dce75
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/cracklib
@@ -0,0 +1,14 @@
+
+#------------------------------------------------------------------------------
+# $File: cracklib,v 1.7 2009/09/19 16:28:08 christos Exp $
+# cracklib:  file (1) magic for cracklib v2.7
+
+0	lelong	0x70775631	Cracklib password index, little endian
+>4	long	>0		(%i words)
+>4	long	0		("64-bit")
+>>8	long	>-1		(%i words)
+0	belong	0x70775631	Cracklib password index, big endian
+>4	belong	>-1		(%i words)
+# really bellong 0x0000000070775631
+0	search/1	\0\0\0\0pwV1	Cracklib password index, big endian ("64-bit")
+>12	belong	>0		(%i words)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ctags b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ctags
new file mode 100755
index 0000000000000000000000000000000000000000..f480d32338bde91afc8f6269b2ec11feb7500e75
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ctags
@@ -0,0 +1,6 @@
+
+# ----------------------------------------------------------------------------
+# $File: ctags,v 1.6 2009/09/19 16:28:08 christos Exp $
+# ctags:  file (1) magic for Exuberant Ctags files
+# From: Alexander Mai <mai@migdal.ikp.physik.tu-darmstadt.de>
+0	search/1	=!_TAG	Exuberant Ctags tag file text
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/dact b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/dact
new file mode 100755
index 0000000000000000000000000000000000000000..04627c970389256977e093dcc9407dadf4d663cb
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/dact
@@ -0,0 +1,11 @@
+
+#------------------------------------------------------------------------------
+# $File: dact,v 1.4 2009/09/19 16:28:08 christos Exp $
+# dact:  file(1) magic for DACT compressed files
+#
+0	long		0x444354C3	DACT compressed data
+>4	byte		>-1		(version %i.
+>5	byte		>-1		$BS%i.
+>6	byte		>-1		$BS%i)
+>7	long		>0		$BS, original size: %i bytes
+>15	long		>30		$BS, block size: %i bytes
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/database b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/database
new file mode 100755
index 0000000000000000000000000000000000000000..02399746cd2149854d994bf6ccac43a7f237e29f
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/database
@@ -0,0 +1,289 @@
+
+#------------------------------------------------------------------------------
+# $File: database,v 1.26 2010/12/26 23:10:59 christos Exp $
+# database:  file(1) magic for various databases
+#
+# extracted from header/code files by Graeme Wilford (eep2gw@ee.surrey.ac.uk)
+#
+#
+# GDBM magic numbers
+#  Will be maintained as part of the GDBM distribution in the future.
+#  <downsj@teeny.org>
+0	belong	0x13579ace	GNU dbm 1.x or ndbm database, big endian
+!:mime	application/x-gdbm
+0	lelong	0x13579ace	GNU dbm 1.x or ndbm database, little endian
+!:mime	application/x-gdbm
+0	string	GDBM		GNU dbm 2.x database
+!:mime	application/x-gdbm
+#
+# Berkeley DB
+#
+# Ian Darwin's file /etc/magic files: big/little-endian version.
+#
+# Hash 1.85/1.86 databases store metadata in network byte order.
+# Btree 1.85/1.86 databases store the metadata in host byte order.
+# Hash and Btree 2.X and later databases store the metadata in host byte order.
+
+0	long	0x00061561	Berkeley DB
+!:mime	application/x-dbm
+>8	belong	4321
+>>4	belong	>2		1.86
+>>4	belong	<3		1.85
+>>4	belong	>0		(Hash, version %d, native byte-order)
+>8	belong	1234
+>>4	belong	>2		1.86
+>>4	belong	<3		1.85
+>>4	belong	>0		(Hash, version %d, little-endian)
+
+0	belong	0x00061561	Berkeley DB
+>8	belong	4321
+>>4	belong	>2		1.86
+>>4	belong	<3		1.85
+>>4	belong	>0		(Hash, version %d, big-endian)
+>8	belong	1234
+>>4	belong	>2		1.86
+>>4	belong	<3		1.85
+>>4	belong	>0		(Hash, version %d, native byte-order)
+
+0	long	0x00053162	Berkeley DB 1.85/1.86
+>4	long	>0		(Btree, version %d, native byte-order)
+0	belong	0x00053162	Berkeley DB 1.85/1.86
+>4	belong	>0		(Btree, version %d, big-endian)
+0	lelong	0x00053162	Berkeley DB 1.85/1.86
+>4	lelong	>0		(Btree, version %d, little-endian)
+
+12	long	0x00061561	Berkeley DB
+>16	long	>0		(Hash, version %d, native byte-order)
+12	belong	0x00061561	Berkeley DB
+>16	belong	>0		(Hash, version %d, big-endian)
+12	lelong	0x00061561	Berkeley DB
+>16	lelong	>0		(Hash, version %d, little-endian)
+
+12	long	0x00053162	Berkeley DB
+>16	long	>0		(Btree, version %d, native byte-order)
+12	belong	0x00053162	Berkeley DB
+>16	belong	>0		(Btree, version %d, big-endian)
+12	lelong	0x00053162	Berkeley DB
+>16	lelong	>0		(Btree, version %d, little-endian)
+
+12	long	0x00042253	Berkeley DB
+>16	long	>0		(Queue, version %d, native byte-order)
+12	belong	0x00042253	Berkeley DB
+>16	belong	>0		(Queue, version %d, big-endian)
+12	lelong	0x00042253	Berkeley DB
+>16	lelong	>0		(Queue, version %d, little-endian)
+
+# From Max Bowsher.
+12	long	0x00040988	Berkeley DB
+>16	long	>0		(Log, version %d, native byte-order)
+12	belong	0x00040988	Berkeley DB 
+>16	belong	>0		(Log, version %d, big-endian)
+12	lelong	0x00040988	Berkeley DB
+>16	lelong	>0		(Log, version %d, little-endian)
+
+#
+#
+# Round Robin Database Tool by Tobias Oetiker <oetiker@ee.ethz.ch>
+0	string	RRD		RRDTool DB
+>4	string	x		version %s
+#----------------------------------------------------------------------
+# ROOT: file(1) magic for ROOT databases
+#
+0       string  root\0  ROOT file
+>4      belong  x       Version %d
+>33     belong  x       (Compression: %d)
+
+# XXX: Weak magic.
+# Alex Ott <ott@jet.msk.su>
+## Paradox file formats
+#2	  leshort	0x0800	Paradox 
+#>0x39	  byte		3	v. 3.0 
+#>0x39	  byte		4	v. 3.5 
+#>0x39	  byte		9	v. 4.x 
+#>0x39	  byte		10	v. 5.x 
+#>0x39	  byte		11	v. 5.x 
+#>0x39	  byte		12	v. 7.x 
+#>>0x04	  byte		0	indexed .DB data file 
+#>>0x04	  byte		1	primary index .PX file 
+#>>0x04	  byte		2	non-indexed .DB data file 
+#>>0x04	  byte		3	non-incrementing secondary index .Xnn file 
+#>>0x04	  byte		4	secondary index .Ynn file 
+#>>0x04	  byte		5	incrementing secondary index .Xnn file 
+#>>0x04	  byte		6	non-incrementing secondary index .XGn file 
+#>>0x04	  byte		7	secondary index .YGn file 
+#>>>0x04	  byte		8	incrementing secondary index .XGn file 
+
+## XBase database files
+#0      byte       0x02	
+#>8     leshort	  >0
+#>>12   leshort    0	FoxBase 
+#!:mime	application/x-dbf
+#>>>0x04	lelong		0		(no records)
+#>>>0x04	lelong		>0		(%ld records)
+#
+#0      byte       0x03	
+#!:mime	application/x-dbf
+#>8     leshort	  >0
+#>>12   leshort    0	FoxBase+, FoxPro, dBaseIII+, dBaseIV, no memo 
+#>>>0x04	lelong		0		(no records)
+#>>>0x04	lelong		>0		(%ld records)
+#
+#0      byte       0x04	
+#!:mime	application/x-dbf
+#>8     leshort	  >0
+#>>12   leshort    0	dBASE IV no memo file 
+#>>>0x04	lelong		0		(no records)
+#>>>0x04	lelong		>0		(%ld records)
+#
+#0      byte       0x05	
+#!:mime	application/x-dbf
+#>8     leshort	  >0
+#>>12   leshort    0	dBASE V no memo file 
+#>>>0x04	lelong		0		(no records)
+#>>>0x04	lelong		>0		(%ld records)
+#
+#0      byte       0x30
+#!:mime	application/x-dbf
+#>8     leshort	  >0
+#>>12   leshort    0	Visual FoxPro 
+#>>>0x04	lelong		0		(no records)
+#>>>0x04	lelong		>0		(%ld records)
+#
+#0      byte       0x43
+#!:mime	application/x-dbf
+#>8     leshort	  >0
+#>>12   leshort    0	FlagShip with memo var size 
+#>>>0x04	lelong		0		(no records)
+#>>>0x04	lelong		>0		(%ld records)
+#
+#0      byte       0x7b
+#!:mime	application/x-dbf
+#>8     leshort	  >0
+#>>12   leshort    0	dBASEIV with memo 
+#>>>0x04	lelong		0		(no records)
+#>>>0x04	lelong		>0		(%ld records)
+#
+#0      byte       0x83	
+#!:mime	application/x-dbf
+#>8     leshort	  >0
+#>>12   leshort    0	FoxBase+, dBaseIII+ with memo 
+#>>>0x04	lelong		0		(no records)
+#>>>0x04	lelong		>0		(%ld records)
+#
+#0      byte       0x8b
+#!:mime	application/x-dbf
+#>8     leshort	  >0
+#>>12   leshort    0	dBaseIV with memo 
+#>>>0x04	lelong		0		(no records)
+#>>>0x04	lelong		>0		(%ld records)
+#
+#0      byte       0x8e	
+#!:mime	application/x-dbf
+#>8     leshort	  >0
+#>>12   leshort    0	dBaseIV with SQL Table 
+#>>>0x04	lelong		0		(no records)
+#>>>0x04	lelong		>0		(%ld records)
+#
+#0      byte       0xb3
+#!:mime	application/x-dbf
+#>8     leshort	  >0
+#>>12   leshort    0	FlagShip with .dbt memo 
+#>>>0x04	lelong		0		(no records)
+#>>>0x04	lelong		>0		(%ld records)
+#
+#0      byte       0xf5
+#!:mime	application/x-dbf
+#>8     leshort	  >0
+#>>12   leshort    0	FoxPro with memo 
+#>>>0x04	lelong		0		(no records)
+#>>>0x04	lelong		>0		(%ld records)
+#
+#0	leshort		0x0006		DBase 3 index file
+
+# MS Access database
+4	string	Standard\ Jet\ DB	Microsoft Access Database
+!:mime	application/x-msaccess
+
+# TDB database from Samba et al - Martin Pool <mbp@samba.org>
+0	string	TDB\ file		TDB database
+>32	lelong	0x2601196D		version 6, little-endian
+>>36	lelong	x			hash size %d bytes
+
+# SE Linux policy database
+0       lelong  0xf97cff8c      SE Linux policy
+>16     lelong  x               v%d
+>20     lelong  1      MLS
+>24     lelong  x       %d symbols
+>28     lelong  x       %d ocons
+
+# ICE authority file data (Wolfram Kleff)
+2	string		ICE		ICE authority data
+
+# X11 Xauthority file (Wolfram Kleff)
+10	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
+11	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
+12	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
+13	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
+14	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
+15	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
+16	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
+17	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
+18	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
+
+# From: Maxime Henrion <mux@FreeBSD.org>
+# PostgreSQL's custom dump format, Maxime Henrion <mux@FreeBSD.org>
+0	string		PGDMP		PostgreSQL custom database dump
+>5	byte		x		- v%d
+>6	byte		x		\b.%d
+>5	beshort		<0x101		\b-0
+>5	beshort		>0x100
+>>7	byte		x		\b-%d
+
+# Type: Advanced Data Format (ADF) database
+# URL:  http://www.grc.nasa.gov/WWW/cgns/adf/
+# From: Nicolas Chauvat <nicolas.chauvat@logilab.fr>
+0	string	@(#)ADF\ Database	CGNS Advanced Data Format
+
+# Tokyo Cabinet magic data
+# http://tokyocabinet.sourceforge.net/index.html
+0	string		ToKyO\ CaBiNeT\n	Tokyo Cabinet
+>14	string		x			\b (%s)
+>32	byte		0			\b, Hash
+!:mime	application/x-tokyocabinet-hash
+>32	byte		1			\b, B+ tree
+!:mime	application/x-tokyocabinet-btree
+>32	byte		2			\b, Fixed-length
+!:mime	application/x-tokyocabinet-fixed
+>32	byte		3			\b, Table
+!:mime	application/x-tokyocabinet-table
+>33	byte		&1			\b, [open]
+>33	byte		&2			\b, [fatal]
+>34	byte		x			\b, apow=%d
+>35	byte		x			\b, fpow=%d
+>36	byte		&0x01			\b, [large]
+>36	byte		&0x02			\b, [deflate]
+>36	byte		&0x04			\b, [bzip]
+>36	byte		&0x08			\b, [tcbs]
+>36	byte		&0x10			\b, [excodec]
+>40	lequad		x			\b, bnum=%lld
+>48	lequad		x			\b, rnum=%lld
+>56	lequad		x			\b, fsiz=%lld
+
+# G-IR database made by gobject-introspect toolset,
+# http://live.gnome.org/GObjectIntrospection
+0	string		GOBJ\nMETADATA\r\n\032	G-IR binary database
+>16	byte		x			\b, v%d
+>17	byte		x			\b.%d
+>20	leshort		x			\b, %d entries
+>22	leshort		x			\b/%d local
+
+# Type:	QDBM Quick Database Manager
+# From:	Benoit Sibaud <bsibaud@april.org>
+0	string		\\[depot\\]\n\f		Quick Database Manager, little endian
+0	string		\\[DEPOT\\]\n\f		Quick Database Manager, big endian
+
+# Type:	TokyoCabinet database
+# URL:	http://tokyocabinet.sourceforge.net/
+# From:	Benoit Sibaud <bsibaud@april.org>
+0	string		ToKyO\ CaBiNeT\n	TokyoCabinet database
+>14	string		x			(version %s)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/diamond b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/diamond
new file mode 100755
index 0000000000000000000000000000000000000000..39d1ed6258b211b920fac4ab56c461bc61748584
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/diamond
@@ -0,0 +1,12 @@
+
+#------------------------------------------------------------------------------
+# $File: diamond,v 1.7 2009/09/19 16:28:08 christos Exp $
+# diamond:  file(1) magic for Diamond system
+#
+# ... diamond is a multi-media mail and electronic conferencing system....
+#
+# XXX - I think it was either renamed Slate, or replaced by Slate....
+#
+#	The full deal is too long...
+#0	string	<list>\n<protocol\ bbn-multimedia-format>	Diamond Multimedia Document
+0	string	=<list>\n<protocol\ bbn-m	Diamond Multimedia Document
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/diff b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/diff
new file mode 100755
index 0000000000000000000000000000000000000000..73f0135df86ac2c73c90c8d6b265097756350f50
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/diff
@@ -0,0 +1,29 @@
+
+#------------------------------------------------------------------------------
+# $File: diff,v 1.12 2010/12/07 16:52:52 christos Exp $
+# diff:  file(1) magic for diff(1) output
+#
+0	search/1	diff\ 		diff output text
+!:mime	text/x-diff
+0	search/1	***\ 		diff output text
+!:mime	text/x-diff
+0	search/1	Only\ in\ 	diff output text
+!:mime	text/x-diff
+0	search/1	Common\ subdirectories:\ 	diff output text
+!:mime	text/x-diff
+
+0	search/1	Index:		RCS/CVS diff output text
+!:mime	text/x-diff
+
+# bsdiff:  file(1) magic for bsdiff(1) output
+0	string/t		BSDIFF40	bsdiff(1) patch file
+
+
+# unified diff
+0	search/4096	---\ 
+>&0	search/1024 \n
+>>&0	search/1 +++\ 
+>>>&0	search/1024 \n
+>>>>&0	search/1 @@	unified diff output text
+!:mime	text/x-diff
+!:strength + 90
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/digital b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/digital
new file mode 100755
index 0000000000000000000000000000000000000000..b1b77dd8c75fcb11acb5864a11da8add67fb6c2b
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/digital
@@ -0,0 +1,58 @@
+
+#------------------------------------------------------------------------------
+# $File: digital,v 1.10 2011/05/03 01:44:17 christos Exp $
+#  Digital UNIX - Info
+#
+0	string	=!<arch>\n________64E	Alpha archive
+>22	string	X			-- out of date
+#
+
+0	leshort		0603
+>>24	leshort		0410		COFF format alpha pure
+>>24	leshort		0413		COFF format alpha demand paged
+>>>22	leshort&030000	!020000		executable
+>>>22	leshort&020000	!0		dynamically linked
+>>>16	lelong		!0		not stripped
+>>>16	lelong		0		stripped
+>>>27	byte		x		- version %d
+>>>26	byte		x		\b.%d
+>>>28	byte		x		\b-%d
+>>24	leshort		0407		COFF format alpha object
+>>>22	leshort&030000	020000		shared library
+>>>27	byte		x		- version %d
+>>>26	byte		x		\b.%d
+>>>28	byte		x		\b-%d
+
+# Basic recognition of Digital UNIX core dumps - Mike Bremford <mike@opac.bl.uk>
+#
+# The actual magic number is just "Core", followed by a 2-byte version
+# number; however, treating any file that begins with "Core" as a Digital
+# UNIX core dump file may produce too many false hits, so we include one
+# byte of the version number as well; DU 5.0 appears only to be up to
+# version 2.
+#
+0	string		Core\001	Alpha COFF format core dump (Digital UNIX)
+>24	string		>\0		\b, from '%s'
+0	string		Core\002	Alpha COFF format core dump (Digital UNIX)
+>24	string		>\0		\b, from '%s'
+#
+# The next is incomplete, we could tell more about this format,
+# but its not worth it.
+0	leshort		0x188	Alpha compressed COFF
+0	leshort		0x18f	Alpha u-code object
+#
+#
+# Some other interesting Digital formats,
+0	string	\377\377\177		ddis/ddif
+0	string	\377\377\174		ddis/dots archive
+0	string	\377\377\176		ddis/dtif table data
+0	string	\033c\033		LN03 output
+0	long	04553207		X image
+#
+0	string	=!<PDF>!\n		profiling data file
+#
+# Locale data tables (MIPS and Alpha).
+#
+0	short		0x0501		locale data table
+>6	short		0x24		for MIPS
+>6	short		0x40		for Alpha
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/dolby b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/dolby
new file mode 100755
index 0000000000000000000000000000000000000000..fee287ccf13b2514cd0e1767253dca632d088f11
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/dolby
@@ -0,0 +1,60 @@
+
+#------------------------------------------------------------------------------
+# $File: dolby,v 1.5 2009/09/19 16:28:08 christos Exp $
+# ATSC A/53 aka AC-3 aka Dolby Digital <ashitaka@gmx.at>
+# from http://www.atsc.org/standards/a_52a.pdf
+# corrections, additions, etc. are always welcome!
+#
+# syncword
+0       beshort         0x0b77  ATSC A/52 aka AC-3 aka Dolby Digital stream,
+# fscod
+>4      byte&0xc0       0x00    48 kHz,
+>4      byte&0xc0       0x40    44.1 kHz,
+>4      byte&0xc0       0x80    32 kHz,
+# is this one used for 96 kHz?
+>4      byte&0xc0       0xc0    reserved frequency,
+#
+>5	byte&7 = 0		\b, complete main (CM)
+>5	byte&7 = 1		\b, music and effects (ME)
+>5	byte&7 = 2		\b, visually impaired (VI)
+>5	byte&7 = 3		\b, hearing impaired (HI)
+>5	byte&7 = 4		\b, dialogue (D)
+>5	byte&7 = 5		\b, commentary (C)
+>5	byte&7 = 6		\b, emergency (E)
+# acmod
+>6      byte&0xe0       0x00    1+1 front,
+>6      byte&0xe0       0x20    1 front/0 rear,
+>6      byte&0xe0       0x40    2 front/0 rear,
+>6      byte&0xe0       0x60    3 front/0 rear,
+>6      byte&0xe0       0x80    2 front/1 rear,
+>6      byte&0xe0       0xa0    3 front/1 rear,
+>6      byte&0xe0       0xc0    2 front/2 rear,
+>6      byte&0xe0       0xe0    3 front/2 rear,
+# lfeon (these may be incorrect)
+>7      byte&0x40       0x00    LFE off,
+>7      byte&0x40       0x40    LFE on,
+#
+>4	byte&0x3e = 0x00	\b, 32 kbit/s
+>4	byte&0x3e = 0x02        \b, 40 kbit/s
+>4	byte&0x3e = 0x04        \b, 48 kbit/s
+>4	byte&0x3e = 0x06        \b, 56 kbit/s
+>4	byte&0x3e = 0x08        \b, 64 kbit/s
+>4	byte&0x3e = 0x0a        \b, 80 kbit/s
+>4	byte&0x3e = 0x0c        \b, 96 kbit/s
+>4	byte&0x3e = 0x0e        \b, 112 kbit/s
+>4	byte&0x3e = 0x10        \b, 128 kbit/s
+>4	byte&0x3e = 0x12        \b, 160 kbit/s
+>4	byte&0x3e = 0x14        \b, 192 kbit/s
+>4	byte&0x3e = 0x16        \b, 224 kbit/s
+>4	byte&0x3e = 0x18        \b, 256 kbit/s
+>4	byte&0x3e = 0x1a        \b, 320 kbit/s
+>4	byte&0x3e = 0x1c        \b, 384 kbit/s
+>4	byte&0x3e = 0x1e        \b, 448 kbit/s
+>4	byte&0x3e = 0x20        \b, 512 kbit/s
+>4	byte&0x3e = 0x22        \b, 576 kbit/s
+>4	byte&0x3e = 0x24        \b, 640 kbit/s
+# dsurmod (these may be incorrect)
+>6      beshort&0x0180  0x0000  Dolby Surround not indicated
+>6      beshort&0x0180  0x0080  not Dolby Surround encoded
+>6      beshort&0x0180  0x0100  Dolby Surround encoded
+>6      beshort&0x0180  0x0180  reserved Dolby Surround mode
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/dump b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/dump
new file mode 100755
index 0000000000000000000000000000000000000000..1ac91e22010cc1e82ead1c232a1c759cdb45e9c0
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/dump
@@ -0,0 +1,132 @@
+
+#------------------------------------------------------------------------------
+# $File: dump,v 1.11 2009/09/19 16:28:09 christos Exp $
+# dump:  file(1) magic for dump file format--for new and old dump filesystems
+#
+# We specify both byte orders in order to recognize byte-swapped dumps.
+#
+24	belong	60012		new-fs dump file (big endian),
+>4	bedate	x		Previous dump %s,
+>8	bedate	x		This dump %s,
+>12	belong	>0		Volume %ld,
+>692	belong	0		Level zero, type:
+>692	belong	>0		Level %d, type:
+>0	belong	1		tape header,
+>0	belong	2		beginning of file record,
+>0	belong	3		map of inodes on tape,
+>0	belong	4		continuation of file record,
+>0	belong	5		end of volume,
+>0	belong	6		map of inodes deleted,
+>0	belong	7		end of medium (for floppy),
+>676	string	>\0		Label %s,
+>696	string	>\0		Filesystem %s,
+>760	string	>\0		Device %s,
+>824	string	>\0		Host %s,
+>888	belong	>0		Flags %x
+
+24	belong	60011		old-fs dump file (big endian),
+#>4	bedate	x		Previous dump %s,
+#>8	bedate	x		This dump %s,
+>12	belong	>0		Volume %ld,
+>692	belong	0		Level zero, type:
+>692	belong	>0		Level %d, type:
+>0	belong	1		tape header,
+>0	belong	2		beginning of file record,
+>0	belong	3		map of inodes on tape,
+>0	belong	4		continuation of file record,
+>0	belong	5		end of volume,
+>0	belong	6		map of inodes deleted,
+>0	belong	7		end of medium (for floppy),
+>676	string	>\0		Label %s,
+>696	string	>\0		Filesystem %s,
+>760	string	>\0		Device %s,
+>824	string	>\0		Host %s,
+>888	belong	>0		Flags %x
+
+24	lelong	60012		new-fs dump file (little endian),
+>4	ledate	x		This dump %s,
+>8	ledate	x		Previous dump %s,
+>12	lelong	>0		Volume %ld,
+>692	lelong	0		Level zero, type:
+>692	lelong	>0		Level %d, type:
+>0	lelong	1		tape header,
+>0	lelong	2		beginning of file record,
+>0	lelong	3		map of inodes on tape,
+>0	lelong	4		continuation of file record,
+>0	lelong	5		end of volume,
+>0	lelong	6		map of inodes deleted,
+>0	lelong	7		end of medium (for floppy),
+>676	string	>\0		Label %s,
+>696	string	>\0		Filesystem %s,
+>760	string	>\0		Device %s,
+>824	string	>\0		Host %s,
+>888	lelong	>0		Flags %x
+
+24	lelong	60011		old-fs dump file (little endian),
+#>4	ledate	x		Previous dump %s,
+#>8	ledate	x		This dump %s,
+>12	lelong	>0		Volume %ld,
+>692	lelong	0		Level zero, type:
+>692	lelong	>0		Level %d, type:
+>0	lelong	1		tape header,
+>0	lelong	2		beginning of file record,
+>0	lelong	3		map of inodes on tape,
+>0	lelong	4		continuation of file record,
+>0	lelong	5		end of volume,
+>0	lelong	6		map of inodes deleted,
+>0	lelong	7		end of medium (for floppy),
+>676	string	>\0		Label %s,
+>696	string	>\0		Filesystem %s,
+>760	string	>\0		Device %s,
+>824	string	>\0		Host %s,
+>888	lelong	>0		Flags %x
+
+18	leshort	60011		old-fs dump file (16-bit, assuming PDP-11 endianness),
+>2	medate	x		Previous dump %s,
+>6	medate	x		This dump %s,
+>10	leshort	>0		Volume %ld,
+>0	leshort	1		tape header.
+>0	leshort	2		beginning of file record.
+>0	leshort	3		map of inodes on tape.
+>0	leshort	4		continuation of file record.
+>0	leshort	5		end of volume.
+>0	leshort	6		map of inodes deleted.
+>0	leshort	7		end of medium (for floppy).
+
+24	belong	0x19540119	new-fs dump file (ufs2, big endian),
+>896	beqdate	x		Previous dump %s,
+>904	beqdate	x		This dump %s,
+>12	belong	>0		Volume %ld,
+>692	belong	0		Level zero, type:
+>692	belong	>0		Level %d, type:
+>0	belong	1		tape header,
+>0	belong	2		beginning of file record,
+>0	belong	3		map of inodes on tape,
+>0	belong	4		continuation of file record,
+>0	belong	5		end of volume,
+>0	belong	6		map of inodes deleted,
+>0	belong	7		end of medium (for floppy),
+>676	string	>\0		Label %s,
+>696	string	>\0		Filesystem %s,
+>760	string	>\0		Device %s,
+>824	string	>\0		Host %s,
+>888	belong	>0		Flags %x
+
+24	lelong	0x19540119	new-fs dump file (ufs2, little endian),
+>896	leqdate	x		This dump %s,
+>904	leqdate	x		Previous dump %s,
+>12	lelong	>0		Volume %ld,
+>692	lelong	0		Level zero, type:
+>692	lelong	>0		Level %d, type:
+>0	lelong	1		tape header,
+>0	lelong	2		beginning of file record,
+>0	lelong	3		map of inodes on tape,
+>0	lelong	4		continuation of file record,
+>0	lelong	5		end of volume,
+>0	lelong	6		map of inodes deleted,
+>0	lelong	7		end of medium (for floppy),
+>676	string	>\0		Label %s,
+>696	string	>\0		Filesystem %s,
+>760	string	>\0		Device %s,
+>824	string	>\0		Host %s,
+>888	lelong	>0		Flags %x
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/dyadic b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/dyadic
new file mode 100755
index 0000000000000000000000000000000000000000..c1a2c3c53e39fddf48b38e93e2111f863065800b
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/dyadic
@@ -0,0 +1,46 @@
+
+#------------------------------------------------------------------------------
+# $File: dyadic,v 1.5 2010/09/20 18:55:20 rrt Exp $
+# Dyadic: file(1) magic for Dyalog APL.
+#
+0	byte	0xaa
+>1	byte	<4		Dyalog APL
+>>1	byte	0x00		incomplete workspace
+>>1	byte	0x01		component file
+>>1	byte	0x02		external variable
+>>1	byte	0x03		workspace
+>>2	byte	x		version %d
+>>3	byte	x		.%d
+
+0	beshort		0xaa03		Dyalog APL
+>2	byte		x		workspace type %d
+>3	byte		x		subtype %d
+>7	byte&0x28	0x00		32-bit
+>7	byte&0x28	0x20		64-bit
+>7	byte&0x0c	0x00		classic
+>7	byte&0x0c	0x04		unicode
+>7	byte&0x88	0x00		big-endian
+>7	byte&0x88	0x80		little-endian
+
+0	byte		0xaa		Dyalog APL
+>1	byte		0x00		aplcore
+>1	byte		0x01		component file 32-bit non-journaled non-checksummed
+>1	byte		0x02		external variable exclusive
+>1	byte		0x06		external variable shared
+>1	byte		0x07		session
+>1	byte		0x08		mapped file 32-bit
+>1	byte		0x09		component file 64-bit non-journaled non-checksummed
+>1	byte		0x0a		mapped file 64-bit
+>1	byte		0x0b		component file 32-bit level 1 journaled non-checksummed
+>1	byte		0x0c		component file 64-bit level 1 journaled non-checksummed
+>1	byte		0x0d		component file 32-bit level 1 journaled checksummed
+>1	byte		0x0e		component file 64-bit level 1 journaled checksummed
+>1	byte		0x0f		component file 32-bit level 2 journaled checksummed
+>1	byte		0x10		component file 64-bit level 2 journaled checksummed
+>1	byte		0x11		component file 32-bit level 3 journaled checksummed
+>1	byte		0x12		component file 64-bit level 3 journaled checksummed
+>1	byte		0x13		component file 32-bit non-journaled checksummed
+>1	byte		0x14		component file 64-bit non-journaled checksummed
+>1	byte		0x80		DDB
+
+0	short		0x6060		Dyalog APL transfer
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ebml b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ebml
new file mode 100755
index 0000000000000000000000000000000000000000..d5d174329a52ae16c711377595d8b60c78784681
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ebml
@@ -0,0 +1,8 @@
+
+#------------------------------------------------------------------------------
+# $File: ebml,v 1.1 2010/07/02 00:07:03 christos Exp $
+# ebml:  file(1) magic for various Extensible Binary Meta Language
+# http://www.matroska.org/technical/specs/index.html#track
+0	belong	0x1a45dfa3	EBML file
+>4	search/b/100	\102\202
+>>&1	string	x		\b, creator %.8s
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/editors b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/editors
new file mode 100755
index 0000000000000000000000000000000000000000..4c5b8a6699571852ab1086f3f4b80d4f7dc290ad
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/editors
@@ -0,0 +1,18 @@
+
+#------------------------------------------------------------------------------
+# $File: editors,v 1.8 2009/09/19 16:28:09 christos Exp $
+# T602 editor documents 
+# by David Necas <yeti@physics.muni.cz>
+0	string	@CT\ 	T602 document data,
+>4	string	0	Kamenicky
+>4	string	1	CP 852
+>4	string	2	KOI8-CS
+>4	string	>2	unknown encoding
+
+# Vi IMproved Encrypted file 
+# by David Necas <yeti@physics.muni.cz>
+0	string	VimCrypt~	Vim encrypted file data
+# Vi IMproved Swap file
+# by Sven Wegener <swegener@gentoo.org>
+0	string	b0VIM\ 		Vim swap file
+>&0	string	>\0		\b, version %s
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/efi b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/efi
new file mode 100755
index 0000000000000000000000000000000000000000..7335c5cefd51f37d590ab2602e77354e470a69fb
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/efi
@@ -0,0 +1,15 @@
+
+#------------------------------------------------------------------------------
+# $File: efi,v 1.4 2009/09/19 16:28:09 christos Exp $
+# efi:  file(1) magic for Universal EFI binaries
+
+0	lelong	0x0ef1fab9
+>4	lelong	1		Universal EFI binary with 1 architecture
+>>&0	lelong	7		\b, i386
+>>&0	lelong	0x01000007	\b, x86_64
+>4	lelong	2		Universal EFI binary with 2 architectures
+>>&0	lelong	7		\b, i386
+>>&0	lelong	0x01000007	\b, x86_64
+>>&20	lelong	7		\b, i386
+>>&20	lelong	0x01000007	\b, x86_64
+>4	lelong	>2		Universal EFI binary with %ld architectures
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/elf b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/elf
new file mode 100755
index 0000000000000000000000000000000000000000..f4e7af52b95021ccf9fe8379032a082e28347545
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/elf
@@ -0,0 +1,289 @@
+
+#------------------------------------------------------------------------------
+# $File: elf,v 1.53 2009/09/19 16:28:09 christos Exp $
+# elf:  file(1) magic for ELF executables
+#
+# We have to check the byte order flag to see what byte order all the
+# other stuff in the header is in.
+#
+# What're the correct byte orders for the nCUBE and the Fujitsu VPP500?
+#
+# Created by: unknown
+# Modified by (1): Daniel Quinlan <quinlan@yggdrasil.com>
+# Modified by (2): Peter Tobias <tobias@server.et-inf.fho-emden.de> (core support)
+# Modified by (3): Christian 'Dr. Disk' Hechelmann <drdisk@ds9.au.s.shuttle.de> (fix of core support)
+# Modified by (4): <gerardo.cacciari@gmail.com> (VMS Itanium)
+# Modified by (5): Matthias Urlichs <smurf@debian.org> (Listing of many architectures)
+0	string		\177ELF		ELF
+>4	byte		0		invalid class
+>4	byte		1		32-bit
+>4	byte		2		64-bit
+>5	byte		0		invalid byte order
+>5	byte		1		LSB
+>>16	leshort		0		no file type,
+!:strength *2
+!:mime	application/octet-stream
+>>16	leshort		1		relocatable,
+!:mime	application/x-object
+>>16	leshort		2		executable,
+!:mime	application/x-executable
+>>16	leshort		3		shared object,
+!:mime	application/x-sharedlib
+>>16	leshort		4		core file
+!:mime	application/x-coredump
+# Core file detection is not reliable.
+#>>>(0x38+0xcc) string	>\0		of '%s'
+#>>>(0x38+0x10) lelong	>0		(signal %d),
+>>16	leshort		&0xff00		processor-specific,
+>>18	leshort		0		no machine,
+>>18	leshort		1		AT&T WE32100 - invalid byte order,
+>>18	leshort		2		SPARC - invalid byte order,
+>>18	leshort		3		Intel 80386,
+>>18	leshort		4		Motorola
+>>>36	lelong		&0x01000000	68000 - invalid byte order,
+>>>36	lelong		&0x00810000	CPU32 - invalid byte order,
+>>>36	lelong		0		68020 - invalid byte order,
+>>18	leshort		5		Motorola 88000 - invalid byte order,
+>>18	leshort		6		Intel 80486,
+>>18	leshort		7		Intel 80860,
+# The official e_machine number for MIPS is now #8, regardless of endianness.
+# The second number (#10) will be deprecated later. For now, we still
+# say something if #10 is encountered, but only gory details for #8.
+>>18	leshort		8		MIPS,
+>>>36	lelong		&0x20		N32
+>>18	leshort		10		MIPS,
+>>>36	lelong		&0x20		N32
+>>18	leshort		8
+# only for 32-bit
+>>>4	byte		1
+>>>>36  lelong&0xf0000000	0x00000000	MIPS-I
+>>>>36  lelong&0xf0000000	0x10000000	MIPS-II
+>>>>36  lelong&0xf0000000	0x20000000	MIPS-III
+>>>>36  lelong&0xf0000000	0x30000000	MIPS-IV
+>>>>36  lelong&0xf0000000	0x40000000	MIPS-V
+>>>>36  lelong&0xf0000000	0x50000000	MIPS32
+>>>>36  lelong&0xf0000000	0x60000000	MIPS64
+>>>>36  lelong&0xf0000000	0x70000000	MIPS32 rel2
+>>>>36  lelong&0xf0000000	0x80000000	MIPS64 rel2
+# only for 64-bit
+>>>4	byte		2
+>>>>48  lelong&0xf0000000	0x00000000	MIPS-I
+>>>>48  lelong&0xf0000000	0x10000000	MIPS-II
+>>>>48  lelong&0xf0000000	0x20000000	MIPS-III
+>>>>48  lelong&0xf0000000	0x30000000	MIPS-IV
+>>>>48  lelong&0xf0000000	0x40000000	MIPS-V
+>>>>48  lelong&0xf0000000	0x50000000	MIPS32
+>>>>48  lelong&0xf0000000	0x60000000	MIPS64
+>>>>48  lelong&0xf0000000	0x70000000	MIPS32 rel2
+>>>>48  lelong&0xf0000000	0x80000000	MIPS64 rel2
+>>18	leshort		9		Amdahl - invalid byte order,
+>>18	leshort		10		MIPS (deprecated),
+>>18	leshort		11		RS6000 - invalid byte order,
+>>18	leshort		15		PA-RISC - invalid byte order,
+>>>50	leshort		0x0214		2.0
+>>>48	leshort		&0x0008		(LP64),
+>>18	leshort		16		nCUBE,
+>>18	leshort		17		Fujitsu VPP500,
+>>18	leshort		18		SPARC32PLUS - invalid byte order,
+>>18	leshort		20		PowerPC,
+>>18	leshort		22		IBM S/390,
+>>18	leshort		36		NEC V800,
+>>18	leshort		37		Fujitsu FR20,
+>>18	leshort		38		TRW RH-32,
+>>18	leshort		39		Motorola RCE,
+>>18	leshort		40		ARM,
+>>18	leshort		41		Alpha,
+>>18	leshort		0xa390		IBM S/390 (obsolete),
+>>18	leshort		42		Renesas SH,
+>>18	leshort		43		SPARC V9 - invalid byte order,
+>>18	leshort		44		Siemens Tricore Embedded Processor,
+>>18	leshort		45		Argonaut RISC Core, Argonaut Technologies Inc.,
+>>18	leshort		46		Renesas H8/300,
+>>18	leshort		47		Renesas H8/300H,
+>>18	leshort		48		Renesas H8S,
+>>18	leshort		49		Renesas H8/500,
+>>18	leshort		50		IA-64,
+>>18	leshort		51		Stanford MIPS-X,
+>>18	leshort		52		Motorola Coldfire,
+>>18	leshort		53		Motorola M68HC12,
+>>18	leshort		54		Fujitsu MMA,
+>>18	leshort		55		Siemens PCP,
+>>18	leshort		56		Sony nCPU,
+>>18	leshort		57		Denso NDR1,
+>>18	leshort		58		Start*Core,
+>>18	leshort		59		Toyota ME16,
+>>18	leshort		60		ST100,
+>>18	leshort		61		Tinyj emb.,
+>>18	leshort		62		x86-64,
+>>18	leshort		63		Sony DSP,
+>>18	leshort		66		FX66,
+>>18	leshort		67		ST9+ 8/16 bit,
+>>18	leshort		68		ST7 8 bit,
+>>18	leshort		69		MC68HC16,
+>>18	leshort		70		MC68HC11,
+>>18	leshort		71		MC68HC08,
+>>18	leshort		72		MC68HC05,
+>>18	leshort		73		SGI SVx,
+>>18	leshort		74		ST19 8 bit,
+>>18	leshort		75		Digital VAX,
+>>18	leshort		76		Axis cris,
+>>18	leshort		77		Infineon 32-bit embedded,
+>>18	leshort		78		Element 14 64-bit DSP,
+>>18	leshort		79		LSI Logic 16-bit DSP,
+>>18	leshort		80		MMIX,
+>>18	leshort		81		Harvard machine-independent,
+>>18	leshort		82		SiTera Prism,
+>>18	leshort		83		Atmel AVR 8-bit,
+>>18	leshort		84		Fujitsu FR30,
+>>18	leshort		85		Mitsubishi D10V,
+>>18	leshort		86		Mitsubishi D30V,
+>>18	leshort		87		NEC v850,
+>>18	leshort		88		Renesas M32R,
+>>18	leshort		89		Matsushita MN10300,
+>>18	leshort		90		Matsushita MN10200,
+>>18	leshort		91		picoJava,
+>>18	leshort		92		OpenRISC,
+>>18	leshort		93		ARC Cores Tangent-A5,
+>>18	leshort		94		Tensilica Xtensa,
+>>18	leshort		97		NatSemi 32k,
+>>18	leshort		106		Analog Devices Blackfin,
+>>18	leshort		113		Altera Nios II,
+>>18	leshort		0xae		META,
+>>18	leshort		0x3426		OpenRISC (obsolete),
+>>18	leshort		0x8472		OpenRISC (obsolete),
+>>18	leshort		0x9026		Alpha (unofficial),
+>>20	lelong		0		invalid version
+>>20	lelong		1		version 1
+>>36	lelong		1		MathCoPro/FPU/MAU Required
+>5	byte		2		MSB
+>>16	beshort		0		no file type,
+!:mime	application/octet-stream
+>>16	beshort		1		relocatable,
+!:mime	application/x-object
+>>16	beshort		2		executable,
+!:mime	application/x-executable
+>>16	beshort		3		shared object,
+!:mime	application/x-sharedlib
+>>16	beshort		4		core file,
+!:mime	application/x-coredump
+#>>>(0x38+0xcc) string	>\0		of '%s'
+#>>>(0x38+0x10) belong	>0		(signal %d),
+>>16	beshort		&0xff00		processor-specific,
+>>18	beshort		0		no machine,
+>>18	beshort		1		AT&T WE32100,
+>>18	beshort		2		SPARC,
+>>18	beshort		3		Intel 80386 - invalid byte order,
+>>18	beshort		4		Motorola
+>>>36	belong		&0x01000000	68000,
+>>>36	belong		&0x00810000	CPU32,
+>>>36	belong		0		68020,
+>>18	beshort		5		Motorola 88000,
+>>18	beshort		6		Intel 80486 - invalid byte order,
+>>18	beshort		7		Intel 80860,
+# only for MIPS - see comment in little-endian section above.
+>>18	beshort		8		MIPS,
+>>>36	belong		&0x20		N32
+>>18	beshort		10		MIPS,
+>>>36	belong		&0x20		N32
+>>18	beshort		8
+# only for 32-bit
+>>>4	byte		1
+>>>>36  belong&0xf0000000	0x00000000	MIPS-I
+>>>>36  belong&0xf0000000	0x10000000	MIPS-II
+>>>>36  belong&0xf0000000	0x20000000	MIPS-III
+>>>>36  belong&0xf0000000	0x30000000	MIPS-IV
+>>>>36  belong&0xf0000000	0x40000000	MIPS-V
+>>>>36  belong&0xf0000000	0x50000000	MIPS32
+>>>>36  belong&0xf0000000	0x60000000	MIPS64
+>>>>36  belong&0xf0000000	0x70000000	MIPS32 rel2
+>>>>36  belong&0xf0000000	0x80000000	MIPS64 rel2
+# only for 64-bit
+>>>4	byte		2
+>>>>48	belong&0xf0000000	0x00000000	MIPS-I
+>>>>48	belong&0xf0000000	0x10000000	MIPS-II
+>>>>48	belong&0xf0000000	0x20000000	MIPS-III
+>>>>48	belong&0xf0000000	0x30000000	MIPS-IV
+>>>>48	belong&0xf0000000	0x40000000	MIPS-V
+>>>>48	belong&0xf0000000	0x50000000	MIPS32
+>>>>48	belong&0xf0000000	0x60000000	MIPS64
+>>>>48	belong&0xf0000000	0x70000000	MIPS32 rel2
+>>>>48	belong&0xf0000000	0x80000000	MIPS64 rel2
+>>18	beshort		9		Amdahl,
+>>18	beshort		10		MIPS (deprecated),
+>>18	beshort		11		RS6000,
+>>18	beshort		15		PA-RISC
+>>>50	beshort		0x0214		2.0
+>>>48	beshort		&0x0008		(LP64)
+>>18	beshort		16		nCUBE,
+>>18	beshort		17		Fujitsu VPP500,
+>>18	beshort		18		SPARC32PLUS,
+>>>36	belong&0xffff00	0x000100	V8+ Required,
+>>>36	belong&0xffff00	0x000200	Sun UltraSPARC1 Extensions Required,
+>>>36	belong&0xffff00	0x000400	HaL R1 Extensions Required,
+>>>36	belong&0xffff00	0x000800	Sun UltraSPARC3 Extensions Required,
+>>18	beshort		20		PowerPC or cisco 4500,
+>>18	beshort		21		64-bit PowerPC or cisco 7500,
+>>18	beshort		22		IBM S/390,
+>>18	beshort		23		Cell SPU,
+>>18	beshort		24		cisco SVIP,
+>>18	beshort		25		cisco 7200,
+>>18	beshort		36		NEC V800 or cisco 12000,
+>>18	beshort		37		Fujitsu FR20,
+>>18	beshort		38		TRW RH-32,
+>>18	beshort		39		Motorola RCE,
+>>18	beshort		40		ARM,
+>>18	beshort		41		Alpha,
+>>18	beshort		42		Renesas SH,
+>>18	beshort		43		SPARC V9,
+>>>48	belong&0xffff00	0x000200	Sun UltraSPARC1 Extensions Required,
+>>>48	belong&0xffff00	0x000400	HaL R1 Extensions Required,
+>>>48	belong&0xffff00	0x000800	Sun UltraSPARC3 Extensions Required,
+>>>48	belong&0x3	0		total store ordering,
+>>>48	belong&0x3	1		partial store ordering,
+>>>48	belong&0x3	2		relaxed memory ordering,
+>>18	beshort		44		Siemens Tricore Embedded Processor,
+>>18	beshort		45		Argonaut RISC Core, Argonaut Technologies Inc.,
+>>18	beshort		46		Renesas H8/300,
+>>18	beshort		47		Renesas H8/300H,
+>>18	beshort		48		Renesas H8S,
+>>18	beshort		49		Renesas H8/500,
+>>18	beshort		50		IA-64,
+>>18	beshort		51		Stanford MIPS-X,
+>>18	beshort		52		Motorola Coldfire,
+>>18	beshort		53		Motorola M68HC12,
+>>18	beshort		73		Cray NV1,
+>>18	beshort		75		Digital VAX,
+>>18	beshort		88		Renesas M32R,
+>>18	leshort		92		OpenRISC,
+>>18	leshort		0x3426		OpenRISC (obsolete),
+>>18	leshort		0x8472		OpenRISC (obsolete),
+>>18	beshort		94		Tensilica Xtensa,
+>>18	beshort		97		NatSemi 32k,
+>>18	beshort		0x18ad		AVR32 (unofficial),
+>>18	beshort		0x9026		Alpha (unofficial),
+>>18	beshort		0xa390		IBM S/390 (obsolete),
+>>20	belong		0		invalid version
+>>20	belong		1		version 1
+>>36	belong		1		MathCoPro/FPU/MAU Required
+# Up to now only 0, 1 and 2 are defined; I've seen a file with 0x83, it seemed
+# like proper ELF, but extracting the string had bad results.
+>4      byte            <0x80
+>>8	string		>\0		(%s)
+>8	string		\0
+>>7	byte		0		(SYSV)
+>>7	byte		1		(HP-UX)
+>>7	byte		2		(NetBSD)
+>>7	byte		3		(GNU/Linux)
+>>7	byte		4		(GNU/Hurd)
+>>7	byte		5		(86Open)
+>>7	byte		6		(Solaris)
+>>7	byte		7		(Monterey)
+>>7	byte		8		(IRIX)
+>>7	byte		9		(FreeBSD)
+>>7	byte		10		(Tru64)
+>>7	byte		11		(Novell Modesto)
+>>7	byte		12		(OpenBSD)
+>8      string          \2
+>>7     byte            13              (OpenVMS)
+>>7	byte		97		(ARM)
+>>7	byte		255		(embedded)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/encore b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/encore
new file mode 100755
index 0000000000000000000000000000000000000000..ef82eed64b0c2d644be0bba261db44174cba0bab
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/encore
@@ -0,0 +1,22 @@
+
+#------------------------------------------------------------------------------
+# $File: encore,v 1.6 2009/09/19 16:28:09 christos Exp $
+# encore:  file(1) magic for Encore machines
+#
+# XXX - needs to have the byte order specified (NS32K was little-endian,
+# dunno whether they run the 88K in little-endian mode or not).
+#
+0	short		0x154		Encore
+>20	short		0x107		executable
+>20	short		0x108		pure executable
+>20	short		0x10b		demand-paged executable
+>20	short		0x10f		unsupported executable
+>12	long		>0		not stripped
+>22	short		>0		- version %ld
+>22	short		0		-
+#>4	date		x		stamp %s
+0	short		0x155		Encore unsupported executable
+>12	long		>0		not stripped
+>22	short		>0		- version %ld
+>22	short		0		-
+#>4	date		x		stamp %s
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/epoc b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/epoc
new file mode 100755
index 0000000000000000000000000000000000000000..c67a8b66e7b65e6842e3ad43aaf13f6a46820e60
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/epoc
@@ -0,0 +1,53 @@
+
+#------------------------------------------------------------------------------
+# $File: epoc,v 1.7 2009/09/19 16:28:09 christos Exp $
+# EPOC : file(1) magic for EPOC documents [Psion Series 5/Osaris/Geofox 1]
+# Stefan Praszalowicz <hpicollo@worldnet.fr> and Peter Breitenlohner <peb@mppmu.mpg.de>
+# Useful information for improving this file can be found at:
+# http://software.frodo.looijaard.name/psiconv/formats/Index.html
+#------------------------------------------------------------------------------
+0	lelong		0x10000037	Psion Series 5
+>4	lelong		0x10000039	font file
+>4	lelong		0x1000003A	printer driver
+>4	lelong		0x1000003B	clipboard
+>4	lelong		0x10000042	multi-bitmap image
+!:mime image/x-epoc-mbm
+>4	lelong		0x1000006A	application information file
+>4	lelong		0x1000006D
+>>8	lelong		0x1000007D	Sketch image
+!:mime image/x-epoc-sketch
+>>8	lelong		0x1000007E	voice note
+>>8	lelong		0x1000007F	Word file
+!:mime application/x-epoc-word
+>>8	lelong		0x10000085	OPL program (TextEd)
+!:mime application/x-epoc-opl
+>>8	lelong		0x10000088	Sheet file
+!:mime application/x-epoc-sheet
+>>8	lelong		0x100001C4	EasyFax initialisation file
+>4	lelong		0x10000073	OPO module
+!:mime application/x-epoc-opo
+>4	lelong		0x10000074	OPL application
+!:mime application/x-epoc-app
+>4	lelong		0x1000008A	exported multi-bitmap image
+
+0	lelong		0x10000041	Psion Series 5 ROM multi-bitmap image
+
+0	lelong		0x10000050	Psion Series 5
+>4	lelong		0x1000006D	database
+>4	lelong		0x100000E4	ini file
+
+0	lelong		0x10000079	Psion Series 5 binary:
+>4	lelong		0x00000000	DLL
+>4	lelong		0x10000049	comms hardware library
+>4	lelong		0x1000004A	comms protocol library
+>4	lelong		0x1000005D	OPX
+>4	lelong		0x1000006C	application
+>4	lelong		0x1000008D	DLL
+>4	lelong		0x100000AC	logical device driver
+>4	lelong		0x100000AD	physical device driver
+>4	lelong		0x100000E5	file transfer protocol
+>4	lelong		0x100000E5	file transfer protocol
+>4	lelong		0x10000140	printer definition
+>4	lelong		0x10000141	printer definition
+
+0	lelong		0x1000007A	Psion Series 5 executable
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/erlang b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/erlang
new file mode 100755
index 0000000000000000000000000000000000000000..b604a06828f16850fa2942c538e7042dcdadab4b
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/erlang
@@ -0,0 +1,21 @@
+
+#------------------------------------------------------------------------------
+# $File: erlang,v 1.6 2010/09/20 19:19:17 rrt Exp $
+# erlang:  file(1) magic for Erlang JAM and BEAM files
+# URL:  http://www.erlang.org/faq/x779.html#AEN812
+
+# OTP R3-R4
+0	string	\0177BEAM!	Old Erlang BEAM file
+>6	short	>0		- version %d
+
+# OTP R5 and onwards
+0	string	FOR1
+>8	string	BEAM		Erlang BEAM file
+
+# 4.2 version may have a copyright notice!
+4	string	Tue\ Jan\ 22\ 14:32:44\ MET\ 1991	Erlang JAM file - version 4.2
+79	string	Tue\ Jan\ 22\ 14:32:44\ MET\ 1991	Erlang JAM file - version 4.2
+
+4	string	1.0\ Fri\ Feb\ 3\ 09:55:56\ MET\ 1995	Erlang JAM file - version 4.3
+
+0	bequad	0x0000000000ABCDEF	Erlang DETS file
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/esri b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/esri
new file mode 100755
index 0000000000000000000000000000000000000000..e070e4f83f454c35895b984a0cbdd8ba4106ae0b
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/esri
@@ -0,0 +1,28 @@
+
+#------------------------------------------------------------------------------
+# $File: esri,v 1.4 2009/09/19 16:28:09 christos Exp $
+# ESRI Shapefile format (.shp .shx .dbf=DBaseIII)
+# Based on info from
+# <URL:http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf>
+0	belong	9994	ESRI Shapefile
+>4	belong	=0
+>8	belong	=0
+>12	belong	=0
+>16	belong	=0
+>20	belong	=0
+>28	lelong	x	version %d
+>24	belong	x	length %d
+>32	lelong	=0	type Null Shape
+>32	lelong	=1	type Point
+>32	lelong	=3	type PolyLine
+>32	lelong	=5	type Polygon
+>32	lelong	=8	type MultiPoint
+>32	lelong	=11	type PointZ
+>32	lelong	=13	type PolyLineZ
+>32	lelong	=15	type PolygonZ
+>32	lelong	=18	type MultiPointZ
+>32	lelong	=21	type PointM
+>32	lelong	=23	type PolyLineM
+>32	lelong	=25	type PolygonM
+>32	lelong	=28	type MultiPointM
+>32	lelong	=31	type MultiPatch
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/fcs b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/fcs
new file mode 100755
index 0000000000000000000000000000000000000000..613437f842c39479475e299391a6ef9d21b81000
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/fcs
@@ -0,0 +1,9 @@
+
+#------------------------------------------------------------------------------
+# $File: fcs,v 1.4 2009/09/19 16:28:09 christos Exp $
+# fcs: file(1) magic for FCS (Flow Cytometry Standard) data files
+# From Roger Leigh <roger@whinlatter.uklinux.net>
+0       string          FCS1.0          Flow Cytometry Standard (FCS) data, version 1.0
+0       string          FCS2.0          Flow Cytometry Standard (FCS) data, version 2.0
+0       string          FCS3.0          Flow Cytometry Standard (FCS) data, version 3.0
+
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/filesystems b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/filesystems
new file mode 100755
index 0000000000000000000000000000000000000000..af9695b9a42a7374114f826adbfc3159be4f7794
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/filesystems
@@ -0,0 +1,1571 @@
+
+#------------------------------------------------------------------------------
+# $File: filesystems,v 1.61 2011/01/10 14:01:10 christos Exp $
+# filesystems:  file(1) magic for different filesystems
+#
+0	string	\366\366\366\366	PC formatted floppy with no filesystem
+# Sun disk labels
+# From /usr/include/sun/dklabel.h:
+0774	beshort		0xdabe		
+# modified by Joerg Jenderek, because original test
+# succeeds for Cabinet archive dao360.dl_ with negative blocks
+>0770	long		>0		Sun disk label
+>>0	string		x		'%s
+>>>31	string		>\0		\b%s
+>>>>63	string		>\0		\b%s
+>>>>>95	string		>\0		\b%s
+>>0	string		x		\b'
+>>0734	short		>0		%d rpm,
+>>0736	short		>0		%d phys cys,
+>>0740	short		>0		%d alts/cyl,
+>>0746	short		>0		%d interleave,
+>>0750	short		>0		%d data cyls,
+>>0752	short		>0		%d alt cyls,
+>>0754	short		>0		%d heads/partition,
+>>0756	short		>0		%d sectors/track,
+>>0764	long		>0		start cyl %ld,
+>>0770	long		x		%ld blocks
+# Is there a boot block written 1 sector in?
+>512    belong&077777777	0600407	\b, boot block present
+# Joerg Jenderek: Smart Boot Manager backup file is 41 byte header + first sectors of disc
+# (http://btmgr.sourceforge.net/docs/user-guide-3.html)
+0		string	SBMBAKUP_	Smart Boot Manager backup file
+>9		string	x		\b, version %-5.5s
+>>14		string	=_		
+>>>15		string	x		%-.1s
+>>>>16		string	=_		\b.
+>>>>>17		string	x		\b%-.1s
+>>>>>>18	string	=_		\b.
+>>>>>>>19	string	x		\b%-.1s
+>>>22		ubyte	0		
+>>>>21		ubyte	x		\b, from drive 0x%x
+>>>22		ubyte	>0		
+>>>>21		string	x		\b, from drive %s
+
+# Joerg Jenderek
+# DOS Emulator image is 128 byte, null right padded header + harddisc image
+0	string	DOSEMU\0			
+>0x27E	leshort	0xAA55			
+#offset is 128
+>>19	ubyte	128			
+>>>(19.b-1)	ubyte	0x0	DOS Emulator image
+>>>>7	ulelong	>0		\b, %u heads
+>>>>11	ulelong	>0		\b, %d sectors/track
+>>>>15	ulelong	>0		\b, %d cylinders
+
+# updated by Joerg Jenderek at Sep 2007
+# only for sector sizes with 512 or more Bytes
+0x1FE	leshort	0xAA55			x86 boot sector
+# to do also for sectors < than 512 Bytes and some other files, GRR
+#30	search/481	\x55\xAA	x86 boot sector
+# not for BeOS floppy 1440k, MBRs
+#(11.s-2) uleshort	0xAA55		x86 boot sector
+>2	string	OSBS			\b, OS/BS MBR
+# J\xf6rg Jenderek <joerg dot jenderek at web dot de>
+>0x8C	string	Invalid\ partition\ table	\b, MS-DOS MBR
+# dr-dos with some upper-, lowercase variants
+>0x9D	string	Invalid\ partition\ table$	
+>>181	string	No\ Operating\ System$		
+>>>201	string	Operating\ System\ load\ error$	\b, DR-DOS MBR, Version 7.01 to 7.03
+>0x9D	string	Invalid\ partition\ table$	
+>>181	string	No\ operating\ system$		
+>>>201	string	Operating\ system\ load\ error$	\b, DR-DOS MBR, Version 7.01 to 7.03
+>342	string	Invalid\ partition\ table$	
+>>366	string	No\ operating\ system$		
+>>>386	string	Operating\ system\ load\ error$	\b, DR-DOS MBR, version 7.01 to 7.03
+>295	string	NEWLDR\0				
+>>302	string	Bad\ PT\ $				
+>>>310	string	No\ OS\ $				
+>>>>317	string	OS\ load\ err$				
+>>>>>329	string	Moved\ or\ missing\ IBMBIO.LDR\n\r	
+>>>>>>358	string	Press\ any\ key\ to\ continue.\n\r$	
+>>>>>>>387	string	Copyright\ (c)\ 1984,1998	
+>>>>>>>>411	string	Caldera\ Inc.\0		\b, DR-DOS MBR (IBMBIO.LDR)
+>0x10F	string	Ung\201ltige\ Partitionstabelle	\b, MS-DOS MBR, german version 4.10.1998, 4.10.2222
+>>0x1B8	ubelong	>0				\b, Serial 0x%-.4x
+>0x8B	string	Ung\201ltige\ Partitionstabelle	\b, MS-DOS MBR, german version 5.00 to 4.00.950
+>271	string	Invalid\ partition\ table\0		
+>>295	string	Error\ loading\ operating\ system\0	
+>>>326	string	Missing\ operating\ system\0		\b, mbr
+#
+>139	string	Invalid\ partition\ table\0		
+>>163	string	Error\ loading\ operating\ system\0	
+>>>194	string	Missing\ operating\ system\0		\b, Microsoft Windows XP mbr
+# http://www.heise.de/ct/05/09/006/ page 184
+#HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices\DosDevices\?:=Serial4Bytes+8Bytes
+>>>>0x1B8	ulelong	>0				\b,Serial 0x%-.4x
+>300	string	Invalid\ partition\ table\0	
+>>324	string	Error\ loading\ operating\ system\0
+>>>355	string	Missing\ operating\ system\0		\b, Microsoft Windows XP MBR
+#??>>>389	string	Invalid\ system\ disk		
+>>>>0x1B8	ulelong	>0				\b, Serial 0x%-.4x
+>300	string	Ung\201ltige\ Partitionstabelle
+#split string to avoid error: String too long
+>>328	string	Fehler\ beim\ Laden\ 	
+>>>346	string	des\ Betriebssystems	
+>>>>366	string	Betriebssystem\ nicht\ vorhanden	\b, Microsoft Windows XP MBR (german)
+>>>>>0x1B8	ulelong	>0				\b, Serial 0x%-.4x
+#>0x145	string	Default:\ F				\b, FREE-DOS MBR
+#>0x14B	string	Default:\ F				\b, FREE-DOS 1.0 MBR
+>0x145	search/7	Default:\ F			\b, FREE-DOS MBR
+#>>313		string	F0\ .\ .\ .			
+#>>>322		string	disk\ 1				
+#>>>>382	string	FAT3				
+>64	string	no\ active\ partition\ found	
+>>96	string	read\ error\ while\ reading\ drive	\b, FREE-DOS Beta 0.9 MBR
+# Ranish Partition Manager http://www.ranish.com/part/
+>387	search/4	\0\ Error!\r			
+>>378	search/7	Virus! 				
+>>>397	search/4	Booting\ 			
+>>>>408	search/4	HD1/\0	 			\b, Ranish MBR (
+>>>>>416	string	Writing\ changes...		\b2.37
+>>>>>>438	ubyte		x			\b,0x%x dots
+>>>>>>440	ubyte		>0			\b,virus check
+>>>>>>441	ubyte		>0			\b,partition %c
+#2.38,2.42,2.44
+>>>>>416	string	!Writing\ changes...		\b
+>>>>>>418	ubyte	1				\bvirus check,
+>>>>>>419	ubyte	x				\b0x%x seconds
+>>>>>>420	ubyte&0x0F	>0			\b,partition
+>>>>>>>420	ubyte&0x0F	<5			\b %x
+>>>>>>>420	ubyte&0x0F	0Xf			\b ask
+>>>>>420	ubyte		x			\b)
+#
+>271	string	Operating\ system\ loading 		
+>>296	string	error\r					\b, SYSLINUX MBR (2.10)
+# http://www.acronis.de/
+>362	string	MBR\ Error\ \0\r			
+>>376	string	ress\ any\ key\ to\ 			
+>>>392	string	boot\ from\ floppy...\0			\b, Acronis MBR
+# added by Joerg Jenderek
+# http://www.visopsys.org/
+# http://partitionlogic.org.uk/
+>309	string	No\ bootable\ partition\ found\r	
+>>339	string	I/O\ Error\ reading\ boot\ sector\r	\b, Visopsys MBR
+>349	string	No\ bootable\ partition\ found\r	
+>>379	string	I/O\ Error\ reading\ boot\ sector\r	\b, simple Visopsys MBR
+# bootloader, bootmanager
+>0x40	string	SBML				
+# label with 11 characters of FAT 12 bit filesystem
+>>43	string	SMART\ BTMGR			
+>>>430	string	SBMK\ Bad!\r			\b, Smart Boot Manager
+# OEM-ID not always "SBM"
+#>>>>3	strings	SBM				
+>>>>6	string	>\0                             \b, version %s
+>382	string	XOSLLOADXCF			\b, eXtended Operating System Loader
+>6	string	LILO				\b, LInux i386 boot LOader
+>>120	string	LILO				\b, version 22.3.4 SuSe
+>>172	string	LILO				\b, version 22.5.8 Debian
+# updated by Joerg Jenderek at Oct 2008
+# variables according to grub-0.97/stage1/stage1.S or
+# http://www.gnu.org/software/grub/manual/grub.html#Embedded-data
+# usual values are marked with comments to get only informations of strange GRUB loaders
+>342		search/60	\0Geom\0	
+#>0		ulelong		x		%x=0x009048EB ,	0x2a9048EB  0
+>>0x41		ubyte		<2		
+>>>0x3E		ubyte		>2		\b; GRand Unified Bootloader
+# 0x3 for 0.5.95,0.93,0.94,0.96 0x4 for 1.90 
+>>>>0x3E	ubyte		x		\b, stage1 version 0x%x
+#If it is 0xFF, use a drive passed by BIOS
+>>>>0x40	ubyte		<0xFF		\b, boot drive 0x%x
+# in most case 0,1,0x2e for GRUB 0.5.95
+>>>>0x41	ubyte		>0		\b, LBA flag 0x%x
+>>>>0x42	uleshort	<0x8000		\b, stage2 address 0x%x
+#>>>>0x42	uleshort	=0x8000		\b, stage2 address 0x%x (usual)
+>>>>0x42	uleshort	>0x8000		\b, stage2 address 0x%x
+#>>>>0x44	ulelong		=1		\b, 1st sector stage2 0x%x (default)
+>>>>0x44	ulelong		>1		\b, 1st sector stage2 0x%x
+>>>>0x48	uleshort	<0x800		\b, stage2 segment 0x%x
+#>>>>0x48	uleshort	=0x800		\b, stage2 segment 0x%x (usual)
+>>>>0x48	uleshort	>0x800		\b, stage2 segment 0x%x
+>>>>402		string	Geom\0Hard\ Disk\0Read\0\ Error\0
+>>>>>394	string	stage1			\b, GRUB version 0.5.95
+>>>>382		string	Geom\0Hard\ Disk\0Read\0\ Error\0
+>>>>>376	string	GRUB\ \0		\b, GRUB version 0.93 or 1.94
+>>>>383		string	Geom\0Hard\ Disk\0Read\0\ Error\0
+>>>>>377	string	GRUB\ \0		\b, GRUB version 0.94
+>>>>385		string	Geom\0Hard\ Disk\0Read\0\ Error\0
+>>>>>379	string	GRUB\ \0		\b, GRUB version 0.95 or 0.96
+>>>>391		string	Geom\0Hard\ Disk\0Read\0\ Error\0
+>>>>>385	string	GRUB\ \0		\b, GRUB version 0.97
+#unkown version
+>>>343		string	Geom\0Read\0\ Error\0	
+>>>>321		string	Loading\ stage1.5	\b, GRUB version x.y
+>>>380		string	Geom\0Hard\ Disk\0Read\0\ Error\0
+>>>>374		string	GRUB\ \0		\b, GRUB version n.m
+# http://syslinux.zytor.com/
+>478	string	Boot\ failed\r			
+>>495	string	LDLINUX\ SYS			\b, SYSLINUX bootloader (1.62)
+>480	string	Boot\ failed\r			
+>>495	string	LDLINUX\ SYS			\b, SYSLINUX bootloader (2.06 or 2.11)
+>484	string	Boot\ error\r			\b, SYSLINUX bootloader (3.11)
+>395	string	chksum\0\ ERROR!\0		\b, Gujin bootloader
+# http://www.bcdwb.de/bcdw/index_e.htm
+>3	string	BCDL				
+>>498	string	BCDL\ \ \ \ BIN			\b, Bootable CD Loader (1.50Z)
+# mbr partition table entries
+# OEM-ID does not contain MicroSoft,NEWLDR,DOS,SYSLINUX,or MTOOLs
+>3			string		!MS
+>>3			string		!SYSLINUX
+>>>3			string		!MTOOL
+>>>>3			string		!NEWLDR
+>>>>>5			string		!DOS
+# not FAT (32 bit)
+>>>>>>82		string		!FAT32
+#not Linux kernel
+>>>>>>>514		string		!HdrS
+#not BeOS
+>>>>>>>>422		string		!Be\ Boot\ Loader
+# active flag 0 or 0x80 and type > 0
+>>>>>>>>>446		ubyte		<0x81	
+>>>>>>>>>>446		ubyte&0x7F	0	
+>>>>>>>>>>>450		ubyte		>0	\b; partition 1: ID=0x%x
+>>>>>>>>>>>>446		ubyte		0x80	\b, active
+>>>>>>>>>>>>447		ubyte		x	\b, starthead %u
+#>>>>>>>>>>>>448		ubyte		x	\b, start C_S: 0x%x
+#>>>>>>>>>>>>448		ubeshort&1023	x	\b, startcylinder? %d
+>>>>>>>>>>>>454		ulelong		x	\b, startsector %u
+>>>>>>>>>>>>458		ulelong		x	\b, %u sectors
+#
+>>>>>>>>>462		ubyte		<0x81	
+>>>>>>>>>>462		ubyte&0x7F	0		
+>>>>>>>>>>>466		ubyte		>0	\b; partition 2: ID=0x%x
+>>>>>>>>>>>>462		ubyte		0x80	\b, active
+>>>>>>>>>>>>463		ubyte		x	\b, starthead %u
+#>>>>>>>>>>>>464		ubyte		x	\b, start C_S: 0x%x
+#>>>>>>>>>>>>464		ubeshort&1023	x	\b, startcylinder? %d
+>>>>>>>>>>>>470		ulelong		x	\b, startsector %u
+>>>>>>>>>>>>474		ulelong		x	\b, %u sectors
+#
+>>>>>>>>>478		ubyte		<0x81		
+>>>>>>>>>>478		ubyte&0x7F	0		
+>>>>>>>>>>>482		ubyte		>0	\b; partition 3: ID=0x%x
+>>>>>>>>>>>>478		ubyte		0x80	\b, active
+>>>>>>>>>>>>479		ubyte		x	\b, starthead %u
+#>>>>>>>>>>>>480		ubyte		x	\b, start C_S: 0x%x
+#>>>>>>>>>>>>481		ubyte		x	\b, start C2S: 0x%x
+#>>>>>>>>>>>>480		ubeshort&1023	x	\b, startcylinder? %d
+>>>>>>>>>>>>486		ulelong		x	\b, startsector %u
+>>>>>>>>>>>>490		ulelong		x	\b, %u sectors
+#
+>>>>>>>>>494		ubyte		<0x81	
+>>>>>>>>>>494		ubyte&0x7F	0		
+>>>>>>>>>>>498		ubyte		>0	\b; partition 4: ID=0x%x
+>>>>>>>>>>>>494		ubyte		0x80	\b, active
+>>>>>>>>>>>>495		ubyte		x	\b, starthead %u
+#>>>>>>>>>>>>496		ubyte		x	\b, start C_S: 0x%x
+#>>>>>>>>>>>>496		ubeshort&1023	x	\b, startcylinder? %d
+>>>>>>>>>>>>502		ulelong		x	\b, startsector %u
+>>>>>>>>>>>>506		ulelong		x	\b, %u sectors
+# mbr partition table entries end
+# http://www.acronis.de/
+#FAT label=ACRONIS\ SZ
+#OEM-ID=BOOTWIZ0
+>442	string	Non-system\ disk,\ 	
+>>459	string	press\ any\ key...\x7\0		\b, Acronis Startup Recovery Loader
+# DOS names like F11.SYS are 8 right space padded bytes+3 bytes
+>>>477		ubyte&0xDF	>0		
+>>>>477		string		x 		\b %-.3s
+>>>>>480	ubyte&0xDF	>0		
+>>>>>>480	string		x 		\b%-.5s
+>>>>485		ubyte&0xDF	>0		
+>>>>>485	string		x 		\b.%-.3s
+#
+>185	string	FDBOOT\ Version\ 			
+>>204	string	\rNo\ Systemdisk.\ 			
+>>>220	string	Booting\ from\ harddisk.\n\r		
+>>>245	string	Cannot\ load\ from\ harddisk.\n\r	
+>>>>273 string	Insert\ Systemdisk\ 			
+>>>>>291 string and\ press\ any\ key.\n\r		\b, FDBOOT harddisk Bootloader
+>>>>>>200 string	>\0                             \b, version %-3s
+>242	string	Bootsector\ from\ C.H.\ Hochst\204	
+>>278	string	No\ Systemdisk.\ 			
+>>>293	string	Booting\ from\ harddisk.\n\r		
+>>>441	string	Cannot\ load\ from\ harddisk.\n\r	
+>>>>469 string	Insert\ Systemdisk\ 			
+>>>>>487 string and\ press\ any\ key.\n\r		\b, WinImage harddisk Bootloader
+>>>>>>209 string	>\0                             \b, version %-4.4s
+>(1.b+2)	ubyte		0xe			
+>>(1.b+3)	ubyte		0x1f			
+>>>(1.b+4)	ubyte		0xbe			
+>>>>(1.b+5)	ubyte		0x77			
+>>>>(1.b+6)	ubyte		0x7c			
+>>>>>(1.b+7)	ubyte		0xac			
+>>>>>>(1.b+8)	ubyte		0x22			
+>>>>>>>(1.b+9)	ubyte		0xc0			
+>>>>>>>>(1.b+10)	ubyte	0x74			
+>>>>>>>>>(1.b+11)	ubyte	0xb			
+>>>>>>>>>>(1.b+12)	ubyte	0x56			
+>>>>>>>>>>(1.b+13)	ubyte	0xb4			\b, mkdosfs boot message display
+>214	string	Please\ try\ to\ install\ FreeDOS\ 	\b, DOS Emulator boot message display
+#>>244	string	from\ dosemu-freedos-*-bin.tgz\r	
+#>>>170	string	Sorry,\ could\ not\ load\ an\ 		
+#>>>>195	string	operating\ system.\r\n		
+#
+>103	string	This\ is\ not\ a\ bootable\ disk.\ 	
+>>132	string	Please\ insert\ a\ bootable\ 		
+>>>157	string	floppy\ and\r\n				
+>>>>169	string	press\ any\ key\ to\ try\ again...\r	\b, FREE-DOS message display
+#
+>66	string	Solaris\ Boot\ Sector    		
+>>99	string	Incomplete\ MDBoot\ load.		
+>>>89	string	Version 				\b, Sun Solaris Bootloader
+>>>>97	byte	x					version %c
+#
+>408	string	OS/2\ !!\ SYS01475\r\0			
+>>429	string	OS/2\ !!\ SYS02025\r\0			
+>>>450	string	OS/2\ !!\ SYS02027\r\0			
+>>>469	string	OS2BOOT\ \ \ \ 				\b, IBM OS/2 Warp bootloader
+#
+>409	string	OS/2\ !!\ SYS01475\r\0			
+>>430	string	OS/2\ !!\ SYS02025\r\0			
+>>>451	string	OS/2\ !!\ SYS02027\r\0			
+>>>470	string	OS2BOOT\ \ \ \ 				\b, IBM OS/2 Warp Bootloader
+>112		string	This\ disk\ is\ not\ bootable\r			
+>>142		string	If\ you\ wish\ to\ make\ it\ bootable		
+>>>176		string	run\ the\ DOS\ program\ SYS\  			
+>>>200		string	after\ the\r					
+>>>>216		string	system\ has\ been\ loaded\r\n			
+>>>>>242	string	Please\ insert\ a\ DOS\ diskette\ 		
+>>>>>271	string	into\r\n\ the\ drive\ and\ 			
+>>>>>>292	string	strike\ any\ key...\0		\b, IBM OS/2 Warp message display
+# XP
+>430	string	NTLDR\ is\ missing\xFF\r\n		
+>>449	string	Disk\ error\xFF\r\n			
+>>>462	string	Press\ any\ key\ to\ restart\r		\b, Microsoft Windows XP Bootloader
+# DOS names like NTLDR,CMLDR,$LDR$ are 8 right space padded bytes+3 bytes
+>>>>417		ubyte&0xDF	>0			
+>>>>>417	string		x			%-.5s
+>>>>>>422	ubyte&0xDF	>0			
+>>>>>>>422	string		x 			\b%-.3s
+>>>>>425	ubyte&0xDF	>0			
+>>>>>>425	string		>\ 			\b.%-.3s
+#
+>>>>371		ubyte		>0x20			
+>>>>>368	ubyte&0xDF	>0			
+>>>>>>368	string		x 			%-.5s
+>>>>>>>373	ubyte&0xDF	>0			
+>>>>>>>>373	string		x 			\b%-.3s
+>>>>>>376	ubyte&0xDF	>0			
+>>>>>>>376	string		x 			\b.%-.3s
+#
+>430	string	NTLDR\ nicht\ gefunden\xFF\r\n		
+>>453	string	Datentr\204gerfehler\xFF\r\n		
+>>>473	string	Neustart\ mit\ beliebiger\ Taste\r	\b, Microsoft Windows XP Bootloader (german)
+>>>>417		ubyte&0xDF	>0			
+>>>>>417	string		x			%-.5s
+>>>>>>422	ubyte&0xDF	>0			
+>>>>>>>422	string		x 			\b%-.3s
+>>>>>425	ubyte&0xDF	>0			
+>>>>>>425	string		>\ 			\b.%-.3s
+# offset variant
+>>>>379	string	\0					
+>>>>>368	ubyte&0xDF	>0			
+>>>>>>368	string		x 			%-.5s
+>>>>>>>373	ubyte&0xDF	>0			
+>>>>>>>>373	string		x 			\b%-.3s
+#
+>430	string	NTLDR\ fehlt\xFF\r\n			
+>>444	string	Datentr\204gerfehler\xFF\r\n		
+>>>464	string	Neustart\ mit\ beliebiger\ Taste\r	\b, Microsoft Windows XP Bootloader (2.german)
+>>>>417		ubyte&0xDF	>0			
+>>>>>417	string		x			%-.5s
+>>>>>>422	ubyte&0xDF	>0			
+>>>>>>>422	string		x 			\b%-.3s
+>>>>>425	ubyte&0xDF	>0			
+>>>>>>425	string		>\ 			\b.%-.3s
+# variant
+>>>>371		ubyte		>0x20			
+>>>>>368	ubyte&0xDF	>0			
+>>>>>>368	string		x 			%-.5s
+>>>>>>>373	ubyte&0xDF	>0			
+>>>>>>>>373	string		x 			\b%-.3s
+>>>>>>376	ubyte&0xDF	>0			
+>>>>>>>376	string		x 			\b.%-.3s
+#
+>430	string	NTLDR\ fehlt\xFF\r\n			
+>>444	string	Medienfehler\xFF\r\n			
+>>>459	string	Neustart:\ Taste\ dr\201cken\r		\b, Microsoft Windows XP Bootloader (3.german)
+>>>>371		ubyte		>0x20			
+>>>>>368	ubyte&0xDF	>0			
+>>>>>>368	string		x 			%-.5s
+>>>>>>>373	ubyte&0xDF	>0			
+>>>>>>>>373	string		x 			\b%-.3s
+>>>>>>376	ubyte&0xDF	>0			
+>>>>>>>376	string		x 			\b.%-.3s
+# variant
+>>>>417		ubyte&0xDF	>0			
+>>>>>417	string		x			%-.5s
+>>>>>>422	ubyte&0xDF	>0			
+>>>>>>>422	string		x 			\b%-.3s
+>>>>>425	ubyte&0xDF	>0			
+>>>>>>425	string		>\ 			\b.%-.3s
+#
+>430	string	Datentr\204ger\ entfernen\xFF\r\n	
+>>454	string	Medienfehler\xFF\r\n			
+>>>469	string	Neustart:\ Taste\ dr\201cken\r		\b, Microsoft Windows XP Bootloader (4.german)
+>>>>379		string		\0			
+>>>>>368	ubyte&0xDF	>0			
+>>>>>>368	string		x 			%-.5s
+>>>>>>>373	ubyte&0xDF	>0			
+>>>>>>>>373	string		x 			\b%-.3s
+>>>>>>376	ubyte&0xDF	>0			
+>>>>>>>376	string		x 			\b.%-.3s
+# variant
+>>>>417		ubyte&0xDF	>0			
+>>>>>417	string		x			%-.5s
+>>>>>>422	ubyte&0xDF	>0			
+>>>>>>>422	string		x 			\b%-.3s
+>>>>>425	ubyte&0xDF	>0			
+>>>>>>425	string		>\ 			\b.%-.3s
+#
+
+#>3	string	NTFS\ \ \ \ 				
+>389	string	Fehler\ beim\ Lesen\ 
+>>407	string	des\ Datentr\204gers
+>>>426	string	NTLDR\ fehlt				
+>>>>440	string	NTLDR\ ist\ komprimiert
+>>>>>464 string	Neustart\ mit\ Strg+Alt+Entf\r		\b, Microsoft Windows XP Bootloader NTFS (german)
+#>3	string	NTFS\ \ \ \ 				
+>313	string	A\ disk\ read\ error\ occurred.\r
+>>345	string	A\ kernel\ file\ is\ missing\ 	
+>>>370	string	from\ the\ disk.\r		
+>>>>484	string	NTLDR\ is\ compressed		
+>>>>>429 string	Insert\ a\ system\ diskette\ 	
+>>>>>>454 string and\ restart\r\nthe\ system.\r		\b, Microsoft Windows XP Bootloader NTFS
+# DOS loader variants different languages,offsets
+>472	ubyte&0xDF	>0
+>>389	string	Invalid\ system\ disk\xFF\r\n		
+>>>411	string	Disk\ I/O\ error			
+>>>>428	string	Replace\ the\ disk,\ and\ 		
+>>>>>455 string	press\ any\ key				\b, Microsoft Windows 98 Bootloader
+#IO.SYS
+>>>>>>472	ubyte&0xDF	>0			
+>>>>>>>472	string		x 			\b %-.2s
+>>>>>>>>474	ubyte&0xDF	>0			
+>>>>>>>>>474	string		x 			\b%-.5s
+>>>>>>>>>>479	ubyte&0xDF	>0			
+>>>>>>>>>>>479 string		x 			\b%-.1s
+>>>>>>>480	ubyte&0xDF	>0			
+>>>>>>>>480	string		x 			\b.%-.3s
+#MSDOS.SYS
+>>>>>>>483	ubyte&0xDF	>0			\b+
+>>>>>>>>483	string		x 			\b%-.5s
+>>>>>>>>>488	ubyte&0xDF	>0			
+>>>>>>>>>>488	string		x 			\b%-.3s
+>>>>>>>>491	ubyte&0xDF	>0			
+>>>>>>>>>491	string		x 			\b.%-.3s
+#
+>>390	string	Invalid\ system\ disk\xFF\r\n		
+>>>412	string	Disk\ I/O\ error\xFF\r\n		
+>>>>429	string	Replace\ the\ disk,\ and\ 		
+>>>>>451 string	then\ press\ any\ key\r			\b, Microsoft Windows 98 Bootloader
+>>388	string	Ungueltiges\ System\ \xFF\r\n		
+>>>410	string	E/A-Fehler\ \ \ \ \xFF\r\n		
+>>>>427	string	Datentraeger\ wechseln\ und\ 		
+>>>>>453 string	Taste\ druecken\r			\b, Microsoft Windows 95/98/ME Bootloader (german)
+#WINBOOT.SYS only not spaces (0xDF)
+>>>>>>497	ubyte&0xDF	>0			
+>>>>>>>497	string		x 			%-.5s
+>>>>>>>>502	ubyte&0xDF	>0			
+>>>>>>>>>502	string		x 			\b%-.1s
+>>>>>>>>>>503	ubyte&0xDF	>0			
+>>>>>>>>>>>503	string		x 			\b%-.1s
+>>>>>>>>>>>>504	ubyte&0xDF	>0			
+>>>>>>>>>>>>>504 string		x 			\b%-.1s
+>>>>>>505	ubyte&0xDF	>0			
+>>>>>>>505	string		x 			\b.%-.3s
+#IO.SYS
+>>>>>>472	ubyte&0xDF	>0			or
+>>>>>>>472	string		x 			\b %-.2s
+>>>>>>>>474	ubyte&0xDF	>0			
+>>>>>>>>>474	string		x 			\b%-.5s
+>>>>>>>>>>479	ubyte&0xDF	>0			
+>>>>>>>>>>>479 string		x 			\b%-.1s
+>>>>>>>480	ubyte&0xDF	>0			
+>>>>>>>>480	string		x 			\b.%-.3s
+#MSDOS.SYS
+>>>>>>>483	ubyte&0xDF	>0			\b+
+>>>>>>>>483	string		x 			\b%-.5s
+>>>>>>>>>488	ubyte&0xDF	>0			
+>>>>>>>>>>488	string		x 			\b%-.3s
+>>>>>>>>491	ubyte&0xDF	>0			
+>>>>>>>>>491	string		x 			\b.%-.3s
+#
+>>390	string	Ungueltiges\ System\ \xFF\r\n		
+>>>412	string	E/A-Fehler\ \ \ \ \xFF\r\n		
+>>>>429	string	Datentraeger\ wechseln\ und\ 		
+>>>>>455 string	Taste\ druecken\r			\b, Microsoft Windows 95/98/ME Bootloader (German)
+#WINBOOT.SYS only not spaces (0xDF)
+>>>>>>497	ubyte&0xDF	>0			
+>>>>>>>497	string		x 			%-.7s
+>>>>>>>>504	ubyte&0xDF	>0			
+>>>>>>>>>504	string		x 			\b%-.1s
+>>>>>>505	ubyte&0xDF	>0			
+>>>>>>>505	string		x 			\b.%-.3s
+#IO.SYS
+>>>>>>472	ubyte&0xDF	>0			or
+>>>>>>>472	string		x 			\b %-.2s
+>>>>>>>>474	ubyte&0xDF	>0			
+>>>>>>>>>474	string		x 			\b%-.6s
+>>>>>>>480	ubyte&0xDF	>0			
+>>>>>>>>480	string		x 			\b.%-.3s
+#MSDOS.SYS
+>>>>>>>483	ubyte&0xDF	>0			\b+
+>>>>>>>>483	string		x 			\b%-.5s
+>>>>>>>>>488	ubyte&0xDF	>0			
+>>>>>>>>>>488	string		x 			\b%-.3s
+>>>>>>>>491	ubyte&0xDF	>0			
+>>>>>>>>>491	string		x 			\b.%-.3s
+#
+>>389	string	Ungueltiges\ System\ \xFF\r\n		
+>>>411	string	E/A-Fehler\ \ \ \ \xFF\r\n		
+>>>>428	string	Datentraeger\ wechseln\ und\ 		
+>>>>>454 string	Taste\ druecken\r			\b, Microsoft Windows 95/98/ME Bootloader (GERMAN)
+# DOS names like IO.SYS,WINBOOT.SYS,MSDOS.SYS,WINBOOT.INI are 8 right space padded bytes+3 bytes
+>>>>>>472	string		x 			%-.2s
+>>>>>>>474	ubyte&0xDF	>0			
+>>>>>>>>474	string		x 			\b%-.5s
+>>>>>>>>479	ubyte&0xDF	>0			
+>>>>>>>>>479	string		x 			\b%-.1s
+>>>>>>480	ubyte&0xDF	>0			
+>>>>>>>480	string		x 			\b.%-.3s
+>>>>>>483	ubyte&0xDF	>0			\b+
+>>>>>>>483	string		x 			\b%-.5s
+>>>>>>>488	ubyte&0xDF	>0			
+>>>>>>>>488	string		x 			\b%-.2s
+>>>>>>>>490	ubyte&0xDF	>0			
+>>>>>>>>>490	string		x 			\b%-.1s
+>>>>>>>491	ubyte&0xDF	>0			
+>>>>>>>>491	string		x 			\b.%-.3s
+>479	ubyte&0xDF	>0
+>>416	string	Kein\ System\ oder\ 			
+>>>433	string	Laufwerksfehler				
+>>>>450	string	Wechseln\ und\ Taste\ dr\201cken	\b, Microsoft DOS Bootloader (german)
+#IO.SYS
+>>>>>479	string		x 			\b %-.2s
+>>>>>>481	ubyte&0xDF	>0			
+>>>>>>>481	string		x 			\b%-.6s
+>>>>>487	ubyte&0xDF	>0			
+>>>>>>487	string		x 			\b.%-.3s
+#MSDOS.SYS
+>>>>>>490	ubyte&0xDF	>0			\b+
+>>>>>>>490	string		x 			\b%-.5s
+>>>>>>>>495	ubyte&0xDF	>0			
+>>>>>>>>>495	string		x 			\b%-.3s
+>>>>>>>498	ubyte&0xDF	>0			
+>>>>>>>>498	string		x 			\b.%-.3s
+#
+>376	search/41	Non-System\ disk\ or\ 		
+>>395	search/41	disk\ error\r			
+>>>407	search/41	Replace\ and\ 			
+>>>>419	search/41	press\ 				\b,
+>>>>419	search/41	strike\ 			\b, old
+>>>>426	search/41	any\ key\ when\ ready\r		MS or PC-DOS bootloader
+#449			Disk\ Boot\ failure\r		MS 3.21
+#466			Boot\ Failure\r			MS 3.30
+>>>>>468 search/18	\0				
+#IO.SYS,IBMBIO.COM
+>>>>>>&0	string		x 			\b %-.2s
+>>>>>>>&-20	ubyte&0xDF	>0			
+>>>>>>>>&-1	string		x 			\b%-.4s
+>>>>>>>>>&-16	ubyte&0xDF	>0			
+>>>>>>>>>>&-1	string		x 			\b%-.2s
+>>>>>>&8	ubyte&0xDF	>0			\b.
+>>>>>>>&-1	string		x 			\b%-.3s
+#MSDOS.SYS,IBMDOS.COM
+>>>>>>&11	ubyte&0xDF	>0			\b+
+>>>>>>>&-1	string		x 			\b%-.5s
+>>>>>>>>&-6	ubyte&0xDF	>0			
+>>>>>>>>>&-1	string		x 			\b%-.1s
+>>>>>>>>>>&-5	ubyte&0xDF	>0			
+>>>>>>>>>>>&-1	string		x 			\b%-.2s
+>>>>>>>&7	ubyte&0xDF	>0			\b.
+>>>>>>>>&-1	string		x 			\b%-.3s
+>441	string	Cannot\ load\ from\ harddisk.\n\r
+>>469	string	Insert\ Systemdisk\ 			
+>>>487	string	and\ press\ any\ key.\n\r		\b, MS (2.11) DOS bootloader
+#>43	string	\224R-LOADER\ \ SYS			=label					
+>54	string	SYS
+>>324	string	VASKK
+>>>495	string	NEWLDR\0				\b, DR-DOS Bootloader (LOADER.SYS)
+#
+>98	string	Press\ a\ key\ to\ retry\0\r		
+>>120	string	Cannot\ find\ file\ \0\r		
+>>>139	string	Disk\ read\ error\0\r			
+>>>>156	string	Loading\ ...\0				\b, DR-DOS (3.41) Bootloader
+#DRBIOS.SYS
+>>>>>44		ubyte&0xDF	>0			
+>>>>>>44	string		x			\b %-.6s
+>>>>>>>50	ubyte&0xDF	>0			
+>>>>>>>>50	string		x 			\b%-.2s
+>>>>>>52	ubyte&0xDF	>0			
+>>>>>>>52	string		x 			\b.%-.3s
+#
+>70	string	IBMBIO\ \ COM				
+>>472	string	Cannot\ load\ DOS!\ 			
+>>>489	string	Any\ key\ to\ retry			\b, DR-DOS Bootloader
+>>471	string	Cannot\ load\ DOS\ 			
+>>487	string	press\ key\ to\ retry			\b, Open-DOS Bootloader
+#??
+>444	string	KERNEL\ \ SYS					
+>>314	string	BOOT\ error!				\b, FREE-DOS Bootloader
+>499	string	KERNEL\ \ SYS				
+>>305	string	BOOT\ err!\0				\b, Free-DOS Bootloader
+>449	string	KERNEL\ \ SYS				
+>>319	string	BOOT\ error!				\b, FREE-DOS 0.5 Bootloader
+#
+>449	string	Loading\ FreeDOS			
+>>0x1AF		ulelong		>0			\b, FREE-DOS 0.95,1.0 Bootloader
+>>>497		ubyte&0xDF	>0			
+>>>>497		string		x 			\b %-.6s
+>>>>>503	ubyte&0xDF	>0			
+>>>>>>503	string		x 			\b%-.1s
+>>>>>>>504	ubyte&0xDF	>0			
+>>>>>>>>504	string		x 			\b%-.1s
+>>>>505		ubyte&0xDF	>0			
+>>>>>505	string		x 			\b.%-.3s
+#
+>331	string	Error!.0				\b, FREE-DOS 1.0 bootloader
+#
+>125	string	Loading\ FreeDOS...\r			
+>>311	string	BOOT\ error!\r				\b, FREE-DOS bootloader
+>>>441		ubyte&0xDF	>0			
+>>>>441		string		x 			\b %-.6s
+>>>>>447	ubyte&0xDF	>0			
+>>>>>>447	string		x 			\b%-.1s
+>>>>>>>448	ubyte&0xDF	>0			
+>>>>>>>>448	string		x 			\b%-.1s
+>>>>449		ubyte&0xDF	>0			
+>>>>>449	string		x 			\b.%-.3s
+>124	string	FreeDOS\0				
+>>331	string	\ err\0					\b, FREE-DOS BETa 0.9 Bootloader
+# DOS names like KERNEL.SYS,KERNEL16.SYS,KERNEL32.SYS,METAKERN.SYS are 8 right space padded bytes+3 bytes
+>>>497		ubyte&0xDF	>0			
+>>>>497		string		x 			\b %-.6s
+>>>>>503	ubyte&0xDF	>0			
+>>>>>>503	string		x 			\b%-.1s
+>>>>>>>504	ubyte&0xDF	>0			
+>>>>>>>>504	string		x 			\b%-.1s
+>>>>505		ubyte&0xDF	>0			
+>>>>>505	string		x 			\b.%-.3s
+>>333	string	\ err\0					\b, FREE-DOS BEta 0.9 Bootloader
+>>>497		ubyte&0xDF	>0			
+>>>>497		string		x 			\b %-.6s
+>>>>>503	ubyte&0xDF	>0			
+>>>>>>503	string		x 			\b%-.1s
+>>>>>>>504	ubyte&0xDF	>0			
+>>>>>>>>504	string		x 			\b%-.1s
+>>>>505		ubyte&0xDF	>0			
+>>>>>505	string		x 			\b.%-.3s
+>>334	string	\ err\0					\b, FREE-DOS Beta 0.9 Bootloader
+>>>497		ubyte&0xDF	>0			
+>>>>497		string		x 			\b %-.6s
+>>>>>503	ubyte&0xDF	>0			
+>>>>>>503	string		x 			\b%-.1s
+>>>>>>>504	ubyte&0xDF	>0			
+>>>>>>>>504	string		x 			\b%-.1s
+>>>>505		ubyte&0xDF	>0			
+>>>>>505	string		x 			\b.%-.3s
+>336	string	Error!\ 				
+>>343	string	Hit\ a\ key\ to\ reboot.		\b, FREE-DOS Beta 0.9sr1 Bootloader
+>>>497		ubyte&0xDF	>0			
+>>>>497		string		x 			\b %-.6s
+>>>>>503	ubyte&0xDF	>0			
+>>>>>>503	string		x 			\b%-.1s
+>>>>>>>504	ubyte&0xDF	>0			
+>>>>>>>>504	string		x 			\b%-.1s
+>>>>505		ubyte&0xDF	>0			
+>>>>>505	string		x 			\b.%-.3s
+# added by Joerg Jenderek
+# http://www.visopsys.org/
+# http://partitionlogic.org.uk/
+# OEM-ID=Visopsys
+>478		ulelong	0					
+>>(1.b+326)	string	I/O\ Error\ reading\ 			
+>>>(1.b+344)	string	Visopsys\ loader\r			
+>>>>(1.b+361)	string	Press\ any\ key\ to\ continue.\r	\b, Visopsys loader
+# http://alexfru.chat.ru/epm.html#bootprog
+>494	ubyte	>0x4D					
+>>495	string	>E					
+>>>495	string	<S					
+#OEM-ID is not reliable
+>>>>3	string	BootProg				
+# It just looks for a program file name at the root directory
+# and loads corresponding file with following execution.
+# DOS names like STARTUP.BIN,STARTUPC.COM,STARTUPE.EXE are 8 right space padded bytes+3 bytes
+>>>>499			ubyte&0xDF	>0		\b, COM/EXE Bootloader
+>>>>>499		string		x 		\b %-.1s
+>>>>>>500		ubyte&0xDF	>0		
+>>>>>>>500		string		x 		\b%-.1s
+>>>>>>>>501		ubyte&0xDF	>0		
+>>>>>>>>>501		string		x 		\b%-.1s
+>>>>>>>>>>502		ubyte&0xDF	>0		
+>>>>>>>>>>>502		string		x 		\b%-.1s
+>>>>>>>>>>>>503		ubyte&0xDF	>0		
+>>>>>>>>>>>>>503	string		x 		\b%-.1s
+>>>>>>>>>>>>>>504	ubyte&0xDF	>0		
+>>>>>>>>>>>>>>>504	string		x 		\b%-.1s
+>>>>>>>>>>>>>>>>505	ubyte&0xDF	>0		
+>>>>>>>>>>>>>>>>>505	string		x 		\b%-.1s
+>>>>>>>>>>>>>>>>>>506	ubyte&0xDF	>0		
+>>>>>>>>>>>>>>>>>>>506	string		x 		\b%-.1s
+#name extension
+>>>>>507		ubyte&0xDF	>0		\b.
+>>>>>>507		string		x 		\b%-.1s
+>>>>>>>508		ubyte&0xDF	>0		
+>>>>>>>>508		string		x 		\b%-.1s
+>>>>>>>>>509		ubyte&0xDF	>0		
+>>>>>>>>>>509		string		x 		\b%-.1s
+#If the boot sector fails to read any other sector,
+#it prints a very short message ("RE") to the screen and hangs the computer.
+#If the boot sector fails to find needed program in the root directory,
+#it also hangs with another message ("NF").
+>>>>>492		string		RENF		\b, FAT (12 bit)
+>>>>>495		string		RENF		\b, FAT (16 bit)
+# http://alexfru.chat.ru/epm.html#bootprog
+>494	ubyte	>0x4D					
+>>495	string	>E					
+>>>495	string	<S					
+#OEM-ID is not reliable
+>>>>3	string	BootProg				
+# It just looks for a program file name at the root directory
+# and loads corresponding file with following execution.
+# DOS names like STARTUP.BIN,STARTUPC.COM,STARTUPE.EXE are 8 right space padded bytes+3 bytes
+>>>>499			ubyte&0xDF	>0		\b, COM/EXE Bootloader
+>>>>>499		string		x 		\b %-.1s
+>>>>>>500		ubyte&0xDF	>0		
+>>>>>>>500		string		x 		\b%-.1s
+>>>>>>>>501		ubyte&0xDF	>0		
+>>>>>>>>>501		string		x 		\b%-.1s
+>>>>>>>>>>502		ubyte&0xDF	>0		
+>>>>>>>>>>>502		string		x 		\b%-.1s
+>>>>>>>>>>>>503		ubyte&0xDF	>0		
+>>>>>>>>>>>>>503	string		x 		\b%-.1s
+>>>>>>>>>>>>>>504	ubyte&0xDF	>0		
+>>>>>>>>>>>>>>>504	string		x 		\b%-.1s
+>>>>>>>>>>>>>>>>505	ubyte&0xDF	>0		
+>>>>>>>>>>>>>>>>>505	string		x 		\b%-.1s
+>>>>>>>>>>>>>>>>>>506	ubyte&0xDF	>0		
+>>>>>>>>>>>>>>>>>>>506	string		x 		\b%-.1s
+#name extension
+>>>>>507		ubyte&0xDF	>0		\b.
+>>>>>>507		string		x 		\b%-.1s
+>>>>>>>508		ubyte&0xDF	>0		
+>>>>>>>>508		string		x 		\b%-.1s
+>>>>>>>>>509		ubyte&0xDF	>0		
+>>>>>>>>>>509		string		x 		\b%-.1s
+#If the boot sector fails to read any other sector,
+#it prints a very short message ("RE") to the screen and hangs the computer.
+#If the boot sector fails to find needed program in the root directory,
+#it also hangs with another message ("NF").
+>>>>>492		string		RENF		\b, FAT (12 bit)
+>>>>>495		string		RENF		\b, FAT (16 bit)
+# x86 bootloader end
+# updated by Joerg Jenderek at Sep 2007
+>3	ubyte	0			
+#no active flag
+>>446	ubyte	0			
+# partition 1 not empty
+>>>450	ubyte	>0			
+# partitions 3,4 empty
+>>>>482		ubyte	0			
+>>>>>498	ubyte	0			
+# partition 2 ID=0,5,15
+>>>>>>466	ubyte	<0x10			
+>>>>>>>466	ubyte	0x05			\b, extended partition table
+>>>>>>>466	ubyte	0x0F			\b, extended partition table (LBA)
+>>>>>>>466	ubyte	0x0			\b, extended partition table (last)	
+# JuMP short     bootcodeoffset NOP assembler instructions will usually be EB xx 90
+# http://mirror.href.com/thestarman/asm/2bytejumps.htmm#FWD
+# older drives may use Near JuMP instruction E9 xx xx
+>0		lelong&0x009000EB	0x009000EB 
+>0		lelong&0x000000E9	0x000000E9 
+# minimal short forward jump found 03cx??
+# maximal short forward jump is 07fx
+>1		ubyte			<0xff	\b, code offset 0x%x
+# mtools-3.9.8/msdos.h
+# usual values are marked with comments to get only informations of strange FAT systems
+# valid sectorsize must be a power of 2 from 32 to 32768
+>>11		uleshort&0x000f	x		
+>>>11		uleshort	<32769		
+>>>>11		uleshort	>31		
+>>>>>21		ubyte&0xf0	0xF0		
+>>>>>>3		string		>\0		\b, OEM-ID "%8.8s"
+#http://mirror.href.com/thestarman/asm/debug/debug2.htm#IHC
+>>>>>>>8	string		IHC		\b cached by Windows 9M
+>>>>>>11	uleshort	>512		\b, Bytes/sector %u
+#>>>>>>11	uleshort	=512		\b, Bytes/sector %u=512 (usual)
+>>>>>>11	uleshort	<512		\b, Bytes/sector %u
+>>>>>>13	ubyte		>1		\b, sectors/cluster %u
+#>>>>>>13	ubyte		=1		\b, sectors/cluster %u (usual on Floppies)
+>>>>>>14	uleshort	>32		\b, reserved sectors %u
+#>>>>>>14	uleshort	=32		\b, reserved sectors %u (usual Fat32)
+#>>>>>>14	uleshort	>1		\b, reserved sectors %u
+#>>>>>>14	uleshort	=1		\b, reserved sectors %u (usual FAT12,FAT16)
+>>>>>>14	uleshort	<1		\b, reserved sectors %u
+>>>>>>16	ubyte		>2		\b, FATs %u
+#>>>>>>16	ubyte		=2		\b, FATs %u (usual)
+>>>>>>16	ubyte		=1		\b, FAT  %u
+>>>>>>16	ubyte		>0
+>>>>>>17	uleshort	>0		\b, root entries %u
+#>>>>>>17	uleshort	=0		\b, root entries %u=0 (usual Fat32)
+>>>>>>19	uleshort	>0		\b, sectors %u (volumes <=32 MB) 
+#>>>>>>19	uleshort	=0		\b, sectors %u=0 (usual Fat32)
+>>>>>>21	ubyte		>0xF0		\b, Media descriptor 0x%x
+#>>>>>>21	ubyte		=0xF0		\b, Media descriptor 0x%x (usual floppy)
+>>>>>>21	ubyte		<0xF0		\b, Media descriptor 0x%x
+>>>>>>22	uleshort	>0		\b, sectors/FAT %u
+#>>>>>>22	uleshort	=0		\b, sectors/FAT %u=0 (usual Fat32)
+>>>>>>26	ubyte		>2		\b, heads %u
+#>>>>>>26	ubyte		=2		\b, heads %u (usual floppy)
+>>>>>>26	ubyte		=1		\b, heads %u
+#skip for Digital Research DOS (version 3.41) 1440 kB Bootdisk
+>>>>>>38	ubyte		!0x70		
+>>>>>>>28	ulelong		>0		\b, hidden sectors %u
+#>>>>>>>28	ulelong		=0		\b, hidden sectors %u (usual floppy)
+>>>>>>>32	ulelong		>0		\b, sectors %u (volumes > 32 MB) 
+#>>>>>>>32	ulelong		=0		\b, sectors %u (volumes > 32 MB)
+# FAT<32 specific 
+>>>>>>82	string		!FAT32
+#>>>>>>>36	ubyte		0x80		\b, physical drive 0x%x=0x80 (usual harddisk)
+#>>>>>>>36	ubyte		0		\b, physical drive 0x%x=0 (usual floppy)
+>>>>>>>36	ubyte		!0x80		
+>>>>>>>>36	ubyte		!0		\b, physical drive 0x%x
+>>>>>>>37	ubyte		>0		\b, reserved 0x%x
+#>>>>>>>37	ubyte		=0		\b, reserved 0x%x
+>>>>>>>38	ubyte		>0x29		\b, dos < 4.0 BootSector (0x%x)
+>>>>>>>38	ubyte		<0x29		\b, dos < 4.0 BootSector (0x%x)
+>>>>>>>38	ubyte		=0x29
+>>>>>>>>39	ulelong		x		\b, serial number 0x%x
+>>>>>>>>43	string		<NO\ NAME	\b, label: "%11.11s"
+>>>>>>>>43	string		>NO\ NAME	\b, label: "%11.11s"
+>>>>>>>>43	string		=NO\ NAME	\b, unlabeled
+>>>>>>>54	string		FAT		\b, FAT
+>>>>>>>>54	string		FAT12		\b (12 bit)
+>>>>>>>>54	string		FAT16		\b (16 bit)
+# FAT32 specific
+>>>>>>82	string		FAT32		\b, FAT (32 bit)
+>>>>>>>36	ulelong		x		\b, sectors/FAT %u
+>>>>>>>40	uleshort	>0		\b, extension flags %u
+#>>>>>>>40	uleshort	=0		\b, extension flags %u
+>>>>>>>42	uleshort	>0		\b, fsVersion %u
+#>>>>>>>42	uleshort	=0		\b, fsVersion %u (usual)
+>>>>>>>44	ulelong		>2		\b, rootdir cluster %u
+#>>>>>>>44	ulelong		=2		\b, rootdir cluster %u
+#>>>>>>>44	ulelong		=1		\b, rootdir cluster %u
+>>>>>>>48	uleshort	>1		\b, infoSector %u
+#>>>>>>>48	uleshort	=1		\b, infoSector %u (usual)
+>>>>>>>48	uleshort	<1		\b, infoSector %u
+>>>>>>>50	uleshort	>6		\b, Backup boot sector %u
+#>>>>>>>50	uleshort	=6		\b, Backup boot sector %u (usual) 
+>>>>>>>50	uleshort	<6		\b, Backup boot sector %u
+>>>>>>>54	ulelong		>0		\b, reserved1 0x%x
+>>>>>>>58	ulelong		>0		\b, reserved2 0x%x
+>>>>>>>62	ulelong		>0		\b, reserved3 0x%x
+# same structure as FAT1X 
+>>>>>>>64	ubyte		>0x80		\b, physical drive 0x%x
+#>>>>>>>64	ubyte		=0x80		\b, physical drive 0x%x=80 (usual harddisk)
+>>>>>>>64	ubyte&0x7F	>0		\b, physical drive 0x%x
+#>>>>>>>64	ubyte		=0		\b, physical drive 0x%x=0 (usual floppy)
+>>>>>>>65	ubyte		>0		\b, reserved 0x%x
+>>>>>>>66	ubyte		>0x29		\b, dos < 4.0 BootSector (0x%x)
+>>>>>>>66	ubyte		<0x29		\b, dos < 4.0 BootSector (0x%x)
+>>>>>>>66	ubyte		=0x29
+>>>>>>>>67	ulelong		x		\b, serial number 0x%x
+>>>>>>>>71	string		<NO\ NAME	\b, label: "%11.11s"
+>>>>>>>71	string		>NO\ NAME	\b, label: "%11.11s"
+>>>>>>>71	string		=NO\ NAME	\b, unlabeled
+### FATs end
+>0x200	lelong	0x82564557		\b, BSD disklabel
+# FATX 
+0		string		FATX		FATX filesystem data
+
+
+# Minix filesystems - Juan Cespedes <cespedes@debian.org>
+0x410	leshort		0x137f
+!:strength / 2
+>0x402	beshort		< 100		Minix filesystem, V1, %d zones
+>0x1e	string		minix		\b, bootable
+0x410	beshort		0x137f
+!:strength / 2
+>0x402	beshort		< 100		Minix filesystem, V1 (big endian), %d zones
+>0x1e	string		minix		\b, bootable
+0x410	leshort		0x138f
+!:strength / 2
+>0x402	beshort		< 100		Minix filesystem, V1, 30 char names, %d zones
+>0x1e	string		minix		\b, bootable
+0x410	beshort		0x138f
+!:strength / 2
+>0x402	beshort		< 100		Minix filesystem, V1, 30 char names (big endian), %d zones
+>0x1e	string		minix		\b, bootable
+0x410	leshort		0x2468
+>0x402	beshort		< 100		Minix filesystem, V2, %d zones
+>0x1e	string		minix		\b, bootable
+0x410	beshort		0x2468
+>0x402	beshort		< 100		Minix filesystem, V2 (big endian), %d zones
+>0x1e	string		minix		\b, bootable
+
+0x410	leshort		0x2478
+>0x402	beshort		< 100		Minix filesystem, V2, 30 char names, %d zones
+>0x1e	string		minix		\b, bootable
+0x410	leshort		0x2478
+>0x402	beshort		< 100		Minix filesystem, V2, 30 char names, %d zones
+>0x1e	string		minix		\b, bootable
+0x410	beshort		0x2478
+>0x402	beshort		!0		Minix filesystem, V2, 30 char names (big endian), %d zones
+>0x1e	string		minix		\b, bootable
+0x410	leshort		0x4d5a
+>0x402	beshort		!0		Minix filesystem, V3, %d zones
+>0x1e	string		minix		\b, bootable
+
+# romfs filesystems - Juan Cespedes <cespedes@debian.org>
+0	string		-rom1fs-	romfs filesystem, version 1
+>8	belong	x			%d bytes,
+>16	string	x			named %s.
+
+# netboot image - Juan Cespedes <cespedes@debian.org>
+0	lelong		0x1b031336L	Netboot image,
+>4	lelong&0xFFFFFF00	0
+>>4	lelong&0x100	0x000		mode 2
+>>4	lelong&0x100	0x100		mode 3
+>4	lelong&0xFFFFFF00	!0	unknown mode
+
+0x18b	string	OS/2	OS/2 Boot Manager
+
+# updated by Joerg Jenderek at Oct 2008!!
+# http://syslinux.zytor.com/iso.php
+0	ulelong	0x7c40eafa		isolinux Loader
+# http://syslinux.zytor.com/pxe.php
+0	ulelong	0x007c05ea		pxelinux Loader
+0	ulelong	0x60669c66		pxelinux Loader
+
+# added by Joerg Jenderek
+# In the second sector (+0x200) are variables according to grub-0.97/stage2/asm.S or
+# grub-1.94/kern/i386/pc/startup.S
+# http://www.gnu.org/software/grub/manual/grub.html#Embedded-data
+# usual values are marked with comments to get only informations of strange GRUB loaders
+0x200	uleshort		0x70EA		
+# found only version 3.{1,2}
+>0x206		ubeshort	>0x0300		
+# GRUB version (0.5.)95,0.93,0.94,0.96,0.97 > "00"
+>>0x212 	ubyte		>0x29		
+>>>0x213 	ubyte		>0x29		
+# not iso9660_stage1_5
+#>>>0	ulelong&0x00BE5652	0x00BE5652	
+>>>>0x213 	ubyte		>0x29		GRand Unified Bootloader
+# config_file for stage1_5 is 0xffffffff + default "/boot/grub/stage2"
+>>>>0x217 	ubyte		0xFF		stage1_5
+>>>>0x217 	ubyte		<0xFF		stage2
+>>>>0x206	ubyte		x		\b version %u
+>>>>0x207	ubyte		x		\b.%u
+# module_size for 1.94
+>>>>0x208	ulelong		<0xffffff	\b, installed partition %u
+#>>>>0x208	ulelong		=0xffffff	\b, %u (default)
+>>>>0x208	ulelong		>0xffffff	\b, installed partition %u
+# GRUB 0.5.95 unofficial
+>>>>0x20C	ulelong&0x2E300000 0x2E300000	
+# 0=stage2	1=ffs	2=e2fs	3=fat	4=minix	5=reiserfs
+>>>>>0x20C	ubyte		x		\b, identifier 0x%x
+#>>>>>0x20D	ubyte		=0		\b, LBA flag 0x%x (default)
+>>>>>0x20D	ubyte		>0		\b, LBA flag 0x%x
+# GRUB version as string
+>>>>>0x20E 	string		>\0		\b, GRUB version %-s
+# for stage1_5 is 0xffffffff + config_file "/boot/grub/stage2" default
+>>>>>>0x215 	ulong		0xffffffff	
+>>>>>>>0x219 	string		>\0		\b, configuration file %-s
+>>>>>>0x215 	ulong		!0xffffffff	
+>>>>>>>0x215 	string		>\0		\b, configuration file %-s
+# newer GRUB versions
+>>>>0x20C	ulelong&0x2E300000 !0x2E300000	
+##>>>>>0x20C	ulelong		=0		\b, saved entry %d (usual)
+>>>>>0x20C	ulelong		>0		\b, saved entry %d
+# for 1.94 contains kernel image size
+# for 0.93,0.94,0.96,0.97
+# 0=stage2	1=ffs	2=e2fs	3=fat	4=minix	5=reiserfs	6=vstafs	7=jfs	8=xfs	9=iso9660	a=ufs2	
+>>>>>0x210	ubyte		x		\b, identifier 0x%x
+# The flag for LBA forcing is in most cases 0
+#>>>>>0x211	ubyte		=0		\b, LBA flag 0x%x (default)
+>>>>>0x211	ubyte		>0		\b, LBA flag 0x%x
+# GRUB version as string
+>>>>>0x212 	string		>\0		\b, GRUB version %-s
+# for stage1_5 is 0xffffffff + config_file "/boot/grub/stage2" default
+>>>>>0x217 	ulong		0xffffffff	
+>>>>>>0x21b 	string		>\0		\b, configuration file %-s
+>>>>>0x217 	ulong		!0xffffffff	
+>>>>>>0x217 	string		>\0		\b, configuration file %-s
+
+9564	lelong		0x00011954	Unix Fast File system [v1] (little-endian),
+>8404	string		x		last mounted on %s,
+#>9504	ledate		x		last checked at %s,
+>8224	ledate		x		last written at %s,
+>8401	byte		x		clean flag %d,
+>8228	lelong		x		number of blocks %d,
+>8232	lelong		x		number of data blocks %d,
+>8236	lelong		x		number of cylinder groups %d,
+>8240	lelong		x		block size %d,
+>8244	lelong		x		fragment size %d,
+>8252	lelong		x		minimum percentage of free blocks %d,
+>8256	lelong		x		rotational delay %dms,
+>8260	lelong		x		disk rotational speed %drps,
+>8320	lelong		0		TIME optimization
+>8320	lelong		1		SPACE optimization
+
+42332	lelong		0x19540119	Unix Fast File system [v2] (little-endian)
+>&-1164	string		x		last mounted on %s,
+>&-696	string		>\0		volume name %s,
+>&-304	leqldate	x		last written at %s,
+>&-1167	byte		x		clean flag %d,
+>&-1168	byte		x		readonly flag %d,
+>&-296	lequad		x		number of blocks %lld,
+>&-288	lequad		x		number of data blocks %lld,
+>&-1332	lelong		x		number of cylinder groups %d,
+>&-1328	lelong		x		block size %d,
+>&-1324	lelong		x		fragment size %d,
+>&-180	lelong		x		average file size %d,
+>&-176	lelong		x		average number of files in dir %d,
+>&-272	lequad		x		pending blocks to free %lld,
+>&-264	lelong		x		pending inodes to free %ld,
+>&-664	lequad		x		system-wide uuid %0llx,
+>&-1316	lelong		x		minimum percentage of free blocks %d,
+>&-1248	lelong		0		TIME optimization
+>&-1248	lelong		1		SPACE optimization
+
+66908	lelong		0x19540119	Unix Fast File system [v2] (little-endian)
+>&-1164	string		x		last mounted on %s,
+>&-696	string		>\0		volume name %s,
+>&-304	leqldate	x		last written at %s,
+>&-1167	byte		x		clean flag %d,
+>&-1168	byte		x		readonly flag %d,
+>&-296	lequad		x		number of blocks %lld,
+>&-288	lequad		x		number of data blocks %lld,
+>&-1332	lelong		x		number of cylinder groups %d,
+>&-1328	lelong		x		block size %d,
+>&-1324	lelong		x		fragment size %d,
+>&-180	lelong		x		average file size %d,
+>&-176	lelong		x		average number of files in dir %d,
+>&-272	lequad		x		pending blocks to free %lld,
+>&-264	lelong		x		pending inodes to free %ld,
+>&-664	lequad		x		system-wide uuid %0llx,
+>&-1316	lelong		x		minimum percentage of free blocks %d,
+>&-1248	lelong		0		TIME optimization
+>&-1248	lelong		1		SPACE optimization
+
+9564	belong		0x00011954	Unix Fast File system [v1] (big-endian),
+>7168   belong		0x4c41424c	Apple UFS Volume
+>>7186  string		x		named %s,
+>>7176  belong		x		volume label version %d,
+>>7180  bedate		x		created on %s,
+>8404	string		x		last mounted on %s,
+#>9504	bedate		x		last checked at %s,
+>8224	bedate		x		last written at %s,
+>8401	byte		x		clean flag %d,
+>8228	belong		x		number of blocks %d,
+>8232	belong		x		number of data blocks %d,
+>8236	belong		x		number of cylinder groups %d,
+>8240	belong		x		block size %d,
+>8244	belong		x		fragment size %d,
+>8252	belong		x		minimum percentage of free blocks %d,
+>8256	belong		x		rotational delay %dms,
+>8260	belong		x		disk rotational speed %drps,
+>8320	belong		0		TIME optimization
+>8320	belong		1		SPACE optimization
+
+42332	belong		0x19540119	Unix Fast File system [v2] (big-endian)
+>&-1164	string		x		last mounted on %s,
+>&-696	string		>\0		volume name %s,
+>&-304	beqldate	x		last written at %s,
+>&-1167	byte		x		clean flag %d,
+>&-1168	byte		x		readonly flag %d,
+>&-296	bequad		x		number of blocks %lld,
+>&-288	bequad		x		number of data blocks %lld,
+>&-1332	belong		x		number of cylinder groups %d,
+>&-1328	belong		x		block size %d,
+>&-1324	belong		x		fragment size %d,
+>&-180	belong		x		average file size %d,
+>&-176	belong		x		average number of files in dir %d,
+>&-272	bequad		x		pending blocks to free %lld,
+>&-264	belong		x		pending inodes to free %ld,
+>&-664	bequad		x		system-wide uuid %0llx,
+>&-1316	belong		x		minimum percentage of free blocks %d,
+>&-1248	belong		0		TIME optimization
+>&-1248	belong		1		SPACE optimization
+
+66908	belong		0x19540119	Unix Fast File system [v2] (big-endian)
+>&-1164	string		x		last mounted on %s,
+>&-696	string		>\0		volume name %s,
+>&-304	beqldate	x		last written at %s,
+>&-1167	byte		x		clean flag %d,
+>&-1168	byte		x		readonly flag %d,
+>&-296	bequad		x		number of blocks %lld,
+>&-288	bequad		x		number of data blocks %lld,
+>&-1332	belong		x		number of cylinder groups %d,
+>&-1328	belong		x		block size %d,
+>&-1324	belong		x		fragment size %d,
+>&-180	belong		x		average file size %d,
+>&-176	belong		x		average number of files in dir %d,
+>&-272	bequad		x		pending blocks to free %lld,
+>&-264	belong		x		pending inodes to free %ld,
+>&-664	bequad		x		system-wide uuid %0llx,
+>&-1316	belong		x		minimum percentage of free blocks %d,
+>&-1248	belong		0		TIME optimization
+>&-1248	belong		1		SPACE optimization
+
+# ext2/ext3 filesystems - Andreas Dilger <adilger@dilger.ca>
+# ext4 filesystem - Eric Sandeen <sandeen@sandeen.net>
+# volume label and UUID Russell Coker
+# http://etbe.coker.com.au/2008/07/08/label-vs-uuid-vs-device/
+0x438   leshort         0xEF53          Linux
+>0x44c  lelong          x               rev %d
+>0x43e  leshort         x               \b.%d
+# No journal?  ext2
+>0x45c  lelong          ^0x0000004      ext2 filesystem data
+>>0x43a leshort         ^0x0000001      (mounted or unclean)
+# Has a journal?  ext3 or ext4
+>0x45c  lelong          &0x0000004
+#  and small INCOMPAT?
+>>0x460 lelong          <0x0000040
+#   and small RO_COMPAT?
+>>>0x464 lelong         <0x0000008      ext3 filesystem data
+#   else large RO_COMPAT?
+>>>0x464 lelong         >0x0000007      ext4 filesystem data
+#  else large INCOMPAT?
+>>0x460	lelong          >0x000003f      ext4 filesystem data
+>0x468	belong		x		\b, UUID=%08x
+>0x46c	beshort		x		\b-%04x
+>0x46e	beshort		x		\b-%04x
+>0x470	beshort		x		\b-%04x
+>0x472	belong		x		\b-%08x
+>0x476	beshort		x		\b%04x
+>0x478	string		>0		\b, volume name "%s"
+# General flags for any ext* fs
+>0x460	lelong          &0x0000004      (needs journal recovery)
+>0x43a	leshort         &0x0000002      (errors)
+# INCOMPAT flags
+>0x460	lelong          &0x0000001      (compressed)
+#>0x460	lelong          &0x0000002      (filetype)
+#>0x460	lelong          &0x0000010      (meta bg)
+>0x460	lelong          &0x0000040      (extents)
+>0x460	lelong          &0x0000080      (64bit)
+#>0x460	lelong          &0x0000100      (mmp)
+#>0x460	lelong          &0x0000200      (flex bg)
+# RO_INCOMPAT flags
+#>0x464	lelong          &0x0000001      (sparse super)
+>0x464	lelong          &0x0000002      (large files)
+>0x464	lelong          &0x0000008      (huge files)
+#>0x464	lelong          &0x0000010      (gdt checksum)
+#>0x464	lelong          &0x0000020      (many subdirs)
+#>0x463	lelong          &0x0000040      (extra isize)
+
+# SGI disk labels - Nathan Scott <nathans@debian.org>
+0	belong		0x0BE5A941	SGI disk label (volume header)
+
+# SGI XFS filesystem - Nathan Scott <nathans@debian.org>
+0	belong		0x58465342	SGI XFS filesystem data
+>0x4	belong		x		(blksz %d,
+>0x68	beshort		x		inosz %d,
+>0x64	beshort		^0x2004		v1 dirs)
+>0x64	beshort		&0x2004		v2 dirs)
+
+############################################################################
+# Minix-ST kernel floppy
+0x800	belong		0x46fc2700	Atari-ST Minix kernel image
+>19	string		\240\5\371\5\0\011\0\2\0	\b, 720k floppy
+>19	string		\320\2\370\5\0\011\0\1\0	\b, 360k floppy
+
+############################################################################
+# Hmmm, is this a better way of detecting _standard_ floppy images ?
+19	string		\320\2\360\3\0\011\0\1\0	DOS floppy 360k
+>0x1FE	leshort		0xAA55		\b, x86 hard disk boot sector
+19	string		\240\5\371\3\0\011\0\2\0	DOS floppy 720k
+>0x1FE	leshort		0xAA55		\b, x86 hard disk boot sector
+19	string		\100\013\360\011\0\022\0\2\0	DOS floppy 1440k
+>0x1FE	leshort		0xAA55		\b, x86 hard disk boot sector
+
+19	string		\240\5\371\5\0\011\0\2\0	DOS floppy 720k, IBM
+>0x1FE	leshort		0xAA55		\b, x86 hard disk boot sector
+19	string		\100\013\371\5\0\011\0\2\0	DOS floppy 1440k, mkdosfs
+>0x1FE	leshort		0xAA55		\b, x86 hard disk boot sector
+
+19	string		\320\2\370\5\0\011\0\1\0	Atari-ST floppy 360k
+19	string		\240\5\371\5\0\011\0\2\0	Atari-ST floppy 720k
+
+#  Valid media descriptor bytes for MS-DOS:
+#
+#     Byte   Capacity   Media Size and Type
+#     -------------------------------------------------
+#
+#     F0     2.88 MB    3.5-inch, 2-sided, 36-sector
+#     F0     1.44 MB    3.5-inch, 2-sided, 18-sector
+#     F9     720K       3.5-inch, 2-sided, 9-sector
+#     F9     1.2 MB     5.25-inch, 2-sided, 15-sector
+#     FD     360K       5.25-inch, 2-sided, 9-sector
+#     FF     320K       5.25-inch, 2-sided, 8-sector
+#     FC     180K       5.25-inch, 1-sided, 9-sector
+#     FE     160K       5.25-inch, 1-sided, 8-sector
+#     FE     250K       8-inch, 1-sided, single-density
+#     FD     500K       8-inch, 2-sided, single-density
+#     FE     1.2 MB     8-inch, 2-sided, double-density
+#     F8     -----      Fixed disk 
+#
+#     FC     xxxK       Apricot 70x1x9 boot disk.
+#
+# Originally a bitmap:
+#  xxxxxxx0	Not two sided
+#  xxxxxxx1	Double sided
+#  xxxxxx0x	Not 8 SPT
+#  xxxxxx1x	8 SPT
+#  xxxxx0xx	Not Removable drive
+#  xxxxx1xx	Removable drive
+#  11111xxx	Must be one.
+#
+# But now it's rather random:
+#  111111xx	Low density disk
+#        00	SS, Not 8 SPT
+#        01	DS, Not 8 SPT
+#        10	SS, 8 SPT
+#        11	DS, 8 SPT
+#
+#  11111001	Double density 3� floppy disk, high density 5�
+#  11110000	High density 3� floppy disk
+#  11111000	Hard disk any format
+#
+
+# CDROM Filesystems
+# Modified for UDF by gerardo.cacciari@gmail.com
+32769	string    CD001     #
+!:mime	application/x-iso9660-image
+>38913	string   !NSR0      ISO 9660 CD-ROM filesystem data
+>38913	string    NSR0      UDF filesystem data
+>>38917	string    1         (version 1.0)
+>>38917	string    2         (version 1.5)
+>>38917	string    3         (version 2.0)
+>>38917	byte     >0x33      (unknown version, ID 0x%X)
+>>38917	byte     <0x31      (unknown version, ID 0x%X)
+# "application id" which appears to be used as a volume label
+>32808	string    >\0       '%s'
+>34816	string    \000CD001\001EL\ TORITO\ SPECIFICATION    (bootable)
+37633	string    CD001     ISO 9660 CD-ROM filesystem data (raw 2352 byte sectors)
+!:mime	application/x-iso9660-image
+32776	string    CDROM     High Sierra CD-ROM filesystem data
+
+# .cso files
+0    string    CISO	Compressed ISO CD image
+
+# cramfs filesystem - russell@coker.com.au
+0       lelong    0x28cd3d45      Linux Compressed ROM File System data, little endian
+>4      lelong  x size %lu
+>8      lelong  &1 version #2
+>8      lelong  &2 sorted_dirs
+>8      lelong  &4 hole_support
+>32     lelong  x CRC 0x%x,
+>36     lelong  x edition %lu,
+>40     lelong  x %lu blocks,
+>44     lelong  x %lu files
+
+0       belong    0x28cd3d45      Linux Compressed ROM File System data, big endian
+>4      belong  x size %lu
+>8      belong  &1 version #2
+>8      belong  &2 sorted_dirs
+>8      belong  &4 hole_support
+>32     belong  x CRC 0x%x,
+>36     belong  x edition %lu,
+>40     belong  x %lu blocks,
+>44     belong  x %lu files
+
+# reiserfs - russell@coker.com.au
+0x10034		string	ReIsErFs	ReiserFS V3.5
+0x10034		string	ReIsEr2Fs	ReiserFS V3.6
+0x10034		string	ReIsEr3Fs	ReiserFS V3.6.19
+>0x1002c 	leshort	x		block size %d
+>0x10032	leshort	&2		(mounted or unclean)
+>0x10000	lelong	x		num blocks %d
+>0x10040	lelong	1		tea hash
+>0x10040	lelong	2		yura hash
+>0x10040	lelong	3		r5 hash
+
+# JFFS - russell@coker.com.au
+0	lelong	0x34383931	Linux Journalled Flash File system, little endian
+0	belong	0x34383931	Linux Journalled Flash File system, big endian
+
+# EST flat binary format (which isn't, but anyway)
+# From: Mark Brown <broonie@sirena.org.uk>
+0	string	ESTFBINR	EST flat binary
+
+# Aculab VoIP firmware
+# From: Mark Brown <broonie@sirena.org.uk>
+0	string	VoIP\ Startup\ and	Aculab VoIP firmware
+>35	string	x	format %s
+
+# From: Mark Brown <broonie@sirena.org.uk> [old]
+# From: Behan Webster <behanw@websterwood.com>
+0	belong	0x27051956	u-boot legacy uImage,
+>32	string	x		%s,
+>28	byte	0		Invalid os/
+>28	byte	1		OpenBSD/
+>28	byte	2		NetBSD/
+>28	byte	3		FreeBSD/
+>28	byte	4		4.4BSD/
+>28	byte	5		Linux/
+>28	byte	6		SVR4/
+>28	byte	7		Esix/
+>28	byte	8		Solaris/
+>28	byte	9		Irix/
+>28	byte	10		SCO/
+>28	byte	11		Dell/
+>28	byte	12		NCR/
+>28	byte	13		LynxOS/
+>28	byte	14		VxWorks/
+>28	byte	15		pSOS/
+>28	byte	16		QNX/
+>28	byte	17		Firmware/
+>28	byte	18		RTEMS/
+>28	byte	19		ARTOS/
+>28	byte	20		Unity OS/
+>28	byte	21		INTEGRITY/
+>29	byte	0		\bInvalid CPU,
+>29	byte	1		\bAlpha,
+>29	byte	2		\bARM,
+>29	byte	3		\bIntel x86,
+>29	byte	4		\bIA64,
+>29	byte	5		\bMIPS,
+>29	byte	6		\bMIPS 64-bit,
+>29	byte	7		\bPowerPC,
+>29	byte	8		\bIBM S390,
+>29	byte	9		\bSuperH,
+>29	byte	10		\bSparc,
+>29	byte	11		\bSparc 64-bit,
+>29	byte	12		\bM68K,
+>29	byte	13		\bNios-32,
+>29	byte	14		\bMicroBlaze,
+>29	byte	15		\bNios-II,
+>29	byte	16		\bBlackfin,
+>29	byte	17		\bAVR32,
+>29	byte	18		\bSTMicroelectronics ST200,
+>30	byte	0		Invalid Image
+>30	byte	1		Standalone Program
+>30	byte	2		OS Kernel Image
+>30	byte	3		RAMDisk Image
+>30	byte	4		Multi-File Image
+>30	byte	5		Firmware Image
+>30	byte	6		Script File
+>30	byte	7		Filesystem Image (any type)
+>30	byte	8		Binary Flat Device Tree BLOB
+>31	byte	0		(Not compressed),
+>31	byte	1		(gzip),
+>31	byte	2		(bzip2),
+>31	byte	3		(lzma),
+>12	belong	x		%d bytes,
+>8	bedate	x		%s,
+>16	belong	x		Load Address: 0x%08X,
+>20	belong	x		Entry Point: 0x%08X,
+>4	belong	x		Header CRC: 0x%08X,
+>24	belong	x		Data CRC: 0x%08X
+
+# JFFS2 file system
+0	leshort	0x1984		Linux old jffs2 filesystem data little endian
+0	leshort	0x1985		Linux jffs2 filesystem data little endian
+
+# Squashfs
+0	string	sqsh	Squashfs filesystem, big endian,
+>28	beshort	x	version %d.
+>30	beshort x	\b%d,
+>28	beshort <3
+>>8	belong	x	%d bytes,
+>28	beshort >2
+>>28 beshort <4
+>>>63	bequad x	%lld bytes,
+>>28 beshort >3
+>>>40	bequad x	%lld bytes,
+#>>67	belong	x	%d bytes,
+>4	belong	x	%d inodes,
+>28	beshort <2
+>>32	beshort	x	blocksize: %d bytes,
+>28	beshort >1
+>>28 beshort <4
+>>>51	belong	x	blocksize: %d bytes,
+>>28 beshort >3
+>>>12	belong	x	blocksize: %d bytes,
+>28 beshort <4
+>>39	bedate	x	created: %s
+>28 beshort >3
+>>8	bedate	x	created: %s
+0	string	hsqs	Squashfs filesystem, little endian,
+>28	leshort	x	version %d.
+>30	leshort	x	\b%d,
+>28	leshort <3
+>>8	lelong	x	%d bytes,
+>28	leshort >2
+>>28 leshort <4
+>>>63	lequad x	%lld bytes,
+>>28 leshort >3
+>>>40	lequad x	%lld bytes,
+#>>63	lelong	x	%d bytes,
+>4	lelong	x	%d inodes,
+>28	leshort <2
+>>32	leshort	x	blocksize: %d bytes,
+>28	leshort >1
+>>28 leshort <4
+>>>51	lelong	x	blocksize: %d bytes,
+>>28 leshort >3
+>>>12	lelong	x	blocksize: %d bytes,
+>28 leshort <4
+>>39	ledate	x	created: %s
+>28 leshort >3
+>>8	ledate	x	created: %s
+
+0	string		td\000		floppy image data (TeleDisk)
+
+# AFS Dump Magic
+# From: Ty Sarna <tsarna@sarna.org> 
+0       string                  \x01\xb3\xa1\x13\x22    AFS Dump
+>&0     belong                  x                       (v%d)
+>>&0    byte                    0x76
+>>>&0   belong                  x                       Vol %d,
+>>>>&0  byte                    0x6e
+>>>>>&0 string                  x                       %s
+>>>>>>&1        byte            0x74
+>>>>>>>&0       beshort         2
+>>>>>>>>&4      bedate          x                       on: %s
+>>>>>>>>&0      bedate          =0                      full dump
+>>>>>>>>&0      bedate          !0                      incremental since: %s
+
+#----------------------------------------------------------
+#delta ISO    Daniel Novotny (dnovotny@redhat.com)
+0	string  DISO	Delta ISO data
+>4	belong  x	version %d
+
+# VMS backup savesets - gerardo.cacciari@gmail.com
+#
+4            string  \x01\x00\x01\x00\x01\x00
+>(0.s+16)    string  \x01\x01
+>>&(&0.b+8)  byte    0x42       OpenVMS backup saveset data
+>>>40        lelong  x          (block size %d,
+>>>49        string  >\0        original name '%s',
+>>>2         short   1024       VAX generated)
+>>>2         short   2048       AXP generated)
+>>>2         short   4096       I64 generated)
+
+# Summary: Oracle Clustered Filesystem
+# Created by: Aaron Botsis <redhat@digitalmafia.org>
+8	string		OracleCFS	Oracle Clustered Filesystem,
+>4	long		x		rev %d
+>0	long		x		\b.%d,
+>560	string		x		label: %.64s,
+>136	string		x		mountpoint: %.128s
+
+# Summary: Oracle ASM tagged volume
+# Created by: Aaron Botsis <redhat@digitalmafia.org>
+32	string		ORCLDISK	Oracle ASM Volume,
+>40	string		x		Disk Name: %0.12s
+32	string		ORCLCLRD	Oracle ASM Volume (cleared),
+>40	string		x		Disk Name: %0.12s
+
+# Oracle Clustered Filesystem - Aaron Botsis <redhat@digitalmafia.org>
+8	string		OracleCFS	Oracle Clustered Filesystem,
+>4	long		x		rev %d
+>0	long		x		\b.%d,
+>560	string		x		label: %.64s,
+>136	string		x		mountpoint: %.128s
+
+# Oracle ASM tagged volume - Aaron Botsis <redhat@digitalmafia.org>
+32	string		ORCLDISK	Oracle ASM Volume,
+>40	string		x		Disk Name: %0.12s
+32	string		ORCLCLRD	Oracle ASM Volume (cleared),
+>40	string		x		Disk Name: %0.12s
+
+# Compaq/HP RILOE floppy image
+# From: Dirk Jagdmann <doj@cubic.org>
+0	string	CPQRFBLO	Compaq/HP RILOE floppy image
+
+#------------------------------------------------------------------------------
+# Files-11 On-Disk Structure (File system for various RSX-11 and VMS flavours).
+# These bits come from LBN 1 (home block) of ODS-1, ODS-2 and ODS-5 volumes,
+# which is mapped to VBN 2 of [000000]INDEXF.SYS;1 - gerardo.cacciari@gmail.com
+#
+1008    string          DECFILE11       Files-11 On-Disk Structure
+>525    byte            x               Level %d
+>525    byte            x               (ODS-%d);
+>1017   string          A               RSX-11, VAX/VMS or OpenVMS VAX file system;
+>1017   string          B
+>>525   byte            2               VAX/VMS or OpenVMS file system;
+>>525   byte            5               OpenVMS Alpha or Itanium file system;
+>984    string          x               volume label is '%-12.12s'
+
+# From: Thomas Klausner <wiz@NetBSD.org>
+# http://filext.com/file-extension/DAA
+# describes the daa file format. The magic would be:
+0	string		DAA\x0\x0\x0\x0\x0	PowerISO Direct-Access-Archive
+
+# From Albert Cahalan <acahalan@gmail.com>
+# really le32 operation,destination,payloadsize (but quite predictable)
+# 01 00 00 00 00 00 00 c0 00 02 00 00
+0	string		\1\0\0\0\0\0\0\300\0\2\0\0	Marvell Libertas firmware
+
+# From Eric Sandeen
+# GFS2
+0x10000         belong          0x01161970
+>0x10018        belong          0x0000051d      GFS1 Filesystem
+>>0x10024        belong          x               (blocksize %d,
+>>0x10060        string          >\0             lockproto %s)
+>0x10018        belong          0x00000709      GFS2 Filesystem
+>>0x10024        belong          x               (blocksize %d,
+>>0x10060        string          >\0             lockproto %s)
+
+# BTRFS
+0x10040         string          _BHRfS_M        BTRFS Filesystem
+>0x1012b        string          >\0             (label "%s",
+>0x10090        lelong          x               sectorsize %d,
+>0x10094        lelong          x               nodesize %d,
+>0x10098        lelong          x               leafsize %d)
+
+
+# dvdisaster's .ecc
+# From: "Nelson A. de Oliveira" <naoliv@gmail.com>
+0	string	*dvdisaster*	dvdisaster error correction file
+
+# xfs metadump image 
+# mb_magic XFSM at 0; superblock magic XFSB at 1 << mb_blocklog
+# but can we do the << ?  For now it's always 512 (0x200) anyway.
+0	string XFSM
+>0x200	string XFSB	XFS filesystem metadump image
+
+# Type:	CROM filesystem
+# From:	Werner Fink <werner@suse.de>
+0	string	CROMFS	CROMFS
+>6	string	>\0	\b version %2.2s,
+>8	ulequad	>0	\b block data at %lld,
+>16	ulequad	>0	\b fblock table at %lld,
+>24	ulequad	>0	\b inode table at %lld,
+>32	ulequad	>0	\b root at %lld,
+>40	ulelong	>0	\b fblock size = %ld,
+>44	ulelong	>0	\b block size = %ld,
+>48	ulequad	>0	\b bytes = %lld
+
+# Type:	xfs metadump image
+# From:	Daniel Novotny <dnovotny@redhat.com>
+# mb_magic XFSM at 0; superblock magic XFSB at 1 << mb_blocklog
+# but can we do the << ? For now it's always 512 (0x200) anyway.
+0	string	XFSM
+>0x200	string	XFSB	XFS filesystem metadump image
+
+# Type:	delta ISO
+# From:	Daniel Novotny <dnovotny@redhat.com>
+0	string	DISO	Delta ISO data,
+>4	belong	x	version %d
+
+# JFS2 (Journaling File System) image. (Old JFS1 has superblock at 0x1000.)
+# See linux/fs/jfs/jfs_superblock.h for layout; see jfs_filsys.h for flags.
+# From: Adam Buchbinder <adam.buchbinder@gmail.com>
+0x8000	string	JFS1
+# Because it's text-only magic, check a binary value (version) to be sure.
+# Should always be 2, but mkfs.jfs writes it as 1. Needs to be 2 or 1 to be
+# mountable.
+>&0	lelong	<3	JFS2 filesystem image
+# Label is followed by a UUID; we have to limit string length to avoid
+# appending the UUID in the case of a 16-byte label.
+>>&144	regex	[\x20-\x7E]{1,16}	(label "%s")
+>>&0	lequad	x	\b, %lld blocks
+>>&8	lelong	x	\b, blocksize %d
+>>&32	lelong&0x00000006	>0	(dirty)
+>>&36	lelong	>0	(compressed)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/flash b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/flash
new file mode 100755
index 0000000000000000000000000000000000000000..dea35aed0bdefc1d5ae4766aa6c8d7a3097d841a
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/flash
@@ -0,0 +1,25 @@
+
+#------------------------------------------------------------------------------
+# $File: flash,v 1.9 2009/11/08 01:30:01 christos Exp $
+# flash:	file(1) magic for Macromedia Flash file format
+#
+# See
+#
+#	http://www.macromedia.com/software/flash/open/
+#
+0	string		FWS		Macromedia Flash data,
+>3	byte		x		version %d
+!:mime	application/x-shockwave-flash
+0	string		CWS		Macromedia Flash data (compressed),
+!:mime	application/x-shockwave-flash
+>3	byte		x		version %d
+# From: Cal Peake <cp@absolutedigital.net>
+0	string		FLV		Macromedia Flash Video
+!:mime	video/x-flv
+
+#
+# Yosu Gomez
+0       string AGD2\xbe\xb8\xbb\xcd\x00 Macromedia Freehand 7 Document
+0       string AGD3\xbe\xb8\xbb\xcc\x00 Macromedia Freehand 8 Document
+# From Dave Wilson
+0	string AGD4\xbe\xb8\xbb\xcb\x00	Macromedia Freehand 9 Document
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/fonts b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/fonts
new file mode 100755
index 0000000000000000000000000000000000000000..917d372e6ef63d03b6c39ec45bcbb289360fab86
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/fonts
@@ -0,0 +1,85 @@
+
+#------------------------------------------------------------------------------
+# $File: fonts,v 1.23 2010/09/20 18:55:20 rrt Exp $
+# fonts:  file(1) magic for font data
+#
+0	search/1	FONT		ASCII vfont text
+0	short		0436		Berkeley vfont data
+0	short		017001		byte-swapped Berkeley vfont data
+
+# PostScript fonts (must precede "printer" entries), quinlan@yggdrasil.com
+0	string		%!PS-AdobeFont-1.	PostScript Type 1 font text
+>20	string		>\0			(%s)
+6	string		%!PS-AdobeFont-1.	PostScript Type 1 font program data
+0	string		%!FontType1	PostScript Type 1 font program data
+6	string		%!FontType1	PostScript Type 1 font program data
+0	string		%!PS-Adobe-3.0\ Resource-Font	PostScript Type 1 font text
+
+# X11 font files in SNF (Server Natural Format) format
+0	belong		00000004		X11 SNF font data, MSB first
+0	lelong		00000004		X11 SNF font data, LSB first
+
+# X11 Bitmap Distribution Format, from Daniel Quinlan (quinlan@yggdrasil.com)
+0	search/1	STARTFONT\ 		X11 BDF font text
+
+# X11 fonts, from Daniel Quinlan (quinlan@yggdrasil.com)
+# PCF must come before SGI additions ("MIPSEL MIPS-II COFF" collides)
+0	string		\001fcp			X11 Portable Compiled Font data
+>12	byte		0x02			\b, LSB first
+>12	byte		0x0a			\b, MSB first
+0	string		D1.0\015		X11 Speedo font data
+
+#------------------------------------------------------------------------------
+# FIGlet fonts and controlfiles
+# From figmagic supplied with Figlet version 2.2
+# "David E. O'Brien" <obrien@FreeBSD.ORG>
+0	string		flf		FIGlet font
+>3	string		>2a		version %-2.2s
+0	string		flc		FIGlet controlfile
+>3	string		>2a		version %-2.2s
+
+# libGrx graphics lib fonts, from Albert Cahalan (acahalan@cs.uml.edu)
+# Used with djgpp (DOS Gnu C++), sometimes Linux or Turbo C++
+0	belong		0x14025919	libGrx font data,
+>8	leshort		x		%dx
+>10	leshort		x		\b%d
+>40	string		x		%s
+# Misc. DOS VGA fonts, from Albert Cahalan (acahalan@cs.uml.edu)
+0	belong		0xff464f4e	DOS code page font data collection
+7	belong		0x00454741	DOS code page font data
+7	belong		0x00564944	DOS code page font data (from Linux?)
+4098	string		DOSFONT		DOSFONT2 encrypted font data
+
+# downloadable fonts for browser (prints type) anthon@mnt.org
+0	string		PFR1		PFR1 font
+>102	string		>0		\b: %s
+
+# True Type fonts
+0	string	\000\001\000\000\000	TrueType font data
+!:mime application/x-font-ttf
+
+0	string		\007\001\001\000Copyright\ (c)\ 199	Adobe Multiple Master font
+0	string		\012\001\001\000Copyright\ (c)\ 199	Adobe Multiple Master font
+
+# TrueType/OpenType font collections (.ttc)
+# http://www.microsoft.com/typography/otspec/otff.htm
+0	string		ttcf		TrueType font collection data
+>4	belong		0x00010000	\b, 1.0
+>>8	belong		>0		\b, %d fonts
+>4	belong		0x00020000	\b, 2.0
+>>8	belong		>0		\b, %d fonts
+# 0x44454947 = 'DSIG'
+>>>16	belong		0x44534947	\b, digitally signed
+
+# Opentype font data from Avi Bercovich
+0	string		OTTO		OpenType font data
+!:mime application/vnd.ms-opentype
+
+# Gürkan Sengün <gurkan@linuks.mine.nu>, www.linuks.mine.nu 
+0	string		SplineFontDB:	Spline Font Database 
+!:mime application/vnd.font-fontforge-sfd
+>14	string		x		version %s
+
+# EOT
+34	string		LP		Embedded OpenType (EOT)
+!:mime application/vnd.ms-fontobject
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/fortran b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/fortran
new file mode 100755
index 0000000000000000000000000000000000000000..e2ef0cdb754c4da11cedd91e2631271b2c2c9948
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/fortran
@@ -0,0 +1,6 @@
+
+#------------------------------------------------------------------------------
+# $File: fortran,v 1.6 2009/09/19 16:28:09 christos Exp $
+# FORTRAN source
+0	regex/100	\^[Cc][\ \t]	FORTRAN program
+!:mime	text/x-fortran
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/frame b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/frame
new file mode 100755
index 0000000000000000000000000000000000000000..babe89027156b243beb8f321ac7fa76bcb9b0ea6
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/frame
@@ -0,0 +1,50 @@
+
+#------------------------------------------------------------------------------
+# $File: frame,v 1.12 2009/09/19 16:28:09 christos Exp $
+# frame:  file(1) magic for FrameMaker files
+#
+# This stuff came on a FrameMaker demo tape, most of which is
+# copyright, but this file is "published" as witness the following:
+#
+# Note that this is the Framemaker Maker Interchange Format, not the
+# Normal format which would be application/vnd.framemaker.
+#
+0	string		\<MakerFile	FrameMaker document
+!:mime	application/x-mif
+>11	string		5.5		 (5.5
+>11	string		5.0		 (5.0
+>11	string		4.0		 (4.0
+>11	string		3.0		 (3.0
+>11	string		2.0		 (2.0
+>11	string		1.0		 (1.0
+>14	byte		x		  %c)
+0	string		\<MIFFile	FrameMaker MIF (ASCII) file
+!:mime	application/x-mif
+>9	string		4.0		 (4.0)
+>9	string		3.0		 (3.0)
+>9	string		2.0		 (2.0)
+>9	string		1.0		 (1.x)
+0	search/1	\<MakerDictionary	FrameMaker Dictionary text
+!:mime	application/x-mif
+>17	string		3.0		 (3.0)
+>17	string		2.0		 (2.0)
+>17	string		1.0		 (1.x)
+0	string		\<MakerScreenFont	FrameMaker Font file
+!:mime	application/x-mif
+>17	string		1.01		 (%s)
+0	string		\<MML		FrameMaker MML file
+!:mime	application/x-mif
+0	string		\<BookFile	FrameMaker Book file
+!:mime	application/x-mif
+>10	string		3.0		 (3.0
+>10	string		2.0		 (2.0
+>10	string		1.0		 (1.0
+>13	byte		x		  %c)
+# XXX - this book entry should be verified, if you find one, uncomment this
+#0	string		\<Book\ 	FrameMaker Book (ASCII) file
+#!:mime	application/x-mif
+#>6	string		3.0		 (3.0)
+#>6	string		2.0		 (2.0)
+#>6	string		1.0		 (1.0)
+0	string		\<Maker	Intermediate Print File	FrameMaker IPL file
+!:mime	application/x-mif
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/freebsd b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/freebsd
new file mode 100755
index 0000000000000000000000000000000000000000..a01ac4a2857515b3d94a096277fa76bede6808c9
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/freebsd
@@ -0,0 +1,144 @@
+
+#------------------------------------------------------------------------------
+# $File: freebsd,v 1.7 2009/09/19 16:28:09 christos Exp $
+# freebsd:  file(1) magic for FreeBSD objects
+#
+# All new-style FreeBSD magic numbers are in host byte order (i.e.,
+# little-endian on x86).
+#
+# XXX - this comes from the file "freebsd" in a recent FreeBSD version of
+# "file"; it, and the NetBSD stuff in "netbsd", appear to use different
+# schemes for distinguishing between executable images, shared libraries,
+# and object files.
+#
+# FreeBSD says:
+#
+#    Regardless of whether it's pure, demand-paged, or none of the
+#    above:
+#
+#	if the entry point is < 4096, then it's a shared library if
+#	the "has run-time loader information" bit is set, and is
+#	position-independent if the "is position-independent" bit
+#	is set;
+#
+#	if the entry point is >= 4096 (or >4095, same thing), then it's
+#	an executable, and is dynamically-linked if the "has run-time
+#	loader information" bit is set.
+#
+# On x86, NetBSD says:
+#
+#    If it's neither pure nor demand-paged:
+#
+#	if it has the "has run-time loader information" bit set, it's
+#	a dynamically-linked executable;
+#
+#	if it doesn't have that bit set, then:
+#
+#	    if it has the "is position-independent" bit set, it's
+#	    position-independent;
+#
+#	    if the entry point is non-zero, it's an executable, otherwise
+#	    it's an object file.
+#
+#    If it's pure:
+#
+#	if it has the "has run-time loader information" bit set, it's
+#	a dynamically-linked executable, otherwise it's just an
+#	executable.
+#
+#    If it's demand-paged:
+#
+#	if it has the "has run-time loader information" bit set,
+#	then:
+#
+#	    if the entry point is < 4096, it's a shared library;
+#
+#	    if the entry point is = 4096 or > 4096 (i.e., >= 4096),
+#	    it's a dynamically-linked executable);
+#
+#	if it doesn't have the "has run-time loader information" bit
+#	set, then it's just an executable.
+#
+# (On non-x86, NetBSD does much the same thing, except that it uses
+# 8192 on 68K - except for "68k4k", which is presumably "68K with 4K
+# pages - SPARC, and MIPS, presumably because Sun-3's and Sun-4's
+# had 8K pages; dunno about MIPS.)
+#
+# I suspect the two will differ only in perverse and uninteresting cases
+# ("shared" libraries that aren't demand-paged and whose pages probably
+# won't actually be shared, executables with entry points <4096).
+#
+# I leave it to those more familiar with FreeBSD and NetBSD to figure out
+# what the right answer is (although using ">4095", FreeBSD-style, is
+# probably better than separately checking for "=4096" and ">4096",
+# NetBSD-style).  (The old "netbsd" file analyzed FreeBSD demand paged
+# executables using the NetBSD technique.)
+#
+0	lelong&0377777777	041400407	FreeBSD/i386
+>20	lelong			<4096
+>>3	byte&0xC0		&0x80		shared library
+>>3	byte&0xC0		0x40		PIC object
+>>3	byte&0xC0		0x00		object
+>20	lelong			>4095
+>>3	byte&0x80		0x80		dynamically linked executable
+>>3	byte&0x80		0x00		executable
+>16	lelong			>0		not stripped
+
+0	lelong&0377777777	041400410	FreeBSD/i386 pure
+>20	lelong			<4096
+>>3	byte&0xC0		&0x80		shared library
+>>3	byte&0xC0		0x40		PIC object
+>>3	byte&0xC0		0x00		object
+>20	lelong			>4095
+>>3	byte&0x80		0x80		dynamically linked executable
+>>3	byte&0x80		0x00		executable
+>16	lelong			>0		not stripped
+
+0	lelong&0377777777	041400413	FreeBSD/i386 demand paged
+>20	lelong			<4096
+>>3	byte&0xC0		&0x80		shared library
+>>3	byte&0xC0		0x40		PIC object
+>>3	byte&0xC0		0x00		object
+>20	lelong			>4095
+>>3	byte&0x80		0x80		dynamically linked executable
+>>3	byte&0x80		0x00		executable
+>16	lelong			>0		not stripped
+
+0	lelong&0377777777	041400314	FreeBSD/i386 compact demand paged
+>20	lelong			<4096
+>>3	byte&0xC0		&0x80		shared library
+>>3	byte&0xC0		0x40		PIC object
+>>3	byte&0xC0		0x00		object
+>20	lelong			>4095
+>>3	byte&0x80		0x80		dynamically linked executable
+>>3	byte&0x80		0x00		executable
+>16	lelong			>0		not stripped
+
+# XXX gross hack to identify core files
+# cores start with a struct tss; we take advantage of the following:
+# byte 7:     highest byte of the kernel stack pointer, always 0xfe
+#      8/9:   kernel (ring 0) ss value, always 0x0010
+#      10 - 27: ring 1 and 2 ss/esp, unused, thus always 0
+#      28:    low order byte of the current PTD entry, always 0 since the
+#             PTD is page-aligned
+#
+7	string	\357\020\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0	FreeBSD/i386 a.out core file
+>1039	string	>\0	from '%s'
+
+# /var/run/ld.so.hints
+# What are you laughing about?
+0	lelong			011421044151	ld.so hints file (Little Endian
+>4	lelong			>0		\b, version %d)
+>4	belong			<1		\b)
+0	belong			011421044151	ld.so hints file (Big Endian
+>4	belong			>0		\b, version %d)
+>4	belong			<1		\b)
+
+#
+# Files generated by FreeBSD scrshot(1)/vidcontrol(1) utilities
+#
+0	string	SCRSHOT_	scrshot(1) screenshot,
+>8	byte	x		version %d,
+>9	byte	2		%d bytes in header,
+>>10	byte	x		%d chars wide by
+>>11	byte	x		%d chars high
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/fsav b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/fsav
new file mode 100755
index 0000000000000000000000000000000000000000..0a7a7f80205621e62ce0e30c283080be7e485531
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/fsav
@@ -0,0 +1,63 @@
+
+#------------------------------------------------------------------------------
+# $File: fsav,v 1.11 2009/09/19 16:28:09 christos Exp $
+# fsav:  file(1) magic for datafellows fsav virus definition files
+# Anthon van der Neut (anthon@mnt.org)
+
+# ftp://ftp.f-prot.com/pub/{macrdef2.zip,nomacro.def}
+0	beshort		0x1575		fsav macro virus signatures
+>8	leshort		>0		(%d-
+>11	byte		>0		\b%02d-
+>10	byte		>0		\b%02d)
+# ftp://ftp.f-prot.com/pub/sign.zip
+#10	ubyte		<12
+#>9	ubyte		<32
+#>>8	ubyte		0x0a
+#>>>12	ubyte		0x07
+#>>>>11	uleshort	>0		fsav DOS/Windows virus signatures (%d-
+#>>>>10	byte		0		\b01-
+#>>>>10	byte		1		\b02-
+#>>>>10	byte		2		\b03-
+#>>>>10	byte		3		\b04-
+#>>>>10	byte		4		\b05-
+#>>>>10	byte		5		\b06-
+#>>>>10	byte		6		\b07-
+#>>>>10	byte		7		\b08-
+#>>>>10	byte		8		\b09-
+#>>>>10	byte		9		\b10-
+#>>>>10	byte		10		\b11-
+#>>>>10	byte		11		\b12-
+#>>>>9	ubyte		>0		\b%02d)
+# ftp://ftp.f-prot.com/pub/sign2.zip
+#0	ubyte		0x62		
+#>1	ubyte		0xF5		
+#>>2	ubyte		0x1		
+#>>>3	ubyte		0x1		
+#>>>>4	ubyte		0x0e		
+#>>>>>13		ubyte	>0		fsav virus signatures
+#>>>>>>11	ubyte	x		size 0x%02x
+#>>>>>>12	ubyte	x		\b%02x
+#>>>>>>13	ubyte	x		\b%02x bytes
+
+# Joerg Jenderek: joerg dot jenderek at web dot de
+# http://www.clamav.net/doc/latest/html/node45.html
+# .cvd files start with a 512 bytes colon separated header
+# ClamAV-VDB:buildDate:version:signaturesNumbers:functionalityLevelRequired:MD5:Signature:builder:buildTime
+# + gzipped tarball files
+0	string		ClamAV-VDB:	
+>11	string		>\0		Clam AntiVirus database %-.23s
+>>34	string		:		
+>>>35		string		!:	\b, version 
+>>>>35		string		x 	\b%-.1s
+>>>>>36		string 		!:	
+>>>>>>36	string		x 	\b%-.1s
+>>>>>>>37	string		!:	
+>>>>>>>>37	string		x 	\b%-.1s
+>>>>>>>>>38	string		!:	
+>>>>>>>>>>38	string		x 	\b%-.1s
+>512	string		\037\213	\b, gzipped
+>769	string		ustar\0		\b, tarred
+
+# Type: Grisoft AVG AntiVirus
+# From: David Newgas <david@newgas.net>
+0	string	AVG7_ANTIVIRUS_VAULT_FILE	AVG 7 Antivirus vault file data
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/games b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/games
new file mode 100755
index 0000000000000000000000000000000000000000..3bd13f1030cf912068ab763d76b9ce7960cb53f2
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/games
@@ -0,0 +1,257 @@
+
+#------------------------------------------------------------------------------
+# $File: games,v 1.12 2010/11/25 15:00:12 christos Exp $
+# games:  file(1) for games
+
+# Fabio Bonelli <fabiobonelli@libero.it>
+# Quake II - III data files
+0       string  IDP2        	Quake II 3D Model file,
+>20     long    x               %lu skin(s),
+>8      long    x               (%lu x
+>12     long    x 		%lu),
+>40     long    x               %lu frame(s),
+>16     long    x               Frame size %lu bytes,
+>24     long  	x               %lu vertices/frame,
+>28     long    x            	%lu texture coordinates,
+>32     long    x               %lu triangles/frame
+
+0       string  IBSP            Quake
+>4      long    0x26            II Map file (BSP)
+>4      long    0x2E      	III Map file (BSP)
+
+0       string  IDS2            Quake II SP2 sprite file
+
+#---------------------------------------------------------------------------
+# Doom and Quake
+# submitted by Nicolas Patrois
+
+0       string  \xcb\x1dBoom\xe6\xff\x03\x01    Boom or linuxdoom demo
+# some doom lmp files don't match, I've got one beginning with \x6d\x02\x01\x01
+
+24      string  LxD\ 203        Linuxdoom save
+>0      string  x       , name=%s
+>44     string  x       , world=%s
+
+# Quake
+
+0       string  PACK    Quake I or II world or extension
+>8	lelong	>0	\b, %d entries
+
+#0       string  -1\x0a  Quake I demo
+#>30     string  x        version %.4s
+#>61     string  x        level %s       
+
+#0       string  5\x0a   Quake I save
+
+# The levels
+
+# Quake 1
+
+0	string	5\x0aIntroduction             Quake I save: start Introduction
+0	string	5\x0athe_Slipgate_Complex     Quake I save: e1m1 The slipgate complex
+0	string	5\x0aCastle_of_the_Damned     Quake I save: e1m2 Castle of the damned
+0	string	5\x0athe_Necropolis           Quake I save: e1m3 The necropolis
+0	string	5\x0athe_Grisly_Grotto        Quake I save: e1m4 The grisly grotto
+0	string	5\x0aZiggurat_Vertigo         Quake I save: e1m8 Ziggurat vertigo (secret)
+0	string	5\x0aGloom_Keep               Quake I save: e1m5 Gloom keep
+0	string	5\x0aThe_Door_To_Chthon       Quake I save: e1m6 The door to Chthon
+0	string	5\x0aThe_House_of_Chthon      Quake I save: e1m7 The house of Chthon
+0	string	5\x0athe_Installation         Quake I save: e2m1 The installation
+0	string	5\x0athe_Ogre_Citadel         Quake I save: e2m2 The ogre citadel
+0	string	5\x0athe_Crypt_of_Decay       Quake I save: e2m3 The crypt of decay (dopefish lives!)
+0	string	5\x0aUnderearth               Quake I save: e2m7 Underearth (secret)
+0	string	5\x0athe_Ebon_Fortress        Quake I save: e2m4 The ebon fortress
+0	string	5\x0athe_Wizard's_Manse       Quake I save: e2m5 The wizard's manse
+0	string	5\x0athe_Dismal_Oubliette     Quake I save: e2m6 The dismal oubliette
+0	string	5\x0aTermination_Central      Quake I save: e3m1 Termination central
+0	string	5\x0aVaults_of_Zin            Quake I save: e3m2 Vaults of Zin
+0	string	5\x0athe_Tomb_of_Terror       Quake I save: e3m3 The tomb of terror
+0	string	5\x0aSatan's_Dark_Delight     Quake I save: e3m4 Satan's dark delight
+0	string	5\x0athe_Haunted_Halls        Quake I save: e3m7 The haunted halls (secret)
+0	string	5\x0aWind_Tunnels             Quake I save: e3m5 Wind tunnels
+0	string	5\x0aChambers_of_Torment      Quake I save: e3m6 Chambers of torment
+0	string	5\x0athe_Sewage_System        Quake I save: e4m1 The sewage system
+0	string	5\x0aThe_Tower_of_Despair     Quake I save: e4m2 The tower of despair
+0	string	5\x0aThe_Elder_God_Shrine     Quake I save: e4m3 The elder god shrine
+0	string	5\x0athe_Palace_of_Hate       Quake I save: e4m4 The palace of hate
+0	string	5\x0aHell's_Atrium            Quake I save: e4m5 Hell's atrium
+0	string	5\x0athe_Nameless_City        Quake I save: e4m8 The nameless city (secret)
+0	string	5\x0aThe_Pain_Maze            Quake I save: e4m6 The pain maze
+0	string	5\x0aAzure_Agony              Quake I save: e4m7 Azure agony
+0	string	5\x0aShub-Niggurath's_Pit     Quake I save: end Shub-Niggurath's pit
+
+# Quake DeathMatch levels
+
+0	string	5\x0aPlace_of_Two_Deaths	 Quake I save: dm1 Place of two deaths
+0	string	5\x0aClaustrophobopolis		 Quake I save: dm2 Claustrophobopolis
+0	string	5\x0aThe_Abandoned_Base		 Quake I save: dm3 The abandoned base
+0	string	5\x0aThe_Bad_Place		 Quake I save: dm4 The bad place
+0	string	5\x0aThe_Cistern		 Quake I save: dm5 The cistern
+0	string	5\x0aThe_Dark_Zone		 Quake I save: dm6 The dark zone
+
+# Scourge of Armagon
+
+0	string	5\x0aCommand_HQ               Quake I save: start Command HQ
+0	string	5\x0aThe_Pumping_Station      Quake I save: hip1m1 The pumping station
+0	string	5\x0aStorage_Facility         Quake I save: hip1m2 Storage facility
+0	string	5\x0aMilitary_Complex         Quake I save: hip1m5 Military complex (secret)
+0	string	5\x0athe_Lost_Mine            Quake I save: hip1m3 The lost mine
+0	string	5\x0aResearch_Facility        Quake I save: hip1m4 Research facility
+0	string	5\x0aAncient_Realms           Quake I save: hip2m1 Ancient realms
+0	string	5\x0aThe_Gremlin's_Domain     Quake I save: hip2m6 The gremlin's domain (secret)
+0	string	5\x0aThe_Black_Cathedral      Quake I save: hip2m2 The black cathedral
+0	string	5\x0aThe_Catacombs            Quake I save: hip2m3 The catacombs
+0	string	5\x0athe_Crypt__              Quake I save: hip2m4 The crypt
+0	string	5\x0aMortum's_Keep            Quake I save: hip2m5 Mortum's keep
+0	string	5\x0aTur_Torment              Quake I save: hip3m1 Tur torment
+0	string	5\x0aPandemonium              Quake I save: hip3m2 Pandemonium
+0	string	5\x0aLimbo                    Quake I save: hip3m3 Limbo
+0	string	5\x0athe_Edge_of_Oblivion     Quake I save: hipdm1 The edge of oblivion (secret)
+0	string	5\x0aThe_Gauntlet             Quake I save: hip3m4 The gauntlet
+0	string	5\x0aArmagon's_Lair           Quake I save: hipend Armagon's lair
+
+# Malice
+
+0	string	5\x0aThe_Academy      Quake I save: start The academy
+0	string	5\x0aThe_Lab          Quake I save: d1 The lab
+0	string	5\x0aArea_33          Quake I save: d1b Area 33
+0	string	5\x0aSECRET_MISSIONS  Quake I save: d3b Secret missions
+0	string	5\x0aThe_Hospital     Quake I save: d10 The hospital (secret)
+0	string	5\x0aThe_Genetics_Lab Quake I save: d11 The genetics lab (secret)
+0	string	5\x0aBACK_2_MALICE    Quake I save: d4b Back to Malice
+0	string	5\x0aArea44           Quake I save: d1c Area 44
+0	string	5\x0aTakahiro_Towers  Quake I save: d2 Takahiro towers
+0	string	5\x0aA_Rat's_Life     Quake I save: d3 A rat's life
+0	string	5\x0aInto_The_Flood   Quake I save: d4 Into the flood
+0	string	5\x0aThe_Flood        Quake I save: d5 The flood
+0	string	5\x0aNuclear_Plant    Quake I save: d6 Nuclear plant
+0	string	5\x0aThe_Incinerator_Plant    Quake I save: d7 The incinerator plant
+0	string	5\x0aThe_Foundry              Quake I save: d7b The foundry
+0	string	5\x0aThe_Underwater_Base      Quake I save: d8 The underwater base
+0	string	5\x0aTakahiro_Base            Quake I save: d9 Takahiro base
+0	string	5\x0aTakahiro_Laboratories    Quake I save: d12 Takahiro laboratories
+0	string	5\x0aStayin'_Alive    Quake I save: d13 Stayin' alive
+0	string	5\x0aB.O.S.S._HQ      Quake I save: d14 B.O.S.S. HQ
+0	string	5\x0aSHOWDOWN!        Quake I save: d15 Showdown!
+
+# Malice DeathMatch levels
+
+0	string	5\x0aThe_Seventh_Precinct	 Quake I save: ddm1 The seventh precinct
+0	string	5\x0aSub_Station		 Quake I save: ddm2 Sub station
+0	string	5\x0aCrazy_Eights!		 Quake I save: ddm3 Crazy eights!
+0	string	5\x0aEast_Side_Invertationa	 Quake I save: ddm4 East side invertationa
+0	string	5\x0aSlaughterhouse		 Quake I save: ddm5 Slaughterhouse
+0	string	5\x0aDOMINO			 Quake I save: ddm6 Domino
+0	string	5\x0aSANDRA'S_LADDER		 Quake I save: ddm7 Sandra's ladder
+
+
+0	string	MComprHD	MAME CHD compressed hard disk image,
+>12	belong	x		version %lu
+
+# doom - submitted by Jon Dowland
+
+0	string	=IWAD		doom main IWAD data
+>4	lelong	x		containing %d lumps
+0	string	=PWAD		doom patch PWAD data
+>4	lelong	x		containing %d lumps
+
+# Build engine group files (Duke Nukem, Shadow Warrior, ...)
+# Extension: .grp
+# Created by: "Ganael Laplanche" <ganael.laplanche@martymac.org>
+0	string	KenSilverman	Build engine group file
+>12	lelong	x		containing %d files
+
+# Summary: Warcraft 3 save
+# Extension: .w3g
+# Created by: "Nelson A. de Oliveira" <naoliv@gmail.com>
+0	string		Warcraft\ III\ recorded\ game	%s
+
+
+# Summary: Warcraft 3 map
+# Extension: .w3m
+# Created by: "Nelson A. de Oliveira" <naoliv@gmail.com>
+0	string		HM3W		Warcraft III map file
+
+
+# Summary: SGF Smart Game Format
+# Extension: .sgf
+# Reference: http://www.red-bean.com/sgf/
+# Created by: Eduardo Sabbatella <eduardo_sabbatella@yahoo.com.ar>
+# Modified by (1): Abel Cheung (regex, more game format)
+# FIXME: Some games don't have GM (game type)
+0	regex		\\(;.*GM\\[[0-9]{1,2}\\]	Smart Game Format
+>2	search/0x200/b	GM[
+>>&0	string		1]	(Go)
+>>&0	string		2]	(Othello)
+>>&0	string		3]	(chess)
+>>&0	string		4]	(Gomoku+Renju)
+>>&0	string		5]	(Nine Men's Morris)
+>>&0	string		6]	(Backgammon)
+>>&0	string		7]	(Chinese chess)
+>>&0	string		8]	(Shogi)
+>>&0	string		9]	(Lines of Action)
+>>&0	string		10]	(Ataxx)
+>>&0	string		11]	(Hex)
+>>&0	string		12]	(Jungle)
+>>&0	string		13]	(Neutron)
+>>&0	string		14]	(Philosopher's Football)
+>>&0	string		15]	(Quadrature)
+>>&0	string		16]	(Trax)
+>>&0	string		17]	(Tantrix)
+>>&0	string		18]	(Amazons)
+>>&0	string		19]	(Octi)
+>>&0	string		20]	(Gess)
+>>&0	string		21]	(Twixt)
+>>&0	string		22]	(Zertz)
+>>&0	string		23]	(Plateau)
+>>&0	string		24]	(Yinsh)
+>>&0	string		25]	(Punct)
+>>&0	string		26]	(Gobblet)
+>>&0	string		27]	(hive)
+>>&0	string		28]	(Exxit)
+>>&0	string		29]	(Hnefatal)
+>>&0	string		30]	(Kuba)
+>>&0	string		31]	(Tripples)
+>>&0	string		32]	(Chase)
+>>&0	string		33]	(Tumbling Down)
+>>&0	string		34]	(Sahara)
+>>&0	string		35]	(Byte)
+>>&0	string		36]	(Focus)
+>>&0	string		37]	(Dvonn)
+>>&0	string		38]	(Tamsk)
+>>&0	string		39]	(Gipf)
+>>&0	string		40]	(Kropki)
+
+##############################################
+# NetImmerse/Gamebryo game engine entries
+
+# Summary: Gamebryo game engine file
+# Extension: .nif, .kf
+# Created by: Abel Cheung <abelcheung@gmail.com>
+0		string		Gamebryo\ File\ Format,\ Version\ 	Gamebryo game engine file
+>&0		regex		[0-9a-z.]+				\b, version %s
+
+# Summary: Gamebryo game engine file
+# Extension: .kfm
+# Created by: Abel Cheung <abelcheung@gmail.com>
+0		string		;Gamebryo\ KFM\ File\ Version\ 		Gamebryo game engine animation File
+>&0		regex		[0-9a-z.]+				\b, version %s
+
+# Summary: NetImmerse game engine file
+# Extension .nif
+# Created by: Abel Cheung <abelcheung@gmail.com>
+0		string		NetImmerse\ File\ Format,\ Versio		
+>&0		string		n\ 					NetImmerse game engine file
+>>&0		regex		[0-9a-z.]+				\b, version %s
+
+# Type:	SGF Smart Game Format
+# URL:	http://www.red-bean.com/sgf/
+# From:	Eduardo Sabbatella <eduardo_sabbatella@yahoo.com.ar>
+2	regex/c	\\(;.*GM\\[[0-9]{1,2}\\]	Smart Game Format
+>2	regex/c	GM\\[1\\]			- Go Game
+>2	regex/c	GM\\[6\\]			- BackGammon Game
+>2	regex/c	GM\\[11\\]			- Hex Game
+>2	regex/c	GM\\[18\\]			- Amazons Game
+>2	regex/c	GM\\[19\\]			- Octi Game
+>2	regex/c	GM\\[20\\]			- Gess Game
+>2	regex/c	GM\\[21\\]			- twix Game
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/gcc b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/gcc
new file mode 100755
index 0000000000000000000000000000000000000000..893d0d91e6922bff49ab2140698010f1b56fc48e
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/gcc
@@ -0,0 +1,17 @@
+
+#------------------------------------------------------------------------------
+# $File: gcc,v 1.4 2009/09/19 16:28:09 christos Exp $
+# gcc:  file(1) magic for GCC special files
+#
+0	string		gpch		GCC precompiled header
+
+# The version field is annoying.  It's 3 characters, not zero-terminated.
+>5	byte		x			(version %c
+>6	byte		x			\b%c
+>7	byte		x			\b%c)
+
+# 67 = 'C', 111 = 'o', 43 = '+', 79 = 'O'
+>4	byte		67			for C
+>4	byte		111			for Objective C
+>4	byte		43			for C++
+>4	byte		79			for Objective C++
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/geo b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/geo
new file mode 100755
index 0000000000000000000000000000000000000000..924c71e9356265c4ea310e8fa60c5f93331499d3
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/geo
@@ -0,0 +1,105 @@
+
+#------------------------------------------------------------------------------
+# $File: geo,v 1.1 2010/02/23 23:40:07 christos Exp $
+# Geo- files from Kurt Schwehr <schwehr@ccom.unh.edu>
+
+######################################################################
+#
+# Acoustic Doppler Current Profilers (ADCP)
+#
+######################################################################
+
+0	beshort	0x7f7f	RDI Acoustic Doppler Current Profiler (ADCP)
+
+######################################################################
+#
+# Metadata
+#
+######################################################################
+
+0	string	Identification_Information	FGDC ASCII metadata
+
+######################################################################
+#
+# Seimsic / Subbottom
+#
+######################################################################
+
+# Knudsen subbottom chirp profiler - Binary File Format: B9
+# KEB D409-03167 V1.75 Huffman
+0	string	KEB\ 	Knudsen seismic KEL binary (KEB) -
+>4	regex	[-A-Z0-9]*	Software: %s
+>>&1	regex	V[0-9]*\.[0-9]*	version %s
+
+######################################################################
+#
+# LIDAR - Laser altimetry or bathy
+#
+######################################################################
+
+
+# Caris LIDAR format for LADS comes as two parts... ascii location file and binary waveform data
+0	string	HCA	LADS Caris Ascii Format (CAF) bathymetric lidar
+>4	regex [0-9]*\.[0-9]*	version %s
+
+0	string	HCB	LADS Caris Binary Format (CBF) bathymetric lidar waveform data
+>3      byte    x	version %d .
+>4	byte	x	%d
+
+
+######################################################################
+#
+# MULTIBEAM SONARS http://www.ldeo.columbia.edu/res/pi/MB-System/formatdoc/
+#
+######################################################################
+
+# GeoAcoustics - GeoSwath Plus
+4	beshort	0x2002	GeoSwath RDF
+0	string	Start:-	GeoSwatch auf text file
+
+# Seabeam 2100 
+# mbsystem code mb41
+0	string SB2100	SeaBeam 2100 multibeam sonar
+0	string SB2100DR	SeaBeam 2100 DR multibeam sonar
+0	string SB2100PR SeaBeam 2100 PR multibeam sonar
+
+# This corresponds to MB-System format 94, L-3/ELAC/SeaBeam XSE vendor
+# format. It is the format of our upgraded SeaBeam 2112 on R/V KNORR.
+0    string $HSF    XSE multibeam
+
+# mb121 http://www.saic.com/maritime/gsf/
+8	string	GSF-v	SAIC generic sensor format (GSF) sonar data,
+>&0	regex [0-9]*\.[0-9]*	version %s
+
+# MGD77 - http://www.ngdc.noaa.gov/mgg/dat/geodas/docs/mgd77.htm
+# mb161
+9	string MGD77	MGD77 Header, Marine Geophysical Data Exchange Format
+
+# MBSystem processing caches the mbinfo output
+1	string	Swath\ Data\ File:	mbsystem info cache
+
+# Caris John Hughes Clark format
+0	string	HDCS	Caris multibeam sonar related data
+1	string	Start/Stop\ parameter\ header:	Caris ASCII project summary
+
+######################################################################
+#
+# Visualization and 3D modeling
+#
+######################################################################
+
+# IVS - IVS3d.com Tagged Data Represetation
+0	string	%%\ TDR\ 2.0	IVS Fledermaus TDR file
+
+# http://www.ecma-international.org/publications/standards/Ecma-363.htm
+# 3D in PDFs
+0	string	U3D	ECMA-363, Universal 3D
+
+######################################################################
+#
+# Support files
+#
+######################################################################
+
+# https://midas.psi.ch/elog/
+0	string	$@MID@$	elog journal entry
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/geos b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/geos
new file mode 100755
index 0000000000000000000000000000000000000000..66c2bd1a2904975088d61aa3c0503a0ff5bf3c08
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/geos
@@ -0,0 +1,20 @@
+
+#------------------------------------------------------------------------------
+# $File: geos,v 1.4 2009/09/19 16:28:09 christos Exp $
+# GEOS files (Vidar Madsen, vidar@gimp.org)
+# semi-commonly used in embedded and handheld systems.
+0	belong	0xc745c153	GEOS
+>40	byte	1	executable
+>40	byte	2	VMFile
+>40	byte	3	binary
+>40	byte	4	directory label
+>40	byte	<1	unknown
+>40	byte	>4	unknown
+>4	string	>\0	\b, name "%s"
+#>44	short	x	\b, version %d
+#>46	short	x	\b.%d
+#>48	short	x	\b, rev %d
+#>50	short	x	\b.%d
+#>52	short	x	\b, proto %d
+#>54	short	x	\br%d
+#>168	string	>\0	\b, copyright "%s"
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/gimp b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/gimp
new file mode 100755
index 0000000000000000000000000000000000000000..a360bd8e124b32d25e7de14766d78af72e2c8e0f
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/gimp
@@ -0,0 +1,43 @@
+
+#------------------------------------------------------------------------------
+# $File: gimp,v 1.7 2010/09/20 18:55:20 rrt Exp $
+# GIMP Gradient: file(1) magic for the GIMP's gradient data files
+# by Federico Mena <federico@nuclecu.unam.mx>
+
+0       string          GIMP\ Gradient  GIMP gradient data
+
+#------------------------------------------------------------------------------
+# XCF:  file(1) magic for the XCF image format used in the GIMP developed
+#       by Spencer Kimball and Peter Mattis
+#       ('Bucky' LaDieu, nega@vt.edu)
+
+0	string		gimp\ xcf	GIMP XCF image data,
+!:mime	image/x-xcf
+>9	string		file		version 0,
+>9	string		v		version
+>>10	string		>\0		%s,
+>14	belong		x		%lu x
+>18	belong		x		%lu,
+>22     belong          0               RGB Color
+>22     belong          1               Greyscale
+>22     belong          2               Indexed Color
+>22	belong		>2		Unknown Image Type.
+
+#------------------------------------------------------------------------------
+# XCF:  file(1) magic for the patterns used in the GIMP, developed
+#       by Spencer Kimball and Peter Mattis
+#       ('Bucky' LaDieu, nega@vt.edu)
+
+20      string          GPAT            GIMP pattern data,
+>24     string          x               %s
+
+#------------------------------------------------------------------------------
+# XCF:  file(1) magic for the brushes used in the GIMP, developed
+#       by Spencer Kimball and Peter Mattis
+#       ('Bucky' LaDieu, nega@vt.edu)
+
+20      string          GIMP            GIMP brush data
+
+# GIMP Curves File
+# From: "Nelson A. de Oliveira" <naoliv@gmail.com>
+0	string	#\040GIMP\040Curves\040File	GIMP curve file
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/gnome-keyring b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/gnome-keyring
new file mode 100755
index 0000000000000000000000000000000000000000..463688fe7dcb119c26dc2e6c65615e90d29e9ecd
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/gnome-keyring
@@ -0,0 +1,26 @@
+
+#------------------------------------------------------------------------------
+# $File: gnome-keyring,v 1.2 2009/09/19 16:28:09 christos Exp $
+# GNOME keyring
+# Contributed by Josh Triplett
+# FIXME: Could be simplified if pstring supported two-byte counts
+0         string   GnomeKeyring\n\r\0\n GNOME keyring
+>&0       ubyte    0                    \b, major version 0
+>>&0      ubyte    0                    \b, minor version 0
+>>>&0     ubyte    0                    \b, crypto type 0 (AEL)
+>>>&0     ubyte    >0                   \b, crypto type %hhu (unknown)
+>>>&1     ubyte    0                    \b, hash type 0 (MD5)
+>>>&1     ubyte    >0                   \b, hash type %hhu (unknown)
+>>>&2     ubelong  0xFFFFFFFF           \b, name NULL
+>>>&2     ubelong  !0xFFFFFFFF
+>>>>&-4   ubelong  >255                 \b, name too long for file's pstring type
+>>>>&-4   ubelong  <256
+>>>>>&-1  pstring  x                    \b, name "%s"
+>>>>>>&0  ubeqdate x                    \b, last modified %s
+>>>>>>&8  ubeqdate x                    \b, created %s
+>>>>>>&16 ubelong  &1
+>>>>>>>&0 ubelong  x                    \b, locked if idle for %u seconds
+>>>>>>&16 ubelong  ^1                   \b, not locked if idle
+>>>>>>&24 ubelong  x                    \b, hash iterations %u
+>>>>>>&28 ubequad  x                    \b, salt %llu
+>>>>>>&52 ubelong  x                    \b, %u item(s)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/gnu b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/gnu
new file mode 100755
index 0000000000000000000000000000000000000000..55df7b74582f28bde8cff092af1b379f15119de6
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/gnu
@@ -0,0 +1,44 @@
+
+#------------------------------------------------------------------------------
+# $File: gnu,v 1.11 2009/09/19 16:28:09 christos Exp $
+# gnu:  file(1) magic for various GNU tools
+#
+# GNU nlsutils message catalog file format
+#
+0	string		\336\22\4\225	GNU message catalog (little endian),
+>4	lelong		x		revision %d,
+>8	lelong		x		%d messages
+0	string		\225\4\22\336	GNU message catalog (big endian),
+>4	belong		x		revision %d,
+>8	belong		x		%d messages
+# message catalogs, from Mitchum DSouza <m.dsouza@mrc-apu.cam.ac.uk>
+0	string		*nazgul*	Nazgul style compiled message catalog
+>8	lelong		>0		\b, version %ld
+
+# GnuPG
+# The format is very similar to pgp
+0	string          \001gpg                 GPG key trust database
+>4	byte            x                       version %d
+# Note: magic.mime had 0x8501 for the next line instead of 0x8502
+0	beshort		0x8502			GPG encrypted data
+!:mime	text/PGP # encoding: data
+
+# This magic is not particularly good, as the keyrings don't have true
+# magic. Nevertheless, it covers many keyrings.
+0       beshort         0x9901                  GPG key public ring
+!:mime	application/x-gnupg-keyring
+
+# Gnumeric spreadsheet
+# This entry is only semi-helpful, as Gnumeric compresses its files, so
+# they will ordinarily reported as "compressed", but at least -z helps
+39      string          =<gmr:Workbook           Gnumeric spreadsheet
+
+# From: James Youngman <jay@gnu.org> 
+# gnu find magic
+0	string	\0LOCATE	GNU findutils locate database data
+>7	string	>\0		\b, format %s
+>7	string	02		\b (frcode)
+
+# Files produced by GNU gettext
+0	long	0xDE120495		GNU-format message catalog data
+0	long	0x950412DE		GNU-format message catalog data
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/gnumeric b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/gnumeric
new file mode 100755
index 0000000000000000000000000000000000000000..928ad3eed12a9fdfb0ab1ba33fd1f0fd43257a1f
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/gnumeric
@@ -0,0 +1,8 @@
+
+#------------------------------------------------------------------------------
+# $File: gnumeric,v 1.4 2009/09/19 16:28:09 christos Exp $
+# gnumeric:  file(1) magic for Gnumeric spreadsheet
+# This entry is only semi-helpful, as Gnumeric compresses its files, so
+# they will ordinarily reported as "compressed", but at least -z helps
+39	string	=<gmr:Workbook	Gnumeric spreadsheet
+!:mime	application/x-gnumeric
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/grace b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/grace
new file mode 100755
index 0000000000000000000000000000000000000000..25bd759edca7b8a4c12e4195ee71d3c36871cfa0
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/grace
@@ -0,0 +1,21 @@
+
+#------------------------------------------------------------------------------
+# $File: grace,v 1.4 2009/09/19 16:28:09 christos Exp $
+# ACE/gr and Grace type files - PLEASE DO NOT REMOVE THIS LINE
+#
+# ACE/gr binary
+0	string	\000\000\0001\000\000\0000\000\000\0000\000\000\0002\000\000\0000\000\000\0000\000\000\0003		old ACE/gr binary file
+>39	byte	>0			- version %c
+# ACE/gr ascii
+0	string	#\ xvgr\ parameter\ file	ACE/gr ascii file
+0	string	#\ xmgr\ parameter\ file	ACE/gr ascii file
+0	string	#\ ACE/gr\ parameter\ file	ACE/gr ascii file
+# Grace projects
+0	string	#\ Grace\ project\ file		Grace project file
+>23	string	@version\  			(version
+>>32	byte	>0 				%c
+>>33	string	>\0 				\b.%.2s
+>>35	string	>\0 				\b.%.2s)
+# ACE/gr fit description files
+0	string	#\ ACE/gr\ fit\ description\ 	ACE/gr fit description file
+# end of ACE/gr and Grace type files - PLEASE DO NOT REMOVE THIS LINE
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/graphviz b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/graphviz
new file mode 100755
index 0000000000000000000000000000000000000000..b944d4637c6b58ae8f40b79613211f1092cf948a
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/graphviz
@@ -0,0 +1,12 @@
+
+#------------------------------------------------------------------------------
+# $File: graphviz,v 1.7 2009/09/19 16:28:09 christos Exp $
+# graphviz:  file(1) magic for http://www.graphviz.org/
+
+# FIXME: These patterns match too generally. For example, the first
+# line matches a LaTeX file containing the word "graph" (with a {
+# following later) and the second line matches this file.
+#0	regex/100	[\r\n\t\ ]*graph[\r\n\t\ ]+.*\\{	graphviz graph text
+#!:mime	text/vnd.graphviz
+#0	regex/100	[\r\n\t\ ]*digraph[\r\n\t\ ]+.*\\{	graphviz digraph text
+#!:mime	text/vnd.graphviz
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/gringotts b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/gringotts
new file mode 100755
index 0000000000000000000000000000000000000000..2bfef1b7f7de0520a838b949dfbd21b1219878dd
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/gringotts
@@ -0,0 +1,48 @@
+
+#------------------------------------------------------------------------------
+# $File: gringotts,v 1.5 2009/09/19 16:28:09 christos Exp $
+# gringotts:  file(1) magic for Gringotts
+# http://devel.pluto.linux.it/projects/Gringotts/
+# author: Germano Rizzo <mano@pluto.linux.it>
+#GRG3????Y
+0	string	GRG		Gringotts data file
+#file format 1
+>3	string		1		v.1, MCRYPT S2K, SERPENT crypt, SHA-256 hash, ZLib lvl.9
+#file format 2
+>3	string		2		v.2, MCRYPT S2K, 
+>>8	byte&0x70	0x00		RIJNDAEL-128 crypt,
+>>8	byte&0x70	0x10		SERPENT crypt,
+>>8	byte&0x70	0x20		TWOFISH crypt, 
+>>8	byte&0x70	0x30		CAST-256 crypt,
+>>8	byte&0x70	0x40		SAFER+ crypt,
+>>8	byte&0x70	0x50		LOKI97 crypt,
+>>8	byte&0x70	0x60		3DES crypt,
+>>8	byte&0x70	0x70		RIJNDAEL-256 crypt,
+>>8	byte&0x08	0x00		SHA1 hash,
+>>8	byte&0x08	0x08		RIPEMD-160 hash,
+>>8	byte&0x04	0x00		ZLib
+>>8	byte&0x04	0x04		BZip2
+>>8	byte&0x03	0x00		lvl.0
+>>8	byte&0x03	0x01		lvl.3
+>>8	byte&0x03	0x02		lvl.6
+>>8	byte&0x03	0x03		lvl.9
+#file format 3
+>3	string		3		v.3, OpenPGP S2K, 
+>>8	byte&0x70	0x00		RIJNDAEL-128 crypt,
+>>8	byte&0x70	0x10		SERPENT crypt,
+>>8	byte&0x70	0x20		TWOFISH crypt, 
+>>8	byte&0x70	0x30		CAST-256 crypt,
+>>8	byte&0x70	0x40		SAFER+ crypt,
+>>8	byte&0x70	0x50		LOKI97 crypt,
+>>8	byte&0x70	0x60		3DES crypt,
+>>8	byte&0x70	0x70		RIJNDAEL-256 crypt,
+>>8	byte&0x08	0x00		SHA1 hash,
+>>8	byte&0x08	0x08		RIPEMD-160 hash,
+>>8	byte&0x04	0x00		ZLib
+>>8	byte&0x04	0x04		BZip2
+>>8	byte&0x03	0x00		lvl.0
+>>8	byte&0x03	0x01		lvl.3
+>>8	byte&0x03	0x02		lvl.6
+>>8	byte&0x03	0x03		lvl.9
+#file format >3
+>3	string		>3		v.%.1s (unknown details)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/hitachi-sh b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/hitachi-sh
new file mode 100755
index 0000000000000000000000000000000000000000..96067e9ba524f1b59770eeb55dcb07d9384f37c0
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/hitachi-sh
@@ -0,0 +1,19 @@
+
+#------------------------------------------------------------------------------
+# $File: hitachi-sh,v 1.5 2009/09/19 16:28:09 christos Exp $
+# hitach-sh: file(1) magic for Hitachi Super-H
+#
+# Super-H COFF
+#
+0	beshort		0x0500		Hitachi SH big-endian COFF
+>18	beshort&0x0002	=0x0000		object
+>18	beshort&0x0002	=0x0002		executable
+>18	beshort&0x0008	=0x0008		\b, stripped
+>18	beshort&0x0008	=0x0000		\b, not stripped
+#
+0	leshort		0x0550		Hitachi SH little-endian COFF
+>18	leshort&0x0002	=0x0000		object
+>18	leshort&0x0002	=0x0002		executable
+>18	leshort&0x0008	=0x0008		\b, stripped
+>18	leshort&0x0008	=0x0000		\b, not stripped
+
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/hp b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/hp
new file mode 100755
index 0000000000000000000000000000000000000000..3201c1567c8a27d0f4eccdc942ef5f7c5741859a
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/hp
@@ -0,0 +1,439 @@
+
+#------------------------------------------------------------------------------
+# $File: hp,v 1.23 2009/09/19 16:28:09 christos Exp $
+# hp:  file(1) magic for Hewlett Packard machines (see also "printer")
+#
+# XXX - somebody should figure out whether any byte order needs to be
+# applied to the "TML" stuff; I'm assuming the Apollo stuff is
+# big-endian as it was mostly 68K-based.
+#
+# I think the 500 series was the old stack-based machines, running a
+# UNIX environment atop the "SUN kernel"; dunno whether it was
+# big-endian or little-endian.
+#
+# Daniel Quinlan (quinlan@yggdrasil.com): hp200 machines are 68010 based;
+# hp300 are 68020+68881 based; hp400 are also 68k.  The following basic
+# HP magic is useful for reference, but using "long" magic is a better
+# practice in order to avoid collisions.
+#
+# Guy Harris (guy@netapp.com): some additions to this list came from
+# HP-UX 10.0's "/usr/include/sys/unistd.h" (68030, 68040, PA-RISC 1.1,
+# 1.2, and 2.0).  The 1.2 and 2.0 stuff isn't in the HP-UX 10.0
+# "/etc/magic", though, except for the "archive file relocatable library"
+# stuff, and the 68030 and 68040 stuff isn't there at all - are they not
+# used in executables, or have they just not yet updated "/etc/magic"
+# completely?
+#
+# 0	beshort		200		hp200 (68010) BSD binary
+# 0	beshort		300		hp300 (68020+68881) BSD binary
+# 0	beshort		0x20c		hp200/300 HP-UX binary
+# 0	beshort		0x20d		hp400 (68030) HP-UX binary
+# 0	beshort		0x20e		hp400 (68040?) HP-UX binary
+# 0	beshort		0x20b		PA-RISC1.0 HP-UX binary
+# 0	beshort		0x210		PA-RISC1.1 HP-UX binary
+# 0	beshort		0x211		PA-RISC1.2 HP-UX binary
+# 0	beshort		0x214		PA-RISC2.0 HP-UX binary
+
+#
+# The "misc" stuff needs a byte order; the archives look suspiciously
+# like the old 177545 archives (0xff65 = 0177545).
+#
+#### Old Apollo stuff
+0	beshort		0627		Apollo m68k COFF executable
+>18	beshort		^040000		not stripped
+>22	beshort		>0		- version %ld
+0	beshort		0624		apollo a88k COFF executable
+>18	beshort		^040000		not stripped
+>22	beshort		>0		- version %ld
+0       long            01203604016     TML 0123 byte-order format
+0       long            01702407010     TML 1032 byte-order format
+0       long            01003405017     TML 2301 byte-order format
+0       long            01602007412     TML 3210 byte-order format
+#### PA-RISC 1.1
+0	belong 		0x02100106	PA-RISC1.1 relocatable object
+0	belong 		0x02100107	PA-RISC1.1 executable
+>168	belong		&0x00000004	dynamically linked
+>(144)	belong		0x054ef630	dynamically linked
+>96	belong		>0		- not stripped
+
+0	belong 		0x02100108	PA-RISC1.1 shared executable
+>168	belong&0x4	0x4		dynamically linked
+>(144)	belong		0x054ef630	dynamically linked
+>96	belong		>0		- not stripped
+
+0	belong 		0x0210010b	PA-RISC1.1 demand-load executable
+>168	belong&0x4	0x4		dynamically linked
+>(144)	belong		0x054ef630	dynamically linked
+>96	belong		>0		- not stripped
+
+0	belong 		0x0210010e	PA-RISC1.1 shared library
+>96	belong		>0		- not stripped
+
+0	belong 		0x0210010d	PA-RISC1.1 dynamic load library
+>96	belong		>0		- not stripped
+
+#### PA-RISC 2.0
+0	belong		0x02140106	PA-RISC2.0 relocatable object
+
+0       belong		0x02140107	PA-RISC2.0 executable
+>168	belong		&0x00000004	dynamically linked
+>(144)	belong		0x054ef630	dynamically linked
+>96	belong		>0		- not stripped
+
+0       belong		0x02140108	PA-RISC2.0 shared executable
+>168	belong		&0x00000004	dynamically linked
+>(144)	belong		0x054ef630	dynamically linked
+>96	belong		>0		- not stripped
+
+0       belong		0x0214010b	PA-RISC2.0 demand-load executable
+>168	belong		&0x00000004	dynamically linked
+>(144)	belong		0x054ef630	dynamically linked
+>96	belong		>0		- not stripped
+
+0       belong		0x0214010e	PA-RISC2.0 shared library
+>96	belong		>0		- not stripped
+
+0       belong		0x0214010d	PA-RISC2.0 dynamic load library
+>96	belong		>0		- not stripped
+
+#### 800
+0	belong 		0x020b0106	PA-RISC1.0 relocatable object
+
+0	belong 		0x020b0107	PA-RISC1.0 executable
+>168	belong&0x4	0x4		dynamically linked
+>(144)	belong		0x054ef630	dynamically linked
+>96	belong		>0		- not stripped
+
+0	belong 		0x020b0108	PA-RISC1.0 shared executable
+>168	belong&0x4	0x4		dynamically linked
+>(144)	belong		0x054ef630	dynamically linked
+>96	belong		>0		- not stripped
+
+0	belong 		0x020b010b	PA-RISC1.0 demand-load executable
+>168	belong&0x4	0x4		dynamically linked
+>(144)	belong		0x054ef630	dynamically linked
+>96	belong		>0		- not stripped
+
+0	belong 		0x020b010e	PA-RISC1.0 shared library
+>96	belong		>0		- not stripped
+
+0	belong 		0x020b010d	PA-RISC1.0 dynamic load library
+>96	belong		>0		- not stripped
+
+0	belong		0x213c6172	archive file
+>68	belong 		0x020b0619	- PA-RISC1.0 relocatable library
+>68	belong	 	0x02100619	- PA-RISC1.1 relocatable library
+>68	belong 		0x02110619	- PA-RISC1.2 relocatable library
+>68	belong 		0x02140619	- PA-RISC2.0 relocatable library
+
+#### 500
+0	long		0x02080106	HP s500 relocatable executable
+>16	long		>0		- version %ld
+
+0	long		0x02080107	HP s500 executable
+>16	long		>0		- version %ld
+
+0	long		0x02080108	HP s500 pure executable
+>16	long		>0		- version %ld
+
+#### 200
+0	belong 		0x020c0108	HP s200 pure executable
+>4	beshort		>0		- version %ld
+>8	belong		&0x80000000	save fp regs
+>8	belong		&0x40000000	dynamically linked
+>8	belong		&0x20000000	debuggable
+>36	belong		>0		not stripped
+
+0	belong		0x020c0107	HP s200 executable
+>4	beshort		>0		- version %ld
+>8	belong		&0x80000000	save fp regs
+>8	belong		&0x40000000	dynamically linked
+>8	belong		&0x20000000	debuggable
+>36	belong		>0		not stripped
+
+0	belong		0x020c010b	HP s200 demand-load executable
+>4	beshort		>0		- version %ld
+>8	belong		&0x80000000	save fp regs
+>8	belong		&0x40000000	dynamically linked
+>8	belong		&0x20000000	debuggable
+>36	belong		>0		not stripped
+
+0	belong		0x020c0106	HP s200 relocatable executable
+>4	beshort		>0		- version %ld
+>6	beshort		>0		- highwater %d
+>8	belong		&0x80000000	save fp regs
+>8	belong		&0x20000000	debuggable
+>8	belong		&0x10000000	PIC
+
+0	belong 		0x020a0108	HP s200 (2.x release) pure executable
+>4	beshort		>0		- version %ld
+>36	belong		>0		not stripped
+
+0	belong		0x020a0107	HP s200 (2.x release) executable
+>4	beshort		>0		- version %ld
+>36	belong		>0		not stripped
+
+0	belong		0x020c010e	HP s200 shared library
+>4	beshort		>0		- version %ld
+>6	beshort		>0		- highwater %d
+>36	belong		>0		not stripped
+
+0	belong		0x020c010d	HP s200 dynamic load library
+>4	beshort		>0		- version %ld
+>6	beshort		>0		- highwater %d
+>36	belong		>0		not stripped
+
+#### MISC
+0	long		0x0000ff65	HP old archive
+0	long		0x020aff65	HP s200 old archive
+0	long		0x020cff65	HP s200 old archive
+0	long		0x0208ff65	HP s500 old archive
+
+0	long		0x015821a6	HP core file
+
+0	long		0x4da7eee8	HP-WINDOWS font
+>8	byte		>0		- version %ld
+0	string		Bitmapfile	HP Bitmapfile
+
+0	string		IMGfile	CIS 	compimg HP Bitmapfile
+# XXX - see "lif"
+#0	short		0x8000		lif file
+0	long		0x020c010c	compiled Lisp
+
+0	string		msgcat01	HP NLS message catalog,
+>8	long		>0		%d messages
+
+# Summary: HP-48/49 calculator
+# Created by: phk@data.fls.dk
+# Modified by (1): AMAKAWA Shuhei <sa264@cam.ac.uk>
+# Modified by (2): Samuel Thibault <samuel.thibault@ens-lyon.org> (HP49 support)
+0	string		HPHP		HP
+>4	string		48		48 binary
+>4	string		49		49 binary
+>7	byte		>64		- Rev %c
+>8	leshort		0x2911		(ADR)
+>8	leshort		0x2933		(REAL)
+>8	leshort		0x2955		(LREAL)
+>8	leshort		0x2977		(COMPLX)
+>8	leshort		0x299d		(LCOMPLX)
+>8	leshort		0x29bf		(CHAR)
+>8	leshort		0x29e8		(ARRAY)
+>8	leshort		0x2a0a		(LNKARRAY)
+>8	leshort		0x2a2c		(STRING)
+>8	leshort		0x2a4e		(HXS)
+>8	leshort		0x2a74		(LIST)
+>8	leshort		0x2a96		(DIR)
+>8	leshort		0x2ab8		(ALG)
+>8	leshort		0x2ada		(UNIT)
+>8	leshort		0x2afc		(TAGGED)
+>8	leshort		0x2b1e		(GROB)
+>8	leshort		0x2b40		(LIB)
+>8	leshort		0x2b62		(BACKUP)
+>8	leshort		0x2b88		(LIBDATA)
+>8	leshort		0x2d9d		(PROG)
+>8	leshort		0x2dcc		(CODE)
+>8	leshort		0x2e48		(GNAME)
+>8	leshort		0x2e6d		(LNAME)
+>8	leshort		0x2e92		(XLIB)
+
+0	string		%%HP:		HP text
+>6	string		T(0)		- T(0)
+>6	string		T(1)		- T(1)
+>6	string		T(2)		- T(2)
+>6	string		T(3)		- T(3)
+>10	string		A(D)		A(D)
+>10	string		A(R)		A(R)
+>10	string		A(G)		A(G)
+>14	string		F(.)		F(.);
+>14	string		F(,)		F(,);
+
+
+# Summary: HP-38/39 calculator
+# Created by: Samuel Thibault <samuel.thibault@ens-lyon.org>
+0	string		HP3
+>3	string		8		HP 38
+>3	string		9		HP 39
+>4	string		Bin		binary
+>4	string		Asc		ASCII
+>7	string		A		(Directory List)
+>7	string		B		(Zaplet)
+>7	string		C		(Note)
+>7	string		D		(Program)
+>7	string		E		(Variable)
+>7	string		F		(List)
+>7	string		G		(Matrix)
+>7	string		H		(Library)
+>7	string		I		(Target List)
+>7	string		J		(ASCII Vector specification)
+>7	string		K		(wildcard)
+
+# Summary: HP-38/39 calculator
+# Created by: Samuel Thibault <samuel.thibault@ens-lyon.org>
+0	string		HP3
+>3	string		8		HP 38
+>3	string		9		HP 39
+>4	string		Bin		binary
+>4	string		Asc		ASCII
+>7	string		A		(Directory List)
+>7	string		B		(Zaplet)
+>7	string		C		(Note)
+>7	string		D		(Program)
+>7	string		E		(Variable)
+>7	string		F		(List)
+>7	string		G		(Matrix)
+>7	string		H		(Library)
+>7	string		I		(Target List)
+>7	string		J		(ASCII Vector specification)
+>7	string		K		(wildcard)
+
+# hpBSD magic numbers
+0	beshort		200		hp200 (68010) BSD
+>2	beshort		0407		impure binary
+>2	beshort		0410		read-only binary
+>2	beshort		0413		demand paged binary
+0	beshort		300		hp300 (68020+68881) BSD
+>2	beshort		0407		impure binary
+>2	beshort		0410		read-only binary
+>2	beshort		0413		demand paged binary
+#
+# From David Gero <dgero@nortelnetworks.com>
+# HP-UX 10.20 core file format from /usr/include/sys/core.h
+# Unfortunately, HP-UX uses corehead blocks without specifying the order
+# There are four we care about:
+#     CORE_KERNEL, which starts with the string "HP-UX"
+#     CORE_EXEC, which contains the name of the command
+#     CORE_PROC, which contains the signal number that caused the core dump
+#     CORE_FORMAT, which contains the version of the core file format (== 1)
+# The only observed order in real core files is KERNEL, EXEC, FORMAT, PROC
+# but we include all 6 variations of the order of the first 3, and
+# assume that PROC will always be last
+# Order 1: KERNEL, EXEC, FORMAT, PROC
+0x10		string	HP-UX
+>0		belong	2
+>>0xC		belong	0x3C
+>>>0x4C		belong	0x100
+>>>>0x58	belong	0x44
+>>>>>0xA0	belong	1
+>>>>>>0xAC	belong	4
+>>>>>>>0xB0	belong	1
+>>>>>>>>0xB4	belong	4		core file
+>>>>>>>>>0x90	string	>\0		from '%s'
+>>>>>>>>>0xC4	belong	3		- received SIGQUIT
+>>>>>>>>>0xC4	belong	4		- received SIGILL
+>>>>>>>>>0xC4	belong	5		- received SIGTRAP
+>>>>>>>>>0xC4	belong	6		- received SIGABRT
+>>>>>>>>>0xC4	belong	7		- received SIGEMT
+>>>>>>>>>0xC4	belong	8		- received SIGFPE
+>>>>>>>>>0xC4	belong	10		- received SIGBUS
+>>>>>>>>>0xC4	belong	11		- received SIGSEGV
+>>>>>>>>>0xC4	belong	12		- received SIGSYS
+>>>>>>>>>0xC4	belong	33		- received SIGXCPU
+>>>>>>>>>0xC4	belong	34		- received SIGXFSZ
+# Order 2: KERNEL, FORMAT, EXEC, PROC
+>>>0x4C		belong	1
+>>>>0x58	belong	4
+>>>>>0x5C	belong	1
+>>>>>>0x60	belong	0x100
+>>>>>>>0x6C	belong	0x44
+>>>>>>>>0xB4	belong	4		core file
+>>>>>>>>>0xA4	string	>\0		from '%s'
+>>>>>>>>>0xC4	belong	3		- received SIGQUIT
+>>>>>>>>>0xC4	belong	4		- received SIGILL
+>>>>>>>>>0xC4	belong	5		- received SIGTRAP
+>>>>>>>>>0xC4	belong	6		- received SIGABRT
+>>>>>>>>>0xC4	belong	7		- received SIGEMT
+>>>>>>>>>0xC4	belong	8		- received SIGFPE
+>>>>>>>>>0xC4	belong	10		- received SIGBUS
+>>>>>>>>>0xC4	belong	11		- received SIGSEGV
+>>>>>>>>>0xC4	belong	12		- received SIGSYS
+>>>>>>>>>0xC4	belong	33		- received SIGXCPU
+>>>>>>>>>0xC4	belong	34		- received SIGXFSZ
+# Order 3: FORMAT, KERNEL, EXEC, PROC
+0x24		string	HP-UX
+>0		belong	1
+>>0xC		belong	4
+>>>0x10		belong	1
+>>>>0x14	belong	2
+>>>>>0x20	belong	0x3C
+>>>>>>0x60	belong	0x100
+>>>>>>>0x6C	belong	0x44
+>>>>>>>>0xB4	belong	4		core file
+>>>>>>>>>0xA4	string	>\0		from '%s'
+>>>>>>>>>0xC4	belong	3		- received SIGQUIT
+>>>>>>>>>0xC4	belong	4		- received SIGILL
+>>>>>>>>>0xC4	belong	5		- received SIGTRAP
+>>>>>>>>>0xC4	belong	6		- received SIGABRT
+>>>>>>>>>0xC4	belong	7		- received SIGEMT
+>>>>>>>>>0xC4	belong	8		- received SIGFPE
+>>>>>>>>>0xC4	belong	10		- received SIGBUS
+>>>>>>>>>0xC4	belong	11		- received SIGSEGV
+>>>>>>>>>0xC4	belong	12		- received SIGSYS
+>>>>>>>>>0xC4	belong	33		- received SIGXCPU
+>>>>>>>>>0xC4	belong	34		- received SIGXFSZ
+# Order 4: EXEC, KERNEL, FORMAT, PROC
+0x64		string	HP-UX
+>0		belong	0x100
+>>0xC		belong	0x44
+>>>0x54		belong	2
+>>>>0x60	belong	0x3C
+>>>>>0xA0	belong	1
+>>>>>>0xAC	belong	4
+>>>>>>>0xB0	belong	1
+>>>>>>>>0xB4	belong	4		core file
+>>>>>>>>>0x44	string	>\0		from '%s'
+>>>>>>>>>0xC4	belong	3		- received SIGQUIT
+>>>>>>>>>0xC4	belong	4		- received SIGILL
+>>>>>>>>>0xC4	belong	5		- received SIGTRAP
+>>>>>>>>>0xC4	belong	6		- received SIGABRT
+>>>>>>>>>0xC4	belong	7		- received SIGEMT
+>>>>>>>>>0xC4	belong	8		- received SIGFPE
+>>>>>>>>>0xC4	belong	10		- received SIGBUS
+>>>>>>>>>0xC4	belong	11		- received SIGSEGV
+>>>>>>>>>0xC4	belong	12		- received SIGSYS
+>>>>>>>>>0xC4	belong	33		- received SIGXCPU
+>>>>>>>>>0xC4	belong	34		- received SIGXFSZ
+# Order 5: FORMAT, EXEC, KERNEL, PROC
+0x78		string	HP-UX
+>0		belong	1
+>>0xC		belong	4
+>>>0x10		belong	1
+>>>>0x14	belong	0x100
+>>>>>0x20	belong	0x44
+>>>>>>0x68	belong	2
+>>>>>>>0x74	belong	0x3C
+>>>>>>>>0xB4	belong	4		core file
+>>>>>>>>>0x58	string	>\0		from '%s'
+>>>>>>>>>0xC4	belong	3		- received SIGQUIT
+>>>>>>>>>0xC4	belong	4		- received SIGILL
+>>>>>>>>>0xC4	belong	5		- received SIGTRAP
+>>>>>>>>>0xC4	belong	6		- received SIGABRT
+>>>>>>>>>0xC4	belong	7		- received SIGEMT
+>>>>>>>>>0xC4	belong	8		- received SIGFPE
+>>>>>>>>>0xC4	belong	10		- received SIGBUS
+>>>>>>>>>0xC4	belong	11		- received SIGSEGV
+>>>>>>>>>0xC4	belong	12		- received SIGSYS
+>>>>>>>>>0xC4	belong	33		- received SIGXCPU
+>>>>>>>>>0xC4	belong	34		- received SIGXFSZ
+# Order 6: EXEC, FORMAT, KERNEL, PROC
+>0		belong	0x100
+>>0xC		belong	0x44
+>>>0x54		belong	1
+>>>>0x60	belong	4
+>>>>>0x64	belong	1
+>>>>>>0x68	belong	2
+>>>>>>>0x74	belong	0x2C
+>>>>>>>>0xB4	belong	4		core file
+>>>>>>>>>0x44	string	>\0		from '%s'
+>>>>>>>>>0xC4	belong	3		- received SIGQUIT
+>>>>>>>>>0xC4	belong	4		- received SIGILL
+>>>>>>>>>0xC4	belong	5		- received SIGTRAP
+>>>>>>>>>0xC4	belong	6		- received SIGABRT
+>>>>>>>>>0xC4	belong	7		- received SIGEMT
+>>>>>>>>>0xC4	belong	8		- received SIGFPE
+>>>>>>>>>0xC4	belong	10		- received SIGBUS
+>>>>>>>>>0xC4	belong	11		- received SIGSEGV
+>>>>>>>>>0xC4	belong	12		- received SIGSYS
+>>>>>>>>>0xC4	belong	33		- received SIGXCPU
+>>>>>>>>>0xC4	belong	34		- received SIGXFSZ
+
+
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/human68k b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/human68k
new file mode 100755
index 0000000000000000000000000000000000000000..b3d66ce5d089d3952adadcf54da5a7203f93f445
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/human68k
@@ -0,0 +1,26 @@
+
+#------------------------------------------------------------------------------
+# $File: human68k,v 1.5 2009/09/19 16:28:09 christos Exp $
+# human68k:  file(1) magic for Human68k (X680x0 DOS) binary formats
+# Magic too short!
+#0		string	HU		Human68k
+#>68		string	LZX		LZX compressed
+#>>72		string	>\0		(version %s)
+#>(8.L+74)	string	LZX		LZX compressed
+#>>(8.L+78)	string	>\0		(version %s)
+#>60		belong	>0		binded
+#>(8.L+66)	string	#HUPAIR		hupair
+#>0		string	HU		X executable
+#>(8.L+74)	string	#LIBCV1		- linked PD LIBC ver 1
+#>4		belong	>0		- base address 0x%x
+#>28		belong	>0		not stripped
+#>32		belong	>0		with debug information
+#0		beshort	0x601a		Human68k Z executable
+#0		beshort	0x6000		Human68k object file
+#0		belong	0xd1000000	Human68k ar binary archive
+#0		belong	0xd1010000	Human68k ar ascii archive
+#0		beshort	0x0068		Human68k lib archive
+#4		string	LZX		Human68k LZX compressed
+#>8		string	>\0		(version %s)
+#>4		string	LZX		R executable
+#2		string	#HUPAIR		Human68k hupair R executable
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ibm370 b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ibm370
new file mode 100755
index 0000000000000000000000000000000000000000..37d17bd8a54902f52e81a02454a6dfff54983db2
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ibm370
@@ -0,0 +1,48 @@
+
+#------------------------------------------------------------------------------
+# $File: ibm370,v 1.8 2009/09/19 16:28:09 christos Exp $
+# ibm370:  file(1) magic for IBM 370 and compatibles.
+#
+# "ibm370" said that 0x15d == 0535 was "ibm 370 pure executable".
+# What the heck *is* "USS/370"?
+# AIX 4.1's "/etc/magic" has
+#
+#	0	short		0535		370 sysV executable 
+#	>12	long		>0		not stripped
+#	>22	short		>0		- version %d
+#	>30	long		>0		- 5.2 format
+#	0	short		0530		370 sysV pure executable 
+#	>12	long		>0		not stripped
+#	>22	short		>0		- version %d
+#	>30	long		>0		- 5.2 format
+#
+# instead of the "USS/370" versions of the same magic numbers.
+#
+0	beshort		0537		370 XA sysV executable 
+>12	belong		>0		not stripped
+>22	beshort		>0		- version %d
+>30	belong		>0		- 5.2 format
+0	beshort		0532		370 XA sysV pure executable 
+>12	belong		>0		not stripped
+>22	beshort		>0		- version %d
+>30	belong		>0		- 5.2 format
+0	beshort		054001		370 sysV pure executable
+>12	belong		>0		not stripped
+0	beshort		055001		370 XA sysV pure executable
+>12	belong		>0		not stripped
+0	beshort		056401		370 sysV executable
+>12	belong		>0		not stripped
+0	beshort		057401		370 XA sysV executable
+>12	belong		>0		not stripped
+0       beshort		0531		SVR2 executable (Amdahl-UTS)
+>12	belong		>0		not stripped
+>24     belong		>0		- version %ld
+0	beshort		0534		SVR2 pure executable (Amdahl-UTS)
+>12	belong		>0		not stripped
+>24	belong		>0		- version %ld
+0	beshort		0530		SVR2 pure executable (USS/370)
+>12	belong		>0		not stripped
+>24	belong		>0		- version %ld
+0	beshort		0535		SVR2 executable (USS/370)
+>12	belong		>0		not stripped
+>24	belong		>0		- version %ld
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ibm6000 b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ibm6000
new file mode 100755
index 0000000000000000000000000000000000000000..72755fafc498370e6c32d181591c5a516058b5eb
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ibm6000
@@ -0,0 +1,20 @@
+
+#------------------------------------------------------------------------------
+# $File: ibm6000,v 1.9 2009/09/19 16:28:09 christos Exp $
+# ibm6000:  file(1) magic for RS/6000 and the RT PC.
+#
+0	beshort		0x01df		executable (RISC System/6000 V3.1) or obj module
+>12	belong		>0		not stripped
+# Breaks sun4 statically linked execs.
+#0      beshort		0x0103		executable (RT Version 2) or obj module
+#>2	byte		0x50		pure
+#>28	belong		>0		not stripped
+#>6	beshort		>0		- version %ld
+0	beshort		0x0104		shared library
+0	beshort		0x0105		ctab data
+0	beshort		0xfe04		structured file
+0	string		0xabcdef	AIX message catalog
+0	belong		0x000001f9	AIX compiled message catalog
+0	string		\<aiaff>	archive
+0	string		\<bigaf>	archive (big format)
+
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/iff b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/iff
new file mode 100755
index 0000000000000000000000000000000000000000..bde16b1db33d01a325ee290172693da89cc9a017
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/iff
@@ -0,0 +1,64 @@
+
+#------------------------------------------------------------------------------
+# $File: iff,v 1.12 2009/09/19 16:28:09 christos Exp $
+# iff:	file(1) magic for Interchange File Format (see also "audio" & "images")
+#
+# Daniel Quinlan (quinlan@yggdrasil.com) -- IFF was designed by Electronic
+# Arts for file interchange.  It has also been used by Apple, SGI, and
+# especially Commodore-Amiga.
+#
+# IFF files begin with an 8 byte FORM header, followed by a 4 character
+# FORM type, which is followed by the first chunk in the FORM.
+
+0	string		FORM		IFF data
+#>4	belong		x		\b, FORM is %d bytes long
+# audio formats
+>8	string		AIFF		\b, AIFF audio
+!:mime	audio/x-aiff
+>8	string		AIFC		\b, AIFF-C compressed audio
+!:mime	audio/x-aiff
+>8	string		8SVX		\b, 8SVX 8-bit sampled sound voice
+!:mime	audio/x-aiff
+>8	string		16SV		\b, 16SV 16-bit sampled sound voice
+>8	string		SAMP		\b, SAMP sampled audio
+>8	string		MAUD		\b, MAUD MacroSystem audio
+>8	string		SMUS		\b, SMUS simple music
+>8	string		CMUS		\b, CMUS complex music
+# image formats
+>8	string		ILBMBMHD	\b, ILBM interleaved image
+>>20	beshort		x		\b, %d x
+>>22	beshort		x		%d
+>8	string		RGBN		\b, RGBN 12-bit RGB image
+>8	string		RGB8		\b, RGB8 24-bit RGB image
+>8	string		DEEP		\b, DEEP TVPaint/XiPaint image
+>8	string		DR2D		\b, DR2D 2-D object
+>8	string		TDDD		\b, TDDD 3-D rendering
+>8	string		LWOB		\b, LWOB 3-D object
+>8	string		LWO2		\b, LWO2 3-D object, v2
+>8	string		LWLO		\b, LWLO 3-D layered object
+>8	string		REAL		\b, REAL Real3D rendering
+>8	string		MC4D		\b, MC4D MaxonCinema4D rendering
+>8	string		ANIM		\b, ANIM animation
+>8	string		YAFA		\b, YAFA animation
+>8	string		SSA\ 		\b, SSA super smooth animation
+>8	string		ACBM		\b, ACBM continuous image
+>8	string		FAXX		\b, FAXX fax image
+# other formats
+>8	string		FTXT		\b, FTXT formatted text
+>8	string		CTLG		\b, CTLG message catalog
+>8	string		PREF		\b, PREF preferences
+>8	string		DTYP		\b, DTYP datatype description
+>8	string		PTCH		\b, PTCH binary patch
+>8	string		AMFF		\b, AMFF AmigaMetaFile format
+>8	string		WZRD		\b, WZRD StormWIZARD resource
+>8	string		DOC\ 		\b, DOC desktop publishing document
+
+# These go at the end of the iff rules
+#
+# I don't see why these might collide with anything else.
+#
+# Interactive Fiction related formats
+#
+>8	string		IFRS		\b, Blorb Interactive Fiction
+>>24	string		Exec		with executable chunk
+>8	string          IFZS		\b, Z-machine or Glulx saved game file (Quetzal)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/images b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/images
new file mode 100755
index 0000000000000000000000000000000000000000..d4e2e752b471f971c140d3c1b25f41c05533c9dd
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/images
@@ -0,0 +1,730 @@
+
+#------------------------------------------------------------------------------
+# $File: images,v 1.70 2010/11/25 15:00:12 christos Exp $
+# images:  file(1) magic for image formats (see also "iff", and "c-lang" for
+# XPM bitmaps)
+#
+# originally from jef@helios.ee.lbl.gov (Jef Poskanzer),
+# additions by janl@ifi.uio.no as well as others. Jan also suggested
+# merging several one- and two-line files into here.
+#
+# little magic: PCX (first byte is 0x0a)
+
+# Targa - matches `povray', `ppmtotga' and `xv' outputs
+# by Philippe De Muyter <phdm@macqel.be>
+# at 2, byte ImgType must be 1, 2, 3, 9, 10 or 11
+# at 1, byte CoMapType must be 1 if ImgType is 1 or 9, 0 otherwise
+# at 3, leshort Index is 0 for povray, ppmtotga and xv outputs
+# `xv' recognizes only a subset of the following (RGB with pixelsize = 24)
+# `tgatoppm' recognizes a superset (Index may be anything)
+1	belong&0xfff7ffff	0x01010000	Targa image data - Map
+>2	byte&8			8		- RLE
+>12	leshort			>0		%hd x
+>14	leshort			>0		%hd
+1	belong&0xfff7ffff	0x00020000	Targa image data - RGB
+>2	byte&8			8		- RLE
+>12	leshort			>0		%hd x
+>14	leshort			>0		%hd
+1	belong&0xfff7ffff	0x00030000	Targa image data - Mono
+>2	byte&8			8		- RLE
+>12	leshort			>0		%hd x
+>14	leshort			>0		%hd
+
+# PBMPLUS images
+# The next byte following the magic is always whitespace.
+0	search/1	P1		Netpbm PBM image text
+!:mime	image/x-portable-bitmap
+0	search/1b	P2		Netpbm PGM image text
+!:mime	image/x-portable-greymap
+0	search/1	P3		Netpbm PPM image text
+!:mime	image/x-portable-pixmap
+0	string		P4		Netpbm PBM "rawbits" image data
+!:mime	image/x-portable-bitmap
+0	string		P5		Netpbm PGM "rawbits" image data
+!:mime	image/x-portable-greymap
+0	string		P6		Netpbm PPM "rawbits" image data
+!:mime	image/x-portable-pixmap
+0	string		P7		Netpbm PAM image file
+!:mime	image/x-portable-pixmap
+
+# From: bryanh@giraffe-data.com (Bryan Henderson)
+0	string		\117\072	Solitaire Image Recorder format
+>4	string		\013		MGI Type 11
+>4	string		\021		MGI Type 17
+0	string		.MDA		MicroDesign data
+>21	byte		48		version 2
+>21	byte		51		version 3
+0	string		.MDP		MicroDesign page data
+>21	byte		48		version 2
+>21	byte		51		version 3
+
+# NIFF (Navy Interchange File Format, a modification of TIFF) images
+# [GRR:  this *must* go before TIFF]
+0	string		IIN1		NIFF image data
+!:mime	image/x-niff
+
+# Canon RAW version 1 (CRW) files are a type of Canon Image File Format
+# (CIFF) file. These are apparently all little-endian.
+# From: Adam Buchbinder <adam.buchbinder@gmail.com>
+# URL: http://www.sno.phy.queensu.ca/~phil/exiftool/canon_raw.html
+0	string		II\x1a\0\0\0HEAPCCDR	Canon CIFF raw image data
+!:mime	image/x-canon-crw
+>16	leshort		x	\b, version %d.
+>14	leshort		x	\b%d
+
+# Canon RAW version 2 (CR2) files are a kind of TIFF with an extra magic
+# number. Put this above the TIFF test to make sure we detect them.
+# These are apparently all little-endian.
+# From: Adam Buchbinder <adam.buchbinder@gmail.com>
+# URL: http://libopenraw.freedesktop.org/wiki/Canon_CR2
+0	string		II\x2a\0\x10\0\0\0CR	Canon CR2 raw image data
+!:mime	image/x-canon-cr2
+>10	byte		x	\b, version %d.
+>11	byte		x	\b%d
+
+# Tag Image File Format, from Daniel Quinlan (quinlan@yggdrasil.com)
+# The second word of TIFF files is the TIFF version number, 42, which has
+# never changed.  The TIFF specification recommends testing for it.
+0	string		MM\x00\x2a	TIFF image data, big-endian
+!:mime	image/tiff
+0	string		II\x2a\x00	TIFF image data, little-endian
+!:mime	image/tiff
+
+# PNG [Portable Network Graphics, or "PNG's Not GIF"] images
+# (Greg Roelofs, newt@uchicago.edu)
+# (Albert Cahalan, acahalan@cs.uml.edu)
+#
+# 137 P N G \r \n ^Z \n [4-byte length] H E A D [HEAD data] [HEAD crc] ...
+#
+0	string		\x89PNG\x0d\x0a\x1a\x0a		PNG image data
+!:mime	image/png
+>16	belong		x		\b, %ld x
+>20	belong		x		%ld,
+>24	byte		x		%d-bit
+>25	byte		0		grayscale,
+>25	byte		2		\b/color RGB,
+>25	byte		3		colormap,
+>25	byte		4		gray+alpha,
+>25	byte		6		\b/color RGBA,
+#>26	byte		0		deflate/32K,
+>28	byte		0		non-interlaced
+>28	byte		1		interlaced
+
+# possible GIF replacements; none yet released!
+# (Greg Roelofs, newt@uchicago.edu)
+#
+# GRR 950115:  this was mine ("Zip GIF"):
+0	string		GIF94z		ZIF image (GIF+deflate alpha)
+!:mime	image/x-unknown
+#
+# GRR 950115:  this is Jeremy Wohl's Free Graphics Format (better):
+#					
+0	string		FGF95a		FGF image (GIF+deflate beta)
+!:mime	image/x-unknown
+#
+# GRR 950115:  this is Thomas Boutell's Portable Bitmap Format proposal
+# (best; not yet implemented):
+#					
+0	string		PBF		PBF image (deflate compression)
+!:mime	image/x-unknown
+
+# GIF
+0	string		GIF8		GIF image data
+!:mime	image/gif
+!:apple	8BIMGIFf
+>4	string		7a		\b, version 8%s,
+>4	string		9a		\b, version 8%s,
+>6	leshort		>0		%hd x
+>8	leshort		>0		%hd
+#>10	byte		&0x80		color mapped,
+#>10	byte&0x07	=0x00		2 colors
+#>10	byte&0x07	=0x01		4 colors
+#>10	byte&0x07	=0x02		8 colors
+#>10	byte&0x07	=0x03		16 colors
+#>10	byte&0x07	=0x04		32 colors
+#>10	byte&0x07	=0x05		64 colors
+#>10	byte&0x07	=0x06		128 colors
+#>10	byte&0x07	=0x07		256 colors
+
+# ITC (CMU WM) raster files.  It is essentially a byte-reversed Sun raster,
+# 1 plane, no encoding.
+0	string		\361\0\100\273	CMU window manager raster image data
+>4	lelong		>0		%d x
+>8	lelong		>0		%d,
+>12	lelong		>0		%d-bit
+
+# Magick Image File Format
+0	string		id=ImageMagick	MIFF image data
+
+# Artisan
+0	long		1123028772	Artisan image data
+>4	long		1		\b, rectangular 24-bit
+>4	long		2		\b, rectangular 8-bit with colormap
+>4	long		3		\b, rectangular 32-bit (24-bit with matte)
+
+# FIG (Facility for Interactive Generation of figures), an object-based format
+0	search/1	#FIG		FIG image text
+>5	string		x		\b, version %.3s
+
+# PHIGS
+0	string		ARF_BEGARF		PHIGS clear text archive
+0	string		@(#)SunPHIGS		SunPHIGS
+# version number follows, in the form m.n
+>40	string		SunBin			binary
+>32	string		archive			archive
+
+# GKS (Graphics Kernel System)
+0	string		GKSM		GKS Metafile
+>24	string		SunGKS		\b, SunGKS
+
+# CGM image files
+0	string		BEGMF		clear text Computer Graphics Metafile
+
+# MGR bitmaps  (Michael Haardt, u31b3hs@pool.informatik.rwth-aachen.de)
+0	string	yz	MGR bitmap, modern format, 8-bit aligned
+0	string	zz	MGR bitmap, old format, 1-bit deep, 16-bit aligned
+0	string	xz	MGR bitmap, old format, 1-bit deep, 32-bit aligned
+0	string	yx	MGR bitmap, modern format, squeezed
+
+# Fuzzy Bitmap (FBM) images
+0	string		%bitmap\0	FBM image data
+>30	long		0x31		\b, mono
+>30	long		0x33		\b, color
+
+# facsimile data
+1	string		PC\ Research,\ Inc	group 3 fax data
+>29	byte		0		\b, normal resolution (204x98 DPI)
+>29	byte		1		\b, fine resolution (204x196 DPI)
+# From: Herbert Rosmanith <herp@wildsau.idv.uni.linz.at>
+0	string		Sfff		structured fax file
+
+
+# PC bitmaps (OS/2, Windows BMP files)  (Greg Roelofs, newt@uchicago.edu)
+0	string		BM
+>14	leshort		12		PC bitmap, OS/2 1.x format
+!:mime	image/x-ms-bmp
+>>18	leshort		x		\b, %d x
+>>20	leshort		x		%d
+>14	leshort		64		PC bitmap, OS/2 2.x format
+!:mime	image/x-ms-bmp
+>>18	leshort		x		\b, %d x
+>>20	leshort		x		%d
+>14	leshort		40		PC bitmap, Windows 3.x format
+!:mime	image/x-ms-bmp
+>>18	lelong		x		\b, %d x
+>>22	lelong		x		%d x
+>>28	leshort		x		%d
+>14	leshort		128		PC bitmap, Windows NT/2000 format
+!:mime	image/x-ms-bmp
+>>18	lelong		x		\b, %d x
+>>22	lelong		x		%d x
+>>28	leshort		x		%d
+# Too simple - MPi
+#0	string		IC		PC icon data
+#0	string		PI		PC pointer image data
+#0	string		CI		PC color icon data
+#0	string		CP		PC color pointer image data
+# Conflicts with other entries [BABYL]
+#0	string		BA		PC bitmap array data
+
+# XPM icons (Greg Roelofs, newt@uchicago.edu)
+# note possible collision with C/REXX entry in c-lang; currently commented out
+0	search/1	/*\ XPM\ */	X pixmap image text
+
+# Utah Raster Toolkit RLE images (janl@ifi.uio.no)
+0	leshort		0xcc52		RLE image data,
+>6	leshort		x		%d x
+>8	leshort		x		%d
+>2	leshort		>0		\b, lower left corner: %d
+>4	leshort		>0		\b, lower right corner: %d
+>10	byte&0x1	=0x1		\b, clear first
+>10	byte&0x2	=0x2		\b, no background
+>10	byte&0x4	=0x4		\b, alpha channel
+>10	byte&0x8	=0x8		\b, comment
+>11	byte		>0		\b, %d color channels
+>12	byte		>0		\b, %d bits per pixel
+>13	byte		>0		\b, %d color map channels
+
+# image file format (Robert Potter, potter@cs.rochester.edu)
+0	string		Imagefile\ version-	iff image data
+# this adds the whole header (inc. version number), informative but longish
+>10	string		>\0		%s
+
+# Sun raster images, from Daniel Quinlan (quinlan@yggdrasil.com)
+0	belong		0x59a66a95	Sun raster image data
+>4	belong		>0		\b, %d x
+>8	belong		>0		%d,
+>12	belong		>0		%d-bit,
+#>16	belong		>0		%d bytes long,
+>20	belong		0		old format,
+#>20	belong		1		standard,
+>20	belong		2		compressed,
+>20	belong		3		RGB,
+>20	belong		4		TIFF,
+>20	belong		5		IFF,
+>20	belong		0xffff		reserved for testing,
+>24	belong		0		no colormap
+>24	belong		1		RGB colormap
+>24	belong		2		raw colormap
+#>28	belong		>0		colormap is %d bytes long
+
+# SGI image file format, from Daniel Quinlan (quinlan@yggdrasil.com)
+#
+# See
+#	http://reality.sgi.com/grafica/sgiimage.html
+#
+0	beshort		474		SGI image data
+#>2	byte		0		\b, verbatim
+>2	byte		1		\b, RLE
+#>3	byte		1		\b, normal precision
+>3	byte		2		\b, high precision
+>4	beshort		x		\b, %d-D
+>6	beshort		x		\b, %d x
+>8	beshort		x		%d
+>10	beshort		x		\b, %d channel
+>10	beshort		!1		\bs
+>80	string		>0		\b, "%s"
+
+0	string		IT01		FIT image data
+>4	belong		x		\b, %d x
+>8	belong		x		%d x
+>12	belong		x		%d
+#
+0	string		IT02		FIT image data
+>4	belong		x		\b, %d x
+>8	belong		x		%d x
+>12	belong		x		%d
+#
+2048	string		PCD_IPI		Kodak Photo CD image pack file
+>0xe02	byte&0x03	0x00		, landscape mode
+>0xe02	byte&0x03	0x01		, portrait mode
+>0xe02	byte&0x03	0x02		, landscape mode
+>0xe02	byte&0x03	0x03		, portrait mode
+0	string		PCD_OPA		Kodak Photo CD overview pack file
+
+# FITS format.  Jeff Uphoff <juphoff@tarsier.cv.nrao.edu>
+# FITS is the Flexible Image Transport System, the de facto standard for
+# data and image transfer, storage, etc., for the astronomical community.
+# (FITS floating point formats are big-endian.)
+0	string	SIMPLE\ \ =	FITS image data
+>109	string	8		\b, 8-bit, character or unsigned binary integer
+>108	string	16		\b, 16-bit, two's complement binary integer
+>107	string	\ 32		\b, 32-bit, two's complement binary integer
+>107	string	-32		\b, 32-bit, floating point, single precision
+>107	string	-64		\b, 64-bit, floating point, double precision
+
+# other images
+0	string	This\ is\ a\ BitMap\ file	Lisp Machine bit-array-file
+
+# From SunOS 5.5.1 "/etc/magic" - appeared right before Sun raster image
+# stuff.
+#
+0	beshort		0x1010		PEX Binary Archive
+
+# DICOM medical imaging data
+128	string	DICM			DICOM medical imaging data
+!:mime	application/dicom
+
+# XWD - X Window Dump file.
+#   As described in /usr/X11R6/include/X11/XWDFile.h
+#   used by the xwd program.
+#   Bradford Castalia, idaeim, 1/01
+#   updated by Adam Buchbinder, 2/09
+# The following assumes version 7 of the format; the first long is the length
+# of the header, which is at least 25 4-byte longs, and the one at offset 8
+# is a constant which is always either 1 or 2. Offset 12 is the pixmap depth,
+# which is a maximum of 32.
+0	belong	>100
+>8	belong	<3
+>>12	belong	<33
+>>>4	belong	7			XWD X Window Dump image data
+!:mime	image/x-xwindowdump
+>>>>100	string	>\0			\b, "%s"
+>>>>16	belong	x			\b, %dx
+>>>>20	belong	x			\b%dx
+>>>>12	belong	x			\b%d
+
+# PDS - Planetary Data System
+#   These files use Parameter Value Language in the header section.
+#   Unfortunately, there is no certain magic, but the following
+#   strings have been found to be most likely.
+0	string	NJPL1I00		PDS (JPL) image data
+2	string	NJPL1I			PDS (JPL) image data
+0	string	CCSD3ZF			PDS (CCSD) image data
+2	string	CCSD3Z			PDS (CCSD) image data
+0	string	PDS_			PDS image data
+0	string	LBLSIZE=		PDS (VICAR) image data
+
+# pM8x: ATARI STAD compressed bitmap format
+#
+# from Oskar Schirmer <schirmer@scara.com> Feb 2, 2001
+# p M 8 5/6 xx yy zz data...
+# Atari ST STAD bitmap is always 640x400, bytewise runlength compressed.
+# bytes either run horizontally (pM85) or vertically (pM86). yy is the
+# most frequent byte, xx and zz are runlength escape codes, where xx is
+# used for runs of yy.
+#
+0	string	pM85		Atari ST STAD bitmap image data (hor)
+>5	byte	0x00		(white background)
+>5	byte	0xFF		(black background)
+0	string	pM86		Atari ST STAD bitmap image data (vert)
+>5	byte	0x00		(white background)
+>5	byte	0xFF		(black background)
+
+# Gürkan Sengün <gurkan@linuks.mine.nu>, www.linuks.mine.nu
+# http://www.atarimax.com/jindroush.atari.org/afmtatr.html
+0	leshort	0x0296		Atari ATR image
+
+# XXX:
+# This is bad magic 0x5249 == 'RI' conflicts with RIFF and other
+# magic.
+# SGI RICE image file <mpruett@sgi.com>
+#0	beshort	0x5249		RICE image
+#>2	beshort	x		v%d
+#>4	beshort	x		(%d x
+#>6	beshort	x		%d)
+#>8	beshort	0		8 bit
+#>8	beshort	1		10 bit
+#>8	beshort	2		12 bit
+#>8	beshort	3		13 bit
+#>10	beshort	0		4:2:2
+#>10	beshort	1		4:2:2:4
+#>10	beshort	2		4:4:4
+#>10	beshort	3		4:4:4:4
+#>12	beshort	1		RGB
+#>12	beshort	2		CCIR601
+#>12	beshort	3		RP175
+#>12	beshort	4		YUV
+
+#------------------------------------------------------------------------------
+#
+# Marco Schmidt (marcoschmidt@users.sourceforge.net) -- an image  file format
+# for the EPOC operating system, which is used with PDAs like those from Psion
+#
+# see http://huizen.dds.nl/~frodol/psiconv/html/Index.html for a description
+# of various EPOC file formats
+
+0	string \x37\x00\x00\x10\x42\x00\x00\x10\x00\x00\x00\x00\x39\x64\x39\x47 EPOC MBM image file
+
+# PCX image files
+# From: Dan Fandrich <dan@coneharvesters.com>
+0	beshort		0x0a00	PCX ver. 2.5 image data
+0	beshort		0x0a02	PCX ver. 2.8 image data, with palette
+0	beshort		0x0a03	PCX ver. 2.8 image data, without palette
+0	beshort		0x0a04	PCX for Windows image data
+0	beshort		0x0a05	PCX ver. 3.0 image data
+>4	leshort		x      bounding box [%hd,
+>6	leshort		x      %hd] -
+>8	leshort		x      [%hd,
+>10	leshort		x      %hd],
+>65	byte		>1	%d planes each of
+>3	byte		x	%hhd-bit
+>68	byte		0	image,
+>68	byte		1	colour,
+>68	byte		2	grayscale,
+>68	byte		>2	image,
+>68	byte		<0	image,
+>12	leshort		>0	%hd x
+>>14	leshort		x      %hd dpi,
+>2	byte		0	uncompressed
+>2	byte		1	RLE compressed
+
+# Adobe Photoshop
+# From: Asbjoern Sloth Toennesen <asbjorn@lila.io>
+0	string		8BPS Adobe Photoshop Image
+!:mime	image/vnd.adobe.photoshop
+>4   beshort 2 (PSB)
+>18  belong  x \b, %d x
+>14  belong  x %d,
+>24  beshort 0 bitmap
+>24  beshort 1 grayscale
+>>12 beshort 2 with alpha
+>24  beshort 2 indexed
+>24  beshort 3 RGB
+>>12 beshort 4 \bA
+>24  beshort 4 CMYK
+>>12 beshort 5 \bA
+>24  beshort 7 multichannel
+>24  beshort 8 duotone
+>24  beshort 9 lab
+>12  beshort > 1
+>>12  beshort x \b, %dx
+>12  beshort 1 \b,
+>22  beshort x %d-bit channel
+>12  beshort > 1 \bs
+
+# XV thumbnail indicator (ThMO)
+0	string		P7\ 332		XV thumbnail image data
+
+# NITF is defined by United States MIL-STD-2500A
+0	string	NITF	National Imagery Transmission Format
+>25	string	>\0	dated %.14s
+
+# GEM Image: Version 1, Headerlen 8 (Wolfram Kleff)
+0	belong		0x00010008	GEM Image data
+>12	beshort		x		%d x
+>14	beshort		x		%d,
+>4	beshort		x		%d planes,
+>8	beshort		x		%d x
+>10	beshort		x		%d pixelsize
+
+# GEM Metafile (Wolfram Kleff)
+0	lelong		0x0018FFFF	GEM Metafile data
+>4	leshort		x		version %d
+
+#
+# SMJPEG. A custom Motion JPEG format used by Loki Entertainment
+# Software Torbjorn Andersson <d91tan@Update.UU.SE>.
+#
+0	string	\0\nSMJPEG	SMJPEG
+>8	belong	x		%d.x data
+# According to the specification you could find any number of _TXT
+# headers here, but I can't think of any way of handling that. None of
+# the SMJPEG files I tried it on used this feature. Even if such a
+# file is encountered the output should still be reasonable.
+>16	string	_SND		\b,
+>>24	beshort	>0		%d Hz
+>>26	byte	8		8-bit
+>>26	byte	16		16-bit
+>>28	string	NONE		uncompressed
+# >>28	string	APCM		ADPCM compressed
+>>27	byte	1		mono
+>>28	byte	2		stereo
+# Help! Isn't there any way to avoid writing this part twice?
+>>32	string	_VID		\b,
+# >>>48	string	JFIF		JPEG
+>>>40	belong	>0		%d frames
+>>>44	beshort	>0		(%d x
+>>>46	beshort	>0		%d)
+>16	string	_VID		\b,
+# >>32	string	JFIF		JPEG
+>>24	belong	>0		%d frames
+>>28	beshort	>0		(%d x
+>>30	beshort	>0		%d)
+
+0	string	Paint\ Shop\ Pro\ Image\ File	Paint Shop Pro Image File
+
+# "thumbnail file" (icon)
+# descended from "xv", but in use by other applications as well (Wolfram Kleff)
+0       string          P7\ 332         XV "thumbnail file" (icon) data
+
+# taken from fkiss: (<yav@mte.biglobe.ne.jp> ?)
+0       string          KiSS            KISS/GS
+>4      byte            16              color
+>>5     byte            x               %d bit
+>>8     leshort         x               %d colors
+>>10    leshort         x               %d groups
+>4      byte            32              cell
+>>5     byte            x               %d bit
+>>8     leshort         x               %d x
+>>10    leshort         x               %d
+>>12    leshort         x               +%d
+>>14    leshort         x               +%d
+
+# Webshots (www.webshots.com), by John Harrison
+0       string          C\253\221g\230\0\0\0 Webshots Desktop .wbz file
+
+# Hercules DASD image files
+# From Jan Jaeger <jj@septa.nl>
+0       string  CKD_P370        Hercules CKD DASD image file
+>8      long    x               \b, %d heads per cylinder
+>12     long    x               \b, track size %d bytes
+>16     byte    x               \b, device type 33%2.2X
+
+0       string  CKD_C370        Hercules compressed CKD DASD image file
+>8      long    x               \b, %d heads per cylinder
+>12     long    x               \b, track size %d bytes
+>16     byte    x               \b, device type 33%2.2X
+
+0       string  CKD_S370        Hercules CKD DASD shadow file
+>8      long    x               \b, %d heads per cylinder
+>12     long    x               \b, track size %d bytes
+>16     byte    x               \b, device type 33%2.2X
+
+# Squeak images and programs - etoffi@softhome.net
+0	string		\146\031\0\0	Squeak image data
+0	search/1	'From\040Squeak	Squeak program text
+
+# partimage: file(1) magic for PartImage files (experimental, incomplete)
+# Author: Hans-Joachim Baader <hjb@pro-linux.de>
+0		string	PaRtImAgE-VoLuMe	PartImage
+>0x0020		string	0.6.1		file version %s
+>>0x0060	lelong	>-1		volume %ld
+#>>0x0064 8 byte identifier
+#>>0x007c reserved
+>>0x0200	string	>\0		type %s
+>>0x1400	string	>\0		device %s,
+>>0x1600	string	>\0		original filename %s,
+# Some fields omitted
+>>0x2744	lelong	0		not compressed
+>>0x2744	lelong	1		gzip compressed
+>>0x2744	lelong	2		bzip2 compressed
+>>0x2744	lelong	>2		compressed with unknown algorithm
+>0x0020		string	>0.6.1		file version %s
+>0x0020		string	<0.6.1		file version %s
+
+# DCX is multi-page PCX, using a simple header of up to 1024
+# offsets for the respective PCX components.
+# From: Joerg Wunsch <joerg_wunsch@uriah.heep.sax.de>
+0	lelong	987654321	DCX multi-page PCX image data
+
+# Simon Walton <simonw@matteworld.com>
+# Kodak Cineon format for scanned negatives
+# http://www.kodak.com/US/en/motion/support/dlad/
+0	lelong  0xd75f2a80	Cineon image data
+>200	belong  >0		\b, %ld x
+>204	belong  >0		%ld
+
+
+# Bio-Rad .PIC is an image format used by microscope control systems
+# and related image processing software used by biologists.
+# From: Vebjorn Ljosa <vebjorn@ljosa.com>
+# BOOL values are two-byte integers; use them to rule out false positives.
+# http://web.archive.org/web/20050317223257/www.cs.ubc.ca/spider/ladic/text/biorad.txt
+# Samples: http://www.loci.wisc.edu/software/sample-data
+14	leshort <2
+>62	leshort <2
+>>54	leshort 12345		Bio-Rad .PIC Image File
+>>>0	leshort >0		%hd x
+>>>2	leshort >0		%hd,
+>>>4	leshort =1		1 image in file
+>>>4	leshort >1		%hd images in file
+
+# From Jan "Yenya" Kasprzak <kas@fi.muni.cz>
+# The description of *.mrw format can be found at
+# http://www.dalibor.cz/minolta/raw_file_format.htm
+0	string	\000MRM			Minolta Dimage camera raw image data
+
+# Summary: DjVu image / document
+# Extension: .djvu
+# Reference: http://djvu.org/docs/DjVu3Spec.djvu
+# Submitted by: Stephane Loeuillet <stephane.loeuillet@tiscali.fr>
+# Modified by (1): Abel Cheung <abelcheung@gmail.com>
+0	string	AT&TFORM
+>12	string	DJVM		DjVu multiple page document
+!:mime	image/vnd.djvu
+>12	string	DJVU		DjVu image or single page document
+!:mime	image/vnd.djvu
+>12	string	DJVI		DjVu shared document
+!:mime	image/vnd.djvu
+>12	string	THUM		DjVu page thumbnails
+!:mime	image/vnd.djvu
+
+
+# From Marc Espie
+0	lelong	20000630		OpenEXR image data
+
+# From: Tom Hilinski <tom.hilinski@comcast.net>
+# http://www.unidata.ucar.edu/packages/netcdf/
+0	string	CDF\001			NetCDF Data Format data
+
+#-----------------------------------------------------------------------
+# Hierarchical Data Format, used to facilitate scientific data exchange
+# specifications at http://hdf.ncsa.uiuc.edu/
+0	belong	0x0e031301	Hierarchical Data Format (version 4) data
+!:mime	application/x-hdf
+0	string	\211HDF\r\n\032\n	Hierarchical Data Format (version 5) data
+!:mime	application/x-hdf
+
+# From: Tobias Burnus <burnus@net-b.de>
+# Xara (for a while: Corel Xara) is a graphic package, see
+# http://www.xara.com/ for Windows and as GPL application for Linux
+0	string	XARA\243\243	Xara graphics file
+
+# http://www.cartesianinc.com/Tech/
+0	string	CPC\262		Cartesian Perceptual Compression image
+!:mime	image/x-cpi
+
+# From Albert Cahalan <acahalan@gmail.com>
+# puredigital used it for the CVS disposable camcorder
+#8       lelong  4       ZBM bitmap image data
+#>4      leshort x       %u x
+#>6      leshort x       %u
+
+# From Albert Cahalan <acahalan@gmail.com>
+# uncompressed 5:6:5 HighColor image for OLPC XO firmware icons
+0       string C565     OLPC firmware icon image data
+>4      leshort x       %u x
+>6      leshort x       %u
+
+# Applied Images - Image files from Cytovision
+# Gustavo Junior Alves <gjalves@gjalves.com.br>
+0	string	\xce\xda\xde\xfa	Cytovision Metaphases file
+0	string	\xed\xad\xef\xac	Cytovision Karyotype file
+0	string	\x0b\x00\x03\x00	Cytovision FISH Probe file
+0	string	\xed\xfe\xda\xbe	Cytovision FLEX file
+0	string	\xed\xab\xed\xfe	Cytovision FLEX file
+0	string	\xad\xfd\xea\xad	Cytovision RATS file
+
+# Wavelet Scalar Quantization format used in gray-scale fingerprint images
+# From Tano M Fotang <mfotang@quanteq.com>
+0	string	\xff\xa0\xff\xa8\x00	Wavelet Scalar Quantization image data
+
+# JPEG 2000 Code Stream Bitmap
+# From Petr Splichal <psplicha@redhat.com>
+0	string	\xFF\x4F\xFF\x51\x00	JPEG-2000 Code Stream Bitmap data
+
+# From: Rick Richardson <rick.richardson@comcast.net>
+0	string	GARMIN\ BITMAP\ 01	Garmin Bitmap file
+
+# Type:	Ulead Photo Explorer5 (.pe5)
+# URL:	http://www.jisyo.com/cgibin/view.cgi?EXT=pe5 (Japanese)
+# From:	Simon Horman <horms@debian.org>
+0	string	IIO2H			Ulead Photo Explorer5
+
+# Type:	X11 cursor
+# URL:	http://webcvs.freedesktop.org/mime/shared-mime-info/freedesktop.org.xml.in?view=markup
+# From:	Mathias Brodala <info@noctus.net>
+0	string	Xcur			X11 cursor
+
+# Type:	Olympus ORF raw images.
+# URL:	http://libopenraw.freedesktop.org/wiki/Olympus_ORF
+# From:	Adam Buchbinder <adam.buchbinder@gmail.com>
+0	string		MMOR		Olympus ORF raw image data, big-endian
+!:mime	image/x-olympus-orf
+0	string		IIRO		Olympus ORF raw image data, little-endian
+!:mime	image/x-olympus-orf
+0	string		IIRS		Olympus ORF raw image data, little-endian
+!:mime	image/x-olympus-orf
+
+# Type: files used in modern AVCHD camcoders to store clip information
+# Extension: .cpi
+# From: Alexander Danilov <alexander.a.danilov@gmail.com>
+0	string	HDMV0100	AVCHD Clip Information
+
+# From: Adam Buchbinder <adam.buchbinder@gmail.com>
+# URL: http://local.wasp.uwa.edu.au/~pbourke/dataformats/pic/
+# Radiance HDR; usually has .pic or .hdr extension.
+0	string	#?RADIANCE\n	Radiance HDR image data
+#!mime	image/vnd.radiance
+
+# From: Adam Buchbinder <adam.buchbinder@gmail.com>
+# URL: http://www.mpi-inf.mpg.de/resources/pfstools/pfs_format_spec.pdf
+# Used by the pfstools packages. The regex matches for the image size could
+# probably use some work. The MIME type is made up; if there's one in
+# actual common use, it should replace the one below.
+0	string	PFS1\x0a	PFS HDR image data
+#!mime	image/x-pfs
+>1	regex	[0-9]*\ 		\b, %s
+>>1	regex	\ [0-9]{4}		\bx%s
+
+# Type: Foveon X3F
+# URL:  http://www.photofo.com/downloads/x3f-raw-format.pdf
+# From: Adam Buchbinder <adam.buchbinder@gmail.com>
+# Note that the MIME type isn't defined anywhere that I can find; if
+# there's a canonical type for this format, it should replace this one.
+0	string	FOVb	Foveon X3F raw image data
+!:mime	image/x-x3f
+>6	leshort	x	\b, version %d.
+>4	leshort	x	\b%d
+>28	lelong	x	\b, %dx
+>32	lelong	x	\b%d
+
+# Paint.NET file
+# From Adam Buchbinder <adam.buchbinder@gmail.com>
+0	string	PDN3	Paint.NET image data
+!:mime	image/x-paintnet
+
+# Not really an image.
+# From: "Tano M. Fotang" <mfotang@quanteq.com>
+0	string	\x46\x4d\x52\x00	ISO/IEC 19794-2 Format Minutiae Record (FMR)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/inform b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/inform
new file mode 100755
index 0000000000000000000000000000000000000000..fe518ece91600dbd7908ee0f7ee9eee4b19fdc6f
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/inform
@@ -0,0 +1,9 @@
+
+#------------------------------------------------------------------------------
+# $File: inform,v 1.5 2009/09/19 16:28:09 christos Exp $
+# inform:  file(1) magic for Inform interactive fiction language
+
+# URL:  http://www.inform-fiction.org/
+# From: Reuben Thomas <rrt@sc3d.org>
+
+0	search/100/cW	constant\ story		Inform source text
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/intel b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/intel
new file mode 100755
index 0000000000000000000000000000000000000000..47812a0ea3512da6d275e4b4c867d0b4ffb4970c
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/intel
@@ -0,0 +1,53 @@
+
+#------------------------------------------------------------------------------
+# $File: intel,v 1.10 2011/03/30 19:51:00 christos Exp $
+# intel:  file(1) magic for x86 Unix
+#
+# Various flavors of x86 UNIX executable/object (other than Xenix, which
+# is in "microsoft").  DOS is in "msdos"; the ambitious soul can do
+# Windows as well.
+#
+# Windows NT belongs elsewhere, as you need x86 and MIPS and Alpha and
+# whatever comes next (HP-PA Hummingbird?).  OS/2 may also go elsewhere
+# as well, if, as, and when IBM makes it portable.
+#
+# The `versions' should be un-commented if they work for you.
+# (Was the problem just one of endianness?)
+#
+0	leshort		0502		basic-16 executable
+>12	lelong		>0		not stripped
+#>22	leshort		>0		- version %ld
+0	leshort		0503		basic-16 executable (TV)
+>12	lelong		>0		not stripped
+#>22	leshort		>0		- version %ld
+0	leshort		0510		x86 executable
+>12	lelong		>0		not stripped
+0	leshort		0511		x86 executable (TV)
+>12	lelong		>0		not stripped
+0	leshort		=0512		iAPX 286 executable small model (COFF)
+>12	lelong		>0		not stripped
+#>22	leshort		>0		- version %ld
+0	leshort		=0522		iAPX 286 executable large model (COFF)
+>12	lelong		>0		not stripped
+#>22	leshort		>0		- version %ld
+# SGI labeled the next entry as "iAPX 386 executable" --Dan Quinlan
+0	leshort		=0514		80386 COFF executable
+>12	lelong		>0		not stripped
+>22	leshort		>0		- version %ld
+
+# rom: file(1) magic for BIOS ROM Extensions found in intel machines
+#      mapped into memory between 0xC0000 and 0xFFFFF
+# From Gürkan Sengün <gurkan@linuks.mine.nu>, www.linuks.mine.nu
+0        beshort         0x55AA       BIOS (ia32) ROM Ext.
+>5       string          USB          USB
+>7       string          LDR          UNDI image
+>30      string          IBM          IBM comp. Video
+>26      string          Adaptec      Adaptec
+>28      string          Adaptec      Adaptec
+>42      string          PROMISE      Promise
+>2       byte            x            (%d*512)
+
+# Flash descriptors for Intel SPI flash roms.
+# From Dr. Jesus <j@hug.gs>
+0	lelong		0x0ff0a55a	Intel serial flash for ICH/PCH ROM <= 5 or 3400 series A-step
+16	lelong		0x0ff0a55a	Intel serial flash for PCH ROM
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/interleaf b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/interleaf
new file mode 100755
index 0000000000000000000000000000000000000000..8e3aaf57da5e0a7e8ba402ff89adce6e92b22be0
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/interleaf
@@ -0,0 +1,9 @@
+
+#------------------------------------------------------------------------------
+# $File: interleaf,v 1.10 2009/09/19 16:28:10 christos Exp $
+# interleaf:  file(1) magic for InterLeaf TPS:
+#
+0	string		=\210OPS	Interleaf saved data
+0	string		=<!OPS		Interleaf document text
+>5	string		,\ Version\ =	\b, version
+>>17	string		>\0		%.3s
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/island b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/island
new file mode 100755
index 0000000000000000000000000000000000000000..f40521a0367f6578b23170aa53d0f70b81e0ee50
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/island
@@ -0,0 +1,10 @@
+
+#------------------------------------------------------------------------------
+# $File: island,v 1.5 2009/09/19 16:28:10 christos Exp $
+# island:  file(1) magic for IslandWite/IslandDraw, from SunOS 5.5.1
+# "/etc/magic":
+# From: guy@netapp.com (Guy Harris)
+#
+4	string		pgscriptver	IslandWrite document
+13	string		DrawFile	IslandDraw document
+
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ispell b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ispell
new file mode 100755
index 0000000000000000000000000000000000000000..57a6e9e78988db3ddb431ee9efd2dd2ddf442d60
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ispell
@@ -0,0 +1,63 @@
+
+#------------------------------------------------------------------------------
+# $File: ispell,v 1.8 2009/09/19 16:28:10 christos Exp $
+# ispell:  file(1) magic for ispell
+#
+# Ispell 3.0 has a magic of 0x9601 and ispell 3.1 has 0x9602.  This magic
+# will match 0x9600 through 0x9603 in *both* little endian and big endian.
+# (No other current magic entries collide.)
+#
+# Updated by Daniel Quinlan (quinlan@yggdrasil.com)
+#
+0	leshort&0xFFFC	0x9600		little endian ispell
+>0	byte		0		hash file (?),
+>0	byte		1		3.0 hash file,
+>0	byte		2		3.1 hash file,
+>0	byte		3		hash file (?),
+>2	leshort		0x00		8-bit, no capitalization, 26 flags
+>2	leshort		0x01		7-bit, no capitalization, 26 flags
+>2	leshort		0x02		8-bit, capitalization, 26 flags
+>2	leshort		0x03		7-bit, capitalization, 26 flags
+>2	leshort		0x04		8-bit, no capitalization, 52 flags
+>2	leshort		0x05		7-bit, no capitalization, 52 flags
+>2	leshort		0x06		8-bit, capitalization, 52 flags
+>2	leshort		0x07		7-bit, capitalization, 52 flags
+>2	leshort		0x08		8-bit, no capitalization, 128 flags
+>2	leshort		0x09		7-bit, no capitalization, 128 flags
+>2	leshort		0x0A		8-bit, capitalization, 128 flags
+>2	leshort		0x0B		7-bit, capitalization, 128 flags
+>2	leshort		0x0C		8-bit, no capitalization, 256 flags
+>2	leshort		0x0D		7-bit, no capitalization, 256 flags
+>2	leshort		0x0E		8-bit, capitalization, 256 flags
+>2	leshort		0x0F		7-bit, capitalization, 256 flags
+>4	leshort		>0		and %d string characters
+0	beshort&0xFFFC	0x9600		big endian ispell
+>1	byte		0		hash file (?),
+>1	byte		1		3.0 hash file,
+>1	byte		2		3.1 hash file,
+>1	byte		3		hash file (?),
+>2	beshort		0x00		8-bit, no capitalization, 26 flags
+>2	beshort		0x01		7-bit, no capitalization, 26 flags
+>2	beshort		0x02		8-bit, capitalization, 26 flags
+>2	beshort		0x03		7-bit, capitalization, 26 flags
+>2	beshort		0x04		8-bit, no capitalization, 52 flags
+>2	beshort		0x05		7-bit, no capitalization, 52 flags
+>2	beshort		0x06		8-bit, capitalization, 52 flags
+>2	beshort		0x07		7-bit, capitalization, 52 flags
+>2	beshort		0x08		8-bit, no capitalization, 128 flags
+>2	beshort		0x09		7-bit, no capitalization, 128 flags
+>2	beshort		0x0A		8-bit, capitalization, 128 flags
+>2	beshort		0x0B		7-bit, capitalization, 128 flags
+>2	beshort		0x0C		8-bit, no capitalization, 256 flags
+>2	beshort		0x0D		7-bit, no capitalization, 256 flags
+>2	beshort		0x0E		8-bit, capitalization, 256 flags
+>2	beshort		0x0F		7-bit, capitalization, 256 flags
+>4	beshort		>0		and %d string characters
+# ispell 4.0 hash files  kromJx <kromJx@crosswinds.net>
+# Ispell 4.0
+0       string          ISPL            ispell
+>4      long            x               hash file version %d,
+>8      long            x               lexletters %d,
+>12     long            x               lexsize %d,
+>16     long            x               hashsize %d,
+>20     long            x               stblsize %d
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/isz b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/isz
new file mode 100755
index 0000000000000000000000000000000000000000..316bbd4acf6936c84dc105a738609514c56d93aa
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/isz
@@ -0,0 +1,15 @@
+
+#------------------------------------------------------------------------------
+# $File: isz,v 1.1 2010/03/27 16:17:09 christos Exp $
+# ISO Zipped file format 
+# http://www.ezbsystems.com/isz/iszspec.txt
+0	string	IsZ!	ISO Zipped file
+>4	byte	x	\b, header size %u
+>5	byte	x	\b, version %u
+>8	lelong	x	\b, serial %u
+#12	leshort	x	\b, sector size %u
+#>16	lelong	x	\b, total sectors %u
+>17	byte	>0	\b, password protected
+#>24	lequad	x	\b, segment size %llu
+#>32	lelong	x	\b, blocks %u
+#>36	lelong	x	\b, block size %u
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/java b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/java
new file mode 100755
index 0000000000000000000000000000000000000000..9d8b488e0f2d4f1cede1a55a3281765dbdf1e96a
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/java
@@ -0,0 +1,26 @@
+
+#------------------------------------------------------------
+# $File: java,v 1.12 2009/09/19 16:28:10 christos Exp $
+# Java ByteCode and Mach-O binaries (e.g., Mac OS X) use the
+# same magic number, 0xcafebabe, so they are both handled
+# in the entry called "cafebabe".
+#------------------------------------------------------------
+# Java serialization
+# From Martin Pool (m.pool@pharos.com.au)
+0	beshort		0xaced		Java serialization data
+>2	beshort		>0x0004		\b, version %d
+
+0	belong		0xfeedfeed	Java KeyStore
+!:mime	application/x-java-keystore
+0	belong		0xcececece	Java JCE KeyStore
+!:mime	application/x-java-jce-keystore
+
+# Dalvik .dex format. http://retrodev.com/android/dexformat.html
+# From <mkf@google.com> "Mike Fleming"
+0	string	dex\n
+>0	regex	dex\n[0-9][0-9][0-9]\0	Dalvik dex file
+>4	string	>000			version %s
+0	string	dey\n
+>0	regex	dey\n[0-9][0-9][0-9]\0	Dalvik dex file (optimized for host)
+>4	string	>000			version %s
+
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/jpeg b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/jpeg
new file mode 100755
index 0000000000000000000000000000000000000000..7814245add34caefac740f32bf833547fb0d15ec
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/jpeg
@@ -0,0 +1,161 @@
+
+#------------------------------------------------------------------------------
+# $File: jpeg,v 1.16 2011/01/04 19:29:32 rrt Exp $
+# JPEG images
+# SunOS 5.5.1 had
+#
+#	0	string		\377\330\377\340	JPEG file
+#	0	string		\377\330\377\356	JPG file
+#
+# both of which turn into "JPEG image data" here.
+#
+0	beshort		0xffd8		JPEG image data
+!:mime	image/jpeg
+!:apple	8BIMJPEG
+!:strength +1
+>6	string		JFIF		\b, JFIF standard
+# The following added by Erik Rossen <rossen@freesurf.ch> 1999-09-06
+# in a vain attempt to add image size reporting for JFIF.  Note that these
+# tests are not fool-proof since some perfectly valid JPEGs are currently
+# impossible to specify in magic(4) format.
+# First, a little JFIF version info:
+>>11	byte		x		\b %d.
+>>12	byte		x		\b%02d
+# Next, the resolution or aspect ratio of the image:
+#>>13	byte		0		\b, aspect ratio
+#>>13	byte		1		\b, resolution (DPI)
+#>>13	byte		2		\b, resolution (DPCM)
+#>>4	beshort		x		\b, segment length %d
+# Next, show thumbnail info, if it exists:
+>>18	byte		!0		\b, thumbnail %dx
+>>>19	byte		x		\b%d
+
+# EXIF moved down here to avoid reporting a bogus version number,
+# and EXIF version number printing added.
+#   - Patrik R=E5dman <patrik+file-magic@iki.fi>
+>6	string		Exif		\b, EXIF standard
+# Look for EXIF IFD offset in IFD 0, and then look for EXIF version tag in EXIF IFD.
+# All possible combinations of entries have to be enumerated, since no looping
+# is possible. And both endians are possible...
+# The combinations included below are from real-world JPEGs.
+# Little-endian
+>>12	string		II		
+# IFD 0 Entry #5:
+>>>70	leshort		0x8769          
+# EXIF IFD Entry #1:
+>>>>(78.l+14)	leshort	0x9000		
+>>>>>(78.l+23)	byte	x		%c
+>>>>>(78.l+24)	byte	x		\b.%c
+>>>>>(78.l+25)	byte	!0x30		\b%c
+# IFD 0 Entry #9:
+>>>118	leshort		0x8769          
+# EXIF IFD Entry #3:
+>>>>(126.l+38)	leshort	0x9000		
+>>>>>(126.l+47)	byte	x		%c
+>>>>>(126.l+48)	byte	x		\b.%c
+>>>>>(126.l+49)	byte	!0x30		\b%c
+# IFD 0 Entry #10
+>>>130	leshort		0x8769          
+# EXIF IFD Entry #3:
+>>>>(138.l+38)	leshort	0x9000		
+>>>>>(138.l+47)	byte	x		%c
+>>>>>(138.l+48)	byte	x		\b.%c
+>>>>>(138.l+49)	byte	!0x30		\b%c
+# EXIF IFD Entry #4:
+>>>>(138.l+50)	leshort	0x9000		
+>>>>>(138.l+59)	byte	x		%c
+>>>>>(138.l+60)	byte	x		\b.%c
+>>>>>(138.l+61)	byte	!0x30		\b%c
+# EXIF IFD Entry #5:
+>>>>(138.l+62)	leshort	0x9000		
+>>>>>(138.l+71)	byte	x		%c
+>>>>>(138.l+72)	byte	x		\b.%c
+>>>>>(138.l+73)	byte	!0x30		\b%c
+# IFD 0 Entry #11
+>>>142	leshort		0x8769          
+# EXIF IFD Entry #3:
+>>>>(150.l+38)	leshort	0x9000		
+>>>>>(150.l+47)	byte	x		%c
+>>>>>(150.l+48)	byte	x		\b.%c
+>>>>>(150.l+49)	byte	!0x30		\b%c
+# EXIF IFD Entry #4:
+>>>>(150.l+50)	leshort	0x9000		
+>>>>>(150.l+59)	byte	x		%c
+>>>>>(150.l+60)	byte	x		\b.%c
+>>>>>(150.l+61)	byte	!0x30		\b%c
+# EXIF IFD Entry #5:
+>>>>(150.l+62)	leshort	0x9000		
+>>>>>(150.l+71)	byte	x		%c
+>>>>>(150.l+72)	byte	x		\b.%c
+>>>>>(150.l+73)	byte	!0x30		\b%c
+# Big-endian
+>>12	string		MM		
+# IFD 0 Entry #9:
+>>>118	beshort		0x8769          
+# EXIF IFD Entry #1:
+>>>>(126.L+14)	beshort	0x9000		
+>>>>>(126.L+23)	byte	x		%c
+>>>>>(126.L+24)	byte	x		\b.%c
+>>>>>(126.L+25)	byte	!0x30		\b%c
+# EXIF IFD Entry #3:
+>>>>(126.L+38)	beshort	0x9000		
+>>>>>(126.L+47)	byte	x		%c
+>>>>>(126.L+48)	byte	x		\b.%c
+>>>>>(126.L+49)	byte	!0x30		\b%c
+# IFD 0 Entry #10
+>>>130	beshort		0x8769          
+# EXIF IFD Entry #3:
+>>>>(138.L+38)	beshort	0x9000		
+>>>>>(138.L+47)	byte	x		%c
+>>>>>(138.L+48)	byte	x		\b.%c
+>>>>>(138.L+49)	byte	!0x30		\b%c
+# EXIF IFD Entry #5:
+>>>>(138.L+62)	beshort	0x9000		
+>>>>>(138.L+71)	byte	x		%c
+>>>>>(138.L+72)	byte	x		\b.%c
+>>>>>(138.L+73)	byte	!0x30		\b%c
+# IFD 0 Entry #11
+>>>142	beshort		0x8769          
+# EXIF IFD Entry #4:
+>>>>(150.L+50)	beshort	0x9000		
+>>>>>(150.L+59)	byte	x		%c
+>>>>>(150.L+60)	byte	x		\b.%c
+>>>>>(150.L+61)	byte	!0x30		\b%c
+# Here things get sticky.  We can do ONE MORE marker segment with
+# indirect addressing, and that's all.  It would be great if we could
+# do pointer arithemetic like in an assembler language.  Christos?
+# And if there was some sort of looping construct to do searches, plus a few
+# named accumulators, it would be even more effective...
+# At least we can show a comment if no other segments got inserted before:
+>(4.S+5)	byte		0xFE		\b, comment:
+>>(4.S+6)	pstring/HJ	x		"%s"
+# Or, we can show the encoding type (I've included only the three most common)
+# and image dimensions if we are lucky and the SOFn (image segment) is here:
+>(4.S+5)	byte		0xC0		\b, baseline
+>>(4.S+6)	byte		x		\b, precision %d
+>>(4.S+7)	beshort		x		\b, %dx
+>>(4.S+9)	beshort		x		\b%d
+>(4.S+5)	byte		0xC1		\b, extended sequential
+>>(4.S+6)	byte		x		\b, precision %d
+>>(4.S+7)	beshort		x		\b, %dx
+>>(4.S+9)	beshort		x		\b%d
+>(4.S+5)	byte		0xC2		\b, progressive
+>>(4.S+6)	byte		x		\b, precision %d
+>>(4.S+7)	beshort		x		\b, %dx
+>>(4.S+9)	beshort		x		\b%d
+# I've commented-out quantisation table reporting.  I doubt anyone cares yet.
+#>(4.S+5)	byte		0xDB		\b, quantisation table
+#>>(4.S+6)	beshort		x		\b length=%d
+#>14	beshort		x		\b, %d x
+#>16	beshort		x		\b %d
+
+# HSI is Handmade Software's proprietary JPEG encoding scheme
+0	string		hsi1		JPEG image data, HSI proprietary
+
+# From: David Santinoli <david@santinoli.com>
+0	string		\x00\x00\x00\x0C\x6A\x50\x20\x20\x0D\x0A\x87\x0A	JPEG 2000 image data
+
+# Type: JPEG 2000 codesream
+# From: Mathieu Malaterre <mathieu.malaterre@gmail.com>
+0	belong		0xff4fff51						JPEG 2000 codestream
+45	beshort		0xff52
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/karma b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/karma
new file mode 100755
index 0000000000000000000000000000000000000000..007a4b74b2201b3c88ea85b60abe2cb9f9d9f833
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/karma
@@ -0,0 +1,9 @@
+
+#------------------------------------------------------------------------------
+# $File: karma,v 1.6 2009/09/19 16:28:10 christos Exp $
+# karma:  file(1) magic for Karma data files
+#
+# From <rgooch@atnf.csiro.au>
+
+0	string		KarmaRHD Version	Karma Data Structure Version
+>16	belong		x		%lu
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/kde b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/kde
new file mode 100755
index 0000000000000000000000000000000000000000..dda5819a9bad1ec8f7419a35ff2efeb76e4dafca
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/kde
@@ -0,0 +1,11 @@
+
+#------------------------------------------------------------------------------
+# $File: kde,v 1.5 2010/11/25 15:00:12 christos Exp $
+# kde:  file(1) magic for KDE
+
+0		string/t	[KDE\ Desktop\ Entry]	KDE desktop entry
+!:mime	application/x-kdelnk
+0		string/t	#\ KDE\ Config\ File	KDE config file
+!:mime	application/x-kdelnk
+0		string/t	#\ xmcd	xmcd database file for kscd
+!:mime	text/x-xmcd
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/kml b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/kml
new file mode 100755
index 0000000000000000000000000000000000000000..ed0f42ed85338c8b44957fa4e1846d82152e01c2
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/kml
@@ -0,0 +1,34 @@
+
+#------------------------------------------------------------------------------
+# $File: kml,v 1.3 2010/11/25 15:00:12 christos Exp $
+# Type: Google KML, formerly Keyhole Markup Language
+# Future development of this format has been handed
+# over to the Open Geospatial Consortium.
+# http://www.opengeospatial.org/standards/kml/
+# From: Asbjoern Sloth Toennesen <asbjorn@lila.io>
+0 string/t    \<?xml
+>20  search/400 \ xmlns= 
+>>&0 regex ['"]http://earth.google.com/kml Google KML document
+!:mime application/vnd.google-earth.kml+xml
+>>>&1 string 2.0' \b, version 2.0
+>>>&1 string 2.1' \b, version 2.1
+>>>&1 string 2.2' \b, version 2.2
+
+#------------------------------------------------------------------------------
+# Type: OpenGIS KML, formerly Keyhole Markup Language
+# This standard is maintained by the
+# Open Geospatial Consortium.
+# http://www.opengeospatial.org/standards/kml/
+# From: Asbjoern Sloth Toennesen <asbjorn@lila.io>
+>>&0 regex ['"]http://www.opengis.net/kml OpenGIS KML document
+!:mime application/vnd.google-earth.kml+xml
+>>>&1 string/t 2.2 \b, version 2.2
+
+#------------------------------------------------------------------------------
+# Type: Google KML Archive (ZIP based) 
+# http://code.google.com/apis/kml/documentation/kml_tut.html
+# From: Asbjoern Sloth Toennesen <asbjorn@lila.io>
+0 string    PK\003\004
+>4  byte    0x14
+>>30  string doc.kml Compressed Google KML Document, including resources.
+!:mime application/vnd.google-earth.kmz
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/lecter b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/lecter
new file mode 100755
index 0000000000000000000000000000000000000000..6ae87c12c0a6e1977a30f090db41c00641b0b10f
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/lecter
@@ -0,0 +1,6 @@
+
+#------------------------------------------------------------------------------
+# $File: lecter,v 1.4 2009/09/19 16:28:10 christos Exp $
+# DEC SRC Virtual Paper: Lectern files
+# Karl M. Hegbloom <karlheg@inetarena.com>
+0	string	lect	DEC SRC Virtual Paper Lectern file
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/lex b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/lex
new file mode 100755
index 0000000000000000000000000000000000000000..cc9fac5e1fa7568dbb27b458a056f6edb6cf74b4
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/lex
@@ -0,0 +1,12 @@
+
+#------------------------------------------------------------------------------
+# $File: lex,v 1.6 2009/09/19 16:28:10 christos Exp $
+# lex:  file(1) magic for lex
+#
+#	derived empirically, your offsets may vary!
+0	search/100	yyprevious	C program text (from lex)
+>3	search/1	>\0		 for %s
+# C program text from GNU flex, from Daniel Quinlan <quinlan@yggdrasil.com>
+0	search/100	generated\ by\ flex	C program text (from flex)
+# lex description file, from Daniel Quinlan <quinlan@yggdrasil.com>
+0	search/1	%{		lex description text
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/lif b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/lif
new file mode 100755
index 0000000000000000000000000000000000000000..a7a0a8abe776e01064d05c805127d05c0dc470b4
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/lif
@@ -0,0 +1,8 @@
+
+#------------------------------------------------------------------------------
+# $File: lif,v 1.8 2009/09/19 16:28:10 christos Exp $
+# lif:  file(1) magic for lif
+#
+# (Daniel Quinlan <quinlan@yggdrasil.com>)
+#
+0	beshort		0x8000		lif file
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/linux b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/linux
new file mode 100755
index 0000000000000000000000000000000000000000..9b9b86c02a30cd37f40de9dd68c03a6a2537fe93
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/linux
@@ -0,0 +1,335 @@
+
+#------------------------------------------------------------------------------
+# $File: linux,v 1.41 2011/04/20 18:57:10 christos Exp $
+# linux:  file(1) magic for Linux files
+#
+# Values for Linux/i386 binaries, from Daniel Quinlan <quinlan@yggdrasil.com>
+# The following basic Linux magic is useful for reference, but using
+# "long" magic is a better practice in order to avoid collisions.
+#
+# 2	leshort		100		Linux/i386
+# >0	leshort		0407		impure executable (OMAGIC)
+# >0	leshort		0410		pure executable (NMAGIC)
+# >0	leshort		0413		demand-paged executable (ZMAGIC)
+# >0	leshort		0314		demand-paged executable (QMAGIC)
+#
+0	lelong		0x00640107	Linux/i386 impure executable (OMAGIC)
+>16	lelong		0		\b, stripped
+0	lelong		0x00640108	Linux/i386 pure executable (NMAGIC)
+>16	lelong		0		\b, stripped
+0	lelong		0x0064010b	Linux/i386 demand-paged executable (ZMAGIC)
+>16	lelong		0		\b, stripped
+0	lelong		0x006400cc	Linux/i386 demand-paged executable (QMAGIC)
+>16	lelong		0		\b, stripped
+#
+0	string		\007\001\000	Linux/i386 object file
+>20	lelong		>0x1020		\b, DLL library
+# Linux-8086 stuff:
+0	string		\01\03\020\04	Linux-8086 impure executable
+>28	long		!0		not stripped
+0	string		\01\03\040\04	Linux-8086 executable
+>28	long		!0		not stripped
+#
+0	string		\243\206\001\0	Linux-8086 object file
+#
+0	string		\01\03\020\20	Minix-386 impure executable
+>28	long		!0		not stripped
+0	string		\01\03\040\20	Minix-386 executable
+>28	long		!0		not stripped
+# core dump file, from Bill Reynolds <bill@goshawk.lanl.gov>
+216	lelong		0421		Linux/i386 core file
+>220	string		>\0		of '%s'
+>200	lelong		>0		(signal %d)
+#
+# LILO boot/chain loaders, from Daniel Quinlan <quinlan@yggdrasil.com>
+# this can be overridden by the DOS executable (COM) entry
+2	string		LILO		Linux/i386 LILO boot/chain loader
+#
+# Linux make config build file, from Ole Aamot <oka@oka.no>
+28 	string		make\ config	Linux make config build file
+#
+# PSF fonts, from H. Peter Anvin <hpa@yggdrasil.com>
+# Updated by Adam Buchbinder <adam.buchbinder@gmail.com>
+# See: http://www.win.tue.nl/~aeb/linux/kbd/font-formats-1.html
+0	leshort		0x0436		Linux/i386 PC Screen Font v1 data,
+>2	byte&0x01	0		256 characters,
+>2	byte&0x01	!0		512 characters,
+>2	byte&0x02	0		no directory,
+>2	byte&0x02	!0		Unicode directory,
+>3	byte		>0		8x%d
+0	string		\x72\xb5\x4a\x86\x00\x00 Linux/i386 PC Screen Font v2 data,
+>16	lelong		x		%d characters,
+>12	lelong&0x01	0		no directory,
+>12	lelong&0x01	!0		Unicode directory,
+>24	lelong		x		%d
+>28	lelong		x		\bx%d
+
+# Linux swap file, from Daniel Quinlan <quinlan@yggdrasil.com>
+4086	string		SWAP-SPACE	Linux/i386 swap file
+# From: Jeff Bailey <jbailey@ubuntu.com>
+# Linux swap file with swsusp1 image, from Jeff Bailey <jbailey@ubuntu.com>
+4076	string		SWAPSPACE2S1SUSPEND	Linux/i386 swap file (new style) with SWSUSP1 image
+# From: James Hunt <james.hunt@ubuntu.com>
+4076    string          SWAPSPACE2LINHIB0001    Linux/i386 swap file (new style) (compressed hibernate)
+# according to man page of mkswap (8) March 1999
+# volume label and UUID Russell Coker
+# http://etbe.coker.com.au/2008/07/08/label-vs-uuid-vs-device/
+4086	string		SWAPSPACE2	Linux/i386 swap file (new style),
+>0x400	long		x		version %d (4K pages),
+>0x404	long		x		size %d pages,
+>1052	string		\0		no label,
+>1052	string		>\0		LABEL=%s,
+>0x40c	belong		x		UUID=%08x
+>0x410	beshort		x		\b-%04x
+>0x412	beshort		x		\b-%04x
+>0x414	beshort		x		\b-%04x
+>0x416	belong		x		\b-%08x
+>0x41a	beshort		x		\b%04x
+# From Daniel Novotny <dnovotny@redhat.com>
+# swap file for PowerPC
+65526	string		SWAPSPACE2	Linux/ppc swap file
+#
+# Linux kernel boot images, from Albert Cahalan <acahalan@cs.uml.edu>
+# and others such as Axel Kohlmeyer <akohlmey@rincewind.chemie.uni-ulm.de>
+# and Nicol�s Lichtmaier <nick@debian.org>
+# All known start with: b8 c0 07 8e d8 b8 00 90 8e c0 b9 00 01 29 f6 29
+# Linux kernel boot images (i386 arch) (Wolfram Kleff)
+514	string		HdrS		Linux kernel
+>510	leshort		0xAA55		x86 boot executable
+>>518	leshort		>0x1ff
+>>>529	byte		0		zImage,
+>>>529	byte		1		bzImage,
+>>>(526.s+0x200) string	>\0		version %s,
+>>498	leshort		1		RO-rootFS,
+>>498	leshort		0		RW-rootFS,
+>>508	leshort		>0		root_dev 0x%X,
+>>502	leshort		>0		swap_dev 0x%X,
+>>504	leshort		>0		RAMdisksize %u KB,
+>>506	leshort		0xFFFF		Normal VGA
+>>506	leshort		0xFFFE		Extended VGA
+>>506	leshort		0xFFFD		Prompt for Videomode
+>>506	leshort		>0		Video mode %d
+# This also matches new kernels, which were caught above by "HdrS".
+0		belong	0xb8c0078e	Linux kernel
+>0x1e3		string	Loading		version 1.3.79 or older
+>0x1e9		string	Loading		from prehistoric times
+
+# System.map files - Nicol�s Lichtmaier <nick@debian.org>
+8	search/1	\ A\ _text	Linux kernel symbol map text
+
+# LSM entries - Nicol�s Lichtmaier <nick@debian.org>
+0	search/1	Begin3	Linux Software Map entry text
+0	search/1	Begin4	Linux Software Map entry text (new format)
+
+# From Matt Zimmerman, enhanced for v3 by Matthew Palmer
+0	belong	0x4f4f4f4d	User-mode Linux COW file
+>4	belong	<3		\b, version %d
+>>8	string	>\0		\b, backing file %s
+>4	belong	>2		\b, version %d
+>>32	string	>\0		\b, backing file %s
+
+############################################################################
+# Linux kernel versions
+
+0		string		\xb8\xc0\x07\x8e\xd8\xb8\x00\x90	Linux
+>497		leshort		0		x86 boot sector
+>>514		belong		0x8e	of a kernel from the dawn of time!
+>>514		belong		0x908ed8b4	version 0.99-1.1.42
+>>514		belong		0x908ed8b8	for memtest86
+
+>497		leshort		!0		x86 kernel
+>>504		leshort		>0		RAMdisksize=%u KB
+>>502		leshort		>0		swap=0x%X
+>>508		leshort		>0		root=0x%X
+>>>498		leshort		1		\b-ro
+>>>498		leshort		0		\b-rw
+>>506		leshort		0xFFFF		vga=normal
+>>506		leshort		0xFFFE		vga=extended
+>>506		leshort		0xFFFD		vga=ask
+>>506		leshort		>0		vga=%d
+>>514		belong		0x908ed881	version 1.1.43-1.1.45
+>>514		belong		0x15b281cd
+>>>0xa8e	belong		0x55AA5a5a	version 1.1.46-1.2.13,1.3.0
+>>>0xa99	belong		0x55AA5a5a	version 1.3.1,2
+>>>0xaa3	belong		0x55AA5a5a	version 1.3.3-1.3.30
+>>>0xaa6	belong		0x55AA5a5a	version 1.3.31-1.3.41
+>>>0xb2b	belong		0x55AA5a5a	version 1.3.42-1.3.45
+>>>0xaf7	belong		0x55AA5a5a	version 1.3.46-1.3.72
+>>514		string		HdrS
+>>>518		leshort		>0x1FF
+>>>>529		byte		0		\b, zImage
+>>>>529		byte		1		\b, bzImage
+>>>>(526.s+0x200) string 	>\0		\b, version %s
+
+# Linux boot sector thefts.
+0		belong		0xb8c0078e	Linux
+>0x1e6		belong		0x454c4b53	ELKS Kernel
+>0x1e6		belong		!0x454c4b53	style boot sector
+
+############################################################################
+# Linux S390 kernel image
+# Created by: Jan Kaluza <jkaluza@redhat.com>
+8 string \x02\x00\x00\x18\x60\x00\x00\x50\x02\x00\x00\x68\x60\x00\x00\x50\x40\x40\x40\x40\x40\x40\x40\x40 Linux S390
+>0x00010000 search/b/4096 \x00\x0a\x00\x00\x8b\xad\xcc\xcc
+# 64bit
+>>&0 string \xc1\x00\xef\xe3\xf0\x68\x00\x00 Z10 64bit kernel
+>>&0 string \xc1\x00\xef\xc3\x00\x00\x00\x00 Z9-109 64bit kernel
+>>&0 string \xc0\x00\x20\x00\x00\x00\x00\x00 Z990 64bit kernel
+>>&0 string \x00\x00\x00\x00\x00\x00\x00\x00 Z900 64bit kernel
+# 32bit
+>>&0 string \x81\x00\xc8\x80\x00\x00\x00\x00 Z10 32bit kernel
+>>&0 string \x81\x00\xc8\x80\x00\x00\x00\x00 Z9-109 32bit kernel
+>>&0 string \x80\x00\x20\x00\x00\x00\x00\x00 Z990 32bit kernel
+>>&0 string \x80\x00\x00\x00\x00\x00\x00\x00 Z900 32bit kernel
+
+############################################################################
+# Linux 8086 executable
+0	lelong&0xFF0000FF 0xC30000E9	Linux-Dev86 executable, headerless
+>5	string		.		
+>>4	string		>\0		\b, libc version %s
+
+0	lelong&0xFF00FFFF 0x4000301	Linux-8086 executable
+>2	byte&0x01	!0		\b, unmapped zero page
+>2	byte&0x20	0		\b, impure
+>2	byte&0x20	!0
+>>2	byte&0x10	!0		\b, A_EXEC
+>2	byte&0x02	!0		\b, A_PAL
+>2	byte&0x04	!0		\b, A_NSYM
+>2	byte&0x08	!0		\b, A_STAND
+>2	byte&0x40	!0		\b, A_PURE
+>2	byte&0x80	!0		\b, A_TOVLY
+>28     long            !0              \b, not stripped
+>37	string		.		
+>>36	string		>\0		\b, libc version %s
+
+# 0	lelong&0xFF00FFFF 0x10000301	ld86 I80386 executable
+# 0	lelong&0xFF00FFFF 0xB000301	ld86 M68K executable
+# 0	lelong&0xFF00FFFF 0xC000301	ld86 NS16K executable
+# 0	lelong&0xFF00FFFF 0x17000301	ld86 SPARC executable
+
+# SYSLINUX boot logo files (from 'ppmtolss16' sources)
+# http://syslinux.zytor.com/
+#
+0	lelong	=0x1413f33d		SYSLINUX' LSS16 image data
+>4	leshort	x			\b, width %d
+>6	leshort	x			\b, height %d
+
+0	string	OOOM			User-Mode-Linux's Copy-On-Write disk image
+>4	belong	x			version %d
+
+# SE Linux policy database
+# From: Mike Frysinger <vapier@gentoo.org>
+0	lelong	0xf97cff8c		SE Linux policy
+>16	lelong	x			v%d
+>20	lelong	1			MLS
+>24	lelong	x			%d symbols
+>28	lelong	x			%d ocons
+
+# Linux Logical Volume Manager (LVM) 
+# Emmanuel VARAGNAT <emmanuel.varagnat@guzu.net>
+#
+# System ID, UUID and volume group name are 128 bytes long
+# but they should never be full and initialized with zeros...
+#
+# LVM1
+#
+0x0	string	HM\001		LVM1 (Linux Logical Volume Manager), version 1
+>0x12c	string	>\0		, System ID: %s
+
+0x0	string	HM\002		LVM1 (Linux Logical Volume Manager), version 2
+>0x12c	string	>\0		, System ID: %s
+
+#  LVM2
+#
+# It seems that the label header can be in one the four first sector
+# of the disk... (from _find_labeller in lib/label/label.c of LVM2)
+#
+# 0x200 seems to be the common case
+
+0x218           string  LVM2\ 001      LVM2 PV (Linux Logical Volume Manager)
+# read the offset to add to the start of the header, and the header
+# start in 0x200
+>&(&-12.l-0x21) byte    x
+# display UUID in LVM format + display all 32 bytes (instead of max string length: 31)
+>>&0x0          string  >\x2f          \b, UUID: %.6s
+>>&0x6          string  >\x2f          \b-%.4s
+>>&0xa          string  >\x2f          \b-%.4s
+>>&0xe          string  >\x2f          \b-%.4s
+>>&0x12         string  >\x2f          \b-%.4s
+>>&0x16         string  >\x2f          \b-%.4s
+>>&0x1a         string  >\x2f          \b-%.6s
+>>&0x20         lequad  x              \b, size: %lld
+
+0x018           string  LVM2\ 001      LVM2 PV (Linux Logical Volume Manager)
+>&(&-12.l-0x21) byte    x
+# display UUID in LVM format + display all 32 bytes (instead of max string length: 31)
+>>&0x0          string  >\x2f          \b, UUID: %.6s
+>>&0x6          string  >\x2f          \b-%.4s
+>>&0xa          string  >\x2f          \b-%.4s
+>>&0xe          string  >\x2f          \b-%.4s
+>>&0x12         string  >\x2f          \b-%.4s
+>>&0x16         string  >\x2f          \b-%.4s
+>>&0x1a         string  >\x2f          \b-%.6s
+>>&0x20         lequad  x              \b, size: %lld
+
+0x418           string  LVM2\ 001      LVM2 PV (Linux Logical Volume Manager)
+>&(&-12.l-0x21) byte    x
+# display UUID in LVM format + display all 32 bytes (instead of max string length: 31)
+>>&0x0          string  >\x2f          \b, UUID: %.6s
+>>&0x6          string  >\x2f          \b-%.4s
+>>&0xa          string  >\x2f          \b-%.4s
+>>&0xe          string  >\x2f          \b-%.4s
+>>&0x12         string  >\x2f          \b-%.4s
+>>&0x16         string  >\x2f          \b-%.4s
+>>&0x1a         string  >\x2f          \b-%.6s
+>>&0x20         lequad  x              \b, size: %lld
+
+0x618           string  LVM2\ 001      LVM2 PV (Linux Logical Volume Manager)
+>&(&-12.l-0x21) byte    x              
+# display UUID in LVM format + display all 32 bytes (instead of max string length: 31)
+>>&0x0          string  >\x2f          \b, UUID: %.6s
+>>&0x6          string  >\x2f          \b-%.4s
+>>&0xa          string  >\x2f          \b-%.4s
+>>&0xe          string  >\x2f          \b-%.4s
+>>&0x12         string  >\x2f          \b-%.4s
+>>&0x16         string  >\x2f          \b-%.4s
+>>&0x1a         string  >\x2f          \b-%.6s
+>>&0x20         lequad  x              \b, size: %lld
+
+# LVM snapshot
+# from Jason Farrel
+0	string	SnAp	LVM Snapshot (CopyOnWrite store)
+>4	lelong	!0	- valid,
+>4	lelong	0	- invalid,
+>8	lelong	x	version %d,
+>12	lelong	x	chunk_size %d
+
+# SE Linux policy database
+0	lelong	0xf97cff8c		SE Linux policy
+>16	lelong	x			v%d
+>20	lelong	1			MLS
+>24	lelong	x			%d symbols
+>28	lelong	x			%d ocons
+
+# LUKS: Linux Unified Key Setup, On-Disk Format, http://luks.endorphin.org/spec
+# Anthon van der Neut (anthon@mnt.org)
+0	string	LUKS\xba\xbe	LUKS encrypted file,
+>6	beshort x		ver %d
+>8	string	x		[%s,
+>40	string	x		%s,
+>72	string	x		%s]
+>168	string	x		UUID: %s
+
+
+# Summary: Xen saved domain file
+# Created by: Radek Vokal <rvokal@redhat.com>
+0	string		LinuxGuestRecord	Xen saved domain
+>20	search/256	(name			
+>>&1	string		x			(name %s)
+
+# Type: Xen, the virtual machine monitor
+# From: Radek Vokal <rvokal@redhat.com>
+0	string		LinuxGuestRecord	Xen saved domain
+#>2	regex		\(name\ [^)]*\)		%s
+>20	search/256	(name			(name
+>>&1	string		x			%s...)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/lisp b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/lisp
new file mode 100755
index 0000000000000000000000000000000000000000..110988020ecdf5f78c363d5fa2ed1f34a3e1d1b5
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/lisp
@@ -0,0 +1,52 @@
+
+#------------------------------------------------------------------------------
+# $File: lisp,v 1.23 2009/09/19 16:28:10 christos Exp $
+# lisp:  file(1) magic for lisp programs
+#
+# various lisp types, from Daniel Quinlan (quinlan@yggdrasil.com)
+
+# updated by Joerg Jenderek
+# GRR: This lot is too weak
+#0	string	;;			
+# windows INF files often begin with semicolon and use CRLF as line end
+# lisp files are mainly created on unix system with LF as line end
+#>2	search/4096	!\r		Lisp/Scheme program text
+#>2	search/4096	\r		Windows INF file
+
+0	search/4096	(setq\ 			Lisp/Scheme program text
+!:mime	text/x-lisp
+0	search/4096	(defvar\ 		Lisp/Scheme program text
+!:mime	text/x-lisp
+0	search/4096	(defparam\ 		Lisp/Scheme program text
+!:mime	text/x-lisp
+0	search/4096	(defun\  		Lisp/Scheme program text
+!:mime	text/x-lisp
+0	search/4096	(autoload\ 		Lisp/Scheme program text
+!:mime	text/x-lisp
+0	search/4096	(custom-set-variables\ 	Lisp/Scheme program text
+!:mime	text/x-lisp
+
+# Emacs 18 - this is always correct, but not very magical.
+0	string	\012(			Emacs v18 byte-compiled Lisp data
+!:mime	application/x-elc
+# Emacs 19+ - ver. recognition added by Ian Springer
+# Also applies to XEmacs 19+ .elc files; could tell them apart with regexs
+# - Chris Chittleborough <cchittleborough@yahoo.com.au>
+0	string	;ELC	
+>4	byte	>18			
+>4	byte    <32			Emacs/XEmacs v%d byte-compiled Lisp data
+!:mime	application/x-elc		
+
+# Files produced by CLISP Common Lisp From: Bruno Haible <haible@ilog.fr>
+0	string	(SYSTEM::VERSION\040'	CLISP byte-compiled Lisp program (pre 2004-03-27)
+0	string	(|SYSTEM|::|VERSION|\040'	CLISP byte-compiled Lisp program text
+
+0	long	0x70768BD2		CLISP memory image data
+0	long	0xD28B7670		CLISP memory image data, other endian
+
+#.com and .bin for MIT scheme 
+0	string	\372\372\372\372	MIT scheme (library?)
+
+# From: David Allouche <david@allouche.net>
+0	search/1	\<TeXmacs|	TeXmacs document text
+!:mime	text/texmacs
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/llvm b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/llvm
new file mode 100755
index 0000000000000000000000000000000000000000..44a40094036cbb557c8c641ecb76fefaa9b799f4
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/llvm
@@ -0,0 +1,13 @@
+
+#------------------------------------------------------------------------------
+# $File: llvm,v 1.5 2010/09/20 18:55:20 rrt Exp $
+# llvm:  file(1) magic for LLVM byte-codes
+# URL:  http://llvm.org/docs/BitCodeFormat.html
+# From: Al Stone <ahs3@fc.hp.com>
+
+0	string	llvm	LLVM byte-codes, uncompressed
+0	string	llvc0	LLVM byte-codes, null compression
+0	string	llvc1	LLVM byte-codes, gzip compression
+0	string	llvc2	LLVM byte-codes, bzip2 compression
+0	string	\xde\xc0\x17\x0b	LLVM bitcode, wrapper
+0       string	BC\xc0\xde	LLVM bitcode
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/lua b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/lua
new file mode 100755
index 0000000000000000000000000000000000000000..61e69a63b547bc00b444e4cd0e23f57141b55abe
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/lua
@@ -0,0 +1,21 @@
+
+#------------------------------------------------------------------------------
+# $File: lua,v 1.5 2009/09/19 16:28:10 christos Exp $
+# lua:  file(1) magic for Lua scripting language
+# URL:  http://www.lua.org/
+# From: Reuben Thomas <rrt@sc3d.org>, Seo Sanghyeon <tinuviel@sparcs.kaist.ac.kr>
+
+# Lua scripts
+0	search/1/w	#!\ /usr/bin/lua	Lua script text executable
+!:mime	text/x-lua
+0	search/1/w	#!\ /usr/local/bin/lua	Lua script text executable
+!:mime	text/x-lua
+0	search/1	#!/usr/bin/env\ lua	Lua script text executable
+!:mime	text/x-lua
+0	search/1	#!\ /usr/bin/env\ lua	Lua script text executable
+!:mime	text/x-lua
+
+# Lua bytecode
+0	string		\033Lua			Lua bytecode,
+>4	byte		0x50			version 5.0
+>4	byte		0x51			version 5.1
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/luks b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/luks
new file mode 100755
index 0000000000000000000000000000000000000000..6ecc40aff19a3e9b18cd968afd451bd90a40af62
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/luks
@@ -0,0 +1,13 @@
+
+#------------------------------------------------------------------------------
+# $File: luks,v 1.4 2009/09/19 16:28:10 christos Exp $
+# luks:  file(1) magic for Linux Unified Key Setup
+# URL:	http://luks.endorphin.org/spec
+# From:	Anthon van der Neut <anthon@mnt.org>
+
+0	string		LUKS\xba\xbe	LUKS encrypted file,
+>6	beshort		x		ver %d
+>8	string		x		[%s,
+>40	string		x		%s,
+>72	string		x		%s]
+>168	string		x		UUID: %s
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mach b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mach
new file mode 100755
index 0000000000000000000000000000000000000000..8d03f1ae4a283997342e1c129a0006d8bd05f130
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mach
@@ -0,0 +1,86 @@
+
+#------------------------------------------------------------
+# $File: mach,v 1.9 2009/09/19 16:28:10 christos Exp $
+# Mach has two magic numbers, 0xcafebabe and 0xfeedface.
+# Unfortunately the first, cafebabe, is shared with
+# Java ByteCode, so they are both handled in the file "cafebabe".
+# The "feedface" ones are handled herein.
+#------------------------------------------------------------
+0	lelong&0xfffffffe	0xfeedface	Mach-O
+>0	byte		0xcf		64-bit
+>12	lelong		1		object
+>12	lelong		2		executable
+>12	lelong		3		fixed virtual memory shared library
+>12	lelong		4		core
+>12	lelong		5		preload executable
+>12	lelong		6		dynamically linked shared library
+>12	lelong		7		dynamic linker
+>12	lelong		8		bundle
+>12	lelong		9		dynamically linked shared library stub
+>12	lelong		>9
+>>12	lelong		x		filetype=%ld
+>4	lelong		<0
+>>4	lelong		x		architecture=%ld
+>4	lelong		1		vax
+>4	lelong		2		romp
+>4	lelong		3		architecture=3
+>4	lelong		4		ns32032
+>4	lelong		5		ns32332
+>4	lelong		6		m68k
+>4	lelong		7		i386
+>4	lelong		8		mips
+>4	lelong		9		ns32532
+>4	lelong		10		architecture=10
+>4	lelong		11		hppa
+>4	lelong		12		acorn
+>4	lelong		13		m88k
+>4	lelong		14		sparc
+>4	lelong		15		i860-big
+>4	lelong		16		i860
+>4	lelong		17		rs6000
+>4	lelong		18		ppc
+>4	lelong		16777234	ppc64
+>4	lelong		>16777234
+>>4	lelong		x		architecture=%ld
+#
+0	belong&0xfffffffe	0xfeedface	Mach-O
+>3	byte		0xcf		64-bit
+>12	belong		1		object
+>12	belong		2		executable
+>12	belong		3		fixed virtual memory shared library
+>12	belong		4		core
+>12	belong		5		preload executable
+>12	belong		6               dynamically linked shared library
+>12	belong		7               dynamic linker
+>12	belong		8		bundle
+>12	belong		9		dynamically linked shared library stub
+>12	belong		>9
+>>12	belong		x		filetype=%ld
+>4	belong		<0
+>>4	belong		x		architecture=%ld
+>4	belong		1		vax
+>4	belong		2		romp
+>4	belong		3		architecture=3
+>4	belong		4		ns32032
+>4	belong		5		ns32332
+>4	belong		6		for m68k architecture
+# from NeXTstep 3.0 <mach/machine.h>
+# i.e. mc680x0_all, ignore
+# >>8	belong		1		(mc68030)
+>>8	belong		2		(mc68040)
+>>8	belong		3		(mc68030 only)
+>4	belong		7		i386
+>4	belong		8		mips
+>4	belong		9		ns32532
+>4	belong		10		architecture=10
+>4	belong		11		hppa
+>4	belong		12		acorn
+>4	belong		13		m88k
+>4	belong		14		sparc
+>4	belong		15		i860-big
+>4	belong		16		i860
+>4	belong		17		rs6000
+>4	belong		18		ppc
+>4	belong		16777234	ppc64
+>4	belong		>16777234
+>>4	belong		x		architecture=%ld
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/macintosh b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/macintosh
new file mode 100755
index 0000000000000000000000000000000000000000..b9933b1b49765d33ebd6e2fd52caac5570223cca
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/macintosh
@@ -0,0 +1,390 @@
+
+#------------------------------------------------------------------------------
+# $File: macintosh,v 1.22 2011/05/17 17:40:31 rrt Exp $
+# macintosh description
+#
+# BinHex is the Macintosh ASCII-encoded file format (see also "apple")
+# Daniel Quinlan, quinlan@yggdrasil.com
+11	string	must\ be\ converted\ with\ BinHex	BinHex binary text
+!:mime	application/mac-binhex40
+>41	string	x					\b, version %.3s
+
+# Stuffit archives are the de facto standard of compression for Macintosh
+# files obtained from most archives. (franklsm@tuns.ca)
+0	string		SIT!			StuffIt Archive (data)
+!:mime	application/x-stuffit
+!:apple	SIT!SIT!
+>2	string		x			: %s
+0	string		SITD			StuffIt Deluxe (data)
+>2	string		x			: %s
+0	string		Seg			StuffIt Deluxe Segment (data)
+>2	string		x			: %s
+
+# Newer StuffIt archives (grant@netbsd.org)
+0	string		StuffIt			StuffIt Archive
+!:mime	application/x-stuffit
+!:apple	SIT!SIT!
+#>162	string		>0			: %s
+
+# Macintosh Applications and Installation binaries (franklsm@tuns.ca)
+# GRR: Too weak
+#0	string		APPL			Macintosh Application (data)
+#>2	string		x			\b: %s
+
+# Macintosh System files (franklsm@tuns.ca)
+# GRR: Too weak
+#0	string		zsys			Macintosh System File (data)
+#0	string		FNDR			Macintosh Finder (data)
+#0	string		libr			Macintosh Library (data)
+#>2	string		x			: %s
+#0	string		shlb			Macintosh Shared Library (data)
+#>2	string		x			: %s
+#0	string		cdev			Macintosh Control Panel (data)
+#>2	string		x			: %s
+#0	string		INIT			Macintosh Extension (data)
+#>2	string		x			: %s
+#0	string		FFIL			Macintosh Truetype Font (data)
+#>2	string		x			: %s
+#0	string		LWFN			Macintosh Postscript Font (data)
+#>2	string		x			: %s
+
+# Additional Macintosh Files (franklsm@tuns.ca)
+# GRR: Too weak
+#0	string		PACT			Macintosh Compact Pro Archive (data)
+#>2	string		x			: %s
+#0	string		ttro			Macintosh TeachText File (data)
+#>2	string		x			: %s
+#0	string		TEXT			Macintosh TeachText File (data)
+#>2	string		x			: %s
+#0	string		PDF			Macintosh PDF File (data)
+#>2	string		x			: %s
+
+# MacBinary format (Eric Fischer, enf@pobox.com)
+#
+# Unfortunately MacBinary doesn't really have a magic number prior
+# to the MacBinary III format.  The checksum is really the way to
+# do it, but the magic file format isn't up to the challenge.
+#
+# 0	byte		0
+# 1	byte				# filename length
+# 2	string				# filename
+# 65    string				# file type
+# 69	string				# file creator
+# 73	byte				# Finder flags
+# 74	byte		0
+# 75	beshort				# vertical posn in window
+# 77	beshort				# horiz posn in window
+# 79	beshort				# window or folder ID
+# 81    byte				# protected?
+# 82	byte		0
+# 83	belong				# length of data segment
+# 87	belong				# length of resource segment
+# 91	belong				# file creation date
+# 95	belong				# file modification date
+# 99	beshort				# length of comment after resource
+# 101	byte				# new Finder flags
+# 102	string		mBIN		# (only in MacBinary III)
+# 106	byte				# char. code of file name
+# 107	byte				# still more Finder flags
+# 116	belong				# total file length
+# 120	beshort				# length of add'l header
+# 122	byte		129		# for MacBinary II
+# 122	byte		130		# for MacBinary III
+# 123	byte		129		# minimum version that can read fmt
+# 124	beshort				# checksum
+#
+# This attempts to use the version numbers as a magic number, requiring
+# that the first one be 0x80, 0x81, 0x82, or 0x83, and that the second
+# be 0x81.  This works for the files I have, but maybe not for everyone's.
+
+# Unfortunately, this magic is quite weak - MPi
+#122	beshort&0xFCFF	0x8081		Macintosh MacBinary data
+
+# MacBinary I doesn't have the version number field at all, but MacBinary II
+# has been in use since 1987 so I hope there aren't many really old files
+# floating around that this will miss.  The original spec calls for using
+# the nulls in 0, 74, and 82 as the magic number.
+#
+# Another possibility, that would also work for MacBinary I, is to use
+# the assumption that 65-72 will all be ASCII (0x20-0x7F), that 73 will
+# have bits 1 (changed), 2 (busy), 3 (bozo), and 6 (invisible) unset,
+# and that 74 will be 0.  So something like
+# 
+# 71 	belong&0x80804EFF 0x00000000 	Macintosh MacBinary data
+# 
+# >73	byte&0x01	0x01		\b, inited
+# >73	byte&0x02	0x02		\b, changed
+# >73	byte&0x04	0x04		\b, busy
+# >73	byte&0x08	0x08		\b, bozo
+# >73	byte&0x10	0x10		\b, system
+# >73	byte&0x10	0x20		\b, bundle
+# >73	byte&0x10	0x40		\b, invisible
+# >73	byte&0x10	0x80		\b, locked
+
+#>65	string		x		\b, type "%4.4s"
+
+#>65	string		8BIM		(PhotoShop)
+#>65	string		ALB3		(PageMaker 3)
+#>65	string		ALB4		(PageMaker 4)
+#>65	string		ALT3		(PageMaker 3)
+#>65	string		APPL		(application)
+#>65	string		AWWP		(AppleWorks word processor)
+#>65	string		CIRC		(simulated circuit)
+#>65	string		DRWG		(MacDraw)
+#>65	string		EPSF		(Encapsulated PostScript)
+#>65	string		FFIL		(font suitcase)
+#>65	string		FKEY		(function key)
+#>65	string		FNDR		(Macintosh Finder)
+#>65	string		GIFf		(GIF image)
+#>65	string		Gzip		(GNU gzip)
+#>65	string		INIT		(system extension)
+#>65	string		LIB\ 		(library)
+#>65	string		LWFN		(PostScript font)
+#>65	string		MSBC		(Microsoft BASIC)
+#>65	string		PACT		(Compact Pro archive)
+#>65	string		PDF\ 		(Portable Document Format)
+#>65	string		PICT		(picture)
+#>65	string		PNTG		(MacPaint picture)
+#>65	string		PREF		(preferences)
+#>65	string		PROJ		(Think C project)
+#>65	string		QPRJ		(Think Pascal project)
+#>65	string		SCFL		(Defender scores)
+#>65	string		SCRN		(startup screen)
+#>65	string		SITD		(StuffIt Deluxe)
+#>65	string		SPn3		(SuperPaint)
+#>65	string		STAK		(HyperCard stack)
+#>65	string		Seg\ 		(StuffIt segment)
+#>65	string		TARF		(Unix tar archive)
+#>65	string		TEXT		(ASCII)
+#>65	string		TIFF		(TIFF image)
+#>65	string		TOVF		(Eudora table of contents)
+#>65	string		WDBN		(Microsoft Word word processor)
+#>65	string		WORD		(MacWrite word processor)
+#>65	string		XLS\ 		(Microsoft Excel)
+#>65	string		ZIVM		(compress (.Z))
+#>65	string		ZSYS		(Pre-System 7 system file)
+#>65	string		acf3		(Aldus FreeHand)
+#>65	string		cdev		(control panel)
+#>65	string		dfil		(Desk Acessory suitcase)
+#>65	string		libr		(library)
+#>65	string		nX^d		(WriteNow word processor)
+#>65	string		nX^w		(WriteNow dictionary)
+#>65	string		rsrc		(resource)
+#>65	string		scbk		(Scrapbook)
+#>65	string		shlb		(shared library)
+#>65	string		ttro		(SimpleText read-only)
+#>65	string		zsys		(system file)
+
+#>69	string		x		\b, creator "%4.4s"
+
+# Somewhere, Apple has a repository of registered Creator IDs.  These are
+# just the ones that I happened to have files from and was able to identify.
+
+#>69	string		8BIM		(Adobe Photoshop)
+#>69	string		ALD3		(PageMaker 3)
+#>69	string		ALD4		(PageMaker 4)
+#>69	string		ALFA		(Alpha editor)
+#>69	string		APLS		(Apple Scanner)
+#>69	string		APSC		(Apple Scanner)
+#>69	string		BRKL		(Brickles)
+#>69	string		BTFT		(BitFont)
+#>69	string		CCL2 		(Common Lisp 2)
+#>69	string		CCL\ 		(Common Lisp)
+#>69	string		CDmo		(The Talking Moose)
+#>69	string		CPCT		(Compact Pro)
+#>69	string		CSOm		(Eudora)
+#>69	string		DMOV		(Font/DA Mover)
+#>69	string		DSIM		(DigSim)
+#>69	string		EDIT		(Macintosh Edit)
+#>69	string		ERIK		(Macintosh Finder)
+#>69	string		EXTR		(self-extracting archive)
+#>69	string		Gzip		(GNU gzip)
+#>69	string		KAHL		(Think C)
+#>69	string		LWFU		(LaserWriter Utility)
+#>69	string		LZIV		(compress)
+#>69	string		MACA		(MacWrite)
+#>69	string		MACS		(Macintosh operating system)
+#>69	string		MAcK		(MacKnowledge terminal emulator)
+#>69	string		MLND		(Defender)
+#>69	string		MPNT		(MacPaint)
+#>69	string		MSBB		(Microsoft BASIC (binary))
+#>69	string		MSWD		(Microsoft Word)
+#>69	string		NCSA		(NCSA Telnet)
+#>69	string		PJMM		(Think Pascal)
+#>69	string		PSAL		(Hunt the Wumpus)
+#>69	string		PSI2		(Apple File Exchange)
+#>69	string		R*ch		(BBEdit)
+#>69	string		RMKR		(Resource Maker)
+#>69	string		RSED		(Resource Editor)
+#>69	string		Rich		(BBEdit)
+#>69	string		SIT!		(StuffIt)
+#>69	string		SPNT		(SuperPaint)
+#>69	string		Unix		(NeXT Mac filesystem)
+#>69	string		VIM!		(Vim editor)
+#>69	string		WILD		(HyperCard)
+#>69	string		XCEL		(Microsoft Excel)
+#>69	string		aCa2		(Fontographer)
+#>69	string		aca3		(Aldus FreeHand)
+#>69	string		dosa		(Macintosh MS-DOS file system)
+#>69	string		movr		(Font/DA Mover)
+#>69	string		nX^n		(WriteNow)
+#>69	string		pdos		(Apple ProDOS file system)
+#>69	string		scbk		(Scrapbook)
+#>69	string		ttxt		(SimpleText)
+#>69	string		ufox		(Foreign File Access)
+
+# Just in case...
+
+102	string		mBIN		MacBinary III data with surprising version number
+
+# sas magic from Bruce Foster (bef@nwu.edu)
+#
+#0	string		SAS		SAS
+#>8	string		x		%s
+0	string		SAS		SAS
+>24	string		DATA		data file
+>24	string		CATALOG		catalog
+>24	string		INDEX		data file index
+>24	string		VIEW		data view
+# sas 7+ magic from Reinhold Koch (reinhold.koch@roche.com)
+#
+0x54    string          SAS             SAS 7+
+>0x9C   string          DATA            data file
+>0x9C   string          CATALOG         catalog
+>0x9C   string          INDEX           data file index
+>0x9C   string          VIEW            data view
+
+# spss magic for SPSS system and portable files, 
+#	 from Bruce Foster (bef@nwu.edu).
+
+0	long		0xc1e2c3c9	SPSS Portable File
+>40	string 		x		%s
+
+0	string		$FL2		SPSS System File
+>24	string		x		%s
+
+# Macintosh filesystem data
+# From "Tom N Harris" <telliamed@mac.com>
+# Fixed HFS+ and Partition map magic: Ethan Benson <erbenson@alaska.net>
+# The MacOS epoch begins on 1 Jan 1904 instead of 1 Jan 1970, so these
+# entries depend on the data arithmetic added after v.35
+# There's also some Pascal strings in here, ditto...
+
+# The boot block signature, according to IM:Files, is 
+# "for HFS volumes, this field always contains the value 0x4C4B."
+# But if this is true for MFS or HFS+ volumes, I don't know.
+# Alternatively, the boot block is supposed to be zeroed if it's
+# unused, so a simply >0 should suffice.
+
+0x400	beshort			0xD2D7		Macintosh MFS data
+>0	beshort			0x4C4B		(bootable)
+>0x40a	beshort			&0x8000		(locked)
+>0x402	beldate-0x7C25B080	x		created: %s,
+>0x406	beldate-0x7C25B080	>0		last backup: %s,
+>0x414	belong			x		block size: %d,
+>0x412	beshort			x		number of blocks: %d,
+>0x424	pstring			x		volume name: %s
+
+# "BD" gives many false positives
+#0x400	beshort			0x4244		Macintosh HFS data
+#>0	beshort			0x4C4B		(bootable)
+#>0x40a	beshort			&0x8000		(locked)
+#>0x40a	beshort			^0x0100		(mounted)
+#>0x40a	beshort			&0x0200		(spared blocks)
+#>0x40a	beshort			&0x0800		(unclean)
+#>0x47C	beshort			0x482B		(Embedded HFS+ Volume)
+#>0x402	beldate-0x7C25B080	x		created: %s,
+#>0x406	beldate-0x7C25B080	x		last modified: %s,
+#>0x440	beldate-0x7C25B080	>0		last backup: %s,
+#>0x414	belong			x		block size: %d,
+#>0x412	beshort			x		number of blocks: %d,
+#>0x424	pstring			x		volume name: %s
+
+0x400	beshort			0x482B		Macintosh HFS Extended
+>&0	beshort			x		version %d data
+>0	beshort			0x4C4B		(bootable)
+>0x404	belong			^0x00000100	(mounted)
+>&2	belong			&0x00000200	(spared blocks)
+>&2	belong			&0x00000800	(unclean)
+>&2	belong			&0x00008000	(locked)
+>&6	string			x		last mounted by: '%.4s',
+# really, that should be treated as a belong and we print a string
+# based on the value. TN1150 only mentions '8.10' for "MacOS 8.1"
+>&14	beldate-0x7C25B080	x		created: %s,
+# only the creation date is local time, all other timestamps in HFS+ are UTC.
+>&18	bedate-0x7C25B080	x		last modified: %s,
+>&22	bedate-0x7C25B080	>0		last backup: %s,
+>&26	bedate-0x7C25B080	>0		last checked: %s,
+>&38	belong			x		block size: %d,
+>&42	belong			x		number of blocks: %d,
+>&46	belong			x		free blocks: %d
+
+# I don't think this is really necessary since it doesn't do much and 
+# anything with a valid driver descriptor will also have a valid
+# partition map
+#0		beshort		0x4552		Apple Device Driver data
+#>&24		beshort		=1		\b, MacOS
+
+# Is that the partition type a cstring or a pstring? Well, IM says "strings 
+# shorter than 32 bytes must be terminated with NULL" so I'll treat it as a 
+# cstring. Of course, partitions can contain more than four entries, but 
+# what're you gonna do?
+# GRR: This magic is too weak, it is just "PM"
+#0x200		beshort		0x504D		Apple Partition data
+#>0x2		beshort		x		(block size: %d):
+#>0x230		string		x		first type: %s,
+#>0x210		string		x		name: %s,
+#>0x254		belong		x		number of blocks: %d,
+#>0x400		beshort		0x504D		
+#>>0x430		string		x		second type: %s,
+#>>0x410		string		x		name: %s,
+#>>0x454		belong		x		number of blocks: %d,
+#>>0x600		beshort		0x504D
+#>>>0x630	string		x		third type: %s,
+#>>>0x610	string		x		name: %s,
+#>>>0x654	belong		x		number of blocks: %d,
+#>>0x800		beshort		0x504D		
+#>>>0x830	string		x		fourth type: %s,
+#>>>0x810	string		x		name: %s,
+#>>>0x854	belong		x		number of blocks: %d,
+#>>>0xa00	beshort		0x504D		
+#>>>>0xa30	string		x		fifth type: %s,
+#>>>>0xa10	string		x		name: %s,
+#>>>>0xa54	belong		x		number of blocks: %d
+#>>>0xc00	beshort		0x504D
+#>>>>0xc30	string		x		sixth type: %s,
+#>>>>0xc10	string		x		name: %s,
+#>>>>0xc54	belong		x		number of blocks: %d
+## AFAIK, only the signature is different
+#0x200		beshort		0x5453		Apple Old Partition data
+#>0x2		beshort		x		block size: %d,
+#>0x230		string		x		first type: %s,
+#>0x210		string		x		name: %s,
+#>0x254		belong		x		number of blocks: %d,
+#>0x400		beshort		0x504D		
+#>>0x430		string		x		second type: %s,
+#>>0x410		string		x		name: %s,
+#>>0x454		belong		x		number of blocks: %d,
+#>>0x800		beshort		0x504D		
+#>>>0x830	string		x		third type: %s,
+#>>>0x810	string		x		name: %s,
+#>>>0x854	belong		x		number of blocks: %d,
+#>>>0xa00	beshort		0x504D		
+#>>>>0xa30	string		x		fourth type: %s,
+#>>>>0xa10	string		x		name: %s,
+#>>>>0xa54	belong		x		number of blocks: %d
+
+# From: Remi Mommsen <mommsen@slac.stanford.edu>
+0		string		BOMStore	Mac OS X bill of materials (BOM) file
+
+# From: Adam Buchbinder <adam.buchbinder@gmail.com>
+# URL: http://en.wikipedia.org/wiki/Datafork_TrueType
+# Derived from the 'fondu' and 'ufond' source code (fondu.sf.net). 'sfnt' is
+# TrueType; 'POST' is PostScript. 'FONT' and 'NFNT' sometimes appear, but I
+# don't know what they mean.
+0	belong	0x100
+>(0x4.L+24)	beshort	x
+>>&4	belong	0x73666e74	Mac OSX datafork font, TrueType
+>>&4	belong	0x464f4e54	Mac OSX datafork font, 'FONT'
+>>&4	belong	0x4e464e54	Mac OSX datafork font, 'NFNT'
+>>&4	belong	0x504f5354	Mac OSX datafork font, PostScript
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/magic b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/magic
new file mode 100755
index 0000000000000000000000000000000000000000..0de332aa3bfb067fc74ce5b49a71870d03be9b7b
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/magic
@@ -0,0 +1,10 @@
+
+#------------------------------------------------------------------------------
+# $File: magic,v 1.10 2010/11/25 15:00:12 christos Exp $
+# magic:  file(1) magic for magic files
+#
+0	string/t		#\ Magic	magic text file for file(1) cmd
+0	lelong		0xF11E041C	magic binary file for file(1) cmd
+>4	lelong		x		(version %d) (little endian)
+0	belong		0xF11E041C	magic binary file for file(1) cmd
+>4	belong		x		(version %d) (big endian)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mail.news b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mail.news
new file mode 100755
index 0000000000000000000000000000000000000000..205d6c6734132efada5ecf8bd142323917836318
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mail.news
@@ -0,0 +1,66 @@
+
+#------------------------------------------------------------------------------
+# $File: mail.news,v 1.19 2011/01/25 13:55:57 christos Exp $
+# mail.news:  file(1) magic for mail and news
+#
+# Unfortunately, saved netnews also has From line added in some news software.
+#0	string		From 		mail text
+# There are tests to ascmagic.c to cope with mail and news.
+0	string/t		Relay-Version: 	old news text
+!:mime	message/rfc822
+0	string/t		#!\ rnews	batched news text
+!:mime	message/rfc822
+0	string/t		N#!\ rnews	mailed, batched news text
+!:mime	message/rfc822
+0	string/t		Forward\ to 	mail forwarding text
+!:mime	message/rfc822
+0	string/t		Pipe\ to 	mail piping text
+!:mime	message/rfc822
+0	string/t		Return-Path:	smtp mail text
+!:mime	message/rfc822
+0	string/t		Path:		news text
+!:mime	message/news
+0	string/t		Xref:		news text
+!:mime	message/news
+0	string/t		From:		news or mail text
+!:mime	message/rfc822
+0	string/t		Article 	saved news text
+!:mime	message/news
+0	string/t		BABYL		Emacs RMAIL text
+0	string/t		Received:	RFC 822 mail text
+!:mime	message/rfc822
+0	string/t		MIME-Version:	MIME entity text
+#0	string/t		Content-	MIME entity text
+
+# TNEF files...
+0	lelong		0x223E9F78	Transport Neutral Encapsulation Format
+
+# From: Kevin Sullivan <ksulliva@psc.edu>
+0	string		*mbx*		MBX mail folder
+
+# From: Simon Matter <simon.matter@invoca.ch>
+0	string		\241\002\213\015skiplist\ file\0\0\0	Cyrus skiplist DB
+
+# JAM(mbp) Fidonet message area databases
+# JHR file
+0	string	JAM\0			JAM message area header file
+>12	leshort >0			(%d messages)
+
+# Squish Fidonet message area databases
+# SQD file (requires at least one message in the area)
+# XXX: Weak magic
+#256	leshort	0xAFAE4453		Squish message area data file
+#>4	leshort	>0			(%d messages)
+
+#0	string		\<!--\ MHonArc		text/html; x-type=mhonarc
+
+# Cyrus: file(1) magic for compiled Cyrus sieve scripts
+# URL: http://www.cyrusimap.org/docs/cyrus-imapd/2.4.6/internal/bytecode.php
+# URL: http://git.cyrusimap.org/cyrus-imapd/tree/sieve/bytecode.h?h=master
+# From: Philipp Hahn <hahn@univention.de>
+
+# Compiled Cyrus sieve script
+0       string CyrSBytecode     Cyrus sieve bytecode data,
+>12     belong =1       version 1, big-endian
+>12     lelong =1       version 1, little-endian
+>12     belong x        version %d, network-endian
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/maple b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/maple
new file mode 100755
index 0000000000000000000000000000000000000000..4a263e084691d2b04c77b9c37d96f128b69ed4df
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/maple
@@ -0,0 +1,57 @@
+
+#------------------------------------------------------------------------------
+# $File: maple,v 1.6 2009/09/19 16:28:10 christos Exp $
+# maple:  file(1) magic for maple files
+# "H. Nanosecond" <aldomel@ix.netcom.com>
+# Maple V release 4, a multi-purpose math program
+#
+
+# maple library .lib
+0	string	\000MVR4\nI	MapleVr4 library
+
+# .ind
+# no magic for these :-(
+# they are compiled indexes for maple files
+
+# .hdb 
+0	string	\000\004\000\000	Maple help database
+
+# .mhp
+# this has the form <PACKAGE=name>
+0	string	\<PACKAGE=	Maple help file
+0	string	\<HELP\ NAME=	Maple help file
+0	string	\n\<HELP\ NAME=	Maple help file with extra carriage return at start (yuck)
+#0	string	#\ Newton	Maple help file, old style
+0	string	#\ daub	Maple help file, old style
+#0	string	#===========	Maple help file, old style
+
+# .mws
+0	string	\000\000\001\044\000\221	Maple worksheet
+#this is anomalous
+0	string	WriteNow\000\002\000\001\000\000\000\000\100\000\000\000\000\000	Maple worksheet, but weird
+# this has the form {VERSION 2 3 "IBM INTEL NT" "2.3" }\n
+# that is {VERSION major_version miunor_version computer_type version_string}
+0	string	{VERSION\ 	Maple worksheet
+>9	string	>\0	version %.1s.
+>>>11	string	>\0	%.1s
+
+# .mps
+0	string	\0\0\001$	Maple something
+# from byte 4 it is either 'nul E' or 'soh R'
+# I think 'nul E' means a file that was saved as  a different name
+# a sort of revision marking
+# 'soh R' means new 
+>4	string	\000\105	An old revision
+>4	string	\001\122	The latest save
+
+# .mpl
+# some of these are the same as .mps above
+#0000000 000 000 001 044 000 105 same as .mps
+#0000000 000 000 001 044 001 122 same as .mps
+
+0	string	#\n##\ <SHAREFILE=	Maple something
+0	string	\n#\n##\ <SHAREFILE=	Maple something
+0	string	##\ <SHAREFILE=	Maple something
+0	string	#\r##\ <SHAREFILE=	Maple something
+0	string	\r#\r##\ <SHAREFILE=	Maple something
+0	string	#\ \r##\ <DESCRIBE>	Maple something anomalous.
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mathcad b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mathcad
new file mode 100755
index 0000000000000000000000000000000000000000..b186641f7da22e146dc4c4594052343bd23f3bc8
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mathcad
@@ -0,0 +1,8 @@
+
+#------------------------------------------------------------------------------
+# $File: mathcad,v 1.5 2009/09/19 16:28:10 christos Exp $
+# mathcad:  file(1) magic for Mathcad documents
+# URL:	http://www.mathsoft.com/
+# From:	Josh Triplett <josh@freedesktop.org>
+
+0	string	.MCAD\t		Mathcad document
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mathematica b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mathematica
new file mode 100755
index 0000000000000000000000000000000000000000..3c10a57db5c82b7c50303423ef5126199631ff27
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mathematica
@@ -0,0 +1,70 @@
+
+#------------------------------------------------------------------------------
+# $File: mathematica,v 1.7 2009/09/19 16:28:10 christos Exp $
+# mathematica:  file(1) magic for mathematica files
+# "H. Nanosecond" <aldomel@ix.netcom.com>
+# Mathematica a multi-purpose math program
+# versions 2.2 and 3.0
+
+#mathematica .mb
+0	string	\064\024\012\000\035\000\000\000	Mathematica version 2 notebook
+0	string	\064\024\011\000\035\000\000\000	Mathematica version 2 notebook
+
+# .ma
+# multiple possibilites:
+
+0	string	(*^\n\n::[\011frontEndVersion\ =\ 	Mathematica notebook
+#>41	string	>\0	%s
+
+#0	string	(*^\n\n::[\011palette	Mathematica notebook version 2.x
+
+#0	string	(*^\n\n::[\011Information	Mathematica notebook version 2.x
+#>675	string	>\0	%s #doesn't work well
+
+# there may be 'cr' instread of 'nl' in some does this matter?
+
+# generic:
+0	string	(*^\r\r::[\011	Mathematica notebook version 2.x
+0	string	(*^\r\n\r\n::[\011	Mathematica notebook version 2.x
+0	string	(*^\015			Mathematica notebook version 2.x
+0	string	(*^\n\r\n\r::[\011	Mathematica notebook version 2.x
+0	string	(*^\r::[\011	Mathematica notebook version 2.x
+0	string	(*^\r\n::[\011	Mathematica notebook version 2.x
+0	string	(*^\n\n::[\011	Mathematica notebook version 2.x
+0	string	(*^\n::[\011	Mathematica notebook version 2.x
+
+
+# Mathematica .mx files
+
+#0	string	(*This\ is\ a\ Mathematica\ binary\ dump\ file.\ It\ can\ be\ loaded\ with\ Get.*)	Mathematica binary file
+0	string	(*This\ is\ a\ Mathematica\ binary\ 	Mathematica binary file
+#>71	string \000\010\010\010\010\000\000\000\000\000\000\010\100\010\000\000\000	
+# >71... is optional
+>88	string	>\0	from %s
+
+
+# Mathematica files PBF:
+# 115 115 101 120 102 106 000 001 000 000 000 203 000 001 000
+0	string	MMAPBF\000\001\000\000\000\203\000\001\000	Mathematica PBF (fonts I think)
+
+# .ml files  These are menu resources I think
+# these start with "[0-9][0-9][0-9]\ A~[0-9][0-9][0-9]\ 
+# how to put that into a magic rule?
+4	string	\ A~	MAthematica .ml file
+
+# .nb files
+#too long 0	string	(***********************************************************************\n\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Mathematica-Compatible Notebook	Mathematica 3.0 notebook
+0	string	(***********************	Mathematica 3.0 notebook
+
+# other (* matches it is a comment start in these langs
+# GRR: Too weak; also matches other languages e.g. ML
+#0	string	(*	Mathematica, or Pascal, Modula-2 or 3 code text
+
+#########################
+# MatLab v5
+0       string  MATLAB  Matlab v5 mat-file
+>126    short   0x494d  (big endian)
+>>124   beshort x       version 0x%04x
+>126    short   0x4d49  (little endian)
+>>124   leshort x       version 0x%04x
+
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/matroska b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/matroska
new file mode 100755
index 0000000000000000000000000000000000000000..62299d21f9b9f6e8a1d626b355736511b03b9bd8
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/matroska
@@ -0,0 +1,23 @@
+
+#------------------------------------------------------------------------------
+# $File: matroska,v 1.6 2010/09/20 21:11:35 rrt Exp $
+# matroska:  file(1) magic for Matroska files
+#
+# See http://www.matroska.org/
+#
+
+# EBML id:
+0		belong		0x1a45dfa3
+# DocType id:
+>5		beshort		0x4282
+# DocType contents:
+>>8		string		matroska	Matroska data
+!:mime  video/x-matroska
+
+# EBML id:
+0		belong		0x1a45dfa3
+# DocType id:
+>0		search/4096 	\x42\x82
+# DocType contents:
+>>&1		string		webm	WebM
+!:mime  video/webm
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mcrypt b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mcrypt
new file mode 100755
index 0000000000000000000000000000000000000000..9c66af48b2a24e54c7b757ce1cfc6e90c2971f83
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mcrypt
@@ -0,0 +1,38 @@
+
+#------------------------------------------------------------------------------
+# $File: mcrypt,v 1.5 2009/09/19 16:28:10 christos Exp $
+# Mavroyanopoulos Nikos <nmav@hellug.gr>
+# mcrypt:   file(1) magic for mcrypt 2.2.x;
+0	string		\0m\3		mcrypt 2.5 encrypted data,
+>4	string		>\0		algorithm: %s,
+>>&1	leshort		>0		keysize: %d bytes,
+>>>&0	string		>\0		mode: %s,
+
+0	string		\0m\2		mcrypt 2.2 encrypted data,
+>3	byte		0		algorithm: blowfish-448,
+>3	byte		1		algorithm: DES,
+>3	byte		2		algorithm: 3DES,
+>3	byte		3		algorithm: 3-WAY,
+>3	byte		4		algorithm: GOST,
+>3	byte		6		algorithm: SAFER-SK64,
+>3	byte		7		algorithm: SAFER-SK128,
+>3	byte		8		algorithm: CAST-128,
+>3	byte		9		algorithm: xTEA,
+>3	byte		10		algorithm: TWOFISH-128,
+>3	byte		11		algorithm: RC2,
+>3	byte		12		algorithm: TWOFISH-192,
+>3	byte		13		algorithm: TWOFISH-256,
+>3	byte		14		algorithm: blowfish-128,
+>3	byte		15		algorithm: blowfish-192,
+>3	byte		16		algorithm: blowfish-256,
+>3	byte		100		algorithm: RC6,
+>3	byte		101		algorithm: IDEA,
+>4	byte		0		mode: CBC,
+>4	byte		1		mode: ECB,
+>4	byte		2		mode: CFB,
+>4	byte		3		mode: OFB,
+>4	byte		4		mode: nOFB,
+>5	byte		0		keymode: 8bit
+>5	byte		1		keymode: 4bit
+>5	byte		2		keymode: SHA-1 hash
+>5	byte		3		keymode: MD5 hash
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mercurial b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mercurial
new file mode 100755
index 0000000000000000000000000000000000000000..8bc5a5471516f37e91c902859419671b5ea243c1
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mercurial
@@ -0,0 +1,13 @@
+
+#------------------------------------------------------------------------------
+# $File: mercurial,v 1.4 2009/09/19 16:28:10 christos Exp $
+# mercurial:  file(1) magic for Mercurial changeset bundles
+# http://www.selenic.com/mercurial/wiki/
+#
+# Jesse Glick (jesse.glick@sun.com)
+#
+
+0	string		HG10		Mercurial changeset bundle
+>4	string		UN		(uncompressed)
+>4	string		GZ		(gzip compressed)
+>4	string		BZ		(bzip2 compressed)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/metastore b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/metastore
new file mode 100755
index 0000000000000000000000000000000000000000..285c3cfa0cca5ccd4a0fe1a25adabf3e40ef8e98
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/metastore
@@ -0,0 +1,8 @@
+
+#------------------------------------------------------------------------------
+# $File: metastore,v 1.1 2011/04/06 12:37:44 christos Exp $
+# metastore:  file(1) magic for metastore files
+# From: Thomas Wissen
+# see http://david.hardeman.nu/software.php#metastore
+0	string		MeTaSt00r3	Metastore data file, 
+>10	bequad		x		version %0llx
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mime b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mime
new file mode 100755
index 0000000000000000000000000000000000000000..42ca52dc6b58e5e14a368f83510c3f400e793e44
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mime
@@ -0,0 +1,9 @@
+
+#------------------------------------------------------------------------------
+# $File: mime,v 1.6 2010/11/25 15:00:12 christos Exp $
+# mime:  file(1) magic for MIME encoded files
+#
+0	string/t		Content-Type:\ 
+>14	string		>\0		%s
+0	string/t		Content-Type:
+>13	string		>\0		%s
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mips b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mips
new file mode 100755
index 0000000000000000000000000000000000000000..b49fecd24e90c566a8f45d0a0e38a86584cb72bd
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mips
@@ -0,0 +1,182 @@
+
+#------------------------------------------------------------------------------
+# $File: mips,v 1.7 2011/05/03 01:44:17 christos Exp $
+# mips:  file(1) magic for Silicon Graphics (MIPS, IRIS, IRIX, etc.)
+#                         Dec Ultrix (MIPS)
+# all of SGI's *current* machines and OSes run in big-endian mode on the
+# MIPS machines, as far as I know.
+#
+# XXX - what is the blank "-" line?
+#
+# kbd file definitions
+0	string	kbd!map		kbd map file
+>8	byte	>0		Ver %d:
+>10	short	>0		with %d table(s)
+0	belong	0407		old SGI 68020 executable
+0	belong	0410		old SGI 68020 pure executable
+0	beshort	0x8765		disk quotas file
+0	beshort	0x0506		IRIS Showcase file
+>2	byte	0x49		-
+>3	byte	x		- version %ld
+0	beshort	0x0226		IRIS Showcase template
+>2	byte	0x63		-
+>3	byte	x		- version %ld
+0	belong	0x5343464d	IRIS Showcase file
+>4	byte	x		- version %ld
+0	belong	0x5443464d	IRIS Showcase template
+>4	byte	x		- version %ld
+0	belong	0xdeadbabe	IRIX Parallel Arena
+>8	belong	>0		- version %ld
+#
+0	beshort	0x0160		MIPSEB ECOFF executable
+>20	beshort	0407		(impure)
+>20	beshort	0410		(swapped)
+>20	beshort	0413		(paged)
+>8	belong	>0		not stripped
+>8	belong	0		stripped
+>22	byte	x		- version %ld
+>23	byte	x		\b.%ld
+#
+0	beshort	0x0162		MIPSEL-BE ECOFF executable
+>20	beshort	0407		(impure)
+>20	beshort	0410		(swapped)
+>20	beshort	0413		(paged)
+>8	belong	>0		not stripped
+>8	belong	0		stripped
+>23	byte	x		- version %d
+>22	byte	x		\b.%ld
+#
+0	beshort	0x6001		MIPSEB-LE ECOFF executable
+>20	beshort	03401		(impure)
+>20	beshort	04001		(swapped)
+>20	beshort	05401		(paged)
+>8	belong	>0		not stripped
+>8	belong	0		stripped
+>23	byte	x		- version %d
+>22	byte	x		\b.%ld
+#
+0	beshort	0x6201		MIPSEL ECOFF executable
+>20	beshort	03401		(impure)
+>20	beshort	04001		(swapped)
+>20	beshort	05401		(paged)
+>8	belong	>0		not stripped
+>8	belong	0		stripped
+>23	byte	x		- version %ld
+>22	byte	x		\b.%ld
+#
+# MIPS 2 additions
+#
+0	beshort	0x0163		MIPSEB MIPS-II ECOFF executable
+>20	beshort	0407		(impure)
+>20	beshort	0410		(swapped)
+>20	beshort	0413		(paged)
+>8	belong	>0		not stripped
+>8	belong	0		stripped
+>22	byte	x		- version %ld
+>23	byte	x		\b.%ld
+#
+0	beshort	0x0166		MIPSEL-BE MIPS-II ECOFF executable
+>20	beshort	0407		(impure)
+>20	beshort	0410		(swapped)
+>20	beshort	0413		(paged)
+>8	belong	>0		not stripped
+>8	belong	0		stripped
+>22	byte	x		- version %ld
+>23	byte	x		\b.%ld
+#
+0	beshort	0x6301		MIPSEB-LE MIPS-II ECOFF executable
+>20	beshort	03401		(impure)
+>20	beshort	04001		(swapped)
+>20	beshort	05401		(paged)
+>8	belong	>0		not stripped
+>8	belong	0		stripped
+>23	byte	x		- version %ld
+>22	byte	x		\b.%ld
+#
+0	beshort	0x6601		MIPSEL MIPS-II ECOFF executable
+>20	beshort	03401		(impure)
+>20	beshort	04001		(swapped)
+>20	beshort	05401		(paged)
+>8	belong	>0		not stripped
+>8	belong	0		stripped
+>23	byte	x		- version %ld
+>22	byte	x		\b.%ld
+#
+# MIPS 3 additions
+#
+0	beshort	0x0140		MIPSEB MIPS-III ECOFF executable
+>20	beshort	0407		(impure)
+>20	beshort	0410		(swapped)
+>20	beshort	0413		(paged)
+>8	belong	>0		not stripped
+>8	belong	0		stripped
+>22	byte	x		- version %ld
+>23	byte	x		\b.%ld
+#
+0	beshort	0x0142		MIPSEL-BE MIPS-III ECOFF executable
+>20	beshort	0407		(impure)
+>20	beshort	0410		(swapped)
+>20	beshort	0413		(paged)
+>8	belong	>0		not stripped
+>8	belong	0		stripped
+>22	byte	x		- version %ld
+>23	byte	x		\b.%ld
+#
+0	beshort	0x4001		MIPSEB-LE MIPS-III ECOFF executable
+>20	beshort	03401		(impure)
+>20	beshort	04001		(swapped)
+>20	beshort	05401		(paged)
+>8	belong	>0		not stripped
+>8	belong	0		stripped
+>23	byte	x		- version %ld
+>22	byte	x		\b.%ld
+#
+0	beshort	0x4201		MIPSEL MIPS-III ECOFF executable
+>20	beshort	03401		(impure)
+>20	beshort	04001		(swapped)
+>20	beshort	05401		(paged)
+>8	belong	>0		not stripped
+>8	belong	0		stripped
+>23	byte	x		- version %ld
+>22	byte	x		\b.%ld
+#
+0	beshort	0x180		MIPSEB Ucode
+0	beshort	0x182		MIPSEL-BE Ucode
+# 32bit core file
+0	belong	0xdeadadb0	IRIX core dump
+>4	belong	1		of
+>16	string	>\0		'%s'
+# 64bit core file
+0	belong	0xdeadad40	IRIX 64-bit core dump
+>4	belong	1		of
+>16	string	>\0		'%s'
+# N32bit core file
+0       belong	0xbabec0bb	IRIX N32 core dump
+>4      belong	1               of
+>16     string	>\0             '%s'
+# New style crash dump file
+0	string	\x43\x72\x73\x68\x44\x75\x6d\x70	IRIX vmcore dump of
+>36	string	>\0					'%s'
+# Trusted IRIX info
+0	string	SGIAUDIT	SGI Audit file
+>8	byte	x		- version %d
+>9	byte	x		\b.%ld
+#
+0	string	WNGZWZSC	Wingz compiled script
+0	string	WNGZWZSS	Wingz spreadsheet
+0	string	WNGZWZHP	Wingz help file
+#
+0	string	#Inventor V	IRIS Inventor 1.0 file
+0	string	#Inventor V2	Open Inventor 2.0 file
+# GLF is OpenGL stream encoding
+0	string	glfHeadMagic();		GLF_TEXT
+4	belong	0x7d000000		GLF_BINARY_LSB_FIRST
+!:strength -30
+4	belong	0x0000007d		GLF_BINARY_MSB_FIRST
+!:strength -30
+# GLS is OpenGL stream encoding; GLS is the successor of GLF
+0	string	glsBeginGLS(		GLS_TEXT
+4	belong	0x10000000		GLS_BINARY_LSB_FIRST
+!:strength -30
+4	belong	0x00000010		GLS_BINARY_MSB_FIRST
+!:strength -30
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mirage b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mirage
new file mode 100755
index 0000000000000000000000000000000000000000..cdeb3fcbc2bbb09916cf8d07586db7aeed684148
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mirage
@@ -0,0 +1,8 @@
+
+#------------------------------------------------------------------------------
+# $File: mirage,v 1.7 2009/09/19 16:28:10 christos Exp $
+# mirage:  file(1) magic for Mirage executables
+#
+# XXX - byte order?
+#
+0	long	31415		Mirage Assembler m.out executable
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/misctools b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/misctools
new file mode 100755
index 0000000000000000000000000000000000000000..394706564ed7c2725399ce7a6b95ebd91caef0f8
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/misctools
@@ -0,0 +1,33 @@
+
+#-----------------------------------------------------------------------------
+# $File: misctools,v 1.12 2010/09/29 18:36:49 rrt Exp $
+# misctools:  file(1) magic for miscellaneous UNIX tools.
+#
+0	search/1	%%!!			X-Post-It-Note text
+0	string/c	BEGIN:VCALENDAR		vCalendar calendar file
+!:mime	text/calendar
+0	string/c	BEGIN:VCARD		vCard visiting card
+!:mime	text/x-vcard
+
+# From: Alex Beregszaszi <alex@fsn.hu>
+4	string	gtktalog		GNOME Catalogue (gtktalog)
+>13	string	>\0			version %s
+
+# Summary: GStreamer binary registry
+# Extension: .bin
+# Submitted by: Josh Triplett <josh@joshtriplett.org>
+0	belong	0xc0def00d		GStreamer binary registry
+>4	string	x			\b, version %s
+
+# Summary: Libtool library file
+# Extension: .la
+# Submitted by: Tomasz Trojanowski <tomek@uninet.com.pl>
+0	search/80	.la\ -\ a\ libtool\ library\ file	libtool library file
+
+# Summary: Libtool object file
+# Extension: .lo
+# Submitted by: Abel Cheung <abelcheung@gmail.com>
+0	search/80	.lo\ -\ a\ libtool\ object\ file	libtool object file
+
+# From: Daniel Novotny <dnovotny@redhat.com>
+0	string		MDMP\x93\xA7				MDMP crash report data
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mkid b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mkid
new file mode 100755
index 0000000000000000000000000000000000000000..faad3966c0d09246534d06d60430e9d6ca28c8dc
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mkid
@@ -0,0 +1,11 @@
+
+#------------------------------------------------------------------------------
+# $File: mkid,v 1.6 2009/09/19 16:28:10 christos Exp $
+# mkid:  file(1) magic for mkid(1) databases
+#
+# ID is the binary tags database produced by mkid(1).
+#
+# XXX - byte order?
+#
+0	string		\311\304	ID tags data
+>2	short		>0		version %d
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mlssa b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mlssa
new file mode 100755
index 0000000000000000000000000000000000000000..3c8875eb3d84482982d676f63503204e518fd2a5
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mlssa
@@ -0,0 +1,8 @@
+
+#------------------------------------------------------------------------------
+# $File: mlssa,v 1.4 2009/09/19 16:28:10 christos Exp $
+# mlssa: file(1) magic for MLSSA datafiles
+#
+0		lelong		0xffffabcd	MLSSA datafile,
+>4		leshort		x		algorithm %d,
+>10		lelong		x		%d samples
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mmdf b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mmdf
new file mode 100755
index 0000000000000000000000000000000000000000..5576a6627789e69ba453e6d5a9ac55dad9e8f5db
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mmdf
@@ -0,0 +1,6 @@
+
+#------------------------------------------------------------------------------
+# $File: mmdf,v 1.6 2009/09/19 16:28:10 christos Exp $
+# mmdf:  file(1) magic for MMDF mail files
+#
+0	string	\001\001\001\001	MMDF mailbox
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/modem b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/modem
new file mode 100755
index 0000000000000000000000000000000000000000..84bdb28776866b526d1c6dde35938f42b017349d
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/modem
@@ -0,0 +1,35 @@
+
+#------------------------------------------------------------------------------
+# $File: modem,v 1.5 2010/09/20 18:55:20 rrt Exp $
+# modem:  file(1) magic for modem programs
+#
+# From: Florian La Roche <florian@knorke.saar.de>
+1	string		PC\ Research,\ Inc	Digifax-G3-File
+>29	byte		1			\b, fine resolution
+>29	byte		0			\b, normal resolution
+
+0	short		0x0100		raw G3 data, byte-padded
+0	short		0x1400		raw G3 data
+#
+# Magic data for vgetty voice formats
+# (Martin Seine & Marc Eberhard)
+
+#
+# raw modem data version 1
+#
+0    string    RMD1      raw modem data
+>4   string    >\0       (%s /
+>20  short     >0        compression type 0x%04x)
+
+#
+# portable voice format 1
+#
+0    string    PVF1\n         portable voice format
+>5   string    >\0       (binary %s)
+
+#
+# portable voice format 2
+#
+0    string    PVF2\n         portable voice format
+>5   string >\0          (ascii %s)
+
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/motorola b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/motorola
new file mode 100755
index 0000000000000000000000000000000000000000..b56e5e483a457a6dd6abc0bd2df9b7094e310f5d
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/motorola
@@ -0,0 +1,71 @@
+
+#------------------------------------------------------------------------------
+# $File: motorola,v 1.10 2009/09/19 16:28:11 christos Exp $
+# motorola:  file(1) magic for Motorola 68K and 88K binaries
+#
+# 68K
+#
+0	beshort		0520		mc68k COFF
+>18	beshort		^00000020	object
+>18	beshort		&00000020	executable
+>12	belong		>0		not stripped
+>168	string		.lowmem		Apple toolbox
+>20	beshort		0407		(impure)
+>20	beshort		0410		(pure)
+>20	beshort		0413		(demand paged)
+>20	beshort		0421		(standalone)
+0	beshort		0521		mc68k executable (shared)
+>12	belong		>0		not stripped
+0	beshort		0522		mc68k executable (shared demand paged)
+>12	belong		>0		not stripped
+#
+# Motorola/UniSoft 68K Binary Compatibility Standard (BCS)
+#
+0	beshort		0554		68K BCS executable
+#
+# 88K
+#
+# Motorola/88Open BCS
+#
+0	beshort		0555		88K BCS executable
+#
+# Motorola S-Records, from Gerd Truschinski <gt@freebsd.first.gmd.de>
+0   string      S0          Motorola S-Record; binary data in text format
+
+# ATARI ST relocatable PRG
+#
+# from Oskar Schirmer <schirmer@scara.com> Feb 3, 2001
+# (according to Roland Waldi, Oct 21, 1987)
+# besides the magic 0x601a, the text segment size is checked to be
+# not larger than 1 MB (which is a lot on ST).
+# The additional 0x601b distinction I took from Doug Lee's magic.
+0	belong&0xFFFFFFF0	0x601A0000	Atari ST M68K contiguous executable
+>2	belong			x		(txt=%ld,
+>6	belong			x		dat=%ld,
+>10	belong			x		bss=%ld,
+>14	belong			x		sym=%ld)
+0	belong&0xFFFFFFF0	0x601B0000	Atari ST M68K non-contig executable
+>2	belong			x		(txt=%ld,
+>6	belong			x		dat=%ld,
+>10	belong			x		bss=%ld,
+>14	belong			x		sym=%ld)
+
+# Atari ST/TT... program format (sent by Wolfram Kleff <kleff@cs.uni-bonn.de>)
+0       beshort         0x601A          Atari 68xxx executable,
+>2      belong          x               text len %lu,
+>6      belong          x               data len %lu,
+>10     belong          x               BSS len %lu,
+>14     belong          x               symboltab len %lu,
+>18     belong          0
+>22     belong          &0x01           fastload flag,
+>22     belong          &0x02           may be loaded to alternate RAM,
+>22     belong          &0x04           malloc may be from alternate RAM,
+>22     belong          x               flags: 0x%lX,
+>26     beshort         0               no relocation tab
+>26     beshort         !0              + relocation tab
+>30     string          SFX             [Self-Extracting LZH SFX archive]
+>38     string          SFX             [Self-Extracting LZH SFX archive]
+>44     string          ZIP!            [Self-Extracting ZIP SFX archive]
+
+0       beshort         0x0064          Atari 68xxx CPX file
+>8      beshort         x               (version %04lx)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mozilla b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mozilla
new file mode 100755
index 0000000000000000000000000000000000000000..1f89589aa1bc251ae202dbec24c04554792695bd
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mozilla
@@ -0,0 +1,9 @@
+
+#------------------------------------------------------------------------------
+# $File: mozilla,v 1.4 2009/09/19 16:28:11 christos Exp $
+# mozilla:  file(1) magic for Mozilla XUL fastload files 
+# (XUL.mfasl and XPC.mfasl)
+# URL:	http://www.mozilla.org/
+# From:	Josh Triplett <josh@freedesktop.org>
+
+0	string	XPCOM\nMozFASL\r\n\x1A		Mozilla XUL fastload data
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/msdos b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/msdos
new file mode 100755
index 0000000000000000000000000000000000000000..d45d404e2856009605e5411fc0c5e55588ea87c7
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/msdos
@@ -0,0 +1,874 @@
+
+#------------------------------------------------------------------------------
+# $File: msdos,v 1.74 2011/06/06 13:01:41 christos Exp $
+# msdos:  file(1) magic for MS-DOS files
+#
+
+# .BAT files (Daniel Quinlan, quinlan@yggdrasil.com)
+# updated by Joerg Jenderek at Oct 2008,Apr 2011
+0	string/t	@			
+>1	string/cW	\ echo\ off	DOS batch file text
+!:mime	text/x-msdos-batch
+>1	string/cW	echo\ off	DOS batch file text
+!:mime	text/x-msdos-batch
+>1	string/cW	rem		DOS batch file text
+!:mime	text/x-msdos-batch
+>1	string/cW	set\ 		DOS batch file text
+!:mime	text/x-msdos-batch
+
+
+# OS/2 batch files are REXX. the second regex is a bit generic, oh well
+# the matched commands seem to be common in REXX and uncommon elsewhere
+100	search/0xffff   rxfuncadd
+>100	regex/c =^[\ \t]{0,10}call[\ \t]{1,10}rxfunc	OS/2 REXX batch file text
+100	search/0xffff   say
+>100	regex/c =^[\ \t]{0,10}say\ ['"]			OS/2 REXX batch file text
+
+0	leshort		0x14c	MS Windows COFF Intel 80386 object file
+#>4	ledate		x	stamp %s
+0	leshort		0x166	MS Windows COFF MIPS R4000 object file
+#>4	ledate		x	stamp %s
+0	leshort		0x184	MS Windows COFF Alpha object file
+#>4	ledate		x	stamp %s
+0	leshort		0x268	MS Windows COFF Motorola 68000 object file
+#>4	ledate		x	stamp %s
+0	leshort		0x1f0	MS Windows COFF PowerPC object file
+#>4	ledate		x	stamp %s
+0	leshort		0x290	MS Windows COFF PA-RISC object file
+#>4	ledate		x	stamp %s
+
+# Tests for various EXE types.
+#
+# Many of the compressed formats were extraced from IDARC 1.23 source code.
+#
+0	string	MZ
+!:mime	application/x-dosexec
+# All non-DOS EXE extensions have the relocation table more than 0x40 bytes into the file.
+>0x18	leshort <0x40 MS-DOS executable
+# These traditional tests usually work but not always.  When test quality support is
+# implemented these can be turned on.
+#>>0x18	leshort	0x1c	(Borland compiler)
+#>>0x18	leshort	0x1e	(MS compiler)
+
+# If the relocation table is 0x40 or more bytes into the file, it's definitely
+# not a DOS EXE.
+>0x18  leshort >0x3f
+
+# Maybe it's a PE?
+>>(0x3c.l) string PE\0\0 PE
+>>>(0x3c.l+24)	leshort		0x010b	\b32 executable
+>>>(0x3c.l+24)	leshort		0x020b	\b32+ executable
+>>>(0x3c.l+24)	leshort		0x0107	ROM image
+>>>(0x3c.l+24)	default		x	Unknown PE signature
+>>>>&0 		leshort		x	0x%x
+>>>(0x3c.l+22)	leshort&0x2000	>0	(DLL)
+>>>(0x3c.l+92)	leshort		1	(native)
+>>>(0x3c.l+92)	leshort		2	(GUI)
+>>>(0x3c.l+92)	leshort		3	(console)
+>>>(0x3c.l+92)	leshort		7	(POSIX)
+>>>(0x3c.l+92)	leshort		9	(Windows CE)
+>>>(0x3c.l+92)	leshort		10	(EFI application)
+>>>(0x3c.l+92)	leshort		11	(EFI boot service driver)
+>>>(0x3c.l+92)	leshort		12	(EFI runtime driver)
+>>>(0x3c.l+92)	leshort		13	(EFI ROM)
+>>>(0x3c.l+92)	leshort		14	(XBOX)
+>>>(0x3c.l+92)	leshort		15	(Windows boot application)
+>>>(0x3c.l+92)	default		x	(Unknown subsystem
+>>>>&0		leshort		x	0x%x)
+>>>(0x3c.l+4)	leshort		0x14c	Intel 80386
+>>>(0x3c.l+4)	leshort		0x166	MIPS R4000
+>>>(0x3c.l+4)	leshort		0x168	MIPS R10000
+>>>(0x3c.l+4)	leshort		0x184	Alpha
+>>>(0x3c.l+4)	leshort		0x1a2	Hitachi SH3
+>>>(0x3c.l+4)	leshort		0x1a6	Hitachi SH4
+>>>(0x3c.l+4)	leshort		0x1c0	ARM
+>>>(0x3c.l+4)	leshort		0x1c2	ARM Thumb
+>>>(0x3c.l+4)	leshort		0x1f0	PowerPC
+>>>(0x3c.l+4)	leshort		0x200	Intel Itanium
+>>>(0x3c.l+4)	leshort		0x266	MIPS16
+>>>(0x3c.l+4)	leshort		0x268	Motorola 68000
+>>>(0x3c.l+4)	leshort		0x290	PA-RISC
+>>>(0x3c.l+4)	leshort		0x366	MIPSIV
+>>>(0x3c.l+4)	leshort		0x466	MIPS16 with FPU
+>>>(0x3c.l+4)	leshort		0xebc	EFI byte code
+>>>(0x3c.l+4)	leshort		0x8664	x86-64
+>>>(0x3c.l+4)	leshort		0xc0ee	MSIL
+>>>(0x3c.l+4)	default		x	Unknown processor type
+>>>>&0		leshort		x	0x%x
+>>>(0x3c.l+22)	leshort&0x0200	>0	(stripped to external PDB)
+>>>(0x3c.l+22)	leshort&0x1000	>0	system file
+>>>(0x3c.l+24)	leshort		0x010b
+>>>>(0x3c.l+232) lelong	>0	Mono/.Net assembly
+>>>(0x3c.l+24)	leshort		0x020b
+>>>>(0x3c.l+248) lelong	>0	Mono/.Net assembly
+
+# hooray, there's a DOS extender using the PE format, with a valid PE
+# executable inside (which just prints a message and exits if run in win)
+>>>(8.s*16)		string		32STUB	\b, 32rtm DOS extender
+>>>(8.s*16)		string		!32STUB	\b, for MS Windows
+>>>(0x3c.l+0xf8)	string		UPX0 \b, UPX compressed
+>>>(0x3c.l+0xf8)	search/0x140	PEC2 \b, PECompact2 compressed
+>>>(0x3c.l+0xf8)	search/0x140	UPX2
+>>>>(&0x10.l+(-4))	string		PK\3\4 \b, ZIP self-extracting archive (Info-Zip)
+>>>(0x3c.l+0xf8)	search/0x140	.idata
+>>>>(&0xe.l+(-4))	string		PK\3\4 \b, ZIP self-extracting archive (Info-Zip)
+>>>>(&0xe.l+(-4))	string		ZZ0 \b, ZZip self-extracting archive
+>>>>(&0xe.l+(-4))	string		ZZ1 \b, ZZip self-extracting archive
+>>>(0x3c.l+0xf8)	search/0x140	.rsrc
+>>>>(&0x0f.l+(-4))	string		a\\\4\5 \b, WinHKI self-extracting archive
+>>>>(&0x0f.l+(-4))	string		Rar! \b, RAR self-extracting archive
+>>>>(&0x0f.l+(-4))	search/0x3000	MSCF \b, InstallShield self-extracting archive
+>>>>(&0x0f.l+(-4))	search/32	Nullsoft \b, Nullsoft Installer self-extracting archive
+>>>(0x3c.l+0xf8)	search/0x140	.data
+>>>>(&0x0f.l)		string		WEXTRACT \b, MS CAB-Installer self-extracting archive
+>>>(0x3c.l+0xf8)	search/0x140	.petite\0 \b, Petite compressed
+>>>>(0x3c.l+0xf7)	byte		x
+>>>>>(&0x104.l+(-4))	string		=!sfx! \b, ACE self-extracting archive
+>>>(0x3c.l+0xf8)	search/0x140	.WISE \b, WISE installer self-extracting archive
+>>>(0x3c.l+0xf8)	search/0x140	.dz\0\0\0 \b, Dzip self-extracting archive
+>>>&(0x3c.l+0xf8)	search/0x100	_winzip_ \b, ZIP self-extracting archive (WinZip)
+>>>&(0x3c.l+0xf8)	search/0x100	SharedD \b, Microsoft Installer self-extracting archive
+>>>0x30			string		Inno \b, InnoSetup self-extracting archive
+
+# Hmm, not a PE but the relocation table is too high for a traditional DOS exe,
+# must be one of the unusual subformats.
+>>(0x3c.l) string !PE\0\0 MS-DOS executable
+
+>>(0x3c.l)		string		NE \b, NE
+>>>(0x3c.l+0x36)	byte		1 for OS/2 1.x
+>>>(0x3c.l+0x36)	byte		2 for MS Windows 3.x
+>>>(0x3c.l+0x36)	byte		3 for MS-DOS
+>>>(0x3c.l+0x36)	byte		4 for Windows 386
+>>>(0x3c.l+0x36)	byte		5 for Borland Operating System Services
+>>>(0x3c.l+0x36)	default		x
+>>>>(0x3c.l+0x36)	byte		x (unknown OS %x)
+>>>(0x3c.l+0x36)	byte		0x81 for MS-DOS, Phar Lap DOS extender
+>>>(0x3c.l+0x0c)	leshort&0x8003	0x8002 (DLL)
+>>>(0x3c.l+0x0c)	leshort&0x8003	0x8001 (driver)
+>>>&(&0x24.s-1)		string		ARJSFX \b, ARJ self-extracting archive
+>>>(0x3c.l+0x70)	search/0x80	WinZip(R)\ Self-Extractor \b, ZIP self-extracting archive (WinZip)
+
+>>(0x3c.l)		string		LX\0\0 \b, LX
+>>>(0x3c.l+0x0a)	leshort		<1 (unknown OS)
+>>>(0x3c.l+0x0a)	leshort		1 for OS/2
+>>>(0x3c.l+0x0a)	leshort		2 for MS Windows
+>>>(0x3c.l+0x0a)	leshort		3 for DOS
+>>>(0x3c.l+0x0a)	leshort		>3 (unknown OS)
+>>>(0x3c.l+0x10)	lelong&0x28000	=0x8000 (DLL)
+>>>(0x3c.l+0x10)	lelong&0x20000	>0 (device driver)
+>>>(0x3c.l+0x10)	lelong&0x300	0x300 (GUI)
+>>>(0x3c.l+0x10)	lelong&0x28300	<0x300 (console)
+>>>(0x3c.l+0x08)	leshort		1 i80286
+>>>(0x3c.l+0x08)	leshort		2 i80386
+>>>(0x3c.l+0x08)	leshort		3 i80486
+>>>(8.s*16)		string		emx \b, emx
+>>>>&1			string		x %s
+>>>&(&0x54.l-3)		string		arjsfx \b, ARJ self-extracting archive
+
+# MS Windows system file, supposedly a collection of LE executables
+>>(0x3c.l)		string		W3 \b, W3 for MS Windows
+
+>>(0x3c.l)		string		LE\0\0 \b, LE executable
+>>>(0x3c.l+0x0a)	leshort		1
+# some DOS extenders use LE files with OS/2 header
+>>>>0x240		search/0x100	DOS/4G for MS-DOS, DOS4GW DOS extender
+>>>>0x240		search/0x200	WATCOM\ C/C++ for MS-DOS, DOS4GW DOS extender
+>>>>0x440		search/0x100	CauseWay\ DOS\ Extender for MS-DOS, CauseWay DOS extender
+>>>>0x40		search/0x40	PMODE/W for MS-DOS, PMODE/W DOS extender
+>>>>0x40		search/0x40	STUB/32A for MS-DOS, DOS/32A DOS extender (stub)
+>>>>0x40		search/0x80	STUB/32C for MS-DOS, DOS/32A DOS extender (configurable stub)
+>>>>0x40		search/0x80	DOS/32A for MS-DOS, DOS/32A DOS extender (embedded)
+# this is a wild guess; hopefully it is a specific signature
+>>>>&0x24		lelong		<0x50
+>>>>>(&0x4c.l)		string		\xfc\xb8WATCOM
+>>>>>>&0		search/8	3\xdbf\xb9 \b, 32Lite compressed
+# another wild guess: if real OS/2 LE executables exist, they probably have higher start EIP
+#>>>>(0x3c.l+0x1c)	lelong		>0x10000 for OS/2
+# fails with DOS-Extenders.
+>>>(0x3c.l+0x0a)	leshort		2 for MS Windows
+>>>(0x3c.l+0x0a)	leshort		3 for DOS
+>>>(0x3c.l+0x0a)	leshort		4 for MS Windows (VxD)
+>>>(&0x7c.l+0x26)	string		UPX \b, UPX compressed
+>>>&(&0x54.l-3)		string		UNACE \b, ACE self-extracting archive
+
+# looks like ASCII, probably some embedded copyright message.
+# and definitely not NE/LE/LX/PE
+>>0x3c		lelong	>0x20000000
+>>>(4.s*512)	leshort !0x014c \b, MZ for MS-DOS
+# header data too small for extended executable
+>2		long	!0
+>>0x18		leshort <0x40
+>>>(4.s*512)	leshort !0x014c
+
+>>>>&(2.s-514)	string	!LE
+>>>>>&-2	string	!BW \b, MZ for MS-DOS
+>>>>&(2.s-514)	string	LE \b, LE
+>>>>>0x240	search/0x100	DOS/4G for MS-DOS, DOS4GW DOS extender
+# educated guess since indirection is still not capable enough for complex offset
+# calculations (next embedded executable would be at &(&2*512+&0-2)
+# I suspect there are only LE executables in these multi-exe files
+>>>>&(2.s-514)	string	BW
+>>>>>0x240	search/0x100	DOS/4G ,\b LE for MS-DOS, DOS4GW DOS extender (embedded)
+>>>>>0x240	search/0x100	!DOS/4G ,\b BW collection for MS-DOS
+
+# This sequence skips to the first COFF segment, usually .text
+>(4.s*512)	leshort		0x014c \b, COFF
+>>(8.s*16)	string		go32stub for MS-DOS, DJGPP go32 DOS extender
+>>(8.s*16)	string		emx
+>>>&1		string		x for DOS, Win or OS/2, emx %s
+>>&(&0x42.l-3)	byte		x 
+>>>&0x26	string		UPX \b, UPX compressed
+# and yet another guess: small .text, and after large .data is unusal, could be 32lite
+>>&0x2c		search/0xa0	.text
+>>>&0x0b	lelong		<0x2000
+>>>>&0		lelong		>0x6000 \b, 32lite compressed
+
+>(8.s*16) string $WdX \b, WDos/X DOS extender
+
+# By now an executable type should have been printed out.  The executable
+# may be a self-uncompressing archive, so look for evidence of that and 
+# print it out.  
+#
+# Some signatures below from Greg Roelofs, newt@uchicago.edu.
+#
+>0x35	string	\x8e\xc0\xb9\x08\x00\xf3\xa5\x4a\x75\xeb\x8e\xc3\x8e\xd8\x33\xff\xbe\x30\x00\x05 \b, aPack compressed
+>0xe7	string	LH/2\ 	Self-Extract \b, %s
+>0x1c	string	UC2X	\b, UCEXE compressed
+>0x1c	string	WWP\ 	\b, WWPACK compressed
+>0x1c	string	RJSX 	\b, ARJ self-extracting archive
+>0x1c	string	diet 	\b, diet compressed
+>0x1c	string	LZ09 	\b, LZEXE v0.90 compressed
+>0x1c	string	LZ91 	\b, LZEXE v0.91 compressed
+>0x1c	string	tz 	\b, TinyProg compressed
+>0x1e	string	Copyright\ 1989-1990\ PKWARE\ Inc.	Self-extracting PKZIP archive
+!:mime	application/zip
+# Yes, this really is "Copr", not "Corp."
+>0x1e	string	PKLITE\ Copr.	Self-extracting PKZIP archive
+!:mime	application/zip
+# winarj stores a message in the stub instead of the sig in the MZ header
+>0x20	search/0xe0	aRJsfX \b, ARJ self-extracting archive
+>0x20	string AIN
+>>0x23	string 2	\b, AIN 2.x compressed
+>>0x23	string <2	\b, AIN 1.x compressed
+>>0x23	string >2	\b, AIN 1.x compressed
+>0x24	string	LHa's\ SFX \b, LHa self-extracting archive
+!:mime	application/x-lha
+>0x24	string	LHA's\ SFX \b, LHa self-extracting archive
+!:mime	application/x-lha
+>0x24	string	\ $ARX \b, ARX self-extracting archive
+>0x24	string	\ $LHarc \b, LHarc self-extracting archive
+>0x20	string	SFX\ by\ LARC \b, LARC self-extracting archive
+>0x40	string aPKG \b, aPackage self-extracting archive
+>0x64	string	W\ Collis\0\0 \b, Compack compressed
+>0x7a	string		Windows\ self-extracting\ ZIP	\b, ZIP self-extracting archive
+>>&0xf4 search/0x140 \x0\x40\x1\x0
+>>>(&0.l+(4)) string MSCF \b, WinHKI CAB self-extracting archive
+>1638	string	-lh5- \b, LHa self-extracting archive v2.13S
+>0x17888 string Rar! \b, RAR self-extracting archive
+
+# Skip to the end of the EXE.  This will usually work fine in the PE case
+# because the MZ image is hardcoded into the toolchain and almost certainly
+# won't match any of these signatures.
+>(4.s*512)	long	x 
+>>&(2.s-517)	byte	x 
+>>>&0	string		PK\3\4 \b, ZIP self-extracting archive
+>>>&0	string		Rar! \b, RAR self-extracting archive
+>>>&0	string		=!\x11 \b, AIN 2.x self-extracting archive
+>>>&0	string		=!\x12 \b, AIN 2.x self-extracting archive
+>>>&0	string		=!\x17 \b, AIN 1.x self-extracting archive
+>>>&0	string		=!\x18 \b, AIN 1.x self-extracting archive
+>>>&7	search/400	**ACE** \b, ACE self-extracting archive
+>>>&0	search/0x480	UC2SFX\ Header \b, UC2 self-extracting archive
+
+# a few unknown ZIP sfxes, no idea if they are needed or if they are
+# already captured by the generic patterns above
+>(8.s*16)	search/0x20	PKSFX \b, ZIP self-extracting archive (PKZIP)
+# TODO: how to add this? >FileSize-34 string Windows\ Self-Installing\ Executable \b, ZIP self-extracting archive
+#
+
+# TELVOX Teleinformatica CODEC self-extractor for OS/2:
+>49801	string	\x79\xff\x80\xff\x76\xff	\b, CODEC archive v3.21
+>>49824 leshort		=1			\b, 1 file
+>>49824 leshort		>1			\b, %u files
+
+# added by Joerg Jenderek of http://www.freedos.org/software/?prog=kc
+# and http://www.freedos.org/software/?prog=kpdos
+# for FreeDOS files like KEYBOARD.SYS, KEYBRD2.SYS, KEYBRD3.SYS, *.KBD
+0	string		KCF		FreeDOS KEYBoard Layout collection
+# only version=0x100 found
+>3	uleshort	x		\b, version 0x%x
+# length of string containing author,info and special characters
+>6	ubyte		>0		
+#>>6	pstring		x		\b, name=%s
+>>7	string		>\0		\b, author=%-.14s
+>>7	search/254	\xff		\b, info=
+#>>>&0	string		x		\b%-s
+>>>&0	string		x		\b%-.15s
+# for FreeDOS *.KL files 
+0	string		KLF		FreeDOS KEYBoard Layout file
+# only version=0x100 or 0x101 found
+>3	uleshort	x		\b, version 0x%x
+# stringlength
+>5	ubyte		>0		
+>>8	string		x		\b, name=%-.2s
+0	string	\xffKEYB\ \ \ \0\0\0\0	
+>12	string	\0\0\0\0`\360		MS-DOS KEYBoard Layout file
+
+# .COM formats (Daniel Quinlan, quinlan@yggdrasil.com)
+# Uncommenting only the first two lines will cover about 2/3 of COM files,
+# but it isn't feasible to match all COM files since there must be at least
+# two dozen different one-byte "magics".
+# test too generic ?
+0	byte		0xe9		DOS executable (COM)
+>0x1FE leshort		0xAA55		\b, boot code
+>6	string		SFX\ of\ LHarc	(%s)
+
+# DOS device driver updated by Joerg Jenderek at May 2011
+# http://maben.homeip.net/static/S100/IBM/software/DOS/DOS%20techref/CHAPTER.009
+0	ulequad&0x07a0ffffffff		0xffffffff		DOS executable (
+>40	search/7			UPX!			\bUPX compressed 
+# DOS device driver attributes
+>4	uleshort&0x8000			0x0000			\bblock device driver
+# character device
+>4	uleshort&0x8000			0x8000			\b
+>>4	uleshort&0x0008			0x0008			\bclock 
+# fast video output by int 29h
+>>4	uleshort&0x0010			0x0010			\bfast 
+# standard input/output device
+>>4	uleshort&0x0003			>0			\bstandard 
+>>>4	uleshort&0x0001			0x0001			\binput
+>>>4	uleshort&0x0003			0x0003			\b/
+>>>4	uleshort&0x0002			0x0002			\boutput 
+>>4	uleshort&0x8000			0x8000			\bcharacter device driver
+>0	ubyte				x			
+# upx compressed device driver has garbage instead of real in name field of header
+>>40	search/7			UPX!			
+>>40	default				x			
+# leading/trailing nulls, zeros or non ASCII characters in 8-byte name field at offset 10 are skipped
+>>>12		ubyte			>0x27			\b 
+>>>>10		ubyte			>0x20			
+>>>>>10		ubyte			!0x2E			
+>>>>>>10	ubyte			!0x2A			\b%c
+>>>>11		ubyte			>0x20			
+>>>>>11		ubyte			!0x2E			\b%c
+>>>>12		ubyte			>0x20			
+>>>>>12		ubyte			!0x39			
+>>>>>>12	ubyte			!0x2E			\b%c
+>>>13		ubyte			>0x20			
+>>>>13		ubyte			!0x2E			\b%c
+>>>>14		ubyte			>0x20			
+>>>>>14		ubyte			!0x2E			\b%c
+>>>>15		ubyte			>0x20			
+>>>>>15		ubyte			!0x2E			\b%c
+>>>>16		ubyte			>0x20			
+>>>>>16		ubyte			!0x2E			
+>>>>>>16	ubyte			<0xCB			\b%c
+>>>>17		ubyte			>0x20			
+>>>>>17		ubyte			!0x2E			
+>>>>>>17	ubyte			<0x90			\b%c
+# some character device drivers like ASPICD.SYS, btcdrom.sys and Cr_atapi.sys contain only spaces or points in name field
+>>>4		uleshort&0x8000		0x8000			
+>>>>12		ubyte			<0x2F			
+# they have their real name at offset 22
+>>>>>22		string			>\0			\b%-.5s
+>4	uleshort&0x8000			0x0000			
+# 32 bit sector adressing ( > 32 MB) for block devices
+>>4	uleshort&0x0002			0x0002			\b,32-bit sector-
+# support by driver functions 13h, 17h, 18h
+>4	uleshort&0x0040			0x0040			\b,IOCTL-
+# open, close, removable media support by driver functions 0Dh, 0Eh, 0Fh
+>4	uleshort&0x0800			0x0800			\b,close media-
+# output until busy support by int 10h for character device driver
+>4	uleshort&0x8000			0x8000			
+>>4	uleshort&0x2000			0x2000			\b,until busy-
+# direct read/write support by driver functions 03h,0Ch
+>4	uleshort&0x4000			0x4000			\b,control strings-
+>4	uleshort&0x8000			0x8000			
+>>4	uleshort&0x6840			>0			\bsupport
+>4	uleshort&0x8000			0x0000			
+>>4	uleshort&0x4842			>0			\bsupport
+>0	ubyte				x			\b)
+# DOS driver cmd640x.sys has 0x12 instead of 0xffffffff for pointer field to next device header 
+# Too weak, matches files that only contain 0's
+#0	ulequad&0x000007a0ffffffed	0x0000000000000000	DOS-executable (
+#>4	uleshort&0x8000			0x8000			\bcharacter device driver
+#>>10	string				x			%-.8s
+#>4	uleshort&0x4000			0x4000			\b,control strings-support)
+
+# test too generic ?
+0	byte		0x8c		DOS executable (COM)
+# updated by Joerg Jenderek at Oct 2008
+0	ulelong		0xffff10eb	DR-DOS executable (COM)
+# byte 0xeb conflicts with "sequent" magic leshort 0xn2eb
+0	ubeshort&0xeb8d	>0xeb00		
+# DR-DOS STACKER.COM SCREATE.SYS missed
+>0	byte		0xeb		DOS executable (COM)
+>>0x1FE leshort		0xAA55		\b, boot code
+>>85	string		UPX		\b, UPX compressed
+>>4	string		\ $ARX		\b, ARX self-extracting archive
+>>4	string		\ $LHarc	\b, LHarc self-extracting archive
+>>0x20e string		SFX\ by\ LARC	\b, LARC self-extracting archive
+# updated by Joerg Jenderek at Oct 2008
+#0	byte		0xb8		COM executable
+0	uleshort&0x80ff	0x00b8		
+# modified by Joerg Jenderek
+>1	lelong		!0x21cd4cff	COM executable for DOS
+# http://syslinux.zytor.com/comboot.php
+# (32-bit COMBOOT) programs *.C32 contain 32-bit code and run in flat-memory 32-bit protected mode
+# start with assembler instructions mov eax,21cd4cffh
+0	uleshort&0xc0ff	0xc0b8		
+>1	lelong		0x21cd4cff	COM executable (32-bit COMBOOT)
+# syslinux:doc/comboot.txt
+# A COM32R program must start with the byte sequence B8 FE 4C CD 21 (mov
+# eax,21cd4cfeh) as a magic number.
+0       string	\xb8\xfe\x4c\xcd\x21	COM executable (COM32R)
+# start with assembler instructions mov eax,21cd4cfeh
+0	uleshort&0xc0ff	0xc0b8		
+>1	lelong		0x21cd4cfe	COM executable (32-bit COMBOOT, relocatable)
+0	string	\x81\xfc		
+>4	string	\x77\x02\xcd\x20\xb9	
+>>36	string	UPX!			FREE-DOS executable (COM), UPX compressed
+252	string Must\ have\ DOS\ version DR-DOS executable (COM)
+# added by Joerg Jenderek at Oct 2008
+# GRR search is not working
+#34	search/2	UPX!		FREE-DOS executable (COM), UPX compressed
+34	string	UPX!			FREE-DOS executable (COM), UPX compressed
+35	string	UPX!			FREE-DOS executable (COM), UPX compressed
+# GRR search is not working
+#2	search/28	\xcd\x21	COM executable for MS-DOS
+#WHICHFAT.cOM
+2	string	\xcd\x21		COM executable for DOS
+#DELTREE.cOM DELTREE2.cOM
+4	string	\xcd\x21		COM executable for DOS
+#IFMEMDSK.cOM ASSIGN.cOM COMP.cOM
+5	string	\xcd\x21		COM executable for DOS
+#DELTMP.COm HASFAT32.cOM
+7	string	\xcd\x21		
+>0	byte	!0xb8			COM executable for DOS
+#COMP.cOM MORE.COm
+10	string	\xcd\x21		
+>5	string	!\xcd\x21		COM executable for DOS
+#comecho.com
+13	string	\xcd\x21		COM executable for DOS
+#HELP.COm EDIT.coM
+18	string	\xcd\x21		COM executable for MS-DOS
+#NWRPLTRM.COm
+23	string	\xcd\x21		COM executable for MS-DOS
+#LOADFIX.cOm LOADFIX.cOm
+30	string	\xcd\x21		COM executable for MS-DOS
+#syslinux.com 3.11
+70	string	\xcd\x21		COM executable for DOS
+# many compressed/converted COMs start with a copy loop instead of a jump
+0x6	search/0xa	\xfc\x57\xf3\xa5\xc3	COM executable for MS-DOS
+0x6	search/0xa	\xfc\x57\xf3\xa4\xc3	COM executable for DOS
+>0x18	search/0x10	\x50\xa4\xff\xd5\x73	\b, aPack compressed
+0x3c	string		W\ Collis\0\0		COM executable for MS-DOS, Compack compressed
+# FIXME: missing diet .com compression
+
+# miscellaneous formats
+0	string		LZ		MS-DOS executable (built-in)
+#0	byte		0xf0		MS-DOS program library data
+#
+
+# AAF files:
+# <stuartc@rd.bbc.co.uk> Stuart Cunningham
+0	string	\320\317\021\340\241\261\032\341AAFB\015\000OM\006\016\053\064\001\001\001\377			AAF legacy file using MS Structured Storage
+>30	byte	9		(512B sectors)
+>30	byte	12		(4kB sectors)
+0	string	\320\317\021\340\241\261\032\341\001\002\001\015\000\002\000\000\006\016\053\064\003\002\001\001			AAF file using MS Structured Storage
+>30	byte	9		(512B sectors)
+>30	byte	12		(4kB sectors)
+
+# Popular applications
+2080	string	Microsoft\ Word\ 6.0\ Document	%s
+!:mime	application/msword
+2080	string	Documento\ Microsoft\ Word\ 6 Spanish Microsoft Word 6 document data
+!:mime	application/msword
+# Pawel Wiecek <coven@i17linuxb.ists.pwr.wroc.pl> (for polish Word)
+2112	string	MSWordDoc			Microsoft Word document data
+!:mime	application/msword
+#
+0	belong	0x31be0000			Microsoft Word Document
+!:mime	application/msword
+#
+0	string	PO^Q`				Microsoft Word 6.0 Document
+!:mime	application/msword
+#
+0	string	\376\067\0\043			Microsoft Office Document
+!:mime	application/msword
+0	string	\333\245-\0\0\0			Microsoft Office Document
+!:mime	application/msword
+512	string		\354\245\301		Microsoft Word Document
+!:mime	application/msword
+#
+2080	string	Microsoft\ Excel\ 5.0\ Worksheet	%s
+!:mime	application/vnd.ms-excel
+
+2080	string	Foglio\ di\ lavoro\ Microsoft\ Exce	%s
+!:mime	application/vnd.ms-excel
+#
+# Pawel Wiecek <coven@i17linuxb.ists.pwr.wroc.pl> (for polish Excel)
+2114	string	Biff5		Microsoft Excel 5.0 Worksheet
+!:mime	application/vnd.ms-excel
+# Italian MS-Excel
+2121	string	Biff5		Microsoft Excel 5.0 Worksheet
+!:mime	application/vnd.ms-excel
+0	string	\x09\x04\x06\x00\x00\x00\x10\x00	Microsoft Excel Worksheet
+!:mime	application/vnd.ms-excel
+#
+0	belong	0x00001a00	Lotus 1-2-3
+!:mime	application/x-123
+>4	belong	0x00100400	wk3 document data
+>4	belong	0x02100400	wk4 document data
+>4	belong	0x07800100	fm3 or fmb document data
+>4	belong	0x07800000	fm3 or fmb document data
+#
+0	belong	0x00000200	Lotus 1-2-3
+!:mime	application/x-123
+>4	belong	0x06040600	wk1 document data
+>4	belong	0x06800200	fmt document data
+0	string		WordPro\0	Lotus WordPro
+!:mime	application/vnd.lotus-wordpro
+0	string		WordPro\r\373	Lotus WordPro
+!:mime	application/vnd.lotus-wordpro
+
+
+# Summary: Script used by InstallScield to uninstall applications
+# Extension: .isu
+# Submitted by: unknown
+# Modified by (1): Abel Cheung <abelcheung@gmail.com> (replace useless entry)
+0		string		\x71\xa8\x00\x00\x01\x02
+>12		string		Stirling\ Technologies,		InstallShield Uninstall Script
+
+# Winamp .avs
+#0	string	Nullsoft\ AVS\ Preset\ \060\056\061\032 A plug in for Winamp ms-windows Freeware media player
+0	string	Nullsoft\ AVS\ Preset\ 	Winamp plug in
+
+# Windows Metafont .WMF
+0	string	\327\315\306\232	ms-windows metafont .wmf
+0	string	\002\000\011\000	ms-windows metafont .wmf
+0	string	\001\000\011\000	ms-windows metafont .wmf
+
+#tz3 files whatever that is (MS Works files)
+0	string	\003\001\001\004\070\001\000\000	tz3 ms-works file
+0	string	\003\002\001\004\070\001\000\000	tz3 ms-works file
+0	string	\003\003\001\004\070\001\000\000	tz3 ms-works file
+
+# PGP sig files .sig
+#0 string \211\000\077\003\005\000\063\237\127 065 to  \027\266\151\064\005\045\101\233\021\002 PGP sig
+0 string \211\000\077\003\005\000\063\237\127\065\027\266\151\064\005\045\101\233\021\002 PGP sig
+0 string \211\000\077\003\005\000\063\237\127\066\027\266\151\064\005\045\101\233\021\002 PGP sig
+0 string \211\000\077\003\005\000\063\237\127\067\027\266\151\064\005\045\101\233\021\002 PGP sig
+0 string \211\000\077\003\005\000\063\237\127\070\027\266\151\064\005\045\101\233\021\002 PGP sig
+0 string \211\000\077\003\005\000\063\237\127\071\027\266\151\064\005\045\101\233\021\002 PGP sig
+0 string \211\000\225\003\005\000\062\122\207\304\100\345\042 PGP sig
+
+# windows zips files .dmf
+0	string	MDIF\032\000\010\000\000\000\372\046\100\175\001\000\001\036\001\000 MS Windows special zipped file
+
+
+#ico files
+0	string	\102\101\050\000\000\000\056\000\000\000\000\000\000\000	Icon for MS Windows
+
+# Windows icons (Ian Springer <ips@fpk.hp.com>)
+0	string	\000\000\001\000	MS Windows icon resource
+!:mime	image/x-icon
+>4	byte	1			- 1 icon
+>4	byte	>1			- %d icons
+>>6	byte	>0			\b, %dx
+>>>7	byte	>0			\b%d
+>>8	byte	0			\b, 256-colors
+>>8	byte	>0			\b, %d-colors
+
+
+# .chr files
+0	string	PK\010\010BGI	Borland font 
+>4	string	>\0	%s
+# then there is a copyright notice
+
+
+# .bgi files
+0	string	pk\010\010BGI	Borland device 
+>4	string	>\0	%s
+# then there is a copyright notice
+
+
+# Windows Recycle Bin record file (named INFO2)
+# By Abel Cheung (abelcheung AT gmail dot com)
+# Version 4 always has 280 bytes (0x118) per record, version 5 has 800 bytes
+# Since Vista uses another structure, INFO2 structure probably won't change
+# anymore. Detailed analysis in:
+# http://www.cybersecurityinstitute.biz/downloads/INFO2.pdf
+0	lelong		0x00000004
+>12	lelong		0x00000118	Windows Recycle Bin INFO2 file (Win98 or below)
+
+0	lelong		0x00000005
+>12	lelong		0x00000320	Windows Recycle Bin INFO2 file (Win2k - WinXP)
+
+
+##### put in Either Magic/font or Magic/news
+# Acroread or something	 files wrongly identified as G3	 .pfm
+# these have the form \000 \001 any? \002 \000 \000
+# or \000 \001 any? \022 \000 \000
+0	belong&0xffff00ff	0x00010012	PFM data
+>4	string			\000\000
+>6	string			>\060		- %s
+
+0	belong&0xffff00ff	0x00010002	PFM data
+>4	string			\000\000
+>6	string			>\060		- %s
+#0	string	\000\001 pfm?
+#>3	string	\022\000\000Copyright\	yes
+#>3	string	\002\000\000Copyright\	yes
+#>3	string	>\0	oops, not a font file. Cancel that.
+#it clashes with ttf files so put it lower down.
+
+# From Doug Lee via a FreeBSD pr
+9	string		GERBILDOC	First Choice document
+9	string		GERBILDB	First Choice database
+9	string		GERBILCLIP	First Choice database
+0	string		GERBIL		First Choice device file
+9	string		RABBITGRAPH	RabbitGraph file
+0	string		DCU1		Borland Delphi .DCU file
+0	string		=!<spell>	MKS Spell hash list (old format)
+0	string		=!<spell2>	MKS Spell hash list
+# Too simple - MPi
+#0	string		AH		Halo(TM) bitmapped font file
+0	lelong		0x08086b70	TurboC BGI file
+0	lelong		0x08084b50	TurboC Font file
+
+# WARNING: below line conflicts with Infocom game data Z-machine 3
+0	byte		0x03		DBase 3 data file
+>0x04	lelong		0		(no records)
+>0x04	lelong		>0		(%ld records)
+0	byte		0x83		DBase 3 data file with memo(s)
+>0x04	lelong		0		(no records)
+>0x04	lelong		>0		(%ld records)
+0	leshort		0x0006		DBase 3 index file
+0	string		PMCC		Windows 3.x .GRP file
+1	string		RDC-meg		MegaDots 
+>8	byte		>0x2F		version %c
+>9	byte		>0x2F		\b.%c file
+0	lelong		0x4C
+>4	lelong		0x00021401	Windows shortcut file
+
+# .PIF files added by Joerg Jenderek from http://smsoft.ru/en/pifdoc.htm
+# only for windows versions equal or greater 3.0
+0x171	string	MICROSOFT\ PIFEX\0	Windows Program Information File
+!:mime	application/x-dosexec
+#>2	string	 	>\0		\b, Title:%.30s
+>0x24	string		>\0		\b for %.63s
+>0x65	string		>\0		\b, directory=%.64s
+>0xA5	string		>\0		\b, parameters=%.64s
+#>0x181	leshort	x	\b, offset %x
+#>0x183	leshort	x	\b, offsetdata %x
+#>0x185	leshort	x	\b, section length %x
+>0x187	search/0xB55	WINDOWS\ VMM\ 4.0\0	
+>>&0x5e		ubyte	>0			
+>>>&-1		string	<PIFMGR.DLL		\b, icon=%s
+#>>>&-1		string	PIFMGR.DLL		\b, icon=%s
+>>>&-1		string	>PIFMGR.DLL		\b, icon=%s
+>>&0xF0		ubyte	>0			
+>>>&-1		string	<Terminal		\b, font=%.32s
+#>>>&-1		string	=Terminal		\b, font=%.32s
+>>>&-1		string	>Terminal		\b, font=%.32s
+>>&0x110	ubyte	>0			
+>>>&-1		string	<Lucida\ Console	\b, TrueTypeFont=%.32s
+#>>>&-1		string	=Lucida\ Console	\b, TrueTypeFont=%.32s
+>>>&-1		string	>Lucida\ Console	\b, TrueTypeFont=%.32s
+#>0x187	search/0xB55	WINDOWS\ 286\ 3.0\0	\b, Windows 3.X standard mode-style
+#>0x187	search/0xB55	WINDOWS\ 386\ 3.0\0	\b, Windows 3.X enhanced mode-style
+>0x187	search/0xB55	WINDOWS\ NT\ \ 3.1\0	\b, Windows NT-style
+#>0x187	search/0xB55	WINDOWS\ NT\ \ 4.0\0	\b, Windows NT-style
+>0x187	search/0xB55	CONFIG\ \ SYS\ 4.0\0	\b +CONFIG.SYS
+#>>&06		string	x			\b:%s
+>0x187	search/0xB55	AUTOEXECBAT\ 4.0\0	\b +AUTOEXEC.BAT
+#>>&06		string	x			\b:%s
+
+# DOS EPS Binary File Header
+# From: Ed Sznyter <ews@Black.Market.NET>
+0	belong		0xC5D0D3C6	DOS EPS Binary File
+>4	long		>0		Postscript starts at byte %d
+>>8	long		>0		length %d
+>>>12	long		>0		Metafile starts at byte %d
+>>>>16	long		>0		length %d
+>>>20	long		>0		TIFF starts at byte %d
+>>>>24	long		>0		length %d
+
+# TNEF magic From "Joomy" <joomy@se-ed.net> 
+# Microsoft Outlook's Transport Neutral Encapsulation Format (TNEF)
+0	leshort		0x223e9f78	TNEF
+!:mime	application/vnd.ms-tnef
+
+# HtmlHelp files (.chm)
+0	string	ITSF\003\000\000\000\x60\000\000\000\001\000\000\000	MS Windows HtmlHelp Data
+
+# GFA-BASIC (Wolfram Kleff)
+2	string		GFA-BASIC3	GFA-BASIC 3 data
+
+#------------------------------------------------------------------------------
+# From Stuart Caie <kyzer@4u.net> (developer of cabextract)
+# Microsoft Cabinet files
+0	string		MSCF\0\0\0\0	Microsoft Cabinet archive data
+!:mime application/vnd.ms-cab-compressed
+>8	lelong		x		\b, %u bytes
+>28	leshort		1		\b, 1 file
+>28	leshort		>1		\b, %u files
+
+# InstallShield Cabinet files
+0	string		ISc(		InstallShield Cabinet archive data
+>5	byte&0xf0	=0x60		version 6,
+>5	byte&0xf0	!0x60		version 4/5,
+>(12.l+40)	lelong	x		%u files
+
+# Windows CE package files
+0	string		MSCE\0\0\0\0	Microsoft WinCE install header
+>20	lelong		0		\b, architecture-independent
+>20	lelong		103		\b, Hitachi SH3
+>20	lelong		104		\b, Hitachi SH4
+>20	lelong		0xA11		\b, StrongARM
+>20	lelong		4000		\b, MIPS R4000
+>20	lelong		10003		\b, Hitachi SH3
+>20	lelong		10004		\b, Hitachi SH3E
+>20	lelong		10005		\b, Hitachi SH4
+>20	lelong		70001		\b, ARM 7TDMI
+>52	leshort		1		\b, 1 file
+>52	leshort		>1		\b, %u files
+>56	leshort		1		\b, 1 registry entry
+>56	leshort		>1		\b, %u registry entries
+
+
+# Windows Enhanced Metafile (EMF)
+# See msdn.microsoft.com/archive/en-us/dnargdi/html/msdn_enhmeta.asp 
+# for further information.
+0	ulelong 1
+>40	string	\ EMF		Windows Enhanced Metafile (EMF) image data
+>>44	ulelong x		version 0x%x
+
+# From: Alex Beregszaszi <alex@fsn.hu>
+0	string	COWD		VMWare3
+>4	byte	3		disk image
+>>32	lelong	x		(%d/
+>>36	lelong	x		\b%d/
+>>40	lelong	x		\b%d)
+>4	byte	2		undoable disk image
+>>32	string	>\0		(%s)
+
+0	string	VMDK		 VMware4 disk image
+0	string	KDMV		 VMware4 disk image
+
+#--------------------------------------------------------------------
+# Qemu Emulator Images
+# Lines written by Friedrich Schwittay (f.schwittay@yousable.de)
+# Updated by Adam Buchbinder (adam.buchbinder@gmail.com)
+# Made by reading sources, reading documentation, and doing trial and error
+# on existing QCOW files
+0	string	QFI\xFB	QEMU QCOW Image
+
+# Uncomment the following line to display Magic (only used for debugging
+# this magic number)
+#>0	string	x	, Magic: %s
+
+# There are currently 2 Versions: "1" and "2".
+# http://www.gnome.org/~markmc/qcow-image-format-version-1.html
+>4	belong	1	(v1)
+
+# Using the existence of the Backing File Offset to determine whether
+# to read Backing File Information
+>>12	belong	 >0	 \b, has backing file (
+# Note that this isn't a null-terminated string; the length is actually
+# (16.L). Assuming a null-terminated string happens to work usually, but it
+# may spew junk until it reaches a \0 in some cases.
+>>>(12.L)	 string >\0	\bpath %s
+
+# Modification time of the Backing File
+# Really useful if you want to know if your backing
+# file is still usable together with this image
+>>>>20	bedate >0	\b, mtime %s)
+>>>>20	default x	\b)
+
+# Size is stored in bytes in a big-endian u64.
+>>24	bequad	x	 \b, %lld bytes
+
+# 1 for AES encryption, 0 for none.
+>>36	belong	1	\b, AES-encrypted
+
+# http://www.gnome.org/~markmc/qcow-image-format.html
+>4	belong	2	(v2)
+# Using the existence of the Backing File Offset to determine whether
+# to read Backing File Information
+>>8	bequad  >0	 \b, has backing file
+# Note that this isn't a null-terminated string; the length is actually
+# (16.L). Assuming a null-terminated string happens to work usually, but it
+# may spew junk until it reaches a \0 in some cases. Also, since there's no
+# .Q modifier, we just use the bottom four bytes as an offset. Note that if
+# the file is over 4G, and the backing file path is stored after the first 4G,
+# the wrong filename will be printed. (This should be (8.Q), when that syntax
+# is introduced.)
+>>>(12.L)	 string >\0	(path %s)
+>>24	bequad	x	\b, %lld bytes
+>>32	belong	1	\b, AES-encrypted
+
+>4	default x	(unknown version)
+
+0	string	QEVM		QEMU suspend to disk image
+
+0	string	Bochs\ Virtual\ HD\ Image	Bochs disk image,
+>32	string	x				type %s,
+>48	string	x				subtype %s
+
+0	lelong	0x02468ace			Bochs Sparse disk image
+
+# from http://filext.com by Derek M Jones <derek@knosof.co.uk>
+# False positive with PPT (also currently this string is too long)
+#0	string	\xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3E\x00\x03\x00\xFE\xFF\x09\x00\x06	Microsoft Installer
+0	string	\320\317\021\340\241\261\032\341	Microsoft Office Document
+#>48	byte	0x1B					Excel Document
+#!:mime application/vnd.ms-excel
+>546	string	bjbj			Microsoft Word Document
+!:mime	application/msword
+>546	string	jbjb			Microsoft Word Document
+!:mime	application/msword
+
+0	string	\224\246\056		Microsoft Word Document
+!:mime	application/msword
+
+512	string	R\0o\0o\0t\0\ \0E\0n\0t\0r\0y	Microsoft Word Document
+!:mime	application/msword
+
+# From: "Nelson A. de Oliveira" <naoliv@gmail.com>
+# Magic type for Dell's BIOS .hdr files
+# Dell's .hdr
+0	string $RBU
+>23	string Dell			%s system BIOS
+>5	byte   2
+>>48	byte   x			version %d.
+>>49	byte   x			\b%d.
+>>50	byte   x			\b%d
+>5	byte   <2
+>>48	string x			version %.3s
+
+# Type: Microsoft DirectDraw Surface
+# URL:	http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_c/directx/graphics/reference/DDSFileReference/ddsfileformat.asp
+# From: Morten Hustveit <morten@debian.org>
+0	string	DDS\040\174\000\000\000 Microsoft DirectDraw Surface (DDS),
+>16	lelong	>0			%hd x
+>12	lelong	>0			%hd,
+>84	string	x			%.4s
+
+# Type: Microsoft Document Imaging Format (.mdi)
+# URL:	http://en.wikipedia.org/wiki/Microsoft_Document_Imaging_Format
+# From: Daniele Sempione <scrows@oziosi.org>
+0	short	0x5045			Microsoft Document Imaging Format
+
+# MS eBook format (.lit)
+0	string	ITOLITLS		Microsoft Reader eBook Data
+>8	lelong	x			\b, version %u
+!:mime					application/x-ms-reader
+
+# Windows CE Binary Image Data Format
+# From: Dr. Jesus <j@hug.gs>
+0	string	B000FF\n	Windows Embedded CE binary image
+
+# Windows Imaging (WIM) Image
+0	string	MSWIM\000\000\000	Windows imaging (WIM) image
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/msooxml b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/msooxml
new file mode 100755
index 0000000000000000000000000000000000000000..6ccebf641bfc71fe04cc35b40cda6682a95fd45d
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/msooxml
@@ -0,0 +1,33 @@
+
+#------------------------------------------------------------------------------
+# $File: msooxml,v 1.1 2011/01/25 18:36:19 christos Exp $
+# msooxml:  file(1) magic for Microsoft Office XML
+# From: Ralf Brown <ralf.brown@gmail.com>
+
+# .docx, .pptx, and .xlsx are XML plus other files inside a ZIP
+#   archive.  The first member file is normally "[Content_Types].xml".
+# Since MSOOXML doesn't have anything like the uncompressed "mimetype"
+#   file of ePub or OpenDocument, we'll have to scan for a filename
+#   which can distinguish between the three types
+
+# start by checking for ZIP local file header signature
+0               string          PK\003\004
+# make sure the first file is correct
+>0x1E           string          [Content_Types].xml
+# skip to the second local file header
+#   since some documents include a 520-byte extra field following the file
+#   header,  we need to scan for the next header
+>>(18.l+49)     search/2000     PK\003\004
+# now skip to the *third* local file header; again, we need to scan due to a
+#   520-byte extra field following the file header
+>>>&26          search/1000     PK\003\004
+# and check the subdirectory name to determine which type of OOXML
+#   file we have
+>>>>&26         string          word/           Microsoft Word 2007+
+!:mime application/msword
+>>>>&26         string          ppt/            Microsoft PowerPoint 2007+
+!:mime application/vnd.ms-powerpoint
+>>>>&26         string          xl/             Microsoft Excel 2007+
+!:mime application/vnd.ms-excel
+>>>>&26         default         x               Microsoft OOXML
+!:strength +10
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/msvc b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/msvc
new file mode 100755
index 0000000000000000000000000000000000000000..1095d05109ae0a73a1c49dd4bb015092859e4a99
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/msvc
@@ -0,0 +1,45 @@
+
+#------------------------------------------------------------------------------
+# $File: msvc,v 1.5 2009/09/19 16:28:11 christos Exp $
+# msvc:  file(1) magic for msvc
+# "H. Nanosecond" <aldomel@ix.netcom.com>
+# Microsoft visual C
+# 
+# I have version 1.0
+
+# .aps
+0	string	HWB\000\377\001\000\000\000	Microsoft Visual C .APS file
+
+# .ide
+#too long 0	string	\102\157\162\154\141\156\144\040\103\053\053\040\120\162\157\152\145\143\164\040\106\151\154\145\012\000\032\000\002\000\262\000\272\276\372\316	MSVC .ide
+0	string	\102\157\162\154\141\156\144\040\103\053\053\040\120\162\157	MSVC .ide
+
+# .res
+0	string	\000\000\000\000\040\000\000\000\377	MSVC .res
+0	string	\377\003\000\377\001\000\020\020\350	MSVC .res
+0	string	\377\003\000\377\001\000\060\020\350	MSVC .res
+
+#.lib
+0	string	\360\015\000\000	Microsoft Visual C library
+0	string	\360\075\000\000	Microsoft Visual C library
+0	string	\360\175\000\000	Microsoft Visual C library
+
+#.pch
+0	string	DTJPCH0\000\022\103\006\200	Microsoft Visual C .pch
+
+# .pdb
+# too long 0	string	Microsoft\ C/C++\ program\ database\ 
+0	string	Microsoft\ C/C++\ 	MSVC program database
+>18	string	program\ database\ 	
+>33	string	>\0	ver %s
+
+#.sbr
+0	string	\000\002\000\007\000	MSVC .sbr
+>5	string 	>\0	%s
+
+#.bsc
+0	string	\002\000\002\001	MSVC .bsc
+
+#.wsp
+0	string	1.00\ .0000.0000\000\003	MSVC .wsp version 1.0000.0000
+# these seem to start with the version and contain menus
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mup b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mup
new file mode 100755
index 0000000000000000000000000000000000000000..5060c01dd8bfbef1602feeb163157413062cbdbe
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/mup
@@ -0,0 +1,24 @@
+
+# ------------------------------------------------------------------------
+# $File: mup,v 1.4 2009/09/19 16:28:11 christos Exp $
+# mup: file(1) magic for Mup (Music Publisher) input file.
+#
+# From: Abel Cheung <abel (@) oaka.org>
+#
+# NOTE: This header is mainly proposed in the Arkkra mailing list,
+# and is not a mandatory header because of old mup input file
+# compatibility. Noteedit also use mup format, but is not forcing
+# user to use any header as well.
+#
+0		search/1	//!Mup		Mup music publication program input text
+>6		string		-Arkkra		(Arkkra)
+>>13		string		-		
+>>>16		string		.		
+>>>>14		string		x		\b, need V%.4s
+>>>15		string		.		
+>>>>14		string		x		\b, need V%.3s
+>6		string		-		
+>>9		string		.		
+>>>7		string		x		\b, need V%.4s
+>>8		string		.		
+>>>7		string		x		\b, need V%.3s
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/natinst b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/natinst
new file mode 100755
index 0000000000000000000000000000000000000000..7c319801260acce5ac9678d794f4023f0c1740d9
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/natinst
@@ -0,0 +1,24 @@
+
+#-----------------------------------------------------------------------------
+# $File: natinst,v 1.4 2009/09/19 16:28:11 christos Exp $
+# natinst:  file(1) magic for National Instruments Code Files
+
+#
+# From <egamez@fcfm.buap.mx> Enrique G�mez-Flores
+# version 1
+# Many formats still missing, we use, for the moment LabVIEW
+# We guess VXI format file. VISA, LabWindowsCVI, BridgeVIEW, etc, are missing
+#
+0       string          RSRC            National Instruments,
+# Check if it's a LabVIEW File
+>8      string          LV              LabVIEW File,
+# Check wich kind of file is
+>>10    string          SB              Code Resource File, data
+>>10    string          IN              Virtual Instrument Program, data
+>>10    string          AR              VI Library, data
+# This is for Menu Libraries
+>8      string          LMNULBVW        Portable File Names, data
+# This is for General Resources
+>8      string          rsc             Resources File, data
+# This is for VXI Package
+0       string          VMAP            National Instruments, VXI File, data
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ncr b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ncr
new file mode 100755
index 0000000000000000000000000000000000000000..4067596f592eaee864ac303199c997b415708083
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ncr
@@ -0,0 +1,49 @@
+
+#------------------------------------------------------------------------------
+# $File: ncr,v 1.7 2009/09/19 16:28:11 christos Exp $
+# ncr:  file(1) magic for NCR Tower objects
+#
+# contributed by
+# Michael R. Wayne  ***  TMC & Associates  ***  INTERNET: wayne@ford-vax.arpa
+# uucp: {philabs | pyramid} !fmsrl7!wayne   OR   wayne@fmsrl7.UUCP
+#
+0	beshort		000610	Tower/XP rel 2 object
+>12	   belong		>0	not stripped
+>20	   beshort		0407	executable
+>20	   beshort		0410	pure executable
+>22	   beshort		>0	- version %ld
+0	beshort		000615	Tower/XP rel 2 object
+>12	   belong		>0	not stripped
+>20	   beshort		0407	executable
+>20	   beshort		0410	pure executable
+>22	   beshort		>0	- version %ld
+0	beshort		000620	Tower/XP rel 3 object
+>12	   belong		>0	not stripped
+>20	   beshort		0407	executable
+>20	   beshort		0410	pure executable
+>22	   beshort		>0	- version %ld
+0	beshort		000625	Tower/XP rel 3 object
+>12	   belong		>0	not stripped
+>20	   beshort		0407	executable
+>20	   beshort		0410	pure executable
+>22	   beshort		>0	- version %ld
+0	beshort		000630	Tower32/600/400 68020 object
+>12	   belong		>0	not stripped
+>20	   beshort		0407	executable
+>20	   beshort		0410	pure executable
+>22	   beshort		>0	- version %ld
+0	beshort		000640	Tower32/800 68020
+>18	   beshort		&020000	w/68881 object
+>18	   beshort		&040000	compatible object
+>18	   beshort		&060000	object
+>20	   beshort		0407	executable
+>20	   beshort		0413	pure executable
+>12	   belong		>0	not stripped
+>22	   beshort		>0	- version %ld
+0	beshort		000645	Tower32/800 68010
+>18	   beshort		&040000	compatible object
+>18	   beshort		&060000 object
+>20	   beshort		0407	executable
+>20	   beshort		0413	pure executable
+>12	   belong		>0	not stripped
+>22	   beshort		>0	- version %ld
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/netbsd b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/netbsd
new file mode 100755
index 0000000000000000000000000000000000000000..a889a31ecc5e7cebb7fc5865c54a35a9f6ca0a82
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/netbsd
@@ -0,0 +1,247 @@
+
+#------------------------------------------------------------------------------
+# $File: netbsd,v 1.18 2009/09/19 16:28:11 christos Exp $
+# netbsd:  file(1) magic for NetBSD objects
+#
+# All new-style magic numbers are in network byte order.
+#
+
+0	lelong			000000407	a.out NetBSD little-endian object file
+>16	lelong			>0		not stripped
+0	belong			000000407	a.out NetBSD big-endian object file
+>16	belong			>0		not stripped
+
+0	belong&0377777777	041400413	a.out NetBSD/i386 demand paged
+>0	byte			&0x80		
+>>20	lelong			<4096		shared library
+>>20	lelong			=4096		dynamically linked executable
+>>20	lelong			>4096		dynamically linked executable
+>0	byte			^0x80		executable
+>16	lelong			>0		not stripped
+0	belong&0377777777	041400410	a.out NetBSD/i386 pure
+>0	byte			&0x80		dynamically linked executable
+>0	byte			^0x80		executable
+>16	lelong			>0		not stripped
+0	belong&0377777777	041400407	a.out NetBSD/i386
+>0	byte			&0x80		dynamically linked executable
+>0	byte			^0x80
+>>0	byte			&0x40		position independent
+>>20	lelong			!0		executable
+>>20	lelong			=0		object file
+>16	lelong			>0		not stripped
+0	belong&0377777777	041400507	a.out NetBSD/i386 core
+>12	string			>\0		from '%s'
+>32	lelong			!0		(signal %d)
+
+0	belong&0377777777	041600413	a.out NetBSD/m68k demand paged
+>0	byte			&0x80		
+>>20	belong			<8192		shared library
+>>20	belong			=8192		dynamically linked executable
+>>20	belong			>8192		dynamically linked executable
+>0	byte			^0x80		executable
+>16	belong			>0		not stripped
+0	belong&0377777777	041600410	a.out NetBSD/m68k pure
+>0	byte			&0x80		dynamically linked executable
+>0	byte			^0x80		executable
+>16	belong			>0		not stripped
+0	belong&0377777777	041600407	a.out NetBSD/m68k
+>0	byte			&0x80		dynamically linked executable
+>0	byte			^0x80
+>>0	byte			&0x40		position independent
+>>20	belong			!0		executable
+>>20	belong			=0		object file
+>16	belong			>0		not stripped
+0	belong&0377777777	041600507	a.out NetBSD/m68k core
+>12	string			>\0		from '%s'
+>32	belong			!0		(signal %d)
+
+0	belong&0377777777	042000413	a.out NetBSD/m68k4k demand paged
+>0	byte			&0x80		
+>>20	belong			<4096		shared library
+>>20	belong			=4096		dynamically linked executable
+>>20	belong			>4096		dynamically linked executable
+>0	byte			^0x80		executable
+>16	belong			>0		not stripped
+0	belong&0377777777	042000410	a.out NetBSD/m68k4k pure
+>0	byte			&0x80		dynamically linked executable
+>0	byte			^0x80		executable
+>16	belong			>0		not stripped
+0	belong&0377777777	042000407	a.out NetBSD/m68k4k
+>0	byte			&0x80		dynamically linked executable
+>0	byte			^0x80
+>>0	byte			&0x40		position independent
+>>20	belong			!0		executable
+>>20	belong			=0		object file
+>16	belong			>0		not stripped
+0	belong&0377777777	042000507	a.out NetBSD/m68k4k core
+>12	string			>\0		from '%s'
+>32	belong			!0		(signal %d)
+
+0	belong&0377777777	042200413	a.out NetBSD/ns32532 demand paged
+>0	byte			&0x80		
+>>20	lelong			<4096		shared library
+>>20	lelong			=4096		dynamically linked executable
+>>20	lelong			>4096		dynamically linked executable
+>0	byte			^0x80		executable
+>16	lelong			>0		not stripped
+0	belong&0377777777	042200410	a.out NetBSD/ns32532 pure
+>0	byte			&0x80		dynamically linked executable
+>0	byte			^0x80		executable
+>16	lelong			>0		not stripped
+0	belong&0377777777	042200407	a.out NetBSD/ns32532
+>0	byte			&0x80		dynamically linked executable
+>0	byte			^0x80
+>>0	byte			&0x40		position independent
+>>20	lelong			!0		executable
+>>20	lelong			=0		object file
+>16	lelong			>0		not stripped
+0	belong&0377777777	042200507	a.out NetBSD/ns32532 core
+>12	string			>\0		from '%s'
+>32	lelong			!0		(signal %d)
+
+0	belong&0377777777	045200507	a.out NetBSD/powerpc core
+>12	string			>\0		from '%s'
+
+0	belong&0377777777	042400413	a.out NetBSD/sparc demand paged
+>0	byte			&0x80		
+>>20	belong			<8192		shared library
+>>20	belong			=8192		dynamically linked executable
+>>20	belong			>8192		dynamically linked executable
+>0	byte			^0x80		executable
+>16	belong			>0		not stripped
+0	belong&0377777777	042400410	a.out NetBSD/sparc pure
+>0	byte			&0x80		dynamically linked executable
+>0	byte			^0x80		executable
+>16	belong			>0		not stripped
+0	belong&0377777777	042400407	a.out NetBSD/sparc
+>0	byte			&0x80		dynamically linked executable
+>0	byte			^0x80
+>>0	byte			&0x40		position independent
+>>20	belong			!0		executable
+>>20	belong			=0		object file
+>16	belong			>0		not stripped
+0	belong&0377777777	042400507	a.out NetBSD/sparc core
+>12	string			>\0		from '%s'
+>32	belong			!0		(signal %d)
+
+0	belong&0377777777	042600413	a.out NetBSD/pmax demand paged
+>0	byte			&0x80		
+>>20	lelong			<4096		shared library
+>>20	lelong			=4096		dynamically linked executable
+>>20	lelong			>4096		dynamically linked executable
+>0	byte			^0x80		executable
+>16	lelong			>0		not stripped
+0	belong&0377777777	042600410	a.out NetBSD/pmax pure
+>0	byte			&0x80		dynamically linked executable
+>0	byte			^0x80		executable
+>16	lelong			>0		not stripped
+0	belong&0377777777	042600407	a.out NetBSD/pmax
+>0	byte			&0x80		dynamically linked executable
+>0	byte			^0x80
+>>0	byte			&0x40		position independent
+>>20	lelong			!0		executable
+>>20	lelong			=0		object file
+>16	lelong			>0		not stripped
+0	belong&0377777777	042600507	a.out NetBSD/pmax core
+>12	string			>\0		from '%s'
+>32	lelong			!0		(signal %d)
+
+0	belong&0377777777	043000413	a.out NetBSD/vax 1k demand paged
+>0	byte			&0x80		
+>>20	lelong			<4096		shared library
+>>20	lelong			=4096		dynamically linked executable
+>>20	lelong			>4096		dynamically linked executable
+>0	byte			^0x80		executable
+>16	lelong			>0		not stripped
+0	belong&0377777777	043000410	a.out NetBSD/vax 1k pure
+>0	byte			&0x80		dynamically linked executable
+>0	byte			^0x80		executable
+>16	lelong			>0		not stripped
+0	belong&0377777777	043000407	a.out NetBSD/vax 1k
+>0	byte			&0x80		dynamically linked executable
+>0	byte			^0x80
+>>0	byte			&0x40		position independent
+>>20	lelong			!0		executable
+>>20	lelong			=0		object file
+>16	lelong			>0		not stripped
+0	belong&0377777777	043000507	a.out NetBSD/vax 1k core
+>12	string			>\0		from '%s'
+>32	lelong			!0		(signal %d)
+
+0	belong&0377777777	045400413	a.out NetBSD/vax 4k demand paged
+>0	byte			&0x80		
+>>20	lelong			<4096		shared library
+>>20	lelong			=4096		dynamically linked executable
+>>20	lelong			>4096		dynamically linked executable
+>0	byte			^0x80		executable
+>16	lelong			>0		not stripped
+0	belong&0377777777	045400410	a.out NetBSD/vax 4k pure
+>0	byte			&0x80		dynamically linked executable
+>0	byte			^0x80		executable
+>16	lelong			>0		not stripped
+0	belong&0377777777	045400407	a.out NetBSD/vax 4k
+>0	byte			&0x80		dynamically linked executable
+>0	byte			^0x80
+>>0	byte			&0x40		position independent
+>>20	lelong			!0		executable
+>>20	lelong			=0		object file
+>16	lelong			>0		not stripped
+0	belong&0377777777	045400507	a.out NetBSD/vax 4k core
+>12	string			>\0		from '%s'
+>32	lelong			!0		(signal %d)
+
+# NetBSD/alpha does not support (and has never supported) a.out objects,
+# so no rules are provided for them.  NetBSD/alpha ELF objects are 
+# dealt with in "elf".
+0	lelong		0x00070185		ECOFF NetBSD/alpha binary
+>10	leshort		0x0001			not stripped
+>10	leshort		0x0000			stripped
+0	belong&0377777777	043200507	a.out NetBSD/alpha core
+>12	string			>\0		from '%s'
+>32	lelong			!0		(signal %d)
+
+0	belong&0377777777	043400413	a.out NetBSD/mips demand paged
+>0	byte			&0x80		
+>>20	belong			<8192		shared library
+>>20	belong			=8192		dynamically linked executable
+>>20	belong			>8192		dynamically linked executable
+>0	byte			^0x80		executable
+>16	belong			>0		not stripped
+0	belong&0377777777	043400410	a.out NetBSD/mips pure
+>0	byte			&0x80		dynamically linked executable
+>0	byte			^0x80		executable
+>16	belong			>0		not stripped
+0	belong&0377777777	043400407	a.out NetBSD/mips
+>0	byte			&0x80		dynamically linked executable
+>0	byte			^0x80
+>>0	byte			&0x40		position independent
+>>20	belong			!0		executable
+>>20	belong			=0		object file
+>16	belong			>0		not stripped
+0	belong&0377777777	043400507	a.out NetBSD/mips core
+>12	string			>\0		from '%s'
+>32	belong			!0		(signal %d)
+
+0	belong&0377777777	043600413	a.out NetBSD/arm32 demand paged
+>0	byte			&0x80
+>>20	lelong			<4096		shared library
+>>20	lelong			=4096		dynamically linked executable
+>>20	lelong			>4096		dynamically linked executable
+>0	byte			^0x80		executable
+>16	lelong			>0		not stripped
+0	belong&0377777777	043600410	a.out NetBSD/arm32 pure
+>0	byte			&0x80		dynamically linked executable
+>0	byte			^0x80		executable
+>16	lelong			>0		not stripped
+0	belong&0377777777	043600407	a.out NetBSD/arm32
+>0	byte			&0x80		dynamically linked executable
+>0	byte			^0x80
+>>0	byte			&0x40		position independent
+>>20	lelong			!0		executable
+>>20	lelong			=0		object file
+>16	lelong			>0		not stripped
+# NetBSD/arm26 has always used ELF objects, but it shares a core file
+# format with NetBSD/arm32.
+0	belong&0377777777	043600507	a.out NetBSD/arm core
+>12	string			>\0		from '%s'
+>32	lelong			!0		(signal %d)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/netscape b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/netscape
new file mode 100755
index 0000000000000000000000000000000000000000..942f08adb1cbd37165a5933076f9c3f31132588c
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/netscape
@@ -0,0 +1,25 @@
+
+#------------------------------------------------------------------------------
+# $File: netscape,v 1.6 2009/09/19 16:28:11 christos Exp $
+# netscape:  file(1) magic for Netscape files
+# "H. Nanosecond" <aldomel@ix.netcom.com>
+# version 3 and 4 I think
+#
+
+# Netscape Address book  .nab
+0	string \000\017\102\104\000\000\000\000\000\000\001\000\000\000\000\002\000\000\000\002\000\000\004\000 Netscape Address book
+
+# Netscape Communicator address book
+0   string   \000\017\102\111 Netscape Communicator address book
+
+# .snm Caches
+0	string		#\ Netscape\ folder\ cache	Netscape folder cache
+0	string	\000\036\204\220\000	Netscape folder cache
+# .n2p 
+# Net 2 Phone 
+#0	string	123\130\071\066\061\071\071\071\060\070\061\060\061\063\060
+0	string	SX961999	Net2phone
+
+#
+#This is files ending in .art, FIXME add more rules
+0       string          JG\004\016\0\0\0\0      ART
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/netware b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/netware
new file mode 100755
index 0000000000000000000000000000000000000000..c3f57e83819afb49b9687ce302c047dfa39cf1ab
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/netware
@@ -0,0 +1,7 @@
+
+#------------------------------------------------------------------------------
+# $File: netware,v 1.4 2009/09/19 16:28:11 christos Exp $
+# netware:  file(1) magic for NetWare Loadable Modules (NLMs)
+# From: Mads Martin Joergensen <mmj@suse.de>
+
+0	string	NetWare\ Loadable\ Module	NetWare Loadable Module
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/news b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/news
new file mode 100755
index 0000000000000000000000000000000000000000..eea8aed765f727784ca308f502b04ba28b72d70c
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/news
@@ -0,0 +1,13 @@
+
+#------------------------------------------------------------------------------
+# $File: news,v 1.6 2009/09/19 16:28:11 christos Exp $
+# news:  file(1) magic for SunOS NeWS fonts (not "news" as in "netnews")
+#
+0	string		StartFontMetrics	ASCII font metrics
+0	string		StartFont	ASCII font bits
+0	belong		0x137A2944	NeWS bitmap font
+0	belong		0x137A2947	NeWS font family
+0	belong		0x137A2950	scalable OpenFont binary
+0	belong		0x137A2951	encrypted scalable OpenFont binary
+8	belong		0x137A2B45	X11/NeWS bitmap font
+8	belong		0x137A2B48	X11/NeWS font family
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/nitpicker b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/nitpicker
new file mode 100755
index 0000000000000000000000000000000000000000..d1a66287fd5d44e18a0e9ef11012665f0acefa7a
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/nitpicker
@@ -0,0 +1,14 @@
+
+#------------------------------------------------------------------------------
+# $File: nitpicker,v 1.4 2009/09/19 16:28:11 christos Exp $
+# nitpicker:  file(1) magic for Flowfiles.
+# From: Christian Jachmann <C.Jachmann@gmx.net> http://www.nitpicker.de
+0	string	NPFF	NItpicker Flow File 
+>4	byte	x	V%d.
+>5	byte	x	%d
+>6	bedate	x	started: %s
+>10	bedate	x	stopped: %s
+>14	belong	x	Bytes: %u
+>18	belong	x	Bytes1: %u
+>22	belong	x	Flows: %u
+>26	belong	x	Pkts: %u
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/oasis b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/oasis
new file mode 100755
index 0000000000000000000000000000000000000000..e527185fd1c4399b1612a5fa527727e2e25bcbf5
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/oasis
@@ -0,0 +1,12 @@
+
+#------------------------------------------------------------------------------
+# $File: oasis,v 1.1 2011/03/15 02:09:38 christos Exp $
+# OASIS
+# Summary: OASIS stream file
+# Long descripton: Open Artwork System Interchange Standard
+# File extension: .oas
+# Full name:	Ben Cowley (bcowley@broadcom.com)
+#		Philip Dixon (pdixon@broadcom.com)
+# Reference: http://www.wrcad.com/oasis/oasis-3626-042303-draft.pdf
+#		(see page 3)
+0	string	%SEMI-OASIS\r\n		OASIS Stream file
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ocaml b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ocaml
new file mode 100755
index 0000000000000000000000000000000000000000..3ec3100c6de099dfa221821ba3c7d41e20835144
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ocaml
@@ -0,0 +1,14 @@
+
+#------------------------------------------------------------------------------
+# $File: ocaml,v 1.5 2010/09/20 18:55:20 rrt Exp $
+# ocaml: file(1) magic for Objective Caml files.
+0	string	Caml1999	OCaml
+>8	string	X		exec file
+>8	string	I		interface file (.cmi)
+>8	string	O		object file (.cmo)
+>8	string	A		library file (.cma)
+>8	string	Y		native object file (.cmx)
+>8	string	Z		native library file (.cmxa)
+>8	string	M		abstract syntax tree implementation file
+>8	string	N		abstract syntax tree interface file
+>9	string	>\0		(Version %3.3s)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/octave b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/octave
new file mode 100755
index 0000000000000000000000000000000000000000..49ea3e73e0729fb8e25352a28ae0223c69a255f5
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/octave
@@ -0,0 +1,6 @@
+
+#------------------------------------------------------------------------------
+# $File: octave,v 1.4 2009/09/19 16:28:11 christos Exp $
+# octave binary data file(1) magic, from Dirk Eddelbuettel <edd@debian.org>
+0	string		Octave-1-L	Octave binary data (little endian)
+0	string		Octave-1-B	Octave binary data (big endian)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ole2compounddocs b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ole2compounddocs
new file mode 100755
index 0000000000000000000000000000000000000000..383948ba0e1a59fde0ba0a3317231ca00dae47ca
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ole2compounddocs
@@ -0,0 +1,14 @@
+
+#------------------------------------------------------------------------------
+# $File: ole2compounddocs,v 1.4 2009/09/19 16:28:11 christos Exp $
+# Microsoft OLE 2 Compound Documents : file(1) magic for Microsoft Structured
+# storage (http://en.wikipedia.org/wiki/Structured_Storage)
+# Additional tests for OLE 2 Compound Documents should be under this recipe.
+
+0   string  \320\317\021\340\241\261\032\341      OLE 2 Compound Document
+# - Microstation V8 DGN files (www.bentley.com)
+#   Last update on 10/23/2006 by Lester Hightower
+> 0x480  string  D\000g\000n\000~\000H                : Microstation V8 DGN
+# - Visio documents
+#   Last update on 10/23/2006 by Lester Hightower
+> 0x480  string  V\000i\000s\000i\000o\000D\000o\000c : Visio Document
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/olf b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/olf
new file mode 100755
index 0000000000000000000000000000000000000000..6ae3fc04e5ec71c7c72ff5f20f10a7531e2a12b9
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/olf
@@ -0,0 +1,98 @@
+
+#------------------------------------------------------------------------------
+# $File: olf,v 1.4 2009/09/19 16:28:11 christos Exp $
+# olf:  file(1) magic for OLF executables
+#
+# We have to check the byte order flag to see what byte order all the
+# other stuff in the header is in.
+#
+# MIPS R3000 may also be for MIPS R2000.
+# What're the correct byte orders for the nCUBE and the Fujitsu VPP500?
+#
+# Created by Erik Theisen <etheisen@openbsd.org>
+# Based on elf from Daniel Quinlan <quinlan@yggdrasil.com>
+0	string		\177OLF		OLF
+>4	byte		0		invalid class
+>4	byte		1		32-bit
+>4	byte		2		64-bit
+>7	byte		0		invalid os
+>7	byte		1		OpenBSD
+>7	byte		2		NetBSD
+>7	byte		3		FreeBSD
+>7	byte		4		4.4BSD
+>7	byte		5		Linux
+>7	byte		6		SVR4
+>7	byte		7		esix
+>7	byte		8		Solaris
+>7	byte		9		Irix
+>7	byte		10		SCO
+>7	byte		11		Dell
+>7	byte		12		NCR
+>5	byte		0		invalid byte order
+>5	byte		1		LSB
+>>16	leshort		0		no file type,
+>>16	leshort		1		relocatable,
+>>16	leshort		2		executable,
+>>16	leshort		3		shared object,
+# Core handling from Peter Tobias <tobias@server.et-inf.fho-emden.de>
+# corrections by Christian 'Dr. Disk' Hechelmann <drdisk@ds9.au.s.shuttle.de>
+>>16	leshort		4		core file
+>>>(0x38+0xcc) string	>\0		of '%s'
+>>>(0x38+0x10) lelong	>0		(signal %d),
+>>16	leshort		&0xff00		processor-specific,
+>>18	leshort		0		no machine,
+>>18	leshort		1		AT&T WE32100 - invalid byte order,
+>>18	leshort		2		SPARC - invalid byte order,
+>>18	leshort		3		Intel 80386,
+>>18	leshort		4		Motorola 68000 - invalid byte order,
+>>18	leshort		5		Motorola 88000 - invalid byte order,
+>>18	leshort		6		Intel 80486,
+>>18	leshort		7		Intel 80860,
+>>18	leshort		8		MIPS R3000_BE - invalid byte order,
+>>18	leshort		9		Amdahl - invalid byte order,
+>>18	leshort		10		MIPS R3000_LE,
+>>18	leshort		11		RS6000 - invalid byte order,
+>>18	leshort		15		PA-RISC - invalid byte order,
+>>18	leshort		16		nCUBE,
+>>18	leshort		17		VPP500,
+>>18	leshort		18		SPARC32PLUS,
+>>18	leshort		20		PowerPC,
+>>18	leshort		0x9026		Alpha,
+>>20	lelong		0		invalid version
+>>20	lelong		1		version 1
+>>36	lelong		1		MathCoPro/FPU/MAU Required
+>8	string		>\0		(%s)
+>5	byte		2		MSB
+>>16	beshort		0		no file type,
+>>16	beshort		1		relocatable,
+>>16	beshort		2		executable,
+>>16	beshort		3		shared object,
+>>16	beshort		4		core file,
+>>>(0x38+0xcc) string	>\0		of '%s'
+>>>(0x38+0x10) belong	>0		(signal %d),
+>>16	beshort		&0xff00		processor-specific,
+>>18	beshort		0		no machine,
+>>18	beshort		1		AT&T WE32100,
+>>18	beshort		2		SPARC,
+>>18	beshort		3		Intel 80386 - invalid byte order,
+>>18	beshort		4		Motorola 68000,
+>>18	beshort		5		Motorola 88000,
+>>18	beshort		6		Intel 80486 - invalid byte order,
+>>18	beshort		7		Intel 80860,
+>>18	beshort		8		MIPS R3000_BE,
+>>18	beshort		9		Amdahl,
+>>18	beshort		10		MIPS R3000_LE - invalid byte order,
+>>18	beshort		11		RS6000,
+>>18	beshort		15		PA-RISC,
+>>18	beshort		16		nCUBE,
+>>18	beshort		17		VPP500,
+>>18	beshort		18		SPARC32PLUS,
+>>18	beshort		20		PowerPC or cisco 4500,
+>>18	beshort		21		cisco 7500,
+>>18	beshort		24		cisco SVIP,
+>>18	beshort		25		cisco 7200,
+>>18	beshort		36		cisco 12000,
+>>18	beshort		0x9026		Alpha,
+>>20	belong		0		invalid version
+>>20	belong		1		version 1
+>>36	belong		1		MathCoPro/FPU/MAU Required
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/os2 b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/os2
new file mode 100755
index 0000000000000000000000000000000000000000..8643adc0a91f4c513ea49521db3d33aea98816a1
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/os2
@@ -0,0 +1,48 @@
+
+#------------------------------------------------------------------------------
+# $File: os2,v 1.7 2009/09/19 16:28:11 christos Exp $
+# os2:  file(1) magic for OS/2 files
+#
+
+# Provided 1998/08/22 by
+# David Mediavilla <davidme.news@REMOVEIFNOTSPAMusa.net>
+1	search/1	InternetShortcut	MS Windows 95 Internet shortcut text
+>24	search/1	>\ 			(URL=<%s>)
+
+# OS/2 URL objects
+# Provided 1998/08/22 by
+# David Mediavilla <davidme.news@REMOVEIFNOTSPAMusa.net>
+#0	string	http:			OS/2 URL object text
+#>5	string	>\			(WWW) <http:%s>
+#0	string	mailto:			OS/2 URL object text
+#>7	string	>\			(email) <%s>
+#0	string	news:			OS/2 URL object text
+#>5	string	>\			(Usenet) <%s>
+#0	string	ftp:			OS/2 URL object text
+#>4	string	>\			(FTP) <ftp:%s>
+#0	string	file:			OS/2 URL object text
+#>5	string	>\			(Local file) <%s>
+
+# >>>>> OS/2 INF/HLP <<<<<  (source: Daniel Dissett ddissett@netcom.com)
+# Carl Hauser (chauser.parc@xerox.com) and 
+# Marcus Groeber (marcusg@ph-cip.uni-koeln.de)
+# list the following header format in inf02a.doc:
+#
+#  int16 ID;           // ID magic word (5348h = "HS")
+#  int8  unknown1;     // unknown purpose, could be third letter of ID
+#  int8  flags;        // probably a flag word...
+#                      //  bit 0: set if INF style file
+#                      //  bit 4: set if HLP style file
+#                      // patching this byte allows reading HLP files
+#                      // using the VIEW command, while help files 
+#                      // seem to work with INF settings here as well.
+#  int16 hdrsize;      // total size of header
+#  int16 unknown2;     // unknown purpose
+# 
+0   string  HSP\x01\x9b\x00 OS/2 INF
+>107 string >0                      (%s)
+0   string  HSP\x10\x9b\x00     OS/2 HLP
+>107 string >0                      (%s)
+
+# OS/2 INI (this is a guess)
+0  string   \xff\xff\xff\xff\x14\0\0\0  OS/2 INI
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/os400 b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/os400
new file mode 100755
index 0000000000000000000000000000000000000000..6a05f083eb0dc821c54f7a89e9491bea53439bd0
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/os400
@@ -0,0 +1,39 @@
+
+#------------------------------------------------------------------------------
+# $File: os400,v 1.5 2009/09/19 16:28:11 christos Exp $
+# os400:  file(1) magic for IBM OS/400 files
+#
+# IBM OS/400 (i5/OS) Save file (SAVF) - gerardo.cacciari@gmail.com
+# In spite of its quite variable format (due to internal memory page
+# length differences between CISC and RISC versions of the OS) the
+# SAVF structure hasn't suitable offsets to identify the catalog
+# header in the first descriptor where there are some useful infos,
+# so we must search in a somewhat large area for a particular string
+# that represents the EBCDIC encoding of 'QSRDSSPC' (save/restore
+# descriptor space) preceded by a two byte constant.
+#
+1090	 search/7393	\x19\xDB\xD8\xE2\xD9\xC4\xE2\xE2\xD7\xC3 IBM OS/400 save file data
+>&212	 byte		0x01			 \b, created with SAVOBJ
+>&212	 byte		0x02			 \b, created with SAVLIB
+>&212	 byte		0x07			 \b, created with SAVCFG
+>&212	 byte		0x08			 \b, created with SAVSECDTA
+>&212	 byte		0x0A			 \b, created with SAVSECDTA
+>&212	 byte		0x0B			 \b, created with SAVDLO
+>&212	 byte		0x0D			 \b, created with SAVLICPGM
+>&212	 byte		0x11			 \b, created with SAVCHGOBJ
+>&213	 byte		0x44			 \b, at least V5R4 to open
+>&213	 byte		0x43			 \b, at least V5R3 to open
+>&213	 byte		0x42			 \b, at least V5R2 to open
+>&213	 byte		0x41			 \b, at least V5R1 to open
+>&213	 byte		0x40			 \b, at least V4R5 to open
+>&213	 byte		0x3F			 \b, at least V4R4 to open
+>&213	 byte		0x3E			 \b, at least V4R3 to open
+>&213	 byte		0x3C			 \b, at least V4R2 to open
+>&213	 byte		0x3D			 \b, at least V4R1M4 to open
+>&213	 byte		0x3B			 \b, at least V4R1 to open
+>&213	 byte		0x3A			 \b, at least V3R7 to open
+>&213	 byte		0x35			 \b, at least V3R6 to open
+>&213	 byte		0x36			 \b, at least V3R2 to open
+>&213	 byte		0x34			 \b, at least V3R1 to open
+>&213	 byte		0x31			 \b, at least V3R0M5 to open
+>&213	 byte		0x30			 \b, at least V2R3 to open
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/os9 b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/os9
new file mode 100755
index 0000000000000000000000000000000000000000..52b04be3059c91f02e4e64f0a16ece864f296496
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/os9
@@ -0,0 +1,80 @@
+
+#------------------------------------------------------------------------------
+# $File: os9,v 1.7 2011/05/13 22:15:54 christos Exp $
+#
+# Copyright (c) 1996 Ignatios Souvatzis. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+#
+#
+# OS9/6809 module descriptions:
+#
+0	beshort		0x87CD	OS9/6809 module:
+#
+>6	byte&0x0f	0x00	non-executable
+>6	byte&0x0f	0x01	machine language
+>6	byte&0x0f	0x02	BASIC I-code
+>6	byte&0x0f	0x03	Pascal P-code
+>6	byte&0x0f	0x04	C I-code
+>6	byte&0x0f	0x05	COBOL I-code
+>6	byte&0x0f	0x06	Fortran I-code
+#
+>6	byte&0xf0	0x10	program executable
+>6	byte&0xf0	0x20	subroutine
+>6	byte&0xf0	0x30	multi-module
+>6	byte&0xf0	0x40	data module
+#
+>6	byte&0xf0	0xC0	system module
+>6	byte&0xf0	0xD0	file manager
+>6	byte&0xf0	0xE0	device driver
+>6	byte&0xf0	0xF0	device descriptor
+#
+# OS9/m68k stuff (to be continued)
+#
+0	beshort		0x4AFC	OS9/68K module:
+#
+# attr
+>0x14	byte&0x80	0x80	re-entrant
+>0x14	byte&0x40	0x40	ghost
+>0x14	byte&0x20	0x20	system-state
+#
+# lang:
+#
+>0x13	byte		1	machine language
+>0x13	byte		2	BASIC I-code
+>0x13	byte		3	Pascal P-code
+>0x13	byte		4	C I-code
+>0x13	byte		5	COBOL I-code
+>0x13	byte		6	Fortran I-code
+#
+#
+# type:
+#
+>0x12	byte		1	program executable
+>0x12	byte		2	subroutine
+>0x12	byte		3	multi-module
+>0x12	byte		4	data module
+>0x12	byte		11	trap library
+>0x12	byte		12	system module
+>0x12	byte		13	file manager
+>0x12	byte		14	device driver
+>0x12	byte		15	device descriptor
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/osf1 b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/osf1
new file mode 100755
index 0000000000000000000000000000000000000000..4e9147196d83c2f2243c8e63ac585ab2fd25ad52
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/osf1
@@ -0,0 +1,10 @@
+
+#------------------------------------------------------------------------------
+# $File: osf1,v 1.7 2009/09/19 16:28:11 christos Exp $
+#
+# Mach magic number info
+#
+0	long		0xefbe	OSF/Rose object
+# I386 magic number info
+#
+0	short		0565	i386 COFF object
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/palm b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/palm
new file mode 100755
index 0000000000000000000000000000000000000000..a9d42bf6ae1ea4a09d6bcb1a93435f6da49a7b00
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/palm
@@ -0,0 +1,92 @@
+
+#------------------------------------------------------------------------------
+# $File: palm,v 1.7 2009/09/19 16:28:11 christos Exp $
+# palm:  file(1) magic for PalmOS {.prc,.pdb}: applications, docfiles, and hacks
+#
+# Brian Lalor <blalor@hcirisc.cs.binghamton.edu>
+
+# appl
+60      belong                  0x6170706c      PalmOS application
+>0      string                  >\0             "%s"
+# TEXt
+60      belong                  0x54455874      AportisDoc file
+>0      string                  >\0             "%s"
+# HACK
+60      belong                  0x4841434b      HackMaster hack
+>0      string                  >\0             "%s"
+
+# Variety of PalmOS document types
+# Michael-John Turner <mj@debian.org>
+# Thanks to Hasan Umit Ezerce <humit@tr-net.net.tr> for his DocType
+60	string	                BVokBDIC	BDicty PalmOS document
+>0	string                  >\0             "%s"
+60	string	                DB99DBOS	DB PalmOS document
+>0	string                  >\0             "%s"
+60	string	                vIMGView	FireViewer/ImageViewer PalmOS document
+>0	string                  >\0             "%s"
+60	string	                PmDBPmDB	HanDBase PalmOS document
+>0	string                  >\0             "%s"
+60	string	                InfoINDB	InfoView PalmOS document
+>0	string                  >\0             "%s"
+60	string	                ToGoToGo	iSilo PalmOS document
+>0	string                  >\0             "%s"
+60	string	                JfDbJBas	JFile PalmOS document
+>0	string                  >\0             "%s"
+60	string	                JfDbJFil	JFile Pro PalmOS document
+>0	string                  >\0             "%s"
+60	string	                DATALSdb	List PalmOS document
+>0	string                  >\0             "%s"
+60	string	                Mdb1Mdb1	MobileDB PalmOS document
+>0	string                  >\0             "%s"
+60	string	                PNRdPPrs	PeanutPress PalmOS document
+>0	string                  >\0             "%s"
+60	string	                DataPlkr	Plucker PalmOS document
+>0	string                  >\0             "%s"
+60	string	                DataSprd	QuickSheet PalmOS document
+>0	string                  >\0             "%s"
+60	string	                SM01SMem	SuperMemo PalmOS document
+>0	string                  >\0             "%s"
+60	string	                TEXtTlDc	TealDoc PalmOS document
+>0	string                  >\0             "%s"
+60	string	                InfoTlIf	TealInfo PalmOS document
+>0	string                  >\0             "%s"
+60	string	                DataTlMl	TealMeal PalmOS document
+>0	string                  >\0             "%s"
+60	string	                DataTlPt	TealPaint PalmOS document
+>0	string                  >\0             "%s"
+60	string	                dataTDBP	ThinkDB PalmOS document
+>0	string                  >\0             "%s"
+60	string	                TdatTide	Tides PalmOS document
+>0	string                  >\0             "%s"
+60	string	                ToRaTRPW	TomeRaider PalmOS document
+>0	string                  >\0             "%s"
+
+# A GutenPalm zTXT etext for use on Palm Pilots (http://gutenpalm.sf.net)
+# For version 1.xx zTXTs, outputs version and numbers of bookmarks and
+#   annotations.
+# For other versions, just outputs version.
+#
+60		string		zTXT		A GutenPalm zTXT e-book
+>0		string		>\0		"%s"
+>(0x4E.L)	byte		0
+>>(0x4E.L+1)	byte		x		(v0.%02d)
+>(0x4E.L)	byte		1
+>>(0x4E.L+1)	byte		x		(v1.%02d)
+>>>(0x4E.L+10)	beshort		>0
+>>>>(0x4E.L+10) beshort		<2		- 1 bookmark
+>>>>(0x4E.L+10) beshort		>1		- %d bookmarks
+>>>(0x4E.L+14)	beshort		>0
+>>>>(0x4E.L+14) beshort		<2		- 1 annotation
+>>>>(0x4E.L+14) beshort		>1		- %d annotations
+>(0x4E.L)	byte		>1		(v%d.
+>>(0x4E.L+1)	byte		x		%02d)
+
+# Palm OS .prc file types
+60		string		libr		Palm OS dynamic library data
+>0		string		>\0		"%s"
+60		string		ptch		Palm OS operating system patch data
+>0		string		>\0		"%s"
+
+# Mobipocket (www.mobipocket.com), donated by Carl Witty
+60	string	                BOOKMOBI	Mobipocket E-book
+>0	string                  >\0             "%s"
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/parix b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/parix
new file mode 100755
index 0000000000000000000000000000000000000000..221f4917ea4eaa94fb70f05e9a0ba2bfa48cf5ac
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/parix
@@ -0,0 +1,13 @@
+
+#------------------------------------------------------------------------------
+# $File: parix,v 1.4 2009/09/19 16:28:11 christos Exp $
+#
+# Parix COFF executables
+# From: Ignatios Souvatzis <ignatios@cs.uni-bonn.de>
+#
+0	beshort&0xfff	0xACE	PARIX
+>0	byte&0xf0	0x80	T800
+>0	byte&0xf0	0x90	T9000
+>19	byte&0x02	0x02	executable
+>19	byte&0x02	0x00	object
+>19	byte&0x0c	0x00	not stripped
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/parrot b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/parrot
new file mode 100755
index 0000000000000000000000000000000000000000..24e9236da42965e3b3ec35de9a3e54f95d55f404
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/parrot
@@ -0,0 +1,22 @@
+#------------------------------------------------------------------------------
+# $File: parrot,v 1.1 2010/07/08 20:18:40 christos Exp $
+# parrot: file(1) magic for Parrot Virtual Machine
+# URL:	http://www.lua.org/
+# From: Lubomir Rintel <lkundrak@v3.sk>
+
+# Compiled Parrot byte code
+0	string	\376PBC\r\n\032\n	Parrot bytecode
+>64	byte	x			%d.
+>72	byte	x			\b%d,
+>8	byte	>0			%d byte words,
+>16	byte	0			little-endian,
+>16	byte	1			big-endian,
+>32	byte	0			IEEE-754 8 byte double floats,
+>32	byte	1			x86 12 byte long double floats,
+>32	byte	2			IEEE-754 16 byte long double floats,
+>32	byte	3			MIPS 16 byte long double floats,
+>32	byte	4			AIX 16 byte long double floats,
+>32	byte	5			4-byte floats,
+>40	byte	x			Parrot %d.
+>48	byte	x			\b%d.
+>56	byte	x			\b%d
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/pbm b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/pbm
new file mode 100755
index 0000000000000000000000000000000000000000..40ecf49114915d0395eb65880f3356c89adb6307
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/pbm
@@ -0,0 +1,8 @@
+
+#------------------------------------------------------------------------------
+# $File: pbm,v 1.6 2009/09/19 16:28:11 christos Exp $
+# pbm:  file(1) magic for Portable Bitmap files
+#
+# XXX - byte order?
+#
+0	short	0x2a17	"compact bitmap" format (Poskanzer)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/pdf b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/pdf
new file mode 100755
index 0000000000000000000000000000000000000000..ccde22f2c15f92f1f7d6069ac15c4eb105bf8480
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/pdf
@@ -0,0 +1,16 @@
+
+#------------------------------------------------------------------------------
+# $File: pdf,v 1.6 2009/09/19 16:28:11 christos Exp $
+# pdf:  file(1) magic for Portable Document Format
+#
+
+0	string		%PDF-		PDF document
+!:mime	application/pdf
+>5	byte		x		\b, version %c
+>7	byte		x		\b.%c
+
+# From: Nick Schmalenberger <nick@schmalenberger.us>
+# Forms Data Format
+0       string          %FDF-           FDF document
+>5      byte            x               \b, version %c
+>7      byte            x               \b.%c
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/pdp b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/pdp
new file mode 100755
index 0000000000000000000000000000000000000000..fa4b82b6a89612aef00757e858f5e546faa56ae2
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/pdp
@@ -0,0 +1,36 @@
+
+#------------------------------------------------------------------------------
+# $File: pdp,v 1.8 2009/09/19 16:28:11 christos Exp $
+# pdp:  file(1) magic for PDP-11 executable/object and APL workspace
+#
+0	lelong		0101555		PDP-11 single precision APL workspace
+0	lelong		0101554		PDP-11 double precision APL workspace
+#
+# PDP-11 a.out
+#
+0	leshort		0407		PDP-11 executable
+>8	leshort		>0		not stripped
+>15	byte		>0		- version %ld
+
+0	leshort		0401		PDP-11 UNIX/RT ldp
+0	leshort		0405		PDP-11 old overlay
+
+0	leshort		0410		PDP-11 pure executable
+>8	leshort		>0		not stripped
+>15	byte		>0		- version %ld
+
+0	leshort		0411		PDP-11 separate I&D executable
+>8	leshort		>0		not stripped
+>15	byte		>0		- version %ld
+
+0	leshort		0437		PDP-11 kernel overlay
+
+# These last three are derived from 2.11BSD file(1)
+0	leshort		0413		PDP-11 demand-paged pure executable
+>8	leshort		>0		not stripped
+
+0	leshort		0430		PDP-11 overlaid pure executable
+>8	leshort		>0		not stripped
+
+0	leshort		0431		PDP-11 overlaid separate executable
+>8	leshort		>0		not stripped
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/perl b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/perl
new file mode 100755
index 0000000000000000000000000000000000000000..1186833979093b320cc3a5314d865c3f6f511e81
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/perl
@@ -0,0 +1,57 @@
+
+#------------------------------------------------------------------------------
+# $File: perl,v 1.16 2009/09/19 16:28:11 christos Exp $
+# perl:  file(1) magic for Larry Wall's perl language.
+#
+# The `eval' lines recognizes an outrageously clever hack.
+# Keith Waclena <keith@cerberus.uchicago.edu>
+# Send additions to <perl5-porters@perl.org>
+0	search/1/w	#!\ /bin/perl			Perl script text executable
+!:mime	text/x-perl
+0	search/1	eval\ "exec\ /bin/perl		Perl script text
+!:mime	text/x-perl
+0	search/1/w	#!\ /usr/bin/perl		Perl script text executable
+!:mime	text/x-perl
+0	search/1	eval\ "exec\ /usr/bin/perl	Perl script text
+!:mime	text/x-perl
+0	search/1/w	#!\ /usr/local/bin/perl		Perl script text executable
+!:mime	text/x-perl
+0	search/1	eval\ "exec\ /usr/local/bin/perl	Perl script text
+!:mime	text/x-perl
+0	search/1	eval\ '(exit\ $?0)'\ &&\ eval\ 'exec	Perl script text
+!:mime	text/x-perl
+
+
+# by Dmitry V. Levin and Alexey Tourbin
+# check the first line
+0	search/1	package
+>0	regex		\^package[\ \t]+[0-9A-Za-z_:]+\ *;	Perl5 module source text
+# not 'p', check other lines
+0	search/1	!p
+>0	regex		\^package[\ \t]+[0-9A-Za-z_:]+\ *;
+>>0	regex		\^1\ *;|\^(use|sub|my)\ .*[(;{=]	Perl5 module source text
+
+
+
+# Perl POD documents
+# From: Tom Hukins <tom@eborcom.com>
+0	search/1/W	\=pod\n		Perl POD document text
+0	search/1/W	\n\=pod\n	Perl POD document text
+0	search/1/W	\=head1\ 	Perl POD document text
+0	search/1/W	\n\=head1\ 	Perl POD document text
+0	search/1/W	\=head2\ 	Perl POD document text
+0	search/1/W	\n\=head2\ 	Perl POD document text
+
+# Perl Storable data files.
+0	string	perl-store	perl Storable (v0.6) data
+>4	byte	>0	(net-order %d)
+>>4	byte	&01	(network-ordered)
+>>4	byte	=3	(major 1)
+>>4	byte	=2	(major 1)
+
+0	string	pst0	perl Storable (v0.7) data
+>4	byte	>0
+>>4	byte	&01	(network-ordered)
+>>4	byte	=5	(major 2)
+>>4	byte	=4	(major 2)
+>>5	byte	>0	(minor %d)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/pgp b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/pgp
new file mode 100755
index 0000000000000000000000000000000000000000..a8d3c9a133d909ed8fd7e9dc81ed33e5ef045084
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/pgp
@@ -0,0 +1,27 @@
+
+#------------------------------------------------------------------------------
+# $File: pgp,v 1.9 2009/09/19 16:28:11 christos Exp $
+# pgp:  file(1) magic for Pretty Good Privacy
+# see http://lists.gnupg.org/pipermail/gnupg-devel/1999-September/016052.html
+#
+0       beshort         0x9900                  PGP key public ring
+!:mime	application/x-pgp-keyring
+0       beshort         0x9501                  PGP key security ring
+!:mime	application/x-pgp-keyring
+0       beshort         0x9500                  PGP key security ring
+!:mime	application/x-pgp-keyring
+0	beshort		0xa600			PGP encrypted data
+#!:mime	application/pgp-encrypted
+#0	string		-----BEGIN\040PGP	text/PGP armored data
+!:mime	text/PGP # encoding: armored data
+#>15	string	PUBLIC\040KEY\040BLOCK-	public key block
+#>15	string	MESSAGE-		message
+#>15	string	SIGNED\040MESSAGE-	signed message
+#>15	string	PGP\040SIGNATURE-	signature
+
+2	string	---BEGIN\ PGP\ PUBLIC\ KEY\ BLOCK-	PGP public key block
+!:mime	application/pgp-keys
+0	string	-----BEGIN\040PGP\40MESSAGE-		PGP message
+!:mime	application/pgp
+0	string	-----BEGIN\040PGP\40SIGNATURE-		PGP signature
+!:mime	application/pgp-signature
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/pkgadd b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/pkgadd
new file mode 100755
index 0000000000000000000000000000000000000000..7dfb28691dc786e23e600d3b3411079fcda4b101
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/pkgadd
@@ -0,0 +1,7 @@
+
+#------------------------------------------------------------------------------
+# $File: pkgadd,v 1.6 2009/09/19 16:28:11 christos Exp $
+# pkgadd:  file(1) magic for SysV R4 PKG Datastreams
+#
+0       string          #\ PaCkAgE\ DaTaStReAm  pkg Datastream (SVR4)
+!:mime	application/x-svr4-package
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/plan9 b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/plan9
new file mode 100755
index 0000000000000000000000000000000000000000..da5eb66650ac0eaf5a156a4f8fe1989ffe213bcf
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/plan9
@@ -0,0 +1,18 @@
+
+#------------------------------------------------------------------------------
+# $File: plan9,v 1.5 2009/09/19 16:28:11 christos Exp $
+# plan9:  file(1) magic for AT&T Bell Labs' Plan 9 executables
+# From: "Stefan A. Haubenthal" <polluks@web.de>
+#
+0	belong		0x00000107	Plan 9 executable, Motorola 68k
+0	belong		0x000001EB	Plan 9 executable, Intel 386
+0	belong		0x00000247	Plan 9 executable, Intel 960
+0	belong		0x000002AB	Plan 9 executable, SPARC
+0	belong		0x00000407	Plan 9 executable, MIPS R3000
+0	belong		0x0000048B	Plan 9 executable, AT&T DSP 3210
+0	belong		0x00000517	Plan 9 executable, MIPS R4000 BE
+0	belong		0x000005AB	Plan 9 executable, AMD 29000
+0	belong		0x00000647	Plan 9 executable, ARM 7-something
+0	belong		0x000006EB	Plan 9 executable, PowerPC
+0	belong		0x00000797	Plan 9 executable, MIPS R4000 LE
+0	belong		0x0000084B	Plan 9 executable, DEC Alpha
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/plus5 b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/plus5
new file mode 100755
index 0000000000000000000000000000000000000000..795cca1f1181939d2a914215cfbe642bbda0333f
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/plus5
@@ -0,0 +1,18 @@
+
+#------------------------------------------------------------------------------
+# $File: plus5,v 1.6 2009/09/19 16:28:11 christos Exp $
+# plus5:  file(1) magic for Plus Five's UNIX MUMPS
+#
+# XXX - byte order?  Paging Hokey....
+#
+0	short		0x259		mumps avl global
+>2	byte		>0		(V%d)
+>6	byte		>0		with %d byte name
+>7	byte		>0		and %d byte data cells
+0	short		0x25a		mumps blt global
+>2	byte		>0		(V%d)
+>8	short		>0		- %d byte blocks
+>15	byte		0x00		- P/D format
+>15	byte		0x01		- P/K/D format
+>15	byte		0x02		- K/D format
+>15	byte		>0x02		- Bad Flags
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/printer b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/printer
new file mode 100755
index 0000000000000000000000000000000000000000..d9d39eefc830d6ce6ff468643f2a680f4488e55c
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/printer
@@ -0,0 +1,134 @@
+
+#------------------------------------------------------------------------------
+# $File: printer,v 1.25 2011/05/20 23:31:46 christos Exp $
+# printer:  file(1) magic for printer-formatted files
+#
+
+# PostScript, updated by Daniel Quinlan (quinlan@yggdrasil.com)
+0	string		%!		PostScript document text
+!:mime	application/postscript
+!:apple	ASPSTEXT
+>2	string		PS-Adobe-	conforming
+>>11	string		>\0		DSC level %.3s
+>>>15	string		EPS		\b, type %s
+>>>15	string		Query		\b, type %s
+>>>15	string		ExitServer	\b, type %s
+>>>15   search/1000		%%LanguageLevel:\ 
+>>>>&0	string		>\0		\b, Level %s
+# Some PCs have the annoying habit of adding a ^D as a document separator
+0	string		\004%!		PostScript document text
+!:mime	application/postscript
+!:apple	ASPSTEXT
+>3	string		PS-Adobe-	conforming
+>>12	string		>\0		DSC level %.3s
+>>>16	string		EPS		\b, type %s
+>>>16	string		Query		\b, type %s
+>>>16	string		ExitServer	\b, type %s
+>>>16   search/1000		%%LanguageLevel:\ 
+>>>>&0	string		>\0		\b, Level %s
+0	string		\033%-12345X%!PS	PostScript document
+
+# DOS EPS Binary File Header
+# From: Ed Sznyter <ews@Black.Market.NET>
+0       belong          0xC5D0D3C6      DOS EPS Binary File
+>4      long            >0              Postscript starts at byte %d
+>>8     long            >0              length %d
+>>>12   long            >0              Metafile starts at byte %d
+>>>>16  long            >0              length %d
+>>>20   long            >0              TIFF starts at byte %d
+>>>>24  long            >0              length %d
+
+# Summary: Adobe's PostScript Printer Description File
+# Extension: .ppd
+# Reference: http://partners.adobe.com/public/developer/en/ps/5003.PPD_Spec_v4.3.pdf, Section 3.8
+# Submitted by: Yves Arrouye <arrouye@marin.fdn.fr>
+#
+0	string		*PPD-Adobe:\x20	PPD file
+>&0	string		x		\b, version %s
+
+# HP Printer Job Language
+0	string		\033%-12345X@PJL	HP Printer Job Language data
+# HP Printer Job Language
+# The header found on Win95 HP plot files is the "Silliest Thing possible" 
+# (TM)
+# Every driver puts the language at some random position, with random case
+# (LANGUAGE and Language)
+# For example the LaserJet 5L driver puts the "PJL ENTER LANGUAGE" in line 10
+# From: Uwe Bonnes <bon@elektron.ikp.physik.th-darmstadt.de>
+# 
+0	string		\033%-12345X@PJL	HP Printer Job Language data
+>&0	string		>\0			%s			
+>>&0	string		>\0			%s			
+>>>&0	string		>\0			%s		
+>>>>&0	string		>\0			%s		
+#>15	string		\ ENTER\ LANGUAGE\ =
+#>31	string		PostScript		PostScript
+
+# From: Stefan Thurner <thurners@nicsys.de>
+0	string		\033%-12345X@PJL
+>&0	search/10000	%!			PJL encapsulated PostScript document text
+
+# HP Printer Control Language, Daniel Quinlan (quinlan@yggdrasil.com)
+0	string		\033E\033	HP PCL printer data
+>3	string		\&l0A		- default page size
+>3	string		\&l1A		- US executive page size
+>3	string		\&l2A		- US letter page size
+>3	string		\&l3A		- US legal page size
+>3	string		\&l26A		- A4 page size
+>3	string		\&l80A		- Monarch envelope size
+>3	string		\&l81A		- No. 10 envelope size
+>3	string		\&l90A		- Intl. DL envelope size
+>3	string		\&l91A		- Intl. C5 envelope size
+>3	string		\&l100A		- Intl. B5 envelope size
+>3	string		\&l-81A		- No. 10 envelope size (landscape)
+>3	string		\&l-90A		- Intl. DL envelope size (landscape)
+
+# IMAGEN printer-ready files:
+0	string	@document(		Imagen printer
+# this only works if "language xxx" is first item in Imagen header.
+>10	string	language\ impress	(imPRESS data)
+>10	string	language\ daisy		(daisywheel text)
+>10	string	language\ diablo	(daisywheel text)
+>10	string	language\ printer	(line printer emulation)
+>10	string	language\ tektronix	(Tektronix 4014 emulation)
+# Add any other languages that your Imagen uses - remember
+# to keep the word `text' if the file is human-readable.
+# [GRR 950115:  missing "postscript" or "ultrascript" (whatever it was called)]
+#
+# Now magic for IMAGEN font files...
+0	string		Rast		RST-format raster font data
+>45	string		>0		face %s
+# From Jukka Ukkonen
+0	string		\033[K\002\0\0\017\033(a\001\0\001\033(g	Canon Bubble Jet BJC formatted data
+
+# From <mike@flyn.org>
+# These are the /etc/magic entries to decode data sent to an Epson printer.
+0       string          \x1B\x40\x1B\x28\x52\x08\x00\x00REMOTE1P        Epson Stylus Color 460 data
+
+
+#------------------------------------------------------------------------------
+# zenographics:  file(1) magic for Zenographics ZjStream printer data
+# Rick Richardson  rickr@mn.rr.com
+0	string		JZJZ
+>0x12	string		ZZ		Zenographics ZjStream printer data (big-endian)
+0	string		ZJZJ
+>0x12	string		ZZ		Zenographics ZjStream printer data (little-endian)
+
+
+#------------------------------------------------------------------------------
+# Oak Technologies printer stream
+# Rick Richardson <rickr@mn.rr.com>
+0       string          OAK
+>0x07	byte		0
+>0x0b	byte		0	Oak Technologies printer stream
+
+# This would otherwise be recognized as PostScript - nick@debian.org
+0	string		%!VMF 		SunClock's Vector Map Format data
+
+#------------------------------------------------------------------------------
+# HP LaserJet 1000 series downloadable firmware file
+0	string	\xbe\xefABCDEFGH	HP LaserJet 1000 series downloadable firmware   
+
+# From: Paolo <oopla@users.sf.net>
+# Epson ESC/Page, ESC/PageColor 
+0	string	\x1b\x01@EJL	Epson ESC/Page language printer data
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/project b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/project
new file mode 100755
index 0000000000000000000000000000000000000000..efa5d40f7afe98fcd16ed8b7a86e18e03dffcc0a
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/project
@@ -0,0 +1,10 @@
+
+#------------------------------------------------------------------------------
+# $File: project,v 1.4 2009/09/19 16:28:11 christos Exp $
+# project:  file(1) magic for Project management
+# 
+# Magic strings for ftnchek project files. Alexander Mai
+0	string	FTNCHEK_\ P	project file for ftnchek
+>10	string	1		version 2.7
+>10	string	2		version 2.8 to 2.10
+>10	string	3		version 2.11 or later
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/psdbms b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/psdbms
new file mode 100755
index 0000000000000000000000000000000000000000..09c733fddf756625d818c72beca6be1ce443e5db
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/psdbms
@@ -0,0 +1,8 @@
+
+#------------------------------------------------------------------------------
+# $File: psdbms,v 1.6 2009/09/19 16:28:11 christos Exp $
+# psdbms:  file(1) magic for psdatabase
+#
+0	belong&0xff00ffff	0x56000000	ps database
+>1	string	>\0	version %s
+>4	string	>\0	from kernel %s
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/pulsar b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/pulsar
new file mode 100755
index 0000000000000000000000000000000000000000..7cb6f18bdaeee6686873cc4df95ae26112f9fd88
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/pulsar
@@ -0,0 +1,13 @@
+
+#------------------------------------------------------------------------------
+# $File: pulsar,v 1.5 2009/09/19 16:28:12 christos Exp $
+# pulsar:  file(1) magic for Pulsar POP3 daemon binary files
+#
+# http://pulsar.sourceforge.net
+# mailto:rok.papez@lugos.si
+#
+
+0	belong	0x1ee7f11e	Pulsar POP3 daemon mailbox cache file.
+>4	ubelong	x		Version: %d.
+>8	ubelong	x		\b%d
+
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/pyramid b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/pyramid
new file mode 100755
index 0000000000000000000000000000000000000000..ee47c807670a245d5a57fbd9449cbe6b7c4fc7bb
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/pyramid
@@ -0,0 +1,12 @@
+
+#------------------------------------------------------------------------------
+# $File: pyramid,v 1.7 2009/09/19 16:28:12 christos Exp $
+# pyramid:  file(1) magic for Pyramids
+#
+# XXX - byte order?
+#
+0	long		0x50900107	Pyramid 90x family executable
+0	long		0x50900108	Pyramid 90x family pure executable
+>16	long		>0		not stripped
+0	long		0x5090010b	Pyramid 90x family demand paged pure executable
+>16	long		>0		not stripped
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/python b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/python
new file mode 100755
index 0000000000000000000000000000000000000000..68befe16a1d73e2c667f887723adcaaba2837d2d
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/python
@@ -0,0 +1,60 @@
+
+#------------------------------------------------------------------------------
+# $File: python,v 1.18 2011/02/26 02:33:38 christos Exp $
+# python:  file(1) magic for python
+#
+# From: David Necas <yeti@physics.muni.cz>
+# often the module starts with a multiline string
+0	string/t	"""	a python script text executable
+# MAGIC as specified in Python/import.c (1.5 to 2.7a0 and 3.1a0, assuming
+# that Py_UnicodeFlag is off for Python 2)
+# 20121  ( YEAR - 1995 ) + MONTH  + DAY (little endian followed by "\r\n"
+0	belong		0x994e0d0a	python 1.5/1.6 byte-compiled
+0	belong		0x87c60d0a	python 2.0 byte-compiled
+0	belong		0x2aeb0d0a	python 2.1 byte-compiled
+0	belong		0x2ded0d0a	python 2.2 byte-compiled
+0	belong		0x3bf20d0a	python 2.3 byte-compiled
+0	belong		0x6df20d0a	python 2.4 byte-compiled
+0	belong		0xb3f20d0a	python 2.5 byte-compiled
+0	belong		0xd1f20d0a	python 2.6 byte-compiled
+0	belong		0x03f30d0a	python 2.7 byte-compiled
+0	belong		0x3b0c0d0a	python 3.0 byte-compiled
+0	belong		0x4f0c0d0a	python 3.1 byte-compiled
+0	belong		0x6c0c0d0a	python 3.2 byte-compiled
+
+0	search/1/w	#!\ /usr/bin/python	Python script text executable
+!:mime text/x-python
+0	search/1/w	#!\ /usr/local/bin/python	Python script text executable
+!:mime text/x-python
+0	search/1	#!/usr/bin/env\ python	Python script text executable
+!:mime text/x-python
+0	search/1	#!\ /usr/bin/env\ python	Python script text executable
+!:mime text/x-python
+
+
+# from module.submodule import func1, func2
+0	regex	\^from\\s+(\\w|\\.)+\\s+import.*$	Python script text executable
+!:mime text/x-python
+
+# def __init__ (self, ...):
+0	search/4096	def\ __init__
+>&0	search/64 self	Python script text executable
+!:mime text/x-python
+
+# comments
+0	search/4096	'''
+>&0	regex	.*'''$	Python script text executable
+!:mime text/x-python
+
+0	search/4096	"""
+>&0	regex	.*"""$	Python script text executable
+!:mime text/x-python
+
+# try:
+# except: or finally:
+# block
+0	search/4096	try:
+>&0	regex	\^\\s*except.*:	Python script text executable
+!:mime text/x-python
+>&0	search/4096	finally:	Python script text executable
+!:mime text/x-python
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/revision b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/revision
new file mode 100755
index 0000000000000000000000000000000000000000..b337ee3b2d7b00f56d03ae123e15658b40a23df8
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/revision
@@ -0,0 +1,52 @@
+
+#------------------------------------------------------------------------------
+# $File: revision,v 1.8 2010/11/25 15:00:12 christos Exp $
+# file(1) magic for revision control files
+# From Hendrik Scholz <hendrik@scholz.net>
+0	string/t	/1\ :pserver:	cvs password text file
+
+# Conary changesets
+# From: Jonathan Smith <smithj@rpath.com>
+0	belong	0xea3f81bb	Conary changeset data
+
+# Type: Git bundles (git-bundle)
+# From: Josh Triplett <josh@freedesktop.org>
+0	string	#\ v2\ git\ bundle\n	Git bundle
+
+# Type: Git pack
+# From: Adam Buchbinder <adam.buchbinder@gmail.com>
+# The actual magic is 'PACK', but that clashes with Doom/Quake packs. However,
+# those have a little-endian offset immediately following the magic 'PACK',
+# the first byte of which is never 0, while the first byte of the Git pack
+# version, since it's a tiny number stored in big-endian format, is always 0.
+0	string	PACK\0		Git pack
+>4	belong	>0		\b, version %d
+>>8	belong	>0		\b, %d objects
+
+# Type: Git pack index
+# From: Adam Buchbinder <adam.buchbinder@gmail.com>
+0	string	\377tOc		Git pack index
+>4	belong	=2		\b, version 2
+
+# Type: Git index file
+# From: Frédéric Brière <fbriere@fbriere.net>
+0	string	DIRC		Git index
+>4	belong	>0		\b, version %d
+>>8	belong	>0		\b, %d entries
+
+# Type:	Mercurial bundles
+# From:	Seo Sanghyeon <tinuviel@sparcs.kaist.ac.kr>
+0	string	HG10		Mercurial bundle,
+>4	string	UN		uncompressed
+>4	string	BZ		bzip2 compressed
+
+# Type:	Subversion (SVN) dumps
+# From:	Uwe Zeisberger <zeisberg@informatik.uni-freiburg.de>
+0	string	SVN-fs-dump-format-version:	Subversion dumpfile
+>28	string	>\0				(version: %s)
+
+# Type:	Bazaar revision bundles and merge requests
+# URL:	http://www.bazaar-vcs.org/
+# From:	Jelmer Vernooij <jelmer@samba.org>
+0	string	#\ Bazaar\ revision\ bundle\ v Bazaar Bundle
+0	string	#\ Bazaar\ merge\ directive\ format Bazaar merge directive
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/riff b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/riff
new file mode 100755
index 0000000000000000000000000000000000000000..3253340194737e414527daee022cb284eda01d80
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/riff
@@ -0,0 +1,256 @@
+
+#------------------------------------------------------------------------------
+# $File: riff,v 1.21 2011/02/10 01:52:51 christos Exp $
+# riff:  file(1) magic for RIFF format
+# See
+#
+#	http://www.seanet.com/users/matts/riffmci/riffmci.htm
+#
+# AVI section extended by Patrik R�dman <patrik+file-magic@iki.fi>
+#
+0	string		RIFF		RIFF (little-endian) data
+# RIFF Palette format
+>8	string		PAL		\b, palette
+>>16	leshort		x		\b, version %d
+>>18	leshort		x		\b, %d entries
+# RIFF Device Independent Bitmap format
+>8	string		RDIB		\b, device-independent bitmap
+>>16	string		BM		
+>>>30	leshort		12		\b, OS/2 1.x format
+>>>>34	leshort		x		\b, %d x
+>>>>36	leshort		x		%d
+>>>30	leshort		64		\b, OS/2 2.x format
+>>>>34	leshort		x		\b, %d x
+>>>>36	leshort		x		%d
+>>>30	leshort		40		\b, Windows 3.x format
+>>>>34	lelong		x		\b, %d x
+>>>>38	lelong		x		%d x
+>>>>44	leshort		x		%d
+# RIFF MIDI format
+>8	string		RMID		\b, MIDI
+# RIFF Multimedia Movie File format
+>8	string		RMMP		\b, multimedia movie
+# RIFF wrapper for MP3
+>8	string		RMP3		\b, MPEG Layer 3 audio
+# Microsoft WAVE format (*.wav)
+>8	string		WAVE		\b, WAVE audio
+!:mime	audio/x-wav
+>>20	leshort		1		\b, Microsoft PCM
+>>>34	leshort		>0		\b, %d bit
+>>20	leshort		2		\b, Microsoft ADPCM
+>>20	leshort		6		\b, ITU G.711 A-law
+>>20	leshort		7		\b, ITU G.711 mu-law
+>>20	leshort		8		\b, Microsoft DTS
+>>20	leshort		17		\b, IMA ADPCM
+>>20	leshort		20		\b, ITU G.723 ADPCM (Yamaha)
+>>20	leshort		49		\b, GSM 6.10
+>>20	leshort		64		\b, ITU G.721 ADPCM
+>>20	leshort		80		\b, MPEG
+>>20	leshort		85		\b, MPEG Layer 3
+>>20	leshort		0x2001		\b, DTS
+>>22	leshort		=1		\b, mono
+>>22	leshort		=2		\b, stereo
+>>22	leshort		>2		\b, %d channels
+>>24	lelong		>0		%d Hz
+# Corel Draw Picture
+>8	string		CDRA		\b, Corel Draw Picture
+!:mime	image/x-coreldraw
+# AVI == Audio Video Interleave
+>8	string		AVI\040		\b, AVI
+!:mime	video/x-msvideo
+>>12    string          LIST
+>>>20   string          hdrlavih
+>>>>&36 lelong          x               \b, %lu x
+>>>>&40 lelong          x               %lu,
+>>>>&4  lelong          >1000000        <1 fps,
+>>>>&4  lelong          1000000         1.00 fps,
+>>>>&4  lelong          500000          2.00 fps,
+>>>>&4  lelong          333333          3.00 fps,
+>>>>&4  lelong          250000          4.00 fps,
+>>>>&4  lelong          200000          5.00 fps,
+>>>>&4  lelong          166667          6.00 fps,
+>>>>&4  lelong          142857          7.00 fps,
+>>>>&4  lelong          125000          8.00 fps,
+>>>>&4  lelong          111111          9.00 fps,
+>>>>&4  lelong          100000          10.00 fps,
+# ]9.9,10.1[
+>>>>&4  lelong          <101010
+>>>>>&-4        lelong  >99010
+>>>>>>&-4       lelong  !100000         ~10 fps,
+>>>>&4  lelong          83333           12.00 fps,
+# ]11.9,12.1[
+>>>>&4  lelong          <84034
+>>>>>&-4        lelong  >82645
+>>>>>>&-4       lelong  !83333          ~12 fps,
+>>>>&4  lelong          66667           15.00 fps,
+# ]14.9,15.1[
+>>>>&4  lelong          <67114
+>>>>>&-4        lelong  >66225
+>>>>>>&-4       lelong  !66667          ~15 fps,
+>>>>&4  lelong          50000           20.00 fps,
+>>>>&4  lelong          41708           23.98 fps,
+>>>>&4  lelong          41667           24.00 fps,
+# ]23.9,24.1[
+>>>>&4  lelong          <41841
+>>>>>&-4        lelong  >41494
+>>>>>>&-4       lelong  !41708
+>>>>>>>&-4      lelong  !41667          ~24 fps,
+>>>>&4  lelong          40000           25.00 fps,
+# ]24.9,25.1[
+>>>>&4  lelong          <40161
+>>>>>&-4        lelong  >39841
+>>>>>>&-4       lelong  !40000          ~25 fps,
+>>>>&4  lelong          33367           29.97 fps,
+>>>>&4  lelong          33333           30.00 fps,
+# ]29.9,30.1[
+>>>>&4  lelong          <33445
+>>>>>&-4        lelong  >33223
+>>>>>>&-4       lelong  !33367
+>>>>>>>&-4      lelong  !33333          ~30 fps,
+>>>>&4  lelong          <32224          >30 fps,
+##>>>>&4  lelong          x               (%lu)
+##>>>>&20 lelong          x               %lu frames,
+# Note: The tests below assume that the AVI has 1 or 2 streams,
+#       "vids" optionally followed by "auds".
+#       (Should cover 99.9% of all AVIs.)
+# assuming avih length = 56
+>>>88   string  LIST
+>>>>96  string  strlstrh
+>>>>>108        string  vids    video:
+>>>>>>&0        lelong  0               uncompressed
+# skip past vids strh
+>>>>>>(104.l+108)       string  strf
+>>>>>>>(104.l+132)      lelong          1       RLE 8bpp
+>>>>>>>(104.l+132)      string/c        cvid    Cinepak
+>>>>>>>(104.l+132)      string/c        i263    Intel I.263
+>>>>>>>(104.l+132)      string/c        iv32    Indeo 3.2
+>>>>>>>(104.l+132)      string/c        iv41    Indeo 4.1
+>>>>>>>(104.l+132)      string/c        iv50    Indeo 5.0
+>>>>>>>(104.l+132)      string/c        mp42    Microsoft MPEG-4 v2
+>>>>>>>(104.l+132)      string/c        mp43    Microsoft MPEG-4 v3
+>>>>>>>(104.l+132)      string/c        fmp4    FFMpeg MPEG-4
+>>>>>>>(104.l+132)      string/c        mjpg    Motion JPEG
+>>>>>>>(104.l+132)      string/c        div3    DivX 3
+>>>>>>>>112             string/c        div3    Low-Motion
+>>>>>>>>112             string/c        div4    Fast-Motion
+>>>>>>>(104.l+132)      string/c        divx    DivX 4
+>>>>>>>(104.l+132)      string/c        dx50    DivX 5
+>>>>>>>(104.l+132)      string/c        xvid    XviD
+>>>>>>>(104.l+132)	string/c	h264	H.264
+>>>>>>>(104.l+132)      string/c        wmv3    Windows Media Video 9
+>>>>>>>(104.l+132)      string/c        h264    X.264 or H.264
+>>>>>>>(104.l+132)      lelong  0
+##>>>>>>>(104.l+132)      string  x       (%.4s)
+# skip past first (video) LIST
+>>>>(92.l+96)   string  LIST
+>>>>>(92.l+104) string  strlstrh
+>>>>>>(92.l+116)        string          auds    \b, audio:
+# auds strh length = 56:
+>>>>>>>(92.l+172)       string          strf
+>>>>>>>>(92.l+180)      leshort 0x0001  uncompressed PCM
+>>>>>>>>(92.l+180)      leshort 0x0002  ADPCM
+>>>>>>>>(92.l+180)      leshort 0x0006  aLaw
+>>>>>>>>(92.l+180)      leshort 0x0007  uLaw
+>>>>>>>>(92.l+180)      leshort 0x0050  MPEG-1 Layer 1 or 2
+>>>>>>>>(92.l+180)      leshort 0x0055  MPEG-1 Layer 3
+>>>>>>>>(92.l+180)      leshort 0x2000  Dolby AC3
+>>>>>>>>(92.l+180)      leshort 0x0161  DivX
+##>>>>>>>>(92.l+180)      leshort x       (0x%.4x)
+>>>>>>>>(92.l+182)      leshort 1       (mono,
+>>>>>>>>(92.l+182)      leshort 2       (stereo,
+>>>>>>>>(92.l+182)      leshort >2      (%d channels,
+>>>>>>>>(92.l+184)      lelong  x       %d Hz)
+# auds strh length = 64:
+>>>>>>>(92.l+180)       string          strf
+>>>>>>>>(92.l+188)      leshort 0x0001  uncompressed PCM
+>>>>>>>>(92.l+188)      leshort 0x0002  ADPCM
+>>>>>>>>(92.l+188)      leshort 0x0055  MPEG-1 Layer 3
+>>>>>>>>(92.l+188)      leshort 0x2000  Dolby AC3
+>>>>>>>>(92.l+188)      leshort 0x0161  DivX
+##>>>>>>>>(92.l+188)      leshort x       (0x%.4x)
+>>>>>>>>(92.l+190)      leshort 1       (mono,
+>>>>>>>>(92.l+190)      leshort 2       (stereo,
+>>>>>>>>(92.l+190)      leshort >2      (%d channels,
+>>>>>>>>(92.l+192)      lelong  x       %d Hz)
+# Animated Cursor format
+>8	string		ACON		\b, animated cursor
+# SoundFont 2 <mpruett@sgi.com>
+>8	string		sfbk		SoundFont/Bank
+# MPEG-1 wrapped in a RIFF, apparently
+>8      string          CDXA            \b, wrapped MPEG-1 (CDXA)
+>8	string		4XMV		\b, 4X Movie file 
+
+#
+# XXX - some of the below may only appear in little-endian form.
+#
+# Also "MV93" appears to be for one form of Macromedia Director
+# files, and "GDMF" appears to be another multimedia format.
+#
+0	string		RIFX		RIFF (big-endian) data
+# RIFF Palette format
+>8	string		PAL		\b, palette
+>>16	beshort		x		\b, version %d
+>>18	beshort		x		\b, %d entries
+# RIFF Device Independent Bitmap format
+>8	string		RDIB		\b, device-independent bitmap
+>>16	string		BM		
+>>>30	beshort		12		\b, OS/2 1.x format
+>>>>34	beshort		x		\b, %d x
+>>>>36	beshort		x		%d
+>>>30	beshort		64		\b, OS/2 2.x format
+>>>>34	beshort		x		\b, %d x
+>>>>36	beshort		x		%d
+>>>30	beshort		40		\b, Windows 3.x format
+>>>>34	belong		x		\b, %d x
+>>>>38	belong		x		%d x
+>>>>44	beshort		x		%d
+# RIFF MIDI format
+>8	string		RMID		\b, MIDI
+# RIFF Multimedia Movie File format
+>8	string		RMMP		\b, multimedia movie
+# Microsoft WAVE format (*.wav)
+>8	string		WAVE		\b, WAVE audio
+>>20	leshort		1		\b, Microsoft PCM
+>>>34	leshort		>0		\b, %d bit
+>>22	beshort		=1		\b, mono
+>>22	beshort		=2		\b, stereo
+>>22	beshort		>2		\b, %d channels
+>>24	belong		>0		%d Hz
+# Corel Draw Picture
+>8	string		CDRA		\b, Corel Draw Picture
+# AVI == Audio Video Interleave
+>8	string		AVI\040		\b, AVI
+# Animated Cursor format
+>8	string		ACON		\b, animated cursor
+# Notation Interchange File Format (big-endian only)
+>8	string		NIFF		\b, Notation Interchange File Format
+# SoundFont 2 <mpruett@sgi.com>
+>8	string		sfbk		SoundFont/Bank
+
+#------------------------------------------------------------------------------
+# Sony Wave64
+# see http://www.vcs.de/fileadmin/user_upload/MBS/PDF/Whitepaper/Informations_about_Sony_Wave64.pdf
+# 128 bit RIFF-GUID { 66666972-912E-11CF-A5D6-28DB04C10000 } in little-endian 
+0	string	riff\x2E\x91\xCF\x11\xA5\xD6\x28\xDB\x04\xC1\x00\x00		Sony Wave64 RIFF data
+# 128 bit + total file size (64 bits) so 24 bytes
+# then WAVE-GUID { 65766177-ACF3-11D3-8CD1-00C04F8EDB8A }
+>24	string		wave\xF3\xAC\xD3\x11\x8C\xD1\x00\xC0\x4F\x8E\xDB\x8A		\b, WAVE 64 audio
+!:mime	audio/x-w64
+# FMT-GUID { 20746D66-ACF3-11D3-8CD1-00C04F8EDB8A }
+>>40	search/256	fmt\x20\xF3\xAC\xD3\x11\x8C\xD1\x00\xC0\x4F\x8E\xDB\x8A		\b
+>>>&10	leshort		=1		\b, mono
+>>>&10	leshort		=2		\b, stereo
+>>>&10	leshort		>2		\b, %d channels
+>>>&12	lelong		>0		%d Hz
+
+#------------------------------------------------------------------------------
+# MBWF/RF64
+# see EBU � TECH 3306 http://tech.ebu.ch/docs/tech/tech3306-2009.pdf
+0	string	RF64\xff\xff\xff\xffWAVEds64		MBWF/RF64 audio
+!:mime	audio/x-wav
+>40	search/256	fmt\x20		\b
+>>&6	leshort		=1		\b, mono
+>>&6	leshort		=2		\b, stereo
+>>&6	leshort		>2		\b, %d channels
+>>&8	lelong		>0		%d Hz
+
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/rinex b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/rinex
new file mode 100755
index 0000000000000000000000000000000000000000..c5f2bcbd31e104bfdb7d793d6a8efab612574c39
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/rinex
@@ -0,0 +1,44 @@
+
+#------------------------------------------------------------------------------
+# $File: rinex,v 1.4 2011/05/03 01:44:17 christos Exp $
+# rinex:  file(1) magic for RINEX files
+# http://igscb.jpl.nasa.gov/igscb/data/format/rinex210.txt
+# ftp://cddis.gsfc.nasa.gov/pub/reports/formats/rinex300.pdf
+# data for testing: ftp://cddis.gsfc.nasa.gov/pub/gps/data
+60	string		RINEX
+>80	search/256	XXRINEXB	RINEX Data, GEO SBAS Broadcast
+>>&32	string		x		\b, date %15.15s
+>>5	string		x		\b, version %6.6s
+!:mime	rinex/broadcast
+>80	search/256	XXRINEXD	RINEX Data, Observation (Hatanaka comp)
+>>&32	string		x		\b, date %15.15s
+>>5	string		x		\b, version %6.6s
+!:mime	rinex/observation
+>80	search/256	XXRINEXC	RINEX Data, Clock
+>>&32	string		x		\b, date %15.15s
+>>5	string		x		\b, version %6.6s
+!:mime	rinex/clock
+>80	search/256	XXRINEXH	RINEX Data, GEO SBAS Navigation
+>>&32	string		x		\b, date %15.15s
+>>5	string		x		\b, version %6.6s
+!:mime	rinex/navigation
+>80	search/256	XXRINEXG	RINEX Data, GLONASS Navigation
+>>&32	string		x		\b, date %15.15s
+>>5	string		x		\b, version %6.6s
+!:mime	rinex/navigation
+>80	search/256	XXRINEXL	RINEX Data, Galileo Navigation
+>>&32	string		x		\b, date %15.15s
+>>5	string		x		\b, version %6.6s
+!:mime	rinex/navigation
+>80	search/256	XXRINEXM	RINEX Data, Meteorological
+>>&32	string		x		\b, date %15.15s
+>>5	string		x		\b, version %6.6s
+!:mime	rinex/meteorological
+>80	search/256	XXRINEXN	RINEX Data, Navigation	
+>>&32	string		x		\b, date %15.15s
+>>5	string		x		\b, version %6.6s
+!:mime	rinex/navigation
+>80	search/256	XXRINEXO	RINEX Data, Observation
+>>&32	string		x		\b, date %15.15s
+>>5	string		x		\b, version %6.6s
+!:mime	rinex/observation
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/rpm b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/rpm
new file mode 100755
index 0000000000000000000000000000000000000000..85232c6cd1602cd6b634db52548623f1ec180d09
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/rpm
@@ -0,0 +1,52 @@
+
+#------------------------------------------------------------------------------
+# $File: rpm,v 1.11 2011/06/14 12:47:41 christos Exp $
+#
+# RPM: file(1) magic for Red Hat Packages   Erik Troan (ewt@redhat.com)
+#
+0	belong		0xedabeedb	RPM
+!:mime	application/x-rpm
+>4	byte		x		v%d
+>5	byte		x		\b.%d
+>6	beshort		1		src
+>6	beshort		0		bin
+>>8	beshort		1		i386/x86_64
+>>8	beshort		2		Alpha/Sparc64
+>>8	beshort		3		Sparc
+>>8	beshort		4		MIPS
+>>8	beshort		5		PowerPC
+>>8	beshort		6		68000
+>>8	beshort		7		SGI
+>>8	beshort		8		RS6000
+>>8	beshort		9		IA64
+>>8	beshort		10		Sparc64
+>>8	beshort		11		MIPSel
+>>8	beshort		12		ARM
+>>8	beshort		13		MiNT
+>>8	beshort		14		S/390
+>>8	beshort		15		S/390x
+>>8	beshort		16		PowerPC64
+>>8	beshort		17		SuperH
+>>8	beshort		18		Xtensa
+>>8	beshort		255		noarch
+
+#delta RPM    Daniel Novotny (dnovotny@redhat.com)
+0	string	drpm	Delta RPM
+!:mime  application/x-rpm
+>12	string 	x	%s
+
+>>>8	beshort		11		MIPSel
+>>>8	beshort		12		ARM
+>>>8	beshort		13		MiNT
+>>>8	beshort		14		S/390
+>>>8	beshort		15		S/390x
+>>>8	beshort		16		PowerPC64
+>>>8	beshort		17		SuperH
+>>>8	beshort		18		Xtensa
+>>10	string		x		%s
+
+# Type:	Delta RPM
+# From:	Daniel Novotny (dnovotny@redhat.com)
+0	string		drpm		Delta RPM
+!:mime application/x-rpm
+>12	string		x		%s
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/rtf b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/rtf
new file mode 100755
index 0000000000000000000000000000000000000000..dca31956235f9274ea9f7be8ed66811446960715
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/rtf
@@ -0,0 +1,16 @@
+
+#------------------------------------------------------------------------------
+# $File: rtf,v 1.7 2009/09/19 16:28:12 christos Exp $
+# rtf:	file(1) magic for Rich Text Format (RTF)
+#
+# Duncan P. Simpson, D.P.Simpson@dcs.warwick.ac.uk
+#
+0	string		{\\rtf		Rich Text Format data,
+!:mime	text/rtf
+>5	string		1		version 1,
+>>6	string		\\ansi		ANSI
+>>6	string		\\mac		Apple Macintosh
+>>6	string		\\pc		IBM PC, code page 437
+>>6	string		\\pca		IBM PS/2, code page 850
+>>6	default		x		unknown character set
+>5	default		x		unknown version
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ruby b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ruby
new file mode 100755
index 0000000000000000000000000000000000000000..26630f3a8202d834b6f6085acf533bd2c1383cf4
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ruby
@@ -0,0 +1,28 @@
+
+#------------------------------------------------------------------------------
+# $File: ruby,v 1.5 2010/07/21 16:47:17 christos Exp $
+# ruby:  file(1) magic for Ruby scripting language
+# URL:  http://www.ruby-lang.org/
+# From: Reuben Thomas <rrt@sc3d.org>
+
+# Ruby scripts
+0	search/1/w	#!\ /usr/bin/ruby	Ruby script text executable
+!:mime text/x-ruby
+0	search/1/w	#!\ /usr/local/bin/ruby	Ruby script text executable
+!:mime text/x-ruby
+0	search/1	#!/usr/bin/env\ ruby	Ruby script text executable
+!:mime text/x-ruby
+0	search/1	#!\ /usr/bin/env\ ruby	Ruby script text executable
+!:mime text/x-ruby
+
+# What looks like ruby, but does not have a shebang
+# (modules and such)
+# From: Lubomir Rintel <lkundrak@v3.sk>
+0	regex		\^[\ \t]*require[\ \t]'[A-Za-z_/]+'
+>0	regex		include\ [A-Z]|def\ [a-z]|\ do$
+>>0	regex		\^[\ \t]*end([\ \t]*[;#].*)?$		Ruby script text
+!:mime	text/x-ruby
+0	regex		\^[\ \t]*(class|module)[\ \t][A-Z]
+>0	regex		(modul|includ)e\ [A-Z]|def\ [a-z]
+>>0	regex		\^[\ \t]*end([\ \t]*[;#].*)?$		Ruby module source text
+!:mime	text/x-ruby
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sc b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sc
new file mode 100755
index 0000000000000000000000000000000000000000..dc6d6c83d7a53387b260edf6e693a5ccd25d365a
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sc
@@ -0,0 +1,7 @@
+
+#------------------------------------------------------------------------------
+# $File: sc,v 1.6 2009/09/19 16:28:12 christos Exp $
+# sc:  file(1) magic for "sc" spreadsheet
+#
+38	string		Spreadsheet	sc spreadsheet file
+!:mime	application/x-sc
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sccs b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sccs
new file mode 100755
index 0000000000000000000000000000000000000000..95b3a5db128d7c07b39fd54dd16a4c70289ea6c1
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sccs
@@ -0,0 +1,22 @@
+
+#------------------------------------------------------------------------------
+# $File: sccs,v 1.6 2009/09/19 16:28:12 christos Exp $
+# sccs:  file(1) magic for SCCS archives
+#
+# SCCS archive structure:
+# \001h01207
+# \001s 00276/00000/00000
+# \001d D 1.1 87/09/23 08:09:20 ian 1 0
+# \001c date and time created 87/09/23 08:09:20 by ian
+# \001e
+# \001u
+# \001U
+# ... etc.
+# Now '\001h' happens to be the same as the 3B20's a.out magic number (0550).
+# *Sigh*. And these both came from various parts of the USG.
+# Maybe we should just switch everybody from SCCS to RCS!
+# Further, you can't just say '\001h0', because the five-digit number
+# is a checksum that could (presumably) have any leading digit,
+# and we don't have regular expression matching yet. 
+# Hence the following official kludge:
+8	string		\001s\ 			SCCS archive data
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/scientific b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/scientific
new file mode 100755
index 0000000000000000000000000000000000000000..7418f1ba54acac825c9b3dd0e2f7d356e1505828
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/scientific
@@ -0,0 +1,106 @@
+
+#------------------------------------------------------------------------------
+# $File: scientific,v 1.7 2010/09/20 19:19:17 rrt Exp $
+# scientific:  file(1) magic for scientific formats 
+#
+# From: Joe Krahn <krahn@niehs.nih.gov>
+
+########################################################
+# CCP4 data and plot files:
+0	string		MTZ\040		MTZ reflection file
+
+92	string		PLOT%%84	Plot84 plotting file
+>52	byte		1		, Little-endian
+>55	byte		1		, Big-endian
+
+########################################################
+# Electron density MAP/MASK formats
+
+0	string		EZD_MAP	NEWEZD Electron Density Map
+109	string		MAP\040(  Old EZD Electron Density Map
+
+0	string/c	:-)\040Origin	BRIX Electron Density Map
+>170	string		>0	, Sigma:%.12s
+#>4	string		>0	%.178s
+#>4	addr		x	%.178s
+
+7	string		18\040!NTITLE	XPLOR ASCII Electron Density Map
+9	string		\040!NTITLE\012\040REMARK	CNS ASCII electron density map
+
+208	string		MAP\040	CCP4 Electron Density Map
+# Assumes same stamp for float and double (normal case)
+>212	byte		17	\b, Big-endian
+>212	byte		34	\b, VAX format
+>212	byte		68	\b, Little-endian
+>212	byte		85	\b, Convex native
+
+############################################################
+# X-Ray Area Detector images
+0	string	R-AXIS4\ \ \ 	R-Axis Area Detector Image:
+>796	lelong	<20		Little-endian, IP #%d,
+>>768	lelong	>0		Size=%dx
+>>772	lelong	>0		\b%d
+>796	belong	<20		Big-endian, IP #%d,
+>>768	belong	>0		Size=%dx
+>>772	belong	>0		\b%d
+
+0	string	RAXIS\ \ \ \ \ 	R-Axis Area Detector Image, Win32:
+>796	lelong	<20		Little-endian, IP #%d,
+>>768	lelong	>0		Size=%dx
+>>772	lelong	>0		\b%d
+>796	belong	<20		Big-endian, IP #%d,
+>>768	belong	>0		Size=%dx
+>>772	belong	>0		\b%d
+
+
+1028	string	MMX\000\000\000\000\000\000\000\000\000\000\000\000\000	MAR Area Detector Image,
+>1072	ulong	>1		Compressed(%d),
+>1100	ulong	>1		%d headers,
+>1104	ulong	>0		%d x
+>1108	ulong	>0		%d,
+>1120	ulong	>0		%d bits/pixel
+
+# Type: GEDCOM genealogical (family history) data
+# From: Giuseppe Bilotta
+0       search/1/c	0\ HEAD         GEDCOM genealogy text
+>&0     search		1\ GEDC
+>>&0    search		2\ VERS         version
+>>>&1   search/1	>\0		%s
+# From: Phil Endecott <phil05@chezphil.org>
+0	string	\000\060\000\040\000\110\000\105\000\101\000\104		GEDCOM data
+0	string	\060\000\040\000\110\000\105\000\101\000\104\000		GEDCOM data
+0	string	\376\377\000\060\000\040\000\110\000\105\000\101\000\104	GEDCOM data
+0	string	\377\376\060\000\040\000\110\000\105\000\101\000\104\000	GEDCOM data
+
+# PDB: Protein Data Bank files
+# Adam Buchbinder <adam.buchbinder@gmail.com>
+#
+# http://www.wwpdb.org/documentation/format32/sect2.html
+# http://www.ch.ic.ac.uk/chemime/
+#
+# The PDB file format is fixed-field, 80 columns. From the spec:
+#
+# COLS        DATA
+#  1 -  6      "HEADER"
+#  11 - 50     String(40)
+#  51 - 59     Date
+#  63 - 66     IDcode
+#
+# Thus, positions 7-10, 60-62 and 67-80 are spaces. The Date must be in the
+# format DD-MMM-YY, e.g., 01-JAN-70, and the IDcode consists of numbers and
+# uppercase letters. However, examples have been seen without the date string,
+# e.g., the example on the chemime site.
+0	string	HEADER\ \ \ \ 
+>&0	regex/1	\^.{40}
+>>&0	regex/1	[0-9]{2}-[A-Z]{3}-[0-9]{2}\ {3}
+>>>&0	regex/1s	[A-Z0-9]{4}.{14}$
+>>>>&0	regex/1	[A-Z0-9]{4}	Protein Data Bank data, ID Code %s
+!:mime	chemical/x-pdb
+>>>>0	regex/1	[0-9]{2}-[A-Z]{3}-[0-9]{2}	\b, %s
+
+# Type:	GDSII Stream file
+0	belong	0x00060002	GDSII Stream file
+>4	byte	0x00
+>>5	byte	x		version %d.0
+>4	byte	>0x00		version %d
+>>5	byte	x		\b.%d
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/securitycerts b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/securitycerts
new file mode 100755
index 0000000000000000000000000000000000000000..8785dd883fdcd1709c87447bb3ccb0c530880edd
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/securitycerts
@@ -0,0 +1,6 @@
+
+#------------------------------------------------------------------------------
+# $File: securitycerts,v 1.4 2009/09/19 16:28:12 christos Exp $
+0	search/1		-----BEGIN\ CERTIFICATE------	RFC1421 Security Certificate text
+0	search/1		-----BEGIN\ NEW\ CERTIFICATE	RFC1421 Security Certificate Signing Request text
+0	belong	0xedfeedfe	Sun 'jks' Java Keystore File data
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/selinux b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/selinux
new file mode 100755
index 0000000000000000000000000000000000000000..5f229465434945d62082f69147f6b8a13ca79060
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/selinux
@@ -0,0 +1,24 @@
+# Type:	SE Linux policy modules *.pp reference policy
+#	for Fedora 5 to 9, RHEL5, and Debian Etch and Lenny.
+# URL:	http://doc.coker.com.au/computers/selinux-magic
+# From:	Russell Coker <russell@coker.com.au>
+
+0		lelong	0xf97cff8f	SE Linux modular policy
+>4		lelong	x		version %d,
+>8		lelong	x		%d sections,
+>>(12.l)	lelong	0xf97cff8d
+>>>(12.l+27)	lelong	x		mod version %d,
+>>>(12.l+31)	lelong	0		Not MLS,
+>>>(12.l+31)	lelong	1		MLS,
+>>>(12.l+23)	lelong	2
+>>>>(12.l+47)	string	>\0		module name %s
+>>>(12.l+23)	lelong	1		base
+
+1	string	policy_module(	SE Linux policy module source
+2	string	policy_module(	SE Linux policy module source
+
+0	string	##\ <summary>	SE Linux policy interface source
+
+#0	search	gen_context(	SE Linux policy file contexts
+
+#0	search	gen_sens(	SE Linux policy MLS constraints source
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sendmail b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sendmail
new file mode 100755
index 0000000000000000000000000000000000000000..aeb62031426995e1e4d832c469aea8fde347af2c
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sendmail
@@ -0,0 +1,20 @@
+
+#------------------------------------------------------------------------------
+# $File: sendmail,v 1.7 2009/09/19 16:28:12 christos Exp $
+# sendmail:  file(1) magic for sendmail config files
+#
+# XXX - byte order?
+#
+0	byte	046	  Sendmail frozen configuration 
+>16	string	>\0	  - version %s
+0	short	0x271c	  Sendmail frozen configuration
+>16	string	>\0	  - version %s
+
+#------------------------------------------------------------------------------
+# sendmail:  file(1) magic for sendmail m4(1) files
+#
+# From Hendrik Scholz <hendrik@scholz.net>
+# i.e. files in /usr/share/sendmail/cf/
+#
+0   string  divert(-1)\n    sendmail m4 text file
+
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sequent b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sequent
new file mode 100755
index 0000000000000000000000000000000000000000..0ce6bf2c796ad3c3e6f4abf538d407275aa355c6
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sequent
@@ -0,0 +1,35 @@
+
+#------------------------------------------------------------------------------
+# $File: sequent,v 1.8 2009/09/19 16:28:12 christos Exp $
+# sequent:  file(1) magic for Sequent machines
+#
+# Sequent information updated by Don Dwiggins <atsun!dwiggins>.
+# For Sequent's multiprocessor systems (incomplete).
+0	lelong	0x00ea        	BALANCE NS32000 .o
+>16	lelong	>0		not stripped
+>124	lelong	>0		version %ld
+0	lelong	0x10ea        	BALANCE NS32000 executable (0 @ 0)
+>16	lelong  >0            	not stripped
+>124	lelong	>0		version %ld
+0	lelong	0x20ea        	BALANCE NS32000 executable (invalid @ 0)
+>16	lelong  >0            	not stripped
+>124	lelong	>0		version %ld
+0	lelong	0x30ea        	BALANCE NS32000 standalone executable
+>16	lelong  >0          	not stripped
+>124	lelong	>0		version %ld
+#
+# Symmetry information added by Jason Merrill <jason@jarthur.claremont.edu>.
+# Symmetry magic nums will not be reached if DOS COM comes before them;
+# byte 0xeb is matched before these get a chance.
+0	leshort	0x12eb		SYMMETRY i386 .o
+>16	lelong	>0		not stripped
+>124	lelong	>0		version %ld
+0	leshort	0x22eb		SYMMETRY i386 executable (0 @ 0)
+>16	lelong	>0		not stripped
+>124	lelong	>0		version %ld
+0	leshort	0x32eb		SYMMETRY i386 executable (invalid @ 0)
+>16	lelong	>0		not stripped
+>124	lelong	>0		version %ld
+0	leshort	0x42eb		SYMMETRY i386 standalone executable
+>16	lelong	>0		not stripped
+>124	lelong	>0		version %ld
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sgi b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sgi
new file mode 100755
index 0000000000000000000000000000000000000000..2a8af1faf14c949b4a5d658097f0c7f484c52460
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sgi
@@ -0,0 +1,71 @@
+
+#------------------------------------------------------------------------------
+# $File: sgi,v 1.18 2010/11/25 15:00:12 christos Exp $
+# sgi:  file(1) magic for Silicon Graphics applications
+
+#
+#
+# Performance Co-Pilot file types
+0	string	PmNs				PCP compiled namespace (V.0)
+0	string	PmN				PCP compiled namespace
+>3	string	>\0				(V.%1.1s)
+#3	lelong	0x84500526			PCP archive
+3	belong	0x84500526			PCP archive
+>7	byte	x				(V.%d)
+#>20	lelong	-2				temporal index
+#>20	lelong	-1				metadata
+#>20	lelong	0				log volume #0
+#>20	lelong	>0				log volume #%ld
+>20	belong	-2				temporal index
+>20	belong	-1				metadata
+>20	belong	0				log volume #0
+>20	belong	>0				log volume #%ld
+>24	string	>\0				host: %s
+0	string	PCPFolio			PCP
+>9	string	Version:			Archive Folio
+>18	string	>\0				(V.%s)
+0	string	#pmchart			PCP pmchart view
+>9	string	Version
+>17	string	>\0				(V%-3.3s)
+0	string	#kmchart			PCP kmchart view
+>9	string	Version
+>17	string	>\0				(V.%s)
+0	string	pmview				PCP pmview config
+>7	string	Version
+>15	string	>\0				(V%-3.3s)
+0	string	#pmlogger			PCP pmlogger config
+>10	string	Version
+>18	string	>\0				(V%1.1s)
+0	string	#pmdahotproc			PCP pmdahotproc config
+>13	string	Version
+>21	string	>\0				(V%-3.3s)
+0	string	PcPh				PCP Help
+>4	string	1				Index
+>4	string	2				Text
+>5	string	>\0				(V.%1.1s)
+0	string	#pmieconf-rules			PCP pmieconf rules
+>16	string	>\0				(V.%1.1s)
+3	string	pmieconf-pmie			PCP pmie config
+>17	string	>\0				(V.%1.1s)
+
+# SpeedShop data files
+0	lelong	0x13130303			SpeedShop data file
+
+# mdbm files
+0	lelong	0x01023962			mdbm file, version 0 (obsolete)
+0	string	mdbm				mdbm file,
+>5	byte	x				version %d,
+>6	byte	x				2^%d pages,
+>7	byte	x				pagesize 2^%d,
+>17	byte	x				hash %d,
+>11	byte	x				dataformat %d
+
+# Alias Maya files
+0	string/t	//Maya ASCII	Alias Maya Ascii File,
+>13	string	>\0	version %s
+8	string	MAYAFOR4	Alias Maya Binary File,
+>32	string	>\0	version %s scene
+8	string	MayaFOR4	Alias Maya Binary File,
+>32	string	>\0	version %s scene
+8	string	CIMG		Alias Maya Image File
+8	string	DEEP		Alias Maya Image File
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sgml b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sgml
new file mode 100755
index 0000000000000000000000000000000000000000..6843e332d77b84d60ef7462e02c6d59b69e80771
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sgml
@@ -0,0 +1,89 @@
+#------------------------------------------------------------------------------
+# $File: sgml,v 1.26 2011/04/16 15:20:04 christos Exp $
+# Type:	SVG Vectorial Graphics
+# From:	Noel Torres <tecnico@ejerciciosresueltos.com>
+0	string		\<?xml\ version="
+>15	string		>\0
+>>19	search/4096	\<svg			SVG Scalable Vector Graphics image
+!:mime	image/svg+xml
+>>19	search/4096	\<gnc-v2		GnuCash file
+!:mime	application/x-gnucash
+
+# Sitemap file
+0	string/t		\<?xml\ version="
+>15	string		>\0
+>>19	search/4096	\<urlset		XML Sitemap document text
+!:mime	application/xml-sitemap
+
+# xhtml
+0	string/t		\<?xml\ version="
+>15	string		>\0
+>>19	search/4096/cWbt	\<!doctype\ html	xHTML document text
+!:mime	text/html
+0	string/t		\<?xml\ version='
+>15	string		>\0
+>>19	search/4096/cWbt	\<!doctype\ html	xHTML document text
+!:mime	text/html
+0	string/t		\<?xml\ version="
+>15	string		>\0
+>>19	search/4096/cWbt	\<html	broken xHTML document text
+!:mime	text/html
+
+#------------------------------------------------------------------------------
+# sgml:  file(1) magic for Standard Generalized Markup Language
+# HyperText Markup Language (HTML) is an SGML document type,
+# from Daniel Quinlan (quinlan@yggdrasil.com)
+# adapted to string extenstions by Anthon van der Neut <anthon@mnt.org)
+0	search/4096/cWt	\<!doctype\ html	HTML document text
+!:mime	text/html
+0	search/4096/cwt	\<head			HTML document text
+!:mime	text/html
+0	search/4096/cwt	\<title			HTML document text
+!:mime	text/html
+0	search/4096/cwt	\<html			HTML document text
+!:mime	text/html
+0	search/4096/cwt	\<script 		HTML document text
+!:mime	text/html
+0	search/4096/cwt	\<style 		HTML document text
+!:mime	text/html
+0	search/4096/cwt	\<table			HTML document text
+!:mime	text/html
+0	search/4096/cwt	\<a\ href=		HTML document text
+!:mime	text/html
+
+# Extensible markup language (XML), a subset of SGML
+# from Marc Prud'hommeaux (marc@apocalypse.org)
+0	search/1/cwt	\<?xml			XML document text
+!:mime	application/xml
+0	string/t		\<?xml\ version\ "	XML
+!:mime	application/xml
+0	string/t		\<?xml\ version="	XML
+!:mime	application/xml
+>15	search/1	>\0			%.3s document text
+>>23	search/1	\<xsl:stylesheet	(XSL stylesheet)
+>>24	search/1	\<xsl:stylesheet	(XSL stylesheet)
+0	string		\<?xml\ version='	XML
+!:mime	application/xml
+>15	search/1	>\0			%.3s document text
+>>23	search/1	\<xsl:stylesheet	(XSL stylesheet)
+>>24	search/1	\<xsl:stylesheet	(XSL stylesheet)
+0	search/1/wbt	\<?xml			XML document text
+!:mime	application/xml
+!:strength - 10
+0	search/1/wt	\<?XML			broken XML document text
+!:mime	application/xml
+!:strength - 10
+
+
+# SGML, mostly from rph@sq
+0	search/4096/cwt	\<!doctype		exported SGML document text
+0	search/4096/cwt	\<!subdoc		exported SGML subdocument text
+0	search/4096/cwt	\<!--			exported SGML document text
+!:strength - 10
+
+# Web browser cookie files
+# (Mozilla, Galeon, Netscape 4, Konqueror..)
+# Ulf Harnhammar <ulfh@update.uu.se>
+0	search/1	#\ HTTP\ Cookie\ File	Web browser cookie text
+0	search/1	#\ Netscape\ HTTP\ Cookie\ File	Netscape cookie text
+0	search/1	#\ KDE\ Cookie\ File	Konqueror cookie text
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sharc b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sharc
new file mode 100755
index 0000000000000000000000000000000000000000..d5f360460b6ab3f7f086a0d6a7081e44799526f2
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sharc
@@ -0,0 +1,23 @@
+
+#------------------------------------------------------------------------
+# $File: sharc,v 1.6 2009/09/19 16:28:12 christos Exp $
+# file(1) magic for sharc files
+#
+# SHARC DSP, MIDI SysEx and RiscOS filetype definitions added by 
+# FutureGroove Music (dsp@futuregroove.de)
+
+#------------------------------------------------------------------------
+#0	string			Draw		RiscOS Drawfile
+#0	string			PACK		RiscOS PackdDir archive
+
+#------------------------------------------------------------------------
+# SHARC DSP stuff (based on the FGM SHARC DSP SDK)
+
+#0	string			=!		Assembler source
+#0	string			Analog		ADi asm listing file
+0	string			.SYSTEM		SHARC architecture file
+0	string			.system		SHARC architecture file
+
+0	leshort			0x521C		SHARC COFF binary
+>2	leshort			>1		, %hd sections
+>>12	lelong			>0		, not stripped
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sinclair b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sinclair
new file mode 100755
index 0000000000000000000000000000000000000000..5882a64f579f8452a402f29de8f08abe9ae59c2e
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sinclair
@@ -0,0 +1,45 @@
+
+#------------------------------------------------------------------------------
+# $File: sinclair,v 1.5 2009/09/19 16:28:12 christos Exp $
+# sinclair:  file(1) sinclair QL
+
+# additions to /etc/magic by Thomas M. Ott (ThMO)
+
+# Sinclair QL floppy disk formats (ThMO)
+0	string	=QL5		QL disk dump data,
+>3	string	=A		720 KB,
+>3	string	=B		1.44 MB,
+>3	string	=C		3.2 MB,
+>4	string	>\0		label:%.10s
+
+# Sinclair QL OS dump (ThMO)
+# (NOTE: if `file' would be able to use indirect references in a endian format
+#	 differing from the natural host format, this could be written more
+#	 reliably and faster...)
+#
+# we *can't* lookup QL OS code dumps, because `file' is UNABLE to read more
+# than the first 8K of a file... #-(
+#
+#0		belong	=0x30000
+#>49124		belong	<47104
+#>>49128		belong	<47104
+#>>>49132	belong	<47104
+#>>>>49136	belong	<47104	QL OS dump data,
+#>>>>>49148	string	>\0	type %.3s,
+#>>>>>49142	string	>\0	version %.4s
+
+# Sinclair QL firmware executables (ThMO)
+0	string	NqNqNq`\004	QL firmware executable (BCPL)
+
+# Sinclair QL libraries (was ThMO)
+0	beshort	0xFB01		QDOS object
+>2	pstring	x		'%s'
+
+# Sinclair QL executables (was ThMO)
+4	belong	0x4AFB		QDOS executable
+>9	pstring	x		'%s'
+
+# Sinclair QL ROM (ThMO)
+0	belong	=0x4AFB0001	QL plugin-ROM data,
+>9	pstring	=\0		un-named
+>9	pstring	>\0		named: %s
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sisu b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sisu
new file mode 100755
index 0000000000000000000000000000000000000000..ba7104fa16982e3bd1c34cb540db3b8cf37a7f1c
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sisu
@@ -0,0 +1,18 @@
+# Type: SiSU Markup Language
+# URL:  http://www.sisudoc.org/
+# From: Ralph Amissah <ralph.amissah@gmail.com>
+
+0	regex	\^%?[\ \t]*SiSU[\ \t]+insert	SiSU text insert
+>5	regex	[0-9.]+				%s
+
+0	regex	\^%[\ \t]+SiSU[\ \t]+master	SiSU text master
+>5	regex	[0-9.]+				%s
+
+0	regex	\^%?[\ \t]*SiSU[\ \t]+text	SiSU text
+>5	regex	[0-9.]+				%s
+
+0	regex	\^%?[\ \t]*SiSU[\ \t][0-9.]+	SiSU text
+>5	regex	[0-9.]+				%s
+
+0	regex	\^%*[\ \t]*sisu-[0-9.]+		SiSU text
+>5	regex	[0-9.]+				%s
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sketch b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sketch
new file mode 100755
index 0000000000000000000000000000000000000000..82dacb8f06dc7490bf0c3bb2488d5c81600e02ea
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sketch
@@ -0,0 +1,6 @@
+
+#------------------------------------------------------------------------------
+# $File: sketch,v 1.4 2009/09/19 16:28:12 christos Exp $
+# Sketch Drawings: http://sketch.sourceforge.net/ 
+# From: Edwin Mons <e@ik.nu>
+0	search/1	##Sketch	Sketch document text
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/smalltalk b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/smalltalk
new file mode 100755
index 0000000000000000000000000000000000000000..9ff2c6b0c0ab82cb921e2aa2dbf15fc27c46d54f
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/smalltalk
@@ -0,0 +1,25 @@
+
+#-----------------------------------------------
+# $File: smalltalk,v 1.5 2009/09/19 16:28:12 christos Exp $
+# GNU Smalltalk image, starting at version 1.6.2
+# From: catull_us@yahoo.com
+#
+0	string	GSTIm\0\0	GNU SmallTalk
+# little-endian
+>7	byte&1	=0		LE image version
+>>10	byte	x		%d.
+>>9	byte	x		\b%d.
+>>8	byte	x		\b%d
+#>>12	lelong	x		, data: %ld
+#>>16	lelong	x		, table: %ld
+#>>20	lelong	x		, memory: %ld
+# big-endian
+>7	byte&1	=1		BE image version
+>>8	byte	x		%d.
+>>9	byte	x		\b%d.
+>>10	byte	x		\b%d
+#>>12	belong	x		, data: %ld
+#>>16	belong	x		, table: %ld
+#>>20	belong	x		, memory: %ld
+
+
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sniffer b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sniffer
new file mode 100755
index 0000000000000000000000000000000000000000..125480821e383428c5a6ba3827fc251abe88352b
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sniffer
@@ -0,0 +1,327 @@
+
+#------------------------------------------------------------------------------
+# $File: sniffer,v 1.17 2011/07/11 19:42:02 christos Exp $
+# sniffer:  file(1) magic for packet capture files
+#
+# From: guy@alum.mit.edu (Guy Harris)
+#
+
+#
+# Microsoft Network Monitor 1.x capture files.
+#
+0	string		RTSS		NetMon capture file
+>5	byte		x		- version %d
+>4	byte		x		\b.%d
+>6	leshort		0		(Unknown)
+>6	leshort		1		(Ethernet)
+>6	leshort		2		(Token Ring)
+>6	leshort		3		(FDDI)
+>6	leshort		4		(ATM)
+
+#
+# Microsoft Network Monitor 2.x capture files.
+#
+0	string		GMBU		NetMon capture file
+>5	byte		x		- version %d
+>4	byte		x		\b.%d
+>6	leshort		0		(Unknown)
+>6	leshort		1		(Ethernet)
+>6	leshort		2		(Token Ring)
+>6	leshort		3		(FDDI)
+>6	leshort		4		(ATM)
+
+#
+# Network General Sniffer capture files.
+# Sorry, make that "Network Associates Sniffer capture files."
+# Sorry, make that "Network General old DOS Sniffer capture files."
+#
+0	string		TRSNIFF\ data\ \ \ \ \032	Sniffer capture file
+>33	byte		2		(compressed)
+>23	leshort		x		- version %d
+>25	leshort		x		\b.%d
+>32	byte		0		(Token Ring)
+>32	byte		1		(Ethernet)
+>32	byte		2		(ARCNET)
+>32	byte		3		(StarLAN)
+>32	byte		4		(PC Network broadband)
+>32	byte		5		(LocalTalk)
+>32	byte		6		(Znet)
+>32	byte		7		(Internetwork Analyzer)
+>32	byte		9		(FDDI)
+>32	byte		10		(ATM)
+
+#
+# Cinco Networks NetXRay capture files.
+# Sorry, make that "Network General Sniffer Basic capture files."
+# Sorry, make that "Network Associates Sniffer Basic capture files."
+# Sorry, make that "Network Associates Sniffer Basic, and Windows
+# Sniffer Pro", capture files."
+# Sorry, make that "Network General Sniffer capture files."
+#
+0	string		XCP\0		NetXRay capture file
+>4	string		>\0		- version %s
+>44	leshort		0		(Ethernet)
+>44	leshort		1		(Token Ring)
+>44	leshort		2		(FDDI)
+>44	leshort		3		(WAN)
+>44	leshort		8		(ATM)
+>44	leshort		9		(802.11)
+
+#
+# "libpcap" capture files.
+# (We call them "tcpdump capture file(s)" for now, as "tcpdump" is
+# the main program that uses that format, but there are other programs
+# that use "libpcap", or that use the same capture file format.)
+#
+0	ubelong		0xa1b2c3d4	tcpdump capture file (big-endian)
+!:mime	application/vnd.tcpdump.pcap
+>4	beshort		x		- version %d
+>6	beshort		x		\b.%d
+>20	belong		0		(No link-layer encapsulation
+>20	belong		1		(Ethernet
+>20	belong		2		(3Mb Ethernet
+>20	belong		3		(AX.25
+>20	belong		4		(ProNET
+>20	belong		5		(CHAOS
+>20	belong		6		(Token Ring
+>20	belong		7		(BSD ARCNET
+>20	belong		8		(SLIP
+>20	belong		9		(PPP
+>20	belong		10		(FDDI
+>20	belong		11		(RFC 1483 ATM
+>20	belong		12		(raw IP
+>20	belong		13		(BSD/OS SLIP
+>20	belong		14		(BSD/OS PPP
+>20	belong		19		(Linux ATM Classical IP
+>20	belong		50		(PPP or Cisco HDLC
+>20	belong		51		(PPP-over-Ethernet
+>20	belong		99		(Symantec Enterprise Firewall
+>20	belong		100		(RFC 1483 ATM
+>20	belong		101		(raw IP
+>20	belong		102		(BSD/OS SLIP
+>20	belong		103		(BSD/OS PPP
+>20	belong		104		(BSD/OS Cisco HDLC
+>20	belong		105		(802.11
+>20	belong		106		(Linux Classical IP over ATM
+>20	belong		107		(Frame Relay
+>20	belong		108		(OpenBSD loopback
+>20	belong		109		(OpenBSD IPsec encrypted
+>20	belong		112		(Cisco HDLC
+>20	belong		113		(Linux "cooked"
+>20	belong		114		(LocalTalk
+>20	belong		117		(OpenBSD PFLOG
+>20	belong		119		(802.11 with Prism header
+>20	belong		122		(RFC 2625 IP over Fibre Channel
+>20	belong		123		(SunATM
+>20	belong		127		(802.11 with radiotap header
+>20	belong		129		(Linux ARCNET
+>20	belong		138		(Apple IP over IEEE 1394
+>20	belong		140		(MTP2
+>20	belong		141		(MTP3
+>20	belong		143		(DOCSIS
+>20	belong		144		(IrDA
+>20	belong		147		(Private use 0
+>20	belong		148		(Private use 1
+>20	belong		149		(Private use 2
+>20	belong		150		(Private use 3
+>20	belong		151		(Private use 4
+>20	belong		152		(Private use 5
+>20	belong		153		(Private use 6
+>20	belong		154		(Private use 7
+>20	belong		155		(Private use 8
+>20	belong		156		(Private use 9
+>20	belong		157		(Private use 10
+>20	belong		158		(Private use 11
+>20	belong		159		(Private use 12
+>20	belong		160		(Private use 13
+>20	belong		161		(Private use 14
+>20	belong		162		(Private use 15
+>20	belong		163		(802.11 with AVS header
+>16	belong		x		\b, capture length %d)
+0	ulelong		0xa1b2c3d4	tcpdump capture file (little-endian)
+!:mime	application/vnd.tcpdump.pcap
+>4	leshort		x		- version %d
+>6	leshort		x		\b.%d
+>20	lelong		0		(No link-layer encapsulation
+>20	lelong		1		(Ethernet
+>20	lelong		2		(3Mb Ethernet
+>20	lelong		3		(AX.25
+>20	lelong		4		(ProNET
+>20	lelong		5		(CHAOS
+>20	lelong		6		(Token Ring
+>20	lelong		7		(ARCNET
+>20	lelong		8		(SLIP
+>20	lelong		9		(PPP
+>20	lelong		10		(FDDI
+>20	lelong		11		(RFC 1483 ATM
+>20	lelong		12		(raw IP
+>20	lelong		13		(BSD/OS SLIP
+>20	lelong		14		(BSD/OS PPP
+>20	lelong		19		(Linux ATM Classical IP
+>20	lelong		50		(PPP or Cisco HDLC
+>20	lelong		51		(PPP-over-Ethernet
+>20	lelong		99		(Symantec Enterprise Firewall
+>20	lelong		100		(RFC 1483 ATM
+>20	lelong		101		(raw IP
+>20	lelong		102		(BSD/OS SLIP
+>20	lelong		103		(BSD/OS PPP
+>20	lelong		104		(BSD/OS Cisco HDLC
+>20	lelong		105		(802.11
+>20	lelong		106		(Linux Classical IP over ATM
+>20	lelong		107		(Frame Relay
+>20	lelong		108		(OpenBSD loopback
+>20	lelong		109		(OpenBSD IPsec encrypted
+>20	lelong		112		(Cisco HDLC
+>20	lelong		113		(Linux "cooked"
+>20	lelong		114		(LocalTalk
+>20	lelong		117		(OpenBSD PFLOG
+>20	lelong		119		(802.11 with Prism header
+>20	lelong		122		(RFC 2625 IP over Fibre Channel
+>20	lelong		123		(SunATM
+>20	lelong		127		(802.11 with radiotap header
+>20	lelong		129		(Linux ARCNET
+>20	lelong		138		(Apple IP over IEEE 1394
+>20	lelong		140		(MTP2
+>20	lelong		141		(MTP3
+>20	lelong		143		(DOCSIS
+>20	lelong		144		(IrDA
+>20	lelong		147		(Private use 0
+>20	lelong		148		(Private use 1
+>20	lelong		149		(Private use 2
+>20	lelong		150		(Private use 3
+>20	lelong		151		(Private use 4
+>20	lelong		152		(Private use 5
+>20	lelong		153		(Private use 6
+>20	lelong		154		(Private use 7
+>20	lelong		155		(Private use 8
+>20	lelong		156		(Private use 9
+>20	lelong		157		(Private use 10
+>20	lelong		158		(Private use 11
+>20	lelong		159		(Private use 12
+>20	lelong		160		(Private use 13
+>20	lelong		161		(Private use 14
+>20	lelong		162		(Private use 15
+>20	lelong		163		(802.11 with AVS header
+>16	lelong		x		\b, capture length %d)
+
+#
+# "libpcap"-with-Alexey-Kuznetsov's-patches capture files.
+# (We call them "tcpdump capture file(s)" for now, as "tcpdump" is
+# the main program that uses that format, but there are other programs
+# that use "libpcap", or that use the same capture file format.)
+#
+0	ubelong		0xa1b2cd34	extended tcpdump capture file (big-endian)
+>4	beshort		x		- version %d
+>6	beshort		x		\b.%d
+>20	belong		0		(No link-layer encapsulation
+>20	belong		1		(Ethernet
+>20	belong		2		(3Mb Ethernet
+>20	belong		3		(AX.25
+>20	belong		4		(ProNET
+>20	belong		5		(CHAOS
+>20	belong		6		(Token Ring
+>20	belong		7		(ARCNET
+>20	belong		8		(SLIP
+>20	belong		9		(PPP
+>20	belong		10		(FDDI
+>20	belong		11		(RFC 1483 ATM
+>20	belong		12		(raw IP
+>20	belong		13		(BSD/OS SLIP
+>20	belong		14		(BSD/OS PPP
+>16	belong		x		\b, capture length %d)
+0	ulelong		0xa1b2cd34	extended tcpdump capture file (little-endian)
+>4	leshort		x		- version %d
+>6	leshort		x		\b.%d
+>20	lelong		0		(No link-layer encapsulation
+>20	lelong		1		(Ethernet
+>20	lelong		2		(3Mb Ethernet
+>20	lelong		3		(AX.25
+>20	lelong		4		(ProNET
+>20	lelong		5		(CHAOS
+>20	lelong		6		(Token Ring
+>20	lelong		7		(ARCNET
+>20	lelong		8		(SLIP
+>20	lelong		9		(PPP
+>20	lelong		10		(FDDI
+>20	lelong		11		(RFC 1483 ATM
+>20	lelong		12		(raw IP
+>20	lelong		13		(BSD/OS SLIP
+>20	lelong		14		(BSD/OS PPP
+>16	lelong		x		\b, capture length %d)
+
+#
+# "pcapng" capture files.
+# http://www.winpcap.org/ntar/draft/PCAP-DumpFileFormat.html
+#
+0	ubelong		0x0a0d0d0a
+>8	ubelong		0x1a2b3c4d	pcapng capture file (big-endian)
+>>12	beshort		x		- version %d
+>>14	beshort		x		\b.%d
+>8	ulelong		0x1a2b3c4d	pcapng capture file (little-endian)
+>>12	leshort		x		- version %d
+>>14	leshort		x		\b.%d
+
+#
+# "pcap-ng" capture files.
+# http://www.winpcap.org/ntar/draft/PCAP-DumpFileFormat.html
+# Pcap-ng files can contain multiple sections. Printing the endianness,
+# snaplen, or other information from the first SHB may be misleading.
+#
+0	ubelong		0x0a0d0d0a
+>8	ubelong		0x1a2b3c4d	pcap-ng capture file
+>>12	beshort		x		- version %d
+>>14	beshort		x		\b.%d
+0	ulelong		0x0a0d0d0a
+>8	ulelong		0x1a2b3c4d	pcap-ng capture file
+>>12	leshort		x		- version %d
+>>14	leshort		x		\b.%d
+
+#
+# AIX "iptrace" capture files.
+#
+0	string		iptrace\ 1.0	"iptrace" capture file
+0	string		iptrace\ 2.0	"iptrace" capture file
+
+#
+# Novell LANalyzer capture files.
+#
+0	leshort		0x1001		LANalyzer capture file
+0	leshort		0x1007		LANalyzer capture file
+
+#
+# HP-UX "nettl" capture files.
+#
+0	string		\x54\x52\x00\x64\x00	"nettl" capture file
+
+#
+# RADCOM WAN/LAN Analyzer capture files.
+#
+0	string		\x42\xd2\x00\x34\x12\x66\x22\x88	RADCOM WAN/LAN Analyzer capture file
+
+#
+# NetStumbler log files.  Not really packets, per se, but about as
+# close as you can get.  These are log files from NetStumbler, a
+# Windows program, that scans for 802.11b networks.
+#
+0	string		NetS		NetStumbler log file
+>8	lelong		x		\b, %d stations found
+
+#
+# EtherPeek/AiroPeek "version 9" capture files.
+#
+0	string		\177ver		EtherPeek/AiroPeek capture file
+
+#
+# Visual Networks traffic capture files.
+#
+0	string		\x05VNF		Visual Networks traffic capture file
+
+#
+# Network Instruments Observer capture files.
+#
+0	string		ObserverPktBuffe	Network Instruments Observer capture file
+
+#
+# Files from Accellent Group's 5View products.
+#
+0	string		\xaa\xaa\xaa\xaa	5View capture file
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/softquad b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/softquad
new file mode 100755
index 0000000000000000000000000000000000000000..06c1f018f8cb2a421bbbaeed57c7e33c1553ca32
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/softquad
@@ -0,0 +1,37 @@
+
+#------------------------------------------------------------------------------
+# $File: softquad,v 1.13 2009/09/19 16:28:12 christos Exp $
+# softquad:  file(1) magic for SoftQuad Publishing Software
+#
+# Author/Editor and RulesBuilder
+#
+# XXX - byte order?
+#
+0	string		\<!SQ\ DTD>	Compiled SGML rules file
+>9	string		>\0		 Type %s
+0	string		\<!SQ\ A/E>	A/E SGML Document binary
+>9	string		>\0		 Type %s
+0	string		\<!SQ\ STS>	A/E SGML binary styles file
+>9	string		>\0		 Type %s
+0	short		0xc0de		Compiled PSI (v1) data
+0	short		0xc0da		Compiled PSI (v2) data
+>3	string		>\0		(%s)
+# Binary sqtroff font/desc files...
+0	short		0125252		SoftQuad DESC or font file binary
+>2	short		>0		- version %d
+# Bitmaps...
+0	search/1	SQ\ BITMAP1	SoftQuad Raster Format text
+#0	string		SQ\ BITMAP2	SoftQuad Raster Format data
+# sqtroff intermediate language (replacement for ditroff int. lang.)
+0	string		X\ 		SoftQuad troff Context intermediate
+>2	string		495		for AT&T 495 laser printer
+>2	string		hp		for Hewlett-Packard LaserJet
+>2	string		impr		for IMAGEN imPRESS
+>2	string		ps		for PostScript
+
+# From: Michael Piefel <piefel@debian.org>
+# sqtroff intermediate language (replacement for ditroff int. lang.)
+0	string		X\ 495		SoftQuad troff Context intermediate for AT&T 495 laser printer
+0	string		X\ hp		SoftQuad troff Context intermediate for HP LaserJet
+0	string		X\ impr		SoftQuad troff Context intermediate for IMAGEN imPRESS
+0	string		X\ ps		SoftQuad troff Context intermediate for PostScript
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/spec b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/spec
new file mode 100755
index 0000000000000000000000000000000000000000..c504b1fd1944a3a614e74048bff466eef038387d
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/spec
@@ -0,0 +1,21 @@
+
+#------------------------------------------------------------------------------
+# $File: spec,v 1.4 2009/09/19 16:28:12 christos Exp $
+# spec:  file(1) magic for SPEC raw results (*.raw, *.rsf)
+#
+# Cloyce D. Spradling <cloyce@headgear.org>
+
+0	string	spec			SPEC
+>4	string	.cpu			CPU
+>>8	string	<:			\b%.4s
+>>12	string	.			raw result text
+
+17	string	version=SPECjbb		SPECjbb
+>32	string	<:			\b%.4s
+>>37	string	<:			v%.4s raw result text
+
+0	string	BEGIN\040SPECWEB	SPECweb
+>13	string	<:			\b%.2s
+>>15	string	_SSL			\b_SSL
+>>>20	string	<:			v%.4s raw result text
+>>16	string	<:			v%.4s raw result text
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/spectrum b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/spectrum
new file mode 100755
index 0000000000000000000000000000000000000000..d2c414b967761c2ec0178765e0e15dcfc8bbacda
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/spectrum
@@ -0,0 +1,54 @@
+
+#------------------------------------------------------------------------------
+# $File: spectrum,v 1.7 2010/09/20 18:55:20 rrt Exp $
+# spectrum:  file(1) magic for Spectrum emulator files.
+#
+# John Elliott <jce@seasip.demon.co.uk>
+
+#
+# Spectrum +3DOS header
+#
+0       string          PLUS3DOS\032    Spectrum +3 data
+>15     byte            0               - BASIC program
+>15     byte            1               - number array
+>15     byte            2               - character array
+>15     byte            3               - memory block
+>>16    belong          0x001B0040      (screen)
+>15     byte            4               - Tasword document
+>15     string          TAPEFILE        - ZXT tapefile
+#
+# Tape file. This assumes the .TAP starts with a Spectrum-format header,
+# which nearly all will.
+#
+# Update: Sanity-check string contents to be printable.
+#  -Adam Buchbinder <adam.buchbinder@gmail.com>
+#
+0       string          \023\000\000
+>4      string          >\0
+>>4     string          <\177           Spectrum .TAP data "%-10.10s"
+>>>3    byte            0               - BASIC program
+>>>3    byte            1               - number array
+>>>3    byte            2               - character array
+>>>3    byte            3               - memory block
+>>>>14  belong          0x001B0040      (screen)
+
+# The following three blocks are from pak21-spectrum@srcf.ucam.org
+# TZX tape images
+0      string          ZXTape!\x1a     Spectrum .TZX data
+>8     byte            x               version %d
+>9     byte            x               \b.%d
+
+# RZX input recording files
+0      string          RZX!            Spectrum .RZX data
+>4     byte            x               version %d
+>5     byte            x               \b.%d
+
+# Floppy disk images
+0      string          MV\ -\ CPCEMU\ Disk-Fil Amstrad/Spectrum .DSK data
+0      string          MV\ -\ CPC\ format\ Dis Amstrad/Spectrum DU54 .DSK data
+0      string          EXTENDED\ CPC\ DSK\ Fil Amstrad/Spectrum Extended .DSK data
+0      string          SINCLAIR        Spectrum .SCL Betadisk image
+
+# Hard disk images
+0      string          RS-IDE\x1a      Spectrum .HDF hard disk image
+>7     byte            x               \b, version 0x%02x
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sql b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sql
new file mode 100755
index 0000000000000000000000000000000000000000..cce5550fef42e61f7a6d79c694af841e5978657c
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sql
@@ -0,0 +1,46 @@
+
+#------------------------------------------------------------------------------
+# $File: sql,v 1.6 2009/09/19 16:28:12 christos Exp $
+# sql:  file(1) magic for SQL files
+#
+# From: "Marty Leisner" <mleisner@eng.mc.xerox.com>
+# Recognize some MySQL files.
+#
+0	beshort			0xfe01		MySQL table definition file
+>2	byte			x		Version %d
+0	belong&0xffffff00	0xfefe0300	MySQL MISAM index file
+>3	byte			x		Version %d
+0	belong&0xffffff00	0xfefe0700	MySQL MISAM compressed data file
+>3	byte			x		Version %d
+0	belong&0xffffff00	0xfefe0500	MySQL ISAM index file
+>3	byte			x		Version %d
+0	belong&0xffffff00	0xfefe0600	MySQL ISAM compressed data file
+>3	byte			x		Version %d
+0	string		 	\376bin		MySQL replication log
+
+#------------------------------------------------------------------------------
+# iRiver H Series database file 
+# From Ken Guest <ken@linux.ie>
+# As observed from iRivNavi.iDB and unencoded firmware
+#
+0   string		iRivDB	iRiver Database file
+>11  string	>\0	Version %s
+>39  string		iHP-100	[H Series]
+
+#------------------------------------------------------------------------------
+# SQLite database files
+# Ken Guest <ken@linux.ie>, Ty Sarna, Zack Weinberg
+#
+# Version 1 used GDBM internally; its files cannot be distinguished
+# from other GDBM files.
+#
+# Version 2 used this format:
+0	string	**\ This\ file\ contains\ an\ SQLite  SQLite 2.x database
+
+# Version 3 of SQLite allows applications to embed their own "user version"
+# number in the database.  Detect this and distinguish those files.
+
+0   string  SQLite\ format\ 3
+>60 string  _MTN               Monotone source repository
+>60 belong  !0                 SQLite 3.x database, user version %u
+>60 belong  0                  SQLite 3.x database
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ssh b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ssh
new file mode 100755
index 0000000000000000000000000000000000000000..c87f388303d6219df6435f7bf9b4afee70d49b36
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ssh
@@ -0,0 +1,8 @@
+# Type:	OpenSSH key files
+# From:	Nicolas Collignon <tsointsoin@gmail.com>
+
+0	string	SSH\ PRIVATE\ KEY	OpenSSH RSA1 private key,
+>28	string	>\0			version %s
+
+0	string	ssh-dss\ 		OpenSSH DSA public key
+0	string	ssh-rsa\ 		OpenSSH RSA public key
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ssl b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ssl
new file mode 100755
index 0000000000000000000000000000000000000000..4d8706e2b8ca6929fca5a0b7a30fd0d01cf8ebb6
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ssl
@@ -0,0 +1,7 @@
+# Type: OpenSSL certificates/key files
+# From: Nicolas Collignon <tsointsoin@gmail.com>
+
+0	string	-----BEGIN\ CERTIFICATE-----	PEM certificate
+0	string	-----BEGIN\ CERTIFICATE\ REQ	PEM certificate request
+0	string	-----BEGIN\ RSA\ PRIVATE	PEM RSA private key
+0	string	-----BEGIN\ DSA\ PRIVATE	PEM DSA private key
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sun b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sun
new file mode 100755
index 0000000000000000000000000000000000000000..1fd37ede65bd5ff666900b97a39e5825cdb0bb89
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sun
@@ -0,0 +1,134 @@
+
+#------------------------------------------------------------------------------
+# $File: sun,v 1.22 2011/02/10 01:52:51 christos Exp $
+# sun:  file(1) magic for Sun machines
+#
+# Values for big-endian Sun (MC680x0, SPARC) binaries on pre-5.x
+# releases.  (5.x uses ELF.)
+#
+0	belong&077777777	0600413		sparc demand paged
+>0	byte		&0x80
+>>20	belong		<4096		shared library
+>>20	belong		=4096		dynamically linked executable
+>>20	belong		>4096		dynamically linked executable
+>0	byte		^0x80		executable
+>16	belong		>0		not stripped
+
+0	belong&077777777	0600410		sparc pure
+>0	byte		&0x80		dynamically linked executable
+>0	byte		^0x80		executable
+>16	belong		>0		not stripped
+
+0	belong&077777777	0600407		sparc
+>0	byte		&0x80		dynamically linked executable
+>0	byte		^0x80		executable
+>16	belong		>0		not stripped
+
+0	belong&077777777	0400413		mc68020 demand paged
+>0	byte		&0x80
+>>20	belong		<4096		shared library
+>>20	belong		=4096		dynamically linked executable
+>>20	belong		>4096		dynamically linked executable
+>0	byte		^0x80		executable
+>16	belong		>0		not stripped
+
+0	belong&077777777	0400410		mc68020 pure
+>0	byte		&0x80		dynamically linked executable
+>0	byte		^0x80		executable
+>16	belong		>0		not stripped
+
+0	belong&077777777	0400407		mc68020
+>0	byte		&0x80		dynamically linked executable
+>0	byte		^0x80		executable
+>16	belong		>0		not stripped
+
+0	belong&077777777	0200413		mc68010 demand paged
+>0	byte		&0x80
+>>20	belong		<4096		shared library
+>>20	belong		=4096		dynamically linked executable
+>>20	belong		>4096		dynamically linked executable
+>0	byte		^0x80		executable
+>16	belong		>0		not stripped
+
+0	belong&077777777	0200410		mc68010 pure
+>0	byte		&0x80		dynamically linked executable
+>0	byte		^0x80		executable
+>16	belong		>0		not stripped
+
+0	belong&077777777	0200407		mc68010
+>0	byte		&0x80		dynamically linked executable
+>0	byte		^0x80		executable
+>16	belong		>0		not stripped
+
+# reworked these to avoid anything beginning with zero becoming "old sun-2"
+0	belong		0407		old sun-2 executable
+>16	belong		>0		not stripped
+0	belong		0410		old sun-2 pure executable
+>16	belong		>0		not stripped
+0	belong		0413		old sun-2 demand paged executable
+>16	belong		>0		not stripped
+
+#
+# Core files.  "SPARC 4.x BCP" means "core file from a SunOS 4.x SPARC
+# binary executed in compatibility mode under SunOS 5.x".
+#
+0	belong		0x080456	SunOS core file
+>4	belong		432		(SPARC)
+>>132	string		>\0		from '%s'
+>>116	belong		=3		(quit)
+>>116	belong		=4		(illegal instruction)
+>>116	belong		=5		(trace trap)
+>>116	belong		=6		(abort)
+>>116	belong		=7		(emulator trap)
+>>116	belong		=8		(arithmetic exception)
+>>116	belong		=9		(kill)
+>>116	belong		=10		(bus error)
+>>116	belong		=11		(segmentation violation)
+>>116	belong		=12		(bad argument to system call)
+>>116	belong		=29		(resource lost)
+>>120	belong		x		(T=%dK,
+>>124	belong		x		D=%dK,
+>>128	belong		x		S=%dK)
+>4	belong		826		(68K)
+>>128	string		>\0		from '%s'
+>4	belong		456		(SPARC 4.x BCP)
+>>152	string		>\0		from '%s'
+# Sun SunPC
+0	long		0xfa33c08e	SunPC 4.0 Hard Disk
+0	string		#SUNPC_CONFIG	SunPC 4.0 Properties Values
+# Sun snoop (see RFC 1761, which describes the capture file format).
+#
+0	string		snoop		Snoop capture file
+>8	belong		>0		- version %ld
+>12	belong		0		(IEEE 802.3)
+>12	belong		1		(IEEE 802.4)
+>12	belong		2		(IEEE 802.5)
+>12	belong		3		(IEEE 802.6)
+>12	belong		4		(Ethernet)
+>12	belong		5		(HDLC)
+>12	belong		6		(Character synchronous)
+>12	belong		7		(IBM channel-to-channel adapter)
+>12	belong		8		(FDDI)
+>12	belong		9		(Unknown)
+
+# Microsoft ICM color profile
+36	string		acspMSFT	Microsoft ICM Color Profile
+!:mime	application/vnd.iccprofile
+# Sun KCMS
+36	string		acsp		Kodak Color Management System, ICC Profile
+!:mime	application/vnd.iccprofile
+
+#---------------------------------------------------------------------------
+# The following entries have been tested by Duncan Laurie <duncan@sun.com> (a
+# lead Sun/Cobalt developer) who agrees that they are good and worthy of
+# inclusion.
+
+# Boot ROM images for Sun/Cobalt Linux server appliances
+0       string  Cobalt\ Networks\ Inc.\nFirmware\ v     Paged COBALT boot rom
+>38     string x        V%.4s
+
+# New format for Sun/Cobalt boot ROMs is annoying, it stores the version code
+# at the very end where file(1) can't get it.
+0       string CRfs     COBALT boot rom data (Flat boot rom or file system)
+
+
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sysex b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sysex
new file mode 100755
index 0000000000000000000000000000000000000000..70b5b1cf24a1eb75b83c5080f9338657ecbe7346
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/sysex
@@ -0,0 +1,318 @@
+
+#------------------------------------------------------------------------
+# $File: sysex,v 1.6 2009/09/19 16:28:12 christos Exp $
+# sysex: file(1) magic for MIDI sysex files
+#
+# 
+0	byte			0xF0		SysEx File -
+
+# North American Group
+>1	byte			0x01		Sequential
+>1	byte			0x02		IDP
+>1	byte			0x03		OctavePlateau
+>1	byte			0x04		Moog
+>1	byte			0x05		Passport
+>1	byte			0x06		Lexicon
+>1	byte			0x07		Kurzweil/Future Retro
+>>3	byte			0x77		777
+>>4	byte			0x00		Bank
+>>4	byte			0x01		Song
+>>5	byte			0x0f		16
+>>5	byte			0x0e		15
+>>5	byte			0x0d		14
+>>5	byte			0x0c		13
+>>5	byte			0x0b		12
+>>5	byte			0x0a		11
+>>5	byte			0x09		10
+>>5	byte			0x08		9
+>>5	byte			0x07		8
+>>5	byte			0x06		7
+>>5	byte			0x05		6
+>>5	byte			0x04		5
+>>5	byte			0x03		4
+>>5	byte			0x02		3
+>>5	byte			0x01		2
+>>5	byte			0x00		1
+>>5	byte			0x10		(ALL)
+>>2	byte			x			\b, Channel %d
+>1	byte			0x08		Fender
+>1	byte			0x09		Gulbransen
+>1	byte			0x0a		AKG
+>1	byte			0x0b		Voyce
+>1	byte			0x0c		Waveframe
+>1	byte			0x0d		ADA
+>1	byte			0x0e		Garfield
+>1	byte			0x0f		Ensoniq
+>1	byte			0x10		Oberheim
+>>2	byte			0x06		Matrix 6 series
+>>3	byte			0x0A		Dump (All)
+>>3	byte			0x01		Dump (Bank)
+>>4 belong			0x0002040E		Matrix 1000
+>>>11 byte			<2			User bank %d
+>>>11 byte			>1			Preset bank %d
+>1	byte			0x11		Apple
+>1	byte			0x12		GreyMatter
+>1	byte			0x14		PalmTree
+>1	byte			0x15		JLCooper
+>1	byte			0x16		Lowrey
+>1	byte			0x17		AdamsSmith
+>1	byte			0x18		E-mu
+>1	byte			0x19		Harmony
+>1	byte			0x1a		ART
+>1	byte			0x1b		Baldwin
+>1	byte			0x1c		Eventide
+>1	byte			0x1d		Inventronics
+>1	byte			0x1f		Clarity
+
+# European Group
+>1	byte			0x21		SIEL
+>1	byte			0x22		Synthaxe
+>1	byte			0x24		Hohner
+>1	byte			0x25		Twister
+>1	byte			0x26		Solton
+>1	byte			0x27		Jellinghaus
+>1	byte			0x28		Southworth
+>1	byte			0x29		PPG
+>1	byte			0x2a		JEN
+>1	byte			0x2b		SSL
+>1	byte			0x2c		AudioVertrieb
+
+>1	byte			0x2f		ELKA
+>>3	byte			0x09		EK-44
+
+>1	byte			0x30		Dynacord
+>1	byte			0x31		Jomox
+>1	byte			0x33		Clavia
+>1	byte			0x39		Soundcraft
+# Some Waldorf info from http://Stromeko.Synth.net/Downloads#WaldorfDocs
+>1	byte			0x3e		Waldorf
+>>2	byte			0x00		microWave
+>>2	byte			0x0E		microwave2 / XT
+>>2	byte			0x0F		Q / Q+
+>>3	byte			=0			(default id)
+>>3 byte			>0			(
+>>>3 byte			<0x7F		\bdevice %d)
+>>>3 byte			=0x7F		\bbroadcast id)
+>>3	byte			0x7f		Microwave I
+>>>4	byte			0x00		SNDR (Sound Request)
+>>>4	byte			0x10		SNDD (Sound Dump)
+>>>4	byte			0x20		SNDP (Sound Parameter Change)
+>>>4	byte			0x30		SNDQ (Sound Parameter Inquiry)
+>>>4	byte			0x70		BOOT (Sound Reserved)
+>>>4	byte			0x01		MULR (Multi Request)
+>>>4	byte			0x11		MULD (Multi Dump)
+>>>4	byte			0x21		MULP (Multi Parameter Change)
+>>>4	byte			0x31		MULQ (Multi Parameter Inquiry)
+>>>4	byte			0x71		OS (Multi Reserved)
+>>>4	byte			0x02		DRMR (Drum Map Request)
+>>>4	byte			0x12		DRMD (Drum Map Dump)
+>>>4	byte			0x22		DRMP (Drum Map Parameter Change)
+>>>4	byte			0x32		DRMQ (Drum Map Parameter Inquiry)
+>>>4	byte			0x72		BIN (Drum Map Reserved)
+>>>4	byte			0x03		PATR (Sequencer Pattern Request)
+>>>4	byte			0x13		PATD (Sequencer Pattern Dump)
+>>>4	byte			0x23		PATP (Sequencer Pattern Parameter Change)
+>>>4	byte			0x33		PATQ (Sequencer Pattern Parameter Inquiry)
+>>>4	byte			0x73		AFM (Sequencer Pattern Reserved)
+>>>4	byte			0x04		GLBR (Global Parameter Request)
+>>>4	byte			0x14		GLBD (Global Parameter Dump)
+>>>4	byte			0x24		GLBP (Global Parameter Parameter Change)
+>>>4	byte			0x34		GLBQ (Global Parameter Parameter Inquiry)
+>>>4	byte			0x07		MODR (Mode Parameter Request)
+>>>4	byte			0x17		MODD (Mode Parameter Dump)
+>>>4	byte			0x27		MODP (Mode Parameter Parameter Change)
+>>>4	byte			0x37		MODQ (Mode Parameter Parameter Inquiry)
+>>2	byte			0x10		microQ
+>>>4	byte			0x00		SNDR (Sound Request)
+>>>4	byte			0x10		SNDD (Sound Dump)
+>>>4	byte			0x20		SNDP (Sound Parameter Change)
+>>>4	byte			0x30		SNDQ (Sound Parameter Inquiry)
+>>>4	byte			0x70		(Sound Reserved)
+>>>4	byte			0x01		MULR (Multi Request)
+>>>4	byte			0x11		MULD (Multi Dump)
+>>>4	byte			0x21		MULP (Multi Parameter Change)
+>>>4	byte			0x31		MULQ (Multi Parameter Inquiry)
+>>>4	byte			0x71		OS (Multi Reserved)
+>>>4	byte			0x02		DRMR (Drum Map Request)
+>>>4	byte			0x12		DRMD (Drum Map Dump)
+>>>4	byte			0x22		DRMP (Drum Map Parameter Change)
+>>>4	byte			0x32		DRMQ (Drum Map Parameter Inquiry)
+>>>4	byte			0x72		BIN (Drum Map Reserved)
+>>>4	byte			0x04		GLBR (Global Parameter Request)
+>>>4	byte			0x14		GLBD (Global Parameter Dump)
+>>>4	byte			0x24		GLBP (Global Parameter Parameter Change)
+>>>4	byte			0x34		GLBQ (Global Parameter Parameter Inquiry)
+>>2	byte			0x11		rackAttack
+>>>4	byte			0x00		SNDR (Sound Parameter Request)
+>>>4	byte			0x10		SNDD (Sound Parameter Dump)
+>>>4	byte			0x20		SNDP (Sound Parameter Parameter Change)
+>>>4	byte			0x30		SNDQ (Sound Parameter Parameter Inquiry)
+>>>4	byte			0x01		PRGR (Program Parameter Request)
+>>>4	byte			0x11		PRGD (Program Parameter Dump)
+>>>4	byte			0x21		PRGP (Program Parameter Parameter Change)
+>>>4	byte			0x31		PRGQ (Program Parameter Parameter Inquiry)
+>>>4	byte			0x71		OS (Program Parameter Reserved)
+>>>4	byte			0x03		PATR (Pattern Parameter Request)
+>>>4	byte			0x13		PATD (Pattern Parameter Dump)
+>>>4	byte			0x23		PATP (Pattern Parameter Parameter Change)
+>>>4	byte			0x33		PATQ (Pattern Parameter Parameter Inquiry)
+>>>4	byte			0x04		GLBR (Global Parameter Request)
+>>>4	byte			0x14		GLBD (Global Parameter Dump)
+>>>4	byte			0x24		GLBP (Global Parameter Parameter Change)
+>>>4	byte			0x34		GLBQ (Global Parameter Parameter Inquiry)
+>>>4	byte			0x05		EFXR (FX Parameter Request)
+>>>4	byte			0x15		EFXD (FX Parameter Dump)
+>>>4	byte			0x25		EFXP (FX Parameter Parameter Change)
+>>>4	byte			0x35		EFXQ (FX Parameter Parameter Inquiry)
+>>>4	byte			0x07		MODR (Mode Command Request)
+>>>4	byte			0x17		MODD (Mode Command Dump)
+>>>4	byte			0x27		MODP (Mode Command Parameter Change)
+>>>4	byte			0x37		MODQ (Mode Command Parameter Inquiry)
+>>2	byte			0x03		Wave
+>>>4	byte			0x00		SBPR (Soundprogram)
+>>>4	byte			0x01		SAPR (Performance)
+>>>4	byte			0x02		SWAVE (Wave)
+>>>4	byte			0x03		SWTBL (Wave control table)
+>>>4	byte			0x04		SVT (Velocity Curve)
+>>>4	byte			0x05		STT (Tuning Table)
+>>>4	byte			0x06		SGLB (Global Parameters)
+>>>4	byte			0x07		SARRMAP (Performance Program Change Map)
+>>>4	byte			0x08		SBPRMAP (Sound Program Change Map)
+>>>4	byte			0x09		SBPRPAR (Sound Parameter)
+>>>4	byte			0x0A		SARRPAR (Performance Parameter)
+>>>4	byte			0x0B		SINSPAR (Instrument/External Parameter)
+>>>4	byte			0x0F		SBULK (Bulk Switch on/off)
+
+# Japanese Group
+>1	byte			0x40		Kawai
+>>3	byte			0x20		K1
+>>3	byte			0x22		K4
+
+>1	byte			0x41		Roland
+>>3	byte			0x14		D-50
+>>3	byte			0x2b		U-220
+>>3	byte			0x02		TR-707
+
+>1	byte			0x42		Korg
+>>3	byte			0x19		M1
+
+>1	byte			0x43		Yamaha
+>1	byte			0x44		Casio
+>1	byte			0x46		Kamiya
+>1	byte			0x47		Akai
+>1	byte			0x48		Victor
+>1	byte			0x49		Mesosha
+>1	byte			0x4b		Fujitsu
+>1	byte			0x4c		Sony
+>1	byte			0x4e		Teac
+>1	byte			0x50		Matsushita
+>1	byte			0x51		Fostex
+>1	byte			0x52		Zoom
+>1	byte			0x54		Matsushita
+>1	byte			0x57		Acoustic tech. lab.
+
+>1	belong&0xffffff00	0x00007400	Ta Horng
+>1	belong&0xffffff00	0x00007500	e-Tek
+>1	belong&0xffffff00	0x00007600	E-Voice
+>1	belong&0xffffff00	0x00007700	Midisoft
+>1	belong&0xffffff00	0x00007800	Q-Sound
+>1	belong&0xffffff00	0x00007900	Westrex
+>1	belong&0xffffff00	0x00007a00	Nvidia*
+>1	belong&0xffffff00	0x00007b00	ESS
+>1	belong&0xffffff00	0x00007c00	Mediatrix
+>1	belong&0xffffff00	0x00007d00	Brooktree
+>1	belong&0xffffff00	0x00007e00	Otari
+>1	belong&0xffffff00	0x00007f00	Key Electronics
+>1	belong&0xffffff00	0x00010000	Shure
+>1	belong&0xffffff00	0x00010100	AuraSound
+>1	belong&0xffffff00	0x00010200	Crystal
+>1	belong&0xffffff00	0x00010300	Rockwell
+>1	belong&0xffffff00	0x00010400	Silicon Graphics
+>1	belong&0xffffff00	0x00010500	Midiman
+>1	belong&0xffffff00	0x00010600	PreSonus
+>1	belong&0xffffff00	0x00010800	Topaz
+>1	belong&0xffffff00	0x00010900	Cast Lightning
+>1	belong&0xffffff00	0x00010a00	Microsoft
+>1	belong&0xffffff00	0x00010b00	Sonic Foundry
+>1	belong&0xffffff00	0x00010c00	Line 6
+>1	belong&0xffffff00	0x00010d00	Beatnik Inc.
+>1	belong&0xffffff00	0x00010e00	Van Koerving
+>1	belong&0xffffff00	0x00010f00	Altech Systems
+>1	belong&0xffffff00	0x00011000	S & S Research
+>1	belong&0xffffff00	0x00011100	VLSI Technology
+>1	belong&0xffffff00	0x00011200	Chromatic
+>1	belong&0xffffff00	0x00011300	Sapphire
+>1	belong&0xffffff00	0x00011400	IDRC
+>1	belong&0xffffff00	0x00011500	Justonic Tuning
+>1	belong&0xffffff00	0x00011600	TorComp
+>1	belong&0xffffff00	0x00011700	Newtek Inc.
+>1	belong&0xffffff00	0x00011800	Sound Sculpture
+>1	belong&0xffffff00	0x00011900	Walker Technical
+>1	belong&0xffffff00	0x00011a00	Digital Harmony
+>1	belong&0xffffff00	0x00011b00	InVision
+>1	belong&0xffffff00	0x00011c00	T-Square
+>1	belong&0xffffff00	0x00011d00	Nemesys
+>1	belong&0xffffff00	0x00011e00	DBX
+>1	belong&0xffffff00	0x00011f00	Syndyne
+>1	belong&0xffffff00	0x00012000	Bitheadz	
+>1	belong&0xffffff00	0x00012100	Cakewalk
+>1	belong&0xffffff00	0x00012200	Staccato
+>1	belong&0xffffff00	0x00012300	National Semicon.
+>1	belong&0xffffff00	0x00012400	Boom Theory
+>1	belong&0xffffff00	0x00012500	Virtual DSP Corp
+>1	belong&0xffffff00	0x00012600	Antares
+>1	belong&0xffffff00	0x00012700	Angel Software
+>1	belong&0xffffff00	0x00012800	St Louis Music
+>1	belong&0xffffff00	0x00012900	Lyrrus dba G-VOX
+>1	belong&0xffffff00	0x00012a00	Ashley Audio
+>1	belong&0xffffff00	0x00012b00	Vari-Lite
+>1	belong&0xffffff00	0x00012c00	Summit Audio
+>1	belong&0xffffff00	0x00012d00	Aureal Semicon.
+>1	belong&0xffffff00	0x00012e00	SeaSound
+>1	belong&0xffffff00	0x00012f00	U.S. Robotics
+>1	belong&0xffffff00	0x00013000	Aurisis
+>1	belong&0xffffff00	0x00013100	Nearfield Multimedia
+>1	belong&0xffffff00	0x00013200	FM7 Inc.
+>1	belong&0xffffff00	0x00013300	Swivel Systems
+>1	belong&0xffffff00	0x00013400	Hyperactive
+>1	belong&0xffffff00	0x00013500	MidiLite
+>1	belong&0xffffff00	0x00013600	Radical
+>1	belong&0xffffff00	0x00013700	Roger Linn
+>1	belong&0xffffff00	0x00013800	Helicon
+>1	belong&0xffffff00	0x00013900	Event
+>1	belong&0xffffff00	0x00013a00	Sonic Network
+>1	belong&0xffffff00	0x00013b00	Realtime Music
+>1	belong&0xffffff00	0x00013c00	Apogee Digital
+
+>1	belong&0xffffff00	0x00202b00	Medeli Electronics
+>1	belong&0xffffff00	0x00202c00	Charlie Lab
+>1	belong&0xffffff00	0x00202d00	Blue Chip Music
+>1	belong&0xffffff00	0x00202e00	BEE OH Corp
+>1	belong&0xffffff00	0x00202f00	LG Semicon America
+>1	belong&0xffffff00	0x00203000	TESI
+>1	belong&0xffffff00	0x00203100	EMAGIC
+>1	belong&0xffffff00	0x00203200	Behringer
+>1	belong&0xffffff00	0x00203300	Access Music
+>1	belong&0xffffff00	0x00203400	Synoptic
+>1	belong&0xffffff00	0x00203500	Hanmesoft Corp
+>1	belong&0xffffff00	0x00203600	Terratec
+>1	belong&0xffffff00	0x00203700	Proel SpA
+>1	belong&0xffffff00	0x00203800	IBK MIDI
+>1	belong&0xffffff00	0x00203900	IRCAM
+>1	belong&0xffffff00	0x00203a00	Propellerhead Software
+>1	belong&0xffffff00	0x00203b00	Red Sound Systems
+>1	belong&0xffffff00	0x00203c00	Electron ESI AB
+>1	belong&0xffffff00	0x00203d00	Sintefex Audio
+>1	belong&0xffffff00	0x00203e00	Music and More
+>1	belong&0xffffff00	0x00203f00	Amsaro
+>1	belong&0xffffff00	0x00204000	CDS Advanced Technology
+>1	belong&0xffffff00	0x00204100	Touched by Sound
+>1	belong&0xffffff00	0x00204200	DSP Arts
+>1	belong&0xffffff00	0x00204300	Phil Rees Music
+>1	belong&0xffffff00	0x00204400	Stamer Musikanlagen GmbH
+>1	belong&0xffffff00	0x00204500	Soundart
+>1	belong&0xffffff00	0x00204600	C-Mexx Software
+>1	belong&0xffffff00	0x00204700	Klavis Tech.
+>1	belong&0xffffff00	0x00204800	Noteheads AB
+
+0	string			T707		Roland TR-707 Data
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/tcl b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/tcl
new file mode 100755
index 0000000000000000000000000000000000000000..223f93b58c19639f934c636cd42e1e8867d20c1f
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/tcl
@@ -0,0 +1,29 @@
+#------------------------------------------------------------------------------
+# file:  file(1) magic for Tcl scripting language
+# URL:  http://www.tcl.tk/
+# From: gustaf neumann
+
+# Tcl scripts
+0	search/1/w	#!\ /usr/bin/tcl	Tcl script text executable
+!:mime	text/x-lua
+0	search/1/w	#!\ /usr/local/bin/tcl	Tcl script text executable
+!:mime	text/x-tcl
+0	search/1	#!/usr/bin/env\ tcl	Tcl script text executable
+!:mime	text/x-tcl
+0	search/1	#!\ /usr/bin/env\ tcl	Tcl script text executable
+!:mime	text/x-tcl
+0	search/1/w	#!\ /usr/bin/wish	Tcl/Tk script text executable
+!:mime	text/x-tcl
+0	search/1/w	#!\ /usr/local/bin/wish	Tcl/Tk script text executable
+!:mime	text/x-tcl
+0	search/1	#!/usr/bin/env\ wish	Tcl/Tk script text executable
+!:mime	text/x-tcl
+0	search/1	#!\ /usr/bin/env\ wish	Tcl/Tk script text executable
+!:mime	text/x-tcl
+
+# check the first line
+0	search/1	package\ req
+>0	regex		\^package[\ \t]+req	Tcl script
+# not 'p', check other lines
+0	search/1	!p
+>0	regex		\^package[\ \t]+req	Tcl script
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/teapot b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/teapot
new file mode 100755
index 0000000000000000000000000000000000000000..b6577b6f28568232dc1a3729c918af878bcddbac
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/teapot
@@ -0,0 +1,6 @@
+
+#------------------------------------------------------------------------------
+# $File: teapot,v 1.4 2009/09/19 16:28:12 christos Exp $
+# teapot:  file(1) magic for "teapot" spreadsheet
+#
+0       string          #!teapot\012xdr      teapot work sheet (XDR format)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/terminfo b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/terminfo
new file mode 100755
index 0000000000000000000000000000000000000000..97ea42929914db9757fa31a548d580a5ffbaa0ed
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/terminfo
@@ -0,0 +1,10 @@
+
+#------------------------------------------------------------------------------
+# $File: terminfo,v 1.6 2009/09/19 16:28:12 christos Exp $
+# terminfo:  file(1) magic for terminfo
+#
+# XXX - byte order for screen images?
+#
+0	string		\032\001	Compiled terminfo entry
+0	short		0433		Curses screen image
+0	short		0434		Curses screen image
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/tex b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/tex
new file mode 100755
index 0000000000000000000000000000000000000000..e8d2e8762a8c3810de8cf000973c4665f7eb1e9a
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/tex
@@ -0,0 +1,105 @@
+
+#------------------------------------------------------------------------------
+# $File: tex,v 1.18 2011/02/08 13:45:15 christos Exp $
+# tex:  file(1) magic for TeX files
+#
+# XXX - needs byte-endian stuff (big-endian and little-endian DVI?)
+#
+# From <conklin@talisman.kaleida.com>
+
+# Although we may know the offset of certain text fields in TeX DVI
+# and font files, we can't use them reliably because they are not
+# zero terminated. [but we do anyway, christos]
+0	string		\367\002	TeX DVI file
+!:mime	application/x-dvi
+>16	string		>\0		(%s)
+0	string		\367\203	TeX generic font data
+0	string		\367\131	TeX packed font data
+>3	string		>\0		(%s)
+0	string		\367\312	TeX virtual font data
+0	search/1	This\ is\ TeX,	TeX transcript text
+0	search/1	This\ is\ METAFONT,	METAFONT transcript text
+
+# There is no way to detect TeX Font Metric (*.tfm) files without
+# breaking them apart and reading the data.  The following patterns
+# match most *.tfm files generated by METAFONT or afm2tfm.
+2	string		\000\021	TeX font metric data
+!:mime	application/x-tex-tfm
+>33	string		>\0		(%s)
+2	string		\000\022	TeX font metric data
+!:mime	application/x-tex-tfm
+>33	string		>\0		(%s)
+
+# Texinfo and GNU Info, from Daniel Quinlan (quinlan@yggdrasil.com)
+0	search/1	\\input\ texinfo	Texinfo source text
+!:mime	text/x-texinfo
+0	search/1	This\ is\ Info\ file	GNU Info text
+!:mime	text/x-info
+
+# TeX documents, from Daniel Quinlan (quinlan@yggdrasil.com)
+0	search/4096	\\input		TeX document text
+!:mime	text/x-tex
+!:strength + 15
+0	search/4096	\\section	LaTeX document text
+!:mime	text/x-tex
+!:strength + 18
+0	search/4096	\\setlength	LaTeX document text
+!:mime	text/x-tex
+!:strength + 15
+0	search/4096	\\documentstyle	LaTeX document text
+!:mime	text/x-tex
+!:strength + 18
+0	search/4096	\\chapter	LaTeX document text
+!:mime	text/x-tex
+!:strength + 18
+0	search/4096	\\documentclass	LaTeX 2e document text
+!:mime	text/x-tex
+!:strength + 15
+0	search/4096	\\relax		LaTeX auxiliary file
+!:mime	text/x-tex
+!:strength + 15
+0	search/4096	\\contentsline	LaTeX table of contents
+!:mime	text/x-tex
+!:strength + 15
+0	search/4096	%\ -*-latex-*-	LaTeX document text
+!:mime	text/x-tex
+
+# Tex document, from Hendrik Scholz <hendrik@scholz.net>
+0   	search/1	\\ifx		TeX document text
+
+# Index and glossary files
+0	search/4096	\\indexentry	LaTeX raw index file
+0	search/4096	\\begin{theindex}	LaTeX sorted index
+0	search/4096	\\glossaryentry	LaTeX raw glossary
+0	search/4096	\\begin{theglossary}	LaTeX sorted glossary
+0	search/4096	This\ is\ makeindex	Makeindex log file
+
+# End of TeX
+
+#------------------------------------------------------------------------------
+# file(1) magic for BibTex text files
+# From Hendrik Scholz <hendrik@scholz.net>
+
+0	search/1/c	@article{	BibTeX text file
+0	search/1/c	@book{		BibTeX text file
+0	search/1/c	@inbook{	BibTeX text file
+0	search/1/c	@incollection{	BibTeX text file
+0	search/1/c	@inproceedings{	BibTeX text file
+0	search/1/c	@manual{	BibTeX text file
+0	search/1/c	@misc{		BibTeX text file
+0	search/1/c	@preamble{	BibTeX text file
+0	search/1/c	@phdthesis{	BibTeX text file
+0	search/1/c	@techreport{	BibTeX text file
+0	search/1/c	@unpublished{	BibTeX text file
+
+73	search/1	%%%\ \ 		BibTeX-file{ BibTex text file (with full header)
+
+73	search/1	%%%\ \ @BibTeX-style-file{   BibTeX style text file (with full header)
+
+0	search/1	%\ BibTeX\ standard\ bibliography\ 	BibTeX standard bibliography style text file
+
+0	search/1	%\ BibTeX\ `	BibTeX custom bibliography style text file
+
+0	search/1	@c\ @mapfile{	TeX font aliases text file
+
+0	string		#LyX		LyX document text
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/tgif b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/tgif
new file mode 100755
index 0000000000000000000000000000000000000000..e80b3a76cb328c0b4d7040748529257de376cd7f
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/tgif
@@ -0,0 +1,7 @@
+
+#------------------------------------------------------------------------------
+# $File: tgif,v 1.7 2010/09/20 19:03:46 rrt Exp $
+# file(1) magic for tgif(1) files
+# From Hendrik Scholz <hendrik@scholz.net>
+0	string	%TGIF\ 			Tgif file version
+>6	string	x			%s
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ti-8x b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ti-8x
new file mode 100755
index 0000000000000000000000000000000000000000..d7903febcb073ebe6353da8b3db1993ea1b7871c
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/ti-8x
@@ -0,0 +1,239 @@
+
+#------------------------------------------------------------------------------
+# $File: ti-8x,v 1.6 2009/09/19 16:28:12 christos Exp $
+# ti-8x: file(1) magic for the TI-8x and TI-9x Graphing Calculators.
+#
+# From: Ryan McGuire (rmcguire@freenet.columbus.oh.us).
+#
+# Update: Romain Lievin (roms@lpg.ticalc.org).
+#
+# NOTE: This list is not complete.
+# Files for the TI-80 and TI-81 are pretty rare. I'm not going to put the
+# program/group magic numbers in here because I cannot find any.
+0		string		**TI80**	TI-80 Graphing Calculator File.
+0		string		**TI81**	TI-81 Graphing Calculator File.
+#
+# Magic Numbers for the TI-73
+#
+0		string		**TI73**	TI-73 Graphing Calculator
+>0x00003B	byte		0x00		(real number)
+>0x00003B	byte		0x01		(list)
+>0x00003B	byte		0x02		(matrix)
+>0x00003B	byte		0x03		(equation)
+>0x00003B	byte		0x04		(string)
+>0x00003B	byte		0x05		(program)
+>0x00003B	byte		0x06		(assembly program)
+>0x00003B	byte		0x07		(picture)
+>0x00003B	byte		0x08		(gdb)
+>0x00003B	byte		0x0C		(complex number)
+>0x00003B	byte		0x0F		(window settings)
+>0x00003B	byte		0x10		(zoom)
+>0x00003B	byte		0x11		(table setup)
+>0x00003B	byte		0x13		(backup)
+
+# Magic Numbers for the TI-82
+#
+0		string		**TI82**	TI-82 Graphing Calculator
+>0x00003B	byte		0x00		(real)
+>0x00003B	byte		0x01		(list)
+>0x00003B	byte		0x02		(matrix)
+>0x00003B	byte		0x03		(Y-variable)
+>0x00003B	byte		0x05		(program)
+>0x00003B	byte		0x06		(protected prgm)
+>0x00003B	byte		0x07		(picture)
+>0x00003B	byte		0x08		(gdb)
+>0x00003B	byte		0x0B		(window settings)
+>0x00003B	byte		0x0C		(window settings)
+>0x00003B	byte		0x0D		(table setup)
+>0x00003B	byte		0x0E		(screenshot)
+>0x00003B	byte		0x0F		(backup)
+#
+# Magic Numbers for the TI-83
+#
+0		string		**TI83**	TI-83 Graphing Calculator
+>0x00003B	byte		0x00		(real)
+>0x00003B	byte		0x01		(list)
+>0x00003B	byte		0x02		(matrix)
+>0x00003B	byte		0x03		(Y-variable)
+>0x00003B	byte		0x04		(string)
+>0x00003B	byte		0x05		(program)
+>0x00003B	byte		0x06		(protected prgm)
+>0x00003B	byte		0x07		(picture)
+>0x00003B	byte		0x08		(gdb)
+>0x00003B	byte		0x0B		(window settings)
+>0x00003B	byte		0x0C		(window settings)
+>0x00003B	byte		0x0D		(table setup)
+>0x00003B	byte		0x0E		(screenshot)
+>0x00003B	byte		0x13		(backup)
+#
+# Magic Numbers for the TI-83+
+#
+0		string		**TI83F*	TI-83+ Graphing Calculator
+>0x00003B	byte		0x00		(real number)
+>0x00003B	byte		0x01		(list)
+>0x00003B	byte		0x02		(matrix)
+>0x00003B	byte		0x03		(equation)
+>0x00003B	byte		0x04		(string)
+>0x00003B	byte		0x05		(program)
+>0x00003B	byte		0x06		(assembly program)
+>0x00003B	byte		0x07		(picture)
+>0x00003B	byte		0x08		(gdb)
+>0x00003B	byte		0x0C		(complex number)
+>0x00003B	byte		0x0F		(window settings)
+>0x00003B	byte		0x10		(zoom)
+>0x00003B	byte		0x11		(table setup)
+>0x00003B	byte		0x13		(backup)
+>0x00003B	byte		0x15		(application variable)
+>0x00003B	byte		0x17		(group of variable)
+
+#
+# Magic Numbers for the TI-85
+#
+0		string		**TI85**	TI-85 Graphing Calculator
+>0x00003B	byte		0x00		(real number)
+>0x00003B	byte		0x01		(complex number)
+>0x00003B	byte		0x02		(real vector)
+>0x00003B	byte		0x03		(complex vector)
+>0x00003B	byte		0x04		(real list)
+>0x00003B	byte		0x05		(complex list)
+>0x00003B	byte		0x06		(real matrix)
+>0x00003B	byte		0x07		(complex matrix)
+>0x00003B	byte		0x08		(real constant)
+>0x00003B	byte		0x09		(complex constant)
+>0x00003B	byte		0x0A		(equation)
+>0x00003B	byte		0x0C		(string)
+>0x00003B	byte		0x0D		(function GDB)
+>0x00003B	byte		0x0E		(polar GDB)
+>0x00003B	byte		0x0F		(parametric GDB)
+>0x00003B	byte		0x10		(diffeq GDB)
+>0x00003B	byte		0x11		(picture)
+>0x00003B	byte		0x12		(program)
+>0x00003B	byte		0x13		(range)
+>0x00003B	byte		0x17		(window settings)
+>0x00003B	byte		0x18		(window settings)
+>0x00003B	byte		0x19		(window settings)
+>0x00003B	byte		0x1A		(window settings)
+>0x00003B	byte		0x1B		(zoom)
+>0x00003B	byte		0x1D		(backup)
+>0x00003B	byte		0x1E		(unknown)
+>0x00003B	byte		0x2A		(equation)
+>0x000032	string		ZS4		- ZShell Version 4 File.
+>0x000032	string		ZS3		- ZShell Version 3 File.
+#
+# Magic Numbers for the TI-86
+#
+0		string		**TI86**	TI-86 Graphing Calculator
+>0x00003B	byte		0x00		(real number)
+>0x00003B	byte		0x01		(complex number)
+>0x00003B	byte		0x02		(real vector)
+>0x00003B	byte		0x03		(complex vector)
+>0x00003B	byte		0x04		(real list)
+>0x00003B	byte		0x05		(complex list)
+>0x00003B	byte		0x06		(real matrix)
+>0x00003B	byte		0x07		(complex matrix)
+>0x00003B	byte		0x08		(real constant)
+>0x00003B	byte		0x09		(complex constant)
+>0x00003B	byte		0x0A		(equation)
+>0x00003B	byte		0x0C		(string)
+>0x00003B	byte		0x0D		(function GDB)
+>0x00003B	byte		0x0E		(polar GDB)
+>0x00003B	byte		0x0F		(parametric GDB)
+>0x00003B	byte		0x10		(diffeq GDB)
+>0x00003B	byte		0x11		(picture)
+>0x00003B	byte		0x12		(program)
+>0x00003B	byte		0x13		(range)
+>0x00003B	byte		0x17		(window settings)
+>0x00003B	byte		0x18		(window settings)
+>0x00003B	byte		0x19		(window settings)
+>0x00003B	byte		0x1A		(window settings)
+>0x00003B	byte		0x1B		(zoom)
+>0x00003B	byte		0x1D		(backup)
+>0x00003B	byte		0x1E		(unknown)
+>0x00003B	byte		0x2A		(equation)
+#
+# Magic Numbers for the TI-89
+#
+0		string		**TI89**	TI-89 Graphing Calculator
+>0x000048	byte		0x00		(expression)
+>0x000048	byte		0x04		(list)
+>0x000048	byte		0x06		(matrix)
+>0x000048	byte		0x0A		(data)
+>0x000048	byte		0x0B		(text)
+>0x000048	byte		0x0C		(string)
+>0x000048	byte		0x0D		(graphic data base)
+>0x000048	byte		0x0E		(figure)
+>0x000048	byte		0x10		(picture)
+>0x000048	byte		0x12		(program)
+>0x000048	byte		0x13		(function)
+>0x000048	byte		0x14		(macro)
+>0x000048	byte		0x1C		(zipped)
+>0x000048	byte		0x21		(assembler)
+#
+# Magic Numbers for the TI-92
+#
+0		string		**TI92**	TI-92 Graphing Calculator
+>0x000048	byte		0x00		(expression)
+>0x000048	byte		0x04		(list)
+>0x000048	byte		0x06		(matrix)
+>0x000048	byte		0x0A		(data)
+>0x000048	byte		0x0B		(text)
+>0x000048	byte		0x0C		(string)
+>0x000048	byte		0x0D		(graphic data base)
+>0x000048	byte		0x0E		(figure)
+>0x000048	byte		0x10		(picture)
+>0x000048	byte		0x12		(program)
+>0x000048	byte		0x13		(function)
+>0x000048	byte		0x14		(macro)
+>0x000048	byte		0x1D		(backup)
+#
+# Magic Numbers for the TI-92+/V200
+#
+0		string		**TI92P*	TI-92+/V200 Graphing Calculator
+>0x000048	byte		0x00		(expression)
+>0x000048	byte		0x04		(list)
+>0x000048	byte		0x06		(matrix)
+>0x000048	byte		0x0A		(data)
+>0x000048	byte		0x0B		(text)
+>0x000048	byte		0x0C		(string)
+>0x000048	byte		0x0D		(graphic data base)
+>0x000048	byte		0x0E		(figure)
+>0x000048	byte		0x10		(picture)
+>0x000048	byte		0x12		(program)
+>0x000048	byte		0x13		(function)
+>0x000048	byte		0x14		(macro)
+>0x000048	byte		0x1C		(zipped)
+>0x000048	byte		0x21		(assembler)
+#
+# Magic Numbers for the TI-73/83+/89/92+/V200 FLASH upgrades
+#
+0x0000016	string		Advanced	TI-XX Graphing Calculator (FLASH)
+0		string		**TIFL**	TI-XX Graphing Calculator (FLASH)
+>8		byte		>0		- Revision %d
+>>9 		byte		x		\b.%d,
+>12		byte		>0		Revision date %02x
+>>13		byte		x		\b/%02x
+>>14		beshort		x		\b/%04x,
+>17		string		>/0		name: '%s',
+>48		byte		0x74		device: TI-73,
+>48		byte		0x73		device: TI-83+,
+>48		byte		0x98		device: TI-89,
+>48		byte		0x88		device: TI-92+,
+>49		byte		0x23		type: OS upgrade,
+>49		byte		0x24		type: application,
+>49		byte		0x25		type: certificate,
+>49		byte		0x3e		type: license,
+>74		lelong		>0		size: %ld bytes
+
+# VTi & TiEmu skins (TI Graphing Calculators).
+# From: Romain Lievin (roms@lpg.ticalc.org).
+# Magic Numbers for the VTi skins
+0               string          VTI		Virtual TI skin
+>3		string		v		- Version
+>>4		byte		>0		\b %c
+>>6		byte		x		\b.%c
+# Magic Numbers for the TiEmu skins
+0		string		TiEmu		TiEmu skin
+>6              string          v               - Version
+>>7             byte            >0              \b %c
+>>9             byte            x               \b.%c
+>>10		byte		x		\b%c
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/timezone b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/timezone
new file mode 100755
index 0000000000000000000000000000000000000000..9381a0cdd3f91300d1796ecfe76928bdf2a28a1a
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/timezone
@@ -0,0 +1,32 @@
+
+#------------------------------------------------------------------------------
+# $File: timezone,v 1.11 2009/09/19 16:28:12 christos Exp $
+# timezone:  file(1) magic for timezone data
+#
+# from Daniel Quinlan (quinlan@yggdrasil.com)
+# this should work on Linux, SunOS, and maybe others
+# Added new official magic number for recent versions of the Olson code
+0	string	TZif	timezone data
+>4	byte	0	\b, old version
+>4	byte	>0	\b, version %c
+>20	belong	0	\b, no gmt time flags
+>20	belong	1	\b, 1 gmt time flag
+>20	belong	>1	\b, %d gmt time flags
+>24	belong	0	\b, no std time flags
+>20	belong	1	\b, 1 std time flag
+>24	belong	>1	\b, %d std time flags
+>28	belong	0	\b, no leap seconds
+>28	belong	1	\b, 1 leap second
+>28	belong  >1	\b, %d leap seconds
+>32	belong	0	\b, no transition times
+>32	belong	1	\b, 1 transition time
+>32	belong  >1	\b, %d transition times
+>36	belong	0	\b, no abbreviation chars
+>36	belong	1	\b, 1 abbreviation char
+>36	belong	>1	\b, %d abbreviation chars
+0	string	\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0	old timezone data
+0	string	\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0	old timezone data
+0	string  \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0	old timezone data
+0	string	\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0	old timezone data
+0	string	\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0	old timezone data
+0	string	\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6\0	old timezone data
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/troff b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/troff
new file mode 100755
index 0000000000000000000000000000000000000000..b24ea0a498620ada48822977ad0950ebbec98732
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/troff
@@ -0,0 +1,38 @@
+
+#------------------------------------------------------------------------------
+# $File: troff,v 1.10 2009/09/19 16:28:12 christos Exp $
+# troff:  file(1) magic for *roff
+#
+# updated by Daniel Quinlan (quinlan@yggdrasil.com)
+
+# troff input
+0	search/1	.\\"		troff or preprocessor input text
+!:mime	text/troff
+0	search/1	'\\"		troff or preprocessor input text
+!:mime	text/troff
+0	search/1	'.\\"		troff or preprocessor input text
+!:mime	text/troff
+0	search/1	\\"		troff or preprocessor input text
+!:mime	text/troff
+0	search/1	'''		troff or preprocessor input text
+!:mime	text/troff
+0	regex/20	\^\\.[A-Za-z0-9][A-Za-z0-9][\ \t]	troff or preprocessor input text
+!:mime	text/troff
+0	regex/20	\^\\.[A-Za-z0-9][A-Za-z0-9]$	troff or preprocessor input text
+!:mime	text/troff
+
+# ditroff intermediate output text
+0	search/1	x\ T		ditroff output text
+>4	search/1	cat		for the C/A/T phototypesetter
+>4	search/1	ps		for PostScript
+>4	search/1	dvi		for DVI
+>4	search/1	ascii		for ASCII
+>4	search/1	lj4		for LaserJet 4
+>4	search/1	latin1		for ISO 8859-1 (Latin 1)
+>4	search/1	X75		for xditview at 75dpi
+>>7	search/1	-12		(12pt)
+>4	search/1	X100		for xditview at 100dpi
+>>8	search/1	-12		(12pt)
+
+# output data formats
+0	string		\100\357	very old (C/A/T) troff output data
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/tuxedo b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/tuxedo
new file mode 100755
index 0000000000000000000000000000000000000000..191501decf2e6ac24de6cc46671f8359607249b7
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/tuxedo
@@ -0,0 +1,8 @@
+
+#------------------------------------------------------------------------------
+# $File: tuxedo,v 1.4 2009/09/19 16:28:13 christos Exp $
+# tuxedo:	file(1) magic for BEA TUXEDO data files
+#
+# from Ian Springer <ispringer@hotmail.com>
+#
+0	string		\0\0\1\236\0\0\0\0\0\0\0\0\0\0\0\0	BEA TUXEDO DES mask data
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/typeset b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/typeset
new file mode 100755
index 0000000000000000000000000000000000000000..e99fe3731b03f086a1535a8d7ac9f9c3fede8ed7
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/typeset
@@ -0,0 +1,8 @@
+
+#------------------------------------------------------------------------------
+# $File: typeset,v 1.8 2009/09/19 16:28:13 christos Exp $
+# typeset:  file(1) magic for other typesetting
+#
+0	string		Interpress/Xerox	Xerox InterPress data
+>16	string		/			(version
+>>17	string		>\0			%s)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/unicode b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/unicode
new file mode 100755
index 0000000000000000000000000000000000000000..f7eb5a2108aa5fb7b072fa26c7d12b7302926c46
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/unicode
@@ -0,0 +1,16 @@
+
+#------------------------------------------------------------------------------
+# $File: unicode,v 1.6 2010/09/20 18:55:20 rrt Exp $
+# Unicode:  BOM prefixed text files - Adrian Havill <havill@turbolinux.co.jp>
+# GRR: These types should be recognised in file_ascmagic so these
+# encodings can be treated by text patterns.
+# Missing types are already dealt with internally.
+#
+0	string	+/v8			Unicode text, UTF-7
+0	string	+/v9			Unicode text, UTF-7
+0	string	+/v+			Unicode text, UTF-7
+0	string	+/v/			Unicode text, UTF-7
+0	string	\335\163\146\163	Unicode text, UTF-8-EBCDIC
+0	string	\000\000\376\377	Unicode text, UTF-32, big-endian
+0	string	\377\376\000\000	Unicode text, UTF-32, little-endian
+0	string	\016\376\377		Unicode text, SCSU (Standard Compression Scheme for Unicode)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/unknown b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/unknown
new file mode 100755
index 0000000000000000000000000000000000000000..82ac2ad164f346b94763d79255937086d3cb3bbe
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/unknown
@@ -0,0 +1,35 @@
+
+#------------------------------------------------------------------------------
+# $File: unknown,v 1.7 2009/09/19 16:28:13 christos Exp $
+# unknown:  file(1) magic for unknown machines
+#
+# XXX - this probably should be pruned, as it'll match PDP-11 and
+# VAX image formats.
+#
+# 0x107 is 0407; 0x108 is 0410; both are PDP-11 (executable and pure,
+# respectively).
+#
+# 0x109 is 0411; that's PDP-11 split I&D, but the PDP-11 version doesn't
+# have the "version %ld", which may be a bogus COFFism (I don't think
+# there ever was COFF for the PDP-11).
+#
+# 0x10B is 0413; that's VAX demand-paged, but this is a short, not a
+# long, as it would be on a VAX.
+#
+# 0x10C is 0414 and 0x10E is 416; those *are* unknown.
+#
+0	short		0x107		unknown machine executable
+>8	short		>0		not stripped
+>15	byte		>0		- version %ld
+0	short		0x108		unknown pure executable
+>8	short		>0		not stripped
+>15	byte		>0		- version %ld
+0	short		0x109		PDP-11 separate I&D
+>8	short		>0		not stripped
+>15	byte		>0		- version %ld
+0	short		0x10b		unknown pure executable
+>8	short		>0		not stripped
+>15	byte		>0		- version %ld
+0	long		0x10c		unknown demand paged pure executable
+>16	long		>0		not stripped
+0	long		0x10e		unknown readable demand paged pure executable
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/uuencode b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/uuencode
new file mode 100755
index 0000000000000000000000000000000000000000..c00ddabbde369cbf688a0dd5100c97c20c4a77a5
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/uuencode
@@ -0,0 +1,31 @@
+
+#------------------------------------------------------------------------------
+# $File: uuencode,v 1.7 2009/09/19 16:28:13 christos Exp $
+# uuencode:  file(1) magic for ASCII-encoded files
+#
+
+# GRR:  the first line of xxencoded files is identical to that in uuencoded
+# files, but the first character in most subsequent lines is 'h' instead of
+# 'M'.  (xxencoding uses lowercase letters in place of most of uuencode's
+# punctuation and survives BITNET gateways better.)  If regular expressions
+# were supported, this entry could possibly be split into two with
+# "begin\040\.\*\012M" or "begin\040\.\*\012h" (where \. and \* are REs).
+0	search/1	begin\ 		uuencoded or xxencoded text
+
+# btoa(1) is an alternative to uuencode that requires less space.
+0	search/1	xbtoa\ Begin	btoa'd text
+
+# ship(1) is another, much cooler alternative to uuencode.
+# Greg Roelofs, newt@uchicago.edu
+0	search/1	$\012ship	ship'd binary text
+
+# bencode(8) is used to encode compressed news batches (Bnews/Cnews only?)
+# Greg Roelofs, newt@uchicago.edu
+0	search/1	Decode\ the\ following\ with\ bdeco	bencoded News text
+
+# BinHex is the Macintosh ASCII-encoded file format (see also "apple")
+# Daniel Quinlan, quinlan@yggdrasil.com
+11	search/1	must\ be\ converted\ with\ BinHex	BinHex binary text
+>41	search/1	x					\b, version %.3s
+
+# GRR: handle BASE64
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/varied.out b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/varied.out
new file mode 100755
index 0000000000000000000000000000000000000000..3d8aa9219a4b4d5988b96941f69a20146e4b4cff
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/varied.out
@@ -0,0 +1,46 @@
+
+#------------------------------------------------------------------------------
+# $File: varied.out,v 1.22 2010/07/02 00:06:27 christos Exp $
+# varied.out:  file(1) magic for various USG systems
+#
+#	Herewith many of the object file formats used by USG systems.
+#	Most have been moved to files for a particular processor,
+#	and deleted if they duplicate other entries.
+#
+0	short		0610		Perkin-Elmer executable
+# AMD 29K
+0	beshort		0572		amd 29k coff noprebar executable
+0	beshort		01572		amd 29k coff prebar executable
+0	beshort		0160007		amd 29k coff archive
+# Cray
+6	beshort		0407		unicos (cray) executable
+# Ultrix 4.3
+596	string		\130\337\377\377	Ultrix core file
+>600	string		>\0		from '%s'
+# BeOS and MAcOS PEF executables
+# From: hplus@zilker.net (Jon Watte)
+0	string		Joy!peffpwpc	header for PowerPC PEF executable
+#
+# ava assembler/linker Uros Platise <uros.platise@ijs.si>
+0       string          avaobj  AVR assembler object code
+>7      string          >\0     version '%s'
+# gnu gmon magic From: Eugen Dedu <dedu@ese-metz.fr>
+0	string		gmon		GNU prof performance data
+>4	long		x		- version %ld
+# From: Dave Pearson <davep@davep.org>
+# Harbour <URL:http://harbour-project.org/> HRB files.
+0	string		\xc0HRB		Harbour HRB file
+>4	leshort		x		version %d
+# Harbour HBV files
+0	string		\xc0HBV		Harbour variable dump file
+>4	leshort		x		version %d
+
+# From: Alex Beregszaszi <alex@fsn.hu>
+# 0	string		exec 		BugOS executable
+# 0	string		pack		BugOS archive
+
+# From: Jason Spence <jspence@lightconsulting.com>
+# Generated by the "examples" in STM's ST40 devkit, and derived code.
+0	lelong		0x13a9f17e	ST40 component image format
+>4	string		>\0		\b, name '%s'
+
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/varied.script b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/varied.script
new file mode 100755
index 0000000000000000000000000000000000000000..1f5eee58cb56559e887666e5d49df0626110d1e1
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/varied.script
@@ -0,0 +1,20 @@
+
+#------------------------------------------------------------------------------
+# $File: varied.script,v 1.7 2010/11/25 15:00:12 christos Exp $
+# varied.script:  file(1) magic for various interpreter scripts
+
+0	string/t		#!\ /			a
+>3	string		>\0			%s script text executable
+0	string/t		#!\t/			a
+>3	string		>\0			%s script text executable
+0	string/t		#!/			a
+>2	string		>\0			%s script text executable
+0	string/t		#!\ 			script text executable
+>3	string		>\0			for %s
+
+# From: arno <arenevier@fdn.fr>
+# mozilla xpconnect typelib
+# see http://www.mozilla.org/scriptable/typelib_file.html
+0	string 		XPCOM\nTypeLib\r\n\032		XPConnect Typelib
+>0x10  byte        x       version %d
+>>0x11 byte        x      \b.%d
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/vax b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/vax
new file mode 100755
index 0000000000000000000000000000000000000000..31a35123dd4bd69b0ca7a1accf76bafecc4ea92e
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/vax
@@ -0,0 +1,35 @@
+
+#------------------------------------------------------------------------------
+# $File: vax,v 1.7 2009/09/19 16:28:13 christos Exp $
+# vax:  file(1) magic for VAX executable/object and APL workspace
+#
+0	lelong		0101557		VAX single precision APL workspace
+0	lelong		0101556		VAX double precision APL workspace
+
+#
+# VAX a.out (32V, BSD)
+#
+0	lelong		0407		VAX executable
+>16	lelong		>0		not stripped
+
+0	lelong		0410		VAX pure executable
+>16	lelong		>0		not stripped
+
+0	lelong		0413		VAX demand paged pure executable
+>16	lelong		>0		not stripped
+
+0	lelong		0420		VAX demand paged (first page unmapped) pure executable
+>16	lelong		>0		not stripped
+
+#
+# VAX COFF
+#
+# The `versions' should be un-commented if they work for you.
+# (Was the problem just one of endianness?)
+#
+0	leshort		0570		VAX COFF executable
+>12	lelong		>0		not stripped
+>22	leshort		>0		- version %ld
+0	leshort		0575		VAX COFF pure executable
+>12	lelong		>0		not stripped
+>22	leshort		>0		- version %ld
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/vicar b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/vicar
new file mode 100755
index 0000000000000000000000000000000000000000..59d843d7caf521de458226af5eb3aae1ea85e1df
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/vicar
@@ -0,0 +1,17 @@
+
+#------------------------------------------------------------------------------
+# $File: vicar,v 1.4 2009/09/19 16:28:13 christos Exp $
+# vicar:  file(1) magic for VICAR files.
+#
+# From: Ossama Othman <othman@astrosun.tn.cornell.edu
+# VICAR is JPL's in-house spacecraft image processing program
+# VICAR image
+0	string	LBLSIZE=	VICAR image data
+>32	string	BYTE		\b, 8 bits  = VAX byte
+>32	string	HALF		\b, 16 bits = VAX word     = Fortran INTEGER*2
+>32	string	FULL		\b, 32 bits = VAX longword = Fortran INTEGER*4
+>32	string	REAL		\b, 32 bits = VAX longword = Fortran REAL*4
+>32	string	DOUB		\b, 64 bits = VAX quadword = Fortran REAL*8
+>32	string	COMPLEX		\b, 64 bits = VAX quadword = Fortran COMPLEX*8
+# VICAR label file
+43	string	SFDU_LABEL	VICAR label file
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/virtual b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/virtual
new file mode 100755
index 0000000000000000000000000000000000000000..ba29c17cb81e1d0e77d09a0608fe3e41a56b1cad
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/virtual
@@ -0,0 +1,17 @@
+
+#------------------------------------------------------------------------------
+# $File: virtual,v 1.1 2009/12/25 16:04:30 christos Exp $
+# From: James Nobis <quel@quelrod.net>
+# Microsoft hard disk images for:
+# Virtual Server
+# Virtual PC
+# http://technet.microsoft.com/en-us/virtualserver/bb676673.aspx
+# .vhd
+0	string	conectix	Microsoft Disk Image, Virtual Server or Virtual PC
+
+# Sun xVM VirtualBox Disk Image
+# string  <<< Sun xVM VirtualBox Disk Image >>>
+# .vdi
+0	string	\<\<\<\ Sun\ xVM\ VirtualBox\ Disk	Sun xVM VirtualBox Disk Image
+
+
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/virtutech b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/virtutech
new file mode 100755
index 0000000000000000000000000000000000000000..410ab9ee4b6c6b4c571f66723578e22b9b059544
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/virtutech
@@ -0,0 +1,12 @@
+
+#------------------------------------------------------------------------------
+# $File: virtutech,v 1.4 2009/09/19 16:28:13 christos Exp $
+# Virtutech Compressed Random Access File Format
+#
+# From <gustav@virtutech.com>
+0      string          \211\277\036\203        Virtutech CRAFF
+>4     belong          x               v%d
+>20    belong          0               uncompressed
+>20    belong          1               bzipp2ed
+>20    belong          2               gzipped
+>24    belong          0               not clean
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/visx b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/visx
new file mode 100755
index 0000000000000000000000000000000000000000..fe5c827d947b57a6035084f3329a02985762fe22
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/visx
@@ -0,0 +1,32 @@
+
+#------------------------------------------------------------------------------
+# $File: visx,v 1.5 2009/09/19 16:28:13 christos Exp $
+# visx:  file(1) magic for Visx format files
+#
+0	short		0x5555		VISX image file
+>2	byte		0		(zero)
+>2	byte		1		(unsigned char)
+>2	byte		2		(short integer)
+>2	byte		3		(float 32)
+>2	byte		4		(float 64)
+>2	byte		5		(signed char)
+>2	byte		6		(bit-plane)
+>2	byte		7		(classes)
+>2	byte		8		(statistics)
+>2	byte		10		(ascii text)
+>2	byte		15		(image segments)
+>2	byte		100		(image set)
+>2	byte		101		(unsigned char vector)
+>2	byte		102		(short integer vector)
+>2	byte		103		(float 32 vector)
+>2	byte		104		(float 64 vector)
+>2	byte		105		(signed char vector)
+>2	byte		106		(bit plane vector)
+>2	byte		121		(feature vector)
+>2	byte		122		(feature vector library)
+>2	byte		124		(chain code)
+>2	byte		126		(bit vector)
+>2	byte		130		(graph)
+>2	byte		131		(adjacency graph)
+>2	byte		132		(adjacency graph library)
+>2	string		.VISIX		(ascii text)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/vms b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/vms
new file mode 100755
index 0000000000000000000000000000000000000000..d114dfd79e5b9b8fea2ce4efef149f0df7b76939
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/vms
@@ -0,0 +1,28 @@
+
+#------------------------------------------------------------------------------
+# $File: vms,v 1.6 2009/09/19 16:28:13 christos Exp $
+# vms:  file(1) magic for VMS executables (experimental)
+#
+# VMS .exe formats, both VAX and AXP (Greg Roelofs, newt@uchicago.edu)
+
+# GRR 950122:  I'm just guessing on these, based on inspection of the headers
+# of three executables each for Alpha and VAX architectures.  The VAX files
+# all had headers similar to this:
+#
+#   00000  b0 00 30 00 44 00 60 00  00 00 00 00 30 32 30 35  ..0.D.`.....0205
+#   00010  01 01 00 00 ff ff ff ff  ff ff ff ff 00 00 00 00  ................
+#
+0	string	\xb0\0\x30\0	VMS VAX executable
+>44032	string	PK\003\004	\b, Info-ZIP SFX archive v5.12 w/decryption
+#
+# The AXP files all looked like this, except that the byte at offset 0x22
+# was 06 in some of them and 07 in others:
+#
+#   00000  03 00 00 00 00 00 00 00  ec 02 00 00 10 01 00 00  ................
+#   00010  68 00 00 00 98 00 00 00  b8 00 00 00 00 00 00 00  h...............
+#   00020  00 00 07 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
+#   00030  00 00 00 00 01 00 00 00  00 00 00 00 00 00 00 00  ................
+#   00040  00 00 00 00 ff ff ff ff  ff ff ff ff 02 00 00 00  ................
+#
+0	belong	0x03000000	VMS Alpha executable
+>75264	string	PK\003\004	\b, Info-ZIP SFX archive v5.12 w/decryption
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/vmware b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/vmware
new file mode 100755
index 0000000000000000000000000000000000000000..b6b6a619b3ee1dec2dbe3f77b51790cf94806277
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/vmware
@@ -0,0 +1,6 @@
+
+#------------------------------------------------------------------------------
+# $File: vmware,v 1.7 2009/09/19 16:28:13 christos Exp $
+# VMware specific files (deducted from version 1.1 and log file entries)
+# Anthon van der Neut (anthon@mnt.org)
+0	belong	0x4d52564e	VMware nvram 
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/vorbis b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/vorbis
new file mode 100755
index 0000000000000000000000000000000000000000..ed6c040c309289ac0b629fca26096af00d832562
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/vorbis
@@ -0,0 +1,118 @@
+
+#------------------------------------------------------------------------------
+# $File: vorbis,v 1.16 2009/09/19 16:28:13 christos Exp $
+# vorbis:  file(1) magic for Ogg/Vorbis files
+#
+# From Felix von Leitner <leitner@fefe.de>
+# Extended by Beni Cherniavsky <cben@crosswinds.net>
+# Further extended by Greg Wooledge <greg@wooledge.org>
+#
+# Most (everything but the number of channels and bitrate) is commented
+# out with `##' as it's not interesting to the average user.  The most
+# probable things advanced users would want to uncomment are probably
+# the number of comments and the encoder version.
+#
+# FIXME: The first match has been made a search, so that it can skip
+# over prepended ID3 tags. This will work for MIME type detection, but
+# won't work for detecting other properties of the file (they all need
+# to be made relative to the search). In any case, if the file has ID3
+# tags, the ID3 information will be printed, not the Ogg information,
+# so until that's fixed, this doesn't matter.
+# FIXME[2]: Disable the above for now, since search assumes text mode.
+#
+# --- Ogg Framing ---
+#0		search/1000	OggS		Ogg data
+0		string	OggS		Ogg data
+!:mime		application/ogg
+>4		byte		!0		UNKNOWN REVISION %u
+##>4		byte		0		revision 0
+>4		byte		0
+##>>14		lelong		x		(Serial %lX)
+# non-Vorbis content: FLAC (Free Lossless Audio Codec, http://flac.sourceforge.net)
+>>28		string		\x7fFLAC	\b, FLAC audio
+# non-Vorbis content: Theora
+>>28		string		\x80theora	\b, Theora video
+# non-Vorbis content: Kate
+>>28		string		\x80kate\0\0\0\0	\b, Kate
+>>>37		ubyte		x		v%u
+>>>38		ubyte		x		\b.%u,
+>>>40		byte		0		utf8 encoding,
+>>>40		byte		!0		unknown character encoding,
+>>>60		string		>\0		language %s,
+>>>60		string		\0		no language set,
+>>>76		string		>\0		category %s
+>>>76		string		\0		no category set
+# non-Vorbis content: Skeleton
+>>28		string		fishead\0	\b, Skeleton
+>>>36		short		x		v%u
+>>>40		short		x		\b.%u
+# non-Vorbis content: Speex
+>>28		string		Speex\ \ \ 	\b, Speex audio
+# non-Vorbis content: OGM
+>>28		string		\x01video\0\0\0	\b, OGM video
+>>>37		string/c	div3		(DivX 3)
+>>>37		string/c	divx		(DivX 4)
+>>>37		string/c	dx50		(DivX 5)
+>>>37		string/c	xvid		(XviD)
+# --- First vorbis packet - general header ---
+>>28		string		\x01vorbis	\b, Vorbis audio,
+>>>35		lelong		!0		UNKNOWN VERSION %lu,
+##>>>35		lelong		0		version 0,
+>>>35		lelong		0
+>>>>39		ubyte		1		mono,
+>>>>39		ubyte		2		stereo,
+>>>>39		ubyte		>2		%u channels,
+>>>>40		lelong		x		%lu Hz
+# Minimal, nominal and maximal bitrates specified when encoding
+>>>>48		string		<\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff	\b,
+# The above tests if at least one of these is specified:
+>>>>>52		lelong		!-1
+# Vorbis RC2 has a bug which puts -1000 in the min/max bitrate fields
+# instead of -1.
+# Vorbis 1.0 uses 0 instead of -1.
+>>>>>>52	lelong		!0
+>>>>>>>52	lelong		!-1000
+>>>>>>>>52	lelong		x		<%lu
+>>>>>48		lelong		!-1
+>>>>>>48	lelong		x		~%lu
+>>>>>44		lelong		!-1
+>>>>>>44	lelong		!-1000
+>>>>>>>44	lelong		!0
+>>>>>>>>44	lelong		x		>%lu
+>>>>>48		string		<\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff	bps
+# -- Second vorbis header packet - the comments
+# A kludge to read the vendor string.  It's a counted string, not a
+# zero-terminated one, so file(1) can't read it in a generic way.
+# libVorbis is the only one existing currently, so I detect specifically
+# it.  The interesting value is the cvs date (8 digits decimal).
+# Post-RC1 Ogg files have the second header packet (and thus the version)
+# in a different place, so we must use an indirect offset.
+>>>(84.b+85)		string		\x03vorbis
+>>>>(84.b+96)		string/c	Xiphophorus\ libVorbis\ I	\b, created by: Xiphophorus libVorbis I
+>>>>>(84.b+120)		string		>00000000	
+# Map to beta version numbers:
+>>>>>>(84.b+120)	string		<20000508	(<beta1, prepublic)
+>>>>>>(84.b+120)	string		20000508	(1.0 beta 1 or beta 2)
+>>>>>>(84.b+120)	string		>20000508
+>>>>>>>(84.b+120)	string		<20001031	(beta2-3)
+>>>>>>(84.b+120)	string		20001031	(1.0 beta 3)
+>>>>>>(84.b+120)	string		>20001031
+>>>>>>>(84.b+120)	string		<20010225	(beta3-4)
+>>>>>>(84.b+120)	string		20010225	(1.0 beta 4)
+>>>>>>(84.b+120)	string		>20010225
+>>>>>>>(84.b+120)	string		<20010615	(beta4-RC1)
+>>>>>>(84.b+120)	string		20010615	(1.0 RC1)
+>>>>>>(84.b+120)	string		20010813	(1.0 RC2)
+>>>>>>(84.b+120)	string		20010816	(RC2 - Garf tuned v1)
+>>>>>>(84.b+120)	string		20011014	(RC2 - Garf tuned v2)
+>>>>>>(84.b+120)	string		20011217	(1.0 RC3)
+>>>>>>(84.b+120)	string		20011231	(1.0 RC3)
+# Some pre-1.0 CVS snapshots still had "Xiphphorus"...
+>>>>>>(84.b+120)	string		>20011231	(pre-1.0 CVS)
+# For the 1.0 release, Xiphophorus is replaced by Xiph.Org
+>>>>(84.b+96)		string/c	Xiph.Org\ libVorbis\ I	\b, created by: Xiph.Org libVorbis I
+>>>>>(84.b+117)		string		>00000000	
+>>>>>>(84.b+117)	string		<20020717	(pre-1.0 CVS)
+>>>>>>(84.b+117)	string		20020717	(1.0)
+>>>>>>(84.b+117)	string		20030909	(1.0.1)
+>>>>>>(84.b+117)	string		20040629	(1.1.0 RC1)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/vxl b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/vxl
new file mode 100755
index 0000000000000000000000000000000000000000..0fdc68a7f0669cd2825069d441a81f06a4acd96e
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/vxl
@@ -0,0 +1,14 @@
+
+#------------------------------------------------------------------------------
+# $File: vxl,v 1.4 2009/09/19 16:28:13 christos Exp $
+# VXL: file(1) magic for VXL binary IO data files
+#
+# from Ian Scott <scottim@sf.net>
+#
+# VXL is a collection of C++ libraries for Computer Vision.
+# See the vsl chapter in the VXL Book for more info
+# http://www.isbe.man.ac.uk/public_vxl_doc/books/vxl/book.html
+# http:/vxl.sf.net
+
+2	lelong	0x472b2c4e	VXL data file,
+>0	leshort	>0		schema version no %d
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/warc b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/warc
new file mode 100755
index 0000000000000000000000000000000000000000..f4ba079a1a9d48a153ab5576be012436598fd478
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/warc
@@ -0,0 +1,16 @@
+
+#------------------------------------------------------------------------------
+# $File: warc,v 1.3 2010/11/25 15:05:43 christos Exp $
+# warc:  file(1) magic for WARC files
+
+0	string	WARC/	WARC Archive
+>5	string	x	version %.4s
+!:mime application/warc
+
+#------------------------------------------------------------------------------
+# Arc File Format from Internet Archive
+# see http://www.archive.org/web/researcher/ArcFileFormat.php
+0      string          filedesc://     Internet Archive File
+!:mime application/x-ia-arc
+>11    search/256      \x0A    \b
+>>&0   ubyte   >0      \b version %c
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/weak b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/weak
new file mode 100755
index 0000000000000000000000000000000000000000..6dc1793c927e69ed71ab6803547735012e961e4a
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/weak
@@ -0,0 +1,16 @@
+
+#------------------------------------------------------------------------------
+# weak:  file(1) magic for very weak magic entries, disabled by default
+#
+# These entries are so weak that they might interfere identification of
+# other formats. Example include:
+# - Only identify for 1 or 2 bytes
+# - Match against very wide range of values
+# - Match against generic word in some spoken languages (e.g. English)
+
+# Summary: Computer Graphics Metafile
+# Extension: .cgm
+#0	beshort&0xffe0	0x0020		binary Computer Graphics Metafile
+#0	beshort		0x3020		character Computer Graphics Metafile
+
+#0	string		=!!		Bennet Yee's "face" format
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/windows b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/windows
new file mode 100755
index 0000000000000000000000000000000000000000..cd760ec767eca978f3e27ad63de575db9bcc8679
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/windows
@@ -0,0 +1,122 @@
+
+#------------------------------------------------------------------------------
+# $File: windows,v 1.4 2009/09/19 16:28:13 christos Exp $
+# windows:  file(1) magic for Microsoft Windows
+#
+# This file is mainly reserved for files where programs
+# using them are run almost always on MS Windows 3.x or
+# above, or files only used exclusively in Windows OS,
+# where there is no better category to allocate for.
+# For example, even though WinZIP almost run on Windows
+# only, it is better to treat them as "archive" instead.
+# For format usable in DOS, such as generic executable
+# format, please specify under "msdos" file.
+#
+
+
+# Summary: Outlook Express DBX file
+# Extension: .dbx
+# Created by: Christophe Monniez
+0	string	\xCF\xAD\x12\xFE	MS Outlook Express DBX file
+>4	byte	=0xC5			\b, message database
+>4	byte	=0xC6			\b, folder database
+>4	byte	=0xC7			\b, account information
+>4	byte	=0x30			\b, offline database
+
+
+# Summary: Windows crash dump
+# Extension: .dmp
+# Created by: Andreas Schuster (http://computer.forensikblog.de/)
+# Reference (1): http://computer.forensikblog.de/en/2008/02/64bit_magic.html
+# Modified by (1): Abel Cheung (Avoid match with first 4 bytes only)
+0	string		PAGE		
+>4	string		DUMP		MS Windows 32bit crash dump
+>>0x05c	byte            0		\b, no PAE
+>>0x05c	byte            1		\b, PAE
+>>0xf88	lelong		1		\b, full dump
+>>0xf88	lelong		2		\b, kernel dump
+>>0xf88	lelong		3		\b, small dump
+>>0x068	lelong		x		\b, %ld pages
+>4	string		DU64		MS Windows 64bit crash dump
+>>0xf98	lelong		1		\b, full dump
+>>0xf98	lelong		2		\b, kernel dump
+>>0xf98	lelong		3		\b, small dump
+>>0x090	lequad		x		\b, %lld pages
+
+
+# Summary: Vista Event Log
+# Extension: .evtx
+# Created by: Andreas Schuster (http://computer.forensikblog.de/)
+# Reference (1): http://computer.forensikblog.de/en/2007/05/some_magic.html
+0	string		ElfFile\0	MS Windows Vista Event Log
+>0x2a	leshort		x		\b, %d chunks
+>>0x10	lelong		x		\b (no. %d in use)
+>0x18	lelong		>1		\b, next record no. %d
+>0x18	lelong		=1		\b, empty
+>0x78	lelong		&1		\b, DIRTY
+>0x78	lelong		&2		\b, FULL
+
+
+# Summary: Windows 3.1 group files
+# Extension: .grp
+# Created by: unknown
+0	string		\120\115\103\103	MS Windows 3.1 group files
+
+
+# Summary: Old format help files
+# Extension: .hlp
+# Created by: Dirk Jagdmann <doj@cubic.org>
+0	lelong		0x00035f3f		MS Windows 3.x help file
+
+
+# Summary: Hyper terminal
+# Extension: .ht
+# Created by: unknown
+0	string		HyperTerminal\ 
+>15	string		1.0\ --\ HyperTerminal\ data\ file	MS Windows HyperTerminal profile
+
+
+# Summary: Windows shortcut
+# Extension: .lnk
+# Created by: unknown
+0	string		\114\0\0\0\001\024\002\0\0\0\0\0\300\0\0\0\0\0\0\106	MS Windows shortcut
+
+
+# Summary: Outlook Personal Folders
+# Created by: unknown
+0	lelong		0x4E444221	Microsoft Outlook email folder
+>10	leshort		0x0e		(<=2002)
+>10	leshort		0x17		(>=2003)
+
+
+# Summary: Windows help cache
+# Created by: unknown
+0	string		\164\146\115\122\012\000\000\000\001\000\000\000	MS Windows help cache
+
+
+# Summary: IE cache file
+# Created by: Christophe Monniez
+0	string	Client\ UrlCache\ MMF 	Internet Explorer cache file
+>20	string	>\0			version %s
+
+
+# Summary: Registry files
+# Created by: unknown
+# Modified by (1): Joerg Jenderek
+0	string		regf		MS Windows registry file, NT/2000 or above
+0	string		CREG		MS Windows 95/98/ME registry file
+0	string		SHCC3		MS Windows 3.1 registry file
+
+
+# Summary: Windows Registry text
+# Extension: .reg
+# Submitted by: Abel Cheung <abelcheung@gmail.com>
+0	string		REGEDIT4\r\n\r\n	Windows Registry text (Win95 or above)
+0	string		Windows\ Registry\ Editor\ 
+>&0	string		Version\ 5.00\r\n\r\n	Windows Registry text (Win2K or above)
+
+
+# From: Pal Tamas <folti@balabit.hu>
+# Autorun File
+0       string/c          [autorun]\r\n   Microsoft Windows Autorun file.
+!:mime	application/x-setupscript. 
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/wireless b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/wireless
new file mode 100755
index 0000000000000000000000000000000000000000..badb73bb85ffbed63ee8197a6ba4dcc001ef5ad2
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/wireless
@@ -0,0 +1,7 @@
+
+#------------------------------------------------------------------------------
+# $File: wireless,v 1.2 2009/09/19 16:28:13 christos Exp $
+# wireless-regdb:        file(1) magic for CRDA wireless-regdb file format
+#
+0	string	RGDB	CRDA wireless regulatory database file
+>4	belong	19	(Version 1)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/wordprocessors b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/wordprocessors
new file mode 100755
index 0000000000000000000000000000000000000000..0ee4723a42998b20743af5cd5879d69c94a79a10
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/wordprocessors
@@ -0,0 +1,163 @@
+
+#------------------------------------------------------------------------------
+# $File: wordprocessors,v 1.15 2010/09/20 19:19:17 rrt Exp $
+# wordprocessors:  file(1) magic fo word processors.
+#
+####### PWP file format used on Smith Corona Personal Word Processors:
+2	string	\040\040\040\040\040\040\040\040\040\040\040ML4D\040'92	Smith Corona PWP
+>24	byte	2	\b, single spaced
+>24	byte	3	\b, 1.5 spaced
+>24	byte	4	\b, double spaced
+>25	byte	0x42	\b, letter
+>25	byte	0x54	\b, legal
+>26	byte	0x46	\b, A4
+
+#WordPerfect type files Version 1.6 - PLEASE DO NOT REMOVE THIS LINE
+0	string	\377WPC\020\000\000\000\022\012\001\001\000\000\000\000	(WP) loadable file
+>15	byte	0	Optimized for Intel
+>15	byte	1	Optimized for Non-Intel
+1	string	WPC	(Corel/WP)
+>8	short	257	WordPerfect macro
+>8	short	258	WordPerfect help file
+>8	short	259	WordPerfect keyboard file
+>8	short	266	WordPerfect document
+>8	short	267	WordPerfect dictionary
+>8	short	268	WordPerfect thesaurus
+>8	short	269	WordPerfect block
+>8	short	270	WordPerfect rectangular block
+>8	short	271	WordPerfect column block
+>8	short	272	WordPerfect printer data
+>8	short	275	WordPerfect printer data
+>8	short	276	WordPerfect driver resource data
+>8	short	279	WordPerfect hyphenation code
+>8	short	280	WordPerfect hyphenation data
+>8	short	281	WordPerfect macro resource data
+>8	short	283	WordPerfect hyphenation lex
+>8	short	285	WordPerfect wordlist
+>8	short	286	WordPerfect equation resource data
+>8	short	289	WordPerfect spell rules
+>8	short	290	WordPerfect dictionary rules
+>8	short	295	WordPerfect spell rules (Microlytics)
+>8	short	299	WordPerfect settings file
+>8	short	301	WordPerfect 4.2 document
+>8	short	325	WordPerfect dialog file
+>8	short	332	WordPerfect button bar
+>8	short	513	Shell macro
+>8	short	522	Shell definition
+>8	short	769	Notebook macro
+>8	short	770	Notebook help file
+>8	short	771	Notebook keyboard file
+>8	short	778	Notebook definition
+>8	short	1026	Calculator help file
+>8	short 	1538	Calendar help file
+>8	short 	1546	Calendar data file
+>8	short	1793	Editor macro
+>8	short	1794	Editor help file
+>8	short	1795	Editor keyboard file
+>8	short	1817	Editor macro resource file
+>8	short 	2049	Macro editor macro
+>8	short 	2050	Macro editor help file
+>8	short	2051	Macro editor keyboard file
+>8	short	2305	PlanPerfect macro
+>8	short	2306	PlanPerfect help file
+>8	short	2307	PlanPerfect keyboard file
+>8	short	2314	PlanPerfect worksheet
+>8	short	2319	PlanPerfect printer definition
+>8	short	2322	PlanPerfect graphic definition
+>8	short	2323	PlanPerfect data
+>8	short	2324	PlanPerfect temporary printer
+>8	short	2329	PlanPerfect macro resource data
+>8	byte	11	Mail
+>8	short	2818	help file
+>8	short	2821	distribution list
+>8	short	2826	out box
+>8	short	2827	in box
+>8	short	2836	users archived mailbox
+>8	short	2837	archived message database
+>8	short	2838	archived attachments
+>8	short	3083	Printer temporary file
+>8	short	3330	Scheduler help file
+>8	short	3338	Scheduler in file
+>8	short	3339	Scheduler out file
+>8	short	3594	GroupWise settings file
+>8	short	3601	GroupWise directory services
+>8	short	3627	GroupWise settings file
+>8	short	4362	Terminal resource data
+>8	short	4363	Terminal resource data
+>8	short	4395	Terminal resource data
+>8	short	4619	GUI loadable text
+>8	short	4620	graphics resource data
+>8	short	4621	printer settings file
+>8	short	4622	port definition file
+>8	short	4623	print queue parameters
+>8	short	4624	compressed file
+>8	short	5130	Network service msg file
+>8	short	5131	Network service msg file
+>8	short	5132	Async gateway login msg
+>8	short	5134	GroupWise message file
+>8	short	7956	GroupWise admin domain database
+>8	short	7957	GroupWise admin host database
+>8	short	7959	GroupWise admin remote host database
+>8	short	7960	GroupWise admin ADS deferment data file
+>8	short	8458	IntelliTAG (SGML) compiled DTD
+>8	long	18219264	WordPerfect graphic image (1.0)
+>8	long	18219520	WordPerfect graphic image (2.0)
+#end of WordPerfect type files Version 1.6 - PLEASE DO NOT REMOVE THIS LINE
+
+# Hangul (Korean) Word Processor File
+0	string	HWP\ Document\ File	Hangul (Korean) Word Processor File 3.0
+# From: Won-Kyu Park <wkpark@kldp.org>
+512	string		R\0o\0o\0t\0	Hangul (Korean) Word Processor File 2000
+!:mime	application/x-hwp
+
+# CosmicBook, from Beno�t Rouits
+0       string  CSBK    Ted Neslson's CosmicBook hypertext file
+
+2       string  EYWR    AmigaWriter file
+
+# chi:  file(1) magic for ChiWriter files
+0       string          \\1cw\          ChiWriter file
+>5      string          >\0             version %s
+0       string          \\1cw           ChiWriter file
+
+# Quark Express from http://www.garykessler.net/library/file_sigs.html
+2	string	IIXPR3			Intel Quark Express Document (English)
+2	string	IIXPRa			Intel Quark Express Document (Korean)
+2	string	MMXPR3			Motorola Quark Express Document (English)
+!:mime	application/x-quark-xpress-3
+2	string	MMXPRa			Motorola Quark Express Document (Korean)
+
+# adobe indesign (document, whatever...) from querkan
+0	belong	0x0606edf5		Adobe InDesign
+>16	string	DOCUMENT		Document
+
+#------------------------------------------------------------------------------
+# ichitaro456: file(1) magic for Just System Word Processor Ichitaro
+#
+# Contributor kenzo-:
+# Reversed-engineered JS Ichitaro magic numbers
+#
+
+0	string		DOC
+>43	byte		0x14	Just System Word Processor Ichitaro v4
+!:mime	application/x-ichitaro4
+>144	string	JDASH		application/x-ichitaro4
+
+0	string		DOC
+>43	byte		0x15	Just System Word Processor Ichitaro v5
+!:mime	application/x-ichitaro5
+
+0	string		DOC
+>43	byte		0x16	Just System Word Processor Ichitaro v6
+!:mime	application/x-ichitaro6
+
+# Type: Freemind mindmap documents
+# From: Jamie Thompson <debian-bugs@jamie-thompson.co.uk>
+0	string/w	\<map\ version	Freemind document
+!:mime	application/x-freemind
+
+# Type:        Scribus
+# From:        Werner Fink <werner@suse.de>
+0	string	\<SCRIBUSUTF8\ Version		Scribus Document
+0	string	\<SCRIBUSUTF8NEW\ Version	Scribus Document
+!:mime	application/x-scribus
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/wsdl b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/wsdl
new file mode 100755
index 0000000000000000000000000000000000000000..63865bd7e20115fc099f5bac1b725411020b7fba
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/wsdl
@@ -0,0 +1,23 @@
+
+#------------------------------------------------------------------------------
+# $File: wsdl,v 1.1 2011/01/19 19:34:50 christos Exp $
+# wsdl: PHP WSDL Cache, http://www.php.net/manual/en/book.soap.php
+# Cache format extracted from source:
+# http://svn.php.net/viewvc/php/php-src/trunk/ext/soap/php_sdl.c?revision=HEAD&view=markup
+# Requires file >= 5.05, see http://mx.gw.com/pipermail/file/2010/000683.html
+# By Elan Ruusamäe <glen@delfi.ee>, Patryk Zawadzki <patrys@pld-linux.org>, 2010-2011
+0		string		wsdl		PHP WSDL cache,
+>4		byte		x		version 0x%02x
+>6		ledate		x		\b, created %s
+
+# uri
+>10		lelong		<0x7fffffff
+>>10		pstring/l	x		\b, uri: "%s"
+
+# source
+>>>&0		lelong		<0x7fffffff
+>>>>&-4		pstring/l	x		\b, source: "%s"
+
+# target_ns
+>>>>>&0		lelong		<0x7fffffff
+>>>>>>&-4	pstring/l	x		\b, target_ns: "%s"
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/xdelta b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/xdelta
new file mode 100755
index 0000000000000000000000000000000000000000..11775211934e157f18e0880b0b233944ae8e211b
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/xdelta
@@ -0,0 +1,11 @@
+
+#------------------------------------------------------------------------------
+# $File: xdelta,v 1.4 2009/09/19 16:28:13 christos Exp $
+# file(1) magic(5) data for xdelta  Josh MacDonald <jmacd@CS.Berkeley.EDU>
+#
+0	string	%XDELTA%	XDelta binary patch file 0.14
+0	string	%XDZ000%	XDelta binary patch file 0.18
+0	string	%XDZ001%	XDelta binary patch file 0.20
+0	string	%XDZ002%	XDelta binary patch file 1.0
+0	string	%XDZ003%	XDelta binary patch file 1.0.4
+0	string	%XDZ004%	XDelta binary patch file 1.1
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/xenix b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/xenix
new file mode 100755
index 0000000000000000000000000000000000000000..3d238df39fbd73bd1e8cca95f50bcc3fe1e1cfd2
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/xenix
@@ -0,0 +1,73 @@
+
+#------------------------------------------------------------------------------
+# $File: xenix,v 1.9 2009/09/19 16:28:13 christos Exp $
+# xenix:  file(1) magic for Microsoft Xenix
+#
+# "Middle model" stuff, and "Xenix 8086 relocatable or 80286 small
+# model" lifted from "magic.xenix", with comment "derived empirically;
+# treat as folklore until proven"
+#
+# "small model", "large model", "huge model" stuff lifted from XXX
+#
+# XXX - "x.out" collides with PDP-11 archives
+#
+0	string		core		core file (Xenix)
+0	byte		0x80		8086 relocatable (Microsoft)
+0	leshort		0xff65		x.out
+>2	string		__.SYMDEF	 randomized
+>0	byte		x		archive
+0	leshort		0x206		Microsoft a.out
+>8	leshort		1		Middle model
+>0x1e	leshort		&0x10		overlay
+>0x1e	leshort		&0x2		separate
+>0x1e	leshort		&0x4		pure
+>0x1e	leshort		&0x800		segmented
+>0x1e	leshort		&0x400		standalone
+>0x1e	leshort		&0x8		fixed-stack
+>0x1c	byte		&0x80		byte-swapped
+>0x1c	byte		&0x40		word-swapped
+>0x10	lelong		>0		not-stripped
+>0x1e	leshort		^0xc000		pre-SysV
+>0x1e	leshort		&0x4000		V2.3
+>0x1e	leshort		&0x8000		V3.0
+>0x1c	byte		&0x4		86
+>0x1c	byte		&0xb		186
+>0x1c	byte		&0x9		286
+>0x1c	byte		&0xa		386
+>0x1f	byte		<0x040		small model
+>0x1f	byte		=0x048		large model	
+>0x1f	byte		=0x049		huge model 
+>0x1e	leshort		&0x1		executable
+>0x1e	leshort		^0x1		object file
+>0x1e	leshort		&0x40		Large Text
+>0x1e	leshort		&0x20		Large Data
+>0x1e	leshort		&0x120		Huge Objects Enabled
+>0x10	lelong		>0		not stripped
+
+0	leshort		0x140		old Microsoft 8086 x.out
+>0x3	byte		&0x4		separate
+>0x3	byte		&0x2		pure
+>0	byte		&0x1		executable
+>0	byte		^0x1		relocatable
+>0x14	lelong		>0		not stripped
+
+0	lelong		0x206		b.out
+>0x1e	leshort		&0x10		overlay
+>0x1e	leshort		&0x2		separate
+>0x1e	leshort		&0x4		pure
+>0x1e	leshort		&0x800		segmented
+>0x1e	leshort		&0x400		standalone
+>0x1e	leshort		&0x1		executable
+>0x1e	leshort		^0x1		object file
+>0x1e	leshort		&0x4000		V2.3
+>0x1e	leshort		&0x8000		V3.0
+>0x1c	byte		&0x4		86
+>0x1c	byte		&0xb		186
+>0x1c	byte		&0x9		286
+>0x1c	byte		&0x29		286
+>0x1c	byte		&0xa		386
+>0x1e	leshort		&0x4		Large Text
+>0x1e	leshort		&0x2		Large Data
+>0x1e	leshort		&0x102		Huge Objects Enabled
+
+0	leshort		0x580		XENIX 8086 relocatable or 80286 small model
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/xilinx b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/xilinx
new file mode 100755
index 0000000000000000000000000000000000000000..26efb1baebf3b057713563ad2ba7c8166eb1be72
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/xilinx
@@ -0,0 +1,35 @@
+
+#------------------------------------------------------------------------------
+# $File: xilinx,v 1.4 2009/09/19 16:28:13 christos Exp $
+# This is Aaron's attempt at a MAGIC file for Xilinx .bit files.
+# Xilinx-Magic@RevRagnarok.com
+# Got the info from FPGA-FAQ 0026
+#
+# First there is the sync header and its length
+0	beshort 0x0009
+>2 	belong	=0x0ff00ff0
+>>&0	belong  =0x0ff00ff0
+>>>&0	beshort =0x0000	
+>>>>&0	pstring	a	Xilinx BIT data
+# Next is a Pascal-style string with the NCD name. We want to capture that.
+>>>>0x0F	pstring	x	- from %s
+# It is followed by a NUL
+>>>>>&1	byte	0x00
+# And then 'b'
+>>>>>&2	string b
+# With the part number:
+#>>>>>&5 string	4v	(Virtex4)
+#>>>>>&5 string  2v	(Virtex II
+#>>>>>>&0	string	!p	\b)
+#>>>>>>&0	string	p	Pro)
+>>>>>&4	pstring x	- for %s
+# And then NUL / 'c' / Build Data / NUL / 'd' / Date / NUL / 'e' / Data Length
+>>>>>>&1	byte	0x00
+>>>>>>&2	string	c
+>>>>>>&4	pstring	x	- built %s
+>>>>>>>&1	byte	0x00
+>>>>>>>&2	string	d
+>>>>>>>&4	pstring	x	\b(%s)
+>>>>>>>>&1	byte	0x00
+>>>>>>>>&2	string	e
+>>>>>>>>&4	belong	x	- data length 0x%lx
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/xo65 b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/xo65
new file mode 100755
index 0000000000000000000000000000000000000000..7b38818e090b9461d4da14b9f71b88d6f1c00417
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/xo65
@@ -0,0 +1,30 @@
+
+#------------------------------------------------------------------------------
+# $File: xo65,v 1.4 2009/09/19 16:28:13 christos Exp $
+# xo65 object files
+# From: "Ullrich von Bassewitz" <uz@cc65.org>
+#
+0	string		\x55\x7A\x6E\x61	xo65 object,
+>4	leshort		x			version %d,
+>6	leshort&0x0001 =0x0001			with debug info
+>6	leshort&0x0001 =0x0000			no debug info
+
+# xo65 library files
+0	string		\x6E\x61\x55\x7A	xo65 library,
+>4	leshort		x			version %d
+
+# o65 object files
+0	string		\x01\x00\x6F\x36\x35	o65
+>6	leshort&0x1000	=0x0000			executable,
+>6	leshort&0x1000	=0x1000			object,
+>5	byte		x			version %d,
+>6	leshort&0x8000	=0x8000			65816,
+>6	leshort&0x8000	=0x0000			6502,
+>6	leshort&0x2000	=0x2000			32 bit,
+>6	leshort&0x2000	=0x0000			16 bit,
+>6	leshort&0x4000	=0x4000			page reloc,
+>6	leshort&0x4000	=0x0000			byte reloc,
+>6	leshort&0x0003	=0x0000			alignment 1
+>6	leshort&0x0003	=0x0001			alignment 2
+>6	leshort&0x0003	=0x0002			alignment 4
+>6	leshort&0x0003	=0x0003			alignment 256
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/xwindows b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/xwindows
new file mode 100755
index 0000000000000000000000000000000000000000..93126fbaa885825033677032135e2254f007538c
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/xwindows
@@ -0,0 +1,35 @@
+
+#------------------------------------------------------------------------------
+# $File: xwindows,v 1.7 2011/05/03 01:44:17 christos Exp $
+# xwindows:  file(1) magic for various X/Window system file formats.
+
+# Compiled X Keymap 
+# XKM (compiled X keymap) files (including version and byte ordering)
+1	string	mkx				Compiled XKB Keymap: lsb,
+>0	byte	>0				version %d
+>0	byte	=0				obsolete
+0	string	xkm				Compiled XKB Keymap: msb,
+>3	byte	>0				version %d
+>0	byte	=0				obsolete
+
+# xfsdump archive
+0	string	xFSdump0			xfsdump archive
+>8	belong	x	(version %d)
+
+# Jaleo XFS files
+0	long	395726				Jaleo XFS file
+>4	long	x				- version %ld
+>8	long	x				- [%ld -
+>20	long	x				\b%ldx
+>24	long	x				\b%ldx
+>28	long	1008				\bYUV422]
+>28	long	1000				\bRGB24]
+
+# Xcursor data
+# X11 mouse cursor format defined in libXcursor, see
+# http://www.x.org/archive/X11R6.8.1/doc/Xcursor.3.html
+# http://cgit.freedesktop.org/xorg/lib/libXcursor/tree/include/X11/Xcursor/Xcursor.h
+0	string		Xcur		Xcursor data
+!:mime	image/x-xcursor
+>10	leshort		x		version %hd
+>>8	leshort		x		\b.%hd
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/zilog b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/zilog
new file mode 100755
index 0000000000000000000000000000000000000000..1c861fb283c92bd63282eb9bca04f0d6a8973c64
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/zilog
@@ -0,0 +1,12 @@
+
+#------------------------------------------------------------------------------
+# $File: zilog,v 1.7 2009/09/19 16:28:13 christos Exp $
+# zilog:  file(1) magic for Zilog Z8000.
+#
+# Was it big-endian or little-endian?  My Product Specification doesn't
+# say.
+#
+0	long		0xe807		object file (z8000 a.out)
+0	long		0xe808		pure object file (z8000 a.out)
+0	long		0xe809		separate object file (z8000 a.out)
+0	long		0xe805		overlay object file (z8000 a.out)
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/zyxel b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/zyxel
new file mode 100755
index 0000000000000000000000000000000000000000..d3a43e4878ea2ad919262fa3a6028ce44970ad72
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Magdir/zyxel
@@ -0,0 +1,17 @@
+
+#------------------------------------------------------------------------------
+# $File: zyxel,v 1.6 2009/09/19 16:28:13 christos Exp $
+# zyxel:  file(1) magic for ZyXEL modems
+#
+# From <rob@pe1chl.ampr.org>
+# These are the /etc/magic entries to decode datafiles as used for the
+# ZyXEL U-1496E DATA/FAX/VOICE modems.  (This header conforms to a
+# ZyXEL-defined standard)
+
+0	string		ZyXEL\002	ZyXEL voice data
+>10	byte		0		- CELP encoding
+>10	byte&0x0B	1		- ADPCM2 encoding
+>10	byte&0x0B	2		- ADPCM3 encoding
+>10	byte&0x0B	3		- ADPCM4 encoding
+>10	byte&0x0B	8		- New ADPCM3 encoding
+>10	byte&0x04	4		with resync
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/Makefile.am b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Makefile.am
new file mode 100755
index 0000000000000000000000000000000000000000..af3a2ddea96cbc9d55115f607fff393a069d5498
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/magic/Makefile.am
@@ -0,0 +1,269 @@
+#
+# $File: Makefile.am,v 1.70 2011/08/03 16:55:40 christos Exp $
+#
+MAGIC_FRAGMENT_BASE = Magdir
+MAGIC_DIR = $(top_srcdir)/magic
+MAGIC_FRAGMENT_DIR = $(MAGIC_DIR)/$(MAGIC_FRAGMENT_BASE)
+
+pkgdata_DATA = magic.mgc
+
+EXTRA_DIST = \
+$(MAGIC_DIR)/Header \
+$(MAGIC_DIR)/Localstuff \
+$(MAGIC_FRAGMENT_DIR)/acorn \
+$(MAGIC_FRAGMENT_DIR)/adi \
+$(MAGIC_FRAGMENT_DIR)/adventure \
+$(MAGIC_FRAGMENT_DIR)/allegro \
+$(MAGIC_FRAGMENT_DIR)/alliant \
+$(MAGIC_FRAGMENT_DIR)/amanda \
+$(MAGIC_FRAGMENT_DIR)/amigaos \
+$(MAGIC_FRAGMENT_DIR)/animation \
+$(MAGIC_FRAGMENT_DIR)/apl \
+$(MAGIC_FRAGMENT_DIR)/apple \
+$(MAGIC_FRAGMENT_DIR)/applix \
+$(MAGIC_FRAGMENT_DIR)/archive \
+$(MAGIC_FRAGMENT_DIR)/asterix \
+$(MAGIC_FRAGMENT_DIR)/att3b \
+$(MAGIC_FRAGMENT_DIR)/audio \
+$(MAGIC_FRAGMENT_DIR)/basis \
+$(MAGIC_FRAGMENT_DIR)/bflt \
+$(MAGIC_FRAGMENT_DIR)/blcr \
+$(MAGIC_FRAGMENT_DIR)/blender \
+$(MAGIC_FRAGMENT_DIR)/blit \
+$(MAGIC_FRAGMENT_DIR)/bout \
+$(MAGIC_FRAGMENT_DIR)/bsdi \
+$(MAGIC_FRAGMENT_DIR)/bsi \
+$(MAGIC_FRAGMENT_DIR)/btsnoop \
+$(MAGIC_FRAGMENT_DIR)/c-lang \
+$(MAGIC_FRAGMENT_DIR)/c64 \
+$(MAGIC_FRAGMENT_DIR)/cad \
+$(MAGIC_FRAGMENT_DIR)/cafebabe \
+$(MAGIC_FRAGMENT_DIR)/cddb \
+$(MAGIC_FRAGMENT_DIR)/chord \
+$(MAGIC_FRAGMENT_DIR)/cisco \
+$(MAGIC_FRAGMENT_DIR)/citrus \
+$(MAGIC_FRAGMENT_DIR)/clarion \
+$(MAGIC_FRAGMENT_DIR)/claris \
+$(MAGIC_FRAGMENT_DIR)/clipper \
+$(MAGIC_FRAGMENT_DIR)/commands \
+$(MAGIC_FRAGMENT_DIR)/communications \
+$(MAGIC_FRAGMENT_DIR)/compress \
+$(MAGIC_FRAGMENT_DIR)/console \
+$(MAGIC_FRAGMENT_DIR)/convex \
+$(MAGIC_FRAGMENT_DIR)/cracklib \
+$(MAGIC_FRAGMENT_DIR)/ctags \
+$(MAGIC_FRAGMENT_DIR)/dact \
+$(MAGIC_FRAGMENT_DIR)/database \
+$(MAGIC_FRAGMENT_DIR)/diamond \
+$(MAGIC_FRAGMENT_DIR)/diff \
+$(MAGIC_FRAGMENT_DIR)/digital \
+$(MAGIC_FRAGMENT_DIR)/dolby \
+$(MAGIC_FRAGMENT_DIR)/dump \
+$(MAGIC_FRAGMENT_DIR)/dyadic \
+$(MAGIC_FRAGMENT_DIR)/ebml \
+$(MAGIC_FRAGMENT_DIR)/editors \
+$(MAGIC_FRAGMENT_DIR)/efi \
+$(MAGIC_FRAGMENT_DIR)/elf \
+$(MAGIC_FRAGMENT_DIR)/encore \
+$(MAGIC_FRAGMENT_DIR)/epoc \
+$(MAGIC_FRAGMENT_DIR)/erlang \
+$(MAGIC_FRAGMENT_DIR)/esri \
+$(MAGIC_FRAGMENT_DIR)/fcs \
+$(MAGIC_FRAGMENT_DIR)/filesystems \
+$(MAGIC_FRAGMENT_DIR)/flash \
+$(MAGIC_FRAGMENT_DIR)/fonts \
+$(MAGIC_FRAGMENT_DIR)/fortran \
+$(MAGIC_FRAGMENT_DIR)/frame \
+$(MAGIC_FRAGMENT_DIR)/freebsd \
+$(MAGIC_FRAGMENT_DIR)/fsav \
+$(MAGIC_FRAGMENT_DIR)/games \
+$(MAGIC_FRAGMENT_DIR)/gcc \
+$(MAGIC_FRAGMENT_DIR)/geo \
+$(MAGIC_FRAGMENT_DIR)/geos \
+$(MAGIC_FRAGMENT_DIR)/gimp \
+$(MAGIC_FRAGMENT_DIR)/gnome-keyring \
+$(MAGIC_FRAGMENT_DIR)/gnu \
+$(MAGIC_FRAGMENT_DIR)/gnumeric \
+$(MAGIC_FRAGMENT_DIR)/grace \
+$(MAGIC_FRAGMENT_DIR)/graphviz \
+$(MAGIC_FRAGMENT_DIR)/gringotts \
+$(MAGIC_FRAGMENT_DIR)/hitachi-sh \
+$(MAGIC_FRAGMENT_DIR)/hp \
+$(MAGIC_FRAGMENT_DIR)/human68k \
+$(MAGIC_FRAGMENT_DIR)/ibm370 \
+$(MAGIC_FRAGMENT_DIR)/ibm6000 \
+$(MAGIC_FRAGMENT_DIR)/iff \
+$(MAGIC_FRAGMENT_DIR)/images \
+$(MAGIC_FRAGMENT_DIR)/inform \
+$(MAGIC_FRAGMENT_DIR)/intel \
+$(MAGIC_FRAGMENT_DIR)/interleaf \
+$(MAGIC_FRAGMENT_DIR)/island \
+$(MAGIC_FRAGMENT_DIR)/ispell \
+$(MAGIC_FRAGMENT_DIR)/isz \
+$(MAGIC_FRAGMENT_DIR)/java \
+$(MAGIC_FRAGMENT_DIR)/jpeg \
+$(MAGIC_FRAGMENT_DIR)/karma \
+$(MAGIC_FRAGMENT_DIR)/kde \
+$(MAGIC_FRAGMENT_DIR)/kml \
+$(MAGIC_FRAGMENT_DIR)/lecter \
+$(MAGIC_FRAGMENT_DIR)/lex \
+$(MAGIC_FRAGMENT_DIR)/lif \
+$(MAGIC_FRAGMENT_DIR)/linux \
+$(MAGIC_FRAGMENT_DIR)/lisp \
+$(MAGIC_FRAGMENT_DIR)/llvm \
+$(MAGIC_FRAGMENT_DIR)/lua \
+$(MAGIC_FRAGMENT_DIR)/luks \
+$(MAGIC_FRAGMENT_DIR)/mach \
+$(MAGIC_FRAGMENT_DIR)/macintosh \
+$(MAGIC_FRAGMENT_DIR)/magic \
+$(MAGIC_FRAGMENT_DIR)/mail.news \
+$(MAGIC_FRAGMENT_DIR)/maple \
+$(MAGIC_FRAGMENT_DIR)/mathcad \
+$(MAGIC_FRAGMENT_DIR)/mathematica \
+$(MAGIC_FRAGMENT_DIR)/matroska \
+$(MAGIC_FRAGMENT_DIR)/mcrypt \
+$(MAGIC_FRAGMENT_DIR)/mercurial \
+$(MAGIC_FRAGMENT_DIR)/metastore \
+$(MAGIC_FRAGMENT_DIR)/mime \
+$(MAGIC_FRAGMENT_DIR)/mips \
+$(MAGIC_FRAGMENT_DIR)/mirage \
+$(MAGIC_FRAGMENT_DIR)/misctools \
+$(MAGIC_FRAGMENT_DIR)/mkid \
+$(MAGIC_FRAGMENT_DIR)/mlssa \
+$(MAGIC_FRAGMENT_DIR)/mmdf \
+$(MAGIC_FRAGMENT_DIR)/modem \
+$(MAGIC_FRAGMENT_DIR)/motorola \
+$(MAGIC_FRAGMENT_DIR)/mozilla \
+$(MAGIC_FRAGMENT_DIR)/msdos \
+$(MAGIC_FRAGMENT_DIR)/msooxml \
+$(MAGIC_FRAGMENT_DIR)/msvc \
+$(MAGIC_FRAGMENT_DIR)/mup \
+$(MAGIC_FRAGMENT_DIR)/natinst \
+$(MAGIC_FRAGMENT_DIR)/ncr \
+$(MAGIC_FRAGMENT_DIR)/netbsd \
+$(MAGIC_FRAGMENT_DIR)/netscape \
+$(MAGIC_FRAGMENT_DIR)/netware \
+$(MAGIC_FRAGMENT_DIR)/news \
+$(MAGIC_FRAGMENT_DIR)/nitpicker \
+$(MAGIC_FRAGMENT_DIR)/oasis \
+$(MAGIC_FRAGMENT_DIR)/ocaml \
+$(MAGIC_FRAGMENT_DIR)/octave \
+$(MAGIC_FRAGMENT_DIR)/ole2compounddocs \
+$(MAGIC_FRAGMENT_DIR)/olf \
+$(MAGIC_FRAGMENT_DIR)/os2 \
+$(MAGIC_FRAGMENT_DIR)/os400 \
+$(MAGIC_FRAGMENT_DIR)/os9 \
+$(MAGIC_FRAGMENT_DIR)/osf1 \
+$(MAGIC_FRAGMENT_DIR)/palm \
+$(MAGIC_FRAGMENT_DIR)/parix \
+$(MAGIC_FRAGMENT_DIR)/parrot \
+$(MAGIC_FRAGMENT_DIR)/pbm \
+$(MAGIC_FRAGMENT_DIR)/pdf \
+$(MAGIC_FRAGMENT_DIR)/pdp \
+$(MAGIC_FRAGMENT_DIR)/perl \
+$(MAGIC_FRAGMENT_DIR)/pgp \
+$(MAGIC_FRAGMENT_DIR)/pkgadd \
+$(MAGIC_FRAGMENT_DIR)/plan9 \
+$(MAGIC_FRAGMENT_DIR)/plus5 \
+$(MAGIC_FRAGMENT_DIR)/printer \
+$(MAGIC_FRAGMENT_DIR)/project \
+$(MAGIC_FRAGMENT_DIR)/psdbms \
+$(MAGIC_FRAGMENT_DIR)/pulsar \
+$(MAGIC_FRAGMENT_DIR)/pyramid \
+$(MAGIC_FRAGMENT_DIR)/python \
+$(MAGIC_FRAGMENT_DIR)/revision \
+$(MAGIC_FRAGMENT_DIR)/riff \
+$(MAGIC_FRAGMENT_DIR)/rinex \
+$(MAGIC_FRAGMENT_DIR)/rpm \
+$(MAGIC_FRAGMENT_DIR)/rtf \
+$(MAGIC_FRAGMENT_DIR)/ruby \
+$(MAGIC_FRAGMENT_DIR)/sc \
+$(MAGIC_FRAGMENT_DIR)/sccs \
+$(MAGIC_FRAGMENT_DIR)/scientific \
+$(MAGIC_FRAGMENT_DIR)/securitycerts \
+$(MAGIC_FRAGMENT_DIR)/selinux \
+$(MAGIC_FRAGMENT_DIR)/sendmail \
+$(MAGIC_FRAGMENT_DIR)/sequent \
+$(MAGIC_FRAGMENT_DIR)/sgi \
+$(MAGIC_FRAGMENT_DIR)/sgml \
+$(MAGIC_FRAGMENT_DIR)/sharc \
+$(MAGIC_FRAGMENT_DIR)/sinclair \
+$(MAGIC_FRAGMENT_DIR)/sisu \
+$(MAGIC_FRAGMENT_DIR)/sketch \
+$(MAGIC_FRAGMENT_DIR)/smalltalk \
+$(MAGIC_FRAGMENT_DIR)/sniffer \
+$(MAGIC_FRAGMENT_DIR)/softquad \
+$(MAGIC_FRAGMENT_DIR)/spec \
+$(MAGIC_FRAGMENT_DIR)/spectrum \
+$(MAGIC_FRAGMENT_DIR)/sql \
+$(MAGIC_FRAGMENT_DIR)/ssh \
+$(MAGIC_FRAGMENT_DIR)/ssl \
+$(MAGIC_FRAGMENT_DIR)/sun \
+$(MAGIC_FRAGMENT_DIR)/sysex \
+$(MAGIC_FRAGMENT_DIR)/tcl \
+$(MAGIC_FRAGMENT_DIR)/teapot \
+$(MAGIC_FRAGMENT_DIR)/terminfo \
+$(MAGIC_FRAGMENT_DIR)/tex \
+$(MAGIC_FRAGMENT_DIR)/tgif \
+$(MAGIC_FRAGMENT_DIR)/ti-8x \
+$(MAGIC_FRAGMENT_DIR)/timezone \
+$(MAGIC_FRAGMENT_DIR)/troff \
+$(MAGIC_FRAGMENT_DIR)/tuxedo \
+$(MAGIC_FRAGMENT_DIR)/typeset \
+$(MAGIC_FRAGMENT_DIR)/unicode \
+$(MAGIC_FRAGMENT_DIR)/unknown \
+$(MAGIC_FRAGMENT_DIR)/uuencode \
+$(MAGIC_FRAGMENT_DIR)/varied.out \
+$(MAGIC_FRAGMENT_DIR)/varied.script \
+$(MAGIC_FRAGMENT_DIR)/vax \
+$(MAGIC_FRAGMENT_DIR)/vicar \
+$(MAGIC_FRAGMENT_DIR)/virtual \
+$(MAGIC_FRAGMENT_DIR)/virtutech \
+$(MAGIC_FRAGMENT_DIR)/visx \
+$(MAGIC_FRAGMENT_DIR)/vms \
+$(MAGIC_FRAGMENT_DIR)/vmware \
+$(MAGIC_FRAGMENT_DIR)/vorbis \
+$(MAGIC_FRAGMENT_DIR)/vxl \
+$(MAGIC_FRAGMENT_DIR)/warc \
+$(MAGIC_FRAGMENT_DIR)/weak \
+$(MAGIC_FRAGMENT_DIR)/windows \
+$(MAGIC_FRAGMENT_DIR)/wireless \
+$(MAGIC_FRAGMENT_DIR)/wordprocessors \
+$(MAGIC_FRAGMENT_DIR)/wsdl \
+$(MAGIC_FRAGMENT_DIR)/xdelta \
+$(MAGIC_FRAGMENT_DIR)/xenix \
+$(MAGIC_FRAGMENT_DIR)/xilinx \
+$(MAGIC_FRAGMENT_DIR)/xo65 \
+$(MAGIC_FRAGMENT_DIR)/xwindows \
+$(MAGIC_FRAGMENT_DIR)/zilog \
+$(MAGIC_FRAGMENT_DIR)/zyxel 
+
+MAGIC = magic.mgc
+CLEANFILES = ${MAGIC} $(MAGIC_FRAGMENT_DIR)/Localstuff
+
+# FIXME: Build file natively as well so that it can be used to compile
+# the target's magic file; for now we bail if the local version does not match
+if IS_CROSS_COMPILE
+FILE_COMPILE = file
+FILE_COMPILE_DEP =
+else
+FILE_COMPILE = $(top_builddir)/src/file
+FILE_COMPILE_DEP = $(FILE_COMPILE)
+endif
+
+${MAGIC}: $(EXTRA_DIST) $(FILE_COMPILE_DEP)
+	@rm -fr magic
+	@mkdir magic && cp -p $(EXTRA_DIST) magic
+	@(if expr "${FILE_COMPILE}" : '.*/.*' > /dev/null; then \
+	    echo "Using ${FILE_COMPILE} to generate ${MAGIC}" > /dev/null; \
+	  else \
+	    v=$$(file --version | sed -e s/file-// -e q); \
+	    if [ "$$v" != "${PACKAGE_VERSION}" ]; then \
+		echo "Cannot use the installed version of file ($$v) to"; \
+		echo "cross-compile file ${PACKAGE_VERSION}"; \
+		echo "Please install file ${PACKAGE_VERSION} locally first"; \
+		exit 1; \
+	    fi; \
+	  fi)
+	$(FILE_COMPILE) -C -m magic
+	@rm -fr magic
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/magic/magic.mgc b/framework/modules/c_FileTypeSigModule/file-5.08/magic/magic.mgc
new file mode 100755
index 0000000000000000000000000000000000000000..021bd3f6e465453d68799c0bbf8d93eb8234e3d2
Binary files /dev/null and b/framework/modules/c_FileTypeSigModule/file-5.08/magic/magic.mgc differ
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/missing b/framework/modules/c_FileTypeSigModule/file-5.08/missing
new file mode 100755
index 0000000000000000000000000000000000000000..28055d2ae6f2a2c584afcd769d7881e11f62ecd9
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/missing
@@ -0,0 +1,376 @@
+#! /bin/sh
+# Common stub for a few missing GNU programs while installing.
+
+scriptversion=2009-04-28.21; # UTC
+
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
+# 2008, 2009 Free Software Foundation, Inc.
+# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+if test $# -eq 0; then
+  echo 1>&2 "Try \`$0 --help' for more information"
+  exit 1
+fi
+
+run=:
+sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
+sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
+
+# In the cases where this matters, `missing' is being run in the
+# srcdir already.
+if test -f configure.ac; then
+  configure_ac=configure.ac
+else
+  configure_ac=configure.in
+fi
+
+msg="missing on your system"
+
+case $1 in
+--run)
+  # Try to run requested program, and just exit if it succeeds.
+  run=
+  shift
+  "$@" && exit 0
+  # Exit code 63 means version mismatch.  This often happens
+  # when the user try to use an ancient version of a tool on
+  # a file that requires a minimum version.  In this case we
+  # we should proceed has if the program had been absent, or
+  # if --run hadn't been passed.
+  if test $? = 63; then
+    run=:
+    msg="probably too old"
+  fi
+  ;;
+
+  -h|--h|--he|--hel|--help)
+    echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+error status if there is no known handling for PROGRAM.
+
+Options:
+  -h, --help      display this help and exit
+  -v, --version   output version information and exit
+  --run           try to run the given command, and emulate it if it fails
+
+Supported PROGRAM values:
+  aclocal      touch file \`aclocal.m4'
+  autoconf     touch file \`configure'
+  autoheader   touch file \`config.h.in'
+  autom4te     touch the output file, or create a stub one
+  automake     touch all \`Makefile.in' files
+  bison        create \`y.tab.[ch]', if possible, from existing .[ch]
+  flex         create \`lex.yy.c', if possible, from existing .c
+  help2man     touch the output file
+  lex          create \`lex.yy.c', if possible, from existing .c
+  makeinfo     touch the output file
+  tar          try tar, gnutar, gtar, then tar without non-portable flags
+  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
+
+Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
+\`g' are ignored when checking the name.
+
+Send bug reports to <bug-automake@gnu.org>."
+    exit $?
+    ;;
+
+  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+    echo "missing $scriptversion (GNU Automake)"
+    exit $?
+    ;;
+
+  -*)
+    echo 1>&2 "$0: Unknown \`$1' option"
+    echo 1>&2 "Try \`$0 --help' for more information"
+    exit 1
+    ;;
+
+esac
+
+# normalize program name to check for.
+program=`echo "$1" | sed '
+  s/^gnu-//; t
+  s/^gnu//; t
+  s/^g//; t'`
+
+# Now exit if we have it, but it failed.  Also exit now if we
+# don't have it and --version was passed (most likely to detect
+# the program).  This is about non-GNU programs, so use $1 not
+# $program.
+case $1 in
+  lex*|yacc*)
+    # Not GNU programs, they don't have --version.
+    ;;
+
+  tar*)
+    if test -n "$run"; then
+       echo 1>&2 "ERROR: \`tar' requires --run"
+       exit 1
+    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+       exit 1
+    fi
+    ;;
+
+  *)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+       # Could not run --version or --help.  This is probably someone
+       # running `$TOOL --version' or `$TOOL --help' to check whether
+       # $TOOL exists and not knowing $TOOL uses missing.
+       exit 1
+    fi
+    ;;
+esac
+
+# If it does not exist, or fails to run (possibly an outdated version),
+# try to emulate it.
+case $program in
+  aclocal*)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
+         to install the \`Automake' and \`Perl' packages.  Grab them from
+         any GNU archive site."
+    touch aclocal.m4
+    ;;
+
+  autoconf*)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified \`${configure_ac}'.  You might want to install the
+         \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
+         archive site."
+    touch configure
+    ;;
+
+  autoheader*)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified \`acconfig.h' or \`${configure_ac}'.  You might want
+         to install the \`Autoconf' and \`GNU m4' packages.  Grab them
+         from any GNU archive site."
+    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
+    test -z "$files" && files="config.h"
+    touch_files=
+    for f in $files; do
+      case $f in
+      *:*) touch_files="$touch_files "`echo "$f" |
+				       sed -e 's/^[^:]*://' -e 's/:.*//'`;;
+      *) touch_files="$touch_files $f.in";;
+      esac
+    done
+    touch $touch_files
+    ;;
+
+  automake*)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
+         You might want to install the \`Automake' and \`Perl' packages.
+         Grab them from any GNU archive site."
+    find . -type f -name Makefile.am -print |
+	   sed 's/\.am$/.in/' |
+	   while read f; do touch "$f"; done
+    ;;
+
+  autom4te*)
+    echo 1>&2 "\
+WARNING: \`$1' is needed, but is $msg.
+         You might have modified some files without having the
+         proper tools for further handling them.
+         You can get \`$1' as part of \`Autoconf' from any GNU
+         archive site."
+
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+    if test -f "$file"; then
+	touch $file
+    else
+	test -z "$file" || exec >$file
+	echo "#! /bin/sh"
+	echo "# Created by GNU Automake missing as a replacement of"
+	echo "#  $ $@"
+	echo "exit 0"
+	chmod +x $file
+	exit 1
+    fi
+    ;;
+
+  bison*|yacc*)
+    echo 1>&2 "\
+WARNING: \`$1' $msg.  You should only need it if
+         you modified a \`.y' file.  You may need the \`Bison' package
+         in order for those modifications to take effect.  You can get
+         \`Bison' from any GNU archive site."
+    rm -f y.tab.c y.tab.h
+    if test $# -ne 1; then
+        eval LASTARG="\${$#}"
+	case $LASTARG in
+	*.y)
+	    SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
+	    if test -f "$SRCFILE"; then
+	         cp "$SRCFILE" y.tab.c
+	    fi
+	    SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
+	    if test -f "$SRCFILE"; then
+	         cp "$SRCFILE" y.tab.h
+	    fi
+	  ;;
+	esac
+    fi
+    if test ! -f y.tab.h; then
+	echo >y.tab.h
+    fi
+    if test ! -f y.tab.c; then
+	echo 'main() { return 0; }' >y.tab.c
+    fi
+    ;;
+
+  lex*|flex*)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified a \`.l' file.  You may need the \`Flex' package
+         in order for those modifications to take effect.  You can get
+         \`Flex' from any GNU archive site."
+    rm -f lex.yy.c
+    if test $# -ne 1; then
+        eval LASTARG="\${$#}"
+	case $LASTARG in
+	*.l)
+	    SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
+	    if test -f "$SRCFILE"; then
+	         cp "$SRCFILE" lex.yy.c
+	    fi
+	  ;;
+	esac
+    fi
+    if test ! -f lex.yy.c; then
+	echo 'main() { return 0; }' >lex.yy.c
+    fi
+    ;;
+
+  help2man*)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+	 you modified a dependency of a manual page.  You may need the
+	 \`Help2man' package in order for those modifications to take
+	 effect.  You can get \`Help2man' from any GNU archive site."
+
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+    if test -f "$file"; then
+	touch $file
+    else
+	test -z "$file" || exec >$file
+	echo ".ab help2man is required to generate this page"
+	exit $?
+    fi
+    ;;
+
+  makeinfo*)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified a \`.texi' or \`.texinfo' file, or any other file
+         indirectly affecting the aspect of the manual.  The spurious
+         call might also be the consequence of using a buggy \`make' (AIX,
+         DU, IRIX).  You might want to install the \`Texinfo' package or
+         the \`GNU make' package.  Grab either from any GNU archive site."
+    # The file to touch is that specified with -o ...
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+    if test -z "$file"; then
+      # ... or it is the one specified with @setfilename ...
+      infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+      file=`sed -n '
+	/^@setfilename/{
+	  s/.* \([^ ]*\) *$/\1/
+	  p
+	  q
+	}' $infile`
+      # ... or it is derived from the source name (dir/f.texi becomes f.info)
+      test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
+    fi
+    # If the file does not exist, the user really needs makeinfo;
+    # let's fail without touching anything.
+    test -f $file || exit 1
+    touch $file
+    ;;
+
+  tar*)
+    shift
+
+    # We have already tried tar in the generic part.
+    # Look for gnutar/gtar before invocation to avoid ugly error
+    # messages.
+    if (gnutar --version > /dev/null 2>&1); then
+       gnutar "$@" && exit 0
+    fi
+    if (gtar --version > /dev/null 2>&1); then
+       gtar "$@" && exit 0
+    fi
+    firstarg="$1"
+    if shift; then
+	case $firstarg in
+	*o*)
+	    firstarg=`echo "$firstarg" | sed s/o//`
+	    tar "$firstarg" "$@" && exit 0
+	    ;;
+	esac
+	case $firstarg in
+	*h*)
+	    firstarg=`echo "$firstarg" | sed s/h//`
+	    tar "$firstarg" "$@" && exit 0
+	    ;;
+	esac
+    fi
+
+    echo 1>&2 "\
+WARNING: I can't seem to be able to run \`tar' with the given arguments.
+         You may want to install GNU tar or Free paxutils, or check the
+         command line arguments."
+    exit 1
+    ;;
+
+  *)
+    echo 1>&2 "\
+WARNING: \`$1' is needed, and is $msg.
+         You might have modified some files without having the
+         proper tools for further handling them.  Check the \`README' file,
+         it often tells you about the needed prerequisites for installing
+         this package.  You may also peek at any GNU archive site, in case
+         some other package would contain this missing \`$1' program."
+    exit 1
+    ;;
+esac
+
+exit 0
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/python/Makefile.am b/framework/modules/c_FileTypeSigModule/file-5.08/python/Makefile.am
new file mode 100755
index 0000000000000000000000000000000000000000..e0c469528e96693afaa59125f62dd32eb02a4bc3
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/python/Makefile.am
@@ -0,0 +1,3 @@
+
+EXTRA_DIST = README example.py magic.py setup.py
+
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/python/README b/framework/modules/c_FileTypeSigModule/file-5.08/python/README
new file mode 100755
index 0000000000000000000000000000000000000000..8b9a2a7e4074a7b3ed01a21320cac5795e84eeb5
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/python/README
@@ -0,0 +1,13 @@
+This directory contains Python bindings to allow you to access the
+libmagic api. At the moment their status is "experimental".
+
+You can install the modules either with:
+
+$ python setup.py build
+$ python setup.py install
+
+or, if you have easy_install:
+
+$ easy_install .
+
+magic-python should work now!
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/python/example.py b/framework/modules/c_FileTypeSigModule/file-5.08/python/example.py
new file mode 100755
index 0000000000000000000000000000000000000000..0cd0b5e7ec2b1698c85a8118baca209ad40b0549
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/python/example.py
@@ -0,0 +1,17 @@
+#! /usr/bin/python
+
+import magic
+
+ms = magic.open(magic.NONE)
+ms.load()
+tp = ms.file("/bin/ls")
+print (tp)
+
+f = open("/bin/ls", "rb")
+buf = f.read(4096)
+f.close()
+
+tp = ms.buffer(buf)
+print (tp)
+
+ms.close()
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/python/magic.py b/framework/modules/c_FileTypeSigModule/file-5.08/python/magic.py
new file mode 100755
index 0000000000000000000000000000000000000000..41a42ee553f709353e1e404aa882974729477ce7
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/python/magic.py
@@ -0,0 +1,204 @@
+#!/usr/bin/env python
+'''
+Python bindings for libmagic
+'''
+
+import ctypes
+
+from ctypes import *
+from ctypes.util import find_library
+
+def _init():
+    """
+    Loads the shared library through ctypes and returns a library
+    L{ctypes.CDLL} instance 
+    """
+    return ctypes.cdll.LoadLibrary(find_library('magic'))
+
+_libraries = {}
+_libraries['magic'] = _init()
+
+# Flag constants for open and setflags
+MAGIC_NONE = NONE = 0
+MAGIC_DEBUG = DEBUG = 1
+MAGIC_SYMLINK = SYMLINK = 2
+MAGIC_COMPRESS = COMPRESS = 4
+MAGIC_DEVICES = DEVICES = 8
+MAGIC_MIME_TYPE = MIME_TYPE = 16
+MAGIC_CONTINUE = CONTINUE = 32
+MAGIC_CHECK = CHECK = 64
+MAGIC_PRESERVE_ATIME = PRESERVE_ATIME = 128
+MAGIC_RAW = RAW = 256
+MAGIC_ERROR = ERROR = 512
+MAGIC_MIME_ENCODING = MIME_ENCODING = 1024
+MAGIC_MIME = MIME = 1040
+MAGIC_APPLE = APPLE = 2048
+
+MAGIC_NO_CHECK_COMPRESS = NO_CHECK_COMPRESS = 4096
+MAGIC_NO_CHECK_TAR = NO_CHECK_TAR = 8192
+MAGIC_NO_CHECK_SOFT = NO_CHECK_SOFT = 16384
+MAGIC_NO_CHECK_APPTYPE = NO_CHECK_APPTYPE = 32768
+MAGIC_NO_CHECK_ELF = NO_CHECK_ELF = 65536
+MAGIC_NO_CHECK_TEXT = NO_CHECK_TEXT = 131072
+MAGIC_NO_CHECK_CDF = NO_CHECK_CDF = 262144
+MAGIC_NO_CHECK_TOKENS = NO_CHECK_TOKENS = 1048576
+MAGIC_NO_CHECK_ENCODING = NO_CHECK_ENCODING = 2097152
+
+MAGIC_NO_CHECK_BUILTIN = NO_CHECK_BUILTIN = 4173824
+
+class magic_set(Structure):
+    pass
+magic_set._fields_ = []
+magic_t = POINTER(magic_set)
+
+_open = _libraries['magic'].magic_open
+_open.restype = magic_t
+_open.argtypes = [c_int]
+
+_close = _libraries['magic'].magic_close
+_close.restype = None
+_close.argtypes = [magic_t]
+
+_file = _libraries['magic'].magic_file
+_file.restype = c_char_p
+_file.argtypes = [magic_t, c_char_p]
+
+_descriptor = _libraries['magic'].magic_descriptor
+_descriptor.restype = c_char_p
+_descriptor.argtypes = [magic_t, c_int]
+
+_buffer = _libraries['magic'].magic_buffer
+_buffer.restype = c_char_p
+_buffer.argtypes = [magic_t, c_void_p, c_size_t]
+
+_error = _libraries['magic'].magic_error
+_error.restype = c_char_p
+_error.argtypes = [magic_t]
+
+_setflags = _libraries['magic'].magic_setflags
+_setflags.restype = c_int
+_setflags.argtypes = [magic_t, c_int]
+
+_load = _libraries['magic'].magic_load
+_load.restype = c_int
+_load.argtypes = [magic_t, c_char_p]
+
+_compile = _libraries['magic'].magic_compile
+_compile.restype = c_int
+_compile.argtypes = [magic_t, c_char_p]
+
+_check = _libraries['magic'].magic_check
+_check.restype = c_int
+_check.argtypes = [magic_t, c_char_p]
+
+_list = _libraries['magic'].magic_list
+_list.restype = c_int
+_list.argtypes = [magic_t, c_char_p]
+
+_errno = _libraries['magic'].magic_errno
+_errno.restype = c_int
+_errno.argtypes = [magic_t]
+
+class Magic(object):
+    def __init__(self, ms):
+        self._magic_t = ms
+
+    def close(self):
+        """
+        Closes the magic database and deallocates any resources used.
+        """
+        _close(self._magic_t)
+
+    def file(self, file):
+        """
+        Returns a textual description of the contents of the argument passed
+        as a filename or None if an error occurred and the MAGIC_ERROR flag
+        is set.  A call to errno() will return the numeric error code.
+        """
+        return _file(self._magic_t, file)
+
+    def descriptor(self, fd):
+        """
+        Like the file method, but the argument is a file descriptor.
+        """
+        return _descriptor(self._magic_t, fd)
+
+    def buffer(self, buf):
+        """
+        Returns a textual description of the contents of the argument passed
+        as a buffer or None if an error occurred and the MAGIC_ERROR flag
+        is set. A call to errno() will return the numeric error code.
+        """
+        return _buffer(self._magic_t, buf, len(buf))
+
+    def error(self):
+        """
+        Returns a textual explanation of the last error or None
+        if there was no error.
+        """
+        return _error(self._magic_t)
+  
+    def setflags(self, flags):
+        """
+        Set flags on the magic object which determine how magic checking behaves;
+        a bitwise OR of the flags described in libmagic(3), but without the MAGIC_
+        prefix.
+
+        Returns -1 on systems that don't support utime(2) or utimes(2)
+        when PRESERVE_ATIME is set.
+        """
+        return _setflags(self._magic_t, flags)
+
+    def load(self, file=None):
+        """
+        Must be called to load entries in the colon separated list of database files
+        passed as argument or the default database file if no argument before
+        any magic queries can be performed.
+        
+        Returns 0 on success and -1 on failure.
+        """
+        return _load(self._magic_t, file)
+
+    def compile(self, dbs):
+        """
+        Compile entries in the colon separated list of database files
+        passed as argument or the default database file if no argument.
+        Returns 0 on success and -1 on failure.
+        The compiled files created are named from the basename(1) of each file
+        argument with ".mgc" appended to it.
+        """
+        return _compile(self._magic_t, dbs)
+
+    def check(self, dbs):
+        """
+        Check the validity of entries in the colon separated list of
+        database files passed as argument or the default database file
+        if no argument.
+        Returns 0 on success and -1 on failure.
+        """
+        return _check(self._magic_t, dbs)
+
+    def list(self, dbs):
+        """
+        Check the validity of entries in the colon separated list of
+        database files passed as argument or the default database file
+        if no argument.
+        Returns 0 on success and -1 on failure.
+        """
+        return _list(self._magic_t, dbs)
+    
+    def errno(self):
+        """
+        Returns a numeric error code. If return value is 0, an internal
+        magic error occurred. If return value is non-zero, the value is
+        an OS error code. Use the errno module or os.strerror() can be used
+        to provide detailed error information.
+        """
+        return _errno(self._magic_t)
+
+def open(flags):
+    """
+    Returns a magic object on success and None on failure.
+    Flags argument as for setflags.
+    """
+    return Magic(_open(flags))
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/python/setup.py b/framework/modules/c_FileTypeSigModule/file-5.08/python/setup.py
new file mode 100755
index 0000000000000000000000000000000000000000..2c3b527bb89062ee8fe5948ef55f8647eef2899b
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/python/setup.py
@@ -0,0 +1,10 @@
+# Python distutils build script for magic extension
+from distutils.core import setup
+
+setup(name = 'Magic file extensions',
+    version = '0.2',
+    author = 'Reuben Thomas',
+    author_email = 'rrt@sc3d.org',
+    license = 'BSD',
+    description = 'libmagic Python bindings',
+    py_modules = ['magic'])
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/Makefile.am b/framework/modules/c_FileTypeSigModule/file-5.08/src/Makefile.am
new file mode 100755
index 0000000000000000000000000000000000000000..cba64ac266e21bc17ebb268b9767a39818da2388
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/Makefile.am
@@ -0,0 +1,23 @@
+MAGIC = $(pkgdatadir)/magic
+lib_LTLIBRARIES = libmagic.la
+include_HEADERS = magic.h
+
+bin_PROGRAMS = file
+
+AM_CPPFLAGS = -DMAGIC='"$(MAGIC)"'
+AM_CFLAGS = @WARNINGS@
+
+libmagic_la_SOURCES = magic.c apprentice.c softmagic.c ascmagic.c \
+	encoding.c compress.c is_tar.c readelf.c print.c fsmagic.c \
+	funcs.c file.h names.h readelf.h tar.h apptype.c \
+	file_opts.h elfclass.h mygetopt.h cdf.c cdf_time.c readcdf.c cdf.h
+libmagic_la_LDFLAGS = -no-undefined -version-info 1:0:0
+if MINGW
+MINGWLIBS = -lgnurx -lshlwapi
+else
+MINGWLIBS = 
+endif
+libmagic_la_LIBADD = $(LTLIBOBJS) $(MINGWLIBS)
+
+file_SOURCES = file.c
+file_LDADD = libmagic.la
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/apprentice.c b/framework/modules/c_FileTypeSigModule/file-5.08/src/apprentice.c
new file mode 100755
index 0000000000000000000000000000000000000000..11950cf31f6da645f37cafabab082f16dc1183af
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/apprentice.c
@@ -0,0 +1,2524 @@
+/*
+ * Copyright (c) Ian F. Darwin 1986-1995.
+ * Software written by Ian F. Darwin and others;
+ * maintained 1995-present by Christos Zoulas and others.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice immediately at the beginning of the file, without modification,
+ *    this list of conditions, and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *  
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * apprentice - make one pass through /etc/magic, learning its secrets.
+ */
+
+#include "file.h"
+
+#ifndef	lint
+FILE_RCSID("@(#)$File: apprentice.c,v 1.170 2011/06/10 09:23:28 christos Exp $")
+#endif	/* lint */
+
+#include "magic.h"
+#include <stdlib.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#include <string.h>
+#include <assert.h>
+#include <ctype.h>
+#include <fcntl.h>
+#ifdef QUICK
+#include <sys/mman.h>
+#endif
+#include <dirent.h>
+
+#define	EATAB {while (isascii((unsigned char) *l) && \
+		      isspace((unsigned char) *l))  ++l;}
+#define LOWCASE(l) (isupper((unsigned char) (l)) ? \
+			tolower((unsigned char) (l)) : (l))
+/*
+ * Work around a bug in headers on Digital Unix.
+ * At least confirmed for: OSF1 V4.0 878
+ */
+#if defined(__osf__) && defined(__DECC)
+#ifdef MAP_FAILED
+#undef MAP_FAILED
+#endif
+#endif
+
+#ifndef MAP_FAILED
+#define MAP_FAILED (void *) -1
+#endif
+
+#ifndef MAP_FILE
+#define MAP_FILE 0
+#endif
+
+struct magic_entry {
+	struct magic *mp;	
+	uint32_t cont_count;
+	uint32_t max_count;
+};
+
+int file_formats[FILE_NAMES_SIZE];
+const size_t file_nformats = FILE_NAMES_SIZE;
+const char *file_names[FILE_NAMES_SIZE];
+const size_t file_nnames = FILE_NAMES_SIZE;
+
+private int getvalue(struct magic_set *ms, struct magic *, const char **, int);
+private int hextoint(int);
+private const char *getstr(struct magic_set *, struct magic *, const char *,
+    int);
+private int parse(struct magic_set *, struct magic_entry **, uint32_t *,
+    const char *, size_t, int);
+private void eatsize(const char **);
+private int apprentice_1(struct magic_set *, const char *, int, struct mlist *);
+private size_t apprentice_magic_strength(const struct magic *);
+private int apprentice_sort(const void *, const void *);
+private void apprentice_list(struct mlist *, int );
+private int apprentice_load(struct magic_set *, struct magic **, uint32_t *,
+    const char *, int);
+private void byteswap(struct magic *, uint32_t);
+private void bs1(struct magic *);
+private uint16_t swap2(uint16_t);
+private uint32_t swap4(uint32_t);
+private uint64_t swap8(uint64_t);
+private char *mkdbname(struct magic_set *, const char *, int);
+private int apprentice_map(struct magic_set *, struct magic **, uint32_t *,
+    const char *);
+private int apprentice_compile(struct magic_set *, struct magic **, uint32_t *,
+    const char *);
+private int check_format_type(const char *, int);
+private int check_format(struct magic_set *, struct magic *);
+private int get_op(char);
+private int parse_mime(struct magic_set *, struct magic_entry *, const char *);
+private int parse_strength(struct magic_set *, struct magic_entry *, const char *);
+private int parse_apple(struct magic_set *, struct magic_entry *, const char *);
+
+
+private size_t maxmagic = 0;
+private size_t magicsize = sizeof(struct magic);
+
+private const char usg_hdr[] = "cont\toffset\ttype\topcode\tmask\tvalue\tdesc";
+
+private struct {
+	const char *name;
+	size_t len;
+	int (*fun)(struct magic_set *, struct magic_entry *, const char *);
+} bang[] = {
+#define	DECLARE_FIELD(name) { # name, sizeof(# name) - 1, parse_ ## name }
+	DECLARE_FIELD(mime),
+	DECLARE_FIELD(apple),
+	DECLARE_FIELD(strength),
+#undef	DECLARE_FIELD
+	{ NULL, 0, NULL }
+};
+
+#ifdef COMPILE_ONLY
+
+int main(int, char *[]);
+
+int
+main(int argc, char *argv[])
+{
+	int ret;
+	struct magic_set *ms;
+	char *progname;
+
+	if ((progname = strrchr(argv[0], '/')) != NULL)
+		progname++;
+	else
+		progname = argv[0];
+
+	if (argc != 2) {
+		(void)fprintf(stderr, "Usage: %s file\n", progname);
+		return 1;
+	}
+
+	if ((ms = magic_open(MAGIC_CHECK)) == NULL) {
+		(void)fprintf(stderr, "%s: %s\n", progname, strerror(errno));
+		return 1;
+	}
+	ret = magic_compile(ms, argv[1]) == -1 ? 1 : 0;
+	if (ret == 1)
+		(void)fprintf(stderr, "%s: %s\n", progname, magic_error(ms));
+	magic_close(ms);
+	return ret;
+}
+#endif /* COMPILE_ONLY */
+
+static const struct type_tbl_s {
+	const char name[16];
+	const size_t len;
+	const int type;
+	const int format;
+} type_tbl[] = {
+# define XX(s)		s, (sizeof(s) - 1)
+# define XX_NULL	"", 0
+	{ XX("byte"),		FILE_BYTE,		FILE_FMT_NUM },
+	{ XX("short"),		FILE_SHORT,		FILE_FMT_NUM },
+	{ XX("default"),	FILE_DEFAULT,		FILE_FMT_STR },
+	{ XX("long"),		FILE_LONG,		FILE_FMT_NUM },
+	{ XX("string"),		FILE_STRING,		FILE_FMT_STR },
+	{ XX("date"),		FILE_DATE,		FILE_FMT_STR },
+	{ XX("beshort"),	FILE_BESHORT,		FILE_FMT_NUM },
+	{ XX("belong"),		FILE_BELONG,		FILE_FMT_NUM },
+	{ XX("bedate"),		FILE_BEDATE,		FILE_FMT_STR },
+	{ XX("leshort"),	FILE_LESHORT,		FILE_FMT_NUM },
+	{ XX("lelong"),		FILE_LELONG,		FILE_FMT_NUM },
+	{ XX("ledate"),		FILE_LEDATE,		FILE_FMT_STR },
+	{ XX("pstring"),	FILE_PSTRING,		FILE_FMT_STR },
+	{ XX("ldate"),		FILE_LDATE,		FILE_FMT_STR },
+	{ XX("beldate"),	FILE_BELDATE,		FILE_FMT_STR },
+	{ XX("leldate"),	FILE_LELDATE,		FILE_FMT_STR },
+	{ XX("regex"),		FILE_REGEX,		FILE_FMT_STR },
+	{ XX("bestring16"),	FILE_BESTRING16,	FILE_FMT_STR },
+	{ XX("lestring16"),	FILE_LESTRING16,	FILE_FMT_STR },
+	{ XX("search"),		FILE_SEARCH,		FILE_FMT_STR },
+	{ XX("medate"),		FILE_MEDATE,		FILE_FMT_STR },
+	{ XX("meldate"),	FILE_MELDATE,		FILE_FMT_STR },
+	{ XX("melong"),		FILE_MELONG,		FILE_FMT_NUM },
+	{ XX("quad"),		FILE_QUAD,		FILE_FMT_QUAD },
+	{ XX("lequad"),		FILE_LEQUAD,		FILE_FMT_QUAD },
+	{ XX("bequad"),		FILE_BEQUAD,		FILE_FMT_QUAD },
+	{ XX("qdate"),		FILE_QDATE,		FILE_FMT_STR },
+	{ XX("leqdate"),	FILE_LEQDATE,		FILE_FMT_STR },
+	{ XX("beqdate"),	FILE_BEQDATE,		FILE_FMT_STR },
+	{ XX("qldate"),		FILE_QLDATE,		FILE_FMT_STR },
+	{ XX("leqldate"),	FILE_LEQLDATE,		FILE_FMT_STR },
+	{ XX("beqldate"),	FILE_BEQLDATE,		FILE_FMT_STR },
+	{ XX("float"),		FILE_FLOAT,		FILE_FMT_FLOAT },
+	{ XX("befloat"),	FILE_BEFLOAT,		FILE_FMT_FLOAT },
+	{ XX("lefloat"),	FILE_LEFLOAT,		FILE_FMT_FLOAT },
+	{ XX("double"),		FILE_DOUBLE,		FILE_FMT_DOUBLE },
+	{ XX("bedouble"),	FILE_BEDOUBLE,		FILE_FMT_DOUBLE },
+	{ XX("ledouble"),	FILE_LEDOUBLE,		FILE_FMT_DOUBLE },
+	{ XX("leid3"),		FILE_LEID3,		FILE_FMT_NUM },
+	{ XX("beid3"),		FILE_BEID3,		FILE_FMT_NUM },
+	{ XX("indirect"),	FILE_INDIRECT,		FILE_FMT_NONE },
+	{ XX_NULL,		FILE_INVALID,		FILE_FMT_NONE },
+# undef XX
+# undef XX_NULL
+};
+
+private int
+get_type(const char *l, const char **t)
+{
+	const struct type_tbl_s *p;
+
+	for (p = type_tbl; p->len; p++) {
+		if (strncmp(l, p->name, p->len) == 0) {
+			if (t)
+				*t = l + p->len;
+			break;
+		}
+	}
+	return p->type;
+}
+
+private void
+init_file_tables(void)
+{
+	static int done = 0;
+	const struct type_tbl_s *p;
+
+	if (done)
+		return;
+	done++;
+
+	for (p = type_tbl; p->len; p++) {
+		assert(p->type < FILE_NAMES_SIZE);
+		file_names[p->type] = p->name;
+		file_formats[p->type] = p->format;
+	}
+}
+
+/*
+ * Handle one file or directory.
+ */
+private int
+apprentice_1(struct magic_set *ms, const char *fn, int action,
+    struct mlist *mlist)
+{
+	struct magic *magic = NULL;
+	uint32_t nmagic = 0;
+	struct mlist *ml;
+	int rv = -1;
+	int mapped;
+
+	if (magicsize != FILE_MAGICSIZE) {
+		file_error(ms, 0, "magic element size %lu != %lu",
+		    (unsigned long)sizeof(*magic),
+		    (unsigned long)FILE_MAGICSIZE);
+		return -1;
+	}
+
+	if (action == FILE_COMPILE) {
+		rv = apprentice_load(ms, &magic, &nmagic, fn, action);
+		if (rv != 0)
+			return -1;
+		rv = apprentice_compile(ms, &magic, &nmagic, fn);
+		free(magic);
+		return rv;
+	}
+
+#ifndef COMPILE_ONLY
+	if ((rv = apprentice_map(ms, &magic, &nmagic, fn)) == -1) {
+		if (ms->flags & MAGIC_CHECK)
+			file_magwarn(ms, "using regular magic file `%s'", fn);
+		rv = apprentice_load(ms, &magic, &nmagic, fn, action);
+		if (rv != 0)
+			return -1;
+	}
+
+	mapped = rv;
+	     
+	if (magic == NULL) {
+		file_delmagic(magic, mapped, nmagic);
+		return -1;
+	}
+
+	if ((ml = CAST(struct mlist *, malloc(sizeof(*ml)))) == NULL) {
+		file_delmagic(magic, mapped, nmagic);
+		file_oomem(ms, sizeof(*ml));
+		return -1;
+	}
+
+	ml->magic = magic;
+	ml->nmagic = nmagic;
+	ml->mapped = mapped;
+
+	mlist->prev->next = ml;
+	ml->prev = mlist->prev;
+	ml->next = mlist;
+	mlist->prev = ml;
+
+	if (action == FILE_LIST) {
+		printf("Binary patterns:\n");
+		apprentice_list(mlist, BINTEST);
+		printf("Text patterns:\n");
+		apprentice_list(mlist, TEXTTEST);
+	}
+	
+	return 0;
+#endif /* COMPILE_ONLY */
+}
+
+protected void
+file_delmagic(struct magic *p, int type, size_t entries)
+{
+	if (p == NULL)
+		return;
+	switch (type) {
+	case 2:
+#ifdef QUICK
+		p--;
+		(void)munmap((void *)p, sizeof(*p) * (entries + 1));
+		break;
+#else
+		(void)&entries;
+		abort();
+		/*NOTREACHED*/
+#endif
+	case 1:
+		p--;
+		/*FALLTHROUGH*/
+	case 0:
+		free(p);
+		break;
+	default:
+		abort();
+	}
+}
+
+/* const char *fn: list of magic files and directories */
+protected struct mlist *
+file_apprentice(struct magic_set *ms, const char *fn, int action)
+{
+	char *p, *mfn;
+	int file_err, errs = -1;
+	struct mlist *mlist;
+
+	if ((fn = magic_getpath(fn, action)) == NULL)
+		return NULL;
+
+	init_file_tables();
+
+	if ((mfn = strdup(fn)) == NULL) {
+		file_oomem(ms, strlen(fn));
+		return NULL;
+	}
+	fn = mfn;
+
+	if ((mlist = CAST(struct mlist *, malloc(sizeof(*mlist)))) == NULL) {
+		free(mfn);
+		file_oomem(ms, sizeof(*mlist));
+		return NULL;
+	}
+	mlist->next = mlist->prev = mlist;
+
+	while (fn) {
+		p = strchr(fn, PATHSEP);
+		if (p)
+			*p++ = '\0';
+		if (*fn == '\0')
+			break;
+		file_err = apprentice_1(ms, fn, action, mlist);
+		errs = MAX(errs, file_err);
+		fn = p;
+	}
+	if (errs == -1) {
+		free(mfn);
+		free(mlist);
+		mlist = NULL;
+		file_error(ms, 0, "could not find any magic files!");
+		return NULL;
+	}
+	free(mfn);
+	return mlist;
+}
+
+/*
+ * Get weight of this magic entry, for sorting purposes.
+ */
+private size_t
+apprentice_magic_strength(const struct magic *m)
+{
+#define MULT 10
+	size_t val = 2 * MULT;	/* baseline strength */
+
+	switch (m->type) {
+	case FILE_DEFAULT:	/* make sure this sorts last */
+		if (m->factor_op != FILE_FACTOR_OP_NONE)
+			abort();
+		return 0;
+
+	case FILE_BYTE:
+		val += 1 * MULT;
+		break;
+
+	case FILE_SHORT:
+	case FILE_LESHORT:
+	case FILE_BESHORT:
+		val += 2 * MULT;
+		break;
+
+	case FILE_LONG:
+	case FILE_LELONG:
+	case FILE_BELONG:
+	case FILE_MELONG:
+		val += 4 * MULT;
+		break;
+
+	case FILE_PSTRING:
+	case FILE_STRING:
+		val += m->vallen * MULT;
+		break;
+
+	case FILE_BESTRING16:
+	case FILE_LESTRING16:
+		val += m->vallen * MULT / 2;
+		break;
+
+	case FILE_SEARCH:
+	case FILE_REGEX:
+		val += m->vallen * MAX(MULT / m->vallen, 1);
+		break;
+
+	case FILE_DATE:
+	case FILE_LEDATE:
+	case FILE_BEDATE:
+	case FILE_MEDATE:
+	case FILE_LDATE:
+	case FILE_LELDATE:
+	case FILE_BELDATE:
+	case FILE_MELDATE:
+	case FILE_FLOAT:
+	case FILE_BEFLOAT:
+	case FILE_LEFLOAT:
+		val += 4 * MULT;
+		break;
+
+	case FILE_QUAD:
+	case FILE_BEQUAD:
+	case FILE_LEQUAD:
+	case FILE_QDATE:
+	case FILE_LEQDATE:
+	case FILE_BEQDATE:
+	case FILE_QLDATE:
+	case FILE_LEQLDATE:
+	case FILE_BEQLDATE:
+	case FILE_DOUBLE:
+	case FILE_BEDOUBLE:
+	case FILE_LEDOUBLE:
+		val += 8 * MULT;
+		break;
+
+	default:
+		val = 0;
+		(void)fprintf(stderr, "Bad type %d\n", m->type);
+		abort();
+	}
+
+	switch (m->reln) {
+	case 'x':	/* matches anything penalize */
+	case '!':       /* matches almost anything penalize */
+		val = 0;
+		break;
+
+	case '=':	/* Exact match, prefer */
+		val += MULT;
+		break;
+
+	case '>':
+	case '<':	/* comparison match reduce strength */
+		val -= 2 * MULT;
+		break;
+
+	case '^':
+	case '&':	/* masking bits, we could count them too */
+		val -= MULT;
+		break;
+
+	default:
+		(void)fprintf(stderr, "Bad relation %c\n", m->reln);
+		abort();
+	}
+
+	if (val == 0)	/* ensure we only return 0 for FILE_DEFAULT */
+		val = 1;
+
+	switch (m->factor_op) {
+	case FILE_FACTOR_OP_NONE:
+		break;
+	case FILE_FACTOR_OP_PLUS:
+		val += m->factor;
+		break;
+	case FILE_FACTOR_OP_MINUS:
+		val -= m->factor;
+		break;
+	case FILE_FACTOR_OP_TIMES:
+		val *= m->factor;
+		break;
+	case FILE_FACTOR_OP_DIV:
+		val /= m->factor;
+		break;
+	default:
+		abort();
+	}
+
+	/*
+	 * Magic entries with no description get a bonus because they depend
+	 * on subsequent magic entries to print something.
+	 */
+	if (m->desc[0] == '\0')
+		val++;
+	return val;
+}
+
+/*  
+ * Sort callback for sorting entries by "strength" (basically length)
+ */
+private int
+apprentice_sort(const void *a, const void *b)
+{
+	const struct magic_entry *ma = CAST(const struct magic_entry *, a);
+	const struct magic_entry *mb = CAST(const struct magic_entry *, b);
+	size_t sa = apprentice_magic_strength(ma->mp);
+	size_t sb = apprentice_magic_strength(mb->mp);
+	if (sa == sb)
+		return 0;
+	else if (sa > sb)
+		return -1;
+	else
+		return 1;
+}
+
+/*  
+ * Shows sorted patterns list in the order which is used for the matching
+ */
+private void
+apprentice_list(struct mlist *mlist, int mode)
+{
+	uint32_t magindex = 0;
+	struct mlist *ml;
+	for (ml = mlist->next; ml != mlist; ml = ml->next) {
+		for (magindex = 0; magindex < ml->nmagic; magindex++) {
+			struct magic *m = &ml->magic[magindex];
+			if ((m->flag & mode) != mode) {
+				/* Skip sub-tests */
+				while (magindex + 1 < ml->nmagic &&
+				       ml->magic[magindex + 1].cont_level != 0)
+					++magindex;
+				continue; /* Skip to next top-level test*/
+			}
+
+			/*
+			 * Try to iterate over the tree until we find item with
+			 * description/mimetype.
+			 */
+			while (magindex + 1 < ml->nmagic &&
+			       ml->magic[magindex + 1].cont_level != 0 &&
+			       *ml->magic[magindex].desc == '\0' &&
+			       *ml->magic[magindex].mimetype == '\0')
+				magindex++;
+
+			printf("Strength = %3" SIZE_T_FORMAT "u : %s [%s]\n",
+			    apprentice_magic_strength(m),
+			    ml->magic[magindex].desc,
+			    ml->magic[magindex].mimetype);
+		}
+	}
+}
+
+private void
+set_test_type(struct magic *mstart, struct magic *m)
+{
+	switch (m->type) {
+	case FILE_BYTE:
+	case FILE_SHORT:
+	case FILE_LONG:
+	case FILE_DATE:
+	case FILE_BESHORT:
+	case FILE_BELONG:
+	case FILE_BEDATE:
+	case FILE_LESHORT:
+	case FILE_LELONG:
+	case FILE_LEDATE:
+	case FILE_LDATE:
+	case FILE_BELDATE:
+	case FILE_LELDATE:
+	case FILE_MEDATE:
+	case FILE_MELDATE:
+	case FILE_MELONG:
+	case FILE_QUAD:
+	case FILE_LEQUAD:
+	case FILE_BEQUAD:
+	case FILE_QDATE:
+	case FILE_LEQDATE:
+	case FILE_BEQDATE:
+	case FILE_QLDATE:
+	case FILE_LEQLDATE:
+	case FILE_BEQLDATE:
+	case FILE_FLOAT:
+	case FILE_BEFLOAT:
+	case FILE_LEFLOAT:
+	case FILE_DOUBLE:
+	case FILE_BEDOUBLE:
+	case FILE_LEDOUBLE:
+		mstart->flag |= BINTEST;
+		break;
+	case FILE_STRING:
+	case FILE_PSTRING:
+	case FILE_BESTRING16:
+	case FILE_LESTRING16:
+		/* Allow text overrides */
+		if (mstart->str_flags & STRING_TEXTTEST)
+			mstart->flag |= TEXTTEST;
+		else
+			mstart->flag |= BINTEST;
+		break;
+	case FILE_REGEX:
+	case FILE_SEARCH:
+		/* Check for override */
+		if (mstart->str_flags & STRING_BINTEST)
+			mstart->flag |= BINTEST;
+		if (mstart->str_flags & STRING_TEXTTEST)
+			mstart->flag |= TEXTTEST;
+		    
+		if (mstart->flag & (TEXTTEST|BINTEST))
+			break;
+
+		/* binary test if pattern is not text */
+		if (file_looks_utf8(m->value.us, (size_t)m->vallen, NULL,
+		    NULL) <= 0)
+			mstart->flag |= BINTEST;
+		else
+			mstart->flag |= TEXTTEST;
+		break;
+	case FILE_DEFAULT:
+		/* can't deduce anything; we shouldn't see this at the
+		   top level anyway */
+		break;
+	case FILE_INVALID:
+	default:
+		/* invalid search type, but no need to complain here */
+		break;
+	}
+}
+
+/*
+ * Load and parse one file.
+ */
+private void
+load_1(struct magic_set *ms, int action, const char *fn, int *errs,
+   struct magic_entry **marray, uint32_t *marraycount)
+{
+	size_t lineno = 0, llen = 0;
+	char *line = NULL;
+	ssize_t len;
+
+	FILE *f = fopen(ms->file = fn, "r");
+	if (f == NULL) {
+		if (errno != ENOENT)
+			file_error(ms, errno, "cannot read magic file `%s'",
+				   fn);
+		(*errs)++;
+		return;
+	}
+
+	/* read and parse this file */
+	for (ms->line = 1; (len = getline(&line, &llen, f)) != -1;
+	    ms->line++) {
+		if (len == 0) /* null line, garbage, etc */
+			continue;
+		if (line[len - 1] == '\n') {
+			lineno++;
+			line[len - 1] = '\0'; /* delete newline */
+		}
+		switch (line[0]) {
+		case '\0':	/* empty, do not parse */
+		case '#':	/* comment, do not parse */
+			continue;
+		case '!':
+			if (line[1] == ':') {
+				size_t i;
+
+				for (i = 0; bang[i].name != NULL; i++) {
+					if ((size_t)(len - 2) > bang[i].len &&
+					    memcmp(bang[i].name, line + 2,
+					    bang[i].len) == 0)
+						break;
+				}
+				if (bang[i].name == NULL) {
+					file_error(ms, 0,
+					    "Unknown !: entry `%s'", line);
+					(*errs)++;
+					continue;
+				}
+				if (*marraycount == 0) {
+					file_error(ms, 0,
+					    "No current entry for :!%s type",
+						bang[i].name);
+					(*errs)++;
+					continue;
+				}
+				if ((*bang[i].fun)(ms, 
+				    &(*marray)[*marraycount - 1],
+				    line + bang[i].len + 2) != 0) {
+					(*errs)++;
+					continue;
+				}
+				continue;
+			}
+			/*FALLTHROUGH*/
+		default:
+			if (parse(ms, marray, marraycount, line, lineno,
+			    action) != 0)
+				(*errs)++;
+			break;
+		}
+	}
+	if (line)
+		free(line);
+	(void)fclose(f);
+}
+
+/*
+ * parse a file or directory of files
+ * const char *fn: name of magic file or directory
+ */
+private int
+cmpstrp(const void *p1, const void *p2)
+{
+        return strcmp(*(char *const *)p1, *(char *const *)p2);
+}
+
+private int
+apprentice_load(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp,
+    const char *fn, int action)
+{
+	int errs = 0;
+	struct magic_entry *marray;
+	uint32_t marraycount, i, mentrycount = 0, starttest;
+	size_t slen, files = 0, maxfiles = 0;
+	char **filearr = NULL, *mfn;
+	struct stat st;
+	DIR *dir;
+	struct dirent *d;
+
+	ms->flags |= MAGIC_CHECK;	/* Enable checks for parsed files */
+
+        maxmagic = MAXMAGIS;
+	if ((marray = CAST(struct magic_entry *, calloc(maxmagic,
+	    sizeof(*marray)))) == NULL) {
+		file_oomem(ms, maxmagic * sizeof(*marray));
+		return -1;
+	}
+	marraycount = 0;
+
+	/* print silly verbose header for USG compat. */
+	if (action == FILE_CHECK)
+		(void)fprintf(stderr, "%s\n", usg_hdr);
+
+	/* load directory or file */
+	if (stat(fn, &st) == 0 && S_ISDIR(st.st_mode)) {
+		dir = opendir(fn);
+		if (!dir) {
+			errs++;
+			goto out;
+		}
+		while ((d = readdir(dir)) != NULL) {
+			if (asprintf(&mfn, "%s/%s", fn, d->d_name) < 0) {
+				file_oomem(ms,
+				    strlen(fn) + strlen(d->d_name) + 2);
+				errs++;
+				goto out;
+			}
+			if (stat(mfn, &st) == -1 || !S_ISREG(st.st_mode)) {
+				free(mfn);
+				continue;
+			}
+			if (files >= maxfiles) {
+				size_t mlen;
+				maxfiles = (maxfiles + 1) * 2;
+				mlen = maxfiles * sizeof(*filearr);
+				if ((filearr = CAST(char **,
+				    realloc(filearr, mlen))) == NULL) {
+					file_oomem(ms, mlen);
+					free(mfn);
+					errs++;
+					goto out;
+				}
+			}
+			filearr[files++] = mfn;
+		}
+		closedir(dir);
+		qsort(filearr, files, sizeof(*filearr), cmpstrp);
+		for (i = 0; i < files; i++) {
+			load_1(ms, action, filearr[i], &errs, &marray,
+			    &marraycount);
+			free(filearr[i]);
+		}
+		free(filearr);
+	} else
+		load_1(ms, action, fn, &errs, &marray, &marraycount);
+	if (errs)
+		goto out;
+
+	/* Set types of tests */
+	for (i = 0; i < marraycount; ) {
+		if (marray[i].mp->cont_level != 0) {
+			i++;
+			continue;
+		}
+
+		starttest = i;
+		do {
+			static const char text[] = "text";
+			static const char binary[] = "binary";
+			static const size_t len = sizeof(text);
+			set_test_type(marray[starttest].mp, marray[i].mp);
+			if ((ms->flags & MAGIC_DEBUG) == 0)
+				continue;
+			(void)fprintf(stderr, "%s%s%s: %s\n",
+			    marray[i].mp->mimetype,
+			    marray[i].mp->mimetype[0] == '\0' ? "" : "; ",
+			    marray[i].mp->desc[0] ? marray[i].mp->desc :
+			    "(no description)",
+			    marray[i].mp->flag & BINTEST ? binary : text);
+			if (marray[i].mp->flag & BINTEST) {
+				char *p = strstr(marray[i].mp->desc, text);
+				if (p && (p == marray[i].mp->desc ||
+				    isspace((unsigned char)p[-1])) &&
+				    (p + len - marray[i].mp->desc == 
+				    MAXstring || (p[len] == '\0' ||
+				    isspace((unsigned char)p[len]))))
+					(void)fprintf(stderr, "*** Possible "
+					    "binary test for text type\n");
+			}
+		} while (++i < marraycount && marray[i].mp->cont_level != 0);
+	}
+
+	qsort(marray, marraycount, sizeof(*marray), apprentice_sort);
+
+	/*
+	 * Make sure that any level 0 "default" line is last (if one exists).
+	 */
+	for (i = 0; i < marraycount; i++) {
+		if (marray[i].mp->cont_level == 0 &&
+		    marray[i].mp->type == FILE_DEFAULT) {
+			while (++i < marraycount)
+				if (marray[i].mp->cont_level == 0)
+					break;
+			if (i != marraycount) {
+				/* XXX - Ugh! */
+				ms->line = marray[i].mp->lineno;
+				file_magwarn(ms,
+				    "level 0 \"default\" did not sort last");
+			}
+			break;					    
+		}
+	}
+
+	for (i = 0; i < marraycount; i++)
+		mentrycount += marray[i].cont_count;
+
+	slen = sizeof(**magicp) * mentrycount;
+	if ((*magicp = CAST(struct magic *, malloc(slen))) == NULL) {
+		file_oomem(ms, slen);
+		errs++;
+		goto out;
+	}
+
+	mentrycount = 0;
+	for (i = 0; i < marraycount; i++) {
+		(void)memcpy(*magicp + mentrycount, marray[i].mp,
+		    marray[i].cont_count * sizeof(**magicp));
+		mentrycount += marray[i].cont_count;
+	}
+out:
+	for (i = 0; i < marraycount; i++)
+		free(marray[i].mp);
+	free(marray);
+	if (errs) {
+		*magicp = NULL;
+		*nmagicp = 0;
+		return errs;
+	} else {
+		*nmagicp = mentrycount;
+		return 0;
+	}
+
+}
+
+/*
+ * extend the sign bit if the comparison is to be signed
+ */
+protected uint64_t
+file_signextend(struct magic_set *ms, struct magic *m, uint64_t v)
+{
+	if (!(m->flag & UNSIGNED)) {
+		switch(m->type) {
+		/*
+		 * Do not remove the casts below.  They are
+		 * vital.  When later compared with the data,
+		 * the sign extension must have happened.
+		 */
+		case FILE_BYTE:
+			v = (char) v;
+			break;
+		case FILE_SHORT:
+		case FILE_BESHORT:
+		case FILE_LESHORT:
+			v = (short) v;
+			break;
+		case FILE_DATE:
+		case FILE_BEDATE:
+		case FILE_LEDATE:
+		case FILE_MEDATE:
+		case FILE_LDATE:
+		case FILE_BELDATE:
+		case FILE_LELDATE:
+		case FILE_MELDATE:
+		case FILE_LONG:
+		case FILE_BELONG:
+		case FILE_LELONG:
+		case FILE_MELONG:
+		case FILE_FLOAT:
+		case FILE_BEFLOAT:
+		case FILE_LEFLOAT:
+			v = (int32_t) v;
+			break;
+		case FILE_QUAD:
+		case FILE_BEQUAD:
+		case FILE_LEQUAD:
+		case FILE_QDATE:
+		case FILE_QLDATE:
+		case FILE_BEQDATE:
+		case FILE_BEQLDATE:
+		case FILE_LEQDATE:
+		case FILE_LEQLDATE:
+		case FILE_DOUBLE:
+		case FILE_BEDOUBLE:
+		case FILE_LEDOUBLE:
+			v = (int64_t) v;
+			break;
+		case FILE_STRING:
+		case FILE_PSTRING:
+		case FILE_BESTRING16:
+		case FILE_LESTRING16:
+		case FILE_REGEX:
+		case FILE_SEARCH:
+		case FILE_DEFAULT:
+		case FILE_INDIRECT:
+			break;
+		default:
+			if (ms->flags & MAGIC_CHECK)
+			    file_magwarn(ms, "cannot happen: m->type=%d\n",
+				    m->type);
+			return ~0U;
+		}
+	}
+	return v;
+}
+
+private int
+string_modifier_check(struct magic_set *ms, struct magic *m)
+{
+	if ((ms->flags & MAGIC_CHECK) == 0)
+		return 0;
+
+	if (m->type != FILE_PSTRING && (m->str_flags & PSTRING_LEN) != 0) {
+		file_magwarn(ms,
+		    "'/BHhLl' modifiers are only allowed for pascal strings\n");
+		return -1;
+	}
+	switch (m->type) {
+	case FILE_BESTRING16:
+	case FILE_LESTRING16:
+		if (m->str_flags != 0) {
+			file_magwarn(ms,
+			    "no modifiers allowed for 16-bit strings\n");
+			return -1;
+		}
+		break;
+	case FILE_STRING:
+	case FILE_PSTRING:
+		if ((m->str_flags & REGEX_OFFSET_START) != 0) {
+			file_magwarn(ms,
+			    "'/%c' only allowed on regex and search\n",
+			    CHAR_REGEX_OFFSET_START);
+			return -1;
+		}
+		break;
+	case FILE_SEARCH:
+		if (m->str_range == 0) {
+			file_magwarn(ms,
+			    "missing range; defaulting to %d\n",
+                            STRING_DEFAULT_RANGE);
+			m->str_range = STRING_DEFAULT_RANGE;
+			return -1;
+		}
+		break;
+	case FILE_REGEX:
+		if ((m->str_flags & STRING_COMPACT_WHITESPACE) != 0) {
+			file_magwarn(ms, "'/%c' not allowed on regex\n",
+			    CHAR_COMPACT_WHITESPACE);
+			return -1;
+		}
+		if ((m->str_flags & STRING_COMPACT_OPTIONAL_WHITESPACE) != 0) {
+			file_magwarn(ms, "'/%c' not allowed on regex\n",
+			    CHAR_COMPACT_OPTIONAL_WHITESPACE);
+			return -1;
+		}
+		break;
+	default:
+		file_magwarn(ms, "coding error: m->type=%d\n",
+		    m->type);
+		return -1;
+	}
+	return 0;
+}
+
+private int
+get_op(char c)
+{
+	switch (c) {
+	case '&':
+		return FILE_OPAND;
+	case '|':
+		return FILE_OPOR;
+	case '^':
+		return FILE_OPXOR;
+	case '+':
+		return FILE_OPADD;
+	case '-':
+		return FILE_OPMINUS;
+	case '*':
+		return FILE_OPMULTIPLY;
+	case '/':
+		return FILE_OPDIVIDE;
+	case '%':
+		return FILE_OPMODULO;
+	default:
+		return -1;
+	}
+}
+
+#ifdef ENABLE_CONDITIONALS
+private int
+get_cond(const char *l, const char **t)
+{
+	static const struct cond_tbl_s {
+		char name[8];
+		size_t len;
+		int cond;
+	} cond_tbl[] = {
+		{ "if",		2,	COND_IF },
+		{ "elif",	4,	COND_ELIF },
+		{ "else",	4,	COND_ELSE },
+		{ "",		0,	COND_NONE },
+	};
+	const struct cond_tbl_s *p;
+
+	for (p = cond_tbl; p->len; p++) {
+		if (strncmp(l, p->name, p->len) == 0 &&
+		    isspace((unsigned char)l[p->len])) {
+			if (t)
+				*t = l + p->len;
+			break;
+		}
+	}
+	return p->cond;
+}
+
+private int
+check_cond(struct magic_set *ms, int cond, uint32_t cont_level)
+{
+	int last_cond;
+	last_cond = ms->c.li[cont_level].last_cond;
+
+	switch (cond) {
+	case COND_IF:
+		if (last_cond != COND_NONE && last_cond != COND_ELIF) {
+			if (ms->flags & MAGIC_CHECK)
+				file_magwarn(ms, "syntax error: `if'");
+			return -1;
+		}
+		last_cond = COND_IF;
+		break;
+
+	case COND_ELIF:
+		if (last_cond != COND_IF && last_cond != COND_ELIF) {
+			if (ms->flags & MAGIC_CHECK)
+				file_magwarn(ms, "syntax error: `elif'");
+			return -1;
+		}
+		last_cond = COND_ELIF;
+		break;
+
+	case COND_ELSE:
+		if (last_cond != COND_IF && last_cond != COND_ELIF) {
+			if (ms->flags & MAGIC_CHECK)
+				file_magwarn(ms, "syntax error: `else'");
+			return -1;
+		}
+		last_cond = COND_NONE;
+		break;
+
+	case COND_NONE:
+		last_cond = COND_NONE;
+		break;
+	}
+
+	ms->c.li[cont_level].last_cond = last_cond;
+	return 0;
+}
+#endif /* ENABLE_CONDITIONALS */
+
+/*
+ * parse one line from magic file, put into magic[index++] if valid
+ */
+private int
+parse(struct magic_set *ms, struct magic_entry **mentryp, uint32_t *nmentryp, 
+    const char *line, size_t lineno, int action)
+{
+#ifdef ENABLE_CONDITIONALS
+	static uint32_t last_cont_level = 0;
+#endif
+	size_t i;
+	struct magic_entry *me;
+	struct magic *m;
+	const char *l = line;
+	char *t;
+	int op;
+	uint32_t cont_level;
+
+	cont_level = 0;
+
+	while (*l == '>') {
+		++l;		/* step over */
+		cont_level++; 
+	}
+#ifdef ENABLE_CONDITIONALS
+	if (cont_level == 0 || cont_level > last_cont_level)
+		if (file_check_mem(ms, cont_level) == -1)
+			return -1;
+	last_cont_level = cont_level;
+#endif
+
+#define ALLOC_CHUNK	(size_t)10
+#define ALLOC_INCR	(size_t)200
+
+	if (cont_level != 0) {
+		if (*nmentryp == 0) {
+			file_error(ms, 0, "No current entry for continuation");
+			return -1;
+		}
+		me = &(*mentryp)[*nmentryp - 1];
+		if (me->cont_count == me->max_count) {
+			struct magic *nm;
+			size_t cnt = me->max_count + ALLOC_CHUNK;
+			if ((nm = CAST(struct magic *, realloc(me->mp,
+			    sizeof(*nm) * cnt))) == NULL) {
+				file_oomem(ms, sizeof(*nm) * cnt);
+				return -1;
+			}
+			me->mp = m = nm;
+			me->max_count = CAST(uint32_t, cnt);
+		}
+		m = &me->mp[me->cont_count++];
+		(void)memset(m, 0, sizeof(*m));
+		m->cont_level = cont_level;
+	} else {
+		if (*nmentryp == maxmagic) {
+			struct magic_entry *mp;
+
+			maxmagic += ALLOC_INCR;
+			if ((mp = CAST(struct magic_entry *,
+			    realloc(*mentryp, sizeof(*mp) * maxmagic))) ==
+			    NULL) {
+				file_oomem(ms, sizeof(*mp) * maxmagic);
+				return -1;
+			}
+			(void)memset(&mp[*nmentryp], 0, sizeof(*mp) *
+			    ALLOC_INCR);
+			*mentryp = mp;
+		}
+		me = &(*mentryp)[*nmentryp];
+		if (me->mp == NULL) {
+			size_t len = sizeof(*m) * ALLOC_CHUNK;
+			if ((m = CAST(struct magic *, malloc(len))) == NULL) {
+				file_oomem(ms, len);
+				return -1;
+			}
+			me->mp = m;
+			me->max_count = ALLOC_CHUNK;
+		} else
+			m = me->mp;
+		(void)memset(m, 0, sizeof(*m));
+		m->factor_op = FILE_FACTOR_OP_NONE;
+		m->cont_level = 0;
+		me->cont_count = 1;
+	}
+	m->lineno = CAST(uint32_t, lineno);
+
+	if (*l == '&') {  /* m->cont_level == 0 checked below. */
+                ++l;            /* step over */
+                m->flag |= OFFADD;
+        }
+	if (*l == '(') {
+		++l;		/* step over */
+		m->flag |= INDIR;
+		if (m->flag & OFFADD)
+			m->flag = (m->flag & ~OFFADD) | INDIROFFADD;
+
+		if (*l == '&') {  /* m->cont_level == 0 checked below */
+			++l;            /* step over */
+			m->flag |= OFFADD;
+		}
+	}
+	/* Indirect offsets are not valid at level 0. */
+	if (m->cont_level == 0 && (m->flag & (OFFADD | INDIROFFADD)))
+		if (ms->flags & MAGIC_CHECK)
+			file_magwarn(ms, "relative offset at level 0");
+
+	/* get offset, then skip over it */
+	m->offset = (uint32_t)strtoul(l, &t, 0);
+        if (l == t)
+		if (ms->flags & MAGIC_CHECK)
+			file_magwarn(ms, "offset `%s' invalid", l);
+        l = t;
+
+	if (m->flag & INDIR) {
+		m->in_type = FILE_LONG;
+		m->in_offset = 0;
+		/*
+		 * read [.lbs][+-]nnnnn)
+		 */
+		if (*l == '.') {
+			l++;
+			switch (*l) {
+			case 'l':
+				m->in_type = FILE_LELONG;
+				break;
+			case 'L':
+				m->in_type = FILE_BELONG;
+				break;
+			case 'm':
+				m->in_type = FILE_MELONG;
+				break;
+			case 'h':
+			case 's':
+				m->in_type = FILE_LESHORT;
+				break;
+			case 'H':
+			case 'S':
+				m->in_type = FILE_BESHORT;
+				break;
+			case 'c':
+			case 'b':
+			case 'C':
+			case 'B':
+				m->in_type = FILE_BYTE;
+				break;
+			case 'e':
+			case 'f':
+			case 'g':
+				m->in_type = FILE_LEDOUBLE;
+				break;
+			case 'E':
+			case 'F':
+			case 'G':
+				m->in_type = FILE_BEDOUBLE;
+				break;
+			case 'i':
+				m->in_type = FILE_LEID3;
+				break;
+			case 'I':
+				m->in_type = FILE_BEID3;
+				break;
+			default:
+				if (ms->flags & MAGIC_CHECK)
+					file_magwarn(ms,
+					    "indirect offset type `%c' invalid",
+					    *l);
+				break;
+			}
+			l++;
+		}
+
+		m->in_op = 0;
+		if (*l == '~') {
+			m->in_op |= FILE_OPINVERSE;
+			l++;
+		}
+		if ((op = get_op(*l)) != -1) {
+			m->in_op |= op;
+			l++;
+		}
+		if (*l == '(') {
+			m->in_op |= FILE_OPINDIRECT;
+			l++;
+		}
+		if (isdigit((unsigned char)*l) || *l == '-') {
+			m->in_offset = (int32_t)strtol(l, &t, 0);
+			if (l == t)
+				if (ms->flags & MAGIC_CHECK)
+					file_magwarn(ms,
+					    "in_offset `%s' invalid", l);
+			l = t;
+		}
+		if (*l++ != ')' || 
+		    ((m->in_op & FILE_OPINDIRECT) && *l++ != ')'))
+			if (ms->flags & MAGIC_CHECK)
+				file_magwarn(ms,
+				    "missing ')' in indirect offset");
+	}
+	EATAB;
+
+#ifdef ENABLE_CONDITIONALS
+	m->cond = get_cond(l, &l);
+	if (check_cond(ms, m->cond, cont_level) == -1)
+		return -1;
+
+	EATAB;
+#endif
+
+	if (*l == 'u') {
+		++l;
+		m->flag |= UNSIGNED;
+	}
+
+	m->type = get_type(l, &l);
+	if (m->type == FILE_INVALID) {
+		if (ms->flags & MAGIC_CHECK)
+			file_magwarn(ms, "type `%s' invalid", l);
+		return -1;
+	}
+
+	/* New-style anding: "0 byte&0x80 =0x80 dynamically linked" */
+	/* New and improved: ~ & | ^ + - * / % -- exciting, isn't it? */
+
+	m->mask_op = 0;
+	if (*l == '~') {
+		if (!IS_STRING(m->type))
+			m->mask_op |= FILE_OPINVERSE;
+		else if (ms->flags & MAGIC_CHECK)
+			file_magwarn(ms, "'~' invalid for string types");
+		++l;
+	}
+	m->str_range = 0;
+	m->str_flags = m->type == FILE_PSTRING ? PSTRING_1_LE : 0;
+	if ((op = get_op(*l)) != -1) {
+		if (!IS_STRING(m->type)) {
+			uint64_t val;
+			++l;
+			m->mask_op |= op;
+			val = (uint64_t)strtoull(l, &t, 0);
+			l = t;
+			m->num_mask = file_signextend(ms, m, val);
+			eatsize(&l);
+		}
+		else if (op == FILE_OPDIVIDE) {
+			int have_range = 0;
+			while (!isspace((unsigned char)*++l)) {
+				switch (*l) {
+				case '0':  case '1':  case '2':
+				case '3':  case '4':  case '5':
+				case '6':  case '7':  case '8':
+				case '9':
+					if (have_range &&
+					    (ms->flags & MAGIC_CHECK))
+						file_magwarn(ms,
+						    "multiple ranges");
+					have_range = 1;
+					m->str_range = CAST(uint32_t,
+					    strtoul(l, &t, 0));
+					if (m->str_range == 0)
+						file_magwarn(ms,
+						    "zero range");
+					l = t - 1;
+					break;
+				case CHAR_COMPACT_WHITESPACE:
+					m->str_flags |=
+					    STRING_COMPACT_WHITESPACE;
+					break;
+				case CHAR_COMPACT_OPTIONAL_WHITESPACE:
+					m->str_flags |=
+					    STRING_COMPACT_OPTIONAL_WHITESPACE;
+					break;
+				case CHAR_IGNORE_LOWERCASE:
+					m->str_flags |= STRING_IGNORE_LOWERCASE;
+					break;
+				case CHAR_IGNORE_UPPERCASE:
+					m->str_flags |= STRING_IGNORE_UPPERCASE;
+					break;
+				case CHAR_REGEX_OFFSET_START:
+					m->str_flags |= REGEX_OFFSET_START;
+					break;
+				case CHAR_BINTEST:
+					m->str_flags |= STRING_BINTEST;
+					break;
+				case CHAR_TEXTTEST:
+					m->str_flags |= STRING_TEXTTEST;
+					break;
+				case CHAR_PSTRING_1_LE:
+					if (m->type != FILE_PSTRING)
+						goto bad;
+					m->str_flags = (m->str_flags & ~PSTRING_LEN) | PSTRING_1_LE;
+					break;
+				case CHAR_PSTRING_2_BE:
+					if (m->type != FILE_PSTRING)
+						goto bad;
+					m->str_flags = (m->str_flags & ~PSTRING_LEN) | PSTRING_2_BE;
+					break;
+				case CHAR_PSTRING_2_LE:
+					if (m->type != FILE_PSTRING)
+						goto bad;
+					m->str_flags = (m->str_flags & ~PSTRING_LEN) | PSTRING_2_LE;
+					break;
+				case CHAR_PSTRING_4_BE:
+					if (m->type != FILE_PSTRING)
+						goto bad;
+					m->str_flags = (m->str_flags & ~PSTRING_LEN) | PSTRING_4_BE;
+					break;
+				case CHAR_PSTRING_4_LE:
+					if (m->type != FILE_PSTRING)
+						goto bad;
+					m->str_flags = (m->str_flags & ~PSTRING_LEN) | PSTRING_4_LE;
+					break;
+				case CHAR_PSTRING_LENGTH_INCLUDES_ITSELF:
+					if (m->type != FILE_PSTRING)
+						goto bad;
+					m->str_flags |= PSTRING_LENGTH_INCLUDES_ITSELF;
+					break;
+				bad:
+				default:
+					if (ms->flags & MAGIC_CHECK)
+						file_magwarn(ms,
+						    "string extension `%c' "
+						    "invalid", *l);
+					return -1;
+				}
+				/* allow multiple '/' for readability */
+				if (l[1] == '/' &&
+				    !isspace((unsigned char)l[2]))
+					l++;
+			}
+			if (string_modifier_check(ms, m) == -1)
+				return -1;
+		}
+		else {
+			if (ms->flags & MAGIC_CHECK)
+				file_magwarn(ms, "invalid string op: %c", *t);
+			return -1;
+		}
+	}
+	/*
+	 * We used to set mask to all 1's here, instead let's just not do
+	 * anything if mask = 0 (unless you have a better idea)
+	 */
+	EATAB;
+  
+	switch (*l) {
+	case '>':
+	case '<':
+  		m->reln = *l;
+  		++l;
+		if (*l == '=') {
+			if (ms->flags & MAGIC_CHECK) {
+				file_magwarn(ms, "%c= not supported",
+				    m->reln);
+				return -1;
+			}
+		   ++l;
+		}
+		break;
+	/* Old-style anding: "0 byte &0x80 dynamically linked" */
+	case '&':
+	case '^':
+	case '=':
+  		m->reln = *l;
+  		++l;
+		if (*l == '=') {
+		   /* HP compat: ignore &= etc. */
+		   ++l;
+		}
+		break;
+	case '!':
+		m->reln = *l;
+		++l;
+		break;
+	default:
+  		m->reln = '=';	/* the default relation */
+		if (*l == 'x' && ((isascii((unsigned char)l[1]) && 
+		    isspace((unsigned char)l[1])) || !l[1])) {
+			m->reln = *l;
+			++l;
+		}
+		break;
+	}
+	/*
+	 * Grab the value part, except for an 'x' reln.
+	 */
+	if (m->reln != 'x' && getvalue(ms, m, &l, action))
+		return -1;
+
+	/*
+	 * TODO finish this macro and start using it!
+	 * #define offsetcheck {if (offset > HOWMANY-1) 
+	 *	magwarn("offset too big"); }
+	 */
+
+	/*
+	 * Now get last part - the description
+	 */
+	EATAB;
+	if (l[0] == '\b') {
+		++l;
+		m->flag |= NOSPACE;
+	} else if ((l[0] == '\\') && (l[1] == 'b')) {
+		++l;
+		++l;
+		m->flag |= NOSPACE;
+	}
+	for (i = 0; (m->desc[i++] = *l++) != '\0' && i < sizeof(m->desc); )
+		continue;
+	if (i == sizeof(m->desc)) {
+		m->desc[sizeof(m->desc) - 1] = '\0';
+		if (ms->flags & MAGIC_CHECK)
+			file_magwarn(ms, "description `%s' truncated", m->desc);
+	}
+
+        /*
+	 * We only do this check while compiling, or if any of the magic
+	 * files were not compiled.
+         */
+        if (ms->flags & MAGIC_CHECK) {
+		if (check_format(ms, m) == -1)
+			return -1;
+	}
+#ifndef COMPILE_ONLY
+	if (action == FILE_CHECK) {
+		file_mdump(m);
+	}
+#endif
+	m->mimetype[0] = '\0';		/* initialise MIME type to none */
+	if (m->cont_level == 0)
+		++(*nmentryp);		/* make room for next */
+	return 0;
+}
+
+/*
+ * parse a STRENGTH annotation line from magic file, put into magic[index - 1]
+ * if valid
+ */
+private int
+parse_strength(struct magic_set *ms, struct magic_entry *me, const char *line)
+{
+	const char *l = line;
+	char *el;
+	unsigned long factor;
+	struct magic *m = &me->mp[0];
+
+	if (m->factor_op != FILE_FACTOR_OP_NONE) {
+		file_magwarn(ms,
+		    "Current entry already has a strength type: %c %d",
+		    m->factor_op, m->factor);
+		return -1;
+	}
+	EATAB;
+	switch (*l) {
+	case FILE_FACTOR_OP_NONE:
+	case FILE_FACTOR_OP_PLUS:
+	case FILE_FACTOR_OP_MINUS:
+	case FILE_FACTOR_OP_TIMES:
+	case FILE_FACTOR_OP_DIV:
+		m->factor_op = *l++;
+		break;
+	default:
+		file_magwarn(ms, "Unknown factor op `%c'", *l);
+		return -1;
+	}
+	EATAB;
+	factor = strtoul(l, &el, 0);
+	if (factor > 255) {
+		file_magwarn(ms, "Too large factor `%lu'", factor);
+		goto out;
+	}
+	if (*el && !isspace((unsigned char)*el)) {
+		file_magwarn(ms, "Bad factor `%s'", l);
+		goto out;
+	}
+	m->factor = (uint8_t)factor;
+	if (m->factor == 0 && m->factor_op == FILE_FACTOR_OP_DIV) {
+		file_magwarn(ms, "Cannot have factor op `%c' and factor %u",
+		    m->factor_op, m->factor);
+		goto out;
+	}
+	return 0;
+out:
+	m->factor_op = FILE_FACTOR_OP_NONE;
+	m->factor = 0;
+	return -1;
+}
+
+/*
+ * Parse an Apple CREATOR/TYPE annotation from magic file and put it into
+ * magic[index - 1]
+ */
+private int
+parse_apple(struct magic_set *ms, struct magic_entry *me, const char *line)
+{
+	size_t i;
+	const char *l = line;
+	struct magic *m = &me->mp[me->cont_count == 0 ? 0 : me->cont_count - 1];
+
+	if (m->apple[0] != '\0') {
+		file_magwarn(ms, "Current entry already has a APPLE type "
+		    "`%.8s', new type `%s'", m->mimetype, l);
+		return -1;
+	}	
+
+	EATAB;
+	for (i = 0; *l && ((isascii((unsigned char)*l) &&
+	    isalnum((unsigned char)*l)) || strchr("-+/.", *l)) &&
+	    i < sizeof(m->apple); m->apple[i++] = *l++)
+		continue;
+	if (i == sizeof(m->apple) && *l) {
+		/* We don't need to NUL terminate here, printing handles it */
+		if (ms->flags & MAGIC_CHECK)
+			file_magwarn(ms, "APPLE type `%s' truncated %"
+			    SIZE_T_FORMAT "u", line, i);
+	}
+
+	if (i > 0)
+		return 0;
+	else
+		return -1;
+}
+
+/*
+ * parse a MIME annotation line from magic file, put into magic[index - 1]
+ * if valid
+ */
+private int
+parse_mime(struct magic_set *ms, struct magic_entry *me, const char *line)
+{
+	size_t i;
+	const char *l = line;
+	struct magic *m = &me->mp[me->cont_count == 0 ? 0 : me->cont_count - 1];
+
+	if (m->mimetype[0] != '\0') {
+		file_magwarn(ms, "Current entry already has a MIME type `%s',"
+		    " new type `%s'", m->mimetype, l);
+		return -1;
+	}	
+
+	EATAB;
+	for (i = 0; *l && ((isascii((unsigned char)*l) &&
+	    isalnum((unsigned char)*l)) || strchr("-+/.", *l)) &&
+	    i < sizeof(m->mimetype); m->mimetype[i++] = *l++)
+		continue;
+	if (i == sizeof(m->mimetype)) {
+		m->mimetype[sizeof(m->mimetype) - 1] = '\0';
+		if (ms->flags & MAGIC_CHECK)
+			file_magwarn(ms, "MIME type `%s' truncated %"
+			    SIZE_T_FORMAT "u", m->mimetype, i);
+	} else
+		m->mimetype[i] = '\0';
+
+	if (i > 0)
+		return 0;
+	else
+		return -1;
+}
+
+private int
+check_format_type(const char *ptr, int type)
+{
+	int quad = 0;
+	if (*ptr == '\0') {
+		/* Missing format string; bad */
+		return -1;
+	}
+
+	switch (type) {
+	case FILE_FMT_QUAD:
+		quad = 1;
+		/*FALLTHROUGH*/
+	case FILE_FMT_NUM:
+		if (*ptr == '-')
+			ptr++;
+		if (*ptr == '.')
+			ptr++;
+		while (isdigit((unsigned char)*ptr)) ptr++;
+		if (*ptr == '.')
+			ptr++;
+		while (isdigit((unsigned char)*ptr)) ptr++;
+		if (quad) {
+			if (*ptr++ != 'l')
+				return -1;
+			if (*ptr++ != 'l')
+				return -1;
+		}
+	
+		switch (*ptr++) {
+		case 'l':
+			switch (*ptr++) {
+			case 'i':
+			case 'd':
+			case 'u':
+			case 'x':
+			case 'X':
+				return 0;
+			default:
+				return -1;
+			}
+		
+		case 'h':
+			switch (*ptr++) {
+			case 'h':
+				switch (*ptr++) {
+				case 'i':
+				case 'd':
+				case 'u':
+				case 'x':
+				case 'X':
+					return 0;
+				default:
+					return -1;
+				}
+			case 'd':
+				return 0;
+			default:
+				return -1;
+			}
+
+		case 'i':
+		case 'c':
+		case 'd':
+		case 'u':
+		case 'x':
+		case 'X':
+			return 0;
+			
+		default:
+			return -1;
+		}
+		
+	case FILE_FMT_FLOAT:
+	case FILE_FMT_DOUBLE:
+		if (*ptr == '-')
+			ptr++;
+		if (*ptr == '.')
+			ptr++;
+		while (isdigit((unsigned char)*ptr)) ptr++;
+		if (*ptr == '.')
+			ptr++;
+		while (isdigit((unsigned char)*ptr)) ptr++;
+	
+		switch (*ptr++) {
+		case 'e':
+		case 'E':
+		case 'f':
+		case 'F':
+		case 'g':
+		case 'G':
+			return 0;
+			
+		default:
+			return -1;
+		}
+		
+
+	case FILE_FMT_STR:
+		if (*ptr == '-')
+			ptr++;
+		while (isdigit((unsigned char )*ptr))
+			ptr++;
+		if (*ptr == '.') {
+			ptr++;
+			while (isdigit((unsigned char )*ptr))
+				ptr++;
+		}
+		
+		switch (*ptr++) {
+		case 's':
+			return 0;
+		default:
+			return -1;
+		}
+		
+	default:
+		/* internal error */
+		abort();
+	}
+	/*NOTREACHED*/
+	return -1;
+}
+	
+/*
+ * Check that the optional printf format in description matches
+ * the type of the magic.
+ */
+private int
+check_format(struct magic_set *ms, struct magic *m)
+{
+	char *ptr;
+
+	for (ptr = m->desc; *ptr; ptr++)
+		if (*ptr == '%')
+			break;
+	if (*ptr == '\0') {
+		/* No format string; ok */
+		return 1;
+	}
+
+	assert(file_nformats == file_nnames);
+
+	if (m->type >= file_nformats) {
+		file_magwarn(ms, "Internal error inconsistency between "
+		    "m->type and format strings");		
+		return -1;
+	}
+	if (file_formats[m->type] == FILE_FMT_NONE) {
+		file_magwarn(ms, "No format string for `%s' with description "
+		    "`%s'", m->desc, file_names[m->type]);
+		return -1;
+	}
+
+	ptr++;
+	if (check_format_type(ptr, file_formats[m->type]) == -1) {
+		/*
+		 * TODO: this error message is unhelpful if the format
+		 * string is not one character long
+		 */
+		file_magwarn(ms, "Printf format `%c' is not valid for type "
+		    "`%s' in description `%s'", *ptr ? *ptr : '?',
+		    file_names[m->type], m->desc);
+		return -1;
+	}
+	
+	for (; *ptr; ptr++) {
+		if (*ptr == '%') {
+			file_magwarn(ms,
+			    "Too many format strings (should have at most one) "
+			    "for `%s' with description `%s'",
+			    file_names[m->type], m->desc);
+			return -1;
+		}
+	}
+	return 0;
+}
+
+/* 
+ * Read a numeric value from a pointer, into the value union of a magic 
+ * pointer, according to the magic type.  Update the string pointer to point 
+ * just after the number read.  Return 0 for success, non-zero for failure.
+ */
+private int
+getvalue(struct magic_set *ms, struct magic *m, const char **p, int action)
+{
+	switch (m->type) {
+	case FILE_BESTRING16:
+	case FILE_LESTRING16:
+	case FILE_STRING:
+	case FILE_PSTRING:
+	case FILE_REGEX:
+	case FILE_SEARCH:
+		*p = getstr(ms, m, *p, action == FILE_COMPILE);
+		if (*p == NULL) {
+			if (ms->flags & MAGIC_CHECK)
+				file_magwarn(ms, "cannot get string from `%s'",
+				    m->value.s);
+			return -1;
+		}
+		return 0;
+	case FILE_FLOAT:
+	case FILE_BEFLOAT:
+	case FILE_LEFLOAT:
+		if (m->reln != 'x') {
+			char *ep;
+#ifdef HAVE_STRTOF
+			m->value.f = strtof(*p, &ep);
+#else
+			m->value.f = (float)strtod(*p, &ep);
+#endif
+			*p = ep;
+		}
+		return 0;
+	case FILE_DOUBLE:
+	case FILE_BEDOUBLE:
+	case FILE_LEDOUBLE:
+		if (m->reln != 'x') {
+			char *ep;
+			m->value.d = strtod(*p, &ep);
+			*p = ep;
+		}
+		return 0;
+	default:
+		if (m->reln != 'x') {
+			char *ep;
+			m->value.q = file_signextend(ms, m,
+			    (uint64_t)strtoull(*p, &ep, 0));
+			*p = ep;
+			eatsize(p);
+		}
+		return 0;
+	}
+}
+
+/*
+ * Convert a string containing C character escapes.  Stop at an unescaped
+ * space or tab.
+ * Copy the converted version to "m->value.s", and the length in m->vallen.
+ * Return updated scan pointer as function result. Warn if set.
+ */
+private const char *
+getstr(struct magic_set *ms, struct magic *m, const char *s, int warn)
+{
+	const char *origs = s;
+	char	*p = m->value.s;
+	size_t  plen = sizeof(m->value.s);
+	char 	*origp = p;
+	char	*pmax = p + plen - 1;
+	int	c;
+	int	val;
+
+	while ((c = *s++) != '\0') {
+		if (isspace((unsigned char) c))
+			break;
+		if (p >= pmax) {
+			file_error(ms, 0, "string too long: `%s'", origs);
+			return NULL;
+		}
+		if (c == '\\') {
+			switch(c = *s++) {
+
+			case '\0':
+				if (warn)
+					file_magwarn(ms, "incomplete escape");
+				goto out;
+
+			case '\t':
+				if (warn) {
+					file_magwarn(ms,
+					    "escaped tab found, use \\t instead");
+					warn = 0;	/* already did */
+				}
+				/*FALLTHROUGH*/
+			default:
+				if (warn) {
+					if (isprint((unsigned char)c)) {
+						/* Allow escaping of 
+						 * ``relations'' */
+						if (strchr("<>&^=!", c) == NULL
+						    && (m->type != FILE_REGEX ||
+						    strchr("[]().*?^$|{}", c)
+						    == NULL)) {
+							file_magwarn(ms, "no "
+							    "need to escape "
+							    "`%c'", c);
+						}
+					} else {
+						file_magwarn(ms,
+						    "unknown escape sequence: "
+						    "\\%03o", c);
+					}
+				}
+				/*FALLTHROUGH*/
+			/* space, perhaps force people to use \040? */
+			case ' ':
+#if 0
+			/*
+			 * Other things people escape, but shouldn't need to,
+			 * so we disallow them
+			 */
+			case '\'':
+			case '"':
+			case '?':
+#endif
+			/* Relations */
+			case '>':
+			case '<':
+			case '&':
+			case '^':
+			case '=':
+			case '!':
+			/* and baskslash itself */
+			case '\\':
+				*p++ = (char) c;
+				break;
+
+			case 'a':
+				*p++ = '\a';
+				break;
+
+			case 'b':
+				*p++ = '\b';
+				break;
+
+			case 'f':
+				*p++ = '\f';
+				break;
+
+			case 'n':
+				*p++ = '\n';
+				break;
+
+			case 'r':
+				*p++ = '\r';
+				break;
+
+			case 't':
+				*p++ = '\t';
+				break;
+
+			case 'v':
+				*p++ = '\v';
+				break;
+
+			/* \ and up to 3 octal digits */
+			case '0':
+			case '1':
+			case '2':
+			case '3':
+			case '4':
+			case '5':
+			case '6':
+			case '7':
+				val = c - '0';
+				c = *s++;  /* try for 2 */
+				if (c >= '0' && c <= '7') {
+					val = (val << 3) | (c - '0');
+					c = *s++;  /* try for 3 */
+					if (c >= '0' && c <= '7')
+						val = (val << 3) | (c-'0');
+					else
+						--s;
+				}
+				else
+					--s;
+				*p++ = (char)val;
+				break;
+
+			/* \x and up to 2 hex digits */
+			case 'x':
+				val = 'x';	/* Default if no digits */
+				c = hextoint(*s++);	/* Get next char */
+				if (c >= 0) {
+					val = c;
+					c = hextoint(*s++);
+					if (c >= 0)
+						val = (val << 4) + c;
+					else
+						--s;
+				} else
+					--s;
+				*p++ = (char)val;
+				break;
+			}
+		} else
+			*p++ = (char)c;
+	}
+out:
+	*p = '\0';
+	m->vallen = CAST(unsigned char, (p - origp));
+	if (m->type == FILE_PSTRING)
+		m->vallen += file_pstring_length_size(m);
+	return s;
+}
+
+
+/* Single hex char to int; -1 if not a hex char. */
+private int
+hextoint(int c)
+{
+	if (!isascii((unsigned char) c))
+		return -1;
+	if (isdigit((unsigned char) c))
+		return c - '0';
+	if ((c >= 'a') && (c <= 'f'))
+		return c + 10 - 'a';
+	if (( c>= 'A') && (c <= 'F'))
+		return c + 10 - 'A';
+	return -1;
+}
+
+
+/*
+ * Print a string containing C character escapes.
+ */
+protected void
+file_showstr(FILE *fp, const char *s, size_t len)
+{
+	char	c;
+
+	for (;;) {
+		if (len == ~0U) {
+			c = *s++;
+			if (c == '\0')
+				break;
+		}
+		else  {
+			if (len-- == 0)
+				break;
+			c = *s++;
+		}
+		if (c >= 040 && c <= 0176)	/* TODO isprint && !iscntrl */
+			(void) fputc(c, fp);
+		else {
+			(void) fputc('\\', fp);
+			switch (c) {
+			case '\a':
+				(void) fputc('a', fp);
+				break;
+
+			case '\b':
+				(void) fputc('b', fp);
+				break;
+
+			case '\f':
+				(void) fputc('f', fp);
+				break;
+
+			case '\n':
+				(void) fputc('n', fp);
+				break;
+
+			case '\r':
+				(void) fputc('r', fp);
+				break;
+
+			case '\t':
+				(void) fputc('t', fp);
+				break;
+
+			case '\v':
+				(void) fputc('v', fp);
+				break;
+
+			default:
+				(void) fprintf(fp, "%.3o", c & 0377);
+				break;
+			}
+		}
+	}
+}
+
+/*
+ * eatsize(): Eat the size spec from a number [eg. 10UL]
+ */
+private void
+eatsize(const char **p)
+{
+	const char *l = *p;
+
+	if (LOWCASE(*l) == 'u') 
+		l++;
+
+	switch (LOWCASE(*l)) {
+	case 'l':    /* long */
+	case 's':    /* short */
+	case 'h':    /* short */
+	case 'b':    /* char/byte */
+	case 'c':    /* char/byte */
+		l++;
+		/*FALLTHROUGH*/
+	default:
+		break;
+	}
+
+	*p = l;
+}
+
+/*
+ * handle a compiled file.
+ */
+private int
+apprentice_map(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp,
+    const char *fn)
+{
+	int fd;
+	struct stat st;
+	uint32_t *ptr;
+	uint32_t version;
+	int needsbyteswap;
+	char *dbname = NULL;
+	void *mm = NULL;
+
+	dbname = mkdbname(ms, fn, 0);
+	if (dbname == NULL)
+		goto error2;
+
+	if ((fd = open(dbname, O_RDONLY|O_BINARY)) == -1)
+		goto error2;
+
+	if (fstat(fd, &st) == -1) {
+		file_error(ms, errno, "cannot stat `%s'", dbname);
+		goto error1;
+	}
+	if (st.st_size < 8) {
+		file_error(ms, 0, "file `%s' is too small", dbname);
+		goto error1;
+	}
+
+#ifdef QUICK
+	if ((mm = mmap(0, (size_t)st.st_size, PROT_READ|PROT_WRITE,
+	    MAP_PRIVATE|MAP_FILE, fd, (off_t)0)) == MAP_FAILED) {
+		file_error(ms, errno, "cannot map `%s'", dbname);
+		goto error1;
+	}
+#define RET	2
+#else
+	if ((mm = CAST(void *, malloc((size_t)st.st_size))) == NULL) {
+		file_oomem(ms, (size_t)st.st_size);
+		goto error1;
+	}
+	if (read(fd, mm, (size_t)st.st_size) != (ssize_t)st.st_size) {
+		file_badread(ms);
+		goto error1;
+	}
+#define RET	1
+#endif
+	*magicp = CAST(struct magic *, mm);
+	(void)close(fd);
+	fd = -1;
+	ptr = (uint32_t *)(void *)*magicp;
+	if (*ptr != MAGICNO) {
+		if (swap4(*ptr) != MAGICNO) {
+			file_error(ms, 0, "bad magic in `%s'", dbname);
+			goto error1;
+		}
+		needsbyteswap = 1;
+	} else
+		needsbyteswap = 0;
+	if (needsbyteswap)
+		version = swap4(ptr[1]);
+	else
+		version = ptr[1];
+	if (version != VERSIONNO) {
+		file_error(ms, 0, "File %s supports only version %d magic "
+		    "files. `%s' is version %d", VERSION,
+		    VERSIONNO, dbname, version);
+		goto error1;
+	}
+	*nmagicp = (uint32_t)(st.st_size / sizeof(struct magic));
+	if (*nmagicp > 0)
+		(*nmagicp)--;
+	(*magicp)++;
+	if (needsbyteswap)
+		byteswap(*magicp, *nmagicp);
+	free(dbname);
+	return RET;
+
+error1:
+	if (fd != -1)
+		(void)close(fd);
+	if (mm) {
+#ifdef QUICK
+		(void)munmap((void *)mm, (size_t)st.st_size);
+#else
+		free(mm);
+#endif
+	} else {
+		*magicp = NULL;
+		*nmagicp = 0;
+	}
+error2:
+	free(dbname);
+	return -1;
+}
+
+private const uint32_t ar[] = {
+    MAGICNO, VERSIONNO
+};
+/*
+ * handle an mmaped file.
+ */
+private int
+apprentice_compile(struct magic_set *ms, struct magic **magicp,
+    uint32_t *nmagicp, const char *fn)
+{
+	int fd;
+	char *dbname;
+	int rv = -1;
+
+	dbname = mkdbname(ms, fn, 1);
+
+	if (dbname == NULL) 
+		goto out;
+
+	if ((fd = open(dbname, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY, 0644)) == -1) {
+		file_error(ms, errno, "cannot open `%s'", dbname);
+		goto out;
+	}
+
+	if (write(fd, ar, sizeof(ar)) != (ssize_t)sizeof(ar)) {
+		file_error(ms, errno, "error writing `%s'", dbname);
+		goto out;
+	}
+
+	if (lseek(fd, (off_t)sizeof(struct magic), SEEK_SET)
+	    != sizeof(struct magic)) {
+		file_error(ms, errno, "error seeking `%s'", dbname);
+		goto out;
+	}
+
+	if (write(fd, *magicp, (sizeof(struct magic) * *nmagicp)) 
+	    != (ssize_t)(sizeof(struct magic) * *nmagicp)) {
+		file_error(ms, errno, "error writing `%s'", dbname);
+		goto out;
+	}
+
+	(void)close(fd);
+	rv = 0;
+out:
+	free(dbname);
+	return rv;
+}
+
+private const char ext[] = ".mgc";
+/*
+ * make a dbname
+ */
+private char *
+mkdbname(struct magic_set *ms, const char *fn, int strip)
+{
+	const char *p, *q;
+	char *buf;
+
+	if (strip) {
+		if ((p = strrchr(fn, '/')) != NULL)
+			fn = ++p;
+	}
+
+	for (q = fn; *q; q++)
+		continue;
+	/* Look for .mgc */
+	for (p = ext + sizeof(ext) - 1; p >= ext && q >= fn; p--, q--)
+		if (*p != *q)
+			break;
+
+	/* Did not find .mgc, restore q */
+	if (p >= ext)
+		while (*q)
+			q++;
+
+	q++;
+	/* Compatibility with old code that looked in .mime */
+	if (ms->flags & MAGIC_MIME) {
+		asprintf(&buf, "%.*s.mime%s", (int)(q - fn), fn, ext);
+		if (access(buf, R_OK) != -1) {
+			ms->flags &= MAGIC_MIME_TYPE;
+			return buf;
+		}
+		free(buf);
+	}
+	asprintf(&buf, "%.*s%s", (int)(q - fn), fn, ext);
+
+	/* Compatibility with old code that looked in .mime */
+	if (strstr(p, ".mime") != NULL)
+		ms->flags &= MAGIC_MIME_TYPE;
+	return buf;
+}
+
+/*
+ * Byteswap an mmap'ed file if needed
+ */
+private void
+byteswap(struct magic *magic, uint32_t nmagic)
+{
+	uint32_t i;
+	for (i = 0; i < nmagic; i++)
+		bs1(&magic[i]);
+}
+
+/*
+ * swap a short
+ */
+private uint16_t
+swap2(uint16_t sv)
+{
+	uint16_t rv;
+	uint8_t *s = (uint8_t *)(void *)&sv; 
+	uint8_t *d = (uint8_t *)(void *)&rv; 
+	d[0] = s[1];
+	d[1] = s[0];
+	return rv;
+}
+
+/*
+ * swap an int
+ */
+private uint32_t
+swap4(uint32_t sv)
+{
+	uint32_t rv;
+	uint8_t *s = (uint8_t *)(void *)&sv; 
+	uint8_t *d = (uint8_t *)(void *)&rv; 
+	d[0] = s[3];
+	d[1] = s[2];
+	d[2] = s[1];
+	d[3] = s[0];
+	return rv;
+}
+
+/*
+ * swap a quad
+ */
+private uint64_t
+swap8(uint64_t sv)
+{
+	uint64_t rv;
+	uint8_t *s = (uint8_t *)(void *)&sv; 
+	uint8_t *d = (uint8_t *)(void *)&rv; 
+#if 0
+	d[0] = s[3];
+	d[1] = s[2];
+	d[2] = s[1];
+	d[3] = s[0];
+	d[4] = s[7];
+	d[5] = s[6];
+	d[6] = s[5];
+	d[7] = s[4];
+#else
+	d[0] = s[7];
+	d[1] = s[6];
+	d[2] = s[5];
+	d[3] = s[4];
+	d[4] = s[3];
+	d[5] = s[2];
+	d[6] = s[1];
+	d[7] = s[0];
+#endif
+	return rv;
+}
+
+/*
+ * byteswap a single magic entry
+ */
+private void
+bs1(struct magic *m)
+{
+	m->cont_level = swap2(m->cont_level);
+	m->offset = swap4((uint32_t)m->offset);
+	m->in_offset = swap4((uint32_t)m->in_offset);
+	m->lineno = swap4((uint32_t)m->lineno);
+	if (IS_STRING(m->type)) {
+		m->str_range = swap4(m->str_range);
+		m->str_flags = swap4(m->str_flags);
+	}
+	else {
+		m->value.q = swap8(m->value.q);
+		m->num_mask = swap8(m->num_mask);
+	}
+}
+
+protected size_t 
+file_pstring_length_size(const struct magic *m)
+{
+	switch (m->str_flags & PSTRING_LEN) {
+	case PSTRING_1_LE:
+		return 1;
+	case PSTRING_2_LE:
+	case PSTRING_2_BE:
+		return 2;
+	case PSTRING_4_LE:
+	case PSTRING_4_BE:
+		return 4;
+	default:
+		abort();	/* Impossible */
+		return 1;
+	}
+}
+protected size_t
+file_pstring_get_length(const struct magic *m, const char *s)
+{
+	size_t len = 0;
+
+	switch (m->str_flags & PSTRING_LEN) {
+	case PSTRING_1_LE:
+		len = *s;
+		break;
+	case PSTRING_2_LE:
+		len = (s[1] << 8) | s[0];
+		break;
+	case PSTRING_2_BE:
+		len = (s[0] << 8) | s[1];
+		break;
+	case PSTRING_4_LE:
+		len = (s[3] << 24) | (s[2] << 16) | (s[1] << 8) | s[0];
+		break;
+	case PSTRING_4_BE:
+		len = (s[0] << 24) | (s[1] << 16) | (s[2] << 8) | s[3];
+		break;
+	default:
+		abort();	/* Impossible */
+	}
+
+	if (m->str_flags & PSTRING_LENGTH_INCLUDES_ITSELF)
+		len -= file_pstring_length_size(m);
+
+	return len;
+}
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/apptype.c b/framework/modules/c_FileTypeSigModule/file-5.08/src/apptype.c
new file mode 100755
index 0000000000000000000000000000000000000000..31b8095e13bae8ead23f1ad5c304ea5d0df9a5a4
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/apptype.c
@@ -0,0 +1,168 @@
+/*
+ * Adapted from: apptype.c, Written by Eberhard Mattes and put into the
+ * public domain
+ * 
+ * Notes: 1. Qualify the filename so that DosQueryAppType does not do extraneous
+ * searches.
+ * 
+ * 2. DosQueryAppType will return FAPPTYP_DOS on a file ending with ".com"
+ * (other than an OS/2 exe or Win exe with this name). Eberhard Mattes
+ * remarks Tue, 6 Apr 93: Moreover, it reports the type of the (new and very
+ * bug ridden) Win Emacs as "OS/2 executable".
+ * 
+ * 3. apptype() uses the filename if given, otherwise a tmp file is created with
+ * the contents of buf. If buf is not the complete file, apptype can
+ * incorrectly identify the exe type. The "-z" option of "file" is the reason
+ * for this ugly code.
+ */
+
+/*
+ * amai: Darrel Hankerson did the changes described here.
+ * 
+ * It remains to check the validity of comments (2.) since it's referred to an
+ * "old" OS/2 version.
+ * 
+ */
+
+#include "file.h"
+
+#ifndef	lint
+FILE_RCSID("@(#)$File: apptype.c,v 1.11 2009/02/04 18:24:32 christos Exp $")
+#endif /* lint */
+
+#include <stdlib.h>
+#include <string.h>
+
+#ifdef __EMX__
+#include <io.h>
+#define INCL_DOSSESMGR
+#define INCL_DOSERRORS
+#define INCL_DOSFILEMGR
+#include <os2.h>
+typedef ULONG   APPTYPE;
+
+protected int
+file_os2_apptype(struct magic_set *ms, const char *fn, const void *buf,
+    size_t nb)
+{
+	APPTYPE         rc, type;
+	char            path[_MAX_PATH], drive[_MAX_DRIVE], dir[_MAX_DIR],
+			fname[_MAX_FNAME], ext[_MAX_EXT];
+	char           *filename;
+	FILE           *fp;
+
+	if (fn)
+		filename = strdup(fn);
+	else if ((filename = tempnam("./", "tmp")) == NULL) {
+		file_error(ms, errno, "cannot create tempnam");
+		return -1;
+	}
+	/* qualify the filename to prevent extraneous searches */
+	_splitpath(filename, drive, dir, fname, ext);
+	(void)sprintf(path, "%s%s%s%s", drive,
+		(*dir == '\0') ? "./" : dir,
+		fname,
+		(*ext == '\0') ? "." : ext);
+
+	if (fn == NULL) {
+		if ((fp = fopen(path, "wb")) == NULL) {
+			file_error(ms, errno, "cannot open tmp file `%s'", path);
+			return -1;
+		}
+		if (fwrite(buf, 1, nb, fp) != nb) {
+			file_error(ms, errno, "cannot write tmp file `%s'",
+			    path);
+			return -1;
+		}
+		(void)fclose(fp);
+	}
+	rc = DosQueryAppType((unsigned char *)path, &type);
+
+	if (fn == NULL) {
+		unlink(path);
+		free(filename);
+	}
+#if 0
+	if (rc == ERROR_INVALID_EXE_SIGNATURE)
+		printf("%s: not an executable file\n", fname);
+	else if (rc == ERROR_FILE_NOT_FOUND)
+		printf("%s: not found\n", fname);
+	else if (rc == ERROR_ACCESS_DENIED)
+		printf("%s: access denied\n", fname);
+	else if (rc != 0)
+		printf("%s: error code = %lu\n", fname, rc);
+	else
+#else
+
+	/*
+	 * for our purpose here it's sufficient to just ignore the error and
+	 * return w/o success (=0)
+	 */
+
+	if (rc)
+		return (0);
+
+#endif
+
+	if (type & FAPPTYP_32BIT)
+		if (file_printf(ms, "32-bit ") == -1)
+			return -1;
+	if (type & FAPPTYP_PHYSDRV) {
+		if (file_printf(ms, "physical device driver") == -1)
+			return -1;
+	} else if (type & FAPPTYP_VIRTDRV) {
+		if (file_printf(ms, "virtual device driver") == -1)
+			return -1;
+	} else if (type & FAPPTYP_DLL) {
+		if (type & FAPPTYP_PROTDLL)
+			if (file_printf(ms, "protected ") == -1)
+				return -1;
+		if (file_printf(ms, "DLL") == -1)
+			return -1;
+	} else if (type & (FAPPTYP_WINDOWSREAL | FAPPTYP_WINDOWSPROT)) {
+		if (file_printf(ms, "Windows executable") == -1)
+			return -1;
+	} else if (type & FAPPTYP_DOS) {
+		/*
+		 * The API routine is partially broken on filenames ending
+		 * ".com".
+		 */
+		if (stricmp(ext, ".com") == 0)
+			if (strncmp((const char *)buf, "MZ", 2))
+				return (0);
+		if (file_printf(ms, "DOS executable") == -1)
+			return -1;
+		/* ---------------------------------------- */
+		/* Might learn more from the magic(4) entry */
+		if (file_printf(ms, ", magic(4)-> ") == -1)
+			return -1;
+		return (0);
+		/* ---------------------------------------- */
+	} else if (type & FAPPTYP_BOUND) {
+		if (file_printf(ms, "bound executable") == -1)
+			return -1;
+	} else if ((type & 7) == FAPPTYP_WINDOWAPI) {
+		if (file_printf(ms, "PM executable") == -1)
+			return -1;
+	} else if (file_printf(ms, "OS/2 executable") == -1)
+		return -1;
+
+	switch (type & (FAPPTYP_NOTWINDOWCOMPAT |
+			FAPPTYP_WINDOWCOMPAT |
+			FAPPTYP_WINDOWAPI)) {
+	case FAPPTYP_NOTWINDOWCOMPAT:
+		if (file_printf(ms, " [NOTWINDOWCOMPAT]") == -1)
+			return -1;
+		break;
+	case FAPPTYP_WINDOWCOMPAT:
+		if (file_printf(ms, " [WINDOWCOMPAT]") == -1)
+			return -1;
+		break;
+	case FAPPTYP_WINDOWAPI:
+		if (file_printf(ms, " [WINDOWAPI]") == -1)
+			return -1;
+		break;
+	}
+	return 1;
+}
+#endif
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/ascmagic.c b/framework/modules/c_FileTypeSigModule/file-5.08/src/ascmagic.c
new file mode 100755
index 0000000000000000000000000000000000000000..279a51a8cfd7446cb4d3a6aab80b22199fd35947
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/ascmagic.c
@@ -0,0 +1,429 @@
+/*
+ * Copyright (c) Ian F. Darwin 1986-1995.
+ * Software written by Ian F. Darwin and others;
+ * maintained 1995-present by Christos Zoulas and others.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice immediately at the beginning of the file, without modification,
+ *    this list of conditions, and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * ASCII magic -- try to detect text encoding.
+ *
+ * Extensively modified by Eric Fischer <enf@pobox.com> in July, 2000,
+ * to handle character codes other than ASCII on a unified basis.
+ */
+
+#include "file.h"
+
+#ifndef	lint
+FILE_RCSID("@(#)$File: ascmagic.c,v 1.81 2011/03/15 22:16:29 christos Exp $")
+#endif	/* lint */
+
+#include "magic.h"
+#include <string.h>
+#include <memory.h>
+#include <ctype.h>
+#include <stdlib.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#include "names.h"
+
+#define MAXLINELEN 300	/* longest sane line length */
+#define ISSPC(x) ((x) == ' ' || (x) == '\t' || (x) == '\r' || (x) == '\n' \
+		  || (x) == 0x85 || (x) == '\f')
+
+private int ascmatch(const unsigned char *, const unichar *, size_t);
+private unsigned char *encode_utf8(unsigned char *, size_t, unichar *, size_t);
+private size_t trim_nuls(const unsigned char *, size_t);
+
+/*
+ * Undo the NUL-termination kindly provided by process()
+ * but leave at least one byte to look at
+ */
+private size_t
+trim_nuls(const unsigned char *buf, size_t nbytes)
+{
+	while (nbytes > 1 && buf[nbytes - 1] == '\0')
+		nbytes--;
+
+	return nbytes;
+}
+
+protected int
+file_ascmagic(struct magic_set *ms, const unsigned char *buf, size_t nbytes)
+{
+	unichar *ubuf = NULL;
+	size_t ulen;
+	int rv = 1;
+
+	const char *code = NULL;
+	const char *code_mime = NULL;
+	const char *type = NULL;
+
+	if (ms->flags & MAGIC_APPLE)
+		return 0;
+
+	nbytes = trim_nuls(buf, nbytes);
+
+	/* If file doesn't look like any sort of text, give up. */
+	if (file_encoding(ms, buf, nbytes, &ubuf, &ulen, &code, &code_mime,
+	    &type) == 0) {
+		rv = 0;
+		goto done;
+	}
+
+	rv = file_ascmagic_with_encoding(ms, buf, nbytes, ubuf, ulen, code,
+	    type);
+
+ done:
+	if (ubuf)
+		free(ubuf);
+
+	return rv;
+}
+
+protected int
+file_ascmagic_with_encoding(struct magic_set *ms, const unsigned char *buf,
+    size_t nbytes, unichar *ubuf, size_t ulen, const char *code,
+    const char *type)
+{
+	unsigned char *utf8_buf = NULL, *utf8_end;
+	size_t mlen, i;
+	const struct names *p;
+	int rv = -1;
+	int mime = ms->flags & MAGIC_MIME;
+
+	const char *subtype = NULL;
+	const char *subtype_mime = NULL;
+
+	int has_escapes = 0;
+	int has_backspace = 0;
+	int seen_cr = 0;
+
+	int n_crlf = 0;
+	int n_lf = 0;
+	int n_cr = 0;
+	int n_nel = 0;
+	int score, curtype, executable = 0;
+
+	size_t last_line_end = (size_t)-1;
+	int has_long_lines = 0;
+
+	if (ms->flags & MAGIC_APPLE)
+		return 0;
+
+	nbytes = trim_nuls(buf, nbytes);
+
+	/* If we have fewer than 2 bytes, give up. */
+	if (nbytes <= 1) {
+		rv = 0;
+		goto done;
+	}
+
+	if ((ms->flags & MAGIC_NO_CHECK_SOFT) == 0) {
+		/* Convert ubuf to UTF-8 and try text soft magic */
+		/* malloc size is a conservative overestimate; could be
+		   improved, or at least realloced after conversion. */
+		mlen = ulen * 6;
+		if ((utf8_buf = CAST(unsigned char *, malloc(mlen))) == NULL) {
+			file_oomem(ms, mlen);
+			goto done;
+		}
+		if ((utf8_end = encode_utf8(utf8_buf, mlen, ubuf, ulen))
+		    == NULL)
+			goto done;
+		if ((rv = file_softmagic(ms, utf8_buf,
+		    (size_t)(utf8_end - utf8_buf), TEXTTEST)) != 0)
+			goto subtype_identified;
+		else
+			rv = -1;
+	}
+
+	/* look for tokens from names.h - this is expensive! */
+	if ((ms->flags & MAGIC_NO_CHECK_TOKENS) != 0)
+		goto subtype_identified;
+
+	i = 0;
+	score = 0;
+	curtype = -1;
+	while (i < ulen) {
+		size_t end;
+
+		/* skip past any leading space */
+		while (i < ulen && ISSPC(ubuf[i]))
+			i++;
+		if (i >= ulen)
+			break;
+
+		/* find the next whitespace */
+		for (end = i + 1; end < nbytes; end++)
+			if (ISSPC(ubuf[end]))
+				break;
+
+		/* compare the word thus isolated against the token list */
+		for (p = names; p < names + NNAMES; p++) {
+			if (ascmatch((const unsigned char *)p->name, ubuf + i,
+			    end - i)) {
+				if (curtype == -1)
+					curtype = p->type;
+				else if (curtype != p->type) {
+					score = p->score;
+					curtype = p->type;
+				} else
+					score += p->score;
+				if (score > 1) {
+					subtype = types[p->type].human;
+					subtype_mime = types[p->type].mime;
+					goto subtype_identified;
+				}
+			}
+		}
+
+		i = end;
+	}
+
+subtype_identified:
+
+	/* Now try to discover other details about the file. */
+	for (i = 0; i < ulen; i++) {
+		if (ubuf[i] == '\n') {
+			if (seen_cr)
+				n_crlf++;
+			else
+				n_lf++;
+			last_line_end = i;
+		} else if (seen_cr)
+			n_cr++;
+
+		seen_cr = (ubuf[i] == '\r');
+		if (seen_cr)
+			last_line_end = i;
+
+		if (ubuf[i] == 0x85) { /* X3.64/ECMA-43 "next line" character */
+			n_nel++;
+			last_line_end = i;
+		}
+
+		/* If this line is _longer_ than MAXLINELEN, remember it. */
+		if (i > last_line_end + MAXLINELEN)
+			has_long_lines = 1;
+
+		if (ubuf[i] == '\033')
+			has_escapes = 1;
+		if (ubuf[i] == '\b')
+			has_backspace = 1;
+	}
+
+	/* Beware, if the data has been truncated, the final CR could have
+	   been followed by a LF.  If we have HOWMANY bytes, it indicates
+	   that the data might have been truncated, probably even before
+	   this function was called. */
+	if (seen_cr && nbytes < HOWMANY)
+		n_cr++;
+
+	if (strcmp(type, "binary") == 0) {
+		rv = 0;
+		goto done;
+	}
+	if (mime) {
+		if (!file_printedlen(ms) && (mime & MAGIC_MIME_TYPE) != 0) {
+			if (subtype_mime) {
+				if (file_printf(ms, "%s", subtype_mime) == -1)
+					goto done;
+			} else {
+				if (file_printf(ms, "text/plain") == -1)
+					goto done;
+			}
+		}
+	} else {
+		if (file_printedlen(ms)) {
+			switch (file_replace(ms, " text$", ", ")) {
+			case 0:
+				switch (file_replace(ms, " text executable$",
+				    ", ")) {
+				case 0:
+					if (file_printf(ms, ", ") == -1)
+						goto done;
+				case -1:
+					goto done;
+				default:
+					executable = 1;
+					break;
+				}
+				break;
+			case -1:
+				goto done;
+			default:
+				break;
+			}
+		}
+
+		if (file_printf(ms, "%s", code) == -1)
+			goto done;
+
+		if (subtype) {
+			if (file_printf(ms, " %s", subtype) == -1)
+				goto done;
+		}
+
+		if (file_printf(ms, " %s", type) == -1)
+			goto done;
+
+		if (executable)
+			if (file_printf(ms, " executable") == -1)
+				goto done;
+
+		if (has_long_lines)
+			if (file_printf(ms, ", with very long lines") == -1)
+				goto done;
+
+		/*
+		 * Only report line terminators if we find one other than LF,
+		 * or if we find none at all.
+		 */
+		if ((n_crlf == 0 && n_cr == 0 && n_nel == 0 && n_lf == 0) ||
+		    (n_crlf != 0 || n_cr != 0 || n_nel != 0)) {
+			if (file_printf(ms, ", with") == -1)
+				goto done;
+
+			if (n_crlf == 0 && n_cr == 0 && n_nel == 0 && n_lf == 0) {
+				if (file_printf(ms, " no") == -1)
+					goto done;
+			} else {
+				if (n_crlf) {
+					if (file_printf(ms, " CRLF") == -1)
+						goto done;
+					if (n_cr || n_lf || n_nel)
+						if (file_printf(ms, ",") == -1)
+							goto done;
+				}
+				if (n_cr) {
+					if (file_printf(ms, " CR") == -1)
+						goto done;
+					if (n_lf || n_nel)
+						if (file_printf(ms, ",") == -1)
+							goto done;
+				}
+				if (n_lf) {
+					if (file_printf(ms, " LF") == -1)
+						goto done;
+					if (n_nel)
+						if (file_printf(ms, ",") == -1)
+							goto done;
+				}
+				if (n_nel)
+					if (file_printf(ms, " NEL") == -1)
+						goto done;
+			}
+
+			if (file_printf(ms, " line terminators") == -1)
+				goto done;
+		}
+
+		if (has_escapes)
+			if (file_printf(ms, ", with escape sequences") == -1)
+				goto done;
+		if (has_backspace)
+			if (file_printf(ms, ", with overstriking") == -1)
+				goto done;
+	}
+	rv = 1;
+done:
+	if (utf8_buf)
+		free(utf8_buf);
+
+	return rv;
+}
+
+private int
+ascmatch(const unsigned char *s, const unichar *us, size_t ulen)
+{
+	size_t i;
+
+	for (i = 0; i < ulen; i++) {
+		if (s[i] != us[i])
+			return 0;
+	}
+
+	if (s[i])
+		return 0;
+	else
+		return 1;
+}
+
+/*
+ * Encode Unicode string as UTF-8, returning pointer to character
+ * after end of string, or NULL if an invalid character is found.
+ */
+private unsigned char *
+encode_utf8(unsigned char *buf, size_t len, unichar *ubuf, size_t ulen)
+{
+	size_t i;
+	unsigned char *end = buf + len;
+
+	for (i = 0; i < ulen; i++) {
+		if (ubuf[i] <= 0x7f) {
+			if (end - buf < 1)
+				return NULL;
+			*buf++ = (unsigned char)ubuf[i];
+		} else if (ubuf[i] <= 0x7ff) {
+			if (end - buf < 2)
+				return NULL;
+			*buf++ = (unsigned char)((ubuf[i] >> 6) + 0xc0);
+			*buf++ = (unsigned char)((ubuf[i] & 0x3f) + 0x80);
+		} else if (ubuf[i] <= 0xffff) {
+			if (end - buf < 3)
+				return NULL;
+			*buf++ = (unsigned char)((ubuf[i] >> 12) + 0xe0);
+			*buf++ = (unsigned char)(((ubuf[i] >> 6) & 0x3f) + 0x80);
+			*buf++ = (unsigned char)((ubuf[i] & 0x3f) + 0x80);
+		} else if (ubuf[i] <= 0x1fffff) {
+			if (end - buf < 4)
+				return NULL;
+			*buf++ = (unsigned char)((ubuf[i] >> 18) + 0xf0);
+			*buf++ = (unsigned char)(((ubuf[i] >> 12) & 0x3f) + 0x80);
+			*buf++ = (unsigned char)(((ubuf[i] >>  6) & 0x3f) + 0x80);
+			*buf++ = (unsigned char)((ubuf[i] & 0x3f) + 0x80);
+		} else if (ubuf[i] <= 0x3ffffff) {
+			if (end - buf < 5)
+				return NULL;
+			*buf++ = (unsigned char)((ubuf[i] >> 24) + 0xf8);
+			*buf++ = (unsigned char)(((ubuf[i] >> 18) & 0x3f) + 0x80);
+			*buf++ = (unsigned char)(((ubuf[i] >> 12) & 0x3f) + 0x80);
+			*buf++ = (unsigned char)(((ubuf[i] >>  6) & 0x3f) + 0x80);
+			*buf++ = (unsigned char)((ubuf[i] & 0x3f) + 0x80);
+		} else if (ubuf[i] <= 0x7fffffff) {
+			if (end - buf < 6)
+				return NULL;
+			*buf++ = (unsigned char)((ubuf[i] >> 30) + 0xfc);
+			*buf++ = (unsigned char)(((ubuf[i] >> 24) & 0x3f) + 0x80);
+			*buf++ = (unsigned char)(((ubuf[i] >> 18) & 0x3f) + 0x80);
+			*buf++ = (unsigned char)(((ubuf[i] >> 12) & 0x3f) + 0x80);
+			*buf++ = (unsigned char)(((ubuf[i] >>  6) & 0x3f) + 0x80);
+			*buf++ = (unsigned char)((ubuf[i] & 0x3f) + 0x80);
+		} else /* Invalid character */
+			return NULL;
+	}
+
+	return buf;
+}
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/asprintf.c b/framework/modules/c_FileTypeSigModule/file-5.08/src/asprintf.c
new file mode 100755
index 0000000000000000000000000000000000000000..30852d2b3b0071635fca43ebf0a2652a8741c089
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/asprintf.c
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) Ian F. Darwin 1986-1995.
+ * Software written by Ian F. Darwin and others;
+ * maintained 1995-present by Christos Zoulas and others.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice immediately at the beginning of the file, without modification,
+ *    this list of conditions, and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *  
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include "file.h"
+
+#ifndef lint
+FILE_RCSID("@(#)$File: asprintf.c,v 1.4 2010/07/21 16:47:17 christos Exp $")
+#endif
+
+int asprintf(char **ptr, const char *fmt, ...)
+{
+  va_list vargs;
+  int retval;
+
+  va_start(vargs, fmt);
+  retval = vasprintf(ptr, fmt, vargs);
+  va_end(vargs);
+
+  return retval;
+}
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/cdf.c b/framework/modules/c_FileTypeSigModule/file-5.08/src/cdf.c
new file mode 100755
index 0000000000000000000000000000000000000000..3d4d2b223e628052eaf589a1cf764d3fb060c873
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/cdf.c
@@ -0,0 +1,1288 @@
+/*-
+ * Copyright (c) 2008 Christos Zoulas
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
+ * Parse Composite Document Files, the format used in Microsoft Office
+ * document files before they switched to zipped XML.
+ * Info from: http://sc.openoffice.org/compdocfileformat.pdf
+ *
+ * N.B. This is the "Composite Document File" format, and not the
+ * "Compound Document Format", nor the "Channel Definition Format".
+ */
+
+#include "file.h"
+
+#ifndef lint
+FILE_RCSID("@(#)$File: cdf.c,v 1.43 2011/03/30 19:48:13 christos Exp $")
+#endif
+
+#include <assert.h>
+#ifdef CDF_DEBUG
+#include <err.h>
+#endif
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <time.h>
+#include <ctype.h>
+#ifdef HAVE_LIMITS_H
+#include <limits.h>
+#endif
+
+#ifndef EFTYPE
+#define EFTYPE EINVAL
+#endif
+
+#include "cdf.h"
+
+#ifndef __arraycount
+#define __arraycount(a) (sizeof(a) / sizeof(a[0]))
+#endif
+
+#ifdef CDF_DEBUG
+#define DPRINTF(a) printf a, fflush(stdout)
+#else
+#define DPRINTF(a)
+#endif
+
+static union {
+	char s[4];
+	uint32_t u;
+} cdf_bo;
+
+#define NEED_SWAP	(cdf_bo.u == (uint32_t)0x01020304)
+
+#define CDF_TOLE8(x)	((uint64_t)(NEED_SWAP ? cdf_tole8(x) : (uint64_t)(x)))
+#define CDF_TOLE4(x)	((uint32_t)(NEED_SWAP ? cdf_tole4(x) : (uint32_t)(x)))
+#define CDF_TOLE2(x)	((uint16_t)(NEED_SWAP ? cdf_tole2(x) : (uint16_t)(x)))
+#define CDF_GETUINT32(x, y)	cdf_getuint32(x, y)
+
+/*
+ * grab a uint32_t from a possibly unaligned address, and return it in
+ * the native host order.
+ */
+static uint32_t
+cdf_getuint32(const uint8_t *p, size_t offs)
+{
+	uint32_t rv;
+	(void)memcpy(&rv, p + offs * sizeof(uint32_t), sizeof(rv));
+	return CDF_TOLE4(rv);
+}
+
+/*
+ * swap a short
+ */
+uint16_t
+cdf_tole2(uint16_t sv)
+{
+	uint16_t rv;
+	uint8_t *s = (uint8_t *)(void *)&sv;
+	uint8_t *d = (uint8_t *)(void *)&rv;
+	d[0] = s[1];
+	d[1] = s[0];
+	return rv;
+}
+
+/*
+ * swap an int
+ */
+uint32_t
+cdf_tole4(uint32_t sv)
+{
+	uint32_t rv;
+	uint8_t *s = (uint8_t *)(void *)&sv;
+	uint8_t *d = (uint8_t *)(void *)&rv;
+	d[0] = s[3];
+	d[1] = s[2];
+	d[2] = s[1];
+	d[3] = s[0];
+	return rv;
+}
+
+/*
+ * swap a quad
+ */
+uint64_t
+cdf_tole8(uint64_t sv)
+{
+	uint64_t rv;
+	uint8_t *s = (uint8_t *)(void *)&sv;
+	uint8_t *d = (uint8_t *)(void *)&rv;
+	d[0] = s[7];
+	d[1] = s[6];
+	d[2] = s[5];
+	d[3] = s[4];
+	d[4] = s[3];
+	d[5] = s[2];
+	d[6] = s[1];
+	d[7] = s[0];
+	return rv;
+}
+
+#define CDF_UNPACK(a)	\
+    (void)memcpy(&(a), &buf[len], sizeof(a)), len += sizeof(a)
+#define CDF_UNPACKA(a)	\
+    (void)memcpy((a), &buf[len], sizeof(a)), len += sizeof(a)
+
+void
+cdf_swap_header(cdf_header_t *h)
+{
+	size_t i;
+
+	h->h_magic = CDF_TOLE8(h->h_magic);
+	h->h_uuid[0] = CDF_TOLE8(h->h_uuid[0]);
+	h->h_uuid[1] = CDF_TOLE8(h->h_uuid[1]);
+	h->h_revision = CDF_TOLE2(h->h_revision);
+	h->h_version = CDF_TOLE2(h->h_version);
+	h->h_byte_order = CDF_TOLE2(h->h_byte_order);
+	h->h_sec_size_p2 = CDF_TOLE2(h->h_sec_size_p2);
+	h->h_short_sec_size_p2 = CDF_TOLE2(h->h_short_sec_size_p2);
+	h->h_num_sectors_in_sat = CDF_TOLE4(h->h_num_sectors_in_sat);
+	h->h_secid_first_directory = CDF_TOLE4(h->h_secid_first_directory);
+	h->h_min_size_standard_stream =
+	    CDF_TOLE4(h->h_min_size_standard_stream);
+	h->h_secid_first_sector_in_short_sat =
+	    CDF_TOLE4((uint32_t)h->h_secid_first_sector_in_short_sat);
+	h->h_num_sectors_in_short_sat =
+	    CDF_TOLE4(h->h_num_sectors_in_short_sat);
+	h->h_secid_first_sector_in_master_sat =
+	    CDF_TOLE4((uint32_t)h->h_secid_first_sector_in_master_sat);
+	h->h_num_sectors_in_master_sat =
+	    CDF_TOLE4(h->h_num_sectors_in_master_sat);
+	for (i = 0; i < __arraycount(h->h_master_sat); i++)
+		h->h_master_sat[i] = CDF_TOLE4((uint32_t)h->h_master_sat[i]);
+}
+
+void
+cdf_unpack_header(cdf_header_t *h, char *buf)
+{
+	size_t i;
+	size_t len = 0;
+
+	CDF_UNPACK(h->h_magic);
+	CDF_UNPACKA(h->h_uuid);
+	CDF_UNPACK(h->h_revision);
+	CDF_UNPACK(h->h_version);
+	CDF_UNPACK(h->h_byte_order);
+	CDF_UNPACK(h->h_sec_size_p2);
+	CDF_UNPACK(h->h_short_sec_size_p2);
+	CDF_UNPACKA(h->h_unused0);
+	CDF_UNPACK(h->h_num_sectors_in_sat);
+	CDF_UNPACK(h->h_secid_first_directory);
+	CDF_UNPACKA(h->h_unused1);
+	CDF_UNPACK(h->h_min_size_standard_stream);
+	CDF_UNPACK(h->h_secid_first_sector_in_short_sat);
+	CDF_UNPACK(h->h_num_sectors_in_short_sat);
+	CDF_UNPACK(h->h_secid_first_sector_in_master_sat);
+	CDF_UNPACK(h->h_num_sectors_in_master_sat);
+	for (i = 0; i < __arraycount(h->h_master_sat); i++)
+		CDF_UNPACK(h->h_master_sat[i]);
+}
+
+void
+cdf_swap_dir(cdf_directory_t *d)
+{
+	d->d_namelen = CDF_TOLE2(d->d_namelen);
+	d->d_left_child = CDF_TOLE4((uint32_t)d->d_left_child);
+	d->d_right_child = CDF_TOLE4((uint32_t)d->d_right_child);
+	d->d_storage = CDF_TOLE4((uint32_t)d->d_storage);
+	d->d_storage_uuid[0] = CDF_TOLE8(d->d_storage_uuid[0]);
+	d->d_storage_uuid[1] = CDF_TOLE8(d->d_storage_uuid[1]);
+	d->d_flags = CDF_TOLE4(d->d_flags);
+	d->d_created = CDF_TOLE8((uint64_t)d->d_created);
+	d->d_modified = CDF_TOLE8((uint64_t)d->d_modified);
+	d->d_stream_first_sector = CDF_TOLE4((uint32_t)d->d_stream_first_sector);
+	d->d_size = CDF_TOLE4(d->d_size);
+}
+
+void
+cdf_swap_class(cdf_classid_t *d)
+{
+	d->cl_dword = CDF_TOLE4(d->cl_dword);
+	d->cl_word[0] = CDF_TOLE2(d->cl_word[0]);
+	d->cl_word[1] = CDF_TOLE2(d->cl_word[1]);
+}
+
+void
+cdf_unpack_dir(cdf_directory_t *d, char *buf)
+{
+	size_t len = 0;
+
+	CDF_UNPACKA(d->d_name);
+	CDF_UNPACK(d->d_namelen);
+	CDF_UNPACK(d->d_type);
+	CDF_UNPACK(d->d_color);
+	CDF_UNPACK(d->d_left_child);
+	CDF_UNPACK(d->d_right_child);
+	CDF_UNPACK(d->d_storage);
+	CDF_UNPACKA(d->d_storage_uuid);
+	CDF_UNPACK(d->d_flags);
+	CDF_UNPACK(d->d_created);
+	CDF_UNPACK(d->d_modified);
+	CDF_UNPACK(d->d_stream_first_sector);
+	CDF_UNPACK(d->d_size);
+	CDF_UNPACK(d->d_unused0);
+}
+
+static int
+cdf_check_stream_offset(const cdf_stream_t *sst, const cdf_header_t *h,
+    const void *p, size_t tail, int line)
+{
+	const char *b = (const char *)sst->sst_tab;
+	const char *e = ((const char *)p) + tail;
+	(void)&line;
+	if (e >= b && (size_t)(e - b) < CDF_SEC_SIZE(h) * sst->sst_len)
+		return 0;
+	DPRINTF(("%d: offset begin %p end %p %" SIZE_T_FORMAT "u"
+	    " >= %" SIZE_T_FORMAT "u [%" SIZE_T_FORMAT "u %"
+	    SIZE_T_FORMAT "u]\n", line, b, e, (size_t)(e - b),
+	    CDF_SEC_SIZE(h) * sst->sst_len, CDF_SEC_SIZE(h), sst->sst_len));
+	errno = EFTYPE;
+	return -1;
+}
+
+static ssize_t
+cdf_read(const cdf_info_t *info, off_t off, void *buf, size_t len)
+{
+	size_t siz = (size_t)off + len;
+
+	if ((off_t)(off + len) != (off_t)siz) {
+		errno = EINVAL;
+		return -1;
+	}
+
+	if (info->i_buf != NULL && info->i_len >= siz) {
+		(void)memcpy(buf, &info->i_buf[off], len);
+		return (ssize_t)len;
+	}
+
+	if (info->i_fd == -1)
+		return -1;
+
+	if (lseek(info->i_fd, off, SEEK_SET) == (off_t)-1)
+		return -1;
+
+	if (read(info->i_fd, buf, len) != (ssize_t)len)
+		return -1;
+
+	return (ssize_t)len;
+}
+
+int
+cdf_read_header(const cdf_info_t *info, cdf_header_t *h)
+{
+	char buf[512];
+
+	(void)memcpy(cdf_bo.s, "\01\02\03\04", 4);
+	if (cdf_read(info, (off_t)0, buf, sizeof(buf)) == -1)
+		return -1;
+	cdf_unpack_header(h, buf);
+	cdf_swap_header(h);
+	if (h->h_magic != CDF_MAGIC) {
+		DPRINTF(("Bad magic 0x%" INT64_T_FORMAT "x != 0x%"
+		    INT64_T_FORMAT "x\n",
+		    (unsigned long long)h->h_magic,
+		    (unsigned long long)CDF_MAGIC));
+		goto out;
+	}
+	if (h->h_sec_size_p2 > 20) {
+		DPRINTF(("Bad sector size 0x%u\n", h->h_sec_size_p2));
+		goto out;
+	}
+	if (h->h_short_sec_size_p2 > 20) {
+		DPRINTF(("Bad short sector size 0x%u\n",
+		    h->h_short_sec_size_p2));
+		goto out;
+	}
+	return 0;
+out:
+	errno = EFTYPE;
+	return -1;
+}
+
+
+ssize_t
+cdf_read_sector(const cdf_info_t *info, void *buf, size_t offs, size_t len,
+    const cdf_header_t *h, cdf_secid_t id)
+{
+	assert((size_t)CDF_SEC_SIZE(h) == len);
+	return cdf_read(info, (off_t)CDF_SEC_POS(h, id),
+	    ((char *)buf) + offs, len);
+}
+
+ssize_t
+cdf_read_short_sector(const cdf_stream_t *sst, void *buf, size_t offs,
+    size_t len, const cdf_header_t *h, cdf_secid_t id)
+{
+	assert((size_t)CDF_SHORT_SEC_SIZE(h) == len);
+	(void)memcpy(((char *)buf) + offs,
+	    ((const char *)sst->sst_tab) + CDF_SHORT_SEC_POS(h, id), len);
+	return len;
+}
+
+/*
+ * Read the sector allocation table.
+ */
+int
+cdf_read_sat(const cdf_info_t *info, cdf_header_t *h, cdf_sat_t *sat)
+{
+	size_t i, j, k;
+	size_t ss = CDF_SEC_SIZE(h);
+	cdf_secid_t *msa, mid, sec;
+	size_t nsatpersec = (ss / sizeof(mid)) - 1;
+
+	for (i = 0; i < __arraycount(h->h_master_sat); i++)
+		if (h->h_master_sat[i] == CDF_SECID_FREE)
+			break;
+
+#define CDF_SEC_LIMIT (UINT32_MAX / (4 * ss))
+	if (h->h_num_sectors_in_master_sat > CDF_SEC_LIMIT / nsatpersec ||
+	    i > CDF_SEC_LIMIT) {
+		DPRINTF(("Number of sectors in master SAT too big %u %"
+		    SIZE_T_FORMAT "u\n", h->h_num_sectors_in_master_sat, i));
+		errno = EFTYPE;
+		return -1;
+	}
+
+	sat->sat_len = h->h_num_sectors_in_master_sat * nsatpersec + i;
+	DPRINTF(("sat_len = %" SIZE_T_FORMAT "u ss = %" SIZE_T_FORMAT "u\n",
+	    sat->sat_len, ss));
+	if ((sat->sat_tab = CAST(cdf_secid_t *, calloc(sat->sat_len, ss)))
+	    == NULL)
+		return -1;
+
+	for (i = 0; i < __arraycount(h->h_master_sat); i++) {
+		if (h->h_master_sat[i] < 0)
+			break;
+		if (cdf_read_sector(info, sat->sat_tab, ss * i, ss, h,
+		    h->h_master_sat[i]) != (ssize_t)ss) {
+			DPRINTF(("Reading sector %d", h->h_master_sat[i]));
+			goto out1;
+		}
+	}
+
+	if ((msa = CAST(cdf_secid_t *, calloc(1, ss))) == NULL)
+		goto out1;
+
+	mid = h->h_secid_first_sector_in_master_sat;
+	for (j = 0; j < h->h_num_sectors_in_master_sat; j++) {
+		if (mid < 0)
+			goto out;
+		if (j >= CDF_LOOP_LIMIT) {
+			DPRINTF(("Reading master sector loop limit"));
+			errno = EFTYPE;
+			goto out2;
+		}
+		if (cdf_read_sector(info, msa, 0, ss, h, mid) != (ssize_t)ss) {
+			DPRINTF(("Reading master sector %d", mid));
+			goto out2;
+		}
+		for (k = 0; k < nsatpersec; k++, i++) {
+			sec = CDF_TOLE4((uint32_t)msa[k]);
+			if (sec < 0)
+				goto out;
+			if (i >= sat->sat_len) {
+			    DPRINTF(("Out of bounds reading MSA %u >= %u",
+				i, sat->sat_len));
+			    errno = EFTYPE;
+			    goto out2;
+			}
+			if (cdf_read_sector(info, sat->sat_tab, ss * i, ss, h,
+			    sec) != (ssize_t)ss) {
+				DPRINTF(("Reading sector %d",
+				    CDF_TOLE4(msa[k])));
+				goto out2;
+			}
+		}
+		mid = CDF_TOLE4((uint32_t)msa[nsatpersec]);
+	}
+out:
+	sat->sat_len = i;
+	free(msa);
+	return 0;
+out2:
+	free(msa);
+out1:
+	free(sat->sat_tab);
+	return -1;
+}
+
+size_t
+cdf_count_chain(const cdf_sat_t *sat, cdf_secid_t sid, size_t size)
+{
+	size_t i, j;
+	cdf_secid_t maxsector = (cdf_secid_t)(sat->sat_len * size);
+
+	DPRINTF(("Chain:"));
+	for (j = i = 0; sid >= 0; i++, j++) {
+		DPRINTF((" %d", sid));
+		if (j >= CDF_LOOP_LIMIT) {
+			DPRINTF(("Counting chain loop limit"));
+			errno = EFTYPE;
+			return (size_t)-1;
+		}
+		if (sid > maxsector) {
+			DPRINTF(("Sector %d > %d\n", sid, maxsector));
+			errno = EFTYPE;
+			return (size_t)-1;
+		}
+		sid = CDF_TOLE4((uint32_t)sat->sat_tab[sid]);
+	}
+	DPRINTF(("\n"));
+	return i;
+}
+
+int
+cdf_read_long_sector_chain(const cdf_info_t *info, const cdf_header_t *h,
+    const cdf_sat_t *sat, cdf_secid_t sid, size_t len, cdf_stream_t *scn)
+{
+	size_t ss = CDF_SEC_SIZE(h), i, j;
+	ssize_t nr;
+	scn->sst_len = cdf_count_chain(sat, sid, ss);
+	scn->sst_dirlen = len;
+
+	if (scn->sst_len == (size_t)-1)
+		return -1;
+
+	scn->sst_tab = calloc(scn->sst_len, ss);
+	if (scn->sst_tab == NULL)
+		return -1;
+
+	for (j = i = 0; sid >= 0; i++, j++) {
+		if (j >= CDF_LOOP_LIMIT) {
+			DPRINTF(("Read long sector chain loop limit"));
+			errno = EFTYPE;
+			goto out;
+		}
+		if (i >= scn->sst_len) {
+			DPRINTF(("Out of bounds reading long sector chain "
+			    "%u > %u\n", i, scn->sst_len));
+			errno = EFTYPE;
+			goto out;
+		}
+		if ((nr = cdf_read_sector(info, scn->sst_tab, i * ss, ss, h,
+		    sid)) != (ssize_t)ss) {
+			if (i == scn->sst_len - 1 && nr > 0) {
+				/* Last sector might be truncated */
+				return 0;
+			}
+			DPRINTF(("Reading long sector chain %d", sid));
+			goto out;
+		}
+		sid = CDF_TOLE4((uint32_t)sat->sat_tab[sid]);
+	}
+	return 0;
+out:
+	free(scn->sst_tab);
+	return -1;
+}
+
+int
+cdf_read_short_sector_chain(const cdf_header_t *h,
+    const cdf_sat_t *ssat, const cdf_stream_t *sst,
+    cdf_secid_t sid, size_t len, cdf_stream_t *scn)
+{
+	size_t ss = CDF_SHORT_SEC_SIZE(h), i, j;
+	scn->sst_len = cdf_count_chain(ssat, sid, CDF_SEC_SIZE(h));
+	scn->sst_dirlen = len;
+
+	if (sst->sst_tab == NULL || scn->sst_len == (size_t)-1)
+		return -1;
+
+	scn->sst_tab = calloc(scn->sst_len, ss);
+	if (scn->sst_tab == NULL)
+		return -1;
+
+	for (j = i = 0; sid >= 0; i++, j++) {
+		if (j >= CDF_LOOP_LIMIT) {
+			DPRINTF(("Read short sector chain loop limit"));
+			errno = EFTYPE;
+			goto out;
+		}
+		if (i >= scn->sst_len) {
+			DPRINTF(("Out of bounds reading short sector chain "
+			    "%u > %u\n", i, scn->sst_len));
+			errno = EFTYPE;
+			goto out;
+		}
+		if (cdf_read_short_sector(sst, scn->sst_tab, i * ss, ss, h,
+		    sid) != (ssize_t)ss) {
+			DPRINTF(("Reading short sector chain %d", sid));
+			goto out;
+		}
+		sid = CDF_TOLE4((uint32_t)ssat->sat_tab[sid]);
+	}
+	return 0;
+out:
+	free(scn->sst_tab);
+	return -1;
+}
+
+int
+cdf_read_sector_chain(const cdf_info_t *info, const cdf_header_t *h,
+    const cdf_sat_t *sat, const cdf_sat_t *ssat, const cdf_stream_t *sst,
+    cdf_secid_t sid, size_t len, cdf_stream_t *scn)
+{
+
+	if (len < h->h_min_size_standard_stream && sst->sst_tab != NULL)
+		return cdf_read_short_sector_chain(h, ssat, sst, sid, len,
+		    scn);
+	else
+		return cdf_read_long_sector_chain(info, h, sat, sid, len, scn);
+}
+
+int
+cdf_read_dir(const cdf_info_t *info, const cdf_header_t *h,
+    const cdf_sat_t *sat, cdf_dir_t *dir)
+{
+	size_t i, j;
+	size_t ss = CDF_SEC_SIZE(h), ns, nd;
+	char *buf;
+	cdf_secid_t sid = h->h_secid_first_directory;
+
+	ns = cdf_count_chain(sat, sid, ss);
+	if (ns == (size_t)-1)
+		return -1;
+
+	nd = ss / CDF_DIRECTORY_SIZE;
+
+	dir->dir_len = ns * nd;
+	dir->dir_tab = CAST(cdf_directory_t *,
+	    calloc(dir->dir_len, sizeof(dir->dir_tab[0])));
+	if (dir->dir_tab == NULL)
+		return -1;
+
+	if ((buf = CAST(char *, malloc(ss))) == NULL) {
+		free(dir->dir_tab);
+		return -1;
+	}
+
+	for (j = i = 0; i < ns; i++, j++) {
+		if (j >= CDF_LOOP_LIMIT) {
+			DPRINTF(("Read dir loop limit"));
+			errno = EFTYPE;
+			goto out;
+		}
+		if (cdf_read_sector(info, buf, 0, ss, h, sid) != (ssize_t)ss) {
+			DPRINTF(("Reading directory sector %d", sid));
+			goto out;
+		}
+		for (j = 0; j < nd; j++) {
+			cdf_unpack_dir(&dir->dir_tab[i * nd + j],
+			    &buf[j * CDF_DIRECTORY_SIZE]);
+		}
+		sid = CDF_TOLE4((uint32_t)sat->sat_tab[sid]);
+	}
+	if (NEED_SWAP)
+		for (i = 0; i < dir->dir_len; i++)
+			cdf_swap_dir(&dir->dir_tab[i]);
+	free(buf);
+	return 0;
+out:
+	free(dir->dir_tab);
+	free(buf);
+	return -1;
+}
+
+
+int
+cdf_read_ssat(const cdf_info_t *info, const cdf_header_t *h,
+    const cdf_sat_t *sat, cdf_sat_t *ssat)
+{
+	size_t i, j;
+	size_t ss = CDF_SEC_SIZE(h);
+	cdf_secid_t sid = h->h_secid_first_sector_in_short_sat;
+
+	ssat->sat_len = cdf_count_chain(sat, sid, CDF_SEC_SIZE(h));
+	if (ssat->sat_len == (size_t)-1)
+		return -1;
+
+	ssat->sat_tab = CAST(cdf_secid_t *, calloc(ssat->sat_len, ss));
+	if (ssat->sat_tab == NULL)
+		return -1;
+
+	for (j = i = 0; sid >= 0; i++, j++) {
+		if (j >= CDF_LOOP_LIMIT) {
+			DPRINTF(("Read short sat sector loop limit"));
+			errno = EFTYPE;
+			goto out;
+		}
+		if (i >= ssat->sat_len) {
+			DPRINTF(("Out of bounds reading short sector chain "
+			    "%u > %u\n", i, ssat->sat_len));
+			errno = EFTYPE;
+			goto out;
+		}
+		if (cdf_read_sector(info, ssat->sat_tab, i * ss, ss, h, sid) !=
+		    (ssize_t)ss) {
+			DPRINTF(("Reading short sat sector %d", sid));
+			goto out;
+		}
+		sid = CDF_TOLE4((uint32_t)sat->sat_tab[sid]);
+	}
+	return 0;
+out:
+	free(ssat->sat_tab);
+	return -1;
+}
+
+int
+cdf_read_short_stream(const cdf_info_t *info, const cdf_header_t *h,
+    const cdf_sat_t *sat, const cdf_dir_t *dir, cdf_stream_t *scn)
+{
+	size_t i;
+	const cdf_directory_t *d;
+
+	for (i = 0; i < dir->dir_len; i++)
+		if (dir->dir_tab[i].d_type == CDF_DIR_TYPE_ROOT_STORAGE)
+			break;
+
+	/* If the it is not there, just fake it; some docs don't have it */
+	if (i == dir->dir_len)
+		goto out;
+	d = &dir->dir_tab[i];
+
+	/* If the it is not there, just fake it; some docs don't have it */
+	if (d->d_stream_first_sector < 0)
+		goto out;
+
+	return	cdf_read_long_sector_chain(info, h, sat,
+	    d->d_stream_first_sector, d->d_size, scn);
+out:
+	scn->sst_tab = NULL;
+	scn->sst_len = 0;
+	scn->sst_dirlen = 0;
+	return 0;
+}
+
+static int
+cdf_namecmp(const char *d, const uint16_t *s, size_t l)
+{
+	for (; l--; d++, s++)
+		if (*d != CDF_TOLE2(*s))
+			return (unsigned char)*d - CDF_TOLE2(*s);
+	return 0;
+}
+
+int
+cdf_read_summary_info(const cdf_info_t *info, const cdf_header_t *h,
+    const cdf_sat_t *sat, const cdf_sat_t *ssat, const cdf_stream_t *sst,
+    const cdf_dir_t *dir, cdf_stream_t *scn)
+{
+	size_t i;
+	const cdf_directory_t *d;
+	static const char name[] = "\05SummaryInformation";
+
+	for (i = dir->dir_len; i > 0; i--)
+		if (dir->dir_tab[i - 1].d_type == CDF_DIR_TYPE_USER_STREAM &&
+		    cdf_namecmp(name, dir->dir_tab[i - 1].d_name, sizeof(name))
+		    == 0)
+			break;
+
+	if (i == 0) {
+		DPRINTF(("Cannot find summary information section\n"));
+		errno = ESRCH;
+		return -1;
+	}
+	d = &dir->dir_tab[i - 1];
+	return cdf_read_sector_chain(info, h, sat, ssat, sst,
+	    d->d_stream_first_sector, d->d_size, scn);
+}
+
+int
+cdf_read_property_info(const cdf_stream_t *sst, const cdf_header_t *h,
+    uint32_t offs, cdf_property_info_t **info, size_t *count, size_t *maxcount)
+{
+	const cdf_section_header_t *shp;
+	cdf_section_header_t sh;
+	const uint8_t *p, *q, *e;
+	int16_t s16;
+	int32_t s32;
+	uint32_t u32;
+	int64_t s64;
+	uint64_t u64;
+	cdf_timestamp_t tp;
+	size_t i, o, o4, nelements, j;
+	cdf_property_info_t *inp;
+
+	if (offs > UINT32_MAX / 4) {
+		errno = EFTYPE;
+		goto out;
+	}
+	shp = CAST(const cdf_section_header_t *, (const void *)
+	    ((const char *)sst->sst_tab + offs));
+	if (cdf_check_stream_offset(sst, h, shp, sizeof(*shp), __LINE__) == -1)
+		goto out;
+	sh.sh_len = CDF_TOLE4(shp->sh_len);
+#define CDF_SHLEN_LIMIT (UINT32_MAX / 8)
+	if (sh.sh_len > CDF_SHLEN_LIMIT) {
+		errno = EFTYPE;
+		goto out;
+	}
+	sh.sh_properties = CDF_TOLE4(shp->sh_properties);
+#define CDF_PROP_LIMIT (UINT32_MAX / (4 * sizeof(*inp)))
+	if (sh.sh_properties > CDF_PROP_LIMIT)
+		goto out;
+	DPRINTF(("section len: %u properties %u\n", sh.sh_len,
+	    sh.sh_properties));
+	if (*maxcount) {
+		if (*maxcount > CDF_PROP_LIMIT)
+			goto out;
+		*maxcount += sh.sh_properties;
+		inp = CAST(cdf_property_info_t *,
+		    realloc(*info, *maxcount * sizeof(*inp)));
+	} else {
+		*maxcount = sh.sh_properties;
+		inp = CAST(cdf_property_info_t *,
+		    malloc(*maxcount * sizeof(*inp)));
+	}
+	if (inp == NULL)
+		goto out;
+	*info = inp;
+	inp += *count;
+	*count += sh.sh_properties;
+	p = CAST(const uint8_t *, (const void *)
+	    ((const char *)(const void *)sst->sst_tab +
+	    offs + sizeof(sh)));
+	e = CAST(const uint8_t *, (const void *)
+	    (((const char *)(const void *)shp) + sh.sh_len));
+	if (cdf_check_stream_offset(sst, h, e, 0, __LINE__) == -1)
+		goto out;
+	for (i = 0; i < sh.sh_properties; i++) {
+		q = (const uint8_t *)(const void *)
+		    ((const char *)(const void *)p +
+		    CDF_GETUINT32(p, (i << 1) + 1)) - 2 * sizeof(uint32_t);
+		if (q > e) {
+			DPRINTF(("Ran of the end %p > %p\n", q, e));
+			goto out;
+		}
+		inp[i].pi_id = CDF_GETUINT32(p, i << 1);
+		inp[i].pi_type = CDF_GETUINT32(q, 0);
+		DPRINTF(("%d) id=%x type=%x offs=%x,%d\n", i, inp[i].pi_id,
+		    inp[i].pi_type, q - p, CDF_GETUINT32(p, (i << 1) + 1)));
+		if (inp[i].pi_type & CDF_VECTOR) {
+			nelements = CDF_GETUINT32(q, 1);
+			o = 2;
+		} else {
+			nelements = 1;
+			o = 1;
+		}
+		o4 = o * sizeof(uint32_t);
+		if (inp[i].pi_type & (CDF_ARRAY|CDF_BYREF|CDF_RESERVED))
+			goto unknown;
+		switch (inp[i].pi_type & CDF_TYPEMASK) {
+		case CDF_NULL:
+		case CDF_EMPTY:
+			break;
+		case CDF_SIGNED16:
+			if (inp[i].pi_type & CDF_VECTOR)
+				goto unknown;
+			(void)memcpy(&s16, &q[o4], sizeof(s16));
+			inp[i].pi_s16 = CDF_TOLE2(s16);
+			break;
+		case CDF_SIGNED32:
+			if (inp[i].pi_type & CDF_VECTOR)
+				goto unknown;
+			(void)memcpy(&s32, &q[o4], sizeof(s32));
+			inp[i].pi_s32 = CDF_TOLE4((uint32_t)s32);
+			break;
+		case CDF_BOOL:
+		case CDF_UNSIGNED32:
+			if (inp[i].pi_type & CDF_VECTOR)
+				goto unknown;
+			(void)memcpy(&u32, &q[o4], sizeof(u32));
+			inp[i].pi_u32 = CDF_TOLE4(u32);
+			break;
+		case CDF_SIGNED64:
+			if (inp[i].pi_type & CDF_VECTOR)
+				goto unknown;
+			(void)memcpy(&s64, &q[o4], sizeof(s64));
+			inp[i].pi_s64 = CDF_TOLE8((uint64_t)s64);
+			break;
+		case CDF_UNSIGNED64:
+			if (inp[i].pi_type & CDF_VECTOR)
+				goto unknown;
+			(void)memcpy(&u64, &q[o4], sizeof(u64));
+			inp[i].pi_u64 = CDF_TOLE8((uint64_t)u64);
+			break;
+		case CDF_LENGTH32_STRING:
+		case CDF_LENGTH32_WSTRING:
+			if (nelements > 1) {
+				size_t nelem = inp - *info;
+				if (*maxcount > CDF_PROP_LIMIT
+				    || nelements > CDF_PROP_LIMIT)
+					goto out;
+				*maxcount += nelements;
+				inp = CAST(cdf_property_info_t *,
+				    realloc(*info, *maxcount * sizeof(*inp)));
+				if (inp == NULL)
+					goto out;
+				*info = inp;
+				inp = *info + nelem;
+			}
+			DPRINTF(("nelements = %d\n", nelements));
+			for (j = 0; j < nelements; j++, i++) {
+				uint32_t l = CDF_GETUINT32(q, o);
+				inp[i].pi_str.s_len = l;
+				inp[i].pi_str.s_buf = (const char *)
+				    (const void *)(&q[o4 + sizeof(l)]);
+				DPRINTF(("l = %d, r = %d, s = %s\n", l,
+				    CDF_ROUND(l, sizeof(l)),
+				    inp[i].pi_str.s_buf));
+				l = 4 + (uint32_t)CDF_ROUND(l, sizeof(l));
+				o += l >> 2;
+				o4 = o * sizeof(uint32_t);
+			}
+			i--;
+			break;
+		case CDF_FILETIME:
+			if (inp[i].pi_type & CDF_VECTOR)
+				goto unknown;
+			(void)memcpy(&tp, &q[o4], sizeof(tp));
+			inp[i].pi_tp = CDF_TOLE8((uint64_t)tp);
+			break;
+		case CDF_CLIPBOARD:
+			if (inp[i].pi_type & CDF_VECTOR)
+				goto unknown;
+			break;
+		default:
+		unknown:
+			DPRINTF(("Don't know how to deal with %x\n",
+			    inp[i].pi_type));
+			goto out;
+		}
+	}
+	return 0;
+out:
+	free(*info);
+	return -1;
+}
+
+int
+cdf_unpack_summary_info(const cdf_stream_t *sst, const cdf_header_t *h,
+    cdf_summary_info_header_t *ssi, cdf_property_info_t **info, size_t *count)
+{
+	size_t i, maxcount;
+	const cdf_summary_info_header_t *si =
+	    CAST(const cdf_summary_info_header_t *, sst->sst_tab);
+	const cdf_section_declaration_t *sd =
+	    CAST(const cdf_section_declaration_t *, (const void *)
+	    ((const char *)sst->sst_tab + CDF_SECTION_DECLARATION_OFFSET));
+
+	if (cdf_check_stream_offset(sst, h, si, sizeof(*si), __LINE__) == -1 ||
+	    cdf_check_stream_offset(sst, h, sd, sizeof(*sd), __LINE__) == -1)
+		return -1;
+	ssi->si_byte_order = CDF_TOLE2(si->si_byte_order);
+	ssi->si_os_version = CDF_TOLE2(si->si_os_version);
+	ssi->si_os = CDF_TOLE2(si->si_os);
+	ssi->si_class = si->si_class;
+	cdf_swap_class(&ssi->si_class);
+	ssi->si_count = CDF_TOLE2(si->si_count);
+	*count = 0;
+	maxcount = 0;
+	*info = NULL;
+	for (i = 0; i < CDF_TOLE4(si->si_count); i++) {
+		if (i >= CDF_LOOP_LIMIT) {
+			DPRINTF(("Unpack summary info loop limit"));
+			errno = EFTYPE;
+			return -1;
+		}
+		if (cdf_read_property_info(sst, h, CDF_TOLE4(sd->sd_offset),
+		    info, count, &maxcount) == -1)
+			return -1;
+	}
+	return 0;
+}
+
+
+
+int
+cdf_print_classid(char *buf, size_t buflen, const cdf_classid_t *id)
+{
+	return snprintf(buf, buflen, "%.8x-%.4x-%.4x-%.2x%.2x-"
+	    "%.2x%.2x%.2x%.2x%.2x%.2x", id->cl_dword, id->cl_word[0],
+	    id->cl_word[1], id->cl_two[0], id->cl_two[1], id->cl_six[0],
+	    id->cl_six[1], id->cl_six[2], id->cl_six[3], id->cl_six[4],
+	    id->cl_six[5]);
+}
+
+static const struct {
+	uint32_t v;
+	const char *n;
+} vn[] = {
+	{ CDF_PROPERTY_CODE_PAGE, "Code page" },
+	{ CDF_PROPERTY_TITLE, "Title" },
+	{ CDF_PROPERTY_SUBJECT, "Subject" },
+	{ CDF_PROPERTY_AUTHOR, "Author" },
+	{ CDF_PROPERTY_KEYWORDS, "Keywords" },
+	{ CDF_PROPERTY_COMMENTS, "Comments" },
+	{ CDF_PROPERTY_TEMPLATE, "Template" },
+	{ CDF_PROPERTY_LAST_SAVED_BY, "Last Saved By" },
+	{ CDF_PROPERTY_REVISION_NUMBER, "Revision Number" },
+	{ CDF_PROPERTY_TOTAL_EDITING_TIME, "Total Editing Time" },
+	{ CDF_PROPERTY_LAST_PRINTED, "Last Printed" },
+	{ CDF_PROPERTY_CREATE_TIME, "Create Time/Date" },
+	{ CDF_PROPERTY_LAST_SAVED_TIME, "Last Saved Time/Date" },
+	{ CDF_PROPERTY_NUMBER_OF_PAGES, "Number of Pages" },
+	{ CDF_PROPERTY_NUMBER_OF_WORDS, "Number of Words" },
+	{ CDF_PROPERTY_NUMBER_OF_CHARACTERS, "Number of Characters" },
+	{ CDF_PROPERTY_THUMBNAIL, "Thumbnail" },
+	{ CDF_PROPERTY_NAME_OF_APPLICATION, "Name of Creating Application" },
+	{ CDF_PROPERTY_SECURITY, "Security" },
+	{ CDF_PROPERTY_LOCALE_ID, "Locale ID" },
+};
+
+int
+cdf_print_property_name(char *buf, size_t bufsiz, uint32_t p)
+{
+	size_t i;
+
+	for (i = 0; i < __arraycount(vn); i++)
+		if (vn[i].v == p)
+			return snprintf(buf, bufsiz, "%s", vn[i].n);
+	return snprintf(buf, bufsiz, "0x%x", p);
+}
+
+int
+cdf_print_elapsed_time(char *buf, size_t bufsiz, cdf_timestamp_t ts)
+{
+	int len = 0;
+	int days, hours, mins, secs;
+
+	ts /= CDF_TIME_PREC;
+	secs = (int)(ts % 60);
+	ts /= 60;
+	mins = (int)(ts % 60);
+	ts /= 60;
+	hours = (int)(ts % 24);
+	ts /= 24;
+	days = (int)ts;
+
+	if (days) {
+		len += snprintf(buf + len, bufsiz - len, "%dd+", days);
+		if ((size_t)len >= bufsiz)
+			return len;
+	}
+
+	if (days || hours) {
+		len += snprintf(buf + len, bufsiz - len, "%.2d:", hours);
+		if ((size_t)len >= bufsiz)
+			return len;
+	}
+
+	len += snprintf(buf + len, bufsiz - len, "%.2d:", mins);
+	if ((size_t)len >= bufsiz)
+		return len;
+
+	len += snprintf(buf + len, bufsiz - len, "%.2d", secs);
+	return len;
+}
+
+
+#ifdef CDF_DEBUG
+void
+cdf_dump_header(const cdf_header_t *h)
+{
+	size_t i;
+
+#define DUMP(a, b) (void)fprintf(stderr, "%40.40s = " a "\n", # b, h->h_ ## b)
+#define DUMP2(a, b) (void)fprintf(stderr, "%40.40s = " a " (" a ")\n", # b, \
+    h->h_ ## b, 1 << h->h_ ## b)
+	DUMP("%d", revision);
+	DUMP("%d", version);
+	DUMP("0x%x", byte_order);
+	DUMP2("%d", sec_size_p2);
+	DUMP2("%d", short_sec_size_p2);
+	DUMP("%d", num_sectors_in_sat);
+	DUMP("%d", secid_first_directory);
+	DUMP("%d", min_size_standard_stream);
+	DUMP("%d", secid_first_sector_in_short_sat);
+	DUMP("%d", num_sectors_in_short_sat);
+	DUMP("%d", secid_first_sector_in_master_sat);
+	DUMP("%d", num_sectors_in_master_sat);
+	for (i = 0; i < __arraycount(h->h_master_sat); i++) {
+		if (h->h_master_sat[i] == CDF_SECID_FREE)
+			break;
+		(void)fprintf(stderr, "%35.35s[%.3zu] = %d\n",
+		    "master_sat", i, h->h_master_sat[i]);
+	}
+}
+
+void
+cdf_dump_sat(const char *prefix, const cdf_sat_t *sat, size_t size)
+{
+	size_t i, j, s = size / sizeof(cdf_secid_t);
+
+	for (i = 0; i < sat->sat_len; i++) {
+		(void)fprintf(stderr, "%s[%" SIZE_T_FORMAT "u]:\n%.6d: ",
+		    prefix, i, i * s);
+		for (j = 0; j < s; j++) {
+			(void)fprintf(stderr, "%5d, ",
+			    CDF_TOLE4(sat->sat_tab[s * i + j]));
+			if ((j + 1) % 10 == 0)
+				(void)fprintf(stderr, "\n%.6d: ",
+				    i * s + j + 1);
+		}
+		(void)fprintf(stderr, "\n");
+	}
+}
+
+void
+cdf_dump(void *v, size_t len)
+{
+	size_t i, j;
+	unsigned char *p = v;
+	char abuf[16];
+	(void)fprintf(stderr, "%.4x: ", 0);
+	for (i = 0, j = 0; i < len; i++, p++) {
+		(void)fprintf(stderr, "%.2x ", *p);
+		abuf[j++] = isprint(*p) ? *p : '.';
+		if (j == 16) {
+			j = 0;
+			abuf[15] = '\0';
+			(void)fprintf(stderr, "%s\n%.4x: ", abuf, i + 1);
+		}
+	}
+	(void)fprintf(stderr, "\n");
+}
+
+void
+cdf_dump_stream(const cdf_header_t *h, const cdf_stream_t *sst)
+{
+	size_t ss = sst->sst_dirlen < h->h_min_size_standard_stream ?
+	    CDF_SHORT_SEC_SIZE(h) : CDF_SEC_SIZE(h);
+	cdf_dump(sst->sst_tab, ss * sst->sst_len);
+}
+
+void
+cdf_dump_dir(const cdf_info_t *info, const cdf_header_t *h,
+    const cdf_sat_t *sat, const cdf_sat_t *ssat, const cdf_stream_t *sst,
+    const cdf_dir_t *dir)
+{
+	size_t i, j;
+	cdf_directory_t *d;
+	char name[__arraycount(d->d_name)];
+	cdf_stream_t scn;
+	struct timespec ts;
+
+	static const char *types[] = { "empty", "user storage",
+	    "user stream", "lockbytes", "property", "root storage" };
+
+	for (i = 0; i < dir->dir_len; i++) {
+		d = &dir->dir_tab[i];
+		for (j = 0; j < sizeof(name); j++)
+			name[j] = (char)CDF_TOLE2(d->d_name[j]);
+		(void)fprintf(stderr, "Directory %" SIZE_T_FORMAT "u: %s\n",
+		    i, name);
+		if (d->d_type < __arraycount(types))
+			(void)fprintf(stderr, "Type: %s\n", types[d->d_type]);
+		else
+			(void)fprintf(stderr, "Type: %d\n", d->d_type);
+		(void)fprintf(stderr, "Color: %s\n",
+		    d->d_color ? "black" : "red");
+		(void)fprintf(stderr, "Left child: %d\n", d->d_left_child);
+		(void)fprintf(stderr, "Right child: %d\n", d->d_right_child);
+		(void)fprintf(stderr, "Flags: 0x%x\n", d->d_flags);
+		cdf_timestamp_to_timespec(&ts, d->d_created);
+		(void)fprintf(stderr, "Created %s", cdf_ctime(&ts.tv_sec));
+		cdf_timestamp_to_timespec(&ts, d->d_modified);
+		(void)fprintf(stderr, "Modified %s", cdf_ctime(&ts.tv_sec));
+		(void)fprintf(stderr, "Stream %d\n", d->d_stream_first_sector);
+		(void)fprintf(stderr, "Size %d\n", d->d_size);
+		switch (d->d_type) {
+		case CDF_DIR_TYPE_USER_STORAGE:
+			(void)fprintf(stderr, "Storage: %d\n", d->d_storage);
+			break;
+		case CDF_DIR_TYPE_USER_STREAM:
+			if (sst == NULL)
+				break;
+			if (cdf_read_sector_chain(info, h, sat, ssat, sst,
+			    d->d_stream_first_sector, d->d_size, &scn) == -1) {
+				warn("Can't read stream for %s at %d len %d",
+				    name, d->d_stream_first_sector, d->d_size);
+				break;
+			}
+			cdf_dump_stream(h, &scn);
+			free(scn.sst_tab);
+			break;
+		default:
+			break;
+		}
+
+	}
+}
+
+void
+cdf_dump_property_info(const cdf_property_info_t *info, size_t count)
+{
+	cdf_timestamp_t tp;
+	struct timespec ts;
+	char buf[64];
+	size_t i, j;
+
+	for (i = 0; i < count; i++) {
+		cdf_print_property_name(buf, sizeof(buf), info[i].pi_id);
+		(void)fprintf(stderr, "%" SIZE_T_FORMAT "u) %s: ", i, buf);
+		switch (info[i].pi_type) {
+		case CDF_NULL:
+			break;
+		case CDF_SIGNED16:
+			(void)fprintf(stderr, "signed 16 [%hd]\n",
+			    info[i].pi_s16);
+			break;
+		case CDF_SIGNED32:
+			(void)fprintf(stderr, "signed 32 [%d]\n",
+			    info[i].pi_s32);
+			break;
+		case CDF_UNSIGNED32:
+			(void)fprintf(stderr, "unsigned 32 [%u]\n",
+			    info[i].pi_u32);
+			break;
+		case CDF_LENGTH32_STRING:
+			(void)fprintf(stderr, "string %u [%.*s]\n",
+			    info[i].pi_str.s_len,
+			    info[i].pi_str.s_len, info[i].pi_str.s_buf);
+			break;
+		case CDF_LENGTH32_WSTRING:
+			(void)fprintf(stderr, "string %u [",
+			    info[i].pi_str.s_len);
+			for (j = 0; j < info[i].pi_str.s_len - 1; j++)
+			    (void)fputc(info[i].pi_str.s_buf[j << 1], stderr);
+			(void)fprintf(stderr, "]\n");
+			break;
+		case CDF_FILETIME:
+			tp = info[i].pi_tp;
+			if (tp < 1000000000000000LL) {
+				cdf_print_elapsed_time(buf, sizeof(buf), tp);
+				(void)fprintf(stderr, "timestamp %s\n", buf);
+			} else {
+				cdf_timestamp_to_timespec(&ts, tp);
+				(void)fprintf(stderr, "timestamp %s",
+				    cdf_ctime(&ts.tv_sec));
+			}
+			break;
+		case CDF_CLIPBOARD:
+			(void)fprintf(stderr, "CLIPBOARD %u\n", info[i].pi_u32);
+			break;
+		default:
+			DPRINTF(("Don't know how to deal with %x\n",
+			    info[i].pi_type));
+			break;
+		}
+	}
+}
+
+
+void
+cdf_dump_summary_info(const cdf_header_t *h, const cdf_stream_t *sst)
+{
+	char buf[128];
+	cdf_summary_info_header_t ssi;
+	cdf_property_info_t *info;
+	size_t count;
+
+	(void)&h;
+	if (cdf_unpack_summary_info(sst, &ssi, &info, &count) == -1)
+		return;
+	(void)fprintf(stderr, "Endian: %x\n", ssi.si_byte_order);
+	(void)fprintf(stderr, "Os Version %d.%d\n", ssi.si_os_version & 0xff,
+		ssi.si_os_version >> 8);
+	(void)fprintf(stderr, "Os %d\n", ssi.si_os);
+	cdf_print_classid(buf, sizeof(buf), &ssi.si_class);
+	(void)fprintf(stderr, "Class %s\n", buf);
+	(void)fprintf(stderr, "Count %d\n", ssi.si_count);
+	cdf_dump_property_info(info, count);
+	free(info);
+}
+
+#endif
+
+#ifdef TEST
+int
+main(int argc, char *argv[])
+{
+	int i;
+	cdf_header_t h;
+	cdf_sat_t sat, ssat;
+	cdf_stream_t sst, scn;
+	cdf_dir_t dir;
+	cdf_info_t info;
+
+	if (argc < 2) {
+		(void)fprintf(stderr, "Usage: %s <filename>\n", getprogname());
+		return -1;
+	}
+
+	info.i_buf = NULL;
+	info.i_len = 0;
+	for (i = 1; i < argc; i++) {
+		if ((info.i_fd = open(argv[1], O_RDONLY)) == -1)
+			err(1, "Cannot open `%s'", argv[1]);
+
+		if (cdf_read_header(&info, &h) == -1)
+			err(1, "Cannot read header");
+#ifdef CDF_DEBUG
+		cdf_dump_header(&h);
+#endif
+
+		if (cdf_read_sat(&info, &h, &sat) == -1)
+			err(1, "Cannot read sat");
+#ifdef CDF_DEBUG
+		cdf_dump_sat("SAT", &sat, CDF_SEC_SIZE(&h));
+#endif
+
+		if (cdf_read_ssat(&info, &h, &sat, &ssat) == -1)
+			err(1, "Cannot read ssat");
+#ifdef CDF_DEBUG
+		cdf_dump_sat("SSAT", &ssat, CDF_SHORT_SEC_SIZE(&h));
+#endif
+
+		if (cdf_read_dir(&info, &h, &sat, &dir) == -1)
+			err(1, "Cannot read dir");
+
+		if (cdf_read_short_stream(&info, &h, &sat, &dir, &sst) == -1)
+			err(1, "Cannot read short stream");
+#ifdef CDF_DEBUG
+		cdf_dump_stream(&h, &sst);
+#endif
+
+#ifdef CDF_DEBUG
+		cdf_dump_dir(&info, &h, &sat, &ssat, &sst, &dir);
+#endif
+
+
+		if (cdf_read_summary_info(&info, &h, &sat, &ssat, &sst, &dir,
+		    &scn) == -1)
+			err(1, "Cannot read summary info");
+#ifdef CDF_DEBUG
+		cdf_dump_summary_info(&h, &scn);
+#endif
+
+		(void)close(info.i_fd);
+	}
+
+	return 0;
+}
+#endif
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/cdf.h b/framework/modules/c_FileTypeSigModule/file-5.08/src/cdf.h
new file mode 100755
index 0000000000000000000000000000000000000000..7f3126b83d4216fb2594dd9266de0a618c8a6643
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/cdf.h
@@ -0,0 +1,321 @@
+/*-
+ * Copyright (c) 2008 Christos Zoulas
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
+ * Parse Composite Document Files, the format used in Microsoft Office
+ * document files before they switched to zipped XML.
+ * Info from: http://sc.openoffice.org/compdocfileformat.pdf
+ *
+ * N.B. This is the "Composite Document File" format, and not the
+ * "Compound Document Format", nor the "Channel Definition Format".
+ */
+
+#ifndef _H_CDF_
+#define _H_CDF_
+
+#ifdef WIN32
+#include <winsock2.h>
+#define timespec timeval
+#define tv_nsec tv_usec
+#endif
+#ifdef __DJGPP__
+#define timespec timeval
+#define tv_nsec tv_usec
+#endif
+
+typedef int32_t cdf_secid_t;
+
+#define CDF_LOOP_LIMIT					10000
+
+#define CDF_SECID_NULL					0
+#define CDF_SECID_FREE					-1
+#define	CDF_SECID_END_OF_CHAIN				-2
+#define	CDF_SECID_SECTOR_ALLOCATION_TABLE		-3
+#define CDF_SECID_MASTER_SECTOR_ALLOCATION_TABLE	-4
+
+typedef struct {
+        uint64_t	h_magic;
+#define CDF_MAGIC	0xE11AB1A1E011CFD0LL
+        uint64_t	h_uuid[2];
+        uint16_t	h_revision;
+        uint16_t	h_version;
+        uint16_t	h_byte_order;
+        uint16_t	h_sec_size_p2;
+        uint16_t	h_short_sec_size_p2;
+        uint8_t		h_unused0[10];
+        uint32_t	h_num_sectors_in_sat;
+        uint32_t	h_secid_first_directory;
+        uint8_t		h_unused1[4];
+        uint32_t	h_min_size_standard_stream;
+        cdf_secid_t	h_secid_first_sector_in_short_sat;
+        uint32_t	h_num_sectors_in_short_sat;
+        cdf_secid_t	h_secid_first_sector_in_master_sat;
+        uint32_t	h_num_sectors_in_master_sat;
+        cdf_secid_t	h_master_sat[436/4];
+} cdf_header_t;
+
+#define CDF_SEC_SIZE(h)	(1 << (h)->h_sec_size_p2)
+#define CDF_SEC_POS(h, secid) (CDF_SEC_SIZE(h) + (secid) * CDF_SEC_SIZE(h))
+#define CDF_SHORT_SEC_SIZE(h)	(1 << (h)->h_short_sec_size_p2)
+#define CDF_SHORT_SEC_POS(h, secid) ((secid) * CDF_SHORT_SEC_SIZE(h))
+
+typedef int32_t	cdf_dirid_t;
+#define CDF_DIRID_NULL	-1
+
+typedef int64_t	cdf_timestamp_t;
+#define CDF_BASE_YEAR	1601
+#define CDF_TIME_PREC	10000000
+
+typedef struct {
+        uint16_t	d_name[32];
+        uint16_t	d_namelen;
+        uint8_t		d_type;
+#define CDF_DIR_TYPE_EMPTY		0
+#define	CDF_DIR_TYPE_USER_STORAGE	1
+#define	CDF_DIR_TYPE_USER_STREAM	2
+#define	CDF_DIR_TYPE_LOCKBYTES		3
+#define	CDF_DIR_TYPE_PROPERTY		4
+#define	CDF_DIR_TYPE_ROOT_STORAGE	5
+        uint8_t		d_color;
+#define CDF_DIR_COLOR_READ	0
+#define CDF_DIR_COLOR_BLACK	1
+        cdf_dirid_t	d_left_child;
+        cdf_dirid_t	d_right_child;
+        cdf_dirid_t	d_storage;
+        uint64_t	d_storage_uuid[2];
+        uint32_t	d_flags;
+        cdf_timestamp_t	d_created;
+        cdf_timestamp_t	d_modified;
+        cdf_secid_t	d_stream_first_sector;
+        uint32_t	d_size;
+        uint32_t	d_unused0;
+} cdf_directory_t;
+
+#define CDF_DIRECTORY_SIZE	128
+
+typedef struct {
+        cdf_secid_t *sat_tab;
+        size_t sat_len;
+} cdf_sat_t;
+
+typedef struct {
+        cdf_directory_t *dir_tab;
+        size_t dir_len;
+} cdf_dir_t;
+
+typedef struct {
+        void *sst_tab;
+        size_t sst_len;
+        size_t sst_dirlen;
+} cdf_stream_t;
+
+typedef struct {
+        uint32_t	cl_dword;
+        uint16_t	cl_word[2];
+        uint8_t		cl_two[2];
+        uint8_t		cl_six[6];
+} cdf_classid_t;
+
+typedef struct {
+        uint16_t	si_byte_order;
+        uint16_t	si_zero;
+        uint16_t	si_os_version;
+        uint16_t	si_os;
+        cdf_classid_t	si_class;
+        uint32_t	si_count;
+} cdf_summary_info_header_t;
+
+#define CDF_SECTION_DECLARATION_OFFSET 0x1c
+
+typedef struct {
+        cdf_classid_t	sd_class;
+        uint32_t	sd_offset;
+} cdf_section_declaration_t;
+
+typedef struct {
+        uint32_t	sh_len;
+        uint32_t	sh_properties;
+} cdf_section_header_t;
+
+typedef struct {
+        uint32_t	pi_id;
+        uint32_t	pi_type;
+        union {
+                uint16_t	_pi_u16;
+                int16_t		_pi_s16;
+                uint32_t	_pi_u32;
+                int32_t		_pi_s32;
+                uint64_t	_pi_u64;
+                int64_t		_pi_s64;
+                cdf_timestamp_t	_pi_tp;
+                struct {
+                        uint32_t s_len;
+                        const char *s_buf;
+                } _pi_str;
+        } pi_val;
+#define pi_u64	pi_val._pi_u64
+#define pi_s64	pi_val._pi_s64
+#define pi_u32	pi_val._pi_u32
+#define pi_s32	pi_val._pi_s32
+#define pi_u16	pi_val._pi_u16
+#define pi_s16	pi_val._pi_s16
+#define pi_tp	pi_val._pi_tp
+#define pi_str	pi_val._pi_str
+} cdf_property_info_t;
+
+#define CDF_ROUND(val, by)     (((val) + (by) - 1) & ~((by) - 1))
+
+/* Variant type definitions */
+#define CDF_EMPTY		0x00000000
+#define	CDF_NULL		0x00000001
+#define CDF_SIGNED16		0x00000002
+#define CDF_SIGNED32		0x00000003
+#define CDF_FLOAT		0x00000004
+#define CDF_DOUBLE		0x00000005
+#define CDF_CY			0x00000006
+#define	CDF_DATE		0x00000007
+#define CDF_BSTR		0x00000008
+#define CDF_DISPATCH		0x00000009
+#define CDF_ERROR		0x0000000a
+#define CDF_BOOL		0x0000000b
+#define CDF_VARIANT		0x0000000c
+#define CDF_UNKNOWN		0x0000000d
+#define CDF_DECIMAL		0x0000000e
+#define CDF_SIGNED8		0x00000010
+#define CDF_UNSIGNED8		0x00000011
+#define CDF_UNSIGNED16		0x00000012
+#define	CDF_UNSIGNED32		0x00000013
+#define CDF_SIGNED64		0x00000014
+#define CDF_UNSIGNED64		0x00000015
+#define CDF_INT			0x00000016
+#define CDF_UINT		0x00000017
+#define CDF_VOID		0x00000018
+#define CDF_HRESULT		0x00000019
+#define CDF_PTR			0x0000001a
+#define CDF_SAFEARRAY		0x0000001b
+#define CDF_CARRAY		0x0000001c
+#define CDF_USERDEFINED		0x0000001d
+#define CDF_LENGTH32_STRING	0x0000001e
+#define CDF_LENGTH32_WSTRING	0x0000001f
+#define CDF_FILETIME		0x00000040
+#define CDF_BLOB		0x00000041
+#define CDF_STREAM		0x00000042
+#define CDF_STORAGE		0x00000043
+#define CDF_STREAMED_OBJECT	0x00000044
+#define CDF_STORED_OBJECT	0x00000045
+#define CDF_BLOB_OBJECT		0x00000046
+#define CDF_CLIPBOARD		0x00000047
+#define CDF_CLSID		0x00000048
+#define CDF_VECTOR		0x00001000
+#define CDF_ARRAY		0x00002000
+#define CDF_BYREF		0x00004000
+#define CDF_RESERVED		0x00008000
+#define CDF_ILLEGAL		0x0000ffff
+#define CDF_ILLEGALMASKED	0x00000fff
+#define CDF_TYPEMASK		0x00000fff
+
+#define CDF_PROPERTY_CODE_PAGE			0x00000001
+#define CDF_PROPERTY_TITLE			0x00000002
+#define CDF_PROPERTY_SUBJECT			0x00000003
+#define CDF_PROPERTY_AUTHOR			0x00000004
+#define CDF_PROPERTY_KEYWORDS			0x00000005
+#define CDF_PROPERTY_COMMENTS                   0x00000006
+#define CDF_PROPERTY_TEMPLATE			0x00000007
+#define CDF_PROPERTY_LAST_SAVED_BY		0x00000008
+#define CDF_PROPERTY_REVISION_NUMBER		0x00000009
+#define CDF_PROPERTY_TOTAL_EDITING_TIME		0x0000000a
+#define CDF_PROPERTY_LAST_PRINTED		0X0000000b
+#define CDF_PROPERTY_CREATE_TIME		0x0000000c
+#define CDF_PROPERTY_LAST_SAVED_TIME		0x0000000d
+#define CDF_PROPERTY_NUMBER_OF_PAGES		0x0000000e
+#define CDF_PROPERTY_NUMBER_OF_WORDS		0x0000000f
+#define CDF_PROPERTY_NUMBER_OF_CHARACTERS	0x00000010
+#define CDF_PROPERTY_THUMBNAIL			0x00000011
+#define CDF_PROPERTY_NAME_OF_APPLICATION	0x00000012
+#define CDF_PROPERTY_SECURITY			0x00000013
+#define CDF_PROPERTY_LOCALE_ID			0x80000000
+
+typedef struct {
+        int i_fd;
+        const unsigned char *i_buf;
+        size_t i_len;
+} cdf_info_t;
+
+struct timespec;
+int cdf_timestamp_to_timespec(struct timespec *, cdf_timestamp_t);
+int cdf_timespec_to_timestamp(cdf_timestamp_t *, const struct timespec *);
+int cdf_read_header(const cdf_info_t *, cdf_header_t *);
+void cdf_swap_header(cdf_header_t *);
+void cdf_unpack_header(cdf_header_t *, char *);
+void cdf_swap_dir(cdf_directory_t *);
+void cdf_unpack_dir(cdf_directory_t *, char *);
+void cdf_swap_class(cdf_classid_t *);
+ssize_t cdf_read_sector(const cdf_info_t *, void *, size_t, size_t,
+    const cdf_header_t *, cdf_secid_t);
+ssize_t cdf_read_short_sector(const cdf_stream_t *, void *, size_t, size_t,
+    const cdf_header_t *, cdf_secid_t);
+int cdf_read_sat(const cdf_info_t *, cdf_header_t *, cdf_sat_t *);
+size_t cdf_count_chain(const cdf_sat_t *, cdf_secid_t, size_t);
+int cdf_read_long_sector_chain(const cdf_info_t *, const cdf_header_t *,
+    const cdf_sat_t *, cdf_secid_t, size_t, cdf_stream_t *);
+int cdf_read_short_sector_chain(const cdf_header_t *, const cdf_sat_t *,
+    const cdf_stream_t *, cdf_secid_t, size_t, cdf_stream_t *);
+int cdf_read_sector_chain(const cdf_info_t *, const cdf_header_t *,
+    const cdf_sat_t *, const cdf_sat_t *, const cdf_stream_t *, cdf_secid_t,
+    size_t, cdf_stream_t *);
+int cdf_read_dir(const cdf_info_t *, const cdf_header_t *, const cdf_sat_t *,
+    cdf_dir_t *);
+int cdf_read_ssat(const cdf_info_t *, const cdf_header_t *, const cdf_sat_t *,
+    cdf_sat_t *);
+int cdf_read_short_stream(const cdf_info_t *, const cdf_header_t *,
+    const cdf_sat_t *, const cdf_dir_t *, cdf_stream_t *);
+int cdf_read_property_info(const cdf_stream_t *, const cdf_header_t *, uint32_t,
+    cdf_property_info_t **, size_t *, size_t *);
+int cdf_read_summary_info(const cdf_info_t *, const cdf_header_t *,
+    const cdf_sat_t *, const cdf_sat_t *, const cdf_stream_t *,
+    const cdf_dir_t *, cdf_stream_t *);
+int cdf_unpack_summary_info(const cdf_stream_t *, const cdf_header_t *,
+    cdf_summary_info_header_t *, cdf_property_info_t **, size_t *);
+int cdf_print_classid(char *, size_t, const cdf_classid_t *);
+int cdf_print_property_name(char *, size_t, uint32_t);
+int cdf_print_elapsed_time(char *, size_t, cdf_timestamp_t);
+uint16_t cdf_tole2(uint16_t);
+uint32_t cdf_tole4(uint32_t);
+uint64_t cdf_tole8(uint64_t);
+char *cdf_ctime(const time_t *);
+
+#ifdef CDF_DEBUG
+void cdf_dump_header(const cdf_header_t *);
+void cdf_dump_sat(const char *, const cdf_sat_t *, size_t);
+void cdf_dump(void *, size_t);
+void cdf_dump_stream(const cdf_header_t *, const cdf_stream_t *);
+void cdf_dump_dir(const cdf_info_t *, const cdf_header_t *, const cdf_sat_t *,
+    const cdf_sat_t *, const cdf_stream_t *, const cdf_dir_t *);
+void cdf_dump_property_info(const cdf_property_info_t *, size_t);
+void cdf_dump_summary_info(const cdf_header_t *, const cdf_stream_t *);
+#endif
+
+
+#endif /* _H_CDF_ */
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/cdf_time.c b/framework/modules/c_FileTypeSigModule/file-5.08/src/cdf_time.c
new file mode 100755
index 0000000000000000000000000000000000000000..ee04fb671e2cf6e5d1cad77365cbd30154a6ad36
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/cdf_time.c
@@ -0,0 +1,198 @@
+/*-
+ * Copyright (c) 2008 Christos Zoulas
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "file.h"
+
+#ifndef lint
+FILE_RCSID("@(#)$File: cdf_time.c,v 1.10 2011/02/10 17:03:16 christos Exp $")
+#endif
+
+#include <time.h>
+#ifdef TEST
+#include <err.h>
+#endif
+#include <string.h>
+
+#include "cdf.h"
+
+#define isleap(y) ((((y) % 4) == 0) && \
+    ((((y) % 100) != 0) || (((y) % 400) == 0)))
+
+static const int mdays[] = {
+    31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
+};
+
+/*
+ * Return the number of days between jan 01 1601 and jan 01 of year.
+ */
+static int
+cdf_getdays(int year)
+{
+	int days = 0;
+	int y;
+
+	for (y = CDF_BASE_YEAR; y < year; y++)
+		days += isleap(y) + 365;
+		
+	return days;
+}
+
+/*
+ * Return the day within the month
+ */
+static int
+cdf_getday(int year, int days)
+{
+	size_t m;
+
+	for (m = 0; m < sizeof(mdays) / sizeof(mdays[0]); m++) {
+		int sub = mdays[m] + (m == 1 && isleap(year));
+		if (days < sub)
+			return days;
+		days -= sub;
+	}
+	return days;
+}
+
+/* 
+ * Return the 0...11 month number.
+ */
+static int
+cdf_getmonth(int year, int days)
+{
+	size_t m;
+
+	for (m = 0; m < sizeof(mdays) / sizeof(mdays[0]); m++) {
+		days -= mdays[m];
+		if (m == 1 && isleap(year))
+			days--;
+		if (days <= 0)
+			return (int)m;
+	}
+	return (int)m;
+}
+
+int
+cdf_timestamp_to_timespec(struct timespec *ts, cdf_timestamp_t t)
+{
+	struct tm tm;
+#ifdef HAVE_STRUCT_TM_TM_ZONE
+	static char UTC[] = "UTC";
+#endif
+	int rdays;
+
+	/* Unit is 100's of nanoseconds */
+	ts->tv_nsec = (t % CDF_TIME_PREC) * 100;
+
+	t /= CDF_TIME_PREC;
+	tm.tm_sec = (int)(t % 60);
+	t /= 60;
+
+	tm.tm_min = (int)(t % 60);
+	t /= 60;
+
+	tm.tm_hour = (int)(t % 24);
+	t /= 24;
+
+	// XXX: Approx
+	tm.tm_year = (int)(CDF_BASE_YEAR + (t / 365));
+
+	rdays = cdf_getdays(tm.tm_year);
+	t -= rdays;
+	tm.tm_mday = cdf_getday(tm.tm_year, (int)t);
+	tm.tm_mon = cdf_getmonth(tm.tm_year, (int)t);
+	tm.tm_wday = 0;
+	tm.tm_yday = 0;
+	tm.tm_isdst = 0;
+#ifdef HAVE_STRUCT_TM_TM_GMTOFF
+	tm.tm_gmtoff = 0;
+#endif
+#ifdef HAVE_STRUCT_TM_TM_ZONE
+	tm.tm_zone = UTC;
+#endif
+	tm.tm_year -= 1900;
+	ts->tv_sec = mktime(&tm);
+	if (ts->tv_sec == -1) {
+		errno = EINVAL;
+		return -1;
+	}
+	return 0;
+}
+
+int
+/*ARGSUSED*/
+cdf_timespec_to_timestamp(cdf_timestamp_t *t, const struct timespec *ts)
+{
+#ifndef __lint__
+	(void)&t;
+	(void)&ts;
+#endif
+#ifdef notyet
+	struct tm tm;
+	if (gmtime_r(&ts->ts_sec, &tm) == NULL) {
+		errno = EINVAL;
+		return -1;
+	}
+	*t = (ts->ts_nsec / 100) * CDF_TIME_PREC;
+	*t = tm.tm_sec;
+	*t += tm.tm_min * 60;
+	*t += tm.tm_hour * 60 * 60;
+	*t += tm.tm_mday * 60 * 60 * 24;
+#endif
+	return 0;
+}
+
+char *
+cdf_ctime(const time_t *sec)
+{
+	static char ctbuf[26];
+	char *ptr = ctime(sec);
+	if (ptr != NULL)
+		return ptr;
+	(void)snprintf(ctbuf, sizeof(ctbuf), "*Bad* 0x%16.16llx\n",
+	    (long long)*sec);
+	return ctbuf;
+}
+
+
+#ifdef TEST
+int
+main(int argc, char *argv[])
+{
+	struct timespec ts;
+	static const cdf_timestamp_t tst = 0x01A5E403C2D59C00ULL;
+	static const char *ref = "Sat Apr 23 01:30:00 1977";
+	char *p, *q;
+
+	cdf_timestamp_to_timespec(&ts, tst);
+	p = cdf_ctime(&ts.tv_sec);
+	if ((q = strchr(p, '\n')) != NULL)
+		*q = '\0';
+	if (strcmp(ref, p) != 0)
+		errx(1, "Error date %s != %s\n", ref, p);
+	return 0;
+}
+#endif
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/compress.c b/framework/modules/c_FileTypeSigModule/file-5.08/src/compress.c
new file mode 100755
index 0000000000000000000000000000000000000000..de1ca0130b43515f583231fd2b69985749dc1af4
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/compress.c
@@ -0,0 +1,505 @@
+/*
+ * Copyright (c) Ian F. Darwin 1986-1995.
+ * Software written by Ian F. Darwin and others;
+ * maintained 1995-present by Christos Zoulas and others.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice immediately at the beginning of the file, without modification,
+ *    this list of conditions, and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *  
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * compress routines:
+ *	zmagic() - returns 0 if not recognized, uncompresses and prints
+ *		   information if recognized
+ *	uncompress(method, old, n, newch) - uncompress old into new, 
+ *					    using method, return sizeof new
+ */
+#include "file.h"
+
+#ifndef lint
+FILE_RCSID("@(#)$File: compress.c,v 1.66 2011/03/08 00:39:47 christos Exp $")
+#endif
+
+#include "magic.h"
+#include <stdlib.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#include <string.h>
+#include <errno.h>
+#ifndef __MINGW32__
+#include <sys/ioctl.h>
+#endif
+#ifdef HAVE_SYS_WAIT_H
+#include <sys/wait.h>
+#endif
+#if defined(HAVE_SYS_TIME_H)
+#include <sys/time.h>
+#endif
+#if defined(HAVE_ZLIB_H) && defined(HAVE_LIBZ)
+#define BUILTIN_DECOMPRESS
+#include <zlib.h>
+#endif
+
+private const struct {
+	const char magic[8];
+	size_t maglen;
+	const char *argv[3];
+	int silent;
+} compr[] = {
+	{ "\037\235", 2, { "gzip", "-cdq", NULL }, 1 },		/* compressed */
+	/* Uncompress can get stuck; so use gzip first if we have it
+	 * Idea from Damien Clark, thanks! */
+	{ "\037\235", 2, { "uncompress", "-c", NULL }, 1 },	/* compressed */
+	{ "\037\213", 2, { "gzip", "-cdq", NULL }, 1 },		/* gzipped */
+	{ "\037\236", 2, { "gzip", "-cdq", NULL }, 1 },		/* frozen */
+	{ "\037\240", 2, { "gzip", "-cdq", NULL }, 1 },		/* SCO LZH */
+	/* the standard pack utilities do not accept standard input */
+	{ "\037\036", 2, { "gzip", "-cdq", NULL }, 0 },		/* packed */
+	{ "PK\3\4",   4, { "gzip", "-cdq", NULL }, 1 },		/* pkzipped, */
+					    /* ...only first file examined */
+	{ "BZh",      3, { "bzip2", "-cd", NULL }, 1 },		/* bzip2-ed */
+	{ "LZIP",     4, { "lzip", "-cdq", NULL }, 1 },
+ 	{ "\3757zXZ\0",6,{ "xz", "-cd", NULL }, 1 },		/* XZ Utils */
+ 	{ "LRZI",     4, { "lrzip", "-dqo-", NULL }, 1 },	/* LRZIP */
+};
+
+#define NODATA ((size_t)~0)
+
+private ssize_t swrite(int, const void *, size_t);
+#if HAVE_FORK
+private size_t ncompr = sizeof(compr) / sizeof(compr[0]);
+private size_t uncompressbuf(struct magic_set *, int, size_t,
+    const unsigned char *, unsigned char **, size_t);
+#ifdef BUILTIN_DECOMPRESS
+private size_t uncompressgzipped(struct magic_set *, const unsigned char *,
+    unsigned char **, size_t);
+#endif
+
+protected int
+file_zmagic(struct magic_set *ms, int fd, const char *name,
+    const unsigned char *buf, size_t nbytes)
+{
+	unsigned char *newbuf = NULL;
+	size_t i, nsz;
+	int rv = 0;
+	int mime = ms->flags & MAGIC_MIME;
+
+	if ((ms->flags & MAGIC_COMPRESS) == 0)
+		return 0;
+
+	for (i = 0; i < ncompr; i++) {
+		if (nbytes < compr[i].maglen)
+			continue;
+		if (memcmp(buf, compr[i].magic, compr[i].maglen) == 0 &&
+		    (nsz = uncompressbuf(ms, fd, i, buf, &newbuf,
+		    nbytes)) != NODATA) {
+			ms->flags &= ~MAGIC_COMPRESS;
+			rv = -1;
+			if (file_buffer(ms, -1, name, newbuf, nsz) == -1)
+				goto error;
+
+			if (mime == MAGIC_MIME || mime == 0) {
+				if (file_printf(ms, mime ?
+				    " compressed-encoding=" : " (") == -1)
+					goto error;
+			}
+
+			if ((mime == 0 || mime & MAGIC_MIME_ENCODING) &&
+			    file_buffer(ms, -1, NULL, buf, nbytes) == -1)
+				goto error;
+
+			if (!mime && file_printf(ms, ")") == -1)
+				goto error;
+			rv = 1;
+			break;
+		}
+	}
+error:
+	if (newbuf)
+		free(newbuf);
+	ms->flags |= MAGIC_COMPRESS;
+	return rv;
+}
+#endif
+/*
+ * `safe' write for sockets and pipes.
+ */
+private ssize_t
+swrite(int fd, const void *buf, size_t n)
+{
+	ssize_t rv;
+	size_t rn = n;
+
+	do
+		switch (rv = write(fd, buf, n)) {
+		case -1:
+			if (errno == EINTR)
+				continue;
+			return -1;
+		default:
+			n -= rv;
+			buf = CAST(const char *, buf) + rv;
+			break;
+		}
+	while (n > 0);
+	return rn;
+}
+
+
+/*
+ * `safe' read for sockets and pipes.
+ */
+protected ssize_t
+sread(int fd, void *buf, size_t n, int canbepipe __attribute__ ((unused)))
+{
+	ssize_t rv;
+#ifdef FD_ZERO
+	ssize_t cnt;
+#endif
+#ifdef FIONREAD
+	int t = 0;
+#endif
+	size_t rn = n;
+
+	if (fd == STDIN_FILENO)
+		goto nocheck;
+
+#ifdef FIONREAD
+	if ((canbepipe && (ioctl(fd, FIONREAD, &t) == -1)) || (t == 0)) {
+#ifdef FD_ZERO
+		for (cnt = 0;; cnt++) {
+			fd_set check;
+			struct timeval tout = {0, 100 * 1000};
+			int selrv;
+
+			FD_ZERO(&check);
+			FD_SET(fd, &check);
+
+			/*
+			 * Avoid soft deadlock: do not read if there
+			 * is nothing to read from sockets and pipes.
+			 */
+			selrv = select(fd + 1, &check, NULL, NULL, &tout);
+			if (selrv == -1) {
+				if (errno == EINTR || errno == EAGAIN)
+					continue;
+			} else if (selrv == 0 && cnt >= 5) {
+				return 0;
+			} else
+				break;
+		}
+#endif
+		(void)ioctl(fd, FIONREAD, &t);
+	}
+
+	if (t > 0 && (size_t)t < n) {
+		n = t;
+		rn = n;
+	}
+#endif
+
+nocheck:
+	do
+		switch ((rv = read(fd, buf, n))) {
+		case -1:
+			if (errno == EINTR)
+				continue;
+			return -1;
+		case 0:
+			return rn - n;
+		default:
+			n -= rv;
+			buf = ((char *)buf) + rv;
+			break;
+		}
+	while (n > 0);
+	return rn;
+}
+
+protected int
+file_pipe2file(struct magic_set *ms, int fd, const void *startbuf,
+    size_t nbytes)
+{
+	char buf[4096];
+	ssize_t r;
+	int tfd;
+#ifdef HAVE_MKSTEMP
+	int te;
+#endif
+
+	(void)strlcpy(buf, "/tmp/file.XXXXXX", sizeof buf);
+#ifndef HAVE_MKSTEMP
+	{
+		char *ptr = mktemp(buf);
+		tfd = open(ptr, O_RDWR|O_TRUNC|O_EXCL|O_CREAT, 0600);
+		r = errno;
+		(void)unlink(ptr);
+		errno = r;
+	}
+#else
+	tfd = mkstemp(buf);
+	te = errno;
+	(void)unlink(buf);
+	errno = te;
+#endif
+	if (tfd == -1) {
+		file_error(ms, errno,
+		    "cannot create temporary file for pipe copy");
+		return -1;
+	}
+
+	if (swrite(tfd, startbuf, nbytes) != (ssize_t)nbytes)
+		r = 1;
+	else {
+		while ((r = sread(fd, buf, sizeof(buf), 1)) > 0)
+			if (swrite(tfd, buf, (size_t)r) != r)
+				break;
+	}
+
+	switch (r) {
+	case -1:
+		file_error(ms, errno, "error copying from pipe to temp file");
+		return -1;
+	case 0:
+		break;
+	default:
+		file_error(ms, errno, "error while writing to temp file");
+		return -1;
+	}
+
+	/*
+	 * We duplicate the file descriptor, because fclose on a
+	 * tmpfile will delete the file, but any open descriptors
+	 * can still access the phantom inode.
+	 */
+	if ((fd = dup2(tfd, fd)) == -1) {
+		file_error(ms, errno, "could not dup descriptor for temp file");
+		return -1;
+	}
+	(void)close(tfd);
+	if (lseek(fd, (off_t)0, SEEK_SET) == (off_t)-1) {
+		file_badseek(ms);
+		return -1;
+	}
+	return fd;
+}
+#if HAVE_FORK
+#ifdef BUILTIN_DECOMPRESS
+
+#define FHCRC		(1 << 1)
+#define FEXTRA		(1 << 2)
+#define FNAME		(1 << 3)
+#define FCOMMENT	(1 << 4)
+
+private size_t
+uncompressgzipped(struct magic_set *ms, const unsigned char *old,
+    unsigned char **newch, size_t n)
+{
+	unsigned char flg = old[3];
+	size_t data_start = 10;
+	z_stream z;
+	int rc;
+
+	if (flg & FEXTRA) {
+		if (data_start+1 >= n)
+			return 0;
+		data_start += 2 + old[data_start] + old[data_start + 1] * 256;
+	}
+	if (flg & FNAME) {
+		while(data_start < n && old[data_start])
+			data_start++;
+		data_start++;
+	}
+	if(flg & FCOMMENT) {
+		while(data_start < n && old[data_start])
+			data_start++;
+		data_start++;
+	}
+	if(flg & FHCRC)
+		data_start += 2;
+
+	if (data_start >= n)
+		return 0;
+	if ((*newch = CAST(unsigned char *, malloc(HOWMANY + 1))) == NULL) {
+		return 0;
+	}
+	
+	/* XXX: const castaway, via strchr */
+	z.next_in = (Bytef *)strchr((const char *)old + data_start,
+	    old[data_start]);
+	z.avail_in = CAST(uint32_t, (n - data_start));
+	z.next_out = *newch;
+	z.avail_out = HOWMANY;
+	z.zalloc = Z_NULL;
+	z.zfree = Z_NULL;
+	z.opaque = Z_NULL;
+
+	/* LINTED bug in header macro */
+	rc = inflateInit2(&z, -15);
+	if (rc != Z_OK) {
+		file_error(ms, 0, "zlib: %s", z.msg);
+		return 0;
+	}
+
+	rc = inflate(&z, Z_SYNC_FLUSH);
+	if (rc != Z_OK && rc != Z_STREAM_END) {
+		file_error(ms, 0, "zlib: %s", z.msg);
+		return 0;
+	}
+
+	n = (size_t)z.total_out;
+	(void)inflateEnd(&z);
+	
+	/* let's keep the nul-terminate tradition */
+	(*newch)[n] = '\0';
+
+	return n;
+}
+#endif
+
+private size_t
+uncompressbuf(struct magic_set *ms, int fd, size_t method,
+    const unsigned char *old, unsigned char **newch, size_t n)
+{
+	int fdin[2], fdout[2];
+	ssize_t r;
+
+#ifdef BUILTIN_DECOMPRESS
+        /* FIXME: This doesn't cope with bzip2 */
+	if (method == 2)
+		return uncompressgzipped(ms, old, newch, n);
+#endif
+	(void)fflush(stdout);
+	(void)fflush(stderr);
+
+	if ((fd != -1 && pipe(fdin) == -1) || pipe(fdout) == -1) {
+		file_error(ms, errno, "cannot create pipe");	
+		return NODATA;
+	}
+	switch (fork()) {
+	case 0:	/* child */
+		(void) close(0);
+		if (fd != -1) {
+		    (void) dup(fd);
+		    (void) lseek(0, (off_t)0, SEEK_SET);
+		} else {
+		    (void) dup(fdin[0]);
+		    (void) close(fdin[0]);
+		    (void) close(fdin[1]);
+		}
+
+		(void) close(1);
+		(void) dup(fdout[1]);
+		(void) close(fdout[0]);
+		(void) close(fdout[1]);
+#ifndef DEBUG
+		if (compr[method].silent)
+			(void)close(2);
+#endif
+
+		(void)execvp(compr[method].argv[0],
+		    (char *const *)(intptr_t)compr[method].argv);
+#ifdef DEBUG
+		(void)fprintf(stderr, "exec `%s' failed (%s)\n",
+		    compr[method].argv[0], strerror(errno));
+#endif
+		exit(1);
+		/*NOTREACHED*/
+	case -1:
+		file_error(ms, errno, "could not fork");
+		return NODATA;
+
+	default: /* parent */
+		(void) close(fdout[1]);
+		if (fd == -1) {
+			(void) close(fdin[0]);
+			/* 
+			 * fork again, to avoid blocking because both
+			 * pipes filled
+			 */
+			switch (fork()) {
+			case 0: /* child */
+				(void)close(fdout[0]);
+				if (swrite(fdin[1], old, n) != (ssize_t)n) {
+#ifdef DEBUG
+					(void)fprintf(stderr,
+					    "Write failed (%s)\n",
+					    strerror(errno));
+#endif
+					exit(1);
+				}
+				exit(0);
+				/*NOTREACHED*/
+
+			case -1:
+#ifdef DEBUG
+				(void)fprintf(stderr, "Fork failed (%s)\n",
+				    strerror(errno));
+#endif
+				exit(1);
+				/*NOTREACHED*/
+
+			default:  /* parent */
+				break;
+			}
+			(void) close(fdin[1]);
+			fdin[1] = -1;
+		}
+
+		if ((*newch = (unsigned char *) malloc(HOWMANY + 1)) == NULL) {
+#ifdef DEBUG
+			(void)fprintf(stderr, "Malloc failed (%s)\n",
+			    strerror(errno));
+#endif
+			n = 0;
+			goto err;
+		}
+		if ((r = sread(fdout[0], *newch, HOWMANY, 0)) <= 0) {
+#ifdef DEBUG
+			(void)fprintf(stderr, "Read failed (%s)\n",
+			    strerror(errno));
+#endif
+			free(*newch);
+			n = 0;
+			newch[0] = '\0';
+			goto err;
+		} else {
+			n = r;
+		}
+ 		/* NUL terminate, as every buffer is handled here. */
+ 		(*newch)[n] = '\0';
+err:
+		if (fdin[1] != -1)
+			(void) close(fdin[1]);
+		(void) close(fdout[0]);
+#ifdef WNOHANG
+		while (waitpid(-1, NULL, WNOHANG) != -1)
+			continue;
+#else
+		(void)wait(NULL);
+#endif
+		(void) close(fdin[0]);
+	    
+		return n;
+	}
+}
+#endif
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/elfclass.h b/framework/modules/c_FileTypeSigModule/file-5.08/src/elfclass.h
new file mode 100755
index 0000000000000000000000000000000000000000..7f3da864a596c53d5c58961ae9558b762bd6849c
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/elfclass.h
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) Christos Zoulas 2008.
+ * All Rights Reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice immediately at the beginning of the file, without modification,
+ *    this list of conditions, and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *  
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+	if (nbytes <= sizeof(elfhdr))
+		return 0;
+
+	u.l = 1;
+	(void)memcpy(&elfhdr, buf, sizeof elfhdr);
+	swap = (u.c[sizeof(int32_t) - 1] + 1) != elfhdr.e_ident[EI_DATA];
+
+	type = elf_getu16(swap, elfhdr.e_type);
+	switch (type) {
+#ifdef ELFCORE
+	case ET_CORE:
+		flags |= FLAGS_IS_CORE;
+		if (dophn_core(ms, clazz, swap, fd,
+		    (off_t)elf_getu(swap, elfhdr.e_phoff),
+		    elf_getu16(swap, elfhdr.e_phnum), 
+		    (size_t)elf_getu16(swap, elfhdr.e_phentsize),
+		    fsize, &flags) == -1)
+			return -1;
+		break;
+#endif
+	case ET_EXEC:
+	case ET_DYN:
+		if (dophn_exec(ms, clazz, swap, fd,
+		    (off_t)elf_getu(swap, elfhdr.e_phoff),
+		    elf_getu16(swap, elfhdr.e_phnum), 
+		    (size_t)elf_getu16(swap, elfhdr.e_phentsize),
+		    fsize, &flags, elf_getu16(swap, elfhdr.e_shnum))
+		    == -1)
+			return -1;
+		/*FALLTHROUGH*/
+	case ET_REL:
+		if (doshn(ms, clazz, swap, fd,
+		    (off_t)elf_getu(swap, elfhdr.e_shoff),
+		    elf_getu16(swap, elfhdr.e_shnum),
+		    (size_t)elf_getu16(swap, elfhdr.e_shentsize),
+		    &flags,
+		    elf_getu16(swap, elfhdr.e_machine)) == -1)
+			return -1;
+		break;
+
+	default:
+		break;
+	}
+	return 1;
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/encoding.c b/framework/modules/c_FileTypeSigModule/file-5.08/src/encoding.c
new file mode 100755
index 0000000000000000000000000000000000000000..097673adacd14df0f737c821971f89df3531a3a7
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/encoding.c
@@ -0,0 +1,501 @@
+/*
+ * Copyright (c) Ian F. Darwin 1986-1995.
+ * Software written by Ian F. Darwin and others;
+ * maintained 1995-present by Christos Zoulas and others.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice immediately at the beginning of the file, without modification,
+ *    this list of conditions, and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * Encoding -- determine the character encoding of a text file.
+ *
+ * Joerg Wunsch <joerg@freebsd.org> wrote the original support for 8-bit
+ * international characters.
+ */
+
+#include "file.h"
+
+#ifndef	lint
+FILE_RCSID("@(#)$File: encoding.c,v 1.5 2010/07/21 16:47:17 christos Exp $")
+#endif	/* lint */
+
+#include "magic.h"
+#include <string.h>
+#include <memory.h>
+#include <stdlib.h>
+
+
+private int looks_ascii(const unsigned char *, size_t, unichar *, size_t *);
+private int looks_utf8_with_BOM(const unsigned char *, size_t, unichar *,
+    size_t *);
+private int looks_ucs16(const unsigned char *, size_t, unichar *, size_t *);
+private int looks_latin1(const unsigned char *, size_t, unichar *, size_t *);
+private int looks_extended(const unsigned char *, size_t, unichar *, size_t *);
+private void from_ebcdic(const unsigned char *, size_t, unsigned char *);
+
+#ifdef DEBUG_ENCODING
+#define DPRINTF(a) printf a
+#else
+#define DPRINTF(a)
+#endif
+
+/*
+ * Try to determine whether text is in some character code we can
+ * identify.  Each of these tests, if it succeeds, will leave
+ * the text converted into one-unichar-per-character Unicode in
+ * ubuf, and the number of characters converted in ulen.
+ */
+protected int
+file_encoding(struct magic_set *ms, const unsigned char *buf, size_t nbytes, unichar **ubuf, size_t *ulen, const char **code, const char **code_mime, const char **type)
+{
+	size_t mlen;
+	int rv = 1, ucs_type;
+	unsigned char *nbuf = NULL;
+
+	mlen = (nbytes + 1) * sizeof(nbuf[0]);
+	if ((nbuf = CAST(unsigned char *, calloc((size_t)1, mlen))) == NULL) {
+		file_oomem(ms, mlen);
+		goto done;
+	}
+	mlen = (nbytes + 1) * sizeof((*ubuf)[0]);
+	if ((*ubuf = CAST(unichar *, calloc((size_t)1, mlen))) == NULL) {
+		file_oomem(ms, mlen);
+		goto done;
+	}
+
+	*type = "text";
+	if (looks_ascii(buf, nbytes, *ubuf, ulen)) {
+		DPRINTF(("ascii %" SIZE_T_FORMAT "u\n", *ulen));
+		*code = "ASCII";
+		*code_mime = "us-ascii";
+	} else if (looks_utf8_with_BOM(buf, nbytes, *ubuf, ulen) > 0) {
+		DPRINTF(("utf8/bom %" SIZE_T_FORMAT "u\n", *ulen));
+		*code = "UTF-8 Unicode (with BOM)";
+		*code_mime = "utf-8";
+	} else if (file_looks_utf8(buf, nbytes, *ubuf, ulen) > 1) {
+		DPRINTF(("utf8 %" SIZE_T_FORMAT "u\n", *ulen));
+		*code = "UTF-8 Unicode (with BOM)";
+		*code = "UTF-8 Unicode";
+		*code_mime = "utf-8";
+	} else if ((ucs_type = looks_ucs16(buf, nbytes, *ubuf, ulen)) != 0) {
+		if (ucs_type == 1) {
+			*code = "Little-endian UTF-16 Unicode";
+			*code_mime = "utf-16le";
+		} else {
+			*code = "Big-endian UTF-16 Unicode";
+			*code_mime = "utf-16be";
+		}
+		DPRINTF(("ucs16 %" SIZE_T_FORMAT "u\n", *ulen));
+	} else if (looks_latin1(buf, nbytes, *ubuf, ulen)) {
+		DPRINTF(("latin1 %" SIZE_T_FORMAT "u\n", *ulen));
+		*code = "ISO-8859";
+		*code_mime = "iso-8859-1";
+	} else if (looks_extended(buf, nbytes, *ubuf, ulen)) {
+		DPRINTF(("extended %" SIZE_T_FORMAT "u\n", *ulen));
+		*code = "Non-ISO extended-ASCII";
+		*code_mime = "unknown-8bit";
+	} else {
+		from_ebcdic(buf, nbytes, nbuf);
+
+		if (looks_ascii(nbuf, nbytes, *ubuf, ulen)) {
+			DPRINTF(("ebcdic %" SIZE_T_FORMAT "u\n", *ulen));
+			*code = "EBCDIC";
+			*code_mime = "ebcdic";
+		} else if (looks_latin1(nbuf, nbytes, *ubuf, ulen)) {
+			DPRINTF(("ebcdic/international %" SIZE_T_FORMAT "u\n",
+			    *ulen));
+			*code = "International EBCDIC";
+			*code_mime = "ebcdic";
+		} else { /* Doesn't look like text at all */
+			DPRINTF(("binary\n"));
+			rv = 0;
+			*type = "binary";
+		}
+	}
+
+ done:
+	if (nbuf)
+		free(nbuf);
+
+	return rv;
+}
+
+/*
+ * This table reflects a particular philosophy about what constitutes
+ * "text," and there is room for disagreement about it.
+ *
+ * Version 3.31 of the file command considered a file to be ASCII if
+ * each of its characters was approved by either the isascii() or
+ * isalpha() function.  On most systems, this would mean that any
+ * file consisting only of characters in the range 0x00 ... 0x7F
+ * would be called ASCII text, but many systems might reasonably
+ * consider some characters outside this range to be alphabetic,
+ * so the file command would call such characters ASCII.  It might
+ * have been more accurate to call this "considered textual on the
+ * local system" than "ASCII."
+ *
+ * It considered a file to be "International language text" if each
+ * of its characters was either an ASCII printing character (according
+ * to the real ASCII standard, not the above test), a character in
+ * the range 0x80 ... 0xFF, or one of the following control characters:
+ * backspace, tab, line feed, vertical tab, form feed, carriage return,
+ * escape.  No attempt was made to determine the language in which files
+ * of this type were written.
+ *
+ *
+ * The table below considers a file to be ASCII if all of its characters
+ * are either ASCII printing characters (again, according to the X3.4
+ * standard, not isascii()) or any of the following controls: bell,
+ * backspace, tab, line feed, form feed, carriage return, esc, nextline.
+ *
+ * I include bell because some programs (particularly shell scripts)
+ * use it literally, even though it is rare in normal text.  I exclude
+ * vertical tab because it never seems to be used in real text.  I also
+ * include, with hesitation, the X3.64/ECMA-43 control nextline (0x85),
+ * because that's what the dd EBCDIC->ASCII table maps the EBCDIC newline
+ * character to.  It might be more appropriate to include it in the 8859
+ * set instead of the ASCII set, but it's got to be included in *something*
+ * we recognize or EBCDIC files aren't going to be considered textual.
+ * Some old Unix source files use SO/SI (^N/^O) to shift between Greek
+ * and Latin characters, so these should possibly be allowed.  But they
+ * make a real mess on VT100-style displays if they're not paired properly,
+ * so we are probably better off not calling them text.
+ *
+ * A file is considered to be ISO-8859 text if its characters are all
+ * either ASCII, according to the above definition, or printing characters
+ * from the ISO-8859 8-bit extension, characters 0xA0 ... 0xFF.
+ *
+ * Finally, a file is considered to be international text from some other
+ * character code if its characters are all either ISO-8859 (according to
+ * the above definition) or characters in the range 0x80 ... 0x9F, which
+ * ISO-8859 considers to be control characters but the IBM PC and Macintosh
+ * consider to be printing characters.
+ */
+
+#define F 0   /* character never appears in text */
+#define T 1   /* character appears in plain ASCII text */
+#define I 2   /* character appears in ISO-8859 text */
+#define X 3   /* character appears in non-ISO extended ASCII (Mac, IBM PC) */
+
+private char text_chars[256] = {
+	/*                  BEL BS HT LF    FF CR    */
+	F, F, F, F, F, F, F, T, T, T, T, F, T, T, F, F,  /* 0x0X */
+	/*                              ESC          */
+	F, F, F, F, F, F, F, F, F, F, F, T, F, F, F, F,  /* 0x1X */
+	T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T,  /* 0x2X */
+	T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T,  /* 0x3X */
+	T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T,  /* 0x4X */
+	T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T,  /* 0x5X */
+	T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T,  /* 0x6X */
+	T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, F,  /* 0x7X */
+	/*            NEL                            */
+	X, X, X, X, X, T, X, X, X, X, X, X, X, X, X, X,  /* 0x8X */
+	X, X, X, X, X, X, X, X, X, X, X, X, X, X, X, X,  /* 0x9X */
+	I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I,  /* 0xaX */
+	I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I,  /* 0xbX */
+	I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I,  /* 0xcX */
+	I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I,  /* 0xdX */
+	I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I,  /* 0xeX */
+	I, I, I, I, I, I, I, I, I, I, I, I, I, I, I, I   /* 0xfX */
+};
+
+private int
+looks_ascii(const unsigned char *buf, size_t nbytes, unichar *ubuf,
+    size_t *ulen)
+{
+	size_t i;
+
+	*ulen = 0;
+
+	for (i = 0; i < nbytes; i++) {
+		int t = text_chars[buf[i]];
+
+		if (t != T)
+			return 0;
+
+		ubuf[(*ulen)++] = buf[i];
+	}
+
+	return 1;
+}
+
+private int
+looks_latin1(const unsigned char *buf, size_t nbytes, unichar *ubuf, size_t *ulen)
+{
+	size_t i;
+
+	*ulen = 0;
+
+	for (i = 0; i < nbytes; i++) {
+		int t = text_chars[buf[i]];
+
+		if (t != T && t != I)
+			return 0;
+
+		ubuf[(*ulen)++] = buf[i];
+	}
+
+	return 1;
+}
+
+private int
+looks_extended(const unsigned char *buf, size_t nbytes, unichar *ubuf,
+    size_t *ulen)
+{
+	size_t i;
+
+	*ulen = 0;
+
+	for (i = 0; i < nbytes; i++) {
+		int t = text_chars[buf[i]];
+
+		if (t != T && t != I && t != X)
+			return 0;
+
+		ubuf[(*ulen)++] = buf[i];
+	}
+
+	return 1;
+}
+
+/*
+ * Decide whether some text looks like UTF-8. Returns:
+ *
+ *     -1: invalid UTF-8
+ *      0: uses odd control characters, so doesn't look like text
+ *      1: 7-bit text
+ *      2: definitely UTF-8 text (valid high-bit set bytes)
+ *
+ * If ubuf is non-NULL on entry, text is decoded into ubuf, *ulen;
+ * ubuf must be big enough!
+ */
+protected int
+file_looks_utf8(const unsigned char *buf, size_t nbytes, unichar *ubuf, size_t *ulen)
+{
+	size_t i;
+	int n;
+	unichar c;
+	int gotone = 0, ctrl = 0;
+
+	if (ubuf)
+		*ulen = 0;
+
+	for (i = 0; i < nbytes; i++) {
+		if ((buf[i] & 0x80) == 0) {	   /* 0xxxxxxx is plain ASCII */
+			/*
+			 * Even if the whole file is valid UTF-8 sequences,
+			 * still reject it if it uses weird control characters.
+			 */
+
+			if (text_chars[buf[i]] != T)
+				ctrl = 1;
+
+			if (ubuf)
+				ubuf[(*ulen)++] = buf[i];
+		} else if ((buf[i] & 0x40) == 0) { /* 10xxxxxx never 1st byte */
+			return -1;
+		} else {			   /* 11xxxxxx begins UTF-8 */
+			int following;
+
+			if ((buf[i] & 0x20) == 0) {		/* 110xxxxx */
+				c = buf[i] & 0x1f;
+				following = 1;
+			} else if ((buf[i] & 0x10) == 0) {	/* 1110xxxx */
+				c = buf[i] & 0x0f;
+				following = 2;
+			} else if ((buf[i] & 0x08) == 0) {	/* 11110xxx */
+				c = buf[i] & 0x07;
+				following = 3;
+			} else if ((buf[i] & 0x04) == 0) {	/* 111110xx */
+				c = buf[i] & 0x03;
+				following = 4;
+			} else if ((buf[i] & 0x02) == 0) {	/* 1111110x */
+				c = buf[i] & 0x01;
+				following = 5;
+			} else
+				return -1;
+
+			for (n = 0; n < following; n++) {
+				i++;
+				if (i >= nbytes)
+					goto done;
+
+				if ((buf[i] & 0x80) == 0 || (buf[i] & 0x40))
+					return -1;
+
+				c = (c << 6) + (buf[i] & 0x3f);
+			}
+
+			if (ubuf)
+				ubuf[(*ulen)++] = c;
+			gotone = 1;
+		}
+	}
+done:
+	return ctrl ? 0 : (gotone ? 2 : 1);
+}
+
+/*
+ * Decide whether some text looks like UTF-8 with BOM. If there is no
+ * BOM, return -1; otherwise return the result of looks_utf8 on the
+ * rest of the text.
+ */
+private int
+looks_utf8_with_BOM(const unsigned char *buf, size_t nbytes, unichar *ubuf,
+    size_t *ulen)
+{
+	if (nbytes > 3 && buf[0] == 0xef && buf[1] == 0xbb && buf[2] == 0xbf)
+		return file_looks_utf8(buf + 3, nbytes - 3, ubuf, ulen);
+	else
+		return -1;
+}
+
+private int
+looks_ucs16(const unsigned char *buf, size_t nbytes, unichar *ubuf,
+    size_t *ulen)
+{
+	int bigend;
+	size_t i;
+
+	if (nbytes < 2)
+		return 0;
+
+	if (buf[0] == 0xff && buf[1] == 0xfe)
+		bigend = 0;
+	else if (buf[0] == 0xfe && buf[1] == 0xff)
+		bigend = 1;
+	else
+		return 0;
+
+	*ulen = 0;
+
+	for (i = 2; i + 1 < nbytes; i += 2) {
+		/* XXX fix to properly handle chars > 65536 */
+
+		if (bigend)
+			ubuf[(*ulen)++] = buf[i + 1] + 256 * buf[i];
+		else
+			ubuf[(*ulen)++] = buf[i] + 256 * buf[i + 1];
+
+		if (ubuf[*ulen - 1] == 0xfffe)
+			return 0;
+		if (ubuf[*ulen - 1] < 128 &&
+		    text_chars[(size_t)ubuf[*ulen - 1]] != T)
+			return 0;
+	}
+
+	return 1 + bigend;
+}
+
+#undef F
+#undef T
+#undef I
+#undef X
+
+/*
+ * This table maps each EBCDIC character to an (8-bit extended) ASCII
+ * character, as specified in the rationale for the dd(1) command in
+ * draft 11.2 (September, 1991) of the POSIX P1003.2 standard.
+ *
+ * Unfortunately it does not seem to correspond exactly to any of the
+ * five variants of EBCDIC documented in IBM's _Enterprise Systems
+ * Architecture/390: Principles of Operation_, SA22-7201-06, Seventh
+ * Edition, July, 1999, pp. I-1 - I-4.
+ *
+ * Fortunately, though, all versions of EBCDIC, including this one, agree
+ * on most of the printing characters that also appear in (7-bit) ASCII.
+ * Of these, only '|', '!', '~', '^', '[', and ']' are in question at all.
+ *
+ * Fortunately too, there is general agreement that codes 0x00 through
+ * 0x3F represent control characters, 0x41 a nonbreaking space, and the
+ * remainder printing characters.
+ *
+ * This is sufficient to allow us to identify EBCDIC text and to distinguish
+ * between old-style and internationalized examples of text.
+ */
+
+private unsigned char ebcdic_to_ascii[] = {
+  0,   1,   2,   3, 156,   9, 134, 127, 151, 141, 142,  11,  12,  13,  14,  15,
+ 16,  17,  18,  19, 157, 133,   8, 135,  24,  25, 146, 143,  28,  29,  30,  31,
+128, 129, 130, 131, 132,  10,  23,  27, 136, 137, 138, 139, 140,   5,   6,   7,
+144, 145,  22, 147, 148, 149, 150,   4, 152, 153, 154, 155,  20,  21, 158,  26,
+' ', 160, 161, 162, 163, 164, 165, 166, 167, 168, 213, '.', '<', '(', '+', '|',
+'&', 169, 170, 171, 172, 173, 174, 175, 176, 177, '!', '$', '*', ')', ';', '~',
+'-', '/', 178, 179, 180, 181, 182, 183, 184, 185, 203, ',', '%', '_', '>', '?',
+186, 187, 188, 189, 190, 191, 192, 193, 194, '`', ':', '#', '@', '\'','=', '"',
+195, 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 196, 197, 198, 199, 200, 201,
+202, 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', '^', 204, 205, 206, 207, 208,
+209, 229, 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 210, 211, 212, '[', 214, 215,
+216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, ']', 230, 231,
+'{', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 232, 233, 234, 235, 236, 237,
+'}', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 238, 239, 240, 241, 242, 243,
+'\\',159, 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 244, 245, 246, 247, 248, 249,
+'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 250, 251, 252, 253, 254, 255
+};
+
+#ifdef notdef
+/*
+ * The following EBCDIC-to-ASCII table may relate more closely to reality,
+ * or at least to modern reality.  It comes from
+ *
+ *   http://ftp.s390.ibm.com/products/oe/bpxqp9.html
+ *
+ * and maps the characters of EBCDIC code page 1047 (the code used for
+ * Unix-derived software on IBM's 390 systems) to the corresponding
+ * characters from ISO 8859-1.
+ *
+ * If this table is used instead of the above one, some of the special
+ * cases for the NEL character can be taken out of the code.
+ */
+
+private unsigned char ebcdic_1047_to_8859[] = {
+0x00,0x01,0x02,0x03,0x9C,0x09,0x86,0x7F,0x97,0x8D,0x8E,0x0B,0x0C,0x0D,0x0E,0x0F,
+0x10,0x11,0x12,0x13,0x9D,0x0A,0x08,0x87,0x18,0x19,0x92,0x8F,0x1C,0x1D,0x1E,0x1F,
+0x80,0x81,0x82,0x83,0x84,0x85,0x17,0x1B,0x88,0x89,0x8A,0x8B,0x8C,0x05,0x06,0x07,
+0x90,0x91,0x16,0x93,0x94,0x95,0x96,0x04,0x98,0x99,0x9A,0x9B,0x14,0x15,0x9E,0x1A,
+0x20,0xA0,0xE2,0xE4,0xE0,0xE1,0xE3,0xE5,0xE7,0xF1,0xA2,0x2E,0x3C,0x28,0x2B,0x7C,
+0x26,0xE9,0xEA,0xEB,0xE8,0xED,0xEE,0xEF,0xEC,0xDF,0x21,0x24,0x2A,0x29,0x3B,0x5E,
+0x2D,0x2F,0xC2,0xC4,0xC0,0xC1,0xC3,0xC5,0xC7,0xD1,0xA6,0x2C,0x25,0x5F,0x3E,0x3F,
+0xF8,0xC9,0xCA,0xCB,0xC8,0xCD,0xCE,0xCF,0xCC,0x60,0x3A,0x23,0x40,0x27,0x3D,0x22,
+0xD8,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0xAB,0xBB,0xF0,0xFD,0xFE,0xB1,
+0xB0,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,0x70,0x71,0x72,0xAA,0xBA,0xE6,0xB8,0xC6,0xA4,
+0xB5,0x7E,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0xA1,0xBF,0xD0,0x5B,0xDE,0xAE,
+0xAC,0xA3,0xA5,0xB7,0xA9,0xA7,0xB6,0xBC,0xBD,0xBE,0xDD,0xA8,0xAF,0x5D,0xB4,0xD7,
+0x7B,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0xAD,0xF4,0xF6,0xF2,0xF3,0xF5,
+0x7D,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x52,0xB9,0xFB,0xFC,0xF9,0xFA,0xFF,
+0x5C,0xF7,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0xB2,0xD4,0xD6,0xD2,0xD3,0xD5,
+0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0xB3,0xDB,0xDC,0xD9,0xDA,0x9F
+};
+#endif
+
+/*
+ * Copy buf[0 ... nbytes-1] into out[], translating EBCDIC to ASCII.
+ */
+private void
+from_ebcdic(const unsigned char *buf, size_t nbytes, unsigned char *out)
+{
+	size_t i;
+
+	for (i = 0; i < nbytes; i++) {
+		out[i] = ebcdic_to_ascii[buf[i]];
+	}
+}
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/file.c b/framework/modules/c_FileTypeSigModule/file-5.08/src/file.c
new file mode 100755
index 0000000000000000000000000000000000000000..e00622062bbde1e28e7fc113e6f309d543a3a742
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/file.c
@@ -0,0 +1,497 @@
+/*
+ * Copyright (c) Ian F. Darwin 1986-1995.
+ * Software written by Ian F. Darwin and others;
+ * maintained 1995-present by Christos Zoulas and others.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice immediately at the beginning of the file, without modification,
+ *    this list of conditions, and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * file - find type of a file or files - main program.
+ */
+
+#include "file.h"
+
+#ifndef	lint
+FILE_RCSID("@(#)$File: file.c,v 1.144 2011/05/10 17:08:14 christos Exp $")
+#endif	/* lint */
+
+#include "magic.h"
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#ifdef RESTORE_TIME
+# if (__COHERENT__ >= 0x420)
+#  include <sys/utime.h>
+# else
+#  ifdef USE_UTIMES
+#   include <sys/time.h>
+#  else
+#   include <utime.h>
+#  endif
+# endif
+#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>	/* for read() */
+#endif
+#ifdef HAVE_LOCALE_H
+#include <locale.h>
+#endif
+#ifdef HAVE_WCHAR_H
+#include <wchar.h>
+#endif
+
+#if defined(HAVE_GETOPT_H) && defined(HAVE_STRUCT_OPTION)
+#include <getopt.h>
+#ifndef HAVE_GETOPT_LONG
+int getopt_long(int argc, char * const *argv, const char *optstring, const struct option *longopts, int *longindex);
+#endif
+#else
+#include "mygetopt.h"
+#endif
+
+#ifdef S_IFLNK
+#define FILE_FLAGS "-bchikLlNnprsvz0"
+#else
+#define FILE_FLAGS "-bciklNnprsvz0"
+#endif
+
+# define USAGE  \
+    "Usage: %s [" FILE_FLAGS \
+	"] [--apple] [--mime-encoding] [--mime-type]\n" \
+    "            [-e testname] [-F separator] [-f namefile] [-m magicfiles] " \
+    "file ...\n" \
+    "       %s -C [-m magicfiles]\n" \
+    "       %s [--help]\n"
+
+private int 		/* Global command-line options 		*/
+	bflag = 0,	/* brief output format	 		*/
+	nopad = 0,	/* Don't pad output			*/
+	nobuffer = 0,   /* Do not buffer stdout 		*/
+	nulsep = 0;	/* Append '\0' to the separator		*/
+
+private const char *separator = ":";	/* Default field separator	*/
+private const struct option long_options[] = {
+#define OPT(shortname, longname, opt, doc)      \
+    {longname, opt, NULL, shortname},
+#define OPT_LONGONLY(longname, opt, doc)        \
+    {longname, opt, NULL, 0},
+#include "file_opts.h"
+#undef OPT
+#undef OPT_LONGONLY
+    {0, 0, NULL, 0}
+};
+#define OPTSTRING	"bcCde:f:F:hiklLm:nNprsvz0"
+
+private const struct {
+	const char *name;
+	int value;
+} nv[] = {
+	{ "apptype",	MAGIC_NO_CHECK_APPTYPE },
+	{ "ascii",	MAGIC_NO_CHECK_ASCII },
+	{ "cdf",	MAGIC_NO_CHECK_CDF },
+	{ "compress",	MAGIC_NO_CHECK_COMPRESS },
+	{ "elf",	MAGIC_NO_CHECK_ELF },
+	{ "encoding",	MAGIC_NO_CHECK_ENCODING },
+	{ "soft",	MAGIC_NO_CHECK_SOFT },
+	{ "tar",	MAGIC_NO_CHECK_TAR },
+	{ "text",	MAGIC_NO_CHECK_TEXT },	/* synonym for ascii */
+	{ "tokens",	MAGIC_NO_CHECK_TOKENS },
+};
+
+private char *progname;		/* used throughout 		*/
+
+private void usage(void);
+private void help(void);
+int main(int, char *[]);
+
+private int unwrap(struct magic_set *, const char *);
+private int process(struct magic_set *ms, const char *, int);
+private struct magic_set *load(const char *, int);
+
+
+/*
+ * main - parse arguments and handle options
+ */
+int
+main(int argc, char *argv[])
+{
+	int c;
+	size_t i;
+	int action = 0, didsomefiles = 0, errflg = 0;
+	int flags = 0, e = 0;
+	struct magic_set *magic = NULL;
+	int longindex;
+	const char *magicfile = NULL;		/* where the magic is	*/
+
+	/* makes islower etc work for other langs */
+	(void)setlocale(LC_CTYPE, "");
+
+#ifdef __EMX__
+	/* sh-like wildcard expansion! Shouldn't hurt at least ... */
+	_wildcard(&argc, &argv);
+#endif
+
+	if ((progname = strrchr(argv[0], '/')) != NULL)
+		progname++;
+	else
+		progname = argv[0];
+
+#ifdef S_IFLNK
+	flags |= getenv("POSIXLY_CORRECT") ? MAGIC_SYMLINK : 0;
+#endif
+	while ((c = getopt_long(argc, argv, OPTSTRING, long_options,
+	    &longindex)) != -1)
+		switch (c) {
+		case 0 :
+			switch (longindex) {
+			case 0:
+				help();
+				break;
+			case 10:
+				flags |= MAGIC_APPLE;
+				break;
+			case 11:
+				flags |= MAGIC_MIME_TYPE;
+				break;
+			case 12:
+				flags |= MAGIC_MIME_ENCODING;
+				break;
+			}
+			break;
+		case '0':
+			nulsep = 1;
+			break;
+		case 'b':
+			bflag++;
+			break;
+		case 'c':
+			action = FILE_CHECK;
+			break;
+		case 'C':
+			action = FILE_COMPILE;
+			break;
+		case 'd':
+			flags |= MAGIC_DEBUG|MAGIC_CHECK;
+			break;
+		case 'e':
+			for (i = 0; i < sizeof(nv) / sizeof(nv[0]); i++)
+				if (strcmp(nv[i].name, optarg) == 0)
+					break;
+
+			if (i == sizeof(nv) / sizeof(nv[0]))
+				errflg++;
+			else
+				flags |= nv[i].value;
+			break;
+
+		case 'f':
+			if(action)
+				usage();
+			if (magic == NULL)
+				if ((magic = load(magicfile, flags)) == NULL)
+					return 1;
+			e |= unwrap(magic, optarg);
+			++didsomefiles;
+			break;
+		case 'F':
+			separator = optarg;
+			break;
+		case 'i':
+			flags |= MAGIC_MIME;
+			break;
+		case 'k':
+			flags |= MAGIC_CONTINUE;
+			break;
+		case 'l':
+			action = FILE_LIST;
+			break;
+		case 'm':
+			magicfile = optarg;
+			break;
+		case 'n':
+			++nobuffer;
+			break;
+		case 'N':
+			++nopad;
+			break;
+#if defined(HAVE_UTIME) || defined(HAVE_UTIMES)
+		case 'p':
+			flags |= MAGIC_PRESERVE_ATIME;
+			break;
+#endif
+		case 'r':
+			flags |= MAGIC_RAW;
+			break;
+		case 's':
+			flags |= MAGIC_DEVICES;
+			break;
+		case 'v':
+			if (magicfile == NULL)
+				magicfile = magic_getpath(magicfile, action);
+			(void)fprintf(stdout, "%s-%s\n", progname, VERSION);
+			(void)fprintf(stdout, "magic file from %s\n",
+				       magicfile);
+			return 1;
+		case 'z':
+			flags |= MAGIC_COMPRESS;
+			break;
+#ifdef S_IFLNK
+		case 'L':
+			flags |= MAGIC_SYMLINK;
+			break;
+		case 'h':
+			flags &= ~MAGIC_SYMLINK;
+			break;
+#endif
+		case '?':
+		default:
+			errflg++;
+			break;
+		}
+
+	if (errflg) {
+		usage();
+	}
+	if (e)
+		return e;
+
+	switch(action) {
+	case FILE_CHECK:
+	case FILE_COMPILE:
+	case FILE_LIST:
+		/*
+		 * Don't try to check/compile ~/.magic unless we explicitly
+		 * ask for it.
+		 */
+		magic = magic_open(flags|MAGIC_CHECK);
+		if (magic == NULL) {
+			(void)fprintf(stderr, "%s: %s\n", progname,
+			    strerror(errno));
+			return 1;
+		}
+		switch(action) {
+		case FILE_CHECK:
+			c = magic_check(magic, magicfile);
+			break;
+		case FILE_COMPILE:
+			c = magic_compile(magic, magicfile);
+			break;
+		case FILE_LIST:
+			c = magic_list(magic, magicfile);
+			break;
+		default:
+			abort();
+		}
+		if (c == -1) {
+			(void)fprintf(stderr, "%s: %s\n", progname,
+			    magic_error(magic));
+			return 1;
+		}
+		return 0;
+	default:
+		if (magic == NULL)
+			if ((magic = load(magicfile, flags)) == NULL)
+				return 1;
+		break;
+	}
+
+	if (optind == argc) {
+		if (!didsomefiles)
+			usage();
+	}
+	else {
+		size_t j, wid, nw;
+		for (wid = 0, j = (size_t)optind; j < (size_t)argc; j++) {
+			nw = file_mbswidth(argv[j]);
+			if (nw > wid)
+				wid = nw;
+		}
+		/*
+		 * If bflag is only set twice, set it depending on
+		 * number of files [this is undocumented, and subject to change]
+		 */
+		if (bflag == 2) {
+			bflag = optind >= argc - 1;
+		}
+		for (; optind < argc; optind++)
+			e |= process(magic, argv[optind], wid);
+	}
+
+	if (magic)
+		magic_close(magic);
+	return e;
+}
+
+
+private struct magic_set *
+/*ARGSUSED*/
+load(const char *magicfile, int flags)
+{
+	struct magic_set *magic = magic_open(flags);
+	if (magic == NULL) {
+		(void)fprintf(stderr, "%s: %s\n", progname, strerror(errno));
+		return NULL;
+	}
+	if (magic_load(magic, magicfile) == -1) {
+		(void)fprintf(stderr, "%s: %s\n",
+		    progname, magic_error(magic));
+		magic_close(magic);
+		return NULL;
+	}
+	return magic;
+}
+
+/*
+ * unwrap -- read a file of filenames, do each one.
+ */
+private int
+unwrap(struct magic_set *ms, const char *fn)
+{
+	FILE *f;
+	ssize_t len;
+	char *line = NULL;
+	size_t llen = 0;
+	int wid = 0, cwid;
+	int e = 0;
+
+	if (strcmp("-", fn) == 0) {
+		f = stdin;
+		wid = 1;
+	} else {
+		if ((f = fopen(fn, "r")) == NULL) {
+			(void)fprintf(stderr, "%s: Cannot open `%s' (%s).\n",
+			    progname, fn, strerror(errno));
+			return 1;
+		}
+
+		while ((len = getline(&line, &llen, f)) > 0) {
+			if (line[len - 1] == '\n')
+				line[len - 1] = '\0';
+			cwid = file_mbswidth(line);
+			if (cwid > wid)
+				wid = cwid;
+		}
+
+		rewind(f);
+	}
+
+	while ((len = getline(&line, &llen, f)) > 0) {
+		if (line[len - 1] == '\n')
+			line[len - 1] = '\0';
+		e |= process(ms, line, wid);
+		if(nobuffer)
+			(void)fflush(stdout);
+	}
+
+	free(line);
+	(void)fclose(f);
+	return e;
+}
+
+/*
+ * Called for each input file on the command line (or in a list of files)
+ */
+private int
+process(struct magic_set *ms, const char *inname, int wid)
+{
+	const char *type;
+	int std_in = strcmp(inname, "-") == 0;
+
+	if (wid > 0 && !bflag) {
+		(void)printf("%s", std_in ? "/dev/stdin" : inname);
+		if (nulsep)
+			(void)putc('\0', stdout);
+		(void)printf("%s", separator);
+		(void)printf("%*s ",
+		    (int) (nopad ? 0 : (wid - file_mbswidth(inname))), "");
+	}
+
+	type = magic_file(ms, std_in ? NULL : inname);
+	if (type == NULL) {
+		(void)printf("ERROR: %s\n", magic_error(ms));
+		return 1;
+	} else {
+		(void)printf("%s\n", type);
+		return 0;
+	}
+}
+
+size_t
+file_mbswidth(const char *s)
+{
+#if defined(HAVE_WCHAR_H) && defined(HAVE_MBRTOWC) && defined(HAVE_WCWIDTH)
+	size_t bytesconsumed, old_n, n, width = 0;
+	mbstate_t state;
+	wchar_t nextchar;
+	(void)memset(&state, 0, sizeof(mbstate_t));
+	old_n = n = strlen(s);
+
+	while (n > 0) {
+		bytesconsumed = mbrtowc(&nextchar, s, n, &state);
+		if (bytesconsumed == (size_t)(-1) ||
+		    bytesconsumed == (size_t)(-2)) {
+			/* Something went wrong, return something reasonable */
+			return old_n;
+		}
+		if (s[0] == '\n') {
+			/*
+			 * do what strlen() would do, so that caller
+			 * is always right
+			 */
+			width++;
+		} else
+			width += wcwidth(nextchar);
+
+		s += bytesconsumed, n -= bytesconsumed;
+	}
+	return width;
+#else
+	return strlen(s);
+#endif
+}
+
+private void
+usage(void)
+{
+	(void)fprintf(stderr, USAGE, progname, progname, progname);
+	exit(1);
+}
+
+private void
+help(void)
+{
+	(void)fputs(
+"Usage: file [OPTION...] [FILE...]\n"
+"Determine type of FILEs.\n"
+"\n", stdout);
+#define OPT(shortname, longname, opt, doc)      \
+	fprintf(stdout, "  -%c, --" longname doc, shortname);
+#define OPT_LONGONLY(longname, opt, doc)        \
+	fprintf(stdout, "      --" longname doc);
+#include "file_opts.h"
+#undef OPT
+#undef OPT_LONGONLY
+	fprintf(stdout, "\nReport bugs to http://bugs.gw.com/\n");
+	exit(0);
+}
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/file.h b/framework/modules/c_FileTypeSigModule/file-5.08/src/file.h
new file mode 100755
index 0000000000000000000000000000000000000000..93d155933a55efe3ba3076c1877330c06ee152bb
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/file.h
@@ -0,0 +1,498 @@
+/*
+ * Copyright (c) Ian F. Darwin 1986-1995.
+ * Software written by Ian F. Darwin and others;
+ * maintained 1995-present by Christos Zoulas and others.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice immediately at the beginning of the file, without modification,
+ *    this list of conditions, and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * file.h - definitions for file(1) program
+ * @(#)$File: file.h,v 1.133 2011/05/13 22:15:40 christos Exp $
+ */
+
+#ifndef __file_h__
+#define __file_h__
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#ifdef WIN32
+  #ifdef _WIN64
+    #define SIZE_T_FORMAT "I64"
+  #else
+    #define SIZE_T_FORMAT ""
+  #endif
+  #define INT64_T_FORMAT "I64"
+#else
+  #define SIZE_T_FORMAT "z"
+  #define INT64_T_FORMAT "ll"
+#endif
+
+#include <stdio.h>	/* Include that here, to make sure __P gets defined */
+#include <errno.h>
+#include <fcntl.h>	/* For open and flags */
+#ifdef HAVE_STDINT_H
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS
+#endif
+#include <stdint.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+#include <inttypes.h>
+#endif
+#include <regex.h>
+#include <sys/types.h>
+#include <sys/param.h>
+/* Do this here and now, because struct stat gets re-defined on solaris */
+#include <sys/stat.h>
+#include <stdarg.h>
+
+#define ENABLE_CONDITIONALS
+
+#ifndef MAGIC
+#define MAGIC "/etc/magic"
+#endif
+
+#if defined(__EMX__) || defined (WIN32)
+#define PATHSEP	';'
+#else
+#define PATHSEP	':'
+#endif
+
+#define private static
+#ifndef protected
+#define protected
+#endif
+#define public
+
+#ifndef __GNUC_PREREQ__
+#ifdef __GNUC__
+#define	__GNUC_PREREQ__(x, y)						\
+	((__GNUC__ == (x) && __GNUC_MINOR__ >= (y)) ||			\
+	 (__GNUC__ > (x)))
+#else
+#define	__GNUC_PREREQ__(x, y)	0
+#endif
+#endif
+
+#ifndef __GNUC__
+#ifndef __attribute__
+#define __attribute__(a)
+#endif
+#endif
+
+#ifndef MIN
+#define	MIN(a,b)	(((a) < (b)) ? (a) : (b))
+#endif
+
+#ifndef MAX
+#define	MAX(a,b)	(((a) > (b)) ? (a) : (b))
+#endif
+
+#ifndef HOWMANY
+# define HOWMANY (256 * 1024)	/* how much of the file to look at */
+#endif
+#define MAXMAGIS 8192		/* max entries in any one magic file
+				   or directory */
+#define MAXDESC	64		/* max leng of text description/MIME type */
+#define MAXstring 64		/* max leng of "string" types */
+
+#define MAGICNO		0xF11E041C
+#define VERSIONNO	8
+#define FILE_MAGICSIZE	232
+
+#define	FILE_LOAD	0
+#define FILE_CHECK	1
+#define FILE_COMPILE	2
+#define FILE_LIST	3
+
+union VALUETYPE {
+	uint8_t b;
+	uint16_t h;
+	uint32_t l;
+	uint64_t q;
+	uint8_t hs[2];	/* 2 bytes of a fixed-endian "short" */
+	uint8_t hl[4];	/* 4 bytes of a fixed-endian "long" */
+	uint8_t hq[8];	/* 8 bytes of a fixed-endian "quad" */
+	char s[MAXstring];	/* the search string or regex pattern */
+	unsigned char us[MAXstring];
+	float f;
+	double d;
+};
+
+struct magic {
+	/* Word 1 */
+	uint16_t cont_level;	/* level of ">" */
+	uint8_t flag;
+#define INDIR		0x01	/* if '(...)' appears */
+#define OFFADD		0x02	/* if '>&' or '>...(&' appears */
+#define INDIROFFADD	0x04	/* if '>&(' appears */
+#define UNSIGNED	0x08	/* comparison is unsigned */
+#define NOSPACE		0x10	/* suppress space character before output */
+#define BINTEST		0x20	/* test is for a binary type (set only
+				   for top-level tests) */
+#define TEXTTEST	0x40	/* for passing to file_softmagic */
+
+	uint8_t factor;
+
+	/* Word 2 */
+	uint8_t reln;		/* relation (0=eq, '>'=gt, etc) */
+	uint8_t vallen;		/* length of string value, if any */
+	uint8_t type;		/* comparison type (FILE_*) */
+	uint8_t in_type;	/* type of indirection */
+#define 			FILE_INVALID	0
+#define 			FILE_BYTE	1
+#define				FILE_SHORT	2
+#define				FILE_DEFAULT	3
+#define				FILE_LONG	4
+#define				FILE_STRING	5
+#define				FILE_DATE	6
+#define				FILE_BESHORT	7
+#define				FILE_BELONG	8
+#define				FILE_BEDATE	9
+#define				FILE_LESHORT	10
+#define				FILE_LELONG	11
+#define				FILE_LEDATE	12
+#define				FILE_PSTRING	13
+#define				FILE_LDATE	14
+#define				FILE_BELDATE	15
+#define				FILE_LELDATE	16
+#define				FILE_REGEX	17
+#define				FILE_BESTRING16	18
+#define				FILE_LESTRING16	19
+#define				FILE_SEARCH	20
+#define				FILE_MEDATE	21
+#define				FILE_MELDATE	22
+#define				FILE_MELONG	23
+#define				FILE_QUAD	24
+#define				FILE_LEQUAD	25
+#define				FILE_BEQUAD	26
+#define				FILE_QDATE	27
+#define				FILE_LEQDATE	28
+#define				FILE_BEQDATE	29
+#define				FILE_QLDATE	30
+#define				FILE_LEQLDATE	31
+#define				FILE_BEQLDATE	32
+#define				FILE_FLOAT	33
+#define				FILE_BEFLOAT	34
+#define				FILE_LEFLOAT	35
+#define				FILE_DOUBLE	36
+#define				FILE_BEDOUBLE	37
+#define				FILE_LEDOUBLE	38
+#define				FILE_BEID3	39
+#define				FILE_LEID3	40
+#define				FILE_INDIRECT	41
+#define				FILE_NAMES_SIZE	42/* size of array to contain all names */
+
+#define IS_STRING(t) \
+	((t) == FILE_STRING || \
+	 (t) == FILE_PSTRING || \
+	 (t) == FILE_BESTRING16 || \
+	 (t) == FILE_LESTRING16 || \
+	 (t) == FILE_REGEX || \
+	 (t) == FILE_SEARCH || \
+	 (t) == FILE_DEFAULT)
+
+#define FILE_FMT_NONE 0
+#define FILE_FMT_NUM  1 /* "cduxXi" */
+#define FILE_FMT_STR  2 /* "s" */
+#define FILE_FMT_QUAD 3 /* "ll" */
+#define FILE_FMT_FLOAT 4 /* "eEfFgG" */
+#define FILE_FMT_DOUBLE 5 /* "eEfFgG" */
+
+	/* Word 3 */
+	uint8_t in_op;		/* operator for indirection */
+	uint8_t mask_op;	/* operator for mask */
+#ifdef ENABLE_CONDITIONALS
+	uint8_t cond;		/* conditional type */
+#else
+	uint8_t dummy;
+#endif
+	uint8_t factor_op;
+#define		FILE_FACTOR_OP_PLUS	'+'
+#define		FILE_FACTOR_OP_MINUS	'-'
+#define		FILE_FACTOR_OP_TIMES	'*'
+#define		FILE_FACTOR_OP_DIV	'/'
+#define		FILE_FACTOR_OP_NONE	'\0'
+
+#define				FILE_OPS	"&|^+-*/%"
+#define				FILE_OPAND	0
+#define				FILE_OPOR	1
+#define				FILE_OPXOR	2
+#define				FILE_OPADD	3
+#define				FILE_OPMINUS	4
+#define				FILE_OPMULTIPLY	5
+#define				FILE_OPDIVIDE	6
+#define				FILE_OPMODULO	7
+#define				FILE_OPS_MASK	0x07 /* mask for above ops */
+#define				FILE_UNUSED_1	0x08
+#define				FILE_UNUSED_2	0x10
+#define				FILE_UNUSED_3	0x20
+#define				FILE_OPINVERSE	0x40
+#define				FILE_OPINDIRECT	0x80
+
+#ifdef ENABLE_CONDITIONALS
+#define				COND_NONE	0
+#define				COND_IF		1
+#define				COND_ELIF	2
+#define				COND_ELSE	3
+#endif /* ENABLE_CONDITIONALS */
+
+	/* Word 4 */
+	uint32_t offset;	/* offset to magic number */
+	/* Word 5 */
+	int32_t in_offset;	/* offset from indirection */
+	/* Word 6 */
+	uint32_t lineno;	/* line number in magic file */
+	/* Word 7,8 */
+	union {
+		uint64_t _mask;	/* for use with numeric and date types */
+		struct {
+			uint32_t _count;	/* repeat/line count */
+			uint32_t _flags;	/* modifier flags */
+		} _s;		/* for use with string types */
+	} _u;
+#define num_mask _u._mask
+#define str_range _u._s._count
+#define str_flags _u._s._flags
+	/* Words 9-16 */
+	union VALUETYPE value;	/* either number or string */
+	/* Words 17-32 */
+	char desc[MAXDESC];	/* description */
+	/* Words 33-48 */
+	char mimetype[MAXDESC]; /* MIME type */
+	/* Words 49-50 */
+	char apple[8];
+};
+
+#define BIT(A)   (1 << (A))
+#define STRING_COMPACT_WHITESPACE		BIT(0)
+#define STRING_COMPACT_OPTIONAL_WHITESPACE	BIT(1)
+#define STRING_IGNORE_LOWERCASE			BIT(2)
+#define STRING_IGNORE_UPPERCASE			BIT(3)
+#define REGEX_OFFSET_START			BIT(4)
+#define STRING_TEXTTEST				BIT(5)
+#define STRING_BINTEST				BIT(6)
+#define PSTRING_1_BE				BIT(7)
+#define PSTRING_1_LE				BIT(7)
+#define PSTRING_2_BE				BIT(8)
+#define PSTRING_2_LE				BIT(9)
+#define PSTRING_4_BE				BIT(10)
+#define PSTRING_4_LE				BIT(11)
+#define PSTRING_LEN	\
+    (PSTRING_1_BE|PSTRING_2_LE|PSTRING_2_BE|PSTRING_4_LE|PSTRING_4_BE)
+#define PSTRING_LENGTH_INCLUDES_ITSELF		BIT(12)
+#define CHAR_COMPACT_WHITESPACE			'W'
+#define CHAR_COMPACT_OPTIONAL_WHITESPACE	'w'
+#define CHAR_IGNORE_LOWERCASE			'c'
+#define CHAR_IGNORE_UPPERCASE			'C'
+#define CHAR_REGEX_OFFSET_START			's'
+#define CHAR_TEXTTEST				't'
+#define CHAR_BINTEST				'b'
+#define CHAR_PSTRING_1_BE			'B'
+#define CHAR_PSTRING_1_LE			'B'
+#define CHAR_PSTRING_2_BE			'H'
+#define CHAR_PSTRING_2_LE			'h'
+#define CHAR_PSTRING_4_BE			'L'
+#define CHAR_PSTRING_4_LE			'l'
+#define CHAR_PSTRING_LENGTH_INCLUDES_ITSELF     'J'
+#define STRING_IGNORE_CASE		(STRING_IGNORE_LOWERCASE|STRING_IGNORE_UPPERCASE)
+#define STRING_DEFAULT_RANGE		100
+
+
+/* list of magic entries */
+struct mlist {
+	struct magic *magic;		/* array of magic entries */
+	uint32_t nmagic;			/* number of entries in array */
+	int mapped;  /* allocation type: 0 => apprentice_file
+		      *                  1 => apprentice_map + malloc
+		      *                  2 => apprentice_map + mmap */
+	struct mlist *next, *prev;
+};
+
+#ifdef __cplusplus
+#define CAST(T, b)	static_cast<T>(b)
+#define RCAST(T, b)	reinterpret_cast<T>(b)
+#else
+#define CAST(T, b)	(T)(b)
+#define RCAST(T, b)	(T)(b)
+#endif
+
+struct level_info {
+	int32_t off;
+	int got_match;
+#ifdef ENABLE_CONDITIONALS
+	int last_match;
+	int last_cond;	/* used for error checking by parse() */
+#endif
+};
+struct magic_set {
+	struct mlist *mlist;
+	struct cont {
+		size_t len;
+		struct level_info *li;
+	} c;
+	struct out {
+		char *buf;		/* Accumulation buffer */
+		char *pbuf;		/* Printable buffer */
+	} o;
+	uint32_t offset;
+	int error;
+	int flags;			/* Control magic tests. */
+	int event_flags;		/* Note things that happened. */
+#define 		EVENT_HAD_ERR		0x01
+	const char *file;
+	size_t line;			/* current magic line number */
+
+	/* data for searches */
+	struct {
+		const char *s;		/* start of search in original source */
+		size_t s_len;		/* length of search region */
+		size_t offset;		/* starting offset in source: XXX - should this be off_t? */
+		size_t rm_len;		/* match length */
+	} search;
+
+	/* FIXME: Make the string dynamically allocated so that e.g.
+	   strings matched in files can be longer than MAXstring */
+	union VALUETYPE ms_value;	/* either number or string */
+};
+
+/* Type for Unicode characters */
+typedef unsigned long unichar;
+
+struct stat;
+protected const char *file_fmttime(uint32_t, int);
+protected int file_buffer(struct magic_set *, int, const char *, const void *,
+    size_t);
+protected int file_fsmagic(struct magic_set *, const char *, struct stat *);
+protected int file_pipe2file(struct magic_set *, int, const void *, size_t);
+protected int file_vprintf(struct magic_set *, const char *, va_list);
+protected size_t file_printedlen(const struct magic_set *);
+protected int file_replace(struct magic_set *, const char *, const char *);
+protected int file_printf(struct magic_set *, const char *, ...)
+    __attribute__((__format__(__printf__, 2, 3)));
+protected int file_reset(struct magic_set *);
+protected int file_tryelf(struct magic_set *, int, const unsigned char *,
+    size_t);
+protected int file_trycdf(struct magic_set *, int, const unsigned char *,
+    size_t);
+#if HAVE_FORK
+protected int file_zmagic(struct magic_set *, int, const char *,
+    const unsigned char *, size_t);
+#endif
+protected int file_ascmagic(struct magic_set *, const unsigned char *, size_t);
+protected int file_ascmagic_with_encoding(struct magic_set *,
+    const unsigned char *, size_t, unichar *, size_t, const char *,
+    const char *);
+protected int file_encoding(struct magic_set *, const unsigned char *, size_t,
+    unichar **, size_t *, const char **, const char **, const char **);
+protected int file_is_tar(struct magic_set *, const unsigned char *, size_t);
+protected int file_softmagic(struct magic_set *, const unsigned char *, size_t,
+    int);
+protected struct mlist *file_apprentice(struct magic_set *, const char *, int);
+protected uint64_t file_signextend(struct magic_set *, struct magic *,
+    uint64_t);
+protected void file_delmagic(struct magic *, int type, size_t entries);
+protected void file_badread(struct magic_set *);
+protected void file_badseek(struct magic_set *);
+protected void file_oomem(struct magic_set *, size_t);
+protected void file_error(struct magic_set *, int, const char *, ...)
+    __attribute__((__format__(__printf__, 3, 4)));
+protected void file_magerror(struct magic_set *, const char *, ...)
+    __attribute__((__format__(__printf__, 2, 3)));
+protected void file_magwarn(struct magic_set *, const char *, ...)
+    __attribute__((__format__(__printf__, 2, 3)));
+protected void file_mdump(struct magic *);
+protected void file_showstr(FILE *, const char *, size_t);
+protected size_t file_mbswidth(const char *);
+protected const char *file_getbuffer(struct magic_set *);
+protected ssize_t sread(int, void *, size_t, int);
+protected int file_check_mem(struct magic_set *, unsigned int);
+protected int file_looks_utf8(const unsigned char *, size_t, unichar *,
+    size_t *);
+protected size_t file_pstring_length_size(const struct magic *);
+protected size_t file_pstring_get_length(const struct magic *, const char *);
+#ifdef __EMX__
+protected int file_os2_apptype(struct magic_set *, const char *, const void *,
+    size_t);
+#endif /* __EMX__ */
+
+
+#ifndef COMPILE_ONLY
+extern const char *file_names[];
+extern const size_t file_nnames;
+#endif
+
+#ifndef HAVE_STRERROR
+extern int sys_nerr;
+extern char *sys_errlist[];
+#define strerror(e) \
+	(((e) >= 0 && (e) < sys_nerr) ? sys_errlist[(e)] : "Unknown error")
+#endif
+
+#ifndef HAVE_STRTOUL
+#define strtoul(a, b, c)	strtol(a, b, c)
+#endif
+
+#ifndef HAVE_VASPRINTF
+int vasprintf(char **, const char *, va_list);
+#endif
+#ifndef HAVE_ASPRINTF
+int asprintf(char **ptr, const char *format_string, ...);
+#endif
+
+#ifndef HAVE_STRLCPY
+size_t strlcpy(char *dst, const char *src, size_t siz);
+#endif
+#ifndef HAVE_STRLCAT
+size_t strlcat(char *dst, const char *src, size_t siz);
+#endif
+#ifndef HAVE_GETLINE
+ssize_t getline(char **dst, size_t *len, FILE *fp);
+ssize_t getdelim(char **dst, size_t *len, int delimiter, FILE *fp);
+#endif
+
+#if defined(HAVE_MMAP) && defined(HAVE_SYS_MMAN_H) && !defined(QUICK)
+#define QUICK
+#endif
+
+#ifndef O_BINARY
+#define O_BINARY	0
+#endif
+
+#ifndef __cplusplus
+#if defined(__GNUC__) && (__GNUC__ >= 3)
+#define FILE_RCSID(id) \
+static const char rcsid[] __attribute__((__used__)) = id;
+#else
+#define FILE_RCSID(id) \
+static const char *rcsid(const char *p) { \
+	return rcsid(p = id); \
+}
+#endif
+#else
+#define FILE_RCSID(id)
+#endif
+
+#endif /* __file_h__ */
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/file_opts.h b/framework/modules/c_FileTypeSigModule/file-5.08/src/file_opts.h
new file mode 100755
index 0000000000000000000000000000000000000000..8a176721f632af3af42ffa5a9b11dd5a6b784d13
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/file_opts.h
@@ -0,0 +1,50 @@
+/*
+ * Table of command-line options
+ *
+ * The first column specifies the short name, if any, or 0 if none.
+ * The second column specifies the long name.
+ * The third column specifies whether it takes a parameter.
+ * The fourth column is the documentation.
+ *
+ * N.B. The long options' order must correspond to the code in file.c,
+ * and OPTSTRING must be kept up-to-date with the short options.
+ * Pay particular attention to the numbers of long-only options in the
+ * switch statement!
+ */
+
+OPT_LONGONLY("help", 0, "                 display this help and exit\n")
+OPT('v', "version", 0, "              output version information and exit\n")
+OPT('m', "magic-file", 1, " LIST      use LIST as a colon-separated list of magic\n"
+    "                               number files\n")
+OPT('z', "uncompress", 0, "           try to look inside compressed files\n")
+OPT('b', "brief", 0, "                do not prepend filenames to output lines\n")
+OPT('c', "checking-printout", 0, "    print the parsed form of the magic file, use in\n"
+    "                               conjunction with -m to debug a new magic file\n"
+    "                               before installing it\n")
+OPT('e', "exclude", 1, " TEST         exclude TEST from the list of test to be\n"
+    "                               performed for file. Valid tests are:\n"
+    "                               ascii, apptype, compress, elf, soft, tar, tokens, troff\n")
+OPT('f', "files-from", 1, " FILE      read the filenames to be examined from FILE\n")
+OPT('F', "separator", 1, " STRING     use string as separator instead of `:'\n")
+OPT('i', "mime", 0, "                 output MIME type strings (--mime-type and\n"
+    "                               --mime-encoding)\n")
+OPT_LONGONLY("apple", 0, "                output the Apple CREATOR/TYPE\n")
+OPT_LONGONLY("mime-type", 0, "            output the MIME type\n")
+OPT_LONGONLY("mime-encoding", 0, "        output the MIME encoding\n")
+OPT('k', "keep-going", 0, "           don't stop at the first match\n")
+#ifdef S_IFLNK
+OPT('l', "list", 0, "                 list magic strength\n")
+OPT('L', "dereference", 0, "          follow symlinks (default)\n")
+OPT('h', "no-dereference", 0, "       don't follow symlinks\n")
+#endif
+OPT('n', "no-buffer", 0, "            do not buffer output\n")
+OPT('N', "no-pad", 0, "               do not pad output\n")
+OPT('0', "print0", 0, "               terminate filenames with ASCII NUL\n")
+#if defined(HAVE_UTIME) || defined(HAVE_UTIMES)
+OPT('p', "preserve-date", 0, "        preserve access times on files\n")
+#endif
+OPT('r', "raw", 0, "                  don't translate unprintable chars to \\ooo\n")
+OPT('s', "special-files", 0, "        treat special (block/char devices) files as\n"
+    "                             ordinary ones\n")
+OPT('C', "compile", 0, "              compile file specified by -m\n")
+OPT('d', "debug", 0, "                print debugging messages\n")
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/fsmagic.c b/framework/modules/c_FileTypeSigModule/file-5.08/src/fsmagic.c
new file mode 100755
index 0000000000000000000000000000000000000000..da0ea8d2bf72053ff6ab099a60a9f2d30ad6ed1b
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/fsmagic.c
@@ -0,0 +1,364 @@
+/*
+ * Copyright (c) Ian F. Darwin 1986-1995.
+ * Software written by Ian F. Darwin and others;
+ * maintained 1995-present by Christos Zoulas and others.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice immediately at the beginning of the file, without modification,
+ *    this list of conditions, and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *  
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * fsmagic - magic based on filesystem info - directory, special files, etc.
+ */
+
+#include "file.h"
+
+#ifndef	lint
+FILE_RCSID("@(#)$File: fsmagic.c,v 1.63 2011/07/12 11:31:59 rrt Exp $")
+#endif	/* lint */
+
+#include "magic.h"
+#include <string.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#include <stdlib.h>
+/* Since major is a function on SVR4, we cannot use `ifndef major'.  */
+#ifdef MAJOR_IN_MKDEV
+# include <sys/mkdev.h>
+# define HAVE_MAJOR
+#endif
+#ifdef MAJOR_IN_SYSMACROS
+# include <sys/sysmacros.h>
+# define HAVE_MAJOR
+#endif
+#ifdef major			/* Might be defined in sys/types.h.  */
+# define HAVE_MAJOR
+#endif
+  
+#ifndef HAVE_MAJOR
+# define major(dev)  (((dev) >> 8) & 0xff)
+# define minor(dev)  ((dev) & 0xff)
+#endif
+#undef HAVE_MAJOR
+#ifdef	S_IFLNK
+private int
+bad_link(struct magic_set *ms, int err, char *buf)
+{
+	const char *errfmt;
+	int mime = ms->flags & MAGIC_MIME;
+	if ((mime & MAGIC_MIME_TYPE) &&
+	    file_printf(ms, "inode/symlink")
+	    == -1)
+		return -1;
+	else if (!mime) {
+		if (err == ELOOP)
+			errfmt = "symbolic link in a loop";
+		else
+			errfmt = "broken symbolic link to `%s'";
+		if (ms->flags & MAGIC_ERROR) {
+			file_error(ms, err, errfmt, buf);
+			return -1;
+		} 
+		if (file_printf(ms, errfmt, buf) == -1)
+			return -1;
+	}
+	return 1;
+}
+#endif
+private int
+handle_mime(struct magic_set *ms, int mime, const char *str)
+{
+	if ((mime & MAGIC_MIME_TYPE)) {
+		if (file_printf(ms, "inode/%s", str) == -1)
+			return -1;
+		if ((mime & MAGIC_MIME_ENCODING) && file_printf(ms,
+		    "; charset=") == -1)
+			return -1;
+	}
+	if ((mime & MAGIC_MIME_ENCODING) && file_printf(ms, "binary") == -1)
+		return -1;
+	return 0;
+}
+
+protected int
+file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb)
+{
+	int ret = 0;
+	int mime = ms->flags & MAGIC_MIME;
+#ifdef	S_IFLNK
+	char buf[BUFSIZ+4];
+	ssize_t nch;
+	struct stat tstatbuf;
+#endif
+
+	if (ms->flags & MAGIC_APPLE)
+		return 0;
+	if (fn == NULL)
+		return 0;
+
+	/*
+	 * Fstat is cheaper but fails for files you don't have read perms on.
+	 * On 4.2BSD and similar systems, use lstat() to identify symlinks.
+	 */
+#ifdef	S_IFLNK
+	if ((ms->flags & MAGIC_SYMLINK) == 0)
+		ret = lstat(fn, sb);
+	else
+#endif
+	ret = stat(fn, sb);	/* don't merge into if; see "ret =" above */
+
+	if (ret) {
+		if (ms->flags & MAGIC_ERROR) {
+			file_error(ms, errno, "cannot stat `%s'", fn);
+			return -1;
+		}
+		if (file_printf(ms, "cannot open `%s' (%s)",
+		    fn, strerror(errno)) == -1)
+			return -1;
+		ms->event_flags |= EVENT_HAD_ERR;
+		return -1;
+	}
+
+	if (!mime) {
+#ifdef S_ISUID
+		if (sb->st_mode & S_ISUID) 
+			if (file_printf(ms, "setuid ") == -1)
+				return -1;
+#endif
+#ifdef S_ISGID
+		if (sb->st_mode & S_ISGID) 
+			if (file_printf(ms, "setgid ") == -1)
+				return -1;
+#endif
+#ifdef S_ISVTX
+		if (sb->st_mode & S_ISVTX) 
+			if (file_printf(ms, "sticky ") == -1)
+				return -1;
+#endif
+	}
+	
+	switch (sb->st_mode & S_IFMT) {
+	case S_IFDIR:
+		if (mime) {
+			if (handle_mime(ms, mime, "directory") == -1)
+				return -1;
+		} else if (file_printf(ms, "directory") == -1)
+			return -1;
+		return 1;
+#ifdef S_IFCHR
+	case S_IFCHR:
+		/* 
+		 * If -s has been specified, treat character special files
+		 * like ordinary files.  Otherwise, just report that they
+		 * are block special files and go on to the next file.
+		 */
+		if ((ms->flags & MAGIC_DEVICES) != 0)
+			break;
+		if (mime) {
+			if (handle_mime(ms, mime, "chardevice") == -1)
+				return -1;
+		} else {
+#ifdef HAVE_STAT_ST_RDEV
+# ifdef dv_unit
+			if (file_printf(ms, "character special (%d/%d/%d)",
+			    major(sb->st_rdev), dv_unit(sb->st_rdev),
+					dv_subunit(sb->st_rdev)) == -1)
+				return -1;
+# else
+			if (file_printf(ms, "character special (%ld/%ld)",
+			    (long)major(sb->st_rdev), (long)minor(sb->st_rdev))
+			    == -1)
+				return -1;
+# endif
+#else
+			if (file_printf(ms, "character special") == -1)
+				return -1;
+#endif
+		}
+		return 1;
+#endif
+#ifdef S_IFBLK
+	case S_IFBLK:
+		/* 
+		 * If -s has been specified, treat block special files
+		 * like ordinary files.  Otherwise, just report that they
+		 * are block special files and go on to the next file.
+		 */
+		if ((ms->flags & MAGIC_DEVICES) != 0)
+			break;
+		if (mime) {
+			if (handle_mime(ms, mime, "blockdevice") == -1)
+				return -1;
+		} else {
+#ifdef HAVE_STAT_ST_RDEV
+# ifdef dv_unit
+			if (file_printf(ms, "block special (%d/%d/%d)",
+					major(sb->st_rdev), dv_unit(sb->st_rdev),
+					dv_subunit(sb->st_rdev)) == -1)
+				return -1;
+# else
+			if (file_printf(ms, "block special (%ld/%ld)",
+					(long)major(sb->st_rdev), (long)minor(sb->st_rdev)) == -1)
+				return -1;
+# endif
+#else
+			if (file_printf(ms, "block special") == -1)
+				return -1;
+#endif
+		}
+		return 1;
+#endif
+	/* TODO add code to handle V7 MUX and Blit MUX files */
+#ifdef	S_IFIFO
+	case S_IFIFO:
+		if((ms->flags & MAGIC_DEVICES) != 0)
+			break;
+		if (mime) {
+			if (handle_mime(ms, mime, "fifo") == -1)
+				return -1;
+		} else if (file_printf(ms, "fifo (named pipe)") == -1)
+			return -1;
+		return 1;
+#endif
+#ifdef	S_IFDOOR
+	case S_IFDOOR:
+		if (mime) {
+			if (handle_mime(ms, mime, "door") == -1)
+				return -1;
+		} else if (file_printf(ms, "door") == -1)
+			return -1;
+		return 1;
+#endif
+#ifdef	S_IFLNK
+	case S_IFLNK:
+		if ((nch = readlink(fn, buf, BUFSIZ-1)) <= 0) {
+			if (ms->flags & MAGIC_ERROR) {
+			    file_error(ms, errno, "unreadable symlink `%s'",
+				fn);
+			    return -1;
+			}
+			if (mime) {
+				if (handle_mime(ms, mime, "symlink") == -1)
+					return -1;
+			} else if (file_printf(ms,
+			    "unreadable symlink `%s' (%s)", fn,
+			    strerror(errno)) == -1)
+				return -1;
+			return 1;
+		}
+		buf[nch] = '\0';	/* readlink(2) does not do this */
+
+		/* If broken symlink, say so and quit early. */
+		if (*buf == '/') {
+			if (stat(buf, &tstatbuf) < 0)
+				return bad_link(ms, errno, buf);
+		} else {
+			char *tmp;
+			char buf2[BUFSIZ+BUFSIZ+4];
+
+			if ((tmp = strrchr(fn,  '/')) == NULL) {
+				tmp = buf; /* in current directory anyway */
+			} else {
+				if (tmp - fn + 1 > BUFSIZ) {
+					if (ms->flags & MAGIC_ERROR) {
+						file_error(ms, 0, 
+						    "path too long: `%s'", buf);
+						return -1;
+					}
+					if (mime) {
+						if (handle_mime(ms, mime,
+						    "x-path-too-long") == -1)
+							return -1;
+					} else if (file_printf(ms,
+					    "path too long: `%s'", fn) == -1)
+						return -1;
+					return 1;
+				}
+				/* take dir part */
+				(void)strlcpy(buf2, fn, sizeof buf2);
+				buf2[tmp - fn + 1] = '\0';
+				/* plus (rel) link */
+				(void)strlcat(buf2, buf, sizeof buf2);
+				tmp = buf2;
+			}
+			if (stat(tmp, &tstatbuf) < 0)
+				return bad_link(ms, errno, buf);
+		}
+
+		/* Otherwise, handle it. */
+		if ((ms->flags & MAGIC_SYMLINK) != 0) {
+			const char *p;
+			ms->flags &= MAGIC_SYMLINK;
+			p = magic_file(ms, buf);
+			ms->flags |= MAGIC_SYMLINK;
+			return p != NULL ? 1 : -1;
+		} else { /* just print what it points to */
+			if (mime) {
+				if (handle_mime(ms, mime, "symlink") == -1)
+					return -1;
+			} else if (file_printf(ms, "symbolic link to `%s'",
+			    buf) == -1)
+				return -1;
+		}
+		return 1;
+#endif
+#ifdef	S_IFSOCK
+#ifndef __COHERENT__
+	case S_IFSOCK:
+		if (mime) {
+			if (handle_mime(ms, mime, "socket") == -1)
+				return -1;
+		} else if (file_printf(ms, "socket") == -1)
+			return -1;
+		return 1;
+#endif
+#endif
+	case S_IFREG:
+		break;
+	default:
+		file_error(ms, 0, "invalid mode 0%o", sb->st_mode);
+		return -1;
+		/*NOTREACHED*/
+	}
+
+	/*
+	 * regular file, check next possibility
+	 *
+	 * If stat() tells us the file has zero length, report here that
+	 * the file is empty, so we can skip all the work of opening and 
+	 * reading the file.
+	 * But if the -s option has been given, we skip this optimization,
+	 * since on some systems, stat() reports zero size for raw disk
+	 * partitions.  (If the block special device really has zero length,
+	 * the fact that it is empty will be detected and reported correctly
+	 * when we read the file.)
+	 */
+	if ((ms->flags & MAGIC_DEVICES) == 0 && sb->st_size == 0) {
+		if (mime) {
+			if (handle_mime(ms, mime, "x-empty") == -1)
+				return -1;
+		} else if (file_printf(ms, "empty") == -1)
+			return -1;
+		return 1;
+	}
+	return 0;
+}
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/funcs.c b/framework/modules/c_FileTypeSigModule/file-5.08/src/funcs.c
new file mode 100755
index 0000000000000000000000000000000000000000..afacd33c2a33be801c58963e73baff5f97cb2244
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/funcs.c
@@ -0,0 +1,460 @@
+/*
+ * Copyright (c) Christos Zoulas 2003.
+ * All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice immediately at the beginning of the file, without modification,
+ *    this list of conditions, and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+#include "file.h"
+
+#ifndef	lint
+FILE_RCSID("@(#)$File: funcs.c,v 1.57 2011/05/11 01:02:41 christos Exp $")
+#endif	/* lint */
+
+#include "magic.h"
+#include <stdarg.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#if defined(HAVE_WCHAR_H)
+#include <wchar.h>
+#endif
+#if defined(HAVE_WCTYPE_H)
+#include <wctype.h>
+#endif
+#if defined(HAVE_LIMITS_H)
+#include <limits.h>
+#endif
+
+#ifndef SIZE_MAX
+#define SIZE_MAX	((size_t)~0)
+#endif
+
+/*
+ * Like printf, only we append to a buffer.
+ */
+protected int
+file_vprintf(struct magic_set *ms, const char *fmt, va_list ap)
+{
+	int len;
+	char *buf, *newstr;
+
+	len = vasprintf(&buf, fmt, ap);
+	if (len < 0)
+		goto out;
+
+	if (ms->o.buf != NULL) {
+		len = asprintf(&newstr, "%s%s", ms->o.buf, buf);
+		free(buf);
+		if (len < 0)
+			goto out;
+		free(ms->o.buf);
+		buf = newstr;
+	}
+	ms->o.buf = buf;
+	return 0;
+out:
+	file_error(ms, errno, "vasprintf failed");
+	return -1;
+}
+
+protected int
+file_printf(struct magic_set *ms, const char *fmt, ...)
+{
+	int rv;
+	va_list ap;
+
+	va_start(ap, fmt);
+	rv = file_vprintf(ms, fmt, ap);
+	va_end(ap);
+	return rv;
+}
+
+/*
+ * error - print best error message possible
+ */
+/*VARARGS*/
+private void
+file_error_core(struct magic_set *ms, int error, const char *f, va_list va,
+    size_t lineno)
+{
+	/* Only the first error is ok */
+	if (ms->event_flags & EVENT_HAD_ERR)
+		return;
+	if (lineno != 0) {
+		free(ms->o.buf);
+		ms->o.buf = NULL;
+		file_printf(ms, "line %" SIZE_T_FORMAT "u: ", lineno);
+	}
+	file_vprintf(ms, f, va);
+	if (error > 0)
+		file_printf(ms, " (%s)", strerror(error));
+	ms->event_flags |= EVENT_HAD_ERR;
+	ms->error = error;
+}
+
+/*VARARGS*/
+protected void
+file_error(struct magic_set *ms, int error, const char *f, ...)
+{
+	va_list va;
+	va_start(va, f);
+	file_error_core(ms, error, f, va, 0);
+	va_end(va);
+}
+
+/*
+ * Print an error with magic line number.
+ */
+/*VARARGS*/
+protected void
+file_magerror(struct magic_set *ms, const char *f, ...)
+{
+	va_list va;
+	va_start(va, f);
+	file_error_core(ms, 0, f, va, ms->line);
+	va_end(va);
+}
+
+protected void
+file_oomem(struct magic_set *ms, size_t len)
+{
+	file_error(ms, errno, "cannot allocate %" SIZE_T_FORMAT "u bytes",
+	    len);
+}
+
+protected void
+file_badseek(struct magic_set *ms)
+{
+	file_error(ms, errno, "error seeking");
+}
+
+protected void
+file_badread(struct magic_set *ms)
+{
+	file_error(ms, errno, "error reading");
+}
+
+#ifndef COMPILE_ONLY
+protected int
+file_buffer(struct magic_set *ms, int fd, const char *inname __attribute__ ((unused)),
+    const void *buf, size_t nb)
+{
+	int m = 0, rv = 0, looks_text = 0;
+	int mime = ms->flags & MAGIC_MIME;
+	const unsigned char *ubuf = CAST(const unsigned char *, buf);
+	unichar *u8buf = NULL;
+	size_t ulen;
+	const char *code = NULL;
+	const char *code_mime = "binary";
+	const char *type = NULL;
+
+
+
+	if (nb == 0) {
+		if ((!mime || (mime & MAGIC_MIME_TYPE)) &&
+		    file_printf(ms, mime ? "application/x-empty" :
+		    "empty") == -1)
+			return -1;
+		return 1;
+	} else if (nb == 1) {
+		if ((!mime || (mime & MAGIC_MIME_TYPE)) &&
+		    file_printf(ms, mime ? "application/octet-stream" :
+		    "very short file (no magic)") == -1)
+			return -1;
+		return 1;
+	}
+
+	if ((ms->flags & MAGIC_NO_CHECK_ENCODING) == 0) {
+		looks_text = file_encoding(ms, ubuf, nb, &u8buf, &ulen,
+		    &code, &code_mime, &type);
+	}
+
+#ifdef __EMX__
+	if ((ms->flags & MAGIC_NO_CHECK_APPTYPE) == 0 && inname) {
+		switch (file_os2_apptype(ms, inname, buf, nb)) {
+		case -1:
+			return -1;
+		case 0:
+			break;
+		default:
+			return 1;
+		}
+	}
+#endif
+#if HAVE_FORK
+	/* try compression stuff */
+	if ((ms->flags & MAGIC_NO_CHECK_COMPRESS) == 0)
+		if ((m = file_zmagic(ms, fd, inname, ubuf, nb)) != 0) {
+			if ((ms->flags & MAGIC_DEBUG) != 0)
+				(void)fprintf(stderr, "zmagic %d\n", m);
+			goto done;
+		}
+#endif
+	/* Check if we have a tar file */
+	if ((ms->flags & MAGIC_NO_CHECK_TAR) == 0)
+		if ((m = file_is_tar(ms, ubuf, nb)) != 0) {
+			if ((ms->flags & MAGIC_DEBUG) != 0)
+				(void)fprintf(stderr, "tar %d\n", m);
+			goto done;
+		}
+
+	/* Check if we have a CDF file */
+	if ((ms->flags & MAGIC_NO_CHECK_CDF) == 0)
+		if ((m = file_trycdf(ms, fd, ubuf, nb)) != 0) {
+			if ((ms->flags & MAGIC_DEBUG) != 0)
+				(void)fprintf(stderr, "cdf %d\n", m);
+			goto done;
+		}
+
+	/* try soft magic tests */
+	if ((ms->flags & MAGIC_NO_CHECK_SOFT) == 0)
+		if ((m = file_softmagic(ms, ubuf, nb, BINTEST)) != 0) {
+			if ((ms->flags & MAGIC_DEBUG) != 0)
+				(void)fprintf(stderr, "softmagic %d\n", m);
+#ifdef BUILTIN_ELF
+			if ((ms->flags & MAGIC_NO_CHECK_ELF) == 0 && m == 1 &&
+			    nb > 5 && fd != -1) {
+				/*
+				 * We matched something in the file, so this
+				 * *might* be an ELF file, and the file is at
+				 * least 5 bytes long, so if it's an ELF file
+				 * it has at least one byte past the ELF magic
+				 * number - try extracting information from the
+				 * ELF headers that cannot easily * be
+				 * extracted with rules in the magic file.
+				 */
+				if ((m = file_tryelf(ms, fd, ubuf, nb)) != 0)
+					if ((ms->flags & MAGIC_DEBUG) != 0)
+						(void)fprintf(stderr,
+						    "elf %d\n", m);
+			}
+#endif
+			goto done;
+		}
+
+	/* try text properties (and possibly text tokens) */
+	if ((ms->flags & MAGIC_NO_CHECK_TEXT) == 0) {
+
+		if ((m = file_ascmagic(ms, ubuf, nb)) != 0) {
+			if ((ms->flags & MAGIC_DEBUG) != 0)
+				(void)fprintf(stderr, "ascmagic %d\n", m);
+			goto done;
+		}
+
+		/* try to discover text encoding */
+		if ((ms->flags & MAGIC_NO_CHECK_ENCODING) == 0) {
+			if (looks_text == 0)
+				if ((m = file_ascmagic_with_encoding( ms, ubuf,
+				    nb, u8buf, ulen, code, type)) != 0) {
+					if ((ms->flags & MAGIC_DEBUG) != 0)
+						(void)fprintf(stderr,
+						    "ascmagic/enc %d\n", m);
+					goto done;
+				}
+		}
+	}
+
+	/* give up */
+	m = 1;
+	if ((!mime || (mime & MAGIC_MIME_TYPE)) &&
+	    file_printf(ms, mime ? "application/octet-stream" : "data") == -1) {
+	    rv = -1;
+	}
+ done:
+	if ((ms->flags & MAGIC_MIME_ENCODING) != 0) {
+		if (ms->flags & MAGIC_MIME_TYPE)
+			if (file_printf(ms, "; charset=") == -1)
+				rv = -1;
+		if (file_printf(ms, "%s", code_mime) == -1)
+			rv = -1;
+	}
+	if (u8buf)
+		free(u8buf);
+	if (rv)
+		return rv;
+
+	return m;
+}
+#endif
+
+protected int
+file_reset(struct magic_set *ms)
+{
+	if (ms->mlist == NULL) {
+		file_error(ms, 0, "no magic files loaded");
+		return -1;
+	}
+	if (ms->o.buf) {
+		free(ms->o.buf);
+		ms->o.buf = NULL;
+	}
+	if (ms->o.pbuf) {
+		free(ms->o.pbuf);
+		ms->o.pbuf = NULL;
+	}
+	ms->event_flags &= ~EVENT_HAD_ERR;
+	ms->error = -1;
+	return 0;
+}
+
+#define OCTALIFY(n, o)	\
+	/*LINTED*/ \
+	(void)(*(n)++ = '\\', \
+	*(n)++ = (((uint32_t)*(o) >> 6) & 3) + '0', \
+	*(n)++ = (((uint32_t)*(o) >> 3) & 7) + '0', \
+	*(n)++ = (((uint32_t)*(o) >> 0) & 7) + '0', \
+	(o)++)
+
+protected const char *
+file_getbuffer(struct magic_set *ms)
+{
+	char *pbuf, *op, *np;
+	size_t psize, len;
+
+	if (ms->event_flags & EVENT_HAD_ERR)
+		return NULL;
+
+	if (ms->flags & MAGIC_RAW)
+		return ms->o.buf;
+
+	if (ms->o.buf == NULL)
+		return NULL;
+
+	/* * 4 is for octal representation, + 1 is for NUL */
+	len = strlen(ms->o.buf);
+	if (len > (SIZE_MAX - 1) / 4) {
+		file_oomem(ms, len);
+		return NULL;
+	}
+	psize = len * 4 + 1;
+	if ((pbuf = CAST(char *, realloc(ms->o.pbuf, psize))) == NULL) {
+		file_oomem(ms, psize);
+		return NULL;
+	}
+	ms->o.pbuf = pbuf;
+
+#if defined(HAVE_WCHAR_H) && defined(HAVE_MBRTOWC) && defined(HAVE_WCWIDTH)
+	{
+		mbstate_t state;
+		wchar_t nextchar;
+		int mb_conv = 1;
+		size_t bytesconsumed;
+		char *eop;
+		(void)memset(&state, 0, sizeof(mbstate_t));
+
+		np = ms->o.pbuf;
+		op = ms->o.buf;
+		eop = op + len;
+
+		while (op < eop) {
+			bytesconsumed = mbrtowc(&nextchar, op,
+			    (size_t)(eop - op), &state);
+			if (bytesconsumed == (size_t)(-1) ||
+			    bytesconsumed == (size_t)(-2)) {
+				mb_conv = 0;
+				break;
+			}
+
+			if (iswprint(nextchar)) {
+				(void)memcpy(np, op, bytesconsumed);
+				op += bytesconsumed;
+				np += bytesconsumed;
+			} else {
+				while (bytesconsumed-- > 0)
+					OCTALIFY(np, op);
+			}
+		}
+		*np = '\0';
+
+		/* Parsing succeeded as a multi-byte sequence */
+		if (mb_conv != 0)
+			return ms->o.pbuf;
+	}
+#endif
+
+	for (np = ms->o.pbuf, op = ms->o.buf; *op;) {
+		if (isprint((unsigned char)*op)) {
+			*np++ = *op++;
+		} else {
+			OCTALIFY(np, op);
+		}
+	}
+	*np = '\0';
+	return ms->o.pbuf;
+}
+
+protected int
+file_check_mem(struct magic_set *ms, unsigned int level)
+{
+	size_t len;
+
+	if (level >= ms->c.len) {
+		len = (ms->c.len += 20) * sizeof(*ms->c.li);
+		ms->c.li = CAST(struct level_info *, (ms->c.li == NULL) ?
+		    malloc(len) :
+		    realloc(ms->c.li, len));
+		if (ms->c.li == NULL) {
+			file_oomem(ms, len);
+			return -1;
+		}
+	}
+	ms->c.li[level].got_match = 0;
+#ifdef ENABLE_CONDITIONALS
+	ms->c.li[level].last_match = 0;
+	ms->c.li[level].last_cond = COND_NONE;
+#endif /* ENABLE_CONDITIONALS */
+	return 0;
+}
+
+protected size_t
+file_printedlen(const struct magic_set *ms)
+{
+	return ms->o.buf == NULL ? 0 : strlen(ms->o.buf);
+}
+
+protected int
+file_replace(struct magic_set *ms, const char *pat, const char *rep)
+{
+	regex_t rx;
+	int rc;
+
+	rc = regcomp(&rx, pat, REG_EXTENDED);
+	if (rc) {
+		char errmsg[512];
+		(void)regerror(rc, &rx, errmsg, sizeof(errmsg));
+		file_magerror(ms, "regex error %d, (%s)", rc, errmsg);
+		return -1;
+	} else {
+		regmatch_t rm;
+		int nm = 0;
+		while (regexec(&rx, ms->o.buf, 1, &rm, 0) == 0) {
+			ms->o.buf[rm.rm_so] = '\0';
+			if (file_printf(ms, "%s%s", rep,
+			    rm.rm_eo != 0 ? ms->o.buf + rm.rm_eo : "") == -1)
+				return -1;
+			nm++;
+		}
+		regfree(&rx);
+		return nm;
+	}
+}
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/getline.c b/framework/modules/c_FileTypeSigModule/file-5.08/src/getline.c
new file mode 100755
index 0000000000000000000000000000000000000000..e3c41c4af835fdd7745684d148ea1a89b1fd4970
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/getline.c
@@ -0,0 +1,100 @@
+/*	$NetBSD: fgetln.c,v 1.9 2008/04/29 06:53:03 martin Exp $	*/
+
+/*-
+ * Copyright (c) 2011 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Christos Zoulas.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "file.h"
+#if !HAVE_GETLINE
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <errno.h>
+#include <string.h>
+
+ssize_t
+getdelim(char **buf, size_t *bufsiz, int delimiter, FILE *fp)
+{
+	char *ptr, *eptr;
+
+
+	if (*buf == NULL || *bufsiz == 0) {
+		*bufsiz = BUFSIZ;
+		if ((*buf = malloc(*bufsiz)) == NULL)
+			return -1;
+	}
+
+	for (ptr = *buf, eptr = *buf + *bufsiz;;) {
+		int c = fgetc(fp);
+		if (c == -1) {
+			if (feof(fp))
+				return ptr == *buf ? -1 : ptr - *buf;
+			else
+				return -1;
+		}
+		*ptr++ = c;
+		if (c == delimiter) {
+			*ptr = '\0';
+			return ptr - *buf;
+		}
+		if (ptr + 2 >= eptr) {
+			char *nbuf;
+			size_t nbufsiz = *bufsiz * 2;
+			ssize_t d = ptr - *buf;
+			if ((nbuf = realloc(*buf, nbufsiz)) == NULL)
+				return -1;
+			*buf = nbuf;
+			*bufsiz = nbufsiz;
+			eptr = nbuf + nbufsiz;
+			ptr = nbuf + d;
+		}
+	}
+}
+
+ssize_t
+getline(char **buf, size_t *bufsiz, FILE *fp)
+{
+	return getdelim(buf, bufsiz, '\n', fp);
+}
+
+#endif
+
+#ifdef TEST
+int
+main(int argc, char *argv[])
+{
+	char *p = NULL;
+	ssize_t len;
+	size_t n = 0;
+
+	while ((len = getline(&p, &n, stdin)) != -1)
+		(void)printf("%zd %s", len, p);
+	free(p);
+	return 0;
+}
+#endif
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/getopt_long.c b/framework/modules/c_FileTypeSigModule/file-5.08/src/getopt_long.c
new file mode 100755
index 0000000000000000000000000000000000000000..d357dc30f444a876ba6990dfb82b66ea5cb8e99a
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/getopt_long.c
@@ -0,0 +1,498 @@
+/*	$NetBSD: getopt_long.c,v 1.21.4.1 2008/01/09 01:34:14 matt Exp $	*/
+
+/*-
+ * Copyright (c) 2000 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Dieter Baron and Thomas Klausner.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "file.h"
+
+#ifndef	lint
+FILE_RCSID("@(#)$File: getopt_long.c,v 1.6 2009/02/13 18:48:05 christos Exp $")
+#endif	/* lint */
+
+#include <assert.h>
+#ifdef HAVE_ERR_H
+#include <err.h>
+#else
+#define warnx printf
+#endif
+#include <errno.h>
+#if defined(HAVE_GETOPT_H) && defined(HAVE_STRUCT_OPTION)
+#include <getopt.h>
+#else
+#include "mygetopt.h"
+#endif
+#include <stdlib.h>
+#include <string.h>
+
+#define REPLACE_GETOPT
+
+#ifndef _DIAGASSERT
+#define _DIAGASSERT assert
+#endif
+
+#ifdef REPLACE_GETOPT
+#ifdef __weak_alias
+__weak_alias(getopt,_getopt)
+#endif
+int	opterr = 1;		/* if error message should be printed */
+int	optind = 1;		/* index into parent argv vector */
+int	optopt = '?';		/* character checked for validity */
+int	optreset;		/* reset getopt */
+char    *optarg;		/* argument associated with option */
+#elif HAVE_NBTOOL_CONFIG_H && !HAVE_DECL_OPTRESET
+static int optreset;
+#endif
+
+#ifdef __weak_alias
+__weak_alias(getopt_long,_getopt_long)
+#endif
+
+#define IGNORE_FIRST	(*options == '-' || *options == '+')
+#define PRINT_ERROR	((opterr) && ((*options != ':') \
+				      || (IGNORE_FIRST && options[1] != ':')))
+#define IS_POSIXLY_CORRECT (getenv("POSIXLY_CORRECT") != NULL)
+#define PERMUTE         (!IS_POSIXLY_CORRECT && !IGNORE_FIRST)
+/* XXX: GNU ignores PC if *options == '-' */
+#define IN_ORDER        (!IS_POSIXLY_CORRECT && *options == '-')
+
+/* return values */
+#define	BADCH	(int)'?'
+#define	BADARG		((IGNORE_FIRST && options[1] == ':') \
+			 || (*options == ':') ? (int)':' : (int)'?')
+#define INORDER (int)1
+
+#define	EMSG	""
+
+static int getopt_internal(int, char **, const char *);
+static int gcd(int, int);
+static void permute_args(int, int, int, char **);
+
+static const char *place = EMSG; /* option letter processing */
+
+/* XXX: set optreset to 1 rather than these two */
+static int nonopt_start = -1; /* first non option argument (for permute) */
+static int nonopt_end = -1;   /* first option after non options (for permute) */
+
+/* Error messages */
+static const char recargchar[] = "option requires an argument -- %c";
+static const char recargstring[] = "option requires an argument -- %s";
+static const char ambig[] = "ambiguous option -- %.*s";
+static const char noarg[] = "option doesn't take an argument -- %.*s";
+static const char illoptchar[] = "unknown option -- %c";
+static const char illoptstring[] = "unknown option -- %s";
+
+
+/*
+ * Compute the greatest common divisor of a and b.
+ */
+static int
+gcd(a, b)
+	int a;
+	int b;
+{
+	int c;
+
+	c = a % b;
+	while (c != 0) {
+		a = b;
+		b = c;
+		c = a % b;
+	}
+	   
+	return b;
+}
+
+/*
+ * Exchange the block from nonopt_start to nonopt_end with the block
+ * from nonopt_end to opt_end (keeping the same order of arguments
+ * in each block).
+ */
+static void
+permute_args(panonopt_start, panonopt_end, opt_end, nargv)
+	int panonopt_start;
+	int panonopt_end;
+	int opt_end;
+	char **nargv;
+{
+	int cstart, cyclelen, i, j, ncycle, nnonopts, nopts, pos;
+	char *swap;
+
+	_DIAGASSERT(nargv != NULL);
+
+	/*
+	 * compute lengths of blocks and number and size of cycles
+	 */
+	nnonopts = panonopt_end - panonopt_start;
+	nopts = opt_end - panonopt_end;
+	ncycle = gcd(nnonopts, nopts);
+	cyclelen = (opt_end - panonopt_start) / ncycle;
+
+	for (i = 0; i < ncycle; i++) {
+		cstart = panonopt_end+i;
+		pos = cstart;
+		for (j = 0; j < cyclelen; j++) {
+			if (pos >= panonopt_end)
+				pos -= nnonopts;
+			else
+				pos += nopts;
+			swap = nargv[pos];
+			nargv[pos] = nargv[cstart];
+			nargv[cstart] = swap;
+		}
+	}
+}
+
+/*
+ * getopt_internal --
+ *	Parse argc/argv argument vector.  Called by user level routines.
+ *  Returns -2 if -- is found (can be long option or end of options marker).
+ */
+static int
+getopt_internal(nargc, nargv, options)
+	int nargc;
+	char **nargv;
+	const char *options;
+{
+	char *oli;				/* option letter list index */
+	int optchar;
+
+	_DIAGASSERT(nargv != NULL);
+	_DIAGASSERT(options != NULL);
+
+	optarg = NULL;
+
+	/*
+	 * XXX Some programs (like rsyncd) expect to be able to
+	 * XXX re-initialize optind to 0 and have getopt_long(3)
+	 * XXX properly function again.  Work around this braindamage.
+	 */
+	if (optind == 0)
+		optind = 1;
+
+	if (optreset)
+		nonopt_start = nonopt_end = -1;
+start:
+	if (optreset || !*place) {		/* update scanning pointer */
+		optreset = 0;
+		if (optind >= nargc) {          /* end of argument vector */
+			place = EMSG;
+			if (nonopt_end != -1) {
+				/* do permutation, if we have to */
+				permute_args(nonopt_start, nonopt_end,
+				    optind, nargv);
+				optind -= nonopt_end - nonopt_start;
+			}
+			else if (nonopt_start != -1) {
+				/*
+				 * If we skipped non-options, set optind
+				 * to the first of them.
+				 */
+				optind = nonopt_start;
+			}
+			nonopt_start = nonopt_end = -1;
+			return -1;
+		}
+		if ((*(place = nargv[optind]) != '-')
+		    || (place[1] == '\0')) {    /* found non-option */
+			place = EMSG;
+			if (IN_ORDER) {
+				/*
+				 * GNU extension: 
+				 * return non-option as argument to option 1
+				 */
+				optarg = nargv[optind++];
+				return INORDER;
+			}
+			if (!PERMUTE) {
+				/*
+				 * if no permutation wanted, stop parsing
+				 * at first non-option
+				 */
+				return -1;
+			}
+			/* do permutation */
+			if (nonopt_start == -1)
+				nonopt_start = optind;
+			else if (nonopt_end != -1) {
+				permute_args(nonopt_start, nonopt_end,
+				    optind, nargv);
+				nonopt_start = optind -
+				    (nonopt_end - nonopt_start);
+				nonopt_end = -1;
+			}
+			optind++;
+			/* process next argument */
+			goto start;
+		}
+		if (nonopt_start != -1 && nonopt_end == -1)
+			nonopt_end = optind;
+		if (place[1] && *++place == '-') {	/* found "--" */
+			place++;
+			return -2;
+		}
+	}
+	if ((optchar = (int)*place++) == (int)':' ||
+	    (oli = strchr(options + (IGNORE_FIRST ? 1 : 0), optchar)) == NULL) {
+		/* option letter unknown or ':' */
+		if (!*place)
+			++optind;
+		if (PRINT_ERROR)
+			warnx(illoptchar, optchar);
+		optopt = optchar;
+		return BADCH;
+	}
+	if (optchar == 'W' && oli[1] == ';') {		/* -W long-option */
+		/* XXX: what if no long options provided (called by getopt)? */
+		if (*place) 
+			return -2;
+
+		if (++optind >= nargc) {	/* no arg */
+			place = EMSG;
+			if (PRINT_ERROR)
+				warnx(recargchar, optchar);
+			optopt = optchar;
+			return BADARG;
+		} else				/* white space */
+			place = nargv[optind];
+		/*
+		 * Handle -W arg the same as --arg (which causes getopt to
+		 * stop parsing).
+		 */
+		return -2;
+	}
+	if (*++oli != ':') {			/* doesn't take argument */
+		if (!*place)
+			++optind;
+	} else {				/* takes (optional) argument */
+		optarg = NULL;
+		if (*place)			/* no white space */
+			optarg = (char *)place;
+		/* XXX: disable test for :: if PC? (GNU doesn't) */
+		else if (oli[1] != ':') {	/* arg not optional */
+			if (++optind >= nargc) {	/* no arg */
+				place = EMSG;
+				if (PRINT_ERROR)
+					warnx(recargchar, optchar);
+				optopt = optchar;
+				return BADARG;
+			} else
+				optarg = nargv[optind];
+		}
+		place = EMSG;
+		++optind;
+	}
+	/* dump back option letter */
+	return optchar;
+}
+
+#ifdef REPLACE_GETOPT
+/*
+ * getopt --
+ *	Parse argc/argv argument vector.
+ *
+ * [eventually this will replace the real getopt]
+ */
+int
+getopt(nargc, nargv, options)
+	int nargc;
+	char * const *nargv;
+	const char *options;
+{
+	int retval;
+
+	_DIAGASSERT(nargv != NULL);
+	_DIAGASSERT(options != NULL);
+
+	retval = getopt_internal(nargc, (char **)nargv, options);
+	if (retval == -2) {
+		++optind;
+		/*
+		 * We found an option (--), so if we skipped non-options,
+		 * we have to permute.
+		 */
+		if (nonopt_end != -1) {
+			permute_args(nonopt_start, nonopt_end, optind,
+				     (char **)nargv);
+			optind -= nonopt_end - nonopt_start;
+		}
+		nonopt_start = nonopt_end = -1;
+		retval = -1;
+	}
+	return retval;
+}
+#endif
+
+/*
+ * getopt_long --
+ *	Parse argc/argv argument vector.
+ */
+int
+getopt_long(nargc, nargv, options, long_options, idx)
+	int nargc;
+	char * const *nargv;
+	const char *options;
+	const struct option *long_options;
+	int *idx;
+{
+	int retval;
+
+#define IDENTICAL_INTERPRETATION(_x, _y)				\
+	(long_options[(_x)].has_arg == long_options[(_y)].has_arg &&	\
+	 long_options[(_x)].flag == long_options[(_y)].flag &&		\
+	 long_options[(_x)].val == long_options[(_y)].val)
+
+	_DIAGASSERT(nargv != NULL);
+	_DIAGASSERT(options != NULL);
+	_DIAGASSERT(long_options != NULL);
+	/* idx may be NULL */
+
+	retval = getopt_internal(nargc, (char **)nargv, options);
+	if (retval == -2) {
+		char *current_argv, *has_equal;
+		size_t current_argv_len;
+		int i, ambiguous, match;
+
+		current_argv = (char *)place;
+		match = -1;
+		ambiguous = 0;
+
+		optind++;
+		place = EMSG;
+
+		if (*current_argv == '\0') {		/* found "--" */
+			/*
+			 * We found an option (--), so if we skipped
+			 * non-options, we have to permute.
+			 */
+			if (nonopt_end != -1) {
+				permute_args(nonopt_start, nonopt_end,
+					     optind, (char **)nargv);
+				optind -= nonopt_end - nonopt_start;
+			}
+			nonopt_start = nonopt_end = -1;
+			return -1;
+		}
+		if ((has_equal = strchr(current_argv, '=')) != NULL) {
+			/* argument found (--option=arg) */
+			current_argv_len = has_equal - current_argv;
+			has_equal++;
+		} else
+			current_argv_len = strlen(current_argv);
+	    
+		for (i = 0; long_options[i].name; i++) {
+			/* find matching long option */
+			if (strncmp(current_argv, long_options[i].name,
+			    current_argv_len))
+				continue;
+
+			if (strlen(long_options[i].name) ==
+			    (unsigned)current_argv_len) {
+				/* exact match */
+				match = i;
+				ambiguous = 0;
+				break;
+			}
+			if (match == -1)		/* partial match */
+				match = i;
+			else if (!IDENTICAL_INTERPRETATION(i, match))
+				ambiguous = 1;
+		}
+		if (ambiguous) {
+			/* ambiguous abbreviation */
+			if (PRINT_ERROR)
+				warnx(ambig, (int)current_argv_len,
+				     current_argv);
+			optopt = 0;
+			return BADCH;
+		}
+		if (match != -1) {			/* option found */
+		        if (long_options[match].has_arg == no_argument
+			    && has_equal) {
+				if (PRINT_ERROR)
+					warnx(noarg, (int)current_argv_len,
+					     current_argv);
+				/*
+				 * XXX: GNU sets optopt to val regardless of
+				 * flag
+				 */
+				if (long_options[match].flag == NULL)
+					optopt = long_options[match].val;
+				else
+					optopt = 0;
+				return BADARG;
+			}
+			if (long_options[match].has_arg == required_argument ||
+			    long_options[match].has_arg == optional_argument) {
+				if (has_equal)
+					optarg = has_equal;
+				else if (long_options[match].has_arg ==
+				    required_argument) {
+					/*
+					 * optional argument doesn't use
+					 * next nargv
+					 */
+					optarg = nargv[optind++];
+				}
+			}
+			if ((long_options[match].has_arg == required_argument)
+			    && (optarg == NULL)) {
+				/*
+				 * Missing argument; leading ':'
+				 * indicates no error should be generated
+				 */
+				if (PRINT_ERROR)
+					warnx(recargstring, current_argv);
+				/*
+				 * XXX: GNU sets optopt to val regardless
+				 * of flag
+				 */
+				if (long_options[match].flag == NULL)
+					optopt = long_options[match].val;
+				else
+					optopt = 0;
+				--optind;
+				return BADARG;
+			}
+		} else {			/* unknown option */
+			if (PRINT_ERROR)
+				warnx(illoptstring, current_argv);
+			optopt = 0;
+			return BADCH;
+		}
+		if (long_options[match].flag) {
+			*long_options[match].flag = long_options[match].val;
+			retval = 0;
+		} else 
+			retval = long_options[match].val;
+		if (idx)
+			*idx = match;
+	}
+	return retval;
+#undef IDENTICAL_INTERPRETATION
+}
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/is_tar.c b/framework/modules/c_FileTypeSigModule/file-5.08/src/is_tar.c
new file mode 100755
index 0000000000000000000000000000000000000000..876c631bfdcbc1135211e3ec8b6e44d5abd29c75
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/is_tar.c
@@ -0,0 +1,152 @@
+/*
+ * Copyright (c) Ian F. Darwin 1986-1995.
+ * Software written by Ian F. Darwin and others;
+ * maintained 1995-present by Christos Zoulas and others.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice immediately at the beginning of the file, without modification,
+ *    this list of conditions, and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * is_tar() -- figure out whether file is a tar archive.
+ *
+ * Stolen (by the author!) from the public domain tar program:
+ * Public Domain version written 26 Aug 1985 John Gilmore (ihnp4!hoptoad!gnu).
+ *
+ * @(#)list.c 1.18 9/23/86 Public Domain - gnu
+ *
+ * Comments changed and some code/comments reformatted
+ * for file command by Ian Darwin.
+ */
+
+#include "file.h"
+
+#ifndef lint
+FILE_RCSID("@(#)$File: is_tar.c,v 1.37 2010/11/30 14:58:53 rrt Exp $")
+#endif
+
+#include "magic.h"
+#include <string.h>
+#include <ctype.h>
+#include "tar.h"
+
+#define	isodigit(c)	( ((c) >= '0') && ((c) <= '7') )
+
+private int is_tar(const unsigned char *, size_t);
+private int from_oct(int, const char *);	/* Decode octal number */
+
+static const char tartype[][32] = {
+	"tar archive",
+	"POSIX tar archive",
+	"POSIX tar archive (GNU)",
+};
+
+protected int
+file_is_tar(struct magic_set *ms, const unsigned char *buf, size_t nbytes)
+{
+	/*
+	 * Do the tar test first, because if the first file in the tar
+	 * archive starts with a dot, we can confuse it with an nroff file.
+	 */
+	int tar;
+	int mime = ms->flags & MAGIC_MIME;
+
+	if ((ms->flags & MAGIC_APPLE) != 0)
+		return 0;
+
+	tar = is_tar(buf, nbytes);
+	if (tar < 1 || tar > 3)
+		return 0;
+
+	if (file_printf(ms, "%s", mime ? "application/x-tar" :
+	    tartype[tar - 1]) == -1)
+		return -1;
+	return 1;
+}
+
+/*
+ * Return
+ *	0 if the checksum is bad (i.e., probably not a tar archive),
+ *	1 for old UNIX tar file,
+ *	2 for Unix Std (POSIX) tar file,
+ *	3 for GNU tar file.
+ */
+private int
+is_tar(const unsigned char *buf, size_t nbytes)
+{
+	const union record *header = (const union record *)(const void *)buf;
+	int	i;
+	int	sum, recsum;
+	const unsigned char	*p;
+
+	if (nbytes < sizeof(union record))
+		return 0;
+
+	recsum = from_oct(8,  header->header.chksum);
+
+	sum = 0;
+	p = header->charptr;
+	for (i = sizeof(union record); --i >= 0;)
+		sum += *p++;
+
+	/* Adjust checksum to count the "chksum" field as blanks. */
+	for (i = sizeof(header->header.chksum); --i >= 0;)
+		sum -= header->header.chksum[i];
+	sum += ' ' * sizeof header->header.chksum;
+
+	if (sum != recsum)
+		return 0;	/* Not a tar archive */
+
+	if (strcmp(header->header.magic, GNUTMAGIC) == 0)
+		return 3;		/* GNU Unix Standard tar archive */
+	if (strcmp(header->header.magic, TMAGIC) == 0)
+		return 2;		/* Unix Standard tar archive */
+
+	return 1;			/* Old fashioned tar archive */
+}
+
+
+/*
+ * Quick and dirty octal conversion.
+ *
+ * Result is -1 if the field is invalid (all blank, or non-octal).
+ */
+private int
+from_oct(int digs, const char *where)
+{
+	int	value;
+
+	while (isspace((unsigned char)*where)) {	/* Skip spaces */
+		where++;
+		if (--digs <= 0)
+			return -1;		/* All blank field */
+	}
+	value = 0;
+	while (digs > 0 && isodigit(*where)) {	/* Scan til non-octal */
+		value = (value << 3) | (*where++ - '0');
+		--digs;
+	}
+
+	if (digs > 0 && *where && !isspace((unsigned char)*where))
+		return -1;			/* Ended on non-(space/NUL) */
+
+	return value;
+}
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/magic.c b/framework/modules/c_FileTypeSigModule/file-5.08/src/magic.c
new file mode 100755
index 0000000000000000000000000000000000000000..540395114f6b3b347888536aa878d709ec329bf3
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/magic.c
@@ -0,0 +1,513 @@
+/*
+ * Copyright (c) Christos Zoulas 2003.
+ * All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice immediately at the beginning of the file, without modification,
+ *    this list of conditions, and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifdef WIN32
+#include <windows.h>
+#include <shlwapi.h>
+#endif
+
+#include "file.h"
+
+#ifndef	lint
+FILE_RCSID("@(#)$File: magic.c,v 1.74 2011/05/26 01:27:59 christos Exp $")
+#endif	/* lint */
+
+#include "magic.h"
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#ifdef QUICK
+#include <sys/mman.h>
+#endif
+#ifdef HAVE_LIMITS_H
+#include <limits.h>	/* for PIPE_BUF */
+#endif
+
+#if defined(HAVE_UTIMES)
+# include <sys/time.h>
+#elif defined(HAVE_UTIME)
+# if defined(HAVE_SYS_UTIME_H)
+#  include <sys/utime.h>
+# elif defined(HAVE_UTIME_H)
+#  include <utime.h>
+# endif
+#endif
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>	/* for read() */
+#endif
+
+#ifndef PIPE_BUF
+/* Get the PIPE_BUF from pathconf */
+#ifdef _PC_PIPE_BUF
+#define PIPE_BUF pathconf(".", _PC_PIPE_BUF)
+#else
+#define PIPE_BUF 512
+#endif
+#endif
+
+private void free_mlist(struct mlist *);
+private void close_and_restore(const struct magic_set *, const char *, int,
+    const struct stat *);
+private int unreadable_info(struct magic_set *, mode_t, const char *);
+private const char* get_default_magic(void);
+#ifndef COMPILE_ONLY
+private const char *file_or_fd(struct magic_set *, const char *, int);
+#endif
+
+#ifndef	STDIN_FILENO
+#define	STDIN_FILENO	0
+#endif
+
+private const char *
+get_default_magic(void)
+{
+	static const char hmagic[] = "/.magic/magic.mgc";
+	static char *default_magic;
+	char *home, *hmagicpath;
+
+#ifndef WIN32
+	struct stat st;
+
+	if (default_magic) {
+		free(default_magic);
+		default_magic = NULL;
+	}
+	if ((home = getenv("HOME")) == NULL)
+		return MAGIC;
+
+	if (asprintf(&hmagicpath, "%s/.magic", home) < 0)
+		return MAGIC;
+	if (stat(hmagicpath, &st) == -1)
+		goto out;
+	if (S_ISDIR(st.st_mode)) {
+		free(hmagicpath);
+		if (asprintf(&hmagicpath, "%s/%s", home, hmagic) < 0)
+			return MAGIC;
+		if (access(hmagicpath, R_OK) == -1)
+			goto out;
+	}
+
+	if (asprintf(&default_magic, "%s:%s", hmagicpath, MAGIC) < 0)
+		goto out;
+	free(hmagicpath);
+	return default_magic;
+out:
+	default_magic = NULL;
+	free(hmagicpath);
+	return MAGIC;
+#else
+	char *hmagicp = hmagicpath;
+	char *tmppath = NULL;
+
+#define APPENDPATH() \
+	do { \
+		if (tmppath && access(tmppath, R_OK) != -1) { \
+			if (hmagicpath == NULL) \
+				hmagicpath = tmppath; \
+			else { \
+				if (asprintf(&hmagicp, "%s%c%s", hmagicpath, \
+				    PATHSEP, tmppath) >= 0) { \
+					free(hmagicpath); \
+					hmagicpath = hmagicp; \
+				} \
+				free(tmppath); \
+			} \
+			tmppath = NULL; \
+		} \
+	} while (/*CONSTCOND*/0)
+				
+	if (default_magic) {
+		free(default_magic);
+		default_magic = NULL;
+	}
+
+	/* First, try to get user-specific magic file */
+	if ((home = getenv("LOCALAPPDATA")) == NULL) {
+		if ((home = getenv("USERPROFILE")) != NULL)
+			if (asprintf(&tmppath,
+			    "%s/Local Settings/Application Data%s", home,
+			    hmagic) < 0)
+				tmppath = NULL;
+	} else {
+		if (asprintf(&tmppath, "%s%s", home, hmagic) < 0)
+			tmppath = NULL;
+	}
+
+	APPENDPATH();
+
+	/* Second, try to get a magic file from Common Files */
+	if ((home = getenv("COMMONPROGRAMFILES")) != NULL) {
+		if (asprintf(&tmppath, "%s%s", home, hmagic) >= 0)
+			APPENDPATH();
+	}
+
+	/* Third, try to get magic file relative to dll location */
+	LPTSTR dllpath = malloc(sizeof(*dllpath) * (MAX_PATH + 1));
+	dllpath[MAX_PATH] = 0;	/* just in case long path gets truncated and not null terminated */
+	if (GetModuleFileNameA(NULL, dllpath, MAX_PATH)){
+		PathRemoveFileSpecA(dllpath);
+		if (strlen(dllpath) > 3 &&
+		    stricmp(&dllpath[strlen(dllpath) - 3], "bin") == 0) {
+			if (asprintf(&tmppath,
+			    "%s/../share/misc/magic.mgc", dllpath) >= 0)
+				APPENDPATH();
+		} else {
+			if (asprintf(&tmppath,
+			    "%s/share/misc/magic.mgc", dllpath) >= 0)
+				APPENDPATH();
+			else if (asprintf(&tmppath,
+			    "%s/magic.mgc", dllpath) >= 0)
+				APPENDPATH();
+		}
+	}
+
+	/* Don't put MAGIC constant - it likely points to a file within MSys
+	tree */
+	default_magic = hmagicpath;
+	return default_magic;
+#endif
+}
+
+public const char *
+magic_getpath(const char *magicfile, int action)
+{
+	if (magicfile != NULL)
+		return magicfile;
+
+	magicfile = getenv("MAGIC");
+	if (magicfile != NULL)
+		return magicfile;
+
+	return action == FILE_LOAD ? get_default_magic() : MAGIC;
+}
+
+public struct magic_set *
+magic_open(int flags)
+{
+	struct magic_set *ms;
+	size_t len;
+
+	if ((ms = CAST(struct magic_set *, calloc((size_t)1,
+	    sizeof(struct magic_set)))) == NULL)
+		return NULL;
+
+	if (magic_setflags(ms, flags) == -1) {
+		errno = EINVAL;
+		goto free;
+	}
+
+	ms->o.buf = ms->o.pbuf = NULL;
+	len = (ms->c.len = 10) * sizeof(*ms->c.li);
+
+	if ((ms->c.li = CAST(struct level_info *, malloc(len))) == NULL)
+		goto free;
+
+	ms->event_flags = 0;
+	ms->error = -1;
+	ms->mlist = NULL;
+	ms->file = "unknown";
+	ms->line = 0;
+	return ms;
+free:
+	free(ms);
+	return NULL;
+}
+
+private void
+free_mlist(struct mlist *mlist)
+{
+	struct mlist *ml;
+
+	if (mlist == NULL)
+		return;
+
+	for (ml = mlist->next; ml != mlist;) {
+		struct mlist *next = ml->next;
+		struct magic *mg = ml->magic;
+		file_delmagic(mg, ml->mapped, ml->nmagic);
+		free(ml);
+		ml = next;
+	}
+	free(ml);
+}
+
+private int
+unreadable_info(struct magic_set *ms, mode_t md, const char *file)
+{
+	/* We cannot open it, but we were able to stat it. */
+	if (access(file, W_OK) == 0)
+		if (file_printf(ms, "writable, ") == -1)
+			return -1;
+	if (access(file, X_OK) == 0)
+		if (file_printf(ms, "executable, ") == -1)
+			return -1;
+	if (S_ISREG(md))
+		if (file_printf(ms, "regular file, ") == -1)
+			return -1;
+	if (file_printf(ms, "no read permission") == -1)
+		return -1;
+	return 0;
+}
+
+public void
+magic_close(struct magic_set *ms)
+{
+	free_mlist(ms->mlist);
+	free(ms->o.pbuf);
+	free(ms->o.buf);
+	free(ms->c.li);
+	free(ms);
+}
+
+/*
+ * load a magic file
+ */
+public int
+magic_load(struct magic_set *ms, const char *magicfile)
+{
+	struct mlist *ml = file_apprentice(ms, magicfile, FILE_LOAD);
+	if (ml) {
+		free_mlist(ms->mlist);
+		ms->mlist = ml;
+		return 0;
+	}
+	return -1;
+}
+
+public int
+magic_compile(struct magic_set *ms, const char *magicfile)
+{
+	struct mlist *ml = file_apprentice(ms, magicfile, FILE_COMPILE);
+	free_mlist(ml);
+	return ml ? 0 : -1;
+}
+
+public int
+magic_check(struct magic_set *ms, const char *magicfile)
+{
+	struct mlist *ml = file_apprentice(ms, magicfile, FILE_CHECK);
+	free_mlist(ml);
+	return ml ? 0 : -1;
+}
+
+public int
+magic_list(struct magic_set *ms, const char *magicfile)
+{
+	struct mlist *ml = file_apprentice(ms, magicfile, FILE_LIST);
+	free_mlist(ml);
+	return ml ? 0 : -1;
+}
+
+private void
+close_and_restore(const struct magic_set *ms, const char *name, int fd,
+    const struct stat *sb)
+{
+	if (fd == STDIN_FILENO)
+		return;
+	(void) close(fd);
+
+	if ((ms->flags & MAGIC_PRESERVE_ATIME) != 0) {
+		/*
+		 * Try to restore access, modification times if read it.
+		 * This is really *bad* because it will modify the status
+		 * time of the file... And of course this will affect
+		 * backup programs
+		 */
+#ifdef HAVE_UTIMES
+		struct timeval  utsbuf[2];
+		(void)memset(utsbuf, 0, sizeof(utsbuf));
+		utsbuf[0].tv_sec = sb->st_atime;
+		utsbuf[1].tv_sec = sb->st_mtime;
+
+		(void) utimes(name, utsbuf); /* don't care if loses */
+#elif defined(HAVE_UTIME_H) || defined(HAVE_SYS_UTIME_H)
+		struct utimbuf  utbuf;
+
+		(void)memset(&utbuf, 0, sizeof(utbuf));
+		utbuf.actime = sb->st_atime;
+		utbuf.modtime = sb->st_mtime;
+		(void) utime(name, &utbuf); /* don't care if loses */
+#endif
+	}
+}
+
+#ifndef COMPILE_ONLY
+
+/*
+ * find type of descriptor
+ */
+public const char *
+magic_descriptor(struct magic_set *ms, int fd)
+{
+	return file_or_fd(ms, NULL, fd);
+}
+
+/*
+ * find type of named file
+ */
+public const char *
+magic_file(struct magic_set *ms, const char *inname)
+{
+	return file_or_fd(ms, inname, STDIN_FILENO);
+}
+
+private const char *
+file_or_fd(struct magic_set *ms, const char *inname, int fd)
+{
+	int	rv = -1;
+	unsigned char *buf;
+	struct stat	sb;
+	ssize_t nbytes = 0;	/* number of bytes read from a datafile */
+	int	ispipe = 0;
+
+	/*
+	 * one extra for terminating '\0', and
+	 * some overlapping space for matches near EOF
+	 */
+#define SLOP (1 + sizeof(union VALUETYPE))
+	if ((buf = CAST(unsigned char *, malloc(HOWMANY + SLOP))) == NULL)
+		return NULL;
+
+	if (file_reset(ms) == -1)
+		goto done;
+
+	switch (file_fsmagic(ms, inname, &sb)) {
+	case -1:		/* error */
+		goto done;
+	case 0:			/* nothing found */
+		break;
+	default:		/* matched it and printed type */
+		rv = 0;
+		goto done;
+	}
+
+	if (inname == NULL) {
+		if (fstat(fd, &sb) == 0 && S_ISFIFO(sb.st_mode))
+			ispipe = 1;
+	} else {
+		int flags = O_RDONLY|O_BINARY;
+
+		if (stat(inname, &sb) == 0 && S_ISFIFO(sb.st_mode)) {
+#ifdef O_NONBLOCK
+			flags |= O_NONBLOCK;
+#endif
+			ispipe = 1;
+		}
+
+		errno = 0;
+		if ((fd = open(inname, flags)) < 0) {
+			if (unreadable_info(ms, sb.st_mode, inname) == -1)
+				goto done;
+			rv = 0;
+			goto done;
+		}
+#ifdef O_NONBLOCK
+		if ((flags = fcntl(fd, F_GETFL)) != -1) {
+			flags &= ~O_NONBLOCK;
+			(void)fcntl(fd, F_SETFL, flags);
+		}
+#endif
+	}
+
+	/*
+	 * try looking at the first HOWMANY bytes
+	 */
+	if (ispipe) {
+		ssize_t r = 0;
+
+		while ((r = sread(fd, (void *)&buf[nbytes],
+		    (size_t)(HOWMANY - nbytes), 1)) > 0) {
+			nbytes += r;
+			if (r < PIPE_BUF) break;
+		}
+
+		if (nbytes == 0) {
+			/* We can not read it, but we were able to stat it. */
+			if (unreadable_info(ms, sb.st_mode, inname) == -1)
+				goto done;
+			rv = 0;
+			goto done;
+		}
+
+	} else {
+		if ((nbytes = read(fd, (char *)buf, HOWMANY)) == -1) {
+			file_error(ms, errno, "cannot read `%s'", inname);
+			goto done;
+		}
+	}
+
+	(void)memset(buf + nbytes, 0, SLOP); /* NUL terminate */
+	if (file_buffer(ms, fd, inname, buf, (size_t)nbytes) == -1)
+		goto done;
+	rv = 0;
+done:
+	free(buf);
+	close_and_restore(ms, inname, fd, &sb);
+	return rv == 0 ? file_getbuffer(ms) : NULL;
+}
+
+
+public const char *
+magic_buffer(struct magic_set *ms, const void *buf, size_t nb)
+{
+	if (file_reset(ms) == -1)
+		return NULL;
+	/*
+	 * The main work is done here!
+	 * We have the file name and/or the data buffer to be identified.
+	 */
+	if (file_buffer(ms, -1, NULL, buf, nb) == -1) {
+		return NULL;
+	}
+	return file_getbuffer(ms);
+}
+#endif
+
+public const char *
+magic_error(struct magic_set *ms)
+{
+	return (ms->event_flags & EVENT_HAD_ERR) ? ms->o.buf : NULL;
+}
+
+public int
+magic_errno(struct magic_set *ms)
+{
+	return (ms->event_flags & EVENT_HAD_ERR) ? ms->error : 0;
+}
+
+public int
+magic_setflags(struct magic_set *ms, int flags)
+{
+#if !defined(HAVE_UTIME) && !defined(HAVE_UTIMES)
+	if (flags & MAGIC_PRESERVE_ATIME)
+		return -1;
+#endif
+	ms->flags = flags;
+	return 0;
+}
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/magic.h b/framework/modules/c_FileTypeSigModule/file-5.08/src/magic.h
new file mode 100755
index 0000000000000000000000000000000000000000..d87523deefa7326c4748a84c5322afd646268fcb
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/magic.h
@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) Christos Zoulas 2003.
+ * All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice immediately at the beginning of the file, without modification,
+ *    this list of conditions, and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+#ifndef _MAGIC_H
+#define _MAGIC_H
+
+#include <sys/types.h>
+
+#define	MAGIC_NONE		0x000000 /* No flags */
+#define	MAGIC_DEBUG		0x000001 /* Turn on debugging */
+#define	MAGIC_SYMLINK		0x000002 /* Follow symlinks */
+#define	MAGIC_COMPRESS		0x000004 /* Check inside compressed files */
+#define	MAGIC_DEVICES		0x000008 /* Look at the contents of devices */
+#define	MAGIC_MIME_TYPE		0x000010 /* Return the MIME type */
+#define	MAGIC_CONTINUE		0x000020 /* Return all matches */
+#define	MAGIC_CHECK		0x000040 /* Print warnings to stderr */
+#define	MAGIC_PRESERVE_ATIME	0x000080 /* Restore access time on exit */
+#define	MAGIC_RAW		0x000100 /* Don't translate unprintable chars */
+#define	MAGIC_ERROR		0x000200 /* Handle ENOENT etc as real errors */
+#define	MAGIC_MIME_ENCODING	0x000400 /* Return the MIME encoding */
+#define MAGIC_MIME		(MAGIC_MIME_TYPE|MAGIC_MIME_ENCODING)
+#define	MAGIC_APPLE		0x000800 /* Return the Apple creator and type */
+
+#define	MAGIC_NO_CHECK_COMPRESS	0x001000 /* Don't check for compressed files */
+#define	MAGIC_NO_CHECK_TAR	0x002000 /* Don't check for tar files */
+#define	MAGIC_NO_CHECK_SOFT	0x004000 /* Don't check magic entries */
+#define	MAGIC_NO_CHECK_APPTYPE	0x008000 /* Don't check application type */
+#define	MAGIC_NO_CHECK_ELF	0x010000 /* Don't check for elf details */
+#define	MAGIC_NO_CHECK_TEXT	0x020000 /* Don't check for text files */
+#define	MAGIC_NO_CHECK_CDF	0x040000 /* Don't check for cdf files */
+#define	MAGIC_NO_CHECK_TOKENS	0x100000 /* Don't check tokens */
+#define MAGIC_NO_CHECK_ENCODING 0x200000 /* Don't check text encodings */
+
+/* No built-in tests; only consult the magic file */
+#define MAGIC_NO_CHECK_BUILTIN	0x3fb000
+
+/* Defined for backwards compatibility (renamed) */
+#define	MAGIC_NO_CHECK_ASCII	MAGIC_NO_CHECK_TEXT
+
+/* Defined for backwards compatibility; do nothing */
+#define	MAGIC_NO_CHECK_FORTRAN	0x000000 /* Don't check ascii/fortran */
+#define	MAGIC_NO_CHECK_TROFF	0x000000 /* Don't check ascii/troff */
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct magic_set *magic_t;
+magic_t magic_open(int);
+void magic_close(magic_t);
+
+const char *magic_getpath(const char *, int);
+const char *magic_file(magic_t, const char *);
+const char *magic_descriptor(magic_t, int);
+const char *magic_buffer(magic_t, const void *, size_t);
+
+const char *magic_error(magic_t);
+int magic_setflags(magic_t, int);
+
+int magic_load(magic_t, const char *);
+int magic_compile(magic_t, const char *);
+int magic_check(magic_t, const char *);
+int magic_list(magic_t, const char *);
+int magic_errno(magic_t);
+
+#ifdef __cplusplus
+};
+#endif
+
+#endif /* _MAGIC_H */
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/mygetopt.h b/framework/modules/c_FileTypeSigModule/file-5.08/src/mygetopt.h
new file mode 100755
index 0000000000000000000000000000000000000000..ef87525eaf5bb447ffbda32f39a2e14175ed6bae
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/mygetopt.h
@@ -0,0 +1,68 @@
+/*	$NetBSD: getopt.h,v 1.8 2007/11/06 19:21:18 christos Exp $	*/
+
+/*-
+ * Copyright (c) 2000 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Dieter Baron and Thomas Klausner.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *        This product includes software developed by the NetBSD
+ *        Foundation, Inc. and its contributors.
+ * 4. Neither the name of The NetBSD Foundation nor the names of its
+ *    contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _GETOPT_H_
+#define _GETOPT_H_
+
+#include <unistd.h>
+
+/*
+ * Gnu like getopt_long() and BSD4.4 getsubopt()/optreset extensions
+ */
+#define no_argument        0
+#define required_argument  1
+#define optional_argument  2
+
+struct option {
+	/* name of long option */
+	const char *name;
+	/*
+	 * one of no_argument, required_argument, and optional_argument:
+	 * whether option takes an argument
+	 */
+	int has_arg;
+	/* if not NULL, set *flag to val when option found */
+	int *flag;
+	/* if flag not NULL, value to set *flag to; else return value */
+	int val;
+};
+
+int getopt_long(int, char * const *, const char *,
+    const struct option *, int *);
+ 
+#endif /* !_GETOPT_H_ */
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/names.h b/framework/modules/c_FileTypeSigModule/file-5.08/src/names.h
new file mode 100755
index 0000000000000000000000000000000000000000..f6c13ef978ee647507c26fd39ea129911072d908
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/names.h
@@ -0,0 +1,176 @@
+/*
+ * Copyright (c) Ian F. Darwin 1986-1995.
+ * Software written by Ian F. Darwin and others;
+ * maintained 1995-present by Christos Zoulas and others.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice immediately at the beginning of the file, without modification,
+ *    this list of conditions, and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *  
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * Names.h - names and types used by ascmagic in file(1).
+ * These tokens are here because they can appear anywhere in
+ * the first HOWMANY bytes, while tokens in MAGIC must
+ * appear at fixed offsets into the file. Don't make HOWMANY
+ * too high unless you have a very fast CPU.
+ *
+ * $File: names.h,v 1.33 2010/10/08 21:58:44 christos Exp $
+ */
+
+/*
+	modified by Chris Lowth - 9 April 2000
+	to add mime type strings to the types table.
+*/
+
+/* these types are used to index the table 'types': keep em in sync! */
+#define	L_C	0		/* first and foremost on UNIX */
+#define	L_CC	1		/* Bjarne's postincrement */
+#define	L_MAKE	2		/* Makefiles */
+#define	L_PLI	3		/* PL/1 */
+#define	L_MACH	4		/* some kinda assembler */
+#define	L_ENG	5		/* English */
+#define	L_PAS	6		/* Pascal */
+#define	L_MAIL	7		/* Electronic mail */
+#define	L_NEWS	8		/* Usenet Netnews */
+#define	L_JAVA	9		/* Java code */
+#define	L_HTML	10		/* HTML */
+#define	L_BCPL	11		/* BCPL */
+#define	L_M4	12		/* M4 */
+#define	L_PO	13		/* PO */
+
+static const struct {
+	char human[48];
+	char mime[16];
+} types[] = {
+	{ "C program",					"text/x-c", },
+	{ "C++ program",				"text/x-c++" },
+	{ "make commands",				"text/x-makefile" },
+	{ "PL/1 program",				"text/x-pl1" },
+	{ "assembler program",				"text/x-asm" },
+	{ "English",					"text/plain" },
+	{ "Pascal program",				"text/x-pascal" },
+	{ "mail",					"text/x-mail" },
+	{ "news",					"text/x-news" },
+	{ "Java program",				"text/x-java" },
+	{ "HTML document",				"text/html", },
+	{ "BCPL program",				"text/x-bcpl" },
+	{ "M4 macro language pre-processor",		"text/x-m4" },
+	{ "PO (gettext message catalogue)",             "text/x-po" },
+	{ "cannot happen error on names.h/types",	"error/x-error" }
+};
+
+/*
+ * XXX - how should we distinguish Java from C++?
+ * The trick used in a Debian snapshot, of having "extends" or "implements"
+ * as tags for Java, doesn't work very well, given that those keywords
+ * are often preceded by "class", which flags it as C++.
+ *
+ * Perhaps we need to be able to say
+ *
+ *	If "class" then
+ *
+ *		if "extends" or "implements" then
+ *			Java
+ *		else
+ *			C++
+ *	endif
+ *
+ * Or should we use other keywords, such as "package" or "import"?
+ * Unfortunately, Ada95 uses "package", and Modula-3 uses "import",
+ * although I infer from the language spec at
+ *
+ *	http://www.research.digital.com/SRC/m3defn/html/m3.html
+ *
+ * that Modula-3 uses "IMPORT" rather than "import", i.e. it must be
+ * in all caps.
+ *
+ * So, for now, we go with "import".  We must put it before the C++
+ * stuff, so that we don't misidentify Java as C++.  Not using "package"
+ * means we won't identify stuff that defines a package but imports
+ * nothing; hopefully, very little Java code imports nothing (one of the
+ * reasons for doing OO programming is to import as much as possible
+ * and write only what you need to, right?).
+ *
+ * Unfortunately, "import" may cause us to misidentify English text
+ * as Java, as it comes after "the" and "The".  Perhaps we need a fancier
+ * heuristic to identify Java?
+ */
+static const struct names {
+	char name[14];
+	unsigned char type;
+	unsigned char score;
+
+} names[] = {
+	/* These must be sorted by eye for optimal hit rate */
+	/* Add to this list only after substantial meditation */
+	{"msgid",	L_PO, 1 },
+	{"dnl",		L_M4, 2 },
+	{"import",	L_JAVA, 2 },
+	{"\"libhdr\"",	L_BCPL, 2 },
+	{"\"LIBHDR\"",	L_BCPL, 2 },
+	{"//",		L_CC, 2 },
+	{"template",	L_CC, 1 },
+	{"virtual",	L_CC, 1 },
+	{"class",	L_CC, 2 },
+	{"public:",	L_CC, 2 },
+	{"private:",	L_CC, 2 },
+	{"/*",		L_C, 2 },	/* must precede "The", "the", etc. */
+	{"#include",	L_C, 2 },
+	{"char",	L_C, 2 },
+	{"The",		L_ENG, 2 },
+	{"the",		L_ENG, 2 },
+	{"double",	L_C, 1 },
+	{"extern",	L_C, 2 },
+	{"float",	L_C, 1 },
+	{"struct",	L_C, 1 },
+	{"union",	L_C, 1 },
+	{"main(",	L_C, 2 },
+	{"CFLAGS",	L_MAKE, 2 },
+	{"LDFLAGS",	L_MAKE, 2 },
+	{"all:",	L_MAKE, 2 },
+	{".PRECIOUS",	L_MAKE, 2 },
+	{".ascii",	L_MACH, 2 },
+	{".asciiz",	L_MACH, 2 },
+	{".byte",	L_MACH, 2 },
+	{".even",	L_MACH, 2 },
+	{".globl",	L_MACH, 2 },
+	{".text",	L_MACH, 2 },
+	{"clr",		L_MACH, 2 },
+	{"(input,",	L_PAS, 2 },
+	{"program",	L_PAS, 1 },
+	{"record",	L_PAS, 1 },
+	{"dcl",		L_PLI, 2 },
+	{"Received:",	L_MAIL, 2 },
+	{">From",	L_MAIL, 2 },
+	{"Return-Path:",L_MAIL, 2 },
+	{"Cc:",		L_MAIL, 2 },
+	{"Newsgroups:",	L_NEWS, 2 },
+	{"Path:",	L_NEWS, 2 },
+	{"Organization:",L_NEWS, 2 },
+	{"href=",	L_HTML, 2 },
+	{"HREF=",	L_HTML, 2 },
+	{"<body",	L_HTML, 2 },
+	{"<BODY",	L_HTML, 2 },
+	{"<html",	L_HTML, 2 },
+	{"<HTML",	L_HTML, 2 },
+	{"<!--",	L_HTML, 2 },
+};
+#define NNAMES (sizeof(names)/sizeof(struct names))
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/print.c b/framework/modules/c_FileTypeSigModule/file-5.08/src/print.c
new file mode 100755
index 0000000000000000000000000000000000000000..5be8c767f3783ecb23eb7f4f35db7e7568668bb5
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/print.c
@@ -0,0 +1,240 @@
+/*
+ * Copyright (c) Ian F. Darwin 1986-1995.
+ * Software written by Ian F. Darwin and others;
+ * maintained 1995-present by Christos Zoulas and others.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice immediately at the beginning of the file, without modification,
+ *    this list of conditions, and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *  
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * print.c - debugging printout routines
+ */
+
+#include "file.h"
+
+#ifndef lint
+FILE_RCSID("@(#)$File: print.c,v 1.69 2010/07/21 16:47:18 christos Exp $")
+#endif  /* lint */
+
+#include <string.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#include <time.h>
+
+#define SZOF(a)	(sizeof(a) / sizeof(a[0]))
+
+#ifndef COMPILE_ONLY
+protected void
+file_mdump(struct magic *m)
+{
+	private const char optyp[] = { FILE_OPS };
+
+	(void) fprintf(stderr, "[%u", m->lineno);
+	(void) fprintf(stderr, ">>>>>>>> %u" + 8 - (m->cont_level & 7),
+		       m->offset);
+
+	if (m->flag & INDIR) {
+		(void) fprintf(stderr, "(%s,",
+			       /* Note: type is unsigned */
+			       (m->in_type < file_nnames) ? 
+					file_names[m->in_type] : "*bad*");
+		if (m->in_op & FILE_OPINVERSE)
+			(void) fputc('~', stderr);
+		(void) fprintf(stderr, "%c%u),",
+			       ((size_t)(m->in_op & FILE_OPS_MASK) <
+			       SZOF(optyp)) ? 
+					optyp[m->in_op & FILE_OPS_MASK] : '?',
+				m->in_offset);
+	}
+	(void) fprintf(stderr, " %s%s", (m->flag & UNSIGNED) ? "u" : "",
+		       /* Note: type is unsigned */
+		       (m->type < file_nnames) ? file_names[m->type] : "*bad*");
+	if (m->mask_op & FILE_OPINVERSE)
+		(void) fputc('~', stderr);
+
+	if (IS_STRING(m->type)) {
+		if (m->str_flags) {
+			(void) fputc('/', stderr);
+			if (m->str_flags & STRING_COMPACT_WHITESPACE) 
+				(void) fputc(CHAR_COMPACT_WHITESPACE, stderr);
+			if (m->str_flags & STRING_COMPACT_OPTIONAL_WHITESPACE) 
+				(void) fputc(CHAR_COMPACT_OPTIONAL_WHITESPACE,
+				    stderr);
+			if (m->str_flags & STRING_IGNORE_LOWERCASE) 
+				(void) fputc(CHAR_IGNORE_LOWERCASE, stderr);
+			if (m->str_flags & STRING_IGNORE_UPPERCASE) 
+				(void) fputc(CHAR_IGNORE_UPPERCASE, stderr);
+			if (m->str_flags & REGEX_OFFSET_START) 
+				(void) fputc(CHAR_REGEX_OFFSET_START, stderr);
+		}
+		if (m->str_range)
+			(void) fprintf(stderr, "/%u", m->str_range);
+	}
+	else {
+		if ((size_t)(m->mask_op & FILE_OPS_MASK) < SZOF(optyp))
+			(void) fputc(optyp[m->mask_op & FILE_OPS_MASK], stderr);
+		else
+			(void) fputc('?', stderr);
+			
+		if (m->num_mask) {
+			(void) fprintf(stderr, "%.8llx",
+			    (unsigned long long)m->num_mask);
+		}
+	}
+	(void) fprintf(stderr, ",%c", m->reln);
+
+	if (m->reln != 'x') {
+		switch (m->type) {
+		case FILE_BYTE:
+		case FILE_SHORT:
+		case FILE_LONG:
+		case FILE_LESHORT:
+		case FILE_LELONG:
+		case FILE_MELONG:
+		case FILE_BESHORT:
+		case FILE_BELONG:
+			(void) fprintf(stderr, "%d", m->value.l);
+			break;
+		case FILE_BEQUAD:
+		case FILE_LEQUAD:
+		case FILE_QUAD:
+			(void) fprintf(stderr, "%" INT64_T_FORMAT "d",
+			    (unsigned long long)m->value.q);
+			break;
+		case FILE_PSTRING:
+		case FILE_STRING:
+		case FILE_REGEX:
+		case FILE_BESTRING16:
+		case FILE_LESTRING16:
+		case FILE_SEARCH:
+			file_showstr(stderr, m->value.s, (size_t)m->vallen);
+			break;
+		case FILE_DATE:
+		case FILE_LEDATE:
+		case FILE_BEDATE:
+		case FILE_MEDATE:
+			(void)fprintf(stderr, "%s,",
+			    file_fmttime(m->value.l, 1));
+			break;
+		case FILE_LDATE:
+		case FILE_LELDATE:
+		case FILE_BELDATE:
+		case FILE_MELDATE:
+			(void)fprintf(stderr, "%s,",
+			    file_fmttime(m->value.l, 0));
+			break;
+		case FILE_QDATE:
+		case FILE_LEQDATE:
+		case FILE_BEQDATE:
+			(void)fprintf(stderr, "%s,",
+			    file_fmttime((uint32_t)m->value.q, 1));
+			break;
+		case FILE_QLDATE:
+		case FILE_LEQLDATE:
+		case FILE_BEQLDATE:
+			(void)fprintf(stderr, "%s,",
+			    file_fmttime((uint32_t)m->value.q, 0));
+			break;
+		case FILE_FLOAT:
+		case FILE_BEFLOAT:
+		case FILE_LEFLOAT:
+			(void) fprintf(stderr, "%G", m->value.f);
+			break;
+		case FILE_DOUBLE:
+		case FILE_BEDOUBLE:
+		case FILE_LEDOUBLE:
+			(void) fprintf(stderr, "%G", m->value.d);
+			break;
+		case FILE_DEFAULT:
+			/* XXX - do anything here? */
+			break;
+		default:
+			(void) fputs("*bad*", stderr);
+			break;
+		}
+	}
+	(void) fprintf(stderr, ",\"%s\"]\n", m->desc);
+}
+#endif
+
+/*VARARGS*/
+protected void
+file_magwarn(struct magic_set *ms, const char *f, ...)
+{
+	va_list va;
+
+	/* cuz we use stdout for most, stderr here */
+	(void) fflush(stdout); 
+
+	if (ms->file)
+		(void) fprintf(stderr, "%s, %lu: ", ms->file,
+		    (unsigned long)ms->line);
+	(void) fprintf(stderr, "Warning: ");
+	va_start(va, f);
+	(void) vfprintf(stderr, f, va);
+	va_end(va);
+	(void) fputc('\n', stderr);
+}
+
+protected const char *
+file_fmttime(uint32_t v, int local)
+{
+	char *pp;
+	time_t t = (time_t)v;
+	struct tm *tm;
+
+	if (local) {
+		pp = ctime(&t);
+	} else {
+#ifndef HAVE_DAYLIGHT
+		private int daylight = 0;
+#ifdef HAVE_TM_ISDST
+		private time_t now = (time_t)0;
+
+		if (now == (time_t)0) {
+			struct tm *tm1;
+			(void)time(&now);
+			tm1 = localtime(&now);
+			if (tm1 == NULL)
+				goto out;
+			daylight = tm1->tm_isdst;
+		}
+#endif /* HAVE_TM_ISDST */
+#endif /* HAVE_DAYLIGHT */
+		if (daylight)
+			t += 3600;
+		tm = gmtime(&t);
+		if (tm == NULL)
+			goto out;
+		pp = asctime(tm);
+	}
+
+	if (pp == NULL)
+		goto out;
+	pp[strcspn(pp, "\n")] = '\0';
+	return pp;
+out:
+	return "*Invalid time*";
+}
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/readcdf.c b/framework/modules/c_FileTypeSigModule/file-5.08/src/readcdf.c
new file mode 100755
index 0000000000000000000000000000000000000000..eb5d71e9f2038911a5014f78c479150026acb912
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/readcdf.c
@@ -0,0 +1,285 @@
+/*-
+ * Copyright (c) 2008 Christos Zoulas
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "file.h"
+
+#ifndef lint
+FILE_RCSID("@(#)$File: readcdf.c,v 1.25 2011/02/10 21:35:05 christos Exp $")
+#endif
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <time.h>
+#include <ctype.h>
+
+#include "cdf.h"
+#include "magic.h"
+
+#define NOTMIME(ms) (((ms)->flags & MAGIC_MIME) == 0)
+
+private int
+cdf_file_property_info(struct magic_set *ms, const cdf_property_info_t *info,
+    size_t count)
+{
+        size_t i;
+        cdf_timestamp_t tp;
+        struct timespec ts;
+        char buf[64];
+        const char *str = "vnd.ms-office";
+        const char *s;
+        int len;
+
+        for (i = 0; i < count; i++) {
+                cdf_print_property_name(buf, sizeof(buf), info[i].pi_id);
+                switch (info[i].pi_type) {
+                case CDF_NULL:
+                        break;
+                case CDF_SIGNED16:
+                        if (NOTMIME(ms) && file_printf(ms, ", %s: %hd", buf,
+                            info[i].pi_s16) == -1)
+                                return -1;
+                        break;
+                case CDF_SIGNED32:
+                        if (NOTMIME(ms) && file_printf(ms, ", %s: %d", buf,
+                            info[i].pi_s32) == -1)
+                                return -1;
+                        break;
+                case CDF_UNSIGNED32:
+                        if (NOTMIME(ms) && file_printf(ms, ", %s: %u", buf,
+                            info[i].pi_u32) == -1)
+                                return -1;
+                        break;
+                case CDF_LENGTH32_STRING:
+                case CDF_LENGTH32_WSTRING:
+                        len = info[i].pi_str.s_len;
+                        if (len > 1) {
+                                char vbuf[1024];
+                                size_t j, k = 1;
+
+                                if (info[i].pi_type == CDF_LENGTH32_WSTRING)
+                                    k++;
+                                s = info[i].pi_str.s_buf;
+                                for (j = 0; j < sizeof(vbuf) && len--;
+                                    j++, s += k) {
+                                        if (*s == '\0')
+                                                break;
+                                        if (isprint((unsigned char)*s))
+                                                vbuf[j] = *s;
+                                }
+                                if (j == sizeof(vbuf))
+                                        --j;
+                                vbuf[j] = '\0';
+                                if (NOTMIME(ms)) {
+                                        if (vbuf[0]) {
+                                                if (file_printf(ms, ", %s: %s",
+                                                    buf, vbuf) == -1)
+                                                        return -1;
+                                        }
+                                } else if (info[i].pi_id ==
+                                        CDF_PROPERTY_NAME_OF_APPLICATION) {
+                                        if (strstr(vbuf, "Word"))
+                                                str = "msword";
+                                        else if (strstr(vbuf, "Excel"))
+                                                str = "vnd.ms-excel";
+                                        else if (strstr(vbuf, "Powerpoint"))
+                                                str = "vnd.ms-powerpoint";
+                                        else if (strstr(vbuf,
+                                            "Crystal Reports"))
+                                                str = "x-rpt";
+                                }
+                        }
+                        break;
+                case CDF_FILETIME:
+                        tp = info[i].pi_tp;
+                        if (tp != 0) {
+                                if (tp < 1000000000000000LL) {
+                                        char tbuf[64];
+                                        cdf_print_elapsed_time(tbuf,
+                                            sizeof(tbuf), tp);
+                                        if (NOTMIME(ms) && file_printf(ms,
+                                            ", %s: %s", buf, tbuf) == -1)
+                                                return -1;
+                                } else {
+                                        char *c, *ec;
+                                        cdf_timestamp_to_timespec(&ts, tp);
+                                        c = cdf_ctime(&ts.tv_sec);
+                                        if ((ec = strchr(c, '\n')) != NULL)
+                                                *ec = '\0';
+
+                                        if (NOTMIME(ms) && file_printf(ms,
+                                            ", %s: %s", buf, c) == -1)
+                                                return -1;
+                                }
+                        }
+                        break;
+                case CDF_CLIPBOARD:
+                        break;
+                default:
+                        return -1;
+                }
+        }
+        if (!NOTMIME(ms)) {
+                if (file_printf(ms, "application/%s", str) == -1)
+                        return -1;
+        }
+        return 1;
+}
+
+private int
+cdf_file_summary_info(struct magic_set *ms, const cdf_header_t *h,
+    const cdf_stream_t *sst)
+{
+        cdf_summary_info_header_t si;
+        cdf_property_info_t *info;
+        size_t count;
+        int m;
+
+        if (cdf_unpack_summary_info(sst, h, &si, &info, &count) == -1)
+                return -1;
+
+        if (NOTMIME(ms)) {
+                if (file_printf(ms, "Composite Document File V2 Document") == -1)
+                        return -1;
+
+                if (file_printf(ms, ", %s Endian",
+                    si.si_byte_order == 0xfffe ?  "Little" : "Big") == -1)
+                        return -1;
+                switch (si.si_os) {
+                case 2:
+                        if (file_printf(ms, ", Os: Windows, Version %d.%d",
+                            si.si_os_version & 0xff,
+                            (uint32_t)si.si_os_version >> 8) == -1)
+                                return -1;
+                        break;
+                case 1:
+                        if (file_printf(ms, ", Os: MacOS, Version %d.%d",
+                            (uint32_t)si.si_os_version >> 8,
+                            si.si_os_version & 0xff) == -1)
+                                return -1;
+                        break;
+                default:
+                        if (file_printf(ms, ", Os %d, Version: %d.%d", si.si_os,
+                            si.si_os_version & 0xff,
+                            (uint32_t)si.si_os_version >> 8) == -1)
+                                return -1;
+                        break;
+                }
+        }
+
+        m = cdf_file_property_info(ms, info, count);
+        free(info);
+
+        return m;
+}
+
+protected int
+file_trycdf(struct magic_set *ms, int fd, const unsigned char *buf,
+    size_t nbytes)
+{
+        cdf_info_t info;
+        cdf_header_t h;
+        cdf_sat_t sat, ssat;
+        cdf_stream_t sst, scn;
+        cdf_dir_t dir;
+        int i;
+        const char *expn = "";
+        const char *corrupt = "corrupt: ";
+
+        info.i_fd = fd;
+        info.i_buf = buf;
+        info.i_len = nbytes;
+        if (ms->flags & MAGIC_APPLE)
+                return 0;
+        if (cdf_read_header(&info, &h) == -1)
+                return 0;
+#ifdef CDF_DEBUG
+        cdf_dump_header(&h);
+#endif
+
+        if ((i = cdf_read_sat(&info, &h, &sat)) == -1) {
+                expn = "Can't read SAT";
+                goto out0;
+        }
+#ifdef CDF_DEBUG
+        cdf_dump_sat("SAT", &sat, CDF_SEC_SIZE(&h));
+#endif
+
+        if ((i = cdf_read_ssat(&info, &h, &sat, &ssat)) == -1) {
+                expn = "Can't read SSAT";
+                goto out1;
+        }
+#ifdef CDF_DEBUG
+        cdf_dump_sat("SSAT", &ssat, CDF_SHORT_SEC_SIZE(&h));
+#endif
+
+        if ((i = cdf_read_dir(&info, &h, &sat, &dir)) == -1) {
+                expn = "Can't read directory";
+                goto out2;
+        }
+
+        if ((i = cdf_read_short_stream(&info, &h, &sat, &dir, &sst)) == -1) {
+                expn = "Cannot read short stream";
+                goto out3;
+        }
+#ifdef CDF_DEBUG
+        cdf_dump_dir(&info, &h, &sat, &ssat, &sst, &dir);
+#endif
+
+        if ((i = cdf_read_summary_info(&info, &h, &sat, &ssat, &sst, &dir,
+            &scn)) == -1) {
+                if (errno == ESRCH) {
+                        corrupt = expn;
+                        expn = "No summary info";
+                } else {
+                        expn = "Cannot read summary info";
+                }
+                goto out4;
+        }
+#ifdef CDF_DEBUG
+        cdf_dump_summary_info(&h, &scn);
+#endif
+        if ((i = cdf_file_summary_info(ms, &h, &scn)) == -1)
+                expn = "Can't expand summary_info";
+        free(scn.sst_tab);
+out4:
+        free(sst.sst_tab);
+out3:
+        free(dir.dir_tab);
+out2:
+        free(ssat.sat_tab);
+out1:
+        free(sat.sat_tab);
+out0:
+        if (i != 1) {
+                if (file_printf(ms, "Composite Document File V2 Document") == -1)
+                        return -1;
+                if (*expn)
+                        if (file_printf(ms, ", %s%s", corrupt, expn) == -1)
+                                return -1;
+                i = 1;
+        }
+        return i;
+}
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/readelf.c b/framework/modules/c_FileTypeSigModule/file-5.08/src/readelf.c
new file mode 100755
index 0000000000000000000000000000000000000000..ba25027b9410946c5a6f79eed8d77f085c8893be
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/readelf.c
@@ -0,0 +1,1230 @@
+/*
+ * Copyright (c) Christos Zoulas 2003.
+ * All Rights Reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice immediately at the beginning of the file, without modification,
+ *    this list of conditions, and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *  
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+#include "file.h"
+
+#ifndef lint
+FILE_RCSID("@(#)$File: readelf.c,v 1.88 2011/07/19 18:54:25 christos Exp $")
+#endif
+
+#ifdef BUILTIN_ELF
+#include <string.h>
+#include <ctype.h>
+#include <stdlib.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+#include "readelf.h"
+#include "magic.h"
+
+#ifdef	ELFCORE
+private int dophn_core(struct magic_set *, int, int, int, off_t, int, size_t,
+    off_t, int *);
+#endif
+private int dophn_exec(struct magic_set *, int, int, int, off_t, int, size_t,
+    off_t, int *, int);
+private int doshn(struct magic_set *, int, int, int, off_t, int, size_t, int *,
+    int);
+private size_t donote(struct magic_set *, void *, size_t, size_t, int,
+    int, size_t, int *);
+
+#define	ELF_ALIGN(a)	((((a) + align - 1) / align) * align)
+
+#define isquote(c) (strchr("'\"`", (c)) != NULL)
+
+private uint16_t getu16(int, uint16_t);
+private uint32_t getu32(int, uint32_t);
+private uint64_t getu64(int, uint64_t);
+
+private uint16_t
+getu16(int swap, uint16_t value)
+{
+	union {
+		uint16_t ui;
+		char c[2];
+	} retval, tmpval;
+
+	if (swap) {
+		tmpval.ui = value;
+
+		retval.c[0] = tmpval.c[1];
+		retval.c[1] = tmpval.c[0];
+		
+		return retval.ui;
+	} else
+		return value;
+}
+
+private uint32_t
+getu32(int swap, uint32_t value)
+{
+	union {
+		uint32_t ui;
+		char c[4];
+	} retval, tmpval;
+
+	if (swap) {
+		tmpval.ui = value;
+
+		retval.c[0] = tmpval.c[3];
+		retval.c[1] = tmpval.c[2];
+		retval.c[2] = tmpval.c[1];
+		retval.c[3] = tmpval.c[0];
+		
+		return retval.ui;
+	} else
+		return value;
+}
+
+private uint64_t
+getu64(int swap, uint64_t value)
+{
+	union {
+		uint64_t ui;
+		char c[8];
+	} retval, tmpval;
+
+	if (swap) {
+		tmpval.ui = value;
+
+		retval.c[0] = tmpval.c[7];
+		retval.c[1] = tmpval.c[6];
+		retval.c[2] = tmpval.c[5];
+		retval.c[3] = tmpval.c[4];
+		retval.c[4] = tmpval.c[3];
+		retval.c[5] = tmpval.c[2];
+		retval.c[6] = tmpval.c[1];
+		retval.c[7] = tmpval.c[0];
+		
+		return retval.ui;
+	} else
+		return value;
+}
+
+#define elf_getu16(swap, value) getu16(swap, value)
+#define elf_getu32(swap, value) getu32(swap, value)
+#ifdef USE_ARRAY_FOR_64BIT_TYPES
+# define elf_getu64(swap, array) \
+	((swap ? ((uint64_t)elf_getu32(swap, array[0])) << 32 : elf_getu32(swap, array[0])) + \
+	 (swap ? elf_getu32(swap, array[1]) : ((uint64_t)elf_getu32(swap, array[1]) << 32)))
+#else
+# define elf_getu64(swap, value) getu64(swap, value)
+#endif
+
+#define xsh_addr	(clazz == ELFCLASS32			\
+			 ? (void *) &sh32			\
+			 : (void *) &sh64)
+#define xsh_sizeof	(clazz == ELFCLASS32			\
+			 ? sizeof sh32				\
+			 : sizeof sh64)
+#define xsh_size	(clazz == ELFCLASS32			\
+			 ? elf_getu32(swap, sh32.sh_size)	\
+			 : elf_getu64(swap, sh64.sh_size))
+#define xsh_offset	(clazz == ELFCLASS32			\
+			 ? elf_getu32(swap, sh32.sh_offset)	\
+			 : elf_getu64(swap, sh64.sh_offset))
+#define xsh_type	(clazz == ELFCLASS32			\
+			 ? elf_getu32(swap, sh32.sh_type)	\
+			 : elf_getu32(swap, sh64.sh_type))
+#define xph_addr	(clazz == ELFCLASS32			\
+			 ? (void *) &ph32			\
+			 : (void *) &ph64)
+#define xph_sizeof	(clazz == ELFCLASS32			\
+			 ? sizeof ph32				\
+			 : sizeof ph64)
+#define xph_type	(clazz == ELFCLASS32			\
+			 ? elf_getu32(swap, ph32.p_type)	\
+			 : elf_getu32(swap, ph64.p_type))
+#define xph_offset	(off_t)(clazz == ELFCLASS32		\
+			 ? elf_getu32(swap, ph32.p_offset)	\
+			 : elf_getu64(swap, ph64.p_offset))
+#define xph_align	(size_t)((clazz == ELFCLASS32		\
+			 ? (off_t) (ph32.p_align ? 		\
+			    elf_getu32(swap, ph32.p_align) : 4) \
+			 : (off_t) (ph64.p_align ?		\
+			    elf_getu64(swap, ph64.p_align) : 4)))
+#define xph_filesz	(size_t)((clazz == ELFCLASS32		\
+			 ? elf_getu32(swap, ph32.p_filesz)	\
+			 : elf_getu64(swap, ph64.p_filesz)))
+#define xnh_addr	(clazz == ELFCLASS32			\
+			 ? (void *) &nh32			\
+			 : (void *) &nh64)
+#define xph_memsz	(size_t)((clazz == ELFCLASS32		\
+			 ? elf_getu32(swap, ph32.p_memsz)	\
+			 : elf_getu64(swap, ph64.p_memsz)))
+#define xnh_sizeof	(clazz == ELFCLASS32			\
+			 ? sizeof nh32				\
+			 : sizeof nh64)
+#define xnh_type	(clazz == ELFCLASS32			\
+			 ? elf_getu32(swap, nh32.n_type)	\
+			 : elf_getu32(swap, nh64.n_type))
+#define xnh_namesz	(clazz == ELFCLASS32			\
+			 ? elf_getu32(swap, nh32.n_namesz)	\
+			 : elf_getu32(swap, nh64.n_namesz))
+#define xnh_descsz	(clazz == ELFCLASS32			\
+			 ? elf_getu32(swap, nh32.n_descsz)	\
+			 : elf_getu32(swap, nh64.n_descsz))
+#define prpsoffsets(i)	(clazz == ELFCLASS32			\
+			 ? prpsoffsets32[i]			\
+			 : prpsoffsets64[i])
+#define xcap_addr	(clazz == ELFCLASS32			\
+			 ? (void *) &cap32			\
+			 : (void *) &cap64)
+#define xcap_sizeof	(clazz == ELFCLASS32			\
+			 ? sizeof cap32				\
+			 : sizeof cap64)
+#define xcap_tag	(clazz == ELFCLASS32			\
+			 ? elf_getu32(swap, cap32.c_tag)	\
+			 : elf_getu64(swap, cap64.c_tag))
+#define xcap_val	(clazz == ELFCLASS32			\
+			 ? elf_getu32(swap, cap32.c_un.c_val)	\
+			 : elf_getu64(swap, cap64.c_un.c_val))
+
+#ifdef ELFCORE
+/*
+ * Try larger offsets first to avoid false matches
+ * from earlier data that happen to look like strings.
+ */
+static const size_t	prpsoffsets32[] = {
+#ifdef USE_NT_PSINFO
+	104,		/* SunOS 5.x (command line) */
+	88,		/* SunOS 5.x (short name) */
+#endif /* USE_NT_PSINFO */
+
+	100,		/* SunOS 5.x (command line) */
+	84,		/* SunOS 5.x (short name) */
+
+	44,		/* Linux (command line) */
+	28,		/* Linux 2.0.36 (short name) */
+
+	8,		/* FreeBSD */
+};
+
+static const size_t	prpsoffsets64[] = {
+#ifdef USE_NT_PSINFO
+	152,		/* SunOS 5.x (command line) */
+	136,		/* SunOS 5.x (short name) */
+#endif /* USE_NT_PSINFO */
+
+	136,		/* SunOS 5.x, 64-bit (command line) */
+	120,		/* SunOS 5.x, 64-bit (short name) */
+
+	56,		/* Linux (command line) */
+	40,             /* Linux (tested on core from 2.4.x, short name) */
+
+	16,		/* FreeBSD, 64-bit */
+};
+
+#define	NOFFSETS32	(sizeof prpsoffsets32 / sizeof prpsoffsets32[0])
+#define NOFFSETS64	(sizeof prpsoffsets64 / sizeof prpsoffsets64[0])
+
+#define NOFFSETS	(clazz == ELFCLASS32 ? NOFFSETS32 : NOFFSETS64)
+
+/*
+ * Look through the program headers of an executable image, searching
+ * for a PT_NOTE section of type NT_PRPSINFO, with a name "CORE" or
+ * "FreeBSD"; if one is found, try looking in various places in its
+ * contents for a 16-character string containing only printable
+ * characters - if found, that string should be the name of the program
+ * that dropped core.  Note: right after that 16-character string is,
+ * at least in SunOS 5.x (and possibly other SVR4-flavored systems) and
+ * Linux, a longer string (80 characters, in 5.x, probably other
+ * SVR4-flavored systems, and Linux) containing the start of the
+ * command line for that program.
+ *
+ * SunOS 5.x core files contain two PT_NOTE sections, with the types
+ * NT_PRPSINFO (old) and NT_PSINFO (new).  These structs contain the
+ * same info about the command name and command line, so it probably
+ * isn't worthwhile to look for NT_PSINFO, but the offsets are provided
+ * above (see USE_NT_PSINFO), in case we ever decide to do so.  The
+ * NT_PRPSINFO and NT_PSINFO sections are always in order and adjacent;
+ * the SunOS 5.x file command relies on this (and prefers the latter).
+ *
+ * The signal number probably appears in a section of type NT_PRSTATUS,
+ * but that's also rather OS-dependent, in ways that are harder to
+ * dissect with heuristics, so I'm not bothering with the signal number.
+ * (I suppose the signal number could be of interest in situations where
+ * you don't have the binary of the program that dropped core; if you
+ * *do* have that binary, the debugger will probably tell you what
+ * signal it was.)
+ */
+
+#define	OS_STYLE_SVR4		0
+#define	OS_STYLE_FREEBSD	1
+#define	OS_STYLE_NETBSD		2
+
+private const char os_style_names[][8] = {
+	"SVR4",
+	"FreeBSD",
+	"NetBSD",
+};
+
+#define FLAGS_DID_CORE		0x01
+#define FLAGS_DID_NOTE		0x02
+#define FLAGS_DID_BUILD_ID	0x04
+#define FLAGS_DID_CORE_STYLE	0x08
+#define FLAGS_IS_CORE		0x10
+
+private int
+dophn_core(struct magic_set *ms, int clazz, int swap, int fd, off_t off,
+    int num, size_t size, off_t fsize, int *flags)
+{
+	Elf32_Phdr ph32;
+	Elf64_Phdr ph64;
+	size_t offset;
+	unsigned char nbuf[BUFSIZ];
+	ssize_t bufsize;
+	off_t savedoffset;
+ 	struct stat st;
+
+	if (fstat(fd, &st) < 0) {
+		file_badread(ms);
+		return -1;
+	}
+
+	if (size != xph_sizeof) {
+		if (file_printf(ms, ", corrupted program header size") == -1)
+			return -1;
+		return 0;
+	}
+
+	/*
+	 * Loop through all the program headers.
+	 */
+	for ( ; num; num--) {
+		if ((savedoffset = lseek(fd, off, SEEK_SET)) == (off_t)-1) {
+			file_badseek(ms);
+			return -1;
+		}
+		if (read(fd, xph_addr, xph_sizeof) == -1) {
+			file_badread(ms);
+			return -1;
+		}
+		if (xph_offset > fsize) {
+			if (lseek(fd, savedoffset, SEEK_SET) == (off_t)-1) {
+				file_badseek(ms);
+				return -1;
+			}
+			continue;
+		}
+
+		off += size;
+		if (xph_type != PT_NOTE)
+			continue;
+
+		/*
+		 * This is a PT_NOTE section; loop through all the notes
+		 * in the section.
+		 */
+		if (lseek(fd, xph_offset, SEEK_SET) == (off_t)-1) {
+			file_badseek(ms);
+			return -1;
+		}
+		bufsize = read(fd, nbuf,
+		    ((xph_filesz < sizeof(nbuf)) ? xph_filesz : sizeof(nbuf)));
+		if (bufsize == -1) {
+			file_badread(ms);
+			return -1;
+		}
+		offset = 0;
+		for (;;) {
+			if (offset >= (size_t)bufsize)
+				break;
+			offset = donote(ms, nbuf, offset, (size_t)bufsize,
+			    clazz, swap, 4, flags);
+			if (offset == 0)
+				break;
+
+		}
+	}
+	return 0;
+}
+#endif
+
+private size_t
+donote(struct magic_set *ms, void *vbuf, size_t offset, size_t size,
+    int clazz, int swap, size_t align, int *flags)
+{
+	Elf32_Nhdr nh32;
+	Elf64_Nhdr nh64;
+	size_t noff, doff;
+#ifdef ELFCORE
+	int os_style = -1;
+#endif
+	uint32_t namesz, descsz;
+	unsigned char *nbuf = CAST(unsigned char *, vbuf);
+
+	(void)memcpy(xnh_addr, &nbuf[offset], xnh_sizeof);
+	offset += xnh_sizeof;
+
+	namesz = xnh_namesz;
+	descsz = xnh_descsz;
+	if ((namesz == 0) && (descsz == 0)) {
+		/*
+		 * We're out of note headers.
+		 */
+		return (offset >= size) ? offset : size;
+	}
+
+	if (namesz & 0x80000000) {
+	    (void)file_printf(ms, ", bad note name size 0x%lx",
+		(unsigned long)namesz);
+	    return offset;
+	}
+
+	if (descsz & 0x80000000) {
+	    (void)file_printf(ms, ", bad note description size 0x%lx",
+		(unsigned long)descsz);
+	    return offset;
+	}
+
+
+	noff = offset;
+	doff = ELF_ALIGN(offset + namesz);
+
+	if (offset + namesz > size) {
+		/*
+		 * We're past the end of the buffer.
+		 */
+		return doff;
+	}
+
+	offset = ELF_ALIGN(doff + descsz);
+	if (doff + descsz > size) {
+		/*
+		 * We're past the end of the buffer.
+		 */
+		return (offset >= size) ? offset : size;
+	}
+
+	if ((*flags & (FLAGS_DID_NOTE|FLAGS_DID_BUILD_ID)) ==
+	    (FLAGS_DID_NOTE|FLAGS_DID_BUILD_ID))
+		goto core;
+
+	if (namesz == 4 && strcmp((char *)&nbuf[noff], "GNU") == 0 &&
+	    xnh_type == NT_GNU_VERSION && descsz == 16) {
+		uint32_t desc[4];
+		(void)memcpy(desc, &nbuf[doff], sizeof(desc));
+
+		if (file_printf(ms, ", for GNU/") == -1)
+			return size;
+		switch (elf_getu32(swap, desc[0])) {
+		case GNU_OS_LINUX:
+			if (file_printf(ms, "Linux") == -1)
+				return size;
+			break;
+		case GNU_OS_HURD:
+			if (file_printf(ms, "Hurd") == -1)
+				return size;
+			break;
+		case GNU_OS_SOLARIS:
+			if (file_printf(ms, "Solaris") == -1)
+				return size;
+			break;
+		case GNU_OS_KFREEBSD:
+			if (file_printf(ms, "kFreeBSD") == -1)
+				return size;
+			break;
+		case GNU_OS_KNETBSD:
+			if (file_printf(ms, "kNetBSD") == -1)
+				return size;
+			break;
+		default:
+			if (file_printf(ms, "<unknown>") == -1)
+				return size; 
+		}
+		if (file_printf(ms, " %d.%d.%d", elf_getu32(swap, desc[1]),
+		    elf_getu32(swap, desc[2]), elf_getu32(swap, desc[3])) == -1)
+			return size;
+		*flags |= FLAGS_DID_NOTE;
+		return size;
+	}
+
+	if (namesz == 4 && strcmp((char *)&nbuf[noff], "GNU") == 0 &&
+	    xnh_type == NT_GNU_BUILD_ID && (descsz == 16 || descsz == 20)) {
+	    uint32_t desc[5], i;
+	    if (file_printf(ms, ", BuildID[%s]=0x", descsz == 16 ? "md5/uuid" :
+		"sha1") == -1)
+		    return size;
+	    (void)memcpy(desc, &nbuf[doff], descsz);
+	    for (i = 0; i < descsz >> 2; i++)
+		if (file_printf(ms, "%.8x", desc[i]) == -1)
+		    return size;
+	    *flags |= FLAGS_DID_BUILD_ID;
+	}
+
+	if (namesz == 7 && strcmp((char *)&nbuf[noff], "NetBSD") == 0 &&
+	    xnh_type == NT_NETBSD_VERSION && descsz == 4) {
+		uint32_t desc;
+		(void)memcpy(&desc, &nbuf[doff], sizeof(desc));
+		desc = elf_getu32(swap, desc);
+
+		if (file_printf(ms, ", for NetBSD") == -1)
+			return size;
+		/*
+		 * The version number used to be stuck as 199905, and was thus
+		 * basically content-free.  Newer versions of NetBSD have fixed
+		 * this and now use the encoding of __NetBSD_Version__:
+		 *
+		 *	MMmmrrpp00
+		 *
+		 * M = major version
+		 * m = minor version
+		 * r = release ["",A-Z,Z[A-Z] but numeric]
+		 * p = patchlevel
+		 */
+		if (desc > 100000000U) {
+			uint32_t ver_patch = (desc / 100) % 100;
+			uint32_t ver_rel = (desc / 10000) % 100;
+			uint32_t ver_min = (desc / 1000000) % 100;
+			uint32_t ver_maj = desc / 100000000;
+
+			if (file_printf(ms, " %u.%u", ver_maj, ver_min) == -1)
+				return size;
+			if (ver_rel == 0 && ver_patch != 0) {
+				if (file_printf(ms, ".%u", ver_patch) == -1)
+					return size;
+			} else if (ver_rel != 0) {
+				while (ver_rel > 26) {
+					if (file_printf(ms, "Z") == -1)
+						return size;
+					ver_rel -= 26;
+				}
+				if (file_printf(ms, "%c", 'A' + ver_rel - 1)
+				    == -1)
+					return size;
+			}
+		}
+		*flags |= FLAGS_DID_NOTE;
+		return size;
+	}
+
+	if (namesz == 8 && strcmp((char *)&nbuf[noff], "FreeBSD") == 0 &&
+	    xnh_type == NT_FREEBSD_VERSION && descsz == 4) {
+		uint32_t desc;
+		(void)memcpy(&desc, &nbuf[doff], sizeof(desc));
+		desc = elf_getu32(swap, desc);
+		if (file_printf(ms, ", for FreeBSD") == -1)
+			return size;
+
+		/*
+		 * Contents is __FreeBSD_version, whose relation to OS
+		 * versions is defined by a huge table in the Porter's
+		 * Handbook.  This is the general scheme:
+		 * 
+		 * Releases:
+		 * 	Mmp000 (before 4.10)
+		 * 	Mmi0p0 (before 5.0)
+		 * 	Mmm0p0
+		 * 
+		 * Development branches:
+		 * 	Mmpxxx (before 4.6)
+		 * 	Mmp1xx (before 4.10)
+		 * 	Mmi1xx (before 5.0)
+		 * 	M000xx (pre-M.0)
+		 * 	Mmm1xx
+		 * 
+		 * M = major version
+		 * m = minor version
+		 * i = minor version increment (491000 -> 4.10)
+		 * p = patchlevel
+		 * x = revision
+		 * 
+		 * The first release of FreeBSD to use ELF by default
+		 * was version 3.0.
+		 */
+		if (desc == 460002) {
+			if (file_printf(ms, " 4.6.2") == -1)
+				return size;
+		} else if (desc < 460100) {
+			if (file_printf(ms, " %d.%d", desc / 100000,
+			    desc / 10000 % 10) == -1)
+				return size;
+			if (desc / 1000 % 10 > 0)
+				if (file_printf(ms, ".%d", desc / 1000 % 10)
+				    == -1)
+					return size;
+			if ((desc % 1000 > 0) || (desc % 100000 == 0))
+				if (file_printf(ms, " (%d)", desc) == -1)
+					return size;
+		} else if (desc < 500000) {
+			if (file_printf(ms, " %d.%d", desc / 100000,
+			    desc / 10000 % 10 + desc / 1000 % 10) == -1)
+				return size;
+			if (desc / 100 % 10 > 0) {
+				if (file_printf(ms, " (%d)", desc) == -1)
+					return size;
+			} else if (desc / 10 % 10 > 0) {
+				if (file_printf(ms, ".%d", desc / 10 % 10)
+				    == -1)
+					return size;
+			}
+		} else {
+			if (file_printf(ms, " %d.%d", desc / 100000,
+			    desc / 1000 % 100) == -1)
+				return size;
+			if ((desc / 100 % 10 > 0) ||
+			    (desc % 100000 / 100 == 0)) {
+				if (file_printf(ms, " (%d)", desc) == -1)
+					return size;
+			} else if (desc / 10 % 10 > 0) {
+				if (file_printf(ms, ".%d", desc / 10 % 10)
+				    == -1)
+					return size;
+			}
+		}
+		*flags |= FLAGS_DID_NOTE;
+		return size;
+	}
+
+	if (namesz == 8 && strcmp((char *)&nbuf[noff], "OpenBSD") == 0 &&
+	    xnh_type == NT_OPENBSD_VERSION && descsz == 4) {
+		if (file_printf(ms, ", for OpenBSD") == -1)
+			return size;
+		/* Content of note is always 0 */
+		*flags |= FLAGS_DID_NOTE;
+		return size;
+	}
+
+	if (namesz == 10 && strcmp((char *)&nbuf[noff], "DragonFly") == 0 &&
+	    xnh_type == NT_DRAGONFLY_VERSION && descsz == 4) {
+		uint32_t desc;
+		if (file_printf(ms, ", for DragonFly") == -1)
+			return size;
+		(void)memcpy(&desc, &nbuf[doff], sizeof(desc));
+		desc = elf_getu32(swap, desc);
+		if (file_printf(ms, " %d.%d.%d", desc / 100000,
+		    desc / 10000 % 10, desc % 10000) == -1)
+			return size;
+		*flags |= FLAGS_DID_NOTE;
+		return size;
+	}
+
+core:
+	/*
+	 * Sigh.  The 2.0.36 kernel in Debian 2.1, at
+	 * least, doesn't correctly implement name
+	 * sections, in core dumps, as specified by
+	 * the "Program Linking" section of "UNIX(R) System
+	 * V Release 4 Programmer's Guide: ANSI C and
+	 * Programming Support Tools", because my copy
+	 * clearly says "The first 'namesz' bytes in 'name'
+	 * contain a *null-terminated* [emphasis mine]
+	 * character representation of the entry's owner
+	 * or originator", but the 2.0.36 kernel code
+	 * doesn't include the terminating null in the
+	 * name....
+	 */
+	if ((namesz == 4 && strncmp((char *)&nbuf[noff], "CORE", 4) == 0) ||
+	    (namesz == 5 && strcmp((char *)&nbuf[noff], "CORE") == 0)) {
+		os_style = OS_STYLE_SVR4;
+	} 
+
+	if ((namesz == 8 && strcmp((char *)&nbuf[noff], "FreeBSD") == 0)) {
+		os_style = OS_STYLE_FREEBSD;
+	}
+
+	if ((namesz >= 11 && strncmp((char *)&nbuf[noff], "NetBSD-CORE", 11)
+	    == 0)) {
+		os_style = OS_STYLE_NETBSD;
+	}
+
+#ifdef ELFCORE
+	if ((*flags & FLAGS_DID_CORE) != 0)
+		return size;
+
+	if (os_style != -1 && (*flags & FLAGS_DID_CORE_STYLE) == 0) {
+		if (file_printf(ms, ", %s-style", os_style_names[os_style])
+		    == -1)
+			return size;
+		*flags |= FLAGS_DID_CORE_STYLE;
+	}
+
+	switch (os_style) {
+	case OS_STYLE_NETBSD:
+		if (xnh_type == NT_NETBSD_CORE_PROCINFO) {
+			uint32_t signo;
+			/*
+			 * Extract the program name.  It is at
+			 * offset 0x7c, and is up to 32-bytes,
+			 * including the terminating NUL.
+			 */
+			if (file_printf(ms, ", from '%.31s'",
+			    &nbuf[doff + 0x7c]) == -1)
+				return size;
+			
+			/*
+			 * Extract the signal number.  It is at
+			 * offset 0x08.
+			 */
+			(void)memcpy(&signo, &nbuf[doff + 0x08],
+			    sizeof(signo));
+			if (file_printf(ms, " (signal %u)",
+			    elf_getu32(swap, signo)) == -1)
+				return size;
+			*flags |= FLAGS_DID_CORE;
+			return size;
+		}
+		break;
+
+	default:
+		if (xnh_type == NT_PRPSINFO && *flags & FLAGS_IS_CORE) {
+			size_t i, j;
+			unsigned char c;
+			/*
+			 * Extract the program name.  We assume
+			 * it to be 16 characters (that's what it
+			 * is in SunOS 5.x and Linux).
+			 *
+			 * Unfortunately, it's at a different offset
+			 * in various OSes, so try multiple offsets.
+			 * If the characters aren't all printable,
+			 * reject it.
+			 */
+			for (i = 0; i < NOFFSETS; i++) {
+				unsigned char *cname, *cp;
+				size_t reloffset = prpsoffsets(i);
+				size_t noffset = doff + reloffset;
+				size_t k;
+				for (j = 0; j < 16; j++, noffset++,
+				    reloffset++) {
+					/*
+					 * Make sure we're not past
+					 * the end of the buffer; if
+					 * we are, just give up.
+					 */
+					if (noffset >= size)
+						goto tryanother;
+
+					/*
+					 * Make sure we're not past
+					 * the end of the contents;
+					 * if we are, this obviously
+					 * isn't the right offset.
+					 */
+					if (reloffset >= descsz)
+						goto tryanother;
+
+					c = nbuf[noffset];
+					if (c == '\0') {
+						/*
+						 * A '\0' at the
+						 * beginning is
+						 * obviously wrong.
+						 * Any other '\0'
+						 * means we're done.
+						 */
+						if (j == 0)
+							goto tryanother;
+						else
+							break;
+					} else {
+						/*
+						 * A nonprintable
+						 * character is also
+						 * wrong.
+						 */
+						if (!isprint(c) || isquote(c))
+							goto tryanother;
+					}
+				}
+				/*
+				 * Well, that worked.
+				 */
+
+				/*
+				 * Try next offsets, in case this match is
+				 * in the middle of a string.
+				 */
+				for (k = i + 1 ; k < NOFFSETS ; k++) {
+					size_t no;
+					int adjust = 1;
+					if (prpsoffsets(k) >= prpsoffsets(i))
+						continue;
+					for (no = doff + prpsoffsets(k);
+					     no < doff + prpsoffsets(i); no++)
+						adjust = adjust
+						         && isprint(nbuf[no]);
+					if (adjust)
+						i = k;
+				}
+
+				cname = (unsigned char *)
+				    &nbuf[doff + prpsoffsets(i)];
+				for (cp = cname; *cp && isprint(*cp); cp++)
+					continue;
+				/*
+				 * Linux apparently appends a space at the end
+				 * of the command line: remove it.
+				 */
+				while (cp > cname && isspace(cp[-1]))
+					cp--;
+				if (file_printf(ms, ", from '%.*s'",
+				    (int)(cp - cname), cname) == -1)
+					return size;
+				*flags |= FLAGS_DID_CORE;
+				return size;
+
+			tryanother:
+				;
+			}
+		}
+		break;
+	}
+#endif
+	return offset;
+}
+
+/* SunOS 5.x hardware capability descriptions */
+typedef struct cap_desc {
+	uint64_t cd_mask;
+	const char *cd_name;
+} cap_desc_t;
+
+static const cap_desc_t cap_desc_sparc[] = {
+	{ AV_SPARC_MUL32,		"MUL32" },
+	{ AV_SPARC_DIV32,		"DIV32" },
+	{ AV_SPARC_FSMULD,		"FSMULD" },
+	{ AV_SPARC_V8PLUS,		"V8PLUS" },
+	{ AV_SPARC_POPC,		"POPC" },
+	{ AV_SPARC_VIS,			"VIS" },
+	{ AV_SPARC_VIS2,		"VIS2" },
+	{ AV_SPARC_ASI_BLK_INIT,	"ASI_BLK_INIT" },
+	{ AV_SPARC_FMAF,		"FMAF" },
+	{ AV_SPARC_FJFMAU,		"FJFMAU" },
+	{ AV_SPARC_IMA,			"IMA" },
+	{ 0, NULL }
+};
+
+static const cap_desc_t cap_desc_386[] = {
+	{ AV_386_FPU,			"FPU" },
+	{ AV_386_TSC,			"TSC" },
+	{ AV_386_CX8,			"CX8" },
+	{ AV_386_SEP,			"SEP" },
+	{ AV_386_AMD_SYSC,		"AMD_SYSC" },
+	{ AV_386_CMOV,			"CMOV" },
+	{ AV_386_MMX,			"MMX" },
+	{ AV_386_AMD_MMX,		"AMD_MMX" },
+	{ AV_386_AMD_3DNow,		"AMD_3DNow" },
+	{ AV_386_AMD_3DNowx,		"AMD_3DNowx" },
+	{ AV_386_FXSR,			"FXSR" },
+	{ AV_386_SSE,			"SSE" },
+	{ AV_386_SSE2,			"SSE2" },
+	{ AV_386_PAUSE,			"PAUSE" },
+	{ AV_386_SSE3,			"SSE3" },
+	{ AV_386_MON,			"MON" },
+	{ AV_386_CX16,			"CX16" },
+	{ AV_386_AHF,			"AHF" },
+	{ AV_386_TSCP,			"TSCP" },
+	{ AV_386_AMD_SSE4A,		"AMD_SSE4A" },
+	{ AV_386_POPCNT,		"POPCNT" },
+	{ AV_386_AMD_LZCNT,		"AMD_LZCNT" },
+	{ AV_386_SSSE3,			"SSSE3" },
+	{ AV_386_SSE4_1,		"SSE4.1" },
+	{ AV_386_SSE4_2,		"SSE4.2" },
+	{ 0, NULL }
+};
+
+private int
+doshn(struct magic_set *ms, int clazz, int swap, int fd, off_t off, int num,
+    size_t size, int *flags, int mach)
+{
+	Elf32_Shdr sh32;
+	Elf64_Shdr sh64;
+	int stripped = 1;
+	void *nbuf;
+	off_t noff;
+	uint64_t cap_hw1 = 0;	/* SunOS 5.x hardware capabilites */
+	uint64_t cap_sf1 = 0;	/* SunOS 5.x software capabilites */
+
+	if (size != xsh_sizeof) {
+		if (file_printf(ms, ", corrupted section header size") == -1)
+			return -1;
+		return 0;
+	}
+
+	if (lseek(fd, off, SEEK_SET) == (off_t)-1) {
+		file_badseek(ms);
+		return -1;
+	}
+
+	for ( ; num; num--) {
+		if (read(fd, xsh_addr, xsh_sizeof) == -1) {
+			file_badread(ms);
+			return -1;
+		}
+		switch (xsh_type) {
+		case SHT_SYMTAB:
+#if 0
+		case SHT_DYNSYM:
+#endif
+			stripped = 0;
+			break;
+		case SHT_NOTE:
+			if ((off = lseek(fd, (off_t)0, SEEK_CUR)) ==
+			    (off_t)-1) {
+				file_badread(ms);
+				return -1;
+			}
+			if ((nbuf = malloc((size_t)xsh_size)) == NULL) {
+				file_error(ms, errno, "Cannot allocate memory"
+				    " for note");
+				return -1;
+			}
+			if ((noff = lseek(fd, (off_t)xsh_offset, SEEK_SET)) ==
+			    (off_t)-1) {
+				file_badread(ms);
+				free(nbuf);
+				return -1;
+			}
+			if (read(fd, nbuf, (size_t)xsh_size) !=
+			    (ssize_t)xsh_size) {
+				free(nbuf);
+				file_badread(ms);
+				return -1;
+			}
+
+			noff = 0;
+			for (;;) {
+				if (noff >= (off_t)xsh_size)
+					break;
+				noff = donote(ms, nbuf, (size_t)noff,
+				    (size_t)xsh_size, clazz, swap, 4,
+				    flags);
+				if (noff == 0)
+					break;
+			}
+			if ((lseek(fd, off, SEEK_SET)) == (off_t)-1) {
+				free(nbuf);
+				file_badread(ms);
+				return -1;
+			}
+			free(nbuf);
+			break;
+		case SHT_SUNW_cap:
+		    {
+			off_t coff;
+			if ((off = lseek(fd, (off_t)0, SEEK_CUR)) ==
+			    (off_t)-1) {
+				file_badread(ms);
+				return -1;
+			}
+			if (lseek(fd, (off_t)xsh_offset, SEEK_SET) ==
+			    (off_t)-1) {
+				file_badread(ms);
+				return -1;
+			}
+			coff = 0;
+			for (;;) {
+				Elf32_Cap cap32;
+				Elf64_Cap cap64;
+				char cbuf[/*CONSTCOND*/
+				    MAX(sizeof cap32, sizeof cap64)];
+				if ((coff += xcap_sizeof) > (off_t)xsh_size)
+					break;
+				if (read(fd, cbuf, (size_t)xcap_sizeof) !=
+				    (ssize_t)xcap_sizeof) {
+					file_badread(ms);
+					return -1;
+				}
+				(void)memcpy(xcap_addr, cbuf, xcap_sizeof);
+				switch (xcap_tag) {
+				case CA_SUNW_NULL:
+					break;
+				case CA_SUNW_HW_1:
+					cap_hw1 |= xcap_val;
+					break;
+				case CA_SUNW_SF_1:
+					cap_sf1 |= xcap_val;
+					break;
+				default:
+					if (file_printf(ms,
+					    ", with unknown capability "
+					    "0x%" INT64_T_FORMAT "x = 0x%"
+					    INT64_T_FORMAT "x",
+					    (unsigned long long)xcap_tag,
+					    (unsigned long long)xcap_val) == -1)
+						return -1;
+					break;
+				}
+			}
+			if (lseek(fd, off, SEEK_SET) == (off_t)-1) {
+				file_badread(ms);
+				return -1;
+			}
+			break;
+		    }
+		}
+	}
+	if (file_printf(ms, ", %sstripped", stripped ? "" : "not ") == -1)
+		return -1;
+	if (cap_hw1) {
+		const cap_desc_t *cdp;
+		switch (mach) {
+		case EM_SPARC:
+		case EM_SPARC32PLUS:
+		case EM_SPARCV9:
+			cdp = cap_desc_sparc;
+			break;
+		case EM_386:
+		case EM_IA_64:
+		case EM_AMD64:
+			cdp = cap_desc_386;
+			break;
+		default:
+			cdp = NULL;
+			break;
+		}
+		if (file_printf(ms, ", uses") == -1)
+			return -1;
+		if (cdp) {
+			while (cdp->cd_name) {
+				if (cap_hw1 & cdp->cd_mask) {
+					if (file_printf(ms,
+					    " %s", cdp->cd_name) == -1)
+						return -1;
+					cap_hw1 &= ~cdp->cd_mask;
+				}
+				++cdp;
+			}
+			if (cap_hw1)
+				if (file_printf(ms,
+				    " unknown hardware capability 0x%"
+				    INT64_T_FORMAT "x",
+				    (unsigned long long)cap_hw1) == -1)
+					return -1;
+		} else {
+			if (file_printf(ms,
+			    " hardware capability 0x%" INT64_T_FORMAT "x",
+			    (unsigned long long)cap_hw1) == -1)
+				return -1;
+		}
+	}
+	if (cap_sf1) {
+		if (cap_sf1 & SF1_SUNW_FPUSED) {
+			if (file_printf(ms,
+			    (cap_sf1 & SF1_SUNW_FPKNWN)
+			    ? ", uses frame pointer"
+			    : ", not known to use frame pointer") == -1)
+				return -1;
+		}
+		cap_sf1 &= ~SF1_SUNW_MASK;
+		if (cap_sf1)
+			if (file_printf(ms,
+			    ", with unknown software capability 0x%"
+			    INT64_T_FORMAT "x",
+			    (unsigned long long)cap_sf1) == -1)
+				return -1;
+	}
+	return 0;
+}
+
+/*
+ * Look through the program headers of an executable image, searching
+ * for a PT_INTERP section; if one is found, it's dynamically linked,
+ * otherwise it's statically linked.
+ */
+private int
+dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off,
+    int num, size_t size, off_t fsize, int *flags, int sh_num)
+{
+	Elf32_Phdr ph32;
+	Elf64_Phdr ph64;
+	const char *linking_style = "statically";
+	const char *shared_libraries = "";
+	unsigned char nbuf[BUFSIZ];
+	ssize_t bufsize;
+	size_t offset, align;
+	off_t savedoffset = (off_t)-1;
+	struct stat st;
+
+	if (fstat(fd, &st) < 0) {
+		file_badread(ms);
+		return -1;
+	}
+	
+	if (size != xph_sizeof) {
+		if (file_printf(ms, ", corrupted program header size") == -1)
+			return -1;
+		return 0;
+	}
+
+	if (lseek(fd, off, SEEK_SET) == (off_t)-1) {
+		file_badseek(ms);
+		return -1;
+	}
+
+  	for ( ; num; num--) {
+  		if (read(fd, xph_addr, xph_sizeof) == -1) {
+  			file_badread(ms);
+			return -1;
+		}
+		if (xph_offset > st.st_size && savedoffset != (off_t)-1) {
+			if (lseek(fd, savedoffset, SEEK_SET) == (off_t)-1) {
+				file_badseek(ms);
+				return -1;
+			}
+			continue;
+		}
+
+		if ((savedoffset = lseek(fd, (off_t)0, SEEK_CUR)) == (off_t)-1) {
+  			file_badseek(ms);
+			return -1;
+		}
+
+		if (xph_offset > fsize) {
+			if (lseek(fd, savedoffset, SEEK_SET) == (off_t)-1) {
+				file_badseek(ms);
+				return -1;
+			}
+			continue;
+		}
+
+		switch (xph_type) {
+		case PT_DYNAMIC:
+			linking_style = "dynamically";
+			break;
+		case PT_INTERP:
+			shared_libraries = " (uses shared libs)";
+			break;
+		case PT_NOTE:
+			if ((align = xph_align) & 0x80000000UL) {
+				if (file_printf(ms, 
+				    ", invalid note alignment 0x%lx",
+				    (unsigned long)align) == -1)
+					return -1;
+				align = 4;
+			}
+			if (sh_num)
+				break;
+			/*
+			 * This is a PT_NOTE section; loop through all the notes
+			 * in the section.
+			 */
+			if (lseek(fd, xph_offset, SEEK_SET)
+			    == (off_t)-1) {
+				file_badseek(ms);
+				return -1;
+			}
+			bufsize = read(fd, nbuf, ((xph_filesz < sizeof(nbuf)) ?
+			    xph_filesz : sizeof(nbuf)));
+			if (bufsize == -1) {
+				file_badread(ms);
+				return -1;
+			}
+			offset = 0;
+			for (;;) {
+				if (offset >= (size_t)bufsize)
+					break;
+				offset = donote(ms, nbuf, offset,
+				    (size_t)bufsize, clazz, swap, align,
+				    flags);
+				if (offset == 0)
+					break;
+			}
+			if (lseek(fd, savedoffset, SEEK_SET) == (off_t)-1) {
+				file_badseek(ms);
+				return -1;
+			}
+			break;
+		default:
+			break;
+		}
+	}
+	if (file_printf(ms, ", %s linked%s", linking_style, shared_libraries)
+	    == -1)
+	    return -1;
+	return 0;
+}
+
+
+protected int
+file_tryelf(struct magic_set *ms, int fd, const unsigned char *buf,
+    size_t nbytes)
+{
+	union {
+		int32_t l;
+		char c[sizeof (int32_t)];
+	} u;
+	int clazz;
+	int swap;
+	struct stat st;
+	off_t fsize;
+	int flags = 0;
+	Elf32_Ehdr elf32hdr;
+	Elf64_Ehdr elf64hdr;
+	uint16_t type;
+
+	if (ms->flags & (MAGIC_MIME|MAGIC_APPLE))
+		return 0;
+	/*
+	 * ELF executables have multiple section headers in arbitrary
+	 * file locations and thus file(1) cannot determine it from easily.
+	 * Instead we traverse thru all section headers until a symbol table
+	 * one is found or else the binary is stripped.
+	 * Return immediately if it's not ELF (so we avoid pipe2file unless needed).
+	 */
+	if (buf[EI_MAG0] != ELFMAG0
+	    || (buf[EI_MAG1] != ELFMAG1 && buf[EI_MAG1] != OLFMAG1)
+	    || buf[EI_MAG2] != ELFMAG2 || buf[EI_MAG3] != ELFMAG3)
+		return 0;
+
+	/*
+	 * If we cannot seek, it must be a pipe, socket or fifo.
+	 */
+	if((lseek(fd, (off_t)0, SEEK_SET) == (off_t)-1) && (errno == ESPIPE))
+		fd = file_pipe2file(ms, fd, buf, nbytes);
+
+	if (fstat(fd, &st) == -1) {
+  		file_badread(ms);
+		return -1;
+	}
+	fsize = st.st_size;
+
+	clazz = buf[EI_CLASS];
+
+	switch (clazz) {
+	case ELFCLASS32:
+#undef elf_getu
+#define elf_getu(a, b)	elf_getu32(a, b)
+#undef elfhdr
+#define elfhdr elf32hdr
+#include "elfclass.h"
+	case ELFCLASS64:
+#undef elf_getu
+#define elf_getu(a, b)	elf_getu64(a, b)
+#undef elfhdr
+#define elfhdr elf64hdr
+#include "elfclass.h"
+	default:
+	    if (file_printf(ms, ", unknown class %d", clazz) == -1)
+		    return -1;
+	    break;
+	}
+	return 0;
+}
+#endif
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/readelf.h b/framework/modules/c_FileTypeSigModule/file-5.08/src/readelf.h
new file mode 100755
index 0000000000000000000000000000000000000000..4308e6ac4dfa3f6d15d8361038be22c2bcaa979f
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/readelf.h
@@ -0,0 +1,333 @@
+/*
+ * Copyright (c) Christos Zoulas 2003.
+ * All Rights Reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice immediately at the beginning of the file, without modification,
+ *    this list of conditions, and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *  
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * @(#)Id: readelf.h,v 1.9 2002/05/16 18:45:56 christos Exp
+ *
+ * Provide elf data structures for non-elf machines, allowing file
+ * non-elf hosts to determine if an elf binary is stripped.
+ * Note: cobbled from the linux header file, with modifications
+ */
+#ifndef __fake_elf_h__
+#define	__fake_elf_h__
+
+#if HAVE_STDINT_H
+#include <stdint.h>
+#endif
+
+typedef uint32_t	Elf32_Addr;
+typedef uint32_t	Elf32_Off;
+typedef uint16_t	Elf32_Half;
+typedef uint32_t	Elf32_Word;
+typedef uint8_t		Elf32_Char;
+
+#if SIZEOF_LONG_LONG != 8
+#define	USE_ARRAY_FOR_64BIT_TYPES
+typedef	uint32_t 	Elf64_Addr[2];
+typedef	uint32_t 	Elf64_Off[2];
+typedef uint32_t 	Elf64_Xword[2];
+#else
+#undef USE_ARRAY_FOR_64BIT_TYPES
+typedef	uint64_t 	Elf64_Addr;
+typedef	uint64_t 	Elf64_Off;
+typedef uint64_t 	Elf64_Xword;
+#endif
+typedef uint16_t	Elf64_Half;
+typedef uint32_t	Elf64_Word;
+typedef uint8_t		Elf64_Char;
+
+#define	EI_NIDENT	16
+
+typedef struct {
+    Elf32_Char	e_ident[EI_NIDENT];
+    Elf32_Half	e_type;
+    Elf32_Half	e_machine;
+    Elf32_Word	e_version;
+    Elf32_Addr	e_entry;  /* Entry point */
+    Elf32_Off	e_phoff;
+    Elf32_Off	e_shoff;
+    Elf32_Word	e_flags;
+    Elf32_Half	e_ehsize;
+    Elf32_Half	e_phentsize;
+    Elf32_Half	e_phnum;
+    Elf32_Half	e_shentsize;
+    Elf32_Half	e_shnum;
+    Elf32_Half	e_shstrndx;
+} Elf32_Ehdr;
+
+typedef struct {
+    Elf64_Char	e_ident[EI_NIDENT];
+    Elf64_Half	e_type;
+    Elf64_Half	e_machine;
+    Elf64_Word	e_version;
+    Elf64_Addr	e_entry;  /* Entry point */
+    Elf64_Off	e_phoff;
+    Elf64_Off	e_shoff;
+    Elf64_Word	e_flags;
+    Elf64_Half	e_ehsize;
+    Elf64_Half	e_phentsize;
+    Elf64_Half	e_phnum;
+    Elf64_Half	e_shentsize;
+    Elf64_Half	e_shnum;
+    Elf64_Half	e_shstrndx;
+} Elf64_Ehdr;
+
+/* e_type */
+#define	ET_REL		1
+#define	ET_EXEC		2
+#define	ET_DYN		3
+#define	ET_CORE		4
+
+/* e_machine (used only for SunOS 5.x hardware capabilities) */
+#define	EM_SPARC	2
+#define	EM_386		3
+#define	EM_SPARC32PLUS	18
+#define	EM_SPARCV9	43
+#define	EM_IA_64	50
+#define	EM_AMD64	62
+
+/* sh_type */
+#define	SHT_SYMTAB	2
+#define	SHT_NOTE	7
+#define	SHT_DYNSYM	11
+#define	SHT_SUNW_cap	0x6ffffff5	/* SunOS 5.x hw/sw capabilites */
+
+/* elf type */
+#define	ELFDATANONE	0		/* e_ident[EI_DATA] */
+#define	ELFDATA2LSB	1
+#define	ELFDATA2MSB	2
+
+/* elf class */
+#define	ELFCLASSNONE	0
+#define	ELFCLASS32	1
+#define	ELFCLASS64	2
+
+/* magic number */
+#define	EI_MAG0		0		/* e_ident[] indexes */
+#define	EI_MAG1		1
+#define	EI_MAG2		2
+#define	EI_MAG3		3
+#define	EI_CLASS	4
+#define	EI_DATA		5
+#define	EI_VERSION	6
+#define	EI_PAD		7
+
+#define	ELFMAG0		0x7f		/* EI_MAG */
+#define	ELFMAG1		'E'
+#define	ELFMAG2		'L'
+#define	ELFMAG3		'F'
+#define	ELFMAG		"\177ELF"
+
+#define	OLFMAG1		'O'
+#define	OLFMAG		"\177OLF"
+
+typedef struct {
+    Elf32_Word	p_type;
+    Elf32_Off	p_offset;
+    Elf32_Addr	p_vaddr;
+    Elf32_Addr	p_paddr;
+    Elf32_Word	p_filesz;
+    Elf32_Word	p_memsz;
+    Elf32_Word	p_flags;
+    Elf32_Word	p_align;
+} Elf32_Phdr;
+
+typedef struct {
+    Elf64_Word	p_type;
+    Elf64_Word	p_flags;
+    Elf64_Off	p_offset;
+    Elf64_Addr	p_vaddr;
+    Elf64_Addr	p_paddr;
+    Elf64_Xword	p_filesz;
+    Elf64_Xword	p_memsz;
+    Elf64_Xword	p_align;
+} Elf64_Phdr;
+
+#define	PT_NULL		0		/* p_type */
+#define	PT_LOAD		1
+#define	PT_DYNAMIC	2
+#define	PT_INTERP	3
+#define	PT_NOTE		4
+#define	PT_SHLIB	5
+#define	PT_PHDR		6
+#define	PT_NUM		7
+
+typedef struct {
+    Elf32_Word	sh_name;
+    Elf32_Word	sh_type;
+    Elf32_Word	sh_flags;
+    Elf32_Addr	sh_addr;
+    Elf32_Off	sh_offset;
+    Elf32_Word	sh_size;
+    Elf32_Word	sh_link;
+    Elf32_Word	sh_info;
+    Elf32_Word	sh_addralign;
+    Elf32_Word	sh_entsize;
+} Elf32_Shdr;
+
+typedef struct {
+    Elf64_Word	sh_name;
+    Elf64_Word	sh_type;
+    Elf64_Off	sh_flags;
+    Elf64_Addr	sh_addr;
+    Elf64_Off	sh_offset;
+    Elf64_Off	sh_size;
+    Elf64_Word	sh_link;
+    Elf64_Word	sh_info;
+    Elf64_Off	sh_addralign;
+    Elf64_Off	sh_entsize;
+} Elf64_Shdr;
+
+#define	NT_NETBSD_CORE_PROCINFO		1
+
+/* Note header in a PT_NOTE section */
+typedef struct elf_note {
+    Elf32_Word	n_namesz;	/* Name size */
+    Elf32_Word	n_descsz;	/* Content size */
+    Elf32_Word	n_type;		/* Content type */
+} Elf32_Nhdr;
+
+typedef struct {
+    Elf64_Word	n_namesz;
+    Elf64_Word	n_descsz;
+    Elf64_Word	n_type;
+} Elf64_Nhdr;
+
+/* Notes used in ET_CORE */
+#define	NT_PRSTATUS	1
+#define	NT_PRFPREG	2
+#define	NT_PRPSINFO	3
+#define	NT_PRXREG	4
+#define	NT_TASKSTRUCT	4
+#define	NT_PLATFORM	5
+#define	NT_AUXV		6
+
+/* Note types used in executables */
+/* NetBSD executables (name = "NetBSD") */
+#define	NT_NETBSD_VERSION	1
+#define	NT_NETBSD_EMULATION	2
+#define	NT_FREEBSD_VERSION	1
+#define	NT_OPENBSD_VERSION	1
+#define	NT_DRAGONFLY_VERSION	1
+/*
+ * GNU executables (name = "GNU")
+ * word[0]: GNU OS tags
+ * word[1]: major version
+ * word[2]: minor version
+ * word[3]: tiny version
+ */
+#define	NT_GNU_VERSION		1
+
+/* GNU OS tags */
+#define	GNU_OS_LINUX	0
+#define	GNU_OS_HURD	1
+#define	GNU_OS_SOLARIS	2
+#define	GNU_OS_KFREEBSD	3
+#define	GNU_OS_KNETBSD	4
+
+/*
+ * GNU Hardware capability information 
+ * word[0]: Number of entries
+ * word[1]: Bitmask of enabled entries
+ * Followed by a byte id, and a NUL terminated string per entry
+ */
+#define	NT_GNU_HWCAP		2
+
+/*
+ * GNU Build ID generated by ld
+ * 160 bit SHA1 [default] 
+ * 128 bit md5 or uuid
+ */
+#define	NT_GNU_BUILD_ID		3
+
+/* SunOS 5.x hardware/software capabilities */
+typedef struct {
+	Elf32_Word	c_tag;
+	union {
+		Elf32_Word	c_val;
+		Elf32_Addr	c_ptr;
+	} c_un;
+} Elf32_Cap;
+
+typedef struct {
+	Elf64_Xword	c_tag;
+	union {
+		Elf64_Xword	c_val;
+		Elf64_Addr	c_ptr;
+	} c_un;
+} Elf64_Cap;
+
+/* SunOS 5.x hardware/software capability tags */
+#define	CA_SUNW_NULL	0
+#define	CA_SUNW_HW_1	1
+#define	CA_SUNW_SF_1	2
+
+/* SunOS 5.x software capabilities */
+#define	SF1_SUNW_FPKNWN	0x01
+#define	SF1_SUNW_FPUSED	0x02
+#define	SF1_SUNW_MASK	0x03
+
+/* SunOS 5.x hardware capabilities: sparc */
+#define	AV_SPARC_MUL32		0x0001
+#define	AV_SPARC_DIV32		0x0002
+#define	AV_SPARC_FSMULD		0x0004
+#define	AV_SPARC_V8PLUS		0x0008
+#define	AV_SPARC_POPC		0x0010
+#define	AV_SPARC_VIS		0x0020
+#define	AV_SPARC_VIS2		0x0040
+#define	AV_SPARC_ASI_BLK_INIT	0x0080
+#define	AV_SPARC_FMAF		0x0100
+#define	AV_SPARC_FJFMAU		0x4000
+#define	AV_SPARC_IMA		0x8000
+
+/* SunOS 5.x hardware capabilities: 386 */
+#define	AV_386_FPU		0x00000001
+#define	AV_386_TSC		0x00000002
+#define	AV_386_CX8		0x00000004
+#define	AV_386_SEP		0x00000008
+#define	AV_386_AMD_SYSC		0x00000010
+#define	AV_386_CMOV		0x00000020
+#define	AV_386_MMX		0x00000040
+#define	AV_386_AMD_MMX		0x00000080
+#define	AV_386_AMD_3DNow	0x00000100
+#define	AV_386_AMD_3DNowx	0x00000200
+#define	AV_386_FXSR		0x00000400
+#define	AV_386_SSE		0x00000800
+#define	AV_386_SSE2		0x00001000
+#define	AV_386_PAUSE		0x00002000
+#define	AV_386_SSE3		0x00004000
+#define	AV_386_MON		0x00008000
+#define	AV_386_CX16		0x00010000
+#define	AV_386_AHF		0x00020000
+#define	AV_386_TSCP		0x00040000
+#define	AV_386_AMD_SSE4A	0x00080000
+#define	AV_386_POPCNT		0x00100000
+#define	AV_386_AMD_LZCNT	0x00200000
+#define	AV_386_SSSE3		0x00400000
+#define	AV_386_SSE4_1		0x00800000
+#define	AV_386_SSE4_2		0x01000000
+
+#endif
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/softmagic.c b/framework/modules/c_FileTypeSigModule/file-5.08/src/softmagic.c
new file mode 100755
index 0000000000000000000000000000000000000000..89cb269dc589d2cb3f197f83f4ceeb1a5f712b28
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/softmagic.c
@@ -0,0 +1,2009 @@
+/*
+ * Copyright (c) Ian F. Darwin 1986-1995.
+ * Software written by Ian F. Darwin and others;
+ * maintained 1995-present by Christos Zoulas and others.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice immediately at the beginning of the file, without modification,
+ *    this list of conditions, and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * softmagic - interpret variable magic from MAGIC
+ */
+
+#include "file.h"
+
+#ifndef	lint
+FILE_RCSID("@(#)$File: softmagic.c,v 1.145 2011/05/13 22:15:40 christos Exp $")
+#endif	/* lint */
+
+#include "magic.h"
+#include <string.h>
+#include <ctype.h>
+#include <stdlib.h>
+#include <time.h>
+
+
+private int match(struct magic_set *, struct magic *, uint32_t,
+    const unsigned char *, size_t, int);
+private int mget(struct magic_set *, const unsigned char *,
+    struct magic *, size_t, unsigned int);
+private int magiccheck(struct magic_set *, struct magic *);
+private int32_t mprint(struct magic_set *, struct magic *);
+private int32_t moffset(struct magic_set *, struct magic *);
+private void mdebug(uint32_t, const char *, size_t);
+private int mcopy(struct magic_set *, union VALUETYPE *, int, int,
+    const unsigned char *, uint32_t, size_t, size_t);
+private int mconvert(struct magic_set *, struct magic *);
+private int print_sep(struct magic_set *, int);
+private int handle_annotation(struct magic_set *, struct magic *);
+private void cvt_8(union VALUETYPE *, const struct magic *);
+private void cvt_16(union VALUETYPE *, const struct magic *);
+private void cvt_32(union VALUETYPE *, const struct magic *);
+private void cvt_64(union VALUETYPE *, const struct magic *);
+
+/*
+ * softmagic - lookup one file in parsed, in-memory copy of database
+ * Passed the name and FILE * of one file to be typed.
+ */
+/*ARGSUSED1*/		/* nbytes passed for regularity, maybe need later */
+protected int
+file_softmagic(struct magic_set *ms, const unsigned char *buf, size_t nbytes, int mode)
+{
+	struct mlist *ml;
+	int rv;
+	for (ml = ms->mlist->next; ml != ms->mlist; ml = ml->next)
+		if ((rv = match(ms, ml->magic, ml->nmagic, buf, nbytes, mode)) != 0)
+			return rv;
+
+	return 0;
+}
+
+/*
+ * Go through the whole list, stopping if you find a match.  Process all
+ * the continuations of that match before returning.
+ *
+ * We support multi-level continuations:
+ *
+ *	At any time when processing a successful top-level match, there is a
+ *	current continuation level; it represents the level of the last
+ *	successfully matched continuation.
+ *
+ *	Continuations above that level are skipped as, if we see one, it
+ *	means that the continuation that controls them - i.e, the
+ *	lower-level continuation preceding them - failed to match.
+ *
+ *	Continuations below that level are processed as, if we see one,
+ *	it means we've finished processing or skipping higher-level
+ *	continuations under the control of a successful or unsuccessful
+ *	lower-level continuation, and are now seeing the next lower-level
+ *	continuation and should process it.  The current continuation
+ *	level reverts to the level of the one we're seeing.
+ *
+ *	Continuations at the current level are processed as, if we see
+ *	one, there's no lower-level continuation that may have failed.
+ *
+ *	If a continuation matches, we bump the current continuation level
+ *	so that higher-level continuations are processed.
+ */
+private int
+match(struct magic_set *ms, struct magic *magic, uint32_t nmagic,
+    const unsigned char *s, size_t nbytes, int mode)
+{
+	uint32_t magindex = 0;
+	unsigned int cont_level = 0;
+	int need_separator = 0;
+	int returnval = 0, e; /* if a match is found it is set to 1*/
+	int firstline = 1; /* a flag to print X\n  X\n- X */
+	int printed_something = 0;
+	int print = (ms->flags & (MAGIC_MIME|MAGIC_APPLE)) == 0;
+
+	if (file_check_mem(ms, cont_level) == -1)
+		return -1;
+
+	for (magindex = 0; magindex < nmagic; magindex++) {
+		int flush = 0;
+		struct magic *m = &magic[magindex];
+
+		if ((m->flag & mode) != mode) {
+			/* Skip sub-tests */
+			while (magic[magindex + 1].cont_level != 0 &&
+			       ++magindex < nmagic)
+				continue;
+			continue; /* Skip to next top-level test*/
+		}
+
+		ms->offset = m->offset;
+		ms->line = m->lineno;
+
+		/* if main entry matches, print it... */
+		switch (mget(ms, s, m, nbytes, cont_level)) {
+		case -1:
+			return -1;
+		case 0:
+			flush = m->reln != '!';
+			break;
+		default:
+			if (m->type == FILE_INDIRECT)
+				returnval = 1;
+
+			switch (magiccheck(ms, m)) {
+			case -1:
+				return -1;
+			case 0:
+				flush++;
+				break;
+			default:
+				flush = 0;
+				break;
+			}
+			break;
+		}
+		if (flush) {
+			/*
+			 * main entry didn't match,
+			 * flush its continuations
+			 */
+			while (magindex < nmagic - 1 &&
+			    magic[magindex + 1].cont_level != 0)
+				magindex++;
+			continue;
+		}
+
+		if ((e = handle_annotation(ms, m)) != 0)
+			return e;
+		/*
+		 * If we are going to print something, we'll need to print
+		 * a blank before we print something else.
+		 */
+		if (*m->desc) {
+			need_separator = 1;
+			printed_something = 1;
+			if (print_sep(ms, firstline) == -1)
+				return -1;
+		}
+
+
+		if (print && mprint(ms, m) == -1)
+			return -1;
+
+		ms->c.li[cont_level].off = moffset(ms, m);
+
+		/* and any continuations that match */
+		if (file_check_mem(ms, ++cont_level) == -1)
+			return -1;
+
+		while (magic[magindex+1].cont_level != 0 &&
+		    ++magindex < nmagic) {
+			m = &magic[magindex];
+			ms->line = m->lineno; /* for messages */
+
+			if (cont_level < m->cont_level)
+				continue;
+			if (cont_level > m->cont_level) {
+				/*
+				 * We're at the end of the level
+				 * "cont_level" continuations.
+				 */
+				cont_level = m->cont_level;
+			}
+			ms->offset = m->offset;
+			if (m->flag & OFFADD) {
+				ms->offset +=
+				    ms->c.li[cont_level - 1].off;
+			}
+
+#ifdef ENABLE_CONDITIONALS
+			if (m->cond == COND_ELSE ||
+			    m->cond == COND_ELIF) {
+				if (ms->c.li[cont_level].last_match == 1)
+					continue;
+			}
+#endif
+			switch (mget(ms, s, m, nbytes, cont_level)) {
+			case -1:
+				return -1;
+			case 0:
+				if (m->reln != '!')
+					continue;
+				flush = 1;
+				break;
+			default:
+				if (m->type == FILE_INDIRECT)
+					returnval = 1;
+				flush = 0;
+				break;
+			}
+
+			switch (flush ? 1 : magiccheck(ms, m)) {
+			case -1:
+				return -1;
+			case 0:
+#ifdef ENABLE_CONDITIONALS
+				ms->c.li[cont_level].last_match = 0;
+#endif
+				break;
+			default:
+#ifdef ENABLE_CONDITIONALS
+				ms->c.li[cont_level].last_match = 1;
+#endif
+				if (m->type != FILE_DEFAULT)
+					ms->c.li[cont_level].got_match = 1;
+				else if (ms->c.li[cont_level].got_match) {
+					ms->c.li[cont_level].got_match = 0;
+					break;
+				}
+				if ((e = handle_annotation(ms, m)) != 0)
+					return e;
+				/*
+				 * If we are going to print something,
+				 * make sure that we have a separator first.
+				 */
+				if (*m->desc) {
+					if (!printed_something) {
+						printed_something = 1;
+						if (print_sep(ms, firstline)
+						    == -1)
+							return -1;
+					}
+				}
+				/*
+				 * This continuation matched.  Print
+				 * its message, with a blank before it
+				 * if the previous item printed and
+				 * this item isn't empty.
+				 */
+				/* space if previous printed */
+				if (need_separator
+				    && ((m->flag & NOSPACE) == 0)
+				    && *m->desc) {
+					if (print &&
+					    file_printf(ms, " ") == -1)
+						return -1;
+					need_separator = 0;
+				}
+				if (print && mprint(ms, m) == -1)
+					return -1;
+
+				ms->c.li[cont_level].off = moffset(ms, m);
+
+				if (*m->desc)
+					need_separator = 1;
+
+				/*
+				 * If we see any continuations
+				 * at a higher level,
+				 * process them.
+				 */
+				if (file_check_mem(ms, ++cont_level) == -1)
+					return -1;
+				break;
+			}
+		}
+		if (printed_something) {
+			firstline = 0;
+			if (print)
+				returnval = 1;
+		}
+		if ((ms->flags & MAGIC_CONTINUE) == 0 && printed_something) {
+			return returnval; /* don't keep searching */
+		}
+	}
+	return returnval;  /* This is hit if -k is set or there is no match */
+}
+
+private int
+check_fmt(struct magic_set *ms, struct magic *m)
+{
+	regex_t rx;
+	int rc;
+
+	if (strchr(m->desc, '%') == NULL)
+		return 0;
+
+	rc = regcomp(&rx, "%[-0-9\\.]*s", REG_EXTENDED|REG_NOSUB);
+	if (rc) {
+		char errmsg[512];
+		(void)regerror(rc, &rx, errmsg, sizeof(errmsg));
+		file_magerror(ms, "regex error %d, (%s)", rc, errmsg);
+		return -1;
+	} else {
+		rc = regexec(&rx, m->desc, 0, 0, 0);
+		regfree(&rx);
+		return !rc;
+	}
+}
+
+#ifndef HAVE_STRNDUP
+char * strndup(const char *, size_t);
+
+char *
+strndup(const char *str, size_t n)
+{
+	size_t len;
+	char *copy;
+
+	for (len = 0; len < n && str[len]; len++)
+		continue;
+	if ((copy = malloc(len + 1)) == NULL)
+		return NULL;
+	(void)memcpy(copy, str, len);
+	copy[len] = '\0';
+	return copy;
+}
+#endif /* HAVE_STRNDUP */
+
+private int32_t
+mprint(struct magic_set *ms, struct magic *m)
+{
+	uint64_t v;
+	float vf;
+	double vd;
+	int64_t t = 0;
+ 	char buf[128];
+	union VALUETYPE *p = &ms->ms_value;
+
+  	switch (m->type) {
+  	case FILE_BYTE:
+		v = file_signextend(ms, m, (uint64_t)p->b);
+		switch (check_fmt(ms, m)) {
+		case -1:
+			return -1;
+		case 1:
+			(void)snprintf(buf, sizeof(buf), "%c",
+			    (unsigned char)v);
+			if (file_printf(ms, m->desc, buf) == -1)
+				return -1;
+			break;
+		default:
+			if (file_printf(ms, m->desc, (unsigned char) v) == -1)
+				return -1;
+			break;
+		}
+		t = ms->offset + sizeof(char);
+		break;
+
+  	case FILE_SHORT:
+  	case FILE_BESHORT:
+  	case FILE_LESHORT:
+		v = file_signextend(ms, m, (uint64_t)p->h);
+		switch (check_fmt(ms, m)) {
+		case -1:
+			return -1;
+		case 1:
+			(void)snprintf(buf, sizeof(buf), "%hu",
+			    (unsigned short)v);
+			if (file_printf(ms, m->desc, buf) == -1)
+				return -1;
+			break;
+		default:
+			if (
+			    file_printf(ms, m->desc, (unsigned short) v) == -1)
+				return -1;
+			break;
+		}
+		t = ms->offset + sizeof(short);
+		break;
+
+  	case FILE_LONG:
+  	case FILE_BELONG:
+  	case FILE_LELONG:
+  	case FILE_MELONG:
+		v = file_signextend(ms, m, (uint64_t)p->l);
+		switch (check_fmt(ms, m)) {
+		case -1:
+			return -1;
+		case 1:
+			(void)snprintf(buf, sizeof(buf), "%u", (uint32_t)v);
+			if (file_printf(ms, m->desc, buf) == -1)
+				return -1;
+			break;
+		default:
+			if (file_printf(ms, m->desc, (uint32_t) v) == -1)
+				return -1;
+			break;
+		}
+		t = ms->offset + sizeof(int32_t);
+  		break;
+
+  	case FILE_QUAD:
+  	case FILE_BEQUAD:
+  	case FILE_LEQUAD:
+		v = file_signextend(ms, m, p->q);
+		if (file_printf(ms, m->desc, (uint64_t) v) == -1)
+			return -1;
+		t = ms->offset + sizeof(int64_t);
+  		break;
+
+  	case FILE_STRING:
+  	case FILE_PSTRING:
+  	case FILE_BESTRING16:
+  	case FILE_LESTRING16:
+		if (m->reln == '=' || m->reln == '!') {
+			if (file_printf(ms, m->desc, m->value.s) == -1)
+				return -1;
+			t = ms->offset + m->vallen;
+		}
+		else {
+			if (*m->value.s == '\0')
+				p->s[strcspn(p->s, "\n")] = '\0';
+			if (file_printf(ms, m->desc, p->s) == -1)
+				return -1;
+			t = ms->offset + strlen(p->s);
+			if (m->type == FILE_PSTRING)
+				t += file_pstring_length_size(m);
+		}
+		break;
+
+	case FILE_DATE:
+	case FILE_BEDATE:
+	case FILE_LEDATE:
+	case FILE_MEDATE:
+		if (file_printf(ms, m->desc, file_fmttime(p->l, 1)) == -1)
+			return -1;
+		t = ms->offset + sizeof(time_t);
+		break;
+
+	case FILE_LDATE:
+	case FILE_BELDATE:
+	case FILE_LELDATE:
+	case FILE_MELDATE:
+		if (file_printf(ms, m->desc, file_fmttime(p->l, 0)) == -1)
+			return -1;
+		t = ms->offset + sizeof(time_t);
+		break;
+
+	case FILE_QDATE:
+	case FILE_BEQDATE:
+	case FILE_LEQDATE:
+		if (file_printf(ms, m->desc, file_fmttime((uint32_t)p->q,
+		    1)) == -1)
+			return -1;
+		t = ms->offset + sizeof(uint64_t);
+		break;
+
+	case FILE_QLDATE:
+	case FILE_BEQLDATE:
+	case FILE_LEQLDATE:
+		if (file_printf(ms, m->desc, file_fmttime((uint32_t)p->q,
+		    0)) == -1)
+			return -1;
+		t = ms->offset + sizeof(uint64_t);
+		break;
+
+  	case FILE_FLOAT:
+  	case FILE_BEFLOAT:
+  	case FILE_LEFLOAT:
+		vf = p->f;
+		switch (check_fmt(ms, m)) {
+		case -1:
+			return -1;
+		case 1:
+			(void)snprintf(buf, sizeof(buf), "%g", vf);
+			if (file_printf(ms, m->desc, buf) == -1)
+				return -1;
+			break;
+		default:
+			if (file_printf(ms, m->desc, vf) == -1)
+				return -1;
+			break;
+		}
+		t = ms->offset + sizeof(float);
+  		break;
+
+  	case FILE_DOUBLE:
+  	case FILE_BEDOUBLE:
+  	case FILE_LEDOUBLE:
+		vd = p->d;
+		switch (check_fmt(ms, m)) {
+		case -1:
+			return -1;
+		case 1:
+			(void)snprintf(buf, sizeof(buf), "%g", vd);
+			if (file_printf(ms, m->desc, buf) == -1)
+				return -1;
+			break;
+		default:
+			if (file_printf(ms, m->desc, vd) == -1)
+				return -1;
+			break;
+		}
+		t = ms->offset + sizeof(double);
+  		break;
+
+	case FILE_REGEX: {
+		char *cp;
+		int rval;
+
+		cp = strndup((const char *)ms->search.s, ms->search.rm_len);
+		if (cp == NULL) {
+			file_oomem(ms, ms->search.rm_len);
+			return -1;
+		}
+		rval = file_printf(ms, m->desc, cp);
+		free(cp);
+
+		if (rval == -1)
+			return -1;
+
+		if ((m->str_flags & REGEX_OFFSET_START))
+			t = ms->search.offset;
+		else
+			t = ms->search.offset + ms->search.rm_len;
+		break;
+	}
+
+	case FILE_SEARCH:
+	  	if (file_printf(ms, m->desc, m->value.s) == -1)
+			return -1;
+		if ((m->str_flags & REGEX_OFFSET_START))
+			t = ms->search.offset;
+		else
+			t = ms->search.offset + m->vallen;
+		break;
+
+	case FILE_DEFAULT:
+	  	if (file_printf(ms, m->desc, m->value.s) == -1)
+			return -1;
+		t = ms->offset;
+		break;
+
+	case FILE_INDIRECT:
+		t = ms->offset;
+		break;
+
+	default:
+		file_magerror(ms, "invalid m->type (%d) in mprint()", m->type);
+		return -1;
+	}
+	return (int32_t)t;
+}
+
+private int32_t
+moffset(struct magic_set *ms, struct magic *m)
+{
+  	switch (m->type) {
+  	case FILE_BYTE:
+		return CAST(int32_t, (ms->offset + sizeof(char)));
+
+  	case FILE_SHORT:
+  	case FILE_BESHORT:
+  	case FILE_LESHORT:
+		return CAST(int32_t, (ms->offset + sizeof(short)));
+
+  	case FILE_LONG:
+  	case FILE_BELONG:
+  	case FILE_LELONG:
+  	case FILE_MELONG:
+		return CAST(int32_t, (ms->offset + sizeof(int32_t)));
+
+  	case FILE_QUAD:
+  	case FILE_BEQUAD:
+  	case FILE_LEQUAD:
+		return CAST(int32_t, (ms->offset + sizeof(int64_t)));
+
+  	case FILE_STRING:
+  	case FILE_PSTRING:
+  	case FILE_BESTRING16:
+  	case FILE_LESTRING16:
+		if (m->reln == '=' || m->reln == '!')
+			return ms->offset + m->vallen;
+		else {
+			union VALUETYPE *p = &ms->ms_value;
+			uint32_t t;
+
+			if (*m->value.s == '\0')
+				p->s[strcspn(p->s, "\n")] = '\0';
+			t = CAST(uint32_t, (ms->offset + strlen(p->s)));
+			if (m->type == FILE_PSTRING)
+				t += file_pstring_length_size(m);
+			return t;
+		}
+
+	case FILE_DATE:
+	case FILE_BEDATE:
+	case FILE_LEDATE:
+	case FILE_MEDATE:
+		return CAST(int32_t, (ms->offset + sizeof(time_t)));
+
+	case FILE_LDATE:
+	case FILE_BELDATE:
+	case FILE_LELDATE:
+	case FILE_MELDATE:
+		return CAST(int32_t, (ms->offset + sizeof(time_t)));
+
+	case FILE_QDATE:
+	case FILE_BEQDATE:
+	case FILE_LEQDATE:
+		return CAST(int32_t, (ms->offset + sizeof(uint64_t)));
+
+	case FILE_QLDATE:
+	case FILE_BEQLDATE:
+	case FILE_LEQLDATE:
+		return CAST(int32_t, (ms->offset + sizeof(uint64_t)));
+
+  	case FILE_FLOAT:
+  	case FILE_BEFLOAT:
+  	case FILE_LEFLOAT:
+		return CAST(int32_t, (ms->offset + sizeof(float)));
+
+  	case FILE_DOUBLE:
+  	case FILE_BEDOUBLE:
+  	case FILE_LEDOUBLE:
+		return CAST(int32_t, (ms->offset + sizeof(double)));
+
+	case FILE_REGEX:
+		if ((m->str_flags & REGEX_OFFSET_START) != 0)
+			return CAST(int32_t, ms->search.offset);
+		else
+			return CAST(int32_t, (ms->search.offset +
+			    ms->search.rm_len));
+
+	case FILE_SEARCH:
+		if ((m->str_flags & REGEX_OFFSET_START) != 0)
+			return CAST(int32_t, ms->search.offset);
+		else
+			return CAST(int32_t, (ms->search.offset + m->vallen));
+
+	case FILE_DEFAULT:
+		return ms->offset;
+
+	case FILE_INDIRECT:
+		return ms->offset;
+
+	default:
+		return 0;
+	}
+}
+
+#define DO_CVT(fld, cast) \
+	if (m->num_mask) \
+		switch (m->mask_op & FILE_OPS_MASK) { \
+		case FILE_OPAND: \
+			p->fld &= cast m->num_mask; \
+			break; \
+		case FILE_OPOR: \
+			p->fld |= cast m->num_mask; \
+			break; \
+		case FILE_OPXOR: \
+			p->fld ^= cast m->num_mask; \
+			break; \
+		case FILE_OPADD: \
+			p->fld += cast m->num_mask; \
+			break; \
+		case FILE_OPMINUS: \
+			p->fld -= cast m->num_mask; \
+			break; \
+		case FILE_OPMULTIPLY: \
+			p->fld *= cast m->num_mask; \
+			break; \
+		case FILE_OPDIVIDE: \
+			p->fld /= cast m->num_mask; \
+			break; \
+		case FILE_OPMODULO: \
+			p->fld %= cast m->num_mask; \
+			break; \
+		} \
+	if (m->mask_op & FILE_OPINVERSE) \
+		p->fld = ~p->fld \
+
+private void
+cvt_8(union VALUETYPE *p, const struct magic *m)
+{
+	DO_CVT(b, (uint8_t));
+}
+
+private void
+cvt_16(union VALUETYPE *p, const struct magic *m)
+{
+	DO_CVT(h, (uint16_t));
+}
+
+private void
+cvt_32(union VALUETYPE *p, const struct magic *m)
+{
+	DO_CVT(l, (uint32_t));
+}
+
+private void
+cvt_64(union VALUETYPE *p, const struct magic *m)
+{
+	DO_CVT(q, (uint64_t));
+}
+
+#define DO_CVT2(fld, cast) \
+	if (m->num_mask) \
+		switch (m->mask_op & FILE_OPS_MASK) { \
+		case FILE_OPADD: \
+			p->fld += cast m->num_mask; \
+			break; \
+		case FILE_OPMINUS: \
+			p->fld -= cast m->num_mask; \
+			break; \
+		case FILE_OPMULTIPLY: \
+			p->fld *= cast m->num_mask; \
+			break; \
+		case FILE_OPDIVIDE: \
+			p->fld /= cast m->num_mask; \
+			break; \
+		} \
+
+private void
+cvt_float(union VALUETYPE *p, const struct magic *m)
+{
+	DO_CVT2(f, (float));
+}
+
+private void
+cvt_double(union VALUETYPE *p, const struct magic *m)
+{
+	DO_CVT2(d, (double));
+}
+
+/*
+ * Convert the byte order of the data we are looking at
+ * While we're here, let's apply the mask operation
+ * (unless you have a better idea)
+ */
+private int
+mconvert(struct magic_set *ms, struct magic *m)
+{
+	union VALUETYPE *p = &ms->ms_value;
+
+	switch (m->type) {
+	case FILE_BYTE:
+		cvt_8(p, m);
+		return 1;
+	case FILE_SHORT:
+		cvt_16(p, m);
+		return 1;
+	case FILE_LONG:
+	case FILE_DATE:
+	case FILE_LDATE:
+		cvt_32(p, m);
+		return 1;
+	case FILE_QUAD:
+	case FILE_QDATE:
+	case FILE_QLDATE:
+		cvt_64(p, m);
+		return 1;
+	case FILE_STRING:
+	case FILE_BESTRING16:
+	case FILE_LESTRING16: {
+		/* Null terminate and eat *trailing* return */
+		p->s[sizeof(p->s) - 1] = '\0';
+		return 1;
+	}
+	case FILE_PSTRING: {
+		char *ptr1 = p->s, *ptr2 = ptr1 + file_pstring_length_size(m);
+		size_t len = file_pstring_get_length(m, ptr1);
+		if (len >= sizeof(p->s))
+			len = sizeof(p->s) - 1;
+		while (len--)
+			*ptr1++ = *ptr2++;
+		*ptr1 = '\0';
+		return 1;
+	}
+	case FILE_BESHORT:
+		p->h = (short)((p->hs[0]<<8)|(p->hs[1]));
+		cvt_16(p, m);
+		return 1;
+	case FILE_BELONG:
+	case FILE_BEDATE:
+	case FILE_BELDATE:
+		p->l = (int32_t)
+		    ((p->hl[0]<<24)|(p->hl[1]<<16)|(p->hl[2]<<8)|(p->hl[3]));
+		cvt_32(p, m);
+		return 1;
+	case FILE_BEQUAD:
+	case FILE_BEQDATE:
+	case FILE_BEQLDATE:
+		p->q = (uint64_t)
+		    (((uint64_t)p->hq[0]<<56)|((uint64_t)p->hq[1]<<48)|
+		     ((uint64_t)p->hq[2]<<40)|((uint64_t)p->hq[3]<<32)|
+		     ((uint64_t)p->hq[4]<<24)|((uint64_t)p->hq[5]<<16)|
+		     ((uint64_t)p->hq[6]<<8)|((uint64_t)p->hq[7]));
+		cvt_64(p, m);
+		return 1;
+	case FILE_LESHORT:
+		p->h = (short)((p->hs[1]<<8)|(p->hs[0]));
+		cvt_16(p, m);
+		return 1;
+	case FILE_LELONG:
+	case FILE_LEDATE:
+	case FILE_LELDATE:
+		p->l = (int32_t)
+		    ((p->hl[3]<<24)|(p->hl[2]<<16)|(p->hl[1]<<8)|(p->hl[0]));
+		cvt_32(p, m);
+		return 1;
+	case FILE_LEQUAD:
+	case FILE_LEQDATE:
+	case FILE_LEQLDATE:
+		p->q = (uint64_t)
+		    (((uint64_t)p->hq[7]<<56)|((uint64_t)p->hq[6]<<48)|
+		     ((uint64_t)p->hq[5]<<40)|((uint64_t)p->hq[4]<<32)|
+		     ((uint64_t)p->hq[3]<<24)|((uint64_t)p->hq[2]<<16)|
+		     ((uint64_t)p->hq[1]<<8)|((uint64_t)p->hq[0]));
+		cvt_64(p, m);
+		return 1;
+	case FILE_MELONG:
+	case FILE_MEDATE:
+	case FILE_MELDATE:
+		p->l = (int32_t)
+		    ((p->hl[1]<<24)|(p->hl[0]<<16)|(p->hl[3]<<8)|(p->hl[2]));
+		cvt_32(p, m);
+		return 1;
+	case FILE_FLOAT:
+		cvt_float(p, m);
+		return 1;
+	case FILE_BEFLOAT:
+		p->l =  ((uint32_t)p->hl[0]<<24)|((uint32_t)p->hl[1]<<16)|
+			((uint32_t)p->hl[2]<<8) |((uint32_t)p->hl[3]);
+		cvt_float(p, m);
+		return 1;
+	case FILE_LEFLOAT:
+		p->l =  ((uint32_t)p->hl[3]<<24)|((uint32_t)p->hl[2]<<16)|
+			((uint32_t)p->hl[1]<<8) |((uint32_t)p->hl[0]);
+		cvt_float(p, m);
+		return 1;
+	case FILE_DOUBLE:
+		cvt_double(p, m);
+		return 1;
+	case FILE_BEDOUBLE:
+		p->q =  ((uint64_t)p->hq[0]<<56)|((uint64_t)p->hq[1]<<48)|
+			((uint64_t)p->hq[2]<<40)|((uint64_t)p->hq[3]<<32)|
+			((uint64_t)p->hq[4]<<24)|((uint64_t)p->hq[5]<<16)|
+			((uint64_t)p->hq[6]<<8) |((uint64_t)p->hq[7]);
+		cvt_double(p, m);
+		return 1;
+	case FILE_LEDOUBLE:
+		p->q =  ((uint64_t)p->hq[7]<<56)|((uint64_t)p->hq[6]<<48)|
+			((uint64_t)p->hq[5]<<40)|((uint64_t)p->hq[4]<<32)|
+			((uint64_t)p->hq[3]<<24)|((uint64_t)p->hq[2]<<16)|
+			((uint64_t)p->hq[1]<<8) |((uint64_t)p->hq[0]);
+		cvt_double(p, m);
+		return 1;
+	case FILE_REGEX:
+	case FILE_SEARCH:
+	case FILE_DEFAULT:
+		return 1;
+	default:
+		file_magerror(ms, "invalid type %d in mconvert()", m->type);
+		return 0;
+	}
+}
+
+
+private void
+mdebug(uint32_t offset, const char *str, size_t len)
+{
+	(void) fprintf(stderr, "mget @%d: ", offset);
+	file_showstr(stderr, str, len);
+	(void) fputc('\n', stderr);
+	(void) fputc('\n', stderr);
+}
+
+private int
+mcopy(struct magic_set *ms, union VALUETYPE *p, int type, int indir,
+    const unsigned char *s, uint32_t offset, size_t nbytes, size_t linecnt)
+{
+	/*
+	 * Note: FILE_SEARCH and FILE_REGEX do not actually copy
+	 * anything, but setup pointers into the source
+	 */
+	if (indir == 0) {
+		switch (type) {
+		case FILE_SEARCH:
+			ms->search.s = RCAST(const char *, s) + offset;
+			ms->search.s_len = nbytes - offset;
+			ms->search.offset = offset;
+			return 0;
+
+		case FILE_REGEX: {
+			const char *b;
+			const char *c;
+			const char *last;	/* end of search region */
+			const char *buf;	/* start of search region */
+			const char *end;
+			size_t lines;
+
+			if (s == NULL) {
+				ms->search.s_len = 0;
+				ms->search.s = NULL;
+				return 0;
+			}
+			buf = RCAST(const char *, s) + offset;
+			end = last = RCAST(const char *, s) + nbytes;
+			/* mget() guarantees buf <= last */
+			for (lines = linecnt, b = buf; lines && b < end &&
+			     ((b = CAST(const char *,
+				 memchr(c = b, '\n', CAST(size_t, (end - b)))))
+			     || (b = CAST(const char *,
+				 memchr(c, '\r', CAST(size_t, (end - c))))));
+			     lines--, b++) {
+				last = b;
+				if (b[0] == '\r' && b[1] == '\n')
+					b++;
+			}
+			if (lines)
+				last = RCAST(const char *, s) + nbytes;
+
+			ms->search.s = buf;
+			ms->search.s_len = last - buf;
+			ms->search.offset = offset;
+			ms->search.rm_len = 0;
+			return 0;
+		}
+		case FILE_BESTRING16:
+		case FILE_LESTRING16: {
+			const unsigned char *src = s + offset;
+			const unsigned char *esrc = s + nbytes;
+			char *dst = p->s;
+			char *edst = &p->s[sizeof(p->s) - 1];
+
+			if (type == FILE_BESTRING16)
+				src++;
+
+			/* check for pointer overflow */
+			if (src < s) {
+				file_magerror(ms, "invalid offset %u in mcopy()",
+				    offset);
+				return -1;
+			}
+			for (/*EMPTY*/; src < esrc; src += 2, dst++) {
+				if (dst < edst)
+					*dst = *src;
+				else
+					break;
+				if (*dst == '\0') {
+					if (type == FILE_BESTRING16 ?
+					    *(src - 1) != '\0' :
+					    *(src + 1) != '\0')
+						*dst = ' ';
+				}
+			}
+			*edst = '\0';
+			return 0;
+		}
+		case FILE_STRING:	/* XXX - these two should not need */
+		case FILE_PSTRING:	/* to copy anything, but do anyway. */
+		default:
+			break;
+		}
+	}
+
+	if (offset >= nbytes) {
+		(void)memset(p, '\0', sizeof(*p));
+		return 0;
+	}
+	if (nbytes - offset < sizeof(*p))
+		nbytes = nbytes - offset;
+	else
+		nbytes = sizeof(*p);
+
+	(void)memcpy(p, s + offset, nbytes);
+
+	/*
+	 * the usefulness of padding with zeroes eludes me, it
+	 * might even cause problems
+	 */
+	if (nbytes < sizeof(*p))
+		(void)memset(((char *)(void *)p) + nbytes, '\0',
+		    sizeof(*p) - nbytes);
+	return 0;
+}
+
+private int
+mget(struct magic_set *ms, const unsigned char *s,
+    struct magic *m, size_t nbytes, unsigned int cont_level)
+{
+	uint32_t offset = ms->offset;
+	uint32_t count = m->str_range;
+	union VALUETYPE *p = &ms->ms_value;
+
+	if (mcopy(ms, p, m->type, m->flag & INDIR, s, offset, nbytes, count) == -1)
+		return -1;
+
+	if ((ms->flags & MAGIC_DEBUG) != 0) {
+		mdebug(offset, (char *)(void *)p, sizeof(union VALUETYPE));
+#ifndef COMPILE_ONLY
+		file_mdump(m);
+#endif
+	}
+
+	if (m->flag & INDIR) {
+		int off = m->in_offset;
+		if (m->in_op & FILE_OPINDIRECT) {
+			const union VALUETYPE *q = CAST(const union VALUETYPE *,
+			    ((const void *)(s + offset + off)));
+			switch (m->in_type) {
+			case FILE_BYTE:
+				off = q->b;
+				break;
+			case FILE_SHORT:
+				off = q->h;
+				break;
+			case FILE_BESHORT:
+				off = (short)((q->hs[0]<<8)|(q->hs[1]));
+				break;
+			case FILE_LESHORT:
+				off = (short)((q->hs[1]<<8)|(q->hs[0]));
+				break;
+			case FILE_LONG:
+				off = q->l;
+				break;
+			case FILE_BELONG:
+			case FILE_BEID3:
+				off = (int32_t)((q->hl[0]<<24)|(q->hl[1]<<16)|
+						 (q->hl[2]<<8)|(q->hl[3]));
+				break;
+			case FILE_LEID3:
+			case FILE_LELONG:
+				off = (int32_t)((q->hl[3]<<24)|(q->hl[2]<<16)|
+						 (q->hl[1]<<8)|(q->hl[0]));
+				break;
+			case FILE_MELONG:
+				off = (int32_t)((q->hl[1]<<24)|(q->hl[0]<<16)|
+						 (q->hl[3]<<8)|(q->hl[2]));
+				break;
+			}
+		}
+		switch (m->in_type) {
+		case FILE_BYTE:
+			if (nbytes < (offset + 1))
+				return 0;
+			if (off) {
+				switch (m->in_op & FILE_OPS_MASK) {
+				case FILE_OPAND:
+					offset = p->b & off;
+					break;
+				case FILE_OPOR:
+					offset = p->b | off;
+					break;
+				case FILE_OPXOR:
+					offset = p->b ^ off;
+					break;
+				case FILE_OPADD:
+					offset = p->b + off;
+					break;
+				case FILE_OPMINUS:
+					offset = p->b - off;
+					break;
+				case FILE_OPMULTIPLY:
+					offset = p->b * off;
+					break;
+				case FILE_OPDIVIDE:
+					offset = p->b / off;
+					break;
+				case FILE_OPMODULO:
+					offset = p->b % off;
+					break;
+				}
+			} else
+				offset = p->b;
+			if (m->in_op & FILE_OPINVERSE)
+				offset = ~offset;
+			break;
+		case FILE_BESHORT:
+			if (nbytes < (offset + 2))
+				return 0;
+			if (off) {
+				switch (m->in_op & FILE_OPS_MASK) {
+				case FILE_OPAND:
+					offset = (short)((p->hs[0]<<8)|
+							 (p->hs[1])) &
+						 off;
+					break;
+				case FILE_OPOR:
+					offset = (short)((p->hs[0]<<8)|
+							 (p->hs[1])) |
+						 off;
+					break;
+				case FILE_OPXOR:
+					offset = (short)((p->hs[0]<<8)|
+							 (p->hs[1])) ^
+						 off;
+					break;
+				case FILE_OPADD:
+					offset = (short)((p->hs[0]<<8)|
+							 (p->hs[1])) +
+						 off;
+					break;
+				case FILE_OPMINUS:
+					offset = (short)((p->hs[0]<<8)|
+							 (p->hs[1])) -
+						 off;
+					break;
+				case FILE_OPMULTIPLY:
+					offset = (short)((p->hs[0]<<8)|
+							 (p->hs[1])) *
+						 off;
+					break;
+				case FILE_OPDIVIDE:
+					offset = (short)((p->hs[0]<<8)|
+							 (p->hs[1])) /
+						 off;
+					break;
+				case FILE_OPMODULO:
+					offset = (short)((p->hs[0]<<8)|
+							 (p->hs[1])) %
+						 off;
+					break;
+				}
+			} else
+				offset = (short)((p->hs[0]<<8)|
+						 (p->hs[1]));
+			if (m->in_op & FILE_OPINVERSE)
+				offset = ~offset;
+			break;
+		case FILE_LESHORT:
+			if (nbytes < (offset + 2))
+				return 0;
+			if (off) {
+				switch (m->in_op & FILE_OPS_MASK) {
+				case FILE_OPAND:
+					offset = (short)((p->hs[1]<<8)|
+							 (p->hs[0])) &
+						 off;
+					break;
+				case FILE_OPOR:
+					offset = (short)((p->hs[1]<<8)|
+							 (p->hs[0])) |
+						 off;
+					break;
+				case FILE_OPXOR:
+					offset = (short)((p->hs[1]<<8)|
+							 (p->hs[0])) ^
+						 off;
+					break;
+				case FILE_OPADD:
+					offset = (short)((p->hs[1]<<8)|
+							 (p->hs[0])) +
+						 off;
+					break;
+				case FILE_OPMINUS:
+					offset = (short)((p->hs[1]<<8)|
+							 (p->hs[0])) -
+						 off;
+					break;
+				case FILE_OPMULTIPLY:
+					offset = (short)((p->hs[1]<<8)|
+							 (p->hs[0])) *
+						 off;
+					break;
+				case FILE_OPDIVIDE:
+					offset = (short)((p->hs[1]<<8)|
+							 (p->hs[0])) /
+						 off;
+					break;
+				case FILE_OPMODULO:
+					offset = (short)((p->hs[1]<<8)|
+							 (p->hs[0])) %
+						 off;
+					break;
+				}
+			} else
+				offset = (short)((p->hs[1]<<8)|
+						 (p->hs[0]));
+			if (m->in_op & FILE_OPINVERSE)
+				offset = ~offset;
+			break;
+		case FILE_SHORT:
+			if (nbytes < (offset + 2))
+				return 0;
+			if (off) {
+				switch (m->in_op & FILE_OPS_MASK) {
+				case FILE_OPAND:
+					offset = p->h & off;
+					break;
+				case FILE_OPOR:
+					offset = p->h | off;
+					break;
+				case FILE_OPXOR:
+					offset = p->h ^ off;
+					break;
+				case FILE_OPADD:
+					offset = p->h + off;
+					break;
+				case FILE_OPMINUS:
+					offset = p->h - off;
+					break;
+				case FILE_OPMULTIPLY:
+					offset = p->h * off;
+					break;
+				case FILE_OPDIVIDE:
+					offset = p->h / off;
+					break;
+				case FILE_OPMODULO:
+					offset = p->h % off;
+					break;
+				}
+			}
+			else
+				offset = p->h;
+			if (m->in_op & FILE_OPINVERSE)
+				offset = ~offset;
+			break;
+		case FILE_BELONG:
+		case FILE_BEID3:
+			if (nbytes < (offset + 4))
+				return 0;
+			if (off) {
+				switch (m->in_op & FILE_OPS_MASK) {
+				case FILE_OPAND:
+					offset = (int32_t)((p->hl[0]<<24)|
+							 (p->hl[1]<<16)|
+							 (p->hl[2]<<8)|
+							 (p->hl[3])) &
+						 off;
+					break;
+				case FILE_OPOR:
+					offset = (int32_t)((p->hl[0]<<24)|
+							 (p->hl[1]<<16)|
+							 (p->hl[2]<<8)|
+							 (p->hl[3])) |
+						 off;
+					break;
+				case FILE_OPXOR:
+					offset = (int32_t)((p->hl[0]<<24)|
+							 (p->hl[1]<<16)|
+							 (p->hl[2]<<8)|
+							 (p->hl[3])) ^
+						 off;
+					break;
+				case FILE_OPADD:
+					offset = (int32_t)((p->hl[0]<<24)|
+							 (p->hl[1]<<16)|
+							 (p->hl[2]<<8)|
+							 (p->hl[3])) +
+						 off;
+					break;
+				case FILE_OPMINUS:
+					offset = (int32_t)((p->hl[0]<<24)|
+							 (p->hl[1]<<16)|
+							 (p->hl[2]<<8)|
+							 (p->hl[3])) -
+						 off;
+					break;
+				case FILE_OPMULTIPLY:
+					offset = (int32_t)((p->hl[0]<<24)|
+							 (p->hl[1]<<16)|
+							 (p->hl[2]<<8)|
+							 (p->hl[3])) *
+						 off;
+					break;
+				case FILE_OPDIVIDE:
+					offset = (int32_t)((p->hl[0]<<24)|
+							 (p->hl[1]<<16)|
+							 (p->hl[2]<<8)|
+							 (p->hl[3])) /
+						 off;
+					break;
+				case FILE_OPMODULO:
+					offset = (int32_t)((p->hl[0]<<24)|
+							 (p->hl[1]<<16)|
+							 (p->hl[2]<<8)|
+							 (p->hl[3])) %
+						 off;
+					break;
+				}
+			} else
+				offset = (int32_t)((p->hl[0]<<24)|
+						 (p->hl[1]<<16)|
+						 (p->hl[2]<<8)|
+						 (p->hl[3]));
+			if (m->in_op & FILE_OPINVERSE)
+				offset = ~offset;
+			break;
+		case FILE_LELONG:
+		case FILE_LEID3:
+			if (nbytes < (offset + 4))
+				return 0;
+			if (off) {
+				switch (m->in_op & FILE_OPS_MASK) {
+				case FILE_OPAND:
+					offset = (int32_t)((p->hl[3]<<24)|
+							 (p->hl[2]<<16)|
+							 (p->hl[1]<<8)|
+							 (p->hl[0])) &
+						 off;
+					break;
+				case FILE_OPOR:
+					offset = (int32_t)((p->hl[3]<<24)|
+							 (p->hl[2]<<16)|
+							 (p->hl[1]<<8)|
+							 (p->hl[0])) |
+						 off;
+					break;
+				case FILE_OPXOR:
+					offset = (int32_t)((p->hl[3]<<24)|
+							 (p->hl[2]<<16)|
+							 (p->hl[1]<<8)|
+							 (p->hl[0])) ^
+						 off;
+					break;
+				case FILE_OPADD:
+					offset = (int32_t)((p->hl[3]<<24)|
+							 (p->hl[2]<<16)|
+							 (p->hl[1]<<8)|
+							 (p->hl[0])) +
+						 off;
+					break;
+				case FILE_OPMINUS:
+					offset = (int32_t)((p->hl[3]<<24)|
+							 (p->hl[2]<<16)|
+							 (p->hl[1]<<8)|
+							 (p->hl[0])) -
+						 off;
+					break;
+				case FILE_OPMULTIPLY:
+					offset = (int32_t)((p->hl[3]<<24)|
+							 (p->hl[2]<<16)|
+							 (p->hl[1]<<8)|
+							 (p->hl[0])) *
+						 off;
+					break;
+				case FILE_OPDIVIDE:
+					offset = (int32_t)((p->hl[3]<<24)|
+							 (p->hl[2]<<16)|
+							 (p->hl[1]<<8)|
+							 (p->hl[0])) /
+						 off;
+					break;
+				case FILE_OPMODULO:
+					offset = (int32_t)((p->hl[3]<<24)|
+							 (p->hl[2]<<16)|
+							 (p->hl[1]<<8)|
+							 (p->hl[0])) %
+						 off;
+					break;
+				}
+			} else
+				offset = (int32_t)((p->hl[3]<<24)|
+						 (p->hl[2]<<16)|
+						 (p->hl[1]<<8)|
+						 (p->hl[0]));
+			if (m->in_op & FILE_OPINVERSE)
+				offset = ~offset;
+			break;
+		case FILE_MELONG:
+			if (nbytes < (offset + 4))
+				return 0;
+			if (off) {
+				switch (m->in_op & FILE_OPS_MASK) {
+				case FILE_OPAND:
+					offset = (int32_t)((p->hl[1]<<24)|
+							 (p->hl[0]<<16)|
+							 (p->hl[3]<<8)|
+							 (p->hl[2])) &
+						 off;
+					break;
+				case FILE_OPOR:
+					offset = (int32_t)((p->hl[1]<<24)|
+							 (p->hl[0]<<16)|
+							 (p->hl[3]<<8)|
+							 (p->hl[2])) |
+						 off;
+					break;
+				case FILE_OPXOR:
+					offset = (int32_t)((p->hl[1]<<24)|
+							 (p->hl[0]<<16)|
+							 (p->hl[3]<<8)|
+							 (p->hl[2])) ^
+						 off;
+					break;
+				case FILE_OPADD:
+					offset = (int32_t)((p->hl[1]<<24)|
+							 (p->hl[0]<<16)|
+							 (p->hl[3]<<8)|
+							 (p->hl[2])) +
+						 off;
+					break;
+				case FILE_OPMINUS:
+					offset = (int32_t)((p->hl[1]<<24)|
+							 (p->hl[0]<<16)|
+							 (p->hl[3]<<8)|
+							 (p->hl[2])) -
+						 off;
+					break;
+				case FILE_OPMULTIPLY:
+					offset = (int32_t)((p->hl[1]<<24)|
+							 (p->hl[0]<<16)|
+							 (p->hl[3]<<8)|
+							 (p->hl[2])) *
+						 off;
+					break;
+				case FILE_OPDIVIDE:
+					offset = (int32_t)((p->hl[1]<<24)|
+							 (p->hl[0]<<16)|
+							 (p->hl[3]<<8)|
+							 (p->hl[2])) /
+						 off;
+					break;
+				case FILE_OPMODULO:
+					offset = (int32_t)((p->hl[1]<<24)|
+							 (p->hl[0]<<16)|
+							 (p->hl[3]<<8)|
+							 (p->hl[2])) %
+						 off;
+					break;
+				}
+			} else
+				offset = (int32_t)((p->hl[1]<<24)|
+						 (p->hl[0]<<16)|
+						 (p->hl[3]<<8)|
+						 (p->hl[2]));
+			if (m->in_op & FILE_OPINVERSE)
+				offset = ~offset;
+			break;
+		case FILE_LONG:
+			if (nbytes < (offset + 4))
+				return 0;
+			if (off) {
+				switch (m->in_op & FILE_OPS_MASK) {
+				case FILE_OPAND:
+					offset = p->l & off;
+					break;
+				case FILE_OPOR:
+					offset = p->l | off;
+					break;
+				case FILE_OPXOR:
+					offset = p->l ^ off;
+					break;
+				case FILE_OPADD:
+					offset = p->l + off;
+					break;
+				case FILE_OPMINUS:
+					offset = p->l - off;
+					break;
+				case FILE_OPMULTIPLY:
+					offset = p->l * off;
+					break;
+				case FILE_OPDIVIDE:
+					offset = p->l / off;
+					break;
+				case FILE_OPMODULO:
+					offset = p->l % off;
+					break;
+				}
+			} else
+				offset = p->l;
+			if (m->in_op & FILE_OPINVERSE)
+				offset = ~offset;
+			break;
+		}
+
+		switch (m->in_type) {
+		case FILE_LEID3:
+		case FILE_BEID3:
+			offset = ((((offset >>  0) & 0x7f) <<  0) |
+				 (((offset >>  8) & 0x7f) <<  7) |
+				 (((offset >> 16) & 0x7f) << 14) |
+				 (((offset >> 24) & 0x7f) << 21)) + 10;
+			break;
+		default:
+			break;
+		}
+
+		if (m->flag & INDIROFFADD) {
+			offset += ms->c.li[cont_level-1].off;
+		}
+		if (mcopy(ms, p, m->type, 0, s, offset, nbytes, count) == -1)
+			return -1;
+		ms->offset = offset;
+
+		if ((ms->flags & MAGIC_DEBUG) != 0) {
+			mdebug(offset, (char *)(void *)p,
+			    sizeof(union VALUETYPE));
+#ifndef COMPILE_ONLY
+			file_mdump(m);
+#endif
+		}
+	}
+
+	/* Verify we have enough data to match magic type */
+	switch (m->type) {
+	case FILE_BYTE:
+		if (nbytes < (offset + 1)) /* should alway be true */
+			return 0;
+		break;
+
+	case FILE_SHORT:
+	case FILE_BESHORT:
+	case FILE_LESHORT:
+		if (nbytes < (offset + 2))
+			return 0;
+		break;
+
+	case FILE_LONG:
+	case FILE_BELONG:
+	case FILE_LELONG:
+	case FILE_MELONG:
+	case FILE_DATE:
+	case FILE_BEDATE:
+	case FILE_LEDATE:
+	case FILE_MEDATE:
+	case FILE_LDATE:
+	case FILE_BELDATE:
+	case FILE_LELDATE:
+	case FILE_MELDATE:
+	case FILE_FLOAT:
+	case FILE_BEFLOAT:
+	case FILE_LEFLOAT:
+		if (nbytes < (offset + 4))
+			return 0;
+		break;
+
+	case FILE_DOUBLE:
+	case FILE_BEDOUBLE:
+	case FILE_LEDOUBLE:
+		if (nbytes < (offset + 8))
+			return 0;
+		break;
+
+	case FILE_STRING:
+	case FILE_PSTRING:
+	case FILE_SEARCH:
+		if (nbytes < (offset + m->vallen))
+			return 0;
+		break;
+
+	case FILE_REGEX:
+		if (nbytes < offset)
+			return 0;
+		break;
+
+	case FILE_INDIRECT:
+	  	if ((ms->flags & (MAGIC_MIME|MAGIC_APPLE)) == 0 &&
+		    file_printf(ms, "%s", m->desc) == -1)
+			return -1;
+		if (nbytes < offset)
+			return 0;
+		return file_softmagic(ms, s + offset, nbytes - offset,
+		    BINTEST);
+
+	case FILE_DEFAULT:	/* nothing to check */
+	default:
+		break;
+	}
+	if (!mconvert(ms, m))
+		return 0;
+	return 1;
+}
+
+private uint64_t
+file_strncmp(const char *s1, const char *s2, size_t len, uint32_t flags)
+{
+	/*
+	 * Convert the source args to unsigned here so that (1) the
+	 * compare will be unsigned as it is in strncmp() and (2) so
+	 * the ctype functions will work correctly without extra
+	 * casting.
+	 */
+	const unsigned char *a = (const unsigned char *)s1;
+	const unsigned char *b = (const unsigned char *)s2;
+	uint64_t v;
+
+	/*
+	 * What we want here is v = strncmp(s1, s2, len),
+	 * but ignoring any nulls.
+	 */
+	v = 0;
+	if (0L == flags) { /* normal string: do it fast */
+		while (len-- > 0)
+			if ((v = *b++ - *a++) != '\0')
+				break;
+	}
+	else { /* combine the others */
+		while (len-- > 0) {
+			if ((flags & STRING_IGNORE_LOWERCASE) &&
+			    islower(*a)) {
+				if ((v = tolower(*b++) - *a++) != '\0')
+					break;
+			}
+			else if ((flags & STRING_IGNORE_UPPERCASE) &&
+			    isupper(*a)) {
+				if ((v = toupper(*b++) - *a++) != '\0')
+					break;
+			}
+			else if ((flags & STRING_COMPACT_WHITESPACE) &&
+			    isspace(*a)) {
+				a++;
+				if (isspace(*b++)) {
+					if (!isspace(*a))
+						while (isspace(*b))
+							b++;
+				}
+				else {
+					v = 1;
+					break;
+				}
+			}
+			else if ((flags & STRING_COMPACT_OPTIONAL_WHITESPACE) &&
+			    isspace(*a)) {
+				a++;
+				while (isspace(*b))
+					b++;
+			}
+			else {
+				if ((v = *b++ - *a++) != '\0')
+					break;
+			}
+		}
+	}
+	return v;
+}
+
+private uint64_t
+file_strncmp16(const char *a, const char *b, size_t len, uint32_t flags)
+{
+	/*
+	 * XXX - The 16-bit string compare probably needs to be done
+	 * differently, especially if the flags are to be supported.
+	 * At the moment, I am unsure.
+	 */
+	flags = 0;
+	return file_strncmp(a, b, len, flags);
+}
+
+private int
+magiccheck(struct magic_set *ms, struct magic *m)
+{
+	uint64_t l = m->value.q;
+	uint64_t v;
+	float fl, fv;
+	double dl, dv;
+	int matched;
+	union VALUETYPE *p = &ms->ms_value;
+
+	switch (m->type) {
+	case FILE_BYTE:
+		v = p->b;
+		break;
+
+	case FILE_SHORT:
+	case FILE_BESHORT:
+	case FILE_LESHORT:
+		v = p->h;
+		break;
+
+	case FILE_LONG:
+	case FILE_BELONG:
+	case FILE_LELONG:
+	case FILE_MELONG:
+	case FILE_DATE:
+	case FILE_BEDATE:
+	case FILE_LEDATE:
+	case FILE_MEDATE:
+	case FILE_LDATE:
+	case FILE_BELDATE:
+	case FILE_LELDATE:
+	case FILE_MELDATE:
+		v = p->l;
+		break;
+
+	case FILE_QUAD:
+	case FILE_LEQUAD:
+	case FILE_BEQUAD:
+	case FILE_QDATE:
+	case FILE_BEQDATE:
+	case FILE_LEQDATE:
+	case FILE_QLDATE:
+	case FILE_BEQLDATE:
+	case FILE_LEQLDATE:
+		v = p->q;
+		break;
+
+	case FILE_FLOAT:
+	case FILE_BEFLOAT:
+	case FILE_LEFLOAT:
+		fl = m->value.f;
+		fv = p->f;
+		switch (m->reln) {
+		case 'x':
+			matched = 1;
+			break;
+
+		case '!':
+			matched = fv != fl;
+			break;
+
+		case '=':
+			matched = fv == fl;
+			break;
+
+		case '>':
+			matched = fv > fl;
+			break;
+
+		case '<':
+			matched = fv < fl;
+			break;
+
+		default:
+			matched = 0;
+			file_magerror(ms, "cannot happen with float: invalid relation `%c'",
+			    m->reln);
+			return -1;
+		}
+		return matched;
+
+	case FILE_DOUBLE:
+	case FILE_BEDOUBLE:
+	case FILE_LEDOUBLE:
+		dl = m->value.d;
+		dv = p->d;
+		switch (m->reln) {
+		case 'x':
+			matched = 1;
+			break;
+
+		case '!':
+			matched = dv != dl;
+			break;
+
+		case '=':
+			matched = dv == dl;
+			break;
+
+		case '>':
+			matched = dv > dl;
+			break;
+
+		case '<':
+			matched = dv < dl;
+			break;
+
+		default:
+			matched = 0;
+			file_magerror(ms, "cannot happen with double: invalid relation `%c'", m->reln);
+			return -1;
+		}
+		return matched;
+
+	case FILE_DEFAULT:
+		l = 0;
+		v = 0;
+		break;
+
+	case FILE_STRING:
+	case FILE_PSTRING:
+		l = 0;
+		v = file_strncmp(m->value.s, p->s, (size_t)m->vallen, m->str_flags);
+		break;
+
+	case FILE_BESTRING16:
+	case FILE_LESTRING16:
+		l = 0;
+		v = file_strncmp16(m->value.s, p->s, (size_t)m->vallen, m->str_flags);
+		break;
+
+	case FILE_SEARCH: { /* search ms->search.s for the string m->value.s */
+		size_t slen;
+		size_t idx;
+
+		if (ms->search.s == NULL)
+			return 0;
+
+		slen = MIN(m->vallen, sizeof(m->value.s));
+		l = 0;
+		v = 0;
+
+		for (idx = 0; m->str_range == 0 || idx < m->str_range; idx++) {
+			if (slen + idx > ms->search.s_len)
+				break;
+
+			v = file_strncmp(m->value.s, ms->search.s + idx, slen, m->str_flags);
+			if (v == 0) {	/* found match */
+				ms->search.offset += idx;
+				break;
+			}
+		}
+		break;
+	}
+	case FILE_REGEX: {
+		int rc;
+		regex_t rx;
+		char errmsg[512];
+
+		if (ms->search.s == NULL)
+			return 0;
+
+		l = 0;
+		rc = regcomp(&rx, m->value.s,
+		    REG_EXTENDED|REG_NEWLINE|
+		    ((m->str_flags & STRING_IGNORE_CASE) ? REG_ICASE : 0));
+		if (rc) {
+			(void)regerror(rc, &rx, errmsg, sizeof(errmsg));
+			file_magerror(ms, "regex error %d, (%s)",
+			    rc, errmsg);
+			v = (uint64_t)-1;
+		}
+		else {
+			regmatch_t pmatch[1];
+#ifndef REG_STARTEND
+#define	REG_STARTEND	0
+			size_t l = ms->search.s_len - 1;
+			char c = ms->search.s[l];
+			((char *)(intptr_t)ms->search.s)[l] = '\0';
+#else
+			pmatch[0].rm_so = 0;
+			pmatch[0].rm_eo = ms->search.s_len;
+#endif
+			rc = regexec(&rx, (const char *)ms->search.s,
+			    1, pmatch, REG_STARTEND);
+#if REG_STARTEND == 0
+			((char *)(intptr_t)ms->search.s)[l] = c;
+#endif
+			switch (rc) {
+			case 0:
+				ms->search.s += (int)pmatch[0].rm_so;
+				ms->search.offset += (size_t)pmatch[0].rm_so;
+				ms->search.rm_len =
+				    (size_t)(pmatch[0].rm_eo - pmatch[0].rm_so);
+				v = 0;
+				break;
+
+			case REG_NOMATCH:
+				v = 1;
+				break;
+
+			default:
+				(void)regerror(rc, &rx, errmsg, sizeof(errmsg));
+				file_magerror(ms, "regexec error %d, (%s)",
+				    rc, errmsg);
+				v = (uint64_t)-1;
+				break;
+			}
+			regfree(&rx);
+		}
+		if (v == (uint64_t)-1)
+			return -1;
+		break;
+	}
+	case FILE_INDIRECT:
+		return 1;
+	default:
+		file_magerror(ms, "invalid type %d in magiccheck()", m->type);
+		return -1;
+	}
+
+	v = file_signextend(ms, m, v);
+
+	switch (m->reln) {
+	case 'x':
+		if ((ms->flags & MAGIC_DEBUG) != 0)
+			(void) fprintf(stderr, "%" INT64_T_FORMAT
+			    "u == *any* = 1\n", (unsigned long long)v);
+		matched = 1;
+		break;
+
+	case '!':
+		matched = v != l;
+		if ((ms->flags & MAGIC_DEBUG) != 0)
+			(void) fprintf(stderr, "%" INT64_T_FORMAT "u != %"
+			    INT64_T_FORMAT "u = %d\n", (unsigned long long)v,
+			    (unsigned long long)l, matched);
+		break;
+
+	case '=':
+		matched = v == l;
+		if ((ms->flags & MAGIC_DEBUG) != 0)
+			(void) fprintf(stderr, "%" INT64_T_FORMAT "u == %"
+			    INT64_T_FORMAT "u = %d\n", (unsigned long long)v,
+			    (unsigned long long)l, matched);
+		break;
+
+	case '>':
+		if (m->flag & UNSIGNED) {
+			matched = v > l;
+			if ((ms->flags & MAGIC_DEBUG) != 0)
+				(void) fprintf(stderr, "%" INT64_T_FORMAT
+				    "u > %" INT64_T_FORMAT "u = %d\n",
+				    (unsigned long long)v,
+				    (unsigned long long)l, matched);
+		}
+		else {
+			matched = (int64_t) v > (int64_t) l;
+			if ((ms->flags & MAGIC_DEBUG) != 0)
+				(void) fprintf(stderr, "%" INT64_T_FORMAT
+				    "d > %" INT64_T_FORMAT "d = %d\n",
+				    (long long)v, (long long)l, matched);
+		}
+		break;
+
+	case '<':
+		if (m->flag & UNSIGNED) {
+			matched = v < l;
+			if ((ms->flags & MAGIC_DEBUG) != 0)
+				(void) fprintf(stderr, "%" INT64_T_FORMAT
+				    "u < %" INT64_T_FORMAT "u = %d\n",
+				    (unsigned long long)v,
+				    (unsigned long long)l, matched);
+		}
+		else {
+			matched = (int64_t) v < (int64_t) l;
+			if ((ms->flags & MAGIC_DEBUG) != 0)
+				(void) fprintf(stderr, "%" INT64_T_FORMAT
+				    "d < %" INT64_T_FORMAT "d = %d\n",
+				     (long long)v, (long long)l, matched);
+		}
+		break;
+
+	case '&':
+		matched = (v & l) == l;
+		if ((ms->flags & MAGIC_DEBUG) != 0)
+			(void) fprintf(stderr, "((%" INT64_T_FORMAT "x & %"
+			    INT64_T_FORMAT "x) == %" INT64_T_FORMAT
+			    "x) = %d\n", (unsigned long long)v,
+			    (unsigned long long)l, (unsigned long long)l,
+			    matched);
+		break;
+
+	case '^':
+		matched = (v & l) != l;
+		if ((ms->flags & MAGIC_DEBUG) != 0)
+			(void) fprintf(stderr, "((%" INT64_T_FORMAT "x & %"
+			    INT64_T_FORMAT "x) != %" INT64_T_FORMAT
+			    "x) = %d\n", (unsigned long long)v,
+			    (unsigned long long)l, (unsigned long long)l,
+			    matched);
+		break;
+
+	default:
+		matched = 0;
+		file_magerror(ms, "cannot happen: invalid relation `%c'",
+		    m->reln);
+		return -1;
+	}
+
+	return matched;
+}
+
+private int
+handle_annotation(struct magic_set *ms, struct magic *m)
+{
+	if (ms->flags & MAGIC_APPLE) {
+		if (file_printf(ms, "%.8s", m->apple) == -1)
+			return -1;
+		return 1;
+	}
+	if ((ms->flags & MAGIC_MIME_TYPE) && m->mimetype[0]) {
+		if (file_printf(ms, "%s", m->mimetype) == -1)
+			return -1;
+		return 1;
+	}
+	return 0;
+}
+
+private int
+print_sep(struct magic_set *ms, int firstline)
+{
+	if (ms->flags & MAGIC_MIME)
+		return 0;
+	if (firstline)
+		return 0;
+	/*
+	 * we found another match
+	 * put a newline and '-' to do some simple formatting
+	 */
+	return file_printf(ms, "\n- ");
+}
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/strlcat.c b/framework/modules/c_FileTypeSigModule/file-5.08/src/strlcat.c
new file mode 100755
index 0000000000000000000000000000000000000000..9692bc10dff0cb6861d3c3d91343e3daa90f7046
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/strlcat.c
@@ -0,0 +1,58 @@
+/*	$OpenBSD: strlcat.c,v 1.13 2005/08/08 08:05:37 espie Exp $	*/
+
+/*
+ * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* OPENBSD ORIGINAL: lib/libc/string/strlcat.c */
+#include "file.h"
+
+#include <sys/types.h>
+#include <string.h>
+
+/*
+ * Appends src to string dst of size siz (unlike strncat, siz is the
+ * full size of dst, not space left).  At most siz-1 characters
+ * will be copied.  Always NUL terminates (unless siz <= strlen(dst)).
+ * Returns strlen(src) + MIN(siz, strlen(initial dst)).
+ * If retval >= siz, truncation occurred.
+ */
+size_t
+strlcat(char *dst, const char *src, size_t siz)
+{
+	char *d = dst;
+	const char *s = src;
+	size_t n = siz;
+	size_t dlen;
+
+	/* Find the end of dst and adjust bytes left but don't go past end */
+	while (n-- != 0 && *d != '\0')
+		d++;
+	dlen = d - dst;
+	n = siz - dlen;
+
+	if (n == 0)
+		return(dlen + strlen(s));
+	while (*s != '\0') {
+		if (n != 1) {
+			*d++ = *s;
+			n--;
+		}
+		s++;
+	}
+	*d = '\0';
+
+	return(dlen + (s - src));	/* count does not include NUL */
+}
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/strlcpy.c b/framework/modules/c_FileTypeSigModule/file-5.08/src/strlcpy.c
new file mode 100755
index 0000000000000000000000000000000000000000..992501c862871c999a6d33ed3e7d55b3891e92de
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/strlcpy.c
@@ -0,0 +1,54 @@
+/*	$OpenBSD: strlcpy.c,v 1.10 2005/08/08 08:05:37 espie Exp $	*/
+
+/*
+ * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* OPENBSD ORIGINAL: lib/libc/string/strlcpy.c */
+#include "file.h"
+
+#include <sys/types.h>
+#include <string.h>
+
+/*
+ * Copy src to string dst of size siz.  At most siz-1 characters
+ * will be copied.  Always NUL terminates (unless siz == 0).
+ * Returns strlen(src); if retval >= siz, truncation occurred.
+ */
+size_t
+strlcpy(char *dst, const char *src, size_t siz)
+{
+	char *d = dst;
+	const char *s = src;
+	size_t n = siz;
+
+	/* Copy as many bytes as will fit */
+	if (n != 0 && --n != 0) {
+		do {
+			if ((*d++ = *s++) == 0)
+				break;
+		} while (--n != 0);
+	}
+
+	/* Not enough room in dst, add NUL and traverse rest of src */
+	if (n == 0) {
+		if (siz != 0)
+			*d = '\0';		/* NUL-terminate dst */
+		while (*s++)
+			;
+	}
+
+	return(s - src - 1);	/* count does not include NUL */
+}
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/tar.h b/framework/modules/c_FileTypeSigModule/file-5.08/src/tar.h
new file mode 100755
index 0000000000000000000000000000000000000000..854d4552e6084c29b3ff8457048f2db4fce9786c
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/tar.h
@@ -0,0 +1,73 @@
+/*
+ * Copyright (c) Ian F. Darwin 1986-1995.
+ * Software written by Ian F. Darwin and others;
+ * maintained 1995-present by Christos Zoulas and others.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice immediately at the beginning of the file, without modification,
+ *    this list of conditions, and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * Header file for public domain tar (tape archive) program.
+ *
+ * @(#)tar.h 1.20 86/10/29	Public Domain.
+ *
+ * Created 25 August 1985 by John Gilmore, ihnp4!hoptoad!gnu.
+ *
+ * $File: tar.h,v 1.13 2010/11/30 14:58:53 rrt Exp $ # checkin only
+ */
+
+/*
+ * Header block on tape.
+ *
+ * I'm going to use traditional DP naming conventions here.
+ * A "block" is a big chunk of stuff that we do I/O on.
+ * A "record" is a piece of info that we care about.
+ * Typically many "record"s fit into a "block".
+ */
+#define	RECORDSIZE	512
+#define	NAMSIZ	100
+#define	TUNMLEN	32
+#define	TGNMLEN	32
+
+union record {
+	unsigned char	charptr[RECORDSIZE];
+	struct header {
+		char	name[NAMSIZ];
+		char	mode[8];
+		char	uid[8];
+		char	gid[8];
+		char	size[12];
+		char	mtime[12];
+		char	chksum[8];
+		char	linkflag;
+		char	linkname[NAMSIZ];
+		char	magic[8];
+		char	uname[TUNMLEN];
+		char	gname[TGNMLEN];
+		char	devmajor[8];
+		char	devminor[8];
+	} header;
+};
+
+/* The magic field is filled with this if uname and gname are valid. */
+#define	TMAGIC		"ustar"		/* 5 chars and a null */
+#define	GNUTMAGIC	"ustar  "	/* 7 chars and a null */
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/src/vasprintf.c b/framework/modules/c_FileTypeSigModule/file-5.08/src/vasprintf.c
new file mode 100755
index 0000000000000000000000000000000000000000..3e3af2062a85e04d93a353b157cc6f42ae4c7683
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/src/vasprintf.c
@@ -0,0 +1,642 @@
+/*
+ * Copyright (c) Ian F. Darwin 1986-1995.
+ * Software written by Ian F. Darwin and others;
+ * maintained 1995-present by Christos Zoulas and others.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice immediately at the beginning of the file, without modification,
+ *    this list of conditions, and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *  
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*###########################################################################
+  #                                                                           #
+  #                                vasprintf                                  #
+  #                                                                           #
+  #               Copyright (c) 2002-2005 David TAILLANDIER                   #
+  #                                                                           #
+  ###########################################################################*/
+
+/*
+
+This software is distributed under the "modified BSD licence".
+
+This software is also released with GNU license (GPL) in another file (same
+source-code, only license differ).
+
+
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer. Redistributions in binary
+form must reproduce the above copyright notice, this list of conditions and
+the following disclaimer in the documentation and/or other materials
+provided with the distribution. The name of the author may not be used to
+endorse or promote products derived from this software without specific
+prior written permission. 
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+====================
+
+Hacked from xnprintf version of 26th February 2005 to provide only
+vasprintf by Reuben Thomas <rrt@sc3d.org>.
+
+====================
+
+
+'printf' function family use the following format string:
+
+%[flag][width][.prec][modifier]type
+
+%% is the escape sequence to print a '%'
+%  followed by an unknown format will print the characters without
+trying to do any interpretation
+
+flag:   none   +     -     #     (blank)
+width:  n    0n    *
+prec:   none   .0    .n     .*
+modifier:    F N L h l ll    ('F' and 'N' are ms-dos/16-bit specific)
+type:  d i o u x X f e g E G c s p n
+
+
+The function needs to allocate memory to store the full text before to
+actually writting it.  i.e if you want to fnprintf() 1000 characters, the
+functions will allocate 1000 bytes.
+This behaviour can be modified: you have to customise the code to flush the
+internal buffer (writing to screen or file) when it reach a given size. Then
+the buffer can have a shorter length. But what? If you really need to write
+HUGE string, don't use printf!
+During the process, some other memory is allocated (1024 bytes minimum)
+to handle the output of partial sprintf() calls. If you have only 10000 bytes
+free in memory, you *may* not be able to nprintf() a 8000 bytes-long text.
+
+note: if a buffer overflow occurs, exit() is called. This situation should
+never appear ... but if you want to be *really* sure, you have to modify the
+code to handle those situations (only one place to modify).
+A buffer overflow can only occur if your sprintf() do strange things or when
+you use strange formats.
+
+*/
+#include "file.h"
+
+#ifndef	lint
+FILE_RCSID("@(#)$File: vasprintf.c,v 1.7 2009/02/03 20:27:52 christos Exp $")
+#endif	/* lint */
+
+#include <assert.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <ctype.h>
+#ifdef HAVE_LIMITS_H
+#include <limits.h>
+#endif
+
+#define ALLOC_CHUNK 2048
+#define ALLOC_SECURITY_MARGIN 1024   /* big value because some platforms have very big 'G' exponent */
+#if ALLOC_CHUNK < ALLOC_SECURITY_MARGIN
+#    error  !!! ALLOC_CHUNK < ALLOC_SECURITY_MARGIN !!!
+#endif
+/* note: to have some interest, ALLOC_CHUNK should be much greater than ALLOC_SECURITY_MARGIN */
+
+/*
+ *  To save a lot of push/pop, every variable are stored into this
+ *  structure, which is passed among nearly every sub-functions.
+ */
+typedef struct {
+  const char * src_string;        /* current position into intput string */
+  char *       buffer_base;       /* output buffer */
+  char *       dest_string;       /* current position into output string */
+  size_t       buffer_len;        /* length of output buffer */
+  size_t       real_len;          /* real current length of output text */
+  size_t       pseudo_len;        /* total length of output text if it were not limited in size */
+  size_t       maxlen;
+  va_list      vargs;             /* pointer to current position into vargs */
+  char *       sprintf_string;
+  FILE *       fprintf_file;
+} xprintf_struct;
+
+/*
+ *  Realloc buffer if needed
+ *  Return value:  0 = ok
+ *               EOF = not enought memory
+ */
+static int realloc_buff(xprintf_struct *s, size_t len)
+{
+  char * ptr;
+
+  if (len + ALLOC_SECURITY_MARGIN + s->real_len > s->buffer_len) {
+    len += s->real_len + ALLOC_CHUNK;
+    ptr = (char *)realloc((void *)(s->buffer_base), len);
+    if (ptr == NULL) {
+      s->buffer_base = NULL;
+      return EOF;
+    }
+
+    s->dest_string = ptr + (size_t)(s->dest_string - s->buffer_base);
+    s->buffer_base = ptr;
+    s->buffer_len = len;
+
+    (s->buffer_base)[s->buffer_len - 1] = 1; /* overflow marker */
+  }
+
+  return 0;
+}
+
+/*
+ *  Prints 'usual' characters    up to next '%'
+ *                            or up to end of text
+ */
+static int usual_char(xprintf_struct * s)
+{
+  size_t len;
+
+  len = strcspn(s->src_string, "%");     /* reachs the next '%' or end of input string */
+  /* note: 'len' is never 0 because the presence of '%' */
+  /* or end-of-line is checked in the calling function  */
+
+  if (realloc_buff(s,len) == EOF)
+    return EOF;
+
+  memcpy(s->dest_string, s->src_string, len);
+  s->src_string += len;
+  s->dest_string += len;
+  s->real_len += len;
+  s->pseudo_len += len;
+
+  return 0;
+}
+
+/*
+ *  Return value: 0 = ok
+ *                EOF = error
+ */
+static int print_it(xprintf_struct *s, size_t approx_len,
+                    const char *format_string, ...)
+{
+  va_list varg;
+  int vsprintf_len;
+  size_t len;
+
+  if (realloc_buff(s,approx_len) == EOF)
+    return EOF;
+
+  va_start(varg, format_string);
+  vsprintf_len = vsprintf(s->dest_string, format_string, varg);
+  va_end(varg);
+
+  /* Check for overflow */
+  assert((s->buffer_base)[s->buffer_len - 1] == 1);
+
+  if (vsprintf_len == EOF) /* must be done *after* overflow-check */
+    return EOF;
+
+  s->pseudo_len += vsprintf_len;
+  len = strlen(s->dest_string);
+  s->real_len += len;
+  s->dest_string += len;
+
+  return 0;
+}
+
+/*
+ *  Prints a string (%s)
+ *  We need special handling because:
+ *     a: the length of the string is unknown
+ *     b: when .prec is used, we must not access any extra byte of the
+ *        string (of course, if the original sprintf() does... what the
+ *        hell, not my problem)
+ *
+ *  Return value: 0 = ok
+ *                EOF = error
+ */
+static int type_s(xprintf_struct *s, int width, int prec,
+                  const char *format_string, const char *arg_string)
+{
+  size_t string_len;
+
+  if (arg_string == NULL)
+    return print_it(s, (size_t)6, "(null)", 0);
+
+  /* hand-made strlen() whitch stops when 'prec' is reached. */
+  /* if 'prec' is -1 then it is never reached. */
+  string_len = 0;
+  while (arg_string[string_len] != 0 && (size_t)prec != string_len)
+    string_len++;
+
+  if (width != -1 && string_len < (size_t)width)
+    string_len = (size_t)width;
+
+  return print_it(s, string_len, format_string, arg_string);
+}
+
+/*
+ *  Read a serie of digits. Stop when non-digit is found.
+ *  Return value: the value read (between 0 and 32767).
+ *  Note: no checks are made against overflow. If the string contain a big
+ *  number, then the return value won't be what we want (but, in this case,
+ *  the programmer don't know whatr he wants, then no problem).
+ */
+static int getint(const char **string)
+{
+  int i = 0;
+
+  while (isdigit((unsigned char)**string) != 0) {
+    i = i * 10 + (**string - '0');
+    (*string)++;
+  }
+
+  if (i < 0 || i > 32767)
+    i = 32767; /* if we have i==-10 this is not because the number is */
+  /* negative; this is because the number is big */
+  return i;
+}
+
+/*
+ *  Read a part of the format string. A part is 'usual characters' (ie "blabla")
+ *  or '%%' escape sequence (to print a single '%') or any combination of
+ *  format specifier (ie "%i" or "%10.2d").
+ *  After the current part is managed, the function returns to caller with
+ *  everything ready to manage the following part.
+ *  The caller must ensure than the string is not empty, i.e. the first byte
+ *  is not zero.
+ *
+ *  Return value:  0 = ok
+ *                 EOF = error
+ */
+static int dispatch(xprintf_struct *s)
+{
+  const char *initial_ptr;
+  char format_string[24]; /* max length may be something like  "% +-#032768.32768Ld" */
+  char *format_ptr;
+  int flag_plus, flag_minus, flag_space, flag_sharp, flag_zero;
+  int width, prec, modifier, approx_width;
+  char type;
+  /* most of those variables are here to rewrite the format string */
+
+#define SRCTXT  (s->src_string)
+#define DESTTXT (s->dest_string)
+
+  /* incoherent format string. Characters after the '%' will be printed with the next call */
+#define INCOHERENT()         do {SRCTXT=initial_ptr; return 0;} while (0)     /* do/while to avoid */
+#define INCOHERENT_TEST()    do {if(*SRCTXT==0)   INCOHERENT();} while (0)    /* a null statement  */
+
+  /* 'normal' text */
+  if (*SRCTXT != '%')
+    return usual_char(s);
+
+  /* we then have a '%' */
+  SRCTXT++;
+  /* don't check for end-of-string ; this is done later */
+
+  /* '%%' escape sequence */
+  if (*SRCTXT == '%') {
+    if (realloc_buff(s, (size_t)1) == EOF) /* because we can have "%%%%%%%%..." */
+      return EOF;
+    *DESTTXT = '%';
+    DESTTXT++;
+    SRCTXT++;
+    (s->real_len)++;
+    (s->pseudo_len)++;
+    return 0;
+  }
+
+  /* '%' managing */
+  initial_ptr = SRCTXT;   /* save current pointer in case of incorrect */
+  /* 'decoding'. Points just after the '%' so the '%' */
+  /* won't be printed in any case, as required. */
+
+  /* flag */
+  flag_plus = flag_minus = flag_space = flag_sharp = flag_zero = 0;
+
+  for (;; SRCTXT++) {
+    if (*SRCTXT == ' ')
+      flag_space = 1;
+    else if (*SRCTXT == '+')
+      flag_plus = 1;
+    else if (*SRCTXT == '-')
+      flag_minus = 1;
+    else if (*SRCTXT == '#')
+      flag_sharp = 1;
+    else if (*SRCTXT == '0')
+      flag_zero = 1;
+    else
+      break;
+  }
+
+  INCOHERENT_TEST();    /* here is the first test for end of string */
+
+  /* width */
+  if (*SRCTXT == '*') {         /* width given by next argument */
+    SRCTXT++;
+    width = va_arg(s->vargs, int);
+    if ((size_t)width > 0x3fffU) /* 'size_t' to check against negative values too */
+      width = 0x3fff;
+  } else if (isdigit((unsigned char)*SRCTXT)) /* width given as ASCII number */
+    width = getint(&SRCTXT);
+  else
+    width = -1;                 /* no width specified */
+
+  INCOHERENT_TEST();
+
+  /* .prec */
+  if (*SRCTXT == '.') {
+    SRCTXT++;
+    if (*SRCTXT == '*') {       /* .prec given by next argument */
+      SRCTXT++;
+      prec = va_arg(s->vargs, int);
+      if ((size_t)prec >= 0x3fffU) /* 'size_t' to check against negative values too */
+        prec = 0x3fff;
+    } else {                    /* .prec given as ASCII number */
+      if (isdigit((unsigned char)*SRCTXT) == 0)
+        INCOHERENT();
+      prec = getint(&SRCTXT);
+    }
+    INCOHERENT_TEST();
+  } else
+    prec = -1;                  /* no .prec specified */
+
+  /* modifier */
+  if (*SRCTXT == 'L' || *SRCTXT == 'h' || *SRCTXT == 'l') {
+    modifier = *SRCTXT;
+    SRCTXT++;
+    if (modifier=='l' && *SRCTXT=='l') {
+      SRCTXT++;
+      modifier = 'L';  /* 'll' == 'L'      long long == long double */
+    } /* only for compatibility ; not portable */
+    INCOHERENT_TEST();
+  } else
+    modifier = -1;              /* no modifier specified */
+
+  /* type */
+  type = *SRCTXT;
+  if (strchr("diouxXfegEGcspn",type) == NULL)
+    INCOHERENT();               /* unknown type */
+  SRCTXT++;
+
+  /* rewrite format-string */
+  format_string[0] = '%';
+  format_ptr = &(format_string[1]);
+
+  if (flag_plus) {
+    *format_ptr = '+';
+    format_ptr++;
+  }
+  if (flag_minus) {
+    *format_ptr = '-';
+    format_ptr++;
+  }
+  if (flag_space) {
+    *format_ptr = ' ';
+    format_ptr++;
+  }
+  if (flag_sharp) {
+    *format_ptr = '#';
+    format_ptr++;
+  }
+  if (flag_zero) {
+    *format_ptr = '0';
+    format_ptr++;
+  } /* '0' *must* be the last one */
+
+  if (width != -1) {
+    sprintf(format_ptr, "%i", width);
+    format_ptr += strlen(format_ptr);
+  }
+
+  if (prec != -1) {
+    *format_ptr = '.';
+    format_ptr++;
+    sprintf(format_ptr, "%i", prec);
+    format_ptr += strlen(format_ptr);
+  }
+
+  if (modifier != -1) {
+    if (modifier == 'L' && strchr("diouxX",type) != NULL) {
+      *format_ptr = 'l';
+      format_ptr++;
+      *format_ptr = 'l';
+      format_ptr++;
+    } else {
+      *format_ptr = modifier;
+      format_ptr++;
+    }
+  }
+
+  *format_ptr = type;
+  format_ptr++;
+  *format_ptr = 0;
+
+  /* vague approximation of minimal length if width or prec are specified */
+  approx_width = width + prec;
+  if (approx_width < 0) /* because width == -1 and/or prec == -1 */
+    approx_width = 0;
+
+  switch (type) {
+    /* int */
+  case 'd':
+  case 'i':
+  case 'o':
+  case 'u':
+  case 'x':
+  case 'X':
+    switch (modifier) {
+    case -1 :
+      return print_it(s, (size_t)approx_width, format_string, va_arg(s->vargs, int));
+    case 'L':
+      return print_it(s, (size_t)approx_width, format_string, va_arg(s->vargs, long long int));
+    case 'l':
+      return print_it(s, (size_t)approx_width, format_string, va_arg(s->vargs, long int));
+    case 'h':
+      return print_it(s, (size_t)approx_width, format_string, va_arg(s->vargs, int));
+      /* 'int' instead of 'short int' because default promotion is 'int' */
+    default:
+      INCOHERENT();
+    }
+
+    /* char */
+  case 'c':
+    if (modifier != -1)
+      INCOHERENT();
+    return print_it(s, (size_t)approx_width, format_string, va_arg(s->vargs, int));
+    /* 'int' instead of 'char' because default promotion is 'int' */
+
+    /* math */
+  case 'e':
+  case 'f':
+  case 'g':
+  case 'E':
+  case 'G':
+    switch (modifier) {
+    case -1 : /* because of default promotion, no modifier means 'l' */
+    case 'l':
+      return print_it(s, (size_t)approx_width, format_string, va_arg(s->vargs, double));
+    case 'L':
+      return print_it(s, (size_t)approx_width, format_string, va_arg(s->vargs, long double));
+    default:
+      INCOHERENT();
+    }
+
+    /* string */
+  case 's':
+    return type_s(s, width, prec, format_string, va_arg(s->vargs, const char*));
+
+    /* pointer */
+  case 'p':
+    if (modifier == -1)
+      return print_it(s, (size_t)approx_width, format_string, va_arg(s->vargs, void *));
+    INCOHERENT();
+
+    /* store */
+  case 'n':
+    if (modifier == -1) {
+      int * p;
+      p = va_arg(s->vargs, int *);
+      if (p != NULL) {
+        *p = s->pseudo_len;
+        return 0;
+      }
+      return EOF;
+    }
+    INCOHERENT();
+
+  } /* switch */
+
+  INCOHERENT();                 /* unknown type */
+
+#undef INCOHERENT
+#undef INCOHERENT_TEST
+#undef SRCTXT
+#undef DESTTXT
+}
+
+/*
+ *  Return value: number of *virtually* written characters
+ *                EOF = error
+ */
+static int core(xprintf_struct *s)
+{
+  size_t len, save_len;
+  char *dummy_base;
+
+  /* basic checks */
+  if ((int)(s->maxlen) <= 0) /* 'int' to check against some conversion */
+    return EOF;           /* error for example if value is (int)-10 */
+  s->maxlen--;      /* because initial maxlen counts final 0 */
+  /* note: now 'maxlen' _can_ be zero */
+
+  if (s->src_string == NULL)
+    s->src_string = "(null)";
+
+  /* struct init and memory allocation */
+  s->buffer_base = NULL;
+  s->buffer_len = 0;
+  s->real_len = 0;
+  s->pseudo_len = 0;
+  if (realloc_buff(s, (size_t)0) == EOF)
+    return EOF;
+  s->dest_string = s->buffer_base;
+
+  /* process source string */
+  for (;;) {
+    /* up to end of source string */
+    if (*(s->src_string) == 0) {
+      *(s->dest_string) = 0;    /* final 0 */
+      len = s->real_len + 1;
+      break;
+    }
+
+    if (dispatch(s) == EOF)
+      goto free_EOF;
+
+    /* up to end of dest string */
+    if (s->real_len >= s->maxlen) {
+      (s->buffer_base)[s->maxlen] = 0; /* final 0 */
+      len = s->maxlen + 1;
+      break;
+    }
+  }
+
+  /* for (v)asnprintf */
+  dummy_base = s->buffer_base;
+  save_len = 0;                 /* just to avoid a compiler warning */
+
+  dummy_base = s->buffer_base + s->real_len;
+  save_len = s->real_len;
+
+  /* process the remaining of source string to compute 'pseudo_len'. We
+   * overwrite again and again, starting at 'dummy_base' because we don't
+   * need the text, only char count. */
+  while(*(s->src_string) != 0) { /* up to end of source string */
+    s->real_len = 0;
+    s->dest_string = dummy_base;
+    if (dispatch(s) == EOF)
+      goto free_EOF;
+  }
+
+  s->buffer_base = (char *)realloc((void *)(s->buffer_base), save_len + 1);
+  if (s->buffer_base == NULL)
+    return EOF; /* should rarely happen because we shrink the buffer */
+  return s->pseudo_len;
+
+ free_EOF:
+  if (s->buffer_base != NULL)
+    free(s->buffer_base);
+  return EOF;
+}
+
+int vasprintf(char **ptr, const char *format_string, va_list vargs)
+{
+  xprintf_struct s;
+  int retval;
+
+  s.src_string = format_string;
+#ifdef va_copy
+  va_copy (s.vargs, vargs);
+#else
+#ifdef __va_copy
+  __va_copy (s.vargs, vargs);
+#else
+  memcpy (&s.vargs, vargs, sizeof (va_list));
+#endif /* __va_copy */
+#endif /* va_copy */
+  s.maxlen = (size_t)INT_MAX;
+
+  retval = core(&s);
+  va_end(s.vargs);
+  if (retval == EOF) {
+    *ptr = NULL;
+    return EOF;
+  }
+
+  *ptr = s.buffer_base;
+  return retval;
+}
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/tests/Makefile.am b/framework/modules/c_FileTypeSigModule/file-5.08/tests/Makefile.am
new file mode 100755
index 0000000000000000000000000000000000000000..0665c7b4b4fb0b5b370a87c637a5fbbeb51fd7b8
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/tests/Makefile.am
@@ -0,0 +1,11 @@
+check_PROGRAMS = test
+test_LDADD = $(top_builddir)/src/libmagic.la
+test_CPPFLAGS = -I$(top_srcdir)/src
+
+EXTRA_DIST = \
+	gedcom.magic gedcom.testfile gedcom.result
+
+T = $(top_srcdir)/tests
+check-local:
+	MAGIC=$(top_builddir)/magic/magic ./test
+	for i in $T/*.testfile; do MAGIC=$T/$${i%%.testfile}.magic $(top_builddir)/tests/test $T/$$i $T/$${i%%.testfile}.result; done
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/tests/README b/framework/modules/c_FileTypeSigModule/file-5.08/tests/README
new file mode 100755
index 0000000000000000000000000000000000000000..31f9b14e02e46683cb248c509429140481873f89
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/tests/README
@@ -0,0 +1,17 @@
+file tests
+==========
+
+This directory contains tests for file. It is highly encouraged to add
+one each time a bug is found, and each time new magic is added. Each
+test consists of three files:
+
+  TEST.magic
+  TEST.testfile
+  TEST.result
+
+where TEST is the base name of the test, TEST.magic contains the magic
+used, TEST.testfile is the input, and TEST.result is the desired
+output from file.
+
+It suffices to add a triplet of test files to the directory to have
+them included in "make check".
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/tests/gedcom.magic b/framework/modules/c_FileTypeSigModule/file-5.08/tests/gedcom.magic
new file mode 100755
index 0000000000000000000000000000000000000000..616fd56b6956cf0ad5981fe7ebbbb25e203a78b6
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/tests/gedcom.magic
@@ -0,0 +1,6 @@
+# GEDCOM Genealogy file
+
+0       string/c        0\ HEAD         GEDCOM genealogy data
+>&0     search          1\ GEDC
+>>&0    search          2\ VERS         version
+>>>&1   string          >\0             %s
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/tests/gedcom.result b/framework/modules/c_FileTypeSigModule/file-5.08/tests/gedcom.result
new file mode 100755
index 0000000000000000000000000000000000000000..bbb0eb86c7a8d6a8a71a33345a757eff40844261
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/tests/gedcom.result
@@ -0,0 +1 @@
+GEDCOM genealogy data version 5.5
\ No newline at end of file
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/tests/gedcom.testfile b/framework/modules/c_FileTypeSigModule/file-5.08/tests/gedcom.testfile
new file mode 100755
index 0000000000000000000000000000000000000000..3d9607e9a23bd9fbad0a0e06c1c0a3e16d385c25
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/tests/gedcom.testfile
@@ -0,0 +1,8 @@
+0 HEAD
+1 SOUR GENJ
+2 VERS 2.x
+1 GEDC
+2 VERS 5.5
+2 FORM Lineage-Linked
+1 CHAR UNICODE
+1 LANG Italian
diff --git a/framework/modules/c_FileTypeSigModule/file-5.08/tests/test.c b/framework/modules/c_FileTypeSigModule/file-5.08/tests/test.c
new file mode 100755
index 0000000000000000000000000000000000000000..db91c62f2ece3c892435fab9d5b4bbb9e598f994
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/file-5.08/tests/test.c
@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) Christos Zoulas 2003.
+ * All Rights Reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice immediately at the beginning of the file, without modification,
+ *    this list of conditions, and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *  
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "magic.h"
+
+static void *
+xrealloc(void *p, size_t n)
+{
+	p = realloc(p, n);
+	if (p == NULL) {
+		(void)fprintf(stderr, "ERROR slurping file: out of memory\n");
+		exit(10);
+	}
+	return p;
+}
+
+static char *
+slurp(FILE *fp, size_t *final_len)
+{
+	size_t len = 256;
+	int c;
+	char *l = (char *)xrealloc(NULL, len), *s = l;
+
+	for (c = getc(fp); c != EOF; c = getc(fp)) {
+		if (s == l + len) {
+			l = (char *)xrealloc(l, len * 2);
+			len *= 2;
+		}
+		*s++ = c;
+	}
+	if (s == l + len)
+		l = (char *)xrealloc(l, len + 1);
+	*s++ = '\0';
+
+	*final_len = s - l;
+	l = (char *)xrealloc(l, s - l);
+	return l;
+}
+
+int
+main(int argc, char **argv)
+{
+	struct magic_set *ms;
+	const char *result;
+	char *desired;
+	size_t desired_len;
+	int i;
+	FILE *fp;
+
+	ms = magic_open(MAGIC_NONE);
+	if (ms == NULL) {
+		(void)fprintf(stderr, "ERROR opening MAGIC_NONE: out of memory\n");
+		return 10;
+	}
+	if (magic_load(ms, NULL) == -1) {
+		(void)fprintf(stderr, "ERROR loading with NULL file: %s\n", magic_error(ms));
+		return 11;
+	}
+
+	if (argc > 1) {
+		if (argc != 3) {
+			(void)fprintf(stderr, "Usage: test TEST-FILE RESULT\n");
+		} else {
+			if ((result = magic_file(ms, argv[1])) == NULL) {
+				(void)fprintf(stderr, "ERROR loading file %s: %s\n", argv[1], magic_error(ms));
+				return 12;
+			} else {
+				fp = fopen(argv[2], "r");
+				if (fp == NULL) {
+					(void)fprintf(stderr, "ERROR opening `%s': ", argv[2]);
+					perror(NULL);
+					return 13;
+				}
+				desired = slurp(fp, &desired_len);
+				fclose(fp);
+				(void)printf("%s: %s\n", argv[1], result);
+                                if (strcmp(result, desired) != 0) {
+					(void)fprintf(stderr, "Error: result was\n%s\nexpected:\n%s\n", result, desired);
+					return 1;
+                                }
+			}
+		}
+	}
+
+	magic_close(ms);
+	return 0;
+}
diff --git a/framework/modules/c_FileTypeSigModule/m4/libtool.m4 b/framework/modules/c_FileTypeSigModule/m4/libtool.m4
new file mode 120000
index 0000000000000000000000000000000000000000..c1ce9f70f50912be571258343ed0799828e9bb0b
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/m4/libtool.m4
@@ -0,0 +1 @@
+/usr/local/Cellar/libtool/2.4.2/share/aclocal/libtool.m4
\ No newline at end of file
diff --git a/framework/modules/c_FileTypeSigModule/m4/ltoptions.m4 b/framework/modules/c_FileTypeSigModule/m4/ltoptions.m4
new file mode 120000
index 0000000000000000000000000000000000000000..a81a4123cc91c765d4e4471ae3f9245da02da544
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/m4/ltoptions.m4
@@ -0,0 +1 @@
+/usr/local/Cellar/libtool/2.4.2/share/aclocal/ltoptions.m4
\ No newline at end of file
diff --git a/framework/modules/c_FileTypeSigModule/m4/ltsugar.m4 b/framework/modules/c_FileTypeSigModule/m4/ltsugar.m4
new file mode 120000
index 0000000000000000000000000000000000000000..b7fc94ac8773257d2ef5490e48c512f4d60f390d
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/m4/ltsugar.m4
@@ -0,0 +1 @@
+/usr/local/Cellar/libtool/2.4.2/share/aclocal/ltsugar.m4
\ No newline at end of file
diff --git a/framework/modules/c_FileTypeSigModule/m4/ltversion.m4 b/framework/modules/c_FileTypeSigModule/m4/ltversion.m4
new file mode 120000
index 0000000000000000000000000000000000000000..4619593b29a7f000f9f76b8879e23fb52180dc3c
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/m4/ltversion.m4
@@ -0,0 +1 @@
+/usr/local/Cellar/libtool/2.4.2/share/aclocal/ltversion.m4
\ No newline at end of file
diff --git a/framework/modules/c_FileTypeSigModule/m4/lt~obsolete.m4 b/framework/modules/c_FileTypeSigModule/m4/lt~obsolete.m4
new file mode 120000
index 0000000000000000000000000000000000000000..0ca6503366e737cd78560e8482fc59de5806d92b
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/m4/lt~obsolete.m4
@@ -0,0 +1 @@
+/usr/local/Cellar/libtool/2.4.2/share/aclocal/lt~obsolete.m4
\ No newline at end of file
diff --git a/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/COPYING.LIB b/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/COPYING.LIB
new file mode 100755
index 0000000000000000000000000000000000000000..cf9b6b997263b8a4e007aa1edd4b16437f4583ca
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/COPYING.LIB
@@ -0,0 +1,510 @@
+
+                  GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations
+below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+^L
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it
+becomes a de-facto standard.  To achieve this, non-free programs must
+be allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+^L
+                  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control
+compilation and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+^L
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+^L
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at least
+    three years, to give the same user the materials specified in
+    Subsection 6a, above, for a charge no more than the cost of
+    performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+^L
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+^L
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply, and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License
+may add an explicit geographical distribution limitation excluding those
+countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+^L
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+                            NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+^L
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms
+of the ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.
+It is safest to attach them to the start of each source file to most
+effectively convey the exclusion of warranty; and each file should
+have at least the "copyright" line and a pointer to where the full
+notice is found.
+
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or
+your school, if any, to sign a "copyright disclaimer" for the library,
+if necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James
+  Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/ChangeLog b/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/ChangeLog
new file mode 100755
index 0000000000000000000000000000000000000000..9072c84a622c6f0d7e8c34027a678bcc84285b7e
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/ChangeLog
@@ -0,0 +1,74 @@
+2007-05-07  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+	Another bug reported by Julien Lecomte <julien@famille-lecomte.net>
+
+	* Makefile.in (gnurx-version.dll): Pass CFLAGS in link command.
+
+	* configure.ac (LDFLAGS): Append; don't override user's settings.
+	(MINGW_AC_DEFINE_PACKAGE_ID): Increment `PATCHLEVEL'.
+	* configure: Regenerated.
+
+2007-05-05  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+	* Makefile.in (SRCDIST_FILES): Remove reference to `nomsvc'.
+
+2007-05-03  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+	Add `--enable-msvc-implib' configuration option.
+
+	* README (--enable-msvc-implib): Document it.
+	* aclocal.m4 (MINGW_AC_MSVC_IMPORT_LIBS): New macro; implement it.
+
+	* configure.ac (MINGW_AC_MSVC_IMPORT_LIBS): Use it to define...
+	(GNURX_LIB): ...this; no longer set explicitly.
+	* configure: Regenerated.
+
+	* Makefile.in (GNURX_LIB): Use AC_SUBST result, in place of...
+	(gnurx.lib): ...this, as a prequisite for `all' target.
+	(MSVCLIB): Define explicitly; do not use AC_SUBST result.
+
+	* nomsvc: File deleted; it is obsoleted by...
+	(MINGW_AC_MSVC_IMPORT_LIBS): ...this aclocal.m4 macro.
+
+2007-05-02  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+	Fix bugs reported by Julien Lecomte <julien@famille-lecomte.net>
+
+	* Makefile.in (OBJECTS): Make them depend on `Makefile', to ensure
+	that they will be recompiled after any rerun of `configure'.
+	(DEVDIST_FILES): Don't duplicate `regex.h' in `lib'; it's already
+	explicitly copied to `include'.
+
+2007-04-30  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+	Adaptation for distribution as MinGW contributed package.
+
+	* aclocal.m4, configure.ac, pkgid.m4: New files.
+	* configure: New file; generated.
+
+	* Makefile: Deleted; replaced by...
+	* Makefile.in: ...this; adapted from `Makefile', with...
+	(PACKAGE): New macro, renames original `THIS' macro.
+	(install, install-dll, install-dev): New installation targets.
+	(bindist, devdist, srcdist): New distribution targets.
+	(DLLVERSION): New macro; replaces hard coded DLL version tag.
+	(srcdir, VPATH): New AC_SUBSTed macros, supporting VPATH build.
+	(prefix, exec_prefix, bindir, libdir, includedir, mandir): AC_SUBSTed
+	macros, specifying installation directories.
+	(LDFLAGS): AC_SUBSTed linker flags.
+	(MSVCLIB): New macro; AC_SUBSTed to invoke or avoid use of `lib'.
+	(ZIPCMD, ZIPEXT): New macros; AC_SUBSTed to control packaging format.
+	(BINDIST_FILES, DEVDIST_FILES, SRCDIST_FILES): New macros.
+
+	* nomsvc: New helper script; invoked if MSVC `lib' not installed.
+
+	* regex.3, regex.7: New files; manpage sources copied from GNU/Linux.
+
+	* README: Add preamble, describing changes for this distribution.
+
+2007-04-27  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+	Initial import of Tor Lillqvist's port of GNU glibc regex package.
+
+	* MinGW: Vendor tag assigned.
+	* r2-5: Release tag assigned.
diff --git a/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/README b/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/README
new file mode 100755
index 0000000000000000000000000000000000000000..9b3e8979205770ed6719b3ab2be9f84a46d8b9bd
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/README
@@ -0,0 +1,122 @@
+This is the regex functionality from glibc 2.5 extracted into a
+separate library, for Win32.  It may be built, from the sources
+provided, using the command sequence:--
+
+  ./configure [--options...] && make
+
+For a list of available configuration options, run:--
+
+  ./configure --help
+
+After building, as above, the resultant DLL, and optionally the
+associated development kit, may be installed by:--
+
+  make install
+
+while redistributable binary DLL and development library kits may
+be created by:--
+
+  make dist
+
+
+The original sources, on which this port is based, remain
+copyright of their respective authors, or of the Free Software
+Foundation Inc., as indicated in individual file headers; all are
+redistributed with permission, as granted by the GNU Lesser
+General Public License.
+
+This is free software.  It is provided AS IS, in the hope that
+it may be useful, but WITHOUT WARRANTY OF ANY KIND, not even an
+IMPLIED WARRANTY of MERCHANTABILITY, nor of FITNESS FOR ANY
+PARTICULAR PURPOSE.
+
+Permission is granted to redistribute this software, either
+"as is" or in modified form, under the terms of the GNU Lesser
+General Public License, as published by the Free Software
+Foundation; either version 2.1, or (at your option) any later
+version.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this software; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, 51 Franklin St -
+Fifth Floor, Boston, MA 02110-1301, USA.
+
+The original port of this functionality was implemented by Tor
+Lillqvist; I've adapted his work, to make it somewhat more MinGW
+friendly.  I have *not* modified any of the `C' sources provided
+by Tor; nor have I changed the naming conventions he adopted for
+generated distributables.  I *have*:--
+
+1) Replaced Tor's original `Makefile' with an autoconf generated
+   configure script, and a backwardly compatible `Makefile.in';
+   this provides a more flexible build procedure, which I find
+   more convenient, when cross-compiling on a GNU/Linux host.
+
+2) Added VPATH support, for `out of tree' builds.
+
+3) Adapted the build procedure, to avoid a dependency on the `lib'
+   program from Microsoft's MSVC tool chain.  This is achieved by
+   providing an option to configure, which is disabled by default;
+   it may by activated by specifying `--enable-msvc-implib' on the
+   configure command line.  If this option is not activated, or if
+   the MSVC `lib' tool is not present, the Makefile is configured
+   without binding the rule for building an MSVC compatible import
+   library, to the default target, (although the rule is left in
+   place for explicit use).
+
+   If the `--enable-msvc-implib' option is specified, but `lib' is
+   not present, then configure will issue a warning message, and
+   will again configure the Makefile without binding this rule to
+   the default target.
+
+   Only if the `--enable-msvc-implib' option is specified, *and*
+   the `lib' tool is present, will building of an MSVC compatible
+   import library be configured as a default deliverable.
+
+4) Added `install', `install-dll' and `install-dev' targets, to
+   support direct installation of the DLL, and its associated
+   development kit.
+
+5) Changed the default packaging format for distributables, from
+   Tor's exclusive choice of `zip', to my own preferred `tar.gz';
+   `zip' format remains available, as an option, by configuring
+   with `--enable-dist=zip'.
+
+6) Added `bindist', `devdist' and `srcdist' targets, for greater
+   flexibility in building distribution kits.
+
+The original text of Tor's README file will be found below.
+
+--Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+I call the DLL libgnurx-0.dll which hopefully should be unique. At
+least it isn't "regex.dll" which has been used by the
+gnuwin32.sourceforge.net site for *two* incompatible DLLs. (That mess,
+and the mess with their build of Henry Spencer's regex library, was
+what lead me to build my own GNU regex library. See the
+gnuwin32-users mailing list archives from December 2006.)
+
+The "-0" is so that if at some point I build a release that isn't
+binary compatible, I can then increment that and use a different name.
+
+The import library for gcc is called libgnurx.dll.a, but I also
+distribute a copy of it called libregex.a so that configure scripts
+that look for -lregex will work.
+
+Note that none of the wide-character and i18n functionality which is
+built when this is part of glibc gets compiled. Thus things like
+character classes most probably work only for single-byte codepages.
+
+Compiling that stuff would drag in lots of glibc's locale handling
+stuff which is completely incompatible with Microsoft's C library's
+locale handling anyway. Also, I am not sure whether the GNU regex code
+is prepared to handle a two-byte wchar_t, or does it assume that
+wchar_t is int as it is on Linux? Hmm, actually there is lots of
+sizeof(wchar_t) in glibc, so maybe it *is* prepared? Maybe
+later... But anyway, it would presumably mean we should have not just
+the regex functionality but a larger subset of glibc that would
+include all locale, ctype, wchar, mbs, etc stuff, presumably ending up
+with a very large part of glibc (not the system calls,
+obviously). Indeed, something to save for later, or never...
+
+--Tor Lillqvist <tml@iki.fi>, <tml@novell.com>
diff --git a/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/configure.ac b/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/configure.ac
new file mode 100755
index 0000000000000000000000000000000000000000..c97738d25b2090d2f5851ef92574477300ffa0b2
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/configure.ac
@@ -0,0 +1,83 @@
+# configure.ac  -*- Autoconf -*-
+# Process this file with autoconf, to generate a configure script.
+#
+# $Id: configure.ac,v 1.2 2007/05/03 22:46:09 keithmarshall Exp $
+#
+# Copyright (C) 2007, MinGW Project
+# Written by Keith Marshall <keithmarshall@users.sourceforge.net>
+#
+# Package identification.
+#
+# This is configure.ac for the MinGW `libgnurx' package.
+# BASENAME, VERSION_MAJOR and VERSION_MINOR are required tags;
+# complete `Value' fields as appropriate.
+#
+#                            Tag              Value
+#                            ---------------  ----------
+  MINGW_AC_DEFINE_PACKAGE_ID([BASENAME],      [libgnurx])
+  MINGW_AC_DEFINE_PACKAGE_ID([VERSION_MAJOR], [2])
+  MINGW_AC_DEFINE_PACKAGE_ID([VERSION_MINOR], [5])
+#
+# PATCHLEVEL is optional; comment/uncomment and adjust as required.
+#
+  MINGW_AC_DEFINE_PACKAGE_ID([PATCHLEVEL],    [1])
+#
+# DLL_VERSION is required; installed DLLs will be versioned, by
+# appending a hyphen, the specified tag value, and then the `.dll'
+# file name extension, to the base name of each generated DLL.
+#
+  MINGW_AC_DEFINE_PACKAGE_ID([DLL_VERSION],   [0])
+#
+#
+# libgnurx is an adaptation of Tor Lillqvist's original port of the
+# regex functions from GNU libc, for use on native Woe32 platforms.
+#
+# The original sources, on which this port is based, remain copyright
+# of their respective authors, or of the Free Software Foundation Inc.,
+# as indicated in individual file headers; all are redistributed with
+# permission, as granted by the GNU Lesser General Public License.
+#
+# This is free software.  It is provided AS IS, in the hope that it may
+# be useful, but WITHOUT WARRANTY OF ANY KIND, not even an IMPLIED WARRANTY
+# of MERCHANTABILITY, nor of FITNESS FOR ANY PARTICULAR PURPOSE.
+#
+# Permission is granted to redistribute this software, either "as is" or
+# in modified form, under the terms of the GNU Lesser General Public License,
+# as published by the Free Software Foundation; either version 2.1, or (at
+# your option) any later version.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this software; see the file COPYING.LIB.  If not, write to the
+# Free Software Foundation, 51 Franklin St - Fifth Floor, Boston,
+# MA 02110-1301, USA.
+
+# Autoconf initialisation.
+#
+  AC_PREREQ([2.59])
+  AC_INIT(__MINGW_AC_PACKAGE_IDENTIFICATION__)
+
+# Compiler and build tool checks.
+#
+  AC_PROG_CC
+  MINGW_AC_PROG_CC_OPTIONS([CC_QUALIFIED], [-m], [threads tune=pentium3])
+
+# Set the release version for the resultant DLL.
+#
+  AC_SUBST([DLLVERSION], [__MINGW_AC_PACKAGE_DLL_VERSION__])
+
+# User configuration options.
+#
+  MINGW_AC_DISTRIBUTION_TYPE([tar])
+  MINGW_AC_MSVC_IMPORT_LIBS([GNURX_LIB], [gnurx.lib])
+  MINGW_AC_DEV_INSTALL_OPTION
+
+# Configuration output.
+#
+  AC_SUBST([GNURX_LIB])
+  AC_SUBST([CC_QUALIFIED], ["$CC $CC_QUALIFIED"])
+  LDFLAGS="$LDFLAGS -Wl,--enable-auto-image-base -Wl,--out-implib,libgnurx.dll.a"
+  test -n "${GNURX_LIB}" && LDFLAGS="$LDFLAGS -Wl,--output-def,libgnurx.def"
+  AC_CONFIG_FILES([Makefile])
+  AC_OUTPUT
+#
+# $RCSfile: configure.ac,v $Revision: 1.2 $: end of file
diff --git a/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/libgnurx-0.dll b/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/libgnurx-0.dll
new file mode 100755
index 0000000000000000000000000000000000000000..d34399223a9d4d0188c41914731405a6a968c8f5
Binary files /dev/null and b/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/libgnurx-0.dll differ
diff --git a/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/pkgid.m4 b/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/pkgid.m4
new file mode 100755
index 0000000000000000000000000000000000000000..d40f871bee5d403398a3bfec0251529573c2b378
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/pkgid.m4
@@ -0,0 +1,79 @@
+## pkgid.m4  -*- Autoconf -*- vim: filetype=config
+## Generate a package identification argument list for AC_INIT.
+## (MinGW Project specific version).
+##
+## $Id: pkgid.m4,v 1.1 2007/04/30 22:46:38 keithmarshall Exp $
+##
+## Written by Keith Marshall <keithmarshall@users.sourceforge.net>
+##
+## Hereby assigned to the public domain.
+## This file is provided `as is', in the hope that it may be useful,
+## but WITHOUT WARRANTY OF ANY KIND, not even any implied warranty of
+## MERCHANTABILITY, nor of FITNESS FOR ANY PARTICULAR PURPOSE.
+##
+##
+## m4_include this file in aclocal.m4, and invoke AC_INIT as:--
+##
+##   AC_INIT(__MINGW_AC_PACKAGE_IDENTIFICATION__)
+##
+## to automatically define PACKAGE_NAME, PACKAGE_VERSION, PACKAGE_TARNAME
+## and PACKAGE_BUG_REPORT, deriving them from tags specified in configure.ac,
+## using the MINGW_AC_DEFINE_PACKAGE_ID( TAGNAME, VALUE ) macro to define
+## the tag values, *before* invoking AC_INIT.
+##
+
+# MINGW_AC_DEFINE_PACKAGE_ID( TAGNAME, VALUE )
+# --------------------------------------------
+# Define VALUE for a tag, selected from the following TAGNAME list,
+# and used to compose arguments for AC_INIT.
+#
+#   PROVIDER         optional; default is `MinGW'
+#   BASENAME         required; the base name for the package
+#   TARNAME_PREFIX   optional; default is `mingw'
+#   VERSION_MAJOR    required; major version number for package
+#   VERSION_MINOR    required; minor version number for package
+#   PATCHLEVEL       optional; default is an empty string
+#   BUG_REPORT_URI   predefined to URI for the MinGW bug tracker
+#
+# These are assigned to AC_INIT arguments as follows:--
+#
+#   PACKAGE_NAME        =  [PROVIDER ]BASENAME
+#   PACKAGE_VERSION     =  VERSION_MAJOR.VERSION_MINOR[.PATCHLEVEL]
+#   PACKAGE_TARNAME     =  [TARNAME_PREFIX-]NAME
+#   PACKAGE_BUG_REPORT  =  BUG_REPORT_URI
+#
+m4_define([MINGW_AC_DEFINE_PACKAGE_ID],
+[m4_define([__MINGW_AC_PACKAGE_][$1][__],[$2])dnl
+])# MINGW_AC_DEFINE_PACKAGE_ID
+
+# Define default values for the optional tags.
+#
+MINGW_AC_DEFINE_PACKAGE_ID([PROVIDER],        [MinGW])
+MINGW_AC_DEFINE_PACKAGE_ID([TARNAME_PREFIX],  [mingw])
+MINGW_AC_DEFINE_PACKAGE_ID([BUG_TRACKER_URI],
+[https://sourceforge.net/tracker/?group_id=2435&atid=102435])
+
+# __MINGW_AC_PACKAGE_IDENTIFICATION__
+# -----------------------------------
+# Construct an argument list for AC_INIT.
+#
+m4_define([__MINGW_AC_PACKAGE_IDENTIFICATION__],
+[__MINGW_AC_PACKAGE_OPTION__([__MINGW_AC_PACKAGE_PROVIDER__],[ ])]dnl
+[__MINGW_AC_PACKAGE_BASENAME__][,]dnl
+[__MINGW_AC_PACKAGE_VERSION_MAJOR__[.][__MINGW_AC_PACKAGE_VERSION_MINOR__]]dnl
+[__MINGW_AC_PACKAGE_OPTION__([__MINGW_AC_PACKAGE_PATCHLEVEL__],[],[.])][,]dnl
+[__MINGW_AC_PACKAGE_BUG_TRACKER_URI__][,]dnl
+[__MINGW_AC_PACKAGE_OPTION__([__MINGW_AC_PACKAGE_TARNAME_PREFIX__],[-])dnl
+[__MINGW_AC_PACKAGE_BASENAME__]dnl
+])#__MINGW_AC_PACKAGE_IDENTIFICATION__
+
+# __MINGW_AC_PACKAGE_OPTION__( TAG, [SUFFIX], [PREFIX] )
+# ------------------------------------------------------
+# Insert optional package ID tags in the generated AC_INIT arglist,
+# in the form `[PREFIX]TAG[SUFFIX]'; emits nothing, if TAG is either
+# undefined, or is an empty string.
+#
+m4_define([__MINGW_AC_PACKAGE_OPTION__],[m4_ifdef([$1],[$3]$1[$2])dnl
+])#__MINGW_AC_PACKAGE_OPTION__
+
+# $RCSfile: pkgid.m4,v $Revision: 1.1 $: end of file
diff --git a/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/regcomp.c b/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/regcomp.c
new file mode 100755
index 0000000000000000000000000000000000000000..78a1218cf866472332c87eb999c257239a692999
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/regcomp.c
@@ -0,0 +1,3800 @@
+/* Extended regular expression matching and search library.
+   Copyright (C) 2002,2003,2004,2005,2006 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+static reg_errcode_t re_compile_internal (regex_t *preg, const char * pattern,
+					  size_t length, reg_syntax_t syntax);
+static void re_compile_fastmap_iter (regex_t *bufp,
+				     const re_dfastate_t *init_state,
+				     char *fastmap);
+static reg_errcode_t init_dfa (re_dfa_t *dfa, size_t pat_len);
+#ifdef RE_ENABLE_I18N
+static void free_charset (re_charset_t *cset);
+#endif /* RE_ENABLE_I18N */
+static void free_workarea_compile (regex_t *preg);
+static reg_errcode_t create_initial_state (re_dfa_t *dfa);
+#ifdef RE_ENABLE_I18N
+static void optimize_utf8 (re_dfa_t *dfa);
+#endif
+static reg_errcode_t analyze (regex_t *preg);
+static reg_errcode_t preorder (bin_tree_t *root,
+			       reg_errcode_t (fn (void *, bin_tree_t *)),
+			       void *extra);
+static reg_errcode_t postorder (bin_tree_t *root,
+				reg_errcode_t (fn (void *, bin_tree_t *)),
+				void *extra);
+static reg_errcode_t optimize_subexps (void *extra, bin_tree_t *node);
+static reg_errcode_t lower_subexps (void *extra, bin_tree_t *node);
+static bin_tree_t *lower_subexp (reg_errcode_t *err, regex_t *preg,
+				 bin_tree_t *node);
+static reg_errcode_t calc_first (void *extra, bin_tree_t *node);
+static reg_errcode_t calc_next (void *extra, bin_tree_t *node);
+static reg_errcode_t link_nfa_nodes (void *extra, bin_tree_t *node);
+static int duplicate_node (re_dfa_t *dfa, int org_idx, unsigned int constraint);
+static int search_duplicated_node (const re_dfa_t *dfa, int org_node,
+				   unsigned int constraint);
+static reg_errcode_t calc_eclosure (re_dfa_t *dfa);
+static reg_errcode_t calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa,
+					 int node, int root);
+static reg_errcode_t calc_inveclosure (re_dfa_t *dfa);
+static int fetch_number (re_string_t *input, re_token_t *token,
+			 reg_syntax_t syntax);
+static int peek_token (re_token_t *token, re_string_t *input,
+			reg_syntax_t syntax) internal_function;
+static bin_tree_t *parse (re_string_t *regexp, regex_t *preg,
+			  reg_syntax_t syntax, reg_errcode_t *err);
+static bin_tree_t *parse_reg_exp (re_string_t *regexp, regex_t *preg,
+				  re_token_t *token, reg_syntax_t syntax,
+				  int nest, reg_errcode_t *err);
+static bin_tree_t *parse_branch (re_string_t *regexp, regex_t *preg,
+				 re_token_t *token, reg_syntax_t syntax,
+				 int nest, reg_errcode_t *err);
+static bin_tree_t *parse_expression (re_string_t *regexp, regex_t *preg,
+				     re_token_t *token, reg_syntax_t syntax,
+				     int nest, reg_errcode_t *err);
+static bin_tree_t *parse_sub_exp (re_string_t *regexp, regex_t *preg,
+				  re_token_t *token, reg_syntax_t syntax,
+				  int nest, reg_errcode_t *err);
+static bin_tree_t *parse_dup_op (bin_tree_t *dup_elem, re_string_t *regexp,
+				 re_dfa_t *dfa, re_token_t *token,
+				 reg_syntax_t syntax, reg_errcode_t *err);
+static bin_tree_t *parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa,
+				      re_token_t *token, reg_syntax_t syntax,
+				      reg_errcode_t *err);
+static reg_errcode_t parse_bracket_element (bracket_elem_t *elem,
+					    re_string_t *regexp,
+					    re_token_t *token, int token_len,
+					    re_dfa_t *dfa,
+					    reg_syntax_t syntax,
+					    int accept_hyphen);
+static reg_errcode_t parse_bracket_symbol (bracket_elem_t *elem,
+					  re_string_t *regexp,
+					  re_token_t *token);
+#ifdef RE_ENABLE_I18N
+static reg_errcode_t build_equiv_class (bitset_t sbcset,
+					re_charset_t *mbcset,
+					int *equiv_class_alloc,
+					const unsigned char *name);
+static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans,
+				      bitset_t sbcset,
+				      re_charset_t *mbcset,
+				      int *char_class_alloc,
+				      const unsigned char *class_name,
+				      reg_syntax_t syntax);
+#else  /* not RE_ENABLE_I18N */
+static reg_errcode_t build_equiv_class (bitset_t sbcset,
+					const unsigned char *name);
+static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans,
+				      bitset_t sbcset,
+				      const unsigned char *class_name,
+				      reg_syntax_t syntax);
+#endif /* not RE_ENABLE_I18N */
+static bin_tree_t *build_charclass_op (re_dfa_t *dfa,
+				       RE_TRANSLATE_TYPE trans,
+				       const unsigned char *class_name,
+				       const unsigned char *extra,
+				       int non_match, reg_errcode_t *err);
+static bin_tree_t *create_tree (re_dfa_t *dfa,
+				bin_tree_t *left, bin_tree_t *right,
+				re_token_type_t type);
+static bin_tree_t *create_token_tree (re_dfa_t *dfa,
+				      bin_tree_t *left, bin_tree_t *right,
+				      const re_token_t *token);
+static bin_tree_t *duplicate_tree (const bin_tree_t *src, re_dfa_t *dfa);
+static void free_token (re_token_t *node);
+static reg_errcode_t free_tree (void *extra, bin_tree_t *node);
+static reg_errcode_t mark_opt_subexp (void *extra, bin_tree_t *node);
+
+/* This table gives an error message for each of the error codes listed
+   in regex.h.  Obviously the order here has to be same as there.
+   POSIX doesn't require that we do anything for REG_NOERROR,
+   but why not be nice?  */
+
+const char __re_error_msgid[] attribute_hidden =
+  {
+#define REG_NOERROR_IDX	0
+    gettext_noop ("Success")	/* REG_NOERROR */
+    "\0"
+#define REG_NOMATCH_IDX (REG_NOERROR_IDX + sizeof "Success")
+    gettext_noop ("No match")	/* REG_NOMATCH */
+    "\0"
+#define REG_BADPAT_IDX	(REG_NOMATCH_IDX + sizeof "No match")
+    gettext_noop ("Invalid regular expression") /* REG_BADPAT */
+    "\0"
+#define REG_ECOLLATE_IDX (REG_BADPAT_IDX + sizeof "Invalid regular expression")
+    gettext_noop ("Invalid collation character") /* REG_ECOLLATE */
+    "\0"
+#define REG_ECTYPE_IDX	(REG_ECOLLATE_IDX + sizeof "Invalid collation character")
+    gettext_noop ("Invalid character class name") /* REG_ECTYPE */
+    "\0"
+#define REG_EESCAPE_IDX	(REG_ECTYPE_IDX + sizeof "Invalid character class name")
+    gettext_noop ("Trailing backslash") /* REG_EESCAPE */
+    "\0"
+#define REG_ESUBREG_IDX	(REG_EESCAPE_IDX + sizeof "Trailing backslash")
+    gettext_noop ("Invalid back reference") /* REG_ESUBREG */
+    "\0"
+#define REG_EBRACK_IDX	(REG_ESUBREG_IDX + sizeof "Invalid back reference")
+    gettext_noop ("Unmatched [ or [^")	/* REG_EBRACK */
+    "\0"
+#define REG_EPAREN_IDX	(REG_EBRACK_IDX + sizeof "Unmatched [ or [^")
+    gettext_noop ("Unmatched ( or \\(") /* REG_EPAREN */
+    "\0"
+#define REG_EBRACE_IDX	(REG_EPAREN_IDX + sizeof "Unmatched ( or \\(")
+    gettext_noop ("Unmatched \\{") /* REG_EBRACE */
+    "\0"
+#define REG_BADBR_IDX	(REG_EBRACE_IDX + sizeof "Unmatched \\{")
+    gettext_noop ("Invalid content of \\{\\}") /* REG_BADBR */
+    "\0"
+#define REG_ERANGE_IDX	(REG_BADBR_IDX + sizeof "Invalid content of \\{\\}")
+    gettext_noop ("Invalid range end")	/* REG_ERANGE */
+    "\0"
+#define REG_ESPACE_IDX	(REG_ERANGE_IDX + sizeof "Invalid range end")
+    gettext_noop ("Memory exhausted") /* REG_ESPACE */
+    "\0"
+#define REG_BADRPT_IDX	(REG_ESPACE_IDX + sizeof "Memory exhausted")
+    gettext_noop ("Invalid preceding regular expression") /* REG_BADRPT */
+    "\0"
+#define REG_EEND_IDX	(REG_BADRPT_IDX + sizeof "Invalid preceding regular expression")
+    gettext_noop ("Premature end of regular expression") /* REG_EEND */
+    "\0"
+#define REG_ESIZE_IDX	(REG_EEND_IDX + sizeof "Premature end of regular expression")
+    gettext_noop ("Regular expression too big") /* REG_ESIZE */
+    "\0"
+#define REG_ERPAREN_IDX	(REG_ESIZE_IDX + sizeof "Regular expression too big")
+    gettext_noop ("Unmatched ) or \\)") /* REG_ERPAREN */
+  };
+
+const size_t __re_error_msgid_idx[] attribute_hidden =
+  {
+    REG_NOERROR_IDX,
+    REG_NOMATCH_IDX,
+    REG_BADPAT_IDX,
+    REG_ECOLLATE_IDX,
+    REG_ECTYPE_IDX,
+    REG_EESCAPE_IDX,
+    REG_ESUBREG_IDX,
+    REG_EBRACK_IDX,
+    REG_EPAREN_IDX,
+    REG_EBRACE_IDX,
+    REG_BADBR_IDX,
+    REG_ERANGE_IDX,
+    REG_ESPACE_IDX,
+    REG_BADRPT_IDX,
+    REG_EEND_IDX,
+    REG_ESIZE_IDX,
+    REG_ERPAREN_IDX
+  };
+
+/* Entry points for GNU code.  */
+
+/* re_compile_pattern is the GNU regular expression compiler: it
+   compiles PATTERN (of length LENGTH) and puts the result in BUFP.
+   Returns 0 if the pattern was valid, otherwise an error string.
+
+   Assumes the `allocated' (and perhaps `buffer') and `translate' fields
+   are set in BUFP on entry.  */
+
+const char *
+re_compile_pattern (pattern, length, bufp)
+    const char *pattern;
+    size_t length;
+    struct re_pattern_buffer *bufp;
+{
+  reg_errcode_t ret;
+
+  /* And GNU code determines whether or not to get register information
+     by passing null for the REGS argument to re_match, etc., not by
+     setting no_sub, unless RE_NO_SUB is set.  */
+  bufp->no_sub = !!(re_syntax_options & RE_NO_SUB);
+
+  /* Match anchors at newline.  */
+  bufp->newline_anchor = 1;
+
+  ret = re_compile_internal (bufp, pattern, length, re_syntax_options);
+
+  if (!ret)
+    return NULL;
+  return gettext (__re_error_msgid + __re_error_msgid_idx[(int) ret]);
+}
+#ifdef _LIBC
+weak_alias (__re_compile_pattern, re_compile_pattern)
+#endif
+
+/* Set by `re_set_syntax' to the current regexp syntax to recognize.  Can
+   also be assigned to arbitrarily: each pattern buffer stores its own
+   syntax, so it can be changed between regex compilations.  */
+/* This has no initializer because initialized variables in Emacs
+   become read-only after dumping.  */
+reg_syntax_t re_syntax_options;
+
+
+/* Specify the precise syntax of regexps for compilation.  This provides
+   for compatibility for various utilities which historically have
+   different, incompatible syntaxes.
+
+   The argument SYNTAX is a bit mask comprised of the various bits
+   defined in regex.h.  We return the old syntax.  */
+
+reg_syntax_t
+re_set_syntax (syntax)
+    reg_syntax_t syntax;
+{
+  reg_syntax_t ret = re_syntax_options;
+
+  re_syntax_options = syntax;
+  return ret;
+}
+#ifdef _LIBC
+weak_alias (__re_set_syntax, re_set_syntax)
+#endif
+
+int
+re_compile_fastmap (bufp)
+    struct re_pattern_buffer *bufp;
+{
+  re_dfa_t *dfa = (re_dfa_t *) bufp->buffer;
+  char *fastmap = bufp->fastmap;
+
+  memset (fastmap, '\0', sizeof (char) * SBC_MAX);
+  re_compile_fastmap_iter (bufp, dfa->init_state, fastmap);
+  if (dfa->init_state != dfa->init_state_word)
+    re_compile_fastmap_iter (bufp, dfa->init_state_word, fastmap);
+  if (dfa->init_state != dfa->init_state_nl)
+    re_compile_fastmap_iter (bufp, dfa->init_state_nl, fastmap);
+  if (dfa->init_state != dfa->init_state_begbuf)
+    re_compile_fastmap_iter (bufp, dfa->init_state_begbuf, fastmap);
+  bufp->fastmap_accurate = 1;
+  return 0;
+}
+#ifdef _LIBC
+weak_alias (__re_compile_fastmap, re_compile_fastmap)
+#endif
+
+static inline void
+__attribute ((always_inline))
+re_set_fastmap (char *fastmap, int icase, int ch)
+{
+  fastmap[ch] = 1;
+  if (icase)
+    fastmap[tolower (ch)] = 1;
+}
+
+/* Helper function for re_compile_fastmap.
+   Compile fastmap for the initial_state INIT_STATE.  */
+
+static void
+re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state,
+			 char *fastmap)
+{
+  re_dfa_t *dfa = (re_dfa_t *) bufp->buffer;
+  int node_cnt;
+  int icase = (dfa->mb_cur_max == 1 && (bufp->syntax & RE_ICASE));
+  for (node_cnt = 0; node_cnt < init_state->nodes.nelem; ++node_cnt)
+    {
+      int node = init_state->nodes.elems[node_cnt];
+      re_token_type_t type = dfa->nodes[node].type;
+
+      if (type == CHARACTER)
+	{
+	  re_set_fastmap (fastmap, icase, dfa->nodes[node].opr.c);
+#ifdef RE_ENABLE_I18N
+	  if ((bufp->syntax & RE_ICASE) && dfa->mb_cur_max > 1)
+	    {
+	      unsigned char *buf = alloca (dfa->mb_cur_max), *p;
+	      wchar_t wc;
+	      mbstate_t state;
+
+	      p = buf;
+	      *p++ = dfa->nodes[node].opr.c;
+	      while (++node < dfa->nodes_len
+		     &&	dfa->nodes[node].type == CHARACTER
+		     && dfa->nodes[node].mb_partial)
+		*p++ = dfa->nodes[node].opr.c;
+	      memset (&state, '\0', sizeof (state));
+	      if (mbrtowc (&wc, (const char *) buf, p - buf,
+			   &state) == p - buf
+		  && (__wcrtomb ((char *) buf, towlower (wc), &state)
+		      != (size_t) -1))
+		re_set_fastmap (fastmap, 0, buf[0]);
+	    }
+#endif
+	}
+      else if (type == SIMPLE_BRACKET)
+	{
+	  int i, ch;
+	  for (i = 0, ch = 0; i < BITSET_WORDS; ++i)
+	    {
+	      int j;
+	      bitset_word_t w = dfa->nodes[node].opr.sbcset[i];
+	      for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch)
+		if (w & ((bitset_word_t) 1 << j))
+		  re_set_fastmap (fastmap, icase, ch);
+	    }
+	}
+#ifdef RE_ENABLE_I18N
+      else if (type == COMPLEX_BRACKET)
+	{
+	  int i;
+	  re_charset_t *cset = dfa->nodes[node].opr.mbcset;
+	  if (cset->non_match || cset->ncoll_syms || cset->nequiv_classes
+	      || cset->nranges || cset->nchar_classes)
+	    {
+# ifdef _LIBC
+	      if (_NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES) != 0)
+		{
+		  /* In this case we want to catch the bytes which are
+		     the first byte of any collation elements.
+		     e.g. In da_DK, we want to catch 'a' since "aa"
+			  is a valid collation element, and don't catch
+			  'b' since 'b' is the only collation element
+			  which starts from 'b'.  */
+		  const int32_t *table = (const int32_t *)
+		    _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB);
+		  for (i = 0; i < SBC_MAX; ++i)
+		    if (table[i] < 0)
+		      re_set_fastmap (fastmap, icase, i);
+		}
+# else
+	      if (dfa->mb_cur_max > 1)
+		for (i = 0; i < SBC_MAX; ++i)
+		  if (__btowc (i) == WEOF)
+		    re_set_fastmap (fastmap, icase, i);
+# endif /* not _LIBC */
+	    }
+	  for (i = 0; i < cset->nmbchars; ++i)
+	    {
+	      char buf[256];
+	      mbstate_t state;
+	      memset (&state, '\0', sizeof (state));
+	      if (__wcrtomb (buf, cset->mbchars[i], &state) != (size_t) -1)
+		re_set_fastmap (fastmap, icase, *(unsigned char *) buf);
+	      if ((bufp->syntax & RE_ICASE) && dfa->mb_cur_max > 1)
+		{
+		  if (__wcrtomb (buf, towlower (cset->mbchars[i]), &state)
+		      != (size_t) -1)
+		    re_set_fastmap (fastmap, 0, *(unsigned char *) buf);
+		}
+	    }
+	}
+#endif /* RE_ENABLE_I18N */
+      else if (type == OP_PERIOD
+#ifdef RE_ENABLE_I18N
+	       || type == OP_UTF8_PERIOD
+#endif /* RE_ENABLE_I18N */
+	       || type == END_OF_RE)
+	{
+	  memset (fastmap, '\1', sizeof (char) * SBC_MAX);
+	  if (type == END_OF_RE)
+	    bufp->can_be_null = 1;
+	  return;
+	}
+    }
+}
+
+/* Entry point for POSIX code.  */
+/* regcomp takes a regular expression as a string and compiles it.
+
+   PREG is a regex_t *.  We do not expect any fields to be initialized,
+   since POSIX says we shouldn't.  Thus, we set
+
+     `buffer' to the compiled pattern;
+     `used' to the length of the compiled pattern;
+     `syntax' to RE_SYNTAX_POSIX_EXTENDED if the
+       REG_EXTENDED bit in CFLAGS is set; otherwise, to
+       RE_SYNTAX_POSIX_BASIC;
+     `newline_anchor' to REG_NEWLINE being set in CFLAGS;
+     `fastmap' to an allocated space for the fastmap;
+     `fastmap_accurate' to zero;
+     `re_nsub' to the number of subexpressions in PATTERN.
+
+   PATTERN is the address of the pattern string.
+
+   CFLAGS is a series of bits which affect compilation.
+
+     If REG_EXTENDED is set, we use POSIX extended syntax; otherwise, we
+     use POSIX basic syntax.
+
+     If REG_NEWLINE is set, then . and [^...] don't match newline.
+     Also, regexec will try a match beginning after every newline.
+
+     If REG_ICASE is set, then we considers upper- and lowercase
+     versions of letters to be equivalent when matching.
+
+     If REG_NOSUB is set, then when PREG is passed to regexec, that
+     routine will report only success or failure, and nothing about the
+     registers.
+
+   It returns 0 if it succeeds, nonzero if it doesn't.  (See regex.h for
+   the return codes and their meanings.)  */
+
+int
+regcomp (preg, pattern, cflags)
+    regex_t *__restrict preg;
+    const char *__restrict pattern;
+    int cflags;
+{
+  reg_errcode_t ret;
+  reg_syntax_t syntax = ((cflags & REG_EXTENDED) ? RE_SYNTAX_POSIX_EXTENDED
+			 : RE_SYNTAX_POSIX_BASIC);
+
+  preg->buffer = NULL;
+  preg->allocated = 0;
+  preg->used = 0;
+
+  /* Try to allocate space for the fastmap.  */
+  preg->fastmap = re_malloc (char, SBC_MAX);
+  if (BE (preg->fastmap == NULL, 0))
+    return REG_ESPACE;
+
+  syntax |= (cflags & REG_ICASE) ? RE_ICASE : 0;
+
+  /* If REG_NEWLINE is set, newlines are treated differently.  */
+  if (cflags & REG_NEWLINE)
+    { /* REG_NEWLINE implies neither . nor [^...] match newline.  */
+      syntax &= ~RE_DOT_NEWLINE;
+      syntax |= RE_HAT_LISTS_NOT_NEWLINE;
+      /* It also changes the matching behavior.  */
+      preg->newline_anchor = 1;
+    }
+  else
+    preg->newline_anchor = 0;
+  preg->no_sub = !!(cflags & REG_NOSUB);
+  preg->translate = NULL;
+
+  ret = re_compile_internal (preg, pattern, strlen (pattern), syntax);
+
+  /* POSIX doesn't distinguish between an unmatched open-group and an
+     unmatched close-group: both are REG_EPAREN.  */
+  if (ret == REG_ERPAREN)
+    ret = REG_EPAREN;
+
+  /* We have already checked preg->fastmap != NULL.  */
+  if (BE (ret == REG_NOERROR, 1))
+    /* Compute the fastmap now, since regexec cannot modify the pattern
+       buffer.  This function never fails in this implementation.  */
+    (void) re_compile_fastmap (preg);
+  else
+    {
+      /* Some error occurred while compiling the expression.  */
+      re_free (preg->fastmap);
+      preg->fastmap = NULL;
+    }
+
+  return (int) ret;
+}
+#ifdef _LIBC
+weak_alias (__regcomp, regcomp)
+#endif
+
+/* Returns a message corresponding to an error code, ERRCODE, returned
+   from either regcomp or regexec.   We don't use PREG here.  */
+
+size_t
+regerror (errcode, preg, errbuf, errbuf_size)
+    int errcode;
+    const regex_t *__restrict preg;
+    char *__restrict errbuf;
+    size_t errbuf_size;
+{
+  const char *msg;
+  size_t msg_size;
+
+  if (BE (errcode < 0
+	  || errcode >= (int) (sizeof (__re_error_msgid_idx)
+			       / sizeof (__re_error_msgid_idx[0])), 0))
+    /* Only error codes returned by the rest of the code should be passed
+       to this routine.  If we are given anything else, or if other regex
+       code generates an invalid error code, then the program has a bug.
+       Dump core so we can fix it.  */
+    abort ();
+
+  msg = gettext (__re_error_msgid + __re_error_msgid_idx[errcode]);
+
+  msg_size = strlen (msg) + 1; /* Includes the null.  */
+
+  if (BE (errbuf_size != 0, 1))
+    {
+      if (BE (msg_size > errbuf_size, 0))
+	{
+#if defined HAVE_MEMPCPY || defined _LIBC
+	  *((char *) __mempcpy (errbuf, msg, errbuf_size - 1)) = '\0';
+#else
+	  memcpy (errbuf, msg, errbuf_size - 1);
+	  errbuf[errbuf_size - 1] = 0;
+#endif
+	}
+      else
+	memcpy (errbuf, msg, msg_size);
+    }
+
+  return msg_size;
+}
+#ifdef _LIBC
+weak_alias (__regerror, regerror)
+#endif
+
+
+#ifdef RE_ENABLE_I18N
+/* This static array is used for the map to single-byte characters when
+   UTF-8 is used.  Otherwise we would allocate memory just to initialize
+   it the same all the time.  UTF-8 is the preferred encoding so this is
+   a worthwhile optimization.  */
+static const bitset_t utf8_sb_map =
+{
+  /* Set the first 128 bits.  */
+  [0 ... 0x80 / BITSET_WORD_BITS - 1] = BITSET_WORD_MAX
+};
+#endif
+
+
+static void
+free_dfa_content (re_dfa_t *dfa)
+{
+  int i, j;
+
+  if (dfa->nodes)
+    for (i = 0; i < dfa->nodes_len; ++i)
+      free_token (dfa->nodes + i);
+  re_free (dfa->nexts);
+  for (i = 0; i < dfa->nodes_len; ++i)
+    {
+      if (dfa->eclosures != NULL)
+	re_node_set_free (dfa->eclosures + i);
+      if (dfa->inveclosures != NULL)
+	re_node_set_free (dfa->inveclosures + i);
+      if (dfa->edests != NULL)
+	re_node_set_free (dfa->edests + i);
+    }
+  re_free (dfa->edests);
+  re_free (dfa->eclosures);
+  re_free (dfa->inveclosures);
+  re_free (dfa->nodes);
+
+  if (dfa->state_table)
+    for (i = 0; i <= dfa->state_hash_mask; ++i)
+      {
+	struct re_state_table_entry *entry = dfa->state_table + i;
+	for (j = 0; j < entry->num; ++j)
+	  {
+	    re_dfastate_t *state = entry->array[j];
+	    free_state (state);
+	  }
+        re_free (entry->array);
+      }
+  re_free (dfa->state_table);
+#ifdef RE_ENABLE_I18N
+  if (dfa->sb_char != utf8_sb_map)
+    re_free (dfa->sb_char);
+#endif
+  re_free (dfa->subexp_map);
+#ifdef DEBUG
+  re_free (dfa->re_str);
+#endif
+
+  re_free (dfa);
+}
+
+
+/* Free dynamically allocated space used by PREG.  */
+
+void
+regfree (preg)
+    regex_t *preg;
+{
+  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  if (BE (dfa != NULL, 1))
+    free_dfa_content (dfa);
+  preg->buffer = NULL;
+  preg->allocated = 0;
+
+  re_free (preg->fastmap);
+  preg->fastmap = NULL;
+
+  re_free (preg->translate);
+  preg->translate = NULL;
+}
+#ifdef _LIBC
+weak_alias (__regfree, regfree)
+#endif
+
+/* Entry points compatible with 4.2 BSD regex library.  We don't define
+   them unless specifically requested.  */
+
+#if defined _REGEX_RE_COMP || defined _LIBC
+
+/* BSD has one and only one pattern buffer.  */
+static struct re_pattern_buffer re_comp_buf;
+
+char *
+# ifdef _LIBC
+/* Make these definitions weak in libc, so POSIX programs can redefine
+   these names if they don't use our functions, and still use
+   regcomp/regexec above without link errors.  */
+weak_function
+# endif
+re_comp (s)
+     const char *s;
+{
+  reg_errcode_t ret;
+  char *fastmap;
+
+  if (!s)
+    {
+      if (!re_comp_buf.buffer)
+	return gettext ("No previous regular expression");
+      return 0;
+    }
+
+  if (re_comp_buf.buffer)
+    {
+      fastmap = re_comp_buf.fastmap;
+      re_comp_buf.fastmap = NULL;
+      __regfree (&re_comp_buf);
+      memset (&re_comp_buf, '\0', sizeof (re_comp_buf));
+      re_comp_buf.fastmap = fastmap;
+    }
+
+  if (re_comp_buf.fastmap == NULL)
+    {
+      re_comp_buf.fastmap = (char *) malloc (SBC_MAX);
+      if (re_comp_buf.fastmap == NULL)
+	return (char *) gettext (__re_error_msgid
+				 + __re_error_msgid_idx[(int) REG_ESPACE]);
+    }
+
+  /* Since `re_exec' always passes NULL for the `regs' argument, we
+     don't need to initialize the pattern buffer fields which affect it.  */
+
+  /* Match anchors at newlines.  */
+  re_comp_buf.newline_anchor = 1;
+
+  ret = re_compile_internal (&re_comp_buf, s, strlen (s), re_syntax_options);
+
+  if (!ret)
+    return NULL;
+
+  /* Yes, we're discarding `const' here if !HAVE_LIBINTL.  */
+  return (char *) gettext (__re_error_msgid + __re_error_msgid_idx[(int) ret]);
+}
+
+#ifdef _LIBC
+libc_freeres_fn (free_mem)
+{
+  __regfree (&re_comp_buf);
+}
+#endif
+
+#endif /* _REGEX_RE_COMP */
+
+/* Internal entry point.
+   Compile the regular expression PATTERN, whose length is LENGTH.
+   SYNTAX indicate regular expression's syntax.  */
+
+static reg_errcode_t
+re_compile_internal (regex_t *preg, const char * pattern, size_t length,
+		     reg_syntax_t syntax)
+{
+  reg_errcode_t err = REG_NOERROR;
+  re_dfa_t *dfa;
+  re_string_t regexp;
+
+  /* Initialize the pattern buffer.  */
+  preg->fastmap_accurate = 0;
+  preg->syntax = syntax;
+  preg->not_bol = preg->not_eol = 0;
+  preg->used = 0;
+  preg->re_nsub = 0;
+  preg->can_be_null = 0;
+  preg->regs_allocated = REGS_UNALLOCATED;
+
+  /* Initialize the dfa.  */
+  dfa = (re_dfa_t *) preg->buffer;
+  if (BE (preg->allocated < sizeof (re_dfa_t), 0))
+    {
+      /* If zero allocated, but buffer is non-null, try to realloc
+	 enough space.  This loses if buffer's address is bogus, but
+	 that is the user's responsibility.  If ->buffer is NULL this
+	 is a simple allocation.  */
+      dfa = re_realloc (preg->buffer, re_dfa_t, 1);
+      if (dfa == NULL)
+	return REG_ESPACE;
+      preg->allocated = sizeof (re_dfa_t);
+      preg->buffer = (unsigned char *) dfa;
+    }
+  preg->used = sizeof (re_dfa_t);
+
+  err = init_dfa (dfa, length);
+  if (BE (err != REG_NOERROR, 0))
+    {
+      free_dfa_content (dfa);
+      preg->buffer = NULL;
+      preg->allocated = 0;
+      return err;
+    }
+#ifdef DEBUG
+  /* Note: length+1 will not overflow since it is checked in init_dfa.  */
+  dfa->re_str = re_malloc (char, length + 1);
+  strncpy (dfa->re_str, pattern, length + 1);
+#endif
+
+  __libc_lock_init (dfa->lock);
+
+  err = re_string_construct (&regexp, pattern, length, preg->translate,
+			     syntax & RE_ICASE, dfa);
+  if (BE (err != REG_NOERROR, 0))
+    {
+    re_compile_internal_free_return:
+      free_workarea_compile (preg);
+      re_string_destruct (&regexp);
+      free_dfa_content (dfa);
+      preg->buffer = NULL;
+      preg->allocated = 0;
+      return err;
+    }
+
+  /* Parse the regular expression, and build a structure tree.  */
+  preg->re_nsub = 0;
+  dfa->str_tree = parse (&regexp, preg, syntax, &err);
+  if (BE (dfa->str_tree == NULL, 0))
+    goto re_compile_internal_free_return;
+
+  /* Analyze the tree and create the nfa.  */
+  err = analyze (preg);
+  if (BE (err != REG_NOERROR, 0))
+    goto re_compile_internal_free_return;
+
+#ifdef RE_ENABLE_I18N
+  /* If possible, do searching in single byte encoding to speed things up.  */
+  if (dfa->is_utf8 && !(syntax & RE_ICASE) && preg->translate == NULL)
+    optimize_utf8 (dfa);
+#endif
+
+  /* Then create the initial state of the dfa.  */
+  err = create_initial_state (dfa);
+
+  /* Release work areas.  */
+  free_workarea_compile (preg);
+  re_string_destruct (&regexp);
+
+  if (BE (err != REG_NOERROR, 0))
+    {
+      free_dfa_content (dfa);
+      preg->buffer = NULL;
+      preg->allocated = 0;
+    }
+
+  return err;
+}
+
+/* Initialize DFA.  We use the length of the regular expression PAT_LEN
+   as the initial length of some arrays.  */
+
+static reg_errcode_t
+init_dfa (re_dfa_t *dfa, size_t pat_len)
+{
+  unsigned int table_size;
+#ifndef _LIBC
+  char *codeset_name;
+#endif
+
+  memset (dfa, '\0', sizeof (re_dfa_t));
+
+  /* Force allocation of str_tree_storage the first time.  */
+  dfa->str_tree_storage_idx = BIN_TREE_STORAGE_SIZE;
+
+  /* Avoid overflows.  */
+  if (pat_len == SIZE_MAX)
+    return REG_ESPACE;
+
+  dfa->nodes_alloc = pat_len + 1;
+  dfa->nodes = re_malloc (re_token_t, dfa->nodes_alloc);
+
+  /*  table_size = 2 ^ ceil(log pat_len) */
+  for (table_size = 1; ; table_size <<= 1)
+    if (table_size > pat_len)
+      break;
+
+  dfa->state_table = calloc (sizeof (struct re_state_table_entry), table_size);
+  dfa->state_hash_mask = table_size - 1;
+
+  dfa->mb_cur_max = MB_CUR_MAX;
+#ifdef _LIBC
+  if (dfa->mb_cur_max == 6
+      && strcmp (_NL_CURRENT (LC_CTYPE, _NL_CTYPE_CODESET_NAME), "UTF-8") == 0)
+    dfa->is_utf8 = 1;
+  dfa->map_notascii = (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MAP_TO_NONASCII)
+		       != 0);
+#else
+# ifdef HAVE_LANGINFO_CODESET
+  codeset_name = nl_langinfo (CODESET);
+# else
+  codeset_name = getenv ("LC_ALL");
+  if (codeset_name == NULL || codeset_name[0] == '\0')
+    codeset_name = getenv ("LC_CTYPE");
+  if (codeset_name == NULL || codeset_name[0] == '\0')
+    codeset_name = getenv ("LANG");
+  if (codeset_name == NULL)
+    codeset_name = "";
+  else if (strchr (codeset_name, '.') !=  NULL)
+    codeset_name = strchr (codeset_name, '.') + 1;
+# endif
+
+  if (strcasecmp (codeset_name, "UTF-8") == 0
+      || strcasecmp (codeset_name, "UTF8") == 0)
+    dfa->is_utf8 = 1;
+
+  /* We check exhaustively in the loop below if this charset is a
+     superset of ASCII.  */
+  dfa->map_notascii = 0;
+#endif
+
+#ifdef RE_ENABLE_I18N
+  if (dfa->mb_cur_max > 1)
+    {
+      if (dfa->is_utf8)
+	dfa->sb_char = (re_bitset_ptr_t) utf8_sb_map;
+      else
+	{
+	  int i, j, ch;
+
+	  dfa->sb_char = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1);
+	  if (BE (dfa->sb_char == NULL, 0))
+	    return REG_ESPACE;
+
+	  /* Set the bits corresponding to single byte chars.  */
+	  for (i = 0, ch = 0; i < BITSET_WORDS; ++i)
+	    for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch)
+	      {
+		wint_t wch = __btowc (ch);
+		if (wch != WEOF)
+		  dfa->sb_char[i] |= (bitset_word_t) 1 << j;
+# ifndef _LIBC
+		if (isascii (ch) && wch != ch)
+		  dfa->map_notascii = 1;
+# endif
+	      }
+	}
+    }
+#endif
+
+  if (BE (dfa->nodes == NULL || dfa->state_table == NULL, 0))
+    return REG_ESPACE;
+  return REG_NOERROR;
+}
+
+/* Initialize WORD_CHAR table, which indicate which character is
+   "word".  In this case "word" means that it is the word construction
+   character used by some operators like "\<", "\>", etc.  */
+
+static void
+internal_function
+init_word_char (re_dfa_t *dfa)
+{
+  int i, j, ch;
+  dfa->word_ops_used = 1;
+  for (i = 0, ch = 0; i < BITSET_WORDS; ++i)
+    for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch)
+      if (isalnum (ch) || ch == '_')
+	dfa->word_char[i] |= (bitset_word_t) 1 << j;
+}
+
+/* Free the work area which are only used while compiling.  */
+
+static void
+free_workarea_compile (regex_t *preg)
+{
+  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  bin_tree_storage_t *storage, *next;
+  for (storage = dfa->str_tree_storage; storage; storage = next)
+    {
+      next = storage->next;
+      re_free (storage);
+    }
+  dfa->str_tree_storage = NULL;
+  dfa->str_tree_storage_idx = BIN_TREE_STORAGE_SIZE;
+  dfa->str_tree = NULL;
+  re_free (dfa->org_indices);
+  dfa->org_indices = NULL;
+}
+
+/* Create initial states for all contexts.  */
+
+static reg_errcode_t
+create_initial_state (re_dfa_t *dfa)
+{
+  int first, i;
+  reg_errcode_t err;
+  re_node_set init_nodes;
+
+  /* Initial states have the epsilon closure of the node which is
+     the first node of the regular expression.  */
+  first = dfa->str_tree->first->node_idx;
+  dfa->init_node = first;
+  err = re_node_set_init_copy (&init_nodes, dfa->eclosures + first);
+  if (BE (err != REG_NOERROR, 0))
+    return err;
+
+  /* The back-references which are in initial states can epsilon transit,
+     since in this case all of the subexpressions can be null.
+     Then we add epsilon closures of the nodes which are the next nodes of
+     the back-references.  */
+  if (dfa->nbackref > 0)
+    for (i = 0; i < init_nodes.nelem; ++i)
+      {
+	int node_idx = init_nodes.elems[i];
+	re_token_type_t type = dfa->nodes[node_idx].type;
+
+	int clexp_idx;
+	if (type != OP_BACK_REF)
+	  continue;
+	for (clexp_idx = 0; clexp_idx < init_nodes.nelem; ++clexp_idx)
+	  {
+	    re_token_t *clexp_node;
+	    clexp_node = dfa->nodes + init_nodes.elems[clexp_idx];
+	    if (clexp_node->type == OP_CLOSE_SUBEXP
+		&& clexp_node->opr.idx == dfa->nodes[node_idx].opr.idx)
+	      break;
+	  }
+	if (clexp_idx == init_nodes.nelem)
+	  continue;
+
+	if (type == OP_BACK_REF)
+	  {
+	    int dest_idx = dfa->edests[node_idx].elems[0];
+	    if (!re_node_set_contains (&init_nodes, dest_idx))
+	      {
+		re_node_set_merge (&init_nodes, dfa->eclosures + dest_idx);
+		i = 0;
+	      }
+	  }
+      }
+
+  /* It must be the first time to invoke acquire_state.  */
+  dfa->init_state = re_acquire_state_context (&err, dfa, &init_nodes, 0);
+  /* We don't check ERR here, since the initial state must not be NULL.  */
+  if (BE (dfa->init_state == NULL, 0))
+    return err;
+  if (dfa->init_state->has_constraint)
+    {
+      dfa->init_state_word = re_acquire_state_context (&err, dfa, &init_nodes,
+						       CONTEXT_WORD);
+      dfa->init_state_nl = re_acquire_state_context (&err, dfa, &init_nodes,
+						     CONTEXT_NEWLINE);
+      dfa->init_state_begbuf = re_acquire_state_context (&err, dfa,
+							 &init_nodes,
+							 CONTEXT_NEWLINE
+							 | CONTEXT_BEGBUF);
+      if (BE (dfa->init_state_word == NULL || dfa->init_state_nl == NULL
+	      || dfa->init_state_begbuf == NULL, 0))
+	return err;
+    }
+  else
+    dfa->init_state_word = dfa->init_state_nl
+      = dfa->init_state_begbuf = dfa->init_state;
+
+  re_node_set_free (&init_nodes);
+  return REG_NOERROR;
+}
+
+#ifdef RE_ENABLE_I18N
+/* If it is possible to do searching in single byte encoding instead of UTF-8
+   to speed things up, set dfa->mb_cur_max to 1, clear is_utf8 and change
+   DFA nodes where needed.  */
+
+static void
+optimize_utf8 (re_dfa_t *dfa)
+{
+  int node, i, mb_chars = 0, has_period = 0;
+
+  for (node = 0; node < dfa->nodes_len; ++node)
+    switch (dfa->nodes[node].type)
+      {
+      case CHARACTER:
+	if (dfa->nodes[node].opr.c >= 0x80)
+	  mb_chars = 1;
+	break;
+      case ANCHOR:
+	switch (dfa->nodes[node].opr.idx)
+	  {
+	  case LINE_FIRST:
+	  case LINE_LAST:
+	  case BUF_FIRST:
+	  case BUF_LAST:
+	    break;
+	  default:
+	    /* Word anchors etc. cannot be handled.  */
+	    return;
+	  }
+	break;
+      case OP_PERIOD:
+        has_period = 1;
+        break;
+      case OP_BACK_REF:
+      case OP_ALT:
+      case END_OF_RE:
+      case OP_DUP_ASTERISK:
+      case OP_OPEN_SUBEXP:
+      case OP_CLOSE_SUBEXP:
+	break;
+      case COMPLEX_BRACKET:
+	return;
+      case SIMPLE_BRACKET:
+	/* Just double check.  The non-ASCII range starts at 0x80.  */
+	assert (0x80 % BITSET_WORD_BITS == 0);
+        for (i = 0x80 / BITSET_WORD_BITS; i < BITSET_WORDS; ++i)
+	  if (dfa->nodes[node].opr.sbcset[i])
+	    return;
+	break;
+      default:
+	abort ();
+      }
+
+  if (mb_chars || has_period)
+    for (node = 0; node < dfa->nodes_len; ++node)
+      {
+	if (dfa->nodes[node].type == CHARACTER
+	    && dfa->nodes[node].opr.c >= 0x80)
+	  dfa->nodes[node].mb_partial = 0;
+	else if (dfa->nodes[node].type == OP_PERIOD)
+	  dfa->nodes[node].type = OP_UTF8_PERIOD;
+      }
+
+  /* The search can be in single byte locale.  */
+  dfa->mb_cur_max = 1;
+  dfa->is_utf8 = 0;
+  dfa->has_mb_node = dfa->nbackref > 0 || has_period;
+}
+#endif
+
+/* Analyze the structure tree, and calculate "first", "next", "edest",
+   "eclosure", and "inveclosure".  */
+
+static reg_errcode_t
+analyze (regex_t *preg)
+{
+  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  reg_errcode_t ret;
+
+  /* Allocate arrays.  */
+  dfa->nexts = re_malloc (int, dfa->nodes_alloc);
+  dfa->org_indices = re_malloc (int, dfa->nodes_alloc);
+  dfa->edests = re_malloc (re_node_set, dfa->nodes_alloc);
+  dfa->eclosures = re_malloc (re_node_set, dfa->nodes_alloc);
+  if (BE (dfa->nexts == NULL || dfa->org_indices == NULL || dfa->edests == NULL
+	  || dfa->eclosures == NULL, 0))
+    return REG_ESPACE;
+
+  dfa->subexp_map = re_malloc (int, preg->re_nsub);
+  if (dfa->subexp_map != NULL)
+    {
+      int i;
+      for (i = 0; i < preg->re_nsub; i++)
+	dfa->subexp_map[i] = i;
+      preorder (dfa->str_tree, optimize_subexps, dfa);
+      for (i = 0; i < preg->re_nsub; i++)
+	if (dfa->subexp_map[i] != i)
+	  break;
+      if (i == preg->re_nsub)
+	{
+	  free (dfa->subexp_map);
+	  dfa->subexp_map = NULL;
+	}
+    }
+
+  ret = postorder (dfa->str_tree, lower_subexps, preg);
+  if (BE (ret != REG_NOERROR, 0))
+    return ret;
+  ret = postorder (dfa->str_tree, calc_first, dfa);
+  if (BE (ret != REG_NOERROR, 0))
+    return ret;
+  preorder (dfa->str_tree, calc_next, dfa);
+  ret = preorder (dfa->str_tree, link_nfa_nodes, dfa);
+  if (BE (ret != REG_NOERROR, 0))
+    return ret;
+  ret = calc_eclosure (dfa);
+  if (BE (ret != REG_NOERROR, 0))
+    return ret;
+
+  /* We only need this during the prune_impossible_nodes pass in regexec.c;
+     skip it if p_i_n will not run, as calc_inveclosure can be quadratic.  */
+  if ((!preg->no_sub && preg->re_nsub > 0 && dfa->has_plural_match)
+      || dfa->nbackref)
+    {
+      dfa->inveclosures = re_malloc (re_node_set, dfa->nodes_len);
+      if (BE (dfa->inveclosures == NULL, 0))
+        return REG_ESPACE;
+      ret = calc_inveclosure (dfa);
+    }
+
+  return ret;
+}
+
+/* Our parse trees are very unbalanced, so we cannot use a stack to
+   implement parse tree visits.  Instead, we use parent pointers and
+   some hairy code in these two functions.  */
+static reg_errcode_t
+postorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)),
+	   void *extra)
+{
+  bin_tree_t *node, *prev;
+
+  for (node = root; ; )
+    {
+      /* Descend down the tree, preferably to the left (or to the right
+	 if that's the only child).  */
+      while (node->left || node->right)
+	if (node->left)
+          node = node->left;
+        else
+          node = node->right;
+
+      do
+	{
+	  reg_errcode_t err = fn (extra, node);
+	  if (BE (err != REG_NOERROR, 0))
+	    return err;
+          if (node->parent == NULL)
+	    return REG_NOERROR;
+	  prev = node;
+	  node = node->parent;
+	}
+      /* Go up while we have a node that is reached from the right.  */
+      while (node->right == prev || node->right == NULL);
+      node = node->right;
+    }
+}
+
+static reg_errcode_t
+preorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)),
+	  void *extra)
+{
+  bin_tree_t *node;
+
+  for (node = root; ; )
+    {
+      reg_errcode_t err = fn (extra, node);
+      if (BE (err != REG_NOERROR, 0))
+	return err;
+
+      /* Go to the left node, or up and to the right.  */
+      if (node->left)
+	node = node->left;
+      else
+	{
+	  bin_tree_t *prev = NULL;
+	  while (node->right == prev || node->right == NULL)
+	    {
+	      prev = node;
+	      node = node->parent;
+	      if (!node)
+	        return REG_NOERROR;
+	    }
+	  node = node->right;
+	}
+    }
+}
+
+/* Optimization pass: if a SUBEXP is entirely contained, strip it and tell
+   re_search_internal to map the inner one's opr.idx to this one's.  Adjust
+   backreferences as well.  Requires a preorder visit.  */
+static reg_errcode_t
+optimize_subexps (void *extra, bin_tree_t *node)
+{
+  re_dfa_t *dfa = (re_dfa_t *) extra;
+
+  if (node->token.type == OP_BACK_REF && dfa->subexp_map)
+    {
+      int idx = node->token.opr.idx;
+      node->token.opr.idx = dfa->subexp_map[idx];
+      dfa->used_bkref_map |= 1 << node->token.opr.idx;
+    }
+
+  else if (node->token.type == SUBEXP
+           && node->left && node->left->token.type == SUBEXP)
+    {
+      int other_idx = node->left->token.opr.idx;
+
+      node->left = node->left->left;
+      if (node->left)
+        node->left->parent = node;
+
+      dfa->subexp_map[other_idx] = dfa->subexp_map[node->token.opr.idx];
+      if (other_idx < BITSET_WORD_BITS)
+	  dfa->used_bkref_map &= ~((bitset_word_t) 1 << other_idx);
+    }
+
+  return REG_NOERROR;
+}
+
+/* Lowering pass: Turn each SUBEXP node into the appropriate concatenation
+   of OP_OPEN_SUBEXP, the body of the SUBEXP (if any) and OP_CLOSE_SUBEXP.  */
+static reg_errcode_t
+lower_subexps (void *extra, bin_tree_t *node)
+{
+  regex_t *preg = (regex_t *) extra;
+  reg_errcode_t err = REG_NOERROR;
+
+  if (node->left && node->left->token.type == SUBEXP)
+    {
+      node->left = lower_subexp (&err, preg, node->left);
+      if (node->left)
+	node->left->parent = node;
+    }
+  if (node->right && node->right->token.type == SUBEXP)
+    {
+      node->right = lower_subexp (&err, preg, node->right);
+      if (node->right)
+	node->right->parent = node;
+    }
+
+  return err;
+}
+
+static bin_tree_t *
+lower_subexp (reg_errcode_t *err, regex_t *preg, bin_tree_t *node)
+{
+  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  bin_tree_t *body = node->left;
+  bin_tree_t *op, *cls, *tree1, *tree;
+
+  if (preg->no_sub
+      /* We do not optimize empty subexpressions, because otherwise we may
+	 have bad CONCAT nodes with NULL children.  This is obviously not
+	 very common, so we do not lose much.  An example that triggers
+	 this case is the sed "script" /\(\)/x.  */
+      && node->left != NULL
+      && (node->token.opr.idx >= BITSET_WORD_BITS
+	  || !(dfa->used_bkref_map
+	       & ((bitset_word_t) 1 << node->token.opr.idx))))
+    return node->left;
+
+  /* Convert the SUBEXP node to the concatenation of an
+     OP_OPEN_SUBEXP, the contents, and an OP_CLOSE_SUBEXP.  */
+  op = create_tree (dfa, NULL, NULL, OP_OPEN_SUBEXP);
+  cls = create_tree (dfa, NULL, NULL, OP_CLOSE_SUBEXP);
+  tree1 = body ? create_tree (dfa, body, cls, CONCAT) : cls;
+  tree = create_tree (dfa, op, tree1, CONCAT);
+  if (BE (tree == NULL || tree1 == NULL || op == NULL || cls == NULL, 0))
+    {
+      *err = REG_ESPACE;
+      return NULL;
+    }
+
+  op->token.opr.idx = cls->token.opr.idx = node->token.opr.idx;
+  op->token.opt_subexp = cls->token.opt_subexp = node->token.opt_subexp;
+  return tree;
+}
+
+/* Pass 1 in building the NFA: compute FIRST and create unlinked automaton
+   nodes.  Requires a postorder visit.  */
+static reg_errcode_t
+calc_first (void *extra, bin_tree_t *node)
+{
+  re_dfa_t *dfa = (re_dfa_t *) extra;
+  if (node->token.type == CONCAT)
+    {
+      node->first = node->left->first;
+      node->node_idx = node->left->node_idx;
+    }
+  else
+    {
+      node->first = node;
+      node->node_idx = re_dfa_add_node (dfa, node->token);
+      if (BE (node->node_idx == -1, 0))
+        return REG_ESPACE;
+    }
+  return REG_NOERROR;
+}
+
+/* Pass 2: compute NEXT on the tree.  Preorder visit.  */
+static reg_errcode_t
+calc_next (void *extra, bin_tree_t *node)
+{
+  switch (node->token.type)
+    {
+    case OP_DUP_ASTERISK:
+      node->left->next = node;
+      break;
+    case CONCAT:
+      node->left->next = node->right->first;
+      node->right->next = node->next;
+      break;
+    default:
+      if (node->left)
+	node->left->next = node->next;
+      if (node->right)
+        node->right->next = node->next;
+      break;
+    }
+  return REG_NOERROR;
+}
+
+/* Pass 3: link all DFA nodes to their NEXT node (any order will do).  */
+static reg_errcode_t
+link_nfa_nodes (void *extra, bin_tree_t *node)
+{
+  re_dfa_t *dfa = (re_dfa_t *) extra;
+  int idx = node->node_idx;
+  reg_errcode_t err = REG_NOERROR;
+
+  switch (node->token.type)
+    {
+    case CONCAT:
+      break;
+
+    case END_OF_RE:
+      assert (node->next == NULL);
+      break;
+
+    case OP_DUP_ASTERISK:
+    case OP_ALT:
+      {
+	int left, right;
+	dfa->has_plural_match = 1;
+	if (node->left != NULL)
+	  left = node->left->first->node_idx;
+	else
+	  left = node->next->node_idx;
+	if (node->right != NULL)
+	  right = node->right->first->node_idx;
+	else
+	  right = node->next->node_idx;
+	assert (left > -1);
+	assert (right > -1);
+	err = re_node_set_init_2 (dfa->edests + idx, left, right);
+      }
+      break;
+
+    case ANCHOR:
+    case OP_OPEN_SUBEXP:
+    case OP_CLOSE_SUBEXP:
+      err = re_node_set_init_1 (dfa->edests + idx, node->next->node_idx);
+      break;
+
+    case OP_BACK_REF:
+      dfa->nexts[idx] = node->next->node_idx;
+      if (node->token.type == OP_BACK_REF)
+	re_node_set_init_1 (dfa->edests + idx, dfa->nexts[idx]);
+      break;
+
+    default:
+      assert (!IS_EPSILON_NODE (node->token.type));
+      dfa->nexts[idx] = node->next->node_idx;
+      break;
+    }
+
+  return err;
+}
+
+/* Duplicate the epsilon closure of the node ROOT_NODE.
+   Note that duplicated nodes have constraint INIT_CONSTRAINT in addition
+   to their own constraint.  */
+
+static reg_errcode_t
+internal_function
+duplicate_node_closure (re_dfa_t *dfa, int top_org_node, int top_clone_node,
+			int root_node, unsigned int init_constraint)
+{
+  int org_node, clone_node, ret;
+  unsigned int constraint = init_constraint;
+  for (org_node = top_org_node, clone_node = top_clone_node;;)
+    {
+      int org_dest, clone_dest;
+      if (dfa->nodes[org_node].type == OP_BACK_REF)
+	{
+	  /* If the back reference epsilon-transit, its destination must
+	     also have the constraint.  Then duplicate the epsilon closure
+	     of the destination of the back reference, and store it in
+	     edests of the back reference.  */
+	  org_dest = dfa->nexts[org_node];
+	  re_node_set_empty (dfa->edests + clone_node);
+	  clone_dest = duplicate_node (dfa, org_dest, constraint);
+	  if (BE (clone_dest == -1, 0))
+	    return REG_ESPACE;
+	  dfa->nexts[clone_node] = dfa->nexts[org_node];
+	  ret = re_node_set_insert (dfa->edests + clone_node, clone_dest);
+	  if (BE (ret < 0, 0))
+	    return REG_ESPACE;
+	}
+      else if (dfa->edests[org_node].nelem == 0)
+	{
+	  /* In case of the node can't epsilon-transit, don't duplicate the
+	     destination and store the original destination as the
+	     destination of the node.  */
+	  dfa->nexts[clone_node] = dfa->nexts[org_node];
+	  break;
+	}
+      else if (dfa->edests[org_node].nelem == 1)
+	{
+	  /* In case of the node can epsilon-transit, and it has only one
+	     destination.  */
+	  org_dest = dfa->edests[org_node].elems[0];
+	  re_node_set_empty (dfa->edests + clone_node);
+	  if (dfa->nodes[org_node].type == ANCHOR)
+	    {
+	      /* In case of the node has another constraint, append it.  */
+	      if (org_node == root_node && clone_node != org_node)
+		{
+		  /* ...but if the node is root_node itself, it means the
+		     epsilon closure have a loop, then tie it to the
+		     destination of the root_node.  */
+		  ret = re_node_set_insert (dfa->edests + clone_node,
+					    org_dest);
+		  if (BE (ret < 0, 0))
+		    return REG_ESPACE;
+		  break;
+		}
+	      constraint |= dfa->nodes[org_node].opr.ctx_type;
+	    }
+	  clone_dest = duplicate_node (dfa, org_dest, constraint);
+	  if (BE (clone_dest == -1, 0))
+	    return REG_ESPACE;
+	  ret = re_node_set_insert (dfa->edests + clone_node, clone_dest);
+	  if (BE (ret < 0, 0))
+	    return REG_ESPACE;
+	}
+      else /* dfa->edests[org_node].nelem == 2 */
+	{
+	  /* In case of the node can epsilon-transit, and it has two
+	     destinations. In the bin_tree_t and DFA, that's '|' and '*'.   */
+	  org_dest = dfa->edests[org_node].elems[0];
+	  re_node_set_empty (dfa->edests + clone_node);
+	  /* Search for a duplicated node which satisfies the constraint.  */
+	  clone_dest = search_duplicated_node (dfa, org_dest, constraint);
+	  if (clone_dest == -1)
+	    {
+	      /* There are no such a duplicated node, create a new one.  */
+	      reg_errcode_t err;
+	      clone_dest = duplicate_node (dfa, org_dest, constraint);
+	      if (BE (clone_dest == -1, 0))
+		return REG_ESPACE;
+	      ret = re_node_set_insert (dfa->edests + clone_node, clone_dest);
+	      if (BE (ret < 0, 0))
+		return REG_ESPACE;
+	      err = duplicate_node_closure (dfa, org_dest, clone_dest,
+					    root_node, constraint);
+	      if (BE (err != REG_NOERROR, 0))
+		return err;
+	    }
+	  else
+	    {
+	      /* There are a duplicated node which satisfy the constraint,
+		 use it to avoid infinite loop.  */
+	      ret = re_node_set_insert (dfa->edests + clone_node, clone_dest);
+	      if (BE (ret < 0, 0))
+		return REG_ESPACE;
+	    }
+
+	  org_dest = dfa->edests[org_node].elems[1];
+	  clone_dest = duplicate_node (dfa, org_dest, constraint);
+	  if (BE (clone_dest == -1, 0))
+	    return REG_ESPACE;
+	  ret = re_node_set_insert (dfa->edests + clone_node, clone_dest);
+	  if (BE (ret < 0, 0))
+	    return REG_ESPACE;
+	}
+      org_node = org_dest;
+      clone_node = clone_dest;
+    }
+  return REG_NOERROR;
+}
+
+/* Search for a node which is duplicated from the node ORG_NODE, and
+   satisfies the constraint CONSTRAINT.  */
+
+static int
+search_duplicated_node (const re_dfa_t *dfa, int org_node,
+			unsigned int constraint)
+{
+  int idx;
+  for (idx = dfa->nodes_len - 1; dfa->nodes[idx].duplicated && idx > 0; --idx)
+    {
+      if (org_node == dfa->org_indices[idx]
+	  && constraint == dfa->nodes[idx].constraint)
+	return idx; /* Found.  */
+    }
+  return -1; /* Not found.  */
+}
+
+/* Duplicate the node whose index is ORG_IDX and set the constraint CONSTRAINT.
+   Return the index of the new node, or -1 if insufficient storage is
+   available.  */
+
+static int
+duplicate_node (re_dfa_t *dfa, int org_idx, unsigned int constraint)
+{
+  int dup_idx = re_dfa_add_node (dfa, dfa->nodes[org_idx]);
+  if (BE (dup_idx != -1, 1))
+    {
+      dfa->nodes[dup_idx].constraint = constraint;
+      if (dfa->nodes[org_idx].type == ANCHOR)
+	dfa->nodes[dup_idx].constraint |= dfa->nodes[org_idx].opr.ctx_type;
+      dfa->nodes[dup_idx].duplicated = 1;
+
+      /* Store the index of the original node.  */
+      dfa->org_indices[dup_idx] = org_idx;
+    }
+  return dup_idx;
+}
+
+static reg_errcode_t
+calc_inveclosure (re_dfa_t *dfa)
+{
+  int src, idx, ret;
+  for (idx = 0; idx < dfa->nodes_len; ++idx)
+    re_node_set_init_empty (dfa->inveclosures + idx);
+
+  for (src = 0; src < dfa->nodes_len; ++src)
+    {
+      int *elems = dfa->eclosures[src].elems;
+      for (idx = 0; idx < dfa->eclosures[src].nelem; ++idx)
+	{
+	  ret = re_node_set_insert_last (dfa->inveclosures + elems[idx], src);
+	  if (BE (ret == -1, 0))
+	    return REG_ESPACE;
+	}
+    }
+
+  return REG_NOERROR;
+}
+
+/* Calculate "eclosure" for all the node in DFA.  */
+
+static reg_errcode_t
+calc_eclosure (re_dfa_t *dfa)
+{
+  int node_idx, incomplete;
+#ifdef DEBUG
+  assert (dfa->nodes_len > 0);
+#endif
+  incomplete = 0;
+  /* For each nodes, calculate epsilon closure.  */
+  for (node_idx = 0; ; ++node_idx)
+    {
+      reg_errcode_t err;
+      re_node_set eclosure_elem;
+      if (node_idx == dfa->nodes_len)
+	{
+	  if (!incomplete)
+	    break;
+	  incomplete = 0;
+	  node_idx = 0;
+	}
+
+#ifdef DEBUG
+      assert (dfa->eclosures[node_idx].nelem != -1);
+#endif
+
+      /* If we have already calculated, skip it.  */
+      if (dfa->eclosures[node_idx].nelem != 0)
+	continue;
+      /* Calculate epsilon closure of `node_idx'.  */
+      err = calc_eclosure_iter (&eclosure_elem, dfa, node_idx, 1);
+      if (BE (err != REG_NOERROR, 0))
+	return err;
+
+      if (dfa->eclosures[node_idx].nelem == 0)
+	{
+	  incomplete = 1;
+	  re_node_set_free (&eclosure_elem);
+	}
+    }
+  return REG_NOERROR;
+}
+
+/* Calculate epsilon closure of NODE.  */
+
+static reg_errcode_t
+calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, int node, int root)
+{
+  reg_errcode_t err;
+  unsigned int constraint;
+  int i, incomplete;
+  re_node_set eclosure;
+  incomplete = 0;
+  err = re_node_set_alloc (&eclosure, dfa->edests[node].nelem + 1);
+  if (BE (err != REG_NOERROR, 0))
+    return err;
+
+  /* This indicates that we are calculating this node now.
+     We reference this value to avoid infinite loop.  */
+  dfa->eclosures[node].nelem = -1;
+
+  constraint = ((dfa->nodes[node].type == ANCHOR)
+		? dfa->nodes[node].opr.ctx_type : 0);
+  /* If the current node has constraints, duplicate all nodes.
+     Since they must inherit the constraints.  */
+  if (constraint
+      && dfa->edests[node].nelem
+      && !dfa->nodes[dfa->edests[node].elems[0]].duplicated)
+    {
+      err = duplicate_node_closure (dfa, node, node, node, constraint);
+      if (BE (err != REG_NOERROR, 0))
+	return err;
+    }
+
+  /* Expand each epsilon destination nodes.  */
+  if (IS_EPSILON_NODE(dfa->nodes[node].type))
+    for (i = 0; i < dfa->edests[node].nelem; ++i)
+      {
+	re_node_set eclosure_elem;
+	int edest = dfa->edests[node].elems[i];
+	/* If calculating the epsilon closure of `edest' is in progress,
+	   return intermediate result.  */
+	if (dfa->eclosures[edest].nelem == -1)
+	  {
+	    incomplete = 1;
+	    continue;
+	  }
+	/* If we haven't calculated the epsilon closure of `edest' yet,
+	   calculate now. Otherwise use calculated epsilon closure.  */
+	if (dfa->eclosures[edest].nelem == 0)
+	  {
+	    err = calc_eclosure_iter (&eclosure_elem, dfa, edest, 0);
+	    if (BE (err != REG_NOERROR, 0))
+	      return err;
+	  }
+	else
+	  eclosure_elem = dfa->eclosures[edest];
+	/* Merge the epsilon closure of `edest'.  */
+	re_node_set_merge (&eclosure, &eclosure_elem);
+	/* If the epsilon closure of `edest' is incomplete,
+	   the epsilon closure of this node is also incomplete.  */
+	if (dfa->eclosures[edest].nelem == 0)
+	  {
+	    incomplete = 1;
+	    re_node_set_free (&eclosure_elem);
+	  }
+      }
+
+  /* Epsilon closures include itself.  */
+  re_node_set_insert (&eclosure, node);
+  if (incomplete && !root)
+    dfa->eclosures[node].nelem = 0;
+  else
+    dfa->eclosures[node] = eclosure;
+  *new_set = eclosure;
+  return REG_NOERROR;
+}
+
+/* Functions for token which are used in the parser.  */
+
+/* Fetch a token from INPUT.
+   We must not use this function inside bracket expressions.  */
+
+static void
+internal_function
+fetch_token (re_token_t *result, re_string_t *input, reg_syntax_t syntax)
+{
+  re_string_skip_bytes (input, peek_token (result, input, syntax));
+}
+
+/* Peek a token from INPUT, and return the length of the token.
+   We must not use this function inside bracket expressions.  */
+
+static int
+internal_function
+peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax)
+{
+  unsigned char c;
+
+  if (re_string_eoi (input))
+    {
+      token->type = END_OF_RE;
+      return 0;
+    }
+
+  c = re_string_peek_byte (input, 0);
+  token->opr.c = c;
+
+  token->word_char = 0;
+#ifdef RE_ENABLE_I18N
+  token->mb_partial = 0;
+  if (input->mb_cur_max > 1 &&
+      !re_string_first_byte (input, re_string_cur_idx (input)))
+    {
+      token->type = CHARACTER;
+      token->mb_partial = 1;
+      return 1;
+    }
+#endif
+  if (c == '\\')
+    {
+      unsigned char c2;
+      if (re_string_cur_idx (input) + 1 >= re_string_length (input))
+	{
+	  token->type = BACK_SLASH;
+	  return 1;
+	}
+
+      c2 = re_string_peek_byte_case (input, 1);
+      token->opr.c = c2;
+      token->type = CHARACTER;
+#ifdef RE_ENABLE_I18N
+      if (input->mb_cur_max > 1)
+	{
+	  wint_t wc = re_string_wchar_at (input,
+					  re_string_cur_idx (input) + 1);
+	  token->word_char = IS_WIDE_WORD_CHAR (wc) != 0;
+	}
+      else
+#endif
+	token->word_char = IS_WORD_CHAR (c2) != 0;
+
+      switch (c2)
+	{
+	case '|':
+	  if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_NO_BK_VBAR))
+	    token->type = OP_ALT;
+	  break;
+	case '1': case '2': case '3': case '4': case '5':
+	case '6': case '7': case '8': case '9':
+	  if (!(syntax & RE_NO_BK_REFS))
+	    {
+	      token->type = OP_BACK_REF;
+	      token->opr.idx = c2 - '1';
+	    }
+	  break;
+	case '<':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    {
+	      token->type = ANCHOR;
+	      token->opr.ctx_type = WORD_FIRST;
+	    }
+	  break;
+	case '>':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    {
+	      token->type = ANCHOR;
+	      token->opr.ctx_type = WORD_LAST;
+	    }
+	  break;
+	case 'b':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    {
+	      token->type = ANCHOR;
+	      token->opr.ctx_type = WORD_DELIM;
+	    }
+	  break;
+	case 'B':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    {
+	      token->type = ANCHOR;
+	      token->opr.ctx_type = NOT_WORD_DELIM;
+	    }
+	  break;
+	case 'w':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    token->type = OP_WORD;
+	  break;
+	case 'W':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    token->type = OP_NOTWORD;
+	  break;
+	case 's':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    token->type = OP_SPACE;
+	  break;
+	case 'S':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    token->type = OP_NOTSPACE;
+	  break;
+	case '`':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    {
+	      token->type = ANCHOR;
+	      token->opr.ctx_type = BUF_FIRST;
+	    }
+	  break;
+	case '\'':
+	  if (!(syntax & RE_NO_GNU_OPS))
+	    {
+	      token->type = ANCHOR;
+	      token->opr.ctx_type = BUF_LAST;
+	    }
+	  break;
+	case '(':
+	  if (!(syntax & RE_NO_BK_PARENS))
+	    token->type = OP_OPEN_SUBEXP;
+	  break;
+	case ')':
+	  if (!(syntax & RE_NO_BK_PARENS))
+	    token->type = OP_CLOSE_SUBEXP;
+	  break;
+	case '+':
+	  if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_BK_PLUS_QM))
+	    token->type = OP_DUP_PLUS;
+	  break;
+	case '?':
+	  if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_BK_PLUS_QM))
+	    token->type = OP_DUP_QUESTION;
+	  break;
+	case '{':
+	  if ((syntax & RE_INTERVALS) && (!(syntax & RE_NO_BK_BRACES)))
+	    token->type = OP_OPEN_DUP_NUM;
+	  break;
+	case '}':
+	  if ((syntax & RE_INTERVALS) && (!(syntax & RE_NO_BK_BRACES)))
+	    token->type = OP_CLOSE_DUP_NUM;
+	  break;
+	default:
+	  break;
+	}
+      return 2;
+    }
+
+  token->type = CHARACTER;
+#ifdef RE_ENABLE_I18N
+  if (input->mb_cur_max > 1)
+    {
+      wint_t wc = re_string_wchar_at (input, re_string_cur_idx (input));
+      token->word_char = IS_WIDE_WORD_CHAR (wc) != 0;
+    }
+  else
+#endif
+    token->word_char = IS_WORD_CHAR (token->opr.c);
+
+  switch (c)
+    {
+    case '\n':
+      if (syntax & RE_NEWLINE_ALT)
+	token->type = OP_ALT;
+      break;
+    case '|':
+      if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_NO_BK_VBAR))
+	token->type = OP_ALT;
+      break;
+    case '*':
+      token->type = OP_DUP_ASTERISK;
+      break;
+    case '+':
+      if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_BK_PLUS_QM))
+	token->type = OP_DUP_PLUS;
+      break;
+    case '?':
+      if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_BK_PLUS_QM))
+	token->type = OP_DUP_QUESTION;
+      break;
+    case '{':
+      if ((syntax & RE_INTERVALS) && (syntax & RE_NO_BK_BRACES))
+	token->type = OP_OPEN_DUP_NUM;
+      break;
+    case '}':
+      if ((syntax & RE_INTERVALS) && (syntax & RE_NO_BK_BRACES))
+	token->type = OP_CLOSE_DUP_NUM;
+      break;
+    case '(':
+      if (syntax & RE_NO_BK_PARENS)
+	token->type = OP_OPEN_SUBEXP;
+      break;
+    case ')':
+      if (syntax & RE_NO_BK_PARENS)
+	token->type = OP_CLOSE_SUBEXP;
+      break;
+    case '[':
+      token->type = OP_OPEN_BRACKET;
+      break;
+    case '.':
+      token->type = OP_PERIOD;
+      break;
+    case '^':
+      if (!(syntax & (RE_CONTEXT_INDEP_ANCHORS | RE_CARET_ANCHORS_HERE)) &&
+	  re_string_cur_idx (input) != 0)
+	{
+	  char prev = re_string_peek_byte (input, -1);
+	  if (!(syntax & RE_NEWLINE_ALT) || prev != '\n')
+	    break;
+	}
+      token->type = ANCHOR;
+      token->opr.ctx_type = LINE_FIRST;
+      break;
+    case '$':
+      if (!(syntax & RE_CONTEXT_INDEP_ANCHORS) &&
+	  re_string_cur_idx (input) + 1 != re_string_length (input))
+	{
+	  re_token_t next;
+	  re_string_skip_bytes (input, 1);
+	  peek_token (&next, input, syntax);
+	  re_string_skip_bytes (input, -1);
+	  if (next.type != OP_ALT && next.type != OP_CLOSE_SUBEXP)
+	    break;
+	}
+      token->type = ANCHOR;
+      token->opr.ctx_type = LINE_LAST;
+      break;
+    default:
+      break;
+    }
+  return 1;
+}
+
+/* Peek a token from INPUT, and return the length of the token.
+   We must not use this function out of bracket expressions.  */
+
+static int
+internal_function
+peek_token_bracket (re_token_t *token, re_string_t *input, reg_syntax_t syntax)
+{
+  unsigned char c;
+  if (re_string_eoi (input))
+    {
+      token->type = END_OF_RE;
+      return 0;
+    }
+  c = re_string_peek_byte (input, 0);
+  token->opr.c = c;
+
+#ifdef RE_ENABLE_I18N
+  if (input->mb_cur_max > 1 &&
+      !re_string_first_byte (input, re_string_cur_idx (input)))
+    {
+      token->type = CHARACTER;
+      return 1;
+    }
+#endif /* RE_ENABLE_I18N */
+
+  if (c == '\\' && (syntax & RE_BACKSLASH_ESCAPE_IN_LISTS)
+      && re_string_cur_idx (input) + 1 < re_string_length (input))
+    {
+      /* In this case, '\' escape a character.  */
+      unsigned char c2;
+      re_string_skip_bytes (input, 1);
+      c2 = re_string_peek_byte (input, 0);
+      token->opr.c = c2;
+      token->type = CHARACTER;
+      return 1;
+    }
+  if (c == '[') /* '[' is a special char in a bracket exps.  */
+    {
+      unsigned char c2;
+      int token_len;
+      if (re_string_cur_idx (input) + 1 < re_string_length (input))
+	c2 = re_string_peek_byte (input, 1);
+      else
+	c2 = 0;
+      token->opr.c = c2;
+      token_len = 2;
+      switch (c2)
+	{
+	case '.':
+	  token->type = OP_OPEN_COLL_ELEM;
+	  break;
+	case '=':
+	  token->type = OP_OPEN_EQUIV_CLASS;
+	  break;
+	case ':':
+	  if (syntax & RE_CHAR_CLASSES)
+	    {
+	      token->type = OP_OPEN_CHAR_CLASS;
+	      break;
+	    }
+	  /* else fall through.  */
+	default:
+	  token->type = CHARACTER;
+	  token->opr.c = c;
+	  token_len = 1;
+	  break;
+	}
+      return token_len;
+    }
+  switch (c)
+    {
+    case '-':
+      token->type = OP_CHARSET_RANGE;
+      break;
+    case ']':
+      token->type = OP_CLOSE_BRACKET;
+      break;
+    case '^':
+      token->type = OP_NON_MATCH_LIST;
+      break;
+    default:
+      token->type = CHARACTER;
+    }
+  return 1;
+}
+
+/* Functions for parser.  */
+
+/* Entry point of the parser.
+   Parse the regular expression REGEXP and return the structure tree.
+   If an error is occured, ERR is set by error code, and return NULL.
+   This function build the following tree, from regular expression <reg_exp>:
+	   CAT
+	   / \
+	  /   \
+   <reg_exp>  EOR
+
+   CAT means concatenation.
+   EOR means end of regular expression.  */
+
+static bin_tree_t *
+parse (re_string_t *regexp, regex_t *preg, reg_syntax_t syntax,
+       reg_errcode_t *err)
+{
+  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  bin_tree_t *tree, *eor, *root;
+  re_token_t current_token;
+  dfa->syntax = syntax;
+  fetch_token (&current_token, regexp, syntax | RE_CARET_ANCHORS_HERE);
+  tree = parse_reg_exp (regexp, preg, &current_token, syntax, 0, err);
+  if (BE (*err != REG_NOERROR && tree == NULL, 0))
+    return NULL;
+  eor = create_tree (dfa, NULL, NULL, END_OF_RE);
+  if (tree != NULL)
+    root = create_tree (dfa, tree, eor, CONCAT);
+  else
+    root = eor;
+  if (BE (eor == NULL || root == NULL, 0))
+    {
+      *err = REG_ESPACE;
+      return NULL;
+    }
+  return root;
+}
+
+/* This function build the following tree, from regular expression
+   <branch1>|<branch2>:
+	   ALT
+	   / \
+	  /   \
+   <branch1> <branch2>
+
+   ALT means alternative, which represents the operator `|'.  */
+
+static bin_tree_t *
+parse_reg_exp (re_string_t *regexp, regex_t *preg, re_token_t *token,
+	       reg_syntax_t syntax, int nest, reg_errcode_t *err)
+{
+  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  bin_tree_t *tree, *branch = NULL;
+  tree = parse_branch (regexp, preg, token, syntax, nest, err);
+  if (BE (*err != REG_NOERROR && tree == NULL, 0))
+    return NULL;
+
+  while (token->type == OP_ALT)
+    {
+      fetch_token (token, regexp, syntax | RE_CARET_ANCHORS_HERE);
+      if (token->type != OP_ALT && token->type != END_OF_RE
+	  && (nest == 0 || token->type != OP_CLOSE_SUBEXP))
+	{
+	  branch = parse_branch (regexp, preg, token, syntax, nest, err);
+	  if (BE (*err != REG_NOERROR && branch == NULL, 0))
+	    return NULL;
+	}
+      else
+	branch = NULL;
+      tree = create_tree (dfa, tree, branch, OP_ALT);
+      if (BE (tree == NULL, 0))
+	{
+	  *err = REG_ESPACE;
+	  return NULL;
+	}
+    }
+  return tree;
+}
+
+/* This function build the following tree, from regular expression
+   <exp1><exp2>:
+	CAT
+	/ \
+       /   \
+   <exp1> <exp2>
+
+   CAT means concatenation.  */
+
+static bin_tree_t *
+parse_branch (re_string_t *regexp, regex_t *preg, re_token_t *token,
+	      reg_syntax_t syntax, int nest, reg_errcode_t *err)
+{
+  bin_tree_t *tree, *exp;
+  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  tree = parse_expression (regexp, preg, token, syntax, nest, err);
+  if (BE (*err != REG_NOERROR && tree == NULL, 0))
+    return NULL;
+
+  while (token->type != OP_ALT && token->type != END_OF_RE
+	 && (nest == 0 || token->type != OP_CLOSE_SUBEXP))
+    {
+      exp = parse_expression (regexp, preg, token, syntax, nest, err);
+      if (BE (*err != REG_NOERROR && exp == NULL, 0))
+	{
+	  return NULL;
+	}
+      if (tree != NULL && exp != NULL)
+	{
+	  tree = create_tree (dfa, tree, exp, CONCAT);
+	  if (tree == NULL)
+	    {
+	      *err = REG_ESPACE;
+	      return NULL;
+	    }
+	}
+      else if (tree == NULL)
+	tree = exp;
+      /* Otherwise exp == NULL, we don't need to create new tree.  */
+    }
+  return tree;
+}
+
+/* This function build the following tree, from regular expression a*:
+	 *
+	 |
+	 a
+*/
+
+static bin_tree_t *
+parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token,
+		  reg_syntax_t syntax, int nest, reg_errcode_t *err)
+{
+  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  bin_tree_t *tree;
+  switch (token->type)
+    {
+    case CHARACTER:
+      tree = create_token_tree (dfa, NULL, NULL, token);
+      if (BE (tree == NULL, 0))
+	{
+	  *err = REG_ESPACE;
+	  return NULL;
+	}
+#ifdef RE_ENABLE_I18N
+      if (dfa->mb_cur_max > 1)
+	{
+	  while (!re_string_eoi (regexp)
+		 && !re_string_first_byte (regexp, re_string_cur_idx (regexp)))
+	    {
+	      bin_tree_t *mbc_remain;
+	      fetch_token (token, regexp, syntax);
+	      mbc_remain = create_token_tree (dfa, NULL, NULL, token);
+	      tree = create_tree (dfa, tree, mbc_remain, CONCAT);
+	      if (BE (mbc_remain == NULL || tree == NULL, 0))
+		{
+		  *err = REG_ESPACE;
+		  return NULL;
+		}
+	    }
+	}
+#endif
+      break;
+    case OP_OPEN_SUBEXP:
+      tree = parse_sub_exp (regexp, preg, token, syntax, nest + 1, err);
+      if (BE (*err != REG_NOERROR && tree == NULL, 0))
+	return NULL;
+      break;
+    case OP_OPEN_BRACKET:
+      tree = parse_bracket_exp (regexp, dfa, token, syntax, err);
+      if (BE (*err != REG_NOERROR && tree == NULL, 0))
+	return NULL;
+      break;
+    case OP_BACK_REF:
+      if (!BE (dfa->completed_bkref_map & (1 << token->opr.idx), 1))
+	{
+	  *err = REG_ESUBREG;
+	  return NULL;
+	}
+      dfa->used_bkref_map |= 1 << token->opr.idx;
+      tree = create_token_tree (dfa, NULL, NULL, token);
+      if (BE (tree == NULL, 0))
+	{
+	  *err = REG_ESPACE;
+	  return NULL;
+	}
+      ++dfa->nbackref;
+      dfa->has_mb_node = 1;
+      break;
+    case OP_OPEN_DUP_NUM:
+      if (syntax & RE_CONTEXT_INVALID_DUP)
+	{
+	  *err = REG_BADRPT;
+	  return NULL;
+	}
+      /* FALLTHROUGH */
+    case OP_DUP_ASTERISK:
+    case OP_DUP_PLUS:
+    case OP_DUP_QUESTION:
+      if (syntax & RE_CONTEXT_INVALID_OPS)
+	{
+	  *err = REG_BADRPT;
+	  return NULL;
+	}
+      else if (syntax & RE_CONTEXT_INDEP_OPS)
+	{
+	  fetch_token (token, regexp, syntax);
+	  return parse_expression (regexp, preg, token, syntax, nest, err);
+	}
+      /* else fall through  */
+    case OP_CLOSE_SUBEXP:
+      if ((token->type == OP_CLOSE_SUBEXP) &&
+	  !(syntax & RE_UNMATCHED_RIGHT_PAREN_ORD))
+	{
+	  *err = REG_ERPAREN;
+	  return NULL;
+	}
+      /* else fall through  */
+    case OP_CLOSE_DUP_NUM:
+      /* We treat it as a normal character.  */
+
+      /* Then we can these characters as normal characters.  */
+      token->type = CHARACTER;
+      /* mb_partial and word_char bits should be initialized already
+	 by peek_token.  */
+      tree = create_token_tree (dfa, NULL, NULL, token);
+      if (BE (tree == NULL, 0))
+	{
+	  *err = REG_ESPACE;
+	  return NULL;
+	}
+      break;
+    case ANCHOR:
+      if ((token->opr.ctx_type
+	   & (WORD_DELIM | NOT_WORD_DELIM | WORD_FIRST | WORD_LAST))
+	  && dfa->word_ops_used == 0)
+	init_word_char (dfa);
+      if (token->opr.ctx_type == WORD_DELIM
+          || token->opr.ctx_type == NOT_WORD_DELIM)
+	{
+	  bin_tree_t *tree_first, *tree_last;
+	  if (token->opr.ctx_type == WORD_DELIM)
+	    {
+	      token->opr.ctx_type = WORD_FIRST;
+	      tree_first = create_token_tree (dfa, NULL, NULL, token);
+	      token->opr.ctx_type = WORD_LAST;
+            }
+          else
+            {
+	      token->opr.ctx_type = INSIDE_WORD;
+	      tree_first = create_token_tree (dfa, NULL, NULL, token);
+	      token->opr.ctx_type = INSIDE_NOTWORD;
+            }
+	  tree_last = create_token_tree (dfa, NULL, NULL, token);
+	  tree = create_tree (dfa, tree_first, tree_last, OP_ALT);
+	  if (BE (tree_first == NULL || tree_last == NULL || tree == NULL, 0))
+	    {
+	      *err = REG_ESPACE;
+	      return NULL;
+	    }
+	}
+      else
+	{
+	  tree = create_token_tree (dfa, NULL, NULL, token);
+	  if (BE (tree == NULL, 0))
+	    {
+	      *err = REG_ESPACE;
+	      return NULL;
+	    }
+	}
+      /* We must return here, since ANCHORs can't be followed
+	 by repetition operators.
+	 eg. RE"^*" is invalid or "<ANCHOR(^)><CHAR(*)>",
+	     it must not be "<ANCHOR(^)><REPEAT(*)>".  */
+      fetch_token (token, regexp, syntax);
+      return tree;
+    case OP_PERIOD:
+      tree = create_token_tree (dfa, NULL, NULL, token);
+      if (BE (tree == NULL, 0))
+	{
+	  *err = REG_ESPACE;
+	  return NULL;
+	}
+      if (dfa->mb_cur_max > 1)
+	dfa->has_mb_node = 1;
+      break;
+    case OP_WORD:
+    case OP_NOTWORD:
+      tree = build_charclass_op (dfa, regexp->trans,
+				 (const unsigned char *) "alnum",
+				 (const unsigned char *) "_",
+				 token->type == OP_NOTWORD, err);
+      if (BE (*err != REG_NOERROR && tree == NULL, 0))
+	return NULL;
+      break;
+    case OP_SPACE:
+    case OP_NOTSPACE:
+      tree = build_charclass_op (dfa, regexp->trans,
+				 (const unsigned char *) "space",
+				 (const unsigned char *) "",
+				 token->type == OP_NOTSPACE, err);
+      if (BE (*err != REG_NOERROR && tree == NULL, 0))
+	return NULL;
+      break;
+    case OP_ALT:
+    case END_OF_RE:
+      return NULL;
+    case BACK_SLASH:
+      *err = REG_EESCAPE;
+      return NULL;
+    default:
+      /* Must not happen?  */
+#ifdef DEBUG
+      assert (0);
+#endif
+      return NULL;
+    }
+  fetch_token (token, regexp, syntax);
+
+  while (token->type == OP_DUP_ASTERISK || token->type == OP_DUP_PLUS
+	 || token->type == OP_DUP_QUESTION || token->type == OP_OPEN_DUP_NUM)
+    {
+      tree = parse_dup_op (tree, regexp, dfa, token, syntax, err);
+      if (BE (*err != REG_NOERROR && tree == NULL, 0))
+	return NULL;
+      /* In BRE consecutive duplications are not allowed.  */
+      if ((syntax & RE_CONTEXT_INVALID_DUP)
+	  && (token->type == OP_DUP_ASTERISK
+	      || token->type == OP_OPEN_DUP_NUM))
+	{
+	  *err = REG_BADRPT;
+	  return NULL;
+	}
+    }
+
+  return tree;
+}
+
+/* This function build the following tree, from regular expression
+   (<reg_exp>):
+	 SUBEXP
+	    |
+	<reg_exp>
+*/
+
+static bin_tree_t *
+parse_sub_exp (re_string_t *regexp, regex_t *preg, re_token_t *token,
+	       reg_syntax_t syntax, int nest, reg_errcode_t *err)
+{
+  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+  bin_tree_t *tree;
+  size_t cur_nsub;
+  cur_nsub = preg->re_nsub++;
+
+  fetch_token (token, regexp, syntax | RE_CARET_ANCHORS_HERE);
+
+  /* The subexpression may be a null string.  */
+  if (token->type == OP_CLOSE_SUBEXP)
+    tree = NULL;
+  else
+    {
+      tree = parse_reg_exp (regexp, preg, token, syntax, nest, err);
+      if (BE (*err == REG_NOERROR && token->type != OP_CLOSE_SUBEXP, 0))
+        *err = REG_EPAREN;
+      if (BE (*err != REG_NOERROR, 0))
+	return NULL;
+    }
+
+  if (cur_nsub <= '9' - '1')
+    dfa->completed_bkref_map |= 1 << cur_nsub;
+
+  tree = create_tree (dfa, tree, NULL, SUBEXP);
+  if (BE (tree == NULL, 0))
+    {
+      *err = REG_ESPACE;
+      return NULL;
+    }
+  tree->token.opr.idx = cur_nsub;
+  return tree;
+}
+
+/* This function parse repetition operators like "*", "+", "{1,3}" etc.  */
+
+static bin_tree_t *
+parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa,
+	      re_token_t *token, reg_syntax_t syntax, reg_errcode_t *err)
+{
+  bin_tree_t *tree = NULL, *old_tree = NULL;
+  int i, start, end, start_idx = re_string_cur_idx (regexp);
+  re_token_t start_token = *token;
+
+  if (token->type == OP_OPEN_DUP_NUM)
+    {
+      end = 0;
+      start = fetch_number (regexp, token, syntax);
+      if (start == -1)
+	{
+	  if (token->type == CHARACTER && token->opr.c == ',')
+	    start = 0; /* We treat "{,m}" as "{0,m}".  */
+	  else
+	    {
+	      *err = REG_BADBR; /* <re>{} is invalid.  */
+	      return NULL;
+	    }
+	}
+      if (BE (start != -2, 1))
+	{
+	  /* We treat "{n}" as "{n,n}".  */
+	  end = ((token->type == OP_CLOSE_DUP_NUM) ? start
+		 : ((token->type == CHARACTER && token->opr.c == ',')
+		    ? fetch_number (regexp, token, syntax) : -2));
+	}
+      if (BE (start == -2 || end == -2, 0))
+	{
+	  /* Invalid sequence.  */
+	  if (BE (!(syntax & RE_INVALID_INTERVAL_ORD), 0))
+	    {
+	      if (token->type == END_OF_RE)
+		*err = REG_EBRACE;
+	      else
+		*err = REG_BADBR;
+
+	      return NULL;
+	    }
+
+	  /* If the syntax bit is set, rollback.  */
+	  re_string_set_index (regexp, start_idx);
+	  *token = start_token;
+	  token->type = CHARACTER;
+	  /* mb_partial and word_char bits should be already initialized by
+	     peek_token.  */
+	  return elem;
+	}
+
+      if (BE (end != -1 && start > end, 0))
+	{
+	  /* First number greater than second.  */
+	  *err = REG_BADBR;
+	  return NULL;
+	}
+    }
+  else
+    {
+      start = (token->type == OP_DUP_PLUS) ? 1 : 0;
+      end = (token->type == OP_DUP_QUESTION) ? 1 : -1;
+    }
+
+  fetch_token (token, regexp, syntax);
+
+  if (BE (elem == NULL, 0))
+    return NULL;
+  if (BE (start == 0 && end == 0, 0))
+    {
+      postorder (elem, free_tree, NULL);
+      return NULL;
+    }
+
+  /* Extract "<re>{n,m}" to "<re><re>...<re><re>{0,<m-n>}".  */
+  if (BE (start > 0, 0))
+    {
+      tree = elem;
+      for (i = 2; i <= start; ++i)
+	{
+	  elem = duplicate_tree (elem, dfa);
+	  tree = create_tree (dfa, tree, elem, CONCAT);
+	  if (BE (elem == NULL || tree == NULL, 0))
+	    goto parse_dup_op_espace;
+	}
+
+      if (start == end)
+	return tree;
+
+      /* Duplicate ELEM before it is marked optional.  */
+      elem = duplicate_tree (elem, dfa);
+      old_tree = tree;
+    }
+  else
+    old_tree = NULL;
+
+  if (elem->token.type == SUBEXP)
+    postorder (elem, mark_opt_subexp, (void *) (long) elem->token.opr.idx);
+
+  tree = create_tree (dfa, elem, NULL, (end == -1 ? OP_DUP_ASTERISK : OP_ALT));
+  if (BE (tree == NULL, 0))
+    goto parse_dup_op_espace;
+
+  /* This loop is actually executed only when end != -1,
+     to rewrite <re>{0,n} as (<re>(<re>...<re>?)?)?...  We have
+     already created the start+1-th copy.  */
+  for (i = start + 2; i <= end; ++i)
+    {
+      elem = duplicate_tree (elem, dfa);
+      tree = create_tree (dfa, tree, elem, CONCAT);
+      if (BE (elem == NULL || tree == NULL, 0))
+        goto parse_dup_op_espace;
+
+      tree = create_tree (dfa, tree, NULL, OP_ALT);
+      if (BE (tree == NULL, 0))
+        goto parse_dup_op_espace;
+    }
+
+  if (old_tree)
+    tree = create_tree (dfa, old_tree, tree, CONCAT);
+
+  return tree;
+
+ parse_dup_op_espace:
+  *err = REG_ESPACE;
+  return NULL;
+}
+
+/* Size of the names for collating symbol/equivalence_class/character_class.
+   I'm not sure, but maybe enough.  */
+#define BRACKET_NAME_BUF_SIZE 32
+
+#ifndef _LIBC
+  /* Local function for parse_bracket_exp only used in case of NOT _LIBC.
+     Build the range expression which starts from START_ELEM, and ends
+     at END_ELEM.  The result are written to MBCSET and SBCSET.
+     RANGE_ALLOC is the allocated size of mbcset->range_starts, and
+     mbcset->range_ends, is a pointer argument sinse we may
+     update it.  */
+
+static reg_errcode_t
+internal_function
+# ifdef RE_ENABLE_I18N
+build_range_exp (bitset_t sbcset, re_charset_t *mbcset, int *range_alloc,
+		 bracket_elem_t *start_elem, bracket_elem_t *end_elem)
+# else /* not RE_ENABLE_I18N */
+build_range_exp (bitset_t sbcset, bracket_elem_t *start_elem,
+		 bracket_elem_t *end_elem)
+# endif /* not RE_ENABLE_I18N */
+{
+  unsigned int start_ch, end_ch;
+  /* Equivalence Classes and Character Classes can't be a range start/end.  */
+  if (BE (start_elem->type == EQUIV_CLASS || start_elem->type == CHAR_CLASS
+	  || end_elem->type == EQUIV_CLASS || end_elem->type == CHAR_CLASS,
+	  0))
+    return REG_ERANGE;
+
+  /* We can handle no multi character collating elements without libc
+     support.  */
+  if (BE ((start_elem->type == COLL_SYM
+	   && strlen ((char *) start_elem->opr.name) > 1)
+	  || (end_elem->type == COLL_SYM
+	      && strlen ((char *) end_elem->opr.name) > 1), 0))
+    return REG_ECOLLATE;
+
+# ifdef RE_ENABLE_I18N
+  {
+    wchar_t wc;
+    wint_t start_wc;
+    wint_t end_wc;
+    wchar_t cmp_buf[6] = {L'\0', L'\0', L'\0', L'\0', L'\0', L'\0'};
+
+    start_ch = ((start_elem->type == SB_CHAR) ? start_elem->opr.ch
+		: ((start_elem->type == COLL_SYM) ? start_elem->opr.name[0]
+		   : 0));
+    end_ch = ((end_elem->type == SB_CHAR) ? end_elem->opr.ch
+	      : ((end_elem->type == COLL_SYM) ? end_elem->opr.name[0]
+		 : 0));
+    start_wc = ((start_elem->type == SB_CHAR || start_elem->type == COLL_SYM)
+		? __btowc (start_ch) : start_elem->opr.wch);
+    end_wc = ((end_elem->type == SB_CHAR || end_elem->type == COLL_SYM)
+	      ? __btowc (end_ch) : end_elem->opr.wch);
+    if (start_wc == WEOF || end_wc == WEOF)
+      return REG_ECOLLATE;
+    cmp_buf[0] = start_wc;
+    cmp_buf[4] = end_wc;
+    if (wcscoll (cmp_buf, cmp_buf + 4) > 0)
+      return REG_ERANGE;
+
+    /* Got valid collation sequence values, add them as a new entry.
+       However, for !_LIBC we have no collation elements: if the
+       character set is single byte, the single byte character set
+       that we build below suffices.  parse_bracket_exp passes
+       no MBCSET if dfa->mb_cur_max == 1.  */
+    if (mbcset)
+      {
+        /* Check the space of the arrays.  */
+        if (BE (*range_alloc == mbcset->nranges, 0))
+          {
+	    /* There is not enough space, need realloc.  */
+	    wchar_t *new_array_start, *new_array_end;
+	    int new_nranges;
+
+	    /* +1 in case of mbcset->nranges is 0.  */
+	    new_nranges = 2 * mbcset->nranges + 1;
+	    /* Use realloc since mbcset->range_starts and mbcset->range_ends
+	       are NULL if *range_alloc == 0.  */
+	    new_array_start = re_realloc (mbcset->range_starts, wchar_t,
+				          new_nranges);
+	    new_array_end = re_realloc (mbcset->range_ends, wchar_t,
+				        new_nranges);
+
+	    if (BE (new_array_start == NULL || new_array_end == NULL, 0))
+	      return REG_ESPACE;
+
+	    mbcset->range_starts = new_array_start;
+	    mbcset->range_ends = new_array_end;
+	    *range_alloc = new_nranges;
+          }
+
+        mbcset->range_starts[mbcset->nranges] = start_wc;
+        mbcset->range_ends[mbcset->nranges++] = end_wc;
+      }
+
+    /* Build the table for single byte characters.  */
+    for (wc = 0; wc < SBC_MAX; ++wc)
+      {
+	cmp_buf[2] = wc;
+	if (wcscoll (cmp_buf, cmp_buf + 2) <= 0
+	    && wcscoll (cmp_buf + 2, cmp_buf + 4) <= 0)
+	  bitset_set (sbcset, wc);
+      }
+  }
+# else /* not RE_ENABLE_I18N */
+  {
+    unsigned int ch;
+    start_ch = ((start_elem->type == SB_CHAR ) ? start_elem->opr.ch
+		: ((start_elem->type == COLL_SYM) ? start_elem->opr.name[0]
+		   : 0));
+    end_ch = ((end_elem->type == SB_CHAR ) ? end_elem->opr.ch
+	      : ((end_elem->type == COLL_SYM) ? end_elem->opr.name[0]
+		 : 0));
+    if (start_ch > end_ch)
+      return REG_ERANGE;
+    /* Build the table for single byte characters.  */
+    for (ch = 0; ch < SBC_MAX; ++ch)
+      if (start_ch <= ch  && ch <= end_ch)
+	bitset_set (sbcset, ch);
+  }
+# endif /* not RE_ENABLE_I18N */
+  return REG_NOERROR;
+}
+#endif /* not _LIBC */
+
+#ifndef _LIBC
+/* Helper function for parse_bracket_exp only used in case of NOT _LIBC..
+   Build the collating element which is represented by NAME.
+   The result are written to MBCSET and SBCSET.
+   COLL_SYM_ALLOC is the allocated size of mbcset->coll_sym, is a
+   pointer argument since we may update it.  */
+
+static reg_errcode_t
+internal_function
+# ifdef RE_ENABLE_I18N
+build_collating_symbol (bitset_t sbcset, re_charset_t *mbcset,
+			int *coll_sym_alloc, const unsigned char *name)
+# else /* not RE_ENABLE_I18N */
+build_collating_symbol (bitset_t sbcset, const unsigned char *name)
+# endif /* not RE_ENABLE_I18N */
+{
+  size_t name_len = strlen ((const char *) name);
+  if (BE (name_len != 1, 0))
+    return REG_ECOLLATE;
+  else
+    {
+      bitset_set (sbcset, name[0]);
+      return REG_NOERROR;
+    }
+}
+#endif /* not _LIBC */
+
+/* This function parse bracket expression like "[abc]", "[a-c]",
+   "[[.a-a.]]" etc.  */
+
+static bin_tree_t *
+parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
+		   reg_syntax_t syntax, reg_errcode_t *err)
+{
+#ifdef _LIBC
+  const unsigned char *collseqmb;
+  const char *collseqwc;
+  uint32_t nrules;
+  int32_t table_size;
+  const int32_t *symb_table;
+  const unsigned char *extra;
+
+  /* Local function for parse_bracket_exp used in _LIBC environement.
+     Seek the collating symbol entry correspondings to NAME.
+     Return the index of the symbol in the SYMB_TABLE.  */
+
+  auto inline int32_t
+  __attribute ((always_inline))
+  seek_collating_symbol_entry (name, name_len)
+	 const unsigned char *name;
+	 size_t name_len;
+    {
+      int32_t hash = elem_hash ((const char *) name, name_len);
+      int32_t elem = hash % table_size;
+      if (symb_table[2 * elem] != 0)
+	{
+	  int32_t second = hash % (table_size - 2) + 1;
+
+	  do
+	    {
+	      /* First compare the hashing value.  */
+	      if (symb_table[2 * elem] == hash
+		  /* Compare the length of the name.  */
+		  && name_len == extra[symb_table[2 * elem + 1]]
+		  /* Compare the name.  */
+		  && memcmp (name, &extra[symb_table[2 * elem + 1] + 1],
+			     name_len) == 0)
+		{
+		  /* Yep, this is the entry.  */
+		  break;
+		}
+
+	      /* Next entry.  */
+	      elem += second;
+	    }
+	  while (symb_table[2 * elem] != 0);
+	}
+      return elem;
+    }
+
+  /* Local function for parse_bracket_exp used in _LIBC environement.
+     Look up the collation sequence value of BR_ELEM.
+     Return the value if succeeded, UINT_MAX otherwise.  */
+
+  auto inline unsigned int
+  __attribute ((always_inline))
+  lookup_collation_sequence_value (br_elem)
+	 bracket_elem_t *br_elem;
+    {
+      if (br_elem->type == SB_CHAR)
+	{
+	  /*
+	  if (MB_CUR_MAX == 1)
+	  */
+	  if (nrules == 0)
+	    return collseqmb[br_elem->opr.ch];
+	  else
+	    {
+	      wint_t wc = __btowc (br_elem->opr.ch);
+	      return __collseq_table_lookup (collseqwc, wc);
+	    }
+	}
+      else if (br_elem->type == MB_CHAR)
+	{
+	  return __collseq_table_lookup (collseqwc, br_elem->opr.wch);
+	}
+      else if (br_elem->type == COLL_SYM)
+	{
+	  size_t sym_name_len = strlen ((char *) br_elem->opr.name);
+	  if (nrules != 0)
+	    {
+	      int32_t elem, idx;
+	      elem = seek_collating_symbol_entry (br_elem->opr.name,
+						  sym_name_len);
+	      if (symb_table[2 * elem] != 0)
+		{
+		  /* We found the entry.  */
+		  idx = symb_table[2 * elem + 1];
+		  /* Skip the name of collating element name.  */
+		  idx += 1 + extra[idx];
+		  /* Skip the byte sequence of the collating element.  */
+		  idx += 1 + extra[idx];
+		  /* Adjust for the alignment.  */
+		  idx = (idx + 3) & ~3;
+		  /* Skip the multibyte collation sequence value.  */
+		  idx += sizeof (unsigned int);
+		  /* Skip the wide char sequence of the collating element.  */
+		  idx += sizeof (unsigned int) *
+		    (1 + *(unsigned int *) (extra + idx));
+		  /* Return the collation sequence value.  */
+		  return *(unsigned int *) (extra + idx);
+		}
+	      else if (symb_table[2 * elem] == 0 && sym_name_len == 1)
+		{
+		  /* No valid character.  Match it as a single byte
+		     character.  */
+		  return collseqmb[br_elem->opr.name[0]];
+		}
+	    }
+	  else if (sym_name_len == 1)
+	    return collseqmb[br_elem->opr.name[0]];
+	}
+      return UINT_MAX;
+    }
+
+  /* Local function for parse_bracket_exp used in _LIBC environement.
+     Build the range expression which starts from START_ELEM, and ends
+     at END_ELEM.  The result are written to MBCSET and SBCSET.
+     RANGE_ALLOC is the allocated size of mbcset->range_starts, and
+     mbcset->range_ends, is a pointer argument sinse we may
+     update it.  */
+
+  auto inline reg_errcode_t
+  __attribute ((always_inline))
+  build_range_exp (sbcset, mbcset, range_alloc, start_elem, end_elem)
+	 re_charset_t *mbcset;
+	 int *range_alloc;
+	 bitset_t sbcset;
+	 bracket_elem_t *start_elem, *end_elem;
+    {
+      unsigned int ch;
+      uint32_t start_collseq;
+      uint32_t end_collseq;
+
+      /* Equivalence Classes and Character Classes can't be a range
+	 start/end.  */
+      if (BE (start_elem->type == EQUIV_CLASS || start_elem->type == CHAR_CLASS
+	      || end_elem->type == EQUIV_CLASS || end_elem->type == CHAR_CLASS,
+	      0))
+	return REG_ERANGE;
+
+      start_collseq = lookup_collation_sequence_value (start_elem);
+      end_collseq = lookup_collation_sequence_value (end_elem);
+      /* Check start/end collation sequence values.  */
+      if (BE (start_collseq == UINT_MAX || end_collseq == UINT_MAX, 0))
+	return REG_ECOLLATE;
+      if (BE ((syntax & RE_NO_EMPTY_RANGES) && start_collseq > end_collseq, 0))
+	return REG_ERANGE;
+
+      /* Got valid collation sequence values, add them as a new entry.
+	 However, if we have no collation elements, and the character set
+	 is single byte, the single byte character set that we
+	 build below suffices. */
+      if (nrules > 0 || dfa->mb_cur_max > 1)
+	{
+          /* Check the space of the arrays.  */
+          if (BE (*range_alloc == mbcset->nranges, 0))
+	    {
+	      /* There is not enough space, need realloc.  */
+	      uint32_t *new_array_start;
+	      uint32_t *new_array_end;
+	      int new_nranges;
+
+	      /* +1 in case of mbcset->nranges is 0.  */
+	      new_nranges = 2 * mbcset->nranges + 1;
+	      new_array_start = re_realloc (mbcset->range_starts, uint32_t,
+					    new_nranges);
+	      new_array_end = re_realloc (mbcset->range_ends, uint32_t,
+				          new_nranges);
+
+	      if (BE (new_array_start == NULL || new_array_end == NULL, 0))
+	        return REG_ESPACE;
+
+	      mbcset->range_starts = new_array_start;
+	      mbcset->range_ends = new_array_end;
+	      *range_alloc = new_nranges;
+	    }
+
+          mbcset->range_starts[mbcset->nranges] = start_collseq;
+          mbcset->range_ends[mbcset->nranges++] = end_collseq;
+	}
+
+      /* Build the table for single byte characters.  */
+      for (ch = 0; ch < SBC_MAX; ch++)
+	{
+	  uint32_t ch_collseq;
+	  /*
+	  if (MB_CUR_MAX == 1)
+	  */
+	  if (nrules == 0)
+	    ch_collseq = collseqmb[ch];
+	  else
+	    ch_collseq = __collseq_table_lookup (collseqwc, __btowc (ch));
+	  if (start_collseq <= ch_collseq && ch_collseq <= end_collseq)
+	    bitset_set (sbcset, ch);
+	}
+      return REG_NOERROR;
+    }
+
+  /* Local function for parse_bracket_exp used in _LIBC environement.
+     Build the collating element which is represented by NAME.
+     The result are written to MBCSET and SBCSET.
+     COLL_SYM_ALLOC is the allocated size of mbcset->coll_sym, is a
+     pointer argument sinse we may update it.  */
+
+  auto inline reg_errcode_t
+  __attribute ((always_inline))
+  build_collating_symbol (sbcset, mbcset, coll_sym_alloc, name)
+	 re_charset_t *mbcset;
+	 int *coll_sym_alloc;
+	 bitset_t sbcset;
+	 const unsigned char *name;
+    {
+      int32_t elem, idx;
+      size_t name_len = strlen ((const char *) name);
+      if (nrules != 0)
+	{
+	  elem = seek_collating_symbol_entry (name, name_len);
+	  if (symb_table[2 * elem] != 0)
+	    {
+	      /* We found the entry.  */
+	      idx = symb_table[2 * elem + 1];
+	      /* Skip the name of collating element name.  */
+	      idx += 1 + extra[idx];
+	    }
+	  else if (symb_table[2 * elem] == 0 && name_len == 1)
+	    {
+	      /* No valid character, treat it as a normal
+		 character.  */
+	      bitset_set (sbcset, name[0]);
+	      return REG_NOERROR;
+	    }
+	  else
+	    return REG_ECOLLATE;
+
+	  /* Got valid collation sequence, add it as a new entry.  */
+	  /* Check the space of the arrays.  */
+	  if (BE (*coll_sym_alloc == mbcset->ncoll_syms, 0))
+	    {
+	      /* Not enough, realloc it.  */
+	      /* +1 in case of mbcset->ncoll_syms is 0.  */
+	      int new_coll_sym_alloc = 2 * mbcset->ncoll_syms + 1;
+	      /* Use realloc since mbcset->coll_syms is NULL
+		 if *alloc == 0.  */
+	      int32_t *new_coll_syms = re_realloc (mbcset->coll_syms, int32_t,
+						   new_coll_sym_alloc);
+	      if (BE (new_coll_syms == NULL, 0))
+		return REG_ESPACE;
+	      mbcset->coll_syms = new_coll_syms;
+	      *coll_sym_alloc = new_coll_sym_alloc;
+	    }
+	  mbcset->coll_syms[mbcset->ncoll_syms++] = idx;
+	  return REG_NOERROR;
+	}
+      else
+	{
+	  if (BE (name_len != 1, 0))
+	    return REG_ECOLLATE;
+	  else
+	    {
+	      bitset_set (sbcset, name[0]);
+	      return REG_NOERROR;
+	    }
+	}
+    }
+#endif
+
+  re_token_t br_token;
+  re_bitset_ptr_t sbcset;
+#ifdef RE_ENABLE_I18N
+  re_charset_t *mbcset;
+  int coll_sym_alloc = 0, range_alloc = 0, mbchar_alloc = 0;
+  int equiv_class_alloc = 0, char_class_alloc = 0;
+#endif /* not RE_ENABLE_I18N */
+  int non_match = 0;
+  bin_tree_t *work_tree;
+  int token_len;
+  int first_round = 1;
+#ifdef _LIBC
+  collseqmb = (const unsigned char *)
+    _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQMB);
+  nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
+  if (nrules)
+    {
+      /*
+      if (MB_CUR_MAX > 1)
+      */
+      collseqwc = _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQWC);
+      table_size = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_SYMB_HASH_SIZEMB);
+      symb_table = (const int32_t *) _NL_CURRENT (LC_COLLATE,
+						  _NL_COLLATE_SYMB_TABLEMB);
+      extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE,
+						   _NL_COLLATE_SYMB_EXTRAMB);
+    }
+#endif
+  sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1);
+#ifdef RE_ENABLE_I18N
+  mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1);
+#endif /* RE_ENABLE_I18N */
+#ifdef RE_ENABLE_I18N
+  if (BE (sbcset == NULL || mbcset == NULL, 0))
+#else
+  if (BE (sbcset == NULL, 0))
+#endif /* RE_ENABLE_I18N */
+    {
+      *err = REG_ESPACE;
+      return NULL;
+    }
+
+  token_len = peek_token_bracket (token, regexp, syntax);
+  if (BE (token->type == END_OF_RE, 0))
+    {
+      *err = REG_BADPAT;
+      goto parse_bracket_exp_free_return;
+    }
+  if (token->type == OP_NON_MATCH_LIST)
+    {
+#ifdef RE_ENABLE_I18N
+      mbcset->non_match = 1;
+#endif /* not RE_ENABLE_I18N */
+      non_match = 1;
+      if (syntax & RE_HAT_LISTS_NOT_NEWLINE)
+	bitset_set (sbcset, '\0');
+      re_string_skip_bytes (regexp, token_len); /* Skip a token.  */
+      token_len = peek_token_bracket (token, regexp, syntax);
+      if (BE (token->type == END_OF_RE, 0))
+	{
+	  *err = REG_BADPAT;
+	  goto parse_bracket_exp_free_return;
+	}
+    }
+
+  /* We treat the first ']' as a normal character.  */
+  if (token->type == OP_CLOSE_BRACKET)
+    token->type = CHARACTER;
+
+  while (1)
+    {
+      bracket_elem_t start_elem, end_elem;
+      unsigned char start_name_buf[BRACKET_NAME_BUF_SIZE];
+      unsigned char end_name_buf[BRACKET_NAME_BUF_SIZE];
+      reg_errcode_t ret;
+      int token_len2 = 0, is_range_exp = 0;
+      re_token_t token2;
+
+      start_elem.opr.name = start_name_buf;
+      ret = parse_bracket_element (&start_elem, regexp, token, token_len, dfa,
+				   syntax, first_round);
+      if (BE (ret != REG_NOERROR, 0))
+	{
+	  *err = ret;
+	  goto parse_bracket_exp_free_return;
+	}
+      first_round = 0;
+
+      /* Get information about the next token.  We need it in any case.  */
+      token_len = peek_token_bracket (token, regexp, syntax);
+
+      /* Do not check for ranges if we know they are not allowed.  */
+      if (start_elem.type != CHAR_CLASS && start_elem.type != EQUIV_CLASS)
+	{
+	  if (BE (token->type == END_OF_RE, 0))
+	    {
+	      *err = REG_EBRACK;
+	      goto parse_bracket_exp_free_return;
+	    }
+	  if (token->type == OP_CHARSET_RANGE)
+	    {
+	      re_string_skip_bytes (regexp, token_len); /* Skip '-'.  */
+	      token_len2 = peek_token_bracket (&token2, regexp, syntax);
+	      if (BE (token2.type == END_OF_RE, 0))
+		{
+		  *err = REG_EBRACK;
+		  goto parse_bracket_exp_free_return;
+		}
+	      if (token2.type == OP_CLOSE_BRACKET)
+		{
+		  /* We treat the last '-' as a normal character.  */
+		  re_string_skip_bytes (regexp, -token_len);
+		  token->type = CHARACTER;
+		}
+	      else
+		is_range_exp = 1;
+	    }
+	}
+
+      if (is_range_exp == 1)
+	{
+	  end_elem.opr.name = end_name_buf;
+	  ret = parse_bracket_element (&end_elem, regexp, &token2, token_len2,
+				       dfa, syntax, 1);
+	  if (BE (ret != REG_NOERROR, 0))
+	    {
+	      *err = ret;
+	      goto parse_bracket_exp_free_return;
+	    }
+
+	  token_len = peek_token_bracket (token, regexp, syntax);
+
+#ifdef _LIBC
+	  *err = build_range_exp (sbcset, mbcset, &range_alloc,
+				  &start_elem, &end_elem);
+#else
+# ifdef RE_ENABLE_I18N
+	  *err = build_range_exp (sbcset,
+				  dfa->mb_cur_max > 1 ? mbcset : NULL,
+				  &range_alloc, &start_elem, &end_elem);
+# else
+	  *err = build_range_exp (sbcset, &start_elem, &end_elem);
+# endif
+#endif /* RE_ENABLE_I18N */
+	  if (BE (*err != REG_NOERROR, 0))
+	    goto parse_bracket_exp_free_return;
+	}
+      else
+	{
+	  switch (start_elem.type)
+	    {
+	    case SB_CHAR:
+	      bitset_set (sbcset, start_elem.opr.ch);
+	      break;
+#ifdef RE_ENABLE_I18N
+	    case MB_CHAR:
+	      /* Check whether the array has enough space.  */
+	      if (BE (mbchar_alloc == mbcset->nmbchars, 0))
+		{
+		  wchar_t *new_mbchars;
+		  /* Not enough, realloc it.  */
+		  /* +1 in case of mbcset->nmbchars is 0.  */
+		  mbchar_alloc = 2 * mbcset->nmbchars + 1;
+		  /* Use realloc since array is NULL if *alloc == 0.  */
+		  new_mbchars = re_realloc (mbcset->mbchars, wchar_t,
+					    mbchar_alloc);
+		  if (BE (new_mbchars == NULL, 0))
+		    goto parse_bracket_exp_espace;
+		  mbcset->mbchars = new_mbchars;
+		}
+	      mbcset->mbchars[mbcset->nmbchars++] = start_elem.opr.wch;
+	      break;
+#endif /* RE_ENABLE_I18N */
+	    case EQUIV_CLASS:
+	      *err = build_equiv_class (sbcset,
+#ifdef RE_ENABLE_I18N
+					mbcset, &equiv_class_alloc,
+#endif /* RE_ENABLE_I18N */
+					start_elem.opr.name);
+	      if (BE (*err != REG_NOERROR, 0))
+		goto parse_bracket_exp_free_return;
+	      break;
+	    case COLL_SYM:
+	      *err = build_collating_symbol (sbcset,
+#ifdef RE_ENABLE_I18N
+					     mbcset, &coll_sym_alloc,
+#endif /* RE_ENABLE_I18N */
+					     start_elem.opr.name);
+	      if (BE (*err != REG_NOERROR, 0))
+		goto parse_bracket_exp_free_return;
+	      break;
+	    case CHAR_CLASS:
+	      *err = build_charclass (regexp->trans, sbcset,
+#ifdef RE_ENABLE_I18N
+				      mbcset, &char_class_alloc,
+#endif /* RE_ENABLE_I18N */
+				      start_elem.opr.name, syntax);
+	      if (BE (*err != REG_NOERROR, 0))
+	       goto parse_bracket_exp_free_return;
+	      break;
+	    default:
+	      assert (0);
+	      break;
+	    }
+	}
+      if (BE (token->type == END_OF_RE, 0))
+	{
+	  *err = REG_EBRACK;
+	  goto parse_bracket_exp_free_return;
+	}
+      if (token->type == OP_CLOSE_BRACKET)
+	break;
+    }
+
+  re_string_skip_bytes (regexp, token_len); /* Skip a token.  */
+
+  /* If it is non-matching list.  */
+  if (non_match)
+    bitset_not (sbcset);
+
+#ifdef RE_ENABLE_I18N
+  /* Ensure only single byte characters are set.  */
+  if (dfa->mb_cur_max > 1)
+    bitset_mask (sbcset, dfa->sb_char);
+
+  if (mbcset->nmbchars || mbcset->ncoll_syms || mbcset->nequiv_classes
+      || mbcset->nranges || (dfa->mb_cur_max > 1 && (mbcset->nchar_classes
+						     || mbcset->non_match)))
+    {
+      bin_tree_t *mbc_tree;
+      int sbc_idx;
+      /* Build a tree for complex bracket.  */
+      dfa->has_mb_node = 1;
+      br_token.type = COMPLEX_BRACKET;
+      br_token.opr.mbcset = mbcset;
+      mbc_tree = create_token_tree (dfa, NULL, NULL, &br_token);
+      if (BE (mbc_tree == NULL, 0))
+	goto parse_bracket_exp_espace;
+      for (sbc_idx = 0; sbc_idx < BITSET_WORDS; ++sbc_idx)
+	if (sbcset[sbc_idx])
+	  break;
+      /* If there are no bits set in sbcset, there is no point
+	 of having both SIMPLE_BRACKET and COMPLEX_BRACKET.  */
+      if (sbc_idx < BITSET_WORDS)
+	{
+          /* Build a tree for simple bracket.  */
+          br_token.type = SIMPLE_BRACKET;
+          br_token.opr.sbcset = sbcset;
+          work_tree = create_token_tree (dfa, NULL, NULL, &br_token);
+          if (BE (work_tree == NULL, 0))
+            goto parse_bracket_exp_espace;
+
+          /* Then join them by ALT node.  */
+          work_tree = create_tree (dfa, work_tree, mbc_tree, OP_ALT);
+          if (BE (work_tree == NULL, 0))
+            goto parse_bracket_exp_espace;
+	}
+      else
+	{
+	  re_free (sbcset);
+	  work_tree = mbc_tree;
+	}
+    }
+  else
+#endif /* not RE_ENABLE_I18N */
+    {
+#ifdef RE_ENABLE_I18N
+      free_charset (mbcset);
+#endif
+      /* Build a tree for simple bracket.  */
+      br_token.type = SIMPLE_BRACKET;
+      br_token.opr.sbcset = sbcset;
+      work_tree = create_token_tree (dfa, NULL, NULL, &br_token);
+      if (BE (work_tree == NULL, 0))
+        goto parse_bracket_exp_espace;
+    }
+  return work_tree;
+
+ parse_bracket_exp_espace:
+  *err = REG_ESPACE;
+ parse_bracket_exp_free_return:
+  re_free (sbcset);
+#ifdef RE_ENABLE_I18N
+  free_charset (mbcset);
+#endif /* RE_ENABLE_I18N */
+  return NULL;
+}
+
+/* Parse an element in the bracket expression.  */
+
+static reg_errcode_t
+parse_bracket_element (bracket_elem_t *elem, re_string_t *regexp,
+		       re_token_t *token, int token_len, re_dfa_t *dfa,
+		       reg_syntax_t syntax, int accept_hyphen)
+{
+#ifdef RE_ENABLE_I18N
+  int cur_char_size;
+  cur_char_size = re_string_char_size_at (regexp, re_string_cur_idx (regexp));
+  if (cur_char_size > 1)
+    {
+      elem->type = MB_CHAR;
+      elem->opr.wch = re_string_wchar_at (regexp, re_string_cur_idx (regexp));
+      re_string_skip_bytes (regexp, cur_char_size);
+      return REG_NOERROR;
+    }
+#endif /* RE_ENABLE_I18N */
+  re_string_skip_bytes (regexp, token_len); /* Skip a token.  */
+  if (token->type == OP_OPEN_COLL_ELEM || token->type == OP_OPEN_CHAR_CLASS
+      || token->type == OP_OPEN_EQUIV_CLASS)
+    return parse_bracket_symbol (elem, regexp, token);
+  if (BE (token->type == OP_CHARSET_RANGE, 0) && !accept_hyphen)
+    {
+      /* A '-' must only appear as anything but a range indicator before
+	 the closing bracket.  Everything else is an error.  */
+      re_token_t token2;
+      (void) peek_token_bracket (&token2, regexp, syntax);
+      if (token2.type != OP_CLOSE_BRACKET)
+	/* The actual error value is not standardized since this whole
+	   case is undefined.  But ERANGE makes good sense.  */
+	return REG_ERANGE;
+    }
+  elem->type = SB_CHAR;
+  elem->opr.ch = token->opr.c;
+  return REG_NOERROR;
+}
+
+/* Parse a bracket symbol in the bracket expression.  Bracket symbols are
+   such as [:<character_class>:], [.<collating_element>.], and
+   [=<equivalent_class>=].  */
+
+static reg_errcode_t
+parse_bracket_symbol (bracket_elem_t *elem, re_string_t *regexp,
+		      re_token_t *token)
+{
+  unsigned char ch, delim = token->opr.c;
+  int i = 0;
+  if (re_string_eoi(regexp))
+    return REG_EBRACK;
+  for (;; ++i)
+    {
+      if (i >= BRACKET_NAME_BUF_SIZE)
+	return REG_EBRACK;
+      if (token->type == OP_OPEN_CHAR_CLASS)
+	ch = re_string_fetch_byte_case (regexp);
+      else
+	ch = re_string_fetch_byte (regexp);
+      if (re_string_eoi(regexp))
+	return REG_EBRACK;
+      if (ch == delim && re_string_peek_byte (regexp, 0) == ']')
+	break;
+      elem->opr.name[i] = ch;
+    }
+  re_string_skip_bytes (regexp, 1);
+  elem->opr.name[i] = '\0';
+  switch (token->type)
+    {
+    case OP_OPEN_COLL_ELEM:
+      elem->type = COLL_SYM;
+      break;
+    case OP_OPEN_EQUIV_CLASS:
+      elem->type = EQUIV_CLASS;
+      break;
+    case OP_OPEN_CHAR_CLASS:
+      elem->type = CHAR_CLASS;
+      break;
+    default:
+      break;
+    }
+  return REG_NOERROR;
+}
+
+  /* Helper function for parse_bracket_exp.
+     Build the equivalence class which is represented by NAME.
+     The result are written to MBCSET and SBCSET.
+     EQUIV_CLASS_ALLOC is the allocated size of mbcset->equiv_classes,
+     is a pointer argument sinse we may update it.  */
+
+static reg_errcode_t
+#ifdef RE_ENABLE_I18N
+build_equiv_class (bitset_t sbcset, re_charset_t *mbcset,
+		   int *equiv_class_alloc, const unsigned char *name)
+#else /* not RE_ENABLE_I18N */
+build_equiv_class (bitset_t sbcset, const unsigned char *name)
+#endif /* not RE_ENABLE_I18N */
+{
+#ifdef _LIBC
+  uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
+  if (nrules != 0)
+    {
+      const int32_t *table, *indirect;
+      const unsigned char *weights, *extra, *cp;
+      unsigned char char_buf[2];
+      int32_t idx1, idx2;
+      unsigned int ch;
+      size_t len;
+      /* This #include defines a local function!  */
+# include <locale/weight.h>
+      /* Calculate the index for equivalence class.  */
+      cp = name;
+      table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB);
+      weights = (const unsigned char *) _NL_CURRENT (LC_COLLATE,
+					       _NL_COLLATE_WEIGHTMB);
+      extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE,
+						   _NL_COLLATE_EXTRAMB);
+      indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE,
+						_NL_COLLATE_INDIRECTMB);
+      idx1 = findidx (&cp);
+      if (BE (idx1 == 0 || cp < name + strlen ((const char *) name), 0))
+	/* This isn't a valid character.  */
+	return REG_ECOLLATE;
+
+      /* Build single byte matcing table for this equivalence class.  */
+      char_buf[1] = (unsigned char) '\0';
+      len = weights[idx1];
+      for (ch = 0; ch < SBC_MAX; ++ch)
+	{
+	  char_buf[0] = ch;
+	  cp = char_buf;
+	  idx2 = findidx (&cp);
+/*
+	  idx2 = table[ch];
+*/
+	  if (idx2 == 0)
+	    /* This isn't a valid character.  */
+	    continue;
+	  if (len == weights[idx2])
+	    {
+	      int cnt = 0;
+	      while (cnt <= len &&
+		     weights[idx1 + 1 + cnt] == weights[idx2 + 1 + cnt])
+		++cnt;
+
+	      if (cnt > len)
+		bitset_set (sbcset, ch);
+	    }
+	}
+      /* Check whether the array has enough space.  */
+      if (BE (*equiv_class_alloc == mbcset->nequiv_classes, 0))
+	{
+	  /* Not enough, realloc it.  */
+	  /* +1 in case of mbcset->nequiv_classes is 0.  */
+	  int new_equiv_class_alloc = 2 * mbcset->nequiv_classes + 1;
+	  /* Use realloc since the array is NULL if *alloc == 0.  */
+	  int32_t *new_equiv_classes = re_realloc (mbcset->equiv_classes,
+						   int32_t,
+						   new_equiv_class_alloc);
+	  if (BE (new_equiv_classes == NULL, 0))
+	    return REG_ESPACE;
+	  mbcset->equiv_classes = new_equiv_classes;
+	  *equiv_class_alloc = new_equiv_class_alloc;
+	}
+      mbcset->equiv_classes[mbcset->nequiv_classes++] = idx1;
+    }
+  else
+#endif /* _LIBC */
+    {
+      if (BE (strlen ((const char *) name) != 1, 0))
+	return REG_ECOLLATE;
+      bitset_set (sbcset, *name);
+    }
+  return REG_NOERROR;
+}
+
+  /* Helper function for parse_bracket_exp.
+     Build the character class which is represented by NAME.
+     The result are written to MBCSET and SBCSET.
+     CHAR_CLASS_ALLOC is the allocated size of mbcset->char_classes,
+     is a pointer argument sinse we may update it.  */
+
+static reg_errcode_t
+#ifdef RE_ENABLE_I18N
+build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset,
+		 re_charset_t *mbcset, int *char_class_alloc,
+		 const unsigned char *class_name, reg_syntax_t syntax)
+#else /* not RE_ENABLE_I18N */
+build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset,
+		 const unsigned char *class_name, reg_syntax_t syntax)
+#endif /* not RE_ENABLE_I18N */
+{
+  int i;
+  const char *name = (const char *) class_name;
+
+  /* In case of REG_ICASE "upper" and "lower" match the both of
+     upper and lower cases.  */
+  if ((syntax & RE_ICASE)
+      && (strcmp (name, "upper") == 0 || strcmp (name, "lower") == 0))
+    name = "alpha";
+
+#ifdef RE_ENABLE_I18N
+  /* Check the space of the arrays.  */
+  if (BE (*char_class_alloc == mbcset->nchar_classes, 0))
+    {
+      /* Not enough, realloc it.  */
+      /* +1 in case of mbcset->nchar_classes is 0.  */
+      int new_char_class_alloc = 2 * mbcset->nchar_classes + 1;
+      /* Use realloc since array is NULL if *alloc == 0.  */
+      wctype_t *new_char_classes = re_realloc (mbcset->char_classes, wctype_t,
+					       new_char_class_alloc);
+      if (BE (new_char_classes == NULL, 0))
+	return REG_ESPACE;
+      mbcset->char_classes = new_char_classes;
+      *char_class_alloc = new_char_class_alloc;
+    }
+  mbcset->char_classes[mbcset->nchar_classes++] = __wctype (name);
+#endif /* RE_ENABLE_I18N */
+
+#define BUILD_CHARCLASS_LOOP(ctype_func)	\
+  do {						\
+    if (BE (trans != NULL, 0))			\
+      {						\
+	for (i = 0; i < SBC_MAX; ++i)		\
+  	  if (ctype_func (i))			\
+	    bitset_set (sbcset, trans[i]);	\
+      }						\
+    else					\
+      {						\
+	for (i = 0; i < SBC_MAX; ++i)		\
+  	  if (ctype_func (i))			\
+	    bitset_set (sbcset, i);		\
+      }						\
+  } while (0)
+
+  if (strcmp (name, "alnum") == 0)
+    BUILD_CHARCLASS_LOOP (isalnum);
+  else if (strcmp (name, "cntrl") == 0)
+    BUILD_CHARCLASS_LOOP (iscntrl);
+  else if (strcmp (name, "lower") == 0)
+    BUILD_CHARCLASS_LOOP (islower);
+  else if (strcmp (name, "space") == 0)
+    BUILD_CHARCLASS_LOOP (isspace);
+  else if (strcmp (name, "alpha") == 0)
+    BUILD_CHARCLASS_LOOP (isalpha);
+  else if (strcmp (name, "digit") == 0)
+    BUILD_CHARCLASS_LOOP (isdigit);
+  else if (strcmp (name, "print") == 0)
+    BUILD_CHARCLASS_LOOP (isprint);
+  else if (strcmp (name, "upper") == 0)
+    BUILD_CHARCLASS_LOOP (isupper);
+  else if (strcmp (name, "blank") == 0)
+    BUILD_CHARCLASS_LOOP (isblank);
+  else if (strcmp (name, "graph") == 0)
+    BUILD_CHARCLASS_LOOP (isgraph);
+  else if (strcmp (name, "punct") == 0)
+    BUILD_CHARCLASS_LOOP (ispunct);
+  else if (strcmp (name, "xdigit") == 0)
+    BUILD_CHARCLASS_LOOP (isxdigit);
+  else
+    return REG_ECTYPE;
+
+  return REG_NOERROR;
+}
+
+static bin_tree_t *
+build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans,
+		    const unsigned char *class_name,
+		    const unsigned char *extra, int non_match,
+		    reg_errcode_t *err)
+{
+  re_bitset_ptr_t sbcset;
+#ifdef RE_ENABLE_I18N
+  re_charset_t *mbcset;
+  int alloc = 0;
+#endif /* not RE_ENABLE_I18N */
+  reg_errcode_t ret;
+  re_token_t br_token;
+  bin_tree_t *tree;
+
+  sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1);
+#ifdef RE_ENABLE_I18N
+  mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1);
+#endif /* RE_ENABLE_I18N */
+
+#ifdef RE_ENABLE_I18N
+  if (BE (sbcset == NULL || mbcset == NULL, 0))
+#else /* not RE_ENABLE_I18N */
+  if (BE (sbcset == NULL, 0))
+#endif /* not RE_ENABLE_I18N */
+    {
+      *err = REG_ESPACE;
+      return NULL;
+    }
+
+  if (non_match)
+    {
+#ifdef RE_ENABLE_I18N
+      /*
+      if (syntax & RE_HAT_LISTS_NOT_NEWLINE)
+	bitset_set(cset->sbcset, '\0');
+      */
+      mbcset->non_match = 1;
+#endif /* not RE_ENABLE_I18N */
+    }
+
+  /* We don't care the syntax in this case.  */
+  ret = build_charclass (trans, sbcset,
+#ifdef RE_ENABLE_I18N
+			 mbcset, &alloc,
+#endif /* RE_ENABLE_I18N */
+			 class_name, 0);
+
+  if (BE (ret != REG_NOERROR, 0))
+    {
+      re_free (sbcset);
+#ifdef RE_ENABLE_I18N
+      free_charset (mbcset);
+#endif /* RE_ENABLE_I18N */
+      *err = ret;
+      return NULL;
+    }
+  /* \w match '_' also.  */
+  for (; *extra; extra++)
+    bitset_set (sbcset, *extra);
+
+  /* If it is non-matching list.  */
+  if (non_match)
+    bitset_not (sbcset);
+
+#ifdef RE_ENABLE_I18N
+  /* Ensure only single byte characters are set.  */
+  if (dfa->mb_cur_max > 1)
+    bitset_mask (sbcset, dfa->sb_char);
+#endif
+
+  /* Build a tree for simple bracket.  */
+  br_token.type = SIMPLE_BRACKET;
+  br_token.opr.sbcset = sbcset;
+  tree = create_token_tree (dfa, NULL, NULL, &br_token);
+  if (BE (tree == NULL, 0))
+    goto build_word_op_espace;
+
+#ifdef RE_ENABLE_I18N
+  if (dfa->mb_cur_max > 1)
+    {
+      bin_tree_t *mbc_tree;
+      /* Build a tree for complex bracket.  */
+      br_token.type = COMPLEX_BRACKET;
+      br_token.opr.mbcset = mbcset;
+      dfa->has_mb_node = 1;
+      mbc_tree = create_token_tree (dfa, NULL, NULL, &br_token);
+      if (BE (mbc_tree == NULL, 0))
+	goto build_word_op_espace;
+      /* Then join them by ALT node.  */
+      tree = create_tree (dfa, tree, mbc_tree, OP_ALT);
+      if (BE (mbc_tree != NULL, 1))
+	return tree;
+    }
+  else
+    {
+      free_charset (mbcset);
+      return tree;
+    }
+#else /* not RE_ENABLE_I18N */
+  return tree;
+#endif /* not RE_ENABLE_I18N */
+
+ build_word_op_espace:
+  re_free (sbcset);
+#ifdef RE_ENABLE_I18N
+  free_charset (mbcset);
+#endif /* RE_ENABLE_I18N */
+  *err = REG_ESPACE;
+  return NULL;
+}
+
+/* This is intended for the expressions like "a{1,3}".
+   Fetch a number from `input', and return the number.
+   Return -1, if the number field is empty like "{,1}".
+   Return -2, If an error is occured.  */
+
+static int
+fetch_number (re_string_t *input, re_token_t *token, reg_syntax_t syntax)
+{
+  int num = -1;
+  unsigned char c;
+  while (1)
+    {
+      fetch_token (token, input, syntax);
+      c = token->opr.c;
+      if (BE (token->type == END_OF_RE, 0))
+	return -2;
+      if (token->type == OP_CLOSE_DUP_NUM || c == ',')
+	break;
+      num = ((token->type != CHARACTER || c < '0' || '9' < c || num == -2)
+	     ? -2 : ((num == -1) ? c - '0' : num * 10 + c - '0'));
+      num = (num > RE_DUP_MAX) ? -2 : num;
+    }
+  return num;
+}
+
+#ifdef RE_ENABLE_I18N
+static void
+free_charset (re_charset_t *cset)
+{
+  re_free (cset->mbchars);
+# ifdef _LIBC
+  re_free (cset->coll_syms);
+  re_free (cset->equiv_classes);
+  re_free (cset->range_starts);
+  re_free (cset->range_ends);
+# endif
+  re_free (cset->char_classes);
+  re_free (cset);
+}
+#endif /* RE_ENABLE_I18N */
+
+/* Functions for binary tree operation.  */
+
+/* Create a tree node.  */
+
+static bin_tree_t *
+create_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right,
+	     re_token_type_t type)
+{
+  re_token_t t;
+  t.type = type;
+  return create_token_tree (dfa, left, right, &t);
+}
+
+static bin_tree_t *
+create_token_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right,
+		   const re_token_t *token)
+{
+  bin_tree_t *tree;
+  if (BE (dfa->str_tree_storage_idx == BIN_TREE_STORAGE_SIZE, 0))
+    {
+      bin_tree_storage_t *storage = re_malloc (bin_tree_storage_t, 1);
+
+      if (storage == NULL)
+	return NULL;
+      storage->next = dfa->str_tree_storage;
+      dfa->str_tree_storage = storage;
+      dfa->str_tree_storage_idx = 0;
+    }
+  tree = &dfa->str_tree_storage->data[dfa->str_tree_storage_idx++];
+
+  tree->parent = NULL;
+  tree->left = left;
+  tree->right = right;
+  tree->token = *token;
+  tree->token.duplicated = 0;
+  tree->token.opt_subexp = 0;
+  tree->first = NULL;
+  tree->next = NULL;
+  tree->node_idx = -1;
+
+  if (left != NULL)
+    left->parent = tree;
+  if (right != NULL)
+    right->parent = tree;
+  return tree;
+}
+
+/* Mark the tree SRC as an optional subexpression.
+   To be called from preorder or postorder.  */
+
+static reg_errcode_t
+mark_opt_subexp (void *extra, bin_tree_t *node)
+{
+  int idx = (int) (long) extra;
+  if (node->token.type == SUBEXP && node->token.opr.idx == idx)
+    node->token.opt_subexp = 1;
+
+  return REG_NOERROR;
+}
+
+/* Free the allocated memory inside NODE. */
+
+static void
+free_token (re_token_t *node)
+{
+#ifdef RE_ENABLE_I18N
+  if (node->type == COMPLEX_BRACKET && node->duplicated == 0)
+    free_charset (node->opr.mbcset);
+  else
+#endif /* RE_ENABLE_I18N */
+    if (node->type == SIMPLE_BRACKET && node->duplicated == 0)
+      re_free (node->opr.sbcset);
+}
+
+/* Worker function for tree walking.  Free the allocated memory inside NODE
+   and its children. */
+
+static reg_errcode_t
+free_tree (void *extra, bin_tree_t *node)
+{
+  free_token (&node->token);
+  return REG_NOERROR;
+}
+
+
+/* Duplicate the node SRC, and return new node.  This is a preorder
+   visit similar to the one implemented by the generic visitor, but
+   we need more infrastructure to maintain two parallel trees --- so,
+   it's easier to duplicate.  */
+
+static bin_tree_t *
+duplicate_tree (const bin_tree_t *root, re_dfa_t *dfa)
+{
+  const bin_tree_t *node;
+  bin_tree_t *dup_root;
+  bin_tree_t **p_new = &dup_root, *dup_node = root->parent;
+
+  for (node = root; ; )
+    {
+      /* Create a new tree and link it back to the current parent.  */
+      *p_new = create_token_tree (dfa, NULL, NULL, &node->token);
+      if (*p_new == NULL)
+	return NULL;
+      (*p_new)->parent = dup_node;
+      (*p_new)->token.duplicated = 1;
+      dup_node = *p_new;
+
+      /* Go to the left node, or up and to the right.  */
+      if (node->left)
+	{
+	  node = node->left;
+	  p_new = &dup_node->left;
+	}
+      else
+	{
+	  const bin_tree_t *prev = NULL;
+	  while (node->right == prev || node->right == NULL)
+	    {
+	      prev = node;
+	      node = node->parent;
+	      dup_node = dup_node->parent;
+	      if (!node)
+	        return dup_root;
+	    }
+	  node = node->right;
+	  p_new = &dup_node->right;
+	}
+    }
+}
diff --git a/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/regex.3 b/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/regex.3
new file mode 100755
index 0000000000000000000000000000000000000000..830928573de0b982d014a3e60ff197310398fa9a
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/regex.3
@@ -0,0 +1,302 @@
+.\" Copyright (C), 1995, Graeme W. Wilford. (Wilf.)
+.\"
+.\" Permission is granted to make and distribute verbatim copies of this
+.\" manual provided the copyright notice and this permission notice are
+.\" preserved on all copies.
+.\"
+.\" Permission is granted to copy and distribute modified versions of this
+.\" manual under the conditions for verbatim copying, provided that the
+.\" entire resulting derived work is distributed under the terms of a
+.\" permission notice identical to this one.
+.\" 
+.\" Since the Linux kernel and libraries are constantly changing, this
+.\" manual page may be incorrect or out-of-date.  The author(s) assume no
+.\" responsibility for errors or omissions, or for damages resulting from
+.\" the use of the information contained herein.  The author(s) may not
+.\" have taken the same level of care in the production of this manual,
+.\" which is licensed free of charge, as they might when working
+.\" professionally.
+.\" 
+.\" Formatted or processed versions of this manual, if unaccompanied by
+.\" the source, must acknowledge the copyright and authors of this work.
+.\"
+.\" Wed Jun 14 16:10:28 BST 1995 Wilf. (G.Wilford@ee.surrey.ac.uk)
+.\" Tiny change in formatting - aeb, 950812
+.\" Modified 8 May 1998 by Joseph S. Myers (jsm28@cam.ac.uk)
+.\" 2007-04-30  Keith Marshall  (keithmarshall@users.sourceforge.net)
+.\"   Adapt TH for inclusion in MinGW distribution kit
+.\"
+.\" show the synopsis section nicely
+.de xx
+.in \\n(INu+\\$1
+.ti -\\$1
+..
+.TH REGEX 3 2007-04-30 MinGW "MinGW Programmer's Manual"
+.SH NAME
+regcomp, regexec, regerror, regfree \- POSIX regex functions
+.SH SYNOPSIS
+.B #include <sys/types.h>
+.br
+.B #include <regex.h>
+.sp
+.xx \w'\fBint\ regcomp(\fR'u
+.BI "int\ regcomp(regex_t *" preg ", const char *" regex , 
+.BI "int " cflags );
+.xx \w'\fBint\ regexec(\fR'u
+.BI "int\ regexec(const regex_t *" preg ", const char *" string ,
+.BI "size_t " nmatch ", regmatch_t " pmatch[] , 
+.BI "int " eflags );
+.xx \w'\fBsize_t\ regerror(\fR'u
+.BI "size_t\ regerror(int " errcode , 
+.BI "const regex_t *" preg ", char *" errbuf , 
+.BI "size_t " errbuf_size );
+.xx \w'\fBvoid\ regfree(\fR'
+.BI "void\ regfree(regex_t *" preg );
+.SH "POSIX REGEX COMPILING"
+.BR regcomp ()
+is used to compile a regular expression into a form that is suitable
+for subsequent 
+.BR regexec ()
+searches.
+
+.BR regcomp ()
+is supplied with 
+.IR preg , 
+a pointer to a pattern buffer storage area; 
+.IR regex ,
+a pointer to the null-terminated string and
+.IR cflags ,
+flags used to determine the type of compilation.
+
+All regular expression searching must be done via a compiled pattern
+buffer, thus 
+.BR regexec ()
+must always be supplied with the address of a 
+.BR regcomp ()
+initialized pattern buffer.
+
+.I cflags 
+may be the 
+.RB bitwise- or
+of one or more of the following:
+.TP 
+.B REG_EXTENDED
+Use 
+.B POSIX
+Extended Regular Expression syntax when interpreting 
+.IR regex .
+If not set,
+.B POSIX
+Basic Regular Expression syntax is used.
+.TP 
+.B REG_ICASE
+Do not differentiate case.  Subsequent 
+.BR regexec ()
+searches using this pattern buffer will be case insensitive.
+.TP 
+.B REG_NOSUB
+Support for substring addressing of matches is not required.
+The
+.I nmatch
+and
+.I pmatch
+parameters to 
+.BR regexec ()
+are ignored if the pattern buffer supplied was compiled with this flag set.
+.TP 
+.B REG_NEWLINE
+Match-any-character operators don't match a newline.
+
+A non-matching list 
+.RB ( [^...] )
+not containing a newline does not match a newline.
+    
+Match-beginning-of-line operator
+.RB ( ^ )
+matches the empty string immediately after a newline, regardless of
+whether
+.IR eflags ,
+the execution flags of
+.BR regexec (),
+contains 
+.BR REG_NOTBOL .
+
+Match-end-of-line operator 
+.RB ( $ )
+matches the empty string immediately before a newline, regardless of
+whether 
+.IR eflags 
+contains
+.BR REG_NOTEOL .
+.SH "POSIX REGEX MATCHING"
+.BR regexec ()
+is used to match a null-terminated string
+against the precompiled pattern buffer, 
+.IR preg .
+.I nmatch
+and
+.I pmatch
+are used to provide information regarding the location of any matches.  
+.I eflags
+may be the 
+.RB bitwise- or
+of one or both of 
+.B REG_NOTBOL
+and
+.B REG_NOTEOL 
+which cause changes in matching behaviour described below.
+.TP
+.B REG_NOTBOL
+The match-beginning-of-line operator always fails to match (but see the
+compilation flag
+.B REG_NEWLINE 
+above)
+This flag may be used when different portions of a string are passed to 
+.BR regexec ()
+and the beginning of the string should not be interpreted as the
+beginning of the line.
+.TP
+.B REG_NOTEOL
+The match-end-of-line operator always fails to match (but see the
+compilation flag
+.B REG_NEWLINE
+above)
+.SS "BYTE OFFSETS"
+Unless 
+.B REG_NOSUB
+was set for the compilation of the pattern buffer, it is possible to
+obtain substring match addressing information. 
+.I pmatch
+must be dimensioned to have at least
+.I nmatch
+elements.
+These are filled in by
+.BR regexec ()
+with substring match addresses.  Any unused structure elements
+will contain the value \-1.
+
+The 
+.B regmatch_t 
+structure which is the type of
+.I pmatch
+is defined in
+.IR regex.h .
+
+.RS
+.B typedef struct
+.br
+.B {
+.br
+.BI "  regoff_t " rm_so ;
+.br
+.BI "  regoff_t " rm_eo ;
+.br
+.B }
+.B regmatch_t;
+.RE
+
+Each 
+.I rm_so
+element that is not \-1 indicates the start offset of the next largest
+substring match within the string.  The relative 
+.I rm_eo 
+element indicates the end offset of the match.
+.SH "POSIX ERROR REPORTING"
+.BR regerror ()
+is used to turn the error codes that can be returned by both 
+.BR regcomp ()
+and
+.BR regexec ()
+into error message strings.
+
+.BR regerror ()
+is passed the error code,
+.IR errcode ,
+the pattern buffer,
+.IR preg ,
+a pointer to a character string buffer,
+.IR errbuf ,
+and the size of the string buffer,
+.IR errbuf_size .
+It returns the size of the
+.I errbuf
+required to contain the null-terminated error message string.  If both
+.I errbuf
+and
+.I errbuf_size
+are non-zero, 
+.I errbuf
+is filled in with the first 
+.I "errbuf_size \- 1"
+characters of the error message and a terminating null.
+.SH "POSIX PATTERN BUFFER FREEING"
+Supplying 
+.BR regfree ()
+with a precompiled pattern buffer,
+.I preg
+will free the memory allocated to the pattern buffer by the compiling
+process,
+.BR regcomp ().
+.SH "RETURN VALUE"
+.BR regcomp ()
+returns zero for a successful compilation or an error code for failure.
+
+.BR regexec ()
+returns zero for a successful match or 
+.B REG_NOMATCH
+for failure.
+.SH ERRORS
+The following errors can be returned by 
+.BR regcomp ():
+.TP
+.B REG_BADBR
+Invalid use of back reference operator.
+.TP
+.B REG_BADPAT
+Invalid use of pattern operators such as group or list.
+.TP
+.B REG_BADRPT
+Invalid use of repetition operators such as using 
+.RB ` * '
+as the first character.
+.TP
+.B REG_EBRACE
+Un-matched brace interval operators.
+.TP
+.B REG_EBRACK
+Un-matched bracket list operators.
+.TP
+.B REG_ECOLLATE
+Invalid collating element.
+.TP
+.B REG_ECTYPE
+Unknown character class name.
+.TP
+.B REG_EEND
+Non specific error.  This is not defined by POSIX.2.
+.TP
+.B REG_EESCAPE
+Trailing backslash.
+.TP
+.B REG_EPAREN
+Un-matched parenthesis group operators.
+.TP
+.B REG_ERANGE
+Invalid use of the range operator, eg. the ending point of the range
+occurs prior to the starting point.
+.TP
+.B REG_ESIZE
+Compiled regular expression requires a pattern buffer larger than 64Kb.
+This is not defined by POSIX.2.
+.TP
+.B REG_ESPACE
+The regex routines ran out of memory.
+.TP
+.B REG_ESUBREG
+Invalid back reference to a subexpression.
+.SH "CONFORMING TO"
+POSIX.2
+.SH "SEE ALSO"
+.BR regex (7),
+GNU regex manual
+ 
diff --git a/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/regex.7 b/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/regex.7
new file mode 100755
index 0000000000000000000000000000000000000000..0584d8f77e35e604cd7c16d4506c636496ce3f83
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/regex.7
@@ -0,0 +1,273 @@
+.\" From Henry Spencer's regex package (as found in the apache
+.\" distribution). The package carries the following copyright:
+.\"
+.\"  Copyright 1992, 1993, 1994 Henry Spencer.  All rights reserved.
+.\"  This software is not subject to any license of the American Telephone
+.\"  and Telegraph Company or of the Regents of the University of California.
+.\"  
+.\"  Permission is granted to anyone to use this software for any purpose
+.\"  on any computer system, and to alter it and redistribute it, subject
+.\"  to the following restrictions:
+.\"  
+.\"  1. The author is not responsible for the consequences of use of this
+.\"     software, no matter how awful, even if they arise from flaws in it.
+.\"  
+.\"  2. The origin of this software must not be misrepresented, either by
+.\"     explicit claim or by omission.  Since few users ever read sources,
+.\"     credits must appear in the documentation.
+.\"  
+.\"  3. Altered versions must be plainly marked as such, and must not be
+.\"     misrepresented as being the original software.  Since few users
+.\"     ever read sources, credits must appear in the documentation.
+.\"  
+.\"  4. This notice may not be removed or altered.
+.\" 
+.\" In order to comply with `credits must appear in the documentation'
+.\" I added an AUTHOR paragraph below - aeb.
+.\"
+.\" In the default nroff environment there is no dagger \(dg.
+.\"
+.\" 2005-05-11 Removed discussion of `[[:<:]]' and `[[:>:]]', which
+.\" 	appear not to be in the glibc implementation of regcomp
+.\"
+.\" 2007-04-30  Keith Marshall  (keithmarshall@users.sourceforge.net)
+.\"   Adapt TH for inclusion in MinGW distribution kit
+.\"
+.ie t .ds dg \(dg
+.el .ds dg (!)
+.TH REGEX 7 2007-04-30 MinGW "MinGW Reference Manual"
+.SH NAME
+regex \- POSIX 1003.2 regular expressions
+.SH DESCRIPTION
+Regular expressions (``RE''s),
+as defined in POSIX 1003.2, come in two forms:
+modern REs (roughly those of
+.IR egrep ;
+1003.2 calls these ``extended'' REs)
+and obsolete REs (roughly those of
+.BR ed (1);
+1003.2 ``basic'' REs).
+Obsolete REs mostly exist for backward compatibility in some old programs;
+they will be discussed at the end.
+1003.2 leaves some aspects of RE syntax and semantics open;
+`\*(dg' marks decisions on these aspects that
+may not be fully portable to other 1003.2 implementations.
+.PP
+A (modern) RE is one\*(dg or more non-empty\*(dg \fIbranches\fR,
+separated by `|'.
+It matches anything that matches one of the branches.
+.PP
+A branch is one\*(dg or more \fIpieces\fR, concatenated.
+It matches a match for the first, followed by a match for the second, etc.
+.PP
+A piece is an \fIatom\fR possibly followed
+by a single\*(dg `*', `+', `?', or \fIbound\fR.
+An atom followed by `*' matches a sequence of 0 or more matches of the atom.
+An atom followed by `+' matches a sequence of 1 or more matches of the atom.
+An atom followed by `?' matches a sequence of 0 or 1 matches of the atom.
+.PP
+A \fIbound\fR is `{' followed by an unsigned decimal integer,
+possibly followed by `,'
+possibly followed by another unsigned decimal integer,
+always followed by `}'.
+The integers must lie between 0 and RE_DUP_MAX (255\*(dg) inclusive,
+and if there are two of them, the first may not exceed the second.
+An atom followed by a bound containing one integer \fIi\fR
+and no comma matches
+a sequence of exactly \fIi\fR matches of the atom.
+An atom followed by a bound
+containing one integer \fIi\fR and a comma matches
+a sequence of \fIi\fR or more matches of the atom.
+An atom followed by a bound
+containing two integers \fIi\fR and \fIj\fR matches
+a sequence of \fIi\fR through \fIj\fR (inclusive) matches of the atom.
+.PP
+An atom is a regular expression enclosed in `()' (matching a match for the
+regular expression),
+an empty set of `()' (matching the null string)\*(dg,
+a \fIbracket expression\fR (see below), `.'
+(matching any single character), `^' (matching the null string at the
+beginning of a line), `$' (matching the null string at the
+end of a line), a `\e' followed by one of the characters
+`^.[$()|*+?{\e'
+(matching that character taken as an ordinary character),
+a `\e' followed by any other character\*(dg
+(matching that character taken as an ordinary character,
+as if the `\e' had not been present\*(dg),
+or a single character with no other significance (matching that character).
+A `{' followed by a character other than a digit is an ordinary
+character, not the beginning of a bound\*(dg.
+It is illegal to end an RE with `\e'.
+.PP
+A \fIbracket expression\fR is a list of characters enclosed in `[]'.
+It normally matches any single character from the list (but see below).
+If the list begins with `^',
+it matches any single character
+(but see below) \fInot\fR from the rest of the list.
+If two characters in the list are separated by `\-', this is shorthand
+for the full \fIrange\fR of characters between those two (inclusive) in the
+collating sequence,
+e.g. `[0\-9]' in ASCII matches any decimal digit.
+It is illegal\*(dg for two ranges to share an
+endpoint, e.g. `a-c-e'.
+Ranges are very collating-sequence-dependent,
+and portable programs should avoid relying on them.
+.PP
+To include a literal `]' in the list, make it the first character
+(following a possible `^').
+To include a literal `\-', make it the first or last character,
+or the second endpoint of a range.
+To use a literal `\-' as the first endpoint of a range,
+enclose it in `[.' and `.]' to make it a collating element (see below).
+With the exception of these and some combinations using `[' (see next
+paragraphs), all other special characters, including `\e', lose their
+special significance within a bracket expression.
+.PP
+Within a bracket expression, a collating element (a character,
+a multi-character sequence that collates as if it were a single character,
+or a collating-sequence name for either)
+enclosed in `[.' and `.]' stands for the
+sequence of characters of that collating element.
+The sequence is a single element of the bracket expression's list.
+A bracket expression containing a multi-character collating element 
+can thus match more than one character,
+e.g. if the collating sequence includes a `ch' collating element,
+then the RE `[[.ch.]]*c' matches the first five characters
+of `chchcc'.
+.PP
+Within a bracket expression, a collating element enclosed in `[=' and
+`=]' is an equivalence class, standing for the sequences of characters
+of all collating elements equivalent to that one, including itself.
+(If there are no other equivalent collating elements,
+the treatment is as if the enclosing delimiters were `[.' and `.]'.)
+For example, if o and \o'o^' are the members of an equivalence class,
+then `[[=o=]]', `[[=\o'o^'=]]', and `[o\o'o^']' are all synonymous.
+An equivalence class may not\*(dg be an endpoint
+of a range.
+.PP
+Within a bracket expression, the name of a \fIcharacter class\fR enclosed
+in `[:' and `:]' stands for the list of all characters belonging to that
+class.
+Standard character class names are:
+.PP
+.RS
+.nf
+.ta 3c 6c 9c
+alnum	digit	punct
+alpha	graph	space
+blank	lower	upper
+cntrl	print	xdigit
+.fi
+.RE
+.PP
+These stand for the character classes defined in
+.BR wctype (3).
+A locale may provide others.
+A character class may not be used as an endpoint of a range.
+.\" As per http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=295666
+.\" The following does not seem to apply in the glibc implementation
+.\" .PP
+.\" There are two special cases\*(dg of bracket expressions:
+.\" the bracket expressions `[[:<:]]' and `[[:>:]]' match the null string at
+.\" the beginning and end of a word respectively.
+.\" A word is defined as a sequence of
+.\" word characters
+.\" which is neither preceded nor followed by
+.\" word characters.
+.\" A word character is an
+.\" .I alnum
+.\" character (as defined by
+.\" .BR wctype (3))
+.\" or an underscore.
+.\" This is an extension,
+.\" compatible with but not specified by POSIX 1003.2,
+.\" and should be used with
+.\" caution in software intended to be portable to other systems.
+.PP
+In the event that an RE could match more than one substring of a given
+string,
+the RE matches the one starting earliest in the string.
+If the RE could match more than one substring starting at that point,
+it matches the longest.
+Subexpressions also match the longest possible substrings, subject to
+the constraint that the whole match be as long as possible,
+with subexpressions starting earlier in the RE taking priority over
+ones starting later.
+Note that higher-level subexpressions thus take priority over
+their lower-level component subexpressions.
+.PP
+Match lengths are measured in characters, not collating elements.
+A null string is considered longer than no match at all.
+For example,
+`bb*' matches the three middle characters of `abbbc',
+`(wee|week)(knights|nights)' matches all ten characters of `weeknights',
+when `(.*).*' is matched against `abc' the parenthesized subexpression
+matches all three characters, and
+when `(a*)*' is matched against `bc' both the whole RE and the parenthesized
+subexpression match the null string.
+.PP
+If case-independent matching is specified,
+the effect is much as if all case distinctions had vanished from the
+alphabet.
+When an alphabetic that exists in multiple cases appears as an
+ordinary character outside a bracket expression, it is effectively
+transformed into a bracket expression containing both cases,
+e.g. `x' becomes `[xX]'.
+When it appears inside a bracket expression, all case counterparts
+of it are added to the bracket expression, so that (e.g.) `[x]'
+becomes `[xX]' and `[^x]' becomes `[^xX]'.
+.PP
+No particular limit is imposed on the length of REs\*(dg.
+Programs intended to be portable should not employ REs longer
+than 256 bytes,
+as an implementation can refuse to accept such REs and remain
+POSIX-compliant.
+.PP
+Obsolete (``basic'') regular expressions differ in several respects.
+`|', `+', and `?' are ordinary characters and there is no equivalent
+for their functionality.
+The delimiters for bounds are `\e{' and `\e}',
+with `{' and `}' by themselves ordinary characters.
+The parentheses for nested subexpressions are `\e(' and `\e)',
+with `(' and `)' by themselves ordinary characters.
+`^' is an ordinary character except at the beginning of the
+RE or\*(dg the beginning of a parenthesized subexpression,
+`$' is an ordinary character except at the end of the
+RE or\*(dg the end of a parenthesized subexpression,
+and `*' is an ordinary character if it appears at the beginning of the
+RE or the beginning of a parenthesized subexpression
+(after a possible leading `^').
+Finally, there is one new type of atom, a \fIback reference\fR:
+`\e' followed by a non-zero decimal digit \fId\fR
+matches the same sequence of characters
+matched by the \fId\fRth parenthesized subexpression
+(numbering subexpressions by the positions of their opening parentheses,
+left to right),
+so that (e.g.) `\e([bc]\e)\e1' matches `bb' or `cc' but not `bc'.
+.SH "SEE ALSO"
+.BR regex (3)
+.PP
+POSIX 1003.2, section 2.8 (Regular Expression Notation).
+.SH BUGS
+Having two kinds of REs is a botch.
+.PP
+The current 1003.2 spec says that `)' is an ordinary character in
+the absence of an unmatched `(';
+this was an unintentional result of a wording error,
+and change is likely.
+Avoid relying on it.
+.PP
+Back references are a dreadful botch,
+posing major problems for efficient implementations.
+They are also somewhat vaguely defined
+(does
+`a\e(\e(b\e)*\e2\e)*d' match `abbbd'?).
+Avoid using them.
+.PP
+1003.2's specification of case-independent matching is vague.
+The ``one case implies all cases'' definition given above
+is current consensus among implementors as to the right interpretation.
+.PP
+The syntax for word boundaries is incredibly ugly.
+.SH AUTHOR
+This page was taken from Henry Spencer's regex package.
diff --git a/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/regex.c b/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/regex.c
new file mode 100755
index 0000000000000000000000000000000000000000..d2d4f28e01a5fe3d661f9b0ca3984a5a1eea850c
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/regex.c
@@ -0,0 +1,74 @@
+/* Extended regular expression matching and search library.
+   Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+/* Make sure noone compiles this code with a C++ compiler.  */
+#ifdef __cplusplus
+# error "This is C code, use a C compiler"
+#endif
+
+#ifdef _LIBC
+/* We have to keep the namespace clean.  */
+# define regfree(preg) __regfree (preg)
+# define regexec(pr, st, nm, pm, ef) __regexec (pr, st, nm, pm, ef)
+# define regcomp(preg, pattern, cflags) __regcomp (preg, pattern, cflags)
+# define regerror(errcode, preg, errbuf, errbuf_size) \
+	__regerror(errcode, preg, errbuf, errbuf_size)
+# define re_set_registers(bu, re, nu, st, en) \
+	__re_set_registers (bu, re, nu, st, en)
+# define re_match_2(bufp, string1, size1, string2, size2, pos, regs, stop) \
+	__re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop)
+# define re_match(bufp, string, size, pos, regs) \
+	__re_match (bufp, string, size, pos, regs)
+# define re_search(bufp, string, size, startpos, range, regs) \
+	__re_search (bufp, string, size, startpos, range, regs)
+# define re_compile_pattern(pattern, length, bufp) \
+	__re_compile_pattern (pattern, length, bufp)
+# define re_set_syntax(syntax) __re_set_syntax (syntax)
+# define re_search_2(bufp, st1, s1, st2, s2, startpos, range, regs, stop) \
+	__re_search_2 (bufp, st1, s1, st2, s2, startpos, range, regs, stop)
+# define re_compile_fastmap(bufp) __re_compile_fastmap (bufp)
+
+# include "../locale/localeinfo.h"
+#endif
+
+/* On some systems, limits.h sets RE_DUP_MAX to a lower value than
+   GNU regex allows.  Include it before <regex.h>, which correctly
+   #undefs RE_DUP_MAX and sets it to the right value.  */
+#include <limits.h>
+
+#include <regex.h>
+#include "regex_internal.h"
+
+#include "regex_internal.c"
+#include "regcomp.c"
+#include "regexec.c"
+
+/* Binary backward compatibility.  */
+#if _LIBC
+# include <shlib-compat.h>
+# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3)
+link_warning (re_max_failures, "the 're_max_failures' variable is obsolete and will go away.")
+int re_max_failures = 2000;
+# endif
+#endif
diff --git a/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/regex.h b/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/regex.h
new file mode 100755
index 0000000000000000000000000000000000000000..807c404ec24e2aa316d6e3061a63bc07f32e179a
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/regex.h
@@ -0,0 +1,556 @@
+/* Definitions for data structures and routines for the regular
+   expression library.
+   Copyright (C) 1985,1989-93,1995-98,2000,2001,2002,2003,2005,2006
+   Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#ifndef _REGEX_H
+#define _REGEX_H 1
+
+#include <sys/types.h>
+
+/* Allow the use in C++ code.  */
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* The following two types have to be signed and unsigned integer type
+   wide enough to hold a value of a pointer.  For most ANSI compilers
+   ptrdiff_t and size_t should be likely OK.  Still size of these two
+   types is 2 for Microsoft C.  Ugh... */
+typedef long int s_reg_t;
+typedef unsigned long int active_reg_t;
+
+/* The following bits are used to determine the regexp syntax we
+   recognize.  The set/not-set meanings are chosen so that Emacs syntax
+   remains the value 0.  The bits are given in alphabetical order, and
+   the definitions shifted by one from the previous bit; thus, when we
+   add or remove a bit, only one other definition need change.  */
+typedef unsigned long int reg_syntax_t;
+
+/* If this bit is not set, then \ inside a bracket expression is literal.
+   If set, then such a \ quotes the following character.  */
+#define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1)
+
+/* If this bit is not set, then + and ? are operators, and \+ and \? are
+     literals.
+   If set, then \+ and \? are operators and + and ? are literals.  */
+#define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1)
+
+/* If this bit is set, then character classes are supported.  They are:
+     [:alpha:], [:upper:], [:lower:],  [:digit:], [:alnum:], [:xdigit:],
+     [:space:], [:print:], [:punct:], [:graph:], and [:cntrl:].
+   If not set, then character classes are not supported.  */
+#define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1)
+
+/* If this bit is set, then ^ and $ are always anchors (outside bracket
+     expressions, of course).
+   If this bit is not set, then it depends:
+        ^  is an anchor if it is at the beginning of a regular
+           expression or after an open-group or an alternation operator;
+        $  is an anchor if it is at the end of a regular expression, or
+           before a close-group or an alternation operator.
+
+   This bit could be (re)combined with RE_CONTEXT_INDEP_OPS, because
+   POSIX draft 11.2 says that * etc. in leading positions is undefined.
+   We already implemented a previous draft which made those constructs
+   invalid, though, so we haven't changed the code back.  */
+#define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1)
+
+/* If this bit is set, then special characters are always special
+     regardless of where they are in the pattern.
+   If this bit is not set, then special characters are special only in
+     some contexts; otherwise they are ordinary.  Specifically,
+     * + ? and intervals are only special when not after the beginning,
+     open-group, or alternation operator.  */
+#define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1)
+
+/* If this bit is set, then *, +, ?, and { cannot be first in an re or
+     immediately after an alternation or begin-group operator.  */
+#define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1)
+
+/* If this bit is set, then . matches newline.
+   If not set, then it doesn't.  */
+#define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1)
+
+/* If this bit is set, then . doesn't match NUL.
+   If not set, then it does.  */
+#define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1)
+
+/* If this bit is set, nonmatching lists [^...] do not match newline.
+   If not set, they do.  */
+#define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1)
+
+/* If this bit is set, either \{...\} or {...} defines an
+     interval, depending on RE_NO_BK_BRACES.
+   If not set, \{, \}, {, and } are literals.  */
+#define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1)
+
+/* If this bit is set, +, ? and | aren't recognized as operators.
+   If not set, they are.  */
+#define RE_LIMITED_OPS (RE_INTERVALS << 1)
+
+/* If this bit is set, newline is an alternation operator.
+   If not set, newline is literal.  */
+#define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1)
+
+/* If this bit is set, then `{...}' defines an interval, and \{ and \}
+     are literals.
+  If not set, then `\{...\}' defines an interval.  */
+#define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1)
+
+/* If this bit is set, (...) defines a group, and \( and \) are literals.
+   If not set, \(...\) defines a group, and ( and ) are literals.  */
+#define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1)
+
+/* If this bit is set, then \<digit> matches <digit>.
+   If not set, then \<digit> is a back-reference.  */
+#define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1)
+
+/* If this bit is set, then | is an alternation operator, and \| is literal.
+   If not set, then \| is an alternation operator, and | is literal.  */
+#define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1)
+
+/* If this bit is set, then an ending range point collating higher
+     than the starting range point, as in [z-a], is invalid.
+   If not set, then when ending range point collates higher than the
+     starting range point, the range is ignored.  */
+#define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1)
+
+/* If this bit is set, then an unmatched ) is ordinary.
+   If not set, then an unmatched ) is invalid.  */
+#define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1)
+
+/* If this bit is set, succeed as soon as we match the whole pattern,
+   without further backtracking.  */
+#define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1)
+
+/* If this bit is set, do not process the GNU regex operators.
+   If not set, then the GNU regex operators are recognized. */
+#define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1)
+
+/* If this bit is set, turn on internal regex debugging.
+   If not set, and debugging was on, turn it off.
+   This only works if regex.c is compiled -DDEBUG.
+   We define this bit always, so that all that's needed to turn on
+   debugging is to recompile regex.c; the calling code can always have
+   this bit set, and it won't affect anything in the normal case. */
+#define RE_DEBUG (RE_NO_GNU_OPS << 1)
+
+/* If this bit is set, a syntactically invalid interval is treated as
+   a string of ordinary characters.  For example, the ERE 'a{1' is
+   treated as 'a\{1'.  */
+#define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1)
+
+/* If this bit is set, then ignore case when matching.
+   If not set, then case is significant.  */
+#define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1)
+
+/* This bit is used internally like RE_CONTEXT_INDEP_ANCHORS but only
+   for ^, because it is difficult to scan the regex backwards to find
+   whether ^ should be special.  */
+#define RE_CARET_ANCHORS_HERE (RE_ICASE << 1)
+
+/* If this bit is set, then \{ cannot be first in an bre or
+   immediately after an alternation or begin-group operator.  */
+#define RE_CONTEXT_INVALID_DUP (RE_CARET_ANCHORS_HERE << 1)
+
+/* If this bit is set, then no_sub will be set to 1 during
+   re_compile_pattern.  */
+#define RE_NO_SUB (RE_CONTEXT_INVALID_DUP << 1)
+
+/* This global variable defines the particular regexp syntax to use (for
+   some interfaces).  When a regexp is compiled, the syntax used is
+   stored in the pattern buffer, so changing this does not affect
+   already-compiled regexps.  */
+extern reg_syntax_t re_syntax_options;
+
+/* Define combinations of the above bits for the standard possibilities.
+   (The [[[ comments delimit what gets put into the Texinfo file, so
+   don't delete them!)  */
+/* [[[begin syntaxes]]] */
+#define RE_SYNTAX_EMACS 0
+
+#define RE_SYNTAX_AWK							\
+  (RE_BACKSLASH_ESCAPE_IN_LISTS   | RE_DOT_NOT_NULL			\
+   | RE_NO_BK_PARENS              | RE_NO_BK_REFS			\
+   | RE_NO_BK_VBAR                | RE_NO_EMPTY_RANGES			\
+   | RE_DOT_NEWLINE		  | RE_CONTEXT_INDEP_ANCHORS		\
+   | RE_UNMATCHED_RIGHT_PAREN_ORD | RE_NO_GNU_OPS)
+
+#define RE_SYNTAX_GNU_AWK						\
+  ((RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DEBUG)	\
+   & ~(RE_DOT_NOT_NULL | RE_INTERVALS | RE_CONTEXT_INDEP_OPS		\
+       | RE_CONTEXT_INVALID_OPS ))
+
+#define RE_SYNTAX_POSIX_AWK						\
+  (RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS		\
+   | RE_INTERVALS	    | RE_NO_GNU_OPS)
+
+#define RE_SYNTAX_GREP							\
+  (RE_BK_PLUS_QM              | RE_CHAR_CLASSES				\
+   | RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS				\
+   | RE_NEWLINE_ALT)
+
+#define RE_SYNTAX_EGREP							\
+  (RE_CHAR_CLASSES        | RE_CONTEXT_INDEP_ANCHORS			\
+   | RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE			\
+   | RE_NEWLINE_ALT       | RE_NO_BK_PARENS				\
+   | RE_NO_BK_VBAR)
+
+#define RE_SYNTAX_POSIX_EGREP						\
+  (RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES			\
+   | RE_INVALID_INTERVAL_ORD)
+
+/* P1003.2/D11.2, section 4.20.7.1, lines 5078ff.  */
+#define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC
+
+#define RE_SYNTAX_SED RE_SYNTAX_POSIX_BASIC
+
+/* Syntax bits common to both basic and extended POSIX regex syntax.  */
+#define _RE_SYNTAX_POSIX_COMMON						\
+  (RE_CHAR_CLASSES | RE_DOT_NEWLINE      | RE_DOT_NOT_NULL		\
+   | RE_INTERVALS  | RE_NO_EMPTY_RANGES)
+
+#define RE_SYNTAX_POSIX_BASIC						\
+  (_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM | RE_CONTEXT_INVALID_DUP)
+
+/* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes
+   RE_LIMITED_OPS, i.e., \? \+ \| are not recognized.  Actually, this
+   isn't minimal, since other operators, such as \`, aren't disabled.  */
+#define RE_SYNTAX_POSIX_MINIMAL_BASIC					\
+  (_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS)
+
+#define RE_SYNTAX_POSIX_EXTENDED					\
+  (_RE_SYNTAX_POSIX_COMMON  | RE_CONTEXT_INDEP_ANCHORS			\
+   | RE_CONTEXT_INDEP_OPS   | RE_NO_BK_BRACES				\
+   | RE_NO_BK_PARENS        | RE_NO_BK_VBAR				\
+   | RE_CONTEXT_INVALID_OPS | RE_UNMATCHED_RIGHT_PAREN_ORD)
+
+/* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INDEP_OPS is
+   removed and RE_NO_BK_REFS is added.  */
+#define RE_SYNTAX_POSIX_MINIMAL_EXTENDED				\
+  (_RE_SYNTAX_POSIX_COMMON  | RE_CONTEXT_INDEP_ANCHORS			\
+   | RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES				\
+   | RE_NO_BK_PARENS        | RE_NO_BK_REFS				\
+   | RE_NO_BK_VBAR	    | RE_UNMATCHED_RIGHT_PAREN_ORD)
+/* [[[end syntaxes]]] */
+
+/* Maximum number of duplicates an interval can allow.  Some systems
+   (erroneously) define this in other header files, but we want our
+   value, so remove any previous define.  */
+#ifdef RE_DUP_MAX
+# undef RE_DUP_MAX
+#endif
+/* If sizeof(int) == 2, then ((1 << 15) - 1) overflows.  */
+#define RE_DUP_MAX (0x7fff)
+
+
+/* POSIX `cflags' bits (i.e., information for `regcomp').  */
+
+/* If this bit is set, then use extended regular expression syntax.
+   If not set, then use basic regular expression syntax.  */
+#define REG_EXTENDED 1
+
+/* If this bit is set, then ignore case when matching.
+   If not set, then case is significant.  */
+#define REG_ICASE (REG_EXTENDED << 1)
+
+/* If this bit is set, then anchors do not match at newline
+     characters in the string.
+   If not set, then anchors do match at newlines.  */
+#define REG_NEWLINE (REG_ICASE << 1)
+
+/* If this bit is set, then report only success or fail in regexec.
+   If not set, then returns differ between not matching and errors.  */
+#define REG_NOSUB (REG_NEWLINE << 1)
+
+
+/* POSIX `eflags' bits (i.e., information for regexec).  */
+
+/* If this bit is set, then the beginning-of-line operator doesn't match
+     the beginning of the string (presumably because it's not the
+     beginning of a line).
+   If not set, then the beginning-of-line operator does match the
+     beginning of the string.  */
+#define REG_NOTBOL 1
+
+/* Like REG_NOTBOL, except for the end-of-line.  */
+#define REG_NOTEOL (1 << 1)
+
+/* Use PMATCH[0] to delimit the start and end of the search in the
+   buffer.  */
+#define REG_STARTEND (1 << 2)
+
+
+/* If any error codes are removed, changed, or added, update the
+   `re_error_msg' table in regex.c.  */
+typedef enum
+{
+#ifdef _XOPEN_SOURCE
+  REG_ENOSYS = -1,	/* This will never happen for this implementation.  */
+#endif
+
+  REG_NOERROR = 0,	/* Success.  */
+  REG_NOMATCH,		/* Didn't find a match (for regexec).  */
+
+  /* POSIX regcomp return error codes.  (In the order listed in the
+     standard.)  */
+  REG_BADPAT,		/* Invalid pattern.  */
+  REG_ECOLLATE,		/* Inalid collating element.  */
+  REG_ECTYPE,		/* Invalid character class name.  */
+  REG_EESCAPE,		/* Trailing backslash.  */
+  REG_ESUBREG,		/* Invalid back reference.  */
+  REG_EBRACK,		/* Unmatched left bracket.  */
+  REG_EPAREN,		/* Parenthesis imbalance.  */
+  REG_EBRACE,		/* Unmatched \{.  */
+  REG_BADBR,		/* Invalid contents of \{\}.  */
+  REG_ERANGE,		/* Invalid range end.  */
+  REG_ESPACE,		/* Ran out of memory.  */
+  REG_BADRPT,		/* No preceding re for repetition op.  */
+
+  /* Error codes we've added.  */
+  REG_EEND,		/* Premature end.  */
+  REG_ESIZE,		/* Compiled pattern bigger than 2^16 bytes.  */
+  REG_ERPAREN		/* Unmatched ) or \); not returned from regcomp.  */
+} reg_errcode_t;
+
+/* This data structure represents a compiled pattern.  Before calling
+   the pattern compiler, the fields `buffer', `allocated', `fastmap',
+   `translate', and `no_sub' can be set.  After the pattern has been
+   compiled, the `re_nsub' field is available.  All other fields are
+   private to the regex routines.  */
+
+#ifndef RE_TRANSLATE_TYPE
+# define RE_TRANSLATE_TYPE unsigned char *
+#endif
+
+struct re_pattern_buffer
+{
+  /* Space that holds the compiled pattern.  It is declared as
+     `unsigned char *' because its elements are sometimes used as
+     array indexes.  */
+  unsigned char *buffer;
+
+  /* Number of bytes to which `buffer' points.  */
+  unsigned long int allocated;
+
+  /* Number of bytes actually used in `buffer'.  */
+  unsigned long int used;
+
+  /* Syntax setting with which the pattern was compiled.  */
+  reg_syntax_t syntax;
+
+  /* Pointer to a fastmap, if any, otherwise zero.  re_search uses the
+     fastmap, if there is one, to skip over impossible starting points
+     for matches.  */
+  char *fastmap;
+
+  /* Either a translate table to apply to all characters before
+     comparing them, or zero for no translation.  The translation is
+     applied to a pattern when it is compiled and to a string when it
+     is matched.  */
+  RE_TRANSLATE_TYPE translate;
+
+  /* Number of subexpressions found by the compiler.  */
+  size_t re_nsub;
+
+  /* Zero if this pattern cannot match the empty string, one else.
+     Well, in truth it's used only in `re_search_2', to see whether or
+     not we should use the fastmap, so we don't set this absolutely
+     perfectly; see `re_compile_fastmap' (the `duplicate' case).  */
+  unsigned can_be_null : 1;
+
+  /* If REGS_UNALLOCATED, allocate space in the `regs' structure
+     for `max (RE_NREGS, re_nsub + 1)' groups.
+     If REGS_REALLOCATE, reallocate space if necessary.
+     If REGS_FIXED, use what's there.  */
+#define REGS_UNALLOCATED 0
+#define REGS_REALLOCATE 1
+#define REGS_FIXED 2
+  unsigned regs_allocated : 2;
+
+  /* Set to zero when `regex_compile' compiles a pattern; set to one
+     by `re_compile_fastmap' if it updates the fastmap.  */
+  unsigned fastmap_accurate : 1;
+
+  /* If set, `re_match_2' does not return information about
+     subexpressions.  */
+  unsigned no_sub : 1;
+
+  /* If set, a beginning-of-line anchor doesn't match at the beginning
+     of the string.  */
+  unsigned not_bol : 1;
+
+  /* Similarly for an end-of-line anchor.  */
+  unsigned not_eol : 1;
+
+  /* If true, an anchor at a newline matches.  */
+  unsigned newline_anchor : 1;
+};
+
+typedef struct re_pattern_buffer regex_t;
+
+/* Type for byte offsets within the string.  POSIX mandates this.  */
+typedef int regoff_t;
+
+
+/* This is the structure we store register match data in.  See
+   regex.texinfo for a full description of what registers match.  */
+struct re_registers
+{
+  unsigned num_regs;
+  regoff_t *start;
+  regoff_t *end;
+};
+
+
+/* If `regs_allocated' is REGS_UNALLOCATED in the pattern buffer,
+   `re_match_2' returns information about at least this many registers
+   the first time a `regs' structure is passed.  */
+#ifndef RE_NREGS
+# define RE_NREGS 30
+#endif
+
+
+/* POSIX specification for registers.  Aside from the different names than
+   `re_registers', POSIX uses an array of structures, instead of a
+   structure of arrays.  */
+typedef struct
+{
+  regoff_t rm_so;  /* Byte offset from string's start to substring's start.  */
+  regoff_t rm_eo;  /* Byte offset from string's start to substring's end.  */
+} regmatch_t;
+
+/* Declarations for routines.  */
+
+/* Sets the current default syntax to SYNTAX, and return the old syntax.
+   You can also simply assign to the `re_syntax_options' variable.  */
+extern reg_syntax_t re_set_syntax (reg_syntax_t __syntax);
+
+/* Compile the regular expression PATTERN, with length LENGTH
+   and syntax given by the global `re_syntax_options', into the buffer
+   BUFFER.  Return NULL if successful, and an error string if not.  */
+extern const char *re_compile_pattern (const char *__pattern, size_t __length,
+				       struct re_pattern_buffer *__buffer);
+
+
+/* Compile a fastmap for the compiled pattern in BUFFER; used to
+   accelerate searches.  Return 0 if successful and -2 if was an
+   internal error.  */
+extern int re_compile_fastmap (struct re_pattern_buffer *__buffer);
+
+
+/* Search in the string STRING (with length LENGTH) for the pattern
+   compiled into BUFFER.  Start searching at position START, for RANGE
+   characters.  Return the starting position of the match, -1 for no
+   match, or -2 for an internal error.  Also return register
+   information in REGS (if REGS and BUFFER->no_sub are nonzero).  */
+extern int re_search (struct re_pattern_buffer *__buffer, const char *__string,
+		      int __length, int __start, int __range,
+		      struct re_registers *__regs);
+
+
+/* Like `re_search', but search in the concatenation of STRING1 and
+   STRING2.  Also, stop searching at index START + STOP.  */
+extern int re_search_2 (struct re_pattern_buffer *__buffer,
+			const char *__string1, int __length1,
+			const char *__string2, int __length2, int __start,
+			int __range, struct re_registers *__regs, int __stop);
+
+
+/* Like `re_search', but return how many characters in STRING the regexp
+   in BUFFER matched, starting at position START.  */
+extern int re_match (struct re_pattern_buffer *__buffer, const char *__string,
+		     int __length, int __start, struct re_registers *__regs);
+
+
+/* Relates to `re_match' as `re_search_2' relates to `re_search'.  */
+extern int re_match_2 (struct re_pattern_buffer *__buffer,
+		       const char *__string1, int __length1,
+		       const char *__string2, int __length2, int __start,
+		       struct re_registers *__regs, int __stop);
+
+
+/* Set REGS to hold NUM_REGS registers, storing them in STARTS and
+   ENDS.  Subsequent matches using BUFFER and REGS will use this memory
+   for recording register information.  STARTS and ENDS must be
+   allocated with malloc, and must each be at least `NUM_REGS * sizeof
+   (regoff_t)' bytes long.
+
+   If NUM_REGS == 0, then subsequent matches should allocate their own
+   register data.
+
+   Unless this function is called, the first search or match using
+   PATTERN_BUFFER will allocate its own register data, without
+   freeing the old data.  */
+extern void re_set_registers (struct re_pattern_buffer *__buffer,
+			      struct re_registers *__regs,
+			      unsigned int __num_regs,
+			      regoff_t *__starts, regoff_t *__ends);
+
+#if defined _REGEX_RE_COMP || defined _LIBC
+# ifndef _CRAY
+/* 4.2 bsd compatibility.  */
+extern char *re_comp (const char *);
+extern int re_exec (const char *);
+# endif
+#endif
+
+/* GCC 2.95 and later have "__restrict"; C99 compilers have
+   "restrict", and "configure" may have defined "restrict".  */
+#ifndef __restrict
+# if ! (2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__))
+#  if defined restrict || 199901L <= __STDC_VERSION__
+#   define __restrict restrict
+#  else
+#   define __restrict
+#  endif
+# endif
+#endif
+/* gcc 3.1 and up support the [restrict] syntax.  */
+#ifndef __restrict_arr
+# if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) \
+     && !defined __GNUG__
+#  define __restrict_arr __restrict
+# else
+#  define __restrict_arr
+# endif
+#endif
+
+/* POSIX compatibility.  */
+extern int regcomp (regex_t *__restrict __preg,
+		    const char *__restrict __pattern,
+		    int __cflags);
+
+extern int regexec (const regex_t *__restrict __preg,
+		    const char *__restrict __string, size_t __nmatch,
+		    regmatch_t __pmatch[__restrict_arr],
+		    int __eflags);
+
+extern size_t regerror (int __errcode, const regex_t *__restrict __preg,
+			char *__restrict __errbuf, size_t __errbuf_size);
+
+extern void regfree (regex_t *__preg);
+
+
+#ifdef __cplusplus
+}
+#endif	/* C++ */
+
+#endif /* regex.h */
diff --git a/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/regex_internal.c b/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/regex_internal.c
new file mode 100755
index 0000000000000000000000000000000000000000..66154e0ceac3fa09b72d806787f6610562e03cf0
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/regex_internal.c
@@ -0,0 +1,1717 @@
+/* Extended regular expression matching and search library.
+   Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+static void re_string_construct_common (const char *str, int len,
+					re_string_t *pstr,
+					RE_TRANSLATE_TYPE trans, int icase,
+					const re_dfa_t *dfa) internal_function;
+static re_dfastate_t *create_ci_newstate (const re_dfa_t *dfa,
+					  const re_node_set *nodes,
+					  unsigned int hash) internal_function;
+static re_dfastate_t *create_cd_newstate (const re_dfa_t *dfa,
+					  const re_node_set *nodes,
+					  unsigned int context,
+					  unsigned int hash) internal_function;
+
+/* Functions for string operation.  */
+
+/* This function allocate the buffers.  It is necessary to call
+   re_string_reconstruct before using the object.  */
+
+static reg_errcode_t
+internal_function
+re_string_allocate (re_string_t *pstr, const char *str, int len, int init_len,
+		    RE_TRANSLATE_TYPE trans, int icase, const re_dfa_t *dfa)
+{
+  reg_errcode_t ret;
+  int init_buf_len;
+
+  /* Ensure at least one character fits into the buffers.  */
+  if (init_len < dfa->mb_cur_max)
+    init_len = dfa->mb_cur_max;
+  init_buf_len = (len + 1 < init_len) ? len + 1: init_len;
+  re_string_construct_common (str, len, pstr, trans, icase, dfa);
+
+  ret = re_string_realloc_buffers (pstr, init_buf_len);
+  if (BE (ret != REG_NOERROR, 0))
+    return ret;
+
+  pstr->word_char = dfa->word_char;
+  pstr->word_ops_used = dfa->word_ops_used;
+  pstr->mbs = pstr->mbs_allocated ? pstr->mbs : (unsigned char *) str;
+  pstr->valid_len = (pstr->mbs_allocated || dfa->mb_cur_max > 1) ? 0 : len;
+  pstr->valid_raw_len = pstr->valid_len;
+  return REG_NOERROR;
+}
+
+/* This function allocate the buffers, and initialize them.  */
+
+static reg_errcode_t
+internal_function
+re_string_construct (re_string_t *pstr, const char *str, int len,
+		     RE_TRANSLATE_TYPE trans, int icase, const re_dfa_t *dfa)
+{
+  reg_errcode_t ret;
+  memset (pstr, '\0', sizeof (re_string_t));
+  re_string_construct_common (str, len, pstr, trans, icase, dfa);
+
+  if (len > 0)
+    {
+      ret = re_string_realloc_buffers (pstr, len + 1);
+      if (BE (ret != REG_NOERROR, 0))
+	return ret;
+    }
+  pstr->mbs = pstr->mbs_allocated ? pstr->mbs : (unsigned char *) str;
+
+  if (icase)
+    {
+#ifdef RE_ENABLE_I18N
+      if (dfa->mb_cur_max > 1)
+	{
+	  while (1)
+	    {
+	      ret = build_wcs_upper_buffer (pstr);
+	      if (BE (ret != REG_NOERROR, 0))
+		return ret;
+	      if (pstr->valid_raw_len >= len)
+		break;
+	      if (pstr->bufs_len > pstr->valid_len + dfa->mb_cur_max)
+		break;
+	      ret = re_string_realloc_buffers (pstr, pstr->bufs_len * 2);
+	      if (BE (ret != REG_NOERROR, 0))
+		return ret;
+	    }
+	}
+      else
+#endif /* RE_ENABLE_I18N  */
+	build_upper_buffer (pstr);
+    }
+  else
+    {
+#ifdef RE_ENABLE_I18N
+      if (dfa->mb_cur_max > 1)
+	build_wcs_buffer (pstr);
+      else
+#endif /* RE_ENABLE_I18N  */
+	{
+	  if (trans != NULL)
+	    re_string_translate_buffer (pstr);
+	  else
+	    {
+	      pstr->valid_len = pstr->bufs_len;
+	      pstr->valid_raw_len = pstr->bufs_len;
+	    }
+	}
+    }
+
+  return REG_NOERROR;
+}
+
+/* Helper functions for re_string_allocate, and re_string_construct.  */
+
+static reg_errcode_t
+internal_function
+re_string_realloc_buffers (re_string_t *pstr, int new_buf_len)
+{
+#ifdef RE_ENABLE_I18N
+  if (pstr->mb_cur_max > 1)
+    {
+      wint_t *new_wcs = re_realloc (pstr->wcs, wint_t, new_buf_len);
+      if (BE (new_wcs == NULL, 0))
+	return REG_ESPACE;
+      pstr->wcs = new_wcs;
+      if (pstr->offsets != NULL)
+	{
+	  int *new_offsets = re_realloc (pstr->offsets, int, new_buf_len);
+	  if (BE (new_offsets == NULL, 0))
+	    return REG_ESPACE;
+	  pstr->offsets = new_offsets;
+	}
+    }
+#endif /* RE_ENABLE_I18N  */
+  if (pstr->mbs_allocated)
+    {
+      unsigned char *new_mbs = re_realloc (pstr->mbs, unsigned char,
+					   new_buf_len);
+      if (BE (new_mbs == NULL, 0))
+	return REG_ESPACE;
+      pstr->mbs = new_mbs;
+    }
+  pstr->bufs_len = new_buf_len;
+  return REG_NOERROR;
+}
+
+
+static void
+internal_function
+re_string_construct_common (const char *str, int len, re_string_t *pstr,
+			    RE_TRANSLATE_TYPE trans, int icase,
+			    const re_dfa_t *dfa)
+{
+  pstr->raw_mbs = (const unsigned char *) str;
+  pstr->len = len;
+  pstr->raw_len = len;
+  pstr->trans = trans;
+  pstr->icase = icase ? 1 : 0;
+  pstr->mbs_allocated = (trans != NULL || icase);
+  pstr->mb_cur_max = dfa->mb_cur_max;
+  pstr->is_utf8 = dfa->is_utf8;
+  pstr->map_notascii = dfa->map_notascii;
+  pstr->stop = pstr->len;
+  pstr->raw_stop = pstr->stop;
+}
+
+#ifdef RE_ENABLE_I18N
+
+/* Build wide character buffer PSTR->WCS.
+   If the byte sequence of the string are:
+     <mb1>(0), <mb1>(1), <mb2>(0), <mb2>(1), <sb3>
+   Then wide character buffer will be:
+     <wc1>   , WEOF    , <wc2>   , WEOF    , <wc3>
+   We use WEOF for padding, they indicate that the position isn't
+   a first byte of a multibyte character.
+
+   Note that this function assumes PSTR->VALID_LEN elements are already
+   built and starts from PSTR->VALID_LEN.  */
+
+static void
+internal_function
+build_wcs_buffer (re_string_t *pstr)
+{
+#ifdef _LIBC
+  unsigned char buf[MB_LEN_MAX];
+  assert (MB_LEN_MAX >= pstr->mb_cur_max);
+#else
+  unsigned char buf[64];
+#endif
+  mbstate_t prev_st;
+  int byte_idx, end_idx, remain_len;
+  size_t mbclen;
+
+  /* Build the buffers from pstr->valid_len to either pstr->len or
+     pstr->bufs_len.  */
+  end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len;
+  for (byte_idx = pstr->valid_len; byte_idx < end_idx;)
+    {
+      wchar_t wc;
+      const char *p;
+
+      remain_len = end_idx - byte_idx;
+      prev_st = pstr->cur_state;
+      /* Apply the translation if we need.  */
+      if (BE (pstr->trans != NULL, 0))
+	{
+	  int i, ch;
+
+	  for (i = 0; i < pstr->mb_cur_max && i < remain_len; ++i)
+	    {
+	      ch = pstr->raw_mbs [pstr->raw_mbs_idx + byte_idx + i];
+	      buf[i] = pstr->mbs[byte_idx + i] = pstr->trans[ch];
+	    }
+	  p = (const char *) buf;
+	}
+      else
+	p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx;
+      mbclen = mbrtowc (&wc, p, remain_len, &pstr->cur_state);
+      if (BE (mbclen == (size_t) -2, 0))
+	{
+	  /* The buffer doesn't have enough space, finish to build.  */
+	  pstr->cur_state = prev_st;
+	  break;
+	}
+      else if (BE (mbclen == (size_t) -1 || mbclen == 0, 0))
+	{
+	  /* We treat these cases as a singlebyte character.  */
+	  mbclen = 1;
+	  wc = (wchar_t) pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx];
+	  if (BE (pstr->trans != NULL, 0))
+	    wc = pstr->trans[wc];
+	  pstr->cur_state = prev_st;
+	}
+
+      /* Write wide character and padding.  */
+      pstr->wcs[byte_idx++] = wc;
+      /* Write paddings.  */
+      for (remain_len = byte_idx + mbclen - 1; byte_idx < remain_len ;)
+	pstr->wcs[byte_idx++] = WEOF;
+    }
+  pstr->valid_len = byte_idx;
+  pstr->valid_raw_len = byte_idx;
+}
+
+/* Build wide character buffer PSTR->WCS like build_wcs_buffer,
+   but for REG_ICASE.  */
+
+static reg_errcode_t
+internal_function
+build_wcs_upper_buffer (re_string_t *pstr)
+{
+  mbstate_t prev_st;
+  int src_idx, byte_idx, end_idx, remain_len;
+  size_t mbclen;
+#ifdef _LIBC
+  char buf[MB_LEN_MAX];
+  assert (MB_LEN_MAX >= pstr->mb_cur_max);
+#else
+  char buf[64];
+#endif
+
+  byte_idx = pstr->valid_len;
+  end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len;
+
+  /* The following optimization assumes that ASCII characters can be
+     mapped to wide characters with a simple cast.  */
+  if (! pstr->map_notascii && pstr->trans == NULL && !pstr->offsets_needed)
+    {
+      while (byte_idx < end_idx)
+	{
+	  wchar_t wc;
+
+	  if (isascii (pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx])
+	      && mbsinit (&pstr->cur_state))
+	    {
+	      /* In case of a singlebyte character.  */
+	      pstr->mbs[byte_idx]
+		= toupper (pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx]);
+	      /* The next step uses the assumption that wchar_t is encoded
+		 ASCII-safe: all ASCII values can be converted like this.  */
+	      pstr->wcs[byte_idx] = (wchar_t) pstr->mbs[byte_idx];
+	      ++byte_idx;
+	      continue;
+	    }
+
+	  remain_len = end_idx - byte_idx;
+	  prev_st = pstr->cur_state;
+	  mbclen = mbrtowc (&wc,
+			    ((const char *) pstr->raw_mbs + pstr->raw_mbs_idx
+			     + byte_idx), remain_len, &pstr->cur_state);
+	  if (BE (mbclen + 2 > 2, 1))
+	    {
+	      wchar_t wcu = wc;
+	      if (iswlower (wc))
+		{
+		  size_t mbcdlen;
+
+		  wcu = towupper (wc);
+		  mbcdlen = wcrtomb (buf, wcu, &prev_st);
+		  if (BE (mbclen == mbcdlen, 1))
+		    memcpy (pstr->mbs + byte_idx, buf, mbclen);
+		  else
+		    {
+		      src_idx = byte_idx;
+		      goto offsets_needed;
+		    }
+		}
+	      else
+		memcpy (pstr->mbs + byte_idx,
+			pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx, mbclen);
+	      pstr->wcs[byte_idx++] = wcu;
+	      /* Write paddings.  */
+	      for (remain_len = byte_idx + mbclen - 1; byte_idx < remain_len ;)
+		pstr->wcs[byte_idx++] = WEOF;
+	    }
+	  else if (mbclen == (size_t) -1 || mbclen == 0)
+	    {
+	      /* It is an invalid character or '\0'.  Just use the byte.  */
+	      int ch = pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx];
+	      pstr->mbs[byte_idx] = ch;
+	      /* And also cast it to wide char.  */
+	      pstr->wcs[byte_idx++] = (wchar_t) ch;
+	      if (BE (mbclen == (size_t) -1, 0))
+		pstr->cur_state = prev_st;
+	    }
+	  else
+	    {
+	      /* The buffer doesn't have enough space, finish to build.  */
+	      pstr->cur_state = prev_st;
+	      break;
+	    }
+	}
+      pstr->valid_len = byte_idx;
+      pstr->valid_raw_len = byte_idx;
+      return REG_NOERROR;
+    }
+  else
+    for (src_idx = pstr->valid_raw_len; byte_idx < end_idx;)
+      {
+	wchar_t wc;
+	const char *p;
+      offsets_needed:
+	remain_len = end_idx - byte_idx;
+	prev_st = pstr->cur_state;
+	if (BE (pstr->trans != NULL, 0))
+	  {
+	    int i, ch;
+
+	    for (i = 0; i < pstr->mb_cur_max && i < remain_len; ++i)
+	      {
+		ch = pstr->raw_mbs [pstr->raw_mbs_idx + src_idx + i];
+		buf[i] = pstr->trans[ch];
+	      }
+	    p = (const char *) buf;
+	  }
+	else
+	  p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + src_idx;
+	mbclen = mbrtowc (&wc, p, remain_len, &pstr->cur_state);
+	if (BE (mbclen + 2 > 2, 1))
+	  {
+	    wchar_t wcu = wc;
+	    if (iswlower (wc))
+	      {
+		size_t mbcdlen;
+
+		wcu = towupper (wc);
+		mbcdlen = wcrtomb ((char *) buf, wcu, &prev_st);
+		if (BE (mbclen == mbcdlen, 1))
+		  memcpy (pstr->mbs + byte_idx, buf, mbclen);
+		else if (mbcdlen != (size_t) -1)
+		  {
+		    size_t i;
+
+		    if (byte_idx + mbcdlen > pstr->bufs_len)
+		      {
+			pstr->cur_state = prev_st;
+			break;
+		      }
+
+		    if (pstr->offsets == NULL)
+		      {
+			pstr->offsets = re_malloc (int, pstr->bufs_len);
+
+			if (pstr->offsets == NULL)
+			  return REG_ESPACE;
+		      }
+		    if (!pstr->offsets_needed)
+		      {
+			for (i = 0; i < (size_t) byte_idx; ++i)
+			  pstr->offsets[i] = i;
+			pstr->offsets_needed = 1;
+		      }
+
+		    memcpy (pstr->mbs + byte_idx, buf, mbcdlen);
+		    pstr->wcs[byte_idx] = wcu;
+		    pstr->offsets[byte_idx] = src_idx;
+		    for (i = 1; i < mbcdlen; ++i)
+		      {
+			pstr->offsets[byte_idx + i]
+			  = src_idx + (i < mbclen ? i : mbclen - 1);
+			pstr->wcs[byte_idx + i] = WEOF;
+		      }
+		    pstr->len += mbcdlen - mbclen;
+		    if (pstr->raw_stop > src_idx)
+		      pstr->stop += mbcdlen - mbclen;
+		    end_idx = (pstr->bufs_len > pstr->len)
+			      ? pstr->len : pstr->bufs_len;
+		    byte_idx += mbcdlen;
+		    src_idx += mbclen;
+		    continue;
+		  }
+                else
+                  memcpy (pstr->mbs + byte_idx, p, mbclen);
+	      }
+	    else
+	      memcpy (pstr->mbs + byte_idx, p, mbclen);
+
+	    if (BE (pstr->offsets_needed != 0, 0))
+	      {
+		size_t i;
+		for (i = 0; i < mbclen; ++i)
+		  pstr->offsets[byte_idx + i] = src_idx + i;
+	      }
+	    src_idx += mbclen;
+
+	    pstr->wcs[byte_idx++] = wcu;
+	    /* Write paddings.  */
+	    for (remain_len = byte_idx + mbclen - 1; byte_idx < remain_len ;)
+	      pstr->wcs[byte_idx++] = WEOF;
+	  }
+	else if (mbclen == (size_t) -1 || mbclen == 0)
+	  {
+	    /* It is an invalid character or '\0'.  Just use the byte.  */
+	    int ch = pstr->raw_mbs[pstr->raw_mbs_idx + src_idx];
+
+	    if (BE (pstr->trans != NULL, 0))
+	      ch = pstr->trans [ch];
+	    pstr->mbs[byte_idx] = ch;
+
+	    if (BE (pstr->offsets_needed != 0, 0))
+	      pstr->offsets[byte_idx] = src_idx;
+	    ++src_idx;
+
+	    /* And also cast it to wide char.  */
+	    pstr->wcs[byte_idx++] = (wchar_t) ch;
+	    if (BE (mbclen == (size_t) -1, 0))
+	      pstr->cur_state = prev_st;
+	  }
+	else
+	  {
+	    /* The buffer doesn't have enough space, finish to build.  */
+	    pstr->cur_state = prev_st;
+	    break;
+	  }
+      }
+  pstr->valid_len = byte_idx;
+  pstr->valid_raw_len = src_idx;
+  return REG_NOERROR;
+}
+
+/* Skip characters until the index becomes greater than NEW_RAW_IDX.
+   Return the index.  */
+
+static int
+internal_function
+re_string_skip_chars (re_string_t *pstr, int new_raw_idx, wint_t *last_wc)
+{
+  mbstate_t prev_st;
+  int rawbuf_idx;
+  size_t mbclen;
+  wchar_t wc = WEOF;
+
+  /* Skip the characters which are not necessary to check.  */
+  for (rawbuf_idx = pstr->raw_mbs_idx + pstr->valid_raw_len;
+       rawbuf_idx < new_raw_idx;)
+    {
+      int remain_len;
+      remain_len = pstr->len - rawbuf_idx;
+      prev_st = pstr->cur_state;
+      mbclen = mbrtowc (&wc, (const char *) pstr->raw_mbs + rawbuf_idx,
+			remain_len, &pstr->cur_state);
+      if (BE (mbclen == (size_t) -2 || mbclen == (size_t) -1 || mbclen == 0, 0))
+	{
+	  /* We treat these cases as a single byte character.  */
+	  if (mbclen == 0 || remain_len == 0)
+	    wc = L'\0';
+	  else
+	    wc = *(unsigned char *) (pstr->raw_mbs + rawbuf_idx);
+	  mbclen = 1;
+	  pstr->cur_state = prev_st;
+	}
+      /* Then proceed the next character.  */
+      rawbuf_idx += mbclen;
+    }
+  *last_wc = (wint_t) wc;
+  return rawbuf_idx;
+}
+#endif /* RE_ENABLE_I18N  */
+
+/* Build the buffer PSTR->MBS, and apply the translation if we need.
+   This function is used in case of REG_ICASE.  */
+
+static void
+internal_function
+build_upper_buffer (re_string_t *pstr)
+{
+  int char_idx, end_idx;
+  end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len;
+
+  for (char_idx = pstr->valid_len; char_idx < end_idx; ++char_idx)
+    {
+      int ch = pstr->raw_mbs[pstr->raw_mbs_idx + char_idx];
+      if (BE (pstr->trans != NULL, 0))
+	ch = pstr->trans[ch];
+      if (islower (ch))
+	pstr->mbs[char_idx] = toupper (ch);
+      else
+	pstr->mbs[char_idx] = ch;
+    }
+  pstr->valid_len = char_idx;
+  pstr->valid_raw_len = char_idx;
+}
+
+/* Apply TRANS to the buffer in PSTR.  */
+
+static void
+internal_function
+re_string_translate_buffer (re_string_t *pstr)
+{
+  int buf_idx, end_idx;
+  end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len;
+
+  for (buf_idx = pstr->valid_len; buf_idx < end_idx; ++buf_idx)
+    {
+      int ch = pstr->raw_mbs[pstr->raw_mbs_idx + buf_idx];
+      pstr->mbs[buf_idx] = pstr->trans[ch];
+    }
+
+  pstr->valid_len = buf_idx;
+  pstr->valid_raw_len = buf_idx;
+}
+
+/* This function re-construct the buffers.
+   Concretely, convert to wide character in case of pstr->mb_cur_max > 1,
+   convert to upper case in case of REG_ICASE, apply translation.  */
+
+static reg_errcode_t
+internal_function
+re_string_reconstruct (re_string_t *pstr, int idx, int eflags)
+{
+  int offset = idx - pstr->raw_mbs_idx;
+  if (BE (offset < 0, 0))
+    {
+      /* Reset buffer.  */
+#ifdef RE_ENABLE_I18N
+      if (pstr->mb_cur_max > 1)
+	memset (&pstr->cur_state, '\0', sizeof (mbstate_t));
+#endif /* RE_ENABLE_I18N */
+      pstr->len = pstr->raw_len;
+      pstr->stop = pstr->raw_stop;
+      pstr->valid_len = 0;
+      pstr->raw_mbs_idx = 0;
+      pstr->valid_raw_len = 0;
+      pstr->offsets_needed = 0;
+      pstr->tip_context = ((eflags & REG_NOTBOL) ? CONTEXT_BEGBUF
+			   : CONTEXT_NEWLINE | CONTEXT_BEGBUF);
+      if (!pstr->mbs_allocated)
+	pstr->mbs = (unsigned char *) pstr->raw_mbs;
+      offset = idx;
+    }
+
+  if (BE (offset != 0, 1))
+    {
+      /* Should the already checked characters be kept?  */
+      if (BE (offset < pstr->valid_raw_len, 1))
+	{
+	  /* Yes, move them to the front of the buffer.  */
+#ifdef RE_ENABLE_I18N
+	  if (BE (pstr->offsets_needed, 0))
+	    {
+	      int low = 0, high = pstr->valid_len, mid;
+	      do
+		{
+		  mid = (high + low) / 2;
+		  if (pstr->offsets[mid] > offset)
+		    high = mid;
+		  else if (pstr->offsets[mid] < offset)
+		    low = mid + 1;
+		  else
+		    break;
+		}
+	      while (low < high);
+	      if (pstr->offsets[mid] < offset)
+		++mid;
+	      pstr->tip_context = re_string_context_at (pstr, mid - 1,
+							eflags);
+	      /* This can be quite complicated, so handle specially
+		 only the common and easy case where the character with
+		 different length representation of lower and upper
+		 case is present at or after offset.  */
+	      if (pstr->valid_len > offset
+		  && mid == offset && pstr->offsets[mid] == offset)
+		{
+		  memmove (pstr->wcs, pstr->wcs + offset,
+			   (pstr->valid_len - offset) * sizeof (wint_t));
+		  memmove (pstr->mbs, pstr->mbs + offset, pstr->valid_len - offset);
+		  pstr->valid_len -= offset;
+		  pstr->valid_raw_len -= offset;
+		  for (low = 0; low < pstr->valid_len; low++)
+		    pstr->offsets[low] = pstr->offsets[low + offset] - offset;
+		}
+	      else
+		{
+		  /* Otherwise, just find out how long the partial multibyte
+		     character at offset is and fill it with WEOF/255.  */
+		  pstr->len = pstr->raw_len - idx + offset;
+		  pstr->stop = pstr->raw_stop - idx + offset;
+		  pstr->offsets_needed = 0;
+		  while (mid > 0 && pstr->offsets[mid - 1] == offset)
+		    --mid;
+		  while (mid < pstr->valid_len)
+		    if (pstr->wcs[mid] != WEOF)
+		      break;
+		    else
+		      ++mid;
+		  if (mid == pstr->valid_len)
+		    pstr->valid_len = 0;
+		  else
+		    {
+		      pstr->valid_len = pstr->offsets[mid] - offset;
+		      if (pstr->valid_len)
+			{
+			  for (low = 0; low < pstr->valid_len; ++low)
+			    pstr->wcs[low] = WEOF;
+			  memset (pstr->mbs, 255, pstr->valid_len);
+			}
+		    }
+		  pstr->valid_raw_len = pstr->valid_len;
+		}
+	    }
+	  else
+#endif
+	    {
+	      pstr->tip_context = re_string_context_at (pstr, offset - 1,
+							eflags);
+#ifdef RE_ENABLE_I18N
+	      if (pstr->mb_cur_max > 1)
+		memmove (pstr->wcs, pstr->wcs + offset,
+			 (pstr->valid_len - offset) * sizeof (wint_t));
+#endif /* RE_ENABLE_I18N */
+	      if (BE (pstr->mbs_allocated, 0))
+		memmove (pstr->mbs, pstr->mbs + offset,
+			 pstr->valid_len - offset);
+	      pstr->valid_len -= offset;
+	      pstr->valid_raw_len -= offset;
+#if DEBUG
+	      assert (pstr->valid_len > 0);
+#endif
+	    }
+	}
+      else
+	{
+	  /* No, skip all characters until IDX.  */
+	  int prev_valid_len = pstr->valid_len;
+
+#ifdef RE_ENABLE_I18N
+	  if (BE (pstr->offsets_needed, 0))
+	    {
+	      pstr->len = pstr->raw_len - idx + offset;
+	      pstr->stop = pstr->raw_stop - idx + offset;
+	      pstr->offsets_needed = 0;
+	    }
+#endif
+	  pstr->valid_len = 0;
+#ifdef RE_ENABLE_I18N
+	  if (pstr->mb_cur_max > 1)
+	    {
+	      int wcs_idx;
+	      wint_t wc = WEOF;
+
+	      if (pstr->is_utf8)
+		{
+		  const unsigned char *raw, *p, *q, *end;
+
+		  /* Special case UTF-8.  Multi-byte chars start with any
+		     byte other than 0x80 - 0xbf.  */
+		  raw = pstr->raw_mbs + pstr->raw_mbs_idx;
+		  end = raw + (offset - pstr->mb_cur_max);
+		  if (end < pstr->raw_mbs)
+		    end = pstr->raw_mbs;
+		  p = raw + offset - 1;
+#ifdef _LIBC
+		  /* We know the wchar_t encoding is UCS4, so for the simple
+		     case, ASCII characters, skip the conversion step.  */
+		  if (isascii (*p) && BE (pstr->trans == NULL, 1))
+		    {
+		      memset (&pstr->cur_state, '\0', sizeof (mbstate_t));
+		      /* pstr->valid_len = 0; */
+		      wc = (wchar_t) *p;
+		    }
+		  else
+#endif
+		    for (; p >= end; --p)
+		      if ((*p & 0xc0) != 0x80)
+			{
+			  mbstate_t cur_state;
+			  wchar_t wc2;
+			  int mlen = raw + pstr->len - p;
+			  unsigned char buf[6];
+			  size_t mbclen;
+
+			  q = p;
+			  if (BE (pstr->trans != NULL, 0))
+			    {
+			      int i = mlen < 6 ? mlen : 6;
+			      while (--i >= 0)
+				buf[i] = pstr->trans[p[i]];
+			      q = buf;
+			    }
+			  /* XXX Don't use mbrtowc, we know which conversion
+			     to use (UTF-8 -> UCS4).  */
+			  memset (&cur_state, 0, sizeof (cur_state));
+			  mbclen = mbrtowc (&wc2, (const char *) p, mlen,
+					    &cur_state);
+			  if (raw + offset - p <= mbclen
+			      && mbclen < (size_t) -2)
+			    {
+			      memset (&pstr->cur_state, '\0',
+				      sizeof (mbstate_t));
+			      pstr->valid_len = mbclen - (raw + offset - p);
+			      wc = wc2;
+			    }
+			  break;
+			}
+		}
+
+	      if (wc == WEOF)
+		pstr->valid_len = re_string_skip_chars (pstr, idx, &wc) - idx;
+	      if (wc == WEOF)
+		pstr->tip_context
+		  = re_string_context_at (pstr, prev_valid_len - 1, eflags);
+	      else
+		pstr->tip_context = ((BE (pstr->word_ops_used != 0, 0)
+				      && IS_WIDE_WORD_CHAR (wc))
+				     ? CONTEXT_WORD
+				     : ((IS_WIDE_NEWLINE (wc)
+					 && pstr->newline_anchor)
+					? CONTEXT_NEWLINE : 0));
+	      if (BE (pstr->valid_len, 0))
+		{
+		  for (wcs_idx = 0; wcs_idx < pstr->valid_len; ++wcs_idx)
+		    pstr->wcs[wcs_idx] = WEOF;
+		  if (pstr->mbs_allocated)
+		    memset (pstr->mbs, 255, pstr->valid_len);
+		}
+	      pstr->valid_raw_len = pstr->valid_len;
+	    }
+	  else
+#endif /* RE_ENABLE_I18N */
+	    {
+	      int c = pstr->raw_mbs[pstr->raw_mbs_idx + offset - 1];
+	      pstr->valid_raw_len = 0;
+	      if (pstr->trans)
+		c = pstr->trans[c];
+	      pstr->tip_context = (bitset_contain (pstr->word_char, c)
+				   ? CONTEXT_WORD
+				   : ((IS_NEWLINE (c) && pstr->newline_anchor)
+				      ? CONTEXT_NEWLINE : 0));
+	    }
+	}
+      if (!BE (pstr->mbs_allocated, 0))
+	pstr->mbs += offset;
+    }
+  pstr->raw_mbs_idx = idx;
+  pstr->len -= offset;
+  pstr->stop -= offset;
+
+  /* Then build the buffers.  */
+#ifdef RE_ENABLE_I18N
+  if (pstr->mb_cur_max > 1)
+    {
+      if (pstr->icase)
+	{
+	  reg_errcode_t ret = build_wcs_upper_buffer (pstr);
+	  if (BE (ret != REG_NOERROR, 0))
+	    return ret;
+	}
+      else
+	build_wcs_buffer (pstr);
+    }
+  else
+#endif /* RE_ENABLE_I18N */
+    if (BE (pstr->mbs_allocated, 0))
+      {
+	if (pstr->icase)
+	  build_upper_buffer (pstr);
+	else if (pstr->trans != NULL)
+	  re_string_translate_buffer (pstr);
+      }
+    else
+      pstr->valid_len = pstr->len;
+
+  pstr->cur_idx = 0;
+  return REG_NOERROR;
+}
+
+static unsigned char
+internal_function __attribute ((pure))
+re_string_peek_byte_case (const re_string_t *pstr, int idx)
+{
+  int ch, off;
+
+  /* Handle the common (easiest) cases first.  */
+  if (BE (!pstr->mbs_allocated, 1))
+    return re_string_peek_byte (pstr, idx);
+
+#ifdef RE_ENABLE_I18N
+  if (pstr->mb_cur_max > 1
+      && ! re_string_is_single_byte_char (pstr, pstr->cur_idx + idx))
+    return re_string_peek_byte (pstr, idx);
+#endif
+
+  off = pstr->cur_idx + idx;
+#ifdef RE_ENABLE_I18N
+  if (pstr->offsets_needed)
+    off = pstr->offsets[off];
+#endif
+
+  ch = pstr->raw_mbs[pstr->raw_mbs_idx + off];
+
+#ifdef RE_ENABLE_I18N
+  /* Ensure that e.g. for tr_TR.UTF-8 BACKSLASH DOTLESS SMALL LETTER I
+     this function returns CAPITAL LETTER I instead of first byte of
+     DOTLESS SMALL LETTER I.  The latter would confuse the parser,
+     since peek_byte_case doesn't advance cur_idx in any way.  */
+  if (pstr->offsets_needed && !isascii (ch))
+    return re_string_peek_byte (pstr, idx);
+#endif
+
+  return ch;
+}
+
+static unsigned char
+internal_function __attribute ((pure))
+re_string_fetch_byte_case (re_string_t *pstr)
+{
+  if (BE (!pstr->mbs_allocated, 1))
+    return re_string_fetch_byte (pstr);
+
+#ifdef RE_ENABLE_I18N
+  if (pstr->offsets_needed)
+    {
+      int off, ch;
+
+      /* For tr_TR.UTF-8 [[:islower:]] there is
+	 [[: CAPITAL LETTER I WITH DOT lower:]] in mbs.  Skip
+	 in that case the whole multi-byte character and return
+	 the original letter.  On the other side, with
+	 [[: DOTLESS SMALL LETTER I return [[:I, as doing
+	 anything else would complicate things too much.  */
+
+      if (!re_string_first_byte (pstr, pstr->cur_idx))
+	return re_string_fetch_byte (pstr);
+
+      off = pstr->offsets[pstr->cur_idx];
+      ch = pstr->raw_mbs[pstr->raw_mbs_idx + off];
+
+      if (! isascii (ch))
+	return re_string_fetch_byte (pstr);
+
+      re_string_skip_bytes (pstr,
+			    re_string_char_size_at (pstr, pstr->cur_idx));
+      return ch;
+    }
+#endif
+
+  return pstr->raw_mbs[pstr->raw_mbs_idx + pstr->cur_idx++];
+}
+
+static void
+internal_function
+re_string_destruct (re_string_t *pstr)
+{
+#ifdef RE_ENABLE_I18N
+  re_free (pstr->wcs);
+  re_free (pstr->offsets);
+#endif /* RE_ENABLE_I18N  */
+  if (pstr->mbs_allocated)
+    re_free (pstr->mbs);
+}
+
+/* Return the context at IDX in INPUT.  */
+
+static unsigned int
+internal_function
+re_string_context_at (const re_string_t *input, int idx, int eflags)
+{
+  int c;
+  if (BE (idx < 0, 0))
+    /* In this case, we use the value stored in input->tip_context,
+       since we can't know the character in input->mbs[-1] here.  */
+    return input->tip_context;
+  if (BE (idx == input->len, 0))
+    return ((eflags & REG_NOTEOL) ? CONTEXT_ENDBUF
+	    : CONTEXT_NEWLINE | CONTEXT_ENDBUF);
+#ifdef RE_ENABLE_I18N
+  if (input->mb_cur_max > 1)
+    {
+      wint_t wc;
+      int wc_idx = idx;
+      while(input->wcs[wc_idx] == WEOF)
+	{
+#ifdef DEBUG
+	  /* It must not happen.  */
+	  assert (wc_idx >= 0);
+#endif
+	  --wc_idx;
+	  if (wc_idx < 0)
+	    return input->tip_context;
+	}
+      wc = input->wcs[wc_idx];
+      if (BE (input->word_ops_used != 0, 0) && IS_WIDE_WORD_CHAR (wc))
+	return CONTEXT_WORD;
+      return (IS_WIDE_NEWLINE (wc) && input->newline_anchor
+	      ? CONTEXT_NEWLINE : 0);
+    }
+  else
+#endif
+    {
+      c = re_string_byte_at (input, idx);
+      if (bitset_contain (input->word_char, c))
+	return CONTEXT_WORD;
+      return IS_NEWLINE (c) && input->newline_anchor ? CONTEXT_NEWLINE : 0;
+    }
+}
+
+/* Functions for set operation.  */
+
+static reg_errcode_t
+internal_function
+re_node_set_alloc (re_node_set *set, int size)
+{
+  set->alloc = size;
+  set->nelem = 0;
+  set->elems = re_malloc (int, size);
+  if (BE (set->elems == NULL, 0))
+    return REG_ESPACE;
+  return REG_NOERROR;
+}
+
+static reg_errcode_t
+internal_function
+re_node_set_init_1 (re_node_set *set, int elem)
+{
+  set->alloc = 1;
+  set->nelem = 1;
+  set->elems = re_malloc (int, 1);
+  if (BE (set->elems == NULL, 0))
+    {
+      set->alloc = set->nelem = 0;
+      return REG_ESPACE;
+    }
+  set->elems[0] = elem;
+  return REG_NOERROR;
+}
+
+static reg_errcode_t
+internal_function
+re_node_set_init_2 (re_node_set *set, int elem1, int elem2)
+{
+  set->alloc = 2;
+  set->elems = re_malloc (int, 2);
+  if (BE (set->elems == NULL, 0))
+    return REG_ESPACE;
+  if (elem1 == elem2)
+    {
+      set->nelem = 1;
+      set->elems[0] = elem1;
+    }
+  else
+    {
+      set->nelem = 2;
+      if (elem1 < elem2)
+	{
+	  set->elems[0] = elem1;
+	  set->elems[1] = elem2;
+	}
+      else
+	{
+	  set->elems[0] = elem2;
+	  set->elems[1] = elem1;
+	}
+    }
+  return REG_NOERROR;
+}
+
+static reg_errcode_t
+internal_function
+re_node_set_init_copy (re_node_set *dest, const re_node_set *src)
+{
+  dest->nelem = src->nelem;
+  if (src->nelem > 0)
+    {
+      dest->alloc = dest->nelem;
+      dest->elems = re_malloc (int, dest->alloc);
+      if (BE (dest->elems == NULL, 0))
+	{
+	  dest->alloc = dest->nelem = 0;
+	  return REG_ESPACE;
+	}
+      memcpy (dest->elems, src->elems, src->nelem * sizeof (int));
+    }
+  else
+    re_node_set_init_empty (dest);
+  return REG_NOERROR;
+}
+
+/* Calculate the intersection of the sets SRC1 and SRC2. And merge it to
+   DEST. Return value indicate the error code or REG_NOERROR if succeeded.
+   Note: We assume dest->elems is NULL, when dest->alloc is 0.  */
+
+static reg_errcode_t
+internal_function
+re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1,
+			   const re_node_set *src2)
+{
+  int i1, i2, is, id, delta, sbase;
+  if (src1->nelem == 0 || src2->nelem == 0)
+    return REG_NOERROR;
+
+  /* We need dest->nelem + 2 * elems_in_intersection; this is a
+     conservative estimate.  */
+  if (src1->nelem + src2->nelem + dest->nelem > dest->alloc)
+    {
+      int new_alloc = src1->nelem + src2->nelem + dest->alloc;
+      int *new_elems = re_realloc (dest->elems, int, new_alloc);
+      if (BE (new_elems == NULL, 0))
+        return REG_ESPACE;
+      dest->elems = new_elems;
+      dest->alloc = new_alloc;
+    }
+
+  /* Find the items in the intersection of SRC1 and SRC2, and copy
+     into the top of DEST those that are not already in DEST itself.  */
+  sbase = dest->nelem + src1->nelem + src2->nelem;
+  i1 = src1->nelem - 1;
+  i2 = src2->nelem - 1;
+  id = dest->nelem - 1;
+  for (;;)
+    {
+      if (src1->elems[i1] == src2->elems[i2])
+	{
+	  /* Try to find the item in DEST.  Maybe we could binary search?  */
+	  while (id >= 0 && dest->elems[id] > src1->elems[i1])
+	    --id;
+
+          if (id < 0 || dest->elems[id] != src1->elems[i1])
+            dest->elems[--sbase] = src1->elems[i1];
+
+	  if (--i1 < 0 || --i2 < 0)
+	    break;
+	}
+
+      /* Lower the highest of the two items.  */
+      else if (src1->elems[i1] < src2->elems[i2])
+	{
+	  if (--i2 < 0)
+	    break;
+	}
+      else
+	{
+	  if (--i1 < 0)
+	    break;
+	}
+    }
+
+  id = dest->nelem - 1;
+  is = dest->nelem + src1->nelem + src2->nelem - 1;
+  delta = is - sbase + 1;
+
+  /* Now copy.  When DELTA becomes zero, the remaining
+     DEST elements are already in place; this is more or
+     less the same loop that is in re_node_set_merge.  */
+  dest->nelem += delta;
+  if (delta > 0 && id >= 0)
+    for (;;)
+      {
+        if (dest->elems[is] > dest->elems[id])
+          {
+            /* Copy from the top.  */
+            dest->elems[id + delta--] = dest->elems[is--];
+            if (delta == 0)
+              break;
+          }
+        else
+          {
+            /* Slide from the bottom.  */
+            dest->elems[id + delta] = dest->elems[id];
+            if (--id < 0)
+              break;
+          }
+      }
+
+  /* Copy remaining SRC elements.  */
+  memcpy (dest->elems, dest->elems + sbase, delta * sizeof (int));
+
+  return REG_NOERROR;
+}
+
+/* Calculate the union set of the sets SRC1 and SRC2. And store it to
+   DEST. Return value indicate the error code or REG_NOERROR if succeeded.  */
+
+static reg_errcode_t
+internal_function
+re_node_set_init_union (re_node_set *dest, const re_node_set *src1,
+			const re_node_set *src2)
+{
+  int i1, i2, id;
+  if (src1 != NULL && src1->nelem > 0 && src2 != NULL && src2->nelem > 0)
+    {
+      dest->alloc = src1->nelem + src2->nelem;
+      dest->elems = re_malloc (int, dest->alloc);
+      if (BE (dest->elems == NULL, 0))
+	return REG_ESPACE;
+    }
+  else
+    {
+      if (src1 != NULL && src1->nelem > 0)
+	return re_node_set_init_copy (dest, src1);
+      else if (src2 != NULL && src2->nelem > 0)
+	return re_node_set_init_copy (dest, src2);
+      else
+	re_node_set_init_empty (dest);
+      return REG_NOERROR;
+    }
+  for (i1 = i2 = id = 0 ; i1 < src1->nelem && i2 < src2->nelem ;)
+    {
+      if (src1->elems[i1] > src2->elems[i2])
+	{
+	  dest->elems[id++] = src2->elems[i2++];
+	  continue;
+	}
+      if (src1->elems[i1] == src2->elems[i2])
+	++i2;
+      dest->elems[id++] = src1->elems[i1++];
+    }
+  if (i1 < src1->nelem)
+    {
+      memcpy (dest->elems + id, src1->elems + i1,
+	     (src1->nelem - i1) * sizeof (int));
+      id += src1->nelem - i1;
+    }
+  else if (i2 < src2->nelem)
+    {
+      memcpy (dest->elems + id, src2->elems + i2,
+	     (src2->nelem - i2) * sizeof (int));
+      id += src2->nelem - i2;
+    }
+  dest->nelem = id;
+  return REG_NOERROR;
+}
+
+/* Calculate the union set of the sets DEST and SRC. And store it to
+   DEST. Return value indicate the error code or REG_NOERROR if succeeded.  */
+
+static reg_errcode_t
+internal_function
+re_node_set_merge (re_node_set *dest, const re_node_set *src)
+{
+  int is, id, sbase, delta;
+  if (src == NULL || src->nelem == 0)
+    return REG_NOERROR;
+  if (dest->alloc < 2 * src->nelem + dest->nelem)
+    {
+      int new_alloc = 2 * (src->nelem + dest->alloc);
+      int *new_buffer = re_realloc (dest->elems, int, new_alloc);
+      if (BE (new_buffer == NULL, 0))
+	return REG_ESPACE;
+      dest->elems = new_buffer;
+      dest->alloc = new_alloc;
+    }
+
+  if (BE (dest->nelem == 0, 0))
+    {
+      dest->nelem = src->nelem;
+      memcpy (dest->elems, src->elems, src->nelem * sizeof (int));
+      return REG_NOERROR;
+    }
+
+  /* Copy into the top of DEST the items of SRC that are not
+     found in DEST.  Maybe we could binary search in DEST?  */
+  for (sbase = dest->nelem + 2 * src->nelem,
+       is = src->nelem - 1, id = dest->nelem - 1; is >= 0 && id >= 0; )
+    {
+      if (dest->elems[id] == src->elems[is])
+        is--, id--;
+      else if (dest->elems[id] < src->elems[is])
+        dest->elems[--sbase] = src->elems[is--];
+      else /* if (dest->elems[id] > src->elems[is]) */
+        --id;
+    }
+
+  if (is >= 0)
+    {
+      /* If DEST is exhausted, the remaining items of SRC must be unique.  */
+      sbase -= is + 1;
+      memcpy (dest->elems + sbase, src->elems, (is + 1) * sizeof (int));
+    }
+
+  id = dest->nelem - 1;
+  is = dest->nelem + 2 * src->nelem - 1;
+  delta = is - sbase + 1;
+  if (delta == 0)
+    return REG_NOERROR;
+
+  /* Now copy.  When DELTA becomes zero, the remaining
+     DEST elements are already in place.  */
+  dest->nelem += delta;
+  for (;;)
+    {
+      if (dest->elems[is] > dest->elems[id])
+        {
+	  /* Copy from the top.  */
+          dest->elems[id + delta--] = dest->elems[is--];
+	  if (delta == 0)
+	    break;
+	}
+      else
+        {
+          /* Slide from the bottom.  */
+          dest->elems[id + delta] = dest->elems[id];
+	  if (--id < 0)
+	    {
+	      /* Copy remaining SRC elements.  */
+	      memcpy (dest->elems, dest->elems + sbase,
+	              delta * sizeof (int));
+	      break;
+	    }
+	}
+    }
+
+  return REG_NOERROR;
+}
+
+/* Insert the new element ELEM to the re_node_set* SET.
+   SET should not already have ELEM.
+   return -1 if an error is occured, return 1 otherwise.  */
+
+static int
+internal_function
+re_node_set_insert (re_node_set *set, int elem)
+{
+  int idx;
+  /* In case the set is empty.  */
+  if (set->alloc == 0)
+    {
+      if (BE (re_node_set_init_1 (set, elem) == REG_NOERROR, 1))
+	return 1;
+      else
+	return -1;
+    }
+
+  if (BE (set->nelem, 0) == 0)
+    {
+      /* We already guaranteed above that set->alloc != 0.  */
+      set->elems[0] = elem;
+      ++set->nelem;
+      return 1;
+    }
+
+  /* Realloc if we need.  */
+  if (set->alloc == set->nelem)
+    {
+      int *new_elems;
+      set->alloc = set->alloc * 2;
+      new_elems = re_realloc (set->elems, int, set->alloc);
+      if (BE (new_elems == NULL, 0))
+	return -1;
+      set->elems = new_elems;
+    }
+
+  /* Move the elements which follows the new element.  Test the
+     first element separately to skip a check in the inner loop.  */
+  if (elem < set->elems[0])
+    {
+      idx = 0;
+      for (idx = set->nelem; idx > 0; idx--)
+        set->elems[idx] = set->elems[idx - 1];
+    }
+  else
+    {
+      for (idx = set->nelem; set->elems[idx - 1] > elem; idx--)
+        set->elems[idx] = set->elems[idx - 1];
+    }
+
+  /* Insert the new element.  */
+  set->elems[idx] = elem;
+  ++set->nelem;
+  return 1;
+}
+
+/* Insert the new element ELEM to the re_node_set* SET.
+   SET should not already have any element greater than or equal to ELEM.
+   Return -1 if an error is occured, return 1 otherwise.  */
+
+static int
+internal_function
+re_node_set_insert_last (re_node_set *set, int elem)
+{
+  /* Realloc if we need.  */
+  if (set->alloc == set->nelem)
+    {
+      int *new_elems;
+      set->alloc = (set->alloc + 1) * 2;
+      new_elems = re_realloc (set->elems, int, set->alloc);
+      if (BE (new_elems == NULL, 0))
+	return -1;
+      set->elems = new_elems;
+    }
+
+  /* Insert the new element.  */
+  set->elems[set->nelem++] = elem;
+  return 1;
+}
+
+/* Compare two node sets SET1 and SET2.
+   return 1 if SET1 and SET2 are equivalent, return 0 otherwise.  */
+
+static int
+internal_function __attribute ((pure))
+re_node_set_compare (const re_node_set *set1, const re_node_set *set2)
+{
+  int i;
+  if (set1 == NULL || set2 == NULL || set1->nelem != set2->nelem)
+    return 0;
+  for (i = set1->nelem ; --i >= 0 ; )
+    if (set1->elems[i] != set2->elems[i])
+      return 0;
+  return 1;
+}
+
+/* Return (idx + 1) if SET contains the element ELEM, return 0 otherwise.  */
+
+static int
+internal_function __attribute ((pure))
+re_node_set_contains (const re_node_set *set, int elem)
+{
+  unsigned int idx, right, mid;
+  if (set->nelem <= 0)
+    return 0;
+
+  /* Binary search the element.  */
+  idx = 0;
+  right = set->nelem - 1;
+  while (idx < right)
+    {
+      mid = (idx + right) / 2;
+      if (set->elems[mid] < elem)
+	idx = mid + 1;
+      else
+	right = mid;
+    }
+  return set->elems[idx] == elem ? idx + 1 : 0;
+}
+
+static void
+internal_function
+re_node_set_remove_at (re_node_set *set, int idx)
+{
+  if (idx < 0 || idx >= set->nelem)
+    return;
+  --set->nelem;
+  for (; idx < set->nelem; idx++)
+    set->elems[idx] = set->elems[idx + 1];
+}
+
+
+/* Add the token TOKEN to dfa->nodes, and return the index of the token.
+   Or return -1, if an error will be occured.  */
+
+static int
+internal_function
+re_dfa_add_node (re_dfa_t *dfa, re_token_t token)
+{
+  int type = token.type;
+  if (BE (dfa->nodes_len >= dfa->nodes_alloc, 0))
+    {
+      size_t new_nodes_alloc = dfa->nodes_alloc * 2;
+      int *new_nexts, *new_indices;
+      re_node_set *new_edests, *new_eclosures;
+      re_token_t *new_nodes;
+
+      /* Avoid overflows.  */
+      if (BE (new_nodes_alloc < dfa->nodes_alloc, 0))
+	return -1;
+
+      new_nodes = re_realloc (dfa->nodes, re_token_t, new_nodes_alloc);
+      if (BE (new_nodes == NULL, 0))
+	return -1;
+      dfa->nodes = new_nodes;
+      new_nexts = re_realloc (dfa->nexts, int, new_nodes_alloc);
+      new_indices = re_realloc (dfa->org_indices, int, new_nodes_alloc);
+      new_edests = re_realloc (dfa->edests, re_node_set, new_nodes_alloc);
+      new_eclosures = re_realloc (dfa->eclosures, re_node_set, new_nodes_alloc);
+      if (BE (new_nexts == NULL || new_indices == NULL
+	      || new_edests == NULL || new_eclosures == NULL, 0))
+	return -1;
+      dfa->nexts = new_nexts;
+      dfa->org_indices = new_indices;
+      dfa->edests = new_edests;
+      dfa->eclosures = new_eclosures;
+      dfa->nodes_alloc = new_nodes_alloc;
+    }
+  dfa->nodes[dfa->nodes_len] = token;
+  dfa->nodes[dfa->nodes_len].constraint = 0;
+#ifdef RE_ENABLE_I18N
+  dfa->nodes[dfa->nodes_len].accept_mb =
+    (type == OP_PERIOD && dfa->mb_cur_max > 1) || type == COMPLEX_BRACKET;
+#endif
+  dfa->nexts[dfa->nodes_len] = -1;
+  re_node_set_init_empty (dfa->edests + dfa->nodes_len);
+  re_node_set_init_empty (dfa->eclosures + dfa->nodes_len);
+  return dfa->nodes_len++;
+}
+
+static inline unsigned int
+internal_function
+calc_state_hash (const re_node_set *nodes, unsigned int context)
+{
+  unsigned int hash = nodes->nelem + context;
+  int i;
+  for (i = 0 ; i < nodes->nelem ; i++)
+    hash += nodes->elems[i];
+  return hash;
+}
+
+/* Search for the state whose node_set is equivalent to NODES.
+   Return the pointer to the state, if we found it in the DFA.
+   Otherwise create the new one and return it.  In case of an error
+   return NULL and set the error code in ERR.
+   Note: - We assume NULL as the invalid state, then it is possible that
+	   return value is NULL and ERR is REG_NOERROR.
+	 - We never return non-NULL value in case of any errors, it is for
+	   optimization.  */
+
+static re_dfastate_t *
+internal_function
+re_acquire_state (reg_errcode_t *err, const re_dfa_t *dfa,
+		  const re_node_set *nodes)
+{
+  unsigned int hash;
+  re_dfastate_t *new_state;
+  struct re_state_table_entry *spot;
+  int i;
+  if (BE (nodes->nelem == 0, 0))
+    {
+      *err = REG_NOERROR;
+      return NULL;
+    }
+  hash = calc_state_hash (nodes, 0);
+  spot = dfa->state_table + (hash & dfa->state_hash_mask);
+
+  for (i = 0 ; i < spot->num ; i++)
+    {
+      re_dfastate_t *state = spot->array[i];
+      if (hash != state->hash)
+	continue;
+      if (re_node_set_compare (&state->nodes, nodes))
+	return state;
+    }
+
+  /* There are no appropriate state in the dfa, create the new one.  */
+  new_state = create_ci_newstate (dfa, nodes, hash);
+  if (BE (new_state == NULL, 0))
+    *err = REG_ESPACE;
+
+  return new_state;
+}
+
+/* Search for the state whose node_set is equivalent to NODES and
+   whose context is equivalent to CONTEXT.
+   Return the pointer to the state, if we found it in the DFA.
+   Otherwise create the new one and return it.  In case of an error
+   return NULL and set the error code in ERR.
+   Note: - We assume NULL as the invalid state, then it is possible that
+	   return value is NULL and ERR is REG_NOERROR.
+	 - We never return non-NULL value in case of any errors, it is for
+	   optimization.  */
+
+static re_dfastate_t *
+internal_function
+re_acquire_state_context (reg_errcode_t *err, const re_dfa_t *dfa,
+			  const re_node_set *nodes, unsigned int context)
+{
+  unsigned int hash;
+  re_dfastate_t *new_state;
+  struct re_state_table_entry *spot;
+  int i;
+  if (nodes->nelem == 0)
+    {
+      *err = REG_NOERROR;
+      return NULL;
+    }
+  hash = calc_state_hash (nodes, context);
+  spot = dfa->state_table + (hash & dfa->state_hash_mask);
+
+  for (i = 0 ; i < spot->num ; i++)
+    {
+      re_dfastate_t *state = spot->array[i];
+      if (state->hash == hash
+	  && state->context == context
+	  && re_node_set_compare (state->entrance_nodes, nodes))
+	return state;
+    }
+  /* There are no appropriate state in `dfa', create the new one.  */
+  new_state = create_cd_newstate (dfa, nodes, context, hash);
+  if (BE (new_state == NULL, 0))
+    *err = REG_ESPACE;
+
+  return new_state;
+}
+
+/* Finish initialization of the new state NEWSTATE, and using its hash value
+   HASH put in the appropriate bucket of DFA's state table.  Return value
+   indicates the error code if failed.  */
+
+static reg_errcode_t
+register_state (const re_dfa_t *dfa, re_dfastate_t *newstate,
+		unsigned int hash)
+{
+  struct re_state_table_entry *spot;
+  reg_errcode_t err;
+  int i;
+
+  newstate->hash = hash;
+  err = re_node_set_alloc (&newstate->non_eps_nodes, newstate->nodes.nelem);
+  if (BE (err != REG_NOERROR, 0))
+    return REG_ESPACE;
+  for (i = 0; i < newstate->nodes.nelem; i++)
+    {
+      int elem = newstate->nodes.elems[i];
+      if (!IS_EPSILON_NODE (dfa->nodes[elem].type))
+        re_node_set_insert_last (&newstate->non_eps_nodes, elem);
+    }
+
+  spot = dfa->state_table + (hash & dfa->state_hash_mask);
+  if (BE (spot->alloc <= spot->num, 0))
+    {
+      int new_alloc = 2 * spot->num + 2;
+      re_dfastate_t **new_array = re_realloc (spot->array, re_dfastate_t *,
+					      new_alloc);
+      if (BE (new_array == NULL, 0))
+	return REG_ESPACE;
+      spot->array = new_array;
+      spot->alloc = new_alloc;
+    }
+  spot->array[spot->num++] = newstate;
+  return REG_NOERROR;
+}
+
+static void
+free_state (re_dfastate_t *state)
+{
+  re_node_set_free (&state->non_eps_nodes);
+  re_node_set_free (&state->inveclosure);
+  if (state->entrance_nodes != &state->nodes)
+    {
+      re_node_set_free (state->entrance_nodes);
+      re_free (state->entrance_nodes);
+    }
+  re_node_set_free (&state->nodes);
+  re_free (state->word_trtable);
+  re_free (state->trtable);
+  re_free (state);
+}
+
+/* Create the new state which is independ of contexts.
+   Return the new state if succeeded, otherwise return NULL.  */
+
+static re_dfastate_t *
+internal_function
+create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes,
+		    unsigned int hash)
+{
+  int i;
+  reg_errcode_t err;
+  re_dfastate_t *newstate;
+
+  newstate = (re_dfastate_t *) calloc (sizeof (re_dfastate_t), 1);
+  if (BE (newstate == NULL, 0))
+    return NULL;
+  err = re_node_set_init_copy (&newstate->nodes, nodes);
+  if (BE (err != REG_NOERROR, 0))
+    {
+      re_free (newstate);
+      return NULL;
+    }
+
+  newstate->entrance_nodes = &newstate->nodes;
+  for (i = 0 ; i < nodes->nelem ; i++)
+    {
+      re_token_t *node = dfa->nodes + nodes->elems[i];
+      re_token_type_t type = node->type;
+      if (type == CHARACTER && !node->constraint)
+	continue;
+#ifdef RE_ENABLE_I18N
+      newstate->accept_mb |= node->accept_mb;
+#endif /* RE_ENABLE_I18N */
+
+      /* If the state has the halt node, the state is a halt state.  */
+      if (type == END_OF_RE)
+	newstate->halt = 1;
+      else if (type == OP_BACK_REF)
+	newstate->has_backref = 1;
+      else if (type == ANCHOR || node->constraint)
+	newstate->has_constraint = 1;
+    }
+  err = register_state (dfa, newstate, hash);
+  if (BE (err != REG_NOERROR, 0))
+    {
+      free_state (newstate);
+      newstate = NULL;
+    }
+  return newstate;
+}
+
+/* Create the new state which is depend on the context CONTEXT.
+   Return the new state if succeeded, otherwise return NULL.  */
+
+static re_dfastate_t *
+internal_function
+create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes,
+		    unsigned int context, unsigned int hash)
+{
+  int i, nctx_nodes = 0;
+  reg_errcode_t err;
+  re_dfastate_t *newstate;
+
+  newstate = (re_dfastate_t *) calloc (sizeof (re_dfastate_t), 1);
+  if (BE (newstate == NULL, 0))
+    return NULL;
+  err = re_node_set_init_copy (&newstate->nodes, nodes);
+  if (BE (err != REG_NOERROR, 0))
+    {
+      re_free (newstate);
+      return NULL;
+    }
+
+  newstate->context = context;
+  newstate->entrance_nodes = &newstate->nodes;
+
+  for (i = 0 ; i < nodes->nelem ; i++)
+    {
+      unsigned int constraint = 0;
+      re_token_t *node = dfa->nodes + nodes->elems[i];
+      re_token_type_t type = node->type;
+      if (node->constraint)
+	constraint = node->constraint;
+
+      if (type == CHARACTER && !constraint)
+	continue;
+#ifdef RE_ENABLE_I18N
+      newstate->accept_mb |= node->accept_mb;
+#endif /* RE_ENABLE_I18N */
+
+      /* If the state has the halt node, the state is a halt state.  */
+      if (type == END_OF_RE)
+	newstate->halt = 1;
+      else if (type == OP_BACK_REF)
+	newstate->has_backref = 1;
+      else if (type == ANCHOR)
+	constraint = node->opr.ctx_type;
+
+      if (constraint)
+	{
+	  if (newstate->entrance_nodes == &newstate->nodes)
+	    {
+	      newstate->entrance_nodes = re_malloc (re_node_set, 1);
+	      if (BE (newstate->entrance_nodes == NULL, 0))
+		{
+		  free_state (newstate);
+		  return NULL;
+		}
+	      re_node_set_init_copy (newstate->entrance_nodes, nodes);
+	      nctx_nodes = 0;
+	      newstate->has_constraint = 1;
+	    }
+
+	  if (NOT_SATISFY_PREV_CONSTRAINT (constraint,context))
+	    {
+	      re_node_set_remove_at (&newstate->nodes, i - nctx_nodes);
+	      ++nctx_nodes;
+	    }
+	}
+    }
+  err = register_state (dfa, newstate, hash);
+  if (BE (err != REG_NOERROR, 0))
+    {
+      free_state (newstate);
+      newstate = NULL;
+    }
+  return  newstate;
+}
diff --git a/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/regex_internal.h b/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/regex_internal.h
new file mode 100755
index 0000000000000000000000000000000000000000..b0c4d355abbe8cd3de178c927f23ac6f79229b73
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/regex_internal.h
@@ -0,0 +1,778 @@
+/* Extended regular expression matching and search library.
+   Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#ifndef _REGEX_INTERNAL_H
+#define _REGEX_INTERNAL_H 1
+
+#include <assert.h>
+#include <ctype.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#if defined(__MINGW32_VERSION) || defined(_MSC_VER)
+#define strcasecmp stricmp
+#endif
+
+#if defined HAVE_LANGINFO_H || defined HAVE_LANGINFO_CODESET || defined _LIBC
+# include <langinfo.h>
+#endif
+#if defined HAVE_LOCALE_H || defined _LIBC
+# include <locale.h>
+#endif
+#if defined HAVE_WCHAR_H || defined _LIBC
+# include <wchar.h>
+#endif /* HAVE_WCHAR_H || _LIBC */
+#if defined HAVE_WCTYPE_H || defined _LIBC
+# include <wctype.h>
+#endif /* HAVE_WCTYPE_H || _LIBC */
+#if defined HAVE_STDBOOL_H || defined _LIBC
+# include <stdbool.h>
+#else
+typedef enum { false, true } bool;
+#endif /* HAVE_STDBOOL_H || _LIBC */
+#if defined HAVE_STDINT_H || defined _LIBC
+# include <stdint.h>
+#endif /* HAVE_STDINT_H || _LIBC */
+#if defined _LIBC
+# include <bits/libc-lock.h>
+#else
+# define __libc_lock_define(CLASS,NAME)
+# define __libc_lock_init(NAME) do { } while (0)
+# define __libc_lock_lock(NAME) do { } while (0)
+# define __libc_lock_unlock(NAME) do { } while (0)
+#endif
+
+/* In case that the system doesn't have isblank().  */
+#if !defined _LIBC && !defined HAVE_ISBLANK && !defined isblank
+# define isblank(ch) ((ch) == ' ' || (ch) == '\t')
+#endif
+
+#ifdef _LIBC
+# ifndef _RE_DEFINE_LOCALE_FUNCTIONS
+#  define _RE_DEFINE_LOCALE_FUNCTIONS 1
+#   include <locale/localeinfo.h>
+#   include <locale/elem-hash.h>
+#   include <locale/coll-lookup.h>
+# endif
+#endif
+
+/* This is for other GNU distributions with internationalized messages.  */
+#if (HAVE_LIBINTL_H && ENABLE_NLS) || defined _LIBC
+# include <libintl.h>
+# ifdef _LIBC
+#  undef gettext
+#  define gettext(msgid) \
+  INTUSE(__dcgettext) (_libc_intl_domainname, msgid, LC_MESSAGES)
+# endif
+#else
+# define gettext(msgid) (msgid)
+#endif
+
+#ifndef gettext_noop
+/* This define is so xgettext can find the internationalizable
+   strings.  */
+# define gettext_noop(String) String
+#endif
+
+/* For loser systems without the definition.  */
+#ifndef SIZE_MAX
+# define SIZE_MAX ((size_t) -1)
+#endif
+
+#if (defined MB_CUR_MAX && HAVE_LOCALE_H && HAVE_WCTYPE_H && HAVE_WCHAR_H && HAVE_WCRTOMB && HAVE_MBRTOWC && HAVE_WCSCOLL) || _LIBC
+# define RE_ENABLE_I18N
+#endif
+
+#if __GNUC__ >= 3
+# define BE(expr, val) __builtin_expect (expr, val)
+#else
+# define BE(expr, val) (expr)
+# define inline
+#endif
+
+/* Number of single byte character.  */
+#define SBC_MAX 256
+
+#define COLL_ELEM_LEN_MAX 8
+
+/* The character which represents newline.  */
+#define NEWLINE_CHAR '\n'
+#define WIDE_NEWLINE_CHAR L'\n'
+
+/* Rename to standard API for using out of glibc.  */
+#ifndef _LIBC
+# define __wctype wctype
+# define __iswctype iswctype
+# define __btowc btowc
+# define __mempcpy mempcpy
+# define __wcrtomb wcrtomb
+# define __regfree regfree
+# define attribute_hidden
+#endif /* not _LIBC */
+
+#ifdef __GNUC__
+# define __attribute(arg) __attribute__ (arg)
+#else
+# define __attribute(arg)
+#endif
+
+extern const char __re_error_msgid[] attribute_hidden;
+extern const size_t __re_error_msgid_idx[] attribute_hidden;
+
+/* An integer used to represent a set of bits.  It must be unsigned,
+   and must be at least as wide as unsigned int.  */
+typedef unsigned long int bitset_word_t;
+/* All bits set in a bitset_word_t.  */
+#define BITSET_WORD_MAX ULONG_MAX
+/* Number of bits in a bitset_word_t.  */
+#define BITSET_WORD_BITS (sizeof (bitset_word_t) * CHAR_BIT)
+/* Number of bitset_word_t in a bit_set.  */
+#define BITSET_WORDS (SBC_MAX / BITSET_WORD_BITS)
+typedef bitset_word_t bitset_t[BITSET_WORDS];
+typedef bitset_word_t *re_bitset_ptr_t;
+typedef const bitset_word_t *re_const_bitset_ptr_t;
+
+#define bitset_set(set,i) \
+  (set[i / BITSET_WORD_BITS] |= (bitset_word_t) 1 << i % BITSET_WORD_BITS)
+#define bitset_clear(set,i) \
+  (set[i / BITSET_WORD_BITS] &= ~((bitset_word_t) 1 << i % BITSET_WORD_BITS))
+#define bitset_contain(set,i) \
+  (set[i / BITSET_WORD_BITS] & ((bitset_word_t) 1 << i % BITSET_WORD_BITS))
+#define bitset_empty(set) memset (set, '\0', sizeof (bitset_t))
+#define bitset_set_all(set) memset (set, '\xff', sizeof (bitset_t))
+#define bitset_copy(dest,src) memcpy (dest, src, sizeof (bitset_t))
+
+#define PREV_WORD_CONSTRAINT 0x0001
+#define PREV_NOTWORD_CONSTRAINT 0x0002
+#define NEXT_WORD_CONSTRAINT 0x0004
+#define NEXT_NOTWORD_CONSTRAINT 0x0008
+#define PREV_NEWLINE_CONSTRAINT 0x0010
+#define NEXT_NEWLINE_CONSTRAINT 0x0020
+#define PREV_BEGBUF_CONSTRAINT 0x0040
+#define NEXT_ENDBUF_CONSTRAINT 0x0080
+#define WORD_DELIM_CONSTRAINT 0x0100
+#define NOT_WORD_DELIM_CONSTRAINT 0x0200
+
+typedef enum
+{
+  INSIDE_WORD = PREV_WORD_CONSTRAINT | NEXT_WORD_CONSTRAINT,
+  WORD_FIRST = PREV_NOTWORD_CONSTRAINT | NEXT_WORD_CONSTRAINT,
+  WORD_LAST = PREV_WORD_CONSTRAINT | NEXT_NOTWORD_CONSTRAINT,
+  INSIDE_NOTWORD = PREV_NOTWORD_CONSTRAINT | NEXT_NOTWORD_CONSTRAINT,
+  LINE_FIRST = PREV_NEWLINE_CONSTRAINT,
+  LINE_LAST = NEXT_NEWLINE_CONSTRAINT,
+  BUF_FIRST = PREV_BEGBUF_CONSTRAINT,
+  BUF_LAST = NEXT_ENDBUF_CONSTRAINT,
+  WORD_DELIM = WORD_DELIM_CONSTRAINT,
+  NOT_WORD_DELIM = NOT_WORD_DELIM_CONSTRAINT
+} re_context_type;
+
+typedef struct
+{
+  int alloc;
+  int nelem;
+  int *elems;
+} re_node_set;
+
+typedef enum
+{
+  NON_TYPE = 0,
+
+  /* Node type, These are used by token, node, tree.  */
+  CHARACTER = 1,
+  END_OF_RE = 2,
+  SIMPLE_BRACKET = 3,
+  OP_BACK_REF = 4,
+  OP_PERIOD = 5,
+#ifdef RE_ENABLE_I18N
+  COMPLEX_BRACKET = 6,
+  OP_UTF8_PERIOD = 7,
+#endif /* RE_ENABLE_I18N */
+
+  /* We define EPSILON_BIT as a macro so that OP_OPEN_SUBEXP is used
+     when the debugger shows values of this enum type.  */
+#define EPSILON_BIT 8
+  OP_OPEN_SUBEXP = EPSILON_BIT | 0,
+  OP_CLOSE_SUBEXP = EPSILON_BIT | 1,
+  OP_ALT = EPSILON_BIT | 2,
+  OP_DUP_ASTERISK = EPSILON_BIT | 3,
+  ANCHOR = EPSILON_BIT | 4,
+
+  /* Tree type, these are used only by tree. */
+  CONCAT = 16,
+  SUBEXP = 17,
+
+  /* Token type, these are used only by token.  */
+  OP_DUP_PLUS = 18,
+  OP_DUP_QUESTION,
+  OP_OPEN_BRACKET,
+  OP_CLOSE_BRACKET,
+  OP_CHARSET_RANGE,
+  OP_OPEN_DUP_NUM,
+  OP_CLOSE_DUP_NUM,
+  OP_NON_MATCH_LIST,
+  OP_OPEN_COLL_ELEM,
+  OP_CLOSE_COLL_ELEM,
+  OP_OPEN_EQUIV_CLASS,
+  OP_CLOSE_EQUIV_CLASS,
+  OP_OPEN_CHAR_CLASS,
+  OP_CLOSE_CHAR_CLASS,
+  OP_WORD,
+  OP_NOTWORD,
+  OP_SPACE,
+  OP_NOTSPACE,
+  BACK_SLASH
+
+} re_token_type_t;
+
+#ifdef RE_ENABLE_I18N
+typedef struct
+{
+  /* Multibyte characters.  */
+  wchar_t *mbchars;
+
+  /* Collating symbols.  */
+# ifdef _LIBC
+  int32_t *coll_syms;
+# endif
+
+  /* Equivalence classes. */
+# ifdef _LIBC
+  int32_t *equiv_classes;
+# endif
+
+  /* Range expressions. */
+# ifdef _LIBC
+  uint32_t *range_starts;
+  uint32_t *range_ends;
+# else /* not _LIBC */
+  wchar_t *range_starts;
+  wchar_t *range_ends;
+# endif /* not _LIBC */
+
+  /* Character classes. */
+  wctype_t *char_classes;
+
+  /* If this character set is the non-matching list.  */
+  unsigned int non_match : 1;
+
+  /* # of multibyte characters.  */
+  int nmbchars;
+
+  /* # of collating symbols.  */
+  int ncoll_syms;
+
+  /* # of equivalence classes. */
+  int nequiv_classes;
+
+  /* # of range expressions. */
+  int nranges;
+
+  /* # of character classes. */
+  int nchar_classes;
+} re_charset_t;
+#endif /* RE_ENABLE_I18N */
+
+typedef struct
+{
+  union
+  {
+    unsigned char c;		/* for CHARACTER */
+    re_bitset_ptr_t sbcset;	/* for SIMPLE_BRACKET */
+#ifdef RE_ENABLE_I18N
+    re_charset_t *mbcset;	/* for COMPLEX_BRACKET */
+#endif /* RE_ENABLE_I18N */
+    int idx;			/* for BACK_REF */
+    re_context_type ctx_type;	/* for ANCHOR */
+  } opr;
+#if __GNUC__ >= 2
+  re_token_type_t type : 8;
+#else
+  re_token_type_t type;
+#endif
+  unsigned int constraint : 10;	/* context constraint */
+  unsigned int duplicated : 1;
+  unsigned int opt_subexp : 1;
+#ifdef RE_ENABLE_I18N
+  unsigned int accept_mb : 1;
+  /* These 2 bits can be moved into the union if needed (e.g. if running out
+     of bits; move opr.c to opr.c.c and move the flags to opr.c.flags).  */
+  unsigned int mb_partial : 1;
+#endif
+  unsigned int word_char : 1;
+} re_token_t;
+
+#define IS_EPSILON_NODE(type) ((type) & EPSILON_BIT)
+
+struct re_string_t
+{
+  /* Indicate the raw buffer which is the original string passed as an
+     argument of regexec(), re_search(), etc..  */
+  const unsigned char *raw_mbs;
+  /* Store the multibyte string.  In case of "case insensitive mode" like
+     REG_ICASE, upper cases of the string are stored, otherwise MBS points
+     the same address that RAW_MBS points.  */
+  unsigned char *mbs;
+#ifdef RE_ENABLE_I18N
+  /* Store the wide character string which is corresponding to MBS.  */
+  wint_t *wcs;
+  int *offsets;
+  mbstate_t cur_state;
+#endif
+  /* Index in RAW_MBS.  Each character mbs[i] corresponds to
+     raw_mbs[raw_mbs_idx + i].  */
+  int raw_mbs_idx;
+  /* The length of the valid characters in the buffers.  */
+  int valid_len;
+  /* The corresponding number of bytes in raw_mbs array.  */
+  int valid_raw_len;
+  /* The length of the buffers MBS and WCS.  */
+  int bufs_len;
+  /* The index in MBS, which is updated by re_string_fetch_byte.  */
+  int cur_idx;
+  /* length of RAW_MBS array.  */
+  int raw_len;
+  /* This is RAW_LEN - RAW_MBS_IDX + VALID_LEN - VALID_RAW_LEN.  */
+  int len;
+  /* End of the buffer may be shorter than its length in the cases such
+     as re_match_2, re_search_2.  Then, we use STOP for end of the buffer
+     instead of LEN.  */
+  int raw_stop;
+  /* This is RAW_STOP - RAW_MBS_IDX adjusted through OFFSETS.  */
+  int stop;
+
+  /* The context of mbs[0].  We store the context independently, since
+     the context of mbs[0] may be different from raw_mbs[0], which is
+     the beginning of the input string.  */
+  unsigned int tip_context;
+  /* The translation passed as a part of an argument of re_compile_pattern.  */
+  RE_TRANSLATE_TYPE trans;
+  /* Copy of re_dfa_t's word_char.  */
+  re_const_bitset_ptr_t word_char;
+  /* 1 if REG_ICASE.  */
+  unsigned char icase;
+  unsigned char is_utf8;
+  unsigned char map_notascii;
+  unsigned char mbs_allocated;
+  unsigned char offsets_needed;
+  unsigned char newline_anchor;
+  unsigned char word_ops_used;
+  int mb_cur_max;
+};
+typedef struct re_string_t re_string_t;
+
+
+struct re_dfa_t;
+typedef struct re_dfa_t re_dfa_t;
+
+#ifndef _LIBC
+# ifdef __i386__
+#  define internal_function   __attribute ((regparm (3), stdcall))
+# else
+#  define internal_function
+# endif
+#endif
+
+static reg_errcode_t re_string_realloc_buffers (re_string_t *pstr,
+						int new_buf_len)
+     internal_function;
+#ifdef RE_ENABLE_I18N
+static void build_wcs_buffer (re_string_t *pstr) internal_function;
+static int build_wcs_upper_buffer (re_string_t *pstr) internal_function;
+#endif /* RE_ENABLE_I18N */
+static void build_upper_buffer (re_string_t *pstr) internal_function;
+static void re_string_translate_buffer (re_string_t *pstr) internal_function;
+static unsigned int re_string_context_at (const re_string_t *input, int idx,
+					  int eflags)
+     internal_function __attribute ((pure));
+#define re_string_peek_byte(pstr, offset) \
+  ((pstr)->mbs[(pstr)->cur_idx + offset])
+#define re_string_fetch_byte(pstr) \
+  ((pstr)->mbs[(pstr)->cur_idx++])
+#define re_string_first_byte(pstr, idx) \
+  ((idx) == (pstr)->valid_len || (pstr)->wcs[idx] != WEOF)
+#define re_string_is_single_byte_char(pstr, idx) \
+  ((pstr)->wcs[idx] != WEOF && ((pstr)->valid_len == (idx) + 1 \
+				|| (pstr)->wcs[(idx) + 1] != WEOF))
+#define re_string_eoi(pstr) ((pstr)->stop <= (pstr)->cur_idx)
+#define re_string_cur_idx(pstr) ((pstr)->cur_idx)
+#define re_string_get_buffer(pstr) ((pstr)->mbs)
+#define re_string_length(pstr) ((pstr)->len)
+#define re_string_byte_at(pstr,idx) ((pstr)->mbs[idx])
+#define re_string_skip_bytes(pstr,idx) ((pstr)->cur_idx += (idx))
+#define re_string_set_index(pstr,idx) ((pstr)->cur_idx = (idx))
+
+#ifdef __GNUC__
+# define alloca(size)   __builtin_alloca (size)
+# define HAVE_ALLOCA 1
+#elif defined(_MSC_VER)
+# include <malloc.h>
+# define alloca _alloca
+# define HAVE_ALLOCA 1
+#else
+# error No alloca()
+#endif
+
+#ifndef _LIBC
+# if HAVE_ALLOCA
+/* The OS usually guarantees only one guard page at the bottom of the stack,
+   and a page size can be as small as 4096 bytes.  So we cannot safely
+   allocate anything larger than 4096 bytes.  Also care for the possibility
+   of a few compiler-allocated temporary stack slots.  */
+#  define __libc_use_alloca(n) ((n) < 4032)
+# else
+/* alloca is implemented with malloc, so just use malloc.  */
+#  define __libc_use_alloca(n) 0
+# endif
+#endif
+
+#define re_malloc(t,n) ((t *) malloc ((n) * sizeof (t)))
+#define re_realloc(p,t,n) ((t *) realloc (p, (n) * sizeof (t)))
+#define re_free(p) free (p)
+
+struct bin_tree_t
+{
+  struct bin_tree_t *parent;
+  struct bin_tree_t *left;
+  struct bin_tree_t *right;
+  struct bin_tree_t *first;
+  struct bin_tree_t *next;
+
+  re_token_t token;
+
+  /* `node_idx' is the index in dfa->nodes, if `type' == 0.
+     Otherwise `type' indicate the type of this node.  */
+  int node_idx;
+};
+typedef struct bin_tree_t bin_tree_t;
+
+#define BIN_TREE_STORAGE_SIZE \
+  ((1024 - sizeof (void *)) / sizeof (bin_tree_t))
+
+struct bin_tree_storage_t
+{
+  struct bin_tree_storage_t *next;
+  bin_tree_t data[BIN_TREE_STORAGE_SIZE];
+};
+typedef struct bin_tree_storage_t bin_tree_storage_t;
+
+#define CONTEXT_WORD 1
+#define CONTEXT_NEWLINE (CONTEXT_WORD << 1)
+#define CONTEXT_BEGBUF (CONTEXT_NEWLINE << 1)
+#define CONTEXT_ENDBUF (CONTEXT_BEGBUF << 1)
+
+#define IS_WORD_CONTEXT(c) ((c) & CONTEXT_WORD)
+#define IS_NEWLINE_CONTEXT(c) ((c) & CONTEXT_NEWLINE)
+#define IS_BEGBUF_CONTEXT(c) ((c) & CONTEXT_BEGBUF)
+#define IS_ENDBUF_CONTEXT(c) ((c) & CONTEXT_ENDBUF)
+#define IS_ORDINARY_CONTEXT(c) ((c) == 0)
+
+#define IS_WORD_CHAR(ch) (isalnum (ch) || (ch) == '_')
+#define IS_NEWLINE(ch) ((ch) == NEWLINE_CHAR)
+#define IS_WIDE_WORD_CHAR(ch) (iswalnum (ch) || (ch) == L'_')
+#define IS_WIDE_NEWLINE(ch) ((ch) == WIDE_NEWLINE_CHAR)
+
+#define NOT_SATISFY_PREV_CONSTRAINT(constraint,context) \
+ ((((constraint) & PREV_WORD_CONSTRAINT) && !IS_WORD_CONTEXT (context)) \
+  || ((constraint & PREV_NOTWORD_CONSTRAINT) && IS_WORD_CONTEXT (context)) \
+  || ((constraint & PREV_NEWLINE_CONSTRAINT) && !IS_NEWLINE_CONTEXT (context))\
+  || ((constraint & PREV_BEGBUF_CONSTRAINT) && !IS_BEGBUF_CONTEXT (context)))
+
+#define NOT_SATISFY_NEXT_CONSTRAINT(constraint,context) \
+ ((((constraint) & NEXT_WORD_CONSTRAINT) && !IS_WORD_CONTEXT (context)) \
+  || (((constraint) & NEXT_NOTWORD_CONSTRAINT) && IS_WORD_CONTEXT (context)) \
+  || (((constraint) & NEXT_NEWLINE_CONSTRAINT) && !IS_NEWLINE_CONTEXT (context)) \
+  || (((constraint) & NEXT_ENDBUF_CONSTRAINT) && !IS_ENDBUF_CONTEXT (context)))
+
+struct re_dfastate_t
+{
+  unsigned int hash;
+  re_node_set nodes;
+  re_node_set non_eps_nodes;
+  re_node_set inveclosure;
+  re_node_set *entrance_nodes;
+  struct re_dfastate_t **trtable, **word_trtable;
+  unsigned int context : 4;
+  unsigned int halt : 1;
+  /* If this state can accept `multi byte'.
+     Note that we refer to multibyte characters, and multi character
+     collating elements as `multi byte'.  */
+  unsigned int accept_mb : 1;
+  /* If this state has backreference node(s).  */
+  unsigned int has_backref : 1;
+  unsigned int has_constraint : 1;
+};
+typedef struct re_dfastate_t re_dfastate_t;
+
+struct re_state_table_entry
+{
+  int num;
+  int alloc;
+  re_dfastate_t **array;
+};
+
+/* Array type used in re_sub_match_last_t and re_sub_match_top_t.  */
+
+typedef struct
+{
+  int next_idx;
+  int alloc;
+  re_dfastate_t **array;
+} state_array_t;
+
+/* Store information about the node NODE whose type is OP_CLOSE_SUBEXP.  */
+
+typedef struct
+{
+  int node;
+  int str_idx; /* The position NODE match at.  */
+  state_array_t path;
+} re_sub_match_last_t;
+
+/* Store information about the node NODE whose type is OP_OPEN_SUBEXP.
+   And information about the node, whose type is OP_CLOSE_SUBEXP,
+   corresponding to NODE is stored in LASTS.  */
+
+typedef struct
+{
+  int str_idx;
+  int node;
+  state_array_t *path;
+  int alasts; /* Allocation size of LASTS.  */
+  int nlasts; /* The number of LASTS.  */
+  re_sub_match_last_t **lasts;
+} re_sub_match_top_t;
+
+struct re_backref_cache_entry
+{
+  int node;
+  int str_idx;
+  int subexp_from;
+  int subexp_to;
+  char more;
+  char unused;
+  unsigned short int eps_reachable_subexps_map;
+};
+
+typedef struct
+{
+  /* The string object corresponding to the input string.  */
+  re_string_t input;
+#if defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)
+  const re_dfa_t *const dfa;
+#else
+  const re_dfa_t *dfa;
+#endif
+  /* EFLAGS of the argument of regexec.  */
+  int eflags;
+  /* Where the matching ends.  */
+  int match_last;
+  int last_node;
+  /* The state log used by the matcher.  */
+  re_dfastate_t **state_log;
+  int state_log_top;
+  /* Back reference cache.  */
+  int nbkref_ents;
+  int abkref_ents;
+  struct re_backref_cache_entry *bkref_ents;
+  int max_mb_elem_len;
+  int nsub_tops;
+  int asub_tops;
+  re_sub_match_top_t **sub_tops;
+} re_match_context_t;
+
+typedef struct
+{
+  re_dfastate_t **sifted_states;
+  re_dfastate_t **limited_states;
+  int last_node;
+  int last_str_idx;
+  re_node_set limits;
+} re_sift_context_t;
+
+struct re_fail_stack_ent_t
+{
+  int idx;
+  int node;
+  regmatch_t *regs;
+  re_node_set eps_via_nodes;
+};
+
+struct re_fail_stack_t
+{
+  int num;
+  int alloc;
+  struct re_fail_stack_ent_t *stack;
+};
+
+struct re_dfa_t
+{
+  re_token_t *nodes;
+  size_t nodes_alloc;
+  size_t nodes_len;
+  int *nexts;
+  int *org_indices;
+  re_node_set *edests;
+  re_node_set *eclosures;
+  re_node_set *inveclosures;
+  struct re_state_table_entry *state_table;
+  re_dfastate_t *init_state;
+  re_dfastate_t *init_state_word;
+  re_dfastate_t *init_state_nl;
+  re_dfastate_t *init_state_begbuf;
+  bin_tree_t *str_tree;
+  bin_tree_storage_t *str_tree_storage;
+  re_bitset_ptr_t sb_char;
+  int str_tree_storage_idx;
+
+  /* number of subexpressions `re_nsub' is in regex_t.  */
+  unsigned int state_hash_mask;
+  int init_node;
+  int nbackref; /* The number of backreference in this dfa.  */
+
+  /* Bitmap expressing which backreference is used.  */
+  bitset_word_t used_bkref_map;
+  bitset_word_t completed_bkref_map;
+
+  unsigned int has_plural_match : 1;
+  /* If this dfa has "multibyte node", which is a backreference or
+     a node which can accept multibyte character or multi character
+     collating element.  */
+  unsigned int has_mb_node : 1;
+  unsigned int is_utf8 : 1;
+  unsigned int map_notascii : 1;
+  unsigned int word_ops_used : 1;
+  int mb_cur_max;
+  bitset_t word_char;
+  reg_syntax_t syntax;
+  int *subexp_map;
+#ifdef DEBUG
+  char* re_str;
+#endif
+  __libc_lock_define (, lock)
+};
+
+#define re_node_set_init_empty(set) memset (set, '\0', sizeof (re_node_set))
+#define re_node_set_remove(set,id) \
+  (re_node_set_remove_at (set, re_node_set_contains (set, id) - 1))
+#define re_node_set_empty(p) ((p)->nelem = 0)
+#define re_node_set_free(set) re_free ((set)->elems)
+
+
+typedef enum
+{
+  SB_CHAR,
+  MB_CHAR,
+  EQUIV_CLASS,
+  COLL_SYM,
+  CHAR_CLASS
+} bracket_elem_type;
+
+typedef struct
+{
+  bracket_elem_type type;
+  union
+  {
+    unsigned char ch;
+    unsigned char *name;
+    wchar_t wch;
+  } opr;
+} bracket_elem_t;
+
+
+/* Inline functions for bitset operation.  */
+static inline void
+bitset_not (bitset_t set)
+{
+  int bitset_i;
+  for (bitset_i = 0; bitset_i < BITSET_WORDS; ++bitset_i)
+    set[bitset_i] = ~set[bitset_i];
+}
+
+static inline void
+bitset_merge (bitset_t dest, const bitset_t src)
+{
+  int bitset_i;
+  for (bitset_i = 0; bitset_i < BITSET_WORDS; ++bitset_i)
+    dest[bitset_i] |= src[bitset_i];
+}
+
+static inline void
+bitset_mask (bitset_t dest, const bitset_t src)
+{
+  int bitset_i;
+  for (bitset_i = 0; bitset_i < BITSET_WORDS; ++bitset_i)
+    dest[bitset_i] &= src[bitset_i];
+}
+
+#ifdef RE_ENABLE_I18N
+/* Inline functions for re_string.  */
+static inline int
+internal_function __attribute ((pure))
+re_string_char_size_at (const re_string_t *pstr, int idx)
+{
+  int byte_idx;
+  if (pstr->mb_cur_max == 1)
+    return 1;
+  for (byte_idx = 1; idx + byte_idx < pstr->valid_len; ++byte_idx)
+    if (pstr->wcs[idx + byte_idx] != WEOF)
+      break;
+  return byte_idx;
+}
+
+static inline wint_t
+internal_function __attribute ((pure))
+re_string_wchar_at (const re_string_t *pstr, int idx)
+{
+  if (pstr->mb_cur_max == 1)
+    return (wint_t) pstr->mbs[idx];
+  return (wint_t) pstr->wcs[idx];
+}
+
+static int
+internal_function __attribute ((pure))
+re_string_elem_size_at (const re_string_t *pstr, int idx)
+{
+# ifdef _LIBC
+  const unsigned char *p, *extra;
+  const int32_t *table, *indirect;
+  int32_t tmp;
+#  include <locale/weight.h>
+  uint_fast32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
+
+  if (nrules != 0)
+    {
+      table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB);
+      extra = (const unsigned char *)
+	_NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB);
+      indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE,
+						_NL_COLLATE_INDIRECTMB);
+      p = pstr->mbs + idx;
+      tmp = findidx (&p);
+      return p - pstr->mbs - idx;
+    }
+  else
+# endif /* _LIBC */
+    return 1;
+}
+#endif /* RE_ENABLE_I18N */
+
+#endif /*  _REGEX_INTERNAL_H */
diff --git a/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/regexec.c b/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/regexec.c
new file mode 100755
index 0000000000000000000000000000000000000000..bdfa3550a7d3873ad7f0d001afcf04a09a93c766
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/mingw-libgnurx-2.5.1/regexec.c
@@ -0,0 +1,4329 @@
+/* Extended regular expression matching and search library.
+   Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+static reg_errcode_t match_ctx_init (re_match_context_t *cache, int eflags,
+				     int n) internal_function;
+static void match_ctx_clean (re_match_context_t *mctx) internal_function;
+static void match_ctx_free (re_match_context_t *cache) internal_function;
+static reg_errcode_t match_ctx_add_entry (re_match_context_t *cache, int node,
+					  int str_idx, int from, int to)
+     internal_function;
+static int search_cur_bkref_entry (const re_match_context_t *mctx, int str_idx)
+     internal_function;
+static reg_errcode_t match_ctx_add_subtop (re_match_context_t *mctx, int node,
+					   int str_idx) internal_function;
+static re_sub_match_last_t * match_ctx_add_sublast (re_sub_match_top_t *subtop,
+						   int node, int str_idx)
+     internal_function;
+static void sift_ctx_init (re_sift_context_t *sctx, re_dfastate_t **sifted_sts,
+			   re_dfastate_t **limited_sts, int last_node,
+			   int last_str_idx)
+     internal_function;
+static reg_errcode_t re_search_internal (const regex_t *preg,
+					 const char *string, int length,
+					 int start, int range, int stop,
+					 size_t nmatch, regmatch_t pmatch[],
+					 int eflags) internal_function;
+static int re_search_2_stub (struct re_pattern_buffer *bufp,
+			     const char *string1, int length1,
+			     const char *string2, int length2,
+			     int start, int range, struct re_registers *regs,
+			     int stop, int ret_len) internal_function;
+static int re_search_stub (struct re_pattern_buffer *bufp,
+			   const char *string, int length, int start,
+			   int range, int stop, struct re_registers *regs,
+			   int ret_len) internal_function;
+static unsigned re_copy_regs (struct re_registers *regs, regmatch_t *pmatch,
+			      int nregs, int regs_allocated) internal_function;
+static reg_errcode_t prune_impossible_nodes (re_match_context_t *mctx)
+     internal_function;
+static int check_matching (re_match_context_t *mctx, int fl_longest_match,
+			   int *p_match_first) internal_function;
+static int check_halt_state_context (const re_match_context_t *mctx,
+				     const re_dfastate_t *state, int idx)
+     internal_function;
+static void update_regs (const re_dfa_t *dfa, regmatch_t *pmatch,
+			 regmatch_t *prev_idx_match, int cur_node,
+			 int cur_idx, int nmatch) internal_function;
+static reg_errcode_t push_fail_stack (struct re_fail_stack_t *fs,
+				      int str_idx, int dest_node, int nregs,
+				      regmatch_t *regs,
+				      re_node_set *eps_via_nodes)
+     internal_function;
+static reg_errcode_t set_regs (const regex_t *preg,
+			       const re_match_context_t *mctx,
+			       size_t nmatch, regmatch_t *pmatch,
+			       int fl_backtrack) internal_function;
+static reg_errcode_t free_fail_stack_return (struct re_fail_stack_t *fs)
+     internal_function;
+
+#ifdef RE_ENABLE_I18N
+static int sift_states_iter_mb (const re_match_context_t *mctx,
+				re_sift_context_t *sctx,
+				int node_idx, int str_idx, int max_str_idx)
+     internal_function;
+#endif /* RE_ENABLE_I18N */
+static reg_errcode_t sift_states_backward (const re_match_context_t *mctx,
+					   re_sift_context_t *sctx)
+     internal_function;
+static reg_errcode_t build_sifted_states (const re_match_context_t *mctx,
+					  re_sift_context_t *sctx, int str_idx,
+					  re_node_set *cur_dest)
+     internal_function;
+static reg_errcode_t update_cur_sifted_state (const re_match_context_t *mctx,
+					      re_sift_context_t *sctx,
+					      int str_idx,
+					      re_node_set *dest_nodes)
+     internal_function;
+static reg_errcode_t add_epsilon_src_nodes (const re_dfa_t *dfa,
+					    re_node_set *dest_nodes,
+					    const re_node_set *candidates)
+     internal_function;
+static int check_dst_limits (const re_match_context_t *mctx,
+			     re_node_set *limits,
+			     int dst_node, int dst_idx, int src_node,
+			     int src_idx) internal_function;
+static int check_dst_limits_calc_pos_1 (const re_match_context_t *mctx,
+					int boundaries, int subexp_idx,
+					int from_node, int bkref_idx)
+     internal_function;
+static int check_dst_limits_calc_pos (const re_match_context_t *mctx,
+				      int limit, int subexp_idx,
+				      int node, int str_idx,
+				      int bkref_idx) internal_function;
+static reg_errcode_t check_subexp_limits (const re_dfa_t *dfa,
+					  re_node_set *dest_nodes,
+					  const re_node_set *candidates,
+					  re_node_set *limits,
+					  struct re_backref_cache_entry *bkref_ents,
+					  int str_idx) internal_function;
+static reg_errcode_t sift_states_bkref (const re_match_context_t *mctx,
+					re_sift_context_t *sctx,
+					int str_idx, const re_node_set *candidates)
+     internal_function;
+static reg_errcode_t merge_state_array (const re_dfa_t *dfa,
+					re_dfastate_t **dst,
+					re_dfastate_t **src, int num)
+     internal_function;
+static re_dfastate_t *find_recover_state (reg_errcode_t *err,
+					 re_match_context_t *mctx) internal_function;
+static re_dfastate_t *transit_state (reg_errcode_t *err,
+				     re_match_context_t *mctx,
+				     re_dfastate_t *state) internal_function;
+static re_dfastate_t *merge_state_with_log (reg_errcode_t *err,
+					    re_match_context_t *mctx,
+					    re_dfastate_t *next_state)
+     internal_function;
+static reg_errcode_t check_subexp_matching_top (re_match_context_t *mctx,
+						re_node_set *cur_nodes,
+						int str_idx) internal_function;
+#if 0
+static re_dfastate_t *transit_state_sb (reg_errcode_t *err,
+					re_match_context_t *mctx,
+					re_dfastate_t *pstate)
+     internal_function;
+#endif
+#ifdef RE_ENABLE_I18N
+static reg_errcode_t transit_state_mb (re_match_context_t *mctx,
+				       re_dfastate_t *pstate)
+     internal_function;
+#endif /* RE_ENABLE_I18N */
+static reg_errcode_t transit_state_bkref (re_match_context_t *mctx,
+					  const re_node_set *nodes)
+     internal_function;
+static reg_errcode_t get_subexp (re_match_context_t *mctx,
+				 int bkref_node, int bkref_str_idx)
+     internal_function;
+static reg_errcode_t get_subexp_sub (re_match_context_t *mctx,
+				     const re_sub_match_top_t *sub_top,
+				     re_sub_match_last_t *sub_last,
+				     int bkref_node, int bkref_str)
+     internal_function;
+static int find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes,
+			     int subexp_idx, int type) internal_function;
+static reg_errcode_t check_arrival (re_match_context_t *mctx,
+				    state_array_t *path, int top_node,
+				    int top_str, int last_node, int last_str,
+				    int type) internal_function;
+static reg_errcode_t check_arrival_add_next_nodes (re_match_context_t *mctx,
+						   int str_idx,
+						   re_node_set *cur_nodes,
+						   re_node_set *next_nodes)
+     internal_function;
+static reg_errcode_t check_arrival_expand_ecl (const re_dfa_t *dfa,
+					       re_node_set *cur_nodes,
+					       int ex_subexp, int type)
+     internal_function;
+static reg_errcode_t check_arrival_expand_ecl_sub (const re_dfa_t *dfa,
+						   re_node_set *dst_nodes,
+						   int target, int ex_subexp,
+						   int type) internal_function;
+static reg_errcode_t expand_bkref_cache (re_match_context_t *mctx,
+					 re_node_set *cur_nodes, int cur_str,
+					 int subexp_num, int type)
+     internal_function;
+static int build_trtable (const re_dfa_t *dfa,
+			  re_dfastate_t *state) internal_function;
+#ifdef RE_ENABLE_I18N
+static int check_node_accept_bytes (const re_dfa_t *dfa, int node_idx,
+				    const re_string_t *input, int idx)
+     internal_function;
+# ifdef _LIBC
+static unsigned int find_collation_sequence_value (const unsigned char *mbs,
+						   size_t name_len)
+     internal_function;
+# endif /* _LIBC */
+#endif /* RE_ENABLE_I18N */
+static int group_nodes_into_DFAstates (const re_dfa_t *dfa,
+				       const re_dfastate_t *state,
+				       re_node_set *states_node,
+				       bitset_t *states_ch) internal_function;
+static int check_node_accept (const re_match_context_t *mctx,
+			      const re_token_t *node, int idx)
+     internal_function;
+static reg_errcode_t extend_buffers (re_match_context_t *mctx)
+     internal_function;
+
+/* Entry point for POSIX code.  */
+
+/* regexec searches for a given pattern, specified by PREG, in the
+   string STRING.
+
+   If NMATCH is zero or REG_NOSUB was set in the cflags argument to
+   `regcomp', we ignore PMATCH.  Otherwise, we assume PMATCH has at
+   least NMATCH elements, and we set them to the offsets of the
+   corresponding matched substrings.
+
+   EFLAGS specifies `execution flags' which affect matching: if
+   REG_NOTBOL is set, then ^ does not match at the beginning of the
+   string; if REG_NOTEOL is set, then $ does not match at the end.
+
+   We return 0 if we find a match and REG_NOMATCH if not.  */
+
+int
+regexec (preg, string, nmatch, pmatch, eflags)
+    const regex_t *__restrict preg;
+    const char *__restrict string;
+    size_t nmatch;
+    regmatch_t pmatch[];
+    int eflags;
+{
+  reg_errcode_t err;
+  int start, length;
+  re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+
+  if (eflags & ~(REG_NOTBOL | REG_NOTEOL | REG_STARTEND))
+    return REG_BADPAT;
+
+  if (eflags & REG_STARTEND)
+    {
+      start = pmatch[0].rm_so;
+      length = pmatch[0].rm_eo;
+    }
+  else
+    {
+      start = 0;
+      length = strlen (string);
+    }
+
+  __libc_lock_lock (dfa->lock);
+  if (preg->no_sub)
+    err = re_search_internal (preg, string, length, start, length - start,
+			      length, 0, NULL, eflags);
+  else
+    err = re_search_internal (preg, string, length, start, length - start,
+			      length, nmatch, pmatch, eflags);
+  __libc_lock_unlock (dfa->lock);
+  return err != REG_NOERROR;
+}
+
+#ifdef _LIBC
+# include <shlib-compat.h>
+versioned_symbol (libc, __regexec, regexec, GLIBC_2_3_4);
+
+# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)
+__typeof__ (__regexec) __compat_regexec;
+
+int
+attribute_compat_text_section
+__compat_regexec (const regex_t *__restrict preg,
+		  const char *__restrict string, size_t nmatch,
+		  regmatch_t pmatch[], int eflags)
+{
+  return regexec (preg, string, nmatch, pmatch,
+		  eflags & (REG_NOTBOL | REG_NOTEOL));
+}
+compat_symbol (libc, __compat_regexec, regexec, GLIBC_2_0);
+# endif
+#endif
+
+/* Entry points for GNU code.  */
+
+/* re_match, re_search, re_match_2, re_search_2
+
+   The former two functions operate on STRING with length LENGTH,
+   while the later two operate on concatenation of STRING1 and STRING2
+   with lengths LENGTH1 and LENGTH2, respectively.
+
+   re_match() matches the compiled pattern in BUFP against the string,
+   starting at index START.
+
+   re_search() first tries matching at index START, then it tries to match
+   starting from index START + 1, and so on.  The last start position tried
+   is START + RANGE.  (Thus RANGE = 0 forces re_search to operate the same
+   way as re_match().)
+
+   The parameter STOP of re_{match,search}_2 specifies that no match exceeding
+   the first STOP characters of the concatenation of the strings should be
+   concerned.
+
+   If REGS is not NULL, and BUFP->no_sub is not set, the offsets of the match
+   and all groups is stroed in REGS.  (For the "_2" variants, the offsets are
+   computed relative to the concatenation, not relative to the individual
+   strings.)
+
+   On success, re_match* functions return the length of the match, re_search*
+   return the position of the start of the match.  Return value -1 means no
+   match was found and -2 indicates an internal error.  */
+
+int
+re_match (bufp, string, length, start, regs)
+    struct re_pattern_buffer *bufp;
+    const char *string;
+    int length, start;
+    struct re_registers *regs;
+{
+  return re_search_stub (bufp, string, length, start, 0, length, regs, 1);
+}
+#ifdef _LIBC
+weak_alias (__re_match, re_match)
+#endif
+
+int
+re_search (bufp, string, length, start, range, regs)
+    struct re_pattern_buffer *bufp;
+    const char *string;
+    int length, start, range;
+    struct re_registers *regs;
+{
+  return re_search_stub (bufp, string, length, start, range, length, regs, 0);
+}
+#ifdef _LIBC
+weak_alias (__re_search, re_search)
+#endif
+
+int
+re_match_2 (bufp, string1, length1, string2, length2, start, regs, stop)
+    struct re_pattern_buffer *bufp;
+    const char *string1, *string2;
+    int length1, length2, start, stop;
+    struct re_registers *regs;
+{
+  return re_search_2_stub (bufp, string1, length1, string2, length2,
+			   start, 0, regs, stop, 1);
+}
+#ifdef _LIBC
+weak_alias (__re_match_2, re_match_2)
+#endif
+
+int
+re_search_2 (bufp, string1, length1, string2, length2, start, range, regs, stop)
+    struct re_pattern_buffer *bufp;
+    const char *string1, *string2;
+    int length1, length2, start, range, stop;
+    struct re_registers *regs;
+{
+  return re_search_2_stub (bufp, string1, length1, string2, length2,
+			   start, range, regs, stop, 0);
+}
+#ifdef _LIBC
+weak_alias (__re_search_2, re_search_2)
+#endif
+
+static int
+re_search_2_stub (bufp, string1, length1, string2, length2, start, range, regs,
+		  stop, ret_len)
+    struct re_pattern_buffer *bufp;
+    const char *string1, *string2;
+    int length1, length2, start, range, stop, ret_len;
+    struct re_registers *regs;
+{
+  const char *str;
+  int rval;
+  int len = length1 + length2;
+  int free_str = 0;
+
+  if (BE (length1 < 0 || length2 < 0 || stop < 0, 0))
+    return -2;
+
+  /* Concatenate the strings.  */
+  if (length2 > 0)
+    if (length1 > 0)
+      {
+	char *s = re_malloc (char, len);
+
+	if (BE (s == NULL, 0))
+	  return -2;
+#ifdef _LIBC
+	memcpy (__mempcpy (s, string1, length1), string2, length2);
+#else
+	memcpy (s, string1, length1);
+	memcpy (s + length1, string2, length2);
+#endif
+	str = s;
+	free_str = 1;
+      }
+    else
+      str = string2;
+  else
+    str = string1;
+
+  rval = re_search_stub (bufp, str, len, start, range, stop, regs,
+			 ret_len);
+  if (free_str)
+    re_free ((char *) str);
+  return rval;
+}
+
+/* The parameters have the same meaning as those of re_search.
+   Additional parameters:
+   If RET_LEN is nonzero the length of the match is returned (re_match style);
+   otherwise the position of the match is returned.  */
+
+static int
+re_search_stub (bufp, string, length, start, range, stop, regs, ret_len)
+    struct re_pattern_buffer *bufp;
+    const char *string;
+    int length, start, range, stop, ret_len;
+    struct re_registers *regs;
+{
+  reg_errcode_t result;
+  regmatch_t *pmatch;
+  int nregs, rval;
+  int eflags = 0;
+  re_dfa_t *dfa = (re_dfa_t *) bufp->buffer;
+
+  /* Check for out-of-range.  */
+  if (BE (start < 0 || start > length, 0))
+    return -1;
+  if (BE (start + range > length, 0))
+    range = length - start;
+  else if (BE (start + range < 0, 0))
+    range = -start;
+
+  __libc_lock_lock (dfa->lock);
+
+  eflags |= (bufp->not_bol) ? REG_NOTBOL : 0;
+  eflags |= (bufp->not_eol) ? REG_NOTEOL : 0;
+
+  /* Compile fastmap if we haven't yet.  */
+  if (range > 0 && bufp->fastmap != NULL && !bufp->fastmap_accurate)
+    re_compile_fastmap (bufp);
+
+  if (BE (bufp->no_sub, 0))
+    regs = NULL;
+
+  /* We need at least 1 register.  */
+  if (regs == NULL)
+    nregs = 1;
+  else if (BE (bufp->regs_allocated == REGS_FIXED &&
+	       regs->num_regs < bufp->re_nsub + 1, 0))
+    {
+      nregs = regs->num_regs;
+      if (BE (nregs < 1, 0))
+	{
+	  /* Nothing can be copied to regs.  */
+	  regs = NULL;
+	  nregs = 1;
+	}
+    }
+  else
+    nregs = bufp->re_nsub + 1;
+  pmatch = re_malloc (regmatch_t, nregs);
+  if (BE (pmatch == NULL, 0))
+    {
+      rval = -2;
+      goto out;
+    }
+
+  result = re_search_internal (bufp, string, length, start, range, stop,
+			       nregs, pmatch, eflags);
+
+  rval = 0;
+
+  /* I hope we needn't fill ther regs with -1's when no match was found.  */
+  if (result != REG_NOERROR)
+    rval = -1;
+  else if (regs != NULL)
+    {
+      /* If caller wants register contents data back, copy them.  */
+      bufp->regs_allocated = re_copy_regs (regs, pmatch, nregs,
+					   bufp->regs_allocated);
+      if (BE (bufp->regs_allocated == REGS_UNALLOCATED, 0))
+	rval = -2;
+    }
+
+  if (BE (rval == 0, 1))
+    {
+      if (ret_len)
+	{
+	  assert (pmatch[0].rm_so == start);
+	  rval = pmatch[0].rm_eo - start;
+	}
+      else
+	rval = pmatch[0].rm_so;
+    }
+  re_free (pmatch);
+ out:
+  __libc_lock_unlock (dfa->lock);
+  return rval;
+}
+
+static unsigned
+re_copy_regs (regs, pmatch, nregs, regs_allocated)
+    struct re_registers *regs;
+    regmatch_t *pmatch;
+    int nregs, regs_allocated;
+{
+  int rval = REGS_REALLOCATE;
+  int i;
+  int need_regs = nregs + 1;
+  /* We need one extra element beyond `num_regs' for the `-1' marker GNU code
+     uses.  */
+
+  /* Have the register data arrays been allocated?  */
+  if (regs_allocated == REGS_UNALLOCATED)
+    { /* No.  So allocate them with malloc.  */
+      regs->start = re_malloc (regoff_t, need_regs);
+      regs->end = re_malloc (regoff_t, need_regs);
+      if (BE (regs->start == NULL, 0) || BE (regs->end == NULL, 0))
+	return REGS_UNALLOCATED;
+      regs->num_regs = need_regs;
+    }
+  else if (regs_allocated == REGS_REALLOCATE)
+    { /* Yes.  If we need more elements than were already
+	 allocated, reallocate them.  If we need fewer, just
+	 leave it alone.  */
+      if (BE (need_regs > regs->num_regs, 0))
+	{
+	  regoff_t *new_start = re_realloc (regs->start, regoff_t, need_regs);
+	  regoff_t *new_end = re_realloc (regs->end, regoff_t, need_regs);
+	  if (BE (new_start == NULL, 0) || BE (new_end == NULL, 0))
+	    return REGS_UNALLOCATED;
+	  regs->start = new_start;
+	  regs->end = new_end;
+	  regs->num_regs = need_regs;
+	}
+    }
+  else
+    {
+      assert (regs_allocated == REGS_FIXED);
+      /* This function may not be called with REGS_FIXED and nregs too big.  */
+      assert (regs->num_regs >= nregs);
+      rval = REGS_FIXED;
+    }
+
+  /* Copy the regs.  */
+  for (i = 0; i < nregs; ++i)
+    {
+      regs->start[i] = pmatch[i].rm_so;
+      regs->end[i] = pmatch[i].rm_eo;
+    }
+  for ( ; i < regs->num_regs; ++i)
+    regs->start[i] = regs->end[i] = -1;
+
+  return rval;
+}
+
+/* Set REGS to hold NUM_REGS registers, storing them in STARTS and
+   ENDS.  Subsequent matches using PATTERN_BUFFER and REGS will use
+   this memory for recording register information.  STARTS and ENDS
+   must be allocated using the malloc library routine, and must each
+   be at least NUM_REGS * sizeof (regoff_t) bytes long.
+
+   If NUM_REGS == 0, then subsequent matches should allocate their own
+   register data.
+
+   Unless this function is called, the first search or match using
+   PATTERN_BUFFER will allocate its own register data, without
+   freeing the old data.  */
+
+void
+re_set_registers (bufp, regs, num_regs, starts, ends)
+    struct re_pattern_buffer *bufp;
+    struct re_registers *regs;
+    unsigned num_regs;
+    regoff_t *starts, *ends;
+{
+  if (num_regs)
+    {
+      bufp->regs_allocated = REGS_REALLOCATE;
+      regs->num_regs = num_regs;
+      regs->start = starts;
+      regs->end = ends;
+    }
+  else
+    {
+      bufp->regs_allocated = REGS_UNALLOCATED;
+      regs->num_regs = 0;
+      regs->start = regs->end = (regoff_t *) 0;
+    }
+}
+#ifdef _LIBC
+weak_alias (__re_set_registers, re_set_registers)
+#endif
+
+/* Entry points compatible with 4.2 BSD regex library.  We don't define
+   them unless specifically requested.  */
+
+#if defined _REGEX_RE_COMP || defined _LIBC
+int
+# ifdef _LIBC
+weak_function
+# endif
+re_exec (s)
+     const char *s;
+{
+  return 0 == regexec (&re_comp_buf, s, 0, NULL, 0);
+}
+#endif /* _REGEX_RE_COMP */
+
+/* Internal entry point.  */
+
+/* Searches for a compiled pattern PREG in the string STRING, whose
+   length is LENGTH.  NMATCH, PMATCH, and EFLAGS have the same
+   mingings with regexec.  START, and RANGE have the same meanings
+   with re_search.
+   Return REG_NOERROR if we find a match, and REG_NOMATCH if not,
+   otherwise return the error code.
+   Note: We assume front end functions already check ranges.
+   (START + RANGE >= 0 && START + RANGE <= LENGTH)  */
+
+static reg_errcode_t
+re_search_internal (preg, string, length, start, range, stop, nmatch, pmatch,
+		    eflags)
+    const regex_t *preg;
+    const char *string;
+    int length, start, range, stop, eflags;
+    size_t nmatch;
+    regmatch_t pmatch[];
+{
+  reg_errcode_t err;
+  const re_dfa_t *dfa = (const re_dfa_t *) preg->buffer;
+  int left_lim, right_lim, incr;
+  int fl_longest_match, match_first, match_kind, match_last = -1;
+  int extra_nmatch;
+  int sb, ch;
+#if defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)
+  re_match_context_t mctx = { .dfa = dfa };
+#else
+  re_match_context_t mctx;
+#endif
+  char *fastmap = (preg->fastmap != NULL && preg->fastmap_accurate
+		   && range && !preg->can_be_null) ? preg->fastmap : NULL;
+  RE_TRANSLATE_TYPE t = preg->translate;
+
+#if !(defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L))
+  memset (&mctx, '\0', sizeof (re_match_context_t));
+  mctx.dfa = dfa;
+#endif
+
+  extra_nmatch = (nmatch > preg->re_nsub) ? nmatch - (preg->re_nsub + 1) : 0;
+  nmatch -= extra_nmatch;
+
+  /* Check if the DFA haven't been compiled.  */
+  if (BE (preg->used == 0 || dfa->init_state == NULL
+	  || dfa->init_state_word == NULL || dfa->init_state_nl == NULL
+	  || dfa->init_state_begbuf == NULL, 0))
+    return REG_NOMATCH;
+
+#ifdef DEBUG
+  /* We assume front-end functions already check them.  */
+  assert (start + range >= 0 && start + range <= length);
+#endif
+
+  /* If initial states with non-begbuf contexts have no elements,
+     the regex must be anchored.  If preg->newline_anchor is set,
+     we'll never use init_state_nl, so do not check it.  */
+  if (dfa->init_state->nodes.nelem == 0
+      && dfa->init_state_word->nodes.nelem == 0
+      && (dfa->init_state_nl->nodes.nelem == 0
+	  || !preg->newline_anchor))
+    {
+      if (start != 0 && start + range != 0)
+        return REG_NOMATCH;
+      start = range = 0;
+    }
+
+  /* We must check the longest matching, if nmatch > 0.  */
+  fl_longest_match = (nmatch != 0 || dfa->nbackref);
+
+  err = re_string_allocate (&mctx.input, string, length, dfa->nodes_len + 1,
+			    preg->translate, preg->syntax & RE_ICASE, dfa);
+  if (BE (err != REG_NOERROR, 0))
+    goto free_return;
+  mctx.input.stop = stop;
+  mctx.input.raw_stop = stop;
+  mctx.input.newline_anchor = preg->newline_anchor;
+
+  err = match_ctx_init (&mctx, eflags, dfa->nbackref * 2);
+  if (BE (err != REG_NOERROR, 0))
+    goto free_return;
+
+  /* We will log all the DFA states through which the dfa pass,
+     if nmatch > 1, or this dfa has "multibyte node", which is a
+     back-reference or a node which can accept multibyte character or
+     multi character collating element.  */
+  if (nmatch > 1 || dfa->has_mb_node)
+    {
+      mctx.state_log = re_malloc (re_dfastate_t *, mctx.input.bufs_len + 1);
+      if (BE (mctx.state_log == NULL, 0))
+	{
+	  err = REG_ESPACE;
+	  goto free_return;
+	}
+    }
+  else
+    mctx.state_log = NULL;
+
+  match_first = start;
+  mctx.input.tip_context = (eflags & REG_NOTBOL) ? CONTEXT_BEGBUF
+			   : CONTEXT_NEWLINE | CONTEXT_BEGBUF;
+
+  /* Check incrementally whether of not the input string match.  */
+  incr = (range < 0) ? -1 : 1;
+  left_lim = (range < 0) ? start + range : start;
+  right_lim = (range < 0) ? start : start + range;
+  sb = dfa->mb_cur_max == 1;
+  match_kind =
+    (fastmap
+     ? ((sb || !(preg->syntax & RE_ICASE || t) ? 4 : 0)
+	| (range >= 0 ? 2 : 0)
+	| (t != NULL ? 1 : 0))
+     : 8);
+
+  for (;; match_first += incr)
+    {
+      err = REG_NOMATCH;
+      if (match_first < left_lim || right_lim < match_first)
+	goto free_return;
+
+      /* Advance as rapidly as possible through the string, until we
+	 find a plausible place to start matching.  This may be done
+	 with varying efficiency, so there are various possibilities:
+	 only the most common of them are specialized, in order to
+	 save on code size.  We use a switch statement for speed.  */
+      switch (match_kind)
+	{
+	case 8:
+	  /* No fastmap.  */
+	  break;
+
+	case 7:
+	  /* Fastmap with single-byte translation, match forward.  */
+	  while (BE (match_first < right_lim, 1)
+		 && !fastmap[t[(unsigned char) string[match_first]]])
+	    ++match_first;
+	  goto forward_match_found_start_or_reached_end;
+
+	case 6:
+	  /* Fastmap without translation, match forward.  */
+	  while (BE (match_first < right_lim, 1)
+		 && !fastmap[(unsigned char) string[match_first]])
+	    ++match_first;
+
+	forward_match_found_start_or_reached_end:
+	  if (BE (match_first == right_lim, 0))
+	    {
+	      ch = match_first >= length
+		       ? 0 : (unsigned char) string[match_first];
+	      if (!fastmap[t ? t[ch] : ch])
+		goto free_return;
+	    }
+	  break;
+
+	case 4:
+	case 5:
+	  /* Fastmap without multi-byte translation, match backwards.  */
+	  while (match_first >= left_lim)
+	    {
+	      ch = match_first >= length
+		       ? 0 : (unsigned char) string[match_first];
+	      if (fastmap[t ? t[ch] : ch])
+		break;
+	      --match_first;
+	    }
+	  if (match_first < left_lim)
+	    goto free_return;
+	  break;
+
+	default:
+	  /* In this case, we can't determine easily the current byte,
+	     since it might be a component byte of a multibyte
+	     character.  Then we use the constructed buffer instead.  */
+	  for (;;)
+	    {
+	      /* If MATCH_FIRST is out of the valid range, reconstruct the
+		 buffers.  */
+	      unsigned int offset = match_first - mctx.input.raw_mbs_idx;
+	      if (BE (offset >= (unsigned int) mctx.input.valid_raw_len, 0))
+		{
+		  err = re_string_reconstruct (&mctx.input, match_first,
+					       eflags);
+		  if (BE (err != REG_NOERROR, 0))
+		    goto free_return;
+
+		  offset = match_first - mctx.input.raw_mbs_idx;
+		}
+	      /* If MATCH_FIRST is out of the buffer, leave it as '\0'.
+		 Note that MATCH_FIRST must not be smaller than 0.  */
+	      ch = (match_first >= length
+		    ? 0 : re_string_byte_at (&mctx.input, offset));
+	      if (fastmap[ch])
+		break;
+	      match_first += incr;
+	      if (match_first < left_lim || match_first > right_lim)
+	        {
+	          err = REG_NOMATCH;
+	          goto free_return;
+	        }
+	    }
+	  break;
+	}
+
+      /* Reconstruct the buffers so that the matcher can assume that
+	 the matching starts from the beginning of the buffer.  */
+      err = re_string_reconstruct (&mctx.input, match_first, eflags);
+      if (BE (err != REG_NOERROR, 0))
+	goto free_return;
+
+#ifdef RE_ENABLE_I18N
+     /* Don't consider this char as a possible match start if it part,
+	yet isn't the head, of a multibyte character.  */
+      if (!sb && !re_string_first_byte (&mctx.input, 0))
+	continue;
+#endif
+
+      /* It seems to be appropriate one, then use the matcher.  */
+      /* We assume that the matching starts from 0.  */
+      mctx.state_log_top = mctx.nbkref_ents = mctx.max_mb_elem_len = 0;
+      match_last = check_matching (&mctx, fl_longest_match,
+				   range >= 0 ? &match_first : NULL);
+      if (match_last != -1)
+	{
+	  if (BE (match_last == -2, 0))
+	    {
+	      err = REG_ESPACE;
+	      goto free_return;
+	    }
+	  else
+	    {
+	      mctx.match_last = match_last;
+	      if ((!preg->no_sub && nmatch > 1) || dfa->nbackref)
+		{
+		  re_dfastate_t *pstate = mctx.state_log[match_last];
+		  mctx.last_node = check_halt_state_context (&mctx, pstate,
+							     match_last);
+		}
+	      if ((!preg->no_sub && nmatch > 1 && dfa->has_plural_match)
+		  || dfa->nbackref)
+		{
+		  err = prune_impossible_nodes (&mctx);
+		  if (err == REG_NOERROR)
+		    break;
+		  if (BE (err != REG_NOMATCH, 0))
+		    goto free_return;
+		  match_last = -1;
+		}
+	      else
+		break; /* We found a match.  */
+	    }
+	}
+
+      match_ctx_clean (&mctx);
+    }
+
+#ifdef DEBUG
+  assert (match_last != -1);
+  assert (err == REG_NOERROR);
+#endif
+
+  /* Set pmatch[] if we need.  */
+  if (nmatch > 0)
+    {
+      int reg_idx;
+
+      /* Initialize registers.  */
+      for (reg_idx = 1; reg_idx < nmatch; ++reg_idx)
+	pmatch[reg_idx].rm_so = pmatch[reg_idx].rm_eo = -1;
+
+      /* Set the points where matching start/end.  */
+      pmatch[0].rm_so = 0;
+      pmatch[0].rm_eo = mctx.match_last;
+
+      if (!preg->no_sub && nmatch > 1)
+	{
+	  err = set_regs (preg, &mctx, nmatch, pmatch,
+			  dfa->has_plural_match && dfa->nbackref > 0);
+	  if (BE (err != REG_NOERROR, 0))
+	    goto free_return;
+	}
+
+      /* At last, add the offset to the each registers, since we slided
+	 the buffers so that we could assume that the matching starts
+	 from 0.  */
+      for (reg_idx = 0; reg_idx < nmatch; ++reg_idx)
+	if (pmatch[reg_idx].rm_so != -1)
+	  {
+#ifdef RE_ENABLE_I18N
+	    if (BE (mctx.input.offsets_needed != 0, 0))
+	      {
+		pmatch[reg_idx].rm_so =
+		  (pmatch[reg_idx].rm_so == mctx.input.valid_len
+		   ? mctx.input.valid_raw_len
+		   : mctx.input.offsets[pmatch[reg_idx].rm_so]);
+		pmatch[reg_idx].rm_eo =
+		  (pmatch[reg_idx].rm_eo == mctx.input.valid_len
+		   ? mctx.input.valid_raw_len
+		   : mctx.input.offsets[pmatch[reg_idx].rm_eo]);
+	      }
+#else
+	    assert (mctx.input.offsets_needed == 0);
+#endif
+	    pmatch[reg_idx].rm_so += match_first;
+	    pmatch[reg_idx].rm_eo += match_first;
+	  }
+      for (reg_idx = 0; reg_idx < extra_nmatch; ++reg_idx)
+	{
+	  pmatch[nmatch + reg_idx].rm_so = -1;
+	  pmatch[nmatch + reg_idx].rm_eo = -1;
+	}
+
+      if (dfa->subexp_map)
+        for (reg_idx = 0; reg_idx + 1 < nmatch; reg_idx++)
+          if (dfa->subexp_map[reg_idx] != reg_idx)
+            {
+              pmatch[reg_idx + 1].rm_so
+                = pmatch[dfa->subexp_map[reg_idx] + 1].rm_so;
+              pmatch[reg_idx + 1].rm_eo
+                = pmatch[dfa->subexp_map[reg_idx] + 1].rm_eo;
+            }
+    }
+
+ free_return:
+  re_free (mctx.state_log);
+  if (dfa->nbackref)
+    match_ctx_free (&mctx);
+  re_string_destruct (&mctx.input);
+  return err;
+}
+
+static reg_errcode_t
+prune_impossible_nodes (mctx)
+     re_match_context_t *mctx;
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  int halt_node, match_last;
+  reg_errcode_t ret;
+  re_dfastate_t **sifted_states;
+  re_dfastate_t **lim_states = NULL;
+  re_sift_context_t sctx;
+#ifdef DEBUG
+  assert (mctx->state_log != NULL);
+#endif
+  match_last = mctx->match_last;
+  halt_node = mctx->last_node;
+  sifted_states = re_malloc (re_dfastate_t *, match_last + 1);
+  if (BE (sifted_states == NULL, 0))
+    {
+      ret = REG_ESPACE;
+      goto free_return;
+    }
+  if (dfa->nbackref)
+    {
+      lim_states = re_malloc (re_dfastate_t *, match_last + 1);
+      if (BE (lim_states == NULL, 0))
+	{
+	  ret = REG_ESPACE;
+	  goto free_return;
+	}
+      while (1)
+	{
+	  memset (lim_states, '\0',
+		  sizeof (re_dfastate_t *) * (match_last + 1));
+	  sift_ctx_init (&sctx, sifted_states, lim_states, halt_node,
+			 match_last);
+	  ret = sift_states_backward (mctx, &sctx);
+	  re_node_set_free (&sctx.limits);
+	  if (BE (ret != REG_NOERROR, 0))
+	      goto free_return;
+	  if (sifted_states[0] != NULL || lim_states[0] != NULL)
+	    break;
+	  do
+	    {
+	      --match_last;
+	      if (match_last < 0)
+		{
+		  ret = REG_NOMATCH;
+		  goto free_return;
+		}
+	    } while (mctx->state_log[match_last] == NULL
+		     || !mctx->state_log[match_last]->halt);
+	  halt_node = check_halt_state_context (mctx,
+						mctx->state_log[match_last],
+						match_last);
+	}
+      ret = merge_state_array (dfa, sifted_states, lim_states,
+			       match_last + 1);
+      re_free (lim_states);
+      lim_states = NULL;
+      if (BE (ret != REG_NOERROR, 0))
+	goto free_return;
+    }
+  else
+    {
+      sift_ctx_init (&sctx, sifted_states, lim_states, halt_node, match_last);
+      ret = sift_states_backward (mctx, &sctx);
+      re_node_set_free (&sctx.limits);
+      if (BE (ret != REG_NOERROR, 0))
+	goto free_return;
+    }
+  re_free (mctx->state_log);
+  mctx->state_log = sifted_states;
+  sifted_states = NULL;
+  mctx->last_node = halt_node;
+  mctx->match_last = match_last;
+  ret = REG_NOERROR;
+ free_return:
+  re_free (sifted_states);
+  re_free (lim_states);
+  return ret;
+}
+
+/* Acquire an initial state and return it.
+   We must select appropriate initial state depending on the context,
+   since initial states may have constraints like "\<", "^", etc..  */
+
+static inline re_dfastate_t *
+__attribute ((always_inline)) internal_function
+acquire_init_state_context (reg_errcode_t *err, const re_match_context_t *mctx,
+			    int idx)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  if (dfa->init_state->has_constraint)
+    {
+      unsigned int context;
+      context = re_string_context_at (&mctx->input, idx - 1, mctx->eflags);
+      if (IS_WORD_CONTEXT (context))
+	return dfa->init_state_word;
+      else if (IS_ORDINARY_CONTEXT (context))
+	return dfa->init_state;
+      else if (IS_BEGBUF_CONTEXT (context) && IS_NEWLINE_CONTEXT (context))
+	return dfa->init_state_begbuf;
+      else if (IS_NEWLINE_CONTEXT (context))
+	return dfa->init_state_nl;
+      else if (IS_BEGBUF_CONTEXT (context))
+	{
+	  /* It is relatively rare case, then calculate on demand.  */
+	  return re_acquire_state_context (err, dfa,
+					   dfa->init_state->entrance_nodes,
+					   context);
+	}
+      else
+	/* Must not happen?  */
+	return dfa->init_state;
+    }
+  else
+    return dfa->init_state;
+}
+
+/* Check whether the regular expression match input string INPUT or not,
+   and return the index where the matching end, return -1 if not match,
+   or return -2 in case of an error.
+   FL_LONGEST_MATCH means we want the POSIX longest matching.
+   If P_MATCH_FIRST is not NULL, and the match fails, it is set to the
+   next place where we may want to try matching.
+   Note that the matcher assume that the maching starts from the current
+   index of the buffer.  */
+
+static int
+internal_function
+check_matching (re_match_context_t *mctx, int fl_longest_match,
+		int *p_match_first)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  reg_errcode_t err;
+  int match = 0;
+  int match_last = -1;
+  int cur_str_idx = re_string_cur_idx (&mctx->input);
+  re_dfastate_t *cur_state;
+  int at_init_state = p_match_first != NULL;
+  int next_start_idx = cur_str_idx;
+
+  err = REG_NOERROR;
+  cur_state = acquire_init_state_context (&err, mctx, cur_str_idx);
+  /* An initial state must not be NULL (invalid).  */
+  if (BE (cur_state == NULL, 0))
+    {
+      assert (err == REG_ESPACE);
+      return -2;
+    }
+
+  if (mctx->state_log != NULL)
+    {
+      mctx->state_log[cur_str_idx] = cur_state;
+
+      /* Check OP_OPEN_SUBEXP in the initial state in case that we use them
+	 later.  E.g. Processing back references.  */
+      if (BE (dfa->nbackref, 0))
+	{
+	  at_init_state = 0;
+	  err = check_subexp_matching_top (mctx, &cur_state->nodes, 0);
+	  if (BE (err != REG_NOERROR, 0))
+	    return err;
+
+	  if (cur_state->has_backref)
+	    {
+	      err = transit_state_bkref (mctx, &cur_state->nodes);
+	      if (BE (err != REG_NOERROR, 0))
+	        return err;
+	    }
+	}
+    }
+
+  /* If the RE accepts NULL string.  */
+  if (BE (cur_state->halt, 0))
+    {
+      if (!cur_state->has_constraint
+	  || check_halt_state_context (mctx, cur_state, cur_str_idx))
+	{
+	  if (!fl_longest_match)
+	    return cur_str_idx;
+	  else
+	    {
+	      match_last = cur_str_idx;
+	      match = 1;
+	    }
+	}
+    }
+
+  while (!re_string_eoi (&mctx->input))
+    {
+      re_dfastate_t *old_state = cur_state;
+      int next_char_idx = re_string_cur_idx (&mctx->input) + 1;
+
+      if (BE (next_char_idx >= mctx->input.bufs_len, 0)
+          || (BE (next_char_idx >= mctx->input.valid_len, 0)
+              && mctx->input.valid_len < mctx->input.len))
+        {
+          err = extend_buffers (mctx);
+          if (BE (err != REG_NOERROR, 0))
+	    {
+	      assert (err == REG_ESPACE);
+	      return -2;
+	    }
+        }
+
+      cur_state = transit_state (&err, mctx, cur_state);
+      if (mctx->state_log != NULL)
+	cur_state = merge_state_with_log (&err, mctx, cur_state);
+
+      if (cur_state == NULL)
+	{
+	  /* Reached the invalid state or an error.  Try to recover a valid
+	     state using the state log, if available and if we have not
+	     already found a valid (even if not the longest) match.  */
+	  if (BE (err != REG_NOERROR, 0))
+	    return -2;
+
+	  if (mctx->state_log == NULL
+	      || (match && !fl_longest_match)
+	      || (cur_state = find_recover_state (&err, mctx)) == NULL)
+	    break;
+	}
+
+      if (BE (at_init_state, 0))
+	{
+	  if (old_state == cur_state)
+	    next_start_idx = next_char_idx;
+	  else
+	    at_init_state = 0;
+	}
+
+      if (cur_state->halt)
+	{
+	  /* Reached a halt state.
+	     Check the halt state can satisfy the current context.  */
+	  if (!cur_state->has_constraint
+	      || check_halt_state_context (mctx, cur_state,
+					   re_string_cur_idx (&mctx->input)))
+	    {
+	      /* We found an appropriate halt state.  */
+	      match_last = re_string_cur_idx (&mctx->input);
+	      match = 1;
+
+	      /* We found a match, do not modify match_first below.  */
+	      p_match_first = NULL;
+	      if (!fl_longest_match)
+		break;
+	    }
+	}
+    }
+
+  if (p_match_first)
+    *p_match_first += next_start_idx;
+
+  return match_last;
+}
+
+/* Check NODE match the current context.  */
+
+static int
+internal_function
+check_halt_node_context (const re_dfa_t *dfa, int node, unsigned int context)
+{
+  re_token_type_t type = dfa->nodes[node].type;
+  unsigned int constraint = dfa->nodes[node].constraint;
+  if (type != END_OF_RE)
+    return 0;
+  if (!constraint)
+    return 1;
+  if (NOT_SATISFY_NEXT_CONSTRAINT (constraint, context))
+    return 0;
+  return 1;
+}
+
+/* Check the halt state STATE match the current context.
+   Return 0 if not match, if the node, STATE has, is a halt node and
+   match the context, return the node.  */
+
+static int
+internal_function
+check_halt_state_context (const re_match_context_t *mctx,
+			  const re_dfastate_t *state, int idx)
+{
+  int i;
+  unsigned int context;
+#ifdef DEBUG
+  assert (state->halt);
+#endif
+  context = re_string_context_at (&mctx->input, idx, mctx->eflags);
+  for (i = 0; i < state->nodes.nelem; ++i)
+    if (check_halt_node_context (mctx->dfa, state->nodes.elems[i], context))
+      return state->nodes.elems[i];
+  return 0;
+}
+
+/* Compute the next node to which "NFA" transit from NODE("NFA" is a NFA
+   corresponding to the DFA).
+   Return the destination node, and update EPS_VIA_NODES, return -1 in case
+   of errors.  */
+
+static int
+internal_function
+proceed_next_node (const re_match_context_t *mctx, int nregs, regmatch_t *regs,
+		   int *pidx, int node, re_node_set *eps_via_nodes,
+		   struct re_fail_stack_t *fs)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  int i, err;
+  if (IS_EPSILON_NODE (dfa->nodes[node].type))
+    {
+      re_node_set *cur_nodes = &mctx->state_log[*pidx]->nodes;
+      re_node_set *edests = &dfa->edests[node];
+      int dest_node;
+      err = re_node_set_insert (eps_via_nodes, node);
+      if (BE (err < 0, 0))
+	return -2;
+      /* Pick up a valid destination, or return -1 if none is found.  */
+      for (dest_node = -1, i = 0; i < edests->nelem; ++i)
+	{
+	  int candidate = edests->elems[i];
+	  if (!re_node_set_contains (cur_nodes, candidate))
+	    continue;
+          if (dest_node == -1)
+	    dest_node = candidate;
+
+          else
+	    {
+	      /* In order to avoid infinite loop like "(a*)*", return the second
+	         epsilon-transition if the first was already considered.  */
+	      if (re_node_set_contains (eps_via_nodes, dest_node))
+	        return candidate;
+
+	      /* Otherwise, push the second epsilon-transition on the fail stack.  */
+	      else if (fs != NULL
+		       && push_fail_stack (fs, *pidx, candidate, nregs, regs,
+				           eps_via_nodes))
+		return -2;
+
+	      /* We know we are going to exit.  */
+	      break;
+	    }
+	}
+      return dest_node;
+    }
+  else
+    {
+      int naccepted = 0;
+      re_token_type_t type = dfa->nodes[node].type;
+
+#ifdef RE_ENABLE_I18N
+      if (dfa->nodes[node].accept_mb)
+	naccepted = check_node_accept_bytes (dfa, node, &mctx->input, *pidx);
+      else
+#endif /* RE_ENABLE_I18N */
+      if (type == OP_BACK_REF)
+	{
+	  int subexp_idx = dfa->nodes[node].opr.idx + 1;
+	  naccepted = regs[subexp_idx].rm_eo - regs[subexp_idx].rm_so;
+	  if (fs != NULL)
+	    {
+	      if (regs[subexp_idx].rm_so == -1 || regs[subexp_idx].rm_eo == -1)
+		return -1;
+	      else if (naccepted)
+		{
+		  char *buf = (char *) re_string_get_buffer (&mctx->input);
+		  if (memcmp (buf + regs[subexp_idx].rm_so, buf + *pidx,
+			      naccepted) != 0)
+		    return -1;
+		}
+	    }
+
+	  if (naccepted == 0)
+	    {
+	      int dest_node;
+	      err = re_node_set_insert (eps_via_nodes, node);
+	      if (BE (err < 0, 0))
+		return -2;
+	      dest_node = dfa->edests[node].elems[0];
+	      if (re_node_set_contains (&mctx->state_log[*pidx]->nodes,
+					dest_node))
+		return dest_node;
+	    }
+	}
+
+      if (naccepted != 0
+	  || check_node_accept (mctx, dfa->nodes + node, *pidx))
+	{
+	  int dest_node = dfa->nexts[node];
+	  *pidx = (naccepted == 0) ? *pidx + 1 : *pidx + naccepted;
+	  if (fs && (*pidx > mctx->match_last || mctx->state_log[*pidx] == NULL
+		     || !re_node_set_contains (&mctx->state_log[*pidx]->nodes,
+					       dest_node)))
+	    return -1;
+	  re_node_set_empty (eps_via_nodes);
+	  return dest_node;
+	}
+    }
+  return -1;
+}
+
+static reg_errcode_t
+internal_function
+push_fail_stack (struct re_fail_stack_t *fs, int str_idx, int dest_node,
+		 int nregs, regmatch_t *regs, re_node_set *eps_via_nodes)
+{
+  reg_errcode_t err;
+  int num = fs->num++;
+  if (fs->num == fs->alloc)
+    {
+      struct re_fail_stack_ent_t *new_array;
+      new_array = realloc (fs->stack, (sizeof (struct re_fail_stack_ent_t)
+				       * fs->alloc * 2));
+      if (new_array == NULL)
+	return REG_ESPACE;
+      fs->alloc *= 2;
+      fs->stack = new_array;
+    }
+  fs->stack[num].idx = str_idx;
+  fs->stack[num].node = dest_node;
+  fs->stack[num].regs = re_malloc (regmatch_t, nregs);
+  if (fs->stack[num].regs == NULL)
+    return REG_ESPACE;
+  memcpy (fs->stack[num].regs, regs, sizeof (regmatch_t) * nregs);
+  err = re_node_set_init_copy (&fs->stack[num].eps_via_nodes, eps_via_nodes);
+  return err;
+}
+
+static int
+internal_function
+pop_fail_stack (struct re_fail_stack_t *fs, int *pidx, int nregs,
+		regmatch_t *regs, re_node_set *eps_via_nodes)
+{
+  int num = --fs->num;
+  assert (num >= 0);
+  *pidx = fs->stack[num].idx;
+  memcpy (regs, fs->stack[num].regs, sizeof (regmatch_t) * nregs);
+  re_node_set_free (eps_via_nodes);
+  re_free (fs->stack[num].regs);
+  *eps_via_nodes = fs->stack[num].eps_via_nodes;
+  return fs->stack[num].node;
+}
+
+/* Set the positions where the subexpressions are starts/ends to registers
+   PMATCH.
+   Note: We assume that pmatch[0] is already set, and
+   pmatch[i].rm_so == pmatch[i].rm_eo == -1 for 0 < i < nmatch.  */
+
+static reg_errcode_t
+internal_function
+set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch,
+	  regmatch_t *pmatch, int fl_backtrack)
+{
+  const re_dfa_t *dfa = (const re_dfa_t *) preg->buffer;
+  int idx, cur_node;
+  re_node_set eps_via_nodes;
+  struct re_fail_stack_t *fs;
+  struct re_fail_stack_t fs_body = { 0, 2, NULL };
+  regmatch_t *prev_idx_match;
+  int prev_idx_match_malloced = 0;
+
+#ifdef DEBUG
+  assert (nmatch > 1);
+  assert (mctx->state_log != NULL);
+#endif
+  if (fl_backtrack)
+    {
+      fs = &fs_body;
+      fs->stack = re_malloc (struct re_fail_stack_ent_t, fs->alloc);
+      if (fs->stack == NULL)
+	return REG_ESPACE;
+    }
+  else
+    fs = NULL;
+
+  cur_node = dfa->init_node;
+  re_node_set_init_empty (&eps_via_nodes);
+
+  if (__libc_use_alloca (nmatch * sizeof (regmatch_t)))
+    prev_idx_match = (regmatch_t *) alloca (nmatch * sizeof (regmatch_t));
+  else
+    {
+      prev_idx_match = re_malloc (regmatch_t, nmatch);
+      if (prev_idx_match == NULL)
+	{
+	  free_fail_stack_return (fs);
+	  return REG_ESPACE;
+	}
+      prev_idx_match_malloced = 1;
+    }
+  memcpy (prev_idx_match, pmatch, sizeof (regmatch_t) * nmatch);
+
+  for (idx = pmatch[0].rm_so; idx <= pmatch[0].rm_eo ;)
+    {
+      update_regs (dfa, pmatch, prev_idx_match, cur_node, idx, nmatch);
+
+      if (idx == pmatch[0].rm_eo && cur_node == mctx->last_node)
+	{
+	  int reg_idx;
+	  if (fs)
+	    {
+	      for (reg_idx = 0; reg_idx < nmatch; ++reg_idx)
+		if (pmatch[reg_idx].rm_so > -1 && pmatch[reg_idx].rm_eo == -1)
+		  break;
+	      if (reg_idx == nmatch)
+		{
+		  re_node_set_free (&eps_via_nodes);
+		  if (prev_idx_match_malloced)
+		    re_free (prev_idx_match);
+		  return free_fail_stack_return (fs);
+		}
+	      cur_node = pop_fail_stack (fs, &idx, nmatch, pmatch,
+					 &eps_via_nodes);
+	    }
+	  else
+	    {
+	      re_node_set_free (&eps_via_nodes);
+	      if (prev_idx_match_malloced)
+		re_free (prev_idx_match);
+	      return REG_NOERROR;
+	    }
+	}
+
+      /* Proceed to next node.  */
+      cur_node = proceed_next_node (mctx, nmatch, pmatch, &idx, cur_node,
+				    &eps_via_nodes, fs);
+
+      if (BE (cur_node < 0, 0))
+	{
+	  if (BE (cur_node == -2, 0))
+	    {
+	      re_node_set_free (&eps_via_nodes);
+	      if (prev_idx_match_malloced)
+		re_free (prev_idx_match);
+	      free_fail_stack_return (fs);
+	      return REG_ESPACE;
+	    }
+	  if (fs)
+	    cur_node = pop_fail_stack (fs, &idx, nmatch, pmatch,
+				       &eps_via_nodes);
+	  else
+	    {
+	      re_node_set_free (&eps_via_nodes);
+	      if (prev_idx_match_malloced)
+		re_free (prev_idx_match);
+	      return REG_NOMATCH;
+	    }
+	}
+    }
+  re_node_set_free (&eps_via_nodes);
+  if (prev_idx_match_malloced)
+    re_free (prev_idx_match);
+  return free_fail_stack_return (fs);
+}
+
+static reg_errcode_t
+internal_function
+free_fail_stack_return (struct re_fail_stack_t *fs)
+{
+  if (fs)
+    {
+      int fs_idx;
+      for (fs_idx = 0; fs_idx < fs->num; ++fs_idx)
+	{
+	  re_node_set_free (&fs->stack[fs_idx].eps_via_nodes);
+	  re_free (fs->stack[fs_idx].regs);
+	}
+      re_free (fs->stack);
+    }
+  return REG_NOERROR;
+}
+
+static void
+internal_function
+update_regs (const re_dfa_t *dfa, regmatch_t *pmatch,
+	     regmatch_t *prev_idx_match, int cur_node, int cur_idx, int nmatch)
+{
+  int type = dfa->nodes[cur_node].type;
+  if (type == OP_OPEN_SUBEXP)
+    {
+      int reg_num = dfa->nodes[cur_node].opr.idx + 1;
+
+      /* We are at the first node of this sub expression.  */
+      if (reg_num < nmatch)
+	{
+	  pmatch[reg_num].rm_so = cur_idx;
+	  pmatch[reg_num].rm_eo = -1;
+	}
+    }
+  else if (type == OP_CLOSE_SUBEXP)
+    {
+      int reg_num = dfa->nodes[cur_node].opr.idx + 1;
+      if (reg_num < nmatch)
+	{
+	  /* We are at the last node of this sub expression.  */
+	  if (pmatch[reg_num].rm_so < cur_idx)
+	    {
+	      pmatch[reg_num].rm_eo = cur_idx;
+	      /* This is a non-empty match or we are not inside an optional
+		 subexpression.  Accept this right away.  */
+	      memcpy (prev_idx_match, pmatch, sizeof (regmatch_t) * nmatch);
+	    }
+	  else
+	    {
+	      if (dfa->nodes[cur_node].opt_subexp
+		  && prev_idx_match[reg_num].rm_so != -1)
+		/* We transited through an empty match for an optional
+		   subexpression, like (a?)*, and this is not the subexp's
+		   first match.  Copy back the old content of the registers
+		   so that matches of an inner subexpression are undone as
+		   well, like in ((a?))*.  */
+		memcpy (pmatch, prev_idx_match, sizeof (regmatch_t) * nmatch);
+	      else
+		/* We completed a subexpression, but it may be part of
+		   an optional one, so do not update PREV_IDX_MATCH.  */
+		pmatch[reg_num].rm_eo = cur_idx;
+	    }
+	}
+    }
+}
+
+/* This function checks the STATE_LOG from the SCTX->last_str_idx to 0
+   and sift the nodes in each states according to the following rules.
+   Updated state_log will be wrote to STATE_LOG.
+
+   Rules: We throw away the Node `a' in the STATE_LOG[STR_IDX] if...
+     1. When STR_IDX == MATCH_LAST(the last index in the state_log):
+	If `a' isn't the LAST_NODE and `a' can't epsilon transit to
+	the LAST_NODE, we throw away the node `a'.
+     2. When 0 <= STR_IDX < MATCH_LAST and `a' accepts
+	string `s' and transit to `b':
+	i. If 'b' isn't in the STATE_LOG[STR_IDX+strlen('s')], we throw
+	   away the node `a'.
+	ii. If 'b' is in the STATE_LOG[STR_IDX+strlen('s')] but 'b' is
+	    thrown away, we throw away the node `a'.
+     3. When 0 <= STR_IDX < MATCH_LAST and 'a' epsilon transit to 'b':
+	i. If 'b' isn't in the STATE_LOG[STR_IDX], we throw away the
+	   node `a'.
+	ii. If 'b' is in the STATE_LOG[STR_IDX] but 'b' is thrown away,
+	    we throw away the node `a'.  */
+
+#define STATE_NODE_CONTAINS(state,node) \
+  ((state) != NULL && re_node_set_contains (&(state)->nodes, node))
+
+static reg_errcode_t
+internal_function
+sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx)
+{
+  reg_errcode_t err;
+  int null_cnt = 0;
+  int str_idx = sctx->last_str_idx;
+  re_node_set cur_dest;
+
+#ifdef DEBUG
+  assert (mctx->state_log != NULL && mctx->state_log[str_idx] != NULL);
+#endif
+
+  /* Build sifted state_log[str_idx].  It has the nodes which can epsilon
+     transit to the last_node and the last_node itself.  */
+  err = re_node_set_init_1 (&cur_dest, sctx->last_node);
+  if (BE (err != REG_NOERROR, 0))
+    return err;
+  err = update_cur_sifted_state (mctx, sctx, str_idx, &cur_dest);
+  if (BE (err != REG_NOERROR, 0))
+    goto free_return;
+
+  /* Then check each states in the state_log.  */
+  while (str_idx > 0)
+    {
+      /* Update counters.  */
+      null_cnt = (sctx->sifted_states[str_idx] == NULL) ? null_cnt + 1 : 0;
+      if (null_cnt > mctx->max_mb_elem_len)
+	{
+	  memset (sctx->sifted_states, '\0',
+		  sizeof (re_dfastate_t *) * str_idx);
+	  re_node_set_free (&cur_dest);
+	  return REG_NOERROR;
+	}
+      re_node_set_empty (&cur_dest);
+      --str_idx;
+
+      if (mctx->state_log[str_idx])
+	{
+	  err = build_sifted_states (mctx, sctx, str_idx, &cur_dest);
+          if (BE (err != REG_NOERROR, 0))
+	    goto free_return;
+	}
+
+      /* Add all the nodes which satisfy the following conditions:
+	 - It can epsilon transit to a node in CUR_DEST.
+	 - It is in CUR_SRC.
+	 And update state_log.  */
+      err = update_cur_sifted_state (mctx, sctx, str_idx, &cur_dest);
+      if (BE (err != REG_NOERROR, 0))
+	goto free_return;
+    }
+  err = REG_NOERROR;
+ free_return:
+  re_node_set_free (&cur_dest);
+  return err;
+}
+
+static reg_errcode_t
+internal_function
+build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx,
+		     int str_idx, re_node_set *cur_dest)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  const re_node_set *cur_src = &mctx->state_log[str_idx]->non_eps_nodes;
+  int i;
+
+  /* Then build the next sifted state.
+     We build the next sifted state on `cur_dest', and update
+     `sifted_states[str_idx]' with `cur_dest'.
+     Note:
+     `cur_dest' is the sifted state from `state_log[str_idx + 1]'.
+     `cur_src' points the node_set of the old `state_log[str_idx]'
+     (with the epsilon nodes pre-filtered out).  */
+  for (i = 0; i < cur_src->nelem; i++)
+    {
+      int prev_node = cur_src->elems[i];
+      int naccepted = 0;
+      int ret;
+
+#ifdef DEBUG
+      re_token_type_t type = dfa->nodes[prev_node].type;
+      assert (!IS_EPSILON_NODE (type));
+#endif
+#ifdef RE_ENABLE_I18N
+      /* If the node may accept `multi byte'.  */
+      if (dfa->nodes[prev_node].accept_mb)
+	naccepted = sift_states_iter_mb (mctx, sctx, prev_node,
+					 str_idx, sctx->last_str_idx);
+#endif /* RE_ENABLE_I18N */
+
+      /* We don't check backreferences here.
+	 See update_cur_sifted_state().  */
+      if (!naccepted
+	  && check_node_accept (mctx, dfa->nodes + prev_node, str_idx)
+	  && STATE_NODE_CONTAINS (sctx->sifted_states[str_idx + 1],
+				  dfa->nexts[prev_node]))
+	naccepted = 1;
+
+      if (naccepted == 0)
+	continue;
+
+      if (sctx->limits.nelem)
+	{
+	  int to_idx = str_idx + naccepted;
+	  if (check_dst_limits (mctx, &sctx->limits,
+				dfa->nexts[prev_node], to_idx,
+				prev_node, str_idx))
+	    continue;
+	}
+      ret = re_node_set_insert (cur_dest, prev_node);
+      if (BE (ret == -1, 0))
+	return REG_ESPACE;
+    }
+
+  return REG_NOERROR;
+}
+
+/* Helper functions.  */
+
+static reg_errcode_t
+internal_function
+clean_state_log_if_needed (re_match_context_t *mctx, int next_state_log_idx)
+{
+  int top = mctx->state_log_top;
+
+  if (next_state_log_idx >= mctx->input.bufs_len
+      || (next_state_log_idx >= mctx->input.valid_len
+	  && mctx->input.valid_len < mctx->input.len))
+    {
+      reg_errcode_t err;
+      err = extend_buffers (mctx);
+      if (BE (err != REG_NOERROR, 0))
+	return err;
+    }
+
+  if (top < next_state_log_idx)
+    {
+      memset (mctx->state_log + top + 1, '\0',
+	      sizeof (re_dfastate_t *) * (next_state_log_idx - top));
+      mctx->state_log_top = next_state_log_idx;
+    }
+  return REG_NOERROR;
+}
+
+static reg_errcode_t
+internal_function
+merge_state_array (const re_dfa_t *dfa, re_dfastate_t **dst,
+		   re_dfastate_t **src, int num)
+{
+  int st_idx;
+  reg_errcode_t err;
+  for (st_idx = 0; st_idx < num; ++st_idx)
+    {
+      if (dst[st_idx] == NULL)
+	dst[st_idx] = src[st_idx];
+      else if (src[st_idx] != NULL)
+	{
+	  re_node_set merged_set;
+	  err = re_node_set_init_union (&merged_set, &dst[st_idx]->nodes,
+					&src[st_idx]->nodes);
+	  if (BE (err != REG_NOERROR, 0))
+	    return err;
+	  dst[st_idx] = re_acquire_state (&err, dfa, &merged_set);
+	  re_node_set_free (&merged_set);
+	  if (BE (err != REG_NOERROR, 0))
+	    return err;
+	}
+    }
+  return REG_NOERROR;
+}
+
+static reg_errcode_t
+internal_function
+update_cur_sifted_state (const re_match_context_t *mctx,
+			 re_sift_context_t *sctx, int str_idx,
+			 re_node_set *dest_nodes)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  reg_errcode_t err = REG_NOERROR;
+  const re_node_set *candidates;
+  candidates = ((mctx->state_log[str_idx] == NULL) ? NULL
+		: &mctx->state_log[str_idx]->nodes);
+
+  if (dest_nodes->nelem == 0)
+    sctx->sifted_states[str_idx] = NULL;
+  else
+    {
+      if (candidates)
+	{
+	  /* At first, add the nodes which can epsilon transit to a node in
+	     DEST_NODE.  */
+	  err = add_epsilon_src_nodes (dfa, dest_nodes, candidates);
+	  if (BE (err != REG_NOERROR, 0))
+	    return err;
+
+	  /* Then, check the limitations in the current sift_context.  */
+	  if (sctx->limits.nelem)
+	    {
+	      err = check_subexp_limits (dfa, dest_nodes, candidates, &sctx->limits,
+					 mctx->bkref_ents, str_idx);
+	      if (BE (err != REG_NOERROR, 0))
+		return err;
+	    }
+	}
+
+      sctx->sifted_states[str_idx] = re_acquire_state (&err, dfa, dest_nodes);
+      if (BE (err != REG_NOERROR, 0))
+	return err;
+    }
+
+  if (candidates && mctx->state_log[str_idx]->has_backref)
+    {
+      err = sift_states_bkref (mctx, sctx, str_idx, candidates);
+      if (BE (err != REG_NOERROR, 0))
+	return err;
+    }
+  return REG_NOERROR;
+}
+
+static reg_errcode_t
+internal_function
+add_epsilon_src_nodes (const re_dfa_t *dfa, re_node_set *dest_nodes,
+		       const re_node_set *candidates)
+{
+  reg_errcode_t err = REG_NOERROR;
+  int i;
+
+  re_dfastate_t *state = re_acquire_state (&err, dfa, dest_nodes);
+  if (BE (err != REG_NOERROR, 0))
+    return err;
+
+  if (!state->inveclosure.alloc)
+    {
+      err = re_node_set_alloc (&state->inveclosure, dest_nodes->nelem);
+      if (BE (err != REG_NOERROR, 0))
+        return REG_ESPACE;
+      for (i = 0; i < dest_nodes->nelem; i++)
+        re_node_set_merge (&state->inveclosure,
+			   dfa->inveclosures + dest_nodes->elems[i]);
+    }
+  return re_node_set_add_intersect (dest_nodes, candidates,
+				    &state->inveclosure);
+}
+
+static reg_errcode_t
+internal_function
+sub_epsilon_src_nodes (const re_dfa_t *dfa, int node, re_node_set *dest_nodes,
+		       const re_node_set *candidates)
+{
+    int ecl_idx;
+    reg_errcode_t err;
+    re_node_set *inv_eclosure = dfa->inveclosures + node;
+    re_node_set except_nodes;
+    re_node_set_init_empty (&except_nodes);
+    for (ecl_idx = 0; ecl_idx < inv_eclosure->nelem; ++ecl_idx)
+      {
+	int cur_node = inv_eclosure->elems[ecl_idx];
+	if (cur_node == node)
+	  continue;
+	if (IS_EPSILON_NODE (dfa->nodes[cur_node].type))
+	  {
+	    int edst1 = dfa->edests[cur_node].elems[0];
+	    int edst2 = ((dfa->edests[cur_node].nelem > 1)
+			 ? dfa->edests[cur_node].elems[1] : -1);
+	    if ((!re_node_set_contains (inv_eclosure, edst1)
+		 && re_node_set_contains (dest_nodes, edst1))
+		|| (edst2 > 0
+		    && !re_node_set_contains (inv_eclosure, edst2)
+		    && re_node_set_contains (dest_nodes, edst2)))
+	      {
+		err = re_node_set_add_intersect (&except_nodes, candidates,
+						 dfa->inveclosures + cur_node);
+		if (BE (err != REG_NOERROR, 0))
+		  {
+		    re_node_set_free (&except_nodes);
+		    return err;
+		  }
+	      }
+	  }
+      }
+    for (ecl_idx = 0; ecl_idx < inv_eclosure->nelem; ++ecl_idx)
+      {
+	int cur_node = inv_eclosure->elems[ecl_idx];
+	if (!re_node_set_contains (&except_nodes, cur_node))
+	  {
+	    int idx = re_node_set_contains (dest_nodes, cur_node) - 1;
+	    re_node_set_remove_at (dest_nodes, idx);
+	  }
+      }
+    re_node_set_free (&except_nodes);
+    return REG_NOERROR;
+}
+
+static int
+internal_function
+check_dst_limits (const re_match_context_t *mctx, re_node_set *limits,
+		  int dst_node, int dst_idx, int src_node, int src_idx)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  int lim_idx, src_pos, dst_pos;
+
+  int dst_bkref_idx = search_cur_bkref_entry (mctx, dst_idx);
+  int src_bkref_idx = search_cur_bkref_entry (mctx, src_idx);
+  for (lim_idx = 0; lim_idx < limits->nelem; ++lim_idx)
+    {
+      int subexp_idx;
+      struct re_backref_cache_entry *ent;
+      ent = mctx->bkref_ents + limits->elems[lim_idx];
+      subexp_idx = dfa->nodes[ent->node].opr.idx;
+
+      dst_pos = check_dst_limits_calc_pos (mctx, limits->elems[lim_idx],
+					   subexp_idx, dst_node, dst_idx,
+					   dst_bkref_idx);
+      src_pos = check_dst_limits_calc_pos (mctx, limits->elems[lim_idx],
+					   subexp_idx, src_node, src_idx,
+					   src_bkref_idx);
+
+      /* In case of:
+	 <src> <dst> ( <subexp> )
+	 ( <subexp> ) <src> <dst>
+	 ( <subexp1> <src> <subexp2> <dst> <subexp3> )  */
+      if (src_pos == dst_pos)
+	continue; /* This is unrelated limitation.  */
+      else
+	return 1;
+    }
+  return 0;
+}
+
+static int
+internal_function
+check_dst_limits_calc_pos_1 (const re_match_context_t *mctx, int boundaries,
+			     int subexp_idx, int from_node, int bkref_idx)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  const re_node_set *eclosures = dfa->eclosures + from_node;
+  int node_idx;
+
+  /* Else, we are on the boundary: examine the nodes on the epsilon
+     closure.  */
+  for (node_idx = 0; node_idx < eclosures->nelem; ++node_idx)
+    {
+      int node = eclosures->elems[node_idx];
+      switch (dfa->nodes[node].type)
+	{
+	case OP_BACK_REF:
+	  if (bkref_idx != -1)
+	    {
+	      struct re_backref_cache_entry *ent = mctx->bkref_ents + bkref_idx;
+	      do
+	        {
+		  int dst, cpos;
+
+		  if (ent->node != node)
+		    continue;
+
+		  if (subexp_idx < BITSET_WORD_BITS
+		      && !(ent->eps_reachable_subexps_map
+			   & ((bitset_word_t) 1 << subexp_idx)))
+		    continue;
+
+		  /* Recurse trying to reach the OP_OPEN_SUBEXP and
+		     OP_CLOSE_SUBEXP cases below.  But, if the
+		     destination node is the same node as the source
+		     node, don't recurse because it would cause an
+		     infinite loop: a regex that exhibits this behavior
+		     is ()\1*\1*  */
+		  dst = dfa->edests[node].elems[0];
+		  if (dst == from_node)
+		    {
+		      if (boundaries & 1)
+		        return -1;
+		      else /* if (boundaries & 2) */
+		        return 0;
+		    }
+
+		  cpos =
+		    check_dst_limits_calc_pos_1 (mctx, boundaries, subexp_idx,
+						 dst, bkref_idx);
+		  if (cpos == -1 /* && (boundaries & 1) */)
+		    return -1;
+		  if (cpos == 0 && (boundaries & 2))
+		    return 0;
+
+		  if (subexp_idx < BITSET_WORD_BITS)
+		    ent->eps_reachable_subexps_map
+		      &= ~((bitset_word_t) 1 << subexp_idx);
+	        }
+	      while (ent++->more);
+	    }
+	  break;
+
+	case OP_OPEN_SUBEXP:
+	  if ((boundaries & 1) && subexp_idx == dfa->nodes[node].opr.idx)
+	    return -1;
+	  break;
+
+	case OP_CLOSE_SUBEXP:
+	  if ((boundaries & 2) && subexp_idx == dfa->nodes[node].opr.idx)
+	    return 0;
+	  break;
+
+	default:
+	    break;
+	}
+    }
+
+  return (boundaries & 2) ? 1 : 0;
+}
+
+static int
+internal_function
+check_dst_limits_calc_pos (const re_match_context_t *mctx, int limit,
+			   int subexp_idx, int from_node, int str_idx,
+			   int bkref_idx)
+{
+  struct re_backref_cache_entry *lim = mctx->bkref_ents + limit;
+  int boundaries;
+
+  /* If we are outside the range of the subexpression, return -1 or 1.  */
+  if (str_idx < lim->subexp_from)
+    return -1;
+
+  if (lim->subexp_to < str_idx)
+    return 1;
+
+  /* If we are within the subexpression, return 0.  */
+  boundaries = (str_idx == lim->subexp_from);
+  boundaries |= (str_idx == lim->subexp_to) << 1;
+  if (boundaries == 0)
+    return 0;
+
+  /* Else, examine epsilon closure.  */
+  return check_dst_limits_calc_pos_1 (mctx, boundaries, subexp_idx,
+				      from_node, bkref_idx);
+}
+
+/* Check the limitations of sub expressions LIMITS, and remove the nodes
+   which are against limitations from DEST_NODES. */
+
+static reg_errcode_t
+internal_function
+check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes,
+		     const re_node_set *candidates, re_node_set *limits,
+		     struct re_backref_cache_entry *bkref_ents, int str_idx)
+{
+  reg_errcode_t err;
+  int node_idx, lim_idx;
+
+  for (lim_idx = 0; lim_idx < limits->nelem; ++lim_idx)
+    {
+      int subexp_idx;
+      struct re_backref_cache_entry *ent;
+      ent = bkref_ents + limits->elems[lim_idx];
+
+      if (str_idx <= ent->subexp_from || ent->str_idx < str_idx)
+	continue; /* This is unrelated limitation.  */
+
+      subexp_idx = dfa->nodes[ent->node].opr.idx;
+      if (ent->subexp_to == str_idx)
+	{
+	  int ops_node = -1;
+	  int cls_node = -1;
+	  for (node_idx = 0; node_idx < dest_nodes->nelem; ++node_idx)
+	    {
+	      int node = dest_nodes->elems[node_idx];
+	      re_token_type_t type = dfa->nodes[node].type;
+	      if (type == OP_OPEN_SUBEXP
+		  && subexp_idx == dfa->nodes[node].opr.idx)
+		ops_node = node;
+	      else if (type == OP_CLOSE_SUBEXP
+		       && subexp_idx == dfa->nodes[node].opr.idx)
+		cls_node = node;
+	    }
+
+	  /* Check the limitation of the open subexpression.  */
+	  /* Note that (ent->subexp_to = str_idx != ent->subexp_from).  */
+	  if (ops_node >= 0)
+	    {
+	      err = sub_epsilon_src_nodes (dfa, ops_node, dest_nodes,
+					   candidates);
+	      if (BE (err != REG_NOERROR, 0))
+		return err;
+	    }
+
+	  /* Check the limitation of the close subexpression.  */
+	  if (cls_node >= 0)
+	    for (node_idx = 0; node_idx < dest_nodes->nelem; ++node_idx)
+	      {
+		int node = dest_nodes->elems[node_idx];
+		if (!re_node_set_contains (dfa->inveclosures + node,
+					   cls_node)
+		    && !re_node_set_contains (dfa->eclosures + node,
+					      cls_node))
+		  {
+		    /* It is against this limitation.
+		       Remove it form the current sifted state.  */
+		    err = sub_epsilon_src_nodes (dfa, node, dest_nodes,
+						 candidates);
+		    if (BE (err != REG_NOERROR, 0))
+		      return err;
+		    --node_idx;
+		  }
+	      }
+	}
+      else /* (ent->subexp_to != str_idx)  */
+	{
+	  for (node_idx = 0; node_idx < dest_nodes->nelem; ++node_idx)
+	    {
+	      int node = dest_nodes->elems[node_idx];
+	      re_token_type_t type = dfa->nodes[node].type;
+	      if (type == OP_CLOSE_SUBEXP || type == OP_OPEN_SUBEXP)
+		{
+		  if (subexp_idx != dfa->nodes[node].opr.idx)
+		    continue;
+		  /* It is against this limitation.
+		     Remove it form the current sifted state.  */
+		  err = sub_epsilon_src_nodes (dfa, node, dest_nodes,
+					       candidates);
+		  if (BE (err != REG_NOERROR, 0))
+		    return err;
+		}
+	    }
+	}
+    }
+  return REG_NOERROR;
+}
+
+static reg_errcode_t
+internal_function
+sift_states_bkref (const re_match_context_t *mctx, re_sift_context_t *sctx,
+		   int str_idx, const re_node_set *candidates)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  reg_errcode_t err;
+  int node_idx, node;
+  re_sift_context_t local_sctx;
+  int first_idx = search_cur_bkref_entry (mctx, str_idx);
+
+  if (first_idx == -1)
+    return REG_NOERROR;
+
+  local_sctx.sifted_states = NULL; /* Mark that it hasn't been initialized.  */
+
+  for (node_idx = 0; node_idx < candidates->nelem; ++node_idx)
+    {
+      int enabled_idx;
+      re_token_type_t type;
+      struct re_backref_cache_entry *entry;
+      node = candidates->elems[node_idx];
+      type = dfa->nodes[node].type;
+      /* Avoid infinite loop for the REs like "()\1+".  */
+      if (node == sctx->last_node && str_idx == sctx->last_str_idx)
+	continue;
+      if (type != OP_BACK_REF)
+	continue;
+
+      entry = mctx->bkref_ents + first_idx;
+      enabled_idx = first_idx;
+      do
+	{
+	  int subexp_len;
+	  int to_idx;
+	  int dst_node;
+	  int ret;
+	  re_dfastate_t *cur_state;
+
+	  if (entry->node != node)
+	    continue;
+	  subexp_len = entry->subexp_to - entry->subexp_from;
+	  to_idx = str_idx + subexp_len;
+	  dst_node = (subexp_len ? dfa->nexts[node]
+		      : dfa->edests[node].elems[0]);
+
+	  if (to_idx > sctx->last_str_idx
+	      || sctx->sifted_states[to_idx] == NULL
+	      || !STATE_NODE_CONTAINS (sctx->sifted_states[to_idx], dst_node)
+	      || check_dst_limits (mctx, &sctx->limits, node,
+				   str_idx, dst_node, to_idx))
+	    continue;
+
+	  if (local_sctx.sifted_states == NULL)
+	    {
+	      local_sctx = *sctx;
+	      err = re_node_set_init_copy (&local_sctx.limits, &sctx->limits);
+	      if (BE (err != REG_NOERROR, 0))
+		goto free_return;
+	    }
+	  local_sctx.last_node = node;
+	  local_sctx.last_str_idx = str_idx;
+	  ret = re_node_set_insert (&local_sctx.limits, enabled_idx);
+	  if (BE (ret < 0, 0))
+	    {
+	      err = REG_ESPACE;
+	      goto free_return;
+	    }
+	  cur_state = local_sctx.sifted_states[str_idx];
+	  err = sift_states_backward (mctx, &local_sctx);
+	  if (BE (err != REG_NOERROR, 0))
+	    goto free_return;
+	  if (sctx->limited_states != NULL)
+	    {
+	      err = merge_state_array (dfa, sctx->limited_states,
+				       local_sctx.sifted_states,
+				       str_idx + 1);
+	      if (BE (err != REG_NOERROR, 0))
+		goto free_return;
+	    }
+	  local_sctx.sifted_states[str_idx] = cur_state;
+	  re_node_set_remove (&local_sctx.limits, enabled_idx);
+
+	  /* mctx->bkref_ents may have changed, reload the pointer.  */
+          entry = mctx->bkref_ents + enabled_idx;
+	}
+      while (enabled_idx++, entry++->more);
+    }
+  err = REG_NOERROR;
+ free_return:
+  if (local_sctx.sifted_states != NULL)
+    {
+      re_node_set_free (&local_sctx.limits);
+    }
+
+  return err;
+}
+
+
+#ifdef RE_ENABLE_I18N
+static int
+internal_function
+sift_states_iter_mb (const re_match_context_t *mctx, re_sift_context_t *sctx,
+		     int node_idx, int str_idx, int max_str_idx)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  int naccepted;
+  /* Check the node can accept `multi byte'.  */
+  naccepted = check_node_accept_bytes (dfa, node_idx, &mctx->input, str_idx);
+  if (naccepted > 0 && str_idx + naccepted <= max_str_idx &&
+      !STATE_NODE_CONTAINS (sctx->sifted_states[str_idx + naccepted],
+			    dfa->nexts[node_idx]))
+    /* The node can't accept the `multi byte', or the
+       destination was already thrown away, then the node
+       could't accept the current input `multi byte'.   */
+    naccepted = 0;
+  /* Otherwise, it is sure that the node could accept
+     `naccepted' bytes input.  */
+  return naccepted;
+}
+#endif /* RE_ENABLE_I18N */
+
+
+/* Functions for state transition.  */
+
+/* Return the next state to which the current state STATE will transit by
+   accepting the current input byte, and update STATE_LOG if necessary.
+   If STATE can accept a multibyte char/collating element/back reference
+   update the destination of STATE_LOG.  */
+
+static re_dfastate_t *
+internal_function
+transit_state (reg_errcode_t *err, re_match_context_t *mctx,
+	       re_dfastate_t *state)
+{
+  re_dfastate_t **trtable;
+  unsigned char ch;
+
+#ifdef RE_ENABLE_I18N
+  /* If the current state can accept multibyte.  */
+  if (BE (state->accept_mb, 0))
+    {
+      *err = transit_state_mb (mctx, state);
+      if (BE (*err != REG_NOERROR, 0))
+	return NULL;
+    }
+#endif /* RE_ENABLE_I18N */
+
+  /* Then decide the next state with the single byte.  */
+#if 0
+  if (0)
+    /* don't use transition table  */
+    return transit_state_sb (err, mctx, state);
+#endif
+
+  /* Use transition table  */
+  ch = re_string_fetch_byte (&mctx->input);
+  for (;;)
+    {
+      trtable = state->trtable;
+      if (BE (trtable != NULL, 1))
+	return trtable[ch];
+
+      trtable = state->word_trtable;
+      if (BE (trtable != NULL, 1))
+        {
+	  unsigned int context;
+	  context
+	    = re_string_context_at (&mctx->input,
+				    re_string_cur_idx (&mctx->input) - 1,
+				    mctx->eflags);
+	  if (IS_WORD_CONTEXT (context))
+	    return trtable[ch + SBC_MAX];
+	  else
+	    return trtable[ch];
+	}
+
+      if (!build_trtable (mctx->dfa, state))
+	{
+	  *err = REG_ESPACE;
+	  return NULL;
+	}
+
+      /* Retry, we now have a transition table.  */
+    }
+}
+
+/* Update the state_log if we need */
+re_dfastate_t *
+internal_function
+merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx,
+		      re_dfastate_t *next_state)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  int cur_idx = re_string_cur_idx (&mctx->input);
+
+  if (cur_idx > mctx->state_log_top)
+    {
+      mctx->state_log[cur_idx] = next_state;
+      mctx->state_log_top = cur_idx;
+    }
+  else if (mctx->state_log[cur_idx] == 0)
+    {
+      mctx->state_log[cur_idx] = next_state;
+    }
+  else
+    {
+      re_dfastate_t *pstate;
+      unsigned int context;
+      re_node_set next_nodes, *log_nodes, *table_nodes = NULL;
+      /* If (state_log[cur_idx] != 0), it implies that cur_idx is
+         the destination of a multibyte char/collating element/
+         back reference.  Then the next state is the union set of
+         these destinations and the results of the transition table.  */
+      pstate = mctx->state_log[cur_idx];
+      log_nodes = pstate->entrance_nodes;
+      if (next_state != NULL)
+        {
+          table_nodes = next_state->entrance_nodes;
+          *err = re_node_set_init_union (&next_nodes, table_nodes,
+					     log_nodes);
+          if (BE (*err != REG_NOERROR, 0))
+	    return NULL;
+        }
+      else
+        next_nodes = *log_nodes;
+      /* Note: We already add the nodes of the initial state,
+	 then we don't need to add them here.  */
+
+      context = re_string_context_at (&mctx->input,
+				      re_string_cur_idx (&mctx->input) - 1,
+				      mctx->eflags);
+      next_state = mctx->state_log[cur_idx]
+        = re_acquire_state_context (err, dfa, &next_nodes, context);
+      /* We don't need to check errors here, since the return value of
+         this function is next_state and ERR is already set.  */
+
+      if (table_nodes != NULL)
+        re_node_set_free (&next_nodes);
+    }
+
+  if (BE (dfa->nbackref, 0) && next_state != NULL)
+    {
+      /* Check OP_OPEN_SUBEXP in the current state in case that we use them
+	 later.  We must check them here, since the back references in the
+	 next state might use them.  */
+      *err = check_subexp_matching_top (mctx, &next_state->nodes,
+					cur_idx);
+      if (BE (*err != REG_NOERROR, 0))
+	return NULL;
+
+      /* If the next state has back references.  */
+      if (next_state->has_backref)
+	{
+	  *err = transit_state_bkref (mctx, &next_state->nodes);
+	  if (BE (*err != REG_NOERROR, 0))
+	    return NULL;
+	  next_state = mctx->state_log[cur_idx];
+	}
+    }
+
+  return next_state;
+}
+
+/* Skip bytes in the input that correspond to part of a
+   multi-byte match, then look in the log for a state
+   from which to restart matching.  */
+re_dfastate_t *
+internal_function
+find_recover_state (reg_errcode_t *err, re_match_context_t *mctx)
+{
+  re_dfastate_t *cur_state;
+  do
+    {
+      int max = mctx->state_log_top;
+      int cur_str_idx = re_string_cur_idx (&mctx->input);
+
+      do
+	{
+          if (++cur_str_idx > max)
+            return NULL;
+          re_string_skip_bytes (&mctx->input, 1);
+	}
+      while (mctx->state_log[cur_str_idx] == NULL);
+
+      cur_state = merge_state_with_log (err, mctx, NULL);
+    }
+  while (*err == REG_NOERROR && cur_state == NULL);
+  return cur_state;
+}
+
+/* Helper functions for transit_state.  */
+
+/* From the node set CUR_NODES, pick up the nodes whose types are
+   OP_OPEN_SUBEXP and which have corresponding back references in the regular
+   expression. And register them to use them later for evaluating the
+   correspoding back references.  */
+
+static reg_errcode_t
+internal_function
+check_subexp_matching_top (re_match_context_t *mctx, re_node_set *cur_nodes,
+			   int str_idx)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  int node_idx;
+  reg_errcode_t err;
+
+  /* TODO: This isn't efficient.
+	   Because there might be more than one nodes whose types are
+	   OP_OPEN_SUBEXP and whose index is SUBEXP_IDX, we must check all
+	   nodes.
+	   E.g. RE: (a){2}  */
+  for (node_idx = 0; node_idx < cur_nodes->nelem; ++node_idx)
+    {
+      int node = cur_nodes->elems[node_idx];
+      if (dfa->nodes[node].type == OP_OPEN_SUBEXP
+	  && dfa->nodes[node].opr.idx < BITSET_WORD_BITS
+	  && (dfa->used_bkref_map
+	      & ((bitset_word_t) 1 << dfa->nodes[node].opr.idx)))
+	{
+	  err = match_ctx_add_subtop (mctx, node, str_idx);
+	  if (BE (err != REG_NOERROR, 0))
+	    return err;
+	}
+    }
+  return REG_NOERROR;
+}
+
+#if 0
+/* Return the next state to which the current state STATE will transit by
+   accepting the current input byte.  */
+
+static re_dfastate_t *
+transit_state_sb (reg_errcode_t *err, re_match_context_t *mctx,
+		  re_dfastate_t *state)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  re_node_set next_nodes;
+  re_dfastate_t *next_state;
+  int node_cnt, cur_str_idx = re_string_cur_idx (&mctx->input);
+  unsigned int context;
+
+  *err = re_node_set_alloc (&next_nodes, state->nodes.nelem + 1);
+  if (BE (*err != REG_NOERROR, 0))
+    return NULL;
+  for (node_cnt = 0; node_cnt < state->nodes.nelem; ++node_cnt)
+    {
+      int cur_node = state->nodes.elems[node_cnt];
+      if (check_node_accept (mctx, dfa->nodes + cur_node, cur_str_idx))
+	{
+	  *err = re_node_set_merge (&next_nodes,
+				    dfa->eclosures + dfa->nexts[cur_node]);
+	  if (BE (*err != REG_NOERROR, 0))
+	    {
+	      re_node_set_free (&next_nodes);
+	      return NULL;
+	    }
+	}
+    }
+  context = re_string_context_at (&mctx->input, cur_str_idx, mctx->eflags);
+  next_state = re_acquire_state_context (err, dfa, &next_nodes, context);
+  /* We don't need to check errors here, since the return value of
+     this function is next_state and ERR is already set.  */
+
+  re_node_set_free (&next_nodes);
+  re_string_skip_bytes (&mctx->input, 1);
+  return next_state;
+}
+#endif
+
+#ifdef RE_ENABLE_I18N
+static reg_errcode_t
+internal_function
+transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  reg_errcode_t err;
+  int i;
+
+  for (i = 0; i < pstate->nodes.nelem; ++i)
+    {
+      re_node_set dest_nodes, *new_nodes;
+      int cur_node_idx = pstate->nodes.elems[i];
+      int naccepted, dest_idx;
+      unsigned int context;
+      re_dfastate_t *dest_state;
+
+      if (!dfa->nodes[cur_node_idx].accept_mb)
+        continue;
+
+      if (dfa->nodes[cur_node_idx].constraint)
+	{
+	  context = re_string_context_at (&mctx->input,
+					  re_string_cur_idx (&mctx->input),
+					  mctx->eflags);
+	  if (NOT_SATISFY_NEXT_CONSTRAINT (dfa->nodes[cur_node_idx].constraint,
+					   context))
+	    continue;
+	}
+
+      /* How many bytes the node can accept?  */
+      naccepted = check_node_accept_bytes (dfa, cur_node_idx, &mctx->input,
+					   re_string_cur_idx (&mctx->input));
+      if (naccepted == 0)
+	continue;
+
+      /* The node can accepts `naccepted' bytes.  */
+      dest_idx = re_string_cur_idx (&mctx->input) + naccepted;
+      mctx->max_mb_elem_len = ((mctx->max_mb_elem_len < naccepted) ? naccepted
+			       : mctx->max_mb_elem_len);
+      err = clean_state_log_if_needed (mctx, dest_idx);
+      if (BE (err != REG_NOERROR, 0))
+	return err;
+#ifdef DEBUG
+      assert (dfa->nexts[cur_node_idx] != -1);
+#endif
+      new_nodes = dfa->eclosures + dfa->nexts[cur_node_idx];
+
+      dest_state = mctx->state_log[dest_idx];
+      if (dest_state == NULL)
+	dest_nodes = *new_nodes;
+      else
+	{
+	  err = re_node_set_init_union (&dest_nodes,
+					dest_state->entrance_nodes, new_nodes);
+	  if (BE (err != REG_NOERROR, 0))
+	    return err;
+	}
+      context = re_string_context_at (&mctx->input, dest_idx - 1,
+				      mctx->eflags);
+      mctx->state_log[dest_idx]
+	= re_acquire_state_context (&err, dfa, &dest_nodes, context);
+      if (dest_state != NULL)
+	re_node_set_free (&dest_nodes);
+      if (BE (mctx->state_log[dest_idx] == NULL && err != REG_NOERROR, 0))
+	return err;
+    }
+  return REG_NOERROR;
+}
+#endif /* RE_ENABLE_I18N */
+
+static reg_errcode_t
+internal_function
+transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  reg_errcode_t err;
+  int i;
+  int cur_str_idx = re_string_cur_idx (&mctx->input);
+
+  for (i = 0; i < nodes->nelem; ++i)
+    {
+      int dest_str_idx, prev_nelem, bkc_idx;
+      int node_idx = nodes->elems[i];
+      unsigned int context;
+      const re_token_t *node = dfa->nodes + node_idx;
+      re_node_set *new_dest_nodes;
+
+      /* Check whether `node' is a backreference or not.  */
+      if (node->type != OP_BACK_REF)
+	continue;
+
+      if (node->constraint)
+	{
+	  context = re_string_context_at (&mctx->input, cur_str_idx,
+					  mctx->eflags);
+	  if (NOT_SATISFY_NEXT_CONSTRAINT (node->constraint, context))
+	    continue;
+	}
+
+      /* `node' is a backreference.
+	 Check the substring which the substring matched.  */
+      bkc_idx = mctx->nbkref_ents;
+      err = get_subexp (mctx, node_idx, cur_str_idx);
+      if (BE (err != REG_NOERROR, 0))
+	goto free_return;
+
+      /* And add the epsilon closures (which is `new_dest_nodes') of
+	 the backreference to appropriate state_log.  */
+#ifdef DEBUG
+      assert (dfa->nexts[node_idx] != -1);
+#endif
+      for (; bkc_idx < mctx->nbkref_ents; ++bkc_idx)
+	{
+	  int subexp_len;
+	  re_dfastate_t *dest_state;
+	  struct re_backref_cache_entry *bkref_ent;
+	  bkref_ent = mctx->bkref_ents + bkc_idx;
+	  if (bkref_ent->node != node_idx || bkref_ent->str_idx != cur_str_idx)
+	    continue;
+	  subexp_len = bkref_ent->subexp_to - bkref_ent->subexp_from;
+	  new_dest_nodes = (subexp_len == 0
+			    ? dfa->eclosures + dfa->edests[node_idx].elems[0]
+			    : dfa->eclosures + dfa->nexts[node_idx]);
+	  dest_str_idx = (cur_str_idx + bkref_ent->subexp_to
+			  - bkref_ent->subexp_from);
+	  context = re_string_context_at (&mctx->input, dest_str_idx - 1,
+					  mctx->eflags);
+	  dest_state = mctx->state_log[dest_str_idx];
+	  prev_nelem = ((mctx->state_log[cur_str_idx] == NULL) ? 0
+			: mctx->state_log[cur_str_idx]->nodes.nelem);
+	  /* Add `new_dest_node' to state_log.  */
+	  if (dest_state == NULL)
+	    {
+	      mctx->state_log[dest_str_idx]
+		= re_acquire_state_context (&err, dfa, new_dest_nodes,
+					    context);
+	      if (BE (mctx->state_log[dest_str_idx] == NULL
+		      && err != REG_NOERROR, 0))
+		goto free_return;
+	    }
+	  else
+	    {
+	      re_node_set dest_nodes;
+	      err = re_node_set_init_union (&dest_nodes,
+					    dest_state->entrance_nodes,
+					    new_dest_nodes);
+	      if (BE (err != REG_NOERROR, 0))
+		{
+		  re_node_set_free (&dest_nodes);
+		  goto free_return;
+		}
+	      mctx->state_log[dest_str_idx]
+		= re_acquire_state_context (&err, dfa, &dest_nodes, context);
+	      re_node_set_free (&dest_nodes);
+	      if (BE (mctx->state_log[dest_str_idx] == NULL
+		      && err != REG_NOERROR, 0))
+		goto free_return;
+	    }
+	  /* We need to check recursively if the backreference can epsilon
+	     transit.  */
+	  if (subexp_len == 0
+	      && mctx->state_log[cur_str_idx]->nodes.nelem > prev_nelem)
+	    {
+	      err = check_subexp_matching_top (mctx, new_dest_nodes,
+					       cur_str_idx);
+	      if (BE (err != REG_NOERROR, 0))
+		goto free_return;
+	      err = transit_state_bkref (mctx, new_dest_nodes);
+	      if (BE (err != REG_NOERROR, 0))
+		goto free_return;
+	    }
+	}
+    }
+  err = REG_NOERROR;
+ free_return:
+  return err;
+}
+
+/* Enumerate all the candidates which the backreference BKREF_NODE can match
+   at BKREF_STR_IDX, and register them by match_ctx_add_entry().
+   Note that we might collect inappropriate candidates here.
+   However, the cost of checking them strictly here is too high, then we
+   delay these checking for prune_impossible_nodes().  */
+
+static reg_errcode_t
+internal_function
+get_subexp (re_match_context_t *mctx, int bkref_node, int bkref_str_idx)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  int subexp_num, sub_top_idx;
+  const char *buf = (const char *) re_string_get_buffer (&mctx->input);
+  /* Return if we have already checked BKREF_NODE at BKREF_STR_IDX.  */
+  int cache_idx = search_cur_bkref_entry (mctx, bkref_str_idx);
+  if (cache_idx != -1)
+    {
+      const struct re_backref_cache_entry *entry
+	= mctx->bkref_ents + cache_idx;
+      do
+        if (entry->node == bkref_node)
+	  return REG_NOERROR; /* We already checked it.  */
+      while (entry++->more);
+    }
+
+  subexp_num = dfa->nodes[bkref_node].opr.idx;
+
+  /* For each sub expression  */
+  for (sub_top_idx = 0; sub_top_idx < mctx->nsub_tops; ++sub_top_idx)
+    {
+      reg_errcode_t err;
+      re_sub_match_top_t *sub_top = mctx->sub_tops[sub_top_idx];
+      re_sub_match_last_t *sub_last;
+      int sub_last_idx, sl_str, bkref_str_off;
+
+      if (dfa->nodes[sub_top->node].opr.idx != subexp_num)
+	continue; /* It isn't related.  */
+
+      sl_str = sub_top->str_idx;
+      bkref_str_off = bkref_str_idx;
+      /* At first, check the last node of sub expressions we already
+	 evaluated.  */
+      for (sub_last_idx = 0; sub_last_idx < sub_top->nlasts; ++sub_last_idx)
+	{
+	  int sl_str_diff;
+	  sub_last = sub_top->lasts[sub_last_idx];
+	  sl_str_diff = sub_last->str_idx - sl_str;
+	  /* The matched string by the sub expression match with the substring
+	     at the back reference?  */
+	  if (sl_str_diff > 0)
+	    {
+	      if (BE (bkref_str_off + sl_str_diff > mctx->input.valid_len, 0))
+		{
+		  /* Not enough chars for a successful match.  */
+		  if (bkref_str_off + sl_str_diff > mctx->input.len)
+		    break;
+
+		  err = clean_state_log_if_needed (mctx,
+						   bkref_str_off
+						   + sl_str_diff);
+		  if (BE (err != REG_NOERROR, 0))
+		    return err;
+		  buf = (const char *) re_string_get_buffer (&mctx->input);
+		}
+	      if (memcmp (buf + bkref_str_off, buf + sl_str, sl_str_diff) != 0)
+		/* We don't need to search this sub expression any more.  */
+		break;
+	    }
+	  bkref_str_off += sl_str_diff;
+	  sl_str += sl_str_diff;
+	  err = get_subexp_sub (mctx, sub_top, sub_last, bkref_node,
+				bkref_str_idx);
+
+	  /* Reload buf, since the preceding call might have reallocated
+	     the buffer.  */
+	  buf = (const char *) re_string_get_buffer (&mctx->input);
+
+	  if (err == REG_NOMATCH)
+	    continue;
+	  if (BE (err != REG_NOERROR, 0))
+	    return err;
+	}
+
+      if (sub_last_idx < sub_top->nlasts)
+	continue;
+      if (sub_last_idx > 0)
+	++sl_str;
+      /* Then, search for the other last nodes of the sub expression.  */
+      for (; sl_str <= bkref_str_idx; ++sl_str)
+	{
+	  int cls_node, sl_str_off;
+	  const re_node_set *nodes;
+	  sl_str_off = sl_str - sub_top->str_idx;
+	  /* The matched string by the sub expression match with the substring
+	     at the back reference?  */
+	  if (sl_str_off > 0)
+	    {
+	      if (BE (bkref_str_off >= mctx->input.valid_len, 0))
+		{
+		  /* If we are at the end of the input, we cannot match.  */
+		  if (bkref_str_off >= mctx->input.len)
+		    break;
+
+		  err = extend_buffers (mctx);
+		  if (BE (err != REG_NOERROR, 0))
+		    return err;
+
+		  buf = (const char *) re_string_get_buffer (&mctx->input);
+		}
+	      if (buf [bkref_str_off++] != buf[sl_str - 1])
+		break; /* We don't need to search this sub expression
+			  any more.  */
+	    }
+	  if (mctx->state_log[sl_str] == NULL)
+	    continue;
+	  /* Does this state have a ')' of the sub expression?  */
+	  nodes = &mctx->state_log[sl_str]->nodes;
+	  cls_node = find_subexp_node (dfa, nodes, subexp_num,
+				       OP_CLOSE_SUBEXP);
+	  if (cls_node == -1)
+	    continue; /* No.  */
+	  if (sub_top->path == NULL)
+	    {
+	      sub_top->path = calloc (sizeof (state_array_t),
+				      sl_str - sub_top->str_idx + 1);
+	      if (sub_top->path == NULL)
+		return REG_ESPACE;
+	    }
+	  /* Can the OP_OPEN_SUBEXP node arrive the OP_CLOSE_SUBEXP node
+	     in the current context?  */
+	  err = check_arrival (mctx, sub_top->path, sub_top->node,
+			       sub_top->str_idx, cls_node, sl_str,
+			       OP_CLOSE_SUBEXP);
+	  if (err == REG_NOMATCH)
+	      continue;
+	  if (BE (err != REG_NOERROR, 0))
+	      return err;
+	  sub_last = match_ctx_add_sublast (sub_top, cls_node, sl_str);
+	  if (BE (sub_last == NULL, 0))
+	    return REG_ESPACE;
+	  err = get_subexp_sub (mctx, sub_top, sub_last, bkref_node,
+				bkref_str_idx);
+	  if (err == REG_NOMATCH)
+	    continue;
+	}
+    }
+  return REG_NOERROR;
+}
+
+/* Helper functions for get_subexp().  */
+
+/* Check SUB_LAST can arrive to the back reference BKREF_NODE at BKREF_STR.
+   If it can arrive, register the sub expression expressed with SUB_TOP
+   and SUB_LAST.  */
+
+static reg_errcode_t
+internal_function
+get_subexp_sub (re_match_context_t *mctx, const re_sub_match_top_t *sub_top,
+		re_sub_match_last_t *sub_last, int bkref_node, int bkref_str)
+{
+  reg_errcode_t err;
+  int to_idx;
+  /* Can the subexpression arrive the back reference?  */
+  err = check_arrival (mctx, &sub_last->path, sub_last->node,
+		       sub_last->str_idx, bkref_node, bkref_str,
+		       OP_OPEN_SUBEXP);
+  if (err != REG_NOERROR)
+    return err;
+  err = match_ctx_add_entry (mctx, bkref_node, bkref_str, sub_top->str_idx,
+			     sub_last->str_idx);
+  if (BE (err != REG_NOERROR, 0))
+    return err;
+  to_idx = bkref_str + sub_last->str_idx - sub_top->str_idx;
+  return clean_state_log_if_needed (mctx, to_idx);
+}
+
+/* Find the first node which is '(' or ')' and whose index is SUBEXP_IDX.
+   Search '(' if FL_OPEN, or search ')' otherwise.
+   TODO: This function isn't efficient...
+	 Because there might be more than one nodes whose types are
+	 OP_OPEN_SUBEXP and whose index is SUBEXP_IDX, we must check all
+	 nodes.
+	 E.g. RE: (a){2}  */
+
+static int
+internal_function
+find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes,
+		  int subexp_idx, int type)
+{
+  int cls_idx;
+  for (cls_idx = 0; cls_idx < nodes->nelem; ++cls_idx)
+    {
+      int cls_node = nodes->elems[cls_idx];
+      const re_token_t *node = dfa->nodes + cls_node;
+      if (node->type == type
+	  && node->opr.idx == subexp_idx)
+	return cls_node;
+    }
+  return -1;
+}
+
+/* Check whether the node TOP_NODE at TOP_STR can arrive to the node
+   LAST_NODE at LAST_STR.  We record the path onto PATH since it will be
+   heavily reused.
+   Return REG_NOERROR if it can arrive, or REG_NOMATCH otherwise.  */
+
+static reg_errcode_t
+internal_function
+check_arrival (re_match_context_t *mctx, state_array_t *path, int top_node,
+	       int top_str, int last_node, int last_str, int type)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  reg_errcode_t err = REG_NOERROR;
+  int subexp_num, backup_cur_idx, str_idx, null_cnt;
+  re_dfastate_t *cur_state = NULL;
+  re_node_set *cur_nodes, next_nodes;
+  re_dfastate_t **backup_state_log;
+  unsigned int context;
+
+  subexp_num = dfa->nodes[top_node].opr.idx;
+  /* Extend the buffer if we need.  */
+  if (BE (path->alloc < last_str + mctx->max_mb_elem_len + 1, 0))
+    {
+      re_dfastate_t **new_array;
+      int old_alloc = path->alloc;
+      path->alloc += last_str + mctx->max_mb_elem_len + 1;
+      new_array = re_realloc (path->array, re_dfastate_t *, path->alloc);
+      if (BE (new_array == NULL, 0))
+	{
+	  path->alloc = old_alloc;
+	  return REG_ESPACE;
+	}
+      path->array = new_array;
+      memset (new_array + old_alloc, '\0',
+	      sizeof (re_dfastate_t *) * (path->alloc - old_alloc));
+    }
+
+  str_idx = path->next_idx ?: top_str;
+
+  /* Temporary modify MCTX.  */
+  backup_state_log = mctx->state_log;
+  backup_cur_idx = mctx->input.cur_idx;
+  mctx->state_log = path->array;
+  mctx->input.cur_idx = str_idx;
+
+  /* Setup initial node set.  */
+  context = re_string_context_at (&mctx->input, str_idx - 1, mctx->eflags);
+  if (str_idx == top_str)
+    {
+      err = re_node_set_init_1 (&next_nodes, top_node);
+      if (BE (err != REG_NOERROR, 0))
+	return err;
+      err = check_arrival_expand_ecl (dfa, &next_nodes, subexp_num, type);
+      if (BE (err != REG_NOERROR, 0))
+	{
+	  re_node_set_free (&next_nodes);
+	  return err;
+	}
+    }
+  else
+    {
+      cur_state = mctx->state_log[str_idx];
+      if (cur_state && cur_state->has_backref)
+	{
+	  err = re_node_set_init_copy (&next_nodes, &cur_state->nodes);
+	  if (BE (err != REG_NOERROR, 0))
+	    return err;
+	}
+      else
+	re_node_set_init_empty (&next_nodes);
+    }
+  if (str_idx == top_str || (cur_state && cur_state->has_backref))
+    {
+      if (next_nodes.nelem)
+	{
+	  err = expand_bkref_cache (mctx, &next_nodes, str_idx,
+				    subexp_num, type);
+	  if (BE (err != REG_NOERROR, 0))
+	    {
+	      re_node_set_free (&next_nodes);
+	      return err;
+	    }
+	}
+      cur_state = re_acquire_state_context (&err, dfa, &next_nodes, context);
+      if (BE (cur_state == NULL && err != REG_NOERROR, 0))
+	{
+	  re_node_set_free (&next_nodes);
+	  return err;
+	}
+      mctx->state_log[str_idx] = cur_state;
+    }
+
+  for (null_cnt = 0; str_idx < last_str && null_cnt <= mctx->max_mb_elem_len;)
+    {
+      re_node_set_empty (&next_nodes);
+      if (mctx->state_log[str_idx + 1])
+	{
+	  err = re_node_set_merge (&next_nodes,
+				   &mctx->state_log[str_idx + 1]->nodes);
+	  if (BE (err != REG_NOERROR, 0))
+	    {
+	      re_node_set_free (&next_nodes);
+	      return err;
+	    }
+	}
+      if (cur_state)
+	{
+	  err = check_arrival_add_next_nodes (mctx, str_idx,
+					      &cur_state->non_eps_nodes,
+					      &next_nodes);
+	  if (BE (err != REG_NOERROR, 0))
+	    {
+	      re_node_set_free (&next_nodes);
+	      return err;
+	    }
+	}
+      ++str_idx;
+      if (next_nodes.nelem)
+	{
+	  err = check_arrival_expand_ecl (dfa, &next_nodes, subexp_num, type);
+	  if (BE (err != REG_NOERROR, 0))
+	    {
+	      re_node_set_free (&next_nodes);
+	      return err;
+	    }
+	  err = expand_bkref_cache (mctx, &next_nodes, str_idx,
+				    subexp_num, type);
+	  if (BE (err != REG_NOERROR, 0))
+	    {
+	      re_node_set_free (&next_nodes);
+	      return err;
+	    }
+	}
+      context = re_string_context_at (&mctx->input, str_idx - 1, mctx->eflags);
+      cur_state = re_acquire_state_context (&err, dfa, &next_nodes, context);
+      if (BE (cur_state == NULL && err != REG_NOERROR, 0))
+	{
+	  re_node_set_free (&next_nodes);
+	  return err;
+	}
+      mctx->state_log[str_idx] = cur_state;
+      null_cnt = cur_state == NULL ? null_cnt + 1 : 0;
+    }
+  re_node_set_free (&next_nodes);
+  cur_nodes = (mctx->state_log[last_str] == NULL ? NULL
+	       : &mctx->state_log[last_str]->nodes);
+  path->next_idx = str_idx;
+
+  /* Fix MCTX.  */
+  mctx->state_log = backup_state_log;
+  mctx->input.cur_idx = backup_cur_idx;
+
+  /* Then check the current node set has the node LAST_NODE.  */
+  if (cur_nodes != NULL && re_node_set_contains (cur_nodes, last_node))
+    return REG_NOERROR;
+
+  return REG_NOMATCH;
+}
+
+/* Helper functions for check_arrival.  */
+
+/* Calculate the destination nodes of CUR_NODES at STR_IDX, and append them
+   to NEXT_NODES.
+   TODO: This function is similar to the functions transit_state*(),
+	 however this function has many additional works.
+	 Can't we unify them?  */
+
+static reg_errcode_t
+internal_function
+check_arrival_add_next_nodes (re_match_context_t *mctx, int str_idx,
+			      re_node_set *cur_nodes, re_node_set *next_nodes)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  int result;
+  int cur_idx;
+  reg_errcode_t err = REG_NOERROR;
+  re_node_set union_set;
+  re_node_set_init_empty (&union_set);
+  for (cur_idx = 0; cur_idx < cur_nodes->nelem; ++cur_idx)
+    {
+      int naccepted = 0;
+      int cur_node = cur_nodes->elems[cur_idx];
+#ifdef DEBUG
+      re_token_type_t type = dfa->nodes[cur_node].type;
+      assert (!IS_EPSILON_NODE (type));
+#endif
+#ifdef RE_ENABLE_I18N
+      /* If the node may accept `multi byte'.  */
+      if (dfa->nodes[cur_node].accept_mb)
+	{
+	  naccepted = check_node_accept_bytes (dfa, cur_node, &mctx->input,
+					       str_idx);
+	  if (naccepted > 1)
+	    {
+	      re_dfastate_t *dest_state;
+	      int next_node = dfa->nexts[cur_node];
+	      int next_idx = str_idx + naccepted;
+	      dest_state = mctx->state_log[next_idx];
+	      re_node_set_empty (&union_set);
+	      if (dest_state)
+		{
+		  err = re_node_set_merge (&union_set, &dest_state->nodes);
+		  if (BE (err != REG_NOERROR, 0))
+		    {
+		      re_node_set_free (&union_set);
+		      return err;
+		    }
+		}
+	      result = re_node_set_insert (&union_set, next_node);
+	      if (BE (result < 0, 0))
+		{
+		  re_node_set_free (&union_set);
+		  return REG_ESPACE;
+		}
+	      mctx->state_log[next_idx] = re_acquire_state (&err, dfa,
+							    &union_set);
+	      if (BE (mctx->state_log[next_idx] == NULL
+		      && err != REG_NOERROR, 0))
+		{
+		  re_node_set_free (&union_set);
+		  return err;
+		}
+	    }
+	}
+#endif /* RE_ENABLE_I18N */
+      if (naccepted
+	  || check_node_accept (mctx, dfa->nodes + cur_node, str_idx))
+	{
+	  result = re_node_set_insert (next_nodes, dfa->nexts[cur_node]);
+	  if (BE (result < 0, 0))
+	    {
+	      re_node_set_free (&union_set);
+	      return REG_ESPACE;
+	    }
+	}
+    }
+  re_node_set_free (&union_set);
+  return REG_NOERROR;
+}
+
+/* For all the nodes in CUR_NODES, add the epsilon closures of them to
+   CUR_NODES, however exclude the nodes which are:
+    - inside the sub expression whose number is EX_SUBEXP, if FL_OPEN.
+    - out of the sub expression whose number is EX_SUBEXP, if !FL_OPEN.
+*/
+
+static reg_errcode_t
+internal_function
+check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes,
+			  int ex_subexp, int type)
+{
+  reg_errcode_t err;
+  int idx, outside_node;
+  re_node_set new_nodes;
+#ifdef DEBUG
+  assert (cur_nodes->nelem);
+#endif
+  err = re_node_set_alloc (&new_nodes, cur_nodes->nelem);
+  if (BE (err != REG_NOERROR, 0))
+    return err;
+  /* Create a new node set NEW_NODES with the nodes which are epsilon
+     closures of the node in CUR_NODES.  */
+
+  for (idx = 0; idx < cur_nodes->nelem; ++idx)
+    {
+      int cur_node = cur_nodes->elems[idx];
+      const re_node_set *eclosure = dfa->eclosures + cur_node;
+      outside_node = find_subexp_node (dfa, eclosure, ex_subexp, type);
+      if (outside_node == -1)
+	{
+	  /* There are no problematic nodes, just merge them.  */
+	  err = re_node_set_merge (&new_nodes, eclosure);
+	  if (BE (err != REG_NOERROR, 0))
+	    {
+	      re_node_set_free (&new_nodes);
+	      return err;
+	    }
+	}
+      else
+	{
+	  /* There are problematic nodes, re-calculate incrementally.  */
+	  err = check_arrival_expand_ecl_sub (dfa, &new_nodes, cur_node,
+					      ex_subexp, type);
+	  if (BE (err != REG_NOERROR, 0))
+	    {
+	      re_node_set_free (&new_nodes);
+	      return err;
+	    }
+	}
+    }
+  re_node_set_free (cur_nodes);
+  *cur_nodes = new_nodes;
+  return REG_NOERROR;
+}
+
+/* Helper function for check_arrival_expand_ecl.
+   Check incrementally the epsilon closure of TARGET, and if it isn't
+   problematic append it to DST_NODES.  */
+
+static reg_errcode_t
+internal_function
+check_arrival_expand_ecl_sub (const re_dfa_t *dfa, re_node_set *dst_nodes,
+			      int target, int ex_subexp, int type)
+{
+  int cur_node;
+  for (cur_node = target; !re_node_set_contains (dst_nodes, cur_node);)
+    {
+      int err;
+
+      if (dfa->nodes[cur_node].type == type
+	  && dfa->nodes[cur_node].opr.idx == ex_subexp)
+	{
+	  if (type == OP_CLOSE_SUBEXP)
+	    {
+	      err = re_node_set_insert (dst_nodes, cur_node);
+	      if (BE (err == -1, 0))
+		return REG_ESPACE;
+	    }
+	  break;
+	}
+      err = re_node_set_insert (dst_nodes, cur_node);
+      if (BE (err == -1, 0))
+	return REG_ESPACE;
+      if (dfa->edests[cur_node].nelem == 0)
+	break;
+      if (dfa->edests[cur_node].nelem == 2)
+	{
+	  err = check_arrival_expand_ecl_sub (dfa, dst_nodes,
+					      dfa->edests[cur_node].elems[1],
+					      ex_subexp, type);
+	  if (BE (err != REG_NOERROR, 0))
+	    return err;
+	}
+      cur_node = dfa->edests[cur_node].elems[0];
+    }
+  return REG_NOERROR;
+}
+
+
+/* For all the back references in the current state, calculate the
+   destination of the back references by the appropriate entry
+   in MCTX->BKREF_ENTS.  */
+
+static reg_errcode_t
+internal_function
+expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes,
+		    int cur_str, int subexp_num, int type)
+{
+  const re_dfa_t *const dfa = mctx->dfa;
+  reg_errcode_t err;
+  int cache_idx_start = search_cur_bkref_entry (mctx, cur_str);
+  struct re_backref_cache_entry *ent;
+
+  if (cache_idx_start == -1)
+    return REG_NOERROR;
+
+ restart:
+  ent = mctx->bkref_ents + cache_idx_start;
+  do
+    {
+      int to_idx, next_node;
+
+      /* Is this entry ENT is appropriate?  */
+      if (!re_node_set_contains (cur_nodes, ent->node))
+	continue; /* No.  */
+
+      to_idx = cur_str + ent->subexp_to - ent->subexp_from;
+      /* Calculate the destination of the back reference, and append it
+	 to MCTX->STATE_LOG.  */
+      if (to_idx == cur_str)
+	{
+	  /* The backreference did epsilon transit, we must re-check all the
+	     node in the current state.  */
+	  re_node_set new_dests;
+	  reg_errcode_t err2, err3;
+	  next_node = dfa->edests[ent->node].elems[0];
+	  if (re_node_set_contains (cur_nodes, next_node))
+	    continue;
+	  err = re_node_set_init_1 (&new_dests, next_node);
+	  err2 = check_arrival_expand_ecl (dfa, &new_dests, subexp_num, type);
+	  err3 = re_node_set_merge (cur_nodes, &new_dests);
+	  re_node_set_free (&new_dests);
+	  if (BE (err != REG_NOERROR || err2 != REG_NOERROR
+		  || err3 != REG_NOERROR, 0))
+	    {
+	      err = (err != REG_NOERROR ? err
+		     : (err2 != REG_NOERROR ? err2 : err3));
+	      return err;
+	    }
+	  /* TODO: It is still inefficient...  */
+	  goto restart;
+	}
+      else
+	{
+	  re_node_set union_set;
+	  next_node = dfa->nexts[ent->node];
+	  if (mctx->state_log[to_idx])
+	    {
+	      int ret;
+	      if (re_node_set_contains (&mctx->state_log[to_idx]->nodes,
+					next_node))
+		continue;
+	      err = re_node_set_init_copy (&union_set,
+					   &mctx->state_log[to_idx]->nodes);
+	      ret = re_node_set_insert (&union_set, next_node);
+	      if (BE (err != REG_NOERROR || ret < 0, 0))
+		{
+		  re_node_set_free (&union_set);
+		  err = err != REG_NOERROR ? err : REG_ESPACE;
+		  return err;
+		}
+	    }
+	  else
+	    {
+	      err = re_node_set_init_1 (&union_set, next_node);
+	      if (BE (err != REG_NOERROR, 0))
+		return err;
+	    }
+	  mctx->state_log[to_idx] = re_acquire_state (&err, dfa, &union_set);
+	  re_node_set_free (&union_set);
+	  if (BE (mctx->state_log[to_idx] == NULL
+		  && err != REG_NOERROR, 0))
+	    return err;
+	}
+    }
+  while (ent++->more);
+  return REG_NOERROR;
+}
+
+/* Build transition table for the state.
+   Return 1 if succeeded, otherwise return NULL.  */
+
+static int
+internal_function
+build_trtable (const re_dfa_t *dfa, re_dfastate_t *state)
+{
+  reg_errcode_t err;
+  int i, j, ch, need_word_trtable = 0;
+  bitset_word_t elem, mask;
+  bool dests_node_malloced = false;
+  bool dest_states_malloced = false;
+  int ndests; /* Number of the destination states from `state'.  */
+  re_dfastate_t **trtable;
+  re_dfastate_t **dest_states = NULL, **dest_states_word, **dest_states_nl;
+  re_node_set follows, *dests_node;
+  bitset_t *dests_ch;
+  bitset_t acceptable;
+
+  struct dests_alloc
+  {
+    re_node_set dests_node[SBC_MAX];
+    bitset_t dests_ch[SBC_MAX];
+  } *dests_alloc;
+
+  /* We build DFA states which corresponds to the destination nodes
+     from `state'.  `dests_node[i]' represents the nodes which i-th
+     destination state contains, and `dests_ch[i]' represents the
+     characters which i-th destination state accepts.  */
+  if (__libc_use_alloca (sizeof (struct dests_alloc)))
+    dests_alloc = (struct dests_alloc *) alloca (sizeof (struct dests_alloc));
+  else
+    {
+      dests_alloc = re_malloc (struct dests_alloc, 1);
+      if (BE (dests_alloc == NULL, 0))
+	return 0;
+      dests_node_malloced = true;
+    }
+  dests_node = dests_alloc->dests_node;
+  dests_ch = dests_alloc->dests_ch;
+
+  /* Initialize transiton table.  */
+  state->word_trtable = state->trtable = NULL;
+
+  /* At first, group all nodes belonging to `state' into several
+     destinations.  */
+  ndests = group_nodes_into_DFAstates (dfa, state, dests_node, dests_ch);
+  if (BE (ndests <= 0, 0))
+    {
+      if (dests_node_malloced)
+	free (dests_alloc);
+      /* Return 0 in case of an error, 1 otherwise.  */
+      if (ndests == 0)
+	{
+	  state->trtable = (re_dfastate_t **)
+	    calloc (sizeof (re_dfastate_t *), SBC_MAX);
+	  return 1;
+	}
+      return 0;
+    }
+
+  err = re_node_set_alloc (&follows, ndests + 1);
+  if (BE (err != REG_NOERROR, 0))
+    goto out_free;
+
+  if (__libc_use_alloca ((sizeof (re_node_set) + sizeof (bitset_t)) * SBC_MAX
+			 + ndests * 3 * sizeof (re_dfastate_t *)))
+    dest_states = (re_dfastate_t **)
+      alloca (ndests * 3 * sizeof (re_dfastate_t *));
+  else
+    {
+      dest_states = (re_dfastate_t **)
+	malloc (ndests * 3 * sizeof (re_dfastate_t *));
+      if (BE (dest_states == NULL, 0))
+	{
+out_free:
+	  if (dest_states_malloced)
+	    free (dest_states);
+	  re_node_set_free (&follows);
+	  for (i = 0; i < ndests; ++i)
+	    re_node_set_free (dests_node + i);
+	  if (dests_node_malloced)
+	    free (dests_alloc);
+	  return 0;
+	}
+      dest_states_malloced = true;
+    }
+  dest_states_word = dest_states + ndests;
+  dest_states_nl = dest_states_word + ndests;
+  bitset_empty (acceptable);
+
+  /* Then build the states for all destinations.  */
+  for (i = 0; i < ndests; ++i)
+    {
+      int next_node;
+      re_node_set_empty (&follows);
+      /* Merge the follows of this destination states.  */
+      for (j = 0; j < dests_node[i].nelem; ++j)
+	{
+	  next_node = dfa->nexts[dests_node[i].elems[j]];
+	  if (next_node != -1)
+	    {
+	      err = re_node_set_merge (&follows, dfa->eclosures + next_node);
+	      if (BE (err != REG_NOERROR, 0))
+		goto out_free;
+	    }
+	}
+      dest_states[i] = re_acquire_state_context (&err, dfa, &follows, 0);
+      if (BE (dest_states[i] == NULL && err != REG_NOERROR, 0))
+	goto out_free;
+      /* If the new state has context constraint,
+	 build appropriate states for these contexts.  */
+      if (dest_states[i]->has_constraint)
+	{
+	  dest_states_word[i] = re_acquire_state_context (&err, dfa, &follows,
+							  CONTEXT_WORD);
+	  if (BE (dest_states_word[i] == NULL && err != REG_NOERROR, 0))
+	    goto out_free;
+
+	  if (dest_states[i] != dest_states_word[i] && dfa->mb_cur_max > 1)
+	    need_word_trtable = 1;
+
+	  dest_states_nl[i] = re_acquire_state_context (&err, dfa, &follows,
+							CONTEXT_NEWLINE);
+	  if (BE (dest_states_nl[i] == NULL && err != REG_NOERROR, 0))
+	    goto out_free;
+ 	}
+      else
+	{
+	  dest_states_word[i] = dest_states[i];
+	  dest_states_nl[i] = dest_states[i];
+	}
+      bitset_merge (acceptable, dests_ch[i]);
+    }
+
+  if (!BE (need_word_trtable, 0))
+    {
+      /* We don't care about whether the following character is a word
+	 character, or we are in a single-byte character set so we can
+	 discern by looking at the character code: allocate a
+	 256-entry transition table.  */
+      trtable = state->trtable =
+	(re_dfastate_t **) calloc (sizeof (re_dfastate_t *), SBC_MAX);
+      if (BE (trtable == NULL, 0))
+	goto out_free;
+
+      /* For all characters ch...:  */
+      for (i = 0; i < BITSET_WORDS; ++i)
+	for (ch = i * BITSET_WORD_BITS, elem = acceptable[i], mask = 1;
+	     elem;
+	     mask <<= 1, elem >>= 1, ++ch)
+	  if (BE (elem & 1, 0))
+	    {
+	      /* There must be exactly one destination which accepts
+		 character ch.  See group_nodes_into_DFAstates.  */
+	      for (j = 0; (dests_ch[j][i] & mask) == 0; ++j)
+		;
+
+	      /* j-th destination accepts the word character ch.  */
+	      if (dfa->word_char[i] & mask)
+		trtable[ch] = dest_states_word[j];
+	      else
+		trtable[ch] = dest_states[j];
+	    }
+    }
+  else
+    {
+      /* We care about whether the following character is a word
+	 character, and we are in a multi-byte character set: discern
+	 by looking at the character code: build two 256-entry
+	 transition tables, one starting at trtable[0] and one
+	 starting at trtable[SBC_MAX].  */
+      trtable = state->word_trtable =
+	(re_dfastate_t **) calloc (sizeof (re_dfastate_t *), 2 * SBC_MAX);
+      if (BE (trtable == NULL, 0))
+	goto out_free;
+
+      /* For all characters ch...:  */
+      for (i = 0; i < BITSET_WORDS; ++i)
+	for (ch = i * BITSET_WORD_BITS, elem = acceptable[i], mask = 1;
+	     elem;
+	     mask <<= 1, elem >>= 1, ++ch)
+	  if (BE (elem & 1, 0))
+	    {
+	      /* There must be exactly one destination which accepts
+		 character ch.  See group_nodes_into_DFAstates.  */
+	      for (j = 0; (dests_ch[j][i] & mask) == 0; ++j)
+		;
+
+	      /* j-th destination accepts the word character ch.  */
+	      trtable[ch] = dest_states[j];
+	      trtable[ch + SBC_MAX] = dest_states_word[j];
+	    }
+    }
+
+  /* new line */
+  if (bitset_contain (acceptable, NEWLINE_CHAR))
+    {
+      /* The current state accepts newline character.  */
+      for (j = 0; j < ndests; ++j)
+	if (bitset_contain (dests_ch[j], NEWLINE_CHAR))
+	  {
+	    /* k-th destination accepts newline character.  */
+	    trtable[NEWLINE_CHAR] = dest_states_nl[j];
+	    if (need_word_trtable)
+	      trtable[NEWLINE_CHAR + SBC_MAX] = dest_states_nl[j];
+	    /* There must be only one destination which accepts
+	       newline.  See group_nodes_into_DFAstates.  */
+	    break;
+	  }
+    }
+
+  if (dest_states_malloced)
+    free (dest_states);
+
+  re_node_set_free (&follows);
+  for (i = 0; i < ndests; ++i)
+    re_node_set_free (dests_node + i);
+
+  if (dests_node_malloced)
+    free (dests_alloc);
+
+  return 1;
+}
+
+/* Group all nodes belonging to STATE into several destinations.
+   Then for all destinations, set the nodes belonging to the destination
+   to DESTS_NODE[i] and set the characters accepted by the destination
+   to DEST_CH[i].  This function return the number of destinations.  */
+
+static int
+internal_function
+group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state,
+			    re_node_set *dests_node, bitset_t *dests_ch)
+{
+  reg_errcode_t err;
+  int result;
+  int i, j, k;
+  int ndests; /* Number of the destinations from `state'.  */
+  bitset_t accepts; /* Characters a node can accept.  */
+  const re_node_set *cur_nodes = &state->nodes;
+  bitset_empty (accepts);
+  ndests = 0;
+
+  /* For all the nodes belonging to `state',  */
+  for (i = 0; i < cur_nodes->nelem; ++i)
+    {
+      re_token_t *node = &dfa->nodes[cur_nodes->elems[i]];
+      re_token_type_t type = node->type;
+      unsigned int constraint = node->constraint;
+
+      /* Enumerate all single byte character this node can accept.  */
+      if (type == CHARACTER)
+	bitset_set (accepts, node->opr.c);
+      else if (type == SIMPLE_BRACKET)
+	{
+	  bitset_merge (accepts, node->opr.sbcset);
+	}
+      else if (type == OP_PERIOD)
+	{
+#ifdef RE_ENABLE_I18N
+	  if (dfa->mb_cur_max > 1)
+	    bitset_merge (accepts, dfa->sb_char);
+	  else
+#endif
+	    bitset_set_all (accepts);
+	  if (!(dfa->syntax & RE_DOT_NEWLINE))
+	    bitset_clear (accepts, '\n');
+	  if (dfa->syntax & RE_DOT_NOT_NULL)
+	    bitset_clear (accepts, '\0');
+	}
+#ifdef RE_ENABLE_I18N
+      else if (type == OP_UTF8_PERIOD)
+        {
+	  memset (accepts, '\xff', sizeof (bitset_t) / 2);
+	  if (!(dfa->syntax & RE_DOT_NEWLINE))
+	    bitset_clear (accepts, '\n');
+	  if (dfa->syntax & RE_DOT_NOT_NULL)
+	    bitset_clear (accepts, '\0');
+        }
+#endif
+      else
+	continue;
+
+      /* Check the `accepts' and sift the characters which are not
+	 match it the context.  */
+      if (constraint)
+	{
+	  if (constraint & NEXT_NEWLINE_CONSTRAINT)
+	    {
+	      bool accepts_newline = bitset_contain (accepts, NEWLINE_CHAR);
+	      bitset_empty (accepts);
+	      if (accepts_newline)
+		bitset_set (accepts, NEWLINE_CHAR);
+	      else
+		continue;
+	    }
+	  if (constraint & NEXT_ENDBUF_CONSTRAINT)
+	    {
+	      bitset_empty (accepts);
+	      continue;
+	    }
+
+	  if (constraint & NEXT_WORD_CONSTRAINT)
+	    {
+	      bitset_word_t any_set = 0;
+	      if (type == CHARACTER && !node->word_char)
+		{
+		  bitset_empty (accepts);
+		  continue;
+		}
+#ifdef RE_ENABLE_I18N
+	      if (dfa->mb_cur_max > 1)
+		for (j = 0; j < BITSET_WORDS; ++j)
+		  any_set |= (accepts[j] &= (dfa->word_char[j] | ~dfa->sb_char[j]));
+	      else
+#endif
+		for (j = 0; j < BITSET_WORDS; ++j)
+		  any_set |= (accepts[j] &= dfa->word_char[j]);
+	      if (!any_set)
+		continue;
+	    }
+	  if (constraint & NEXT_NOTWORD_CONSTRAINT)
+	    {
+	      bitset_word_t any_set = 0;
+	      if (type == CHARACTER && node->word_char)
+		{
+		  bitset_empty (accepts);
+		  continue;
+		}
+#ifdef RE_ENABLE_I18N
+	      if (dfa->mb_cur_max > 1)
+		for (j = 0; j < BITSET_WORDS; ++j)
+		  any_set |= (accepts[j] &= ~(dfa->word_char[j] & dfa->sb_char[j]));
+	      else
+#endif
+		for (j = 0; j < BITSET_WORDS; ++j)
+		  any_set |= (accepts[j] &= ~dfa->word_char[j]);
+	      if (!any_set)
+		continue;
+	    }
+	}
+
+      /* Then divide `accepts' into DFA states, or create a new
+	 state.  Above, we make sure that accepts is not empty.  */
+      for (j = 0; j < ndests; ++j)
+	{
+	  bitset_t intersec; /* Intersection sets, see below.  */
+	  bitset_t remains;
+	  /* Flags, see below.  */
+	  bitset_word_t has_intersec, not_subset, not_consumed;
+
+	  /* Optimization, skip if this state doesn't accept the character.  */
+	  if (type == CHARACTER && !bitset_contain (dests_ch[j], node->opr.c))
+	    continue;
+
+	  /* Enumerate the intersection set of this state and `accepts'.  */
+	  has_intersec = 0;
+	  for (k = 0; k < BITSET_WORDS; ++k)
+	    has_intersec |= intersec[k] = accepts[k] & dests_ch[j][k];
+	  /* And skip if the intersection set is empty.  */
+	  if (!has_intersec)
+	    continue;
+
+	  /* Then check if this state is a subset of `accepts'.  */
+	  not_subset = not_consumed = 0;
+	  for (k = 0; k < BITSET_WORDS; ++k)
+	    {
+	      not_subset |= remains[k] = ~accepts[k] & dests_ch[j][k];
+	      not_consumed |= accepts[k] = accepts[k] & ~dests_ch[j][k];
+	    }
+
+	  /* If this state isn't a subset of `accepts', create a
+	     new group state, which has the `remains'. */
+	  if (not_subset)
+	    {
+	      bitset_copy (dests_ch[ndests], remains);
+	      bitset_copy (dests_ch[j], intersec);
+	      err = re_node_set_init_copy (dests_node + ndests, &dests_node[j]);
+	      if (BE (err != REG_NOERROR, 0))
+		goto error_return;
+	      ++ndests;
+	    }
+
+	  /* Put the position in the current group. */
+	  result = re_node_set_insert (&dests_node[j], cur_nodes->elems[i]);
+	  if (BE (result < 0, 0))
+	    goto error_return;
+
+	  /* If all characters are consumed, go to next node. */
+	  if (!not_consumed)
+	    break;
+	}
+      /* Some characters remain, create a new group. */
+      if (j == ndests)
+	{
+	  bitset_copy (dests_ch[ndests], accepts);
+	  err = re_node_set_init_1 (dests_node + ndests, cur_nodes->elems[i]);
+	  if (BE (err != REG_NOERROR, 0))
+	    goto error_return;
+	  ++ndests;
+	  bitset_empty (accepts);
+	}
+    }
+  return ndests;
+ error_return:
+  for (j = 0; j < ndests; ++j)
+    re_node_set_free (dests_node + j);
+  return -1;
+}
+
+#ifdef RE_ENABLE_I18N
+/* Check how many bytes the node `dfa->nodes[node_idx]' accepts.
+   Return the number of the bytes the node accepts.
+   STR_IDX is the current index of the input string.
+
+   This function handles the nodes which can accept one character, or
+   one collating element like '.', '[a-z]', opposite to the other nodes
+   can only accept one byte.  */
+
+static int
+internal_function
+check_node_accept_bytes (const re_dfa_t *dfa, int node_idx,
+			 const re_string_t *input, int str_idx)
+{
+  const re_token_t *node = dfa->nodes + node_idx;
+  int char_len, elem_len;
+  int i;
+
+  if (BE (node->type == OP_UTF8_PERIOD, 0))
+    {
+      unsigned char c = re_string_byte_at (input, str_idx), d;
+      if (BE (c < 0xc2, 1))
+	return 0;
+
+      if (str_idx + 2 > input->len)
+	return 0;
+
+      d = re_string_byte_at (input, str_idx + 1);
+      if (c < 0xe0)
+	return (d < 0x80 || d > 0xbf) ? 0 : 2;
+      else if (c < 0xf0)
+	{
+	  char_len = 3;
+	  if (c == 0xe0 && d < 0xa0)
+	    return 0;
+	}
+      else if (c < 0xf8)
+	{
+	  char_len = 4;
+	  if (c == 0xf0 && d < 0x90)
+	    return 0;
+	}
+      else if (c < 0xfc)
+	{
+	  char_len = 5;
+	  if (c == 0xf8 && d < 0x88)
+	    return 0;
+	}
+      else if (c < 0xfe)
+	{
+	  char_len = 6;
+	  if (c == 0xfc && d < 0x84)
+	    return 0;
+	}
+      else
+	return 0;
+
+      if (str_idx + char_len > input->len)
+	return 0;
+
+      for (i = 1; i < char_len; ++i)
+	{
+	  d = re_string_byte_at (input, str_idx + i);
+	  if (d < 0x80 || d > 0xbf)
+	    return 0;
+	}
+      return char_len;
+    }
+
+  char_len = re_string_char_size_at (input, str_idx);
+  if (node->type == OP_PERIOD)
+    {
+      if (char_len <= 1)
+        return 0;
+      /* FIXME: I don't think this if is needed, as both '\n'
+	 and '\0' are char_len == 1.  */
+      /* '.' accepts any one character except the following two cases.  */
+      if ((!(dfa->syntax & RE_DOT_NEWLINE) &&
+	   re_string_byte_at (input, str_idx) == '\n') ||
+	  ((dfa->syntax & RE_DOT_NOT_NULL) &&
+	   re_string_byte_at (input, str_idx) == '\0'))
+	return 0;
+      return char_len;
+    }
+
+  elem_len = re_string_elem_size_at (input, str_idx);
+  if ((elem_len <= 1 && char_len <= 1) || char_len == 0)
+    return 0;
+
+  if (node->type == COMPLEX_BRACKET)
+    {
+      const re_charset_t *cset = node->opr.mbcset;
+# ifdef _LIBC
+      const unsigned char *pin
+	= ((const unsigned char *) re_string_get_buffer (input) + str_idx);
+      int j;
+      uint32_t nrules;
+# endif /* _LIBC */
+      int match_len = 0;
+      wchar_t wc = ((cset->nranges || cset->nchar_classes || cset->nmbchars)
+		    ? re_string_wchar_at (input, str_idx) : 0);
+
+      /* match with multibyte character?  */
+      for (i = 0; i < cset->nmbchars; ++i)
+	if (wc == cset->mbchars[i])
+	  {
+	    match_len = char_len;
+	    goto check_node_accept_bytes_match;
+	  }
+      /* match with character_class?  */
+      for (i = 0; i < cset->nchar_classes; ++i)
+	{
+	  wctype_t wt = cset->char_classes[i];
+	  if (__iswctype (wc, wt))
+	    {
+	      match_len = char_len;
+	      goto check_node_accept_bytes_match;
+	    }
+	}
+
+# ifdef _LIBC
+      nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
+      if (nrules != 0)
+	{
+	  unsigned int in_collseq = 0;
+	  const int32_t *table, *indirect;
+	  const unsigned char *weights, *extra;
+	  const char *collseqwc;
+	  int32_t idx;
+	  /* This #include defines a local function!  */
+#  include <locale/weight.h>
+
+	  /* match with collating_symbol?  */
+	  if (cset->ncoll_syms)
+	    extra = (const unsigned char *)
+	      _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB);
+	  for (i = 0; i < cset->ncoll_syms; ++i)
+	    {
+	      const unsigned char *coll_sym = extra + cset->coll_syms[i];
+	      /* Compare the length of input collating element and
+		 the length of current collating element.  */
+	      if (*coll_sym != elem_len)
+		continue;
+	      /* Compare each bytes.  */
+	      for (j = 0; j < *coll_sym; j++)
+		if (pin[j] != coll_sym[1 + j])
+		  break;
+	      if (j == *coll_sym)
+		{
+		  /* Match if every bytes is equal.  */
+		  match_len = j;
+		  goto check_node_accept_bytes_match;
+		}
+	    }
+
+	  if (cset->nranges)
+	    {
+	      if (elem_len <= char_len)
+		{
+		  collseqwc = _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQWC);
+		  in_collseq = __collseq_table_lookup (collseqwc, wc);
+		}
+	      else
+		in_collseq = find_collation_sequence_value (pin, elem_len);
+	    }
+	  /* match with range expression?  */
+	  for (i = 0; i < cset->nranges; ++i)
+	    if (cset->range_starts[i] <= in_collseq
+		&& in_collseq <= cset->range_ends[i])
+	      {
+		match_len = elem_len;
+		goto check_node_accept_bytes_match;
+	      }
+
+	  /* match with equivalence_class?  */
+	  if (cset->nequiv_classes)
+	    {
+	      const unsigned char *cp = pin;
+	      table = (const int32_t *)
+		_NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB);
+	      weights = (const unsigned char *)
+		_NL_CURRENT (LC_COLLATE, _NL_COLLATE_WEIGHTMB);
+	      extra = (const unsigned char *)
+		_NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB);
+	      indirect = (const int32_t *)
+		_NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB);
+	      idx = findidx (&cp);
+	      if (idx > 0)
+		for (i = 0; i < cset->nequiv_classes; ++i)
+		  {
+		    int32_t equiv_class_idx = cset->equiv_classes[i];
+		    size_t weight_len = weights[idx];
+		    if (weight_len == weights[equiv_class_idx])
+		      {
+			int cnt = 0;
+			while (cnt <= weight_len
+			       && (weights[equiv_class_idx + 1 + cnt]
+				   == weights[idx + 1 + cnt]))
+			  ++cnt;
+			if (cnt > weight_len)
+			  {
+			    match_len = elem_len;
+			    goto check_node_accept_bytes_match;
+			  }
+		      }
+		  }
+	    }
+	}
+      else
+# endif /* _LIBC */
+	{
+	  /* match with range expression?  */
+#if __GNUC__ >= 2
+	  wchar_t cmp_buf[] = {L'\0', L'\0', wc, L'\0', L'\0', L'\0'};
+#else
+	  wchar_t cmp_buf[] = {L'\0', L'\0', L'\0', L'\0', L'\0', L'\0'};
+	  cmp_buf[2] = wc;
+#endif
+	  for (i = 0; i < cset->nranges; ++i)
+	    {
+	      cmp_buf[0] = cset->range_starts[i];
+	      cmp_buf[4] = cset->range_ends[i];
+	      if (wcscoll (cmp_buf, cmp_buf + 2) <= 0
+		  && wcscoll (cmp_buf + 2, cmp_buf + 4) <= 0)
+		{
+		  match_len = char_len;
+		  goto check_node_accept_bytes_match;
+		}
+	    }
+	}
+    check_node_accept_bytes_match:
+      if (!cset->non_match)
+	return match_len;
+      else
+	{
+	  if (match_len > 0)
+	    return 0;
+	  else
+	    return (elem_len > char_len) ? elem_len : char_len;
+	}
+    }
+  return 0;
+}
+
+# ifdef _LIBC
+static unsigned int
+internal_function
+find_collation_sequence_value (const unsigned char *mbs, size_t mbs_len)
+{
+  uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
+  if (nrules == 0)
+    {
+      if (mbs_len == 1)
+	{
+	  /* No valid character.  Match it as a single byte character.  */
+	  const unsigned char *collseq = (const unsigned char *)
+	    _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQMB);
+	  return collseq[mbs[0]];
+	}
+      return UINT_MAX;
+    }
+  else
+    {
+      int32_t idx;
+      const unsigned char *extra = (const unsigned char *)
+	_NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB);
+      int32_t extrasize = (const unsigned char *)
+	_NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB + 1) - extra;
+
+      for (idx = 0; idx < extrasize;)
+	{
+	  int mbs_cnt, found = 0;
+	  int32_t elem_mbs_len;
+	  /* Skip the name of collating element name.  */
+	  idx = idx + extra[idx] + 1;
+	  elem_mbs_len = extra[idx++];
+	  if (mbs_len == elem_mbs_len)
+	    {
+	      for (mbs_cnt = 0; mbs_cnt < elem_mbs_len; ++mbs_cnt)
+		if (extra[idx + mbs_cnt] != mbs[mbs_cnt])
+		  break;
+	      if (mbs_cnt == elem_mbs_len)
+		/* Found the entry.  */
+		found = 1;
+	    }
+	  /* Skip the byte sequence of the collating element.  */
+	  idx += elem_mbs_len;
+	  /* Adjust for the alignment.  */
+	  idx = (idx + 3) & ~3;
+	  /* Skip the collation sequence value.  */
+	  idx += sizeof (uint32_t);
+	  /* Skip the wide char sequence of the collating element.  */
+	  idx = idx + sizeof (uint32_t) * (extra[idx] + 1);
+	  /* If we found the entry, return the sequence value.  */
+	  if (found)
+	    return *(uint32_t *) (extra + idx);
+	  /* Skip the collation sequence value.  */
+	  idx += sizeof (uint32_t);
+	}
+      return UINT_MAX;
+    }
+}
+# endif /* _LIBC */
+#endif /* RE_ENABLE_I18N */
+
+/* Check whether the node accepts the byte which is IDX-th
+   byte of the INPUT.  */
+
+static int
+internal_function
+check_node_accept (const re_match_context_t *mctx, const re_token_t *node,
+		   int idx)
+{
+  unsigned char ch;
+  ch = re_string_byte_at (&mctx->input, idx);
+  switch (node->type)
+    {
+    case CHARACTER:
+      if (node->opr.c != ch)
+        return 0;
+      break;
+
+    case SIMPLE_BRACKET:
+      if (!bitset_contain (node->opr.sbcset, ch))
+        return 0;
+      break;
+
+#ifdef RE_ENABLE_I18N
+    case OP_UTF8_PERIOD:
+      if (ch >= 0x80)
+        return 0;
+      /* FALLTHROUGH */
+#endif
+    case OP_PERIOD:
+      if ((ch == '\n' && !(mctx->dfa->syntax & RE_DOT_NEWLINE))
+	  || (ch == '\0' && (mctx->dfa->syntax & RE_DOT_NOT_NULL)))
+	return 0;
+      break;
+
+    default:
+      return 0;
+    }
+
+  if (node->constraint)
+    {
+      /* The node has constraints.  Check whether the current context
+	 satisfies the constraints.  */
+      unsigned int context = re_string_context_at (&mctx->input, idx,
+						   mctx->eflags);
+      if (NOT_SATISFY_NEXT_CONSTRAINT (node->constraint, context))
+	return 0;
+    }
+
+  return 1;
+}
+
+/* Extend the buffers, if the buffers have run out.  */
+
+static reg_errcode_t
+internal_function
+extend_buffers (re_match_context_t *mctx)
+{
+  reg_errcode_t ret;
+  re_string_t *pstr = &mctx->input;
+
+  /* Double the lengthes of the buffers.  */
+  ret = re_string_realloc_buffers (pstr, pstr->bufs_len * 2);
+  if (BE (ret != REG_NOERROR, 0))
+    return ret;
+
+  if (mctx->state_log != NULL)
+    {
+      /* And double the length of state_log.  */
+      /* XXX We have no indication of the size of this buffer.  If this
+	 allocation fail we have no indication that the state_log array
+	 does not have the right size.  */
+      re_dfastate_t **new_array = re_realloc (mctx->state_log, re_dfastate_t *,
+					      pstr->bufs_len + 1);
+      if (BE (new_array == NULL, 0))
+	return REG_ESPACE;
+      mctx->state_log = new_array;
+    }
+
+  /* Then reconstruct the buffers.  */
+  if (pstr->icase)
+    {
+#ifdef RE_ENABLE_I18N
+      if (pstr->mb_cur_max > 1)
+	{
+	  ret = build_wcs_upper_buffer (pstr);
+	  if (BE (ret != REG_NOERROR, 0))
+	    return ret;
+	}
+      else
+#endif /* RE_ENABLE_I18N  */
+	build_upper_buffer (pstr);
+    }
+  else
+    {
+#ifdef RE_ENABLE_I18N
+      if (pstr->mb_cur_max > 1)
+	build_wcs_buffer (pstr);
+      else
+#endif /* RE_ENABLE_I18N  */
+	{
+	  if (pstr->trans != NULL)
+	    re_string_translate_buffer (pstr);
+	}
+    }
+  return REG_NOERROR;
+}
+
+
+/* Functions for matching context.  */
+
+/* Initialize MCTX.  */
+
+static reg_errcode_t
+internal_function
+match_ctx_init (re_match_context_t *mctx, int eflags, int n)
+{
+  mctx->eflags = eflags;
+  mctx->match_last = -1;
+  if (n > 0)
+    {
+      mctx->bkref_ents = re_malloc (struct re_backref_cache_entry, n);
+      mctx->sub_tops = re_malloc (re_sub_match_top_t *, n);
+      if (BE (mctx->bkref_ents == NULL || mctx->sub_tops == NULL, 0))
+	return REG_ESPACE;
+    }
+  /* Already zero-ed by the caller.
+     else
+       mctx->bkref_ents = NULL;
+     mctx->nbkref_ents = 0;
+     mctx->nsub_tops = 0;  */
+  mctx->abkref_ents = n;
+  mctx->max_mb_elem_len = 1;
+  mctx->asub_tops = n;
+  return REG_NOERROR;
+}
+
+/* Clean the entries which depend on the current input in MCTX.
+   This function must be invoked when the matcher changes the start index
+   of the input, or changes the input string.  */
+
+static void
+internal_function
+match_ctx_clean (re_match_context_t *mctx)
+{
+  int st_idx;
+  for (st_idx = 0; st_idx < mctx->nsub_tops; ++st_idx)
+    {
+      int sl_idx;
+      re_sub_match_top_t *top = mctx->sub_tops[st_idx];
+      for (sl_idx = 0; sl_idx < top->nlasts; ++sl_idx)
+	{
+	  re_sub_match_last_t *last = top->lasts[sl_idx];
+	  re_free (last->path.array);
+	  re_free (last);
+	}
+      re_free (top->lasts);
+      if (top->path)
+	{
+	  re_free (top->path->array);
+	  re_free (top->path);
+	}
+      free (top);
+    }
+
+  mctx->nsub_tops = 0;
+  mctx->nbkref_ents = 0;
+}
+
+/* Free all the memory associated with MCTX.  */
+
+static void
+internal_function
+match_ctx_free (re_match_context_t *mctx)
+{
+  /* First, free all the memory associated with MCTX->SUB_TOPS.  */
+  match_ctx_clean (mctx);
+  re_free (mctx->sub_tops);
+  re_free (mctx->bkref_ents);
+}
+
+/* Add a new backreference entry to MCTX.
+   Note that we assume that caller never call this function with duplicate
+   entry, and call with STR_IDX which isn't smaller than any existing entry.
+*/
+
+static reg_errcode_t
+internal_function
+match_ctx_add_entry (re_match_context_t *mctx, int node, int str_idx, int from,
+		     int to)
+{
+  if (mctx->nbkref_ents >= mctx->abkref_ents)
+    {
+      struct re_backref_cache_entry* new_entry;
+      new_entry = re_realloc (mctx->bkref_ents, struct re_backref_cache_entry,
+			      mctx->abkref_ents * 2);
+      if (BE (new_entry == NULL, 0))
+	{
+	  re_free (mctx->bkref_ents);
+	  return REG_ESPACE;
+	}
+      mctx->bkref_ents = new_entry;
+      memset (mctx->bkref_ents + mctx->nbkref_ents, '\0',
+	      sizeof (struct re_backref_cache_entry) * mctx->abkref_ents);
+      mctx->abkref_ents *= 2;
+    }
+  if (mctx->nbkref_ents > 0
+      && mctx->bkref_ents[mctx->nbkref_ents - 1].str_idx == str_idx)
+    mctx->bkref_ents[mctx->nbkref_ents - 1].more = 1;
+
+  mctx->bkref_ents[mctx->nbkref_ents].node = node;
+  mctx->bkref_ents[mctx->nbkref_ents].str_idx = str_idx;
+  mctx->bkref_ents[mctx->nbkref_ents].subexp_from = from;
+  mctx->bkref_ents[mctx->nbkref_ents].subexp_to = to;
+
+  /* This is a cache that saves negative results of check_dst_limits_calc_pos.
+     If bit N is clear, means that this entry won't epsilon-transition to
+     an OP_OPEN_SUBEXP or OP_CLOSE_SUBEXP for the N+1-th subexpression.  If
+     it is set, check_dst_limits_calc_pos_1 will recurse and try to find one
+     such node.
+
+     A backreference does not epsilon-transition unless it is empty, so set
+     to all zeros if FROM != TO.  */
+  mctx->bkref_ents[mctx->nbkref_ents].eps_reachable_subexps_map
+    = (from == to ? ~0 : 0);
+
+  mctx->bkref_ents[mctx->nbkref_ents++].more = 0;
+  if (mctx->max_mb_elem_len < to - from)
+    mctx->max_mb_elem_len = to - from;
+  return REG_NOERROR;
+}
+
+/* Search for the first entry which has the same str_idx, or -1 if none is
+   found.  Note that MCTX->BKREF_ENTS is already sorted by MCTX->STR_IDX.  */
+
+static int
+internal_function
+search_cur_bkref_entry (const re_match_context_t *mctx, int str_idx)
+{
+  int left, right, mid, last;
+  last = right = mctx->nbkref_ents;
+  for (left = 0; left < right;)
+    {
+      mid = (left + right) / 2;
+      if (mctx->bkref_ents[mid].str_idx < str_idx)
+	left = mid + 1;
+      else
+	right = mid;
+    }
+  if (left < last && mctx->bkref_ents[left].str_idx == str_idx)
+    return left;
+  else
+    return -1;
+}
+
+/* Register the node NODE, whose type is OP_OPEN_SUBEXP, and which matches
+   at STR_IDX.  */
+
+static reg_errcode_t
+internal_function
+match_ctx_add_subtop (re_match_context_t *mctx, int node, int str_idx)
+{
+#ifdef DEBUG
+  assert (mctx->sub_tops != NULL);
+  assert (mctx->asub_tops > 0);
+#endif
+  if (BE (mctx->nsub_tops == mctx->asub_tops, 0))
+    {
+      int new_asub_tops = mctx->asub_tops * 2;
+      re_sub_match_top_t **new_array = re_realloc (mctx->sub_tops,
+						   re_sub_match_top_t *,
+						   new_asub_tops);
+      if (BE (new_array == NULL, 0))
+	return REG_ESPACE;
+      mctx->sub_tops = new_array;
+      mctx->asub_tops = new_asub_tops;
+    }
+  mctx->sub_tops[mctx->nsub_tops] = calloc (1, sizeof (re_sub_match_top_t));
+  if (BE (mctx->sub_tops[mctx->nsub_tops] == NULL, 0))
+    return REG_ESPACE;
+  mctx->sub_tops[mctx->nsub_tops]->node = node;
+  mctx->sub_tops[mctx->nsub_tops++]->str_idx = str_idx;
+  return REG_NOERROR;
+}
+
+/* Register the node NODE, whose type is OP_CLOSE_SUBEXP, and which matches
+   at STR_IDX, whose corresponding OP_OPEN_SUBEXP is SUB_TOP.  */
+
+static re_sub_match_last_t *
+internal_function
+match_ctx_add_sublast (re_sub_match_top_t *subtop, int node, int str_idx)
+{
+  re_sub_match_last_t *new_entry;
+  if (BE (subtop->nlasts == subtop->alasts, 0))
+    {
+      int new_alasts = 2 * subtop->alasts + 1;
+      re_sub_match_last_t **new_array = re_realloc (subtop->lasts,
+						    re_sub_match_last_t *,
+						    new_alasts);
+      if (BE (new_array == NULL, 0))
+	return NULL;
+      subtop->lasts = new_array;
+      subtop->alasts = new_alasts;
+    }
+  new_entry = calloc (1, sizeof (re_sub_match_last_t));
+  if (BE (new_entry != NULL, 1))
+    {
+      subtop->lasts[subtop->nlasts] = new_entry;
+      new_entry->node = node;
+      new_entry->str_idx = str_idx;
+      ++subtop->nlasts;
+    }
+  return new_entry;
+}
+
+static void
+internal_function
+sift_ctx_init (re_sift_context_t *sctx, re_dfastate_t **sifted_sts,
+	       re_dfastate_t **limited_sts, int last_node, int last_str_idx)
+{
+  sctx->sifted_states = sifted_sts;
+  sctx->limited_states = limited_sts;
+  sctx->last_node = last_node;
+  sctx->last_str_idx = last_str_idx;
+  re_node_set_init_empty (&sctx->limits);
+}
diff --git a/framework/modules/c_FileTypeSigModule/tsk/FileTypeSigModule/magic.mgc b/framework/modules/c_FileTypeSigModule/tsk/FileTypeSigModule/magic.mgc
new file mode 120000
index 0000000000000000000000000000000000000000..9d8287e809951381321ba430551084906cf0698c
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/tsk/FileTypeSigModule/magic.mgc
@@ -0,0 +1 @@
+../../file-5.08/magic/magic.mgc
\ No newline at end of file
diff --git a/framework/modules/c_FileTypeSigModule/win32/FileTypeSigModule.sln b/framework/modules/c_FileTypeSigModule/win32/FileTypeSigModule.sln
new file mode 100755
index 0000000000000000000000000000000000000000..5796152be2bda8998b2be2807103aa9a7f1cf0e4
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/win32/FileTypeSigModule.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual C++ Express 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FileTypeSigModule", "FileTypeSigModule.vcxproj", "{18EC105E-A0F9-43D2-B66E-287828E61E7D}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{18EC105E-A0F9-43D2-B66E-287828E61E7D}.Debug|Win32.ActiveCfg = Debug|Win32
+		{18EC105E-A0F9-43D2-B66E-287828E61E7D}.Debug|Win32.Build.0 = Debug|Win32
+		{18EC105E-A0F9-43D2-B66E-287828E61E7D}.Release|Win32.ActiveCfg = Release|Win32
+		{18EC105E-A0F9-43D2-B66E-287828E61E7D}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/framework/modules/c_FileTypeSigModule/win32/FileTypeSigModule.vcxproj b/framework/modules/c_FileTypeSigModule/win32/FileTypeSigModule.vcxproj
new file mode 100755
index 0000000000000000000000000000000000000000..482cf76495155fbddb3771c510acae05cc9cc745
--- /dev/null
+++ b/framework/modules/c_FileTypeSigModule/win32/FileTypeSigModule.vcxproj
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{18EC105E-A0F9-43D2-B66E-287828E61E7D}</ProjectGuid>
+    <RootNamespace>FileTypeSigModule</RootNamespace>
+    <Keyword>Win32Proj</Keyword>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">tsk$(ProjectName)</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">tsk$(ProjectName)</TargetName>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>$(TSK_HOME);$(TSK_HOME)\framework;$(POCO_HOME)\Foundation\include;$(POCO_HOME)\Util\include;$(ProjectDir)\..\file-5.08\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MinimalRebuild>true</MinimalRebuild>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>libtskframework.lib;libmagic-1.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(TSK_HOME)\framework\msvcpp\framework\$(Configuration);$(POCO_HOME)\lib;$(ProjectDir)\..\file-5.08;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Console</SubSystem>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+    <PostBuildEvent>
+      <Command>move /Y "$(SolutionDir)$(Configuration)\tsk$(ProjectName).dll" "$(ProjectDir)..\..\..\runtime"
+copy /Y "$(ProjectDir)..\file-5.08\libmagic-1.dll" "$(ProjectDir)..\..\..\runtime"
+copy /Y "$(ProjectDir)..\mingw-libgnurx-2.5.1\libgnurx-0.dll" "$(ProjectDir)..\..\..\runtime."
+mkdir "$(ProjectDir)..\..\..\runtime\$(TargetName)"
+copy /Y "$(ProjectDir)..\file-5.08\magic\magic.mgc" "$(ProjectDir)..\..\..\runtime\$(TargetName)\"</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <AdditionalIncludeDirectories>$(TSK_HOME);$(TSK_HOME)\framework;$(POCO_HOME)\Foundation\include;$(POCO_HOME)\Util\include;$(ProjectDir)\..\file-5.08\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>libtskframework.lib;libmagic-1.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(TSK_HOME)\framework\msvcpp\framework\$(Configuration);$(POCO_HOME)\lib;$(ProjectDir)\..\file-5.08;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Console</SubSystem>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+    <PostBuildEvent>
+      <Command>move /Y "$(SolutionDir)$(Configuration)\tsk$(ProjectName).dll" "$(ProjectDir)..\..\..\runtime"
+copy /Y "$(ProjectDir)..\file-5.08\libmagic-1.dll" "$(ProjectDir)..\..\..\runtime"
+copy /Y "$(ProjectDir)..\mingw-libgnurx-2.5.1\libgnurx-0.dll" "$(ProjectDir)..\..\..\runtime."
+mkdir "$(ProjectDir)..\..\..\runtime\$(TargetName)"
+copy /Y "$(ProjectDir)..\file-5.08\magic\magic.mgc" "$(ProjectDir)..\..\..\runtime\$(TargetName)\"</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\FileTypeModule.cpp" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/framework/modules/c_HashCalcModule/HashCalcModule.cpp b/framework/modules/c_HashCalcModule/HashCalcModule.cpp
new file mode 100755
index 0000000000000000000000000000000000000000..0b8ea2cde48f746897111e93f4d74cdf94cd04cd
--- /dev/null
+++ b/framework/modules/c_HashCalcModule/HashCalcModule.cpp
@@ -0,0 +1,224 @@
+/*
+ * The Sleuth Kit
+ *
+ * Contact: Brian Carrier [carrier <at> sleuthkit [dot] org]
+ * Copyright (c) 2011-2012 Basis Technology Corporation. All Rights
+ * reserved.
+ *
+ * This software is distributed under the Common Public License 1.0
+ */
+
+/** \file HashCalcModule.cpp 
+ * Contains the implementation of the hash calculation file analysis module.
+ */
+
+// System includes
+#include <string>
+#include <sstream>
+#include <string.h>
+
+// Framework includes
+#include "tsk/framework/utilities/TskModuleDev.h"
+
+// strings for command line arguments
+static const std::string MD5_NAME("MD5");
+static const std::string SHA1_NAME("SHA1");
+
+static bool calculateMD5 = true;
+static bool calculateSHA1 = false;
+
+static const char hexMap[] = "0123456789abcdef";
+
+extern "C" 
+{
+    /**
+     * Module identification function. 
+     *
+     * @return The name of the module.
+     */
+    TSK_MODULE_EXPORT const char *name()
+    {
+        return "tskHashCalcModule";
+    }
+
+    /**
+     * Module identification function. 
+     *
+     * @return A description of the module.
+     */
+    TSK_MODULE_EXPORT const char *description()
+    {
+        return "Calculates MD5 and/or SHA-1 hashes of file content";
+    }
+
+    /**
+     * Module identification function. 
+     *
+     * @return The version of the module.
+     */
+    TSK_MODULE_EXPORT const char *version()
+    {
+        return "1.0.1";
+    }
+
+    /**
+     * Module initialization function. Receives arguments, typically read by the
+     * caller from a pipeline configuration file, that determine what hashes the 
+     * module calculates for a given file.
+     *
+     * @param args Valid values are "MD5", "SHA1" or the empty string which will 
+     * result in just "MD5" being calculated. Hash names can be in any order,
+     * separated by spaces or commas. 
+     * @return TskModule::OK if initialization arguments are valid, otherwise 
+     * TskModule::FAIL.
+     */
+    TskModule::Status TSK_MODULE_EXPORT initialize(const char* arguments)
+    {
+        std::string args(arguments);
+
+        // If the argument string is empty we calculate both hashes.
+        if (args.empty()) {
+            calculateMD5 = true;
+            calculateSHA1 = false;
+        }
+        else {
+            calculateMD5 = false;
+            calculateSHA1 = false;
+
+            // If the argument string contains "MD5" we calculate an MD5 hash.
+            if (args.find(MD5_NAME) != std::string::npos) 
+                calculateMD5 = true;
+
+            // If the argument string contains "SHA1" we calculate a SHA1 hash.
+            if (args.find(SHA1_NAME) != std::string::npos) 
+                calculateSHA1 = true;
+
+            // If neither hash is to be calculated it means that the arguments
+            // passed to the module were incorrect. We log an error message
+            // through the framework logging facility.
+            if (!calculateMD5 && !calculateSHA1) {
+                std::stringstream msg;
+                msg << "Invalid arguments passed to hash module: " << args.c_str();
+                LOGERROR(msg.str());
+                return TskModule::FAIL;
+            }
+        }
+
+        if (calculateMD5)
+            LOGINFO("HashCalcModule: Configured to calculate MD5 hashes");
+
+        if (calculateSHA1)
+            LOGINFO("HashCalcModule: Configured to calculate SHA-1 hashes");
+
+        return TskModule::OK;
+    }
+
+    /**
+     * Module execution function. Receives a pointer to a file the module is to
+     * process. The file is represented by a TskFile interface which is used
+     * to read the contents of the file and post calculated hashes of the 
+     * file contents to the database.
+     *
+     * @param pFile A pointer to a file for which the hash calculations are to be performed.
+     * @returns TskModule::OK on success, TskModule::FAIL on error.
+     */
+    TskModule::Status TSK_MODULE_EXPORT run(TskFile * pFile) 
+    {
+        if (pFile == NULL) 
+        {
+            LOGERROR("HashCalcModule: passed NULL file pointer.");
+            return TskModule::FAIL;
+        }
+
+        // We will not attempt to calculate hash values for "unused sector"
+        // files.
+        if (pFile->getTypeId() == TskImgDB::IMGDB_FILES_TYPE_UNUSED)
+            return TskModule::OK;
+
+        try 
+        {
+            TSK_MD5_CTX md5Ctx;
+            TSK_SHA_CTX sha1Ctx;
+
+            if (calculateMD5)
+                TSK_MD5_Init(&md5Ctx);
+
+            if (calculateSHA1)
+                TSK_SHA_Init(&sha1Ctx);
+
+            // file buffer
+            static const uint32_t FILE_BUFFER_SIZE = 32768;
+            char buffer[FILE_BUFFER_SIZE];
+
+            ssize_t bytesRead = 0;
+
+            // Read file content into buffer and write it to the DigestOutputStream.
+            do 
+            {
+                bytesRead = pFile->read(buffer, FILE_BUFFER_SIZE);
+                if (bytesRead > 0) {
+                    if (calculateMD5)
+                        TSK_MD5_Update(&md5Ctx, (unsigned char *) buffer, (unsigned int) bytesRead);
+
+                    if (calculateSHA1)
+                        TSK_SHA_Update(&sha1Ctx, (unsigned char *) buffer, (unsigned int) bytesRead);                  
+                }
+            } while (bytesRead > 0);
+
+            if (calculateMD5) {
+                unsigned char md5Hash[16];
+                TSK_MD5_Final(md5Hash, &md5Ctx);
+
+                char md5TextBuff[33];            
+                for (int i = 0; i < 16; i++) {
+                    md5TextBuff[2 * i] = hexMap[(md5Hash[i] >> 4) & 0xf];
+                    md5TextBuff[2 * i + 1] = hexMap[md5Hash[i] & 0xf];
+                }
+                md5TextBuff[32] = '\0';
+                pFile->setHash(TskImgDB::MD5, md5TextBuff);
+            }
+
+            if (calculateSHA1) {
+                unsigned char sha1Hash[20];
+                TSK_SHA_Final(sha1Hash, &sha1Ctx);
+
+                char textBuff[41];            
+                for (int i = 0; i < 20; i++) {
+                    textBuff[2 * i] = hexMap[(sha1Hash[i] >> 4) & 0xf];
+                    textBuff[2 * i + 1] = hexMap[sha1Hash[i] & 0xf];
+                }
+                textBuff[40] = '\0';
+                pFile->setHash(TskImgDB::SHA1, textBuff);
+            }
+
+        }
+        catch (TskException& tskEx)
+        {
+            std::stringstream msg;
+            msg << "HashCalcModule - Error processing file id " << pFile->getId() << ": " << tskEx.what();
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+        catch (std::exception& ex)
+        {
+            std::stringstream msg;
+            msg << "HashCalcModule - Error processing file id " << pFile->getId() << ": " << ex.what();
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+
+        return TskModule::OK;
+    }
+
+    /**
+     * Module cleanup function. This module does not need to free any 
+     * resources allocated during initialization or execution.
+     *
+     * @returns TskModule::OK
+     */
+    TskModule::Status TSK_MODULE_EXPORT finalize()
+    {
+        return TskModule::OK;
+    }
+}
+
diff --git a/framework/modules/c_HashCalcModule/Makefile.am b/framework/modules/c_HashCalcModule/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..13957c0674894a11c99ab0fa659d9fc54db890bd
--- /dev/null
+++ b/framework/modules/c_HashCalcModule/Makefile.am
@@ -0,0 +1,5 @@
+AM_CXXFLAGS = $(AM_CXXFLAGS_MOD)
+
+lib_LTLIBRARIES = libtskHashCalcModule.la
+libtskHashCalcModule_la_SOURCES = HashCalcModule.cpp
+libtskHashCalcModule_la_LIBADD = $(AM_LIBADD_MOD)
diff --git a/framework/modules/c_HashCalcModule/NEWS.txt b/framework/modules/c_HashCalcModule/NEWS.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6c827e7f952bb5f293700ab1185f360759b8d09b
--- /dev/null
+++ b/framework/modules/c_HashCalcModule/NEWS.txt
@@ -0,0 +1,13 @@
+Numbers refer to github.net issue #s:
+    https://github.com/sleuthkit/c_HashCalcModule/issues
+    
+---------------- VERSION 1.0.1 --------------
+- SHA-1 is not done by default
+- Use TSK libraries instead of POCO
+
+---------------- VERSION 1.0.0 --------------
+New Features:
+- Initial public release.
+
+Bug Fixes:
+- N/A. 
diff --git a/framework/modules/c_HashCalcModule/README.txt b/framework/modules/c_HashCalcModule/README.txt
new file mode 100644
index 0000000000000000000000000000000000000000..68c9a208b968da5ee90fe8fd848693c0fcd08851
--- /dev/null
+++ b/framework/modules/c_HashCalcModule/README.txt
@@ -0,0 +1,40 @@
+Hash Calculation Module
+Sleuth Kit Framework C++ Module
+May 2012
+
+
+This module is for the C++ Sleuth Kit Framework.
+
+
+DESCRIPTION
+
+This module is a file analysis module that calculates 
+MD5 or SHA-1 hash values of file content.  Hash values
+are used to detect known files and are used to later show
+that file content has not changed. 
+
+
+DEPLOYMENT REQUIREMENTS
+
+This module does not have any specific deployment requirements.
+
+
+USAGE
+
+Add this module to a file analysis pipeline.  See the TSK 
+Framework documents for information on adding the module 
+to the pipeline:
+
+    http://www.sleuthkit.org/sleuthkit/docs/framework-docs/
+
+By default, the module will only calculate the MD5 hash.
+To configure the module to calculate SHA-1 or both values,
+then pass either "MD5" or "SHA1" in the pipeline config file.
+If you want to specify that both be calculated, then specify
+both strings in any order and with spaces or commas in between. 
+
+
+RESULTS
+
+The hash values are stored in the central database. 
+
diff --git a/framework/modules/c_HashCalcModule/cpl1.0.txt b/framework/modules/c_HashCalcModule/cpl1.0.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c9990a7ea45dbb64f81f7bface6d0f765d96c086
--- /dev/null
+++ b/framework/modules/c_HashCalcModule/cpl1.0.txt
@@ -0,0 +1,213 @@
+Common Public License Version 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC
+LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
+CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+    a) in the case of the initial Contributor, the initial code and
+documentation distributed under this Agreement, and
+
+    b) in the case of each subsequent Contributor:
+
+    i) changes to the Program, and
+
+    ii) additions to the Program;
+
+    where such changes and/or additions to the Program originate from and are
+distributed by that particular Contributor. A Contribution 'originates' from a
+Contributor if it was added to the Program by such Contributor itself or anyone
+acting on such Contributor's behalf. Contributions do not include additions to
+the Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii) are not
+derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are
+necessarily infringed by the use or sale of its Contribution alone or when
+combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement,
+including all Contributors.
+
+2. GRANT OF RIGHTS
+
+    a) Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide, royalty-free copyright license to
+reproduce, prepare derivative works of, publicly display, publicly perform,
+distribute and sublicense the Contribution of such Contributor, if any, and such
+derivative works, in source code and object code form.
+
+    b) Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed
+Patents to make, use, sell, offer to sell, import and otherwise transfer the
+Contribution of such Contributor, if any, in source code and object code form.
+This patent license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor, such
+addition of the Contribution causes such combination to be covered by the
+Licensed Patents. The patent license shall not apply to any other combinations
+which include the Contribution. No hardware per se is licensed hereunder.
+
+    c) Recipient understands that although each Contributor grants the licenses
+to its Contributions set forth herein, no assurances are provided by any
+Contributor that the Program does not infringe the patent or other intellectual
+property rights of any other entity. Each Contributor disclaims any liability to
+Recipient for claims brought by any other entity based on infringement of
+intellectual property rights or otherwise. As a condition to exercising the
+rights and licenses granted hereunder, each Recipient hereby assumes sole
+responsibility to secure any other intellectual property rights needed, if any.
+For example, if a third party patent license is required to allow Recipient to
+distribute the Program, it is Recipient's responsibility to acquire that license
+before distributing the Program.
+
+    d) Each Contributor represents that to its knowledge it has sufficient
+copyright rights in its Contribution, if any, to grant the copyright license set
+forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its
+own license agreement, provided that:
+
+    a) it complies with the terms and conditions of this Agreement; and
+
+    b) its license agreement:
+
+    i) effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title and
+non-infringement, and implied warranties or conditions of merchantability and
+fitness for a particular purpose;
+
+    ii) effectively excludes on behalf of all Contributors all liability for
+damages, including direct, indirect, special, incidental and consequential
+damages, such as lost profits;
+
+    iii) states that any provisions which differ from this Agreement are offered
+by that Contributor alone and not by any other party; and
+
+    iv) states that source code for the Program is available from such
+Contributor, and informs licensees how to obtain it in a reasonable manner on or
+through a medium customarily used for software exchange. 
+
+When the Program is made available in source code form:
+
+    a) it must be made available under this Agreement; and
+
+    b) a copy of this Agreement must be included with each copy of the Program. 
+
+Contributors may not remove or alter any copyright notices contained within the
+Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if
+any, in a manner that reasonably allows subsequent Recipients to identify the
+originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with
+respect to end users, business partners and the like. While this license is
+intended to facilitate the commercial use of the Program, the Contributor who
+includes the Program in a commercial product offering should do so in a manner
+which does not create potential liability for other Contributors. Therefore, if
+a Contributor includes the Program in a commercial product offering, such
+Contributor ("Commercial Contributor") hereby agrees to defend and indemnify
+every other Contributor ("Indemnified Contributor") against any losses, damages
+and costs (collectively "Losses") arising from claims, lawsuits and other legal
+actions brought by a third party against the Indemnified Contributor to the
+extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor to
+control, and cooperate with the Commercial Contributor in, the defense and any
+related settlement negotiations. The Indemnified Contributor may participate in
+any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product
+offering, Product X. That Contributor is then a Commercial Contributor. If that
+Commercial Contributor then makes performance claims, or offers warranties
+related to Product X, those performance claims and warranties are such
+Commercial Contributor's responsibility alone. Under this section, the
+Commercial Contributor would have to defend claims against the other
+Contributors related to those performance claims and warranties, and if a court
+requires any other Contributor to pay any damages as a result, the Commercial
+Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
+IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each
+Recipient is solely responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its exercise of
+rights under this Agreement, including but not limited to the risks and costs of
+program errors, compliance with applicable laws, damage to or loss of data,
+programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
+CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
+PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
+GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable
+law, it shall not affect the validity or enforceability of the remainder of the
+terms of this Agreement, and without further action by the parties hereto, such
+provision shall be reformed to the minimum extent necessary to make such
+provision valid and enforceable.
+
+If Recipient institutes patent litigation against a Contributor with respect to
+a patent applicable to software (including a cross-claim or counterclaim in a
+lawsuit), then any patent licenses granted by that Contributor to such Recipient
+under this Agreement shall terminate as of the date such litigation is filed. In
+addition, if Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the Program
+itself (excluding combinations of the Program with other software or hardware)
+infringes such Recipient's patent(s), then such Recipient's rights granted under
+Section 2(b) shall terminate as of the date such litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to
+comply with any of the material terms or conditions of this Agreement and does
+not cure such failure in a reasonable period of time after becoming aware of
+such noncompliance. If all Recipient's rights under this Agreement terminate,
+Recipient agrees to cease use and distribution of the Program as soon as
+reasonably practicable. However, Recipient's obligations under this Agreement
+and any licenses granted by Recipient relating to the Program shall continue and
+survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in
+order to avoid inconsistency the Agreement is copyrighted and may only be
+modified in the following manner. The Agreement Steward reserves the right to
+publish new versions (including revisions) of this Agreement from time to time.
+No one other than the Agreement Steward has the right to modify this Agreement.
+IBM is the initial Agreement Steward. IBM may assign the responsibility to serve
+as the Agreement Steward to a suitable separate entity. Each new version of the
+Agreement will be given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the Agreement
+under which it was received. In addition, after a new version of the Agreement
+is published, Contributor may elect to distribute the Program (including its
+Contributions) under the new version. Except as expressly stated in Sections
+2(a) and 2(b) above, Recipient receives no rights or licenses to the
+intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the
+intellectual property laws of the United States of America. No party to this
+Agreement will bring a legal action under this Agreement more than one year
+after the cause of action arose. Each party waives its rights to a jury trial in
+any resulting litigation.
diff --git a/framework/modules/c_HashCalcModule/win32/HashCalcModule.sln b/framework/modules/c_HashCalcModule/win32/HashCalcModule.sln
new file mode 100644
index 0000000000000000000000000000000000000000..31e6727eecc62b8789b2dc37f4f3cbb7d3252b35
--- /dev/null
+++ b/framework/modules/c_HashCalcModule/win32/HashCalcModule.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual C++ Express 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HashCalcModule", "HashCalcModule.vcxproj", "{46CD18AC-3A1C-405D-B39F-F86BA0FD1820}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{46CD18AC-3A1C-405D-B39F-F86BA0FD1820}.Debug|Win32.ActiveCfg = Debug|Win32
+		{46CD18AC-3A1C-405D-B39F-F86BA0FD1820}.Debug|Win32.Build.0 = Debug|Win32
+		{46CD18AC-3A1C-405D-B39F-F86BA0FD1820}.Release|Win32.ActiveCfg = Release|Win32
+		{46CD18AC-3A1C-405D-B39F-F86BA0FD1820}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/framework/modules/c_HashCalcModule/win32/HashCalcModule.vcxproj b/framework/modules/c_HashCalcModule/win32/HashCalcModule.vcxproj
new file mode 100755
index 0000000000000000000000000000000000000000..1d93dffa097e10182c145939f0dcf9507a7e586b
--- /dev/null
+++ b/framework/modules/c_HashCalcModule/win32/HashCalcModule.vcxproj
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{46CD18AC-3A1C-405D-B39F-F86BA0FD1820}</ProjectGuid>
+    <RootNamespace>EntropyModule</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">tsk$(ProjectName)</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">tsk$(ProjectName)</TargetName>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <MinimalRebuild>true</MinimalRebuild>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <AdditionalIncludeDirectories>$(TSK_HOME);$(TSK_HOME)\framework;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>libtskframework.lib;libtsk.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(TSK_HOME)\framework\msvcpp\framework\$(Configuration);$(TSK_HOME)\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+    <PostBuildEvent>
+      <Command>move /Y "$(SolutionDir)$(Configuration)\tsk$(ProjectName).dll" "$(ProjectDir)..\..\..\runtime"</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <AdditionalIncludeDirectories>$(TSK_HOME);$(TSK_HOME)\framework;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>libtskframework.lib;libtsk.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(TSK_HOME)\framework\msvcpp\framework\$(Configuration);$(TSK_HOME)\win32\$(Configuration)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+    <PostBuildEvent>
+      <Command>move /Y "$(SolutionDir)$(Configuration)\tsk$(ProjectName).dll" "$(ProjectDir)..\..\..\runtime"</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\HashCalcModule.cpp" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/framework/modules/c_InterestingFilesModule/InterestingFilesModule.cpp b/framework/modules/c_InterestingFilesModule/InterestingFilesModule.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..b6ea72920e965290bece4fef1ff56d2c01846c27
--- /dev/null
+++ b/framework/modules/c_InterestingFilesModule/InterestingFilesModule.cpp
@@ -0,0 +1,639 @@
+/*
+ * The Sleuth Kit
+ *
+ * Contact: Brian Carrier [carrier <at> sleuthkit [dot] org]
+ * Copyright (c) 2010-2012 Basis Technology Corporation. All Rights
+ * reserved.
+ *
+ * This software is distributed under the Common Public License 1.0
+ */
+
+/** \file InterestingFilesModule.cpp
+ * Contains the implementation of a post-processing/reporting module that
+ * looks for files matching interesting file set criteria specified in a 
+ * module configuration file. The module posts its findings to the blackboard. 
+ */
+
+// TSK Framework includes
+#include "tsk/framework/utilities/TskModuleDev.h"
+
+// Poco includes
+#include "Poco/String.h"
+#include "Poco/AutoPtr.h"
+#include "Poco/Path.h"
+#include "Poco/File.h"
+#include "Poco/DOM/DOMParser.h"
+#include "Poco/DOM/Document.h"
+#include "Poco/DOM/NodeList.h"
+#include "Poco/DOM/NamedNodeMap.h"
+#include "Poco/SAX/InputSource.h"
+#include "Poco/SAX/SAXException.h"
+
+// System includes
+#include <string>
+#include <vector>
+#include <set>
+#include <sstream>
+#include <fstream>
+
+namespace
+{
+    const char *MODULE_NAME = "tskInterestingFilesModule";
+    const char *MODULE_DESCRIPTION = "Looks for files matching criteria specified in a module configuration file";
+    const char *MODULE_VERSION = "1.0.0";
+    const std::string DEFAULT_CONFIG_FILE_NAME = "interesting_files.xml";
+    const std::string INTERESTING_FILE_SET_ELEMENT_TAG = "INTERESTING_FILE_SET"; 
+    const std::string NAME_ATTRIBUTE = "name";
+    const std::string DESCRIPTION_ATTRIBUTE_TAG = "description";
+    const std::string NAME_ELEMENT_TAG = "NAME";
+    const std::string EXTENSION_ELEMENT_TAG = "EXTENSION";
+    const std::string PATH_FILTER_ATTRIBUTE = "pathFilter";
+    const std::string TYPE_FILTER_ATTRIBUTE = "typeFilter";
+    const std::string FILE_TYPE_FILTER_VALUE = "file";
+    const std::string DIR_TYPE_FILTER_VALUE = "dir";
+
+    std::string configFilePath;
+
+    /** 
+     * An interesting files set is defined by a set name, a set description, 
+     * and one or more SQL WHERE clauses that specify what files belong to the
+     * set.
+     */
+    struct InterestingFilesSet
+    {
+        InterestingFilesSet() : name(""), description("") {}
+        std::string name;
+        std::string description;
+        vector<std::string> conditions;
+    };
+
+    /**
+     * Interesting file set definitions are read from a configuration file in 
+     * the initialize() module API and the file queries are executed in the 
+     * report() module API. The following vector stores the search objects 
+     * between calls to intitialize() and report(). 
+     */
+    std::vector<InterestingFilesSet> fileSets;
+
+    /** 
+     * Looks for glob wildcards in a string.
+     *
+     * @param stringToCheck The string to be checked.
+     * @return True if any glob wildcards where found.
+     */
+    bool hasGlobWildcards(const std::string &stringToCheck)
+    {
+        return stringToCheck.find("*") != std::string::npos;
+    }
+
+    std::string EscapeWildcard(const std::string &s, char escChar) 
+    {
+        std::string newS;
+        for (size_t i = 0; i < s.length(); i++) {
+            char c = s[i];
+            if (c == '_' || c == '%' || c == escChar) {
+                newS += escChar;
+            }
+            newS += c;
+        }
+        return newS;
+    }
+
+    /** 
+     * Converts glob wildcards in a string to SQL wildcards.
+     *
+     * @param stringToChange The string to be changed.
+     */
+    void convertGlobWildcardsToSQLWildcards(std::string &stringToChange)
+    {
+        // Escape all SQL wildcards chars and escape chars that happen to be in the input string.
+        stringToChange = EscapeWildcard(stringToChange, '#');
+
+        // Convert the glob wildcard chars to SQL wildcard chars.
+        Poco::replaceInPlace(stringToChange, "*", "%");
+    }
+
+    /** 
+     * Adds optional file type (file, directory) and path substring filters to 
+     * an SQL WHERE clause for a file search condition.
+     *
+     * @param conditionDefinition A file name or extension condition XML 
+     * element.
+     * @param conditionBuilder A string stream to which to append the filters.
+     */
+    void addPathAndTypeFilterOptions(const Poco::XML::Node *conditionDefinition, std::stringstream &conditionBuilder)
+    {
+        const std::string MSG_PREFIX = "InterestingFilesModule::compileExtensionSearchCondition : ";
+
+        if (conditionDefinition->hasAttributes())
+        {
+            // Look for pathFilter and typeFilter attributes.
+            Poco::AutoPtr<Poco::XML::NamedNodeMap> attributes = conditionDefinition->attributes(); 
+            for (unsigned long i = 0; i < attributes->length(); ++i)
+            {
+                Poco::XML::Node *attribute = attributes->item(i);
+                const std::string& attributeName = Poco::XML::fromXMLString(attribute->nodeName());
+                std::string attributeValue(Poco::XML::fromXMLString(attribute->nodeValue()));
+                if (attributeName == PATH_FILTER_ATTRIBUTE)
+                {        
+                    if (!attributeValue.empty())
+                    {
+                        // File must include a specified substring somewhere in its path.
+                        convertGlobWildcardsToSQLWildcards(attributeValue);
+                        conditionBuilder << " AND UPPER(full_path) LIKE UPPER('%" + attributeValue + "%') ESCAPE '#'";
+                    }
+                    else
+                    {
+                        std::ostringstream msg;
+                        msg << MSG_PREFIX << Poco::XML::fromXMLString(conditionDefinition->nodeName()) << " element has empty " << PATH_FILTER_ATTRIBUTE << " attribute"; 
+                        throw TskException(msg.str());
+                    }
+                }
+                else if (attributeName == TYPE_FILTER_ATTRIBUTE)
+                {
+                    if (!attributeValue.empty())
+                    {
+                        if (attributeValue == FILE_TYPE_FILTER_VALUE)
+                        {
+                            // File must be a regular file.
+                            conditionBuilder << " AND meta_type = " << TSK_FS_META_TYPE_REG;
+                        }
+                        else if (attributeValue == DIR_TYPE_FILTER_VALUE)
+                        {
+                            // File must be a directory.
+                            conditionBuilder << " AND meta_type = " << TSK_FS_META_TYPE_DIR;
+                        }
+                        else
+                        {
+                            std::ostringstream msg;
+                            msg << MSG_PREFIX << Poco::XML::fromXMLString(conditionDefinition->nodeName()) << " element has unrecognized " << TYPE_FILTER_ATTRIBUTE << " attribute value: " << attributeValue; 
+                            throw TskException(msg.str());
+                        }
+                    }
+                    else
+                    {
+                        std::ostringstream msg;
+                        msg << MSG_PREFIX << Poco::XML::fromXMLString(conditionDefinition->nodeName()) << " element has empty " << TYPE_FILTER_ATTRIBUTE << " attribute"; 
+                        throw TskException(msg.str());
+                    }
+                }
+                else
+                {
+                    std::stringstream msg;
+                    msg << MSG_PREFIX << Poco::XML::fromXMLString(conditionDefinition->nodeName()) << " element has unrecognized " << attributeName << " attribute"; 
+                    throw TskException(msg.str());
+                }
+            }
+        }
+    }
+
+    /**
+      * Creates an SQL WHERE clause for a file query from a file name
+      * condition.
+      *
+      * @param conditionDefinition A file name condition XML element.
+      * @param conditions The WHERE clause is added to this collection.
+      */
+    void compileFileNameSearchCondition(const Poco::XML::Node *conditionDefinition, std::vector<std::string> &conditions)
+    {
+        const std::string MSG_PREFIX = "InterestingFilesModule::compileFileNameSearchCondition : ";
+
+        std::string name(Poco::XML::fromXMLString(conditionDefinition->innerText()));
+        if (name.empty())
+        {
+            std::ostringstream msg;
+            msg << MSG_PREFIX << "empty " << NAME_ELEMENT_TAG << " element"; 
+            throw TskException(msg.str());
+        }
+
+        std::stringstream conditionBuilder;
+        if (hasGlobWildcards(name))
+        {
+            convertGlobWildcardsToSQLWildcards(name);
+            conditionBuilder << "WHERE UPPER(name) LIKE UPPER(" << TskServices::Instance().getImgDB().quote(name) << ") ESCAPE '#' ";
+        }
+        else
+        {
+            conditionBuilder << "WHERE UPPER(name) = UPPER(" +  TskServices::Instance().getImgDB().quote(name) + ")";
+        }
+
+        addPathAndTypeFilterOptions(conditionDefinition, conditionBuilder);
+        conditionBuilder << " ORDER BY file_id";
+        conditions.push_back(conditionBuilder.str());
+    }
+
+    /**
+      * Creates an SQL WHERE clause for a file query from a file extension
+      * condition.
+      *
+      * @param conditionDefinition A file extension condition XML element.
+      * @param conditions The WHERE clause is added to this collection.
+      */
+    void compileExtensionSearchCondition(const Poco::XML::Node *conditionDefinition, std::vector<std::string> &conditions)
+    {
+        const std::string MSG_PREFIX = "InterestingFilesModule::compileExtensionSearchCondition : ";
+
+        std::string extension(Poco::XML::fromXMLString(conditionDefinition->innerText()));
+        if (extension.empty())
+        {
+            std::ostringstream msg;
+            msg << MSG_PREFIX << "empty " << EXTENSION_ELEMENT_TAG << " element"; 
+            throw TskException(msg.str());
+        }
+
+        // Supply the leading dot, if omitted.
+        if (extension[0] != '.')
+        {
+            extension.insert(0, ".");
+        }
+
+        convertGlobWildcardsToSQLWildcards(extension);
+        
+        // Extension searches must always have an initial SQL zero to many chars wildcard.
+        // @@@ TODO: In combination with glob wildcards this may create some unxepected matches.
+        // For example, ".htm*" will become "%.htm%" which will match "file.htm.txt" and the like.
+        std::stringstream conditionBuilder;
+        conditionBuilder << "WHERE UPPER(name) LIKE UPPER('%" << extension << "') ESCAPE '#' ";
+
+        addPathAndTypeFilterOptions(conditionDefinition, conditionBuilder);            
+        conditionBuilder << " ORDER BY file_id";
+        conditions.push_back(conditionBuilder.str());
+    }
+
+    /** 
+     * Creates an InterestingFilesSet object from an an interesting files 
+     * set definition. 
+     *
+     * @param fileSetDefinition An interesting file set definition XML element.
+     */
+    void compileInterestingFilesSet(const Poco::XML::Node *fileSetDefinition)
+    {
+        // Create a counter for use in generating default interesting file set names.
+        static unsigned long defaultSetNumber = 1;
+
+        // Keep track of unique file set names.
+        static std::set<std::string> setNames;
+
+        // Determine the name and description of the file set. Every file set must be named, but the description is optional.
+        // A default name is provided if omitted, so the parsing that follows logs warnings if unexpected attributes or values are parsed.
+        const std::string MSG_PREFIX = "InterestingFilesModule::compileInterestingFilesSet : ";
+        InterestingFilesSet fileSet;
+        if (fileSetDefinition->hasAttributes())
+        {
+            Poco::AutoPtr<Poco::XML::NamedNodeMap> attributes = fileSetDefinition->attributes(); 
+            for (unsigned long i = 0; i < attributes->length(); ++i)
+            {
+                Poco::XML::Node *attribute = attributes->item(i);
+                const std::string &attributeName = Poco::XML::fromXMLString(attribute->nodeName());                
+                const std::string &attributeValue = Poco::XML::fromXMLString(attribute->nodeValue());
+                if (!attributeValue.empty())
+                {
+                    if (attributeName == NAME_ATTRIBUTE)
+                    {        
+                        if (!attributeValue.empty())
+                        {
+                            fileSet.name = attributeValue;
+                        }
+                        else
+                        {
+                            std::ostringstream msg;
+                            msg << MSG_PREFIX << "ignored " << INTERESTING_FILE_SET_ELEMENT_TAG << "'" << NAME_ATTRIBUTE << "' attribute without a value"; 
+                            LOGWARN(msg.str());
+                        }
+                    }
+                    else if (attributeName == DESCRIPTION_ATTRIBUTE_TAG)
+                    {
+                        if (!attributeValue.empty())
+                        {
+                            fileSet.description = attributeValue;
+                        }
+                        else
+                        {
+                            std::ostringstream msg;
+                            msg << MSG_PREFIX << "ignored " << INTERESTING_FILE_SET_ELEMENT_TAG << "'" << DESCRIPTION_ATTRIBUTE_TAG << "' attribute without a value"; 
+                            LOGWARN(msg.str());
+                        }
+                    }
+                    else
+                    {
+                        std::ostringstream msg;
+                        msg << MSG_PREFIX << "ignored unrecognized " << INTERESTING_FILE_SET_ELEMENT_TAG << "'" << attributeName << "' attribute"; 
+                        LOGWARN(msg.str());
+                    }
+                }
+            }
+        }
+
+        if (fileSet.name.empty())
+        {
+            // Supply a default name.
+            std::stringstream nameBuilder;
+            nameBuilder << "Unnamed_" << defaultSetNumber++;
+            fileSet.name = nameBuilder.str();
+        }
+
+        // The file set name cannot contain a path character since it may be used later
+        // as a folder name by a save interesting files module.
+        if (fileSet.name.find_first_of("<>:\"/\\|?*") != std::string::npos)
+        {
+            std::ostringstream msg;
+            msg << MSG_PREFIX << INTERESTING_FILE_SET_ELEMENT_TAG << " element " << NAME_ATTRIBUTE << " attribute value '" << fileSet.name << "' contains file path character";
+            throw TskException(msg.str());
+        }
+
+        // The file set name cannot be shorthand for the a current directory or parent directory since it may be used later
+        // as a folder name by a save interesting files module.
+        if (fileSet.name == (".") || fileSet.name == (".."))
+        {
+            std::ostringstream msg;
+            msg << MSG_PREFIX << INTERESTING_FILE_SET_ELEMENT_TAG << " element " << NAME_ATTRIBUTE << " attribute value '" << fileSet.name << "' is directory alias";
+            throw TskException(msg.str());
+        }
+
+        // Every file set must be uniquely named since it may be used later as a folder name by a save interesting files module.
+        if (setNames.count(fileSet.name) != 0)
+        {
+            std::ostringstream msg;
+            msg << MSG_PREFIX << "duplicate " << INTERESTING_FILE_SET_ELEMENT_TAG << " element " << NAME_ATTRIBUTE << " attribute value '" << fileSet.name << "'";
+            throw TskException(msg.str());
+        }
+
+        // Get the search conditions.
+        Poco::AutoPtr<Poco::XML::NodeList>conditionDefinitions = fileSetDefinition->childNodes();
+        for (unsigned long i = 0; i < conditionDefinitions->length(); ++i)
+        {
+            Poco::XML::Node *conditionDefinition = conditionDefinitions->item(i);
+            if (conditionDefinition->nodeType() == Poco::XML::Node::ELEMENT_NODE) 
+            {
+                const std::string &conditionType = Poco::XML::fromXMLString(conditionDefinition->nodeName());
+                if (conditionType == NAME_ELEMENT_TAG)
+                {
+                    compileFileNameSearchCondition(conditionDefinition, fileSet.conditions);
+                }
+                else if (conditionType == EXTENSION_ELEMENT_TAG)
+                {
+                    compileExtensionSearchCondition(conditionDefinition, fileSet.conditions);
+                }
+                else
+                {
+                    std::ostringstream msg;
+                    msg << MSG_PREFIX << "unrecognized " << INTERESTING_FILE_SET_ELEMENT_TAG << " child element '" << conditionType << "'"; 
+                    throw TskException(msg.str());
+                }
+            }
+
+        }
+
+        if (!fileSet.conditions.empty())
+        {
+            fileSets.push_back(fileSet);
+        }
+        else
+        {
+            std::ostringstream msg;
+            msg << MSG_PREFIX << "empty " << INTERESTING_FILE_SET_ELEMENT_TAG << " element '" << fileSet.name << "'"; 
+            //throw TskException(msg.str());
+        }
+    }
+}
+
+extern "C" 
+{
+    /**
+     * Module identification function. 
+     *
+     * @return The name of the module.
+     */
+    TSK_MODULE_EXPORT const char *name()
+    {
+        return MODULE_NAME;
+    }
+
+    /**
+     * Module identification function. 
+     *
+     * @return A description of the module.
+     */
+    TSK_MODULE_EXPORT const char *description()
+    {
+        return MODULE_DESCRIPTION;
+    }
+
+    /**
+     * Module identification function. 
+     *
+     * @return The version of the module.
+     */
+    TSK_MODULE_EXPORT const char *version()
+    {
+        return MODULE_VERSION;
+    }
+
+    /**
+     * Module initialization function. The initialization arguments string should
+     * provide the path of a module configuration file that defines what files 
+     * are interesting. If the empty string is passed to this function, the module
+     * assumes a default config file is present in the output directory.
+     *
+     * @param args Path of the configuration file that defines what files are 
+     * interesting, may be set to the empty string.
+     * @return TskModule::OK on success, TskModule::FAIL otherwise. 
+     */
+    TSK_MODULE_EXPORT TskModule::Status initialize(const char* arguments)
+    {
+        TskModule::Status status = TskModule::OK;
+
+        const std::string MSG_PREFIX = "InterestingFilesModule::initialize : ";
+        try
+        {
+            // Make sure the file sets are cleared in case initialize() is called more than once.
+            fileSets.clear();
+
+            configFilePath.assign(arguments);
+            if (configFilePath.empty())
+            {
+                // Use the default config file path.
+                Poco::Path configurationFilePath(Poco::Path::forDirectory(GetSystemProperty(TskSystemProperties::MODULE_CONFIG_DIR)));
+                configurationFilePath.pushDirectory(MODULE_NAME);
+                configurationFilePath.setFileName(DEFAULT_CONFIG_FILE_NAME);
+                configFilePath = configurationFilePath.toString();
+            }
+
+            // Compile the contents of the config file into interesting file set definitions.
+            Poco::File configFile = Poco::File(configFilePath);
+            if (configFile.exists())
+            {
+                std::ifstream configStream(configFile.path().c_str());
+                if (configStream)
+                {
+                    Poco::XML::InputSource inputSource(configStream);
+                    Poco::AutoPtr<Poco::XML::Document> configDoc = Poco::XML::DOMParser().parse(&inputSource);
+                    Poco::AutoPtr<Poco::XML::NodeList> fileSetDefinitions = configDoc->getElementsByTagName(INTERESTING_FILE_SET_ELEMENT_TAG);
+                    for (unsigned long i = 0; i < fileSetDefinitions->length(); ++i) 
+                    {
+                        compileInterestingFilesSet(fileSetDefinitions->item(i));
+                    }
+                }
+                else
+                {
+                    std::ostringstream msg;
+                    msg << MSG_PREFIX << "failed to open config file '" << configFilePath << "'";
+                    throw TskException(msg.str());
+                }
+            }
+            else
+            {
+                std::ostringstream msg;
+                msg << MSG_PREFIX << "config file'" << configFilePath << "' does not exist";
+                LOGERROR(msg.str());
+            }
+
+            // Log the configuration.
+            std::ostringstream msg;
+            msg << MSG_PREFIX << "configured with " << fileSets.size() << " interesting file set definitions from '" << configFilePath << "'";
+            LOGINFO(msg.str());
+        }
+        catch (TskException &ex)
+        {
+            status = TskModule::FAIL;
+            configFilePath.clear();
+            std::ostringstream msg;
+            msg << MSG_PREFIX << "TskException: " << ex.message();
+            LOGERROR(msg.str());
+        }
+        catch (Poco::Exception &ex)
+        {
+            status = TskModule::FAIL;
+            configFilePath.clear();
+            std::ostringstream msg;
+            msg << MSG_PREFIX << "Poco::Exception: " << ex.displayText();
+            LOGERROR(msg.str());
+        }
+        catch (std::exception &ex)
+        {
+            status = TskModule::FAIL;
+            configFilePath.clear();
+            std::ostringstream msg;
+            msg << MSG_PREFIX << "std::exception: " << ex.what();
+            LOGERROR(msg.str());
+        }
+        catch (...)
+        {
+            status = TskModule::FAIL;
+            configFilePath.clear();
+            LOGERROR(MSG_PREFIX + "unrecognized exception");
+        }
+
+        return status;
+    }
+
+    /**
+     * Module execution function. Looks for files matching the criteria specified in the 
+     * configuration file and posts its findings to the blackboard.
+     *
+     * @returns Returns TskModule::FAIL if an error occurs, TskModule::OK otherwise.
+     */
+    TSK_MODULE_EXPORT TskModule::Status report()
+    {
+        TskModule::Status status = TskModule::OK;
+
+        const std::string MSG_PREFIX = "InterestingFilesModule::report : ";
+        try
+        {
+            if (configFilePath.empty())
+            {
+                // Initialization failed. The reason why was already logged in initialize().
+                return TskModule::FAIL;
+            }
+
+            for (std::vector<InterestingFilesSet>::iterator fileSet = fileSets.begin(); fileSet != fileSets.end(); ++fileSet)
+            {
+                for (std::vector<string>::iterator condition = (*fileSet).conditions.begin(); condition != (*fileSet).conditions.end(); ++condition)
+                {
+                    vector<uint64_t> fileIds = TskServices::Instance().getImgDB().getFileIds(*condition);
+                    for (size_t i = 0; i < fileIds.size(); i++)
+                    {
+                        TskBlackboardArtifact artifact = TskServices::Instance().getBlackboard().createArtifact(fileIds[i], TSK_INTERESTING_FILE_HIT);
+                        TskBlackboardAttribute attribute(TSK_SET_NAME, "InterestingFiles", (*fileSet).description, (*fileSet).name);
+                        artifact.addAttribute(attribute);
+                    }
+                }
+            }
+        }
+        catch (TskException &ex)
+        {
+            status = TskModule::FAIL;
+            std::ostringstream msg;
+            msg << MSG_PREFIX << "TskException: " << ex.message();
+            LOGERROR(msg.str());
+        }
+        catch (Poco::Exception &ex)
+        {
+            status = TskModule::FAIL;
+            std::ostringstream msg;
+            msg << MSG_PREFIX << "Poco::Exception: " << ex.displayText();
+            LOGERROR(msg.str());
+        }
+        catch (std::exception &ex)
+        {
+            status = TskModule::FAIL;
+            std::ostringstream msg;
+            msg << MSG_PREFIX << "std::exception: " << ex.what();
+            LOGERROR(msg.str());
+        }
+        catch (...)
+        {
+            status = TskModule::FAIL;
+            LOGERROR(MSG_PREFIX + "unrecognized exception");
+        }
+
+        return status;
+    }
+
+    /**
+     * Module cleanup function. Disposes of file search data created during initialization.
+     *
+     * @returns TskModule::OK
+     */
+    TskModule::Status TSK_MODULE_EXPORT finalize()
+    {
+        TskModule::Status status = TskModule::OK;
+
+        const std::string MSG_PREFIX = "InterestingFilesModule::finalize : ";
+        try
+        {
+            fileSets.clear();
+        }
+        catch (TskException &ex)
+        {
+            status = TskModule::FAIL;
+            configFilePath.clear();
+            std::ostringstream msg;
+            msg << MSG_PREFIX << "TskException: " << ex.message();
+            LOGERROR(msg.str());
+        }
+        catch (Poco::Exception &ex)
+        {
+            status = TskModule::FAIL;
+            configFilePath.clear();
+            std::ostringstream msg;
+            msg << MSG_PREFIX << "Poco::Exception: " << ex.displayText();
+            LOGERROR(msg.str());
+        }
+        catch (std::exception &ex)
+        {
+            status = TskModule::FAIL;
+            configFilePath.clear();
+            std::ostringstream msg;
+            msg << MSG_PREFIX << "std::exception: " << ex.what();
+            LOGERROR(msg.str());
+        }
+        catch (...)
+        {
+            status = TskModule::FAIL;
+            LOGERROR(MSG_PREFIX + "unrecognized exception");
+        }
+
+        return status;
+    }
+}
diff --git a/framework/modules/c_InterestingFilesModule/Makefile.am b/framework/modules/c_InterestingFilesModule/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..75681bad9fe231f5274f247e67ebf156eb528585
--- /dev/null
+++ b/framework/modules/c_InterestingFilesModule/Makefile.am
@@ -0,0 +1,22 @@
+AM_CXXFLAGS = $(AM_CXXFLAGS_MOD)
+
+lib_LTLIBRARIES = libtskInterestingFilesModule.la
+libtskInterestingFilesModule_la_SOURCES = InterestingFilesModule.cpp
+libtskInterestingFilesModule_la_LIBADD = $(AM_LIBADD_MOD)
+
+nobase_dist_data_DATA = tsk/InterestingFilesModule/interesting_files.xml
+
+.PHONY: maybe_copy_configs setup_data
+bin_PROGRAMS = maybe_copy_configs setup_data
+
+setup_data_SOURCES = 
+setup_data:
+	-mkdir -p tsk/InterestingFilesModule
+	(cd tsk/InterestingFilesModule; ln -sf ../../interesting_files.xml .)
+
+MODULE_CONFIG_DIR = $(RUNTIME_MODULES_CONFIG_DIR)/tskInterestingFilesModule
+
+maybe_copy_configs_SOURCES =
+maybe_copy_configs:
+		mkdir -p $(MODULE_CONFIG_DIR); \
+		(cd $(MODULE_CONFIG_DIR); ln -sf $(MODULES_ROOT_DIR)/c_InterestingFilesModule/tsk/InterestingFilesModule/interesting_files.xml .); 
diff --git a/framework/modules/c_InterestingFilesModule/NEWS.txt b/framework/modules/c_InterestingFilesModule/NEWS.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6887b666a3f96398044c509d50e41c7eb30c8194
--- /dev/null
+++ b/framework/modules/c_InterestingFilesModule/NEWS.txt
@@ -0,0 +1,9 @@
+Numbers refer to github.net issue #s:
+    https://github.com/sleuthkit/c_InterestingFilesModule/issues
+
+---------------- VERSION 1.0.0 --------------
+New Features:
+- Initial public release.
+
+Bug Fixes:
+- N/A. 
diff --git a/framework/modules/c_InterestingFilesModule/README.txt b/framework/modules/c_InterestingFilesModule/README.txt
new file mode 100644
index 0000000000000000000000000000000000000000..548cea4cc586264dcf546f5e1021c81d149c21fd
--- /dev/null
+++ b/framework/modules/c_InterestingFilesModule/README.txt
@@ -0,0 +1,109 @@
+Interesting Files Module
+Sleuth Kit Framework C++ Module
+May 2012
+
+
+This module is for the C++ Sleuth Kit Framework.
+
+
+DESCRIPTION
+
+This module is a post-processing module that looks for files
+matching criteria specified in a module configuration file. 
+This module is useful for identifying all files of a given
+type (based on extension) or given name or contained in a 
+directory of a given name. 
+
+DEPLOYMENT REQUIREMENTS
+
+This module requires a configuration file (discussed below).
+The location of the configuration file can be passed as an
+argument to the module. 
+If the location is not passed as an argument the module will 
+look for a file named "interesting_files.xml" in a folder named 
+"InterestingFilesModule" located in the modules folder.
+
+USAGE
+
+Add this module to a post-processing/reporting pipeline.  See the TSK 
+Framework documents for information on adding the module 
+to the pipeline:
+
+    http://www.sleuthkit.org/sleuthkit/docs/framework-docs/
+
+The module takes the path to the configuration file as an argument. 
+The configuration file is an XML document that defines interesting
+file sets in terms of search criteria.  Here is a sample: 
+
+<?xml version="1.0" encoding="utf-8"?>
+<INTERESTING_FILES>
+    <INTERESTING_FILE_SET name="HTMLFilesType" description="Files with extension .htm*">
+        <EXTENSION typeFilter="file">.htm*</EXTENSION>
+    </INTERESTING_FILE_SET>
+    <INTERESTING_FILE_SET name="Password" description="Files with password in the name">
+        <NAME typeFilter="file">*password*</NAME>
+    </INTERESTING_FILE_SET>
+    <INTERESTING_FILE_SET name="HTMLFiles" description="Files named file.htm or file.html">
+        <NAME typeFilter="file">file.htm</NAME>
+        <NAME typeFilter="file">file.html</NAME>
+    </INTERESTING_FILE_SET>
+    <INTERESTING_FILE_SET name="TextFiles" description="Files with .txt extensions">
+        <EXTENSION typeFilter="file">.txt</EXTENSION>
+    </INTERESTING_FILE_SET>
+    <INTERESTING_FILE_SET name="JPEGFiles" description="JPEG files">
+        <EXTENSION typeFilter="file">.jpg</EXTENSION>
+        <EXTENSION typeFilter="file">.jpeg</EXTENSION>
+    </INTERESTING_FILE_SET>
+    <INTERESTING_FILE_SET name="SuspiciousFolders" description="Contents of suspicious folders">
+        <NAME typeFilter="dir">/DIR1/</NAME>
+        <NAME typeFilter="dir">/DIR2/</NAME>
+      </INTERESTING_FILE_SET>
+    <INTERESTING_FILE_SET name="SuspiciousDocs" description="Suspicious files">
+        <NAME typeFilter="file">readme.txt</NAME>
+        <NAME typeFilter="file" pathFilter="installer\installs">install.doc</NAME>
+        <EXTENSION>.bak</EXTENSION>
+    </INTERESTING_FILE_SET>
+</INTERESTING_FILES>
+
+Each 'INTERESTING_FILE_SET' element must be given a unique name using its
+'name' attribute.  If this attribute is omitted, the module generates a 
+default name (e.g., Unamed_1, Unamed_2, etc.). 
+
+The 'description' attribute of 'INTERESTING_FILE_SET' element is optional.  
+Its intended use is to describe why the search is important.  It could 
+let the end user know what next step to take if this search is successful.
+
+Each 'INTERESTING_FILE_SET' element may contain any number of 'NAME' and/or 
+'EXTENSION' elements.
+
+A 'NAME' element says search the file names for a file or directory with a 
+name that matches the element text.  The match must be an exact length, 
+case insensitive match.  For example, the string "bomb" will not match "abomb". 
+
+An 'EXTENSION' element says search the end of file names for the element text. 
+If the leading "." is omitted the module will add it. 
+
+Wildcard is supported in both 'NAME' and 'EXTENSION' elements. The asterisk
+character '*' is used to represent a match of zero or more characters.
+
+'NAME' and 'EXTENSION' elements may be qualified with optional 'typeFilter'
+attributes. Valid values for 'typeFilter' are 'file' (for regular files) and 
+'dir' (for directories).  If no 'typeFilter' is specified, directories and
+*any* type of file are valid matches.  For example, in the sample above, the
+search named "SuspiciousFiles" will find files and directories that end in
+".bak", including files and directories named ".bak". 
+
+'NAME' and 'EXTENSION' elements may be qualified with optional 'pathFilter'
+attributes. Matches with this filter must contain the specified string as
+a sub-string of the file or directory path.
+
+
+RESULTS
+
+The result of the lookup is written to the blackboard as an artifact. 
+You can use the SaveInterestingFiles module to save the identified 
+files to a local directory. 
+
+
+
+
diff --git a/framework/modules/c_InterestingFilesModule/cpl1.0.txt b/framework/modules/c_InterestingFilesModule/cpl1.0.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c9990a7ea45dbb64f81f7bface6d0f765d96c086
--- /dev/null
+++ b/framework/modules/c_InterestingFilesModule/cpl1.0.txt
@@ -0,0 +1,213 @@
+Common Public License Version 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC
+LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
+CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+    a) in the case of the initial Contributor, the initial code and
+documentation distributed under this Agreement, and
+
+    b) in the case of each subsequent Contributor:
+
+    i) changes to the Program, and
+
+    ii) additions to the Program;
+
+    where such changes and/or additions to the Program originate from and are
+distributed by that particular Contributor. A Contribution 'originates' from a
+Contributor if it was added to the Program by such Contributor itself or anyone
+acting on such Contributor's behalf. Contributions do not include additions to
+the Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii) are not
+derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are
+necessarily infringed by the use or sale of its Contribution alone or when
+combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement,
+including all Contributors.
+
+2. GRANT OF RIGHTS
+
+    a) Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide, royalty-free copyright license to
+reproduce, prepare derivative works of, publicly display, publicly perform,
+distribute and sublicense the Contribution of such Contributor, if any, and such
+derivative works, in source code and object code form.
+
+    b) Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed
+Patents to make, use, sell, offer to sell, import and otherwise transfer the
+Contribution of such Contributor, if any, in source code and object code form.
+This patent license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor, such
+addition of the Contribution causes such combination to be covered by the
+Licensed Patents. The patent license shall not apply to any other combinations
+which include the Contribution. No hardware per se is licensed hereunder.
+
+    c) Recipient understands that although each Contributor grants the licenses
+to its Contributions set forth herein, no assurances are provided by any
+Contributor that the Program does not infringe the patent or other intellectual
+property rights of any other entity. Each Contributor disclaims any liability to
+Recipient for claims brought by any other entity based on infringement of
+intellectual property rights or otherwise. As a condition to exercising the
+rights and licenses granted hereunder, each Recipient hereby assumes sole
+responsibility to secure any other intellectual property rights needed, if any.
+For example, if a third party patent license is required to allow Recipient to
+distribute the Program, it is Recipient's responsibility to acquire that license
+before distributing the Program.
+
+    d) Each Contributor represents that to its knowledge it has sufficient
+copyright rights in its Contribution, if any, to grant the copyright license set
+forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its
+own license agreement, provided that:
+
+    a) it complies with the terms and conditions of this Agreement; and
+
+    b) its license agreement:
+
+    i) effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title and
+non-infringement, and implied warranties or conditions of merchantability and
+fitness for a particular purpose;
+
+    ii) effectively excludes on behalf of all Contributors all liability for
+damages, including direct, indirect, special, incidental and consequential
+damages, such as lost profits;
+
+    iii) states that any provisions which differ from this Agreement are offered
+by that Contributor alone and not by any other party; and
+
+    iv) states that source code for the Program is available from such
+Contributor, and informs licensees how to obtain it in a reasonable manner on or
+through a medium customarily used for software exchange. 
+
+When the Program is made available in source code form:
+
+    a) it must be made available under this Agreement; and
+
+    b) a copy of this Agreement must be included with each copy of the Program. 
+
+Contributors may not remove or alter any copyright notices contained within the
+Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if
+any, in a manner that reasonably allows subsequent Recipients to identify the
+originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with
+respect to end users, business partners and the like. While this license is
+intended to facilitate the commercial use of the Program, the Contributor who
+includes the Program in a commercial product offering should do so in a manner
+which does not create potential liability for other Contributors. Therefore, if
+a Contributor includes the Program in a commercial product offering, such
+Contributor ("Commercial Contributor") hereby agrees to defend and indemnify
+every other Contributor ("Indemnified Contributor") against any losses, damages
+and costs (collectively "Losses") arising from claims, lawsuits and other legal
+actions brought by a third party against the Indemnified Contributor to the
+extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor to
+control, and cooperate with the Commercial Contributor in, the defense and any
+related settlement negotiations. The Indemnified Contributor may participate in
+any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product
+offering, Product X. That Contributor is then a Commercial Contributor. If that
+Commercial Contributor then makes performance claims, or offers warranties
+related to Product X, those performance claims and warranties are such
+Commercial Contributor's responsibility alone. Under this section, the
+Commercial Contributor would have to defend claims against the other
+Contributors related to those performance claims and warranties, and if a court
+requires any other Contributor to pay any damages as a result, the Commercial
+Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
+IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each
+Recipient is solely responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its exercise of
+rights under this Agreement, including but not limited to the risks and costs of
+program errors, compliance with applicable laws, damage to or loss of data,
+programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
+CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
+PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
+GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable
+law, it shall not affect the validity or enforceability of the remainder of the
+terms of this Agreement, and without further action by the parties hereto, such
+provision shall be reformed to the minimum extent necessary to make such
+provision valid and enforceable.
+
+If Recipient institutes patent litigation against a Contributor with respect to
+a patent applicable to software (including a cross-claim or counterclaim in a
+lawsuit), then any patent licenses granted by that Contributor to such Recipient
+under this Agreement shall terminate as of the date such litigation is filed. In
+addition, if Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the Program
+itself (excluding combinations of the Program with other software or hardware)
+infringes such Recipient's patent(s), then such Recipient's rights granted under
+Section 2(b) shall terminate as of the date such litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to
+comply with any of the material terms or conditions of this Agreement and does
+not cure such failure in a reasonable period of time after becoming aware of
+such noncompliance. If all Recipient's rights under this Agreement terminate,
+Recipient agrees to cease use and distribution of the Program as soon as
+reasonably practicable. However, Recipient's obligations under this Agreement
+and any licenses granted by Recipient relating to the Program shall continue and
+survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in
+order to avoid inconsistency the Agreement is copyrighted and may only be
+modified in the following manner. The Agreement Steward reserves the right to
+publish new versions (including revisions) of this Agreement from time to time.
+No one other than the Agreement Steward has the right to modify this Agreement.
+IBM is the initial Agreement Steward. IBM may assign the responsibility to serve
+as the Agreement Steward to a suitable separate entity. Each new version of the
+Agreement will be given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the Agreement
+under which it was received. In addition, after a new version of the Agreement
+is published, Contributor may elect to distribute the Program (including its
+Contributions) under the new version. Except as expressly stated in Sections
+2(a) and 2(b) above, Recipient receives no rights or licenses to the
+intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the
+intellectual property laws of the United States of America. No party to this
+Agreement will bring a legal action under this Agreement more than one year
+after the cause of action arose. Each party waives its rights to a jury trial in
+any resulting litigation.
diff --git a/framework/modules/c_InterestingFilesModule/interesting_files.xml b/framework/modules/c_InterestingFilesModule/interesting_files.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9f248e850082ea69966e35b09275c8c5ebb69a94
--- /dev/null
+++ b/framework/modules/c_InterestingFilesModule/interesting_files.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<INTERESTING_FILES>
+    <INTERESTING_FILE_SET name="HTMLFilesType" description="Files with extension .htm*">
+        <EXTENSION typeFilter="file">.htm*</EXTENSION>
+    </INTERESTING_FILE_SET>
+    <INTERESTING_FILE_SET name="Password" description="Files with password in the name">
+        <NAME typeFilter="file">*password*</NAME>
+    </INTERESTING_FILE_SET>
+    <INTERESTING_FILE_SET name="HTMLFiles" description="Files named file.htm or file.html">
+        <NAME typeFilter="file">file.htm</NAME>
+        <NAME typeFilter="file">file.html</NAME>
+    </INTERESTING_FILE_SET>
+    <INTERESTING_FILE_SET name="TextFiles" description="Files with .txt extensions">
+        <EXTENSION typeFilter="file">.txt</EXTENSION>
+    </INTERESTING_FILE_SET>
+    <INTERESTING_FILE_SET name="JPEGFiles" description="JPEG files">
+        <EXTENSION typeFilter="file">.jpg</EXTENSION>
+        <EXTENSION typeFilter="file">.jpeg</EXTENSION>
+    </INTERESTING_FILE_SET>
+    <INTERESTING_FILE_SET name="SuspiciousFolders" description="Contents of suspicious folders">
+        <NAME typeFilter="dir">/DIR1/</NAME>
+        <NAME typeFilter="dir">/DIR2/</NAME>
+      </INTERESTING_FILE_SET>
+    <INTERESTING_FILE_SET name="SuspiciousDocs" description="Suspicious files">
+        <NAME typeFilter="file">readme.txt</NAME>
+        <NAME typeFilter="file" pathFilter="installer\installs">install.doc</NAME>
+        <EXTENSION>.bak</EXTENSION>
+    </INTERESTING_FILE_SET>
+</INTERESTING_FILES>
diff --git a/framework/modules/c_InterestingFilesModule/win32/InterestingFilesModule.sln b/framework/modules/c_InterestingFilesModule/win32/InterestingFilesModule.sln
new file mode 100644
index 0000000000000000000000000000000000000000..bc8eb707b8348547ea6eb581c60a177236cb44c7
--- /dev/null
+++ b/framework/modules/c_InterestingFilesModule/win32/InterestingFilesModule.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual C++ Express 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "InterestingFilesModule", "InterestingFilesModule.vcxproj", "{8F956113-11D2-4288-985D-53CBF84648E0}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{8F956113-11D2-4288-985D-53CBF84648E0}.Debug|Win32.ActiveCfg = Debug|Win32
+		{8F956113-11D2-4288-985D-53CBF84648E0}.Debug|Win32.Build.0 = Debug|Win32
+		{8F956113-11D2-4288-985D-53CBF84648E0}.Release|Win32.ActiveCfg = Release|Win32
+		{8F956113-11D2-4288-985D-53CBF84648E0}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/framework/modules/c_InterestingFilesModule/win32/InterestingFilesModule.vcxproj b/framework/modules/c_InterestingFilesModule/win32/InterestingFilesModule.vcxproj
new file mode 100755
index 0000000000000000000000000000000000000000..f958ee94b227eed166566b75117d43642894f02d
--- /dev/null
+++ b/framework/modules/c_InterestingFilesModule/win32/InterestingFilesModule.vcxproj
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{8F956113-11D2-4288-985D-53CBF84648E0}</ProjectGuid>
+    <RootNamespace>EntropyModule</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">tsk$(ProjectName)</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">tsk$(ProjectName)</TargetName>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>$(TSK_HOME);$(TSK_HOME)\framework;$(POCO_HOME)\Foundation\include;$(POCO_HOME)\Util\include;$(POCO_HOME)\XML\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <MinimalRebuild>true</MinimalRebuild>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>libtskframework.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(TSK_HOME)\framework\msvcpp\framework\$(Configuration);$(POCO_HOME)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+    <PostBuildEvent>
+      <Command>move /Y "$(SolutionDir)$(Configuration)\tsk$(ProjectName).dll" "$(ProjectDir)..\..\..\runtime"
+mkdir "$(ProjectDir)..\..\..\runtime\$(TargetName)"
+copy /Y "$(ProjectDir)..\interesting_files.xml" "$(ProjectDir)..\..\..\runtime\$(TargetName)\"</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <AdditionalIncludeDirectories>$(TSK_HOME);$(TSK_HOME)\framework;$(POCO_HOME)\Foundation\include;$(POCO_HOME)\Util\include;$(POCO_HOME)\XML\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>libtskframework.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(TSK_HOME)\framework\msvcpp\framework\$(Configuration);$(POCO_HOME)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+    <PostBuildEvent>
+      <Command>move /Y "$(SolutionDir)$(Configuration)\tsk$(ProjectName).dll" "$(ProjectDir)..\..\..\runtime"
+mkdir "$(ProjectDir)..\..\..\runtime\$(TargetName)"
+copy /Y "$(ProjectDir)..\interesting_files.xml" "$(ProjectDir)..\..\..\runtime\$(TargetName)\"</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\InterestingFilesModule.cpp" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/framework/modules/c_LibExifModule/LibExifModule.cpp b/framework/modules/c_LibExifModule/LibExifModule.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..a2b9ffc619594013ddad282e13d1d2ebdf04f91c
--- /dev/null
+++ b/framework/modules/c_LibExifModule/LibExifModule.cpp
@@ -0,0 +1,384 @@
+/*
+ * The Sleuth Kit
+ *
+ * Contact: Brian Carrier [carrier <at> sleuthkit [dot] org]
+ * Copyright (c) 2011-2012 Basis Technology Corporation. All Rights
+ * reserved.
+ *
+ * This software is distributed under the Common Public License 1.0
+ */
+
+/** \file ExifExtractModule.cpp 
+ * Contains the implementation of the EXIF data extraction file analysis module.
+ */
+
+// System includes
+#include <string>
+#include <sstream>
+#include <string.h>
+
+// Framework includes
+#include "tsk/framework/utilities/TskModuleDev.h"
+
+// libexif includes
+#include "libexif/exif-loader.h"
+
+#include "Poco/DateTime.h"
+#include "Poco/DateTimeParser.h"
+
+namespace 
+{
+    const char *MODULE_NAME = "tskLibExifModule";
+    const char *MODULE_DESCRIPTION = "Stores extracted EXIF data to the image database";
+    const char *MODULE_VERSION = "1.0.0";
+
+    // JFIF signature
+    static unsigned char jfifSig[] = { 0xFF, 0xD8, 0xFF, 0xE0 };
+    // EXIF signature
+    static unsigned char exifSig[] = { 0xFF, 0xD8, 0xFF, 0xE1 };
+
+    // We process the file 8k at a time
+    static const uint32_t FILE_BUFFER_SIZE = 8192;
+
+    std::map<ExifTag, TSK_ATTRIBUTE_TYPE> initializeTagMap()
+    {
+        std::map<ExifTag, TSK_ATTRIBUTE_TYPE> retval;
+
+        retval.insert(pair<ExifTag, TSK_ATTRIBUTE_TYPE>(EXIF_TAG_MAKE, TSK_DEVICE_MAKE));
+        retval.insert(pair<ExifTag, TSK_ATTRIBUTE_TYPE>(EXIF_TAG_MODEL, TSK_DEVICE_MODEL));
+        retval.insert(pair<ExifTag, TSK_ATTRIBUTE_TYPE>((ExifTag)EXIF_TAG_GPS_LATITUDE, TSK_GEO_LATITUDE));
+        retval.insert(pair<ExifTag, TSK_ATTRIBUTE_TYPE>((ExifTag)EXIF_TAG_GPS_LONGITUDE, TSK_GEO_LONGITUDE));
+        retval.insert(pair<ExifTag, TSK_ATTRIBUTE_TYPE>((ExifTag)EXIF_TAG_GPS_ALTITUDE, TSK_GEO_ALTITUDE));
+        retval.insert(pair<ExifTag, TSK_ATTRIBUTE_TYPE>((ExifTag)EXIF_TAG_GPS_MAP_DATUM, TSK_GEO_MAPDATUM));
+        retval.insert(pair<ExifTag, TSK_ATTRIBUTE_TYPE>((ExifTag)EXIF_TAG_GPS_SPEED, TSK_GEO_VELOCITY));
+        retval.insert(pair<ExifTag, TSK_ATTRIBUTE_TYPE>((ExifTag)EXIF_TAG_DATE_TIME_ORIGINAL, TSK_DATETIME));
+        retval.insert(pair<ExifTag, TSK_ATTRIBUTE_TYPE>((ExifTag)EXIF_TAG_XP_AUTHOR, TSK_NAME_PERSON));
+        retval.insert(pair<ExifTag, TSK_ATTRIBUTE_TYPE>((ExifTag)EXIF_TAG_TIME_ZONE_OFFSET,TSK_DATETIME));
+
+        return retval;
+    }
+
+    static std::map<ExifTag, TSK_ATTRIBUTE_TYPE> tagMap = initializeTagMap();
+
+    /**
+     * Extracts GPS coordinates from the given tag_data and converts them
+     * into decimal degrees.
+     */
+    float getDecimalDegrees(char * tag_data)
+    {
+        char * token;
+        char * deg;
+        char * min;
+        char * sec;
+        // Tokenize the data
+        token = strtok(tag_data, " , ");
+        // Caputure degrees, minutes, seconds
+        if (token)
+        {
+            deg = token;
+            token = strtok(NULL, " , ");
+        }
+        if (token)
+        {
+            min = token;
+            token = strtok(NULL, " , ");
+        }
+        if (token)
+        {
+            sec = token;
+            token = strtok(NULL, " , ");
+        }
+        // Formula to convert to decimal
+        return (atof(deg) + (atof(min)/60) + (atof(sec)/3600));
+    }
+
+    /* Extracts GPS speed and returns speed as float value */
+    float getGPSSpeed(char *tag_data)
+    {
+        char * token;
+        char * wholeNum;
+        char * decimal;
+        // Tokenize the data
+        token = strtok(tag_data, ".");
+        //Get the whole number value
+        if (token)
+        {
+            wholeNum = token;
+            token = strtok(NULL, ".");
+        }
+        if (token)
+        {
+            decimal = token;
+            token = strtok(NULL, " , ");
+        }
+        return (atof(wholeNum) + atof(decimal));
+    }
+}
+
+extern "C" 
+{
+    /**
+     * Module identification function. 
+     *
+     * @return The name of the module as a const char *.
+     */
+    TSK_MODULE_EXPORT const char* name()
+    {
+        return MODULE_NAME;
+    }
+
+    /**
+     * Module identification function. 
+     *
+     * @return A description of the module as a const char *.
+     */
+    TSK_MODULE_EXPORT const char* description()
+    {
+        return MODULE_DESCRIPTION;
+    }
+
+    /**
+     * Module identification function. 
+     *
+     * @return The version of the module as a const char *.
+     */
+    TSK_MODULE_EXPORT const char* version()
+    {
+        return MODULE_VERSION;
+    }
+    
+    /* Function to populate TSK Blackboard exif related attributes */
+    void extractExifData(ExifData * exifData, TskFile * pFile)
+    {
+        std::map<ExifTag, TSK_ATTRIBUTE_TYPE>::iterator it;
+        std::vector<TskBlackboardAttribute> attrs;
+        std::string datetime = "";
+        int timezone = 0;
+
+        for (it = tagMap.begin(); it != tagMap.end(); ++it)
+        {
+            ExifEntry * exifEntry = exif_data_get_entry(exifData, it->first);
+            char tag_data[256];
+
+            if (exifEntry == NULL)
+                continue;
+
+            if (it->first == EXIF_TAG_GPS_LATITUDE ||
+                it->first == EXIF_TAG_GPS_LONGITUDE)
+            {
+                // Check for the EXIF_IFD_GPS image file directory to avoid interoperability value
+                ExifIfd ifd = exif_entry_get_ifd(exifEntry);
+                if (ifd != EXIF_IFD_GPS)
+                    continue;
+
+                exif_entry_get_value(exifEntry, tag_data, 256);
+
+                float decDegrees = getDecimalDegrees(tag_data);
+
+                char refValue[2];
+
+                if (it->first == EXIF_TAG_GPS_LATITUDE)
+                {
+                    // Get the latitude reference value; used to determine if positive or negative decimal value
+                    ExifEntry * latitudeRef = exif_data_get_entry(exifData, it->first);
+                    exif_entry_get_value(latitudeRef, refValue,2);
+
+                    if (strcmp(refValue, "S") == 0)
+                        decDegrees *= -1;
+                }
+                else
+                {
+                    // Get the longitude reference value; used to determine if positive or negative decimal value
+                    ExifEntry * longitudeRef = exif_data_get_entry(exifData, it->first);
+                    exif_entry_get_value(longitudeRef, refValue,2);
+
+                    if (strcmp(refValue, "W") == 0)
+                        decDegrees *= -1;
+                }
+                
+                TskBlackboardAttribute attr(it->second, name(), "", decDegrees);
+                attrs.push_back(attr);                
+            }
+            else if (it->first == EXIF_TAG_GPS_SPEED)
+            {
+                // Check for the EXIF_IFD_GPS image file directory to avoid interoperability value
+                ExifIfd ifd = exif_entry_get_ifd(exifEntry);
+                if (ifd != EXIF_IFD_GPS)
+                    continue;
+
+                //Get the GPS speed value
+                exif_entry_get_value(exifEntry, tag_data, 256);
+
+                float speed = getGPSSpeed(tag_data);
+
+                char refValue[2];
+
+                //Get the GPS speed reference value
+                ExifEntry * speedRef = exif_data_get_entry(exifData, it->first);
+                exif_entry_get_value(speedRef, refValue,2);
+
+                //Convert Kilometers per hour to meters per second 
+                if (strcmp(refValue, "K") == 0)
+                {
+                     speed *= 0.277778;
+                }
+                //Convert Miles per hour to meters per second 
+                if (strcmp(refValue, "M") == 0)
+                {
+                    speed *= 0.44704;
+                }
+                //Convert Knots to meters per second
+                if (strcmp(refValue, "N") == 0)
+                {
+                    speed *= 0.514444;
+                }
+                
+                TskBlackboardAttribute attr(it->second, name(), "", speed);
+                attrs.push_back(attr);
+            }
+            else if (it->first == EXIF_TAG_DATE_TIME_ORIGINAL) 
+            {
+                exif_entry_get_value(exifEntry, tag_data, 256);
+                datetime = std::string(tag_data);
+            }
+            else if(it->first == EXIF_TAG_TIME_ZONE_OFFSET){
+                exif_entry_get_value(exifEntry, tag_data, 256);
+                timezone = atoi(tag_data);
+            }
+            else
+            {   
+                // Get the tag's data
+                exif_entry_get_value(exifEntry, tag_data, 256);
+
+                // Add tag data to blackboard
+                TskBlackboardAttribute attr(it->second, name(), "", tag_data);
+                attrs.push_back(attr);
+            }
+        }
+        if(!datetime.empty()){
+            Poco::DateTime parsedDT;
+            int tzd;
+            Poco::DateTimeParser::tryParse(datetime, parsedDT, tzd);
+            if(timezone)
+                parsedDT.makeUTC(timezone);
+            else
+                parsedDT.makeUTC(tzd);
+            TskBlackboardAttribute attr(TSK_DATETIME, name(), "", (uint64_t)parsedDT.utcTime());
+            attrs.push_back(attr);
+        }
+        if(attrs.size() > 0){
+            TskBlackboardArtifact art = pFile->createArtifact(TSK_METADATA_EXIF);
+            for(size_t i = 0; i < attrs.size(); i++){
+                art.addAttribute(attrs[i]);
+            }
+        }
+    }
+
+    /**
+     * Module initialization function. This module does not take any arguments.
+
+     * @return TskModule::OK
+     */
+    TskModule::Status TSK_MODULE_EXPORT initialize(const char* arguments)
+    {
+        return TskModule::OK;
+    }
+
+    /**
+     * Module execution function. Receives a pointer to a file the module is to
+     * process. The file is represented by a TskFile interface which is used
+     * to read the contents of the file and post extracted EXIF data to the  
+     * database.
+     *
+     * @param pFile A pointer to a file.
+     * @returns TskModule::OK on success, TskModule::FAIL on error.
+     */
+    TskModule::Status TSK_MODULE_EXPORT run(TskFile * pFile) 
+    {
+        if (pFile == NULL) 
+        {
+            LOGERROR(L"ExifExtractModule: passed NULL file pointer.");
+            return TskModule::FAIL;
+        }
+
+        try 
+        {
+            char buffer[FILE_BUFFER_SIZE];
+            int bytesRead = 0;
+
+            memset(buffer, 0, FILE_BUFFER_SIZE);
+            bytesRead = pFile->read(buffer, FILE_BUFFER_SIZE);
+
+            if (bytesRead < 4)
+                return TskModule::OK;
+
+            // Check the first 4 bytes to see if this is a JPEG file.
+            // We check for both the JFIF and EXIF signatures.
+            if (memcmp(buffer, jfifSig, sizeof(jfifSig)) != 0 &&
+                memcmp(buffer, exifSig, sizeof(exifSig)) != 0)
+            {
+                // It's not a JPEG file so we skip it.
+                return TskModule::OK;
+            }
+
+            ExifLoader * exifLoader = exif_loader_new();
+
+            if (exifLoader == NULL)
+            {
+                LOGERROR(L"ExifExtractModule - Received NULL ExifLoader pointer");
+                return TskModule::FAIL;
+            }
+
+            // Feed the file content into libexif
+            while (bytesRead > 0)
+            {
+                exif_loader_write(exifLoader, reinterpret_cast<unsigned char *>(buffer), bytesRead);
+                memset(buffer, 0, FILE_BUFFER_SIZE);
+                bytesRead = pFile->read(buffer, FILE_BUFFER_SIZE);
+            }
+
+            ExifData * exifData = exif_loader_get_data(exifLoader);
+
+            // exifData will be NULL if there is no EXIF data in the image
+            if (exifData != NULL)
+            {
+                // For debugging, exif_data_dump writes all exif data to stdout
+                //exif_data_dump(exifData);
+
+                extractExifData(exifData, pFile);
+
+                exif_data_unref(exifData);
+            }
+
+            // Free the loader
+            exif_loader_unref(exifLoader);
+        }
+        catch (TskException& tskEx)
+        {
+            std::wstringstream msg;
+            msg << L"ExifExtractModule - Error processing file id " << pFile->getId() << L": " << tskEx.what();
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+        catch (std::exception& ex)
+        {
+            std::wstringstream msg;
+            msg << L"ExifExtractModule - Error processing file id " << pFile->getId() << L": " << ex.what();
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+
+        return TskModule::OK;
+    }
+
+    /**
+     * Module cleanup function. This module does not need to free any 
+     * resources allocated during initialization or execution.
+     *
+     * @returns TskModule::OK
+     */
+    TskModule::Status TSK_MODULE_EXPORT finalize()
+    {
+        return TskModule::OK;
+    }
+}
diff --git a/framework/modules/c_LibExifModule/Makefile.am b/framework/modules/c_LibExifModule/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..f891cbf909e7e8ecd99dc076d57eb29b2ce826b7
--- /dev/null
+++ b/framework/modules/c_LibExifModule/Makefile.am
@@ -0,0 +1,23 @@
+ACLOCAL_AMFLAGS = -I m4
+AM_CXXFLAGS = $(FW_INCLUDE) $(TSK_INCLUDE) -Wall
+LDFLAGS="-lexif"
+
+# this will be true if libexif was found by configure. 
+# We don't have configure fail at runtime because then no modules
+# can be compiled. 
+if HAS_LIBEXIF
+
+lib_LTLIBRARIES = libtskLibExifModule.la
+libtskLibExifModule_la_SOURCES = LibExifModule.cpp
+libtskLibExifModule_la_LIBADD = $(FW_LIBS)
+
+else
+
+bin_PROGRAMS = no_libmagic
+
+.PHONY: no_libmagic
+no_libmagic_SOURCES = 
+no_libmagic:
+	@echo "Nothing to do for ExifModule, libexif not found."
+
+endif
diff --git a/framework/modules/c_LibExifModule/NEWS.txt b/framework/modules/c_LibExifModule/NEWS.txt
new file mode 100644
index 0000000000000000000000000000000000000000..02de826d59016f9675c7d0a63b4efc9bb55da54b
--- /dev/null
+++ b/framework/modules/c_LibExifModule/NEWS.txt
@@ -0,0 +1,9 @@
+Numbers refer to github.net issue #s:
+    https://github.com/sleuthkit/c_LibExifModule/issues
+
+---------------- VERSION 1.0.0 --------------
+New Features:
+- Initial public release.
+
+Bug Fixes:
+- N/A. 
diff --git a/framework/modules/c_LibExifModule/README.txt b/framework/modules/c_LibExifModule/README.txt
new file mode 100644
index 0000000000000000000000000000000000000000..3b1c2471896ac9d3051749b8898d1028cb78a2e0
--- /dev/null
+++ b/framework/modules/c_LibExifModule/README.txt
@@ -0,0 +1,40 @@
+c_LibExifModule
+Sleuth Kit Framework C++ Module
+August 2012
+===============
+
+C++ Sleuth Kit Framework module that wraps libexif to pull out EXIF data.
+
+DESCRIPTION
+
+This module is a file analysis module that will check JPEG files for
+an exif header, then parse any found headers for metadata of interest.
+Any metadata of interest will be posted to the blackboard.
+
+DEPLOYMENT REQUIREMENTS
+
+This module does not have any specific deployment requirements.
+
+USAGE
+
+Add this module to a file analysis pipeline. See the TSK
+Framework documents for information on adding the module
+to the pipeline:
+
+    http://www.sleuthkit.org/sleuthkit/docs/framework-docs/
+
+RESULTS
+
+All results will be posted to the blackboard as TSK_METADATA_EXIF artifacts.
+Currently, it extracts dates, author, device, and GPS information. 
+
+TODO
+- Make metadata of interest configurable. Ie: allow the module to be configured
+to pull out exif data other than the attributes we have hard coded.
+
+LICENSES
+
+This module uses libexif 0.6.20 (http://libexif.sourceforge.net).
+libexif is licensed under the GNU LESSER GENERAL PULIC LICENSE Version 2.1 (LGPL).
+
+See http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html#TOC1
\ No newline at end of file
diff --git a/framework/modules/c_LibExifModule/bootstrap b/framework/modules/c_LibExifModule/bootstrap
new file mode 100755
index 0000000000000000000000000000000000000000..db001054c3e684aae6efc1bf48532cf7e572e0cc
--- /dev/null
+++ b/framework/modules/c_LibExifModule/bootstrap
@@ -0,0 +1,5 @@
+#!/bin/sh
+aclocal \
+    && (libtoolize || glibtoolize) \
+    && automake --foreign --add-missing \
+    && autoconf
diff --git a/framework/modules/c_LibExifModule/config/config.guess b/framework/modules/c_LibExifModule/config/config.guess
new file mode 120000
index 0000000000000000000000000000000000000000..2a81b2837d066bda2938389e684d894ebfa87d0d
--- /dev/null
+++ b/framework/modules/c_LibExifModule/config/config.guess
@@ -0,0 +1 @@
+/usr/local/Cellar/automake/1.12.3/share/automake-1.12/config.guess
\ No newline at end of file
diff --git a/framework/modules/c_LibExifModule/config/config.sub b/framework/modules/c_LibExifModule/config/config.sub
new file mode 120000
index 0000000000000000000000000000000000000000..4b62869cb9cb47d8d2390ad64f3716df4737eff0
--- /dev/null
+++ b/framework/modules/c_LibExifModule/config/config.sub
@@ -0,0 +1 @@
+/usr/local/Cellar/automake/1.12.3/share/automake-1.12/config.sub
\ No newline at end of file
diff --git a/framework/modules/c_LibExifModule/config/depcomp b/framework/modules/c_LibExifModule/config/depcomp
new file mode 120000
index 0000000000000000000000000000000000000000..f116400df9c9fb3bdfe2b44dcb6e9e7fe62362fd
--- /dev/null
+++ b/framework/modules/c_LibExifModule/config/depcomp
@@ -0,0 +1 @@
+/usr/local/Cellar/automake/1.12.3/share/automake-1.12/depcomp
\ No newline at end of file
diff --git a/framework/modules/c_LibExifModule/config/install-sh b/framework/modules/c_LibExifModule/config/install-sh
new file mode 120000
index 0000000000000000000000000000000000000000..8372cd29dfabb741b676881d7eb2c603d59e0255
--- /dev/null
+++ b/framework/modules/c_LibExifModule/config/install-sh
@@ -0,0 +1 @@
+/usr/local/Cellar/automake/1.12.3/share/automake-1.12/install-sh
\ No newline at end of file
diff --git a/framework/modules/c_LibExifModule/config/ltmain.sh b/framework/modules/c_LibExifModule/config/ltmain.sh
new file mode 120000
index 0000000000000000000000000000000000000000..a8ce566234a320b1b512ccf534082c8816c19958
--- /dev/null
+++ b/framework/modules/c_LibExifModule/config/ltmain.sh
@@ -0,0 +1 @@
+/usr/local/Cellar/libtool/2.4.2/share/libtool/config/ltmain.sh
\ No newline at end of file
diff --git a/framework/modules/c_LibExifModule/config/missing b/framework/modules/c_LibExifModule/config/missing
new file mode 120000
index 0000000000000000000000000000000000000000..cc0c0a6fb8fe1cdeba5895244a9ab341aab53665
--- /dev/null
+++ b/framework/modules/c_LibExifModule/config/missing
@@ -0,0 +1 @@
+/usr/local/Cellar/automake/1.12.3/share/automake-1.12/missing
\ No newline at end of file
diff --git a/framework/modules/c_LibExifModule/configure.ac b/framework/modules/c_LibExifModule/configure.ac
new file mode 100644
index 0000000000000000000000000000000000000000..993506f1b0d603ab33f5ea140d2f7beafc5c1b9e
--- /dev/null
+++ b/framework/modules/c_LibExifModule/configure.ac
@@ -0,0 +1,163 @@
+#                                               -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+AC_PREREQ([2.59])
+
+AC_INIT(c_LibExifModule, 1.0.0)
+AC_CONFIG_SRCDIR([LibExifModule.cpp])
+AC_CONFIG_AUX_DIR(config)
+AM_INIT_AUTOMAKE([foreign])
+AM_PROG_LIBTOOL
+AM_MAINTAINER_MODE
+AC_CONFIG_MACRO_DIR([m4])
+
+# Checks for programs.
+AC_LANG([C++])
+AC_PROG_CXX
+AC_PROG_CC
+AC_PROG_CPP
+
+# Not all compilers include /usr/local in the include and link path
+if test -e /usr/local/include; then
+    CFLAGS="$CFLAGS -I/usr/local/include"
+    LDFLAGS="$LDFLAGS -L/usr/local/lib"
+fi
+
+# Checks for libraries.
+AC_CHECK_HEADERS([libexif/exif-loader.h],
+    [AC_CHECK_LIB([exif], [exif_loader_new], 
+            [with_libexif=yes], 
+            [AC_MSG_WARN([libexif not installed])]
+    )],
+    [AC_MSG_WARN([libexif not installed])]
+)
+AM_CONDITIONAL([HAS_LIBEXIF], [test "x$with_libexif" = "xyes"])
+AM_COND_IF([HAS_LIBEXIF], [rm -f missing_libs.txt], [echo "libexif for ExifModule" > missing_libs.txt])
+
+# If libexif was not found, we continue on and do not error. 
+# The makefile will simply not compile anything. 
+# This allows us to more easily build from the top-level makefile in the framework.
+
+# Checks for header files.
+AC_CHECK_HEADERS([stdlib.h string.h])
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_C_INLINE
+AC_TYPE_INT32_T
+AC_TYPE_INT64_T
+AC_TYPE_SIZE_T
+AC_TYPE_SSIZE_T
+AC_TYPE_UINT32_T
+AC_TYPE_UINT64_T
+AC_TYPE_UINT8_T
+
+# Checks for library functions.
+AC_FUNC_MALLOC
+AC_FUNC_REALLOC
+AC_CHECK_FUNCS([memset strtoul strtoull])
+
+# Check for methods in library and check for header files
+AC_CHECK_HEADERS([Poco/Foundation.h Poco/Net/HTTPCookie.h Poco/DOM/Entity.h Poco/Util/Timer.h],
+  [],
+  AC_MSG_ERROR([Poco include files not found.])
+)
+
+AC_CHECK_LIB([PocoFoundation],[main],[HAVE_POCOFOUNDATION=1],AC_MSG_ERROR([PocoFoundation library not found.]))
+if test "$HAVE_POCOFOUNDATION"; then
+    save_libs="${LIBS}"
+    LIBS="-lPocoFoundation"
+    AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+            [#include "Poco/UnicodeConverter.h"],
+            [std::wstring wstr; Poco::UnicodeConverter::toUTF16("hello", wstr);]
+        )],
+        [LIBS="$LIBS $save_libs"],
+        [AC_MSG_ERROR([linking with PocoFoundation failed.])]
+    )
+fi
+
+AC_CHECK_LIB([PocoUtil],[main],[HAVE_POCOUTIL=1],AC_MSG_ERROR([PocoUtil library not found.]))
+if test "$HAVE_POCOUTIL"; then
+    save_libs="${LIBS}"
+    LIBS="-lPocoUtil"
+    AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+            [#include "Poco/Util/Option.h"],
+            [Poco::Util::Option();]
+        )],
+        [LIBS="$LIBS $save_libs"],
+        [AC_MSG_ERROR([linking with PocoUtil failed.])]
+    )
+fi
+
+AC_CHECK_LIB([PocoXML],[main],[HAVE_POCOXML=1],AC_MSG_ERROR([PocoXML library not found.]))
+if test "$HAVE_POCOXML"; then
+    save_libs="${LIBS}"
+    LIBS="-lPocoXML"
+    AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+            [#include "Poco/DOM/DOMParser.h"],
+            [Poco::XML::DOMParser().parse("http://www.google.com");]
+        )],
+        [LIBS="$LIBS $save_libs"],
+        [AC_MSG_ERROR([linking with PocoXML failed.])]
+    )
+fi
+
+AC_CHECK_LIB([PocoNet],[main],[HAVE_POCONET=1],AC_MSG_ERROR([PocoNet library not found.]))
+if test "$HAVE_POCONET"; then
+    save_libs="${LIBS}"
+    LIBS="-lPocoNet"
+    AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+            [#include "Poco/Net/HTTPClientSession.h"],
+            [Poco::Net::HTTPClientSession();]
+        )],
+        [LIBS="$LIBS $save_libs"],
+        [AC_MSG_ERROR([linking with PocoNET failed.])]
+    )
+fi
+
+AC_CHECK_LIB([PocoZip],[main],[HAVE_POCOZIP=1],AC_MSG_ERROR([PocoZip library not found.]))
+if test "$HAVE_POCOZIP"; then
+    save_libs="${LIBS}"
+    LIBS="-lPocoZip"
+    AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+            [#include "Poco/Zip/ZipArchive.h"],
+            [Poco::Zip::ZipArchive::FileHeaders::const_iterator fh;]
+        )],
+        [LIBS="$LIBS $save_libs"],
+        [AC_MSG_ERROR([linking with PocoZip failed.])]
+    )
+fi
+
+# Check if the module is under tsk/framework/modules
+if test -f ../../modules/Makefile.am; then
+   AC_SUBST(FW_LIBS, "../../tsk/framework/libtskframework.la ../../../tsk/libtsk.la")
+   AC_SUBST(TSK_INCLUDE, "-I../../..")
+   AC_SUBST(FW_INCLUDE,  "-I../..")
+
+# This is here because it is alphabetically the last module to be compiled and 
+# it is how we show what is missing.
+   [
+   echo "****************************"
+   echo "Modules missing dependencies:"
+   cat ../*/missing_libs.txt
+   echo "****************************"
+   ]
+
+else
+   # Not part of tsk/framework/modules, check if Tsk and Framework has been installed
+   AC_SUBST(FW_LIBS, "")
+   AC_SUBST(TSK_INCLUDE, "")
+   AC_SUBST(FW_INCLUDE,  "")
+   AC_CHECK_HEADERS([tsk/libtsk.h],[],AC_MSG_ERROR([Tsk include files not found.]))
+   AC_CHECK_LIB([tsk],[main],[],AC_MSG_ERROR([Tsk library not found.]))
+   AC_CHECK_HEADERS([tsk/framework/framework.h],[],AC_MSG_ERROR([Framework include files not found.]))
+   AC_CHECK_LIB([tskframework],[main],[],AC_MSG_ERROR([tskframework library not found.]))
+fi
+
+AC_CONFIG_FILES([Makefile])
+
+AC_OUTPUT
diff --git a/framework/modules/c_LibExifModule/cpl1.0.txt b/framework/modules/c_LibExifModule/cpl1.0.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c9990a7ea45dbb64f81f7bface6d0f765d96c086
--- /dev/null
+++ b/framework/modules/c_LibExifModule/cpl1.0.txt
@@ -0,0 +1,213 @@
+Common Public License Version 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC
+LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
+CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+    a) in the case of the initial Contributor, the initial code and
+documentation distributed under this Agreement, and
+
+    b) in the case of each subsequent Contributor:
+
+    i) changes to the Program, and
+
+    ii) additions to the Program;
+
+    where such changes and/or additions to the Program originate from and are
+distributed by that particular Contributor. A Contribution 'originates' from a
+Contributor if it was added to the Program by such Contributor itself or anyone
+acting on such Contributor's behalf. Contributions do not include additions to
+the Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii) are not
+derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are
+necessarily infringed by the use or sale of its Contribution alone or when
+combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement,
+including all Contributors.
+
+2. GRANT OF RIGHTS
+
+    a) Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide, royalty-free copyright license to
+reproduce, prepare derivative works of, publicly display, publicly perform,
+distribute and sublicense the Contribution of such Contributor, if any, and such
+derivative works, in source code and object code form.
+
+    b) Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed
+Patents to make, use, sell, offer to sell, import and otherwise transfer the
+Contribution of such Contributor, if any, in source code and object code form.
+This patent license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor, such
+addition of the Contribution causes such combination to be covered by the
+Licensed Patents. The patent license shall not apply to any other combinations
+which include the Contribution. No hardware per se is licensed hereunder.
+
+    c) Recipient understands that although each Contributor grants the licenses
+to its Contributions set forth herein, no assurances are provided by any
+Contributor that the Program does not infringe the patent or other intellectual
+property rights of any other entity. Each Contributor disclaims any liability to
+Recipient for claims brought by any other entity based on infringement of
+intellectual property rights or otherwise. As a condition to exercising the
+rights and licenses granted hereunder, each Recipient hereby assumes sole
+responsibility to secure any other intellectual property rights needed, if any.
+For example, if a third party patent license is required to allow Recipient to
+distribute the Program, it is Recipient's responsibility to acquire that license
+before distributing the Program.
+
+    d) Each Contributor represents that to its knowledge it has sufficient
+copyright rights in its Contribution, if any, to grant the copyright license set
+forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its
+own license agreement, provided that:
+
+    a) it complies with the terms and conditions of this Agreement; and
+
+    b) its license agreement:
+
+    i) effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title and
+non-infringement, and implied warranties or conditions of merchantability and
+fitness for a particular purpose;
+
+    ii) effectively excludes on behalf of all Contributors all liability for
+damages, including direct, indirect, special, incidental and consequential
+damages, such as lost profits;
+
+    iii) states that any provisions which differ from this Agreement are offered
+by that Contributor alone and not by any other party; and
+
+    iv) states that source code for the Program is available from such
+Contributor, and informs licensees how to obtain it in a reasonable manner on or
+through a medium customarily used for software exchange. 
+
+When the Program is made available in source code form:
+
+    a) it must be made available under this Agreement; and
+
+    b) a copy of this Agreement must be included with each copy of the Program. 
+
+Contributors may not remove or alter any copyright notices contained within the
+Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if
+any, in a manner that reasonably allows subsequent Recipients to identify the
+originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with
+respect to end users, business partners and the like. While this license is
+intended to facilitate the commercial use of the Program, the Contributor who
+includes the Program in a commercial product offering should do so in a manner
+which does not create potential liability for other Contributors. Therefore, if
+a Contributor includes the Program in a commercial product offering, such
+Contributor ("Commercial Contributor") hereby agrees to defend and indemnify
+every other Contributor ("Indemnified Contributor") against any losses, damages
+and costs (collectively "Losses") arising from claims, lawsuits and other legal
+actions brought by a third party against the Indemnified Contributor to the
+extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor to
+control, and cooperate with the Commercial Contributor in, the defense and any
+related settlement negotiations. The Indemnified Contributor may participate in
+any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product
+offering, Product X. That Contributor is then a Commercial Contributor. If that
+Commercial Contributor then makes performance claims, or offers warranties
+related to Product X, those performance claims and warranties are such
+Commercial Contributor's responsibility alone. Under this section, the
+Commercial Contributor would have to defend claims against the other
+Contributors related to those performance claims and warranties, and if a court
+requires any other Contributor to pay any damages as a result, the Commercial
+Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
+IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each
+Recipient is solely responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its exercise of
+rights under this Agreement, including but not limited to the risks and costs of
+program errors, compliance with applicable laws, damage to or loss of data,
+programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
+CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
+PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
+GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable
+law, it shall not affect the validity or enforceability of the remainder of the
+terms of this Agreement, and without further action by the parties hereto, such
+provision shall be reformed to the minimum extent necessary to make such
+provision valid and enforceable.
+
+If Recipient institutes patent litigation against a Contributor with respect to
+a patent applicable to software (including a cross-claim or counterclaim in a
+lawsuit), then any patent licenses granted by that Contributor to such Recipient
+under this Agreement shall terminate as of the date such litigation is filed. In
+addition, if Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the Program
+itself (excluding combinations of the Program with other software or hardware)
+infringes such Recipient's patent(s), then such Recipient's rights granted under
+Section 2(b) shall terminate as of the date such litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to
+comply with any of the material terms or conditions of this Agreement and does
+not cure such failure in a reasonable period of time after becoming aware of
+such noncompliance. If all Recipient's rights under this Agreement terminate,
+Recipient agrees to cease use and distribution of the Program as soon as
+reasonably practicable. However, Recipient's obligations under this Agreement
+and any licenses granted by Recipient relating to the Program shall continue and
+survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in
+order to avoid inconsistency the Agreement is copyrighted and may only be
+modified in the following manner. The Agreement Steward reserves the right to
+publish new versions (including revisions) of this Agreement from time to time.
+No one other than the Agreement Steward has the right to modify this Agreement.
+IBM is the initial Agreement Steward. IBM may assign the responsibility to serve
+as the Agreement Steward to a suitable separate entity. Each new version of the
+Agreement will be given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the Agreement
+under which it was received. In addition, after a new version of the Agreement
+is published, Contributor may elect to distribute the Program (including its
+Contributions) under the new version. Except as expressly stated in Sections
+2(a) and 2(b) above, Recipient receives no rights or licenses to the
+intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the
+intellectual property laws of the United States of America. No party to this
+Agreement will bring a legal action under this Agreement more than one year
+after the cause of action arose. Each party waives its rights to a jury trial in
+any resulting litigation.
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/ABOUT-NLS b/framework/modules/c_LibExifModule/libexif-0.6.20/ABOUT-NLS
new file mode 100644
index 0000000000000000000000000000000000000000..2f50c6693eff1c55f5696c5bd593f328cc0f0f95
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/ABOUT-NLS
@@ -0,0 +1,768 @@
+Notes on the Free Translation Project
+*************************************
+
+Free software is going international!  The Free Translation Project is
+a way to get maintainers of free software, translators, and users all
+together, so that will gradually become able to speak many languages.
+A few packages already provide translations for their messages.
+
+   If you found this `ABOUT-NLS' file inside a distribution, you may
+assume that the distributed package does use GNU `gettext' internally,
+itself available at your nearest GNU archive site.  But you do _not_
+need to install GNU `gettext' prior to configuring, installing or using
+this package with messages translated.
+
+   Installers will find here some useful hints.  These notes also
+explain how users should proceed for getting the programs to use the
+available translations.  They tell how people wanting to contribute and
+work at translations should contact the appropriate team.
+
+   When reporting bugs in the `intl/' directory or bugs which may be
+related to internationalization, you should tell about the version of
+`gettext' which is used.  The information can be found in the
+`intl/VERSION' file, in internationalized packages.
+
+Quick configuration advice
+==========================
+
+If you want to exploit the full power of internationalization, you
+should configure it using
+
+     ./configure --with-included-gettext
+
+to force usage of internationalizing routines provided within this
+package, despite the existence of internationalizing capabilities in the
+operating system where this package is being installed.  So far, only
+the `gettext' implementation in the GNU C library version 2 provides as
+many features (such as locale alias, message inheritance, automatic
+charset conversion or plural form handling) as the implementation here.
+It is also not possible to offer this additional functionality on top
+of a `catgets' implementation.  Future versions of GNU `gettext' will
+very likely convey even more functionality.  So it might be a good idea
+to change to GNU `gettext' as soon as possible.
+
+   So you need _not_ provide this option if you are using GNU libc 2 or
+you have installed a recent copy of the GNU gettext package with the
+included `libintl'.
+
+INSTALL Matters
+===============
+
+Some packages are "localizable" when properly installed; the programs
+they contain can be made to speak your own native language.  Most such
+packages use GNU `gettext'.  Other packages have their own ways to
+internationalization, predating GNU `gettext'.
+
+   By default, this package will be installed to allow translation of
+messages.  It will automatically detect whether the system already
+provides the GNU `gettext' functions.  If not, the GNU `gettext' own
+library will be used.  This library is wholly contained within this
+package, usually in the `intl/' subdirectory, so prior installation of
+the GNU `gettext' package is _not_ required.  Installers may use
+special options at configuration time for changing the default
+behaviour.  The commands:
+
+     ./configure --with-included-gettext
+     ./configure --disable-nls
+
+will respectively bypass any pre-existing `gettext' to use the
+internationalizing routines provided within this package, or else,
+_totally_ disable translation of messages.
+
+   When you already have GNU `gettext' installed on your system and run
+configure without an option for your new package, `configure' will
+probably detect the previously built and installed `libintl.a' file and
+will decide to use this.  This might be not what is desirable.  You
+should use the more recent version of the GNU `gettext' library.  I.e.
+if the file `intl/VERSION' shows that the library which comes with this
+package is more recent, you should use
+
+     ./configure --with-included-gettext
+
+to prevent auto-detection.
+
+   The configuration process will not test for the `catgets' function
+and therefore it will not be used.  The reason is that even an
+emulation of `gettext' on top of `catgets' could not provide all the
+extensions of the GNU `gettext' library.
+
+   Internationalized packages have usually many `po/LL.po' files, where
+LL gives an ISO 639 two-letter code identifying the language.  Unless
+translations have been forbidden at `configure' time by using the
+`--disable-nls' switch, all available translations are installed
+together with the package.  However, the environment variable `LINGUAS'
+may be set, prior to configuration, to limit the installed set.
+`LINGUAS' should then contain a space separated list of two-letter
+codes, stating which languages are allowed.
+
+Using This Package
+==================
+
+As a user, if your language has been installed for this package, you
+only have to set the `LANG' environment variable to the appropriate
+`LL_CC' combination.  Here `LL' is an ISO 639 two-letter language code,
+and `CC' is an ISO 3166 two-letter country code.  For example, let's
+suppose that you speak German and live in Germany.  At the shell
+prompt, merely execute `setenv LANG de_DE' (in `csh'),
+`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash').
+This can be done from your `.login' or `.profile' file, once and for
+all.
+
+   You might think that the country code specification is redundant.
+But in fact, some languages have dialects in different countries.  For
+example, `de_AT' is used for Austria, and `pt_BR' for Brazil.  The
+country code serves to distinguish the dialects.
+
+   The locale naming convention of `LL_CC', with `LL' denoting the
+language and `CC' denoting the country, is the one use on systems based
+on GNU libc.  On other systems, some variations of this scheme are
+used, such as `LL' or `LL_CC.ENCODING'.  You can get the list of
+locales supported by your system for your country by running the command
+`locale -a | grep '^LL''.
+
+   Not all programs have translations for all languages.  By default, an
+English message is shown in place of a nonexistent translation.  If you
+understand other languages, you can set up a priority list of languages.
+This is done through a different environment variable, called
+`LANGUAGE'.  GNU `gettext' gives preference to `LANGUAGE' over `LANG'
+for the purpose of message handling, but you still need to have `LANG'
+set to the primary language; this is required by other parts of the
+system libraries.  For example, some Swedish users who would rather
+read translations in German than English for when Swedish is not
+available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.
+
+   Special advice for Norwegian users: The language code for Norwegian
+bokma*l changed from `no' to `nb' recently (in 2003).  During the
+transition period, while some message catalogs for this language are
+installed under `nb' and some older ones under `no', it's recommended
+for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and
+older translations are used.
+
+   In the `LANGUAGE' environment variable, but not in the `LANG'
+environment variable, `LL_CC' combinations can be abbreviated as `LL'
+to denote the language's main dialect.  For example, `de' is equivalent
+to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
+(Portuguese as spoken in Portugal) in this context.
+
+Translating Teams
+=================
+
+For the Free Translation Project to be a success, we need interested
+people who like their own language and write it well, and who are also
+able to synergize with other translators speaking the same language.
+Each translation team has its own mailing list.  The up-to-date list of
+teams can be found at the Free Translation Project's homepage,
+`http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams"
+area.
+
+   If you'd like to volunteer to _work_ at translating messages, you
+should become a member of the translating team for your own language.
+The subscribing address is _not_ the same as the list itself, it has
+`-request' appended.  For example, speakers of Swedish can send a
+message to `sv-request@li.org', having this message body:
+
+     subscribe
+
+   Keep in mind that team members are expected to participate
+_actively_ in translations, or at solving translational difficulties,
+rather than merely lurking around.  If your team does not exist yet and
+you want to start one, or if you are unsure about what to do or how to
+get started, please write to `translation@iro.umontreal.ca' to reach the
+coordinator for all translator teams.
+
+   The English team is special.  It works at improving and uniformizing
+the terminology in use.  Proven linguistic skill are praised more than
+programming skill, here.
+
+Available Packages
+==================
+
+Languages are not equally supported in all packages.  The following
+matrix shows the current state of internationalization, as of January
+2004.  The matrix shows, in regard of each package, for which languages
+PO files have been submitted to translation coordination, with a
+translation percentage of at least 50%.
+
+     Ready PO files       af am ar az be bg bs ca cs da de el en en_GB eo es
+                        +----------------------------------------------------+
+     a2ps               |             []             [] [] []                |
+     aegis              |                               ()                   |
+     ant-phone          |                               ()                   |
+     anubis             |                                                    |
+     ap-utils           |                                                    |
+     aspell             |             []                                     |
+     bash               |                      []       []             [] [] |
+     batchelor          |                                                    |
+     bfd                |                            []                   [] |
+     binutils           |                            []                   [] |
+     bison              |                            [] []                [] |
+     bluez-pin          | []                      []                   []    |
+     clisp              |                                                    |
+     clisp              |                               []    []          [] |
+     console-tools      |                         []    []                   |
+     coreutils          |                      []    [] []                [] |
+     cpio               |                            [] []                [] |
+     darkstat           |                []          ()                   [] |
+     diffutils          |                      [] [] [] [] []          [] [] |
+     e2fsprogs          |                         []    []                [] |
+     enscript           |                      []    [] []        []         |
+     error              |                      []    [] []        []      [] |
+     fetchmail          |                      [] () [] [] []             [] |
+     fileutils          |                            [] []                [] |
+     findutils          |             []       []    [] [] []          [] [] |
+     flex               |                      []    [] []                [] |
+     fslint             |                                                    |
+     gas                |                                                 [] |
+     gawk               |                      []    [] []                [] |
+     gbiff              |                               []                   |
+     gcal               |                      []                            |
+     gcc                |                            []                   [] |
+     gettext            |             []       []    [] []                [] |
+     gettext-examples   | []                   []       []                [] |
+     gettext-runtime    |             []       []    [] []                [] |
+     gettext-tools      |                      []       []                [] |
+     gimp-print         |                         [] [] []        []      [] |
+     gliv               |                                                    |
+     glunarclock        |                            [] []                   |
+     gnubiff            |                               []                   |
+     gnucash            |                         []    ()        []      [] |
+     gnucash-glossary   |                            [] ()                [] |
+     gnupg              |                      [] ()    [] []          [] [] |
+     gpe-aerial         |                         []                         |
+     gpe-beam           |                         []    []                   |
+     gpe-calendar       |                         []    []                   |
+     gpe-clock          |                         []    []                   |
+     gpe-conf           |                         []    []                   |
+     gpe-contacts       |                         []    []                   |
+     gpe-edit           |                         []                         |
+     gpe-go             |                         []                         |
+     gpe-login          |                         []    []                   |
+     gpe-ownerinfo      |                         []    []                   |
+     gpe-sketchbook     |                         []    []                   |
+     gpe-su             |                         []    []                   |
+     gpe-taskmanager    |                         []    []                   |
+     gpe-timesheet      |                         []                         |
+     gpe-today          |                         []    []                   |
+     gpe-todo           |                         []    []                   |
+     gphoto2            |                         [] [] []                [] |
+     gprof              |                            [] []                [] |
+     gpsdrive           |                               ()    ()          () |
+     gramadoir          |                               []                   |
+     grep               |             [] []    []       [] []             [] |
+     gretl              |                                                 [] |
+     gtick              | []                            ()                   |
+     hello              |                      []    [] [] []          [] [] |
+     id-utils           |                            [] []                   |
+     indent             |                      []       []             [] [] |
+     iso_3166           |          []    [] [] [] [] [] [] []          [] [] |
+     iso_3166_1         |                      [] [] [] [] []             [] |
+     iso_3166_2         |                                                    |
+     iso_3166_3         |                               []                   |
+     iso_4217           |                      []    [] []                [] |
+     iso_639            |                                                    |
+     jpilot             |                         [] []                   [] |
+     jtag               |                                                    |
+     jwhois             |                                                 [] |
+     kbd                |                         [] [] [] []             [] |
+     latrine            |                               ()                   |
+     ld                 |                            []                   [] |
+     libc               |                      [] [] [] [] []             [] |
+     libgpewidget       |                         []    []                   |
+     libiconv           |                      []    [] []             [] [] |
+     lifelines          |                            [] ()                   |
+     lilypond           |                               []                   |
+     lingoteach         |                                                    |
+     lingoteach_lessons |                               ()                () |
+     lynx               |                      [] [] [] []                   |
+     m4                 |                         [] [] [] []                |
+     mailutils          |                      []                         [] |
+     make               |                            [] []                [] |
+     man-db             |                      [] () [] []                () |
+     minicom            |                         []    []                [] |
+     mysecretdiary      |                            [] []                [] |
+     nano               |                      [] () [] []                [] |
+     nano_1_0           |                      [] () [] []                [] |
+     opcodes            |                                                 [] |
+     parted             |                      [] [] [] []                [] |
+     ptx                |                      []    [] []             [] [] |
+     python             |                                                    |
+     radius             |                                                 [] |
+     recode             |             []       []    [] [] []          [] [] |
+     rpm                |                         [] []                      |
+     screem             |                                                    |
+     scrollkeeper       |             []       [] [] [] []                [] |
+     sed                | []                   []    [] []             [] [] |
+     sh-utils           |                            [] []                [] |
+     shared-mime-info   |                                                    |
+     sharutils          |                      [] [] [] [] []             [] |
+     silky              |                               ()                   |
+     skencil            |                            [] ()                [] |
+     sketch             |                            [] ()                [] |
+     soundtracker       |                            [] []                [] |
+     sp                 |                               []                   |
+     tar                |                         [] [] []                [] |
+     texinfo            |                            [] []             []    |
+     textutils          |                      []    [] []                [] |
+     tin                |                               ()        ()         |
+     tp-robot           |                                                    |
+     tuxpaint           |                      [] [] [] [] []     []      [] |
+     unicode-han-tra... |                                                    |
+     unicode-transla... |                                                    |
+     util-linux         |                      [] [] [] []                [] |
+     vorbis-tools       |             []          [] []                   [] |
+     wastesedge         |                               ()                   |
+     wdiff              |                      []    [] []                [] |
+     wget               |                []    []    [] [] []             [] |
+     xchat              |                      []       [] []             [] |
+     xfree86_xkb_xml    |                         [] []                      |
+     xpad               |                                                 [] |
+                        +----------------------------------------------------+
+                          af am ar az be bg bs ca cs da de el en en_GB eo es
+                           4  0  0  1  9  4  1 40 41 60 78 17  1   5   13 68
+     
+                          et eu fa fi fr ga gl he hr hu id is it ja ko lg
+                        +-------------------------------------------------+
+     a2ps               | []       [] []                      ()    ()    |
+     aegis              |                                                 |
+     ant-phone          |             []                                  |
+     anubis             |             []                                  |
+     ap-utils           |             []                                  |
+     aspell             |             [] []                               |
+     bash               |             []             []                   |
+     batchelor          |             [] []                               |
+     bfd                |             []                                  |
+     binutils           |             []                         []       |
+     bison              | []          []                []    []          |
+     bluez-pin          |          [] [] []          [] []                |
+     clisp              |                                                 |
+     clisp              |             []                                  |
+     console-tools      |                                                 |
+     coreutils          | []       [] [] []                   [] []       |
+     cpio               |             []    []       []             []    |
+     darkstat           |             () []          [] []                |
+     diffutils          |          [] []    [] []    [] []       []       |
+     e2fsprogs          |                                                 |
+     enscript           |             []          []                      |
+     error              |          [] [] []          []                   |
+     fetchmail          |                                        []       |
+     fileutils          | []          [] []          []       [] []       |
+     findutils          | []       [] [] [] []    [] [] []    [] [] []    |
+     flex               |             [] []                         []    |
+     fslint             |             []                                  |
+     gas                |             []                                  |
+     gawk               |             []       []                []       |
+     gbiff              |             []                                  |
+     gcal               |             []                                  |
+     gcc                |             []                                  |
+     gettext            |             []                         [] []    |
+     gettext-examples   |             []                         []       |
+     gettext-runtime    |          [] []                []       [] []    |
+     gettext-tools      |             []                         [] []    |
+     gimp-print         |             []                         []       |
+     gliv               |             ()                                  |
+     glunarclock        |          []    [] []       []                   |
+     gnubiff            |             []                                  |
+     gnucash            |             ()                      []          |
+     gnucash-glossary   |                                     []          |
+     gnupg              | []       [] []    []          []    [] []       |
+     gpe-aerial         |             []                                  |
+     gpe-beam           |             []                                  |
+     gpe-calendar       |             []             [] []                |
+     gpe-clock          |             []                                  |
+     gpe-conf           |             []                                  |
+     gpe-contacts       |             []             []                   |
+     gpe-edit           |             []                []                |
+     gpe-go             |             []                                  |
+     gpe-login          |             []             []                   |
+     gpe-ownerinfo      |             []             [] []                |
+     gpe-sketchbook     |             []                                  |
+     gpe-su             |             []                                  |
+     gpe-taskmanager    |             []                                  |
+     gpe-timesheet      |             [] []             []                |
+     gpe-today          |             [] []                               |
+     gpe-todo           |             []                []                |
+     gphoto2            |             []             []          []       |
+     gprof              |             []                []                |
+     gpsdrive           |             ()                      () ()       |
+     gramadoir          |             [] []                               |
+     grep               | []       [] [] [] [] [] [] [] []    [] []       |
+     gretl              |             []                      []          |
+     gtick              |          [] [] []                               |
+     hello              | []    [] [] [] [] [] [] [] [] []    [] [] []    |
+     id-utils           |             []             [] []    []          |
+     indent             | []       [] [] [] []       [] []    [] []       |
+     iso_3166           |    []       [] []       [] [] []    []          |
+     iso_3166_1         |    []       [] []          [] []                |
+     iso_3166_2         |                                                 |
+     iso_3166_3         |                                                 |
+     iso_4217           | []          []    []       []       [] []       |
+     iso_639            |                                                 |
+     jpilot             |             []                         ()       |
+     jtag               |             []                                  |
+     jwhois             |             []             [] []    []          |
+     kbd                |             []                                  |
+     latrine            |             []                                  |
+     ld                 |             []                                  |
+     libc               |          [] []    []       []          [] []    |
+     libgpewidget       |             [] []          [] []                |
+     libiconv           | []       [] [] [] []    [] [] []    []          |
+     lifelines          |             ()                                  |
+     lilypond           |             []                                  |
+     lingoteach         |             []                []                |
+     lingoteach_lessons |                                                 |
+     lynx               | []                         []       [] []       |
+     m4                 |             []    []          []       []       |
+     mailutils          |                                                 |
+     make               |             []    [] [] []             [] []    |
+     man-db             |                                     () ()       |
+     minicom            |          [] []             []          []       |
+     mysecretdiary      |             []                []                |
+     nano               |             []    []          []    []          |
+     nano_1_0           |             []    []          []    []          |
+     opcodes            |             []                                  |
+     parted             |             []    []                   []       |
+     ptx                | []       [] [] [] []       [] []                |
+     python             |                                                 |
+     radius             |             []                                  |
+     recode             |             []    [] []    [] []    []          |
+     rpm                |             []                            []    |
+     screem             |                                                 |
+     scrollkeeper       |                            []                   |
+     sed                | []       [] [] [] []       [] []    [] []       |
+     sh-utils           | []       [] [] []          []       [] []       |
+     shared-mime-info   |          [] []             []                   |
+     sharutils          | []          []    []       []          []       |
+     silky              |          () []             ()       ()          |
+     skencil            |             []                                  |
+     sketch             |             []                                  |
+     soundtracker       |             []                      []          |
+     sp                 |             []                         ()       |
+     tar                | []       [] []    []    [] [] []    [] []       |
+     texinfo            |             []       [] []             []       |
+     textutils          |             [] [] []       []          [] []    |
+     tin                | []          ()                                  |
+     tp-robot           |             []                                  |
+     tuxpaint           |          [] []       []    [] [] [] [] [] []    |
+     unicode-han-tra... |                                                 |
+     unicode-transla... |             [] []                               |
+     util-linux         | []       [] []             []       () []       |
+     vorbis-tools       |             []                                  |
+     wastesedge         |             ()                                  |
+     wdiff              | []          [] [] []       [] []                |
+     wget               | []       [] []    []    [] []          []       |
+     xchat              | []       [] []                                  |
+     xfree86_xkb_xml    |             []             []                   |
+     xpad               |             [] []                               |
+                        +-------------------------------------------------+
+                          et eu fa fi fr ga gl he hr hu id is it ja ko lg
+                          22  2  1 26 106 28 24  8 10 41 33  1 26 33 12  0
+     
+                          lt lv mk mn ms mt nb nl nn no nso pl pt pt_BR ro ru
+                        +-----------------------------------------------------+
+     a2ps               |             []       []    ()     ()     []   [] [] |
+     aegis              |                      ()                       () () |
+     ant-phone          |                      []                       []    |
+     anubis             |             []    [] []           []          [] [] |
+     ap-utils           |                      []           ()          []    |
+     aspell             |                      []                             |
+     bash               |                                          []   [] [] |
+     batchelor          |                                               []    |
+     bfd                |                                               []    |
+     binutils           |                                                  [] |
+     bison              |             []       []                  []   [] [] |
+     bluez-pin          |                      []           []          []    |
+     clisp              |                                                     |
+     clisp              |                      []                             |
+     console-tools      |                                                  [] |
+     coreutils          |                                   []             [] |
+     cpio               |                      []           []     []   [] [] |
+     darkstat           |             []       []                  []   []    |
+     diffutils          |             []       []           []     []   [] [] |
+     e2fsprogs          |                                   []                |
+     enscript           |                      []                  []   [] [] |
+     error              |                      []                  []   []    |
+     fetchmail          |                      []           []     ()      [] |
+     fileutils          |                                   []          [] [] |
+     findutils          |                      []           []     []   [] [] |
+     flex               |                                   []     []   [] [] |
+     fslint             |                      []                       []    |
+     gas                |                                                     |
+     gawk               |                                   []     []   []    |
+     gbiff              |                      []                       []    |
+     gcal               |                                                     |
+     gcc                |                                                     |
+     gettext            |                                   []          [] [] |
+     gettext-examples   |                      []           []          []    |
+     gettext-runtime    |                      []           []          [] [] |
+     gettext-tools      |                                   []          []    |
+     gimp-print         |                      []                             |
+     gliv               |                      []                  []   []    |
+     glunarclock        |             []       []                       [] [] |
+     gnubiff            |                      []                             |
+     gnucash            |                      []              []  ()      [] |
+     gnucash-glossary   |                      []              []             |
+     gnupg              |                                               []    |
+     gpe-aerial         |                      []              []       [] [] |
+     gpe-beam           |                      []              []       [] [] |
+     gpe-calendar       |                      []              []       [] [] |
+     gpe-clock          |                      []              []       [] [] |
+     gpe-conf           |                      []              []       [] [] |
+     gpe-contacts       |                      []              []       [] [] |
+     gpe-edit           |                      []              []       [] [] |
+     gpe-go             |                      []                       [] [] |
+     gpe-login          |                      []              []       [] [] |
+     gpe-ownerinfo      |                      []              []       [] [] |
+     gpe-sketchbook     |                      []              []       [] [] |
+     gpe-su             |                      []              []       [] [] |
+     gpe-taskmanager    |                      []              []       [] [] |
+     gpe-timesheet      |                      []              []       [] [] |
+     gpe-today          |                      []              []       [] [] |
+     gpe-todo           |                      []              []       [] [] |
+     gphoto2            |                                               []    |
+     gprof              |                                          []   []    |
+     gpsdrive           |                      ()    ()                 []    |
+     gramadoir          |                      ()                       []    |
+     grep               |                                   [] []  []   [] [] |
+     gretl              |                                                     |
+     gtick              |                      []                       [] [] |
+     hello              |    []       []    [] [] [] []     []     []   [] [] |
+     id-utils           |                      []                  []   [] [] |
+     indent             |                      []                  []   [] [] |
+     iso_3166           |          []                [] []                    |
+     iso_3166_1         |                      []    []                       |
+     iso_3166_2         |                                                     |
+     iso_3166_3         |                      []                             |
+     iso_4217           |          []          [] [] []     [] []  []      [] |
+     iso_639            |          []                                         |
+     jpilot             |                      ()    ()                       |
+     jtag               |                                                     |
+     jwhois             |                      []           []     []   [] () |
+     kbd                |                      []           []          []    |
+     latrine            |                                               []    |
+     ld                 |                                                     |
+     libc               |                   []       []     []     []         |
+     libgpewidget       |                      []              []       []    |
+     libiconv           |                      []           []     []   [] [] |
+     lifelines          |                                                     |
+     lilypond           |                                                     |
+     lingoteach         |                                                     |
+     lingoteach_lessons |                                                     |
+     lynx               |                      []                  []      [] |
+     m4                 |                      []           []     []   [] [] |
+     mailutils          |                                   []          [] [] |
+     make               |                      []           []     []      [] |
+     man-db             |                                               []    |
+     minicom            |                                   []     []   [] [] |
+     mysecretdiary      |                      []                  []   []    |
+     nano               |             []       []           []          [] [] |
+     nano_1_0           |             []    []    []        []          [] [] |
+     opcodes            |                      []                       []    |
+     parted             |                         []        [] []  []         |
+     ptx                |                   [] []    []     [] []  []   [] [] |
+     python             |                                                     |
+     radius             |                                   []             [] |
+     recode             |                                   []     []   [] [] |
+     rpm                |                                   [] []          [] |
+     screem             |                                                     |
+     scrollkeeper       |                   [] []           []          [] [] |
+     sed                |                                   []     []   []    |
+     sh-utils           |                   []                             [] |
+     shared-mime-info   |                      [] []                          |
+     sharutils          |                      []                          [] |
+     silky              |                                                  () |
+     skencil            |                                      []  []         |
+     sketch             |                                      []  []         |
+     soundtracker       |                                                     |
+     sp                 |                                                     |
+     tar                |             []    []       []     []     []   []    |
+     texinfo            |                   []              []          [] [] |
+     textutils          |                   []                             [] |
+     tin                |                                                     |
+     tp-robot           |                      []                             |
+     tuxpaint           | []          []       [] []        [] []  []   []    |
+     unicode-han-tra... |                                                     |
+     unicode-transla... |                                                     |
+     util-linux         |                      []                  []      [] |
+     vorbis-tools       |                      []                       [] [] |
+     wastesedge         |                                                     |
+     wdiff              |             []                    []     []   [] [] |
+     wget               |                                   []          [] [] |
+     xchat              |    []                []                          [] |
+     xfree86_xkb_xml    |                      []                          [] |
+     xpad               |                      []                       []    |
+                        +-----------------------------------------------------+
+                          lt lv mk mn ms mt nb nl nn no nso pl pt pt_BR ro ru
+                           1  2  0  3 12  0 10 69  6  7  1  40 26  36   76 63
+     
+                          sk sl sr sv ta th tr uk ven vi wa xh zh_CN zh_TW zu
+                        +-----------------------------------------------------+
+     a2ps               |    []    []       [] []                             | 16
+     aegis              |                                                     |  0
+     ant-phone          |                                                     |  3
+     anubis             |                   [] []                             |  9
+     ap-utils           |                      ()                             |  3
+     aspell             |                                                     |  4
+     bash               |                                                     |  9
+     batchelor          |                                                     |  3
+     bfd                |          []       []                                |  6
+     binutils           |          []       []                  []            |  8
+     bison              |          []       []                                | 14
+     bluez-pin          | []       []                    []                   | 14
+     clisp              |                                                     |  0
+     clisp              |                                                     |  5
+     console-tools      |                                                     |  3
+     coreutils          |    []    []       []                        []      | 16
+     cpio               |          []                           []            | 14
+     darkstat           | []    [] []                           ()    ()      | 12
+     diffutils          |          []       []                        []      | 23
+     e2fsprogs          |          []       []                                |  6
+     enscript           |          []       []                                | 12
+     error              | []                []                        []      | 15
+     fetchmail          | []                []                                | 11
+     fileutils          |    []    []       []                  []    []      | 17
+     findutils          | [] [] [] []       []                  []            | 29
+     flex               |          []       []                                | 13
+     fslint             |                                                     |  3
+     gas                |                   []                                |  3
+     gawk               |          []       []                                | 12
+     gbiff              |                                                     |  4
+     gcal               |          []       []                                |  4
+     gcc                |                   []                                |  4
+     gettext            | [] []    []       []                        []      | 16
+     gettext-examples   | []    [] []       []                  []            | 14
+     gettext-runtime    | [] [] [] []       [] []               []    []      | 22
+     gettext-tools      | [] [] [] []       []                  []            | 14
+     gimp-print         | []       []                                         | 10
+     gliv               |                                                     |  3
+     glunarclock        |       [] []                    []                   | 13
+     gnubiff            |                                                     |  3
+     gnucash            | []                                          []      |  9
+     gnucash-glossary   | []       []                                 []      |  8
+     gnupg              | []       []       []                        []      | 17
+     gpe-aerial         |          []                                         |  7
+     gpe-beam           |          []                                         |  8
+     gpe-calendar       | []       []                    []           []      | 13
+     gpe-clock          | []    [] []                                         | 10
+     gpe-conf           | []       []                                         |  9
+     gpe-contacts       | []       []                                 []      | 11
+     gpe-edit           | []    [] []                    []           []      | 12
+     gpe-go             |                                                     |  5
+     gpe-login          | []    [] []                    []           []      | 13
+     gpe-ownerinfo      | []    [] []                                 []      | 13
+     gpe-sketchbook     | []       []                                         |  9
+     gpe-su             | []    [] []                                         | 10
+     gpe-taskmanager    | []    [] []                                         | 10
+     gpe-timesheet      | []    [] []                                 []      | 12
+     gpe-today          | []    [] []                    []           []      | 13
+     gpe-todo           | []       []                    []           []      | 12
+     gphoto2            | []       []                           []            | 11
+     gprof              |          []       []                                |  9
+     gpsdrive           | []       []                                         |  3
+     gramadoir          | []                                                  |  5
+     grep               |    [] []          [] []                             | 26
+     gretl              |                                                     |  3
+     gtick              |                                                     |  7
+     hello              | []    [] []       [] []                             | 34
+     id-utils           |          []       []                                | 12
+     indent             | []    [] []       []                                | 21
+     iso_3166           | [] [] [] []       []    []     []                   | 27
+     iso_3166_1         | [] []             []                                | 16
+     iso_3166_2         |                                                     |  0
+     iso_3166_3         |                                                     |  2
+     iso_4217           | [] []    []       [] []               []            | 24
+     iso_639            |                                                     |  1
+     jpilot             |          []       []        []        []    []      |  9
+     jtag               | []                                                  |  2
+     jwhois             |          ()       []                        []      | 11
+     kbd                |          []       []                                | 11
+     latrine            |                                                     |  2
+     ld                 |          []       []                                |  5
+     libc               | []       []       []                  []            | 20
+     libgpewidget       | []    [] []                    []                   | 13
+     libiconv           | [] [] [] []       [] []        []     []            | 27
+     lifelines          |          []                                         |  2
+     lilypond           |          []                                         |  3
+     lingoteach         |                                                     |  2
+     lingoteach_lessons |                                       ()            |  0
+     lynx               |          []       [] []                             | 14
+     m4                 |          []                           []            | 15
+     mailutils          |                                                     |  5
+     make               |          []       []                  []            | 16
+     man-db             |          []                                         |  5
+     minicom            |                                                     | 11
+     mysecretdiary      |          []       []                                | 10
+     nano               |       [] []       [] []                             | 17
+     nano_1_0           |          []       [] []                             | 17
+     opcodes            |          []       []                                |  6
+     parted             |          []       []                  []            | 15
+     ptx                |          []       []                                | 22
+     python             |                                                     |  0
+     radius             |                                                     |  4
+     recode             |    []    []       []                                | 20
+     rpm                |          []       []                                |  9
+     screem             |          []                           []            |  2
+     scrollkeeper       | []    [] []                                         | 15
+     sed                | [] [] [] []       [] []                             | 24
+     sh-utils           |    []             []                                | 14
+     shared-mime-info   |       [] []                                         |  7
+     sharutils          |       [] []       []                        []      | 17
+     silky              | ()                                                  |  3
+     skencil            |          []                                         |  6
+     sketch             |          []                                         |  6
+     soundtracker       | []       []                                         |  7
+     sp                 |                   []                                |  3
+     tar                | [] []    []       []                  []            | 24
+     texinfo            |          []       []                  []            | 14
+     textutils          |    []    []       []                        []      | 16
+     tin                |                                                     |  1
+     tp-robot           |                                                     |  2
+     tuxpaint           | []       []       []           []     []            | 29
+     unicode-han-tra... |                                                     |  0
+     unicode-transla... |                                                     |  2
+     util-linux         |          []       []                                | 15
+     vorbis-tools       |                                                     |  8
+     wastesedge         |                                                     |  0
+     wdiff              | []       []       []                                | 18
+     wget               | [] [] [] []       [] []               []    []      | 24
+     xchat              | [] [] [] []                           []            | 15
+     xfree86_xkb_xml    | []    []          [] []               []            | 11
+     xpad               |                                                     |  5
+                        +-----------------------------------------------------+
+       63 teams           sk sl sr sv ta th tr uk ven vi wa xh zh_CN zh_TW zu
+      131 domains         47 19 28 83  0  0 59 13  1   1 11  0  22    22    0  1373
+
+   Some counters in the preceding matrix are higher than the number of
+visible blocks let us expect.  This is because a few extra PO files are
+used for implementing regional variants of languages, or language
+dialects.
+
+   For a PO file in the matrix above to be effective, the package to
+which it applies should also have been internationalized and
+distributed as such by its maintainer.  There might be an observable
+lag between the mere existence a PO file and its wide availability in a
+distribution.
+
+   If January 2004 seems to be old, you may fetch a more recent copy of
+this `ABOUT-NLS' file on most GNU archive sites.  The most up-to-date
+matrix with full percentage details can be found at
+`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'.
+
+Using `gettext' in new packages
+===============================
+
+If you are writing a freely available program and want to
+internationalize it you are welcome to use GNU `gettext' in your
+package.  Of course you have to respect the GNU Library General Public
+License which covers the use of the GNU `gettext' library.  This means
+in particular that even non-free programs can use `libintl' as a shared
+library, whereas only free software can use `libintl' as a static
+library or use modified versions of `libintl'.
+
+   Once the sources are changed appropriately and the setup can handle
+the use of `gettext' the only thing missing are the translations.  The
+Free Translation Project is also available for packages which are not
+developed inside the GNU project.  Therefore the information given above
+applies also for every other Free Software Project.  Contact
+`translation@iro.umontreal.ca' to make the `.pot' files available to
+the translation teams.
+
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/AUTHORS b/framework/modules/c_LibExifModule/libexif-0.6.20/AUTHORS
new file mode 100644
index 0000000000000000000000000000000000000000..127a5b494ba5a1ee095a34499b4c99fea9e260d7
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/AUTHORS
@@ -0,0 +1,4 @@
+Lutz Mueller <urc8@rz.uni-karlsruhe.de>
+Jan Patera <patera@users.sourceforge.net>
+Hans Ulrich Niedermann <gp@n-dimensional.de>
+Hubert Figuiere <hub@figuiere.net>
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/COPYING b/framework/modules/c_LibExifModule/libexif-0.6.20/COPYING
new file mode 100644
index 0000000000000000000000000000000000000000..602bfc94635ddf8f1bf2b00419a85ead645a5b67
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/COPYING
@@ -0,0 +1,504 @@
+		  GNU LESSER GENERAL PUBLIC LICENSE
+		       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+		  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+			    NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/ChangeLog b/framework/modules/c_LibExifModule/libexif-0.6.20/ChangeLog
new file mode 100644
index 0000000000000000000000000000000000000000..08ecbb53ad4fbbc8b7a096730a198c3cc7f413e4
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/ChangeLog
@@ -0,0 +1,1991 @@
+2010-12-15  Dan Fandrich <dan@coneharvesters.com>
+
+	* Released 0.6.20
+
+2010-12-13  Dan Fandrich <dan@coneharvesters.com>
+
+	* po/da.po: Updated Danish translation by Joe Hansen
+	* Updated non-TP translations from launchpad.net:
+	  be.po en_GB.po pt_BR.po pt.po ru.po sq.po sr.po zh_CN.po
+	* po/bs.po: Added Bosnian translation from launchpad.net
+	* po/tr.po: Added Turkish translation from launchpad.net
+
+2010-12-10  Dan Fandrich <dan@coneharvesters.com>
+
+	* Changed the display of rational numbers to estimate the number of
+	  significant figures (based on the size of the denominator) and show
+	  that number of decimal places.  This simplifies the output in the
+	  case of integers (e.g. resolution), and shows all the available
+	  accuracy in the case of rationals (e.g. latitude & longitude).
+
+2010-10-14  Dan Fandrich <dan@coneharvesters.com>
+
+	* Fixed some invalid format specifiers and typecasts. This caused a
+	  problem on mingw32, at least.
+
+2010-10-07  Dan Fandrich <dan@coneharvesters.com>
+
+	* Refactored MakerNote detection code to put detection of each type
+	  into the module handling that type
+
+2010-09-23  Dan Fandrich <dan@coneharvesters.com>
+
+	* exif_entry_dump() now displays the correct tag name for GPS tags by
+	  taking the IFD into account when looking up the name. Fixes
+	  bug #3073307.
+
+2010-08-11  Dan Fandrich <dan@coneharvesters.com>
+
+	* Removed redundant sentence. Fixes Ubuntu bug #197306
+
+2010-07-23  Dan Fandrich <dan@coneharvesters.com>
+
+	* Canon EOS 5D Mark II writes Aperture values as invalid values
+	  0x80000000/1 which makes pow() throw floating-point exceptions
+
+2010-06-16  Dan Fandrich <dan@coneharvesters.com>
+
+	* po/da.po: Updated Danish translation by Joe Hansen
+	* po/it.po: Updated Italian translation by Sergio Zanchetta 
+	* po/nl.po: Updated Dutch translation by Erwin Poeze
+
+2010-02-18  Dan Fandrich <dan@coneharvesters.com>
+
+	* po/da.po: Updated Danish translation by Joe Hansen
+	* po/de.po: Updated German translation by Marcus Meissner
+	* po/ja.po: Updated Japanese translation by Tadashi Jokagi
+	* po/pl.po: Updated Polish translation by Jakub Bogusz
+	* po/vi.po: Updated Vietnamese translation by Clytie Siddall
+	* po/en_CA.po: Updated Canadian English translation
+
+2010-02-05  Dan Fandrich <dan@coneharvesters.com>
+
+	* Made the case of text output be more consistent. Now, tag titles
+	  have each word capitalized (like a title) and tag values
+	  are always lower case, except the first word which is capitalized
+	  (more like a sentence).
+
+2010-01-25  Dan Fandrich <dan@coneharvesters.com>
+
+	* configure.ac: Turned on the --enable-silent-rules configure option
+
+2009-12-30  Dan Fandrich <dan@coneharvesters.com>
+
+	* po/da.po: Updated Danish translation by Joe Hansen
+	* po/sk.po: Updated Slovak translation by Ivan Masár
+	* po/sv.po: Updated Swedish translation by Daniel Nylander
+
+2009-12-17  Dan Fandrich <dan@coneharvesters.com>
+
+	* Don't warn "No thumbnail but entries on thumbnail." unless
+	  there actually are entries.
+
+2009-12-15  Dan Fandrich <dan@coneharvesters.com>
+
+	* libexif.pc.in: Move -lm flag into Libs.private since it's only
+	  needed when statically linking. A future enhancement would be to
+	  make even this dependent on the check for -lm done in configure.
+
+2009-12-11  Dan Fandrich <dan@coneharvesters.com>
+
+	* Added tag 0xEA1C, the Padding tag from the Microsoft HD Photo
+	  specification.
+
+2009-12-08  Dan Fandrich <dan@coneharvesters.com>
+
+	* Fixed some memory leaks in the write-exif.c example program and
+	  added some examples of allocating a new tag.
+
+2009-11-27  Dan Fandrich <dan@coneharvesters.com>
+
+	* po/ja.po: Updated Japanese translation by Tadashi Jokagi
+
+2009-11-25  Dan Fandrich <dan@coneharvesters.com>
+
+	* po/da.po: Updated Danish translation by Joe Hansen
+
+2009-11-23  Dan Fandrich <dan@coneharvesters.com>
+
+	* Include README-Win32.txt in all source distributions
+
+2009-11-16  Dan Fandrich <dan@coneharvesters.com>
+
+	* po/ja.po: Updated Japanese translation by Tadashi Jokagi
+
+2009-11-12  Dan Fandrich <dan@coneharvesters.com>
+
+	* Fixed a heap buffer overflow during tag format conversion.
+	* Released 0.6.19
+
+2009-11-07  Dan Fandrich <dan@coneharvesters.com>
+
+	* Sorted ExifFormatTable[] in approximate decreasing order of
+	  popularity to decrease the total average lookup time.
+
+2009-11-05  Dan Fandrich <dan@coneharvesters.com>
+
+	* Added a bunch of new translations from launchpad.net
+	* po/be.po: Added Belarusian translation by Iryna Nikanchuk 
+	* po/en_GB.po: Added English (United Kingdom) translation by Bruce
+	  Cowan 
+	* po/it.po: Added Italian translation by Sergio Zanchetta 
+	* po/ja.po: Added Japanese translation by Shushi Kurose 
+	* po/pt.po: Added Portuguese translation by nglnx 
+	* po/sq.po: Added Albanian translation by Vilson Gjeci 
+	* po/zh_CN.po: Added Chinese (simplified) translation by Tao Wei 
+
+2009-11-03  Dan Fandrich <dan@coneharvesters.com>
+
+	* po/da.po: Updated Danish translation by Joe Hansen
+
+2009-10-27  Dan Fandrich <dan@coneharvesters.com>
+
+	* Improved tag table lookup performance by optimally ordering IFD
+	  search and aborting searches early if the tag is not found.
+
+2009-10-14  Dan Fandrich <dan@coneharvesters.com>
+
+	* Changed the various functions searching for tags in ExifTagTable[]
+	  to use a binary search. This single change increases the speed of
+	  a run through the libexif-testsuite by 7%
+
+2009-10-13  Dan Fandrich <dan@coneharvesters.com>
+
+	* po/sv.po: Updated Swedish translation by Daniel Nylander
+	* po/vi.po: Updated Vietnamese translation by Clytie Siddall
+	* Fixed an inverted logic condition that prevented the bug
+	  report address from appearing in the .pot file
+	* Ensure that ExifTagTable[] is sorted by tag to allow for future
+	  more efficient searching.
+
+2009-10-09  Dan Fandrich <dan@coneharvesters.com>
+
+	* Released 0.6.18
+
+2009-10-09  Dan Fandrich <dan@coneharvesters.com>
+
+	* po/sr.po: Added Serbian translation by Marko Uskokovic
+	* po/pt_BR.po: Added Portuguese (Brazil) translation by André Gondi
+
+2009-10-08  Dan Fandrich <dan@coneharvesters.com>
+
+	* Demoted from EXIF_LOG_CODE_CORRUPT_DATA to EXIF_LOG_CODE_DEBUG the
+	  MakerNote log messages that would result if a MakerNote were
+	  rewritten by an application without rebasing the internal data
+	  offsets.  The exif front end (at least) aborts processing if
+	  such a log message is found, but these kinds of errors are
+	  far too common (and practically unavoidable) to handle them
+	  this way.
+
+2009-10-06  Dan Fandrich <dan@coneharvesters.com>
+
+	* Added --enable-maintainer-mode in configure and made the SourceForge
+	  logo appear in the Doxygen documentation only when it's enabled.
+
+2009-10-05  Dan Fandrich <dan@coneharvesters.com>
+
+	* Updated translations from Translation Project members to the
+	  latest & hopefully final .pot file before release
+
+2009-10-01  Dan Fandrich <dan@coneharvesters.com>
+
+	* Bumped the library minor version number because of the addition
+	  of exif_loader_get_buf()
+	* Added exif.h to the source tarball so users can generate full
+	  Doxygen documentation.
+
+2009-09-30  Dan Fandrich <dan@coneharvesters.com>
+
+	* Added a new public API function, exif_loader_get_buf(), which
+	  returns a pointer to the raw data in the ExifLoader. Without this,
+	  the only way to get the ExifLoader data out was as an
+	  ExifData and using only the default set of ExifDataOptions.
+
+2009-09-29  Dan Fandrich <dan@coneharvesters.com>
+
+	* Added EXIF_DATA_TYPE_UNKNOWN as a backwards-compatible
+	  replacement for most uses of EXIF_DATA_TYPE_COUNT since that's
+	  a clearer name for how it's being used.
+
+2009-09-26  Dan Fandrich <dan@coneharvesters.com>
+
+	* libexif/exif-data.c: Added more error log messages and improved
+	  a few data boundary checks.
+	* Sped up exif_content_fix() considerably by splitting the one giant
+	  loop into two much smaller & faster loops.
+
+2009-09-24  Dan Fandrich <dan@coneharvesters.com>
+
+	* Fixed some problems in MakerNote parsing that could cause a
+	  read past the end of a buffer and therefore a segfault.
+	* Allow MakerNote parsing to continue even if one tag parses
+	  incorrectly.
+	* Log an error whenever memory allocation fails in MakerNote parsing.
+
+2009-09-23  Dan Fandrich <dan@coneharvesters.com>
+
+	* Removed bogus "APEX" value from shutter speed display (thanks to
+	  Jef Driesen for confirming this)
+	* Fixed a couple of off-by-one unnecessary string truncations
+	* Define M_PI for those systems that don't have it
+
+2009-09-23  Jan Patera <patera@users.sourceforge.net>
+
+	* po/cs.po: Updated Czech translation by Jan Patera
+
+2009-09-18  Dan Fandrich <dan@coneharvesters.com>
+
+	* Added support for writing Pentax and Casio v2 MakerNotes
+	* Now displaying all components in Pentax and Casio v2 MakerNotes
+	  when a tag has more than one
+
+2009-09-18  Dan Fandrich <dan@coneharvesters.com>
+
+	* po/de.po: Updated German translation by Marcus Meissner
+	* po/sv.po: Updated Swedish translation by Daniel Nylander
+	* po/vi.po: Updated Vietnamese translation by Clytie Siddall
+
+2009-09-17  Dan Fandrich <dan@coneharvesters.com>
+
+	* po/pl.po: Updated Polish translation by Jakub Bogusz
+
+2009-09-16  Dan Fandrich <dan@coneharvesters.com>
+
+	* po/en_CA.po: Updated Canadian English translation
+
+2009-08-12  Lutz Mueller <lutz@users.sourceforge.com>
+
+	Patch by Vladimir Petrov <vppetrov@mm-sol.com> plus some whitespace
+        fixes by myself:
+
+	* libexif/exif-entry.c: (exif_entry_[fix,get_value,initialize]): 
+          Support EXIF_TAG_ISO_SPEED_RATINGS.
+
+2009-06-15  Dan Fandrich <dan@coneharvesters.com>
+
+	* po/da.po: Danish translation corrections by Lars Christian Jensen
+
+2009-06-03  Dan Fandrich <dan@coneharvesters.com>
+
+	* po/da.po: Added Danish translation by Joe Hansen
+
+2009-05-28  Dan Fandrich <dan@coneharvesters.com>
+
+	* Fixed negative exposure values in Canon makernotes (bug #2797280)
+
+2009-05-02  Dan Fandrich <dan@coneharvesters.com>
+
+	* Added contrib/examples/write-exif.c
+	* Create a valid default for EXIF_TAG_COMPONENTS_CONFIGURATION
+
+2009-03-21  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Meder Kydyraliev <meder.k@gmail.com> suggested to add some sanity
+	checks:
+
+	* libexif/exif-data.c (exif_data_load_entry),
+	  (exif_data_load_data_thumbnail)
+	* libexif/canon/exif_mnote-data-canon.c
+          (exif_mnote_data_canon_load)
+	* libexif/fuji/exif-mnote-data-fuji.c
+	  (exif_mnote_data_fuji_load)
+	* libexif/olympus/exif-mnote-data-olympus.c
+          (exif_mnote_data_olympus_load)
+	* libexif/pentax/exif-mnote-data-pentax.c
+	  (exif_mnote_data_pentax_load)
+
+2009-03-16  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/canon/exif-mnote-data-canon.c:
+          (exif_mnote_data_canon_load): Fix the coding style in this function
+	  to make it easier to read.
+
+2009-02-02  Dan Fandrich <dan@coneharvesters.com>
+
+	* Added AC_C_INLINE to configure.ac to define the inline keyword
+	  if the compiler doesn't handle it already.
+
+2009-01-28  Dan Fandrich <dan@coneharvesters.com>
+
+	* Decode the value for EXIF_TAG_LIGHT_SOURCE and EXIF_TAG_SCENE_TYPE
+	* Split out the generic ExifEntry formatting code into a new function
+	  exif_entry_format_value()
+	* Fixed some signed vs unsigned formatting errors
+	* Format the EXIF_TAG_GPS_TIME_STAMP & EXIF_TAG_GPS_ALTITUDE_REF tags
+	* Improved the wrong data type fixup
+	* Separated the MNOTE_SANYO_TAG_SELFTIMER 2 sec. case from the other
+	  On/Off cases
+	* Renamed MNOTE_NIKON_TAG_PREVIEWIMAGE_IFD_POINTERS to show that it's 
+	  an IFD. The case of IFDs in MakerNotes needs to be handled better
+	  because right now, those MakerNote IFD tags are corrupted since
+	  the sub-IFDs aren't being read and written.
+
+2009-01-22  Dan Fandrich <dan@coneharvesters.com>
+
+	* Fix exif_tag_get_support_level_in_ifd() to handle the case where two
+	  tags with the same number exist in different IFDs.
+	* Added test-tagtable to do some tests on the static EXIF tag
+	  information table.
+
+2009-01-21  Dan Fandrich <dan@coneharvesters.com>
+
+	* libexif/exif-entry.c: Initialize the default for EXIF_TAG_COLOR_SPACE
+	  to "Uncalibrated"
+	* libexif/exif-data.c: Reduce the recursion limit
+	* When the data type is not known in exif_tag_get_support_level_in_ifd
+	  check the support level for all data types and if it's all the same,
+	  return that. This means that fixing a new EXIF tag block will
+	  actually create some tags in it now.
+
+2009-01-15  Dan Fandrich <dan@coneharvesters.com>
+
+	* Interpret more Sanyo MakerNote tags
+
+2009-01-12  Dan Fandrich <dan@coneharvesters.com>
+
+	* Added support for Epson MakerNotes, which have the identical
+	  tag format and namespace of the Olympus ones.
+
+2009-01-06  Dan Fandrich <dan@coneharvesters.com>
+
+	* libexif/exif-tags.c: Added remaining GPS tags from the EXIF 2.2
+	  spec to the tag table.
+
+2009-01-03  Dan Fandrich <dan@coneharvesters.com>
+
+	* contrib/examples/photographer.c: Added example program to show how
+	  to display EXIF and MakerNote tags
+
+2008-12-22  Dan Fandrich <dan@coneharvesters.com>
+
+	* po/vi.po: Updated Vietnamese translation by Clytie Siddall
+        * Fixed bug #1946138 to stop ignoring CFLAGS in the sqrt configure test
+
+2008-11-25  Dan Fandrich <dan@coneharvesters.com>
+
+	* po/sk.po: Updated Slovak translation by Ivan Masár
+
+2008-11-22  Dan Fandrich <dan@coneharvesters.com>
+
+	* Added Doxygen comments for the main API entry points and data
+	  structures
+
+2008-11-18  Dan Fandrich <dan@coneharvesters.com>
+
+	* libexif/exif-entry.c & configure.ac: use localtime_r when available
+	  to make libexif thread safe
+	* po/nl.po: Updated Dutch translation by Erwin Poeze
+	* po/pl.po: Updated Polish translation by Jakub Bogusz
+	* contrib/examples/*: Added a couple of simple example programs
+	  to show how to use libexif. One was written by Naysawn Naderi
+	  and the other one I wrote. Closes bug #1246824.
+
+2008-11-06  Dan Fandrich <dan@coneharvesters.com>
+
+	* Released 0.6.17
+
+2008-11-05  Dan Fandrich <dan@coneharvesters.com>
+
+	* aolserver/*: moved to contrib/aolserver/
+	* README: updated
+	* po/de.po: Updated German translation by Marcus Meissner
+	* Added contrib/watcom/ directory to the source tarball now that
+	  Jan Patera brought it up-to-date.
+	* libexif.spec.in: changed default release number to 1; added NEWS,
+	  AUTHORS and COPYING files to package; moved libexif.so file to -devel
+	  package; corrected license to LGPL
+
+2008-10-20  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif/pentax/mnote-pentax-tag.c & olympus/mnote-olympus-tag.c:
+	  Don't crash in mnote_XX_tag_get_description on unknown tags
+
+2008-10-04  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif/canon/mnote-canon-entry.c: fixed interpretation
+	  of Auto ISO and Self-Timer entries
+
+2008-10-08  Aric Blumer <aricblumer@users.sourceforge.net>
+
+	* libexif/exif-tag.c: GPS tags EXIF_TAG_GPS_IMG_DIRECTION_REF
+	  and EXIF_TAG_GPS_IMG_DIRECTION are now recognized
+
+2008-10-04  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif/olympus/exif-mnote-data-olympus.c: bug #2071600,
+	  gnome Bug #549029: Original v1 Nikon makernotes
+	  are always parsed using MM order, regardless of
+	  main EXIF data word order.
+
+2008-10-04  Louis Strous <louis_strous@users.sourceforge.net>
+
+	* libexif/exif-loader.c: DHT & DQT markers are now properly
+	  skipped when searching for APP1 marker in JPEG stream.
+	  Apparently such files are created by Gisteq PhotoTrackr SW
+	  used to add GPS tags.
+
+2008-10-02  Niek Bergboer <niek@google.com>
+
+	* libexif/exif-data.c libexif/canon/exif-mnote-data-canon.c
+	  libexif/fuji/exif-mnote-data-fuji.c
+	  libexif/olympus/exif-mnote-data-olympus.c
+	  libexif/pentax/exif-mnote-data-pentax.c:
+	  Replaced unsigned int by size_t in some places
+	  Added some checks on sizes, makernotes shouldn't
+	  be larger than 64kb.
+
+2008-09-04  Dan Fandrich <dan@coneharvesters.com>
+
+	* po/nl.po: Updated Dutch translation by Erwin Poeze
+
+2008-07-25  Marcus Meissner  <marcus@jet.franken.de>
+
+	* libexif/exif-content.c: Handle realloc to 0 case
+	  correctly. Fixes EOG and GIMP crashes.
+
+2008-06-26  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif/olympus/exif-mnote-data-olympus.c: better support for
+	  MNOTE_OLYMPUS_TAG_FLASHDEVICE/SENSORTEMPERATURE/LENSTEMPERATURE
+
+2008-06-23  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Patch by Mika Raento <mikie@google.com>:
+
+	* libexif/exif-loader.c: (exif_loader_free) Don't forget the logger.
+
+2008-06-15  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* configure.ac: Revert previous commit
+	* po/zh_CN.po: Remove.
+	* po/[sk,vi].po: Revert.
+
+2008-06-15  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* configure.ac: New po-file: zh_CN
+	* po/zh_CN.po: New
+	* po/[sk,vi].po: Updated.
+
+2008-05-06  Marcus Meissner  <meissner@suse.de>
+
+	* libexif/exif-content.c: Fixed a endless loop
+	  possibility in content remove (triggered by EOG
+	  and potentially others on certain JPEGs).
+
+2008-04-03  Dan Fandrich <dan@coneharvesters.com>
+
+	po/sk.po: Updated Slovak translation by Ivan Masár
+
+2008-02-20  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Follow-up on #1774591:
+
+	* libexif/exif-data.c: (exif_data_save_data_content) Remove check for
+	now impossible NULL value.
+
+2008-02-17  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Fix #1865046:
+
+	* COPYING:
+	* libexif/...: Use 'ue' instead of some strange German character.
+
+2008-02-17  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-loader.c: (exif_loader_get_data) Return NULL if no
+	EXIF data has been found.
+
+2008-02-16  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Jan Patera <patera@pictview.com> spotted a problem with my last fix
+	for #1774591:
+
+	* libexif/exif-content.c: (exif_content_remove_entry) Recover
+	correctly in case of error by remembering the original size of the
+	realloc'ed data.
+	* libexif/exif-data.c: (exif_data_save_data_entry),
+	(exif_data_save_data_content) Same here.
+	* libexif/canon/exif-mnote-data-canon.c:
+	(exif_mnote_data_canon_save), (exif_mnote_data_canon_load) Same here.
+        * libexif/fuji/exif-mnote-data-fuji.c:
+        (exif_mnote_data_fuji_save), (exif_mnote_data_fuji_load) Same here.
+        * libexif/olympus/exif-mnote-data-olympus.c:
+        (exif_mnote_data_olympus_save) Same here.
+
+2008-02-15  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* Changelog
+	* README: use 'ue' instead of some stange German character.
+
+2008-02-14  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Fix #1774591 (partially):
+
+	* libexif/exif-content.c: (exif_content_remove_entry) Check the
+	return value of exif_mem_realloc.
+	* libexif/exif-data.c: (exif_data_save_data_entry), 
+	(exif_data_save_data_content) Same here.
+	* libexif/canon/exif-mnote-data-canon.c:
+	(exif_mnote_data_canon_save), (exif_mnote_data_canon_load) Same here.
+	* libexif/fuji/exif-mnote-data-fuji.c:
+	(exif_mnote_data_fuji_save), (exif_mnote_data_fuji_load) Same here.
+	* libexif/olympus/exif-mnote-data-olympus.c:
+	(exif_mnote_data_olympus_save) Same here.
+
+2008-02-14  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Fix #1884609 (partially):
+
+	* libexif/exif-entry.c: (exif_entry_initialize) Initialize
+	EXIF_TAG_FLASH and EXIF_TAG_COLOR_SPACE.
+
+2007-12-27  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Suggestion by Andreas Kleinert <Andreas_Kleinert@gmx.de>:
+
+	* libexif/exif-entry.c: (exif_entry_get_value) Use %lf for double
+	instead of %f (which is for float).
+
+2007-12-20  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Updated translations by Translation Project Robot
+	<robot@translationproject.org>:
+
+	* po/[vi,pl].po: Updated files.
+
+2007-12-18  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Dan Fandrich <dan@coneharvesters.com> pointed out the following:
+
+	* configure.ac: Keep gettext requirement as low as 0.14.1.
+	gettextize changes it automatically to 0.17, but as long as we don't
+	know why, there is no need to enforce this version.
+
+2007-12-16  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Marcus Meissner <marcus@jet.franken.de> pointed out the following:
+
+	* libexif/exif-data.c: (exif_data_load_data_thumbnail) ExifLong is
+	unsigned. Therefore no need to check for negative values. Check for
+	sane offset instead.
+
+2007-12-15  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* po/*.po: Updated po-files.
+	* libexif/exif-data.c: (exif_data_load_data_thumbnail) guard against 
+	negative size (in addition to negative offset), too.
+
+2007-12-14  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Bug pointed out by Meder Kydyraliev, Google Security Team:
+
+	* libexif/exif-data.c: (exif_data_load_data_thumbnail) Ignore bugus
+	data.
+
+2007-12-14  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* README: Point users to some tools needed to build libexif.
+	* configure.ac: It looks like po/Makefile.in is already registered
+	with AC_CONFIG_FILES (whatever this means).
+
+2007-12-14  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Bug pointed out by Meder Kydyraliev, Google Security Team:
+
+	* libexif/exif-loader.c: (exif_loader_write) Ignore buffers of
+	zero length.
+
+2007-12-07  Jan Patera <patera@users.sourceforge.net>
+
+	* Added support for Fuji makernotes
+
+2007-11-13  Dan Fandrich <dan@coneharvesters.com>
+	* Added support for a new macro NO_VERBOSE_TAG_DATA to allow
+	  some size reduction but still retain the ability to properly
+	  interpret each tag.
+	* Added an end-of-table marker in the Canon color_information
+	  makernote table that could otherwise potentially cause a crash 
+	  on a bad image.
+
+2007-11-12  Dan Fandrich <dan@coneharvesters.com>
+	* Added support for more Olympus makernotes, based on data on
+	  Phil Harvey's ExifTool page at
+	  http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/
+	  and sanity checked by the pel-images in the libexif test suite.
+	* Added support for Sanyo makernotes, which have the identical
+	  tag format and (so it seems) namespace of the Olympus tags.
+
+2007-11-08  Dan Fandrich <dan@coneharvesters.com>
+	* Added Canadian English translation, eh?
+
+2007-11-06  Dan Fandrich <dan@coneharvesters.com>
+	* Renamed EXIF_TAG_UNKNOWN_C4A5 to EXIF_TAG_PRINT_IMAGE_MATCHING
+	  The PIM entry seems to have a format consisting of an 8 byte
+	  magic number, 6 byte version number, 2 byte record count field,
+	  then a series of 6 byte records consisting of a 2 byte tag field
+	  and an 4 byte data field.
+
+2007-10-29  Dan Fandrich <dan@coneharvesters.com>
+	* Fixed some typos in messages
+	* Made some structs const
+	* Support compiling away the detailed tag tables and log messages when
+	  the NO_VERBOSE_TAG_STRINGS macro is defined to reduce the size of
+	  the library for use in embedded applications where space is at
+	  a premium
+	* Display the raw value of a tag when the tag is unknown
+
+2007-09-12  Jan Patera <patera@users.sourceforge.net>
+
+	* Enhancements to Canon makernote parsers submitted by Thorsten Kukuk
+	* Added Dutch and Swedish translations, updated Slovak translation
+
+2007-08-16  Jan Patera <patera@users.sourceforge.net>
+
+	* exif-mnote-data-olympus.c: Fix of bugs #1773810, #1774626, gnome bug #466044:
+	  Some Olympus files have main IFD in MM byte order as well as makernote, but
+	  makernote order was guessed wrongly. Bug introduced when fixing bug #1525770.
+
+2007-06-25  Jan Patera <patera@users.sourceforge.net>
+
+	* Endianess of Nikon V1 makernotes is now guessed, it might not
+	  be the same as of the main IFD
+
+2007-05-21  Jan Patera <patera@users.sourceforge.net>
+
+	* First version of Czech localization (cs.po)
+	* First version of Slovak localization (sk.po), submitted by Ivan Masar
+
+2007-05-15  Jan Patera <patera@users.sourceforge.net>
+
+	* Windows XP Explorer writes Title, Comment, Author, Keywords, and
+	  Subject metadata into proprietary UTF16-encoded tags 0x9c9b-0x9c9f
+	  in IFD0. We now recognize them, exif_entry_get_value returns their value
+	  converted to UTF8. BTW, Explorer corrupts makernotes using offsets
+	  relative to IFD0...
+
+2007-05-13  Jan Patera <patera@users.sourceforge.net>
+
+	* Added support of a new Pentax makernote type, plus another makernote
+	  type shared by Pentax & Casio
+	* Updated several tags
+	* Fixed some "security" sanity checks for broken entries
+
+2007-05-09  Jan Patera <patera@users.sourceforge.net>
+
+	* Added support for Olympus S760 & S770 makernote (bug #1703284)
+	* Fixed crashes when looking up invalid values (bug #1457501)
+	* Added heuristics (bug #1525770): mismatching Olympus makernote
+	  in big endian when the rest is in little endian is detected
+	  to prevent crashes
+	* Added option EXIF_DATA_OPTION_DONT_CHANGE_MAKER_NOTE to prevent
+	  modification of maker notes
+	* EXIF_DATA_OPTION_IGNORE_UNKNOWN_TAGS propagated to Canon makernote
+	  (Bug #1617991)
+	* Updated several tags
+	* Updated translations
+
+2007-05-06  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif/olympus/exif-mnote-data-olympus.c: Nikon v1 makernotes were saved
+	  with wrong offsets, Nikon v1 & v2 maker notes were saved with wrong offset
+	  to 2nd IFD (Reported by Joakim Larsson as patch #1664543)
+
+2007-04-24  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif/canon/mnote-canon-entry.c: Added hook for ISO settings of Canon
+	  PowerShot S3 IS - unlike other Canons, it doesn't use index into LUT, but
+	  direct ISO value ored w/ 0x4000
+
+2007-03-17  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif/exif-entry.c: Fixed values of EXIF_TAG_PHOTOMETRIC_INTERPRETATION,
+	  updated values of EXIF_TAG_COMPRESSION.
+
+2007-02-25  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Suggestions by Jef Driesen <jefdriesen@hotmail.com>:
+
+	* libexif/exif-entry.c: Correct formulas regarding to APEX values.
+
+2007-02-14  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif/olympus/mnote-olympus-entry.c:
+	  Updated MNOTE_OLYMPUS_TAG_QUALITY & MNOTE_OLYMPUS_TAG_VERSION
+
+2006-10-03  Marcus Meissner <marcus@jet.franken.de>
+
+	* libexif/olympus/*.[ch]: Added several Nikon Makernotes
+	  entries, extracted from exiftool.
+
+2006-09-19  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif/exif-loader.c: exif_loader_write() skips non-EXIF APP1 markers
+
+2006-09-17  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Patch by Jef Driesen <jefdriesen@hotmail.com>:
+
+	* libexif/canon/*: Improve support for canon maker notes.
+
+2006-05-05  Jan Patera <patera@users.sourceforge.net>
+	* libexif/exif-content.c: fixed bug #1471060: wasted space in 
+	  exif_content_add_entry() & exif_content_remove_entry(); also safe
+	  handling of failed realloc in exif_content_add_entry()
+
+2006-04-15  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif/exif-loader.c: exif_loader_write() correctly skips APP2 marker
+	  with ICC profile because ImageMagick flips order of APP1 EXIF and
+	  APP2 ICC markers.
+
+2006-02-19  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif/exif-utils.h: ExifByte is now explicitly unsigned char,
+	  added ExifSByte as signed char.
+
+2006-02-13  Lutz Mueller <lutz@topfrose.de>
+
+	* libexif/canon/mnote-canon-entry.c: Fix typo.
+	* libexif/exif-entry.c: s/compulsatory/compulsory
+	* libexif/exif-tag.c: Fix typo.
+	* libexif/olympus/mnote-olympus-entry.c: Fix typo.
+	* test/nls/test-nls.c: Add translators' comment.
+
+2006-01-19  Marcus Meissner  <marcus@jet.franken.de>
+
+	* libexif/exif-data.c: Let exif_data_load_data_entry() signal failure
+	  and discard entry in caller if it does.
+
+2006-01-16  Hubert Figuiere  <hub@figuiere.net>
+
+	* libexif/exif-mem.h, libexif/exif-loader.h: More documentation
+
+2006-01-03  Hubert Figuiere  <hub@figuiere.net>
+
+	* configure.ac: fix once for all the versioning.
+	No actual version change has taken place this time.
+
+2006-01-02  Hubert Figuiere  <hub@figuiere.net>
+
+	* libexif/Makefile.am (libexif_la_DEPENDENCIES): depends
+	on the .sym file. Need to relink if modified.
+
+2005-12-27  Lutz Mueller <lutz@topfrose.de>
+
+	* NEWS
+	* configure.ac: We're now working on version 0.6.14.
+
+2005-12-27  Lutz Mueller <lutz@topfrose.de>
+
+	* test/Makefile.am: Remove the SOURCES variables - they are not necessary.
+
+2005-10-24  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif/Canon/mnote-canon-entry.c: Don't check size of MNOTE_CANON_TAG_OWNER
+	  and MNOTE_CANON_TAG_FIRMWARE - there can be many different values.
+
+2005-08-27  Jan Patera <patera@users.sourceforge.net>
+
+	* Canon mnote: Both parts of Settings had indices shifted by 1.
+	  entries[] must have secondary sorting by value which is unsigned.
+	  Wrong # of items in Settings: reading beyond allocated memory, crashes.
+
+2005-08-23  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Some work on canon maker notes. Entries that contain several different
+	values now expand to different entries.
+
+2005-08-15  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Patch by Jakub Bogusz <qboosh@pld-linux.org>, related to translation.
+
+2005-08-14  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif/exif-entry.c: Added value 2 of EXIF_TAG_COLOR_SPACE
+	  patch #1253625 by Ross Burton - burtonini
+
+2005-07-18  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* doc/Makefile.am: Make distcheck work again.
+
+2005-07-11  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-loader.c:
+	* po/de.po:
+	* po/fr.po:
+	* po/es.po: Added license.
+
+2005-07-02  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-data.c: Prevent infinite recursions (#1196787).
+
+2005-06-19  Hubert Figuiere  <hfiguiere@teaser.fr>
+
+	* test/Makefile.am (check_PROGRAMS): added check for make check
+
+2005-05-01  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-data.c (exif_data_fix): Don't create EXIF_IFD_1 if no 
+	thumbnail data is available.
+
+2005-04-30  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* test/test-mem.c: Show how to create EXIF data.
+	* README: New section USAGE.
+
+2005-04-30  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-data-type.h: New
+	* libexif/*: Lots of changes to make it possible to validate data against
+	the specification.
+
+2005-04-27  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-data.c (exif_data_load_data_content): Add a special case.
+
+2005-04-27  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-data.c (exif_data_load_data_content): Better check for 
+	validity of tags.
+
+2005-04-27  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.c (exif_entry_fix): Some day, we'll get this right.
+
+2005-04-27  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.h
+	* libexif/exif-content.h: New convenience functions/macros.
+
+2005-04-27  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* configure.ac: AGE = 1
+	* libexif/exif-entry.c (exif_entry_fix): Add a break to avoid unnecessary
+	checks.
+
+2005-04-26  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.c (exif_entry_fix): Leave ' ' untouched, too.
+
+2005-04-26  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-tag.[c,h] (exif_tag_[name,title,description]_in_ifd): New.
+
+2005-04-25  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-data.c (exif_entry_fix): '\0...' as USER_COMMENT is ok, too.
+
+2005-04-25  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-data.c: Make it compile again.
+
+2005-04-24  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* exif-data.[c,h] (exif_data_option_get_[name,description]),
+	(exif_data_[set,unset]_option): New
+	* exif-tag.[c,h]: EXIF_TAG_GAMMA: New.
+	* exif-entry.c: (exif_entry_fix) Accept empty entries.
+
+2005-04-15  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Submitted by Hongli Lai <h.lai@chello.nl>:
+
+	* configure.ac: CURRENT needs only to be increased on changes or 
+	  removals, not additions.
+
+2005-03-30  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-data.c: Convert some DEBUG messages to CORRUPT_DATA.
+
+2005-03-29  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libjpeg: Removed.
+	* README
+	* Makefile.am
+	* configure.in
+	* libexif/exif-loader.c
+	* libexif/exif-data.c: Remove references to libjpeg.
+	* test/test-tree.c: Removed.
+	* test/Makefile.am: Remove test-tree
+
+2005-03-16  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.c (exif_entry_get_value): Fix tag COPYRIGHT.
+
+2005-03-16  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-data.c (exif_data_save_data_content): Use qsort.
+
+2005-03-16  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libjpeg/jpeg-data.c: Fix #1054322.
+
+2005-03-16  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.c: Fix #1051994.
+
+2005-03-16  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.c: Marked some strings for translation. Fix #803191.
+
+2005-03-13  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif/exif-entry.c (exif_entry_fix): Update also e->components
+
+2005-03-13  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif/exif-data.c: critical fix of 2005-03-09 change: saving
+	  IFD containing data of odd length was causing memory corruption
+	  and total lost of entire EXIF data
+
+2005-03-13  Hans Ulrich Niedermann <gp@n-dimensional.de>
+
+	* NEWS: Release 0.6.12
+
+2005-03-12  Hans Ulrich Niedermann <gp@n-dimensional.de>
+
+	* po/de.po: Partial translation update
+
+2005-03-11  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Spotted by Jan Patera <patera@users.sourceforge.net>:
+
+	* test/test-mem.c: Small fix.
+
+2005-03-10  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif/exif-utils.*,exif-entry.c: Full support of EXIF_FORMAT_SSHORT
+	  (used by Nikon & Olympus mnote tags)
+
+2005-03-09  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-utils.c (exif_array_set_byte_order): Return if an invalid
+	  format is supplied.
+
+2005-03-09  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.c (exif_entry_fix): Update e->size.
+
+2005-03-09  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-data.c (exif_data_save_data_content): Update comment that
+	  this code does not honor the specification yet.
+
+2005-03-09  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-data.c (exif_data_save_data_content): Save entries in
+	  the correct order.
+
+2005-03-09  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* test/test-mem.c: Write size to loader to make the test work again.
+
+2005-03-09  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/canon/exif-mnote-data-canon.c (exif_mnote_data_canon_save):
+	  Ensure even offsets.
+
+2005-03-09  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-data.c (exif_data_save_data_entry): According to the TIFF
+	  specification, the offset must be an even number. If we need to introduce
+	  a padding byte, we set it to 0.
+
+2005-03-09  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-utils.[c,h] (exif_array_set_byte_order): New function.
+	* libexif/exif-data.c
+	* libexif/canon/exif-mnote-data-canon.c
+	* libexif/olympus/exif-mnote-data-olympus.c
+	* libexif/pentax/exif-mnote-data-pentax.c: Use new function.
+
+2005-03-09  Jan Patera <patera@users.sourceforge.net>
+
+	* exif_data.c: Final fix of Ubuntu Security Notice USN-91-1
+	  https://bugzilla.ubuntulinux.org/show_bug.cgi?id=7152
+	  (CAN-2005-0664)
+
+2005-02-08  Hans Ulrich Niedermann <gp@n-dimensional.de>
+
+	* autogen.sh: Updated build system:
+	  - doesn't require gettextize any more (using autopoint now)
+	  - uses all the built-in magic from autoreconf
+	* configure.in, */Makefile.am: Build variable cleanup:
+	  - use common definition for AM_CFLAGS (remove INCLUDES in
+	    **/Makefile.am)
+	  - define LIBEXIF_LOCALEDIR and LIBMNOTE_LOCALEDIR in config.h
+	  - allow user to add CFLAGS at ./configure time by setting CFLAGS
+	  - add intl/ to include path only if building the included
+	    libintl
+	  - check whether -lm is actually required. This enables
+	    crosscompilation for windows targets:
+	    ./configure --host=i586-mingw32msvc --disable-nls
+	* m4/gp-config-msg.m4, m4/gp-gettext-hack.m4: New macros
+
+2004-12-17  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-loader.c: Work towards a non-recursive version of
+	  (exif_loader_write).
+
+2004-12-17  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Lars Ellenberg <l.g.e@web.de> fixed a bug that I introduced
+	in the last commit:
+
+	* libexif/exif-loader.c: Don't substract 2 bytes twice.
+
+2004-12-12  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Pointed out by Lars Ellenberg <l.g.e@web.de>:
+
+	* libexif/exif-loader.c: Honor indirect offsets in FUJI_RAW-files.
+	  Don't perform unnecessary checks for known data formats.
+
+2004-12-11  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Inspired by suggestions from Lars Ellenberg <l.g.e@web.de>:
+
+	* libexif/exif-data.c: Fix spelling error.
+	* libexif/exif-loader.c (exif_loader_write): Rewrite logic to 
+	  make the loader handle more file types.
+
+2004-12-08  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif/exif-entry.c: Data format of EXIF_TAG_USER_COMMENT:
+	  Some packages like Canon ZoomBrowser EX 4.5 store only
+	  one zero byte followed by 7 bytes of rubbish
+
+2004-11-17  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-data.c: Make the last commit actually work.
+
+2004-11-15  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-content.c: Complain if the same tag is added twice
+	  to an IFD. Suggestion by Angela Wrobel.
+
+2004-11-15  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-data.c: Additional debugging message if 
+	  specification is violated.
+
+2004-11-14  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/*: Plug another few memleaks. All found by Angala Wrobel.
+
+2004-11-12  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-data.c: Clean up handling of MakerNote tags.
+
+2004-11-11  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-mnote-data.c: Plug yet another memory leak.
+	  Detected by Angela Wrobel.
+
+2004-11-11  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-log.c: Plug another memory leak. Detected by 
+	  Angela Wrobel.
+
+2004-11-11  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/canon/exif-mnote-data-canon.c: Do not crash on strange
+	  data. Pointed out by Angela Wrobel.
+
+2004-11-11  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/*: Replace another few realloc by exif_mem_realloc.
+	  Pointed out by Angela Wrobel.
+
+2004-11-10  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/*.c: Change #include "" to #include <>.
+	* Makefile.am:
+	* exif-result.h: Removed.
+
+2004-11-10  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-tag.[c,h] (exif_tag_from_name): New. Suggested by
+	  Angela Wrobel.
+
+2004-11-10  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-data.c (exif_data_free): Fix memleak found by 
+	  Angela Wrobel.
+	* contrib/watcom: Updated files contributed by Angela Wrobel.
+
+2004-11-03  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-format.c: More translatable strings.
+
+2004-11-02  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.c (exif_entry_fix): Detect more wrong stuff.
+	* libexif/exif-data.c: Detect recursive calls.
+
+2004-11-02  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif/exif-entry.c: added LZW
+	* libexif/exif-tag.*: added few tags used by .NEF
+	* libexif/exif-data.c: logging unknown tags
+
+2004-10-20  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* Makefile.am: Add intl
+	* configure.in: Add intl/Makefile. Now "make distcheck" works.
+
+2004-10-18  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Patch by Krisztian VASAS <iron@ironiq.hu>:
+
+	* configure.in: Create po/Makefile.in from po/Makefile.in.in
+
+2004-10-16  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* configure.in: We are now working on version 0.6.12.
+
+2004-10-16  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* configure.in: set CURRENT to 12. There have been quite a few
+	  additions to the header files.
+
+2004-10-16  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Martin Willers <willers@xm-arts.de> found an off-by-one error:
+
+	* libexif/exif-entry.c: libexif forget to add 1 
+	  to tm_mon from struct tm
+	
+2004-10-05  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-data.c: Support for WatCom. Convert debugging code
+	  to exif-log API.
+	* libexif/i18n.h: Support for WatCom. Patch by Angela Wrobel.
+
+2004-10-05  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* contrib/watcom: Files contributed by Angela Wrobel.
+
+2004-10-04  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-mem.h: Documentation.
+
+2004-10-04  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/*: Finish replaceable memory-management.
+
+2004-10-02  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-mem.[c,h]: New. First attempt to offer out-sourcing
+	  of memory management.
+
+2004-10-01  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif/exif-entry.c: exif_entry_fix:
+	  exif_set_short: 2nd & 3rd args swapped
+
+2004-09-18  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.c (exif_entry_fix): Enhance.
+
+2004-09-17  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.c (exif_entry_fix): New. Fixes any violations
+	  against the standard.
+
+2004-09-17  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.c: Kill some warnings. Read as much from the
+	  UserComment tag as possible (as suggested by Angela Wrobel).
+
+2004-09-15  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif/exif-loader.c: int -> unsigned int.
+	* libexif/olympus/mnote-olympus-entry.c: typecast.
+	  Both changes made to avoid compiler warnings.
+
+2004-09-12  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* ???: Some format string fixes, wrong argument list fixed, format
+	  string problems avoided.
+	  (Patch by marcusmeissner@users.sourceforge.net)
+
+2004-09-09  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* configure.in: Remove "([external])" after AM_GNU_GETTEXT as it
+	  doesn't work for David MacMahon <davidm@astro.berkeley.edu>.
+	* libexif/exif-log.[c,h]: Provide some standard messages and titles.
+	* configure.in: Increment version as interfaces have been added.
+
+2004-09-08  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.c: Change comment to point to specification.
+
+2004-09-08  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.c: Redirect error messages to the logging 
+	  mechanism.
+	* libexif/exif-log.h: EXIF_LOG_CODE_CORRUPT_DATA: New.
+
+2004-09-08  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-loader.c
+	* libexif/exif-data.c: Replace a couple of calls to malloc by 
+	  calls to calloc.
+
+2004-09-07  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.c: Use calloc. Hint by Jan Patera
+	  <patera@pictview.com>.
+
+2004-09-07  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/olympus
+	* libexif/pentax: Fix typo and wrong logic introduced during my
+	  last changes. Thanks to Jan Patera
+	  <patera@pictview.com> for keeping an eye on me.
+
+2004-09-07  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/olympus
+	* libexif/pentax
+	* libexif/canon: Correctly return names, titles and descriptions of
+	  tages. Pointed out by Angela Wrobel.
+
+2004-09-07  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.c: More guards against malloc returning NULL.
+	  Problem spotted by Angela Wrobel.
+
+2004-09-02  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.c: First part of a patch to be less strict on
+	  the USER_COMMENT-tag. Submitted by Angela Wrobel, slightly adapted.
+
+2004-09-01  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-tag.c: First ideas on how to support generation of
+	  mandatory exif tags for a new image.
+
+2004-09-01  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Suggestion by Angela Wrobel (http://www.wrobelnet.de/contact.html):
+
+	* libexif/pentax:
+	* libexif/olympus: Improve user experience by removing information
+	  from the output that was only intended for developers.
+
+2004-08-31  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* test/test-mem.c: Plug some memory leaks. Suggested by Angela Wrobel
+	  (http://www.wrobelnet.de/contact.html).
+
+2004-08-27  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* configure.in: 0.6.10 -> 0.6.11, as libexif-0.6.10 has just been
+	  released.
+
+2004-08-26  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Achim Bohnet found a spelling mistake:
+
+	* libexif/exif-tag.c: 'colums' -> 'columns'
+
+2004-08-26  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Suggestions from Angela Wrobel (http://www.wrobelnet.de/contact.html)
+
+	* libexif/exif-entry.c
+	* libexif/exif-loader.c
+	* libexif/exif-utils.c
+	* olympus/exif-mnote-data-olympus.c
+	* pentax/exif-mnote-data-pentax.c: Check if malloc returned NULL.
+
+2004-07-13  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif/exif-mnote-*.*: added exif_mnote_data_get_id()
+	  returning actual mnote entry tag ID (suggested by Serge
+	  Droz <serge.droz@psi.ch>)
+
+2004-06-23  Serge Droz <serge.droz@psi.ch>
+
+	(committed by Lutz Mueller <lutz@users.sourceforge.net>)
+
+	* libexif/olympus/mnote-olympus-entry.c: Reapply Jan Patera's 
+	  change.
+
+2004-06-22  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/olympus/mnote-olympus-entry.c: Correct the usage of 
+	  strncat. Fix pointed out by Serge Droz <serge.droz@psi.ch>.
+
+2004-06-22  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/olympus/mnote-olympus-tag.[c,h]: New tags discovered by
+	  Serge Droz <serge.droz@psi.ch>.
+
+2004-06-15  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif/olympus/mnote-olympus-entry.c: MNOTE_OLYMPUS_TAG_INFO
+
+2004-06-06  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/olympus/exif-mnote-data-olympus.c: More documentation,
+	  additional case (Nikon, 02 0a 00).
+	* Makefile.am: s/LIBMNOTE/LIBEXIF
+
+2004-05-27  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* configure.in: 0.6.10 as 0.6.9 has just been released.
+
+2004-05-27  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.c: Jan Patera pointed me to the fact that
+	  last change is pointless.
+
+2004-05-27  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.c: According to Ralf Holzer <rholzer@cmu.edu>,
+	  the user comment field does not have to be NULL terminated.
+
+2004-05-25  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/olympus/mnote-olympus-entry.c: Print bytes if tag is not
+	  known.
+
+2004-05-24  Jan Patera <patera@users.sourceforge.net>
+
+	* libjpeg/jpeg-data.[c,h]: jpeg_data_append_section changed
+	  from static to public
+	* libexif/olumpus/mnote-olympus-entry.c: support of several
+	  known but previously not supported Nikon (& 1 Olympus) tags
+	* libexif/exif-entry.c: rational values printed as %2.2f and not %i/%i
+
+2004-05-15  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-log.[c,h]: New. Proposal for handling of debugging
+	  messages.
+
+2004-05-13  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif/exif-data.c: Fill tag data with zeros on save even
+	  if 0 components (buggy Kodak-210)
+
+2004-05-12  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif/exif-utils.h: definition of MIN
+	* libexif/pentax/mnote-pentax-entry.c: min -> MIN
+	  (found by Serge Droz <serge.droz@psi.ch>)
+
+2004-05-11  Jan Patera <patera@users.sourceforge.net>
+
+	* libjpeg/jpeg-data.c: memory leak in jpeg_data_set_exif_data,
+	  return type of jpeg_data_save_file
+	* libexif/exif-entry.c: proper mnote size on save
+	* libexif/olympus: saving Nikon mnote
+
+2004-05-10  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif: Support of Nikon maker note
+
+2004-05-07  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif/exif-entry.c: fix of EXIF_TAG_COLOR_SPACE,
+	  value 9 of EXIF_TAG_FLASH.
+	* libexif/exif-entry.c: Fix of bug #937505 submitted by Hubert
+	  Verstraete <hubs@users.sourceforge>: value 0x0058 of
+	  EXIF_TAG_FLASH.
+
+2004-05-04  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/olympus: Make it support Nikon maker notes, too. 
+	  Code based on work by Serge Droz <serge.droz@psi.ch>.
+
+2004-05-03  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.c (exif_entry_initialize):
+	  Added EXIF_TAG_PIXEL_[X,Y]_DIMENSION (thanks to Antonio Scuri
+	  <scuri@tecgraf.puc-rio.br>).
+
+2004-05-03  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-tag.c: Hide some functions there that have been 
+	  requested by Antonio Scuri <scuri@tecgraf.puc-rio.br>.
+
+2004-05-02  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* configure.in: GETTEXT_PACKAGE=${PACKAGE}-${LIBEXIF_CURRENT}
+	  on request of Ilya Konstantinov <future@shiny.co.il>
+	  (Debian needs it).
+
+2004-05-02  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libjpeg/jpeg-marker.h: No implicit enum declaration. Seen by
+	  Antonio Scuri <scuri@tecgraf.puc-rio.br>.
+
+2004-04-04  Lutz Mueller lutz@users.sourceforge.net
+
+	* libexif/exif-data.c: If we don't know a tag we are going to parse,
+	  stop loading. This should fix bug #138238.
+
+2004-04-02  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif/pentax/exif-mnote-data-pentax.c: correct search for values
+
+2004-03-19 Joerg Hoh <hohjg@users.sourceforge.net>
+	* libexif/olympus/exif-mnote-data-olympus.c: code 
+	  simplification
+
+2004-03-16  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/pentax/exif-mnote-data-pentax.c: Another suggestion by
+	  Joerg Hoh <joerg@devone.org>.
+
+2004-03-15  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/pentax/mnote-pentax-entry.c: Joerg Hoh <joerg@devone.org>
+	  did it again.
+
+2004-03-03  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.c: Patch by Joerg Hoh <joerg@devone.org>,
+	  enhanced by myself.
+
+2004-03-03  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif/exif-entry.c: C-compilability & fix of the 2004/03/02 code
+
+2004-03-02  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* configure.in: No version on GETTEXT_PACKAGE. Requested by
+	  gernot@bigpond.com.
+	* libexif/exif-entry.c: Some formatting.
+
+2004-03-02  Joerg Hoh<joerg@devone.org>
+
+	* libexif/exif-entry.c: moved redundant code into a static structure
+
+2004-03-01  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif/pentax/exif-mnote-data-pentax.c: Fixed flipped inequation
+	  causing all value requests to be denied as invalid
+
+2004-02-02  Jan Patera <patera@users.sourceforge.net>
+
+	* libexif/exif-loader.c: propper skipping of JPEG_MARKER_COM when
+	  searching for JPEG_MARKER_APP1 with exif data
+
+2004-01-19  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* contrib/c++: Files contributed by Hans Meine <hans_meine@gmx.net>.
+	  Completely untested.
+
+2004-01-08  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.c (exif_entry_get_value_brief): merge into
+	  (exif_entry_get_value) and remove.
+	* tests/test-mnote.c: Make it compile again.
+	* tests/test-value.c: New.
+	* configure.in: API-changes -> increment version.
+
+2004-01-07  Jan Patera <patera@users.sourceforge.net>
+
+	Thread-safety, elimination of static variables, fixes of memory
+	corruption (writing beyond provided space), no more memory leaks
+	in mnote, 2 new args of exif_entry_get_value,
+	exif_entry_get_value_brief, exif_mnote_data_get_value.
+
+	* libexif, libexif/canon, libexif/olympus, libexif/pentax
+
+2003-12-09  Lutz Mueller <lutz@users.sourceforge.net>
+
+	A couple of fixes by Jan Patera <patera@pictview.com>:
+
+	* libexif
+
+2003-12-08  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Suggestion by Jan Patera <patera@pictview.com>:
+
+	* libexif/exif-entry.c: Do not read beyond e->size.
+
+2003-12-01  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/olympus/mnote-olympus-entry.c: Now that EXIF_FORMAT_SSHORT
+	  is in exif-format.h, we do not need to define it any longer.
+
+2003-12-01  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif: Various improvements by Jan Patera <patera@pictview.com>.
+
+2003-10-30  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-loader.c: Handle APP13.
+
+2003-10-30  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-loader.c: Fix APP0-bug. Patch by Jan Patera
+	  <patera@pictview.com>.
+
+2003-10-30  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-data.c: Add explicit typecasts to ExifShort.
+	  Suggested by Jan Patera <patera@pictview.com>.
+
+2003-10-28  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/olympus: Fix. I've got one Olympus file and this gets
+	  parsed now.
+
+2003-10-28  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libjpeg/jpeg-data.c: Do not depend on unistd.h. Reported by
+	  Jan Patera <patera@pictview.com>.
+
+2003-10-27  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif: Canon maker notes seem to work now (both loading and
+	  saving).
+
+2003-10-27  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif: The code now compiles and loads the canon maker note,
+	  but crashes if you query its contents.
+
+2003-10-26  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* test/test-mnote.c: New.
+	* libexif: The code now both compiles and doesn't crash,
+	  but at least the canon maker note still doesn't get parsed.
+
+2003-10-26  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* configure.in
+	* Makefile.am: Remove PO_DIRS. Otherwise, automake complains about
+	  po and intl not being in SUBDIRS
+
+2003-10-26  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/olympus
+	* libexif/canon
+	* libexif/pentax: Merge libmnote with libexif. The code compiles but
+	  is completely untested.
+
+2003-10-15  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif.spec.in: Patches by Peter Bieringer <pb@bieringer.de>.
+
+2003-10-08  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-data.c: Patch by Jan Patera <patera@pictview.com>.
+
+2003-10-08  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.c: Patch by Jan Patera <patera@pictview.com>.
+
+2003-09-28  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* Makefile.am
+	* configure.in: Patch #813420 by Chris Meyer <cmeyer@mac.com>.
+
+2003-09-05  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libjpeg/jpeg-data.c: Fix memory leak (discovered by 
+	  Ralph Heidelberg <RHeidelberg@Pinnaclesys.com)
+
+2003-08-25  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-data.c: Fill unneeded bytes with 0. Suggestion by
+	  Roberto Costa <roberto.costa@ensta.org>.
+
+2003-08-06  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.c (exif_entry_initialize): Support some more
+	  tags.
+	* libexif/exif-tag.[c,h]: Cosmetic fix.
+	* libexif/exif-utils.h: Do not let above cosmetic fix break the API.
+
+2003-08-04  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* po/*.po: Updated.
+	* Makefile.am: Add m4 and intl to SUBDIRS. automake complains
+	  otherwise.
+	* configure.in: Add m4/Makefile. make distcheck complains otherwise.
+	  Version 0.5.12
+
+2003-07-30  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* configure.in: Version 0.5.11
+
+2003-07-30  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-data.c: Patch by Torgeir Hansen <torgeir@trenger.ro>
+	  to prevent endless loops.
+
+2003-07-30  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.c: Don't crash if entries are totally insane.
+
+2003-07-20  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* configure.in: Version 0.5.10
+
+2003-05-01  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Suggestion by Gernot Jander <gernot@bigpond.com>:
+
+	* libexif/exif-entry.c: Ignore "   " in EXIF_TAG_COPYRIGHT.
+
+2003-04-29  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-loader.c: Set ref_count to 1 on exif_loader_new.
+
+2003-04-29  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.c: Another attempt to fix EXIF_TAG_COPYRIGHT.
+
+2003-04-28  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Bug discovered by Jay Love <jslove@users.sourceforge.net>
+
+	* libexif/exif-entry.c: Don't crash if EXIF_TAG_COPYRIGHT is NULL.
+
+2003-04-28  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Patch by Gernot Jander <gernot@bigpond.com>:
+
+	* libexif/exif-tag.c: Add call to bind_textdomain_codeset
+	* po/*.UTF-8: New.
+
+2003-03-13  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libjpeg/jpeg-data.c: Aravind <aravinds1@users.sourceforge.net>
+	  found a bug there.
+
+2003-03-18  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-data.c (exif_data_new_from_file): Use the new
+	  ExifLoader. It seems to work.
+
+2003-03-17  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-loader.[c,h]: New. Mostly written by Jens Finke
+	  <jens@triq.net>. Not tested at all.
+
+2003-02-11  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-tag.c: Fix typo.
+
+2003-01-22  Lutz Mller  <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.c (exif_entry_get_value): Support USER_COMMENT.
+
+2002-12-31  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* README: Some information by Sander van Geloven
+	  <svgeloven@zonnet.nl>.
+
+2002-12-11  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.c (exif_entry_initialize): Fix last commit.
+
+2002-12-11  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.c (exif_entry_initialize): Support USER_COMMENT.
+	* configure.in: Version 0.5.9
+
+2002-12-09  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* README: New frontend 'thirdeye'.
+
+2002-12-07  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* configure.in: Version 0.5.8
+
+2002-12-02  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/Makefile.am: Forgot to remove the some subdirs.
+
+2002-12-02  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* configure.in: Remove some Makefiles
+
+2002-12-02  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* configure.in: Reflect removal of exif-note.h in version.
+
+2002-12-02  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-note.[c,h]: Removed. Now in libmnote.
+
+2002-09-16  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif: Some fixes for Windows (Visual C++) by
+	  Andres <aplaza@smalcamera.com>
+
+2002-09-15  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* configure.in: IRIS fixes by Andrea Suatoni
+	  <a.suatoni@telefonica.net>
+	
+2002-09-15  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* configure.in:
+	* po/es.po: Spanish translation by Fabian Mandelbaum
+	  <fabman@2vias.com.ar>
+
+2002-08-30  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-data.c: Some cleanup.
+
+2002-08-29  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Renchi Raju <renchi@pooh.tam.uiuc.edu> found another bug in 
+
+	* libexif/exif-data.c: Correctly save the data.
+	* configure.in: Version 0.5.6.
+
+2002-08-29  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Jason Sodergren <jason@taiga.com> found a lot of bugs in
+
+	* libexif/exif-data.c: Correctly save the data.
+	* configure.in: Version 0.5.5.
+
+2002-08-29  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Another fixes related to #564019:
+
+	* libexif: Make code conform to ISO C standard, section 6.5.2.3.
+
+2002-08-29  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Bug reported by Jason Sodergren <jason@taiga.com>:
+
+	* libexif/exif-data.c: EXIF_IFD_1 -> EXIF_IFD_0.
+
+2002-08-02  Hans Ulrich Niedermann <gp@n-dimensional.de>
+
+	* configure.in: Version 0.5.4dev
+		distinguish release versions from CVS versions
+
+2002-07-25  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-ifd.[c,h]: New.
+	* libexif/exif-data.h: Introduce an array of ExifContents. This 
+	  doesn't break binary compatibility, but it breaks compilation. 
+	  Do something like "%s/->ifd_0/->ifd[EXIF_IFD_0]" in your source
+	  code to make it compile again.
+	* configure.in: Version 0.5.4.
+
+2002-07-25  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Patch by anonymous user:
+
+	* libexif/exif-[byte-order,format,result,tag].h: Make code comply with
+	  ISO C standard, section 6.5.2.3.
+
+2002-07-25  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Patch by Takuro Ashie <makeinu@users.sourceforge.net>:
+
+	* libexif/exif-data.c: Plug memory leak.
+
+2002-07-10  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Bug spotted by Andres <aplaza@smalcamera.com>:
+
+	* libexif/exif-data.c: Save the EXIF_TAG_INTEROPERABILITY_IFD_POINTER
+	  in ifd_exif, not in ifd0.
+
+2002-06-26  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Patch by Jos van den Oever <oever@fenk.wau.nl>: Make libexif c++
+	friendly.
+
+2002-06-14  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* configure.in: Correct -version-info.
+
+2002-06-11  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* configure.in: Version 0.5.3
+
+2002-06-11  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/Makefile.am: Oops, missed those konica entries.
+
+2002-06-10  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* configure.in: Version 0.5.2
+
+2002-06-10  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* configure.in: We need autoconf > 2.50.
+
+2002-06-09  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Internationalization.
+
+2002-06-08  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Patch by Guido Ostkamp <guido.ostkamp@t-online.de>
+
+	* libexif/exif-data.c: Increment offset by 12.
+
+2002-06-06  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Bug spotted by Andres <aplaza@smalcamera.com>:
+
+	* exif-entry.c: Fix typo.
+
+2002-06-05  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* COPYING: Check the text of the LGPL in, because otherwise, 
+	  automake --add-missing would use the text of the GPL.
+
+2002-06-03  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* configure.in: Version 0.5.1
+
+2002-05-01  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Patch by Arnaud Rouanet <rouanet@labri.fr>:
+
+	* libexif/exif-entry.c (exif_entry_get_value): Fix typo.
+
+2002-04-30  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Patch by Arnaud Rouanet <rouanet@labri.fr>:
+
+	* libexif/exif-entry.c (exif_entry_get_value): Support version 2.2.
+
+2002-04-18  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Patch by Marcus Meissner <marcus@jet.franken.de>:
+
+	* libexif/*.h: Make header files c++ friendly.
+
+2002-04-16  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Enhancements by Semyon Sosin <sem@best.com>, adapted:
+
+	* libexif/exif-content.h: Add some convenience defines.
+	* libexif/exif-entry.[c,h] (exif_entry_get_value_brief): New.
+	* README: Add a note about libjpeg.
+
+2002-04-15  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Enhancements by Semyon Sosin <sem@best.com>, adapted:
+
+	* libexif/exif-entry.c (exif_entry_get_value): More tags covered.
+	* libexif/exif-data.c (exif_data_new_from_file): Don't read the whole
+	  file into memory.
+
+2002-04-04  Hans Ulrich Niedermann <gp@n-dimensional.de>
+
+	* Makefile.am: dded .tar.bz2 packaging to "make dist"
+
+2002-03-01  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Patch by Mark Pulford <mark@kyne.com.au>:
+
+	* libexif.spec.in: New
+	* configure.in:
+	* Makefile.am: Create libexif.spec
+
+2002-02-28  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Patch by Javier Achirica <achirica@ttd.net>:
+
+	* libexif/exif-data.c: Fix directory length and termination.
+
+2002-02-28  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.c (exif_entry_get_value): Add support for
+	  EXIF_TAG_SUBJECT_AREA.
+
+2002-02-28  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Patch by Javier Achirica <achirica@ttd.net>:
+
+	* libexif/exif-tag.[c,h]:
+	* libexif/exif-entry.c: Support EXIF-2.2 tags.
+
+2002-02-25  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Patch by Basil Dias <basil.dias@wipro.com>:
+
+	* libjpeg/jpeg-data.c: Missing realloc.
+
+2002-02-21  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/canon: Set up support for parsing MakerNotes.
+
+2002-02-20  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-data.c:
+	* libjpeg/jpeg-data.c: Read and write "rb" (Windows needs it).
+
+2002-02-18  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-data.c: Suppress output unless #ifdef DEBUG
+
+2002-02-17  Lutz Mueller <lutz@users.sourceforge.net>
+
+	Patch from Fredrik <fredrik@krixor.xy.org>:
+
+	* libexif/exif-data.c: Better checks for size.
+
+2002-02-13  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/configure.in: Introduce proper versionning.
+
+2002-02-13  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif: There's only one ByteOrder per ExifData.
+
+2002-02-12  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/exif-entry.c: More initialization.
+
+2002-02-11  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* configure.in: Version 0.5
+
+2002-02-11  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif/libexif-entry.c: More tags implemented in
+	  (exif_entry_get_value).
+
+2002-02-06  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* configure.in: Version 0.4
+
+2002-02-05  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* configure.in: Version 0.3
+
+2002-02-05  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* libexif: Implement saving.
+
+2002-01-29  Lutz Mueller <lutz@users.sourceforge.net>
+
+	* configure.in: Version 0.2
+
+2002-01-06  Lutz Mueller <urc8@rz.uni-karlsruhe.de>
+
+	Merge new stuff from gtkam/libexif.
+
+2001-12-23  Lutz Mueller <urc8@rz.uni-karlsruhe.de>
+
+	Merge new stuff from gtkam/libexif.
+
+2001-12-21  Lutz Mueller <urc8@rz.uni-karlsruhe.de>
+
+	Move new version from gtkam to here.
+
+2001-12-11  Lutz Mueller <urc8@rz.uni-karlsruhe.de>
+
+	Initial automake setup.
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/INSTALL b/framework/modules/c_LibExifModule/libexif-0.6.20/INSTALL
new file mode 100644
index 0000000000000000000000000000000000000000..7d1c323beae76333f523f6df31c47a87f5597edb
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/INSTALL
@@ -0,0 +1,365 @@
+Installation Instructions
+*************************
+
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
+2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+
+   Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.  This file is offered as-is,
+without warranty of any kind.
+
+Basic Installation
+==================
+
+   Briefly, the shell commands `./configure; make; make install' should
+configure, build, and install this package.  The following
+more-detailed instructions are generic; see the `README' file for
+instructions specific to this package.  Some packages provide this
+`INSTALL' file but do not implement all of the features documented
+below.  The lack of an optional feature in a given package is not
+necessarily a bug.  More recommendations for GNU packages can be found
+in *note Makefile Conventions: (standards)Makefile Conventions.
+
+   The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation.  It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions.  Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+   It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring.  Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.
+
+   If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release.  If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+   The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'.  You need `configure.ac' if
+you want to change it or regenerate `configure' using a newer version
+of `autoconf'.
+
+   The simplest way to compile this package is:
+
+  1. `cd' to the directory containing the package's source code and type
+     `./configure' to configure the package for your system.
+
+     Running `configure' might take a while.  While running, it prints
+     some messages telling which features it is checking for.
+
+  2. Type `make' to compile the package.
+
+  3. Optionally, type `make check' to run any self-tests that come with
+     the package, generally using the just-built uninstalled binaries.
+
+  4. Type `make install' to install the programs and any data files and
+     documentation.  When installing into a prefix owned by root, it is
+     recommended that the package be configured and built as a regular
+     user, and only the `make install' phase executed with root
+     privileges.
+
+  5. Optionally, type `make installcheck' to repeat any self-tests, but
+     this time using the binaries in their final installed location.
+     This target does not install anything.  Running this target as a
+     regular user, particularly if the prior `make install' required
+     root privileges, verifies that the installation completed
+     correctly.
+
+  6. You can remove the program binaries and object files from the
+     source code directory by typing `make clean'.  To also remove the
+     files that `configure' created (so you can compile the package for
+     a different kind of computer), type `make distclean'.  There is
+     also a `make maintainer-clean' target, but that is intended mainly
+     for the package's developers.  If you use it, you may have to get
+     all sorts of other programs in order to regenerate files that came
+     with the distribution.
+
+  7. Often, you can also type `make uninstall' to remove the installed
+     files again.  In practice, not all packages have tested that
+     uninstallation works correctly, even though it is required by the
+     GNU Coding Standards.
+
+  8. Some packages, particularly those that use Automake, provide `make
+     distcheck', which can by used by developers to test that all other
+     targets like `make install' and `make uninstall' work correctly.
+     This target is generally not run by end users.
+
+Compilers and Options
+=====================
+
+   Some systems require unusual options for compilation or linking that
+the `configure' script does not know about.  Run `./configure --help'
+for details on some of the pertinent environment variables.
+
+   You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment.  Here
+is an example:
+
+     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
+
+   *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+   You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory.  To do this, you can use GNU `make'.  `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script.  `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.  This
+is known as a "VPATH" build.
+
+   With a non-GNU `make', it is safer to compile the package for one
+architecture at a time in the source code directory.  After you have
+installed the package for one architecture, use `make distclean' before
+reconfiguring for another architecture.
+
+   On MacOS X 10.5 and later systems, you can create libraries and
+executables that work on multiple system types--known as "fat" or
+"universal" binaries--by specifying multiple `-arch' options to the
+compiler but only a single `-arch' option to the preprocessor.  Like
+this:
+
+     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+                 CPP="gcc -E" CXXCPP="g++ -E"
+
+   This is not guaranteed to produce working output in all cases, you
+may have to build one architecture at a time and combine the results
+using the `lipo' tool if you have problems.
+
+Installation Names
+==================
+
+   By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc.  You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX', where PREFIX must be an
+absolute file name.
+
+   You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files.  If you
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
+
+   In addition, if you use an unusual directory layout you can give
+options like `--bindir=DIR' to specify different values for particular
+kinds of files.  Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.  In general, the
+default for these options is expressed in terms of `${prefix}', so that
+specifying just `--prefix' will affect all of the other directory
+specifications that were not explicitly provided.
+
+   The most portable way to affect installation locations is to pass the
+correct locations to `configure'; however, many packages provide one or
+both of the following shortcuts of passing variable assignments to the
+`make install' command line to change installation locations without
+having to reconfigure or recompile.
+
+   The first method involves providing an override variable for each
+affected directory.  For example, `make install
+prefix=/alternate/directory' will choose an alternate location for all
+directory configuration variables that were expressed in terms of
+`${prefix}'.  Any directories that were specified during `configure',
+but not in terms of `${prefix}', must each be overridden at install
+time for the entire installation to be relocated.  The approach of
+makefile variable overrides for each directory variable is required by
+the GNU Coding Standards, and ideally causes no recompilation.
+However, some platforms have known limitations with the semantics of
+shared libraries that end up requiring recompilation when using this
+method, particularly noticeable in packages that use GNU Libtool.
+
+   The second method involves providing the `DESTDIR' variable.  For
+example, `make install DESTDIR=/alternate/directory' will prepend
+`/alternate/directory' before all installation names.  The approach of
+`DESTDIR' overrides is not required by the GNU Coding Standards, and
+does not work on platforms that have drive letters.  On the other hand,
+it does better at avoiding recompilation issues, and works well even
+when some directory options were not specified in terms of `${prefix}'
+at `configure' time.
+
+Optional Features
+=================
+
+   If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+   Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System).  The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+   For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+   Some packages offer the ability to configure how verbose the
+execution of `make' will be.  For these packages, running `./configure
+--enable-silent-rules' sets the default to minimal output, which can be
+overridden with `make V=1'; while running `./configure
+--disable-silent-rules' sets the default to verbose, which can be
+overridden with `make V=0'.
+
+Particular systems
+==================
+
+   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
+CC is not installed, it is recommended to use the following options in
+order to use an ANSI C compiler:
+
+     ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
+
+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+
+   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
+parse its `<wchar.h>' header file.  The option `-nodtk' can be used as
+a workaround.  If GNU CC is not installed, it is therefore recommended
+to try
+
+     ./configure CC="cc"
+
+and if that doesn't work, try
+
+     ./configure CC="cc -nodtk"
+
+   On Solaris, don't put `/usr/ucb' early in your `PATH'.  This
+directory contains several dysfunctional programs; working variants of
+these programs are available in `/usr/bin'.  So, if you need `/usr/ucb'
+in your `PATH', put it _after_ `/usr/bin'.
+
+   On Haiku, software installed for all users goes in `/boot/common',
+not `/usr/local'.  It is recommended to use the following options:
+
+     ./configure --prefix=/boot/common
+
+Specifying the System Type
+==========================
+
+   There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on.  Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
+`--build=TYPE' option.  TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+     CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+     OS
+     KERNEL-OS
+
+   See the file `config.sub' for the possible values of each field.  If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+   If you are _building_ compiler tools for cross-compiling, you should
+use the option `--target=TYPE' to select the type of system they will
+produce code for.
+
+   If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+   If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists.  Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+   Variables not defined in a site shell script can be set in the
+environment passed to `configure'.  However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost.  In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'.  For example:
+
+     ./configure CC=/usr/local2/bin/gcc
+
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+an Autoconf bug.  Until the bug is fixed you can use this workaround:
+
+     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+`configure' Invocation
+======================
+
+   `configure' recognizes the following options to control how it
+operates.
+
+`--help'
+`-h'
+     Print a summary of all of the options to `configure', and exit.
+
+`--help=short'
+`--help=recursive'
+     Print a summary of the options unique to this package's
+     `configure', and exit.  The `short' variant lists options used
+     only in the top level, while the `recursive' variant lists options
+     also present in any nested packages.
+
+`--version'
+`-V'
+     Print the version of Autoconf used to generate the `configure'
+     script, and exit.
+
+`--cache-file=FILE'
+     Enable the cache: use and save the results of the tests in FILE,
+     traditionally `config.cache'.  FILE defaults to `/dev/null' to
+     disable caching.
+
+`--config-cache'
+`-C'
+     Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+     Do not print messages saying which checks are being made.  To
+     suppress all normal output, redirect it to `/dev/null' (any error
+     messages will still be shown).
+
+`--srcdir=DIR'
+     Look for the package's source code in directory DIR.  Usually
+     `configure' can determine that directory automatically.
+
+`--prefix=DIR'
+     Use DIR as the installation prefix.  *note Installation Names::
+     for more details, including other options available for fine-tuning
+     the installation locations.
+
+`--no-create'
+`-n'
+     Run the configure checks, but stop before creating any output
+     files.
+
+`configure' also accepts some other, not widely useful, options.  Run
+`configure --help' for more details.
+
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/Makefile.am b/framework/modules/c_LibExifModule/libexif-0.6.20/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..ed10b687f059cf8065885eefa8b8f2d3d0fd317f
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/Makefile.am
@@ -0,0 +1,54 @@
+SUBDIRS = m4m po libexif test doc binary contrib
+
+EXTRA_DIST = @PACKAGE_TARNAME@.spec README-Win32.txt
+
+pkgconfigdir = $(libdir)/pkgconfig
+
+pkgconfig_DATA = libexif.pc
+EXTRA_DIST    += libexif.pc.in
+
+noinst_DATA = libexif-uninstalled.pc
+EXTRA_DIST += libexif-uninstalled.pc.in
+
+ACLOCAL_AMFLAGS = -I auto-m4 -I m4m
+
+doc_DATA = README AUTHORS NEWS ChangeLog ABOUT-NLS COPYING
+
+#######################################################################
+# Help for the maintainer
+#
+
+# Simulate something like
+#   EXTRA_DIST_IF_EXIST = ChangeLog.cvs
+# If present, ship ChangeLog.cvs in source tarball.
+# If not present, don't ship it.
+dist-hook:
+	if test -f $(srcdir)/ChangeLog.cvs; then \
+		cp -p $(srcdir)/ChangeLog.cvs $(distdir)/ChangeLog.cvs; \
+	fi
+
+.PHONY: cvs-changelog
+cvs-changelog: $(srcdir)/ChangeLog.cvs
+
+.PHONY: $(srcdir)/ChangeLog.cvs
+$(srcdir)/ChangeLog.cvs:
+	if test -f "$(srcdir)/cvs2cl.usermap"; then \
+		usermap="--usermap ./cvs2cl.usermap"; \
+	else \
+		usermap=""; \
+	fi; \
+	(cd "$(srcdir)" && cvs2cl $${usermap} --utc --domain users.sourceforge.net -f "ChangeLog.cvs")
+
+.PHONY: cvs-tag-release
+cvs-tag-release:
+	@tag="$$(echo "$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)-release" | sed 's|\.|_|g')"; \
+	echo "Are you sure you want to CVS tag \`$${tag}' your source files?"; \
+	echo "Press Ctrl-C to abort, Enter to continue."; \
+	read; \
+	cd "$(srcdir)" && cvs tag "$${tag}"
+
+.PHONY: upload-release
+upload-release:
+	echo ncftpput upload.sourceforge.net incoming/ $(PACKAGE_TARNAME)-$(PACKAGE_VERSION).*
+
+# End of Makefile.am.
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/NEWS b/framework/modules/c_LibExifModule/libexif-0.6.20/NEWS
new file mode 100644
index 0000000000000000000000000000000000000000..6f6c6492b6dcf258c63c81ac0120bdbe05acba10
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/NEWS
@@ -0,0 +1,154 @@
+libexif-0.6.20 (2010-12-15):
+  * New translations: bs, tr
+  * Updated translations: be, cs, da, de, en_GB, en_CA, it, ja, nl, pl, pt_BR,
+    pt, ru, sk, sq, sr, sv, vi, zh_CN
+  * Fixed some problems in the write-exif.c example program
+  * Stop listing -lm as a required library for dynamic linking in libexif.pc
+  * Turned on the --enable-silent-rules configure option
+  * Changed a lot of strings to make the case of the text more consistent
+  * exif_entry_dump() now displays the correct tag name for GPS tags
+  * Fixed some invalid format specifiers that caused problems on some platforms
+  * Display rational numbers with the right number of significant figures
+
+libexif-0.6.19 (2009-11-12):
+  * New translations: be, en_GB, it, ja, pt, sq, zh_CN
+  * Updated translations: da, sv, vi
+  * Now using a binary search to make searching through the tag table faster
+  * Fixed a heap buffer overflow during tag format conversion (CVE-2009-3895)
+
+
+libexif-0.6.18 (2009-10-09):
+  * New translations: da, pt_BR, sr
+  * Updated translations: cs, de, en_CA, nl, pl, sk, sv, vi
+  * Added some example programs
+  * libexif is now thread safe when the underlying C library is thread safe
+    and when each object allocated by libexif isn't used by more than one
+    thread simultaneously
+  * Expanded the Doxygen API documentation
+  * Access to the raw EXIF data through the ExifEntry structure members is
+    now officially documented
+  * Fixed some Olympus/Sanyo MakerNote interpretations
+  * Added support for Epson MakerNotes
+  * Fixed bug #1946138 to stop ignoring CFLAGS in the sqrt configure test
+  * Added remaining GPS tags from the EXIF 2.2 spec to the tag table
+  * Fixed the interpretation of some tags as being optional in IFD 1
+    (to match the EXIF 2.2 spec) which stops them from being erroneously
+    removed from a file when EXIF_DATA_OPTION_IGNORE_UNKNOWN_TAGS is set
+  * Changed exif_tag_get_support_level_in_ifd() to return a value when possible
+    when the data type for the given EXIF data is unknown. This will cause
+    tags to be added or deleted when tag fixup is requested even, without a
+    data type being set.
+  * Added support for writing Pentax and Casio type2 MakerNotes
+  * Improved display of Pentax and Casio type2 MakerNotes
+  * Completely fixed bug #1617997 to display APEX values correctly
+  * Stopped some crashes due to read-beyond-buffer accesses in MakerNotes
+  * Don't abort MakerNote parsing after the first invalid tag
+  * Sped up exif_content_fix()
+  * Fixed negative exposure values in Canon makernotes (bug #2797280)
+  * New API entry point: exif_loader_get_buf()
+
+
+libexif-0.6.17 (2008-11-06):
+  * Updated translations: cs, de, pl, sk, vi
+  * New translations: nl, sv, en_CA
+  * Bug fixes: #1773810, #1774626, #1536244, CVE-2007-6351, CVE-2007-6352,
+    #2071600 and others
+  * Enhanced support of Canon and Olympus makernotes 
+  * Added support for Fuji and Sanyo makernotes
+  * Added support for the NO_VERBOSE_TAG_STRINGS and NO_VERBOSE_TAG_DATA
+    macros to reduce size for embedded applications
+  * Added support for more tags
+
+
+libexif-0.6.16 (2007-06-12):
+  * Security fix: CVE-2006-4168 aka IDEF1514.
+  * Updated translations: cz, pl, vi
+
+
+New in 0.6.15 (2007-05-23) since 0.6.14 (2007-05-10):
+
+  * Added support for 2 new types of Pentax makernotes & Casio type2 makernote
+
+  * Added support for Win XP metadata (Author, Comment, KeyWords, Title,
+    Subject) tags
+
+  * Bug fixes:
+    [ 1443183 ] install error when doxygen is not present.
+
+  * New translations: Czech, Slovak.
+
+  * Improved doxygen generated API and code internals
+    documentation. Made building of code internals docs optional
+    (--enable-internal-docs) as the call graphs take quite long to
+    build. Made building any docs optional (--disable-docs).
+
+
+New in 0.6.14 (2007-05-10) since 0.6.13 (2005-12-27):
+
+  * Bug fixes: #1457501, #1471060, #1525770, #1617991, #1703284, #1716196
+
+  * Extended support of Canon, Nikon, Olympus makernotes
+
+  * Added option EXIF_DATA_OPTION_DONT_CHANGE_MAKER_NOTE to prevent
+    modification of maker notes
+
+  * Other fixes and improvements which include API/ABI additions.
+
+
+New in 0.6.13 (2005-12-27) since 0.6.12 (2005-03-13):
+
+  * Bug fixes: #803191, #1051994, #1054321, #1054323, #1196787
+  
+  * For pkg-config users, force usage of #include <libexif/exif-*.h>
+    (disable #include <exif-.h>)
+
+  * Updated German translation
+
+  * Build system tuning
+
+  * Misc changes:
+    Fix COPYRIGHT tag, fix memory corruption, use qsort.
+
+
+New in 0.6.12 (2005-03-13) since 0.6.11 (2004-10-16):
+
+  * Final fix of Ubuntu Security Notice USN-91-1 (CAN-2005-0664)
+    https://bugzilla.ubuntulinux.org/show_bug.cgi?id=7152
+
+  * Updated build system with cross compile capabilities
+
+  * Small fixes:
+    Fix tag order, use even offsets, improve Nikon&Olympus mnote tags.
+
+
+New in 0.6.11 (2004-10-16) since 0.6.10 (2004-08-27):
+
+  * Improved tag names, titles, and descriptions.
+
+  * Bug fixes for memory leaks, format strings, month one off, ...
+
+  * Support for Watcom compiler (requires manual copying of files)
+
+
+New in 0.6.10 (2004-08-27) since 0.5.9 (2002-12-11):
+
+  * New tags suppored, and added a few more checks.
+
+  * API changes
+
+  * libmnote has been merged back into libexif
+
+
+General remarks:
+
+  * This file contains changes visible to users.
+
+  * Small bug fixes (typos, memory leaks, ...) and feature
+    enhancements (new tag types, ...) are not mentioned
+    explicitly.
+
+  * Apart from that, I would like to ask committers to update this
+    file when they commit "big" user visible changes.
+
+  * If someone wants to reconstruct past changes and log them here,
+    you're welcome to.
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/README b/framework/modules/c_LibExifModule/libexif-0.6.20/README
new file mode 100644
index 0000000000000000000000000000000000000000..f6a4e0fa56d3b5e51d2a580668ce30235b329f24
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/README
@@ -0,0 +1,177 @@
+				    libexif
+				    -------
+
+DESCRIPTION
+-----------
+
+libexif is a library for parsing, editing, and saving EXIF data. It is
+intended to replace lots of redundant implementations in command-line
+utilities and programs with GUIs.
+
+
+FEATURES
+--------
+
+libexif supports parsing, editing and saving of EXIF data. In addition, it
+has gettext support. All EXIF tags described in EXIF standard 2.1 (and most
+from 2.2) are supported.  Many maker notes from Canon, Casio, Epson,
+Fuji, Nikon, Olympus, Pentax and Sanyo cameras are also supported.
+
+
+REQUIREMENTS
+------------
+
+libexif is written in plain C and does not require any additional library.
+GNU gettext will be used for language translation, if available.
+
+
+LIMITATIONS
+-----------
+
+libexif can only handle some maker notes, and even those not very well. More
+work needs to be done. Note that libmnote has been merged with libexif - it
+is no longer needed.
+
+
+USAGE
+-----
+
+We have documented the libexif API using doxygen and are making
+the results available at http://libexif.sourceforge.net/api/
+
+The short test programs in the test directory illustrates how to create
+valid EXIF data from scratch, how to save EXIF data and how to load EXIF
+data from data in memory. There are also a few simple example programs
+available in the contrib/examples/ directory.  Don't hesitate to contact
+us at <libexif-devel@lists.sourceforge.net> if you've got any questions
+on how to use libexif.
+
+To link to libexif into your own package, we recommend using the
+pkgconfig utility (cf. http://pkg-config.freedesktop.org/wiki/). For
+your convenience, libexif both provides libexif-uninstalled.pc and
+installs libexif.pc.
+
+
+FRONTENDS
+---------
+
+Right now, I know of the following frontends to libexif:
+ - exif:     A small command-line utility to show EXIF information in JPEG
+             files (http://www.sourceforge.net/projects/libexif).
+ - gexif:    A GTK+ frontend for editing EXIF data
+             (http://www.sourceforge.net/projects/libexif).
+ - gphoto2:  A command-line frontend to libgphoto2, a library to access a 
+             wide range of digital cameras (http://www.gphoto.org).
+ - gtkam:    A GTK+ frontend to libgphoto2 (http://www.topfrose.de).
+ - thirdeye: Digital photos organizer and driver for eComStation
+             (http://ecomstation.ru/thirdeye).
+ - digikam:  digital photo management application for KDE
+             (http://www.digikam.org/)
+
+If you would like to migrate your program to use libexif or add EXIF support
+to it, don't hesitate to contact the authors.
+
+
+LIBRARIES
+---------
+
+I know of the following libraries that use or have been inspired by libexif:
+ - libexif-gtk: library of widgets to help display EXIF tags in GTK
+   programs (part of the libexif project)
+ - pel: PHP-Code (http://pel.sourceforge.net)
+
+
+BUILDING
+--------
+
+It really depends on your environment what to do in order to get libexif
+to build. Building from the source tar ball usually involves the commands:
+
+  ./configure
+  make
+  sudo make install
+
+When building from source out of CVS, something like the following will be
+necessary:
+
+  gettextize
+  mv po/Makevars.template po/Makevars
+  aclocal -I auto-m4 -I m4m
+  autoheader
+  libtoolize --force
+  automake --add-missing
+  autoconf
+  ./configure
+  make
+
+Or, probably just:
+
+  autoreconf -i
+  ./configure
+  make
+
+Besides the standard arguments, configure takes several specific to libexif:
+
+  --disable-docs          To disable producing any documentation
+  --enable-internal-docs  Build internal code docs if Doxygen available
+  --enable-ship-binaries  To include Windows DLLs in 'make dist'
+
+Certain specialized applications can reduce the size of the libexif
+binary by setting one or both of the following macros in the CPPFLAGS
+environment variable at configure time.  Each one removes certain kinds of
+text strings and constants from the binary.  Applications which need
+to access specific, known EXIF tags and know in advance the meaning of
+their data have no need of those strings and can save considerable space
+by eliminating them.
+
+ -DNO_VERBOSE_TAG_STRINGS Names and descriptions of EXIF tags, debug messages,
+                          mandatory EXIF fields (disabling auto-tag-fixup)
+ -DNO_VERBOSE_TAG_DATA    Names of enumerated tag data contents
+
+
+INTERNATIONALIZATION
+--------------------
+
+The libexif translations are made by volunteers working on their own,
+either directly with the libexif project or through one of two translation
+coordination sites, the Translation Project
+<http://translationproject.org/domain/libexif.html> and Launchpad
+<https://translations.edge.launchpad.net/ubuntu/karmic/+source/libexif>.
+Any updates to language translations coordinated by the Translation Project
+must be made through their web site, but all other languages can be
+updated either through Launchpad (preferred) or by sending updates to
+the libexif developers mailing list directly.  As of this writing, the
+following languages must be updated through the Translation Project:
+cs da de es fr it ja nl pl sk sv vi
+
+If you are interested in translating libexif into a new language, we
+recommend that you join one of the above translation groups and take
+advantage of the systems they have built to help you.  A translation
+disclaimer is NOT required for libexif at the Translation Project; by making
+a translation, you agree implicitly to provide it under the same license
+terms as the rest of libexif (LGPL).
+
+
+AUTHORS
+-------
+
+libexif has originally been written by Curtis Galloway
+<curtisg@users.sourceforge.net>. Because of the original design not
+supporting editing and saving, Lutz Mueller <lutz@users.sourceforge.net>
+rewrote libexif from scratch.
+
+
+LINKS
+-----
+
+Some links you might want to check out if you are interested in further
+information about EXIF.
+
+ - http://drewnoakes.com/code/exif: metadata extraction framework in Java
+ - http://www.pima.net: This is where I got the exif standard from. Site is
+   down as of 2002/12/31.
+ - http://www.jeida.or.jp: Can't remember any more. Site is down as of
+   2002/12/31.
+ - http://www.exif.org: information about the EXIF standard.
+ - http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/index.html: Looks
+   like libexif in Perl. Seems to support a lot of MakerNotes.
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/README-Win32.txt b/framework/modules/c_LibExifModule/libexif-0.6.20/README-Win32.txt
new file mode 100644
index 0000000000000000000000000000000000000000..45a16af9933370cf2190ca8a0fe657e9be220af8
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/README-Win32.txt
@@ -0,0 +1,30 @@
+If this is a combined source/binary distribution tree, then you can find
+
+   * the binary DLL     in the subdirectory  binary/bin/
+   * the include files  in the subdirectory  binary/include/
+
+As for building libexif yourself on or for Win32, you can
+
+   a) hack yourself a build system somehow
+      This seems to be the Windows way of doing things.
+   b) Use MinGW32
+
+If you use MinGW32 (including MSYS) on Windows, building libexif should
+follow the usual pattern of
+
+   ./configure
+   make
+   make install
+
+as for any Unix like system and you can just follow the general
+instructions.
+
+Something neat to do is to use a MinGW32 cross compiler on a Unix
+system (Debian ships one for example). Then you can run
+
+    ./configure --host=i586-mingw32msvc --disable-nls
+    make
+    make install
+
+If you want to build a combined source/binary distribution tarball/zipfile,
+then add the --enable-ship-binaries option to the ./configure command line.
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/gettext.m4 b/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/gettext.m4
new file mode 100644
index 0000000000000000000000000000000000000000..a374f03fa57f13f72b6e29a0a86a50228a3d2d01
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/gettext.m4
@@ -0,0 +1,487 @@
+# gettext.m4 serial 28 (gettext-0.13)
+dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+
+dnl Macro to add for using GNU gettext.
+
+dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
+dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
+dnl    default (if it is not specified or empty) is 'no-libtool'.
+dnl    INTLSYMBOL should be 'external' for packages with no intl directory,
+dnl    and 'no-libtool' or 'use-libtool' for packages with an intl directory.
+dnl    If INTLSYMBOL is 'use-libtool', then a libtool library
+dnl    $(top_builddir)/intl/libintl.la will be created (shared and/or static,
+dnl    depending on --{enable,disable}-{shared,static} and on the presence of
+dnl    AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
+dnl    $(top_builddir)/intl/libintl.a will be created.
+dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
+dnl    implementations (in libc or libintl) without the ngettext() function
+dnl    will be ignored.  If NEEDSYMBOL is specified and is
+dnl    'need-formatstring-macros', then GNU gettext implementations that don't
+dnl    support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
+dnl INTLDIR is used to find the intl libraries.  If empty,
+dnl    the value `$(top_builddir)/intl/' is used.
+dnl
+dnl The result of the configuration is one of three cases:
+dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
+dnl    and used.
+dnl    Catalog format: GNU --> install in $(datadir)
+dnl    Catalog extension: .mo after installation, .gmo in source tree
+dnl 2) GNU gettext has been found in the system's C library.
+dnl    Catalog format: GNU --> install in $(datadir)
+dnl    Catalog extension: .mo after installation, .gmo in source tree
+dnl 3) No internationalization, always use English msgid.
+dnl    Catalog format: none
+dnl    Catalog extension: none
+dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
+dnl The use of .gmo is historical (it was needed to avoid overwriting the
+dnl GNU format catalogs when building on a platform with an X/Open gettext),
+dnl but we keep it in order not to force irrelevant filename changes on the
+dnl maintainers.
+dnl
+AC_DEFUN([AM_GNU_GETTEXT],
+[
+  dnl Argument checking.
+  ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
+    [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
+])])])])])
+  ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
+    [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
+])])])])
+  define(gt_included_intl, ifelse([$1], [external], [no], [yes]))
+  define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], []))
+
+  AC_REQUIRE([AM_PO_SUBDIRS])dnl
+  ifelse(gt_included_intl, yes, [
+    AC_REQUIRE([AM_INTL_SUBDIR])dnl
+  ])
+
+  dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+  AC_REQUIRE([AC_LIB_RPATH])
+
+  dnl Sometimes libintl requires libiconv, so first search for libiconv.
+  dnl Ideally we would do this search only after the
+  dnl      if test "$USE_NLS" = "yes"; then
+  dnl        if test "$gt_cv_func_gnugettext_libc" != "yes"; then
+  dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
+  dnl the configure script would need to contain the same shell code
+  dnl again, outside any 'if'. There are two solutions:
+  dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
+  dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
+  dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
+  dnl documented, we avoid it.
+  ifelse(gt_included_intl, yes, , [
+    AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
+  ])
+
+  dnl Set USE_NLS.
+  AM_NLS
+
+  ifelse(gt_included_intl, yes, [
+    BUILD_INCLUDED_LIBINTL=no
+    USE_INCLUDED_LIBINTL=no
+  ])
+  LIBINTL=
+  LTLIBINTL=
+  POSUB=
+
+  dnl If we use NLS figure out what method
+  if test "$USE_NLS" = "yes"; then
+    gt_use_preinstalled_gnugettext=no
+    ifelse(gt_included_intl, yes, [
+      AC_MSG_CHECKING([whether included gettext is requested])
+      AC_ARG_WITH(included-gettext,
+        [  --with-included-gettext use the GNU gettext library included here],
+        nls_cv_force_use_gnu_gettext=$withval,
+        nls_cv_force_use_gnu_gettext=no)
+      AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
+
+      nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
+      if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
+    ])
+        dnl User does not insist on using GNU NLS library.  Figure out what
+        dnl to use.  If GNU gettext is available we use this.  Else we have
+        dnl to fall back to GNU NLS library.
+
+        dnl Add a version number to the cache macros.
+        define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1)))
+        define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc])
+        define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl])
+
+        AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
+         [AC_TRY_LINK([#include <libintl.h>
+]ifelse([$2], [need-formatstring-macros],
+[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+changequote(,)dnl
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+changequote([,])dnl
+], [])[extern int _nl_msg_cat_cntr;
+extern int *_nl_domain_bindings;],
+            [bindtextdomain ("", "");
+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings],
+            gt_cv_func_gnugettext_libc=yes,
+            gt_cv_func_gnugettext_libc=no)])
+
+        if test "$gt_cv_func_gnugettext_libc" != "yes"; then
+          dnl Sometimes libintl requires libiconv, so first search for libiconv.
+          ifelse(gt_included_intl, yes, , [
+            AM_ICONV_LINK
+          ])
+          dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
+          dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
+          dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
+          dnl even if libiconv doesn't exist.
+          AC_LIB_LINKFLAGS_BODY([intl])
+          AC_CACHE_CHECK([for GNU gettext in libintl],
+            gt_cv_func_gnugettext_libintl,
+           [gt_save_CPPFLAGS="$CPPFLAGS"
+            CPPFLAGS="$CPPFLAGS $INCINTL"
+            gt_save_LIBS="$LIBS"
+            LIBS="$LIBS $LIBINTL"
+            dnl Now see whether libintl exists and does not depend on libiconv.
+            AC_TRY_LINK([#include <libintl.h>
+]ifelse([$2], [need-formatstring-macros],
+[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+changequote(,)dnl
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+changequote([,])dnl
+], [])[extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias ();],
+              [bindtextdomain ("", "");
+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
+              gt_cv_func_gnugettext_libintl=yes,
+              gt_cv_func_gnugettext_libintl=no)
+            dnl Now see whether libintl exists and depends on libiconv.
+            if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then
+              LIBS="$LIBS $LIBICONV"
+              AC_TRY_LINK([#include <libintl.h>
+]ifelse([$2], [need-formatstring-macros],
+[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+changequote(,)dnl
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+changequote([,])dnl
+], [])[extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias ();],
+                [bindtextdomain ("", "");
+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
+               [LIBINTL="$LIBINTL $LIBICONV"
+                LTLIBINTL="$LTLIBINTL $LTLIBICONV"
+                gt_cv_func_gnugettext_libintl=yes
+               ])
+            fi
+            CPPFLAGS="$gt_save_CPPFLAGS"
+            LIBS="$gt_save_LIBS"])
+        fi
+
+        dnl If an already present or preinstalled GNU gettext() is found,
+        dnl use it.  But if this macro is used in GNU gettext, and GNU
+        dnl gettext is already preinstalled in libintl, we update this
+        dnl libintl.  (Cf. the install rule in intl/Makefile.in.)
+        if test "$gt_cv_func_gnugettext_libc" = "yes" \
+           || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
+                && test "$PACKAGE" != gettext-runtime \
+                && test "$PACKAGE" != gettext-tools; }; then
+          gt_use_preinstalled_gnugettext=yes
+        else
+          dnl Reset the values set by searching for libintl.
+          LIBINTL=
+          LTLIBINTL=
+          INCINTL=
+        fi
+
+    ifelse(gt_included_intl, yes, [
+        if test "$gt_use_preinstalled_gnugettext" != "yes"; then
+          dnl GNU gettext is not found in the C library.
+          dnl Fall back on included GNU gettext library.
+          nls_cv_use_gnu_gettext=yes
+        fi
+      fi
+
+      if test "$nls_cv_use_gnu_gettext" = "yes"; then
+        dnl Mark actions used to generate GNU NLS library.
+        BUILD_INCLUDED_LIBINTL=yes
+        USE_INCLUDED_LIBINTL=yes
+        LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV"
+        LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV"
+        LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
+      fi
+
+      if test "$gt_use_preinstalled_gnugettext" = "yes" \
+         || test "$nls_cv_use_gnu_gettext" = "yes"; then
+        dnl Mark actions to use GNU gettext tools.
+        CATOBJEXT=.gmo
+      fi
+    ])
+
+    if test "$gt_use_preinstalled_gnugettext" = "yes" \
+       || test "$nls_cv_use_gnu_gettext" = "yes"; then
+      AC_DEFINE(ENABLE_NLS, 1,
+        [Define to 1 if translation of program messages to the user's native language
+   is requested.])
+    else
+      USE_NLS=no
+    fi
+  fi
+
+  AC_MSG_CHECKING([whether to use NLS])
+  AC_MSG_RESULT([$USE_NLS])
+  if test "$USE_NLS" = "yes"; then
+    AC_MSG_CHECKING([where the gettext function comes from])
+    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+      if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
+        gt_source="external libintl"
+      else
+        gt_source="libc"
+      fi
+    else
+      gt_source="included intl directory"
+    fi
+    AC_MSG_RESULT([$gt_source])
+  fi
+
+  if test "$USE_NLS" = "yes"; then
+
+    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+      if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
+        AC_MSG_CHECKING([how to link with libintl])
+        AC_MSG_RESULT([$LIBINTL])
+        AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
+      fi
+
+      dnl For backward compatibility. Some packages may be using this.
+      AC_DEFINE(HAVE_GETTEXT, 1,
+       [Define if the GNU gettext() function is already present or preinstalled.])
+      AC_DEFINE(HAVE_DCGETTEXT, 1,
+       [Define if the GNU dcgettext() function is already present or preinstalled.])
+    fi
+
+    dnl We need to process the po/ directory.
+    POSUB=po
+  fi
+
+  ifelse(gt_included_intl, yes, [
+    dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
+    dnl to 'yes' because some of the testsuite requires it.
+    if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
+      BUILD_INCLUDED_LIBINTL=yes
+    fi
+
+    dnl Make all variables we use known to autoconf.
+    AC_SUBST(BUILD_INCLUDED_LIBINTL)
+    AC_SUBST(USE_INCLUDED_LIBINTL)
+    AC_SUBST(CATOBJEXT)
+
+    dnl For backward compatibility. Some configure.ins may be using this.
+    nls_cv_header_intl=
+    nls_cv_header_libgt=
+
+    dnl For backward compatibility. Some Makefiles may be using this.
+    DATADIRNAME=share
+    AC_SUBST(DATADIRNAME)
+
+    dnl For backward compatibility. Some Makefiles may be using this.
+    INSTOBJEXT=.mo
+    AC_SUBST(INSTOBJEXT)
+
+    dnl For backward compatibility. Some Makefiles may be using this.
+    GENCAT=gencat
+    AC_SUBST(GENCAT)
+
+    dnl For backward compatibility. Some Makefiles may be using this.
+    if test "$USE_INCLUDED_LIBINTL" = yes; then
+      INTLOBJS="\$(GETTOBJS)"
+    fi
+    AC_SUBST(INTLOBJS)
+
+    dnl Enable libtool support if the surrounding package wishes it.
+    INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
+    AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
+  ])
+
+  dnl For backward compatibility. Some Makefiles may be using this.
+  INTLLIBS="$LIBINTL"
+  AC_SUBST(INTLLIBS)
+
+  dnl Make all documented variables known to autoconf.
+  AC_SUBST(LIBINTL)
+  AC_SUBST(LTLIBINTL)
+  AC_SUBST(POSUB)
+])
+
+
+dnl Checks for all prerequisites of the intl subdirectory,
+dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
+dnl            USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
+AC_DEFUN([AM_INTL_SUBDIR],
+[
+  AC_REQUIRE([AC_PROG_INSTALL])dnl
+  AC_REQUIRE([AM_MKINSTALLDIRS])dnl
+  AC_REQUIRE([AC_PROG_CC])dnl
+  AC_REQUIRE([AC_CANONICAL_HOST])dnl
+  AC_REQUIRE([AC_PROG_RANLIB])dnl
+  AC_REQUIRE([AC_ISC_POSIX])dnl
+  AC_REQUIRE([AC_HEADER_STDC])dnl
+  AC_REQUIRE([AC_C_CONST])dnl
+  AC_REQUIRE([bh_C_SIGNED])dnl
+  AC_REQUIRE([AC_C_INLINE])dnl
+  AC_REQUIRE([AC_TYPE_OFF_T])dnl
+  AC_REQUIRE([AC_TYPE_SIZE_T])dnl
+  AC_REQUIRE([jm_AC_TYPE_LONG_LONG])dnl
+  AC_REQUIRE([gt_TYPE_LONGDOUBLE])dnl
+  AC_REQUIRE([gt_TYPE_WCHAR_T])dnl
+  AC_REQUIRE([gt_TYPE_WINT_T])dnl
+  AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
+  AC_REQUIRE([jm_AC_HEADER_STDINT_H])
+  AC_REQUIRE([gt_TYPE_INTMAX_T])
+  AC_REQUIRE([gt_PRINTF_POSIX])
+  AC_REQUIRE([AC_FUNC_ALLOCA])dnl
+  AC_REQUIRE([AC_FUNC_MMAP])dnl
+  AC_REQUIRE([jm_GLIBC21])dnl
+  AC_REQUIRE([gt_INTDIV0])dnl
+  AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl
+  AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl
+  AC_REQUIRE([gt_INTTYPES_PRI])dnl
+  AC_REQUIRE([gl_XSIZE])dnl
+
+  AC_CHECK_TYPE([ptrdiff_t], ,
+    [AC_DEFINE([ptrdiff_t], [long],
+       [Define as the type of the result of subtracting two pointers, if the system doesn't define it.])
+    ])
+  AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
+stdlib.h string.h unistd.h sys/param.h])
+  AC_CHECK_FUNCS([asprintf fwprintf getcwd getegid geteuid getgid getuid \
+mempcpy munmap putenv setenv setlocale snprintf stpcpy strcasecmp strdup \
+strtoul tsearch wcslen __argz_count __argz_stringify __argz_next \
+__fsetlocking])
+
+  dnl Use the _snprintf function only if it is declared (because on NetBSD it
+  dnl is defined as a weak alias of snprintf; we prefer to use the latter).
+  gt_CHECK_DECL(_snprintf, [#include <stdio.h>])
+  gt_CHECK_DECL(_snwprintf, [#include <stdio.h>])
+
+  dnl Use the *_unlocked functions only if they are declared.
+  dnl (because some of them were defined without being declared in Solaris
+  dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
+  dnl on Solaris 2.5.1 to run on Solaris 2.6).
+  dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13.
+  gt_CHECK_DECL(feof_unlocked, [#include <stdio.h>])
+  gt_CHECK_DECL(fgets_unlocked, [#include <stdio.h>])
+  gt_CHECK_DECL(getc_unlocked, [#include <stdio.h>])
+
+  case $gt_cv_func_printf_posix in
+    *yes) HAVE_POSIX_PRINTF=1 ;;
+    *) HAVE_POSIX_PRINTF=0 ;;
+  esac
+  AC_SUBST([HAVE_POSIX_PRINTF])
+  if test "$ac_cv_func_asprintf" = yes; then
+    HAVE_ASPRINTF=1
+  else
+    HAVE_ASPRINTF=0
+  fi
+  AC_SUBST([HAVE_ASPRINTF])
+  if test "$ac_cv_func_snprintf" = yes; then
+    HAVE_SNPRINTF=1
+  else
+    HAVE_SNPRINTF=0
+  fi
+  AC_SUBST([HAVE_SNPRINTF])
+  if test "$ac_cv_func_wprintf" = yes; then
+    HAVE_WPRINTF=1
+  else
+    HAVE_WPRINTF=0
+  fi
+  AC_SUBST([HAVE_WPRINTF])
+
+  AM_ICONV
+  AM_LANGINFO_CODESET
+  if test $ac_cv_header_locale_h = yes; then
+    AM_LC_MESSAGES
+  fi
+
+  dnl intl/plural.c is generated from intl/plural.y. It requires bison,
+  dnl because plural.y uses bison specific features. It requires at least
+  dnl bison-1.26 because earlier versions generate a plural.c that doesn't
+  dnl compile.
+  dnl bison is only needed for the maintainer (who touches plural.y). But in
+  dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
+  dnl the rule in general Makefile. Now, some people carelessly touch the
+  dnl files or have a broken "make" program, hence the plural.c rule will
+  dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
+  dnl present or too old.
+  AC_CHECK_PROGS([INTLBISON], [bison])
+  if test -z "$INTLBISON"; then
+    ac_verc_fail=yes
+  else
+    dnl Found it, now check the version.
+    AC_MSG_CHECKING([version of bison])
+changequote(<<,>>)dnl
+    ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
+    case $ac_prog_version in
+      '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+      1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
+changequote([,])dnl
+         ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+      *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+    esac
+    AC_MSG_RESULT([$ac_prog_version])
+  fi
+  if test $ac_verc_fail = yes; then
+    INTLBISON=:
+  fi
+])
+
+
+dnl gt_CHECK_DECL(FUNC, INCLUDES)
+dnl Check whether a function is declared.
+AC_DEFUN([gt_CHECK_DECL],
+[
+  AC_CACHE_CHECK([whether $1 is declared], ac_cv_have_decl_$1,
+    [AC_TRY_COMPILE([$2], [
+#ifndef $1
+  char *p = (char *) $1;
+#endif
+], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)])
+  if test $ac_cv_have_decl_$1 = yes; then
+    gt_value=1
+  else
+    gt_value=0
+  fi
+  AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value],
+    [Define to 1 if you have the declaration of `$1', and to 0 if you don't.])
+])
+
+
+dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
+AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/iconv.m4 b/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/iconv.m4
new file mode 100644
index 0000000000000000000000000000000000000000..c5f3579827e7527ce83b60c2049c0b644bb6cb01
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/iconv.m4
@@ -0,0 +1,103 @@
+# iconv.m4 serial AM4 (gettext-0.11.3)
+dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
+[
+  dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+  AC_REQUIRE([AC_LIB_RPATH])
+
+  dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
+  dnl accordingly.
+  AC_LIB_LINKFLAGS_BODY([iconv])
+])
+
+AC_DEFUN([AM_ICONV_LINK],
+[
+  dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
+  dnl those with the standalone portable GNU libiconv installed).
+
+  dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
+  dnl accordingly.
+  AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
+
+  dnl Add $INCICONV to CPPFLAGS before performing the following checks,
+  dnl because if the user has installed libiconv and not disabled its use
+  dnl via --without-libiconv-prefix, he wants to use it. The first
+  dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed.
+  am_save_CPPFLAGS="$CPPFLAGS"
+  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
+
+  AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
+    am_cv_func_iconv="no, consider installing GNU libiconv"
+    am_cv_lib_iconv=no
+    AC_TRY_LINK([#include <stdlib.h>
+#include <iconv.h>],
+      [iconv_t cd = iconv_open("","");
+       iconv(cd,NULL,NULL,NULL,NULL);
+       iconv_close(cd);],
+      am_cv_func_iconv=yes)
+    if test "$am_cv_func_iconv" != yes; then
+      am_save_LIBS="$LIBS"
+      LIBS="$LIBS $LIBICONV"
+      AC_TRY_LINK([#include <stdlib.h>
+#include <iconv.h>],
+        [iconv_t cd = iconv_open("","");
+         iconv(cd,NULL,NULL,NULL,NULL);
+         iconv_close(cd);],
+        am_cv_lib_iconv=yes
+        am_cv_func_iconv=yes)
+      LIBS="$am_save_LIBS"
+    fi
+  ])
+  if test "$am_cv_func_iconv" = yes; then
+    AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
+  fi
+  if test "$am_cv_lib_iconv" = yes; then
+    AC_MSG_CHECKING([how to link with libiconv])
+    AC_MSG_RESULT([$LIBICONV])
+  else
+    dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
+    dnl either.
+    CPPFLAGS="$am_save_CPPFLAGS"
+    LIBICONV=
+    LTLIBICONV=
+  fi
+  AC_SUBST(LIBICONV)
+  AC_SUBST(LTLIBICONV)
+])
+
+AC_DEFUN([AM_ICONV],
+[
+  AM_ICONV_LINK
+  if test "$am_cv_func_iconv" = yes; then
+    AC_MSG_CHECKING([for iconv declaration])
+    AC_CACHE_VAL(am_cv_proto_iconv, [
+      AC_TRY_COMPILE([
+#include <stdlib.h>
+#include <iconv.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+#if defined(__STDC__) || defined(__cplusplus)
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+#else
+size_t iconv();
+#endif
+], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
+      am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
+    am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
+    AC_MSG_RESULT([$]{ac_t:-
+         }[$]am_cv_proto_iconv)
+    AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
+      [Define as const if the declaration of iconv() needs const.])
+  fi
+])
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/lib-ld.m4 b/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/lib-ld.m4
new file mode 100644
index 0000000000000000000000000000000000000000..38aeaec19f2779ee0aa97b704ac27daa52c9cd56
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/lib-ld.m4
@@ -0,0 +1,112 @@
+# lib-ld.m4 serial 3 (gettext-0.13)
+dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl Subroutines of libtool.m4,
+dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
+dnl with libtool.m4.
+
+dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
+AC_DEFUN([AC_LIB_PROG_LD_GNU],
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  acl_cv_prog_gnu_ld=yes ;;
+*)
+  acl_cv_prog_gnu_ld=no ;;
+esac])
+with_gnu_ld=$acl_cv_prog_gnu_ld
+])
+
+dnl From libtool-1.4. Sets the variable LD.
+AC_DEFUN([AC_LIB_PROG_LD],
+[AC_ARG_WITH(gnu-ld,
+[  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]],
+test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  AC_MSG_CHECKING([for ld used by GCC])
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [[\\/]* | [A-Za-z]:[\\/]*)]
+      [re_direlt='/[^/][^/]*/\.\./']
+      # Canonicalize the path of ld
+      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  AC_MSG_CHECKING([for GNU ld])
+else
+  AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(acl_cv_path_LD,
+[if test -z "$LD"; then
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      acl_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some GNU ld's only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break ;;
+      *)
+	test "$with_gnu_ld" != yes && break ;;
+      esac
+    fi
+  done
+  IFS="$ac_save_ifs"
+else
+  acl_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$acl_cv_path_LD"
+if test -n "$LD"; then
+  AC_MSG_RESULT($LD)
+else
+  AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_LIB_PROG_LD_GNU
+])
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/lib-link.m4 b/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/lib-link.m4
new file mode 100644
index 0000000000000000000000000000000000000000..eeb200d266db84b74456a376eabd7cb6f365fbb3
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/lib-link.m4
@@ -0,0 +1,551 @@
+# lib-link.m4 serial 4 (gettext-0.12)
+dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+
+dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
+dnl the libraries corresponding to explicit and implicit dependencies.
+dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
+dnl augments the CPPFLAGS variable.
+AC_DEFUN([AC_LIB_LINKFLAGS],
+[
+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+  AC_REQUIRE([AC_LIB_RPATH])
+  define([Name],[translit([$1],[./-], [___])])
+  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+  AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
+    AC_LIB_LINKFLAGS_BODY([$1], [$2])
+    ac_cv_lib[]Name[]_libs="$LIB[]NAME"
+    ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
+    ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
+  ])
+  LIB[]NAME="$ac_cv_lib[]Name[]_libs"
+  LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
+  INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
+  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+  AC_SUBST([LIB]NAME)
+  AC_SUBST([LTLIB]NAME)
+  dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
+  dnl results of this search when this library appears as a dependency.
+  HAVE_LIB[]NAME=yes
+  undefine([Name])
+  undefine([NAME])
+])
+
+dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
+dnl searches for libname and the libraries corresponding to explicit and
+dnl implicit dependencies, together with the specified include files and
+dnl the ability to compile and link the specified testcode. If found, it
+dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
+dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
+dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
+dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
+AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
+[
+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+  AC_REQUIRE([AC_LIB_RPATH])
+  define([Name],[translit([$1],[./-], [___])])
+  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+
+  dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
+  dnl accordingly.
+  AC_LIB_LINKFLAGS_BODY([$1], [$2])
+
+  dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
+  dnl because if the user has installed lib[]Name and not disabled its use
+  dnl via --without-lib[]Name-prefix, he wants to use it.
+  ac_save_CPPFLAGS="$CPPFLAGS"
+  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+
+  AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
+    ac_save_LIBS="$LIBS"
+    LIBS="$LIBS $LIB[]NAME"
+    AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
+    LIBS="$ac_save_LIBS"
+  ])
+  if test "$ac_cv_lib[]Name" = yes; then
+    HAVE_LIB[]NAME=yes
+    AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
+    AC_MSG_CHECKING([how to link with lib[]$1])
+    AC_MSG_RESULT([$LIB[]NAME])
+  else
+    HAVE_LIB[]NAME=no
+    dnl If $LIB[]NAME didn't lead to a usable library, we don't need
+    dnl $INC[]NAME either.
+    CPPFLAGS="$ac_save_CPPFLAGS"
+    LIB[]NAME=
+    LTLIB[]NAME=
+  fi
+  AC_SUBST([HAVE_LIB]NAME)
+  AC_SUBST([LIB]NAME)
+  AC_SUBST([LTLIB]NAME)
+  undefine([Name])
+  undefine([NAME])
+])
+
+dnl Determine the platform dependent parameters needed to use rpath:
+dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
+dnl hardcode_direct, hardcode_minus_L.
+AC_DEFUN([AC_LIB_RPATH],
+[
+  AC_REQUIRE([AC_PROG_CC])                dnl we use $CC, $GCC, $LDFLAGS
+  AC_REQUIRE([AC_LIB_PROG_LD])            dnl we use $LD, $with_gnu_ld
+  AC_REQUIRE([AC_CANONICAL_HOST])         dnl we use $host
+  AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
+  AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
+    CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
+    ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
+    . ./conftest.sh
+    rm -f ./conftest.sh
+    acl_cv_rpath=done
+  ])
+  wl="$acl_cv_wl"
+  libext="$acl_cv_libext"
+  shlibext="$acl_cv_shlibext"
+  hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+  hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+  hardcode_direct="$acl_cv_hardcode_direct"
+  hardcode_minus_L="$acl_cv_hardcode_minus_L"
+  dnl Determine whether the user wants rpath handling at all.
+  AC_ARG_ENABLE(rpath,
+    [  --disable-rpath         do not hardcode runtime library paths],
+    :, enable_rpath=yes)
+])
+
+dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
+dnl the libraries corresponding to explicit and implicit dependencies.
+dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
+AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
+[
+  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+  dnl By default, look in $includedir and $libdir.
+  use_additional=yes
+  AC_LIB_WITH_FINAL_PREFIX([
+    eval additional_includedir=\"$includedir\"
+    eval additional_libdir=\"$libdir\"
+  ])
+  AC_LIB_ARG_WITH([lib$1-prefix],
+[  --with-lib$1-prefix[=DIR]  search for lib$1 in DIR/include and DIR/lib
+  --without-lib$1-prefix     don't search for lib$1 in includedir and libdir],
+[
+    if test "X$withval" = "Xno"; then
+      use_additional=no
+    else
+      if test "X$withval" = "X"; then
+        AC_LIB_WITH_FINAL_PREFIX([
+          eval additional_includedir=\"$includedir\"
+          eval additional_libdir=\"$libdir\"
+        ])
+      else
+        additional_includedir="$withval/include"
+        additional_libdir="$withval/lib"
+      fi
+    fi
+])
+  dnl Search the library and its dependencies in $additional_libdir and
+  dnl $LDFLAGS. Using breadth-first-seach.
+  LIB[]NAME=
+  LTLIB[]NAME=
+  INC[]NAME=
+  rpathdirs=
+  ltrpathdirs=
+  names_already_handled=
+  names_next_round='$1 $2'
+  while test -n "$names_next_round"; do
+    names_this_round="$names_next_round"
+    names_next_round=
+    for name in $names_this_round; do
+      already_handled=
+      for n in $names_already_handled; do
+        if test "$n" = "$name"; then
+          already_handled=yes
+          break
+        fi
+      done
+      if test -z "$already_handled"; then
+        names_already_handled="$names_already_handled $name"
+        dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
+        dnl or AC_LIB_HAVE_LINKFLAGS call.
+        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+        eval value=\"\$HAVE_LIB$uppername\"
+        if test -n "$value"; then
+          if test "$value" = yes; then
+            eval value=\"\$LIB$uppername\"
+            test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
+            eval value=\"\$LTLIB$uppername\"
+            test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
+          else
+            dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
+            dnl that this library doesn't exist. So just drop it.
+            :
+          fi
+        else
+          dnl Search the library lib$name in $additional_libdir and $LDFLAGS
+          dnl and the already constructed $LIBNAME/$LTLIBNAME.
+          found_dir=
+          found_la=
+          found_so=
+          found_a=
+          if test $use_additional = yes; then
+            if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
+              found_dir="$additional_libdir"
+              found_so="$additional_libdir/lib$name.$shlibext"
+              if test -f "$additional_libdir/lib$name.la"; then
+                found_la="$additional_libdir/lib$name.la"
+              fi
+            else
+              if test -f "$additional_libdir/lib$name.$libext"; then
+                found_dir="$additional_libdir"
+                found_a="$additional_libdir/lib$name.$libext"
+                if test -f "$additional_libdir/lib$name.la"; then
+                  found_la="$additional_libdir/lib$name.la"
+                fi
+              fi
+            fi
+          fi
+          if test "X$found_dir" = "X"; then
+            for x in $LDFLAGS $LTLIB[]NAME; do
+              AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+              case "$x" in
+                -L*)
+                  dir=`echo "X$x" | sed -e 's/^X-L//'`
+                  if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
+                    found_dir="$dir"
+                    found_so="$dir/lib$name.$shlibext"
+                    if test -f "$dir/lib$name.la"; then
+                      found_la="$dir/lib$name.la"
+                    fi
+                  else
+                    if test -f "$dir/lib$name.$libext"; then
+                      found_dir="$dir"
+                      found_a="$dir/lib$name.$libext"
+                      if test -f "$dir/lib$name.la"; then
+                        found_la="$dir/lib$name.la"
+                      fi
+                    fi
+                  fi
+                  ;;
+              esac
+              if test "X$found_dir" != "X"; then
+                break
+              fi
+            done
+          fi
+          if test "X$found_dir" != "X"; then
+            dnl Found the library.
+            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
+            if test "X$found_so" != "X"; then
+              dnl Linking with a shared library. We attempt to hardcode its
+              dnl directory into the executable's runpath, unless it's the
+              dnl standard /usr/lib.
+              if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
+                dnl No hardcoding is needed.
+                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+              else
+                dnl Use an explicit option to hardcode DIR into the resulting
+                dnl binary.
+                dnl Potentially add DIR to ltrpathdirs.
+                dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
+                haveit=
+                for x in $ltrpathdirs; do
+                  if test "X$x" = "X$found_dir"; then
+                    haveit=yes
+                    break
+                  fi
+                done
+                if test -z "$haveit"; then
+                  ltrpathdirs="$ltrpathdirs $found_dir"
+                fi
+                dnl The hardcoding into $LIBNAME is system dependent.
+                if test "$hardcode_direct" = yes; then
+                  dnl Using DIR/libNAME.so during linking hardcodes DIR into the
+                  dnl resulting binary.
+                  LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+                else
+                  if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
+                    dnl Use an explicit option to hardcode DIR into the resulting
+                    dnl binary.
+                    LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+                    dnl Potentially add DIR to rpathdirs.
+                    dnl The rpathdirs will be appended to $LIBNAME at the end.
+                    haveit=
+                    for x in $rpathdirs; do
+                      if test "X$x" = "X$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      rpathdirs="$rpathdirs $found_dir"
+                    fi
+                  else
+                    dnl Rely on "-L$found_dir".
+                    dnl But don't add it if it's already contained in the LDFLAGS
+                    dnl or the already constructed $LIBNAME
+                    haveit=
+                    for x in $LDFLAGS $LIB[]NAME; do
+                      AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+                      if test "X$x" = "X-L$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
+                    fi
+                    if test "$hardcode_minus_L" != no; then
+                      dnl FIXME: Not sure whether we should use
+                      dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
+                      dnl here.
+                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+                    else
+                      dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
+                      dnl here, because this doesn't fit in flags passed to the
+                      dnl compiler. So give up. No hardcoding. This affects only
+                      dnl very old systems.
+                      dnl FIXME: Not sure whether we should use
+                      dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
+                      dnl here.
+                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
+                    fi
+                  fi
+                fi
+              fi
+            else
+              if test "X$found_a" != "X"; then
+                dnl Linking with a static library.
+                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
+              else
+                dnl We shouldn't come here, but anyway it's good to have a
+                dnl fallback.
+                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
+              fi
+            fi
+            dnl Assume the include files are nearby.
+            additional_includedir=
+            case "$found_dir" in
+              */lib | */lib/)
+                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
+                additional_includedir="$basedir/include"
+                ;;
+            esac
+            if test "X$additional_includedir" != "X"; then
+              dnl Potentially add $additional_includedir to $INCNAME.
+              dnl But don't add it
+              dnl   1. if it's the standard /usr/include,
+              dnl   2. if it's /usr/local/include and we are using GCC on Linux,
+              dnl   3. if it's already present in $CPPFLAGS or the already
+              dnl      constructed $INCNAME,
+              dnl   4. if it doesn't exist as a directory.
+              if test "X$additional_includedir" != "X/usr/include"; then
+                haveit=
+                if test "X$additional_includedir" = "X/usr/local/include"; then
+                  if test -n "$GCC"; then
+                    case $host_os in
+                      linux*) haveit=yes;;
+                    esac
+                  fi
+                fi
+                if test -z "$haveit"; then
+                  for x in $CPPFLAGS $INC[]NAME; do
+                    AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+                    if test "X$x" = "X-I$additional_includedir"; then
+                      haveit=yes
+                      break
+                    fi
+                  done
+                  if test -z "$haveit"; then
+                    if test -d "$additional_includedir"; then
+                      dnl Really add $additional_includedir to $INCNAME.
+                      INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
+                    fi
+                  fi
+                fi
+              fi
+            fi
+            dnl Look for dependencies.
+            if test -n "$found_la"; then
+              dnl Read the .la file. It defines the variables
+              dnl dlname, library_names, old_library, dependency_libs, current,
+              dnl age, revision, installed, dlopen, dlpreopen, libdir.
+              save_libdir="$libdir"
+              case "$found_la" in
+                */* | *\\*) . "$found_la" ;;
+                *) . "./$found_la" ;;
+              esac
+              libdir="$save_libdir"
+              dnl We use only dependency_libs.
+              for dep in $dependency_libs; do
+                case "$dep" in
+                  -L*)
+                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+                    dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
+                    dnl But don't add it
+                    dnl   1. if it's the standard /usr/lib,
+                    dnl   2. if it's /usr/local/lib and we are using GCC on Linux,
+                    dnl   3. if it's already present in $LDFLAGS or the already
+                    dnl      constructed $LIBNAME,
+                    dnl   4. if it doesn't exist as a directory.
+                    if test "X$additional_libdir" != "X/usr/lib"; then
+                      haveit=
+                      if test "X$additional_libdir" = "X/usr/local/lib"; then
+                        if test -n "$GCC"; then
+                          case $host_os in
+                            linux*) haveit=yes;;
+                          esac
+                        fi
+                      fi
+                      if test -z "$haveit"; then
+                        haveit=
+                        for x in $LDFLAGS $LIB[]NAME; do
+                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                            dnl Really add $additional_libdir to $LIBNAME.
+                            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
+                          fi
+                        fi
+                        haveit=
+                        for x in $LDFLAGS $LTLIB[]NAME; do
+                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                            dnl Really add $additional_libdir to $LTLIBNAME.
+                            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
+                          fi
+                        fi
+                      fi
+                    fi
+                    ;;
+                  -R*)
+                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
+                    if test "$enable_rpath" != no; then
+                      dnl Potentially add DIR to rpathdirs.
+                      dnl The rpathdirs will be appended to $LIBNAME at the end.
+                      haveit=
+                      for x in $rpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        rpathdirs="$rpathdirs $dir"
+                      fi
+                      dnl Potentially add DIR to ltrpathdirs.
+                      dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
+                      haveit=
+                      for x in $ltrpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        ltrpathdirs="$ltrpathdirs $dir"
+                      fi
+                    fi
+                    ;;
+                  -l*)
+                    dnl Handle this in the next round.
+                    names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+                    ;;
+                  *.la)
+                    dnl Handle this in the next round. Throw away the .la's
+                    dnl directory; it is already contained in a preceding -L
+                    dnl option.
+                    names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+                    ;;
+                  *)
+                    dnl Most likely an immediate library name.
+                    LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
+                    LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
+                    ;;
+                esac
+              done
+            fi
+          else
+            dnl Didn't find the library; assume it is in the system directories
+            dnl known to the linker and runtime loader. (All the system
+            dnl directories known to the linker should also be known to the
+            dnl runtime loader, otherwise the system is severely misconfigured.)
+            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
+            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
+          fi
+        fi
+      fi
+    done
+  done
+  if test "X$rpathdirs" != "X"; then
+    if test -n "$hardcode_libdir_separator"; then
+      dnl Weird platform: only the last -rpath option counts, the user must
+      dnl pass all path elements in one option. We can arrange that for a
+      dnl single library, but not when more than one $LIBNAMEs are used.
+      alldirs=
+      for found_dir in $rpathdirs; do
+        alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
+      done
+      dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
+      acl_save_libdir="$libdir"
+      libdir="$alldirs"
+      eval flag=\"$hardcode_libdir_flag_spec\"
+      libdir="$acl_save_libdir"
+      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
+    else
+      dnl The -rpath options are cumulative.
+      for found_dir in $rpathdirs; do
+        acl_save_libdir="$libdir"
+        libdir="$found_dir"
+        eval flag=\"$hardcode_libdir_flag_spec\"
+        libdir="$acl_save_libdir"
+        LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
+      done
+    fi
+  fi
+  if test "X$ltrpathdirs" != "X"; then
+    dnl When using libtool, the option that works for both libraries and
+    dnl executables is -R. The -R options are cumulative.
+    for found_dir in $ltrpathdirs; do
+      LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
+    done
+  fi
+])
+
+dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
+dnl unless already present in VAR.
+dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
+dnl contains two or three consecutive elements that belong together.
+AC_DEFUN([AC_LIB_APPENDTOVAR],
+[
+  for element in [$2]; do
+    haveit=
+    for x in $[$1]; do
+      AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+      if test "X$x" = "X$element"; then
+        haveit=yes
+        break
+      fi
+    done
+    if test -z "$haveit"; then
+      [$1]="${[$1]}${[$1]:+ }$element"
+    fi
+  done
+])
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/lib-prefix.m4 b/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/lib-prefix.m4
new file mode 100644
index 0000000000000000000000000000000000000000..8aff5a9d206a2077c670d74ed997b5af111c1788
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/lib-prefix.m4
@@ -0,0 +1,155 @@
+# lib-prefix.m4 serial 3 (gettext-0.13)
+dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+
+dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
+dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
+dnl require excessive bracketing.
+ifdef([AC_HELP_STRING],
+[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
+[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
+
+dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
+dnl to access previously installed libraries. The basic assumption is that
+dnl a user will want packages to use other packages he previously installed
+dnl with the same --prefix option.
+dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
+dnl libraries, but is otherwise very convenient.
+AC_DEFUN([AC_LIB_PREFIX],
+[
+  AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
+  AC_REQUIRE([AC_PROG_CC])
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+  dnl By default, look in $includedir and $libdir.
+  use_additional=yes
+  AC_LIB_WITH_FINAL_PREFIX([
+    eval additional_includedir=\"$includedir\"
+    eval additional_libdir=\"$libdir\"
+  ])
+  AC_LIB_ARG_WITH([lib-prefix],
+[  --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
+  --without-lib-prefix    don't search for libraries in includedir and libdir],
+[
+    if test "X$withval" = "Xno"; then
+      use_additional=no
+    else
+      if test "X$withval" = "X"; then
+        AC_LIB_WITH_FINAL_PREFIX([
+          eval additional_includedir=\"$includedir\"
+          eval additional_libdir=\"$libdir\"
+        ])
+      else
+        additional_includedir="$withval/include"
+        additional_libdir="$withval/lib"
+      fi
+    fi
+])
+  if test $use_additional = yes; then
+    dnl Potentially add $additional_includedir to $CPPFLAGS.
+    dnl But don't add it
+    dnl   1. if it's the standard /usr/include,
+    dnl   2. if it's already present in $CPPFLAGS,
+    dnl   3. if it's /usr/local/include and we are using GCC on Linux,
+    dnl   4. if it doesn't exist as a directory.
+    if test "X$additional_includedir" != "X/usr/include"; then
+      haveit=
+      for x in $CPPFLAGS; do
+        AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+        if test "X$x" = "X-I$additional_includedir"; then
+          haveit=yes
+          break
+        fi
+      done
+      if test -z "$haveit"; then
+        if test "X$additional_includedir" = "X/usr/local/include"; then
+          if test -n "$GCC"; then
+            case $host_os in
+              linux*) haveit=yes;;
+            esac
+          fi
+        fi
+        if test -z "$haveit"; then
+          if test -d "$additional_includedir"; then
+            dnl Really add $additional_includedir to $CPPFLAGS.
+            CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
+          fi
+        fi
+      fi
+    fi
+    dnl Potentially add $additional_libdir to $LDFLAGS.
+    dnl But don't add it
+    dnl   1. if it's the standard /usr/lib,
+    dnl   2. if it's already present in $LDFLAGS,
+    dnl   3. if it's /usr/local/lib and we are using GCC on Linux,
+    dnl   4. if it doesn't exist as a directory.
+    if test "X$additional_libdir" != "X/usr/lib"; then
+      haveit=
+      for x in $LDFLAGS; do
+        AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+        if test "X$x" = "X-L$additional_libdir"; then
+          haveit=yes
+          break
+        fi
+      done
+      if test -z "$haveit"; then
+        if test "X$additional_libdir" = "X/usr/local/lib"; then
+          if test -n "$GCC"; then
+            case $host_os in
+              linux*) haveit=yes;;
+            esac
+          fi
+        fi
+        if test -z "$haveit"; then
+          if test -d "$additional_libdir"; then
+            dnl Really add $additional_libdir to $LDFLAGS.
+            LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
+          fi
+        fi
+      fi
+    fi
+  fi
+])
+
+dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
+dnl acl_final_exec_prefix, containing the values to which $prefix and
+dnl $exec_prefix will expand at the end of the configure script.
+AC_DEFUN([AC_LIB_PREPARE_PREFIX],
+[
+  dnl Unfortunately, prefix and exec_prefix get only finally determined
+  dnl at the end of configure.
+  if test "X$prefix" = "XNONE"; then
+    acl_final_prefix="$ac_default_prefix"
+  else
+    acl_final_prefix="$prefix"
+  fi
+  if test "X$exec_prefix" = "XNONE"; then
+    acl_final_exec_prefix='${prefix}'
+  else
+    acl_final_exec_prefix="$exec_prefix"
+  fi
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
+  prefix="$acl_save_prefix"
+])
+
+dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
+dnl variables prefix and exec_prefix bound to the values they will have
+dnl at the end of the configure script.
+AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
+[
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  $1
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+])
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/libtool.m4 b/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/libtool.m4
new file mode 100644
index 0000000000000000000000000000000000000000..a3fee5360f644854cc9497a7b3b1ed2ba6d46f08
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/libtool.m4
@@ -0,0 +1,7377 @@
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+#
+#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#   Written by Gordon Matzigkeit, 1996
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+m4_define([_LT_COPYING], [dnl
+#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#   Written by Gordon Matzigkeit, 1996
+#
+#   This file is part of GNU Libtool.
+#
+# GNU Libtool is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Libtool; see the file COPYING.  If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
+# obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+])
+
+# serial 56 LT_INIT
+
+
+# LT_PREREQ(VERSION)
+# ------------------
+# Complain and exit if this libtool version is less that VERSION.
+m4_defun([LT_PREREQ],
+[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
+       [m4_default([$3],
+		   [m4_fatal([Libtool version $1 or higher is required],
+		             63)])],
+       [$2])])
+
+
+# _LT_CHECK_BUILDDIR
+# ------------------
+# Complain if the absolute build directory name contains unusual characters
+m4_defun([_LT_CHECK_BUILDDIR],
+[case `pwd` in
+  *\ * | *\	*)
+    AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
+esac
+])
+
+
+# LT_INIT([OPTIONS])
+# ------------------
+AC_DEFUN([LT_INIT],
+[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
+AC_BEFORE([$0], [LT_LANG])dnl
+AC_BEFORE([$0], [LT_OUTPUT])dnl
+AC_BEFORE([$0], [LTDL_INIT])dnl
+m4_require([_LT_CHECK_BUILDDIR])dnl
+
+dnl Autoconf doesn't catch unexpanded LT_ macros by default:
+m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
+m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
+dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
+dnl unless we require an AC_DEFUNed macro:
+AC_REQUIRE([LTOPTIONS_VERSION])dnl
+AC_REQUIRE([LTSUGAR_VERSION])dnl
+AC_REQUIRE([LTVERSION_VERSION])dnl
+AC_REQUIRE([LTOBSOLETE_VERSION])dnl
+m4_require([_LT_PROG_LTMAIN])dnl
+
+dnl Parse OPTIONS
+_LT_SET_OPTIONS([$0], [$1])
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ltmain"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+_LT_SETUP
+
+# Only expand once:
+m4_define([LT_INIT])
+])# LT_INIT
+
+# Old names:
+AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
+AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
+dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
+
+
+# _LT_CC_BASENAME(CC)
+# -------------------
+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+m4_defun([_LT_CC_BASENAME],
+[for cc_temp in $1""; do
+  case $cc_temp in
+    compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
+    distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+])
+
+
+# _LT_FILEUTILS_DEFAULTS
+# ----------------------
+# It is okay to use these file commands and assume they have been set
+# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
+m4_defun([_LT_FILEUTILS_DEFAULTS],
+[: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+])# _LT_FILEUTILS_DEFAULTS
+
+
+# _LT_SETUP
+# ---------
+m4_defun([_LT_SETUP],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+_LT_DECL([], [host_alias], [0], [The host system])dnl
+_LT_DECL([], [host], [0])dnl
+_LT_DECL([], [host_os], [0])dnl
+dnl
+_LT_DECL([], [build_alias], [0], [The build system])dnl
+_LT_DECL([], [build], [0])dnl
+_LT_DECL([], [build_os], [0])dnl
+dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([LT_PATH_LD])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+dnl
+AC_REQUIRE([AC_PROG_LN_S])dnl
+test -z "$LN_S" && LN_S="ln -s"
+_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
+dnl
+AC_REQUIRE([LT_CMD_MAX_LEN])dnl
+_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
+_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
+dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_CMD_RELOAD])dnl
+m4_require([_LT_CHECK_MAGIC_METHOD])dnl
+m4_require([_LT_CMD_OLD_ARCHIVE])dnl
+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+
+_LT_CONFIG_LIBTOOL_INIT([
+# See if we are running on zsh, and set the options which allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}" ; then
+   setopt NO_GLOB_SUBST
+fi
+])
+if test -n "${ZSH_VERSION+set}" ; then
+   setopt NO_GLOB_SUBST
+fi
+
+_LT_CHECK_OBJDIR
+
+m4_require([_LT_TAG_COMPILER])dnl
+_LT_PROG_ECHO_BACKSLASH
+
+case $host_os in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test "X${COLLECT_NAMES+set}" != Xset; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([["`\\]]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+_LT_CC_BASENAME([$compiler])
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+    _LT_PATH_MAGIC
+  fi
+  ;;
+esac
+
+# Use C for the default configuration in the libtool script
+LT_SUPPORTED_TAG([CC])
+_LT_LANG_C_CONFIG
+_LT_LANG_DEFAULT_CONFIG
+_LT_CONFIG_COMMANDS
+])# _LT_SETUP
+
+
+# _LT_PROG_LTMAIN
+# ---------------
+# Note that this code is called both from `configure', and `config.status'
+# now that we use AC_CONFIG_COMMANDS to generate libtool.  Notably,
+# `config.status' has no value for ac_aux_dir unless we are using Automake,
+# so we pass a copy along to make sure it has a sensible value anyway.
+m4_defun([_LT_PROG_LTMAIN],
+[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
+_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
+ltmain="$ac_aux_dir/ltmain.sh"
+])# _LT_PROG_LTMAIN
+
+
+## ------------------------------------- ##
+## Accumulate code for creating libtool. ##
+## ------------------------------------- ##
+
+# So that we can recreate a full libtool script including additional
+# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
+# in macros and then make a single call at the end using the `libtool'
+# label.
+
+
+# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
+# ----------------------------------------
+# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+m4_define([_LT_CONFIG_LIBTOOL_INIT],
+[m4_ifval([$1],
+          [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
+                     [$1
+])])])
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_INIT])
+
+
+# _LT_CONFIG_LIBTOOL([COMMANDS])
+# ------------------------------
+# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+m4_define([_LT_CONFIG_LIBTOOL],
+[m4_ifval([$1],
+          [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
+                     [$1
+])])])
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
+
+
+# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
+# -----------------------------------------------------
+m4_defun([_LT_CONFIG_SAVE_COMMANDS],
+[_LT_CONFIG_LIBTOOL([$1])
+_LT_CONFIG_LIBTOOL_INIT([$2])
+])
+
+
+# _LT_FORMAT_COMMENT([COMMENT])
+# -----------------------------
+# Add leading comment marks to the start of each line, and a trailing
+# full-stop to the whole comment if one is not present already.
+m4_define([_LT_FORMAT_COMMENT],
+[m4_ifval([$1], [
+m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
+              [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
+)])
+
+
+
+## ------------------------ ##
+## FIXME: Eliminate VARNAME ##
+## ------------------------ ##
+
+
+# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
+# -------------------------------------------------------------------
+# CONFIGNAME is the name given to the value in the libtool script.
+# VARNAME is the (base) name used in the configure script.
+# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
+# VARNAME.  Any other value will be used directly.
+m4_define([_LT_DECL],
+[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
+    [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
+	[m4_ifval([$1], [$1], [$2])])
+    lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
+    m4_ifval([$4],
+	[lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
+    lt_dict_add_subkey([lt_decl_dict], [$2],
+	[tagged?], [m4_ifval([$5], [yes], [no])])])
+])
+
+
+# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
+# --------------------------------------------------------
+m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
+
+
+# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+m4_define([lt_decl_tag_varnames],
+[_lt_decl_filter([tagged?], [yes], $@)])
+
+
+# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
+# ---------------------------------------------------------
+m4_define([_lt_decl_filter],
+[m4_case([$#],
+  [0], [m4_fatal([$0: too few arguments: $#])],
+  [1], [m4_fatal([$0: too few arguments: $#: $1])],
+  [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
+  [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
+  [lt_dict_filter([lt_decl_dict], $@)])[]dnl
+])
+
+
+# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
+# --------------------------------------------------
+m4_define([lt_decl_quote_varnames],
+[_lt_decl_filter([value], [1], $@)])
+
+
+# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+m4_define([lt_decl_dquote_varnames],
+[_lt_decl_filter([value], [2], $@)])
+
+
+# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+m4_define([lt_decl_varnames_tagged],
+[m4_assert([$# <= 2])dnl
+_$0(m4_quote(m4_default([$1], [[, ]])),
+    m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
+    m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
+m4_define([_lt_decl_varnames_tagged],
+[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
+
+
+# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+m4_define([lt_decl_all_varnames],
+[_$0(m4_quote(m4_default([$1], [[, ]])),
+     m4_if([$2], [],
+	   m4_quote(lt_decl_varnames),
+	m4_quote(m4_shift($@))))[]dnl
+])
+m4_define([_lt_decl_all_varnames],
+[lt_join($@, lt_decl_varnames_tagged([$1],
+			lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
+])
+
+
+# _LT_CONFIG_STATUS_DECLARE([VARNAME])
+# ------------------------------------
+# Quote a variable value, and forward it to `config.status' so that its
+# declaration there will have the same value as in `configure'.  VARNAME
+# must have a single quote delimited value for this to work.
+m4_define([_LT_CONFIG_STATUS_DECLARE],
+[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`'])
+
+
+# _LT_CONFIG_STATUS_DECLARATIONS
+# ------------------------------
+# We delimit libtool config variables with single quotes, so when
+# we write them to config.status, we have to be sure to quote all
+# embedded single quotes properly.  In configure, this macro expands
+# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
+#
+#    <var>='`$ECHO "X$<var>" | $Xsed -e "$delay_single_quote_subst"`'
+m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
+[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
+    [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
+
+
+# _LT_LIBTOOL_TAGS
+# ----------------
+# Output comment and list of tags supported by the script
+m4_defun([_LT_LIBTOOL_TAGS],
+[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
+available_tags="_LT_TAGS"dnl
+])
+
+
+# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
+# -----------------------------------
+# Extract the dictionary values for VARNAME (optionally with TAG) and
+# expand to a commented shell variable setting:
+#
+#    # Some comment about what VAR is for.
+#    visible_name=$lt_internal_name
+m4_define([_LT_LIBTOOL_DECLARE],
+[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
+					   [description])))[]dnl
+m4_pushdef([_libtool_name],
+    m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
+m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
+    [0], [_libtool_name=[$]$1],
+    [1], [_libtool_name=$lt_[]$1],
+    [2], [_libtool_name=$lt_[]$1],
+    [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
+m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
+])
+
+
+# _LT_LIBTOOL_CONFIG_VARS
+# -----------------------
+# Produce commented declarations of non-tagged libtool config variables
+# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
+# script.  Tagged libtool config variables (even for the LIBTOOL CONFIG
+# section) are produced by _LT_LIBTOOL_TAG_VARS.
+m4_defun([_LT_LIBTOOL_CONFIG_VARS],
+[m4_foreach([_lt_var],
+    m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
+    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
+
+
+# _LT_LIBTOOL_TAG_VARS(TAG)
+# -------------------------
+m4_define([_LT_LIBTOOL_TAG_VARS],
+[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
+    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
+
+
+# _LT_TAGVAR(VARNAME, [TAGNAME])
+# ------------------------------
+m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
+
+
+# _LT_CONFIG_COMMANDS
+# -------------------
+# Send accumulated output to $CONFIG_STATUS.  Thanks to the lists of
+# variables for single and double quote escaping we saved from calls
+# to _LT_DECL, we can put quote escaped variables declarations
+# into `config.status', and then the shell code to quote escape them in
+# for loops in `config.status'.  Finally, any additional code accumulated
+# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
+m4_defun([_LT_CONFIG_COMMANDS],
+[AC_PROVIDE_IFELSE([LT_OUTPUT],
+	dnl If the libtool generation code has been placed in $CONFIG_LT,
+	dnl instead of duplicating it all over again into config.status,
+	dnl then we will have config.status run $CONFIG_LT later, so it
+	dnl needs to know what name is stored there:
+        [AC_CONFIG_COMMANDS([libtool],
+            [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
+    dnl If the libtool generation code is destined for config.status,
+    dnl expand the accumulated commands and init code now:
+    [AC_CONFIG_COMMANDS([libtool],
+        [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
+])#_LT_CONFIG_COMMANDS
+
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
+[
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+_LT_CONFIG_STATUS_DECLARATIONS
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# Quote evaled strings.
+for var in lt_decl_all_varnames([[ \
+]], lt_decl_quote_varnames); do
+    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+    *[[\\\\\\\`\\"\\\$]]*)
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+      ;;
+    *)
+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+      ;;
+    esac
+done
+
+# Double-quote double-evaled strings.
+for var in lt_decl_all_varnames([[ \
+]], lt_decl_dquote_varnames); do
+    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+    *[[\\\\\\\`\\"\\\$]]*)
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+      ;;
+    *)
+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+      ;;
+    esac
+done
+
+# Fix-up fallback echo if it was mangled by the above quoting rules.
+case \$lt_ECHO in
+*'\\\[$]0 --fallback-echo"')dnl "
+  lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\`
+  ;;
+esac
+
+_LT_OUTPUT_LIBTOOL_INIT
+])
+
+
+# LT_OUTPUT
+# ---------
+# This macro allows early generation of the libtool script (before
+# AC_OUTPUT is called), incase it is used in configure for compilation
+# tests.
+AC_DEFUN([LT_OUTPUT],
+[: ${CONFIG_LT=./config.lt}
+AC_MSG_NOTICE([creating $CONFIG_LT])
+cat >"$CONFIG_LT" <<_LTEOF
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate a libtool stub with the current configuration.
+
+lt_cl_silent=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_LTEOF
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+AS_SHELL_SANITIZE
+_AS_PREPARE
+
+exec AS_MESSAGE_FD>&1
+exec AS_MESSAGE_LOG_FD>>config.log
+{
+  echo
+  AS_BOX([Running $as_me.])
+} >&AS_MESSAGE_LOG_FD
+
+lt_cl_help="\
+\`$as_me' creates a local libtool stub from the current configuration,
+for use in further configure time tests before the real libtool is
+generated.
+
+Usage: $[0] [[OPTIONS]]
+
+  -h, --help      print this help, then exit
+  -V, --version   print version number, then exit
+  -q, --quiet     do not print progress messages
+  -d, --debug     don't remove temporary files
+
+Report bugs to <bug-libtool@gnu.org>."
+
+lt_cl_version="\
+m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
+m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
+configured by $[0], generated by m4_PACKAGE_STRING.
+
+Copyright (C) 2008 Free Software Foundation, Inc.
+This config.lt script is free software; the Free Software Foundation
+gives unlimited permision to copy, distribute and modify it."
+
+while test $[#] != 0
+do
+  case $[1] in
+    --version | --v* | -V )
+      echo "$lt_cl_version"; exit 0 ;;
+    --help | --h* | -h )
+      echo "$lt_cl_help"; exit 0 ;;
+    --debug | --d* | -d )
+      debug=: ;;
+    --quiet | --q* | --silent | --s* | -q )
+      lt_cl_silent=: ;;
+
+    -*) AC_MSG_ERROR([unrecognized option: $[1]
+Try \`$[0] --help' for more information.]) ;;
+
+    *) AC_MSG_ERROR([unrecognized argument: $[1]
+Try \`$[0] --help' for more information.]) ;;
+  esac
+  shift
+done
+
+if $lt_cl_silent; then
+  exec AS_MESSAGE_FD>/dev/null
+fi
+_LTEOF
+
+cat >>"$CONFIG_LT" <<_LTEOF
+_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
+_LTEOF
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+AC_MSG_NOTICE([creating $ofile])
+_LT_OUTPUT_LIBTOOL_COMMANDS
+AS_EXIT(0)
+_LTEOF
+chmod +x "$CONFIG_LT"
+
+# configure is writing to config.log, but config.lt does its own redirection,
+# appending to config.log, which fails on DOS, as config.log is still kept
+# open by configure.  Here we exec the FD to /dev/null, effectively closing
+# config.log, so it can be properly (re)opened and appended to by config.lt.
+if test "$no_create" != yes; then
+  lt_cl_success=:
+  test "$silent" = yes &&
+    lt_config_lt_args="$lt_config_lt_args --quiet"
+  exec AS_MESSAGE_LOG_FD>/dev/null
+  $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
+  exec AS_MESSAGE_LOG_FD>>config.log
+  $lt_cl_success || AS_EXIT(1)
+fi
+])# LT_OUTPUT
+
+
+# _LT_CONFIG(TAG)
+# ---------------
+# If TAG is the built-in tag, create an initial libtool script with a
+# default configuration from the untagged config vars.  Otherwise add code
+# to config.status for appending the configuration named by TAG from the
+# matching tagged config vars.
+m4_defun([_LT_CONFIG],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+_LT_CONFIG_SAVE_COMMANDS([
+  m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
+  m4_if(_LT_TAG, [C], [
+    # See if we are running on zsh, and set the options which allow our
+    # commands through without removal of \ escapes.
+    if test -n "${ZSH_VERSION+set}" ; then
+      setopt NO_GLOB_SUBST
+    fi
+
+    cfgfile="${ofile}T"
+    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+    $RM "$cfgfile"
+
+    cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+
+# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+_LT_COPYING
+_LT_LIBTOOL_TAGS
+
+# ### BEGIN LIBTOOL CONFIG
+_LT_LIBTOOL_CONFIG_VARS
+_LT_LIBTOOL_TAG_VARS
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+  case $host_os in
+  aix3*)
+    cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program.  For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+  COLLECT_NAMES=
+  export COLLECT_NAMES
+fi
+_LT_EOF
+    ;;
+  esac
+
+  _LT_PROG_LTMAIN
+
+  # We use sed instead of cat because bash on DJGPP gets confused if
+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+  # text mode, it properly converts lines to CR/LF.  This bash problem
+  # is reportedly fixed, but why not run on old versions too?
+  sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
+    || (rm -f "$cfgfile"; exit 1)
+
+  _LT_PROG_XSI_SHELLFNS
+
+  sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
+    || (rm -f "$cfgfile"; exit 1)
+
+  mv -f "$cfgfile" "$ofile" ||
+    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+  chmod +x "$ofile"
+],
+[cat <<_LT_EOF >> "$ofile"
+
+dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
+dnl in a comment (ie after a #).
+# ### BEGIN LIBTOOL TAG CONFIG: $1
+_LT_LIBTOOL_TAG_VARS(_LT_TAG)
+# ### END LIBTOOL TAG CONFIG: $1
+_LT_EOF
+])dnl /m4_if
+],
+[m4_if([$1], [], [
+    PACKAGE='$PACKAGE'
+    VERSION='$VERSION'
+    TIMESTAMP='$TIMESTAMP'
+    RM='$RM'
+    ofile='$ofile'], [])
+])dnl /_LT_CONFIG_SAVE_COMMANDS
+])# _LT_CONFIG
+
+
+# LT_SUPPORTED_TAG(TAG)
+# ---------------------
+# Trace this macro to discover what tags are supported by the libtool
+# --tag option, using:
+#    autoconf --trace 'LT_SUPPORTED_TAG:$1'
+AC_DEFUN([LT_SUPPORTED_TAG], [])
+
+
+# C support is built-in for now
+m4_define([_LT_LANG_C_enabled], [])
+m4_define([_LT_TAGS], [])
+
+
+# LT_LANG(LANG)
+# -------------
+# Enable libtool support for the given language if not already enabled.
+AC_DEFUN([LT_LANG],
+[AC_BEFORE([$0], [LT_OUTPUT])dnl
+m4_case([$1],
+  [C],			[_LT_LANG(C)],
+  [C++],		[_LT_LANG(CXX)],
+  [Java],		[_LT_LANG(GCJ)],
+  [Fortran 77],		[_LT_LANG(F77)],
+  [Fortran],		[_LT_LANG(FC)],
+  [Windows Resource],	[_LT_LANG(RC)],
+  [m4_ifdef([_LT_LANG_]$1[_CONFIG],
+    [_LT_LANG($1)],
+    [m4_fatal([$0: unsupported language: "$1"])])])dnl
+])# LT_LANG
+
+
+# _LT_LANG(LANGNAME)
+# ------------------
+m4_defun([_LT_LANG],
+[m4_ifdef([_LT_LANG_]$1[_enabled], [],
+  [LT_SUPPORTED_TAG([$1])dnl
+  m4_append([_LT_TAGS], [$1 ])dnl
+  m4_define([_LT_LANG_]$1[_enabled], [])dnl
+  _LT_LANG_$1_CONFIG($1)])dnl
+])# _LT_LANG
+
+
+# _LT_LANG_DEFAULT_CONFIG
+# -----------------------
+m4_defun([_LT_LANG_DEFAULT_CONFIG],
+[AC_PROVIDE_IFELSE([AC_PROG_CXX],
+  [LT_LANG(CXX)],
+  [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
+
+AC_PROVIDE_IFELSE([AC_PROG_F77],
+  [LT_LANG(F77)],
+  [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
+
+AC_PROVIDE_IFELSE([AC_PROG_FC],
+  [LT_LANG(FC)],
+  [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
+
+dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
+dnl pulling things in needlessly.
+AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+  [LT_LANG(GCJ)],
+  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+    [LT_LANG(GCJ)],
+    [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
+      [LT_LANG(GCJ)],
+      [m4_ifdef([AC_PROG_GCJ],
+	[m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
+       m4_ifdef([A][M_PROG_GCJ],
+	[m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
+       m4_ifdef([LT_PROG_GCJ],
+	[m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
+
+AC_PROVIDE_IFELSE([LT_PROG_RC],
+  [LT_LANG(RC)],
+  [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
+])# _LT_LANG_DEFAULT_CONFIG
+
+# Obsolete macros:
+AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
+AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
+AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
+AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
+dnl AC_DEFUN([AC_LIBTOOL_F77], [])
+dnl AC_DEFUN([AC_LIBTOOL_FC], [])
+dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
+
+
+# _LT_TAG_COMPILER
+# ----------------
+m4_defun([_LT_TAG_COMPILER],
+[AC_REQUIRE([AC_PROG_CC])dnl
+
+_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
+_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
+_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
+_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+])# _LT_TAG_COMPILER
+
+
+# _LT_COMPILER_BOILERPLATE
+# ------------------------
+# Check for compiler boilerplate output or warnings with
+# the simple compiler test code.
+m4_defun([_LT_COMPILER_BOILERPLATE],
+[m4_require([_LT_DECL_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+])# _LT_COMPILER_BOILERPLATE
+
+
+# _LT_LINKER_BOILERPLATE
+# ----------------------
+# Check for linker boilerplate output or warnings with
+# the simple link test code.
+m4_defun([_LT_LINKER_BOILERPLATE],
+[m4_require([_LT_DECL_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+])# _LT_LINKER_BOILERPLATE
+
+# _LT_REQUIRED_DARWIN_CHECKS
+# -------------------------
+m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
+  case $host_os in
+    rhapsody* | darwin*)
+    AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
+    AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
+    AC_CHECK_TOOL([LIPO], [lipo], [:])
+    AC_CHECK_TOOL([OTOOL], [otool], [:])
+    AC_CHECK_TOOL([OTOOL64], [otool64], [:])
+    _LT_DECL([], [DSYMUTIL], [1],
+      [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
+    _LT_DECL([], [NMEDIT], [1],
+      [Tool to change global to local symbols on Mac OS X])
+    _LT_DECL([], [LIPO], [1],
+      [Tool to manipulate fat objects and archives on Mac OS X])
+    _LT_DECL([], [OTOOL], [1],
+      [ldd/readelf like tool for Mach-O binaries on Mac OS X])
+    _LT_DECL([], [OTOOL64], [1],
+      [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
+
+    AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
+      [lt_cv_apple_cc_single_mod=no
+      if test -z "${LT_MULTI_MODULE}"; then
+	# By default we will add the -single_module flag. You can override
+	# by either setting the environment variable LT_MULTI_MODULE
+	# non-empty at configure time, or by adding -multi_module to the
+	# link flags.
+	rm -rf libconftest.dylib*
+	echo "int foo(void){return 1;}" > conftest.c
+	echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
+	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+        _lt_result=$?
+	if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+	  lt_cv_apple_cc_single_mod=yes
+	else
+	  cat conftest.err >&AS_MESSAGE_LOG_FD
+	fi
+	rm -rf libconftest.dylib*
+	rm -f conftest.*
+      fi])
+    AC_CACHE_CHECK([for -exported_symbols_list linker flag],
+      [lt_cv_ld_exported_symbols_list],
+      [lt_cv_ld_exported_symbols_list=no
+      save_LDFLAGS=$LDFLAGS
+      echo "_main" > conftest.sym
+      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+      AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+	[lt_cv_ld_exported_symbols_list=yes],
+	[lt_cv_ld_exported_symbols_list=no])
+	LDFLAGS="$save_LDFLAGS"
+    ])
+    case $host_os in
+    rhapsody* | darwin1.[[012]])
+      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+    darwin1.*)
+      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+    darwin*) # darwin 5.x on
+      # if running on 10.5 or later, the deployment target defaults
+      # to the OS version, if on x86, and 10.4, the deployment
+      # target defaults to 10.4. Don't you love it?
+      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+	10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
+	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+	10.[[012]]*)
+	  _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+	10.*)
+	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+      esac
+    ;;
+  esac
+    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+      _lt_dar_single_mod='$single_module'
+    fi
+    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+    else
+      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    fi
+    if test "$DSYMUTIL" != ":"; then
+      _lt_dsymutil='~$DSYMUTIL $lib || :'
+    else
+      _lt_dsymutil=
+    fi
+    ;;
+  esac
+])
+
+
+# _LT_DARWIN_LINKER_FEATURES
+# --------------------------
+# Checks for linker and compiler features on darwin
+m4_defun([_LT_DARWIN_LINKER_FEATURES],
+[
+  m4_require([_LT_REQUIRED_DARWIN_CHECKS])
+  _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+  _LT_TAGVAR(hardcode_direct, $1)=no
+  _LT_TAGVAR(hardcode_automatic, $1)=yes
+  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+  _LT_TAGVAR(whole_archive_flag_spec, $1)=''
+  _LT_TAGVAR(link_all_deplibs, $1)=yes
+  _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
+  case $cc_basename in
+     ifort*) _lt_dar_can_shared=yes ;;
+     *) _lt_dar_can_shared=$GCC ;;
+  esac
+  if test "$_lt_dar_can_shared" = "yes"; then
+    output_verbose_link_cmd=echo
+    _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+    _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+    _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+    m4_if([$1], [CXX],
+[   if test "$lt_cv_apple_cc_single_mod" != "yes"; then
+      _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
+      _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
+    fi
+],[])
+  else
+  _LT_TAGVAR(ld_shlibs, $1)=no
+  fi
+])
+
+# _LT_SYS_MODULE_PATH_AIX
+# -----------------------
+# Links a minimal program and checks the executable
+# for the system default hardcoded library path. In most cases,
+# this is /usr/lib:/lib, but when the MPI compilers are used
+# the location of the communication and MPI libs are included too.
+# If we don't find anything, use the default library path according
+# to the aix ld manual.
+m4_defun([_LT_SYS_MODULE_PATH_AIX],
+[m4_require([_LT_DECL_SED])dnl
+AC_LINK_IFELSE(AC_LANG_PROGRAM,[
+lt_aix_libpath_sed='
+    /Import File Strings/,/^$/ {
+	/^0/ {
+	    s/^0  *\(.*\)$/\1/
+	    p
+	}
+    }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi],[])
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+])# _LT_SYS_MODULE_PATH_AIX
+
+
+# _LT_SHELL_INIT(ARG)
+# -------------------
+m4_define([_LT_SHELL_INIT],
+[ifdef([AC_DIVERSION_NOTICE],
+	     [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
+	 [AC_DIVERT_PUSH(NOTICE)])
+$1
+AC_DIVERT_POP
+])# _LT_SHELL_INIT
+
+
+# _LT_PROG_ECHO_BACKSLASH
+# -----------------------
+# Add some code to the start of the generated configure script which
+# will find an echo command which doesn't interpret backslashes.
+m4_defun([_LT_PROG_ECHO_BACKSLASH],
+[_LT_SHELL_INIT([
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$lt_ECHO in
+X*--fallback-echo)
+  # Remove one level of quotation (which was required for Make).
+  ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
+  ;;
+esac
+
+ECHO=${lt_ECHO-echo}
+if test "X[$]1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X[$]1" = X--fallback-echo; then
+  # Avoid inline document here, it may be left over
+  :
+elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
+  # Yippee, $ECHO works!
+  :
+else
+  # Restart under the correct shell.
+  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
+fi
+
+if test "X[$]1" = X--fallback-echo; then
+  # used as fallback echo
+  shift
+  cat <<_LT_EOF
+[$]*
+_LT_EOF
+  exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test -z "$lt_ECHO"; then
+  if test "X${echo_test_string+set}" != Xset; then
+    # find a string as large as possible, as long as the shell can cope with it
+    for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
+      # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+      if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
+	 { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
+      then
+        break
+      fi
+    done
+  fi
+
+  if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
+     echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
+     test "X$echo_testing_string" = "X$echo_test_string"; then
+    :
+  else
+    # The Solaris, AIX, and Digital Unix default echo programs unquote
+    # backslashes.  This makes it impossible to quote backslashes using
+    #   echo "$something" | sed 's/\\/\\\\/g'
+    #
+    # So, first we look for a working echo in the user's PATH.
+
+    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    for dir in $PATH /usr/ucb; do
+      IFS="$lt_save_ifs"
+      if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+         test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+         echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+         test "X$echo_testing_string" = "X$echo_test_string"; then
+        ECHO="$dir/echo"
+        break
+      fi
+    done
+    IFS="$lt_save_ifs"
+
+    if test "X$ECHO" = Xecho; then
+      # We didn't find a better echo, so look for alternatives.
+      if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
+         echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
+         test "X$echo_testing_string" = "X$echo_test_string"; then
+        # This shell has a builtin print -r that does the trick.
+        ECHO='print -r'
+      elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
+	   test "X$CONFIG_SHELL" != X/bin/ksh; then
+        # If we have ksh, try running configure again with it.
+        ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+        export ORIGINAL_CONFIG_SHELL
+        CONFIG_SHELL=/bin/ksh
+        export CONFIG_SHELL
+        exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
+      else
+        # Try using printf.
+        ECHO='printf %s\n'
+        if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
+	   echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	  # Cool, printf works
+	  :
+        elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+	     test "X$echo_testing_string" = 'X\t' &&
+	     echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	     test "X$echo_testing_string" = "X$echo_test_string"; then
+	  CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+	  export CONFIG_SHELL
+	  SHELL="$CONFIG_SHELL"
+	  export SHELL
+	  ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
+        elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+	     test "X$echo_testing_string" = 'X\t' &&
+	     echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	     test "X$echo_testing_string" = "X$echo_test_string"; then
+	  ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
+        else
+	  # maybe with a smaller string...
+	  prev=:
+
+	  for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
+	    if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
+	    then
+	      break
+	    fi
+	    prev="$cmd"
+	  done
+
+	  if test "$prev" != 'sed 50q "[$]0"'; then
+	    echo_test_string=`eval $prev`
+	    export echo_test_string
+	    exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
+	  else
+	    # Oops.  We lost completely, so just stick with echo.
+	    ECHO=echo
+	  fi
+        fi
+      fi
+    fi
+  fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+lt_ECHO=$ECHO
+if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
+   lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
+fi
+
+AC_SUBST(lt_ECHO)
+])
+_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
+_LT_DECL([], [ECHO], [1],
+    [An echo program that does not interpret backslashes])
+])# _LT_PROG_ECHO_BACKSLASH
+
+
+# _LT_ENABLE_LOCK
+# ---------------
+m4_defun([_LT_ENABLE_LOCK],
+[AC_ARG_ENABLE([libtool-lock],
+  [AS_HELP_STRING([--disable-libtool-lock],
+    [avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.$ac_objext` in
+      *ELF-32*)
+	HPUX_IA64_MODE="32"
+	;;
+      *ELF-64*)
+	HPUX_IA64_MODE="64"
+	;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+*-*-irix6*)
+  # Find out which ABI we are using.
+  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    if test "$lt_cv_prog_gnu_ld" = yes; then
+      case `/usr/bin/file conftest.$ac_objext` in
+	*32-bit*)
+	  LD="${LD-ld} -melf32bsmip"
+	  ;;
+	*N32*)
+	  LD="${LD-ld} -melf32bmipn32"
+	  ;;
+	*64-bit*)
+	  LD="${LD-ld} -melf64bmip"
+	;;
+      esac
+    else
+      case `/usr/bin/file conftest.$ac_objext` in
+	*32-bit*)
+	  LD="${LD-ld} -32"
+	  ;;
+	*N32*)
+	  LD="${LD-ld} -n32"
+	  ;;
+	*64-bit*)
+	  LD="${LD-ld} -64"
+	  ;;
+      esac
+    fi
+  fi
+  rm -rf conftest*
+  ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+      *32-bit*)
+	case $host in
+	  x86_64-*kfreebsd*-gnu)
+	    LD="${LD-ld} -m elf_i386_fbsd"
+	    ;;
+	  x86_64-*linux*)
+	    LD="${LD-ld} -m elf_i386"
+	    ;;
+	  ppc64-*linux*|powerpc64-*linux*)
+	    LD="${LD-ld} -m elf32ppclinux"
+	    ;;
+	  s390x-*linux*)
+	    LD="${LD-ld} -m elf_s390"
+	    ;;
+	  sparc64-*linux*)
+	    LD="${LD-ld} -m elf32_sparc"
+	    ;;
+	esac
+	;;
+      *64-bit*)
+	case $host in
+	  x86_64-*kfreebsd*-gnu)
+	    LD="${LD-ld} -m elf_x86_64_fbsd"
+	    ;;
+	  x86_64-*linux*)
+	    LD="${LD-ld} -m elf_x86_64"
+	    ;;
+	  ppc*-*linux*|powerpc*-*linux*)
+	    LD="${LD-ld} -m elf64ppc"
+	    ;;
+	  s390*-*linux*|s390*-*tpf*)
+	    LD="${LD-ld} -m elf64_s390"
+	    ;;
+	  sparc*-*linux*)
+	    LD="${LD-ld} -m elf64_sparc"
+	    ;;
+	esac
+	;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+*-*-sco3.2v5*)
+  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+  SAVE_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -belf"
+  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+    [AC_LANG_PUSH(C)
+     AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+     AC_LANG_POP])
+  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+    CFLAGS="$SAVE_CFLAGS"
+  fi
+  ;;
+sparc*-*solaris*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+    *64-bit*)
+      case $lt_cv_prog_gnu_ld in
+      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      *)
+	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+	  LD="${LD-ld} -64"
+	fi
+	;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+esac
+
+need_locks="$enable_libtool_lock"
+])# _LT_ENABLE_LOCK
+
+
+# _LT_CMD_OLD_ARCHIVE
+# -------------------
+m4_defun([_LT_CMD_OLD_ARCHIVE],
+[AC_CHECK_TOOL(AR, ar, false)
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+_LT_DECL([], [AR], [1], [The archiver])
+_LT_DECL([], [AR_FLAGS], [1])
+
+AC_CHECK_TOOL(STRIP, strip, :)
+test -z "$STRIP" && STRIP=:
+_LT_DECL([], [STRIP], [1], [A symbol stripping program])
+
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+test -z "$RANLIB" && RANLIB=:
+_LT_DECL([], [RANLIB], [1],
+    [Commands used to install an old-style archive])
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+  case $host_os in
+  openbsd*)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+    ;;
+  *)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+    ;;
+  esac
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+_LT_DECL([], [old_postinstall_cmds], [2])
+_LT_DECL([], [old_postuninstall_cmds], [2])
+_LT_TAGDECL([], [old_archive_cmds], [2],
+    [Commands used to build an old-style archive])
+])# _LT_CMD_OLD_ARCHIVE
+
+
+# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([_LT_COMPILER_OPTION],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+   m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$3"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       $2=yes
+     fi
+   fi
+   $RM conftest*
+])
+
+if test x"[$]$2" = xyes; then
+    m4_if([$5], , :, [$5])
+else
+    m4_if([$6], , :, [$6])
+fi
+])# _LT_COMPILER_OPTION
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
+
+
+# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#                  [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------
+# Check whether the given linker option works
+AC_DEFUN([_LT_LINKER_OPTION],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $3"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&AS_MESSAGE_LOG_FD
+       $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         $2=yes
+       fi
+     else
+       $2=yes
+     fi
+   fi
+   $RM -r conftest*
+   LDFLAGS="$save_LDFLAGS"
+])
+
+if test x"[$]$2" = xyes; then
+    m4_if([$4], , :, [$4])
+else
+    m4_if([$5], , :, [$5])
+fi
+])# _LT_LINKER_OPTION
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
+
+
+# LT_CMD_MAX_LEN
+#---------------
+AC_DEFUN([LT_CMD_MAX_LEN],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+  i=0
+  teststring="ABCD"
+
+  case $build_os in
+  msdosdjgpp*)
+    # On DJGPP, this test can blow up pretty badly due to problems in libc
+    # (any single argument exceeding 2000 bytes causes a buffer overrun
+    # during glob expansion).  Even if it were fixed, the result of this
+    # check would be larger than it should be.
+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
+    ;;
+
+  gnu*)
+    # Under GNU Hurd, this test is not required because there is
+    # no limit to the length of command line arguments.
+    # Libtool will interpret -1 as no limit whatsoever
+    lt_cv_sys_max_cmd_len=-1;
+    ;;
+
+  cygwin* | mingw* | cegcc*)
+    # On Win9x/ME, this test blows up -- it succeeds, but takes
+    # about 5 minutes as the teststring grows exponentially.
+    # Worse, since 9x/ME are not pre-emptively multitasking,
+    # you end up with a "frozen" computer, even though with patience
+    # the test eventually succeeds (with a max line length of 256k).
+    # Instead, let's just punt: use the minimum linelength reported by
+    # all of the supported platforms: 8192 (on NT/2K/XP).
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  amigaos*)
+    # On AmigaOS with pdksh, this test takes hours, literally.
+    # So we just punt and use a minimum line length of 8192.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+    # This has been around since 386BSD, at least.  Likely further.
+    if test -x /sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+    elif test -x /usr/sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+    else
+      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
+    fi
+    # And add a safety zone
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    ;;
+
+  interix*)
+    # We know the value 262144 and hardcode it with a safety zone (like BSD)
+    lt_cv_sys_max_cmd_len=196608
+    ;;
+
+  osf*)
+    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+    # nice to cause kernel panics so lets avoid the loop below.
+    # First set a reasonable default.
+    lt_cv_sys_max_cmd_len=16384
+    #
+    if test -x /sbin/sysconfig; then
+      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+        *1*) lt_cv_sys_max_cmd_len=-1 ;;
+      esac
+    fi
+    ;;
+  sco3.2v5*)
+    lt_cv_sys_max_cmd_len=102400
+    ;;
+  sysv5* | sco5v6* | sysv4.2uw2*)
+    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+    if test -n "$kargmax"; then
+      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[	 ]]//'`
+    else
+      lt_cv_sys_max_cmd_len=32768
+    fi
+    ;;
+  *)
+    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+    if test -n "$lt_cv_sys_max_cmd_len"; then
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    else
+      # Make teststring a little bigger before we do anything with it.
+      # a 1K string should be a reasonable start.
+      for i in 1 2 3 4 5 6 7 8 ; do
+        teststring=$teststring$teststring
+      done
+      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+      # If test is not a shell built-in, we'll probably end up computing a
+      # maximum length that is only half of the actual maximum length, but
+      # we can't tell.
+      while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
+	         = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
+	      test $i != 17 # 1/2 MB should be enough
+      do
+        i=`expr $i + 1`
+        teststring=$teststring$teststring
+      done
+      # Only check the string length outside the loop.
+      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+      teststring=
+      # Add a significant safety factor because C++ compilers can tack on
+      # massive amounts of additional arguments before passing them to the
+      # linker.  It appears as though 1/2 is a usable value.
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    fi
+    ;;
+  esac
+])
+if test -n $lt_cv_sys_max_cmd_len ; then
+  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+else
+  AC_MSG_RESULT(none)
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+_LT_DECL([], [max_cmd_len], [0],
+    [What is the maximum length of a command?])
+])# LT_CMD_MAX_LEN
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
+
+
+# _LT_HEADER_DLFCN
+# ----------------
+m4_defun([_LT_HEADER_DLFCN],
+[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
+])# _LT_HEADER_DLFCN
+
+
+# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+#                      ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ----------------------------------------------------------------
+m4_defun([_LT_TRY_DLOPEN_SELF],
+[m4_require([_LT_HEADER_DLFCN])dnl
+if test "$cross_compiling" = yes; then :
+  [$4]
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<_LT_EOF
+[#line __oline__ "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+  else
+    puts (dlerror ());
+
+  return status;
+}]
+_LT_EOF
+  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) $1 ;;
+      x$lt_dlneed_uscore) $2 ;;
+      x$lt_dlunknown|x*) $3 ;;
+    esac
+  else :
+    # compilation failed
+    $3
+  fi
+fi
+rm -fr conftest*
+])# _LT_TRY_DLOPEN_SELF
+
+
+# LT_SYS_DLOPEN_SELF
+# ------------------
+AC_DEFUN([LT_SYS_DLOPEN_SELF],
+[m4_require([_LT_HEADER_DLFCN])dnl
+if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32* | cegcc*)
+    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen_libs=
+    ;;
+
+  cygwin*)
+    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen_libs=
+    ;;
+
+  darwin*)
+  # if libdl is installed we need to link against it
+    AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
+    lt_cv_dlopen="dyld"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ])
+    ;;
+
+  *)
+    AC_CHECK_FUNC([shl_load],
+	  [lt_cv_dlopen="shl_load"],
+      [AC_CHECK_LIB([dld], [shl_load],
+	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
+	[AC_CHECK_FUNC([dlopen],
+	      [lt_cv_dlopen="dlopen"],
+	  [AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+	    [AC_CHECK_LIB([svld], [dlopen],
+		  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+	      [AC_CHECK_LIB([dld], [dld_link],
+		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
+	      ])
+	    ])
+	  ])
+	])
+      ])
+    ;;
+  esac
+
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  else
+    enable_dlopen=no
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS="$CPPFLAGS"
+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS="$LDFLAGS"
+    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS="$LIBS"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    AC_CACHE_CHECK([whether a program can dlopen itself],
+	  lt_cv_dlopen_self, [dnl
+	  _LT_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+    ])
+
+    if test "x$lt_cv_dlopen_self" = xyes; then
+      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+	  lt_cv_dlopen_self_static, [dnl
+	  _LT_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
+      ])
+    fi
+
+    CPPFLAGS="$save_CPPFLAGS"
+    LDFLAGS="$save_LDFLAGS"
+    LIBS="$save_LIBS"
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+_LT_DECL([dlopen_support], [enable_dlopen], [0],
+	 [Whether dlopen is supported])
+_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
+	 [Whether dlopen of programs is supported])
+_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
+	 [Whether dlopen of statically linked programs is supported])
+])# LT_SYS_DLOPEN_SELF
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
+
+
+# _LT_COMPILER_C_O([TAGNAME])
+# ---------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler.
+# This macro does not hard code the compiler like AC_PROG_CC_C_O.
+m4_defun([_LT_COMPILER_C_O],
+[m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
+  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
+  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
+   $RM -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+     fi
+   fi
+   chmod u+w . 2>&AS_MESSAGE_LOG_FD
+   $RM conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+   $RM out/* && rmdir out
+   cd ..
+   $RM -r conftest
+   $RM conftest*
+])
+_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
+	[Does compiler simultaneously support -c and -o options?])
+])# _LT_COMPILER_C_O
+
+
+# _LT_COMPILER_FILE_LOCKS([TAGNAME])
+# ----------------------------------
+# Check to see if we can do hard links to lock some files if needed
+m4_defun([_LT_COMPILER_FILE_LOCKS],
+[m4_require([_LT_ENABLE_LOCK])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+_LT_COMPILER_C_O([$1])
+
+hard_links="nottested"
+if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  AC_MSG_CHECKING([if we can lock with hard links])
+  hard_links=yes
+  $RM conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  AC_MSG_RESULT([$hard_links])
+  if test "$hard_links" = no; then
+    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
+])# _LT_COMPILER_FILE_LOCKS
+
+
+# _LT_CHECK_OBJDIR
+# ----------------
+m4_defun([_LT_CHECK_OBJDIR],
+[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
+[rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+  lt_cv_objdir=.libs
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null])
+objdir=$lt_cv_objdir
+_LT_DECL([], [objdir], [0],
+         [The name of the directory that contains temporary libtool files])dnl
+m4_pattern_allow([LT_OBJDIR])dnl
+AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/",
+  [Define to the sub-directory in which libtool stores uninstalled libraries.])
+])# _LT_CHECK_OBJDIR
+
+
+# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
+# --------------------------------------
+# Check hardcoding attributes.
+m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
+[AC_MSG_CHECKING([how to hardcode library paths into programs])
+_LT_TAGVAR(hardcode_action, $1)=
+if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
+   test -n "$_LT_TAGVAR(runpath_var, $1)" ||
+   test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
+
+  # We can hardcode non-existent directories.
+  if test "$_LT_TAGVAR(hardcode_direct, $1)" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
+     test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then
+    # Linking always hardcodes the temporary library directory.
+    _LT_TAGVAR(hardcode_action, $1)=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    _LT_TAGVAR(hardcode_action, $1)=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  _LT_TAGVAR(hardcode_action, $1)=unsupported
+fi
+AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
+
+if test "$_LT_TAGVAR(hardcode_action, $1)" = relink ||
+   test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+_LT_TAGDECL([], [hardcode_action], [0],
+    [How to hardcode a shared library path into an executable])
+])# _LT_LINKER_HARDCODE_LIBPATH
+
+
+# _LT_CMD_STRIPLIB
+# ----------------
+m4_defun([_LT_CMD_STRIPLIB],
+[m4_require([_LT_DECL_EGREP])
+striplib=
+old_striplib=
+AC_MSG_CHECKING([whether stripping libraries is possible])
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  AC_MSG_RESULT([yes])
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+  darwin*)
+    if test -n "$STRIP" ; then
+      striplib="$STRIP -x"
+      old_striplib="$STRIP -S"
+      AC_MSG_RESULT([yes])
+    else
+      AC_MSG_RESULT([no])
+    fi
+    ;;
+  *)
+    AC_MSG_RESULT([no])
+    ;;
+  esac
+fi
+_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
+_LT_DECL([], [striplib], [1])
+])# _LT_CMD_STRIPLIB
+
+
+# _LT_SYS_DYNAMIC_LINKER([TAG])
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+m4_defun([_LT_SYS_DYNAMIC_LINKER],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_OBJDUMP])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_MSG_CHECKING([dynamic linker characteristics])
+m4_if([$1],
+	[], [
+if test "$GCC" = yes; then
+  case $host_os in
+    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
+    *) lt_awk_arg="/^libraries:/" ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+  if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
+  else
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+  fi
+  # Ok, now we have the path, separated by spaces, we can step through it
+  # and add multilib dir if necessary.
+  lt_tmp_lt_search_path_spec=
+  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  for lt_sys_path in $lt_search_path_spec; do
+    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
+      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
+    else
+      test -d "$lt_sys_path" && \
+	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+    fi
+  done
+  lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
+BEGIN {RS=" "; FS="/|\n";} {
+  lt_foo="";
+  lt_count=0;
+  for (lt_i = NF; lt_i > 0; lt_i--) {
+    if ($lt_i != "" && $lt_i != ".") {
+      if ($lt_i == "..") {
+        lt_count++;
+      } else {
+        if (lt_count == 0) {
+          lt_foo="/" $lt_i lt_foo;
+        } else {
+          lt_count--;
+        }
+      }
+    }
+  }
+  if (lt_foo != "") { lt_freq[[lt_foo]]++; }
+  if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
+}'`
+  sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi])
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix[[4-9]]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[[01]] | aix4.[[01]].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  case $host_cpu in
+  powerpc)
+    # Since July 2007 AmigaOS4 officially supports .so libraries.
+    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    ;;
+  m68k)
+    library_names_spec='$libname.ixlibrary $libname.a'
+    # Create ${libname}_ixlibrary.a entries in /sys/libs.
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    ;;
+  esac
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[[45]]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname~
+      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+      fi'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw* | cegcc*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+m4_if([$1], [],[
+  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[[123]]*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[[01]]* | freebsdelf3.[[01]]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
+  freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  *) # from 4.6 on, and DragonFly
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+  hppa*64*)
+    shrext_cmds='.sl'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+  *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+interix[[3-9]]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  # Some binutils ld are patched to set DT_RUNPATH
+  save_LDFLAGS=$LDFLAGS
+  save_libdir=$libdir
+  eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
+       LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
+  AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+    [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
+       [shlibpath_overrides_runpath=yes])])
+  LDFLAGS=$save_LDFLAGS
+  libdir=$save_libdir
+
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+netbsdelf*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='NetBSD ld.elf_so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+*nto* | *qnx*)
+  version_type=qnx
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='ldqnx.so'
+  ;;
+
+openbsd*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
+    *)				need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[[89]] | openbsd2.[[89]].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+rdos*)
+  dynamic_linker=no
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+tpf*)
+  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+AC_MSG_RESULT([$dynamic_linker])
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+fi
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+fi
+
+_LT_DECL([], [variables_saved_for_relink], [1],
+    [Variables whose values should be saved in libtool wrapper scripts and
+    restored at link time])
+_LT_DECL([], [need_lib_prefix], [0],
+    [Do we need the "lib" prefix for modules?])
+_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
+_LT_DECL([], [version_type], [0], [Library versioning type])
+_LT_DECL([], [runpath_var], [0],  [Shared library runtime path variable])
+_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
+_LT_DECL([], [shlibpath_overrides_runpath], [0],
+    [Is shlibpath searched before the hard-coded library search path?])
+_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
+_LT_DECL([], [library_names_spec], [1],
+    [[List of archive names.  First name is the real one, the rest are links.
+    The last name is the one that the linker finds with -lNAME]])
+_LT_DECL([], [soname_spec], [1],
+    [[The coded name of the library, if different from the real name]])
+_LT_DECL([], [postinstall_cmds], [2],
+    [Command to use after installation of a shared archive])
+_LT_DECL([], [postuninstall_cmds], [2],
+    [Command to use after uninstallation of a shared archive])
+_LT_DECL([], [finish_cmds], [2],
+    [Commands used to finish a libtool library installation in a directory])
+_LT_DECL([], [finish_eval], [1],
+    [[As "finish_cmds", except a single script fragment to be evaled but
+    not shown]])
+_LT_DECL([], [hardcode_into_libs], [0],
+    [Whether we should hardcode library paths into libraries])
+_LT_DECL([], [sys_lib_search_path_spec], [2],
+    [Compile-time system search path for libraries])
+_LT_DECL([], [sys_lib_dlsearch_path_spec], [2],
+    [Run-time system search path for libraries])
+])# _LT_SYS_DYNAMIC_LINKER
+
+
+# _LT_PATH_TOOL_PREFIX(TOOL)
+# --------------------------
+# find a file program which can recognize shared library
+AC_DEFUN([_LT_PATH_TOOL_PREFIX],
+[m4_require([_LT_DECL_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] |  ?:[\\/]*])
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word.  This closes a longstanding sh security hole.
+  ac_dummy="m4_if([$2], , $PATH, [$2])"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$1; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac])
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  AC_MSG_RESULT($MAGIC_CMD)
+else
+  AC_MSG_RESULT(no)
+fi
+_LT_DECL([], [MAGIC_CMD], [0],
+	 [Used to examine libraries when file_magic_cmd begins with "file"])dnl
+])# _LT_PATH_TOOL_PREFIX
+
+# Old name:
+AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
+
+
+# _LT_PATH_MAGIC
+# --------------
+# find a file program which can recognize a shared library
+m4_defun([_LT_PATH_MAGIC],
+[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+  if test -n "$ac_tool_prefix"; then
+    _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
+  else
+    MAGIC_CMD=:
+  fi
+fi
+])# _LT_PATH_MAGIC
+
+
+# LT_PATH_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+AC_DEFUN([LT_PATH_LD],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+
+AC_ARG_WITH([gnu-ld],
+    [AS_HELP_STRING([--with-gnu-ld],
+	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
+    [test "$withval" = no || with_gnu_ld=yes],
+    [with_gnu_ld=no])dnl
+
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  AC_MSG_CHECKING([for ld used by $CC])
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [[\\/]]* | ?:[[\\/]]*)
+      re_direlt='/[[^/]][[^/]]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  AC_MSG_CHECKING([for GNU ld])
+else
+  AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some variants of GNU ld only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break
+	;;
+      *)
+	test "$with_gnu_ld" != yes && break
+	;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+else
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  AC_MSG_RESULT($LD)
+else
+  AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+_LT_PATH_LD_GNU
+AC_SUBST([LD])
+
+_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
+])# LT_PATH_LD
+
+# Old names:
+AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
+AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_PROG_LD], [])
+dnl AC_DEFUN([AC_PROG_LD], [])
+
+
+# _LT_PATH_LD_GNU
+#- --------------
+m4_defun([_LT_PATH_LD_GNU],
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac])
+with_gnu_ld=$lt_cv_prog_gnu_ld
+])# _LT_PATH_LD_GNU
+
+
+# _LT_CMD_RELOAD
+# --------------
+# find reload flag for linker
+#   -- PORTME Some linkers may need a different reload flag.
+m4_defun([_LT_CMD_RELOAD],
+[AC_CACHE_CHECK([for $LD option to reload object files],
+  lt_cv_ld_reload_flag,
+  [lt_cv_ld_reload_flag='-r'])
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+  darwin*)
+    if test "$GCC" = yes; then
+      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+    else
+      reload_cmds='$LD$reload_flag -o $output$reload_objs'
+    fi
+    ;;
+esac
+_LT_DECL([], [reload_flag], [1], [How to create reloadable object files])dnl
+_LT_DECL([], [reload_cmds], [2])dnl
+])# _LT_CMD_RELOAD
+
+
+# _LT_CHECK_MAGIC_METHOD
+# ----------------------
+# how to check for library dependencies
+#  -- PORTME fill in with the dynamic library characteristics
+m4_defun([_LT_CHECK_MAGIC_METHOD],
+[m4_require([_LT_DECL_EGREP])
+m4_require([_LT_DECL_OBJDUMP])
+AC_CACHE_CHECK([how to recognize dependent libraries],
+lt_cv_deplibs_check_method,
+[lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[[4-9]]*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+beos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+bsdi[[45]]*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  ;;
+
+cygwin*)
+  # func_win32_libid is a shell function defined in ltmain.sh
+  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+  lt_cv_file_magic_cmd='func_win32_libid'
+  ;;
+
+mingw* | pw32*)
+  # Base MSYS/MinGW do not provide the 'file' command needed by
+  # func_win32_libid shell function, so use a weaker test based on 'objdump',
+  # unless we find 'file', for example because we are cross-compiling.
+  if ( file / ) >/dev/null 2>&1; then
+    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+    lt_cv_file_magic_cmd='func_win32_libid'
+  else
+    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+    lt_cv_file_magic_cmd='$OBJDUMP -f'
+  fi
+  ;;
+
+cegcc)
+  # use the weaker test based on 'objdump'. See mingw*.
+  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+  lt_cv_file_magic_cmd='$OBJDUMP -f'
+  ;;
+
+darwin* | rhapsody*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+freebsd* | dragonfly*)
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+    case $host_cpu in
+    i*86 )
+      # Not sure whether the presence of OpenBSD here was a mistake.
+      # Let's accept both of them until this is cleared up.
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
+      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+      ;;
+    esac
+  else
+    lt_cv_deplibs_check_method=pass_all
+  fi
+  ;;
+
+gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+hpux10.20* | hpux11*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  case $host_cpu in
+  ia64*)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+    ;;
+  hppa*64*)
+    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+    ;;
+  *)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
+    ;;
+  esac
+  ;;
+
+interix[[3-9]]*)
+  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+  lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $LD in
+  *-32|*"-32 ") libmagic=32-bit;;
+  *-n32|*"-n32 ") libmagic=N32;;
+  *-64|*"-64 ") libmagic=64-bit;;
+  *) libmagic=never-match;;
+  esac
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+netbsd* | netbsdelf*-gnu)
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
+  fi
+  ;;
+
+newos6*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+  ;;
+
+*nto* | *qnx*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+openbsd*)
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  fi
+  ;;
+
+osf3* | osf4* | osf5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+rdos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv4 | sysv4.3*)
+  case $host_vendor in
+  motorola)
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  sequent)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+    ;;
+  sni)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+    lt_cv_file_magic_test_file=/lib/libc.so
+    ;;
+  siemens)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  pc)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
+
+tpf*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+esac
+])
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+_LT_DECL([], [deplibs_check_method], [1],
+    [Method to check whether dependent libraries are shared objects])
+_LT_DECL([], [file_magic_cmd], [1],
+    [Command to use when deplibs_check_method == "file_magic"])
+])# _LT_CHECK_MAGIC_METHOD
+
+
+# LT_PATH_NM
+# ----------
+# find the pathname to a BSD- or MS-compatible name lister
+AC_DEFUN([LT_PATH_NM],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
+[if test -n "$NM"; then
+  # Let the user override the test.
+  lt_cv_path_NM="$NM"
+else
+  lt_nm_to_check="${ac_tool_prefix}nm"
+  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+    lt_nm_to_check="$lt_nm_to_check nm"
+  fi
+  for lt_tmp_nm in $lt_nm_to_check; do
+    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+      IFS="$lt_save_ifs"
+      test -z "$ac_dir" && ac_dir=.
+      tmp_nm="$ac_dir/$lt_tmp_nm"
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+	# Check to see if the nm accepts a BSD-compat flag.
+	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
+	#   nm: unknown option "B" ignored
+	# Tru64's nm complains that /dev/null is an invalid object file
+	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+	*/dev/null* | *'Invalid file or object type'*)
+	  lt_cv_path_NM="$tmp_nm -B"
+	  break
+	  ;;
+	*)
+	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+	  */dev/null*)
+	    lt_cv_path_NM="$tmp_nm -p"
+	    break
+	    ;;
+	  *)
+	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+	    continue # so that we can try to find one that supports BSD flags
+	    ;;
+	  esac
+	  ;;
+	esac
+      fi
+    done
+    IFS="$lt_save_ifs"
+  done
+  : ${lt_cv_path_NM=no}
+fi])
+if test "$lt_cv_path_NM" != "no"; then
+  NM="$lt_cv_path_NM"
+else
+  # Didn't find any BSD compatible name lister, look for dumpbin.
+  AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :)
+  AC_SUBST([DUMPBIN])
+  if test "$DUMPBIN" != ":"; then
+    NM="$DUMPBIN"
+  fi
+fi
+test -z "$NM" && NM=nm
+AC_SUBST([NM])
+_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
+
+AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
+  [lt_cv_nm_interface="BSD nm"
+  echo "int some_variable = 0;" > conftest.$ac_ext
+  (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
+  (eval "$ac_compile" 2>conftest.err)
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
+  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD)
+  cat conftest.out >&AS_MESSAGE_LOG_FD
+  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+    lt_cv_nm_interface="MS dumpbin"
+  fi
+  rm -f conftest*])
+])# LT_PATH_NM
+
+# Old names:
+AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
+AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_PROG_NM], [])
+dnl AC_DEFUN([AC_PROG_NM], [])
+
+
+# LT_LIB_M
+# --------
+# check for math library
+AC_DEFUN([LT_LIB_M],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+  # These system don't have libm, or don't need it
+  ;;
+*-ncr-sysv4.3*)
+  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+  ;;
+*)
+  AC_CHECK_LIB(m, cos, LIBM="-lm")
+  ;;
+esac
+AC_SUBST([LIBM])
+])# LT_LIB_M
+
+# Old name:
+AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_CHECK_LIBM], [])
+
+
+# _LT_COMPILER_NO_RTTI([TAGNAME])
+# -------------------------------
+m4_defun([_LT_COMPILER_NO_RTTI],
+[m4_require([_LT_TAG_COMPILER])dnl
+
+_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+
+if test "$GCC" = yes; then
+  _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+
+  _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
+    lt_cv_prog_compiler_rtti_exceptions,
+    [-fno-rtti -fno-exceptions], [],
+    [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
+fi
+_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
+	[Compiler flag to turn off builtin functions])
+])# _LT_COMPILER_NO_RTTI
+
+
+# _LT_CMD_GLOBAL_SYMBOLS
+# ----------------------
+m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+AC_REQUIRE([LT_PATH_LD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+AC_MSG_CHECKING([command to parse $NM output from $compiler object])
+AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
+[
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[[BCDEGRST]]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+  symcode='[[BCDT]]'
+  ;;
+cygwin* | mingw* | pw32* | cegcc*)
+  symcode='[[ABCDGISTW]]'
+  ;;
+hpux*)
+  if test "$host_cpu" = ia64; then
+    symcode='[[ABCDEGRST]]'
+  fi
+  ;;
+irix* | nonstopux*)
+  symcode='[[BCDEGRST]]'
+  ;;
+osf*)
+  symcode='[[BCDEGQRST]]'
+  ;;
+solaris*)
+  symcode='[[BDRT]]'
+  ;;
+sco3.2v5*)
+  symcode='[[DT]]'
+  ;;
+sysv4.2uw2*)
+  symcode='[[DT]]'
+  ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+  symcode='[[ABDT]]'
+  ;;
+sysv4)
+  symcode='[[DFNSTU]]'
+  ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+  symcode='[[ABCDGIRSTW]]' ;;
+esac
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+  ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+  symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+  # Write the raw and C identifiers.
+  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+    # Fake it for dumpbin and say T for any non-static function
+    # and D for any global variable.
+    # Also find C++ and __fastcall symbols from MSVC++,
+    # which start with @ or ?.
+    lt_cv_sys_global_symbol_pipe="$AWK ['"\
+"     {last_section=section; section=\$ 3};"\
+"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+"     \$ 0!~/External *\|/{next};"\
+"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+"     {if(hide[section]) next};"\
+"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
+"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
+"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
+"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
+"     ' prfx=^$ac_symprfx]"
+  else
+    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[	 ]]\($symcode$symcode*\)[[	 ]][[	 ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+  fi
+
+  # Check to see that the pipe works correctly.
+  pipe_works=no
+
+  rm -f conftest*
+  cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+  if AC_TRY_EVAL(ac_compile); then
+    # Now try to grab the symbols.
+    nlist=conftest.nm
+    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
+      # Try sorting and uniquifying the output.
+      if sort "$nlist" | uniq > "$nlist"T; then
+	mv -f "$nlist"T "$nlist"
+      else
+	rm -f "$nlist"T
+      fi
+
+      # Make sure that we snagged all the symbols we need.
+      if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+	  cat <<_LT_EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+	  # Now generate the symbol file.
+	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+	  cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols.  */
+const struct {
+  const char *name;
+  void       *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[[]] =
+{
+  { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+	  cat <<\_LT_EOF >> conftest.$ac_ext
+  {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+  return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+	  # Now try linking the two files.
+	  mv conftest.$ac_objext conftstm.$ac_objext
+	  lt_save_LIBS="$LIBS"
+	  lt_save_CFLAGS="$CFLAGS"
+	  LIBS="conftstm.$ac_objext"
+	  CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
+	  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
+	    pipe_works=yes
+	  fi
+	  LIBS="$lt_save_LIBS"
+	  CFLAGS="$lt_save_CFLAGS"
+	else
+	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
+	fi
+      else
+	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
+      fi
+    else
+      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+    fi
+  else
+    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
+    cat conftest.$ac_ext >&5
+  fi
+  rm -rf conftest* conftst*
+
+  # Do not use the global_symbol_pipe unless it works.
+  if test "$pipe_works" = yes; then
+    break
+  else
+    lt_cv_sys_global_symbol_pipe=
+  fi
+done
+])
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+  lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+  AC_MSG_RESULT(failed)
+else
+  AC_MSG_RESULT(ok)
+fi
+
+_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
+    [Take the output of nm and produce a listing of raw symbols and C names])
+_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
+    [Transform the output of nm in a proper C declaration])
+_LT_DECL([global_symbol_to_c_name_address],
+    [lt_cv_sys_global_symbol_to_c_name_address], [1],
+    [Transform the output of nm in a C name address pair])
+_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
+    [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
+    [Transform the output of nm in a C name address pair when lib prefix is needed])
+]) # _LT_CMD_GLOBAL_SYMBOLS
+
+
+# _LT_COMPILER_PIC([TAGNAME])
+# ---------------------------
+m4_defun([_LT_COMPILER_PIC],
+[m4_require([_LT_TAG_COMPILER])dnl
+_LT_TAGVAR(lt_prog_compiler_wl, $1)=
+_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+_LT_TAGVAR(lt_prog_compiler_static, $1)=
+
+AC_MSG_CHECKING([for $compiler option to produce PIC])
+m4_if([$1], [CXX], [
+  # C++ specific cases for pic, static, wl, etc.
+  if test "$GXX" = yes; then
+    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+    aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+        ;;
+      m68k)
+            # FIXME: we need at least 68020 code to build shared libraries, but
+            # adding the `-m68020' flag to GCC prevents building anything better,
+            # like `-m68040'.
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+        ;;
+      esac
+      ;;
+
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+    mingw* | cygwin* | os2* | pw32* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      m4_if([$1], [GCJ], [],
+	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      ;;
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+    *djgpp*)
+      # DJGPP does not support shared libraries at all
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+      ;;
+    interix[[3-9]]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+    hpux*)
+      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
+      # sets the default TLS model and affects inlining.
+      case $host_cpu in
+      hppa*64*)
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+    *qnx* | *nto*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+    *)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    case $host_os in
+      aix[[4-9]]*)
+	# All AIX code is PIC.
+	if test "$host_cpu" = ia64; then
+	  # AIX 5 now supports IA64 processor
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	else
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+	fi
+	;;
+      chorus*)
+	case $cc_basename in
+	cxch68*)
+	  # Green Hills C++ Compiler
+	  # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+	  ;;
+	esac
+	;;
+      dgux*)
+	case $cc_basename in
+	  ec++*)
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  ghcx*)
+	    # Green Hills C++ Compiler
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      freebsd* | dragonfly*)
+	# FreeBSD uses GNU C++
+	;;
+      hpux9* | hpux10* | hpux11*)
+	case $cc_basename in
+	  CC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+	    if test "$host_cpu" != ia64; then
+	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	    fi
+	    ;;
+	  aCC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+	    case $host_cpu in
+	    hppa*64*|ia64*)
+	      # +Z the default
+	      ;;
+	    *)
+	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	      ;;
+	    esac
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      interix*)
+	# This is c89, which is MS Visual C++ (no shared libs)
+	# Anyone wants to do a port?
+	;;
+      irix5* | irix6* | nonstopux*)
+	case $cc_basename in
+	  CC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    # CC pic flag -KPIC is the default.
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+	case $cc_basename in
+	  KCC*)
+	    # KAI C++ Compiler
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	    ;;
+	  ecpc* )
+	    # old Intel C++ for x86_64 which still supported -KPIC.
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	    ;;
+	  icpc* )
+	    # Intel C++, used to be incompatible with GCC.
+	    # ICC 10 doesn't accept -KPIC any more.
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	    ;;
+	  pgCC* | pgcpp*)
+	    # Portland Group C++ compiler
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	  cxx*)
+	    # Compaq C++
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  xlc* | xlC*)
+	    # IBM XL 8.0 on PPC
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+	    ;;
+	  *)
+	    case `$CC -V 2>&1 | sed 5q` in
+	    *Sun\ C*)
+	      # Sun C++ 5.9
+	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	      ;;
+	    esac
+	    ;;
+	esac
+	;;
+      lynxos*)
+	;;
+      m88k*)
+	;;
+      mvs*)
+	case $cc_basename in
+	  cxx*)
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      netbsd* | netbsdelf*-gnu)
+	;;
+      *qnx* | *nto*)
+        # QNX uses GNU C++, but need to define -shared option too, otherwise
+        # it will coredump.
+        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+        ;;
+      osf3* | osf4* | osf5*)
+	case $cc_basename in
+	  KCC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    ;;
+	  RCC*)
+	    # Rational C++ 2.4.1
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  cxx*)
+	    # Digital/Compaq C++
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      psos*)
+	;;
+      solaris*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	    ;;
+	  gcx*)
+	    # Green Hills C++ Compiler
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sunos4*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.x
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	  lcc*)
+	    # Lucid
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+	case $cc_basename in
+	  CC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	esac
+	;;
+      tandem*)
+	case $cc_basename in
+	  NCC*)
+	    # NonStop-UX NCC 3.20
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      vxworks*)
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+	;;
+    esac
+  fi
+],
+[
+  if test "$GCC" = yes; then
+    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+        ;;
+      m68k)
+            # FIXME: we need at least 68020 code to build shared libraries, but
+            # adding the `-m68020' flag to GCC prevents building anything better,
+            # like `-m68040'.
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+        ;;
+      esac
+      ;;
+
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      m4_if([$1], [GCJ], [],
+	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+
+    hpux*)
+      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
+      # sets the default TLS model and affects inlining.
+      case $host_cpu in
+      hppa*64*)
+	# +Z the default
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+
+    interix[[3-9]]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      enable_shared=no
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+
+    *)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      else
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      m4_if([$1], [GCJ], [],
+	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC (with -KPIC) is the default.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      case $cc_basename in
+      # old Intel for x86_64 which still supported -KPIC.
+      ecc*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
+      # icc used to be incompatible with GCC.
+      # ICC 10 doesn't accept -KPIC any more.
+      icc* | ifort*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
+      # Lahey Fortran 8.1.
+      lf95*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
+	;;
+      pgcc* | pgf77* | pgf90* | pgf95*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+	# which looks to be a dead project)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+        ;;
+      ccc*)
+        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+        # All Alpha code is PIC.
+        _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+        ;;
+      xl*)
+	# IBM XL C 8.0/Fortran 10.1 on PPC
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+	;;
+      *)
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)
+	  # Sun C 5.9
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	  ;;
+	*Sun\ F*)
+	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
+	  ;;
+	esac
+	;;
+      esac
+      ;;
+
+    newsos6)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+
+    osf3* | osf4* | osf5*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # All OSF/1 code is PIC.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    rdos*)
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    solaris*)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
+      esac
+      ;;
+
+    sunos4*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    unicos*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+
+    uts4*)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    *)
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+    esac
+  fi
+])
+case $host_os in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+    ;;
+  *)
+    _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
+    ;;
+esac
+AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
+_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
+	[How to pass a linker flag through the compiler])
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
+  _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
+    [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
+    [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
+    [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
+     "" | " "*) ;;
+     *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
+     esac],
+    [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+     _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
+fi
+_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
+	[Additional compiler flags for building library objects])
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
+_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
+  _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
+  $lt_tmp_static_flag,
+  [],
+  [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
+_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
+	[Compiler flag to prevent dynamic linking])
+])# _LT_COMPILER_PIC
+
+
+# _LT_LINKER_SHLIBS([TAGNAME])
+# ----------------------------
+# See if the linker supports building shared libraries.
+m4_defun([_LT_LINKER_SHLIBS],
+[AC_REQUIRE([LT_PATH_LD])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+m4_if([$1], [CXX], [
+  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  case $host_os in
+  aix[[4-9]]*)
+    # If we're using GNU nm, then we don't want the "-C" option.
+    # -C means demangle to AIX nm, but means don't demangle with GNU nm
+    if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+    else
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+    fi
+    ;;
+  pw32*)
+    _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
+  ;;
+  cygwin* | mingw* | cegcc*)
+    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  linux* | k*bsd*-gnu)
+    _LT_TAGVAR(link_all_deplibs, $1)=no
+  ;;
+  *)
+    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  esac
+  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+], [
+  runpath_var=
+  _LT_TAGVAR(allow_undefined_flag, $1)=
+  _LT_TAGVAR(always_export_symbols, $1)=no
+  _LT_TAGVAR(archive_cmds, $1)=
+  _LT_TAGVAR(archive_expsym_cmds, $1)=
+  _LT_TAGVAR(compiler_needs_object, $1)=no
+  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+  _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  _LT_TAGVAR(hardcode_automatic, $1)=no
+  _LT_TAGVAR(hardcode_direct, $1)=no
+  _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+  _LT_TAGVAR(hardcode_libdir_separator, $1)=
+  _LT_TAGVAR(hardcode_minus_L, $1)=no
+  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+  _LT_TAGVAR(inherit_rpath, $1)=no
+  _LT_TAGVAR(link_all_deplibs, $1)=unknown
+  _LT_TAGVAR(module_cmds, $1)=
+  _LT_TAGVAR(module_expsym_cmds, $1)=
+  _LT_TAGVAR(old_archive_from_new_cmds, $1)=
+  _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
+  _LT_TAGVAR(thread_safe_flag_spec, $1)=
+  _LT_TAGVAR(whole_archive_flag_spec, $1)=
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  _LT_TAGVAR(include_expsyms, $1)=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  # Exclude shared library initialization/finalization symbols.
+dnl Note also adjust exclude_expsyms for C++ above.
+  extract_expsyms_cmds=
+
+  case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  linux* | k*bsd*-gnu)
+    _LT_TAGVAR(link_all_deplibs, $1)=no
+    ;;
+  esac
+
+  _LT_TAGVAR(ld_shlibs, $1)=yes
+  if test "$with_gnu_ld" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+      _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    else
+      _LT_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v 2>&1` in
+      *GNU\ gold*) supports_anon_versioning=yes ;;
+      *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix[[3-9]]*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+_LT_EOF
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            _LT_TAGVAR(archive_expsym_cmds, $1)=''
+        ;;
+      m68k)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes
+        ;;
+      esac
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	_LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+      # as there is no search path for DLLs.
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_TAGVAR(always_export_symbols, $1)=no
+      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    interix[[3-9]]*)
+      _LT_TAGVAR(hardcode_direct, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
+
+    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+      tmp_diet=no
+      if test "$host_os" = linux-dietlibc; then
+	case $cc_basename in
+	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
+	esac
+      fi
+      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+	 && test "$tmp_diet" = no
+      then
+	tmp_addflag=
+	tmp_sharedflag='-shared'
+	case $cc_basename,$host_cpu in
+        pgcc*)				# Portland Group C compiler
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag'
+	  ;;
+	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag -Mnomain' ;;
+	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
+	  tmp_addflag=' -i_dynamic' ;;
+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
+	ifc* | ifort*)			# Intel Fortran compiler
+	  tmp_addflag=' -nofor_main' ;;
+	lf95*)				# Lahey Fortran 8.1
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)=
+	  tmp_sharedflag='--shared' ;;
+	xl[[cC]]*)			# IBM XL C 8.0 on PPC (deal with xlf below)
+	  tmp_sharedflag='-qmkshrobj'
+	  tmp_addflag= ;;
+	esac
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)			# Sun C 5.9
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	  _LT_TAGVAR(compiler_needs_object, $1)=yes
+	  tmp_sharedflag='-G' ;;
+	*Sun\ F*)			# Sun Fortran 8.3
+	  tmp_sharedflag='-G' ;;
+	esac
+	_LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+        if test "x$supports_anon_versioning" = xyes; then
+          _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+	    cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+	    echo "local: *; };" >> $output_objdir/$libname.ver~
+	    $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+        fi
+
+	case $cc_basename in
+	xlf*)
+	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+	  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
+	  if test "x$supports_anon_versioning" = xyes; then
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+	      echo "local: *; };" >> $output_objdir/$libname.ver~
+	      $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+	  fi
+	  ;;
+	esac
+      else
+        _LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    netbsd* | netbsdelf*-gnu)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris*)
+      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+	;;
+	*)
+	  # For security reasons, it is highly recommended that you always
+	  # use absolute paths for naming shared libraries, and exclude the
+	  # DT_RUNPATH tag from executables and libraries.  But doing so
+	  # requires that you compile everything twice, which is a pain.
+	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	  else
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	  fi
+	;;
+      esac
+      ;;
+
+    sunos4*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+    esac
+
+    if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then
+      runpath_var=
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+      _LT_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_TAGVAR(always_export_symbols, $1)=yes
+      _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	_LT_TAGVAR(hardcode_direct, $1)=unsupported
+      fi
+      ;;
+
+    aix[[4-9]]*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+	else
+	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+	fi
+	aix_use_runtimelinking=no
+
+	# Test if we are trying to use run time linking or normal
+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+	# need to do runtime linking.
+	case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+	  for ld_flag in $LDFLAGS; do
+	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+	    aix_use_runtimelinking=yes
+	    break
+	  fi
+	  done
+	  ;;
+	esac
+
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      _LT_TAGVAR(archive_cmds, $1)=''
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.[[012]]|aix4.[[012]].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" &&
+	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+	  then
+	  # We have reworked collect2
+	  :
+	  else
+	  # We have old collect2
+	  _LT_TAGVAR(hardcode_direct, $1)=unsupported
+	  # It fails to find uninstalled libraries when the uninstalled
+	  # path is not listed in the libpath.  Setting hardcode_minus_L
+	  # to unsupported forces relinking
+	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	  _LT_TAGVAR(hardcode_libdir_separator, $1)=
+	  fi
+	  ;;
+	esac
+	shared_flag='-shared'
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag="$shared_flag "'${wl}-G'
+	fi
+	_LT_TAGVAR(link_all_deplibs, $1)=no
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+	  if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='${wl}-G'
+	  else
+	    shared_flag='${wl}-bM:SRE'
+	  fi
+	fi
+      fi
+
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      _LT_TAGVAR(always_export_symbols, $1)=yes
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	_LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+        # Determine the default libpath from the value encoded in an
+        # empty executable.
+        _LT_SYS_MODULE_PATH_AIX
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+      else
+	if test "$host_cpu" = ia64; then
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+	  _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an
+	 # empty executable.
+	 _LT_SYS_MODULE_PATH_AIX
+	 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+	  _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+	  # Exported symbols can be pulled into shared objects from archives
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+	  # This is similar to how AIX traditionally builds its shared libraries.
+	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            _LT_TAGVAR(archive_expsym_cmds, $1)=''
+        ;;
+      m68k)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes
+        ;;
+      esac
+      ;;
+
+    bsdi[[45]]*)
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext_cmds=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+      # FIXME: Should let the user specify the lib program.
+      _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
+      _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
+      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      ;;
+
+    darwin* | rhapsody*)
+      _LT_DARWIN_LINKER_FEATURES($1)
+      ;;
+
+    dgux*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    freebsd1*)
+      _LT_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | dragonfly*)
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      ;;
+
+    hpux10*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test "$with_gnu_ld" = no; then
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
+	_LT_TAGVAR(hardcode_direct, $1)=yes
+	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	# hardcode_minus_L: Not really in the search PATH,
+	# but as the default location of the library.
+	_LT_TAGVAR(hardcode_minus_L, $1)=yes
+      fi
+      ;;
+
+    hpux11*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	case $host_cpu in
+	hppa*64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      else
+	case $host_cpu in
+	hppa*64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	case $host_cpu in
+	hppa*64*|ia64*)
+	  _LT_TAGVAR(hardcode_direct, $1)=no
+	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	  ;;
+	*)
+	  _LT_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	# Try to use the -exported_symbol ld option, if it does not
+	# work, assume that -exports_file does not work either and
+	# implicitly export all symbols.
+        save_LDFLAGS="$LDFLAGS"
+        LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+        AC_LINK_IFELSE(int foo(void) {},
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+        )
+        LDFLAGS="$save_LDFLAGS"
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(inherit_rpath, $1)=yes
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    netbsd* | netbsdelf*-gnu)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    newsos6)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *nto* | *qnx*)
+      ;;
+
+    openbsd*)
+      if test -f /usr/libexec/ld.so; then
+	_LT_TAGVAR(hardcode_direct, $1)=yes
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	else
+	  case $host_os in
+	   openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
+	     _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	     ;;
+	   *)
+	     _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	     ;;
+	  esac
+	fi
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    os2*)
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      else
+	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    solaris*)
+      _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
+      if test "$GCC" = yes; then
+	wlarc='${wl}'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+      else
+	case `$CC -V 2>&1` in
+	*"Compilers 5.0"*)
+	  wlarc=''
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	  $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+	  ;;
+	*)
+	  wlarc='${wl}'
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	  $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+	  ;;
+	esac
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      case $host_os in
+      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+      *)
+	# The compiler driver will combine and reorder linker options,
+	# but understands `-z linker_flag'.  GCC discards it without `$wl',
+	# but is careful enough not to reorder.
+	# Supported since Solaris 2.6 (maybe 2.5.1?)
+	if test "$GCC" = yes; then
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+	else
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+	fi
+	;;
+      esac
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
+	  _LT_TAGVAR(hardcode_direct, $1)=no
+        ;;
+	motorola)
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4.3*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	_LT_TAGVAR(ld_shlibs, $1)=yes
+      fi
+      ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We can NOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    uts4*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      _LT_TAGVAR(ld_shlibs, $1)=no
+      ;;
+    esac
+
+    if test x$host_vendor = xsni; then
+      case $host in
+      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym'
+	;;
+      esac
+    fi
+  fi
+])
+AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
+
+_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
+_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
+_LT_DECL([], [extract_expsyms_cmds], [2],
+    [The commands to extract the exported symbol list from a shared archive])
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
+x|xyes)
+  # Assume -lc should be added
+  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $_LT_TAGVAR(archive_cmds, $1) in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      AC_MSG_CHECKING([whether -lc should be explicitly linked in])
+      $RM conftest*
+      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+      if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
+	pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
+        _LT_TAGVAR(allow_undefined_flag, $1)=
+        if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
+        then
+	  _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+        else
+	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+        fi
+        _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $RM conftest*
+      AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)])
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
+    [Whether or not to add -lc for building shared libraries])
+_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
+    [enable_shared_with_static_runtimes], [0],
+    [Whether or not to disallow shared libs when runtime libs are static])
+_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
+    [Compiler flag to allow reflexive dlopens])
+_LT_TAGDECL([], [whole_archive_flag_spec], [1],
+    [Compiler flag to generate shared objects directly from archives])
+_LT_TAGDECL([], [compiler_needs_object], [1],
+    [Whether the compiler copes with passing no objects directly])
+_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
+    [Create an old-style archive from a shared archive])
+_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
+    [Create a temporary old-style archive to link instead of a shared archive])
+_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
+_LT_TAGDECL([], [archive_expsym_cmds], [2])
+_LT_TAGDECL([], [module_cmds], [2],
+    [Commands used to build a loadable module if different from building
+    a shared archive.])
+_LT_TAGDECL([], [module_expsym_cmds], [2])
+_LT_TAGDECL([], [with_gnu_ld], [1],
+    [Whether we are building with GNU ld or not])
+_LT_TAGDECL([], [allow_undefined_flag], [1],
+    [Flag that allows shared libraries with undefined symbols to be built])
+_LT_TAGDECL([], [no_undefined_flag], [1],
+    [Flag that enforces no undefined symbols])
+_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
+    [Flag to hardcode $libdir into a binary during linking.
+    This must work even if $libdir does not exist])
+_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1],
+    [[If ld is used when linking, flag to hardcode $libdir into a binary
+    during linking.  This must work even if $libdir does not exist]])
+_LT_TAGDECL([], [hardcode_libdir_separator], [1],
+    [Whether we need a single "-rpath" flag with a separated argument])
+_LT_TAGDECL([], [hardcode_direct], [0],
+    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+    DIR into the resulting binary])
+_LT_TAGDECL([], [hardcode_direct_absolute], [0],
+    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+    DIR into the resulting binary and the resulting library dependency is
+    "absolute", i.e impossible to change by setting ${shlibpath_var} if the
+    library is relocated])
+_LT_TAGDECL([], [hardcode_minus_L], [0],
+    [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+    into the resulting binary])
+_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
+    [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+    into the resulting binary])
+_LT_TAGDECL([], [hardcode_automatic], [0],
+    [Set to "yes" if building a shared library automatically hardcodes DIR
+    into the library and all subsequent libraries and executables linked
+    against it])
+_LT_TAGDECL([], [inherit_rpath], [0],
+    [Set to yes if linker adds runtime paths of dependent libraries
+    to runtime path list])
+_LT_TAGDECL([], [link_all_deplibs], [0],
+    [Whether libtool must link a program against all its dependency libraries])
+_LT_TAGDECL([], [fix_srcfile_path], [1],
+    [Fix the shell variable $srcfile for the compiler])
+_LT_TAGDECL([], [always_export_symbols], [0],
+    [Set to "yes" if exported symbols are required])
+_LT_TAGDECL([], [export_symbols_cmds], [2],
+    [The commands to list exported symbols])
+_LT_TAGDECL([], [exclude_expsyms], [1],
+    [Symbols that should not be listed in the preloaded symbols])
+_LT_TAGDECL([], [include_expsyms], [1],
+    [Symbols that must always be exported])
+_LT_TAGDECL([], [prelink_cmds], [2],
+    [Commands necessary for linking programs (against libraries) with templates])
+_LT_TAGDECL([], [file_list_spec], [1],
+    [Specify filename containing input files])
+dnl FIXME: Not yet implemented
+dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
+dnl    [Compiler flag to generate thread safe objects])
+])# _LT_LINKER_SHLIBS
+
+
+# _LT_LANG_C_CONFIG([TAG])
+# ------------------------
+# Ensure that the configuration variables for a C compiler are suitably
+# defined.  These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_C_CONFIG],
+[m4_require([_LT_DECL_EGREP])dnl
+lt_save_CC="$CC"
+AC_LANG_PUSH(C)
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+_LT_TAG_COMPILER
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_SYS_DYNAMIC_LINKER($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+  LT_SYS_DLOPEN_SELF
+  _LT_CMD_STRIPLIB
+
+  # Report which library types will actually be built
+  AC_MSG_CHECKING([if libtool supports shared libraries])
+  AC_MSG_RESULT([$can_build_shared])
+
+  AC_MSG_CHECKING([whether to build shared libraries])
+  test "$can_build_shared" = "no" && enable_shared=no
+
+  # On AIX, shared libraries and static libraries use the same namespace, and
+  # are all built from PIC.
+  case $host_os in
+  aix3*)
+    test "$enable_shared" = yes && enable_static=no
+    if test -n "$RANLIB"; then
+      archive_cmds="$archive_cmds~\$RANLIB \$lib"
+      postinstall_cmds='$RANLIB $lib'
+    fi
+    ;;
+
+  aix[[4-9]]*)
+    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+      test "$enable_shared" = yes && enable_static=no
+    fi
+    ;;
+  esac
+  AC_MSG_RESULT([$enable_shared])
+
+  AC_MSG_CHECKING([whether to build static libraries])
+  # Make sure either enable_shared or enable_static is yes.
+  test "$enable_shared" = yes || enable_static=yes
+  AC_MSG_RESULT([$enable_static])
+
+  _LT_CONFIG($1)
+fi
+AC_LANG_POP
+CC="$lt_save_CC"
+])# _LT_LANG_C_CONFIG
+
+
+# _LT_PROG_CXX
+# ------------
+# Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++
+# compiler, we have our own version here.
+m4_defun([_LT_PROG_CXX],
+[
+pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes])
+AC_PROG_CXX
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+    (test "X$CXX" != "Xg++"))) ; then
+  AC_PROG_CXXCPP
+else
+  _lt_caught_CXX_error=yes
+fi
+popdef([AC_MSG_ERROR])
+])# _LT_PROG_CXX
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([_LT_PROG_CXX], [])
+
+
+# _LT_LANG_CXX_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a C++ compiler are suitably
+# defined.  These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_CXX_CONFIG],
+[AC_REQUIRE([_LT_PROG_CXX])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_EGREP])dnl
+
+AC_LANG_PUSH(C++)
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(compiler_needs_object, $1)=no
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for C++ test sources.
+ac_ext=cpp
+
+# Object file extension for compiled C++ test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the CXX compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_caught_CXX_error" != yes; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="int some_variable = 0;"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC=$CC
+  lt_save_LD=$LD
+  lt_save_GCC=$GCC
+  GCC=$GXX
+  lt_save_with_gnu_ld=$with_gnu_ld
+  lt_save_path_LD=$lt_cv_path_LD
+  if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+    lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+  else
+    $as_unset lt_cv_prog_gnu_ld
+  fi
+  if test -n "${lt_cv_path_LDCXX+set}"; then
+    lt_cv_path_LD=$lt_cv_path_LDCXX
+  else
+    $as_unset lt_cv_path_LD
+  fi
+  test -z "${LDCXX+set}" || LD=$LDCXX
+  CC=${CXX-"c++"}
+  compiler=$CC
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+
+  if test -n "$compiler"; then
+    # We don't want -fno-exception when compiling C++ code, so set the
+    # no_builtin_flag separately
+    if test "$GXX" = yes; then
+      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+    else
+      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+    fi
+
+    if test "$GXX" = yes; then
+      # Set up default GNU C++ configuration
+
+      LT_PATH_LD
+
+      # Check if GNU C++ uses GNU ld as the underlying linker, since the
+      # archiving commands below assume that GNU ld is being used.
+      if test "$with_gnu_ld" = yes; then
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+        # If archive_cmds runs LD, not CC, wlarc should be empty
+        # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+        #     investigate it a little bit more. (MM)
+        wlarc='${wl}'
+
+        # ancient GNU ld didn't support --whole-archive et. al.
+        if eval "`$CC -print-prog-name=ld` --help 2>&1" |
+	  $GREP 'no-whole-archive' > /dev/null; then
+          _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+        else
+          _LT_TAGVAR(whole_archive_flag_spec, $1)=
+        fi
+      else
+        with_gnu_ld=no
+        wlarc=
+
+        # A generic and very simple default shared library creation
+        # command for GNU C++ for the case where it uses the native
+        # linker, instead of GNU ld.  If possible, this setting should
+        # overridden to take advantage of the native linker features on
+        # the platform it is being used on.
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+      fi
+
+      # Commands to make compiler produce verbose output that lists
+      # what "hidden" libraries, object files and flags are used when
+      # linking a shared library.
+      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+
+    else
+      GXX=no
+      with_gnu_ld=no
+      wlarc=
+    fi
+
+    # PORTME: fill in a description of your system's C++ link characteristics
+    AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+    _LT_TAGVAR(ld_shlibs, $1)=yes
+    case $host_os in
+      aix3*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+      aix[[4-9]]*)
+        if test "$host_cpu" = ia64; then
+          # On IA64, the linker does run time linking by default, so we don't
+          # have to do anything special.
+          aix_use_runtimelinking=no
+          exp_sym_flag='-Bexport'
+          no_entry_flag=""
+        else
+          aix_use_runtimelinking=no
+
+          # Test if we are trying to use run time linking or normal
+          # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+          # need to do runtime linking.
+          case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+	    for ld_flag in $LDFLAGS; do
+	      case $ld_flag in
+	      *-brtl*)
+	        aix_use_runtimelinking=yes
+	        break
+	        ;;
+	      esac
+	    done
+	    ;;
+          esac
+
+          exp_sym_flag='-bexport'
+          no_entry_flag='-bnoentry'
+        fi
+
+        # When large executables or shared objects are built, AIX ld can
+        # have problems creating the table of contents.  If linking a library
+        # or program results in "error TOC overflow" add -mminimal-toc to
+        # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+        # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+        _LT_TAGVAR(archive_cmds, $1)=''
+        _LT_TAGVAR(hardcode_direct, $1)=yes
+        _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+        _LT_TAGVAR(link_all_deplibs, $1)=yes
+        _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
+
+        if test "$GXX" = yes; then
+          case $host_os in aix4.[[012]]|aix4.[[012]].*)
+          # We only want to do this on AIX 4.2 and lower, the check
+          # below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" &&
+	     strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+	  then
+	    # We have reworked collect2
+	    :
+	  else
+	    # We have old collect2
+	    _LT_TAGVAR(hardcode_direct, $1)=unsupported
+	    # It fails to find uninstalled libraries when the uninstalled
+	    # path is not listed in the libpath.  Setting hardcode_minus_L
+	    # to unsupported forces relinking
+	    _LT_TAGVAR(hardcode_minus_L, $1)=yes
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=
+	  fi
+          esac
+          shared_flag='-shared'
+	  if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag="$shared_flag "'${wl}-G'
+	  fi
+        else
+          # not using gcc
+          if test "$host_cpu" = ia64; then
+	  # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	  # chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+          else
+	    if test "$aix_use_runtimelinking" = yes; then
+	      shared_flag='${wl}-G'
+	    else
+	      shared_flag='${wl}-bM:SRE'
+	    fi
+          fi
+        fi
+
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
+        # It seems that -bexpall does not export symbols beginning with
+        # underscore (_), so it is better to generate a list of symbols to
+	# export.
+        _LT_TAGVAR(always_export_symbols, $1)=yes
+        if test "$aix_use_runtimelinking" = yes; then
+          # Warning - without using the other runtime loading flags (-brtl),
+          # -berok will link without error, but may produce a broken library.
+          _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+          # Determine the default libpath from the value encoded in an empty
+          # executable.
+          _LT_SYS_MODULE_PATH_AIX
+          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+        else
+          if test "$host_cpu" = ia64; then
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+	    _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+          else
+	    # Determine the default libpath from the value encoded in an
+	    # empty executable.
+	    _LT_SYS_MODULE_PATH_AIX
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	    # Warning - without using the other run time loading flags,
+	    # -berok will link without error, but may produce a broken library.
+	    _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+	    _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+	    # Exported symbols can be pulled into shared objects from archives
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	    _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+	    # This is similar to how AIX traditionally builds its shared
+	    # libraries.
+	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+          fi
+        fi
+        ;;
+
+      beos*)
+	if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	  # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+	  # support --undefined.  This deserves some investigation.  FIXME
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	else
+	  _LT_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+
+      chorus*)
+        case $cc_basename in
+          *)
+	  # FIXME: insert proper C++ library support
+	  _LT_TAGVAR(ld_shlibs, $1)=no
+	  ;;
+        esac
+        ;;
+
+      cygwin* | mingw* | pw32* | cegcc*)
+        # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+        # as there is no search path for DLLs.
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+        _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+        _LT_TAGVAR(always_export_symbols, $1)=no
+        _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+        if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+          # If the export-symbols file already is a .def file (1st line
+          # is EXPORTS), use it as is; otherwise, prepend...
+          _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	    cp $export_symbols $output_objdir/$soname.def;
+          else
+	    echo EXPORTS > $output_objdir/$soname.def;
+	    cat $export_symbols >> $output_objdir/$soname.def;
+          fi~
+          $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+        else
+          _LT_TAGVAR(ld_shlibs, $1)=no
+        fi
+        ;;
+      darwin* | rhapsody*)
+        _LT_DARWIN_LINKER_FEATURES($1)
+	;;
+
+      dgux*)
+        case $cc_basename in
+          ec++*)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          ghcx*)
+	    # Green Hills C++ Compiler
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+        esac
+        ;;
+
+      freebsd[[12]]*)
+        # C++ shared libraries reported to be fairly broken before
+	# switch to ELF
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      freebsd-elf*)
+        _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+        ;;
+
+      freebsd* | dragonfly*)
+        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+        # conventions
+        _LT_TAGVAR(ld_shlibs, $1)=yes
+        ;;
+
+      gnu*)
+        ;;
+
+      hpux9*)
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+        _LT_TAGVAR(hardcode_direct, $1)=yes
+        _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+				             # but as the default
+				             # location of the library.
+
+        case $cc_basename in
+          CC*)
+            # FIXME: insert proper C++ library support
+            _LT_TAGVAR(ld_shlibs, $1)=no
+            ;;
+          aCC*)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+            # Commands to make compiler produce verbose output that lists
+            # what "hidden" libraries, object files and flags are used when
+            # linking a shared library.
+            #
+            # There doesn't appear to be a way to prevent this compiler from
+            # explicitly linking system object files so we need to strip them
+            # from the output so that they don't get included in the library
+            # dependencies.
+            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+            ;;
+          *)
+            if test "$GXX" = yes; then
+              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+            else
+              # FIXME: insert proper C++ library support
+              _LT_TAGVAR(ld_shlibs, $1)=no
+            fi
+            ;;
+        esac
+        ;;
+
+      hpux10*|hpux11*)
+        if test $with_gnu_ld = no; then
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	  _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+          case $host_cpu in
+            hppa*64*|ia64*)
+              ;;
+            *)
+	      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+              ;;
+          esac
+        fi
+        case $host_cpu in
+          hppa*64*|ia64*)
+            _LT_TAGVAR(hardcode_direct, $1)=no
+            _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+            ;;
+          *)
+            _LT_TAGVAR(hardcode_direct, $1)=yes
+            _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+					         # but as the default
+					         # location of the library.
+            ;;
+        esac
+
+        case $cc_basename in
+          CC*)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          aCC*)
+	    case $host_cpu in
+	      hppa*64*)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        ;;
+	      ia64*)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        ;;
+	      *)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        ;;
+	    esac
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+	    ;;
+          *)
+	    if test "$GXX" = yes; then
+	      if test $with_gnu_ld = no; then
+	        case $host_cpu in
+	          hppa*64*)
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            ;;
+	          ia64*)
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            ;;
+	          *)
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            ;;
+	        esac
+	      fi
+	    else
+	      # FIXME: insert proper C++ library support
+	      _LT_TAGVAR(ld_shlibs, $1)=no
+	    fi
+	    ;;
+        esac
+        ;;
+
+      interix[[3-9]]*)
+	_LT_TAGVAR(hardcode_direct, $1)=no
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	# Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+	# Instead, shared libraries are loaded at an image base (0x10000000 by
+	# default) and relocated if they conflict, which is a slow very memory
+	# consuming and fragmenting process.  To avoid this, we pick a random,
+	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+	;;
+      irix5* | irix6*)
+        case $cc_basename in
+          CC*)
+	    # SGI C++
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+
+	    # Archives containing C++ object files must be created using
+	    # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
+	    # necessary to make sure instantiated templates are included
+	    # in the archive.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
+	    ;;
+          *)
+	    if test "$GXX" = yes; then
+	      if test "$with_gnu_ld" = no; then
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	      else
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib'
+	      fi
+	    fi
+	    _LT_TAGVAR(link_all_deplibs, $1)=yes
+	    ;;
+        esac
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+        _LT_TAGVAR(inherit_rpath, $1)=yes
+        ;;
+
+      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+        case $cc_basename in
+          KCC*)
+	    # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	    # KCC will only create a shared library if the output file
+	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
+	    # to its proper name (with version) after linking.
+	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+	    # Archives containing C++ object files must be created using
+	    # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+	    ;;
+	  icpc* | ecpc* )
+	    # Intel C++
+	    with_gnu_ld=yes
+	    # version 8.0 and above of icpc choke on multiply defined symbols
+	    # if we add $predep_objects and $postdep_objects, however 7.1 and
+	    # earlier do not add the objects themselves.
+	    case `$CC -V 2>&1` in
+	      *"Version 7."*)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+		;;
+	      *)  # Version 8.0 or newer
+	        tmp_idyn=
+	        case $host_cpu in
+		  ia64*) tmp_idyn=' -i_dynamic';;
+		esac
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+		;;
+	    esac
+	    _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	    ;;
+          pgCC* | pgcpp*)
+            # Portland Group C++ compiler
+	    case `$CC -V` in
+	    *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*)
+	      _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
+		rm -rf $tpldir~
+		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+		compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
+	      _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
+		rm -rf $tpldir~
+		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
+		$RANLIB $oldlib'
+	      _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
+		rm -rf $tpldir~
+		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
+		rm -rf $tpldir~
+		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+	      ;;
+	    *) # Version 6 will use weak symbols
+	      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+	      ;;
+	    esac
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+            ;;
+	  cxx*)
+	    # Compaq C++
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+	    runpath_var=LD_RUN_PATH
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+	    ;;
+	  xl*)
+	    # IBM XL 8.0 on PPC, with GNU ld
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	    if test "x$supports_anon_versioning" = xyes; then
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+		cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+		echo "local: *; };" >> $output_objdir/$libname.ver~
+		$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+	    fi
+	    ;;
+	  *)
+	    case `$CC -V 2>&1 | sed 5q` in
+	    *Sun\ C*)
+	      # Sun C++ 5.9
+	      _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+	      _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
+	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	      _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	      _LT_TAGVAR(compiler_needs_object, $1)=yes
+
+	      # Not sure whether something based on
+	      # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
+	      # would be better.
+	      output_verbose_link_cmd='echo'
+
+	      # Archives containing C++ object files must be created using
+	      # "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	      # necessary to make sure instantiated templates are included
+	      # in the archive.
+	      _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+	      ;;
+	    esac
+	    ;;
+	esac
+	;;
+
+      lynxos*)
+        # FIXME: insert proper C++ library support
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	;;
+
+      m88k*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+	;;
+
+      mvs*)
+        case $cc_basename in
+          cxx*)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+	  *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+	esac
+	;;
+
+      netbsd*)
+        if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+	  wlarc=
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	  _LT_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	fi
+	# Workaround some broken pre-1.5 toolchains
+	output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+	;;
+
+      *nto* | *qnx*)
+        _LT_TAGVAR(ld_shlibs, $1)=yes
+	;;
+
+      openbsd2*)
+        # C++ shared libraries are fairly broken
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	;;
+
+      openbsd*)
+	if test -f /usr/libexec/ld.so; then
+	  _LT_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+	  fi
+	  output_verbose_link_cmd=echo
+	else
+	  _LT_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+
+      osf3* | osf4* | osf5*)
+        case $cc_basename in
+          KCC*)
+	    # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	    # KCC will only create a shared library if the output file
+	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
+	    # to its proper name (with version) after linking.
+	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	    # Archives containing C++ object files must be created using
+	    # the KAI C++ compiler.
+	    case $host in
+	      osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
+	      *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
+	    esac
+	    ;;
+          RCC*)
+	    # Rational C++ 2.4.1
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          cxx*)
+	    case $host in
+	      osf3*)
+	        _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+		;;
+	      *)
+	        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	        _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+	          echo "-hidden">> $lib.exp~
+	          $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~
+	          $RM $lib.exp'
+	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+		;;
+	    esac
+
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+	    ;;
+	  *)
+	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	      _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	      case $host in
+	        osf3*)
+	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+		  ;;
+	        *)
+	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+		  ;;
+	      esac
+
+	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	      # Commands to make compiler produce verbose output that lists
+	      # what "hidden" libraries, object files and flags are used when
+	      # linking a shared library.
+	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+
+	    else
+	      # FIXME: insert proper C++ library support
+	      _LT_TAGVAR(ld_shlibs, $1)=no
+	    fi
+	    ;;
+        esac
+        ;;
+
+      psos*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      sunos4*)
+        case $cc_basename in
+          CC*)
+	    # Sun C++ 4.x
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          lcc*)
+	    # Lucid
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+        esac
+        ;;
+
+      solaris*)
+        case $cc_basename in
+          CC*)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+            _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
+	    _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	      $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	    _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	    case $host_os in
+	      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+	      *)
+		# The compiler driver will combine and reorder linker options,
+		# but understands `-z linker_flag'.
+	        # Supported since Solaris 2.6 (maybe 2.5.1?)
+		_LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+	        ;;
+	    esac
+	    _LT_TAGVAR(link_all_deplibs, $1)=yes
+
+	    output_verbose_link_cmd='echo'
+
+	    # Archives containing C++ object files must be created using
+	    # "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	    # necessary to make sure instantiated templates are included
+	    # in the archive.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+	    ;;
+          gcx*)
+	    # Green Hills C++ Compiler
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+
+	    # The C++ compiler must be used to create the archive.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+	    ;;
+          *)
+	    # GNU C++ compiler with Solaris linker
+	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	      _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
+	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+		  $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+	        # Commands to make compiler produce verbose output that lists
+	        # what "hidden" libraries, object files and flags are used when
+	        # linking a shared library.
+	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+	      else
+	        # g++ 2.7 appears to require `-G' NOT `-shared' on this
+	        # platform.
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+		  $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+	        # Commands to make compiler produce verbose output that lists
+	        # what "hidden" libraries, object files and flags are used when
+	        # linking a shared library.
+	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+	      fi
+
+	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
+	      case $host_os in
+		solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+		*)
+		  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+		  ;;
+	      esac
+	    fi
+	    ;;
+        esac
+        ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      runpath_var='LD_RUN_PATH'
+
+      case $cc_basename in
+        CC*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+      esac
+      ;;
+
+      sysv5* | sco3.2v5* | sco5v6*)
+	# Note: We can NOT use -z defs as we might desire, because we do not
+	# link with -lc, and that would cause any symbols used from libc to
+	# always be unresolved, which means just about no library would
+	# ever link correctly.  If we're not using GNU ld we use -z text
+	# though, which does catch some bad symbols but isn't as heavy-handed
+	# as -z defs.
+	_LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+	_LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+	_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
+	_LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+	_LT_TAGVAR(link_all_deplibs, $1)=yes
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+	runpath_var='LD_RUN_PATH'
+
+	case $cc_basename in
+          CC*)
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    ;;
+	  *)
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    ;;
+	esac
+      ;;
+
+      tandem*)
+        case $cc_basename in
+          NCC*)
+	    # NonStop-UX NCC 3.20
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+        esac
+        ;;
+
+      vxworks*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      *)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+    esac
+
+    AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+    test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+    _LT_TAGVAR(GCC, $1)="$GXX"
+    _LT_TAGVAR(LD, $1)="$LD"
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_SYS_HIDDEN_LIBDEPS($1)
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  CC=$lt_save_CC
+  LDCXX=$LD
+  LD=$lt_save_LD
+  GCC=$lt_save_GCC
+  with_gnu_ld=$lt_save_with_gnu_ld
+  lt_cv_path_LDCXX=$lt_cv_path_LD
+  lt_cv_path_LD=$lt_save_path_LD
+  lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+  lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+fi # test "$_lt_caught_CXX_error" != yes
+
+AC_LANG_POP
+])# _LT_LANG_CXX_CONFIG
+
+
+# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
+# ---------------------------------
+# Figure out "hidden" library dependencies from verbose
+# compiler output when linking a shared library.
+# Parse the compiler output and extract the necessary
+# objects, libraries and library flags.
+m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+# Dependencies to place before and after the object being linked:
+_LT_TAGVAR(predep_objects, $1)=
+_LT_TAGVAR(postdep_objects, $1)=
+_LT_TAGVAR(predeps, $1)=
+_LT_TAGVAR(postdeps, $1)=
+_LT_TAGVAR(compiler_lib_search_path, $1)=
+
+dnl we can't use the lt_simple_compile_test_code here,
+dnl because it contains code intended for an executable,
+dnl not a library.  It's possible we should let each
+dnl tag define a new lt_????_link_test_code variable,
+dnl but it's only used here...
+m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
+int a;
+void foo (void) { a = 0; }
+_LT_EOF
+], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
+class Foo
+{
+public:
+  Foo (void) { a = 0; }
+private:
+  int a;
+};
+_LT_EOF
+], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
+      subroutine foo
+      implicit none
+      integer*4 a
+      a=0
+      return
+      end
+_LT_EOF
+], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
+      subroutine foo
+      implicit none
+      integer a
+      a=0
+      return
+      end
+_LT_EOF
+], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
+public class foo {
+  private int a;
+  public void bar (void) {
+    a = 0;
+  }
+};
+_LT_EOF
+])
+dnl Parse the compiler output and extract the necessary
+dnl objects, libraries and library flags.
+if AC_TRY_EVAL(ac_compile); then
+  # Parse the compiler output and extract the necessary
+  # objects, libraries and library flags.
+
+  # Sentinel used to keep track of whether or not we are before
+  # the conftest object file.
+  pre_test_object_deps_done=no
+
+  for p in `eval "$output_verbose_link_cmd"`; do
+    case $p in
+
+    -L* | -R* | -l*)
+       # Some compilers place space between "-{L,R}" and the path.
+       # Remove the space.
+       if test $p = "-L" ||
+          test $p = "-R"; then
+	 prev=$p
+	 continue
+       else
+	 prev=
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 case $p in
+	 -L* | -R*)
+	   # Internal compiler library paths should come after those
+	   # provided the user.  The postdeps already come after the
+	   # user supplied libs so there is no need to process them.
+	   if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
+	     _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
+	   else
+	     _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
+	   fi
+	   ;;
+	 # The "-l" case would never come before the object being
+	 # linked, so don't bother handling this case.
+	 esac
+       else
+	 if test -z "$_LT_TAGVAR(postdeps, $1)"; then
+	   _LT_TAGVAR(postdeps, $1)="${prev}${p}"
+	 else
+	   _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
+	 fi
+       fi
+       ;;
+
+    *.$objext)
+       # This assumes that the test object file only shows up
+       # once in the compiler output.
+       if test "$p" = "conftest.$objext"; then
+	 pre_test_object_deps_done=yes
+	 continue
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
+	   _LT_TAGVAR(predep_objects, $1)="$p"
+	 else
+	   _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
+	 fi
+       else
+	 if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
+	   _LT_TAGVAR(postdep_objects, $1)="$p"
+	 else
+	   _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
+	 fi
+       fi
+       ;;
+
+    *) ;; # Ignore the rest.
+
+    esac
+  done
+
+  # Clean up.
+  rm -f a.out a.exe
+else
+  echo "libtool.m4: error: problem compiling $1 test program"
+fi
+
+$RM -f confest.$objext
+
+# PORTME: override above test on systems where it is broken
+m4_if([$1], [CXX],
+[case $host_os in
+interix[[3-9]]*)
+  # Interix 3.5 installs completely hosed .la files for C++, so rather than
+  # hack all around it, let's just trust "g++" to DTRT.
+  _LT_TAGVAR(predep_objects,$1)=
+  _LT_TAGVAR(postdep_objects,$1)=
+  _LT_TAGVAR(postdeps,$1)=
+  ;;
+
+linux*)
+  case `$CC -V 2>&1 | sed 5q` in
+  *Sun\ C*)
+    # Sun C++ 5.9
+
+    # The more standards-conforming stlport4 library is
+    # incompatible with the Cstd library. Avoid specifying
+    # it if it's in CXXFLAGS. Ignore libCrun as
+    # -library=stlport4 depends on it.
+    case " $CXX $CXXFLAGS " in
+    *" -library=stlport4 "*)
+      solaris_use_stlport4=yes
+      ;;
+    esac
+
+    if test "$solaris_use_stlport4" != yes; then
+      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
+    fi
+    ;;
+  esac
+  ;;
+
+solaris*)
+  case $cc_basename in
+  CC*)
+    # The more standards-conforming stlport4 library is
+    # incompatible with the Cstd library. Avoid specifying
+    # it if it's in CXXFLAGS. Ignore libCrun as
+    # -library=stlport4 depends on it.
+    case " $CXX $CXXFLAGS " in
+    *" -library=stlport4 "*)
+      solaris_use_stlport4=yes
+      ;;
+    esac
+
+    # Adding this requires a known-good setup of shared libraries for
+    # Sun compiler versions before 5.6, else PIC objects from an old
+    # archive will be linked into the output, leading to subtle bugs.
+    if test "$solaris_use_stlport4" != yes; then
+      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
+    fi
+    ;;
+  esac
+  ;;
+esac
+])
+
+case " $_LT_TAGVAR(postdeps, $1) " in
+*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
+esac
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=
+if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+fi
+_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
+    [The directories searched by this compiler when creating a shared library])
+_LT_TAGDECL([], [predep_objects], [1],
+    [Dependencies to place before and after the objects being linked to
+    create a shared library])
+_LT_TAGDECL([], [postdep_objects], [1])
+_LT_TAGDECL([], [predeps], [1])
+_LT_TAGDECL([], [postdeps], [1])
+_LT_TAGDECL([], [compiler_lib_search_path], [1],
+    [The library search path used internally by the compiler when linking
+    a shared library])
+])# _LT_SYS_HIDDEN_LIBDEPS
+
+
+# _LT_PROG_F77
+# ------------
+# Since AC_PROG_F77 is broken, in that it returns the empty string
+# if there is no fortran compiler, we have our own version here.
+m4_defun([_LT_PROG_F77],
+[
+pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes])
+AC_PROG_F77
+if test -z "$F77" || test "X$F77" = "Xno"; then
+  _lt_disable_F77=yes
+fi
+popdef([AC_MSG_ERROR])
+])# _LT_PROG_F77
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([_LT_PROG_F77], [])
+
+
+# _LT_LANG_F77_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a Fortran 77 compiler are
+# suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_F77_CONFIG],
+[AC_REQUIRE([_LT_PROG_F77])dnl
+AC_LANG_PUSH(Fortran 77)
+
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the F77 compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_disable_F77" != yes; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="\
+      subroutine t
+      return
+      end
+"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code="\
+      program t
+      end
+"
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC="$CC"
+  lt_save_GCC=$GCC
+  CC=${F77-"f77"}
+  compiler=$CC
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+  GCC=$G77
+  if test -n "$compiler"; then
+    AC_MSG_CHECKING([if libtool supports shared libraries])
+    AC_MSG_RESULT([$can_build_shared])
+
+    AC_MSG_CHECKING([whether to build shared libraries])
+    test "$can_build_shared" = "no" && enable_shared=no
+
+    # On AIX, shared libraries and static libraries use the same namespace, and
+    # are all built from PIC.
+    case $host_os in
+      aix3*)
+        test "$enable_shared" = yes && enable_static=no
+        if test -n "$RANLIB"; then
+          archive_cmds="$archive_cmds~\$RANLIB \$lib"
+          postinstall_cmds='$RANLIB $lib'
+        fi
+        ;;
+      aix[[4-9]]*)
+	if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+	  test "$enable_shared" = yes && enable_static=no
+	fi
+        ;;
+    esac
+    AC_MSG_RESULT([$enable_shared])
+
+    AC_MSG_CHECKING([whether to build static libraries])
+    # Make sure either enable_shared or enable_static is yes.
+    test "$enable_shared" = yes || enable_static=yes
+    AC_MSG_RESULT([$enable_static])
+
+    _LT_TAGVAR(GCC, $1)="$G77"
+    _LT_TAGVAR(LD, $1)="$LD"
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  GCC=$lt_save_GCC
+  CC="$lt_save_CC"
+fi # test "$_lt_disable_F77" != yes
+
+AC_LANG_POP
+])# _LT_LANG_F77_CONFIG
+
+
+# _LT_PROG_FC
+# -----------
+# Since AC_PROG_FC is broken, in that it returns the empty string
+# if there is no fortran compiler, we have our own version here.
+m4_defun([_LT_PROG_FC],
+[
+pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes])
+AC_PROG_FC
+if test -z "$FC" || test "X$FC" = "Xno"; then
+  _lt_disable_FC=yes
+fi
+popdef([AC_MSG_ERROR])
+])# _LT_PROG_FC
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([_LT_PROG_FC], [])
+
+
+# _LT_LANG_FC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for a Fortran compiler are
+# suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_FC_CONFIG],
+[AC_REQUIRE([_LT_PROG_FC])dnl
+AC_LANG_PUSH(Fortran)
+
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for fc test sources.
+ac_ext=${ac_fc_srcext-f}
+
+# Object file extension for compiled fc test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the FC compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_disable_FC" != yes; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="\
+      subroutine t
+      return
+      end
+"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code="\
+      program t
+      end
+"
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC="$CC"
+  lt_save_GCC=$GCC
+  CC=${FC-"f95"}
+  compiler=$CC
+  GCC=$ac_cv_fc_compiler_gnu
+
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+
+  if test -n "$compiler"; then
+    AC_MSG_CHECKING([if libtool supports shared libraries])
+    AC_MSG_RESULT([$can_build_shared])
+
+    AC_MSG_CHECKING([whether to build shared libraries])
+    test "$can_build_shared" = "no" && enable_shared=no
+
+    # On AIX, shared libraries and static libraries use the same namespace, and
+    # are all built from PIC.
+    case $host_os in
+      aix3*)
+        test "$enable_shared" = yes && enable_static=no
+        if test -n "$RANLIB"; then
+          archive_cmds="$archive_cmds~\$RANLIB \$lib"
+          postinstall_cmds='$RANLIB $lib'
+        fi
+        ;;
+      aix[[4-9]]*)
+	if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+	  test "$enable_shared" = yes && enable_static=no
+	fi
+        ;;
+    esac
+    AC_MSG_RESULT([$enable_shared])
+
+    AC_MSG_CHECKING([whether to build static libraries])
+    # Make sure either enable_shared or enable_static is yes.
+    test "$enable_shared" = yes || enable_static=yes
+    AC_MSG_RESULT([$enable_static])
+
+    _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu"
+    _LT_TAGVAR(LD, $1)="$LD"
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_SYS_HIDDEN_LIBDEPS($1)
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  GCC=$lt_save_GCC
+  CC="$lt_save_CC"
+fi # test "$_lt_disable_FC" != yes
+
+AC_LANG_POP
+])# _LT_LANG_FC_CONFIG
+
+
+# _LT_LANG_GCJ_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Java Compiler compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_GCJ_CONFIG],
+[AC_REQUIRE([LT_PROG_GCJ])dnl
+AC_LANG_SAVE
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+lt_save_GCC=$GCC
+GCC=yes
+CC=${GCJ-"gcj"}
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_TAGVAR(LD, $1)="$LD"
+_LT_CC_BASENAME([$compiler])
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+
+  _LT_CONFIG($1)
+fi
+
+AC_LANG_RESTORE
+
+GCC=$lt_save_GCC
+CC="$lt_save_CC"
+])# _LT_LANG_GCJ_CONFIG
+
+
+# _LT_LANG_RC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for the Windows resource compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_RC_CONFIG],
+[AC_REQUIRE([LT_PROG_RC])dnl
+AC_LANG_SAVE
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="$lt_simple_compile_test_code"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+lt_save_GCC=$GCC
+GCC=
+CC=${RC-"windres"}
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+
+if test -n "$compiler"; then
+  :
+  _LT_CONFIG($1)
+fi
+
+GCC=$lt_save_GCC
+AC_LANG_RESTORE
+CC="$lt_save_CC"
+])# _LT_LANG_RC_CONFIG
+
+
+# LT_PROG_GCJ
+# -----------
+AC_DEFUN([LT_PROG_GCJ],
+[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
+  [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
+    [AC_CHECK_TOOL(GCJ, gcj,)
+      test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
+      AC_SUBST(GCJFLAGS)])])[]dnl
+])
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
+
+
+# LT_PROG_RC
+# ----------
+AC_DEFUN([LT_PROG_RC],
+[AC_CHECK_TOOL(RC, windres,)
+])
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_RC], [])
+
+
+# _LT_DECL_EGREP
+# --------------
+# If we don't have a new enough Autoconf to choose the best grep
+# available, choose the one first in the user's PATH.
+m4_defun([_LT_DECL_EGREP],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_REQUIRE([AC_PROG_FGREP])dnl
+test -z "$GREP" && GREP=grep
+_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
+_LT_DECL([], [EGREP], [1], [An ERE matcher])
+_LT_DECL([], [FGREP], [1], [A literal string matcher])
+dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
+AC_SUBST([GREP])
+])
+
+
+# _LT_DECL_OBJDUMP
+# --------------
+# If we don't have a new enough Autoconf to choose the best objdump
+# available, choose the one first in the user's PATH.
+m4_defun([_LT_DECL_OBJDUMP],
+[AC_CHECK_TOOL(OBJDUMP, objdump, false)
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
+AC_SUBST([OBJDUMP])
+])
+
+
+# _LT_DECL_SED
+# ------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible.  Prefer GNU sed if found.
+m4_defun([_LT_DECL_SED],
+[AC_PROG_SED
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
+_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
+    [Sed that helps us avoid accidentally triggering echo(1) options like -n])
+])# _LT_DECL_SED
+
+m4_ifndef([AC_PROG_SED], [
+############################################################
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+############################################################
+
+m4_defun([AC_PROG_SED],
+[AC_MSG_CHECKING([for a sed that does not truncate output])
+AC_CACHE_VAL(lt_cv_path_SED,
+[# Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for lt_ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+      fi
+    done
+  done
+done
+IFS=$as_save_IFS
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+  test ! -f $lt_ac_sed && continue
+  cat /dev/null > conftest.in
+  lt_ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+  # Check for GNU sed and select it if it is found.
+  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+    lt_cv_path_SED=$lt_ac_sed
+    break
+  fi
+  while true; do
+    cat conftest.in conftest.in >conftest.tmp
+    mv conftest.tmp conftest.in
+    cp conftest.in conftest.nl
+    echo >>conftest.nl
+    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+    cmp -s conftest.out conftest.nl || break
+    # 10000 chars as input seems more than enough
+    test $lt_ac_count -gt 10 && break
+    lt_ac_count=`expr $lt_ac_count + 1`
+    if test $lt_ac_count -gt $lt_ac_max; then
+      lt_ac_max=$lt_ac_count
+      lt_cv_path_SED=$lt_ac_sed
+    fi
+  done
+done
+])
+SED=$lt_cv_path_SED
+AC_SUBST([SED])
+AC_MSG_RESULT([$SED])
+])#AC_PROG_SED
+])#m4_ifndef
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_SED], [])
+
+
+# _LT_CHECK_SHELL_FEATURES
+# ------------------------
+# Find out whether the shell is Bourne or XSI compatible,
+# or has some other useful features.
+m4_defun([_LT_CHECK_SHELL_FEATURES],
+[AC_MSG_CHECKING([whether the shell understands some XSI constructs])
+# Try some XSI features
+xsi_shell=no
+( _lt_dummy="a/b/c"
+  test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
+      = c,a/b,, \
+    && eval 'test $(( 1 + 1 )) -eq 2 \
+    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
+  && xsi_shell=yes
+AC_MSG_RESULT([$xsi_shell])
+_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell'])
+
+AC_MSG_CHECKING([whether the shell understands "+="])
+lt_shell_append=no
+( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \
+    >/dev/null 2>&1 \
+  && lt_shell_append=yes
+AC_MSG_RESULT([$lt_shell_append])
+_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append'])
+
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  lt_unset=unset
+else
+  lt_unset=false
+fi
+_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+  lt_SP2NL='tr \040 \012'
+  lt_NL2SP='tr \015\012 \040\040'
+  ;;
+ *) # EBCDIC based system
+  lt_SP2NL='tr \100 \n'
+  lt_NL2SP='tr \r\n \100\100'
+  ;;
+esac
+_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
+_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
+])# _LT_CHECK_SHELL_FEATURES
+
+
+# _LT_PROG_XSI_SHELLFNS
+# ---------------------
+# Bourne and XSI compatible variants of some useful shell functions.
+m4_defun([_LT_PROG_XSI_SHELLFNS],
+[case $xsi_shell in
+  yes)
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+  case ${1} in
+    */*) func_dirname_result="${1%/*}${2}" ;;
+    *  ) func_dirname_result="${3}" ;;
+  esac
+}
+
+# func_basename file
+func_basename ()
+{
+  func_basename_result="${1##*/}"
+}
+
+# func_dirname_and_basename file append nondir_replacement
+# perform func_basename and func_dirname in a single function
+# call:
+#   dirname:  Compute the dirname of FILE.  If nonempty,
+#             add APPEND to the result, otherwise set result
+#             to NONDIR_REPLACEMENT.
+#             value returned in "$func_dirname_result"
+#   basename: Compute filename of FILE.
+#             value retuned in "$func_basename_result"
+# Implementation must be kept synchronized with func_dirname
+# and func_basename. For efficiency, we do not delegate to
+# those functions but instead duplicate the functionality here.
+func_dirname_and_basename ()
+{
+  case ${1} in
+    */*) func_dirname_result="${1%/*}${2}" ;;
+    *  ) func_dirname_result="${3}" ;;
+  esac
+  func_basename_result="${1##*/}"
+}
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+func_stripname ()
+{
+  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+  # positional parameters, so assign one to ordinary parameter first.
+  func_stripname_result=${3}
+  func_stripname_result=${func_stripname_result#"${1}"}
+  func_stripname_result=${func_stripname_result%"${2}"}
+}
+
+# func_opt_split
+func_opt_split ()
+{
+  func_opt_split_opt=${1%%=*}
+  func_opt_split_arg=${1#*=}
+}
+
+# func_lo2o object
+func_lo2o ()
+{
+  case ${1} in
+    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+    *)    func_lo2o_result=${1} ;;
+  esac
+}
+
+# func_xform libobj-or-source
+func_xform ()
+{
+  func_xform_result=${1%.*}.lo
+}
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+  func_arith_result=$(( $[*] ))
+}
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+  func_len_result=${#1}
+}
+
+_LT_EOF
+    ;;
+  *) # Bourne compatible functions.
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+  # Extract subdirectory from the argument.
+  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
+  if test "X$func_dirname_result" = "X${1}"; then
+    func_dirname_result="${3}"
+  else
+    func_dirname_result="$func_dirname_result${2}"
+  fi
+}
+
+# func_basename file
+func_basename ()
+{
+  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
+}
+
+dnl func_dirname_and_basename
+dnl A portable version of this function is already defined in general.m4sh
+dnl so there is no need for it here.
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+# func_strip_suffix prefix name
+func_stripname ()
+{
+  case ${2} in
+    .*) func_stripname_result=`$ECHO "X${3}" \
+           | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
+    *)  func_stripname_result=`$ECHO "X${3}" \
+           | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
+  esac
+}
+
+# sed scripts:
+my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q'
+my_sed_long_arg='1s/^-[[^=]]*=//'
+
+# func_opt_split
+func_opt_split ()
+{
+  func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
+  func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
+}
+
+# func_lo2o object
+func_lo2o ()
+{
+  func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
+}
+
+# func_xform libobj-or-source
+func_xform ()
+{
+  func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'`
+}
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+  func_arith_result=`expr "$[@]"`
+}
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+  func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len`
+}
+
+_LT_EOF
+esac
+
+case $lt_shell_append in
+  yes)
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+  eval "$[1]+=\$[2]"
+}
+_LT_EOF
+    ;;
+  *)
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+  eval "$[1]=\$$[1]\$[2]"
+}
+
+_LT_EOF
+    ;;
+  esac
+])
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/ltoptions.m4 b/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/ltoptions.m4
new file mode 100644
index 0000000000000000000000000000000000000000..34151a3ba625f326e6645d6afc79586f10746a3e
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/ltoptions.m4
@@ -0,0 +1,368 @@
+# Helper functions for option handling.                    -*- Autoconf -*-
+#
+#   Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+#   Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 6 ltoptions.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
+
+
+# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
+# ------------------------------------------
+m4_define([_LT_MANGLE_OPTION],
+[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
+
+
+# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
+# ---------------------------------------
+# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
+# matching handler defined, dispatch to it.  Other OPTION-NAMEs are
+# saved as a flag.
+m4_define([_LT_SET_OPTION],
+[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
+m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
+        _LT_MANGLE_DEFUN([$1], [$2]),
+    [m4_warning([Unknown $1 option `$2'])])[]dnl
+])
+
+
+# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
+# ------------------------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+m4_define([_LT_IF_OPTION],
+[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
+
+
+# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
+# -------------------------------------------------------
+# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
+# are set.
+m4_define([_LT_UNLESS_OPTIONS],
+[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+	    [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
+		      [m4_define([$0_found])])])[]dnl
+m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
+])[]dnl
+])
+
+
+# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
+# ----------------------------------------
+# OPTION-LIST is a space-separated list of Libtool options associated
+# with MACRO-NAME.  If any OPTION has a matching handler declared with
+# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
+# the unknown option and exit.
+m4_defun([_LT_SET_OPTIONS],
+[# Set options
+m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+    [_LT_SET_OPTION([$1], _LT_Option)])
+
+m4_if([$1],[LT_INIT],[
+  dnl
+  dnl Simply set some default values (i.e off) if boolean options were not
+  dnl specified:
+  _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
+  ])
+  _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
+  ])
+  dnl
+  dnl If no reference was made to various pairs of opposing options, then
+  dnl we run the default mode handler for the pair.  For example, if neither
+  dnl `shared' nor `disable-shared' was passed, we enable building of shared
+  dnl archives by default:
+  _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
+  _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
+  _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
+  _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
+  		   [_LT_ENABLE_FAST_INSTALL])
+  ])
+])# _LT_SET_OPTIONS
+
+
+## --------------------------------- ##
+## Macros to handle LT_INIT options. ##
+## --------------------------------- ##
+
+# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
+# -----------------------------------------
+m4_define([_LT_MANGLE_DEFUN],
+[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
+
+
+# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
+# -----------------------------------------------
+m4_define([LT_OPTION_DEFINE],
+[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
+])# LT_OPTION_DEFINE
+
+
+# dlopen
+# ------
+LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
+])
+
+AU_DEFUN([AC_LIBTOOL_DLOPEN],
+[_LT_SET_OPTION([LT_INIT], [dlopen])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `dlopen' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
+
+
+# win32-dll
+# ---------
+# Declare package support for building win32 dll's.
+LT_OPTION_DEFINE([LT_INIT], [win32-dll],
+[enable_win32_dll=yes
+
+case $host in
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
+  AC_CHECK_TOOL(AS, as, false)
+  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+  AC_CHECK_TOOL(OBJDUMP, objdump, false)
+  ;;
+esac
+
+test -z "$AS" && AS=as
+_LT_DECL([], [AS],      [0], [Assembler program])dnl
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl
+])# win32-dll
+
+AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+_LT_SET_OPTION([LT_INIT], [win32-dll])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `win32-dll' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
+
+
+# _LT_ENABLE_SHARED([DEFAULT])
+# ----------------------------
+# implement the --enable-shared flag, and supports the `shared' and
+# `disable-shared' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_SHARED],
+[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([shared],
+    [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+	[build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_shared=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
+
+    _LT_DECL([build_libtool_libs], [enable_shared], [0],
+	[Whether or not to build shared libraries])
+])# _LT_ENABLE_SHARED
+
+LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
+])
+
+AC_DEFUN([AC_DISABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], [disable-shared])
+])
+
+AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
+AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_SHARED], [])
+dnl AC_DEFUN([AM_DISABLE_SHARED], [])
+
+
+
+# _LT_ENABLE_STATIC([DEFAULT])
+# ----------------------------
+# implement the --enable-static flag, and support the `static' and
+# `disable-static' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_STATIC],
+[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([static],
+    [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+	[build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_static=yes ;;
+    no) enable_static=no ;;
+    *)
+     enable_static=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_static=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
+
+    _LT_DECL([build_old_libs], [enable_static], [0],
+	[Whether or not to build static libraries])
+])# _LT_ENABLE_STATIC
+
+LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
+])
+
+AC_DEFUN([AC_DISABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], [disable-static])
+])
+
+AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
+AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_STATIC], [])
+dnl AC_DEFUN([AM_DISABLE_STATIC], [])
+
+
+
+# _LT_ENABLE_FAST_INSTALL([DEFAULT])
+# ----------------------------------
+# implement the --enable-fast-install flag, and support the `fast-install'
+# and `disable-fast-install' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_FAST_INSTALL],
+[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([fast-install],
+    [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+    [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_fast_install=yes ;;
+    no) enable_fast_install=no ;;
+    *)
+      enable_fast_install=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_fast_install=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
+
+_LT_DECL([fast_install], [enable_fast_install], [0],
+	 [Whether or not to optimize for fast installation])dnl
+])# _LT_ENABLE_FAST_INSTALL
+
+LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
+
+# Old names:
+AU_DEFUN([AC_ENABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `fast-install' option into LT_INIT's first parameter.])
+])
+
+AU_DEFUN([AC_DISABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `disable-fast-install' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
+dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
+
+
+# _LT_WITH_PIC([MODE])
+# --------------------
+# implement the --with-pic flag, and support the `pic-only' and `no-pic'
+# LT_INIT options.
+# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
+m4_define([_LT_WITH_PIC],
+[AC_ARG_WITH([pic],
+    [AS_HELP_STRING([--with-pic],
+	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+    [pic_mode="$withval"],
+    [pic_mode=default])
+
+test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
+
+_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
+])# _LT_WITH_PIC
+
+LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
+
+# Old name:
+AU_DEFUN([AC_LIBTOOL_PICMODE],
+[_LT_SET_OPTION([LT_INIT], [pic-only])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `pic-only' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
+
+## ----------------- ##
+## LTDL_INIT Options ##
+## ----------------- ##
+
+m4_define([_LTDL_MODE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
+		 [m4_define([_LTDL_MODE], [nonrecursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [recursive],
+		 [m4_define([_LTDL_MODE], [recursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [subproject],
+		 [m4_define([_LTDL_MODE], [subproject])])
+
+m4_define([_LTDL_TYPE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [installable],
+		 [m4_define([_LTDL_TYPE], [installable])])
+LT_OPTION_DEFINE([LTDL_INIT], [convenience],
+		 [m4_define([_LTDL_TYPE], [convenience])])
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/ltsugar.m4 b/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/ltsugar.m4
new file mode 100644
index 0000000000000000000000000000000000000000..9000a057d31ddf75cb85ccda8757de4493bcdbe7
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/ltsugar.m4
@@ -0,0 +1,123 @@
+# ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
+#
+# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+# Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 6 ltsugar.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
+
+
+# lt_join(SEP, ARG1, [ARG2...])
+# -----------------------------
+# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
+# associated separator.
+# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
+# versions in m4sugar had bugs.
+m4_define([lt_join],
+[m4_if([$#], [1], [],
+       [$#], [2], [[$2]],
+       [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
+m4_define([_lt_join],
+[m4_if([$#$2], [2], [],
+       [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
+
+
+# lt_car(LIST)
+# lt_cdr(LIST)
+# ------------
+# Manipulate m4 lists.
+# These macros are necessary as long as will still need to support
+# Autoconf-2.59 which quotes differently.
+m4_define([lt_car], [[$1]])
+m4_define([lt_cdr],
+[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
+       [$#], 1, [],
+       [m4_dquote(m4_shift($@))])])
+m4_define([lt_unquote], $1)
+
+
+# lt_append(MACRO-NAME, STRING, [SEPARATOR])
+# ------------------------------------------
+# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
+# Note that neither SEPARATOR nor STRING are expanded; they are appended
+# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
+# No SEPARATOR is output if MACRO-NAME was previously undefined (different
+# than defined and empty).
+#
+# This macro is needed until we can rely on Autoconf 2.62, since earlier
+# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
+m4_define([lt_append],
+[m4_define([$1],
+	   m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
+
+
+
+# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
+# ----------------------------------------------------------
+# Produce a SEP delimited list of all paired combinations of elements of
+# PREFIX-LIST with SUFFIX1 through SUFFIXn.  Each element of the list
+# has the form PREFIXmINFIXSUFFIXn.
+# Needed until we can rely on m4_combine added in Autoconf 2.62.
+m4_define([lt_combine],
+[m4_if(m4_eval([$# > 3]), [1],
+       [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
+[[m4_foreach([_Lt_prefix], [$2],
+	     [m4_foreach([_Lt_suffix],
+		]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
+	[_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
+
+
+# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
+# -----------------------------------------------------------------------
+# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
+# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
+m4_define([lt_if_append_uniq],
+[m4_ifdef([$1],
+	  [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
+		 [lt_append([$1], [$2], [$3])$4],
+		 [$5])],
+	  [lt_append([$1], [$2], [$3])$4])])
+
+
+# lt_dict_add(DICT, KEY, VALUE)
+# -----------------------------
+m4_define([lt_dict_add],
+[m4_define([$1($2)], [$3])])
+
+
+# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
+# --------------------------------------------
+m4_define([lt_dict_add_subkey],
+[m4_define([$1($2:$3)], [$4])])
+
+
+# lt_dict_fetch(DICT, KEY, [SUBKEY])
+# ----------------------------------
+m4_define([lt_dict_fetch],
+[m4_ifval([$3],
+	m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
+    m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
+
+
+# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
+# -----------------------------------------------------------------
+m4_define([lt_if_dict_fetch],
+[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
+	[$5],
+    [$6])])
+
+
+# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
+# --------------------------------------------------------------
+m4_define([lt_dict_filter],
+[m4_if([$5], [], [],
+  [lt_join(m4_quote(m4_default([$4], [[, ]])),
+           lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
+		      [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
+])
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/ltversion.m4 b/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/ltversion.m4
new file mode 100644
index 0000000000000000000000000000000000000000..f3c5309802447a3b341b1a2c5e4d74ec138b311a
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/ltversion.m4
@@ -0,0 +1,23 @@
+# ltversion.m4 -- version numbers			-*- Autoconf -*-
+#
+#   Copyright (C) 2004 Free Software Foundation, Inc.
+#   Written by Scott James Remnant, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# Generated from ltversion.in.
+
+# serial 3017 ltversion.m4
+# This file is part of GNU Libtool
+
+m4_define([LT_PACKAGE_VERSION], [2.2.6b])
+m4_define([LT_PACKAGE_REVISION], [1.3017])
+
+AC_DEFUN([LTVERSION_VERSION],
+[macro_version='2.2.6b'
+macro_revision='1.3017'
+_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
+_LT_DECL(, macro_revision, 0)
+])
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/lt~obsolete.m4 b/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/lt~obsolete.m4
new file mode 100644
index 0000000000000000000000000000000000000000..637bb2066c425f79faecd6cc9e4e6b5074c6b55c
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/lt~obsolete.m4
@@ -0,0 +1,92 @@
+# lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
+#
+#   Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
+#   Written by Scott James Remnant, 2004.
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 4 lt~obsolete.m4
+
+# These exist entirely to fool aclocal when bootstrapping libtool.
+#
+# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
+# which have later been changed to m4_define as they aren't part of the
+# exported API, or moved to Autoconf or Automake where they belong.
+#
+# The trouble is, aclocal is a bit thick.  It'll see the old AC_DEFUN
+# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
+# using a macro with the same name in our local m4/libtool.m4 it'll
+# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
+# and doesn't know about Autoconf macros at all.)
+#
+# So we provide this file, which has a silly filename so it's always
+# included after everything else.  This provides aclocal with the
+# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
+# because those macros already exist, or will be overwritten later.
+# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. 
+#
+# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
+# Yes, that means every name once taken will need to remain here until
+# we give up compatibility with versions before 1.7, at which point
+# we need to keep only those names which we still refer to.
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
+
+m4_ifndef([AC_LIBTOOL_LINKER_OPTION],	[AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
+m4_ifndef([AC_PROG_EGREP],		[AC_DEFUN([AC_PROG_EGREP])])
+m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH],	[AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_AC_SHELL_INIT],		[AC_DEFUN([_LT_AC_SHELL_INIT])])
+m4_ifndef([_LT_AC_SYS_LIBPATH_AIX],	[AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
+m4_ifndef([_LT_PROG_LTMAIN],		[AC_DEFUN([_LT_PROG_LTMAIN])])
+m4_ifndef([_LT_AC_TAGVAR],		[AC_DEFUN([_LT_AC_TAGVAR])])
+m4_ifndef([AC_LTDL_ENABLE_INSTALL],	[AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
+m4_ifndef([AC_LTDL_PREOPEN],		[AC_DEFUN([AC_LTDL_PREOPEN])])
+m4_ifndef([_LT_AC_SYS_COMPILER],	[AC_DEFUN([_LT_AC_SYS_COMPILER])])
+m4_ifndef([_LT_AC_LOCK],		[AC_DEFUN([_LT_AC_LOCK])])
+m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE],	[AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
+m4_ifndef([_LT_AC_TRY_DLOPEN_SELF],	[AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
+m4_ifndef([AC_LIBTOOL_PROG_CC_C_O],	[AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
+m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
+m4_ifndef([AC_LIBTOOL_OBJDIR],		[AC_DEFUN([AC_LIBTOOL_OBJDIR])])
+m4_ifndef([AC_LTDL_OBJDIR],		[AC_DEFUN([AC_LTDL_OBJDIR])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
+m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP],	[AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
+m4_ifndef([AC_PATH_MAGIC],		[AC_DEFUN([AC_PATH_MAGIC])])
+m4_ifndef([AC_PROG_LD_GNU],		[AC_DEFUN([AC_PROG_LD_GNU])])
+m4_ifndef([AC_PROG_LD_RELOAD_FLAG],	[AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
+m4_ifndef([AC_DEPLIBS_CHECK_METHOD],	[AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
+m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS],	[AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
+m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP],	[AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
+m4_ifndef([LT_AC_PROG_EGREP],		[AC_DEFUN([LT_AC_PROG_EGREP])])
+m4_ifndef([LT_AC_PROG_SED],		[AC_DEFUN([LT_AC_PROG_SED])])
+m4_ifndef([_LT_CC_BASENAME],		[AC_DEFUN([_LT_CC_BASENAME])])
+m4_ifndef([_LT_COMPILER_BOILERPLATE],	[AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
+m4_ifndef([_LT_LINKER_BOILERPLATE],	[AC_DEFUN([_LT_LINKER_BOILERPLATE])])
+m4_ifndef([_AC_PROG_LIBTOOL],		[AC_DEFUN([_AC_PROG_LIBTOOL])])
+m4_ifndef([AC_LIBTOOL_SETUP],		[AC_DEFUN([AC_LIBTOOL_SETUP])])
+m4_ifndef([_LT_AC_CHECK_DLFCN],		[AC_DEFUN([_LT_AC_CHECK_DLFCN])])
+m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER],	[AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
+m4_ifndef([_LT_AC_TAGCONFIG],		[AC_DEFUN([_LT_AC_TAGCONFIG])])
+m4_ifndef([AC_DISABLE_FAST_INSTALL],	[AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
+m4_ifndef([_LT_AC_LANG_CXX],		[AC_DEFUN([_LT_AC_LANG_CXX])])
+m4_ifndef([_LT_AC_LANG_F77],		[AC_DEFUN([_LT_AC_LANG_F77])])
+m4_ifndef([_LT_AC_LANG_GCJ],		[AC_DEFUN([_LT_AC_LANG_GCJ])])
+m4_ifndef([AC_LIBTOOL_RC],		[AC_DEFUN([AC_LIBTOOL_RC])])
+m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
+m4_ifndef([_LT_AC_LANG_C_CONFIG],	[AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
+m4_ifndef([_LT_AC_LANG_CXX_CONFIG],	[AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
+m4_ifndef([_LT_AC_LANG_F77_CONFIG],	[AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
+m4_ifndef([_LT_AC_LANG_GCJ_CONFIG],	[AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
+m4_ifndef([_LT_AC_LANG_RC_CONFIG],	[AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
+m4_ifndef([AC_LIBTOOL_CONFIG],		[AC_DEFUN([AC_LIBTOOL_CONFIG])])
+m4_ifndef([_LT_AC_FILE_LTDLL_C],	[AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/nls.m4 b/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/nls.m4
new file mode 100644
index 0000000000000000000000000000000000000000..36bc49317c127c9b775ac81f1f327bea668c9b72
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/nls.m4
@@ -0,0 +1,49 @@
+# nls.m4 serial 1 (gettext-0.12)
+dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+
+AC_DEFUN([AM_NLS],
+[
+  AC_MSG_CHECKING([whether NLS is requested])
+  dnl Default is enabled NLS
+  AC_ARG_ENABLE(nls,
+    [  --disable-nls           do not use Native Language Support],
+    USE_NLS=$enableval, USE_NLS=yes)
+  AC_MSG_RESULT($USE_NLS)
+  AC_SUBST(USE_NLS)
+])
+
+AC_DEFUN([AM_MKINSTALLDIRS],
+[
+  dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
+  dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
+  dnl Try to locate it.
+  MKINSTALLDIRS=
+  if test -n "$ac_aux_dir"; then
+    case "$ac_aux_dir" in
+      /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;;
+      *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;;
+    esac
+  fi
+  if test -z "$MKINSTALLDIRS"; then
+    MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
+  fi
+  AC_SUBST(MKINSTALLDIRS)
+])
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/po.m4 b/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/po.m4
new file mode 100644
index 0000000000000000000000000000000000000000..e1619988187071bc80ab6a93cd1f67d361480176
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/po.m4
@@ -0,0 +1,426 @@
+# po.m4 serial 3 (gettext-0.14)
+dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+
+dnl Checks for all prerequisites of the po subdirectory.
+AC_DEFUN([AM_PO_SUBDIRS],
+[
+  AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+  AC_REQUIRE([AC_PROG_INSTALL])dnl
+  AC_REQUIRE([AM_MKINSTALLDIRS])dnl
+  AC_REQUIRE([AM_NLS])dnl
+
+  dnl Perform the following tests also if --disable-nls has been given,
+  dnl because they are needed for "make dist" to work.
+
+  dnl Search for GNU msgfmt in the PATH.
+  dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
+  dnl The second test excludes FreeBSD msgfmt.
+  AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+    [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
+     (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
+    :)
+  AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+
+  dnl Search for GNU xgettext 0.12 or newer in the PATH.
+  dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
+  dnl The second test excludes FreeBSD xgettext.
+  AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+    [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
+     (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
+    :)
+  dnl Remove leftover from FreeBSD xgettext call.
+  rm -f messages.po
+
+  dnl Search for GNU msgmerge 0.11 or newer in the PATH.
+  AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
+    [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :)
+
+  dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
+  dnl Test whether we really found GNU msgfmt.
+  if test "$GMSGFMT" != ":"; then
+    dnl If it is no GNU msgfmt we define it as : so that the
+    dnl Makefiles still can work.
+    if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
+       (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+      : ;
+    else
+      GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
+      AC_MSG_RESULT(
+        [found $GMSGFMT program is not GNU msgfmt; ignore it])
+      GMSGFMT=":"
+    fi
+  fi
+
+  dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
+  dnl Test whether we really found GNU xgettext.
+  if test "$XGETTEXT" != ":"; then
+    dnl If it is no GNU xgettext we define it as : so that the
+    dnl Makefiles still can work.
+    if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
+       (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+      : ;
+    else
+      AC_MSG_RESULT(
+        [found xgettext program is not GNU xgettext; ignore it])
+      XGETTEXT=":"
+    fi
+    dnl Remove leftover from FreeBSD xgettext call.
+    rm -f messages.po
+  fi
+
+  AC_OUTPUT_COMMANDS([
+    for ac_file in $CONFIG_FILES; do
+      # Support "outfile[:infile[:infile...]]"
+      case "$ac_file" in
+        *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+      esac
+      # PO directories have a Makefile.in generated from Makefile.in.in.
+      case "$ac_file" in */Makefile.in)
+        # Adjust a relative srcdir.
+        ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+        ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+        ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+        # In autoconf-2.13 it is called $ac_given_srcdir.
+        # In autoconf-2.50 it is called $srcdir.
+        test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+        case "$ac_given_srcdir" in
+          .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+          /*) top_srcdir="$ac_given_srcdir" ;;
+          *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
+        esac
+        if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
+          rm -f "$ac_dir/POTFILES"
+          test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
+          cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ 	]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
+          POMAKEFILEDEPS="POTFILES.in"
+          # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
+          # on $ac_dir but don't depend on user-specified configuration
+          # parameters.
+          if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+            # The LINGUAS file contains the set of available languages.
+            if test -n "$OBSOLETE_ALL_LINGUAS"; then
+              test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+            fi
+            ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+            # Hide the ALL_LINGUAS assigment from automake.
+            eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+            POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
+          else
+            # The set of available languages was given in configure.in.
+            eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
+          fi
+          # Compute POFILES
+          # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
+          # Compute UPDATEPOFILES
+          # as      $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
+          # Compute DUMMYPOFILES
+          # as      $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
+          # Compute GMOFILES
+          # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
+          case "$ac_given_srcdir" in
+            .) srcdirpre= ;;
+            *) srcdirpre='$(srcdir)/' ;;
+          esac
+          POFILES=
+          UPDATEPOFILES=
+          DUMMYPOFILES=
+          GMOFILES=
+          for lang in $ALL_LINGUAS; do
+            POFILES="$POFILES $srcdirpre$lang.po"
+            UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+            DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+            GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+          done
+          # CATALOGS depends on both $ac_dir and the user's LINGUAS
+          # environment variable.
+          INST_LINGUAS=
+          if test -n "$ALL_LINGUAS"; then
+            for presentlang in $ALL_LINGUAS; do
+              useit=no
+              if test "%UNSET%" != "$LINGUAS"; then
+                desiredlanguages="$LINGUAS"
+              else
+                desiredlanguages="$ALL_LINGUAS"
+              fi
+              for desiredlang in $desiredlanguages; do
+                # Use the presentlang catalog if desiredlang is
+                #   a. equal to presentlang, or
+                #   b. a variant of presentlang (because in this case,
+                #      presentlang can be used as a fallback for messages
+                #      which are not translated in the desiredlang catalog).
+                case "$desiredlang" in
+                  "$presentlang"*) useit=yes;;
+                esac
+              done
+              if test $useit = yes; then
+                INST_LINGUAS="$INST_LINGUAS $presentlang"
+              fi
+            done
+          fi
+          CATALOGS=
+          if test -n "$INST_LINGUAS"; then
+            for lang in $INST_LINGUAS; do
+              CATALOGS="$CATALOGS $lang.gmo"
+            done
+          fi
+          test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
+          sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
+          for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
+            if test -f "$f"; then
+              case "$f" in
+                *.orig | *.bak | *~) ;;
+                *) cat "$f" >> "$ac_dir/Makefile" ;;
+              esac
+            fi
+          done
+        fi
+        ;;
+      esac
+    done],
+   [# Capture the value of obsolete ALL_LINGUAS because we need it to compute
+    # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
+    # from automake.
+    eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
+    # Capture the value of LINGUAS because we need it to compute CATALOGS.
+    LINGUAS="${LINGUAS-%UNSET%}"
+   ])
+])
+
+dnl Postprocesses a Makefile in a directory containing PO files.
+AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE],
+[
+  # When this code is run, in config.status, two variables have already been
+  # set:
+  # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in,
+  # - LINGUAS is the value of the environment variable LINGUAS at configure
+  #   time.
+
+changequote(,)dnl
+  # Adjust a relative srcdir.
+  ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+  ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+  ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+  # In autoconf-2.13 it is called $ac_given_srcdir.
+  # In autoconf-2.50 it is called $srcdir.
+  test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+  case "$ac_given_srcdir" in
+    .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+    /*) top_srcdir="$ac_given_srcdir" ;;
+    *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
+  esac
+
+  # Find a way to echo strings without interpreting backslash.
+  if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then
+    gt_echo='echo'
+  else
+    if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then
+      gt_echo='printf %s\n'
+    else
+      echo_func () {
+        cat <<EOT
+$*
+EOT
+      }
+      gt_echo='echo_func'
+    fi
+  fi
+
+  # A sed script that extracts the value of VARIABLE from a Makefile.
+  sed_x_variable='
+# Test if the hold space is empty.
+x
+s/P/P/
+x
+ta
+# Yes it was empty. Look if we have the expected variable definition.
+/^[	 ]*VARIABLE[	 ]*=/{
+  # Seen the first line of the variable definition.
+  s/^[	 ]*VARIABLE[	 ]*=//
+  ba
+}
+bd
+:a
+# Here we are processing a line from the variable definition.
+# Remove comment, more precisely replace it with a space.
+s/#.*$/ /
+# See if the line ends in a backslash.
+tb
+:b
+s/\\$//
+# Print the line, without the trailing backslash.
+p
+tc
+# There was no trailing backslash. The end of the variable definition is
+# reached. Clear the hold space.
+s/^.*$//
+x
+bd
+:c
+# A trailing backslash means that the variable definition continues in the
+# next line. Put a nonempty string into the hold space to indicate this.
+s/^.*$/P/
+x
+:d
+'
+changequote([,])dnl
+
+  # Set POTFILES to the value of the Makefile variable POTFILES.
+  sed_x_POTFILES="`$gt_echo \"$sed_x_variable\" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'`"
+  POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"`
+  # Compute POTFILES_DEPS as
+  #   $(foreach file, $(POTFILES), $(top_srcdir)/$(file))
+  POTFILES_DEPS=
+  for file in $POTFILES; do
+    POTFILES_DEPS="$POTFILES_DEPS "'$(top_srcdir)/'"$file"
+  done
+  POMAKEFILEDEPS=""
+
+  if test -n "$OBSOLETE_ALL_LINGUAS"; then
+    test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+  fi
+  if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+    # The LINGUAS file contains the set of available languages.
+    ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+    POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
+  else
+    # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS.
+    sed_x_LINGUAS="`$gt_echo \"$sed_x_variable\" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'`"
+    ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"`
+  fi
+  # Hide the ALL_LINGUAS assigment from automake.
+  eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+  # Compute POFILES
+  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
+  # Compute UPDATEPOFILES
+  # as      $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
+  # Compute DUMMYPOFILES
+  # as      $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
+  # Compute GMOFILES
+  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
+  # Compute PROPERTIESFILES
+  # as      $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).properties)
+  # Compute CLASSFILES
+  # as      $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).class)
+  # Compute QMFILES
+  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm)
+  # Compute MSGFILES
+  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang)).msg)
+  # Compute RESOURCESDLLFILES
+  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll)
+  case "$ac_given_srcdir" in
+    .) srcdirpre= ;;
+    *) srcdirpre='$(srcdir)/' ;;
+  esac
+  POFILES=
+  UPDATEPOFILES=
+  DUMMYPOFILES=
+  GMOFILES=
+  PROPERTIESFILES=
+  CLASSFILES=
+  QMFILES=
+  MSGFILES=
+  RESOURCESDLLFILES=
+  for lang in $ALL_LINGUAS; do
+    POFILES="$POFILES $srcdirpre$lang.po"
+    UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+    DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+    GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+    PROPERTIESFILES="$PROPERTIESFILES \$(top_srcdir)/\$(DOMAIN)_$lang.properties"
+    CLASSFILES="$CLASSFILES \$(top_srcdir)/\$(DOMAIN)_$lang.class"
+    QMFILES="$QMFILES $srcdirpre$lang.qm"
+    frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+    MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg"
+    frobbedlang=`echo $lang | sed -e 's/_/-/g'`
+    RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll"
+  done
+  # CATALOGS depends on both $ac_dir and the user's LINGUAS
+  # environment variable.
+  INST_LINGUAS=
+  if test -n "$ALL_LINGUAS"; then
+    for presentlang in $ALL_LINGUAS; do
+      useit=no
+      if test "%UNSET%" != "$LINGUAS"; then
+        desiredlanguages="$LINGUAS"
+      else
+        desiredlanguages="$ALL_LINGUAS"
+      fi
+      for desiredlang in $desiredlanguages; do
+        # Use the presentlang catalog if desiredlang is
+        #   a. equal to presentlang, or
+        #   b. a variant of presentlang (because in this case,
+        #      presentlang can be used as a fallback for messages
+        #      which are not translated in the desiredlang catalog).
+        case "$desiredlang" in
+          "$presentlang"*) useit=yes;;
+        esac
+      done
+      if test $useit = yes; then
+        INST_LINGUAS="$INST_LINGUAS $presentlang"
+      fi
+    done
+  fi
+  CATALOGS=
+  JAVACATALOGS=
+  QTCATALOGS=
+  TCLCATALOGS=
+  CSHARPCATALOGS=
+  if test -n "$INST_LINGUAS"; then
+    for lang in $INST_LINGUAS; do
+      CATALOGS="$CATALOGS $lang.gmo"
+      JAVACATALOGS="$JAVACATALOGS \$(DOMAIN)_$lang.properties"
+      QTCATALOGS="$QTCATALOGS $lang.qm"
+      frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+      TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg"
+      frobbedlang=`echo $lang | sed -e 's/_/-/g'`
+      CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll"
+    done
+  fi
+
+  sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp"
+  if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then
+    # Add dependencies that cannot be formulated as a simple suffix rule.
+    for lang in $ALL_LINGUAS; do
+      frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+      cat >> "$ac_file.tmp" <<EOF
+$frobbedlang.msg: $lang.po
+	@echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \
+	\$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
+EOF
+    done
+  fi
+  if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then
+    # Add dependencies that cannot be formulated as a simple suffix rule.
+    for lang in $ALL_LINGUAS; do
+      frobbedlang=`echo $lang | sed -e 's/_/-/g'`
+      cat >> "$ac_file.tmp" <<EOF
+$frobbedlang/\$(DOMAIN).resources.dll: $lang.po
+	@echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \
+	\$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
+EOF
+    done
+  fi
+  if test -n "$POMAKEFILEDEPS"; then
+    cat >> "$ac_file.tmp" <<EOF
+Makefile: $POMAKEFILEDEPS
+EOF
+  fi
+  mv "$ac_file.tmp" "$ac_file"
+])
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/progtest.m4 b/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/progtest.m4
new file mode 100644
index 0000000000000000000000000000000000000000..8fe527ceceb92c36a9d9a7c155ac6dd447dbd56b
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/auto-m4/progtest.m4
@@ -0,0 +1,91 @@
+# progtest.m4 serial 3 (gettext-0.12)
+dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl   Ulrich Drepper <drepper@cygnus.com>, 1996.
+
+# Search path for a program which passes the given test.
+
+dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
+dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
+AC_DEFUN([AM_PATH_PROG_WITH_TEST],
+[
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+  ac_executable_p="test -x"
+else
+  ac_executable_p="test -f"
+fi
+rm -f conf$$.file
+
+# Extract the first word of "$2", so it can be a program name with args.
+set dummy $2; ac_word=[$]2
+AC_MSG_CHECKING([for $ac_word])
+AC_CACHE_VAL(ac_cv_path_$1,
+[case "[$]$1" in
+  [[\\/]]* | ?:[[\\/]]*)
+    ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
+    ;;
+  *)
+    ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in ifelse([$5], , $PATH, [$5]); do
+      IFS="$ac_save_IFS"
+      test -z "$ac_dir" && ac_dir=.
+      for ac_exec_ext in '' $ac_executable_extensions; do
+        if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+          if [$3]; then
+            ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
+            break 2
+          fi
+        fi
+      done
+    done
+    IFS="$ac_save_IFS"
+dnl If no 4th arg is given, leave the cache variable unset,
+dnl so AC_PATH_PROGS will keep looking.
+ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
+])dnl
+    ;;
+esac])dnl
+$1="$ac_cv_path_$1"
+if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
+  AC_MSG_RESULT([$]$1)
+else
+  AC_MSG_RESULT(no)
+fi
+AC_SUBST($1)dnl
+])
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/binary/Makefile.am b/framework/modules/c_LibExifModule/libexif-0.6.20/binary/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..067716b630c798b6e789d110b81549def7e766b2
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/binary/Makefile.am
@@ -0,0 +1,13 @@
+if SHIP_BINARIES
+
+EXTRA_DIST = include bin
+
+SH_DIST_HOOK = dist-ship-binary-hook
+dist-ship-binary-hook include bin:
+	cd "$(top_builddir)" && $(MAKE) includedir="$(PWD)/include" DESTDIR="" prefix="$(PWD)/tmp" install
+	mkdir -p "$(PWD)/bin"
+	cp "$(PWD)/tmp/bin/"*.dll "bin/"
+
+endif
+
+dist-hook: $(SH_DIST_HOOK)
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/config.guess b/framework/modules/c_LibExifModule/libexif-0.6.20/config.guess
new file mode 100644
index 0000000000000000000000000000000000000000..e3a2116a7dcd3d282cd95263d96fcbc6f5f42c7d
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/config.guess
@@ -0,0 +1,1533 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+#   Free Software Foundation, Inc.
+
+timestamp='2009-06-10'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# Originally written by Per Bothner <per@bothner.com>.
+# Please send patches to <config-patches@gnu.org>.  Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub.  If it succeeds, it prints the system name on stdout, and
+# exits with 0.  Otherwise, it exits with 1.
+#
+# The plan is that this can be called by configure scripts if you
+# don't specify an explicit build system type.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )	# Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help" >&2
+       exit 1 ;;
+    * )
+       break ;;
+  esac
+done
+
+if test $# != 0; then
+  echo "$me: too many arguments$help" >&2
+  exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,)    echo "int x;" > $dummy.c ;
+	for c in cc gcc c89 c99 ; do
+	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+	     CC_FOR_BUILD="$c"; break ;
+	  fi ;
+	done ;
+	if test x"$CC_FOR_BUILD" = x ; then
+	  CC_FOR_BUILD=no_compiler_found ;
+	fi
+	;;
+ ,,*)   CC_FOR_BUILD=$CC ;;
+ ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
+esac ; set_cc_for_build= ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+	PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+    *:NetBSD:*:*)
+	# NetBSD (nbsd) targets should (where applicable) match one or
+	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
+	# switched to ELF, *-*-netbsd* would select the old
+	# object file format.  This provides both forward
+	# compatibility and a consistent mechanism for selecting the
+	# object file format.
+	#
+	# Note: NetBSD doesn't particularly care about the vendor
+	# portion of the name.  We always set it to "unknown".
+	sysctl="sysctl -n hw.machine_arch"
+	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+	case "${UNAME_MACHINE_ARCH}" in
+	    armeb) machine=armeb-unknown ;;
+	    arm*) machine=arm-unknown ;;
+	    sh3el) machine=shl-unknown ;;
+	    sh3eb) machine=sh-unknown ;;
+	    sh5el) machine=sh5le-unknown ;;
+	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+	esac
+	# The Operating System including object format, if it has switched
+	# to ELF recently, or will in the future.
+	case "${UNAME_MACHINE_ARCH}" in
+	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+		eval $set_cc_for_build
+		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+			| grep -q __ELF__
+		then
+		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+		    # Return netbsd for either.  FIX?
+		    os=netbsd
+		else
+		    os=netbsdelf
+		fi
+		;;
+	    *)
+	        os=netbsd
+		;;
+	esac
+	# The OS release
+	# Debian GNU/NetBSD machines have a different userland, and
+	# thus, need a distinct triplet. However, they do not need
+	# kernel version information, so it can be replaced with a
+	# suitable tag, in the style of linux-gnu.
+	case "${UNAME_VERSION}" in
+	    Debian*)
+		release='-gnu'
+		;;
+	    *)
+		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+		;;
+	esac
+	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+	# contains redundant information, the shorter form:
+	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+	echo "${machine}-${os}${release}"
+	exit ;;
+    *:OpenBSD:*:*)
+	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+	exit ;;
+    *:ekkoBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+	exit ;;
+    *:SolidBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+	exit ;;
+    macppc:MirBSD:*:*)
+	echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+	exit ;;
+    *:MirBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+	exit ;;
+    alpha:OSF1:*:*)
+	case $UNAME_RELEASE in
+	*4.0)
+		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+		;;
+	*5.*)
+	        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+		;;
+	esac
+	# According to Compaq, /usr/sbin/psrinfo has been available on
+	# OSF/1 and Tru64 systems produced since 1995.  I hope that
+	# covers most systems running today.  This code pipes the CPU
+	# types through head -n 1, so we only detect the type of CPU 0.
+	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+	case "$ALPHA_CPU_TYPE" in
+	    "EV4 (21064)")
+		UNAME_MACHINE="alpha" ;;
+	    "EV4.5 (21064)")
+		UNAME_MACHINE="alpha" ;;
+	    "LCA4 (21066/21068)")
+		UNAME_MACHINE="alpha" ;;
+	    "EV5 (21164)")
+		UNAME_MACHINE="alphaev5" ;;
+	    "EV5.6 (21164A)")
+		UNAME_MACHINE="alphaev56" ;;
+	    "EV5.6 (21164PC)")
+		UNAME_MACHINE="alphapca56" ;;
+	    "EV5.7 (21164PC)")
+		UNAME_MACHINE="alphapca57" ;;
+	    "EV6 (21264)")
+		UNAME_MACHINE="alphaev6" ;;
+	    "EV6.7 (21264A)")
+		UNAME_MACHINE="alphaev67" ;;
+	    "EV6.8CB (21264C)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.8AL (21264B)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.8CX (21264D)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.9A (21264/EV69A)")
+		UNAME_MACHINE="alphaev69" ;;
+	    "EV7 (21364)")
+		UNAME_MACHINE="alphaev7" ;;
+	    "EV7.9 (21364A)")
+		UNAME_MACHINE="alphaev79" ;;
+	esac
+	# A Pn.n version is a patched version.
+	# A Vn.n version is a released version.
+	# A Tn.n version is a released field test version.
+	# A Xn.n version is an unreleased experimental baselevel.
+	# 1.2 uses "1.2" for uname -r.
+	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+	exit ;;
+    Alpha\ *:Windows_NT*:*)
+	# How do we know it's Interix rather than the generic POSIX subsystem?
+	# Should we change UNAME_MACHINE based on the output of uname instead
+	# of the specific Alpha model?
+	echo alpha-pc-interix
+	exit ;;
+    21064:Windows_NT:50:3)
+	echo alpha-dec-winnt3.5
+	exit ;;
+    Amiga*:UNIX_System_V:4.0:*)
+	echo m68k-unknown-sysv4
+	exit ;;
+    *:[Aa]miga[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-amigaos
+	exit ;;
+    *:[Mm]orph[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-morphos
+	exit ;;
+    *:OS/390:*:*)
+	echo i370-ibm-openedition
+	exit ;;
+    *:z/VM:*:*)
+	echo s390-ibm-zvmoe
+	exit ;;
+    *:OS400:*:*)
+        echo powerpc-ibm-os400
+	exit ;;
+    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+	echo arm-acorn-riscix${UNAME_RELEASE}
+	exit ;;
+    arm:riscos:*:*|arm:RISCOS:*:*)
+	echo arm-unknown-riscos
+	exit ;;
+    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+	echo hppa1.1-hitachi-hiuxmpp
+	exit ;;
+    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+	if test "`(/bin/universe) 2>/dev/null`" = att ; then
+		echo pyramid-pyramid-sysv3
+	else
+		echo pyramid-pyramid-bsd
+	fi
+	exit ;;
+    NILE*:*:*:dcosx)
+	echo pyramid-pyramid-svr4
+	exit ;;
+    DRS?6000:unix:4.0:6*)
+	echo sparc-icl-nx6
+	exit ;;
+    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+	case `/usr/bin/uname -p` in
+	    sparc) echo sparc-icl-nx7; exit ;;
+	esac ;;
+    s390x:SunOS:*:*)
+	echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4H:SunOS:5.*:*)
+	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+	eval $set_cc_for_build
+	SUN_ARCH="i386"
+	# If there is a compiler, see if it is configured for 64-bit objects.
+	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+	# This test works for both compilers.
+	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		grep IS_64BIT_ARCH >/dev/null
+	    then
+		SUN_ARCH="x86_64"
+	    fi
+	fi
+	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:6*:*)
+	# According to config.sub, this is the proper way to canonicalize
+	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
+	# it's likely to be more like Solaris than SunOS4.
+	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:*:*)
+	case "`/usr/bin/arch -k`" in
+	    Series*|S4*)
+		UNAME_RELEASE=`uname -v`
+		;;
+	esac
+	# Japanese Language versions have a version number like `4.1.3-JL'.
+	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+	exit ;;
+    sun3*:SunOS:*:*)
+	echo m68k-sun-sunos${UNAME_RELEASE}
+	exit ;;
+    sun*:*:4.2BSD:*)
+	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+	case "`/bin/arch`" in
+	    sun3)
+		echo m68k-sun-sunos${UNAME_RELEASE}
+		;;
+	    sun4)
+		echo sparc-sun-sunos${UNAME_RELEASE}
+		;;
+	esac
+	exit ;;
+    aushp:SunOS:*:*)
+	echo sparc-auspex-sunos${UNAME_RELEASE}
+	exit ;;
+    # The situation for MiNT is a little confusing.  The machine name
+    # can be virtually everything (everything which is not
+    # "atarist" or "atariste" at least should have a processor
+    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
+    # to the lowercase version "mint" (or "freemint").  Finally
+    # the system name "TOS" denotes a system which is actually not
+    # MiNT.  But MiNT is downward compatible to TOS, so this should
+    # be no problem.
+    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+	exit ;;
+    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+	echo m68k-atari-mint${UNAME_RELEASE}
+        exit ;;
+    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+	exit ;;
+    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+        echo m68k-milan-mint${UNAME_RELEASE}
+        exit ;;
+    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+        echo m68k-hades-mint${UNAME_RELEASE}
+        exit ;;
+    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+        echo m68k-unknown-mint${UNAME_RELEASE}
+        exit ;;
+    m68k:machten:*:*)
+	echo m68k-apple-machten${UNAME_RELEASE}
+	exit ;;
+    powerpc:machten:*:*)
+	echo powerpc-apple-machten${UNAME_RELEASE}
+	exit ;;
+    RISC*:Mach:*:*)
+	echo mips-dec-mach_bsd4.3
+	exit ;;
+    RISC*:ULTRIX:*:*)
+	echo mips-dec-ultrix${UNAME_RELEASE}
+	exit ;;
+    VAX*:ULTRIX*:*:*)
+	echo vax-dec-ultrix${UNAME_RELEASE}
+	exit ;;
+    2020:CLIX:*:* | 2430:CLIX:*:*)
+	echo clipper-intergraph-clix${UNAME_RELEASE}
+	exit ;;
+    mips:*:*:UMIPS | mips:*:*:RISCos)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h>  /* for printf() prototype */
+	int main (int argc, char *argv[]) {
+#else
+	int main (argc, argv) int argc; char *argv[]; {
+#endif
+	#if defined (host_mips) && defined (MIPSEB)
+	#if defined (SYSTYPE_SYSV)
+	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_SVR4)
+	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+	#endif
+	#endif
+	  exit (-1);
+	}
+EOF
+	$CC_FOR_BUILD -o $dummy $dummy.c &&
+	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+	  SYSTEM_NAME=`$dummy $dummyarg` &&
+	    { echo "$SYSTEM_NAME"; exit; }
+	echo mips-mips-riscos${UNAME_RELEASE}
+	exit ;;
+    Motorola:PowerMAX_OS:*:*)
+	echo powerpc-motorola-powermax
+	exit ;;
+    Motorola:*:4.3:PL8-*)
+	echo powerpc-harris-powermax
+	exit ;;
+    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+	echo powerpc-harris-powermax
+	exit ;;
+    Night_Hawk:Power_UNIX:*:*)
+	echo powerpc-harris-powerunix
+	exit ;;
+    m88k:CX/UX:7*:*)
+	echo m88k-harris-cxux7
+	exit ;;
+    m88k:*:4*:R4*)
+	echo m88k-motorola-sysv4
+	exit ;;
+    m88k:*:3*:R3*)
+	echo m88k-motorola-sysv3
+	exit ;;
+    AViiON:dgux:*:*)
+        # DG/UX returns AViiON for all architectures
+        UNAME_PROCESSOR=`/usr/bin/uname -p`
+	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+	then
+	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+	       [ ${TARGET_BINARY_INTERFACE}x = x ]
+	    then
+		echo m88k-dg-dgux${UNAME_RELEASE}
+	    else
+		echo m88k-dg-dguxbcs${UNAME_RELEASE}
+	    fi
+	else
+	    echo i586-dg-dgux${UNAME_RELEASE}
+	fi
+ 	exit ;;
+    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
+	echo m88k-dolphin-sysv3
+	exit ;;
+    M88*:*:R3*:*)
+	# Delta 88k system running SVR3
+	echo m88k-motorola-sysv3
+	exit ;;
+    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+	echo m88k-tektronix-sysv3
+	exit ;;
+    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+	echo m68k-tektronix-bsd
+	exit ;;
+    *:IRIX*:*:*)
+	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+	exit ;;
+    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
+	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
+    i*86:AIX:*:*)
+	echo i386-ibm-aix
+	exit ;;
+    ia64:AIX:*:*)
+	if [ -x /usr/bin/oslevel ] ; then
+		IBM_REV=`/usr/bin/oslevel`
+	else
+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+	fi
+	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+	exit ;;
+    *:AIX:2:3)
+	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+		eval $set_cc_for_build
+		sed 's/^		//' << EOF >$dummy.c
+		#include <sys/systemcfg.h>
+
+		main()
+			{
+			if (!__power_pc())
+				exit(1);
+			puts("powerpc-ibm-aix3.2.5");
+			exit(0);
+			}
+EOF
+		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+		then
+			echo "$SYSTEM_NAME"
+		else
+			echo rs6000-ibm-aix3.2.5
+		fi
+	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+		echo rs6000-ibm-aix3.2.4
+	else
+		echo rs6000-ibm-aix3.2
+	fi
+	exit ;;
+    *:AIX:*:[456])
+	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+		IBM_ARCH=rs6000
+	else
+		IBM_ARCH=powerpc
+	fi
+	if [ -x /usr/bin/oslevel ] ; then
+		IBM_REV=`/usr/bin/oslevel`
+	else
+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+	fi
+	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+	exit ;;
+    *:AIX:*:*)
+	echo rs6000-ibm-aix
+	exit ;;
+    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+	echo romp-ibm-bsd4.4
+	exit ;;
+    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
+	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
+	exit ;;                             # report: romp-ibm BSD 4.3
+    *:BOSX:*:*)
+	echo rs6000-bull-bosx
+	exit ;;
+    DPX/2?00:B.O.S.:*:*)
+	echo m68k-bull-sysv3
+	exit ;;
+    9000/[34]??:4.3bsd:1.*:*)
+	echo m68k-hp-bsd
+	exit ;;
+    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+	echo m68k-hp-bsd4.4
+	exit ;;
+    9000/[34678]??:HP-UX:*:*)
+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+	case "${UNAME_MACHINE}" in
+	    9000/31? )            HP_ARCH=m68000 ;;
+	    9000/[34]?? )         HP_ARCH=m68k ;;
+	    9000/[678][0-9][0-9])
+		if [ -x /usr/bin/getconf ]; then
+		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+                    case "${sc_cpu_version}" in
+                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+                      532)                      # CPU_PA_RISC2_0
+                        case "${sc_kernel_bits}" in
+                          32) HP_ARCH="hppa2.0n" ;;
+                          64) HP_ARCH="hppa2.0w" ;;
+			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
+                        esac ;;
+                    esac
+		fi
+		if [ "${HP_ARCH}" = "" ]; then
+		    eval $set_cc_for_build
+		    sed 's/^              //' << EOF >$dummy.c
+
+              #define _HPUX_SOURCE
+              #include <stdlib.h>
+              #include <unistd.h>
+
+              int main ()
+              {
+              #if defined(_SC_KERNEL_BITS)
+                  long bits = sysconf(_SC_KERNEL_BITS);
+              #endif
+                  long cpu  = sysconf (_SC_CPU_VERSION);
+
+                  switch (cpu)
+              	{
+              	case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+              	case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+              	case CPU_PA_RISC2_0:
+              #if defined(_SC_KERNEL_BITS)
+              	    switch (bits)
+              		{
+              		case 64: puts ("hppa2.0w"); break;
+              		case 32: puts ("hppa2.0n"); break;
+              		default: puts ("hppa2.0"); break;
+              		} break;
+              #else  /* !defined(_SC_KERNEL_BITS) */
+              	    puts ("hppa2.0"); break;
+              #endif
+              	default: puts ("hppa1.0"); break;
+              	}
+                  exit (0);
+              }
+EOF
+		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+		    test -z "$HP_ARCH" && HP_ARCH=hppa
+		fi ;;
+	esac
+	if [ ${HP_ARCH} = "hppa2.0w" ]
+	then
+	    eval $set_cc_for_build
+
+	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
+	    # generating 64-bit code.  GNU and HP use different nomenclature:
+	    #
+	    # $ CC_FOR_BUILD=cc ./config.guess
+	    # => hppa2.0w-hp-hpux11.23
+	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+	    # => hppa64-hp-hpux11.23
+
+	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+		grep -q __LP64__
+	    then
+		HP_ARCH="hppa2.0w"
+	    else
+		HP_ARCH="hppa64"
+	    fi
+	fi
+	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+	exit ;;
+    ia64:HP-UX:*:*)
+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+	echo ia64-hp-hpux${HPUX_REV}
+	exit ;;
+    3050*:HI-UX:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#include <unistd.h>
+	int
+	main ()
+	{
+	  long cpu = sysconf (_SC_CPU_VERSION);
+	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
+	     results, however.  */
+	  if (CPU_IS_PA_RISC (cpu))
+	    {
+	      switch (cpu)
+		{
+		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+		  default: puts ("hppa-hitachi-hiuxwe2"); break;
+		}
+	    }
+	  else if (CPU_IS_HP_MC68K (cpu))
+	    puts ("m68k-hitachi-hiuxwe2");
+	  else puts ("unknown-hitachi-hiuxwe2");
+	  exit (0);
+	}
+EOF
+	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+		{ echo "$SYSTEM_NAME"; exit; }
+	echo unknown-hitachi-hiuxwe2
+	exit ;;
+    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+	echo hppa1.1-hp-bsd
+	exit ;;
+    9000/8??:4.3bsd:*:*)
+	echo hppa1.0-hp-bsd
+	exit ;;
+    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+	echo hppa1.0-hp-mpeix
+	exit ;;
+    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+	echo hppa1.1-hp-osf
+	exit ;;
+    hp8??:OSF1:*:*)
+	echo hppa1.0-hp-osf
+	exit ;;
+    i*86:OSF1:*:*)
+	if [ -x /usr/sbin/sysversion ] ; then
+	    echo ${UNAME_MACHINE}-unknown-osf1mk
+	else
+	    echo ${UNAME_MACHINE}-unknown-osf1
+	fi
+	exit ;;
+    parisc*:Lites*:*:*)
+	echo hppa1.1-hp-lites
+	exit ;;
+    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+	echo c1-convex-bsd
+        exit ;;
+    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+	if getsysinfo -f scalar_acc
+	then echo c32-convex-bsd
+	else echo c2-convex-bsd
+	fi
+        exit ;;
+    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+	echo c34-convex-bsd
+        exit ;;
+    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+	echo c38-convex-bsd
+        exit ;;
+    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+	echo c4-convex-bsd
+        exit ;;
+    CRAY*Y-MP:*:*:*)
+	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*[A-Z]90:*:*:*)
+	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+	      -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*TS:*:*:*)
+	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*T3E:*:*:*)
+	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*SV1:*:*:*)
+	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    *:UNICOS/mp:*:*)
+	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+        exit ;;
+    5000:UNIX_System_V:4.*:*)
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+	exit ;;
+    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+	exit ;;
+    sparc*:BSD/OS:*:*)
+	echo sparc-unknown-bsdi${UNAME_RELEASE}
+	exit ;;
+    *:BSD/OS:*:*)
+	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+	exit ;;
+    *:FreeBSD:*:*)
+	case ${UNAME_MACHINE} in
+	    pc98)
+		echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	    amd64)
+		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	    *)
+		echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	esac
+	exit ;;
+    i*:CYGWIN*:*)
+	echo ${UNAME_MACHINE}-pc-cygwin
+	exit ;;
+    *:MINGW*:*)
+	echo ${UNAME_MACHINE}-pc-mingw32
+	exit ;;
+    i*:windows32*:*)
+    	# uname -m includes "-pc" on this system.
+    	echo ${UNAME_MACHINE}-mingw32
+	exit ;;
+    i*:PW*:*)
+	echo ${UNAME_MACHINE}-pc-pw32
+	exit ;;
+    *:Interix*:[3456]*)
+    	case ${UNAME_MACHINE} in
+	    x86)
+		echo i586-pc-interix${UNAME_RELEASE}
+		exit ;;
+	    EM64T | authenticamd | genuineintel)
+		echo x86_64-unknown-interix${UNAME_RELEASE}
+		exit ;;
+	    IA64)
+		echo ia64-unknown-interix${UNAME_RELEASE}
+		exit ;;
+	esac ;;
+    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+	echo i${UNAME_MACHINE}-pc-mks
+	exit ;;
+    8664:Windows_NT:*)
+	echo x86_64-pc-mks
+	exit ;;
+    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+	# How do we know it's Interix rather than the generic POSIX subsystem?
+	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+	# UNAME_MACHINE based on the output of uname instead of i386?
+	echo i586-pc-interix
+	exit ;;
+    i*:UWIN*:*)
+	echo ${UNAME_MACHINE}-pc-uwin
+	exit ;;
+    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+	echo x86_64-unknown-cygwin
+	exit ;;
+    p*:CYGWIN*:*)
+	echo powerpcle-unknown-cygwin
+	exit ;;
+    prep*:SunOS:5.*:*)
+	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    *:GNU:*:*)
+	# the GNU system
+	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+	exit ;;
+    *:GNU/*:*:*)
+	# other systems with GNU libc and userland
+	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+	exit ;;
+    i*86:Minix:*:*)
+	echo ${UNAME_MACHINE}-pc-minix
+	exit ;;
+    arm*:Linux:*:*)
+	eval $set_cc_for_build
+	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+	    | grep -q __ARM_EABI__
+	then
+	    echo ${UNAME_MACHINE}-unknown-linux-gnu
+	else
+	    echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+	fi
+	exit ;;
+    avr32*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    cris:Linux:*:*)
+	echo cris-axis-linux-gnu
+	exit ;;
+    crisv32:Linux:*:*)
+	echo crisv32-axis-linux-gnu
+	exit ;;
+    frv:Linux:*:*)
+    	echo frv-unknown-linux-gnu
+	exit ;;
+    ia64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    m32r*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    m68*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    mips:Linux:*:* | mips64:Linux:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#undef CPU
+	#undef ${UNAME_MACHINE}
+	#undef ${UNAME_MACHINE}el
+	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+	CPU=${UNAME_MACHINE}el
+	#else
+	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+	CPU=${UNAME_MACHINE}
+	#else
+	CPU=
+	#endif
+	#endif
+EOF
+	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+	    /^CPU/{
+		s: ::g
+		p
+	    }'`"
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+	;;
+    or32:Linux:*:*)
+	echo or32-unknown-linux-gnu
+	exit ;;
+    ppc:Linux:*:*)
+	echo powerpc-unknown-linux-gnu
+	exit ;;
+    ppc64:Linux:*:*)
+	echo powerpc64-unknown-linux-gnu
+	exit ;;
+    alpha:Linux:*:*)
+	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+	  EV5)   UNAME_MACHINE=alphaev5 ;;
+	  EV56)  UNAME_MACHINE=alphaev56 ;;
+	  PCA56) UNAME_MACHINE=alphapca56 ;;
+	  PCA57) UNAME_MACHINE=alphapca56 ;;
+	  EV6)   UNAME_MACHINE=alphaev6 ;;
+	  EV67)  UNAME_MACHINE=alphaev67 ;;
+	  EV68*) UNAME_MACHINE=alphaev68 ;;
+        esac
+	objdump --private-headers /bin/sh | grep -q ld.so.1
+	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+	exit ;;
+    padre:Linux:*:*)
+	echo sparc-unknown-linux-gnu
+	exit ;;
+    parisc:Linux:*:* | hppa:Linux:*:*)
+	# Look for CPU level
+	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
+	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
+	  *)    echo hppa-unknown-linux-gnu ;;
+	esac
+	exit ;;
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+	echo hppa64-unknown-linux-gnu
+	exit ;;
+    s390:Linux:*:* | s390x:Linux:*:*)
+	echo ${UNAME_MACHINE}-ibm-linux
+	exit ;;
+    sh64*:Linux:*:*)
+    	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    sh*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    sparc:Linux:*:* | sparc64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    vax:Linux:*:*)
+	echo ${UNAME_MACHINE}-dec-linux-gnu
+	exit ;;
+    x86_64:Linux:*:*)
+	echo x86_64-unknown-linux-gnu
+	exit ;;
+    xtensa*:Linux:*:*)
+    	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    i*86:Linux:*:*)
+	# The BFD linker knows what the default object file format is, so
+	# first see if it will tell us. cd to the root directory to prevent
+	# problems with other programs or directories called `ld' in the path.
+	# Set LC_ALL=C to ensure ld outputs messages in English.
+	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
+			 | sed -ne '/supported targets:/!d
+				    s/[ 	][ 	]*/ /g
+				    s/.*supported targets: *//
+				    s/ .*//
+				    p'`
+        case "$ld_supported_targets" in
+	  elf32-i386)
+		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
+		;;
+	esac
+	# Determine whether the default compiler is a.out or elf
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#include <features.h>
+	#ifdef __ELF__
+	# ifdef __GLIBC__
+	#  if __GLIBC__ >= 2
+	LIBC=gnu
+	#  else
+	LIBC=gnulibc1
+	#  endif
+	# else
+	LIBC=gnulibc1
+	# endif
+	#else
+	#if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
+	LIBC=gnu
+	#else
+	LIBC=gnuaout
+	#endif
+	#endif
+	#ifdef __dietlibc__
+	LIBC=dietlibc
+	#endif
+EOF
+	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+	    /^LIBC/{
+		s: ::g
+		p
+	    }'`"
+	test x"${LIBC}" != x && {
+		echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+		exit
+	}
+	test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
+	;;
+    i*86:DYNIX/ptx:4*:*)
+	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+	# earlier versions are messed up and put the nodename in both
+	# sysname and nodename.
+	echo i386-sequent-sysv4
+	exit ;;
+    i*86:UNIX_SV:4.2MP:2.*)
+        # Unixware is an offshoot of SVR4, but it has its own version
+        # number series starting with 2...
+        # I am not positive that other SVR4 systems won't match this,
+	# I just have to hope.  -- rms.
+        # Use sysv4.2uw... so that sysv4* matches it.
+	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+	exit ;;
+    i*86:OS/2:*:*)
+	# If we were able to find `uname', then EMX Unix compatibility
+	# is probably installed.
+	echo ${UNAME_MACHINE}-pc-os2-emx
+	exit ;;
+    i*86:XTS-300:*:STOP)
+	echo ${UNAME_MACHINE}-unknown-stop
+	exit ;;
+    i*86:atheos:*:*)
+	echo ${UNAME_MACHINE}-unknown-atheos
+	exit ;;
+    i*86:syllable:*:*)
+	echo ${UNAME_MACHINE}-pc-syllable
+	exit ;;
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
+	echo i386-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    i*86:*DOS:*:*)
+	echo ${UNAME_MACHINE}-pc-msdosdjgpp
+	exit ;;
+    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+	else
+		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+	fi
+	exit ;;
+    i*86:*:5:[678]*)
+    	# UnixWare 7.x, OpenUNIX and OpenServer 6.
+	case `/bin/uname -X | grep "^Machine"` in
+	    *486*)	     UNAME_MACHINE=i486 ;;
+	    *Pentium)	     UNAME_MACHINE=i586 ;;
+	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+	esac
+	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+	exit ;;
+    i*86:*:3.2:*)
+	if test -f /usr/options/cb.name; then
+		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+	elif /bin/uname -X 2>/dev/null >/dev/null ; then
+		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+			&& UNAME_MACHINE=i586
+		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+			&& UNAME_MACHINE=i686
+		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+			&& UNAME_MACHINE=i686
+		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+	else
+		echo ${UNAME_MACHINE}-pc-sysv32
+	fi
+	exit ;;
+    pc:*:*:*)
+	# Left here for compatibility:
+        # uname -m prints for DJGPP always 'pc', but it prints nothing about
+        # the processor, so we play safe by assuming i586.
+	# Note: whatever this is, it MUST be the same as what config.sub
+	# prints for the "djgpp" host, or else GDB configury will decide that
+	# this is a cross-build.
+	echo i586-pc-msdosdjgpp
+        exit ;;
+    Intel:Mach:3*:*)
+	echo i386-pc-mach3
+	exit ;;
+    paragon:*:*:*)
+	echo i860-intel-osf1
+	exit ;;
+    i860:*:4.*:*) # i860-SVR4
+	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+	else # Add other i860-SVR4 vendors below as they are discovered.
+	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
+	fi
+	exit ;;
+    mini*:CTIX:SYS*5:*)
+	# "miniframe"
+	echo m68010-convergent-sysv
+	exit ;;
+    mc68k:UNIX:SYSTEM5:3.51m)
+	echo m68k-convergent-sysv
+	exit ;;
+    M680?0:D-NIX:5.3:*)
+	echo m68k-diab-dnix
+	exit ;;
+    M68*:*:R3V[5678]*:*)
+	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+	OS_REL=''
+	test -r /etc/.relid \
+	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+          && { echo i486-ncr-sysv4; exit; } ;;
+    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+	OS_REL='.3'
+	test -r /etc/.relid \
+	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+	echo m68k-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    mc68030:UNIX_System_V:4.*:*)
+	echo m68k-atari-sysv4
+	exit ;;
+    TSUNAMI:LynxOS:2.*:*)
+	echo sparc-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    rs6000:LynxOS:2.*:*)
+	echo rs6000-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
+	echo powerpc-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    SM[BE]S:UNIX_SV:*:*)
+	echo mips-dde-sysv${UNAME_RELEASE}
+	exit ;;
+    RM*:ReliantUNIX-*:*:*)
+	echo mips-sni-sysv4
+	exit ;;
+    RM*:SINIX-*:*:*)
+	echo mips-sni-sysv4
+	exit ;;
+    *:SINIX-*:*:*)
+	if uname -p 2>/dev/null >/dev/null ; then
+		UNAME_MACHINE=`(uname -p) 2>/dev/null`
+		echo ${UNAME_MACHINE}-sni-sysv4
+	else
+		echo ns32k-sni-sysv
+	fi
+	exit ;;
+    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+                      # says <Richard.M.Bartel@ccMail.Census.GOV>
+        echo i586-unisys-sysv4
+        exit ;;
+    *:UNIX_System_V:4*:FTX*)
+	# From Gerald Hewes <hewes@openmarket.com>.
+	# How about differentiating between stratus architectures? -djm
+	echo hppa1.1-stratus-sysv4
+	exit ;;
+    *:*:*:FTX*)
+	# From seanf@swdc.stratus.com.
+	echo i860-stratus-sysv4
+	exit ;;
+    i*86:VOS:*:*)
+	# From Paul.Green@stratus.com.
+	echo ${UNAME_MACHINE}-stratus-vos
+	exit ;;
+    *:VOS:*:*)
+	# From Paul.Green@stratus.com.
+	echo hppa1.1-stratus-vos
+	exit ;;
+    mc68*:A/UX:*:*)
+	echo m68k-apple-aux${UNAME_RELEASE}
+	exit ;;
+    news*:NEWS-OS:6*:*)
+	echo mips-sony-newsos6
+	exit ;;
+    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+	if [ -d /usr/nec ]; then
+	        echo mips-nec-sysv${UNAME_RELEASE}
+	else
+	        echo mips-unknown-sysv${UNAME_RELEASE}
+	fi
+        exit ;;
+    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
+	echo powerpc-be-beos
+	exit ;;
+    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
+	echo powerpc-apple-beos
+	exit ;;
+    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
+	echo i586-pc-beos
+	exit ;;
+    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
+	echo i586-pc-haiku
+	exit ;;
+    SX-4:SUPER-UX:*:*)
+	echo sx4-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-5:SUPER-UX:*:*)
+	echo sx5-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-6:SUPER-UX:*:*)
+	echo sx6-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-7:SUPER-UX:*:*)
+	echo sx7-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-8:SUPER-UX:*:*)
+	echo sx8-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-8R:SUPER-UX:*:*)
+	echo sx8r-nec-superux${UNAME_RELEASE}
+	exit ;;
+    Power*:Rhapsody:*:*)
+	echo powerpc-apple-rhapsody${UNAME_RELEASE}
+	exit ;;
+    *:Rhapsody:*:*)
+	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+	exit ;;
+    *:Darwin:*:*)
+	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+	case $UNAME_PROCESSOR in
+	    unknown) UNAME_PROCESSOR=powerpc ;;
+	esac
+	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+	exit ;;
+    *:procnto*:*:* | *:QNX:[0123456789]*:*)
+	UNAME_PROCESSOR=`uname -p`
+	if test "$UNAME_PROCESSOR" = "x86"; then
+		UNAME_PROCESSOR=i386
+		UNAME_MACHINE=pc
+	fi
+	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+	exit ;;
+    *:QNX:*:4*)
+	echo i386-pc-qnx
+	exit ;;
+    NSE-?:NONSTOP_KERNEL:*:*)
+	echo nse-tandem-nsk${UNAME_RELEASE}
+	exit ;;
+    NSR-?:NONSTOP_KERNEL:*:*)
+	echo nsr-tandem-nsk${UNAME_RELEASE}
+	exit ;;
+    *:NonStop-UX:*:*)
+	echo mips-compaq-nonstopux
+	exit ;;
+    BS2000:POSIX*:*:*)
+	echo bs2000-siemens-sysv
+	exit ;;
+    DS/*:UNIX_System_V:*:*)
+	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+	exit ;;
+    *:Plan9:*:*)
+	# "uname -m" is not consistent, so use $cputype instead. 386
+	# is converted to i386 for consistency with other x86
+	# operating systems.
+	if test "$cputype" = "386"; then
+	    UNAME_MACHINE=i386
+	else
+	    UNAME_MACHINE="$cputype"
+	fi
+	echo ${UNAME_MACHINE}-unknown-plan9
+	exit ;;
+    *:TOPS-10:*:*)
+	echo pdp10-unknown-tops10
+	exit ;;
+    *:TENEX:*:*)
+	echo pdp10-unknown-tenex
+	exit ;;
+    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+	echo pdp10-dec-tops20
+	exit ;;
+    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+	echo pdp10-xkl-tops20
+	exit ;;
+    *:TOPS-20:*:*)
+	echo pdp10-unknown-tops20
+	exit ;;
+    *:ITS:*:*)
+	echo pdp10-unknown-its
+	exit ;;
+    SEI:*:*:SEIUX)
+        echo mips-sei-seiux${UNAME_RELEASE}
+	exit ;;
+    *:DragonFly:*:*)
+	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+	exit ;;
+    *:*VMS:*:*)
+    	UNAME_MACHINE=`(uname -p) 2>/dev/null`
+	case "${UNAME_MACHINE}" in
+	    A*) echo alpha-dec-vms ; exit ;;
+	    I*) echo ia64-dec-vms ; exit ;;
+	    V*) echo vax-dec-vms ; exit ;;
+	esac ;;
+    *:XENIX:*:SysV)
+	echo i386-pc-xenix
+	exit ;;
+    i*86:skyos:*:*)
+	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+	exit ;;
+    i*86:rdos:*:*)
+	echo ${UNAME_MACHINE}-pc-rdos
+	exit ;;
+    i*86:AROS:*:*)
+	echo ${UNAME_MACHINE}-pc-aros
+	exit ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
+     I don't know....  */
+  printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+  printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+          "4"
+#else
+	  ""
+#endif
+         ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+  printf ("arm-acorn-riscix\n"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+  printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+  int version;
+  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+  if (version < 4)
+    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+  else
+    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+  exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+  printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+  printf ("ns32k-encore-mach\n"); exit (0);
+#else
+  printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+  printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+  printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+  printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+    struct utsname un;
+
+    uname(&un);
+
+    if (strncmp(un.version, "V2", 2) == 0) {
+	printf ("i386-sequent-ptx2\n"); exit (0);
+    }
+    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+	printf ("i386-sequent-ptx1\n"); exit (0);
+    }
+    printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+#  include <sys/param.h>
+#  if defined (BSD)
+#   if BSD == 43
+      printf ("vax-dec-bsd4.3\n"); exit (0);
+#   else
+#    if BSD == 199006
+      printf ("vax-dec-bsd4.3reno\n"); exit (0);
+#    else
+      printf ("vax-dec-bsd\n"); exit (0);
+#    endif
+#   endif
+#  else
+    printf ("vax-dec-bsd\n"); exit (0);
+#  endif
+# else
+    printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+  printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+  exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+	{ echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+    case `getsysinfo -f cpu_type` in
+    c1*)
+	echo c1-convex-bsd
+	exit ;;
+    c2*)
+	if getsysinfo -f scalar_acc
+	then echo c32-convex-bsd
+	else echo c2-convex-bsd
+	fi
+	exit ;;
+    c34*)
+	echo c34-convex-bsd
+	exit ;;
+    c38*)
+	echo c38-convex-bsd
+	exit ;;
+    c4*)
+	echo c4-convex-bsd
+	exit ;;
+    esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+and
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches@gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo               = `(hostinfo) 2>/dev/null`
+/bin/universe          = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch              = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM  = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/config.rpath b/framework/modules/c_LibExifModule/libexif-0.6.20/config.rpath
new file mode 100644
index 0000000000000000000000000000000000000000..4db13e50f66ff3cb15db9f82394b13aa48a7d8e6
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/config.rpath
@@ -0,0 +1,548 @@
+#! /bin/sh
+# Output a system dependent set of variables, describing how to set the
+# run time search path of shared libraries in an executable.
+#
+#   Copyright 1996-2003 Free Software Foundation, Inc.
+#   Taken from GNU libtool, 2001
+#   Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+#   This program is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation; either version 2 of the License, or
+#   (at your option) any later version.
+#
+#   This program is distributed in the hope that it will be useful, but
+#   WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#   General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License
+#   along with this program; if not, write to the Free Software
+#   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#   As a special exception to the GNU General Public License, if you
+#   distribute this file as part of a program that contains a
+#   configuration script generated by Autoconf, you may include it under
+#   the same distribution terms that you use for the rest of that program.
+#
+# The first argument passed to this file is the canonical host specification,
+#    CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or
+#    CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
+# should be set by the caller.
+#
+# The set of defined variables is at the end of this script.
+
+# Known limitations:
+# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer
+#   than 256 bytes, otherwise the compiler driver will dump core. The only
+#   known workaround is to choose shorter directory names for the build
+#   directory and/or the installation directory.
+
+# All known linkers require a `.a' archive for static linking (except M$VC,
+# which needs '.lib').
+libext=a
+shrext=.so
+
+host="$1"
+host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC.
+
+wl=
+if test "$GCC" = yes; then
+  wl='-Wl,'
+else
+  case "$host_os" in
+    aix*)
+      wl='-Wl,'
+      ;;
+    mingw* | pw32* | os2*)
+      ;;
+    hpux9* | hpux10* | hpux11*)
+      wl='-Wl,'
+      ;;
+    irix5* | irix6* | nonstopux*)
+      wl='-Wl,'
+      ;;
+    newsos6)
+      ;;
+    linux*)
+      case $CC in
+        icc|ecc)
+          wl='-Wl,'
+          ;;
+        ccc)
+          wl='-Wl,'
+          ;;
+      esac
+      ;;
+    osf3* | osf4* | osf5*)
+      wl='-Wl,'
+      ;;
+    sco3.2v5*)
+      ;;
+    solaris*)
+      wl='-Wl,'
+      ;;
+    sunos4*)
+      wl='-Qoption ld '
+      ;;
+    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+      wl='-Wl,'
+      ;;
+    sysv4*MP*)
+      ;;
+    uts4*)
+      ;;
+  esac
+fi
+
+# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS.
+
+hardcode_libdir_flag_spec=
+hardcode_libdir_separator=
+hardcode_direct=no
+hardcode_minus_L=no
+
+case "$host_os" in
+  cygwin* | mingw* | pw32*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+esac
+
+ld_shlibs=yes
+if test "$with_gnu_ld" = yes; then
+  case "$host_os" in
+    aix3* | aix4* | aix5*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+        ld_shlibs=no
+      fi
+      ;;
+    amigaos*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+      # that the semantics of dynamic libraries on AmigaOS, at least up
+      # to version 4, is to share data among multiple programs linked
+      # with the same dynamic library.  Since this doesn't match the
+      # behavior of shared libraries on other platforms, we can use
+      # them.
+      ld_shlibs=no
+      ;;
+    beos*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+        :
+      else
+        ld_shlibs=no
+      fi
+      ;;
+    cygwin* | mingw* | pw32*)
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      hardcode_libdir_flag_spec='-L$libdir'
+      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+        :
+      else
+        ld_shlibs=no
+      fi
+      ;;
+    netbsd*)
+      ;;
+    solaris* | sysv5*)
+      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+        ld_shlibs=no
+      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+        :
+      else
+        ld_shlibs=no
+      fi
+      ;;
+    sunos4*)
+      hardcode_direct=yes
+      ;;
+    *)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+        :
+      else
+        ld_shlibs=no
+      fi
+      ;;
+  esac
+  if test "$ld_shlibs" = yes; then
+    # Unlike libtool, we use -rpath here, not --rpath, since the documented
+    # option of GNU ld is called -rpath, not --rpath.
+    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+  fi
+else
+  case "$host_os" in
+    aix3*)
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      hardcode_minus_L=yes
+      if test "$GCC" = yes; then
+        # Neither direct hardcoding nor static linking is supported with a
+        # broken collect2.
+        hardcode_direct=unsupported
+      fi
+      ;;
+    aix4* | aix5*)
+      if test "$host_cpu" = ia64; then
+        # On IA64, the linker does run time linking by default, so we don't
+        # have to do anything special.
+        aix_use_runtimelinking=no
+      else
+        aix_use_runtimelinking=no
+        # Test if we are trying to use run time linking or normal
+        # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+        # need to do runtime linking.
+        case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+          for ld_flag in $LDFLAGS; do
+            if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+              aix_use_runtimelinking=yes
+              break
+            fi
+          done
+        esac
+      fi
+      hardcode_direct=yes
+      hardcode_libdir_separator=':'
+      if test "$GCC" = yes; then
+        case $host_os in aix4.[012]|aix4.[012].*)
+          collect2name=`${CC} -print-prog-name=collect2`
+          if test -f "$collect2name" && \
+            strings "$collect2name" | grep resolve_lib_name >/dev/null
+          then
+            # We have reworked collect2
+            hardcode_direct=yes
+          else
+            # We have old collect2
+            hardcode_direct=unsupported
+            hardcode_minus_L=yes
+            hardcode_libdir_flag_spec='-L$libdir'
+            hardcode_libdir_separator=
+          fi
+        esac
+      fi
+      # Begin _LT_AC_SYS_LIBPATH_AIX.
+      echo 'int main () { return 0; }' > conftest.c
+      ${CC} ${LDFLAGS} conftest.c -o conftest
+      aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+      if test -z "$aix_libpath"; then
+        aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+      fi
+      if test -z "$aix_libpath"; then
+        aix_libpath="/usr/lib:/lib"
+      fi
+      rm -f conftest.c conftest
+      # End _LT_AC_SYS_LIBPATH_AIX.
+      if test "$aix_use_runtimelinking" = yes; then
+        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+      else
+        if test "$host_cpu" = ia64; then
+          hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+        else
+          hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+        fi
+      fi
+      ;;
+    amigaos*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      # see comment about different semantics on the GNU ld section
+      ld_shlibs=no
+      ;;
+    bsdi4*)
+      ;;
+    cygwin* | mingw* | pw32*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      hardcode_libdir_flag_spec=' '
+      libext=lib
+      ;;
+    darwin* | rhapsody*)
+      if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then
+        hardcode_direct=no
+      fi
+      ;;
+    dgux*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      ;;
+    freebsd1*)
+      ld_shlibs=no
+      ;;
+    freebsd2.2*)
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      ;;
+    freebsd2*)
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      ;;
+    freebsd*)
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      ;;
+    hpux9*)
+      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+      hardcode_libdir_separator=:
+      hardcode_direct=yes
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      hardcode_minus_L=yes
+      ;;
+    hpux10* | hpux11*)
+      if test "$with_gnu_ld" = no; then
+        case "$host_cpu" in
+          hppa*64*)
+            hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+            hardcode_libdir_separator=:
+            hardcode_direct=no
+            ;;
+          ia64*)
+            hardcode_libdir_flag_spec='-L$libdir'
+            hardcode_direct=no
+            # hardcode_minus_L: Not really in the search PATH,
+            # but as the default location of the library.
+            hardcode_minus_L=yes
+            ;;
+          *)
+            hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+            hardcode_libdir_separator=:
+            hardcode_direct=yes
+            # hardcode_minus_L: Not really in the search PATH,
+            # but as the default location of the library.
+            hardcode_minus_L=yes
+            ;;
+        esac
+      fi
+      ;;
+    irix5* | irix6* | nonstopux*)
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      ;;
+    netbsd*)
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      ;;
+    newsos6)
+      hardcode_direct=yes
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      ;;
+    openbsd*)
+      hardcode_direct=yes
+      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+        hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+      else
+        case "$host_os" in
+          openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+            hardcode_libdir_flag_spec='-R$libdir'
+            ;;
+          *)
+            hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+            ;;
+        esac
+      fi
+      ;;
+    os2*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      ;;
+    osf3*)
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      ;;
+    osf4* | osf5*)
+      if test "$GCC" = yes; then
+        hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      else
+        # Both cc and cxx compiler support -rpath directly
+        hardcode_libdir_flag_spec='-rpath $libdir'
+      fi
+      hardcode_libdir_separator=:
+      ;;
+    sco3.2v5*)
+      ;;
+    solaris*)
+      hardcode_libdir_flag_spec='-R$libdir'
+      ;;
+    sunos4*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      ;;
+    sysv4)
+      case $host_vendor in
+        sni)
+          hardcode_direct=yes # is this really true???
+          ;;
+        siemens)
+          hardcode_direct=no
+          ;;
+        motorola)
+          hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+          ;;
+      esac
+      ;;
+    sysv4.3*)
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+        ld_shlibs=yes
+      fi
+      ;;
+    sysv4.2uw2*)
+      hardcode_direct=yes
+      hardcode_minus_L=no
+      ;;
+    sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[78]* | unixware7*)
+      ;;
+    sysv5*)
+      hardcode_libdir_flag_spec=
+      ;;
+    uts4*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      ;;
+    *)
+      ld_shlibs=no
+      ;;
+  esac
+fi
+
+# Check dynamic linker characteristics
+# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER.
+libname_spec='lib$name'
+case "$host_os" in
+  aix3*)
+    ;;
+  aix4* | aix5*)
+    ;;
+  amigaos*)
+    ;;
+  beos*)
+    ;;
+  bsdi4*)
+    ;;
+  cygwin* | mingw* | pw32*)
+    shrext=.dll
+    ;;
+  darwin* | rhapsody*)
+    shrext=.dylib
+    ;;
+  dgux*)
+    ;;
+  freebsd1*)
+    ;;
+  freebsd*)
+    ;;
+  gnu*)
+    ;;
+  hpux9* | hpux10* | hpux11*)
+    case "$host_cpu" in
+      ia64*)
+        shrext=.so
+        ;;
+      hppa*64*)
+        shrext=.sl
+        ;;
+      *)
+        shrext=.sl
+        ;;
+    esac
+    ;;
+  irix5* | irix6* | nonstopux*)
+    case "$host_os" in
+      irix5* | nonstopux*)
+        libsuff= shlibsuff=
+        ;;
+      *)
+        case $LD in
+          *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;;
+          *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;;
+          *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;;
+          *) libsuff= shlibsuff= ;;
+        esac
+        ;;
+    esac
+    ;;
+  linux*oldld* | linux*aout* | linux*coff*)
+    ;;
+  linux*)
+    ;;
+  netbsd*)
+    ;;
+  newsos6)
+    ;;
+  nto-qnx)
+    ;;
+  openbsd*)
+    ;;
+  os2*)
+    libname_spec='$name'
+    shrext=.dll
+    ;;
+  osf3* | osf4* | osf5*)
+    ;;
+  sco3.2v5*)
+    ;;
+  solaris*)
+    ;;
+  sunos4*)
+    ;;
+  sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+    ;;
+  sysv4*MP*)
+    ;;
+  uts4*)
+    ;;
+esac
+
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
+shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
+escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+
+sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
+
+# How to pass a linker flag through the compiler.
+wl="$escaped_wl"
+
+# Static library suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally "so").
+shlibext="$shlibext"
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator="$hardcode_libdir_separator"
+
+# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct="$hardcode_direct"
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L="$hardcode_minus_L"
+
+EOF
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/config.sub b/framework/modules/c_LibExifModule/libexif-0.6.20/config.sub
new file mode 100644
index 0000000000000000000000000000000000000000..eb0389a693f35eb868f6b979d4ec781feda41d99
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/config.sub
@@ -0,0 +1,1693 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+#   Free Software Foundation, Inc.
+
+timestamp='2009-06-11'
+
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
+# can handle that machine.  It does not imply ALL GNU software can.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# Please send patches to <config-patches@gnu.org>.  Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support.  The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+       $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )	# Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help"
+       exit 1 ;;
+
+    *local*)
+       # First pass through any local machine types.
+       echo $1
+       exit ;;
+
+    * )
+       break ;;
+  esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+    exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+    exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
+  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+  kopensolaris*-gnu* | \
+  storm-chaos* | os2-emx* | rtmk-nova*)
+    os=-$maybe_os
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+    ;;
+  *)
+    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+    if [ $basic_machine != $1 ]
+    then os=`echo $1 | sed 's/.*-/-/'`
+    else os=; fi
+    ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work.  We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+	-sun*os*)
+		# Prevent following clause from handling this invalid input.
+		;;
+	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+	-apple | -axis | -knuth | -cray)
+		os=
+		basic_machine=$1
+		;;
+        -bluegene*)
+	        os=-cnk
+		;;
+	-sim | -cisco | -oki | -wec | -winbond)
+		os=
+		basic_machine=$1
+		;;
+	-scout)
+		;;
+	-wrs)
+		os=-vxworks
+		basic_machine=$1
+		;;
+	-chorusos*)
+		os=-chorusos
+		basic_machine=$1
+		;;
+ 	-chorusrdb)
+ 		os=-chorusrdb
+		basic_machine=$1
+ 		;;
+	-hiux*)
+		os=-hiuxwe2
+		;;
+	-sco6)
+		os=-sco5v6
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco5)
+		os=-sco3.2v5
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco4)
+		os=-sco3.2v4
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2.[4-9]*)
+		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2v[4-9]*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco5v6*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco*)
+		os=-sco3.2v2
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-udk*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-isc)
+		os=-isc2.2
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-clix*)
+		basic_machine=clipper-intergraph
+		;;
+	-isc*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-lynx*)
+		os=-lynxos
+		;;
+	-ptx*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+		;;
+	-windowsnt*)
+		os=`echo $os | sed -e 's/windowsnt/winnt/'`
+		;;
+	-psos*)
+		os=-psos
+		;;
+	-mint | -mint[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
+		;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+	# Recognize the basic CPU types without company name.
+	# Some are omitted here because they have special meanings below.
+	1750a | 580 \
+	| a29k \
+	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+	| am33_2.0 \
+	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+	| bfin \
+	| c4x | clipper \
+	| d10v | d30v | dlx | dsp16xx \
+	| fido | fr30 | frv \
+	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+	| i370 | i860 | i960 | ia64 \
+	| ip2k | iq2000 \
+	| lm32 \
+	| m32c | m32r | m32rle | m68000 | m68k | m88k \
+	| maxq | mb | microblaze | mcore | mep | metag \
+	| mips | mipsbe | mipseb | mipsel | mipsle \
+	| mips16 \
+	| mips64 | mips64el \
+	| mips64octeon | mips64octeonel \
+	| mips64orion | mips64orionel \
+	| mips64r5900 | mips64r5900el \
+	| mips64vr | mips64vrel \
+	| mips64vr4100 | mips64vr4100el \
+	| mips64vr4300 | mips64vr4300el \
+	| mips64vr5000 | mips64vr5000el \
+	| mips64vr5900 | mips64vr5900el \
+	| mipsisa32 | mipsisa32el \
+	| mipsisa32r2 | mipsisa32r2el \
+	| mipsisa64 | mipsisa64el \
+	| mipsisa64r2 | mipsisa64r2el \
+	| mipsisa64sb1 | mipsisa64sb1el \
+	| mipsisa64sr71k | mipsisa64sr71kel \
+	| mipstx39 | mipstx39el \
+	| mn10200 | mn10300 \
+	| moxie \
+	| mt \
+	| msp430 \
+	| nios | nios2 \
+	| ns16k | ns32k \
+	| or32 \
+	| pdp10 | pdp11 | pj | pjl \
+	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+	| pyramid \
+	| score \
+	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+	| sh64 | sh64le \
+	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+	| spu | strongarm \
+	| tahoe | thumb | tic4x | tic80 | tron \
+	| v850 | v850e \
+	| we32k \
+	| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
+	| z8k | z80)
+		basic_machine=$basic_machine-unknown
+		;;
+	m6811 | m68hc11 | m6812 | m68hc12)
+		# Motorola 68HC11/12.
+		basic_machine=$basic_machine-unknown
+		os=-none
+		;;
+	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+		;;
+	ms1)
+		basic_machine=mt-unknown
+		;;
+
+	# We use `pc' rather than `unknown'
+	# because (1) that's what they normally are, and
+	# (2) the word "unknown" tends to confuse beginning users.
+	i*86 | x86_64)
+	  basic_machine=$basic_machine-pc
+	  ;;
+	# Object if more than one company name word.
+	*-*-*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+	# Recognize the basic CPU types with company name.
+	580-* \
+	| a29k-* \
+	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
+	| avr-* | avr32-* \
+	| bfin-* | bs2000-* \
+	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
+	| clipper-* | craynv-* | cydra-* \
+	| d10v-* | d30v-* | dlx-* \
+	| elxsi-* \
+	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+	| h8300-* | h8500-* \
+	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+	| i*86-* | i860-* | i960-* | ia64-* \
+	| ip2k-* | iq2000-* \
+	| lm32-* \
+	| m32c-* | m32r-* | m32rle-* \
+	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+	| mips16-* \
+	| mips64-* | mips64el-* \
+	| mips64octeon-* | mips64octeonel-* \
+	| mips64orion-* | mips64orionel-* \
+	| mips64r5900-* | mips64r5900el-* \
+	| mips64vr-* | mips64vrel-* \
+	| mips64vr4100-* | mips64vr4100el-* \
+	| mips64vr4300-* | mips64vr4300el-* \
+	| mips64vr5000-* | mips64vr5000el-* \
+	| mips64vr5900-* | mips64vr5900el-* \
+	| mipsisa32-* | mipsisa32el-* \
+	| mipsisa32r2-* | mipsisa32r2el-* \
+	| mipsisa64-* | mipsisa64el-* \
+	| mipsisa64r2-* | mipsisa64r2el-* \
+	| mipsisa64sb1-* | mipsisa64sb1el-* \
+	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+	| mipstx39-* | mipstx39el-* \
+	| mmix-* \
+	| mt-* \
+	| msp430-* \
+	| nios-* | nios2-* \
+	| none-* | np1-* | ns16k-* | ns32k-* \
+	| orion-* \
+	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+	| pyramid-* \
+	| romp-* | rs6000-* \
+	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+	| sparclite-* \
+	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
+	| tahoe-* | thumb-* \
+	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
+	| tron-* \
+	| v850-* | v850e-* | vax-* \
+	| we32k-* \
+	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
+	| xstormy16-* | xtensa*-* \
+	| ymp-* \
+	| z8k-* | z80-*)
+		;;
+	# Recognize the basic CPU types without company name, with glob match.
+	xtensa*)
+		basic_machine=$basic_machine-unknown
+		;;
+	# Recognize the various machine names and aliases which stand
+	# for a CPU type and a company and sometimes even an OS.
+	386bsd)
+		basic_machine=i386-unknown
+		os=-bsd
+		;;
+	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+		basic_machine=m68000-att
+		;;
+	3b*)
+		basic_machine=we32k-att
+		;;
+	a29khif)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+    	abacus)
+		basic_machine=abacus-unknown
+		;;
+	adobe68k)
+		basic_machine=m68010-adobe
+		os=-scout
+		;;
+	alliant | fx80)
+		basic_machine=fx80-alliant
+		;;
+	altos | altos3068)
+		basic_machine=m68k-altos
+		;;
+	am29k)
+		basic_machine=a29k-none
+		os=-bsd
+		;;
+	amd64)
+		basic_machine=x86_64-pc
+		;;
+	amd64-*)
+		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	amdahl)
+		basic_machine=580-amdahl
+		os=-sysv
+		;;
+	amiga | amiga-*)
+		basic_machine=m68k-unknown
+		;;
+	amigaos | amigados)
+		basic_machine=m68k-unknown
+		os=-amigaos
+		;;
+	amigaunix | amix)
+		basic_machine=m68k-unknown
+		os=-sysv4
+		;;
+	apollo68)
+		basic_machine=m68k-apollo
+		os=-sysv
+		;;
+	apollo68bsd)
+		basic_machine=m68k-apollo
+		os=-bsd
+		;;
+	aros)
+		basic_machine=i386-pc
+		os=-aros
+		;;
+	aux)
+		basic_machine=m68k-apple
+		os=-aux
+		;;
+	balance)
+		basic_machine=ns32k-sequent
+		os=-dynix
+		;;
+	blackfin)
+		basic_machine=bfin-unknown
+		os=-linux
+		;;
+	blackfin-*)
+		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	bluegene*)
+		basic_machine=powerpc-ibm
+		os=-cnk
+		;;
+	c90)
+		basic_machine=c90-cray
+		os=-unicos
+		;;
+        cegcc)
+		basic_machine=arm-unknown
+		os=-cegcc
+		;;
+	convex-c1)
+		basic_machine=c1-convex
+		os=-bsd
+		;;
+	convex-c2)
+		basic_machine=c2-convex
+		os=-bsd
+		;;
+	convex-c32)
+		basic_machine=c32-convex
+		os=-bsd
+		;;
+	convex-c34)
+		basic_machine=c34-convex
+		os=-bsd
+		;;
+	convex-c38)
+		basic_machine=c38-convex
+		os=-bsd
+		;;
+	cray | j90)
+		basic_machine=j90-cray
+		os=-unicos
+		;;
+	craynv)
+		basic_machine=craynv-cray
+		os=-unicosmp
+		;;
+	cr16)
+		basic_machine=cr16-unknown
+		os=-elf
+		;;
+	crds | unos)
+		basic_machine=m68k-crds
+		;;
+	crisv32 | crisv32-* | etraxfs*)
+		basic_machine=crisv32-axis
+		;;
+	cris | cris-* | etrax*)
+		basic_machine=cris-axis
+		;;
+	crx)
+		basic_machine=crx-unknown
+		os=-elf
+		;;
+	da30 | da30-*)
+		basic_machine=m68k-da30
+		;;
+	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+		basic_machine=mips-dec
+		;;
+	decsystem10* | dec10*)
+		basic_machine=pdp10-dec
+		os=-tops10
+		;;
+	decsystem20* | dec20*)
+		basic_machine=pdp10-dec
+		os=-tops20
+		;;
+	delta | 3300 | motorola-3300 | motorola-delta \
+	      | 3300-motorola | delta-motorola)
+		basic_machine=m68k-motorola
+		;;
+	delta88)
+		basic_machine=m88k-motorola
+		os=-sysv3
+		;;
+	dicos)
+		basic_machine=i686-pc
+		os=-dicos
+		;;
+	djgpp)
+		basic_machine=i586-pc
+		os=-msdosdjgpp
+		;;
+	dpx20 | dpx20-*)
+		basic_machine=rs6000-bull
+		os=-bosx
+		;;
+	dpx2* | dpx2*-bull)
+		basic_machine=m68k-bull
+		os=-sysv3
+		;;
+	ebmon29k)
+		basic_machine=a29k-amd
+		os=-ebmon
+		;;
+	elxsi)
+		basic_machine=elxsi-elxsi
+		os=-bsd
+		;;
+	encore | umax | mmax)
+		basic_machine=ns32k-encore
+		;;
+	es1800 | OSE68k | ose68k | ose | OSE)
+		basic_machine=m68k-ericsson
+		os=-ose
+		;;
+	fx2800)
+		basic_machine=i860-alliant
+		;;
+	genix)
+		basic_machine=ns32k-ns
+		;;
+	gmicro)
+		basic_machine=tron-gmicro
+		os=-sysv
+		;;
+	go32)
+		basic_machine=i386-pc
+		os=-go32
+		;;
+	h3050r* | hiux*)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	h8300hms)
+		basic_machine=h8300-hitachi
+		os=-hms
+		;;
+	h8300xray)
+		basic_machine=h8300-hitachi
+		os=-xray
+		;;
+	h8500hms)
+		basic_machine=h8500-hitachi
+		os=-hms
+		;;
+	harris)
+		basic_machine=m88k-harris
+		os=-sysv3
+		;;
+	hp300-*)
+		basic_machine=m68k-hp
+		;;
+	hp300bsd)
+		basic_machine=m68k-hp
+		os=-bsd
+		;;
+	hp300hpux)
+		basic_machine=m68k-hp
+		os=-hpux
+		;;
+	hp3k9[0-9][0-9] | hp9[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hp9k2[0-9][0-9] | hp9k31[0-9])
+		basic_machine=m68000-hp
+		;;
+	hp9k3[2-9][0-9])
+		basic_machine=m68k-hp
+		;;
+	hp9k6[0-9][0-9] | hp6[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hp9k7[0-79][0-9] | hp7[0-79][0-9])
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k78[0-9] | hp78[0-9])
+		# FIXME: really hppa2.0-hp
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+		# FIXME: really hppa2.0-hp
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[0-9][13679] | hp8[0-9][13679])
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[0-9][0-9] | hp8[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hppa-next)
+		os=-nextstep3
+		;;
+	hppaosf)
+		basic_machine=hppa1.1-hp
+		os=-osf
+		;;
+	hppro)
+		basic_machine=hppa1.1-hp
+		os=-proelf
+		;;
+	i370-ibm* | ibm*)
+		basic_machine=i370-ibm
+		;;
+# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
+	i*86v32)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv32
+		;;
+	i*86v4*)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv4
+		;;
+	i*86v)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv
+		;;
+	i*86sol2)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-solaris2
+		;;
+	i386mach)
+		basic_machine=i386-mach
+		os=-mach
+		;;
+	i386-vsta | vsta)
+		basic_machine=i386-unknown
+		os=-vsta
+		;;
+	iris | iris4d)
+		basic_machine=mips-sgi
+		case $os in
+		    -irix*)
+			;;
+		    *)
+			os=-irix4
+			;;
+		esac
+		;;
+	isi68 | isi)
+		basic_machine=m68k-isi
+		os=-sysv
+		;;
+	m68knommu)
+		basic_machine=m68k-unknown
+		os=-linux
+		;;
+	m68knommu-*)
+		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	m88k-omron*)
+		basic_machine=m88k-omron
+		;;
+	magnum | m3230)
+		basic_machine=mips-mips
+		os=-sysv
+		;;
+	merlin)
+		basic_machine=ns32k-utek
+		os=-sysv
+		;;
+	mingw32)
+		basic_machine=i386-pc
+		os=-mingw32
+		;;
+	mingw32ce)
+		basic_machine=arm-unknown
+		os=-mingw32ce
+		;;
+	miniframe)
+		basic_machine=m68000-convergent
+		;;
+	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
+		;;
+	mips3*-*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+		;;
+	mips3*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+		;;
+	monitor)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
+	morphos)
+		basic_machine=powerpc-unknown
+		os=-morphos
+		;;
+	msdos)
+		basic_machine=i386-pc
+		os=-msdos
+		;;
+	ms1-*)
+		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+		;;
+	mvs)
+		basic_machine=i370-ibm
+		os=-mvs
+		;;
+	ncr3000)
+		basic_machine=i486-ncr
+		os=-sysv4
+		;;
+	netbsd386)
+		basic_machine=i386-unknown
+		os=-netbsd
+		;;
+	netwinder)
+		basic_machine=armv4l-rebel
+		os=-linux
+		;;
+	news | news700 | news800 | news900)
+		basic_machine=m68k-sony
+		os=-newsos
+		;;
+	news1000)
+		basic_machine=m68030-sony
+		os=-newsos
+		;;
+	news-3600 | risc-news)
+		basic_machine=mips-sony
+		os=-newsos
+		;;
+	necv70)
+		basic_machine=v70-nec
+		os=-sysv
+		;;
+	next | m*-next )
+		basic_machine=m68k-next
+		case $os in
+		    -nextstep* )
+			;;
+		    -ns2*)
+		      os=-nextstep2
+			;;
+		    *)
+		      os=-nextstep3
+			;;
+		esac
+		;;
+	nh3000)
+		basic_machine=m68k-harris
+		os=-cxux
+		;;
+	nh[45]000)
+		basic_machine=m88k-harris
+		os=-cxux
+		;;
+	nindy960)
+		basic_machine=i960-intel
+		os=-nindy
+		;;
+	mon960)
+		basic_machine=i960-intel
+		os=-mon960
+		;;
+	nonstopux)
+		basic_machine=mips-compaq
+		os=-nonstopux
+		;;
+	np1)
+		basic_machine=np1-gould
+		;;
+	nsr-tandem)
+		basic_machine=nsr-tandem
+		;;
+	op50n-* | op60c-*)
+		basic_machine=hppa1.1-oki
+		os=-proelf
+		;;
+	openrisc | openrisc-*)
+		basic_machine=or32-unknown
+		;;
+	os400)
+		basic_machine=powerpc-ibm
+		os=-os400
+		;;
+	OSE68000 | ose68000)
+		basic_machine=m68000-ericsson
+		os=-ose
+		;;
+	os68k)
+		basic_machine=m68k-none
+		os=-os68k
+		;;
+	pa-hitachi)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	paragon)
+		basic_machine=i860-intel
+		os=-osf
+		;;
+	parisc)
+		basic_machine=hppa-unknown
+		os=-linux
+		;;
+	parisc-*)
+		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	pbd)
+		basic_machine=sparc-tti
+		;;
+	pbb)
+		basic_machine=m68k-tti
+		;;
+	pc532 | pc532-*)
+		basic_machine=ns32k-pc532
+		;;
+	pc98)
+		basic_machine=i386-pc
+		;;
+	pc98-*)
+		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentium | p5 | k5 | k6 | nexgen | viac3)
+		basic_machine=i586-pc
+		;;
+	pentiumpro | p6 | 6x86 | athlon | athlon_*)
+		basic_machine=i686-pc
+		;;
+	pentiumii | pentium2 | pentiumiii | pentium3)
+		basic_machine=i686-pc
+		;;
+	pentium4)
+		basic_machine=i786-pc
+		;;
+	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumpro-* | p6-* | 6x86-* | athlon-*)
+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentium4-*)
+		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pn)
+		basic_machine=pn-gould
+		;;
+	power)	basic_machine=power-ibm
+		;;
+	ppc)	basic_machine=powerpc-unknown
+		;;
+	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppcle | powerpclittle | ppc-le | powerpc-little)
+		basic_machine=powerpcle-unknown
+		;;
+	ppcle-* | powerpclittle-*)
+		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppc64)	basic_machine=powerpc64-unknown
+		;;
+	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+		basic_machine=powerpc64le-unknown
+		;;
+	ppc64le-* | powerpc64little-*)
+		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ps2)
+		basic_machine=i386-ibm
+		;;
+	pw32)
+		basic_machine=i586-unknown
+		os=-pw32
+		;;
+	rdos)
+		basic_machine=i386-pc
+		os=-rdos
+		;;
+	rom68k)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
+	rm[46]00)
+		basic_machine=mips-siemens
+		;;
+	rtpc | rtpc-*)
+		basic_machine=romp-ibm
+		;;
+	s390 | s390-*)
+		basic_machine=s390-ibm
+		;;
+	s390x | s390x-*)
+		basic_machine=s390x-ibm
+		;;
+	sa29200)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	sb1)
+		basic_machine=mipsisa64sb1-unknown
+		;;
+	sb1el)
+		basic_machine=mipsisa64sb1el-unknown
+		;;
+	sde)
+		basic_machine=mipsisa32-sde
+		os=-elf
+		;;
+	sei)
+		basic_machine=mips-sei
+		os=-seiux
+		;;
+	sequent)
+		basic_machine=i386-sequent
+		;;
+	sh)
+		basic_machine=sh-hitachi
+		os=-hms
+		;;
+	sh5el)
+		basic_machine=sh5le-unknown
+		;;
+	sh64)
+		basic_machine=sh64-unknown
+		;;
+	sparclite-wrs | simso-wrs)
+		basic_machine=sparclite-wrs
+		os=-vxworks
+		;;
+	sps7)
+		basic_machine=m68k-bull
+		os=-sysv2
+		;;
+	spur)
+		basic_machine=spur-unknown
+		;;
+	st2000)
+		basic_machine=m68k-tandem
+		;;
+	stratus)
+		basic_machine=i860-stratus
+		os=-sysv4
+		;;
+	sun2)
+		basic_machine=m68000-sun
+		;;
+	sun2os3)
+		basic_machine=m68000-sun
+		os=-sunos3
+		;;
+	sun2os4)
+		basic_machine=m68000-sun
+		os=-sunos4
+		;;
+	sun3os3)
+		basic_machine=m68k-sun
+		os=-sunos3
+		;;
+	sun3os4)
+		basic_machine=m68k-sun
+		os=-sunos4
+		;;
+	sun4os3)
+		basic_machine=sparc-sun
+		os=-sunos3
+		;;
+	sun4os4)
+		basic_machine=sparc-sun
+		os=-sunos4
+		;;
+	sun4sol2)
+		basic_machine=sparc-sun
+		os=-solaris2
+		;;
+	sun3 | sun3-*)
+		basic_machine=m68k-sun
+		;;
+	sun4)
+		basic_machine=sparc-sun
+		;;
+	sun386 | sun386i | roadrunner)
+		basic_machine=i386-sun
+		;;
+	sv1)
+		basic_machine=sv1-cray
+		os=-unicos
+		;;
+	symmetry)
+		basic_machine=i386-sequent
+		os=-dynix
+		;;
+	t3e)
+		basic_machine=alphaev5-cray
+		os=-unicos
+		;;
+	t90)
+		basic_machine=t90-cray
+		os=-unicos
+		;;
+	tic54x | c54x*)
+		basic_machine=tic54x-unknown
+		os=-coff
+		;;
+	tic55x | c55x*)
+		basic_machine=tic55x-unknown
+		os=-coff
+		;;
+	tic6x | c6x*)
+		basic_machine=tic6x-unknown
+		os=-coff
+		;;
+	tile*)
+		basic_machine=tile-unknown
+		os=-linux-gnu
+		;;
+	tx39)
+		basic_machine=mipstx39-unknown
+		;;
+	tx39el)
+		basic_machine=mipstx39el-unknown
+		;;
+	toad1)
+		basic_machine=pdp10-xkl
+		os=-tops20
+		;;
+	tower | tower-32)
+		basic_machine=m68k-ncr
+		;;
+	tpf)
+		basic_machine=s390x-ibm
+		os=-tpf
+		;;
+	udi29k)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	ultra3)
+		basic_machine=a29k-nyu
+		os=-sym1
+		;;
+	v810 | necv810)
+		basic_machine=v810-nec
+		os=-none
+		;;
+	vaxv)
+		basic_machine=vax-dec
+		os=-sysv
+		;;
+	vms)
+		basic_machine=vax-dec
+		os=-vms
+		;;
+	vpp*|vx|vx-*)
+		basic_machine=f301-fujitsu
+		;;
+	vxworks960)
+		basic_machine=i960-wrs
+		os=-vxworks
+		;;
+	vxworks68)
+		basic_machine=m68k-wrs
+		os=-vxworks
+		;;
+	vxworks29k)
+		basic_machine=a29k-wrs
+		os=-vxworks
+		;;
+	w65*)
+		basic_machine=w65-wdc
+		os=-none
+		;;
+	w89k-*)
+		basic_machine=hppa1.1-winbond
+		os=-proelf
+		;;
+	xbox)
+		basic_machine=i686-pc
+		os=-mingw32
+		;;
+	xps | xps100)
+		basic_machine=xps100-honeywell
+		;;
+	ymp)
+		basic_machine=ymp-cray
+		os=-unicos
+		;;
+	z8k-*-coff)
+		basic_machine=z8k-unknown
+		os=-sim
+		;;
+	z80-*-coff)
+		basic_machine=z80-unknown
+		os=-sim
+		;;
+	none)
+		basic_machine=none-none
+		os=-none
+		;;
+
+# Here we handle the default manufacturer of certain CPU types.  It is in
+# some cases the only manufacturer, in others, it is the most popular.
+	w89k)
+		basic_machine=hppa1.1-winbond
+		;;
+	op50n)
+		basic_machine=hppa1.1-oki
+		;;
+	op60c)
+		basic_machine=hppa1.1-oki
+		;;
+	romp)
+		basic_machine=romp-ibm
+		;;
+	mmix)
+		basic_machine=mmix-knuth
+		;;
+	rs6000)
+		basic_machine=rs6000-ibm
+		;;
+	vax)
+		basic_machine=vax-dec
+		;;
+	pdp10)
+		# there are many clones, so DEC is not a safe bet
+		basic_machine=pdp10-unknown
+		;;
+	pdp11)
+		basic_machine=pdp11-dec
+		;;
+	we32k)
+		basic_machine=we32k-att
+		;;
+	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
+		basic_machine=sh-unknown
+		;;
+	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
+		basic_machine=sparc-sun
+		;;
+	cydra)
+		basic_machine=cydra-cydrome
+		;;
+	orion)
+		basic_machine=orion-highlevel
+		;;
+	orion105)
+		basic_machine=clipper-highlevel
+		;;
+	mac | mpw | mac-mpw)
+		basic_machine=m68k-apple
+		;;
+	pmac | pmac-mpw)
+		basic_machine=powerpc-apple
+		;;
+	*-unknown)
+		# Make sure to match an already-canonicalized machine name.
+		;;
+	*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+	*-digital*)
+		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+		;;
+	*-commodore*)
+		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+		;;
+	*)
+		;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+        # First match some system type aliases
+        # that might get confused with valid system types.
+	# -solaris* is a basic system type, with this one exception.
+	-solaris1 | -solaris1.*)
+		os=`echo $os | sed -e 's|solaris1|sunos4|'`
+		;;
+	-solaris)
+		os=-solaris2
+		;;
+	-svr4*)
+		os=-sysv4
+		;;
+	-unixware*)
+		os=-sysv4.2uw
+		;;
+	-gnu/linux*)
+		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+		;;
+	# First accept the basic system types.
+	# The portable systems comes first.
+	# Each alternative MUST END IN A *, to match a version number.
+	# -sysv* is not here because it comes later, after sysvr4.
+	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+	      | -kopensolaris* \
+	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+	      | -aos* | -aros* \
+	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+	      | -openbsd* | -solidbsd* \
+	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+	      | -chorusos* | -chorusrdb* | -cegcc* \
+	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+	      | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
+	      | -uxpv* | -beos* | -mpeix* | -udk* \
+	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
+	# Remember, each alternative MUST END IN *, to match a version number.
+		;;
+	-qnx*)
+		case $basic_machine in
+		    x86-* | i*86-*)
+			;;
+		    *)
+			os=-nto$os
+			;;
+		esac
+		;;
+	-nto-qnx*)
+		;;
+	-nto*)
+		os=`echo $os | sed -e 's|nto|nto-qnx|'`
+		;;
+	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+		;;
+	-mac*)
+		os=`echo $os | sed -e 's|mac|macos|'`
+		;;
+	-linux-dietlibc)
+		os=-linux-dietlibc
+		;;
+	-linux*)
+		os=`echo $os | sed -e 's|linux|linux-gnu|'`
+		;;
+	-sunos5*)
+		os=`echo $os | sed -e 's|sunos5|solaris2|'`
+		;;
+	-sunos6*)
+		os=`echo $os | sed -e 's|sunos6|solaris3|'`
+		;;
+	-opened*)
+		os=-openedition
+		;;
+        -os400*)
+		os=-os400
+		;;
+	-wince*)
+		os=-wince
+		;;
+	-osfrose*)
+		os=-osfrose
+		;;
+	-osf*)
+		os=-osf
+		;;
+	-utek*)
+		os=-bsd
+		;;
+	-dynix*)
+		os=-bsd
+		;;
+	-acis*)
+		os=-aos
+		;;
+	-atheos*)
+		os=-atheos
+		;;
+	-syllable*)
+		os=-syllable
+		;;
+	-386bsd)
+		os=-bsd
+		;;
+	-ctix* | -uts*)
+		os=-sysv
+		;;
+	-nova*)
+		os=-rtmk-nova
+		;;
+	-ns2 )
+		os=-nextstep2
+		;;
+	-nsk*)
+		os=-nsk
+		;;
+	# Preserve the version number of sinix5.
+	-sinix5.*)
+		os=`echo $os | sed -e 's|sinix|sysv|'`
+		;;
+	-sinix*)
+		os=-sysv4
+		;;
+        -tpf*)
+		os=-tpf
+		;;
+	-triton*)
+		os=-sysv3
+		;;
+	-oss*)
+		os=-sysv3
+		;;
+	-svr4)
+		os=-sysv4
+		;;
+	-svr3)
+		os=-sysv3
+		;;
+	-sysvr4)
+		os=-sysv4
+		;;
+	# This must come after -sysvr4.
+	-sysv*)
+		;;
+	-ose*)
+		os=-ose
+		;;
+	-es1800*)
+		os=-ose
+		;;
+	-xenix)
+		os=-xenix
+		;;
+	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+		os=-mint
+		;;
+	-aros*)
+		os=-aros
+		;;
+	-kaos*)
+		os=-kaos
+		;;
+	-zvmoe)
+		os=-zvmoe
+		;;
+	-dicos*)
+		os=-dicos
+		;;
+	-none)
+		;;
+	*)
+		# Get rid of the `-' at the beginning of $os.
+		os=`echo $os | sed 's/[^-]*-//'`
+		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+		exit 1
+		;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system.  Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+        score-*)
+		os=-elf
+		;;
+        spu-*)
+		os=-elf
+		;;
+	*-acorn)
+		os=-riscix1.2
+		;;
+	arm*-rebel)
+		os=-linux
+		;;
+	arm*-semi)
+		os=-aout
+		;;
+        c4x-* | tic4x-*)
+        	os=-coff
+		;;
+	# This must come before the *-dec entry.
+	pdp10-*)
+		os=-tops20
+		;;
+	pdp11-*)
+		os=-none
+		;;
+	*-dec | vax-*)
+		os=-ultrix4.2
+		;;
+	m68*-apollo)
+		os=-domain
+		;;
+	i386-sun)
+		os=-sunos4.0.2
+		;;
+	m68000-sun)
+		os=-sunos3
+		# This also exists in the configure program, but was not the
+		# default.
+		# os=-sunos4
+		;;
+	m68*-cisco)
+		os=-aout
+		;;
+        mep-*)
+		os=-elf
+		;;
+	mips*-cisco)
+		os=-elf
+		;;
+	mips*-*)
+		os=-elf
+		;;
+	or32-*)
+		os=-coff
+		;;
+	*-tti)	# must be before sparc entry or we get the wrong os.
+		os=-sysv3
+		;;
+	sparc-* | *-sun)
+		os=-sunos4.1.1
+		;;
+	*-be)
+		os=-beos
+		;;
+	*-haiku)
+		os=-haiku
+		;;
+	*-ibm)
+		os=-aix
+		;;
+    	*-knuth)
+		os=-mmixware
+		;;
+	*-wec)
+		os=-proelf
+		;;
+	*-winbond)
+		os=-proelf
+		;;
+	*-oki)
+		os=-proelf
+		;;
+	*-hp)
+		os=-hpux
+		;;
+	*-hitachi)
+		os=-hiux
+		;;
+	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+		os=-sysv
+		;;
+	*-cbm)
+		os=-amigaos
+		;;
+	*-dg)
+		os=-dgux
+		;;
+	*-dolphin)
+		os=-sysv3
+		;;
+	m68k-ccur)
+		os=-rtu
+		;;
+	m88k-omron*)
+		os=-luna
+		;;
+	*-next )
+		os=-nextstep
+		;;
+	*-sequent)
+		os=-ptx
+		;;
+	*-crds)
+		os=-unos
+		;;
+	*-ns)
+		os=-genix
+		;;
+	i370-*)
+		os=-mvs
+		;;
+	*-next)
+		os=-nextstep3
+		;;
+	*-gould)
+		os=-sysv
+		;;
+	*-highlevel)
+		os=-bsd
+		;;
+	*-encore)
+		os=-bsd
+		;;
+	*-sgi)
+		os=-irix
+		;;
+	*-siemens)
+		os=-sysv4
+		;;
+	*-masscomp)
+		os=-rtu
+		;;
+	f30[01]-fujitsu | f700-fujitsu)
+		os=-uxpv
+		;;
+	*-rom68k)
+		os=-coff
+		;;
+	*-*bug)
+		os=-coff
+		;;
+	*-apple)
+		os=-macos
+		;;
+	*-atari*)
+		os=-mint
+		;;
+	*)
+		os=-none
+		;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer.  We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+	*-unknown)
+		case $os in
+			-riscix*)
+				vendor=acorn
+				;;
+			-sunos*)
+				vendor=sun
+				;;
+			-cnk*|-aix*)
+				vendor=ibm
+				;;
+			-beos*)
+				vendor=be
+				;;
+			-hpux*)
+				vendor=hp
+				;;
+			-mpeix*)
+				vendor=hp
+				;;
+			-hiux*)
+				vendor=hitachi
+				;;
+			-unos*)
+				vendor=crds
+				;;
+			-dgux*)
+				vendor=dg
+				;;
+			-luna*)
+				vendor=omron
+				;;
+			-genix*)
+				vendor=ns
+				;;
+			-mvs* | -opened*)
+				vendor=ibm
+				;;
+			-os400*)
+				vendor=ibm
+				;;
+			-ptx*)
+				vendor=sequent
+				;;
+			-tpf*)
+				vendor=ibm
+				;;
+			-vxsim* | -vxworks* | -windiss*)
+				vendor=wrs
+				;;
+			-aux*)
+				vendor=apple
+				;;
+			-hms*)
+				vendor=hitachi
+				;;
+			-mpw* | -macos*)
+				vendor=apple
+				;;
+			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+				vendor=atari
+				;;
+			-vos*)
+				vendor=stratus
+				;;
+		esac
+		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+		;;
+esac
+
+echo $basic_machine$os
+exit
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/configure.ac b/framework/modules/c_LibExifModule/libexif-0.6.20/configure.ac
new file mode 100644
index 0000000000000000000000000000000000000000..ba5af2a4786a1a4b191b53a58bbedff8e4b72d69
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/configure.ac
@@ -0,0 +1,234 @@
+AC_PREREQ(2.59)
+AC_INIT([EXIF library], [0.6.20], [libexif-devel@lists.sourceforge.net], [libexif])
+AC_CONFIG_SRCDIR([libexif/exif-data.h])
+AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_MACRO_DIR([auto-m4])
+AM_INIT_AUTOMAKE([-Wall gnu 1.9 dist-bzip2 dist-zip check-news])
+AM_MAINTAINER_MODE
+
+# Use the silent-rules feature when possible.
+m4_ifndef([AM_SILENT_RULES], [m4_define([AM_SILENT_RULES],[])])
+AM_SILENT_RULES([no])
+
+if test ! -d "$srcdir/m4m"; then
+AC_MSG_ERROR([
+You are missing the m4m/ directory in your top
+$PACKAGE_TARNAME source directory.
+
+You are probably using an ill-maintained CVS tree.
+Running
+
+    cd $srcdir
+    cvs co m4m
+
+and re-running autogen.sh might help.
+])
+fi
+
+GP_CHECK_SHELL_ENVIRONMENT
+GP_CONFIG_MSG([Build])
+GP_CONFIG_MSG([Source code location],[${srcdir}])
+
+dnl ---------------------------------------------------------------------------
+dnl Advanced information about versioning:
+dnl   * "Writing shared libraries" by Mike Hearn
+dnl         http://plan99.net/~mike/writing-shared-libraries.html
+dnl   * libtool.info chapter "Versioning"
+dnl   * libtool.info chapter "Updating library version information"
+dnl ---------------------------------------------------------------------------
+dnl Versioning:
+dnl  - CURRENT (Major):  Increment if the interface has changes. AGE is always
+dnl                      *changed* at the same time.
+dnl  - AGE (Micro):      Increment if any interfaces have been added; set to 0
+dnl		         if any interfaces have been removed. Removal has 
+dnl                      precedence over adding, so set to 0 if both happened.
+dnl                      It denotes upward compatibility.
+dnl  - REVISION (Minor): Increment any time the source changes; set to 
+dnl			 0 if you incremented CURRENT.
+dnl
+dnl  To summarize. Any interface *change* increment CURRENT. If that interface
+dnl  change does not break upward compatibility (ie it is an addition), 
+dnl  increment AGE, Otherwise AGE is reset to 0. If CURRENT has changed, 
+dnl  REVISION is set to 0, otherwise REVISION is incremented.
+dnl ---------------------------------------------------------------------------
+dnl C:A:R
+dnl 12:0:1   0.6.13
+dnl 13:1:0   added EXIF_DATA_OPTION_DONT_CHANGE_MAKER_NOTE (for 0.6.14)
+dnl 14:2:0   added XP_ WinXP tags (for 0.6.15)
+dnl 14:2:1   0.6.17
+dnl 15:3:0   added exif_loader_get_buf (for 0.6.18)
+dnl 15:3:1   0.6.19
+dnl 15:3:2   0.6.20
+LIBEXIF_CURRENT=15
+LIBEXIF_AGE=3
+LIBEXIF_REVISION=2
+AC_SUBST([LIBEXIF_AGE])
+AC_SUBST([LIBEXIF_REVISION])
+AC_SUBST([LIBEXIF_CURRENT])
+AC_SUBST([LIBEXIF_CURRENT_MIN],[`expr $LIBEXIF_CURRENT - $LIBEXIF_AGE`])
+LIBEXIF_VERSION_INFO="$LIBEXIF_CURRENT:$LIBEXIF_REVISION:$LIBEXIF_AGE"
+AC_SUBST([LIBEXIF_VERSION_INFO])
+
+AC_PROG_CC
+AC_C_CONST
+AC_C_INLINE
+dnl FIXME: AC_LIBTOOL_WIN32_DLL
+AM_PROG_LIBTOOL
+AM_CPPFLAGS="$CPPFLAGS"
+GP_CONFIG_MSG([Compiler],[${CC}])
+
+
+dnl Create a stdint.h-like file containing size-specific integer definitions
+dnl that will always be available
+AX_NEED_STDINT_H([libexif/_stdint.h])
+
+
+dnl ------------------------------------------------------------------------
+dnl Whether we're supposed to ship binaries in the tarball
+dnl ------------------------------------------------------------------------
+
+ship_binaries=false
+AC_ARG_ENABLE([ship-binaries],
+[AS_HELP_STRING([--enable-ship-binaries],
+[Whether to ship binaries in the tarball [default=no]])],[
+	if test x$enableval = xyes; then
+		ship_binaries=true
+	fi
+])
+AM_CONDITIONAL([SHIP_BINARIES],[$ship_binaries])
+GP_CONFIG_MSG([Ship binaries in tarball],[$ship_binaries])
+
+
+dnl ---------------------------------------------------------------------------
+dnl Whether -lm is required for our math functions
+dnl ---------------------------------------------------------------------------
+
+# we need sqrt and pow which may be in libm
+# We cannot use AC_CHECK_FUNC because if CFLAGS contains
+# -Wall -Werror here the check fails because
+# char *sqrt() conflicts with double sqrt(double xx)
+
+# Start by assuming -lm is needed, because it's possible that the little
+# test program below will be optimized to in-line floating point code that
+# doesn't require -lm, whereas the library itself cannot be so optimized
+# (this actually seems to be the case on x86 with gcc 4.2). Assuming the
+# reverse means that -lm could be needed but wouldn't be detected below.
+
+LIBS_orig="$LIBS"
+LIBS="$LIBS -lm"
+AC_MSG_CHECKING([for math functions in libm])
+AC_LINK_IFELSE([
+	#include <math.h>
+	int main() {
+	  double s = sqrt(0);
+	  double p = pow(s,s);
+	  return (int)p;
+	}
+], [AC_MSG_RESULT(yes)], [
+	AC_MSG_RESULT(no)
+	LIBS="$LIBS_orig"
+	AC_MSG_CHECKING([for math functions without libm])
+	AC_LINK_IFELSE([
+		#include <math.h>
+		int main() {
+		  double s = sqrt(0);
+		  double p = pow(s,s);
+		  return (int)p;
+		}
+	], [
+		AC_MSG_RESULT(yes)
+	],[
+		AC_MSG_RESULT(no)
+		AC_MSG_ERROR([*** Could not find sqrt() & pow() functions])
+	])
+])
+
+# doc support
+GP_CHECK_DOC_DIR
+GP_CHECK_DOXYGEN
+
+# Whether to enable the internal docs build.
+#
+# This takes quite some time due to the generation of lots of call
+# graphs, so it is disabled by default.
+set_enable_internal_docs=no
+AC_ARG_ENABLE([internal-docs], [dnl
+AS_HELP_STRING([--enable-internal-docs], 
+[Build internal code docs if doxygen available])], [dnl
+dnl If either --enable-foo nor --disable-foo were given, execute this.
+  if   test "x$enableval" = xno \
+    || test "x$enableval" = xoff \
+    || test "x$enableval" = xfalse; 
+  then
+    set_enable_internal_docs=no
+  elif test "x$enableval" = xyes \
+    || test "x$enableval" = xon \
+    || test "x$enableval" = xtrue
+  then
+    set_enable_internal_docs=yes
+  fi
+])
+AC_MSG_CHECKING([whether to create internal code docs])
+AC_MSG_RESULT([${set_enable_internal_docs}])
+AM_CONDITIONAL([ENABLE_INTERNAL_DOCS], [test "x${set_enable_internal_docs}" = "xyes"])
+
+
+# ---------------------------------------------------------------------------
+# i18n support
+# ---------------------------------------------------------------------------
+ALL_LINGUAS="be bs cs da de en_CA en_GB es fr it ja nl pl pt pt_BR ru sk sq sr sv tr vi zh_CN"
+AM_PO_SUBDIRS
+GP_GETTEXT_HACK([${PACKAGE}-${LIBEXIF_CURRENT_MIN}],
+                [Lutz Mueller and others])
+AM_GNU_GETTEXT_VERSION([0.14.1])
+AM_GNU_GETTEXT([external])
+AM_ICONV()
+GP_GETTEXT_FLAGS()
+
+
+dnl ---------------------------------------------------------------------------
+dnl Thread-safe functions
+dnl ---------------------------------------------------------------------------
+AC_CHECK_FUNCS(localtime_r)
+
+dnl ---------------------------------------------------------------------------
+dnl Compiler/Linker Options and Warnings
+dnl ---------------------------------------------------------------------------
+AM_CPPFLAGS="$AM_CPPFLAGS -I\$(top_srcdir)"
+AM_CPPFLAGS="$AM_CPPFLAGS -I\$(top_builddir)"
+AM_LDFLAGS="$LDFLAGS"
+if test "x$GCC" = "xyes"; then
+    AM_CFLAGS="$AM_CFLAGS -ansi -pedantic-error"
+    AM_CXXFLAGS="$AM_CXXFLAGS -ansi -pedantic-error"
+    AM_CPPFLAGS="$AM_CPPFLAGS -g -Wall -Wmissing-declarations -Wmissing-prototypes"
+    AM_LDFLAGS="$AM_LDFLAGS -g -Wall"
+fi
+
+
+
+AC_SUBST(AM_CPPFLAGS)
+AC_SUBST(AM_LDFLAGS)
+
+
+dnl ---------------------------------------------------------------------------
+dnl Output files
+dnl ---------------------------------------------------------------------------
+AC_CONFIG_FILES([  po/Makefile.in
+  Makefile
+  libexif.spec
+  libexif/Makefile
+  test/Makefile
+  test/nls/Makefile
+  m4m/Makefile
+  doc/Makefile
+  doc/Doxyfile
+  doc/Doxyfile-internals
+  libexif.pc
+  libexif-uninstalled.pc
+  binary/Makefile
+  contrib/Makefile
+  contrib/examples/Makefile
+])
+AC_OUTPUT
+
+GP_CONFIG_OUTPUT
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/contrib/Makefile.am b/framework/modules/c_LibExifModule/libexif-0.6.20/contrib/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..7965c428c5c029099cbbd18eb9e357b5771ed726
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/contrib/Makefile.am
@@ -0,0 +1,7 @@
+SUBDIRS = examples
+
+# The c++ and aolserver contrib directories are out of date and are
+# are pointless to distribute in the offical source release.
+
+EXTRA_DIST = watcom/Makefile watcom/_stdint.h
+
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/contrib/examples/Makefile.am b/framework/modules/c_LibExifModule/libexif-0.6.20/contrib/examples/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..61bb4be328b4b54740b5179b8dfaee361799a024
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/contrib/examples/Makefile.am
@@ -0,0 +1,11 @@
+# Simple example programs
+check_PROGRAMS = photographer thumbnail write-exif
+
+# Example programs with dependencies other than plain libexif
+COMPLICATED_EXAMPLES = cam_features.c
+
+# Build just the simple examples as a sanity check, but include them all in
+# the source archive
+
+EXTRA_DIST = $(COMPLICATED_EXAMPLES)
+LDADD = $(top_builddir)/libexif/libexif.la
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/contrib/examples/cam_features.c b/framework/modules/c_LibExifModule/libexif-0.6.20/contrib/examples/cam_features.c
new file mode 100644
index 0000000000000000000000000000000000000000..6a2dc18468e3ef54a9befac24aed4ac00c7c1dc8
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/contrib/examples/cam_features.c
@@ -0,0 +1,175 @@
+/***************************************************************************
+ *            cam_features.c
+ *
+ *  Wed Jul 27 11:25:09 2005
+ *  Copyright  2005  User: Naysawn Naderi
+ *  Email: ndn at xiphos dot ca
+ *
+ * Uses libdc1394 and libraw1394
+ ****************************************************************************/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+#include <sys/times.h>
+#include <errno.h>
+
+#include <libraw1394/raw1394.h>
+#include <libdc1394/dc1394_control.h>
+#include <libdc1394/dc1394_register.h>
+
+//EXIF includes
+#include <libexif/exif-data.h>
+#include <libexif/exif-ifd.h>
+#include <libexif/exif-loader.h>
+
+// Part of the exif command-line source package
+#include "libjpeg/jpeg-data.h"
+
+
+#define FILENAME "test.jpg"
+
+
+static int createEXIF(dc1394featureset_t *xFeatures, ExifData ** pParentEd);
+
+
+int main(int argc, char *argv[])
+{   dc1394camera_t *pCamera, **pCameras=NULL;
+    int iNumCameras;
+    dc1394featureset_t xFeatures;
+    int i;
+    int err=dc1394_find_cameras(&pCameras, &iNumCameras);
+
+    //EXIF STUFF
+    JPEGData *pData;
+    //float fOnefloat;
+    ExifData * pEd;
+
+
+    if (err!=DC1394_SUCCESS) {
+        fprintf( stderr, "Unable to look for cameras\n\n"
+            "Please check \n"
+            "  - if the kernel modules `ieee1394',`raw1394' and `ohci1394' are loaded \n"
+            "  - if you have read/write access to /dev/raw1394\n\n");
+        exit(1);
+    }
+
+
+    /*-----------------------------------------------------------------------
+     *  Initialize the camera
+     *-----------------------------------------------------------------------*/
+    if (iNumCameras<1) {
+        fprintf(stderr, "no cameras found :(\n");
+        exit(1);
+    }
+    pCamera=pCameras[0];
+    for (i=1;i<iNumCameras;i++)
+        dc1394_free_camera(pCameras[i]);
+    free(pCameras);
+
+    if(dc1394_get_camera_feature_set(pCamera, &xFeatures)!=DC1394_SUCCESS)
+            fprintf(stdout, "unable to get feature set\n");
+    else
+            printf("camera's feature set retrieved\n");
+
+    createEXIF(&xFeatures, &pEd);  //tag the file with the settings of the camera
+
+    //exif_data_dump (pEd);
+
+    //write the Exif data to a jpeg file
+    pData = jpeg_data_new_from_file (FILENAME);  //input data
+    if (!pData) {
+        printf ("Could not load '%s'!\n", FILENAME);
+        return (-1);
+    }
+
+    printf("Saving EXIF data to jpeg file\n");
+    jpeg_data_set_exif_data (pData, pEd);
+    printf("Set the data\n");
+    jpeg_data_save_file(pData, "foobar2.jpg");
+
+    return 0;
+
+}
+
+
+int createEXIF(dc1394featureset_t *xFeatures, ExifData ** pParentEd)
+{
+    ExifEntry *pE;
+    ExifData * pEd;
+    int i = !xFeatures->feature[DC1394_FEATURE_WHITE_BALANCE - DC1394_FEATURE_MIN].auto_active;
+
+    ExifSRational xR = {xFeatures->feature[DC1394_FEATURE_BRIGHTNESS - DC1394_FEATURE_MIN].value, xFeatures->feature[DC1394_FEATURE_BRIGHTNESS - DC1394_FEATURE_MIN].max};;
+
+    printf ("Creating EXIF data...\n");
+    pEd = exif_data_new ();
+
+    /*
+
+    Things to tag:
+
+    EXIF_TAG_MAKE               = 0x010f,
+    EXIF_TAG_MODEL              = 0x0110,
+    EXIF_TAG_EXPOSURE_TIME      = 0x829a,
+    EXIF_TAG_BRIGHTNESS_VALUE   = 0x9203,
+    EXIF_TAG_WHITE_BALANCE      = 0xa403,
+    EXIF_TAG_GAIN_CONTROL       = 0xa407,
+    EXIF_TAG_CONTRAST           = 0xa408,
+    EXIF_TAG_SATURATION         = 0xa409,
+    EXIF_TAG_SHARPNESS          = 0xa40a,
+    EXIF_TAG_USER_COMMENT
+    */
+
+    printf ("Adding a Make reference\n");
+    pE = exif_entry_new ();
+    exif_content_add_entry (pEd->ifd[EXIF_IFD_0], pE);
+    exif_entry_initialize (pE, EXIF_TAG_MAKE);
+    pE->data="AVT";
+    exif_entry_unref (pE);
+
+    printf ("Adding a Model reference\n");
+    pE = exif_entry_new ();
+    exif_content_add_entry (pEd->ifd[EXIF_IFD_0], pE);
+    exif_entry_initialize (pE, EXIF_TAG_MODEL);
+    pE->data="510c";
+    exif_entry_unref (pE);
+
+    printf ("Adding a Tag to reference # samples per pixel\n");
+    pE = exif_entry_new ();
+    exif_content_add_entry (pEd->ifd[EXIF_IFD_0], pE);
+    exif_entry_initialize (pE, EXIF_TAG_SAMPLES_PER_PIXEL); //by default is 3
+    exif_entry_unref (pE);
+
+    printf ("Adding a White Balance Reference\n");
+    pE = exif_entry_new ();
+    exif_content_add_entry (pEd->ifd[EXIF_IFD_0], pE);
+    exif_entry_initialize (pE, EXIF_TAG_WHITE_BALANCE);
+    exif_set_short(pE->data, exif_data_get_byte_order (pEd), i);  //0=auto white balance, 1 = manual white balance
+    exif_entry_unref (pE);
+
+    //need to create logic according to the value of the sharpness
+    printf ("Adding a Sharpness Reference\n");
+    pE = exif_entry_new ();
+    exif_content_add_entry (pEd->ifd[EXIF_IFD_0], pE);
+    exif_entry_initialize (pE, EXIF_TAG_SHARPNESS);
+    exif_set_short(pE->data, exif_data_get_byte_order (pEd), 0);
+    exif_entry_unref (pE);
+
+    printf ("Adding a Brightness reference\n");
+
+    //try to get brightness
+    //printf("Float Value: %i\n",xFeatures->feature[DC1394_FEATURE_BRIGHTNESS - DC1394_FEATURE_MIN].value);
+
+    pE = exif_entry_new ();
+    exif_content_add_entry (pEd->ifd[EXIF_IFD_0], pE);
+    exif_entry_initialize (pE, EXIF_TAG_BRIGHTNESS_VALUE);
+    exif_set_srational (pE->data, exif_data_get_byte_order (pEd), xR);
+
+
+    //exif_data_dump (ed);
+    //exif_data_dump (pEd);
+    *pParentEd = pEd;
+    printf("Done!\n");
+
+    return 0;
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/contrib/examples/photographer.c b/framework/modules/c_LibExifModule/libexif-0.6.20/contrib/examples/photographer.c
new file mode 100644
index 0000000000000000000000000000000000000000..b40df439a493f558071dfbe17b78023023d86138
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/contrib/examples/photographer.c
@@ -0,0 +1,125 @@
+/*
+ * libexif example program to display the contents of a number of specific
+ * EXIF and MakerNote tags. The tags selected are those that may aid in
+ * identification of the photographer who took the image.
+ *
+ * Placed into the public domain by Dan Fandrich
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <libexif/exif-data.h>
+
+/* Remove spaces on the right of the string */
+static void trim_spaces(char *buf)
+{
+    char *s = buf-1;
+    for (; *buf; ++buf) {
+        if (*buf != ' ')
+            s = buf;
+    }
+    *++s = 0; /* nul terminate the string on the first of the final spaces */
+}
+
+/* Show the tag name and contents if the tag exists */
+static void show_tag(ExifData *d, ExifIfd ifd, ExifTag tag)
+{
+    /* See if this tag exists */
+    ExifEntry *entry = exif_content_get_entry(d->ifd[ifd],tag);
+    if (entry) {
+        char buf[1024];
+
+        /* Get the contents of the tag in human-readable form */
+        exif_entry_get_value(entry, buf, sizeof(buf));
+
+        /* Don't bother printing it if it's entirely blank */
+        trim_spaces(buf);
+        if (*buf) {
+            printf("%s: %s\n", exif_tag_get_name_in_ifd(tag,ifd), buf);
+        }
+    }
+}
+
+/* Show the given MakerNote tag if it exists */
+static void show_mnote_tag(ExifData *d, unsigned tag)
+{
+    ExifMnoteData *mn = exif_data_get_mnote_data(d);
+    if (mn) {
+        int num = exif_mnote_data_count(mn);
+        int i;
+
+        /* Loop through all MakerNote tags, searching for the desired one */
+        for (i=0; i < num; ++i) {
+            char buf[1024];
+            if (exif_mnote_data_get_id(mn, i) == tag) {
+                if (exif_mnote_data_get_value(mn, i, buf, sizeof(buf))) {
+                    /* Don't bother printing it if it's entirely blank */
+                    trim_spaces(buf);
+                    if (*buf) {
+                        printf("%s: %s\n", exif_mnote_data_get_title(mn, i),
+                            buf);
+                    }
+                }
+            }
+        }
+    }
+}
+
+int main(int argc, char **argv)
+{
+    ExifData *ed;
+    ExifEntry *entry;
+
+    if (argc < 2) {
+        printf("Usage: %s image.jpg\n", argv[0]);
+        printf("Displays tags potentially relating to ownership "
+                "of the image.\n");
+        return 1;
+    }
+
+    /* Load an ExifData object from an EXIF file */
+    ed = exif_data_new_from_file(argv[1]);
+    if (!ed) {
+        printf("File not readable or no EXIF data in file %s\n", argv[1]);
+        return 2;
+    }
+
+    /* Show all the tags that might contain information about the
+     * photographer
+     */
+    show_tag(ed, EXIF_IFD_0, EXIF_TAG_ARTIST);
+    show_tag(ed, EXIF_IFD_0, EXIF_TAG_XP_AUTHOR);
+    show_tag(ed, EXIF_IFD_0, EXIF_TAG_COPYRIGHT);
+
+    /* These are much less likely to be useful */
+    show_tag(ed, EXIF_IFD_EXIF, EXIF_TAG_USER_COMMENT);
+    show_tag(ed, EXIF_IFD_0, EXIF_TAG_IMAGE_DESCRIPTION);
+    show_tag(ed, EXIF_IFD_1, EXIF_TAG_IMAGE_DESCRIPTION);
+
+    /* A couple of MakerNote tags can contain useful data.  Read the
+     * manufacturer tag to see if this image could have one of the recognized
+     * MakerNote tags.
+     */
+    entry = exif_content_get_entry(ed->ifd[EXIF_IFD_0], EXIF_TAG_MAKE);
+    if (entry) {
+        char buf[64];
+
+        /* Get the contents of the manufacturer tag as a string */
+        if (exif_entry_get_value(entry, buf, sizeof(buf))) {
+            trim_spaces(buf);
+
+            if (!strcmp(buf, "Canon")) {
+                show_mnote_tag(ed, 9); /* MNOTE_CANON_TAG_OWNER */
+
+            } else if (!strcmp(buf, "Asahi Optical Co.,Ltd.") || 
+                       !strcmp(buf, "PENTAX Corporation")) {
+                show_mnote_tag(ed, 0x23); /* MNOTE_PENTAX2_TAG_HOMETOWN_CITY */
+            }
+        }
+    }
+
+    /* Free the EXIF data */
+    exif_data_unref(ed);
+
+    return 0;
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/contrib/examples/thumbnail.c b/framework/modules/c_LibExifModule/libexif-0.6.20/contrib/examples/thumbnail.c
new file mode 100644
index 0000000000000000000000000000000000000000..1750d5c6bfa558b8c07d0eafc91dc050c5f9b8b6
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/contrib/examples/thumbnail.c
@@ -0,0 +1,66 @@
+/*
+ * libexif example program to extract an EXIF thumbnail from an image
+ * and save it into a new file.
+ *
+ * Placed into the public domain by Dan Fandrich
+ */
+
+#include <stdio.h>
+#include <libexif/exif-loader.h>
+
+int main(int argc, char **argv)
+{
+    int rc = 1;
+    ExifLoader *l;
+
+    if (argc < 2) {
+        printf("Usage: %s image.jpg\n", argv[0]);
+        printf("Extracts a thumbnail from the given EXIF image.\n");
+        return rc;
+    }
+
+    /* Create an ExifLoader object to manage the EXIF loading process */
+    l = exif_loader_new();
+    if (l) {
+        ExifData *ed;
+
+        /* Load the EXIF data from the image file */
+        exif_loader_write_file(l, argv[1]);
+
+        /* Get a pointer to the EXIF data */
+        ed = exif_loader_get_data(l);
+
+	/* The loader is no longer needed--free it */
+        exif_loader_unref(l);
+	l = NULL;
+        if (ed) {
+	    /* Make sure the image had a thumbnail before trying to write it */
+            if (ed->data && ed->size) {
+                FILE *thumb;
+                char thumb_name[1024];
+
+		/* Try to create a unique name for the thumbnail file */
+                snprintf(thumb_name, sizeof(thumb_name),
+                         "%s_thumb.jpg", argv[1]);
+
+                thumb = fopen(thumb_name, "wb");
+                if (thumb) {
+		    /* Write the thumbnail image to the file */
+                    fwrite(ed->data, 1, ed->size, thumb);
+                    fclose(thumb);
+                    printf("Wrote thumbnail to %s\n", thumb_name);
+                    rc = 0;
+                } else {
+                    printf("Could not create file %s\n", thumb_name);
+                    rc = 2;
+                }
+            } else {
+                printf("No EXIF thumbnail in file %s\n", argv[1]);
+                rc = 1;
+            }
+	    /* Free the EXIF data */
+            exif_data_unref(ed);
+        }
+    }
+    return rc;
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/contrib/examples/write-exif.c b/framework/modules/c_LibExifModule/libexif-0.6.20/contrib/examples/write-exif.c
new file mode 100644
index 0000000000000000000000000000000000000000..894cdb6e33c1422769e31215c14ba37409a82104
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/contrib/examples/write-exif.c
@@ -0,0 +1,301 @@
+/*
+ * write-exif.c
+ *
+ * Placed into the public domain by Daniel Fandrich
+ *
+ * Create a new EXIF data block and write it into a JPEG image file.
+ *
+ * The JPEG image data used in this example is fixed and is guaranteed not
+ * to contain an EXIF tag block already, so it is easy to precompute where
+ * in the file the EXIF data should be. In real life, a library like
+ * libjpeg (included with the exif command-line tool source code) would
+ * be used to write to an existing JPEG file.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+#include <libexif/exif-data.h>
+
+/* this file will be unilaterally overwritten */
+#define FILE_NAME "write-exif.jpg"
+
+/* raw JPEG image data */
+static const unsigned char image_jpg[] = {
+  0xff, 0xd8, 0xff, 0xe0, 0x00, 0x10, 0x4a, 0x46, 0x49, 0x46, 0x00, 0x01,
+  0x01, 0x01, 0x00, 0x48, 0x00, 0x48, 0x00, 0x00, 0xff, 0xdb, 0x00, 0x43,
+  0x00, 0x14, 0x0e, 0x0f, 0x12, 0x0f, 0x0d, 0x14, 0x12, 0x10, 0x12, 0x17,
+  0x15, 0x14, 0x18, 0x1e, 0x32, 0x21, 0x1e, 0x1c, 0x1c, 0x1e, 0x3d, 0x2c,
+  0x2e, 0x24, 0x32, 0x49, 0x40, 0x4c, 0x4b, 0x47, 0x40, 0x46, 0x45, 0x50,
+  0x5a, 0x73, 0x62, 0x50, 0x55, 0x6d, 0x56, 0x45, 0x46, 0x64, 0x88, 0x65,
+  0x6d, 0x77, 0x7b, 0x81, 0x82, 0x81, 0x4e, 0x60, 0x8d, 0x97, 0x8c, 0x7d,
+  0x96, 0x73, 0x7e, 0x81, 0x7c, 0xff, 0xc0, 0x00, 0x0b, 0x08, 0x00, 0x40,
+  0x00, 0x40, 0x01, 0x01, 0x11, 0x00, 0xff, 0xc4, 0x00, 0x1b, 0x00, 0x00,
+  0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x05, 0x06, 0x04, 0x03, 0x07, 0x02, 0x01, 0xff,
+  0xc4, 0x00, 0x2f, 0x10, 0x00, 0x01, 0x03, 0x03, 0x02, 0x05, 0x03, 0x03,
+  0x03, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x11,
+  0x00, 0x04, 0x05, 0x21, 0x31, 0x06, 0x12, 0x41, 0x51, 0x81, 0x61, 0x71,
+  0x91, 0x13, 0x32, 0xa1, 0x14, 0x22, 0xc1, 0x15, 0x23, 0x52, 0xd1, 0xf0,
+  0xff, 0xda, 0x00, 0x08, 0x01, 0x01, 0x00, 0x00, 0x3f, 0x00, 0xb3, 0xa2,
+  0x8a, 0x28, 0xa2, 0x8a, 0x28, 0xa2, 0x97, 0x64, 0x72, 0xd6, 0x58, 0xd4,
+  0x8f, 0xd5, 0x3d, 0xca, 0xa5, 0x7d, 0xa8, 0x4e, 0xaa, 0x3e, 0xb0, 0x3a,
+  0x7a, 0x9d, 0x2b, 0x2d, 0x87, 0x13, 0xe3, 0xaf, 0x9f, 0x0c, 0xb6, 0xb5,
+  0xb6, 0xe2, 0xb4, 0x48, 0x71, 0x30, 0x14, 0x7b, 0x02, 0x09, 0x14, 0xee,
+  0x94, 0x64, 0x38, 0x87, 0x1f, 0x8d, 0x5f, 0xd3, 0x7d, 0xe2, 0xa7, 0x46,
+  0xe8, 0x6c, 0x49, 0x1e, 0xfd, 0x07, 0xb1, 0x33, 0x5f, 0xb8, 0xdc, 0xf5,
+  0x96, 0x51, 0x7c, 0x96, 0xee, 0x14, 0xba, 0x04, 0xf2, 0x2c, 0x42, 0xa3,
+  0xd3, 0x70, 0x7c, 0x1a, 0x6d, 0x45, 0x2c, 0xcd, 0xe5, 0x11, 0x89, 0xb1,
+  0x5b, 0xc4, 0x02, 0xe1, 0xd1, 0xb4, 0xcf, 0xdc, 0xa3, 0xfc, 0x0d, 0xcd,
+  0x41, 0xde, 0xe3, 0xb2, 0x2e, 0xda, 0x1c, 0xbd, 0xe2, 0x4a, 0x90, 0xe9,
+  0x04, 0x95, 0x2b, 0xf7, 0x41, 0xd0, 0x18, 0xe8, 0x36, 0x03, 0xc6, 0x91,
+  0x4a, 0x81, 0x20, 0x82, 0x24, 0x10, 0x66, 0x45, 0x5a, 0xdd, 0xf1, 0x32,
+  0xff, 0x00, 0xa2, 0x5a, 0x8b, 0x62, 0x57, 0x7d, 0x70, 0x80, 0x93, 0x1a,
+  0x94, 0x10, 0x79, 0x4a, 0xa3, 0xb9, 0x20, 0xc0, 0xf3, 0xd3, 0x55, 0x59,
+  0x4e, 0x1c, 0x7a, 0xc7, 0x12, 0x9b, 0xc7, 0x94, 0xa7, 0x2e, 0x14, 0xa9,
+  0x74, 0x0d, 0x42, 0x01, 0x04, 0xc9, 0x3b, 0x93, 0x30, 0x09, 0xdb, 0x5f,
+  0x35, 0x9b, 0x85, 0xad, 0xde, 0x7f, 0x39, 0x6e, 0xa6, 0x82, 0xa1, 0xa5,
+  0x73, 0x2d, 0x40, 0x68, 0x13, 0x06, 0x67, 0xdf, 0x6f, 0x35, 0xe9, 0xb4,
+  0x52, 0x4c, 0xbe, 0x0c, 0x65, 0x72, 0x16, 0xcf, 0x3a, 0xff, 0x00, 0xf6,
+  0x5a, 0xd1, 0x4d, 0x11, 0xa1, 0x13, 0x26, 0x0f, 0x73, 0x00, 0x1f, 0x41,
+  0x5b, 0x72, 0xd6, 0xa2, 0xeb, 0x15, 0x73, 0x6e, 0x13, 0xf7, 0x36, 0x42,
+  0x40, 0xee, 0x04, 0x8f, 0xc8, 0x15, 0xe4, 0xf5, 0x59, 0xc1, 0x16, 0x0d,
+  0x3d, 0x70, 0xed, 0xdb, 0x84, 0x29, 0x6c, 0x40, 0x42, 0x3b, 0x13, 0x3f,
+  0xb8, 0xfc, 0x10, 0x3c, 0xd5, 0xc1, 0x00, 0x88, 0x22, 0x41, 0xef, 0x5f,
+  0x0d, 0xb4, 0x86, 0x81, 0x0d, 0xa1, 0x28, 0x07, 0x52, 0x12, 0x00, 0x06,
+  0xba, 0xd1, 0x45, 0x71, 0xb8, 0xb8, 0x6e, 0xd9, 0x85, 0xbc, 0xf2, 0xb9,
+  0x5b, 0x40, 0x25, 0x47, 0xb0, 0xaf, 0x24, 0x79, 0x48, 0x53, 0xce, 0x29,
+  0xb4, 0x94, 0xa0, 0xa8, 0x94, 0xa7, 0xb0, 0x27, 0x41, 0xf1, 0x54, 0x9c,
+  0x09, 0x71, 0xc9, 0x92, 0x7d, 0x82, 0x74, 0x75, 0xa9, 0x1e, 0xa5, 0x27,
+  0xfd, 0x13, 0x55, 0xd9, 0x3c, 0x83, 0x38, 0xbb, 0x45, 0x5c, 0xbf, 0x3c,
+  0xa1, 0x40, 0x40, 0x02, 0x54, 0x4f, 0x41, 0x3e, 0x4f, 0x83, 0x5a, 0x2d,
+  0xae, 0x1b, 0xba, 0xb7, 0x6d, 0xf6, 0x89, 0x28, 0x71, 0x21, 0x49, 0x24,
+  0x41, 0x83, 0xe9, 0x5d, 0xe9, 0x3f, 0x12, 0x64, 0x97, 0x8b, 0xc6, 0x17,
+  0x59, 0x03, 0xea, 0xa9, 0x61, 0x08, 0x24, 0x48, 0x04, 0xc9, 0x9f, 0x80,
+  0x6a, 0x4b, 0x17, 0xc4, 0xd7, 0xac, 0xdf, 0x36, 0xab, 0xbb, 0x85, 0x39,
+  0x6e, 0xb5, 0x00, 0xe0, 0x50, 0x06, 0x01, 0x3a, 0x91, 0x02, 0x44, 0x6f,
+  0x02, 0xb7, 0x65, 0xb2, 0x0e, 0x71, 0x25, 0xf3, 0x58, 0xdc, 0x72, 0x8f,
+  0xe9, 0xc1, 0xe6, 0x52, 0xe0, 0xc2, 0xa3, 0x72, 0x46, 0xe0, 0x0e, 0x83,
+  0xa9, 0xf1, 0x4b, 0x38, 0x9f, 0x16, 0xde, 0x2e, 0xfd, 0xa4, 0x32, 0x92,
+  0x1a, 0x5b, 0x40, 0x83, 0xdc, 0x8d, 0x0f, 0x9d, 0x01, 0x3e, 0xf5, 0x83,
+  0x17, 0x7a, 0xac, 0x76, 0x41, 0x9b, 0xa4, 0xa7, 0x9b, 0xe9, 0xab, 0x51,
+  0x31, 0x20, 0x82, 0x08, 0xf8, 0x34, 0xf9, 0xdb, 0x97, 0xb8, 0xb7, 0x2c,
+  0xcd, 0xba, 0x12, 0xa6, 0xec, 0xda, 0x3c, 0xca, 0x13, 0x24, 0x0e, 0xa4,
+  0x91, 0xa4, 0x9d, 0x87, 0x69, 0xf7, 0xab, 0x74, 0x21, 0x2d, 0xa1, 0x28,
+  0x4a, 0x42, 0x52, 0x90, 0x02, 0x40, 0xd8, 0x01, 0xb0, 0xae, 0x95, 0x87,
+  0x29, 0x8f, 0x6f, 0x27, 0x64, 0xe5, 0xb3, 0xc4, 0x80, 0xa8, 0x29, 0x50,
+  0xdd, 0x24, 0x6c, 0x47, 0xfd, 0xd4, 0xd4, 0x92, 0x78, 0x1e, 0xef, 0xeb,
+  0x42, 0xae, 0x98, 0x0d, 0x7f, 0x90, 0x0a, 0x27, 0xe2, 0x00, 0xfc, 0xd5,
+  0x4e, 0x27, 0x11, 0x6d, 0x89, 0x60, 0xb7, 0x6e, 0x92, 0x54, 0xa8, 0xe6,
+  0x71, 0x5b, 0xa8, 0xff, 0x00, 0x03, 0xd2, 0xbe, 0x73, 0x38, 0x86, 0x72,
+  0xf6, 0xc1, 0xb7, 0x4f, 0x2a, 0xd1, 0x25, 0x0e, 0x01, 0x25, 0x27, 0xae,
+  0x9d, 0x41, 0xed, 0xed, 0x52, 0xe8, 0xe0, 0x7b, 0xcf, 0xab, 0x0e, 0x5d,
+  0x30, 0x96, 0xe7, 0xee, 0x4f, 0x31, 0x57, 0xc1, 0x00, 0x7e, 0x6a, 0xaf,
+  0x15, 0x8b, 0x63, 0x17, 0x6e, 0x1a, 0x61, 0x24, 0x92, 0x65, 0x6b, 0x3b,
+  0xa8, 0xf7, 0x3e, 0x9d, 0x87, 0x4a, 0x63, 0x45, 0x14, 0x51, 0x45, 0x14,
+  0x51, 0x45, 0x7f, 0xff, 0xd9
+};
+
+/* length of data in image_jpg */
+static const unsigned int image_jpg_len = sizeof(image_jpg);
+
+/* dimensions of image */
+static const unsigned int image_jpg_x = 64;
+static const unsigned int image_jpg_y = 64;
+
+/* start of JPEG image data section */
+static const unsigned int image_data_offset = 20;
+#define image_data_len (image_jpg_len - image_data_offset)
+
+/* raw EXIF header data */
+static const unsigned char exif_header[] = {
+  0xff, 0xd8, 0xff, 0xe1
+};
+/* length of data in exif_header */
+static const unsigned int exif_header_len = sizeof(exif_header);
+
+/* byte order to use in the EXIF block */
+#define FILE_BYTE_ORDER EXIF_BYTE_ORDER_INTEL
+
+/* comment to write into the EXIF block */
+#define FILE_COMMENT "libexif demonstration image"
+
+/* special header required for EXIF_TAG_USER_COMMENT */
+#define ASCII_COMMENT "ASCII\0\0\0"
+
+
+/* Get an existing tag, or create one if it doesn't exist */
+static ExifEntry *init_tag(ExifData *exif, ExifIfd ifd, ExifTag tag)
+{
+	ExifEntry *entry;
+	/* Return an existing tag if one exists */
+	if (!((entry = exif_content_get_entry (exif->ifd[ifd], tag)))) {
+	    /* Allocate a new entry */
+	    entry = exif_entry_new ();
+	    assert(entry != NULL); /* catch an out of memory condition */
+	    entry->tag = tag; /* tag must be set before calling
+				 exif_content_add_entry */
+
+	    /* Attach the ExifEntry to an IFD */
+	    exif_content_add_entry (exif->ifd[ifd], entry);
+
+	    /* Allocate memory for the entry and fill with default data */
+	    exif_entry_initialize (entry, tag);
+
+	    /* Ownership of the ExifEntry has now been passed to the IFD.
+	     * One must be very careful in accessing a structure after
+	     * unref'ing it; in this case, we know "entry" won't be freed
+	     * because the reference count was bumped when it was added to
+	     * the IFD.
+	     */
+	    exif_entry_unref(entry);
+	}
+	return entry;
+}
+
+/* Create a brand-new tag with a data field of the given length, in the
+ * given IFD. This is needed when exif_entry_initialize() isn't able to create
+ * this type of tag itself, or the default data length it creates isn't the
+ * correct length.
+ */
+static ExifEntry *create_tag(ExifData *exif, ExifIfd ifd, ExifTag tag, size_t len)
+{
+	void *buf;
+	ExifEntry *entry;
+	
+	/* Create a memory allocator to manage this ExifEntry */
+	ExifMem *mem = exif_mem_new_default();
+	assert(mem != NULL); /* catch an out of memory condition */
+
+	/* Create a new ExifEntry using our allocator */
+	entry = exif_entry_new_mem (mem);
+	assert(entry != NULL);
+
+	/* Allocate memory to use for holding the tag data */
+	buf = exif_mem_alloc(mem, len);
+	assert(buf != NULL);
+
+	/* Fill in the entry */
+	entry->data = buf;
+	entry->size = len;
+	entry->tag = tag;
+	entry->components = len;
+	entry->format = EXIF_FORMAT_UNDEFINED;
+
+	/* Attach the ExifEntry to an IFD */
+	exif_content_add_entry (exif->ifd[ifd], entry);
+
+	/* The ExifMem and ExifEntry are now owned elsewhere */
+	exif_mem_unref(mem);
+	exif_entry_unref(entry);
+
+	return entry;
+}
+
+int main(int argc, char **argv)
+{
+	int rc = 1;
+	FILE *f;
+	unsigned char *exif_data;
+	unsigned int exif_data_len;
+	ExifEntry *entry;
+	ExifData *exif = exif_data_new();
+	if (!exif) {
+		fprintf(stderr, "Out of memory\n");
+		return 2;
+	}
+
+	/* Set the image options */
+	exif_data_set_option(exif, EXIF_DATA_OPTION_FOLLOW_SPECIFICATION);
+	exif_data_set_data_type(exif, EXIF_DATA_TYPE_COMPRESSED);
+	exif_data_set_byte_order(exif, FILE_BYTE_ORDER);
+
+	/* Create the mandatory EXIF fields with default data */
+	exif_data_fix(exif);
+
+	/* All these tags are created with default values by exif_data_fix() */
+	/* Change the data to the correct values for this image. */
+	entry = init_tag(exif, EXIF_IFD_EXIF, EXIF_TAG_PIXEL_X_DIMENSION);
+	exif_set_long(entry->data, FILE_BYTE_ORDER, image_jpg_x);
+
+	entry = init_tag(exif, EXIF_IFD_EXIF, EXIF_TAG_PIXEL_Y_DIMENSION);
+	exif_set_long(entry->data, FILE_BYTE_ORDER, image_jpg_y);
+
+	entry = init_tag(exif, EXIF_IFD_EXIF, EXIF_TAG_COLOR_SPACE);
+	exif_set_short(entry->data, FILE_BYTE_ORDER, 1);
+
+	/* Create a EXIF_TAG_USER_COMMENT tag. This one must be handled
+	 * differently because that tag isn't automatically created and
+	 * allocated by exif_data_fix(), nor can it be created using
+	 * exif_entry_initialize() so it must be explicitly allocated here.
+	 */
+	entry = create_tag(exif, EXIF_IFD_EXIF, EXIF_TAG_USER_COMMENT, 
+			sizeof(ASCII_COMMENT) + sizeof(FILE_COMMENT) - 2);
+	/* Write the special header needed for a comment tag */
+	memcpy(entry->data, ASCII_COMMENT, sizeof(ASCII_COMMENT)-1);
+	/* Write the actual comment text, without the trailing NUL character */
+	memcpy(entry->data+8, FILE_COMMENT, sizeof(FILE_COMMENT)-1);
+	/* create_tag() happens to set the format and components correctly for
+	 * EXIF_TAG_USER_COMMENT, so there is nothing more to do. */
+
+	/* Create a EXIF_TAG_SUBJECT_AREA tag */
+	entry = create_tag(exif, EXIF_IFD_EXIF, EXIF_TAG_SUBJECT_AREA,
+			   4 * exif_format_get_size(EXIF_FORMAT_SHORT));
+	entry->format = EXIF_FORMAT_SHORT;
+	entry->components = 4;
+	exif_set_short(entry->data, FILE_BYTE_ORDER, image_jpg_x / 2);
+	exif_set_short(entry->data+2, FILE_BYTE_ORDER, image_jpg_y / 2);
+	exif_set_short(entry->data+4, FILE_BYTE_ORDER, image_jpg_x);
+	exif_set_short(entry->data+6, FILE_BYTE_ORDER, image_jpg_y);
+
+	/* Get a pointer to the EXIF data block we just created */
+	exif_data_save_data(exif, &exif_data, &exif_data_len);
+	assert(exif_data != NULL);
+
+	f = fopen(FILE_NAME, "wb");
+	if (!f) {
+		fprintf(stderr, "Error creating file %s\n", FILE_NAME);
+		exif_data_unref(exif);
+		return rc;
+	}
+	/* Write EXIF header */
+	if (fwrite(exif_header, exif_header_len, 1, f) != 1) {
+		fprintf(stderr, "Error writing to file %s\n", FILE_NAME);
+		goto errout;
+	}
+	/* Write EXIF block length in big-endian order */
+	if (fputc((exif_data_len+2) >> 8, f) < 0) {
+		fprintf(stderr, "Error writing to file %s\n", FILE_NAME);
+		goto errout;
+	}
+	if (fputc((exif_data_len+2) & 0xff, f) < 0) {
+		fprintf(stderr, "Error writing to file %s\n", FILE_NAME);
+		goto errout;
+	}
+	/* Write EXIF data block */
+	if (fwrite(exif_data, exif_data_len, 1, f) != 1) {
+		fprintf(stderr, "Error writing to file %s\n", FILE_NAME);
+		goto errout;
+	}
+	/* Write JPEG image data, skipping the non-EXIF header */
+	if (fwrite(image_jpg+image_data_offset, image_data_len, 1, f) != 1) {
+		fprintf(stderr, "Error writing to file %s\n", FILE_NAME);
+		goto errout;
+	}
+	printf("Wrote file %s\n", FILE_NAME);
+	rc = 0;
+
+errout:
+	if (fclose(f)) {
+		fprintf(stderr, "Error writing to file %s\n", FILE_NAME);
+		rc = 1;
+	}
+	/* The allocator we're using for ExifData is the standard one, so use
+	 * it directly to free this pointer.
+	 */
+	free(exif_data);
+	exif_data_unref(exif);
+
+	return rc;
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/contrib/watcom/_stdint.h b/framework/modules/c_LibExifModule/libexif-0.6.20/contrib/watcom/_stdint.h
new file mode 100644
index 0000000000000000000000000000000000000000..0fd8d8bfdeb0d47d2d3fc34fb81cbebfd7dbfa8e
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/contrib/watcom/_stdint.h
@@ -0,0 +1,13 @@
+#ifndef __STDINT_H
+#define __STDINT_H
+#include <sys/types.h>
+typedef  unsigned char   uint8_t;
+typedef  unsigned short  uint16_t;
+typedef  unsigned long   uint32_t;
+
+typedef    signed char   int8_t;
+typedef    signed short  int16_t;
+typedef    signed long   int32_t;
+#endif
+
+
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/depcomp b/framework/modules/c_LibExifModule/libexif-0.6.20/depcomp
new file mode 100644
index 0000000000000000000000000000000000000000..df8eea7e4ce8862105fcd7929b20bdb45488048b
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/depcomp
@@ -0,0 +1,630 @@
+#! /bin/sh
+# depcomp - compile a program generating dependencies as side-effects
+
+scriptversion=2009-04-28.21; # UTC
+
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free
+# Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
+
+case $1 in
+  '')
+     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
+     exit 1;
+     ;;
+  -h | --h*)
+    cat <<\EOF
+Usage: depcomp [--help] [--version] PROGRAM [ARGS]
+
+Run PROGRAMS ARGS to compile a file, generating dependencies
+as side-effects.
+
+Environment variables:
+  depmode     Dependency tracking mode.
+  source      Source file read by `PROGRAMS ARGS'.
+  object      Object file output by `PROGRAMS ARGS'.
+  DEPDIR      directory where to store dependencies.
+  depfile     Dependency file to output.
+  tmpdepfile  Temporary file to use when outputing dependencies.
+  libtool     Whether libtool is used (yes/no).
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+    exit $?
+    ;;
+  -v | --v*)
+    echo "depcomp $scriptversion"
+    exit $?
+    ;;
+esac
+
+if test -z "$depmode" || test -z "$source" || test -z "$object"; then
+  echo "depcomp: Variables source, object and depmode must be set" 1>&2
+  exit 1
+fi
+
+# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
+depfile=${depfile-`echo "$object" |
+  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
+tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
+
+rm -f "$tmpdepfile"
+
+# Some modes work just like other modes, but use different flags.  We
+# parameterize here, but still list the modes in the big case below,
+# to make depend.m4 easier to write.  Note that we *cannot* use a case
+# here, because this file can only contain one case statement.
+if test "$depmode" = hp; then
+  # HP compiler uses -M and no extra arg.
+  gccflag=-M
+  depmode=gcc
+fi
+
+if test "$depmode" = dashXmstdout; then
+   # This is just like dashmstdout with a different argument.
+   dashmflag=-xM
+   depmode=dashmstdout
+fi
+
+cygpath_u="cygpath -u -f -"
+if test "$depmode" = msvcmsys; then
+   # This is just like msvisualcpp but w/o cygpath translation.
+   # Just convert the backslash-escaped backslashes to single forward
+   # slashes to satisfy depend.m4
+   cygpath_u="sed s,\\\\\\\\,/,g"
+   depmode=msvisualcpp
+fi
+
+case "$depmode" in
+gcc3)
+## gcc 3 implements dependency tracking that does exactly what
+## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
+## it if -MD -MP comes after the -MF stuff.  Hmm.
+## Unfortunately, FreeBSD c89 acceptance of flags depends upon
+## the command line argument order; so add the flags where they
+## appear in depend2.am.  Note that the slowdown incurred here
+## affects only configure: in makefiles, %FASTDEP% shortcuts this.
+  for arg
+  do
+    case $arg in
+    -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
+    *)  set fnord "$@" "$arg" ;;
+    esac
+    shift # fnord
+    shift # $arg
+  done
+  "$@"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  mv "$tmpdepfile" "$depfile"
+  ;;
+
+gcc)
+## There are various ways to get dependency output from gcc.  Here's
+## why we pick this rather obscure method:
+## - Don't want to use -MD because we'd like the dependencies to end
+##   up in a subdir.  Having to rename by hand is ugly.
+##   (We might end up doing this anyway to support other compilers.)
+## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
+##   -MM, not -M (despite what the docs say).
+## - Using -M directly means running the compiler twice (even worse
+##   than renaming).
+  if test -z "$gccflag"; then
+    gccflag=-MD,
+  fi
+  "$@" -Wp,"$gccflag$tmpdepfile"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
+## The second -e expression handles DOS-style file names with drive letters.
+  sed -e 's/^[^:]*: / /' \
+      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
+## This next piece of magic avoids the `deleted header file' problem.
+## The problem is that when a header file which appears in a .P file
+## is deleted, the dependency causes make to die (because there is
+## typically no way to rebuild the header).  We avoid this by adding
+## dummy dependencies for each header file.  Too bad gcc doesn't do
+## this for us directly.
+  tr ' ' '
+' < "$tmpdepfile" |
+## Some versions of gcc put a space before the `:'.  On the theory
+## that the space means something, we add a space to the output as
+## well.
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+hp)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+sgi)
+  if test "$libtool" = yes; then
+    "$@" "-Wp,-MDupdate,$tmpdepfile"
+  else
+    "$@" -MDupdate "$tmpdepfile"
+  fi
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+
+  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
+    echo "$object : \\" > "$depfile"
+
+    # Clip off the initial element (the dependent).  Don't try to be
+    # clever and replace this with sed code, as IRIX sed won't handle
+    # lines with more than a fixed number of characters (4096 in
+    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
+    # the IRIX cc adds comments like `#:fec' to the end of the
+    # dependency line.
+    tr ' ' '
+' < "$tmpdepfile" \
+    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
+    tr '
+' ' ' >> "$depfile"
+    echo >> "$depfile"
+
+    # The second pass generates a dummy entry for each header file.
+    tr ' ' '
+' < "$tmpdepfile" \
+   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+   >> "$depfile"
+  else
+    # The sourcefile does not contain any dependencies, so just
+    # store a dummy comment line, to avoid errors with the Makefile
+    # "include basename.Plo" scheme.
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile"
+  ;;
+
+aix)
+  # The C for AIX Compiler uses -M and outputs the dependencies
+  # in a .u file.  In older versions, this file always lives in the
+  # current directory.  Also, the AIX compiler puts `$object:' at the
+  # start of each line; $object doesn't have directory information.
+  # Version 6 uses the directory in both cases.
+  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+  test "x$dir" = "x$object" && dir=
+  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  if test "$libtool" = yes; then
+    tmpdepfile1=$dir$base.u
+    tmpdepfile2=$base.u
+    tmpdepfile3=$dir.libs/$base.u
+    "$@" -Wc,-M
+  else
+    tmpdepfile1=$dir$base.u
+    tmpdepfile2=$dir$base.u
+    tmpdepfile3=$dir$base.u
+    "$@" -M
+  fi
+  stat=$?
+
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+    exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  if test -f "$tmpdepfile"; then
+    # Each line is of the form `foo.o: dependent.h'.
+    # Do two passes, one to just change these to
+    # `$object: dependent.h' and one to simply `dependent.h:'.
+    sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+    # That's a tab and a space in the [].
+    sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+  else
+    # The sourcefile does not contain any dependencies, so just
+    # store a dummy comment line, to avoid errors with the Makefile
+    # "include basename.Plo" scheme.
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile"
+  ;;
+
+icc)
+  # Intel's C compiler understands `-MD -MF file'.  However on
+  #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
+  # ICC 7.0 will fill foo.d with something like
+  #    foo.o: sub/foo.c
+  #    foo.o: sub/foo.h
+  # which is wrong.  We want:
+  #    sub/foo.o: sub/foo.c
+  #    sub/foo.o: sub/foo.h
+  #    sub/foo.c:
+  #    sub/foo.h:
+  # ICC 7.1 will output
+  #    foo.o: sub/foo.c sub/foo.h
+  # and will wrap long lines using \ :
+  #    foo.o: sub/foo.c ... \
+  #     sub/foo.h ... \
+  #     ...
+
+  "$@" -MD -MF "$tmpdepfile"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  # Each line is of the form `foo.o: dependent.h',
+  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
+  # Do two passes, one to just change these to
+  # `$object: dependent.h' and one to simply `dependent.h:'.
+  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process this invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
+    sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+hp2)
+  # The "hp" stanza above does not work with aCC (C++) and HP's ia64
+  # compilers, which have integrated preprocessors.  The correct option
+  # to use with these is +Maked; it writes dependencies to a file named
+  # 'foo.d', which lands next to the object file, wherever that
+  # happens to be.
+  # Much of this is similar to the tru64 case; see comments there.
+  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+  test "x$dir" = "x$object" && dir=
+  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  if test "$libtool" = yes; then
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir.libs/$base.d
+    "$@" -Wc,+Maked
+  else
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir$base.d
+    "$@" +Maked
+  fi
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+     rm -f "$tmpdepfile1" "$tmpdepfile2"
+     exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  if test -f "$tmpdepfile"; then
+    sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
+    # Add `dependent.h:' lines.
+    sed -ne '2,${
+	       s/^ *//
+	       s/ \\*$//
+	       s/$/:/
+	       p
+	     }' "$tmpdepfile" >> "$depfile"
+  else
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile" "$tmpdepfile2"
+  ;;
+
+tru64)
+   # The Tru64 compiler uses -MD to generate dependencies as a side
+   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
+   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+   # dependencies in `foo.d' instead, so we check for that too.
+   # Subdirectories are respected.
+   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+   test "x$dir" = "x$object" && dir=
+   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+
+   if test "$libtool" = yes; then
+      # With Tru64 cc, shared objects can also be used to make a
+      # static library.  This mechanism is used in libtool 1.4 series to
+      # handle both shared and static libraries in a single compilation.
+      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
+      #
+      # With libtool 1.5 this exception was removed, and libtool now
+      # generates 2 separate objects for the 2 libraries.  These two
+      # compilations output dependencies in $dir.libs/$base.o.d and
+      # in $dir$base.o.d.  We have to check for both files, because
+      # one of the two compilations can be disabled.  We should prefer
+      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+      # automatically cleaned when .libs/ is deleted, while ignoring
+      # the former would cause a distcleancheck panic.
+      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
+      tmpdepfile2=$dir$base.o.d          # libtool 1.5
+      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
+      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
+      "$@" -Wc,-MD
+   else
+      tmpdepfile1=$dir$base.o.d
+      tmpdepfile2=$dir$base.d
+      tmpdepfile3=$dir$base.d
+      tmpdepfile4=$dir$base.d
+      "$@" -MD
+   fi
+
+   stat=$?
+   if test $stat -eq 0; then :
+   else
+      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+      exit $stat
+   fi
+
+   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+   do
+     test -f "$tmpdepfile" && break
+   done
+   if test -f "$tmpdepfile"; then
+      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+      # That's a tab and a space in the [].
+      sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+   else
+      echo "#dummy" > "$depfile"
+   fi
+   rm -f "$tmpdepfile"
+   ;;
+
+#nosideeffect)
+  # This comment above is used by automake to tell side-effect
+  # dependency tracking mechanisms from slower ones.
+
+dashmstdout)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout, regardless of -o.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  # Remove `-o $object'.
+  IFS=" "
+  for arg
+  do
+    case $arg in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    *)
+      set fnord "$@" "$arg"
+      shift # fnord
+      shift # $arg
+      ;;
+    esac
+  done
+
+  test -z "$dashmflag" && dashmflag=-M
+  # Require at least two characters before searching for `:'
+  # in the target name.  This is to cope with DOS-style filenames:
+  # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
+  "$@" $dashmflag |
+    sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"
+  rm -f "$depfile"
+  cat < "$tmpdepfile" > "$depfile"
+  tr ' ' '
+' < "$tmpdepfile" | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+dashXmstdout)
+  # This case only exists to satisfy depend.m4.  It is never actually
+  # run, as this mode is specially recognized in the preamble.
+  exit 1
+  ;;
+
+makedepend)
+  "$@" || exit $?
+  # Remove any Libtool call
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+  # X makedepend
+  shift
+  cleared=no eat=no
+  for arg
+  do
+    case $cleared in
+    no)
+      set ""; shift
+      cleared=yes ;;
+    esac
+    if test $eat = yes; then
+      eat=no
+      continue
+    fi
+    case "$arg" in
+    -D*|-I*)
+      set fnord "$@" "$arg"; shift ;;
+    # Strip any option that makedepend may not understand.  Remove
+    # the object too, otherwise makedepend will parse it as a source file.
+    -arch)
+      eat=yes ;;
+    -*|$object)
+      ;;
+    *)
+      set fnord "$@" "$arg"; shift ;;
+    esac
+  done
+  obj_suffix=`echo "$object" | sed 's/^.*\././'`
+  touch "$tmpdepfile"
+  ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
+  rm -f "$depfile"
+  cat < "$tmpdepfile" > "$depfile"
+  sed '1,2d' "$tmpdepfile" | tr ' ' '
+' | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile" "$tmpdepfile".bak
+  ;;
+
+cpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  # Remove `-o $object'.
+  IFS=" "
+  for arg
+  do
+    case $arg in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    *)
+      set fnord "$@" "$arg"
+      shift # fnord
+      shift # $arg
+      ;;
+    esac
+  done
+
+  "$@" -E |
+    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+       -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
+    sed '$ s: \\$::' > "$tmpdepfile"
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  cat < "$tmpdepfile" >> "$depfile"
+  sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+msvisualcpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  IFS=" "
+  for arg
+  do
+    case "$arg" in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
+	set fnord "$@"
+	shift
+	shift
+	;;
+    *)
+	set fnord "$@" "$arg"
+	shift
+	shift
+	;;
+    esac
+  done
+  "$@" -E 2>/dev/null |
+  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::	\1 \\:p' >> "$depfile"
+  echo "	" >> "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+msvcmsys)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+none)
+  exec "$@"
+  ;;
+
+*)
+  echo "Unknown depmode $depmode" 1>&2
+  exit 1
+  ;;
+esac
+
+exit 0
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/doc/Makefile.am b/framework/modules/c_LibExifModule/libexif-0.6.20/doc/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..405ba95e045f66d65a5c1c93ae059537c22691dc
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/doc/Makefile.am
@@ -0,0 +1,113 @@
+########################################################################
+# Conditional rules, depending on tool availability
+########################################################################
+
+DOXYGEN_FILES =
+DOXYGEN_STAMPS =
+DOXYGEN_UPLOAD =
+
+DOXYGEN_INSTALL_TARGETS =
+DOXYGEN_UNINSTALL_TARGETS =
+
+DOXYGEN_CLEAN_TARGETS =
+
+DOXYGEN_TARBALLS =
+
+# FIXME: Depending on the source files would be sufficient, but only
+#        maintainable with a completely non-recursive build.
+#        Depending on libexif.la works at least.
+$(top_builddir)/libexif/libexif.la:
+	cd $(top_builddir)/libexif && $(MAKE) libexif.la
+
+if BUILD_DOCS
+if HAVE_DOXYGEN
+
+DOXYGEN_UPLOAD += $(HTML_APIDOC_DIR).uploaded
+
+DOXYGEN_STAMPS += $(HTML_APIDOC_DIR).stamp
+$(HTML_APIDOC_DIR).stamp: Doxyfile $(top_builddir)/libexif/libexif.la
+	$(DOXYGEN) $<
+	echo > $@
+
+DOXYGEN_TARBALLS += $(HTML_APIDOC_DIR).tar.gz
+$(HTML_APIDOC_DIR).tar.gz: $(HTML_APIDOC_DIR).stamp
+	(cd $(DOXYGEN_OUTPUT_DIR) && $(AMTAR) chof - $(HTML_APIDOC_DIR) | GZIP=--best gzip -c) > $@
+
+if ENABLE_INTERNAL_DOCS
+DOXYGEN_UPLOAD += $(HTML_APIDOC_INTERNALS_DIR).uploaded
+
+DOXYGEN_STAMPS += $(HTML_APIDOC_INTERNALS_DIR).stamp
+$(HTML_APIDOC_INTERNALS_DIR).stamp: Doxyfile-internals $(top_builddir)/libexif/libexif.la
+	$(DOXYGEN) $<
+	echo > $@
+
+DOXYGEN_TARBALLS += $(HTML_APIDOC_INTERNALS_DIR).tar.gz
+$(HTML_APIDOC_INTERNALS_DIR).tar.gz: $(HTML_APIDOC_INTERNALS_DIR).stamp
+	(cd $(DOXYGEN_OUTPUT_DIR) && $(AMTAR) chof - $(HTML_APIDOC_INTERNALS_DIR) | GZIP=--best gzip -c) > $@
+
+DOXYGEN_INSTALL_TARGETS += install-apidocs-internals
+install-apidocs-internals: $(HTML_APIDOC_INTERNALS_DIR).stamp
+	mkdir -p "$(DESTDIR)$(docdir)"
+	find "$(DOXYGEN_OUTPUT_DIR)/$(HTML_APIDOC_INTERNALS_DIR)" \
+		\( -type d -exec chmod 0755 {} \; \) -or \
+		\( -type f -exec chmod 0644 {} \; \)
+	(unset CDPATH; cd "$(DOXYGEN_OUTPUT_DIR)" && tar cpf - "$(HTML_APIDOC_INTERNALS_DIR)") \
+		| (cd "$(DESTDIR)$(docdir)" && tar xpf -)
+
+DOXYGEN_UNINSTALL_TARGETS += uninstall-apidocs-internals
+uninstall-apidocs-internals:
+	rm -rf "$(DESTDIR)$(docdir)/$(HTML_APIDOC_INTERNALS_DIR)"
+
+endif
+
+DOXYGEN_INSTALL_TARGETS += install-apidocs
+install-apidocs: $(HTML_APIDOC_DIR).stamp
+	mkdir -p "$(DESTDIR)$(docdir)"
+	find "$(DOXYGEN_OUTPUT_DIR)/$(HTML_APIDOC_DIR)" \
+		\( -type d -exec chmod 0755 {} \; \) -or \
+		\( -type f -exec chmod 0644 {} \; \)
+	(unset CDPATH; cd "$(DOXYGEN_OUTPUT_DIR)" && tar cpf - "$(HTML_APIDOC_DIR)") \
+		| (cd "$(DESTDIR)$(docdir)" && tar xpf -)
+
+DOXYGEN_UNINSTALL_TARGETS += uninstall-apidocs
+uninstall-apidocs:
+	rm -rf "$(DESTDIR)$(docdir)/$(HTML_APIDOC_DIR)"
+
+DOXYGEN_CLEAN_TARGETS += clean-apidocs
+clean-apidocs:
+	rm -rf $(DOXYGEN_OUTPUT_DIR)
+	rm -f $(HTML_APIDOC_DIR).tar.gz $(HTML_APIDOC_INTERNALS_DIR).tar.gz
+
+$(DOXYGEN_UPLOAD): $(DOXYGEN_STAMPS)
+	find $(DOXYGEN_OUTPUT_DIR) \( -type d -exec chmod a+rx,go-w,g+s {} \; \) \
+		-or \( -type f -exec chmod a+r {} \; \)
+	rsync -avz --progress $(DOXYGEN_OUTPUT_DIR)/$(HTML_APIDOC_DIR)/ sf:/home/users/h/hu/hun/libexif/htdocs/api/
+if ENABLE_INTERNAL_DOCS
+	rsync -avz --progress $(DOXYGEN_OUTPUT_DIR)/$(HTML_APIDOC_INTERNALS_DIR)/ sf:/home/users/h/hu/hun/libexif/htdocs/internals/
+endif
+	ssh "sf" "find /home/groups/l/li/libexif/htdocs/internals /home/groups/l/li/libexif/htdocs/api \( -type d -exec chgrp libexif {} \; -exec chmod g+rwxs,a+rx {} \; \) -or \( -type f -exec chgrp libexif {} \; -exec chmod g+rw {} \; \( -name '*.html' -or -name '*.png' -or -name '*.php' -or -name '*.jpg' -or -name '*.css' -name '*.dot' -name '*.map' \) -exec chmod a+r {} \; \)"
+
+endif # HAVE_DOXYGEN
+endif # BUILD_DOCS
+
+
+########################################################################
+# Common part
+########################################################################
+
+EXTRA_DIST = Doxyfile.in Doxyfile-internals.in footer.html README.apidocs $(HTML_APIDOC_DIR).tar.gz
+
+doc_DATA = $(DOXYGEN_FILES)
+
+all-local: $(DOXYGEN_STAMPS)
+
+install-data-local: $(DOXYGEN_INSTALL_TARGETS)
+
+uninstall-local: $(DOXYGEN_UNINSTALL_TARGETS)
+
+clean-local: $(DOXYGEN_CLEAN_TARGETS)
+
+upload: $(DOXYGEN_UPLOAD)
+
+CLEANFILES = $(DOXYGEN_FILES) $(DOXYGEN_STAMPS)
+
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/doc/README.apidocs b/framework/modules/c_LibExifModule/libexif-0.6.20/doc/README.apidocs
new file mode 100644
index 0000000000000000000000000000000000000000..4486f5dfce2e79c208db73ad8b0f0a6c9d68145f
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/doc/README.apidocs
@@ -0,0 +1,7 @@
+Rules for the API docs:
+
+  1. Clearly distinguish between internal and the external API/ABI.
+  2. Mark internal stuff with \internal.
+  3. If this has been solved, start documenting the external interface.
+
+Thank you.
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/doc/footer.html b/framework/modules/c_LibExifModule/libexif-0.6.20/doc/footer.html
new file mode 100644
index 0000000000000000000000000000000000000000..52ba8abfff8a872c2538d92077bb3471be6df0e3
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/doc/footer.html
@@ -0,0 +1,14 @@
+
+
+<hr size="1">
+<address style="text-align: right;">
+<a href="http://sourceforge.net" title="Hosted by SourceForge.net" target="_top">
+<img src="http://sourceforge.net/sflogo.php?group_id=12272&amp;type=1"
+width="88" height="31" border="0" align="top" alt="SourceForge.net Logo" /></a>
+
+<small>Generated by&nbsp;<a href="http://www.doxygen.org/" target="_top"><img src="doxygen.png" alt="doxygen" align="middle" border="0">
+</a>
+</small></address>
+</body>
+</html>
+
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/doc/libexif-api.html.tar.gz b/framework/modules/c_LibExifModule/libexif-0.6.20/doc/libexif-api.html.tar.gz
new file mode 100644
index 0000000000000000000000000000000000000000..6893eea82e9a89f3171615aa2931796236bde98c
Binary files /dev/null and b/framework/modules/c_LibExifModule/libexif-0.6.20/doc/libexif-api.html.tar.gz differ
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/install-sh b/framework/modules/c_LibExifModule/libexif-0.6.20/install-sh
new file mode 100644
index 0000000000000000000000000000000000000000..6781b987bdbcbc23efe6bbe1654a1e3637b9af07
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/install-sh
@@ -0,0 +1,520 @@
+#!/bin/sh
+# install - install a program, script, or datafile
+
+scriptversion=2009-04-28.21; # UTC
+
+# This originates from X11R5 (mit/util/scripts/install.sh), which was
+# later released in X11R6 (xc/config/util/install.sh) with the
+# following copyright and license.
+#
+# Copyright (C) 1994 X Consortium
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+# ings in this Software without prior written authorization from the X Consor-
+# tium.
+#
+#
+# FSF changes to this file are in the public domain.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+
+nl='
+'
+IFS=" ""	$nl"
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit=${DOITPROG-}
+if test -z "$doit"; then
+  doit_exec=exec
+else
+  doit_exec=$doit
+fi
+
+# Put in absolute file names if you don't have them in your path;
+# or use environment vars.
+
+chgrpprog=${CHGRPPROG-chgrp}
+chmodprog=${CHMODPROG-chmod}
+chownprog=${CHOWNPROG-chown}
+cmpprog=${CMPPROG-cmp}
+cpprog=${CPPROG-cp}
+mkdirprog=${MKDIRPROG-mkdir}
+mvprog=${MVPROG-mv}
+rmprog=${RMPROG-rm}
+stripprog=${STRIPPROG-strip}
+
+posix_glob='?'
+initialize_posix_glob='
+  test "$posix_glob" != "?" || {
+    if (set -f) 2>/dev/null; then
+      posix_glob=
+    else
+      posix_glob=:
+    fi
+  }
+'
+
+posix_mkdir=
+
+# Desired mode of installed file.
+mode=0755
+
+chgrpcmd=
+chmodcmd=$chmodprog
+chowncmd=
+mvcmd=$mvprog
+rmcmd="$rmprog -f"
+stripcmd=
+
+src=
+dst=
+dir_arg=
+dst_arg=
+
+copy_on_change=false
+no_target_directory=
+
+usage="\
+Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+   or: $0 [OPTION]... SRCFILES... DIRECTORY
+   or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+   or: $0 [OPTION]... -d DIRECTORIES...
+
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
+
+Options:
+     --help     display this help and exit.
+     --version  display version info and exit.
+
+  -c            (ignored)
+  -C            install only if different (preserve the last data modification time)
+  -d            create directories instead of installing files.
+  -g GROUP      $chgrpprog installed files to GROUP.
+  -m MODE       $chmodprog installed files to MODE.
+  -o USER       $chownprog installed files to USER.
+  -s            $stripprog installed files.
+  -t DIRECTORY  install into DIRECTORY.
+  -T            report an error if DSTFILE is a directory.
+
+Environment variables override the default commands:
+  CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
+  RMPROG STRIPPROG
+"
+
+while test $# -ne 0; do
+  case $1 in
+    -c) ;;
+
+    -C) copy_on_change=true;;
+
+    -d) dir_arg=true;;
+
+    -g) chgrpcmd="$chgrpprog $2"
+	shift;;
+
+    --help) echo "$usage"; exit $?;;
+
+    -m) mode=$2
+	case $mode in
+	  *' '* | *'	'* | *'
+'*	  | *'*'* | *'?'* | *'['*)
+	    echo "$0: invalid mode: $mode" >&2
+	    exit 1;;
+	esac
+	shift;;
+
+    -o) chowncmd="$chownprog $2"
+	shift;;
+
+    -s) stripcmd=$stripprog;;
+
+    -t) dst_arg=$2
+	shift;;
+
+    -T) no_target_directory=true;;
+
+    --version) echo "$0 $scriptversion"; exit $?;;
+
+    --)	shift
+	break;;
+
+    -*)	echo "$0: invalid option: $1" >&2
+	exit 1;;
+
+    *)  break;;
+  esac
+  shift
+done
+
+if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+  # When -d is used, all remaining arguments are directories to create.
+  # When -t is used, the destination is already specified.
+  # Otherwise, the last argument is the destination.  Remove it from $@.
+  for arg
+  do
+    if test -n "$dst_arg"; then
+      # $@ is not empty: it contains at least $arg.
+      set fnord "$@" "$dst_arg"
+      shift # fnord
+    fi
+    shift # arg
+    dst_arg=$arg
+  done
+fi
+
+if test $# -eq 0; then
+  if test -z "$dir_arg"; then
+    echo "$0: no input file specified." >&2
+    exit 1
+  fi
+  # It's OK to call `install-sh -d' without argument.
+  # This can happen when creating conditional directories.
+  exit 0
+fi
+
+if test -z "$dir_arg"; then
+  trap '(exit $?); exit' 1 2 13 15
+
+  # Set umask so as not to create temps with too-generous modes.
+  # However, 'strip' requires both read and write access to temps.
+  case $mode in
+    # Optimize common cases.
+    *644) cp_umask=133;;
+    *755) cp_umask=22;;
+
+    *[0-7])
+      if test -z "$stripcmd"; then
+	u_plus_rw=
+      else
+	u_plus_rw='% 200'
+      fi
+      cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+    *)
+      if test -z "$stripcmd"; then
+	u_plus_rw=
+      else
+	u_plus_rw=,u+rw
+      fi
+      cp_umask=$mode$u_plus_rw;;
+  esac
+fi
+
+for src
+do
+  # Protect names starting with `-'.
+  case $src in
+    -*) src=./$src;;
+  esac
+
+  if test -n "$dir_arg"; then
+    dst=$src
+    dstdir=$dst
+    test -d "$dstdir"
+    dstdir_status=$?
+  else
+
+    # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+    # might cause directories to be created, which would be especially bad
+    # if $src (and thus $dsttmp) contains '*'.
+    if test ! -f "$src" && test ! -d "$src"; then
+      echo "$0: $src does not exist." >&2
+      exit 1
+    fi
+
+    if test -z "$dst_arg"; then
+      echo "$0: no destination specified." >&2
+      exit 1
+    fi
+
+    dst=$dst_arg
+    # Protect names starting with `-'.
+    case $dst in
+      -*) dst=./$dst;;
+    esac
+
+    # If destination is a directory, append the input filename; won't work
+    # if double slashes aren't ignored.
+    if test -d "$dst"; then
+      if test -n "$no_target_directory"; then
+	echo "$0: $dst_arg: Is a directory" >&2
+	exit 1
+      fi
+      dstdir=$dst
+      dst=$dstdir/`basename "$src"`
+      dstdir_status=0
+    else
+      # Prefer dirname, but fall back on a substitute if dirname fails.
+      dstdir=`
+	(dirname "$dst") 2>/dev/null ||
+	expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	     X"$dst" : 'X\(//\)[^/]' \| \
+	     X"$dst" : 'X\(//\)$' \| \
+	     X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
+	echo X"$dst" |
+	    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+		   s//\1/
+		   q
+		 }
+		 /^X\(\/\/\)[^/].*/{
+		   s//\1/
+		   q
+		 }
+		 /^X\(\/\/\)$/{
+		   s//\1/
+		   q
+		 }
+		 /^X\(\/\).*/{
+		   s//\1/
+		   q
+		 }
+		 s/.*/./; q'
+      `
+
+      test -d "$dstdir"
+      dstdir_status=$?
+    fi
+  fi
+
+  obsolete_mkdir_used=false
+
+  if test $dstdir_status != 0; then
+    case $posix_mkdir in
+      '')
+	# Create intermediate dirs using mode 755 as modified by the umask.
+	# This is like FreeBSD 'install' as of 1997-10-28.
+	umask=`umask`
+	case $stripcmd.$umask in
+	  # Optimize common cases.
+	  *[2367][2367]) mkdir_umask=$umask;;
+	  .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+	  *[0-7])
+	    mkdir_umask=`expr $umask + 22 \
+	      - $umask % 100 % 40 + $umask % 20 \
+	      - $umask % 10 % 4 + $umask % 2
+	    `;;
+	  *) mkdir_umask=$umask,go-w;;
+	esac
+
+	# With -d, create the new directory with the user-specified mode.
+	# Otherwise, rely on $mkdir_umask.
+	if test -n "$dir_arg"; then
+	  mkdir_mode=-m$mode
+	else
+	  mkdir_mode=
+	fi
+
+	posix_mkdir=false
+	case $umask in
+	  *[123567][0-7][0-7])
+	    # POSIX mkdir -p sets u+wx bits regardless of umask, which
+	    # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+	    ;;
+	  *)
+	    tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+	    trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+	    if (umask $mkdir_umask &&
+		exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+	    then
+	      if test -z "$dir_arg" || {
+		   # Check for POSIX incompatibilities with -m.
+		   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+		   # other-writeable bit of parent directory when it shouldn't.
+		   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+		   ls_ld_tmpdir=`ls -ld "$tmpdir"`
+		   case $ls_ld_tmpdir in
+		     d????-?r-*) different_mode=700;;
+		     d????-?--*) different_mode=755;;
+		     *) false;;
+		   esac &&
+		   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+		     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+		     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+		   }
+		 }
+	      then posix_mkdir=:
+	      fi
+	      rmdir "$tmpdir/d" "$tmpdir"
+	    else
+	      # Remove any dirs left behind by ancient mkdir implementations.
+	      rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+	    fi
+	    trap '' 0;;
+	esac;;
+    esac
+
+    if
+      $posix_mkdir && (
+	umask $mkdir_umask &&
+	$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+      )
+    then :
+    else
+
+      # The umask is ridiculous, or mkdir does not conform to POSIX,
+      # or it failed possibly due to a race condition.  Create the
+      # directory the slow way, step by step, checking for races as we go.
+
+      case $dstdir in
+	/*) prefix='/';;
+	-*) prefix='./';;
+	*)  prefix='';;
+      esac
+
+      eval "$initialize_posix_glob"
+
+      oIFS=$IFS
+      IFS=/
+      $posix_glob set -f
+      set fnord $dstdir
+      shift
+      $posix_glob set +f
+      IFS=$oIFS
+
+      prefixes=
+
+      for d
+      do
+	test -z "$d" && continue
+
+	prefix=$prefix$d
+	if test -d "$prefix"; then
+	  prefixes=
+	else
+	  if $posix_mkdir; then
+	    (umask=$mkdir_umask &&
+	     $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+	    # Don't fail if two instances are running concurrently.
+	    test -d "$prefix" || exit 1
+	  else
+	    case $prefix in
+	      *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+	      *) qprefix=$prefix;;
+	    esac
+	    prefixes="$prefixes '$qprefix'"
+	  fi
+	fi
+	prefix=$prefix/
+      done
+
+      if test -n "$prefixes"; then
+	# Don't fail if two instances are running concurrently.
+	(umask $mkdir_umask &&
+	 eval "\$doit_exec \$mkdirprog $prefixes") ||
+	  test -d "$dstdir" || exit 1
+	obsolete_mkdir_used=true
+      fi
+    fi
+  fi
+
+  if test -n "$dir_arg"; then
+    { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+    { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+      test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
+  else
+
+    # Make a couple of temp file names in the proper directory.
+    dsttmp=$dstdir/_inst.$$_
+    rmtmp=$dstdir/_rm.$$_
+
+    # Trap to clean up those temp files at exit.
+    trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+
+    # Copy the file name to the temp name.
+    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+
+    # and set any options; do chmod last to preserve setuid bits.
+    #
+    # If any of these fail, we abort the whole thing.  If we want to
+    # ignore errors from any of these, just make sure not to ignore
+    # errors from the above "$doit $cpprog $src $dsttmp" command.
+    #
+    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
+    { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
+    { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+
+    # If -C, don't bother to copy if it wouldn't change the file.
+    if $copy_on_change &&
+       old=`LC_ALL=C ls -dlL "$dst"	2>/dev/null` &&
+       new=`LC_ALL=C ls -dlL "$dsttmp"	2>/dev/null` &&
+
+       eval "$initialize_posix_glob" &&
+       $posix_glob set -f &&
+       set X $old && old=:$2:$4:$5:$6 &&
+       set X $new && new=:$2:$4:$5:$6 &&
+       $posix_glob set +f &&
+
+       test "$old" = "$new" &&
+       $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
+    then
+      rm -f "$dsttmp"
+    else
+      # Rename the file to the real destination.
+      $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
+
+      # The rename failed, perhaps because mv can't rename something else
+      # to itself, or perhaps because mv is so ancient that it does not
+      # support -f.
+      {
+	# Now remove or move aside any old file at destination location.
+	# We try this two ways since rm can't unlink itself on some
+	# systems and the destination file might be busy for other
+	# reasons.  In this case, the final cleanup might fail but the new
+	# file should still install successfully.
+	{
+	  test ! -f "$dst" ||
+	  $doit $rmcmd -f "$dst" 2>/dev/null ||
+	  { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+	    { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+	  } ||
+	  { echo "$0: cannot unlink or rename $dst" >&2
+	    (exit 1); exit 1
+	  }
+	} &&
+
+	# Now rename the file to the real destination.
+	$doit $mvcmd "$dsttmp" "$dst"
+      }
+    fi || exit 1
+
+    trap '' 0
+  fi
+done
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif.spec b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif.spec
new file mode 100644
index 0000000000000000000000000000000000000000..d5a0c7cb98977591055c7c244d385828f04a6ac3
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif.spec
@@ -0,0 +1,54 @@
+Name: libexif
+Summary: EXIF tag library
+Version: 0.6.20
+Release: 1
+Source: http://prdownloads.sourceforge.net/libexif/%{name}-%{version}.tar.bz2
+Url: http://sourceforge.net/projects/libexif/
+Group: System Environment/Libraries
+License: LGPL
+# replaced Packager: header, as most people making packages will be somebody
+# else. original spec file author is Mark Pulford <mark@kyne.com.au>
+BuildRoot: %{_tmppath}/%{name}-%{version}-root
+Prefix: %{_prefix}
+
+%description
+libexif is a library for parsing, editing, and saving EXIF data. It is
+intended to replace lots of redundant implementations in command-line
+utilities and programs with GUIs.
+
+%package devel
+Summary: The files needed for libexif application development
+Group: Development/Libraries
+Requires: %{name} = %{version}
+
+%description devel
+The libexif-devel package contains the libraries and include files
+that you can use to develop libexif applications.
+
+%prep
+%setup
+
+%build
+%configure
+make
+
+%install
+rm -rf $RPM_BUILD_ROOT
+%makeinstall
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(-,root,root)
+%doc ChangeLog README NEWS AUTHORS COPYING
+%{_libdir}/libexif.so.*
+%{_datadir}/locale/*/LC_MESSAGES/*.mo
+
+%files devel
+%defattr(-,root,root)
+%{_libdir}/pkgconfig/libexif.pc
+%{_includedir}/libexif
+%{_libdir}/libexif.la
+%{_libdir}/libexif.a
+%{_libdir}/libexif.so
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/Makefile.am b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..dde00ac6fe64b7cef7fe3a78616eb68e171aa91f
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/Makefile.am
@@ -0,0 +1,67 @@
+EXTRA_DIST =
+lib_LTLIBRARIES =
+noinst_LTLIBRARIES =
+
+include canon/Makefile-files
+include fuji/Makefile-files
+include olympus/Makefile-files
+include pentax/Makefile-files
+
+# The -no-undefined makes it possible to build DLLs for Windows,
+# or shared libraries for Tru64 or AIX (according to the autobook
+# chapter on "Portable Library Design"). It doesn't seem to hurt
+# elsewhere, so we can leave it in.
+lib_LTLIBRARIES += libexif.la
+libexif_la_LDFLAGS = \
+	-export-symbols $(srcdir)/libexif.sym \
+	-no-undefined -version-info @LIBEXIF_VERSION_INFO@
+libexif_la_SOURCES =		\
+	exif-byte-order.c	\
+	exif-content.c		\
+	exif-data.c		\
+	exif-entry.c		\
+	exif-format.c		\
+	exif-ifd.c		\
+	exif-loader.c		\
+	exif-log.c		\
+	exif-mem.c		\
+	exif-mnote-data.c	\
+	exif-mnote-data-priv.h	\
+	exif-tag.c		\
+	exif-utils.c		\
+	i18n.h
+libexif_la_DEPENDENCIES = \
+	$(srcdir)/libexif.sym \
+	libmnote-canon.la		\
+	libmnote-fuji.la		\
+	libmnote-olympus.la	\
+	libmnote-pentax.la
+libexif_la_LIBADD =			\
+	$(LTLIBINTL)			\
+	libmnote-canon.la		\
+	libmnote-fuji.la	\
+	libmnote-olympus.la	\
+	libmnote-pentax.la
+
+libexifincludedir = $(includedir)/libexif
+libexifinclude_HEADERS = 	\
+	exif-byte-order.h	\
+	exif-content.h		\
+	exif-data.h		\
+	exif-data-type.h \
+	exif-entry.h		\
+	exif-format.h		\
+	exif-ifd.h		\
+	exif-loader.h		\
+	exif-log.h		\
+	exif-mem.h		\
+	exif-mnote-data.h	\
+	exif-tag.h		\
+	exif-utils.h		\
+	_stdint.h
+
+EXTRA_DIST += exif-system.h exif.h
+
+EXTRA_DIST += libexif.sym
+
+DISTCLEANFILES = _stdint.h
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/_stdint.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/_stdint.h
new file mode 100644
index 0000000000000000000000000000000000000000..eb93aba4c614ba5cc84b9ffaa1e1f382e6af9837
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/_stdint.h
@@ -0,0 +1,7 @@
+/* This file is generated automatically by configure */
+
+//modified to not include stdint for visual studio builds
+
+#ifdef HAVE_STDINT_H
+#include <stdint.h>
+#endif
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/canon/Makefile-files b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/canon/Makefile-files
new file mode 100644
index 0000000000000000000000000000000000000000..ef7ee2b98a9bfab7395884c5534417e09233ad11
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/canon/Makefile-files
@@ -0,0 +1,7 @@
+# -*- Makefile -*-
+noinst_LTLIBRARIES += libmnote-canon.la
+libmnote_canon_la_SOURCES = \
+	canon/exif-mnote-data-canon.c canon/exif-mnote-data-canon.h \
+	canon/mnote-canon-entry.c canon/mnote-canon-entry.h \
+	canon/mnote-canon-tag.c canon/mnote-canon-tag.h
+libmnote_canon_la_LIBADD = $(LTLIBINTL)
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/canon/exif-mnote-data-canon.c b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/canon/exif-mnote-data-canon.c
new file mode 100644
index 0000000000000000000000000000000000000000..eb535985a4157e413d03204271ee4df9958284b3
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/canon/exif-mnote-data-canon.c
@@ -0,0 +1,389 @@
+/* exif-mnote-data-canon.c
+ *
+ * Copyright (c) 2002, 2003 Lutz Mueller <lutz@users.sourceforge.net>
+ * Copyright (c) 2003 Matthieu Castet <mat-c@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#include <config.h>
+#include "exif-mnote-data-canon.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <libexif/exif-byte-order.h>
+#include <libexif/exif-utils.h>
+#include <libexif/exif-data.h>
+
+#define DEBUG
+
+static void
+exif_mnote_data_canon_clear (ExifMnoteDataCanon *n)
+{
+	ExifMnoteData *d = (ExifMnoteData *) n;
+	unsigned int i;
+
+	if (!n) return;
+
+	if (n->entries) {
+		for (i = 0; i < n->count; i++)
+			if (n->entries[i].data) {
+				exif_mem_free (d->mem, n->entries[i].data);
+				n->entries[i].data = NULL;
+			}
+		exif_mem_free (d->mem, n->entries);
+		n->entries = NULL;
+		n->count = 0;
+	}
+}
+
+static void
+exif_mnote_data_canon_free (ExifMnoteData *n)
+{
+	if (!n) return;
+
+	exif_mnote_data_canon_clear ((ExifMnoteDataCanon *) n);
+}
+
+static void
+exif_mnote_data_canon_get_tags (ExifMnoteDataCanon *dc, unsigned int n,
+		unsigned int *m, unsigned int *s)
+{
+	unsigned int from = 0, to;
+
+	if (!dc || !m) return;
+	for (*m = 0; *m < dc->count; (*m)++) {
+		to = from + mnote_canon_entry_count_values (&dc->entries[*m]);
+		if (to > n) {
+			if (s) *s = n - from;
+			break;
+		}
+		from = to;
+	}
+}
+
+static char *
+exif_mnote_data_canon_get_value (ExifMnoteData *note, unsigned int n, char *val, unsigned int maxlen)
+{
+	ExifMnoteDataCanon *dc = (ExifMnoteDataCanon *) note;
+	unsigned int m, s;
+
+	if (!dc) return NULL;
+	exif_mnote_data_canon_get_tags (dc, n, &m, &s);
+	if (m >= dc->count) return NULL;
+	return mnote_canon_entry_get_value (&dc->entries[m], s, val, maxlen);
+}
+
+static void
+exif_mnote_data_canon_set_byte_order (ExifMnoteData *d, ExifByteOrder o)
+{
+	ExifByteOrder o_orig;
+	ExifMnoteDataCanon *n = (ExifMnoteDataCanon *) d;
+	unsigned int i;
+
+	if (!n) return;
+
+	o_orig = n->order;
+	n->order = o;
+	for (i = 0; i < n->count; i++) {
+		n->entries[i].order = o;
+		exif_array_set_byte_order (n->entries[i].format, n->entries[i].data,
+				n->entries[i].components, o_orig, o);
+	}
+}
+
+static void
+exif_mnote_data_canon_set_offset (ExifMnoteData *n, unsigned int o)
+{
+	if (n) ((ExifMnoteDataCanon *) n)->offset = o;
+}
+
+static void
+exif_mnote_data_canon_save (ExifMnoteData *ne, 
+	unsigned char **buf, unsigned int *buf_size)
+{
+	ExifMnoteDataCanon *n = (ExifMnoteDataCanon *) ne;
+	size_t i, o, s, doff;
+	unsigned char *t;
+	size_t ts;
+
+	if (!n || !buf || !buf_size) return;
+
+	/*
+	 * Allocate enough memory for all entries and the number
+	 * of entries.
+	 */
+	*buf_size = 2 + n->count * 12 + 4;
+	*buf = exif_mem_alloc (ne->mem, sizeof (char) * *buf_size);
+	if (!*buf) {
+		EXIF_LOG_NO_MEMORY(ne->log, "ExifMnoteCanon", *buf_size);
+		return;
+	}
+
+	/* Save the number of entries */
+	exif_set_short (*buf, n->order, (ExifShort) n->count);
+	
+	/* Save each entry */
+	for (i = 0; i < n->count; i++) {
+		o = 2 + i * 12;
+		exif_set_short (*buf + o + 0, n->order, (ExifShort) n->entries[i].tag);
+		exif_set_short (*buf + o + 2, n->order, (ExifShort) n->entries[i].format);
+		exif_set_long  (*buf + o + 4, n->order,
+				n->entries[i].components);
+		o += 8;
+		s = exif_format_get_size (n->entries[i].format) *
+						n->entries[i].components;
+		if (s > 65536) {
+			/* Corrupt data: EXIF data size is limited to the
+			 * maximum size of a JPEG segment (64 kb).
+			 */
+			continue;
+		}
+		if (s > 4) {
+			ts = *buf_size + s;
+
+			/* Ensure even offsets. Set padding bytes to 0. */
+			if (s & 1) ts += 1;
+			t = exif_mem_realloc (ne->mem, *buf,
+						 sizeof (char) * ts);
+			if (!t) {
+				EXIF_LOG_NO_MEMORY(ne->log, "ExifMnoteCanon", ts);
+				return;
+			}
+			*buf = t;
+			*buf_size = ts;
+			doff = *buf_size - s;
+			if (s & 1) { doff--; *(*buf + *buf_size - 1) = '\0'; }
+			exif_set_long (*buf + o, n->order, n->offset + doff);
+		} else
+			doff = o;
+
+		/*
+		 * Write the data. Fill unneeded bytes with 0. Do not
+		 * crash if data is NULL.
+		 */
+		if (!n->entries[i].data) memset (*buf + doff, 0, s);
+		else memcpy (*buf + doff, n->entries[i].data, s);
+		if (s < 4) memset (*buf + doff + s, 0, (4 - s));
+	}
+}
+
+/* XXX
+ * FIXME: exif_mnote_data_canon_load() may fail and there is no
+ *        semantics to express that.
+ *        See bug #1054323 for details, especially the comment by liblit
+ *        after it has supposedly been fixed:
+ *
+ *        https://sourceforge.net/tracker/?func=detail&aid=1054323&group_id=12272&atid=112272
+ *        Unfortunately, the "return" statements aren't commented at
+ *        all, so it isn't trivial to find out what is a normal
+ *        return, and what is a reaction to an error condition.
+ */
+
+static void
+exif_mnote_data_canon_load (ExifMnoteData *ne,
+	const unsigned char *buf, unsigned int buf_size)
+{
+	ExifMnoteDataCanon *n = (ExifMnoteDataCanon *) ne;
+	ExifShort c;
+	size_t i, tcount, o, datao;
+
+	if (!n || !buf || !buf_size) {
+		exif_log (ne->log, EXIF_LOG_CODE_CORRUPT_DATA,
+			  "ExifMnoteCanon", "Short MakerNote");
+		return;
+	}
+	datao = 6 + n->offset;
+	if ((datao + 2 < datao) || (datao + 2 < 2) || (datao + 2 > buf_size)) {
+		exif_log (ne->log, EXIF_LOG_CODE_CORRUPT_DATA,
+			  "ExifMnoteCanon", "Short MakerNote");
+		return;
+	}
+
+	/* Read the number of tags */
+	c = exif_get_short (buf + datao, n->order);
+	datao += 2;
+
+	/* Remove any old entries */
+	exif_mnote_data_canon_clear (n);
+
+	/* Reserve enough space for all the possible MakerNote tags */
+	n->entries = exif_mem_alloc (ne->mem, sizeof (MnoteCanonEntry) * c);
+	if (!n->entries) {
+		EXIF_LOG_NO_MEMORY(ne->log, "ExifMnoteCanon", sizeof (MnoteCanonEntry) * c);
+		return;
+	}
+
+	/* Parse the entries */
+	tcount = 0;
+	for (i = c, o = datao; i; --i, o += 12) {
+		size_t s;
+		if ((o + 12 < o) || (o + 12 < 12) || (o + 12 > buf_size)) {
+			exif_log (ne->log, EXIF_LOG_CODE_CORRUPT_DATA,
+				"ExifMnoteCanon", "Short MakerNote");
+			break;
+	        }
+
+		n->entries[tcount].tag        = exif_get_short (buf + o, n->order);
+		n->entries[tcount].format     = exif_get_short (buf + o + 2, n->order);
+		n->entries[tcount].components = exif_get_long (buf + o + 4, n->order);
+		n->entries[tcount].order      = n->order;
+
+		exif_log (ne->log, EXIF_LOG_CODE_DEBUG, "ExifMnoteCanon",
+			"Loading entry 0x%x ('%s')...", n->entries[tcount].tag,
+			 mnote_canon_tag_get_name (n->entries[tcount].tag));
+
+		/*
+		 * Size? If bigger than 4 bytes, the actual data is not
+		 * in the entry but somewhere else (offset).
+		 */
+		s = exif_format_get_size (n->entries[tcount].format) * 
+								  n->entries[tcount].components;
+		n->entries[tcount].size = s;
+		if (!s) {
+			exif_log (ne->log, EXIF_LOG_CODE_CORRUPT_DATA,
+				  "ExifMnoteCanon",
+				  "Invalid zero-length tag size");
+			continue;
+
+		} else {
+			size_t dataofs = o + 8;
+			if (s > 4) dataofs = exif_get_long (buf + dataofs, n->order) + 6;
+			if ((dataofs + s < s) || (dataofs + s < dataofs) || (dataofs + s > buf_size)) {
+				exif_log (ne->log, EXIF_LOG_CODE_DEBUG,
+					"ExifMnoteCanon",
+					"Tag data past end of buffer (%u > %u)",
+					dataofs + s, buf_size);
+				continue;
+			}
+
+			n->entries[tcount].data = exif_mem_alloc (ne->mem, s);
+			if (!n->entries[tcount].data) {
+				EXIF_LOG_NO_MEMORY(ne->log, "ExifMnoteCanon", s);
+				continue;
+			}
+			memcpy (n->entries[tcount].data, buf + dataofs, s);
+		}
+
+		/* Tag was successfully parsed */
+		++tcount;
+	}
+	/* Store the count of successfully parsed tags */
+	n->count = tcount;
+}
+
+static unsigned int
+exif_mnote_data_canon_count (ExifMnoteData *n)
+{
+	ExifMnoteDataCanon *dc = (ExifMnoteDataCanon *) n;
+	unsigned int i, c;
+
+	for (i = c = 0; dc && (i < dc->count); i++)
+		c += mnote_canon_entry_count_values (&dc->entries[i]);
+	return c;
+}
+
+static unsigned int
+exif_mnote_data_canon_get_id (ExifMnoteData *d, unsigned int i)
+{
+	ExifMnoteDataCanon *dc = (ExifMnoteDataCanon *) d;
+	unsigned int m;
+
+	if (!dc) return 0;
+	exif_mnote_data_canon_get_tags (dc, i, &m, NULL);
+	if (m >= dc->count) return 0;
+	return dc->entries[m].tag;
+}
+
+static const char *
+exif_mnote_data_canon_get_name (ExifMnoteData *note, unsigned int i)
+{
+	ExifMnoteDataCanon *dc = (ExifMnoteDataCanon *) note;
+	unsigned int m, s;
+
+	if (!dc) return NULL;
+	exif_mnote_data_canon_get_tags (dc, i, &m, &s);
+	if (m >= dc->count) return NULL;
+	return mnote_canon_tag_get_name_sub (dc->entries[m].tag, s, dc->options);
+}
+
+static const char *
+exif_mnote_data_canon_get_title (ExifMnoteData *note, unsigned int i)
+{
+	ExifMnoteDataCanon *dc = (ExifMnoteDataCanon *) note;
+	unsigned int m, s;
+
+	if (!dc) return NULL;
+	exif_mnote_data_canon_get_tags (dc, i, &m, &s);
+	if (m >= dc->count) return NULL;
+	return mnote_canon_tag_get_title_sub (dc->entries[m].tag, s, dc->options);
+}
+
+static const char *
+exif_mnote_data_canon_get_description (ExifMnoteData *note, unsigned int i)
+{
+	ExifMnoteDataCanon *dc = (ExifMnoteDataCanon *) note;
+	unsigned int m;
+
+	if (!dc) return NULL;
+	exif_mnote_data_canon_get_tags (dc, i, &m, NULL);
+	if (m >= dc->count) return NULL;
+	return mnote_canon_tag_get_description (dc->entries[m].tag);
+}
+
+int
+exif_mnote_data_canon_identify (const ExifData *ed, const ExifEntry *e)
+{
+	char value[8];
+	ExifEntry *em = exif_data_get_entry (ed, EXIF_TAG_MAKE);
+	if (!em) 
+		return 0;
+	return !strcmp (exif_entry_get_value (em, value, sizeof (value)), "Canon");
+}
+
+ExifMnoteData *
+exif_mnote_data_canon_new (ExifMem *mem, ExifDataOption o)
+{
+	ExifMnoteData *d;
+	ExifMnoteDataCanon *dc;
+
+	if (!mem) return NULL;
+
+	d = exif_mem_alloc (mem, sizeof (ExifMnoteDataCanon));
+	if (!d)
+		return NULL;
+
+	exif_mnote_data_construct (d, mem);
+
+	/* Set up function pointers */
+	d->methods.free            = exif_mnote_data_canon_free;
+	d->methods.set_byte_order  = exif_mnote_data_canon_set_byte_order;
+	d->methods.set_offset      = exif_mnote_data_canon_set_offset;
+	d->methods.load            = exif_mnote_data_canon_load;
+	d->methods.save            = exif_mnote_data_canon_save;
+	d->methods.count           = exif_mnote_data_canon_count;
+	d->methods.get_id          = exif_mnote_data_canon_get_id;
+	d->methods.get_name        = exif_mnote_data_canon_get_name;
+	d->methods.get_title       = exif_mnote_data_canon_get_title;
+	d->methods.get_description = exif_mnote_data_canon_get_description;
+	d->methods.get_value       = exif_mnote_data_canon_get_value;
+
+	dc = (ExifMnoteDataCanon*)d;
+	dc->options = o;
+	return d;
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/canon/exif-mnote-data-canon.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/canon/exif-mnote-data-canon.h
new file mode 100644
index 0000000000000000000000000000000000000000..2a1cc87a949ff58635cc44b80aaba359b5303883
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/canon/exif-mnote-data-canon.h
@@ -0,0 +1,58 @@
+/* exif-mnote-data-canon.h
+ *
+ * Copyright (c) 2002, 2003 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#ifndef __EXIF_MNOTE_DATA_CANON_H__
+#define __EXIF_MNOTE_DATA_CANON_H__
+
+#include <libexif/exif-byte-order.h>
+#include <libexif/exif-mnote-data.h>
+#include <libexif/exif-mnote-data-priv.h>
+#include <libexif/exif-mem.h>
+#include <libexif/exif-data.h>
+
+typedef struct _ExifMnoteDataCanon ExifMnoteDataCanon;
+
+#include <libexif/canon/mnote-canon-entry.h>
+
+struct _ExifMnoteDataCanon {
+	ExifMnoteData parent;
+
+	MnoteCanonEntry *entries;
+	unsigned int count;
+
+	ExifByteOrder order;
+	unsigned int offset;
+
+	ExifDataOption options;
+};
+
+/*! Detect if MakerNote is recognized as one handled by the Canon module.
+ * 
+ * \param[in] ed image #ExifData to identify as as a Canon type
+ * \param[in] e #ExifEntry for EXIF_TAG_MAKER_NOTE, from within ed but
+ *   duplicated here for convenience
+ * \return 0 if not recognized, nonzero if recognized. The specific nonzero 
+ *   value returned may identify a subtype unique within this module.
+ */
+int exif_mnote_data_canon_identify (const ExifData *ed, const ExifEntry *e);
+
+ExifMnoteData *exif_mnote_data_canon_new (ExifMem *mem, ExifDataOption o);
+
+#endif /* __EXIF_MNOTE_DATA_CANON_H__ */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/canon/mnote-canon-entry.c b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/canon/mnote-canon-entry.c
new file mode 100644
index 0000000000000000000000000000000000000000..6e3be199b4691f0cc5acafd325af2b6f29876bc5
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/canon/mnote-canon-entry.c
@@ -0,0 +1,759 @@
+/* mnote-canon-entry.c
+ *
+ * Copyright (c) 2002 Lutz Mueller <lutz@users.sourceforge.net>
+ * Copyright (c) 2003 Matthieu Castet <mat-c@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#include "config.h"
+#include "mnote-canon-entry.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+
+#include <libexif/exif-format.h>
+#include <libexif/exif-utils.h>
+#include <libexif/i18n.h>
+
+/* #define DEBUG */
+
+#define CF(format,target,v,maxlen)                              \
+{                                                               \
+        if (format != target) {                                 \
+                snprintf (v, maxlen,                            \
+                        _("Invalid format '%s', "               \
+                        "expected '%s'."),                      \
+                        exif_format_get_name (format),          \
+                        exif_format_get_name (target));         \
+                break;                                          \
+        }                                                       \
+}
+
+#define CC(number,target,v,maxlen)                                      \
+{                                                                       \
+        if (number != target) {                                         \
+                snprintf (v, maxlen,                                    \
+                        _("Invalid number of components (%i, "          \
+                        "expected %i)."), (int) number, (int) target);  \
+                break;                                                  \
+        }                                                               \
+}
+#define CC2(number,t1,t2,v,maxlen)                                      \
+{                                                                       \
+	if ((number != t1) && (number != t2)) {                         \
+		snprintf (v, maxlen,                                    \
+			_("Invalid number of components (%i, "          \
+			"expected %i or %i)."), (int) number,		\
+			(int) t1, (int) t2);  				\
+		break;                                                  \
+	}                                                               \
+}
+
+#define UNDEFINED 0xFF
+    
+static const struct canon_entry_table_t {
+  unsigned int subtag;
+  ExifShort value;
+  const char *name;
+} entries_settings_1 [] = {
+#ifndef NO_VERBOSE_TAG_DATA
+  { 0,  1, N_("Macro")},
+  { 0,  2, N_("Normal")},
+  { 2,  1, N_("Economy")},
+  { 2,  2, N_("Normal")},  
+  { 2,  3, N_("Fine")},
+  { 2,  4, N_("RAW")},
+  { 2,  5, N_("Superfine")},
+  { 3,  0, N_("Off")},
+  { 3,  1, N_("Auto")},
+  { 3,  2, N_("On")},
+  { 3,  3, N_("Red-eye reduction")},
+  { 3,  4, N_("Slow synchro")},
+  { 3,  5, N_("Auto, red-eye reduction")},
+  { 3,  6, N_("On, red-eye reduction")},
+  { 3, 16, N_("External flash")},
+  { 4,  0, N_("Single")},
+  { 4,  1, N_("Continuous")},
+  { 4,  2, N_("Movie")},
+  { 4,  3, N_("Continuous, speed priority")},
+  { 4,  4, N_("Continuous, low")},
+  { 4,  5, N_("Continuous, high")},
+  { 6,  0, N_("One-shot AF")},
+  { 6,  1, N_("AI servo AF")},
+  { 6,  2, N_("AI focus AF")},
+  { 6,  3, N_("Manual focus")},
+  { 6,  4, N_("Single")},
+  { 6,  5, N_("Continuous")},
+  { 6,  6, N_("Manual focus")},
+  { 6,  16, N_("Pan focus")},
+  { 8,  1, N_("JPEG")},
+  { 8,  2, N_("CRW+THM")},
+  { 8,  3, N_("AVI+THM")},
+  { 8,  4, N_("TIF")},
+  { 8,  5, N_("TIF+JPEG")},
+  { 8,  6, N_("CR2")},
+  { 8,  7, N_("CR2+JPEG")},
+  { 9,  0, N_("Large")},
+  { 9,  1, N_("Medium")},
+  { 9,  2, N_("Small")},
+  { 9,  5, N_("Medium 1")},
+  { 9,  6, N_("Medium 2")},
+  { 9,  7, N_("Medium 3")},
+  { 9,  8, N_("Postcard")},
+  { 9,  9, N_("Widescreen")},
+  {10,  0, N_("Full auto")},
+  {10,  1, N_("Manual")},
+  {10,  2, N_("Landscape")},
+  {10,  3, N_("Fast shutter")},
+  {10,  4, N_("Slow shutter")},
+  {10,  5, N_("Night")},
+  {10,  6, N_("Grayscale")},
+  {10,  7, N_("Sepia")},
+  {10,  8, N_("Portrait")},
+  {10,  9, N_("Sports")},
+  {10, 10, N_("Macro")},
+  {10, 11, N_("Black & white")},
+  {10, 12, N_("Pan focus")},
+  {10, 13, N_("Vivid")},
+  {10, 14, N_("Neutral")},
+  {10, 15, N_("Flash off")},
+  {10, 16, N_("Long shutter")},
+  {10, 17, N_("Super macro")},
+  {10, 18, N_("Foliage")},
+  {10, 19, N_("Indoor")},
+  {10, 20, N_("Fireworks")},
+  {10, 21, N_("Beach")},
+  {10, 22, N_("Underwater")},
+  {10, 23, N_("Snow")},
+  {10, 24, N_("Kids & pets")},
+  {10, 25, N_("Night snapshot")},
+  {10, 26, N_("Digital macro")},
+  {10, 27, N_("My colors")},
+  {10, 28, N_("Still image")},
+  {10, 30, N_("Color accent")},
+  {10, 31, N_("Color swap")},
+  {10, 32, N_("Aquarium")},
+  {10, 33, N_("ISO 3200")},
+  {11, 0, N_("None")},
+  {11, 1, N_("2x")},
+  {11, 2, N_("4x")},
+  {11, 3, N_("Other")},
+  {12, 0x0000, N_("Normal")},
+  {12, 0x0001, N_("High")},
+  {12, 0xffff, N_("Low")},
+  {13, 0x0000, N_("Normal")},
+  {13, 0x0001, N_("High")},
+  {13, 0xffff, N_("Low")},
+  {14, 0x0000, N_("Normal")},
+  {14, 0x0001, N_("High")},
+  {14, 0xffff, N_("Low")},
+  {15, 14, N_("Auto high")},
+  {15, 15, N_("Auto")},
+  {15, 16, N_("50")},
+  {15, 17, N_("100")},
+  {15, 18, N_("200")},
+  {15, 19, N_("400")},
+  {15, 20, N_("800")},
+  {16,  0, N_("Default")},
+  {16,  1, N_("Spot")},
+  {16,  2, N_("Average")},	
+  {16,  3, N_("Evaluative")},
+  {16,  4, N_("Partial")},
+  {16,  5, N_("Center-weighted average")},
+  {17,  0, N_("Manual")},
+  {17,  1, N_("Auto")},
+  {17,  2, N_("Not known")},
+  {17,  3, N_("Macro")},
+  {17,  4, N_("Very close")},
+  {17,  5, N_("Close")},
+  {17,  6, N_("Middle range")},
+  {17,  7, N_("Far range")},
+  {17,  8, N_("Pan focus")},
+  {17,  9, N_("Super macro")},
+  {17,  10, N_("Infinity")},
+  {18, 0x2005, N_("Manual AF point selection")},
+  {18, 0x3000, N_("None (MF)")},
+  {18, 0x3001, N_("Auto-selected")},
+  {18, 0x3002, N_("Right")},
+  {18, 0x3003, N_("Center")},
+  {18, 0x3004, N_("Left")},
+  {18, 0x4001, N_("Auto AF point selection")},
+  {19,  0, N_("Easy shooting")},
+  {19,  1, N_("Program")},
+  {19,  2, N_("Tv-priority")},
+  {19,  3, N_("Av-priority")},
+  {19,  4, N_("Manual")},
+  {19,  5, N_("A-DEP")},
+  {19,  6, N_("M-DEP")},
+  {21,   1, N_("Canon EF 50mm f/1.8")},
+  {21,   2, N_("Canon EF 28mm f/2.8")},
+  {21,   4, N_("Sigma UC Zoom 35-135mm f/4-5.6")},
+  {21,   6, N_("Tokina AF193-2 19-35mm f/3.5-4.5")},
+  {21,   7, N_("Canon EF 100-300mm F5.6L")},
+  {21,  10, N_("Sigma 50mm f/2.8 EX or 28mm f/1.8")},
+  {21,  11, N_("Canon EF 35mm f/2")},
+  {21,  13, N_("Canon EF 15mm f/2.8")},
+  {21,  21, N_("Canon EF 80-200mm f/2.8L")},
+  {21,  22, N_("Tokina AT-X280AF PRO 28-80mm F2.8 Aspherical")},
+  {21,  26, N_("Cosina 100mm f/3.5 Macro AF")},
+  {21,  28, N_("Tamron AF Aspherical 28-200mm f/3.8-5.6")},
+  {21,  29, N_("Canon EF 50mm f/1.8 MkII")},
+  {21,  31, N_("Tamron SP AF 300mm f/2.8 LD IF")},
+  {21,  32, N_("Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye")},
+  {21,  39, N_("Canon EF 75-300mm f/4-5.6")},
+  {21,  40, N_("Canon EF 28-80mm f/3.5-5.6")},
+  {21,  43, N_("Canon EF 28-105mm f/4-5.6")},
+  {21,  45, N_("Canon EF-S 18-55mm f/3.5-5.6")},
+  {21, 124, N_("Canon MP-E 65mm f/2.8 1-5x Macro Photo")},
+  {21, 125, N_("Canon TS-E 24mm f/3.5L")},
+  {21, 126, N_("Canon TS-E 45mm f/2.8")},
+  {21, 127, N_("Canon TS-E 90mm f/2.8")},
+  {21, 130, N_("Canon EF 50mm f/1.0L")},
+  {21, 131, N_("Sigma 17-35mm f2.8-4 EX Aspherical HSM")},
+  {21, 134, N_("Canon EF 600mm f/4L IS")},
+  {21, 135, N_("Canon EF 200mm f/1.8L")},
+  {21, 136, N_("Canon EF 300mm f/2.8L")},
+  {21, 137, N_("Canon EF 85mm f/1.2L")},
+  {21, 139, N_("Canon EF 400mm f/2.8L")},
+  {21, 141, N_("Canon EF 500mm f/4.5L")},
+  {21, 142, N_("Canon EF 300mm f/2.8L IS")},
+  {21, 143, N_("Canon EF 500mm f/4L IS")},
+  {21, 149, N_("Canon EF 100mm f/2")},
+  {21, 150, N_("Sigma 20mm EX f/1.8")},
+  {21, 151, N_("Canon EF 200mm f/2.8L")},
+  {21, 152, N_("Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8")},
+  {21, 153, N_("Canon EF 35-350mm f/3.5-5.6L")},
+  {21, 155, N_("Canon EF 85mm f/1.8 USM")},
+  {21, 156, N_("Canon EF 28-105mm f/3.5-4.5 USM")},
+  {21, 160, N_("Canon EF 20-35mm f/3.5-4.5 USM")},
+  {21, 161, N_("Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8")},
+  {21, 165, N_("Canon EF 70-200mm f/2.8 L")},
+  {21, 166, N_("Canon EF 70-200mm f/2.8 L + x1.4")},
+  {21, 167, N_("Canon EF 70-200mm f/2.8 L + x2")},
+  {21, 168, N_("Canon EF 28mm f/1.8 USM")},
+  {21, 169, N_("Sigma 15-30mm f/3.5-4.5 EX DG Aspherical")},
+  {21, 170, N_("Canon EF 200mm f/2.8L II")},
+  {21, 173, N_("Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5")},
+  {21, 174, N_("Canon EF 135mm f/2L")},
+  {21, 176, N_("Canon EF 24-85mm f/3.5-4.5 USM")},
+  {21, 177, N_("Canon EF 300mm f/4L IS")},
+  {21, 178, N_("Canon EF 28-135mm f/3.5-5.6 IS")},
+  {21, 180, N_("Canon EF 35mm f/1.4L")},
+  {21, 181, N_("Canon EF 100-400mm f/4.5-5.6L IS + x1.4")},
+  {21, 182, N_("Canon EF 100-400mm f/4.5-5.6L IS + x2")},
+  {21, 183, N_("Canon EF 100-400mm f/4.5-5.6L IS")},
+  {21, 184, N_("Canon EF 400mm f/2.8L + x2")},
+  {21, 186, N_("Canon EF 70-200mm f/4L")},
+  {21, 190, N_("Canon EF 100mm f/2.8 Macro")},
+  {21, 191, N_("Canon EF 400mm f/4 DO IS")},
+  {21, 197, N_("Canon EF 75-300mm f/4-5.6 IS")},
+  {21, 198, N_("Canon EF 50mm f/1.4")},
+  {21, 202, N_("Canon EF 28-80 f/3.5-5.6 USM IV")},
+  {21, 211, N_("Canon EF 28-200mm f/3.5-5.6")},
+  {21, 213, N_("Canon EF 90-300mm f/4.5-5.6")},
+  {21, 214, N_("Canon EF-S 18-55mm f/3.5-4.5 USM")},
+  {21, 224, N_("Canon EF 70-200mm f/2.8L IS USM")},
+  {21, 225, N_("Canon EF 70-200mm f/2.8L IS USM + x1.4")},
+  {21, 226, N_("Canon EF 70-200mm f/2.8L IS USM + x2")},
+  {21, 229, N_("Canon EF 16-35mm f/2.8L")},
+  {21, 230, N_("Canon EF 24-70mm f/2.8L")},
+  {21, 231, N_("Canon EF 17-40mm f/4L")},
+  {21, 232, N_("Canon EF 70-300mm f/4.5-5.6 DO IS USM")},
+  {21, 234, N_("Canon EF-S 17-85mm f4-5.6 IS USM")},
+  {21, 235, N_("Canon EF-S10-22mm F3.5-4.5 USM")},
+  {21, 236, N_("Canon EF-S60mm F2.8 Macro USM")},
+  {21, 237, N_("Canon EF 24-105mm f/4L IS")},
+  {21, 238, N_("Canon EF 70-300mm F4-5.6 IS USM")},
+  {21, 241, N_("Canon EF 50mm F1.2L USM")},
+  {21, 242, N_("Canon EF 70-200mm f/4L IS USM")},
+  {28, 0, N_("Manual")},
+  {28, 1, N_("TTL")},
+  {28, 2, N_("A-TTL")},
+  {28, 3, N_("E-TTL")},
+  {28, 4, N_("FP sync enabled")},
+  {28, 7, N_("2nd-curtain sync used")},
+  {28, 11, N_("FP sync used")},
+  {28, 13, N_("Internal")},
+  {28, 14, N_("External")},
+  {31,  0, N_("Single")},
+  {31,  1, N_("Continuous")},
+  {32, 0, N_("Normal AE")},
+  {32, 1, N_("Exposure compensation")},
+  {32, 2, N_("AE lock")},
+  {32, 3, N_("AE lock + exposure compensation")},
+  {32, 4, N_("No AE")},
+  {33, 0, N_("Off")},
+  {33, 1, N_("On")},
+  {33, 2, N_("On, shot only")},
+  {39, 0, N_("Off")},
+  {39, 1, N_("Vivid")},
+  {39, 2, N_("Neutral")},
+  {39, 3, N_("Smooth")},
+  {39, 4, N_("Sepia")},
+  {39, 5, N_("Black & white")},
+  {39, 6, N_("Custom")},
+  {39, 100, N_("My color data")},
+  {40, 0, N_("Off")},
+  {40, 0x0500, N_("Full")},
+  {40, 0x0502, N_("2/3")},
+  {40, 0x0504, N_("1/3")},
+#endif
+  { 0,  0, NULL}
+},
+entries_focal_length [] = {
+#ifndef NO_VERBOSE_TAG_DATA
+	{0, 1, N_("Fixed")},
+	{0, 2, N_("Zoom")},
+#endif
+	{0, 0, NULL}
+},
+entries_settings_2 [] = {
+#ifndef NO_VERBOSE_TAG_DATA
+  { 6,  0, N_("Auto")},
+  { 6,  1, N_("Sunny")},
+  { 6,  2, N_("Cloudy")},
+  { 6,  3, N_("Tungsten")},
+  { 6,  4, N_("Fluorescent")},
+  { 6,  5, N_("Flash")},
+  { 6,  6, N_("Custom")},
+  { 6,  7, N_("Black & white")},
+  { 6,  8, N_("Shade")},
+  { 6,  9, N_("Manual temperature (Kelvin)")},
+  { 6,  10, N_("PC set 1")},
+  { 6,  11, N_("PC set 2")},
+  { 6,  12, N_("PC set 3")},
+  { 6,  14, N_("Daylight fluorescent")},
+  { 6,  15, N_("Custom 1")},
+  { 6,  16, N_("Custom 2")},
+  { 6,  17, N_("Underwater")},
+  { 7,  0, N_("Off")},
+  { 7,  1, N_("Night scene")},
+  { 7,  2, N_("On")},
+  { 7,  3, N_("None")},
+  { 13,  0x3000, N_("None (MF)")},
+  { 13,  0x3001, N_("Right")},
+  { 13,  0x3002, N_("Center")},
+  { 13,  0x3003, N_("Center-right")},
+  { 13,  0x3004, N_("Left")},
+  { 13,  0x3005, N_("Left-right")},
+  { 13,  0x3006, N_("Left-center")},
+  { 13,  0x3007, N_("All")},
+  { 15,  0, N_("Off")},
+  { 15,  1, N_("On (shot 1)")},
+  { 15,  2, N_("On (shot 2)")},
+  { 15,  3, N_("On (shot 3)")},
+  { 15,  0xffff, N_("On")},
+  { 25,  248, N_("EOS high-end")},
+  { 25,  250, N_("Compact")},
+  { 25,  252, N_("EOS mid-range")},
+  { 26,  0, N_("None")},
+  { 26,  1, N_("Rotate 90 CW")},
+  { 26,  2, N_("Rotate 180")},
+  { 26,  3, N_("Rotate 270 CW")},
+  { 26,  0xffff, N_("Rotated by software")},
+  { 27,  0, N_("Off")},
+  { 27,  1, N_("On")}, 
+  { 32,  0, N_("Off")},
+  { 32,  0x0014, N_("1/3")},
+  { 32,  0x008c, N_("2/3")},
+  { 32,  0x07d0, N_("Full")},
+#endif
+  {0, 0, NULL}
+},
+entries_panorama [] = {
+#ifndef NO_VERBOSE_TAG_DATA
+	{0, 0, N_("Left to right")},
+	{0, 1, N_("Right to left")},
+	{0, 2, N_("Bottom to top")},
+	{0, 3, N_("Top to bottom")},
+	{0, 4, N_("2x2 matrix (clockwise)")},
+#endif
+	{0, 0, NULL}
+},
+color_information [] = {
+#ifndef NO_VERBOSE_TAG_DATA
+  {0, 0, N_("Standard")},
+  {0, 1, N_("Manual")},
+  {0, 2, N_("Custom")},
+  {2, 0, N_("N/A")},
+  {2, 1, N_("Lowest")},
+  {2, 2, N_("Low")},
+  {2, 3, N_("Standard")},
+  {2, 4, N_("High")},
+  {2, 5, N_("Highest")},
+  {7,  0, N_("Auto")},
+  {7,  1, N_("Daylight")},
+  {7,  2, N_("Cloudy")},
+  {7,  3, N_("Tungsten")},
+  {7,  4, N_("Fluorescent")},
+  {7,  5, N_("Flash")},
+  {7,  6, N_("Custom")},
+  {7,  7, N_("Black & white")},
+  {7,  8, N_("Shade")},
+  {7,  9, N_("Manual temperature (Kelvin)")},
+  {7, 10, N_("PC set 1")},
+  {7, 11, N_("PC set 2")},
+  {7, 12, N_("PC set 3")},
+  {7, 14, N_("Daylight fluorescent")},
+  {7, 15, N_("Custom 1")},
+  {7, 16, N_("Custom 2")},
+  {7, 17, N_("Underwater")},
+  {9, 0x00, N_("None")},
+  {9, 0x01, N_("Standard")},
+  {9, 0x02, N_("Set 1")},
+  {9, 0x03, N_("Set 2")},
+  {9, 0x04, N_("Set 3")},
+  {9, 0x21, N_("User def. 1")},
+  {9, 0x22, N_("User def. 2")},
+  {9, 0x23, N_("User def. 3")},
+  {9, 0x41, N_("External 1")},
+  {9, 0x42, N_("External 2")},
+  {9, 0x43, N_("External 3")},
+  {9, 0x81, N_("Standard")},
+  {9, 0x82, N_("Portrait")},
+  {9, 0x83, N_("Landscape")},
+  {9, 0x84, N_("Neutral")},
+  {9, 0x85, N_("Faithful")},
+  {9, 0x86, N_("Monochrome")},
+#endif
+  {0, 0, NULL}
+};
+
+static void
+canon_search_table_value (const struct canon_entry_table_t table[],
+    unsigned int t, ExifShort vs, char *val, unsigned int maxlen)
+{
+	unsigned int j;
+
+	/* Search the table for the first matching subtag and value. */
+	for (j = 0; table[j].name && ((table[j].subtag < t) ||
+			((table[j].subtag == t) && table[j].value <= vs)); j++) {
+		if ((table[j].subtag == t) && (table[j].value == vs)) {
+			break;
+		}
+	}
+	if ((table[j].subtag == t) && (table[j].value == vs) && table[j].name) {
+		/* Matching subtag and value found. */
+		strncpy (val, _(table[j].name), maxlen);
+	} else {
+		/* No matching subtag and/or value found. */
+		snprintf (val, maxlen, "0x%04x", vs);
+	}
+}
+
+static void
+canon_search_table_bitfield (const struct canon_entry_table_t table[],
+    unsigned int t, ExifShort vs, char *val, unsigned int maxlen)
+{
+	unsigned int j;
+
+	/* Search the table for the first matching subtag. */
+	for (j = 0; table[j].name && (table[j].subtag <= t); j++) {
+		if (table[j].subtag == t) {
+			break;
+		}
+	}
+	if ((table[j].subtag == t) && table[j].name) {
+		unsigned int i, bit, lastbit = 0;
+
+		/*
+		 * Search the table for the last matching bit, because
+		 * that one needs no additional comma appended.
+		 */
+		for (i = j; table[i].name && (table[i].subtag == t); i++) {
+			bit = table[i].value;
+			if ((vs >> bit) & 1) {
+				lastbit = bit;
+			}
+		}
+		/* Search the table for all matching bits. */
+		for (i = j; table[i].name && (table[i].subtag == t); i++) {
+			bit = table[i].value;
+			if ((vs >> bit) & 1) {
+				strncat(val, _(table[i].name), maxlen - strlen (val));
+				if (bit != lastbit) 
+					strncat (val, _(", "), maxlen - strlen (val));
+			}
+		}
+	} else {
+		/* No matching subtag found. */
+		snprintf (val, maxlen, "0x%04x", vs);
+	}
+}
+
+unsigned int
+mnote_canon_entry_count_values (const MnoteCanonEntry *entry)
+{
+	unsigned int  val;
+
+	if (!entry) return 0;
+
+	switch (entry->tag) {
+	case MNOTE_CANON_TAG_FOCAL_LENGTH:
+	case MNOTE_CANON_TAG_PANORAMA:
+		return entry->components;
+	case MNOTE_CANON_TAG_SETTINGS_1:
+	case MNOTE_CANON_TAG_SETTINGS_2:
+	case MNOTE_CANON_TAG_CUSTOM_FUNCS:
+	case MNOTE_CANON_TAG_COLOR_INFORMATION:
+		if (entry->format != EXIF_FORMAT_SHORT) return 0;
+
+		val = exif_get_short (entry->data, entry->order);
+		/* val is buffer size, i.e. # of values plus 1 */
+		return MIN (entry->size - 2, val) / 2;
+	default:
+		return 1;
+	}
+}
+
+/*
+ * For reference, see Exif 2.1 specification (Appendix C), 
+ * or http://en.wikipedia.org/wiki/APEX_system
+ */
+static double
+apex_value_to_aperture (double x)
+{
+	return pow (2, x / 2.);
+}
+
+static double
+apex_value_to_shutter_speed(double x)
+{
+	return 1.0 / pow (2, x);
+}
+
+static double
+apex_value_to_iso_speed (double x)
+{
+	return 3.125 * pow (2, x);
+}
+
+char *
+mnote_canon_entry_get_value (const MnoteCanonEntry *entry, unsigned int t, char *val, unsigned int maxlen)
+{
+	char buf[128];
+	ExifLong vl;
+	ExifShort vs, n;
+	unsigned char *data;
+	double d;
+
+	if (!entry) 
+		return NULL;
+
+	data = entry->data;
+
+	memset (val, 0, maxlen);
+	maxlen--;
+
+	switch (entry->tag) {
+	case MNOTE_CANON_TAG_SETTINGS_1:
+		CF (entry->format, EXIF_FORMAT_SHORT, val, maxlen);
+		n = exif_get_short (data, entry->order) / 2;
+		if (t >= n) return NULL;
+		CC (entry->components, n, val, maxlen);
+		vs = exif_get_short (data + 2 + t * 2, entry->order);
+		switch (t) {
+		case 1:
+			if (!vs) {
+				strncpy(val, _("Off"), maxlen);
+				break;
+			}
+			snprintf (val, maxlen, _("%i (ms)"), vs * 100);
+			break;
+		case 15:
+			if (((vs & 0xC000) == 0x4000) && (vs != 0x7FFF)) {
+				/* Canon S3 IS - directly specified value */
+				snprintf (val, maxlen, "%i", vs & ~0x4000);
+			} else {
+				/* Standard Canon - index into lookup table */
+				canon_search_table_value (entries_settings_1, t, vs, val, maxlen);
+			}
+			break;
+		case 22:
+		case 23:
+		case 24:
+			snprintf (val, maxlen, "%u", vs);
+			break;
+		case 25:
+		case 26:
+			snprintf (val, maxlen, "%.2f", apex_value_to_aperture (vs / 32.0));
+			break;
+		case 28:
+			canon_search_table_bitfield(entries_settings_1, t, vs, val, maxlen);
+			break;
+		case 34:
+			snprintf (val, maxlen, "%.2f", vs / 10.0);
+			break;
+		case 35:
+		case 36:
+			snprintf (val, maxlen, "%u", vs);
+			break;
+		default:
+			canon_search_table_value (entries_settings_1, t, vs, val, maxlen);
+		}
+		break;
+
+	case MNOTE_CANON_TAG_FOCAL_LENGTH:
+		CF (entry->format, EXIF_FORMAT_SHORT, val, maxlen);
+		vs = exif_get_short (data + t * 2, entry->order);
+		switch (t) {
+		case 1:
+			snprintf (val, maxlen, "%u", vs);
+			break;
+		case 2:
+		case 3:
+			snprintf (val, maxlen, _("%.2f mm"), vs * 25.4 / 1000);
+			break;
+		default:
+			canon_search_table_value (entries_focal_length, t, vs, val, maxlen);
+		}
+		break;
+
+	case MNOTE_CANON_TAG_SETTINGS_2:
+		CF (entry->format, EXIF_FORMAT_SHORT, val, maxlen);
+		n = exif_get_short (data, entry->order) / 2;
+		if (t >= n) return NULL;
+		CC (entry->components, n, val, maxlen);
+		vs = exif_get_short (data + 2 + t * 2, entry->order);
+		switch (t) {
+		case 0:
+			snprintf (val, maxlen, "%.3f", pow (2, (ExifSShort)vs / 32.0));
+			break;
+		case 1:
+			snprintf (val, maxlen, "%.0f", apex_value_to_iso_speed ((ExifSShort)vs / 32.0));
+			break;
+		case 2:
+		case 5:
+		case 14:
+		case 16:
+			snprintf (val, maxlen, _("%.2f EV"), (ExifSShort)vs / 32.0);
+			break;
+		case 3:
+		case 20:
+			snprintf (val, maxlen, "%.2f", apex_value_to_aperture (vs / 32.0));
+			break;
+		case 4:
+		case 21:
+			d = apex_value_to_shutter_speed ((ExifSShort)vs / 32.0);
+			if (d < 1)
+				snprintf (val, maxlen, _("1/%i"),(int)(1.0 / d));
+			else
+				snprintf (val, maxlen, "%i", (int) d);
+			break;
+		case 8:
+			snprintf (val, maxlen, "%u", vs);
+			break;
+		case 12:
+			snprintf (val, maxlen, "%.2f", vs / 32.0);
+			break;
+		case 18:
+		case 19:
+			snprintf (val, maxlen, _("%u mm"), vs);
+			break;
+		case 28:
+			if ((ExifSShort)vs <= 0) {
+				strncpy(val, _("Off"), maxlen);
+				break;
+			}
+			snprintf (val, maxlen, _("%i (ms)"), vs * 100);
+			break;
+		default:
+			canon_search_table_value (entries_settings_2, t, vs, val, maxlen);
+		}
+		break;
+
+	case MNOTE_CANON_TAG_PANORAMA:
+		CF (entry->format, EXIF_FORMAT_SHORT, val, maxlen);
+		vs = exif_get_short (data + t * 2, entry->order);
+		canon_search_table_value (entries_panorama, t, vs, val, maxlen);
+		break;
+
+	case MNOTE_CANON_TAG_OWNER:
+		CC (entry->components, 32, val, maxlen);
+		/* Fall through; ImageType can have many sizes */
+	case MNOTE_CANON_TAG_IMAGE_TYPE:
+		CF (entry->format, EXIF_FORMAT_ASCII, val, maxlen);
+		strncpy (val, (char *)data, MIN (entry->size, maxlen));
+		break;
+
+	case MNOTE_CANON_TAG_FIRMWARE:
+		CF (entry->format, EXIF_FORMAT_ASCII, val, maxlen);
+/*		CC2 (entry->components, 24, 32, val, maxlen); Can also be 22 */
+		strncpy (val, (char *)data, MIN (entry->size, maxlen));
+		break;
+
+	case MNOTE_CANON_TAG_IMAGE_NUMBER:
+		CF (entry->format, EXIF_FORMAT_LONG, val, maxlen);
+		CC (entry->components, 1, val, maxlen);
+		vl = exif_get_long (data, entry->order);
+		snprintf (val, maxlen, "%03lu-%04lu",
+				(unsigned long) vl/10000,
+				(unsigned long) vl%10000);
+		break;
+
+	case MNOTE_CANON_TAG_SERIAL_NUMBER:
+		CF (entry->format, EXIF_FORMAT_LONG, val, maxlen);
+		CC (entry->components, 1, val, maxlen);
+		vl = exif_get_long (data, entry->order);
+		snprintf (val, maxlen, "%04X-%05d", (int)vl>>16,(int)vl&0xffff);
+		break;
+
+	case MNOTE_CANON_TAG_CUSTOM_FUNCS:
+		CF (entry->format, EXIF_FORMAT_SHORT, val, maxlen);
+		n = exif_get_short (data, entry->order) / 2;
+		if (t >= n) return NULL;
+		CC (entry->components, n, val, maxlen);
+		vs = exif_get_short (data + 2 + t * 2, entry->order);
+		snprintf (buf, sizeof (buf), "%u", vs);
+		strncat (val, buf, maxlen - strlen (val));
+		break;
+
+	case MNOTE_CANON_TAG_COLOR_INFORMATION:
+		CF (entry->format, EXIF_FORMAT_SHORT, val, maxlen);
+		n = exif_get_short (data, entry->order) / 2;
+		if (t >= n) return NULL;
+		CC (entry->components, n, val, maxlen);
+		vs = exif_get_short (data + 2 + t * 2, entry->order);
+		canon_search_table_value (color_information, t, vs, val, maxlen);
+		break;
+
+	default:
+#ifdef DEBUG
+	  {
+		int i;
+		if (entry->format == EXIF_FORMAT_SHORT)
+		for(i=0;i<entry->components;i++) {
+			vs = exif_get_short (data, entry->order);
+			data+=2;
+			printf ("Value%d=%d\n", i, vs);
+		}
+		else if (entry->format == EXIF_FORMAT_LONG)
+		for(i=0;i<entry->components;i++) {
+			vl = exif_get_long (data, entry->order);
+			data+=4;
+			printf ("Value%d=%d\n", i, vs);
+		}
+		else if (entry->format == EXIF_FORMAT_ASCII)
+		    strncpy (val, data, MIN (entry->size, maxlen));
+	  }
+#endif
+		break;
+	}
+	return val;
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/canon/mnote-canon-entry.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/canon/mnote-canon-entry.h
new file mode 100644
index 0000000000000000000000000000000000000000..a4d44998d7a6fe423db3d945e29892fe9afc1375
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/canon/mnote-canon-entry.h
@@ -0,0 +1,44 @@
+/* mnote-canon-entry.h
+ *
+ * Copyright (c) 2002 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#ifndef __MNOTE_CANON_ENTRY_H__
+#define __MNOTE_CANON_ENTRY_H__
+
+#include <libexif/exif-format.h>
+#include <libexif/exif-byte-order.h>
+#include <libexif/canon/mnote-canon-tag.h>
+
+typedef struct _MnoteCanonEntry        MnoteCanonEntry;
+
+struct _MnoteCanonEntry {
+	MnoteCanonTag tag;
+	ExifFormat format;
+	unsigned long components;
+
+	unsigned char *data;
+	unsigned int size;
+
+	ExifByteOrder order;
+};
+
+unsigned int mnote_canon_entry_count_values (const MnoteCanonEntry *);
+char        *mnote_canon_entry_get_value    (const MnoteCanonEntry *, unsigned int t, char *val, unsigned int maxlen);
+
+#endif /* __MNOTE_CANON_ENTRY_H__ */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/canon/mnote-canon-tag.c b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/canon/mnote-canon-tag.c
new file mode 100644
index 0000000000000000000000000000000000000000..6ef73a4e9ab841dc2b447fc3f8e9708ee68a2a04
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/canon/mnote-canon-tag.c
@@ -0,0 +1,201 @@
+/* mnote-canon-tag.c
+ *
+ * Copyright (c) 2002 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#include <config.h>
+#include "mnote-canon-tag.h"
+
+#include <stdlib.h>
+
+#include <libexif/i18n.h>
+
+static const struct {
+	MnoteCanonTag tag;
+	const char *name;
+	const char *title;
+	const char *description;
+} table[] = {
+#ifndef NO_VERBOSE_TAG_STRINGS
+	{MNOTE_CANON_TAG_SETTINGS_1, "Settings1", N_("Settings (First Part)"), ""},
+	{MNOTE_CANON_TAG_FOCAL_LENGTH, "FocalLength", N_("Focal Length"), ""},
+	{MNOTE_CANON_TAG_SETTINGS_2, "Settings2", N_("Settings (Second Part)"), ""},
+	{MNOTE_CANON_TAG_PANORAMA, "Panorama", N_("Panorama"), ""},
+	{MNOTE_CANON_TAG_IMAGE_TYPE, "ImageType", N_("Image Type"), ""},
+	{MNOTE_CANON_TAG_FIRMWARE, "FirmwareVersion", N_("Firmware Version"), ""},
+	{MNOTE_CANON_TAG_IMAGE_NUMBER, "ImageNumber", N_("Image Number"), ""},
+	{MNOTE_CANON_TAG_OWNER, "OwnerName", N_("Owner Name"), ""},
+	{MNOTE_CANON_TAG_COLOR_INFORMATION, "ColorInformation", N_("Color Information"), ""},
+	{MNOTE_CANON_TAG_SERIAL_NUMBER, "SerialNumber", N_("Serial Number"), ""},
+	{MNOTE_CANON_TAG_CUSTOM_FUNCS, "CustomFunctions", N_("Custom Functions"), ""},
+#endif
+	{0, NULL, NULL, NULL}
+};
+
+static const struct {
+	MnoteCanonTag tag;
+	unsigned int subtag;
+	const char *name;
+} table_sub[] = {
+#ifndef NO_VERBOSE_TAG_STRINGS
+	{MNOTE_CANON_TAG_SETTINGS_1,  0, N_("Macro Mode")},
+	{MNOTE_CANON_TAG_SETTINGS_1,  1, N_("Self-timer")},
+	{MNOTE_CANON_TAG_SETTINGS_1,  2, N_("Quality")},
+	{MNOTE_CANON_TAG_SETTINGS_1,  3, N_("Flash Mode")},
+	{MNOTE_CANON_TAG_SETTINGS_1,  4, N_("Drive Mode")},
+	{MNOTE_CANON_TAG_SETTINGS_1,  6, N_("Focus Mode")},
+	{MNOTE_CANON_TAG_SETTINGS_1,  8, N_("Record Mode")},
+	{MNOTE_CANON_TAG_SETTINGS_1,  9, N_("Image Size")},
+	{MNOTE_CANON_TAG_SETTINGS_1, 10, N_("Easy Shooting Mode")},
+	{MNOTE_CANON_TAG_SETTINGS_1, 11, N_("Digital Zoom")},
+	{MNOTE_CANON_TAG_SETTINGS_1, 12, N_("Contrast")},
+	{MNOTE_CANON_TAG_SETTINGS_1, 13, N_("Saturation")},
+	{MNOTE_CANON_TAG_SETTINGS_1, 14, N_("Sharpness")},
+	{MNOTE_CANON_TAG_SETTINGS_1, 15, N_("ISO")},
+	{MNOTE_CANON_TAG_SETTINGS_1, 16, N_("Metering Mode")},
+	{MNOTE_CANON_TAG_SETTINGS_1, 17, N_("Focus Range")},
+	{MNOTE_CANON_TAG_SETTINGS_1, 18, N_("AF Point")},
+	{MNOTE_CANON_TAG_SETTINGS_1, 19, N_("Exposure Mode")},
+	{MNOTE_CANON_TAG_SETTINGS_1, 21, N_("Lens Type")},
+	{MNOTE_CANON_TAG_SETTINGS_1, 22, N_("Long Focal Length of Lens")},
+	{MNOTE_CANON_TAG_SETTINGS_1, 23, N_("Short Focal Length of Lens")},
+	{MNOTE_CANON_TAG_SETTINGS_1, 24, N_("Focal Units per mm")},
+	{MNOTE_CANON_TAG_SETTINGS_1, 25, N_("Maximal Aperture")},
+	{MNOTE_CANON_TAG_SETTINGS_1, 26, N_("Minimal Aperture")},
+	{MNOTE_CANON_TAG_SETTINGS_1, 27, N_("Flash Activity")},
+	{MNOTE_CANON_TAG_SETTINGS_1, 28, N_("Flash Details")},
+	{MNOTE_CANON_TAG_SETTINGS_1, 31, N_("Focus Mode")},
+	{MNOTE_CANON_TAG_SETTINGS_1, 32, N_("AE Setting")},
+	{MNOTE_CANON_TAG_SETTINGS_1, 33, N_("Image Stabilization")},
+	{MNOTE_CANON_TAG_SETTINGS_1, 34, N_("Display Aperture")},
+	{MNOTE_CANON_TAG_SETTINGS_1, 35, N_("Zoom Source Width")},
+	{MNOTE_CANON_TAG_SETTINGS_1, 36, N_("Zoom Target Width")},
+	{MNOTE_CANON_TAG_SETTINGS_1, 39, N_("Photo Effect")},
+	{MNOTE_CANON_TAG_SETTINGS_1, 40, N_("Manual Flash Output")},
+	{MNOTE_CANON_TAG_SETTINGS_1, 41, N_("Color Tone")},
+	{MNOTE_CANON_TAG_FOCAL_LENGTH, 0, N_("Focal Type")},
+	{MNOTE_CANON_TAG_FOCAL_LENGTH, 1, N_("Focal Length")},
+	{MNOTE_CANON_TAG_FOCAL_LENGTH, 2, N_("Focal Plane X Size")},
+	{MNOTE_CANON_TAG_FOCAL_LENGTH, 3, N_("Focal Plane Y Size")},
+	{MNOTE_CANON_TAG_SETTINGS_2, 0, N_("Auto ISO")},
+	{MNOTE_CANON_TAG_SETTINGS_2, 1, N_("Shot ISO")},
+	{MNOTE_CANON_TAG_SETTINGS_2, 2, N_("Measured EV")},
+	{MNOTE_CANON_TAG_SETTINGS_2, 3, N_("Target Aperture")},
+	{MNOTE_CANON_TAG_SETTINGS_2, 4, N_("Target Exposure Time")},
+	{MNOTE_CANON_TAG_SETTINGS_2, 5, N_("Exposure Compensation")},
+	{MNOTE_CANON_TAG_SETTINGS_2, 6, N_("White Balance")},
+	{MNOTE_CANON_TAG_SETTINGS_2, 7, N_("Slow Shutter")},
+	{MNOTE_CANON_TAG_SETTINGS_2, 8, N_("Sequence Number")},
+	{MNOTE_CANON_TAG_SETTINGS_2, 12, N_("Flash Guide Number")},
+	{MNOTE_CANON_TAG_SETTINGS_2, 13, N_("AF Point")},
+	{MNOTE_CANON_TAG_SETTINGS_2, 14, N_("Flash Exposure Compensation")},
+	{MNOTE_CANON_TAG_SETTINGS_2, 15, N_("AE Bracketing")},
+	{MNOTE_CANON_TAG_SETTINGS_2, 16, N_("AE Bracket Value")},
+	{MNOTE_CANON_TAG_SETTINGS_2, 18, N_("Focus Distance Upper")},
+	{MNOTE_CANON_TAG_SETTINGS_2, 19, N_("Focus Distance Lower")},
+	{MNOTE_CANON_TAG_SETTINGS_2, 20, N_("FNumber")},
+	{MNOTE_CANON_TAG_SETTINGS_2, 21, N_("Exposure Time")},
+	{MNOTE_CANON_TAG_SETTINGS_2, 23, N_("Bulb Duration")},
+	{MNOTE_CANON_TAG_SETTINGS_2, 25, N_("Camera Type")},
+	{MNOTE_CANON_TAG_SETTINGS_2, 26, N_("Auto Rotate")},
+	{MNOTE_CANON_TAG_SETTINGS_2, 27, N_("ND Filter")},
+	{MNOTE_CANON_TAG_SETTINGS_2, 28, N_("Self-timer")},
+	{MNOTE_CANON_TAG_SETTINGS_2, 32, N_("Manual Flash Output")},
+	{MNOTE_CANON_TAG_PANORAMA, 2, N_("Panorama Frame")},
+	{MNOTE_CANON_TAG_PANORAMA, 5, N_("Panorama Direction")},
+	{MNOTE_CANON_TAG_COLOR_INFORMATION, 0, N_("Tone Curve")},
+	{MNOTE_CANON_TAG_COLOR_INFORMATION, 2, N_("Sharpness Frequency")},
+	{MNOTE_CANON_TAG_COLOR_INFORMATION, 7, N_("White Balance")},
+	{MNOTE_CANON_TAG_COLOR_INFORMATION, 9, N_("Picture Style")},
+#endif
+	{0, 0, NULL}
+};
+
+const char *
+mnote_canon_tag_get_name (MnoteCanonTag t)
+{
+	unsigned int i;
+
+	for (i = 0; i < sizeof (table) / sizeof (table[0]); i++)
+		if (table[i].tag == t) return table[i].name; /* do not translate */
+	return NULL;
+}
+
+const char *
+mnote_canon_tag_get_name_sub (MnoteCanonTag t, unsigned int s, ExifDataOption o)
+{
+	unsigned int i;
+	int tag_found = 0;
+
+	for (i = 0; i < sizeof (table_sub) / sizeof (table_sub[0]); i++) {
+		if (table_sub[i].tag == t) {
+			if (table_sub[i].subtag == s)
+				return table_sub[i].name;
+			tag_found = 1;
+		}
+	}
+	if (!tag_found || !(o & EXIF_DATA_OPTION_IGNORE_UNKNOWN_TAGS))
+		return mnote_canon_tag_get_name (t);
+	else
+		return NULL;
+}
+
+const char *
+mnote_canon_tag_get_title (MnoteCanonTag t)
+{
+	unsigned int i;
+
+	bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); 
+	for (i = 0; i < sizeof (table) / sizeof (table[0]); i++)
+		if (table[i].tag == t) return (_(table[i].title));
+	return NULL;
+}
+
+const char *
+mnote_canon_tag_get_title_sub (MnoteCanonTag t, unsigned int s, ExifDataOption o)
+{
+	unsigned int i;
+	int tag_found = 0;
+
+	for (i = 0; i < sizeof (table_sub) / sizeof (table_sub[0]); i++) {
+		if (table_sub[i].tag == t) {
+			if (table_sub[i].subtag == s)
+				return _(table_sub[i].name);
+			tag_found = 1;
+		}
+	}
+	if (!tag_found || !(o & EXIF_DATA_OPTION_IGNORE_UNKNOWN_TAGS))
+		return mnote_canon_tag_get_title (t);
+	else
+		return NULL;
+}
+
+const char *
+mnote_canon_tag_get_description (MnoteCanonTag t)
+{
+	unsigned int i;
+
+	for (i = 0; i < sizeof (table) / sizeof (table[0]); i++)
+		if (table[i].tag == t) {
+			if (!*table[i].description)
+				return "";
+			bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
+			return _(table[i].description);
+		}
+	return NULL;
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/canon/mnote-canon-tag.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/canon/mnote-canon-tag.h
new file mode 100644
index 0000000000000000000000000000000000000000..0c7d9aa57d6dc6cd9c8606284e4221fce1c2ebd2
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/canon/mnote-canon-tag.h
@@ -0,0 +1,59 @@
+/* mnote-canon-tag.h
+ *
+ * Copyright (c) 2002 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#ifndef __MNOTE_CANON_TAG_H__
+#define __MNOTE_CANON_TAG_H__
+
+#include <libexif/exif-data.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+enum _MnoteCanonTag {
+	MNOTE_CANON_TAG_UNKNOWN_0	= 0x0,
+	MNOTE_CANON_TAG_SETTINGS_1	= 0x1,
+	MNOTE_CANON_TAG_FOCAL_LENGTH	= 0x2,
+	MNOTE_CANON_TAG_UNKNOWN_3	= 0x3,
+	MNOTE_CANON_TAG_SETTINGS_2	= 0x4,
+	MNOTE_CANON_TAG_PANORAMA	= 0x5,
+	MNOTE_CANON_TAG_IMAGE_TYPE	= 0x6,
+	MNOTE_CANON_TAG_FIRMWARE	= 0x7,
+	MNOTE_CANON_TAG_IMAGE_NUMBER	= 0x8,
+	MNOTE_CANON_TAG_OWNER		= 0x9,
+	MNOTE_CANON_TAG_UNKNOWN_10	= 0xa,
+	MNOTE_CANON_TAG_SERIAL_NUMBER	= 0xc,
+	MNOTE_CANON_TAG_UNKNOWN_13	= 0xd,
+	MNOTE_CANON_TAG_CUSTOM_FUNCS	= 0xf,
+	MNOTE_CANON_TAG_COLOR_INFORMATION = 0xa0
+};
+typedef enum _MnoteCanonTag MnoteCanonTag;
+
+const char *mnote_canon_tag_get_name        (MnoteCanonTag);
+const char *mnote_canon_tag_get_name_sub    (MnoteCanonTag, unsigned int, ExifDataOption);
+const char *mnote_canon_tag_get_title       (MnoteCanonTag);
+const char *mnote_canon_tag_get_title_sub   (MnoteCanonTag, unsigned int, ExifDataOption);
+const char *mnote_canon_tag_get_description (MnoteCanonTag);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __MNOTE_CANON_TAG_H__ */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-byte-order.c b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-byte-order.c
new file mode 100644
index 0000000000000000000000000000000000000000..05164e0862f5d5d2f6eedb9be5e4c1a71db0514d
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-byte-order.c
@@ -0,0 +1,39 @@
+/* exif-byte-order.c
+ *
+ * Copyright (c) 2002 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#include <config.h>
+
+#include <libexif/exif-byte-order.h>
+#include <libexif/i18n.h>
+
+#include <stdlib.h>
+
+const char *
+exif_byte_order_get_name (ExifByteOrder order)
+{
+	switch (order) {
+	case EXIF_BYTE_ORDER_MOTOROLA:
+		return (_("Motorola"));
+	case EXIF_BYTE_ORDER_INTEL:
+		return (_("Intel"));
+	default:
+		return NULL;
+	}
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-byte-order.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-byte-order.h
new file mode 100644
index 0000000000000000000000000000000000000000..ab5c9ad74541457516bf64e90eeb7b29429452be
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-byte-order.h
@@ -0,0 +1,46 @@
+/* exif-byte-order.h
+ *
+ * Copyright (c) 2002 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#ifndef __EXIF_BYTE_ORDER_H__
+#define __EXIF_BYTE_ORDER_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/*! Which byte order to use */
+typedef enum {
+	/*! Big-endian byte order */
+	EXIF_BYTE_ORDER_MOTOROLA,
+	/*! Little-endian byte order */
+	EXIF_BYTE_ORDER_INTEL
+} ExifByteOrder;
+
+/*! Return a short, localized, textual name for the given byte order.
+ * \param[in] order byte order
+ * \return localized textual name of the byte order
+ */
+const char *exif_byte_order_get_name (ExifByteOrder order);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __EXIF_BYTE_ORDER_H__ */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-content.c b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-content.c
new file mode 100644
index 0000000000000000000000000000000000000000..6d6c589d07b89fc42c994d6b2ef1c0d0e53b7486
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-content.c
@@ -0,0 +1,327 @@
+/* exif-content.c
+ *
+ * Copyright (c) 2001 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#include <config.h>
+
+#include <libexif/exif-content.h>
+#include <libexif/exif-system.h>
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+/* unused constant
+ * static const unsigned char ExifHeader[] = {0x45, 0x78, 0x69, 0x66, 0x00, 0x00};
+ */
+
+struct _ExifContentPrivate
+{
+	unsigned int ref_count;
+
+	ExifMem *mem;
+	ExifLog *log;
+};
+
+ExifContent *
+exif_content_new (void)
+{
+	ExifMem *mem = exif_mem_new_default ();
+	ExifContent *content = exif_content_new_mem (mem);
+
+	exif_mem_unref (mem);
+
+	return content;
+}
+
+ExifContent *
+exif_content_new_mem (ExifMem *mem)
+{
+	ExifContent *content;
+
+	if (!mem) return NULL;
+
+	content = exif_mem_alloc (mem, (ExifLong) sizeof (ExifContent));
+	if (!content)
+		return NULL;
+	content->priv = exif_mem_alloc (mem,
+				(ExifLong) sizeof (ExifContentPrivate));
+	if (!content->priv) {
+		exif_mem_free (mem, content);
+		return NULL;
+	}
+
+	content->priv->ref_count = 1;
+
+	content->priv->mem = mem;
+	exif_mem_ref (mem);
+
+	return content;
+}
+
+void
+exif_content_ref (ExifContent *content)
+{
+	content->priv->ref_count++;
+}
+
+void
+exif_content_unref (ExifContent *content)
+{
+	content->priv->ref_count--;
+	if (!content->priv->ref_count)
+		exif_content_free (content);
+}
+
+void
+exif_content_free (ExifContent *content)
+{
+	ExifMem *mem = (content && content->priv) ? content->priv->mem : NULL;
+	unsigned int i;
+
+	if (!content) return;
+
+	for (i = 0; i < content->count; i++)
+		exif_entry_unref (content->entries[i]);
+	exif_mem_free (mem, content->entries);
+
+	if (content->priv) {
+		exif_log_unref (content->priv->log);
+	}
+
+	exif_mem_free (mem, content->priv);
+	exif_mem_free (mem, content);
+	exif_mem_unref (mem);
+}
+
+void
+exif_content_dump (ExifContent *content, unsigned int indent)
+{
+	char buf[1024];
+	unsigned int i;
+
+	for (i = 0; i < 2 * indent; i++)
+		buf[i] = ' ';
+	buf[i] = '\0';
+
+	if (!content)
+		return;
+
+	printf ("%sDumping exif content (%u entries)...\n", buf,
+		content->count);
+	for (i = 0; i < content->count; i++)
+		exif_entry_dump (content->entries[i], indent + 1);
+}
+
+void
+exif_content_add_entry (ExifContent *c, ExifEntry *entry)
+{
+	ExifEntry **entries;
+	if (!c || !c->priv || !entry || entry->parent) return;
+
+	/* One tag can only be added once to an IFD. */
+	if (exif_content_get_entry (c, entry->tag)) {
+		exif_log (c->priv->log, EXIF_LOG_CODE_DEBUG, "ExifContent",
+			"An attempt has been made to add "
+			"the tag '%s' twice to an IFD. This is against "
+			"specification.", exif_tag_get_name (entry->tag));
+		return;
+	}
+
+	entries = exif_mem_realloc (c->priv->mem,
+		c->entries, sizeof (ExifEntry*) * (c->count + 1));
+	if (!entries) return;
+	entry->parent = c;
+	entries[c->count++] = entry;
+	c->entries = entries;
+	exif_entry_ref (entry);
+}
+
+void
+exif_content_remove_entry (ExifContent *c, ExifEntry *e)
+{
+	unsigned int i;
+	ExifEntry **t, *temp;
+
+	if (!c || !c->priv || !e || (e->parent != c)) return;
+
+	/* Search the entry */
+	for (i = 0; i < c->count; i++)
+			if (c->entries[i] == e)
+					break;
+
+	if (i == c->count)
+			return;
+
+	/* Remove the entry */
+	temp = c->entries[c->count-1];
+	if (c->count > 1) {
+		t = exif_mem_realloc (c->priv->mem, c->entries,
+					sizeof(ExifEntry*) * (c->count - 1));
+		if (!t) {
+			return;
+		}
+		c->entries = t;
+		c->count--;
+		if (i != c->count) { /* we deallocated the last slot already */ 
+			memmove (&t[i], &t[i + 1], sizeof (ExifEntry*) * (c->count - i - 1));
+			t[c->count-1] = temp;
+		} 
+	} else {
+		exif_mem_free (c->priv->mem, c->entries);
+		c->entries = NULL;
+		c->count = 0;
+	}
+	e->parent = NULL;
+	exif_entry_unref (e);
+}
+
+ExifEntry *
+exif_content_get_entry (ExifContent *content, ExifTag tag)
+{
+	unsigned int i;
+
+	if (!content)
+		return (NULL);
+
+	for (i = 0; i < content->count; i++)
+		if (content->entries[i]->tag == tag)
+			return (content->entries[i]);
+	return (NULL);
+}
+
+void
+exif_content_foreach_entry (ExifContent *content,
+			    ExifContentForeachEntryFunc func, void *data)
+{
+	unsigned int i;
+
+	if (!content || !func)
+		return;
+
+	for (i = 0; i < content->count; i++)
+		func (content->entries[i], data);
+}
+
+void
+exif_content_log (ExifContent *content, ExifLog *log)
+{
+	if (!content || !content->priv || !log || content->priv->log == log)
+		return;
+
+	if (content->priv->log) exif_log_unref (content->priv->log);
+	content->priv->log = log;
+	exif_log_ref (log);
+}
+
+ExifIfd
+exif_content_get_ifd (ExifContent *c)
+{
+	if (!c || !c->parent) return EXIF_IFD_COUNT;
+
+	return 
+		((c)->parent->ifd[EXIF_IFD_EXIF] == (c)) ? EXIF_IFD_EXIF :
+		((c)->parent->ifd[EXIF_IFD_0] == (c)) ? EXIF_IFD_0 :
+		((c)->parent->ifd[EXIF_IFD_1] == (c)) ? EXIF_IFD_1 :
+		((c)->parent->ifd[EXIF_IFD_GPS] == (c)) ? EXIF_IFD_GPS :
+		((c)->parent->ifd[EXIF_IFD_INTEROPERABILITY] == (c)) ? EXIF_IFD_INTEROPERABILITY :
+		EXIF_IFD_COUNT;
+}
+
+static void
+fix_func (ExifEntry *e, void *UNUSED(data))
+{
+	exif_entry_fix (e);
+}
+
+/*!
+ * Check if this entry is unknown and if so, delete it.
+ * \note Be careful calling this function in a loop. Deleting an entry from
+ * an ExifContent changes the index of subsequent entries, as well as the
+ * total size of the entries array.
+ */
+static void
+remove_not_recorded (ExifEntry *e, void *UNUSED(data))
+{
+	ExifIfd ifd = exif_entry_get_ifd(e) ;
+	ExifContent *c = e->parent;
+	ExifDataType dt = exif_data_get_data_type (c->parent);
+	ExifTag t = e->tag;
+
+	if (exif_tag_get_support_level_in_ifd (t, ifd, dt) ==
+			 EXIF_SUPPORT_LEVEL_NOT_RECORDED) {
+		exif_log (c->priv->log, EXIF_LOG_CODE_DEBUG, "exif-content",
+				"Tag 0x%04x is not recorded in IFD '%s' and has therefore been "
+				"removed.", t, exif_ifd_get_name (ifd));
+		exif_content_remove_entry (c, e);
+	}
+
+}
+
+void
+exif_content_fix (ExifContent *c)
+{
+	ExifIfd ifd = exif_content_get_ifd (c);
+	ExifDataType dt;
+	ExifEntry *e;
+	unsigned int i, num;
+
+	if (!c)
+		return;
+
+	dt = exif_data_get_data_type (c->parent);
+
+	/*
+	 * First of all, fix all existing entries.
+	 */
+	exif_content_foreach_entry (c, fix_func, NULL);
+
+	/*
+	 * Go through each tag and if it's not recorded, remove it. If one
+	 * is removed, exif_content_foreach_entry() will skip the next entry,
+	 * so if this happens do the loop again from the beginning to ensure
+	 * they're all checked. This could be avoided if we stop relying on
+	 * exif_content_foreach_entry but loop intelligently here.
+	 */
+	do {
+		num = c->count;
+		exif_content_foreach_entry (c, remove_not_recorded, NULL);
+	} while (num != c->count);
+
+	/*
+	 * Then check for non-existing mandatory tags and create them if needed
+	 */
+	num = exif_tag_table_count();
+	for (i = 0; i < num; ++i) {
+		const ExifTag t = exif_tag_table_get_tag (i);
+		if (exif_tag_get_support_level_in_ifd (t, ifd, dt) ==
+			EXIF_SUPPORT_LEVEL_MANDATORY) {
+			if (exif_content_get_entry (c, t))
+				/* This tag already exists */
+				continue;
+			exif_log (c->priv->log, EXIF_LOG_CODE_DEBUG, "exif-content",
+					"Tag '%s' is mandatory in IFD '%s' and has therefore been added.",
+					exif_tag_get_name_in_ifd (t, ifd), exif_ifd_get_name (ifd));
+			e = exif_entry_new ();
+			exif_content_add_entry (c, e);
+			exif_entry_initialize (e, t);
+			exif_entry_unref (e);
+		}
+	}
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-content.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-content.h
new file mode 100644
index 0000000000000000000000000000000000000000..d912ccf15d74b387945a0dd550285680cde77883
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-content.h
@@ -0,0 +1,145 @@
+/*! \file exif-content.h
+ *  \brief Handling EXIF IFDs
+ */
+/*
+ * Copyright (c) 2001 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#ifndef __EXIF_CONTENT_H__
+#define __EXIF_CONTENT_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/*! Holds all EXIF tags in a single IFD */
+typedef struct _ExifContent        ExifContent;
+typedef struct _ExifContentPrivate ExifContentPrivate;
+
+#include <libexif/exif-tag.h>
+#include <libexif/exif-entry.h>
+#include <libexif/exif-data.h>
+#include <libexif/exif-log.h>
+#include <libexif/exif-mem.h>
+
+struct _ExifContent
+{
+        ExifEntry **entries;
+        unsigned int count;
+
+	/*! Data containing this content */
+	ExifData *parent;
+
+	ExifContentPrivate *priv;
+};
+
+/* Lifecycle */
+ExifContent *exif_content_new     (void);
+ExifContent *exif_content_new_mem (ExifMem *);
+void         exif_content_ref     (ExifContent *content);
+void         exif_content_unref   (ExifContent *content);
+void         exif_content_free    (ExifContent *content);
+
+/*! Add an EXIF tag to an IFD.
+ * If this tag already exists in the IFD, this function does nothing.
+ * \pre The "tag" member of the entry must be set on entry.
+ *
+ * \param[out] c IFD
+ * \param[in] entry EXIF entry to add
+ */
+void         exif_content_add_entry    (ExifContent *c, ExifEntry *entry);
+
+/*! Remove an EXIF tag from an IFD.
+ * If this tag does not exist in the IFD, this function does nothing.
+ *
+ * \param[out] c IFD
+ * \param[in] e EXIF entry to remove
+ */
+void         exif_content_remove_entry (ExifContent *c, ExifEntry *e);
+
+/*! Return the #ExifEntry in this IFD corresponding to the given tag.
+ * This is a pointer into a member of the #ExifContent array and must NOT be
+ * freed or unrefed by the caller.
+ *
+ * \param[in] content EXIF content for an IFD
+ * \param[in] tag EXIF tag to return
+ * \return #ExifEntry of the tag, or NULL on error
+ */
+ExifEntry   *exif_content_get_entry    (ExifContent *content, ExifTag tag);
+
+/*! Fix the IFD to bring it into specification. Call #exif_entry_fix on
+ * each entry in this IFD to fix existing entries, create any new entries
+ * that are mandatory in this IFD but do not yet exist, and remove any
+ * entries that are not allowed in this IFD.
+ *
+ * \param[in,out] c EXIF content for an IFD
+ */
+void         exif_content_fix          (ExifContent *c);
+
+typedef void (* ExifContentForeachEntryFunc) (ExifEntry *, void *user_data);
+
+/*! Executes function on each EXIF tag in this IFD in turn.
+ * The tags will not necessarily be visited in numerical order.
+ *
+ * \param[in,out] content IFD over which to iterate
+ * \param[in] func function to call for each entry
+ * \param[in] user_data data to pass into func on each call
+ */
+void         exif_content_foreach_entry (ExifContent *content,
+					 ExifContentForeachEntryFunc func,
+					 void *user_data);
+
+/*! Return the IFD number in which the given #ExifContent is found.
+ *
+ * \param[in] c an #ExifContent*
+ * \return IFD number, or #EXIF_IFD_COUNT on error
+ */
+ExifIfd exif_content_get_ifd (ExifContent *c);
+
+/*! Return a textual representation of the EXIF data for a tag.
+ *
+ * \param[in] c #ExifContent* for an IFD
+ * \param[in] t #ExifTag to return
+ * \param[out] v char* buffer in which to store value
+ * \param[in] m unsigned int length of the buffer v
+ * \return the v pointer, or NULL on error
+ */
+#define exif_content_get_value(c,t,v,m)					\
+	(exif_content_get_entry (c,t) ?					\
+	 exif_entry_get_value (exif_content_get_entry (c,t),v,m) : NULL)
+
+/*! Dump contents of the IFD to stdout.
+ * This is intended for diagnostic purposes only.
+ *
+ * \param[in] content IFD data
+ * \param[in] indent how many levels deep to indent the data
+ */
+void exif_content_dump  (ExifContent *content, unsigned int indent);
+
+/*! Set the log message object for this IFD.
+ *
+ * \param[in] content IFD
+ * \param[in] log #ExifLog*
+ */
+void exif_content_log   (ExifContent *content, ExifLog *log);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __EXIF_CONTENT_H__ */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-data-type.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-data-type.h
new file mode 100644
index 0000000000000000000000000000000000000000..05d4f95b036b306fd94f98cb58784478ca2a62f0
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-data-type.h
@@ -0,0 +1,46 @@
+/* exif-data-tag.h
+ *
+ * Copyright (c) 2005 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#ifndef __EXIF_DATA_TYPE_H__
+#define __EXIF_DATA_TYPE_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/*! Represents the type of image data to which the EXIF data applies.
+ * The EXIF tags have different constraints depending on the type of
+ * image data.
+ */
+typedef enum {
+	EXIF_DATA_TYPE_UNCOMPRESSED_CHUNKY = 0,
+	EXIF_DATA_TYPE_UNCOMPRESSED_PLANAR,
+	EXIF_DATA_TYPE_UNCOMPRESSED_YCC,
+	EXIF_DATA_TYPE_COMPRESSED,
+	EXIF_DATA_TYPE_COUNT,
+
+	EXIF_DATA_TYPE_UNKNOWN = EXIF_DATA_TYPE_COUNT
+} ExifDataType;
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __EXIF_TAG_H__ */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-data.c b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-data.c
new file mode 100644
index 0000000000000000000000000000000000000000..80533b6f1e28930d0fcfba0193b77e52ab465e4c
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-data.c
@@ -0,0 +1,1266 @@
+/* exif-data.c
+ *
+ * Copyright (c) 2001 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#include <config.h>
+
+#include <libexif/exif-mnote-data.h>
+#include <libexif/exif-data.h>
+#include <libexif/exif-ifd.h>
+#include <libexif/exif-mnote-data-priv.h>
+#include <libexif/exif-utils.h>
+#include <libexif/exif-loader.h>
+#include <libexif/exif-log.h>
+#include <libexif/i18n.h>
+#include <libexif/exif-system.h>
+
+#include <libexif/canon/exif-mnote-data-canon.h>
+#include <libexif/fuji/exif-mnote-data-fuji.h>
+#include <libexif/olympus/exif-mnote-data-olympus.h>
+#include <libexif/pentax/exif-mnote-data-pentax.h>
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#undef JPEG_MARKER_SOI
+#define JPEG_MARKER_SOI  0xd8
+#undef JPEG_MARKER_APP0
+#define JPEG_MARKER_APP0 0xe0
+#undef JPEG_MARKER_APP1
+#define JPEG_MARKER_APP1 0xe1
+
+static const unsigned char ExifHeader[] = {0x45, 0x78, 0x69, 0x66, 0x00, 0x00};
+
+struct _ExifDataPrivate
+{
+	ExifByteOrder order;
+
+	ExifMnoteData *md;
+
+	ExifLog *log;
+	ExifMem *mem;
+
+	unsigned int ref_count;
+
+	/* Temporarily used while loading data */
+	unsigned int offset_mnote;
+
+	ExifDataOption options;
+	ExifDataType data_type;
+};
+
+static void *
+exif_data_alloc (ExifData *data, unsigned int i)
+{
+	void *d;
+
+	if (!data || !i) 
+		return NULL;
+
+	d = exif_mem_alloc (data->priv->mem, i);
+	if (d) 
+		return d;
+
+	EXIF_LOG_NO_MEMORY (data->priv->log, "ExifData", i);
+	return NULL;
+}
+
+ExifMnoteData *
+exif_data_get_mnote_data (ExifData *d)
+{
+	return (d && d->priv) ? d->priv->md : NULL;
+}
+
+ExifData *
+exif_data_new (void)
+{
+	ExifMem *mem = exif_mem_new_default ();
+	ExifData *d = exif_data_new_mem (mem);
+
+	exif_mem_unref (mem);
+
+	return d;
+}
+
+ExifData *
+exif_data_new_mem (ExifMem *mem)
+{
+	ExifData *data;
+	unsigned int i;
+
+	if (!mem) 
+		return NULL;
+
+	data = exif_mem_alloc (mem, sizeof (ExifData));
+	if (!data) 
+		return (NULL);
+	data->priv = exif_mem_alloc (mem, sizeof (ExifDataPrivate));
+	if (!data->priv) { 
+	  	exif_mem_free (mem, data); 
+		return (NULL); 
+	}
+	data->priv->ref_count = 1;
+
+	data->priv->mem = mem;
+	exif_mem_ref (mem);
+
+	for (i = 0; i < EXIF_IFD_COUNT; i++) {
+		data->ifd[i] = exif_content_new_mem (data->priv->mem);
+		if (!data->ifd[i]) {
+			exif_data_free (data);
+			return (NULL);
+		}
+		data->ifd[i]->parent = data;
+	}
+
+	/* Default options */
+#ifndef NO_VERBOSE_TAG_STRINGS
+	/*
+	 * When the tag list is compiled away, setting this option prevents
+	 * any tags from being loaded
+	 */
+	exif_data_set_option (data, EXIF_DATA_OPTION_IGNORE_UNKNOWN_TAGS);
+#endif
+	exif_data_set_option (data, EXIF_DATA_OPTION_FOLLOW_SPECIFICATION);
+
+	/* Default data type: none */
+	exif_data_set_data_type (data, EXIF_DATA_TYPE_COUNT);
+
+	return (data);
+}
+
+ExifData *
+exif_data_new_from_data (const unsigned char *data, unsigned int size)
+{
+	ExifData *edata;
+
+	edata = exif_data_new ();
+	exif_data_load_data (edata, data, size);
+	return (edata);
+}
+
+static int
+exif_data_load_data_entry (ExifData *data, ExifEntry *entry,
+			   const unsigned char *d,
+			   unsigned int size, unsigned int offset)
+{
+	unsigned int s, doff;
+
+	entry->tag        = exif_get_short (d + offset + 0, data->priv->order);
+	entry->format     = exif_get_short (d + offset + 2, data->priv->order);
+	entry->components = exif_get_long  (d + offset + 4, data->priv->order);
+
+	/* FIXME: should use exif_tag_get_name_in_ifd here but entry->parent 
+	 * has not been set yet
+	 */
+	exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG, "ExifData",
+		  "Loading entry 0x%x ('%s')...", entry->tag,
+		  exif_tag_get_name (entry->tag));
+
+	/* {0,1,2,4,8} x { 0x00000000 .. 0xffffffff } 
+	 *   -> { 0x000000000 .. 0x7fffffff8 } */
+	s = exif_format_get_size(entry->format) * entry->components;
+	if ((s < entry->components) || (s == 0)){
+		return 0;
+	}
+
+	/*
+	 * Size? If bigger than 4 bytes, the actual data is not
+	 * in the entry but somewhere else (offset).
+	 */
+	if (s > 4)
+		doff = exif_get_long (d + offset + 8, data->priv->order);
+	else
+		doff = offset + 8;
+
+	/* Sanity checks */
+	if ((doff + s < doff) || (doff + s < s) || (doff + s > size)) {
+		exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG, "ExifData",
+				  "Tag data past end of buffer (%u > %u)", doff+s, size);	
+		return 0;
+	}
+
+	entry->data = exif_data_alloc (data, s);
+	if (entry->data) {
+		entry->size = s;
+		memcpy (entry->data, d + doff, s);
+	} else {
+		/* FIXME: What do our callers do if (entry->data == NULL)? */
+		EXIF_LOG_NO_MEMORY(data->priv->log, "ExifData", s);
+	}
+
+	/* If this is the MakerNote, remember the offset */
+	if (entry->tag == EXIF_TAG_MAKER_NOTE) {
+		if (!entry->data) {
+			exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG, "ExifData",
+					  "MakerNote found with empty data");	
+		} else if (entry->size > 6) {
+			exif_log (data->priv->log,
+					       EXIF_LOG_CODE_DEBUG, "ExifData",
+					       "MakerNote found (%02x %02x %02x %02x "
+					       "%02x %02x %02x...).",
+					       entry->data[0], entry->data[1], entry->data[2],
+					       entry->data[3], entry->data[4], entry->data[5],
+					       entry->data[6]);
+		}
+		data->priv->offset_mnote = doff;
+	}
+	return 1;
+}
+
+static void
+exif_data_save_data_entry (ExifData *data, ExifEntry *e,
+			   unsigned char **d, unsigned int *ds,
+			   unsigned int offset)
+{
+	unsigned int doff, s;
+	unsigned int ts;
+
+	if (!data || !data->priv) 
+		return;
+
+	/*
+	 * Each entry is 12 bytes long. The memory for the entry has
+	 * already been allocated.
+	 */
+	exif_set_short (*d + 6 + offset + 0,
+			data->priv->order, (ExifShort) e->tag);
+	exif_set_short (*d + 6 + offset + 2,
+			data->priv->order, (ExifShort) e->format);
+
+	if (!(data->priv->options & EXIF_DATA_OPTION_DONT_CHANGE_MAKER_NOTE)) {
+		/* If this is the maker note tag, update it. */
+		if ((e->tag == EXIF_TAG_MAKER_NOTE) && data->priv->md) {
+			/* TODO: this is using the wrong ExifMem to free e->data */
+			exif_mem_free (data->priv->mem, e->data);
+			e->data = NULL;
+			e->size = 0;
+			exif_mnote_data_set_offset (data->priv->md, *ds - 6);
+			exif_mnote_data_save (data->priv->md, &e->data, &e->size);
+			e->components = e->size;
+		}
+	}
+
+	exif_set_long  (*d + 6 + offset + 4,
+			data->priv->order, e->components);
+
+	/*
+	 * Size? If bigger than 4 bytes, the actual data is not in
+	 * the entry but somewhere else.
+	 */
+	s = exif_format_get_size (e->format) * e->components;
+	if (s > 4) {
+		unsigned char *t;
+		doff = *ds - 6;
+		ts = *ds + s;
+
+		/*
+		 * According to the TIFF specification,
+		 * the offset must be an even number. If we need to introduce
+		 * a padding byte, we set it to 0.
+		 */
+		if (s & 1)
+			ts++;
+		t = exif_mem_realloc (data->priv->mem, *d, ts);
+		if (!t) {
+			EXIF_LOG_NO_MEMORY (data->priv->log, "ExifData", ts);
+		  	return;
+		}
+		*d = t;
+		*ds = ts;
+		exif_set_long (*d + 6 + offset + 8, data->priv->order, doff);
+		if (s & 1) 
+			*(*d + *ds - 1) = '\0';
+
+	} else
+		doff = offset + 8;
+
+	/* Write the data. Fill unneeded bytes with 0. Do not crash with
+	 * e->data is NULL */
+	if (e->data) {
+		memcpy (*d + 6 + doff, e->data, s);
+	} else {
+		memset (*d + 6 + doff, 0, s);
+	}
+	if (s < 4) 
+		memset (*d + 6 + doff + s, 0, (4 - s));
+}
+
+static void
+exif_data_load_data_thumbnail (ExifData *data, const unsigned char *d,
+			       unsigned int ds, ExifLong o, ExifLong s)
+{
+	/* Sanity checks */
+	if ((o + s < o) || (o + s < s) || (o + s > ds) || (o > ds)) {
+		exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG, "ExifData",
+			  "Bogus thumbnail offset (%u) or size (%u).",
+			  o, s);
+		return;
+	}
+
+	if (data->data) 
+		exif_mem_free (data->priv->mem, data->data);
+	if (!(data->data = exif_data_alloc (data, s))) {
+		EXIF_LOG_NO_MEMORY (data->priv->log, "ExifData", s);
+		data->size = 0;
+		return;
+	}
+	data->size = s;
+	memcpy (data->data, d + o, s);
+}
+
+#undef CHECK_REC
+#define CHECK_REC(i) 					\
+if ((i) == ifd) {				\
+	exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG, \
+		"ExifData", "Recursive entry in IFD "	\
+		"'%s' detected. Skipping...",		\
+		exif_ifd_get_name (i));			\
+	break;						\
+}							\
+if (data->ifd[(i)]->count) {				\
+	exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG,	\
+		"ExifData", "Attempt to load IFD "	\
+		"'%s' multiple times detected. "	\
+		"Skipping...",				\
+		exif_ifd_get_name (i));			\
+	break;						\
+}
+
+/*! Load data for an IFD.
+ *
+ * \param[in,out] data #ExifData
+ * \param[in] ifd IFD to load
+ * \param[in] d pointer to buffer containing raw IFD data
+ * \param[in] ds size of raw data in buffer at \c d
+ * \param[in] offset offset into buffer at \c d at which IFD starts
+ * \param[in] recursion_depth number of times this function has been
+ * recursively called without returning
+ */
+static void
+exif_data_load_data_content (ExifData *data, ExifIfd ifd,
+			     const unsigned char *d,
+			     unsigned int ds, unsigned int offset, unsigned int recursion_depth)
+{
+	ExifLong o, thumbnail_offset = 0, thumbnail_length = 0;
+	ExifShort n;
+	ExifEntry *entry;
+	unsigned int i;
+	ExifTag tag;
+
+	if (!data || !data->priv) 
+		return;
+
+	/* check for valid ExifIfd enum range */
+	if ((((int)ifd) < 0) || ( ((int)ifd) >= EXIF_IFD_COUNT))
+	  return;
+
+	if (recursion_depth > 30) {
+		exif_log (data->priv->log, EXIF_LOG_CODE_CORRUPT_DATA, "ExifData",
+			  "Deep recursion detected!");
+		return;
+	}
+
+	/* Read the number of entries */
+	if ((offset + 2 < offset) || (offset + 2 < 2) || (offset + 2 > ds)) {
+		exif_log (data->priv->log, EXIF_LOG_CODE_CORRUPT_DATA, "ExifData",
+			  "Tag data past end of buffer (%u > %u)", offset+2, ds);
+		return;
+	}
+	n = exif_get_short (d + offset, data->priv->order);
+	exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG, "ExifData",
+	          "Loading %hu entries...", n);
+	offset += 2;
+
+	/* Check if we have enough data. */
+	if (offset + 12 * n > ds) {
+		n = (ds - offset) / 12;
+		exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG, "ExifData",
+				  "Short data; only loading %hu entries...", n);
+	}
+
+	for (i = 0; i < n; i++) {
+
+		tag = exif_get_short (d + offset + 12 * i, data->priv->order);
+		switch (tag) {
+		case EXIF_TAG_EXIF_IFD_POINTER:
+		case EXIF_TAG_GPS_INFO_IFD_POINTER:
+		case EXIF_TAG_INTEROPERABILITY_IFD_POINTER:
+		case EXIF_TAG_JPEG_INTERCHANGE_FORMAT_LENGTH:
+		case EXIF_TAG_JPEG_INTERCHANGE_FORMAT:
+			o = exif_get_long (d + offset + 12 * i + 8,
+					   data->priv->order);
+			/* FIXME: IFD_POINTER tags aren't marked as being in a
+			 * specific IFD, so exif_tag_get_name_in_ifd won't work
+			 */
+			exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG, "ExifData",
+				  "Sub-IFD entry 0x%x ('%s') at %u.", tag,
+				  exif_tag_get_name(tag), o);
+			switch (tag) {
+			case EXIF_TAG_EXIF_IFD_POINTER:
+				CHECK_REC (EXIF_IFD_EXIF);
+				exif_data_load_data_content (data, EXIF_IFD_EXIF, d, ds, o, recursion_depth + 1);
+				break;
+			case EXIF_TAG_GPS_INFO_IFD_POINTER:
+				CHECK_REC (EXIF_IFD_GPS);
+				exif_data_load_data_content (data, EXIF_IFD_GPS, d, ds, o, recursion_depth + 1);
+				break;
+			case EXIF_TAG_INTEROPERABILITY_IFD_POINTER:
+				CHECK_REC (EXIF_IFD_INTEROPERABILITY);
+				exif_data_load_data_content (data, EXIF_IFD_INTEROPERABILITY, d, ds, o, recursion_depth + 1);
+				break;
+			case EXIF_TAG_JPEG_INTERCHANGE_FORMAT:
+				thumbnail_offset = o;
+				if (thumbnail_offset && thumbnail_length)
+					exif_data_load_data_thumbnail (data, d,
+								       ds, thumbnail_offset,
+								       thumbnail_length);
+				break;
+			case EXIF_TAG_JPEG_INTERCHANGE_FORMAT_LENGTH:
+				thumbnail_length = o;
+				if (thumbnail_offset && thumbnail_length)
+					exif_data_load_data_thumbnail (data, d,
+								       ds, thumbnail_offset,
+								       thumbnail_length);
+				break;
+			default:
+				return;
+			}
+			break;
+		default:
+
+			/*
+			 * If we don't know the tag, don't fail. It could be that new 
+			 * versions of the standard have defined additional tags. Note that
+			 * 0 is a valid tag in the GPS IFD.
+			 */
+			if (!exif_tag_get_name_in_ifd (tag, ifd)) {
+
+				/*
+				 * Special case: Tag and format 0. That's against specification
+				 * (at least up to 2.2). But Photoshop writes it anyways.
+				 */
+				if (!memcmp (d + offset + 12 * i, "\0\0\0\0", 4)) {
+					exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG, "ExifData",
+						  "Skipping empty entry at position %u in '%s'.", i, 
+						  exif_ifd_get_name (ifd));
+					break;
+				}
+				exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG, "ExifData",
+					  "Unknown tag 0x%04x (entry %u in '%s'). Please report this tag "
+					  "to <libexif-devel@lists.sourceforge.net>.", tag, i,
+					  exif_ifd_get_name (ifd));
+				if (data->priv->options & EXIF_DATA_OPTION_IGNORE_UNKNOWN_TAGS)
+					break;
+			}
+			entry = exif_entry_new_mem (data->priv->mem);
+			if (exif_data_load_data_entry (data, entry, d, ds,
+						   offset + 12 * i))
+				exif_content_add_entry (data->ifd[ifd], entry);
+			exif_entry_unref (entry);
+			break;
+		}
+	}
+}
+
+static int
+cmp_func (const unsigned char *p1, const unsigned char *p2, ExifByteOrder o)
+{
+	ExifShort tag1 = exif_get_short (p1, o);
+	ExifShort tag2 = exif_get_short (p2, o);
+
+	return (tag1 < tag2) ? -1 : (tag1 > tag2) ? 1 : 0;
+}
+
+static int
+cmp_func_intel (const void *elem1, const void *elem2)
+{
+	return cmp_func ((const unsigned char *) elem1,
+			 (const unsigned char *) elem2, EXIF_BYTE_ORDER_INTEL);
+}
+
+static int
+cmp_func_motorola (const void *elem1, const void *elem2)
+{
+	return cmp_func ((const unsigned char *) elem1,
+			 (const unsigned char *) elem2, EXIF_BYTE_ORDER_MOTOROLA);
+}
+
+static void
+exif_data_save_data_content (ExifData *data, ExifContent *ifd,
+			     unsigned char **d, unsigned int *ds,
+			     unsigned int offset)
+{
+	unsigned int j, n_ptr = 0, n_thumb = 0;
+	ExifIfd i;
+	unsigned char *t;
+	unsigned int ts;
+
+	if (!data || !data->priv || !ifd || !d || !ds) 
+		return;
+
+	for (i = 0; i < EXIF_IFD_COUNT; i++)
+		if (ifd == data->ifd[i])
+			break;
+	if (i == EXIF_IFD_COUNT)
+		return;	/* error */
+
+	/*
+	 * Check if we need some extra entries for pointers or the thumbnail.
+	 */
+	switch (i) {
+	case EXIF_IFD_0:
+
+		/*
+		 * The pointer to IFD_EXIF is in IFD_0. The pointer to
+		 * IFD_INTEROPERABILITY is in IFD_EXIF.
+		 */
+		if (data->ifd[EXIF_IFD_EXIF]->count ||
+		    data->ifd[EXIF_IFD_INTEROPERABILITY]->count)
+			n_ptr++;
+
+		/* The pointer to IFD_GPS is in IFD_0. */
+		if (data->ifd[EXIF_IFD_GPS]->count)
+			n_ptr++;
+
+		break;
+	case EXIF_IFD_1:
+		if (data->size)
+			n_thumb = 2;
+		break;
+	case EXIF_IFD_EXIF:
+		if (data->ifd[EXIF_IFD_INTEROPERABILITY]->count)
+			n_ptr++;
+	default:
+		break;
+	}
+
+	/*
+	 * Allocate enough memory for all entries
+	 * and the number of entries.
+	 */
+	ts = *ds + (2 + (ifd->count + n_ptr + n_thumb) * 12 + 4);
+	t = exif_mem_realloc (data->priv->mem, *d, ts);
+	if (!t) {
+		EXIF_LOG_NO_MEMORY (data->priv->log, "ExifData", ts);
+	  	return;
+	}
+	*d = t;
+	*ds = ts;
+
+	/* Save the number of entries */
+	exif_set_short (*d + 6 + offset, data->priv->order,
+			(ExifShort) (ifd->count + n_ptr + n_thumb));
+	offset += 2;
+
+	/*
+	 * Save each entry. Make sure that no memcpys from NULL pointers are
+	 * performed
+	 */
+	exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG, "ExifData",
+		  "Saving %i entries (IFD '%s', offset: %i)...",
+		  ifd->count, exif_ifd_get_name (i), offset);
+	for (j = 0; j < ifd->count; j++) {
+		if (ifd->entries[j]) {
+			exif_data_save_data_entry (data, ifd->entries[j], d, ds,
+				offset + 12 * j);
+		}
+	}
+
+	offset += 12 * ifd->count;
+
+	/* Now save special entries. */
+	switch (i) {
+	case EXIF_IFD_0:
+
+		/*
+		 * The pointer to IFD_EXIF is in IFD_0.
+		 * However, the pointer to IFD_INTEROPERABILITY is in IFD_EXIF,
+		 * therefore, if IFD_INTEROPERABILITY is not empty, we need
+		 * IFD_EXIF even if latter is empty.
+		 */
+		if (data->ifd[EXIF_IFD_EXIF]->count ||
+		    data->ifd[EXIF_IFD_INTEROPERABILITY]->count) {
+			exif_set_short (*d + 6 + offset + 0, data->priv->order,
+					EXIF_TAG_EXIF_IFD_POINTER);
+			exif_set_short (*d + 6 + offset + 2, data->priv->order,
+					EXIF_FORMAT_LONG);
+			exif_set_long  (*d + 6 + offset + 4, data->priv->order,
+					1);
+			exif_set_long  (*d + 6 + offset + 8, data->priv->order,
+					*ds - 6);
+			exif_data_save_data_content (data,
+						     data->ifd[EXIF_IFD_EXIF], d, ds, *ds - 6);
+			offset += 12;
+		}
+
+		/* The pointer to IFD_GPS is in IFD_0, too. */
+		if (data->ifd[EXIF_IFD_GPS]->count) {
+			exif_set_short (*d + 6 + offset + 0, data->priv->order,
+					EXIF_TAG_GPS_INFO_IFD_POINTER);
+			exif_set_short (*d + 6 + offset + 2, data->priv->order,
+					EXIF_FORMAT_LONG);
+			exif_set_long  (*d + 6 + offset + 4, data->priv->order,
+					1);
+			exif_set_long  (*d + 6 + offset + 8, data->priv->order,
+					*ds - 6);
+			exif_data_save_data_content (data,
+						     data->ifd[EXIF_IFD_GPS], d, ds, *ds - 6);
+			offset += 12;
+		}
+
+		break;
+	case EXIF_IFD_EXIF:
+
+		/*
+		 * The pointer to IFD_INTEROPERABILITY is in IFD_EXIF.
+		 * See note above.
+		 */
+		if (data->ifd[EXIF_IFD_INTEROPERABILITY]->count) {
+			exif_set_short (*d + 6 + offset + 0, data->priv->order,
+					EXIF_TAG_INTEROPERABILITY_IFD_POINTER);
+			exif_set_short (*d + 6 + offset + 2, data->priv->order,
+					EXIF_FORMAT_LONG);
+			exif_set_long  (*d + 6 + offset + 4, data->priv->order,
+					1);
+			exif_set_long  (*d + 6 + offset + 8, data->priv->order,
+					*ds - 6);
+			exif_data_save_data_content (data,
+						     data->ifd[EXIF_IFD_INTEROPERABILITY], d, ds,
+						     *ds - 6);
+			offset += 12;
+		}
+
+		break;
+	case EXIF_IFD_1:
+
+		/*
+		 * Information about the thumbnail (if any) is saved in
+		 * IFD_1.
+		 */
+		if (data->size) {
+
+			/* EXIF_TAG_JPEG_INTERCHANGE_FORMAT */
+			exif_set_short (*d + 6 + offset + 0, data->priv->order,
+					EXIF_TAG_JPEG_INTERCHANGE_FORMAT);
+			exif_set_short (*d + 6 + offset + 2, data->priv->order,
+					EXIF_FORMAT_LONG);
+			exif_set_long  (*d + 6 + offset + 4, data->priv->order,
+					1);
+			exif_set_long  (*d + 6 + offset + 8, data->priv->order,
+					*ds - 6);
+			ts = *ds + data->size;
+			t = exif_mem_realloc (data->priv->mem, *d, ts);
+			if (!t) {
+				EXIF_LOG_NO_MEMORY (data->priv->log, "ExifData",
+						    ts);
+			  	return;
+			}
+			*d = t;
+			*ds = ts;
+			memcpy (*d + *ds - data->size, data->data, data->size);
+			offset += 12;
+
+			/* EXIF_TAG_JPEG_INTERCHANGE_FORMAT_LENGTH */
+			exif_set_short (*d + 6 + offset + 0, data->priv->order,
+					EXIF_TAG_JPEG_INTERCHANGE_FORMAT_LENGTH);
+			exif_set_short (*d + 6 + offset + 2, data->priv->order,
+					EXIF_FORMAT_LONG);
+			exif_set_long  (*d + 6 + offset + 4, data->priv->order,
+					1);
+			exif_set_long  (*d + 6 + offset + 8, data->priv->order,
+					data->size);
+			offset += 12;
+		}
+
+		break;
+	default:
+		break;
+	}
+
+	/* Sort the directory according to TIFF specification */
+	qsort (*d + 6 + offset - (ifd->count + n_ptr + n_thumb) * 12,
+	       (ifd->count + n_ptr + n_thumb), 12,
+	       (data->priv->order == EXIF_BYTE_ORDER_INTEL) ? cmp_func_intel : cmp_func_motorola);
+
+	/* Correctly terminate the directory */
+	if (i == EXIF_IFD_0 && (data->ifd[EXIF_IFD_1]->count ||
+				data->size)) {
+
+		/*
+		 * We are saving IFD 0. Tell where IFD 1 starts and save
+		 * IFD 1.
+		 */
+		exif_set_long (*d + 6 + offset, data->priv->order, *ds - 6);
+		exif_data_save_data_content (data, data->ifd[EXIF_IFD_1], d, ds,
+					     *ds - 6);
+	} else
+		exif_set_long (*d + 6 + offset, data->priv->order, 0);
+}
+
+typedef enum {
+	EXIF_DATA_TYPE_MAKER_NOTE_NONE		= 0,
+	EXIF_DATA_TYPE_MAKER_NOTE_CANON		= 1,
+	EXIF_DATA_TYPE_MAKER_NOTE_OLYMPUS	= 2,
+	EXIF_DATA_TYPE_MAKER_NOTE_PENTAX	= 3,
+	EXIF_DATA_TYPE_MAKER_NOTE_NIKON		= 4,
+	EXIF_DATA_TYPE_MAKER_NOTE_CASIO		= 5,
+	EXIF_DATA_TYPE_MAKER_NOTE_FUJI 		= 6
+} ExifDataTypeMakerNote;
+
+/*! If MakerNote is recognized, load it.
+ *
+ * \param[in,out] data #ExifData
+ * \param[in] d pointer to raw EXIF data
+ * \param[in] ds length of data at d
+ */
+static void
+interpret_maker_note(ExifData *data, const unsigned char *d, unsigned int ds)
+{
+	int mnoteid;
+	ExifEntry* e = exif_data_get_entry (data, EXIF_TAG_MAKER_NOTE);
+	if (!e)
+		return;
+	
+	if ((mnoteid = exif_mnote_data_olympus_identify (data, e)) != 0) {
+		exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG,
+			"ExifData", "Olympus MakerNote variant type %d", mnoteid);
+		data->priv->md = exif_mnote_data_olympus_new (data->priv->mem);
+
+	} else if ((mnoteid = exif_mnote_data_canon_identify (data, e)) != 0) {
+		exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG,
+			"ExifData", "Canon MakerNote variant type %d", mnoteid);
+		data->priv->md = exif_mnote_data_canon_new (data->priv->mem, data->priv->options);
+
+	} else if ((mnoteid = exif_mnote_data_fuji_identify (data, e)) != 0) {
+		exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG,
+			"ExifData", "Fuji MakerNote variant type %d", mnoteid);
+		data->priv->md = exif_mnote_data_fuji_new (data->priv->mem);
+
+	/* NOTE: Must do Pentax detection last because some of the
+	 * heuristics are pretty general. */
+	} else if ((mnoteid = exif_mnote_data_pentax_identify (data, e)) != 0) {
+		exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG,
+			"ExifData", "Pentax MakerNote variant type %d", mnoteid);
+		data->priv->md = exif_mnote_data_pentax_new (data->priv->mem);
+	}
+
+	/* 
+	 * If we are able to interpret the maker note, do so.
+	 */
+	if (data->priv->md) {
+		exif_mnote_data_log (data->priv->md, data->priv->log);
+		exif_mnote_data_set_byte_order (data->priv->md,
+						data->priv->order);
+		exif_mnote_data_set_offset (data->priv->md,
+					    data->priv->offset_mnote);
+		exif_mnote_data_load (data->priv->md, d, ds);
+	}
+}
+
+#define LOG_TOO_SMALL \
+exif_log (data->priv->log, EXIF_LOG_CODE_CORRUPT_DATA, "ExifData", \
+		_("Size of data too small to allow for EXIF data."));
+
+void
+exif_data_load_data (ExifData *data, const unsigned char *d_orig,
+		     unsigned int ds_orig)
+{
+	unsigned int l;
+	ExifLong offset;
+	ExifShort n;
+	const unsigned char *d = d_orig;
+	unsigned int ds = ds_orig, len;
+
+	if (!data || !data->priv || !d || !ds) 
+		return;
+
+	exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG, "ExifData",
+		  "Parsing %i byte(s) EXIF data...\n", ds);
+
+	/*
+	 * It can be that the data starts with the EXIF header. If it does
+	 * not, search the EXIF marker.
+	 */
+	if (ds < 6) {
+		LOG_TOO_SMALL;
+		return;
+	}
+	if (!memcmp (d, ExifHeader, 6)) {
+		exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG, "ExifData",
+			  "Found EXIF header.");
+	} else {
+		while (1) {
+			while ((d[0] == 0xff) && ds) {
+				d++;
+				ds--;
+			}
+
+			/* JPEG_MARKER_SOI */
+			if (d[0] == JPEG_MARKER_SOI) {
+				d++;
+				ds--;
+				continue;
+			}
+
+			/* JPEG_MARKER_APP0 */
+			if (d[0] == JPEG_MARKER_APP0) {
+				d++;
+				ds--;
+				l = (d[0] << 8) | d[1];
+				if (l > ds)
+					return;
+				d += l;
+				ds -= l;
+				continue;
+			}
+
+			/* JPEG_MARKER_APP1 */
+			if (d[0] == JPEG_MARKER_APP1)
+				break;
+
+			/* Unknown marker or data. Give up. */
+			exif_log (data->priv->log, EXIF_LOG_CODE_CORRUPT_DATA,
+				  "ExifData", _("EXIF marker not found."));
+			return;
+		}
+		d++;
+		ds--;
+		if (ds < 2) {
+			LOG_TOO_SMALL;
+			return;
+		}
+		len = (d[0] << 8) | d[1];
+		exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG, "ExifData",
+			  "We have to deal with %i byte(s) of EXIF data.",
+			  len);
+		d += 2;
+		ds -= 2;
+	}
+
+	/*
+	 * Verify the exif header
+	 * (offset 2, length 6).
+	 */
+	if (ds < 6) {
+		LOG_TOO_SMALL;
+		return;
+	}
+	if (memcmp (d, ExifHeader, 6)) {
+		exif_log (data->priv->log, EXIF_LOG_CODE_CORRUPT_DATA,
+			  "ExifData", _("EXIF header not found."));
+		return;
+	}
+
+	exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG, "ExifData",
+		  "Found EXIF header.");
+
+	/* Byte order (offset 6, length 2) */
+	if (ds < 14)
+		return;
+	if (!memcmp (d + 6, "II", 2))
+		data->priv->order = EXIF_BYTE_ORDER_INTEL;
+	else if (!memcmp (d + 6, "MM", 2))
+		data->priv->order = EXIF_BYTE_ORDER_MOTOROLA;
+	else {
+		exif_log (data->priv->log, EXIF_LOG_CODE_CORRUPT_DATA,
+			  "ExifData", _("Unknown encoding."));
+		return;
+	}
+
+	/* Fixed value */
+	if (exif_get_short (d + 8, data->priv->order) != 0x002a)
+		return;
+
+	/* IFD 0 offset */
+	offset = exif_get_long (d + 10, data->priv->order);
+	exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG, "ExifData", 
+		  "IFD 0 at %i.", (int) offset);
+
+	/* Parse the actual exif data (usually offset 14 from start) */
+	exif_data_load_data_content (data, EXIF_IFD_0, d + 6, ds - 6, offset, 0);
+
+	/* IFD 1 offset */
+	if (offset + 6 + 2 > ds) {
+		return;
+	}
+	n = exif_get_short (d + 6 + offset, data->priv->order);
+	if (offset + 6 + 2 + 12 * n + 4 > ds) {
+		return;
+	}
+	offset = exif_get_long (d + 6 + offset + 2 + 12 * n, data->priv->order);
+	if (offset) {
+		exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG, "ExifData",
+			  "IFD 1 at %i.", (int) offset);
+
+		/* Sanity check. */
+		if (offset > ds - 6) {
+			exif_log (data->priv->log, EXIF_LOG_CODE_CORRUPT_DATA,
+				  "ExifData", "Bogus offset of IFD1.");
+		} else {
+		   exif_data_load_data_content (data, EXIF_IFD_1, d + 6, ds - 6, offset, 0);
+		}
+	}
+
+	/*
+	 * If we got an EXIF_TAG_MAKER_NOTE, try to interpret it. Some
+	 * cameras use pointers in the maker note tag that point to the
+	 * space between IFDs. Here is the only place where we have access
+	 * to that data.
+	 */
+	interpret_maker_note(data, d, ds);
+
+	/* Fixup tags if requested */
+	if (data->priv->options & EXIF_DATA_OPTION_FOLLOW_SPECIFICATION)
+		exif_data_fix (data);
+}
+
+void
+exif_data_save_data (ExifData *data, unsigned char **d, unsigned int *ds)
+{
+	if (ds)
+		*ds = 0;	/* This means something went wrong */
+
+	if (!data || !d || !ds)
+		return;
+
+	/* Header */
+	*ds = 14;
+	*d = exif_data_alloc (data, *ds);
+	if (!*d)  {
+		*ds = 0;
+		return;
+	}
+	memcpy (*d, ExifHeader, 6);
+
+	/* Order (offset 6) */
+	if (data->priv->order == EXIF_BYTE_ORDER_INTEL) {
+		memcpy (*d + 6, "II", 2);
+	} else {
+		memcpy (*d + 6, "MM", 2);
+	}
+
+	/* Fixed value (2 bytes, offset 8) */
+	exif_set_short (*d + 8, data->priv->order, 0x002a);
+
+	/*
+	 * IFD 0 offset (4 bytes, offset 10).
+	 * We will start 8 bytes after the
+	 * EXIF header (2 bytes for order, another 2 for the test, and
+	 * 4 bytes for the IFD 0 offset make 8 bytes together).
+	 */
+	exif_set_long (*d + 10, data->priv->order, 8);
+
+	/* Now save IFD 0. IFD 1 will be saved automatically. */
+	exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG, "ExifData",
+		  "Saving IFDs...");
+	exif_data_save_data_content (data, data->ifd[EXIF_IFD_0], d, ds,
+				     *ds - 6);
+	exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG, "ExifData",
+		  "Saved %i byte(s) EXIF data.", *ds);
+}
+
+ExifData *
+exif_data_new_from_file (const char *path)
+{
+	ExifData *edata;
+	ExifLoader *loader;
+
+	loader = exif_loader_new ();
+	exif_loader_write_file (loader, path);
+	edata = exif_loader_get_data (loader);
+	exif_loader_unref (loader);
+
+	return (edata);
+}
+
+void
+exif_data_ref (ExifData *data)
+{
+	if (!data)
+		return;
+
+	data->priv->ref_count++;
+}
+
+void
+exif_data_unref (ExifData *data)
+{
+	if (!data) 
+		return;
+
+	data->priv->ref_count--;
+	if (!data->priv->ref_count) 
+		exif_data_free (data);
+}
+
+void
+exif_data_free (ExifData *data)
+{
+	unsigned int i;
+	ExifMem *mem = (data && data->priv) ? data->priv->mem : NULL;
+
+	if (!data) 
+		return;
+
+	for (i = 0; i < EXIF_IFD_COUNT; i++) {
+		if (data->ifd[i]) {
+			exif_content_unref (data->ifd[i]);
+			data->ifd[i] = NULL;
+		}
+	}
+
+	if (data->data) {
+		exif_mem_free (mem, data->data);
+		data->data = NULL;
+	}
+
+	if (data->priv) {
+		if (data->priv->log) {
+			exif_log_unref (data->priv->log);
+			data->priv->log = NULL;
+		}
+		if (data->priv->md) {
+			exif_mnote_data_unref (data->priv->md);
+			data->priv->md = NULL;
+		}
+		exif_mem_free (mem, data->priv);
+		exif_mem_free (mem, data);
+	}
+
+	exif_mem_unref (mem);
+}
+
+void
+exif_data_dump (ExifData *data)
+{
+	unsigned int i;
+
+	if (!data)
+		return;
+
+	for (i = 0; i < EXIF_IFD_COUNT; i++) {
+		if (data->ifd[i] && data->ifd[i]->count) {
+			printf ("Dumping IFD '%s'...\n",
+				exif_ifd_get_name (i));
+			exif_content_dump (data->ifd[i], 0);
+		}
+	}
+
+	if (data->data) {
+		printf ("%i byte(s) thumbnail data available.", data->size);
+		if (data->size >= 4) {
+			printf ("0x%02x 0x%02x ... 0x%02x 0x%02x\n",
+				data->data[0], data->data[1],
+				data->data[data->size - 2],
+				data->data[data->size - 1]);
+		}
+	}
+}
+
+ExifByteOrder
+exif_data_get_byte_order (ExifData *data)
+{
+	if (!data)
+		return (0);
+
+	return (data->priv->order);
+}
+
+void
+exif_data_foreach_content (ExifData *data, ExifDataForeachContentFunc func,
+			   void *user_data)
+{
+	unsigned int i;
+
+	if (!data || !func)
+		return;
+
+	for (i = 0; i < EXIF_IFD_COUNT; i++)
+		func (data->ifd[i], user_data);
+}
+
+typedef struct _ByteOrderChangeData ByteOrderChangeData;
+struct _ByteOrderChangeData {
+	ExifByteOrder old, new;
+};
+
+static void
+entry_set_byte_order (ExifEntry *e, void *data)
+{
+	ByteOrderChangeData *d = data;
+
+	if (!e)
+		return;
+
+	exif_array_set_byte_order (e->format, e->data, e->components, d->old, d->new);
+}
+
+static void
+content_set_byte_order (ExifContent *content, void *data)
+{
+	exif_content_foreach_entry (content, entry_set_byte_order, data);
+}
+
+void
+exif_data_set_byte_order (ExifData *data, ExifByteOrder order)
+{
+	ByteOrderChangeData d;
+
+	if (!data || (order == data->priv->order))
+		return;
+
+	d.old = data->priv->order;
+	d.new = order;
+	exif_data_foreach_content (data, content_set_byte_order, &d);
+	data->priv->order = order;
+	if (data->priv->md)
+		exif_mnote_data_set_byte_order (data->priv->md, order);
+}
+
+void
+exif_data_log (ExifData *data, ExifLog *log)
+{
+	unsigned int i;
+
+	if (!data || !data->priv) 
+		return;
+	exif_log_unref (data->priv->log);
+	data->priv->log = log;
+	exif_log_ref (log);
+
+	for (i = 0; i < EXIF_IFD_COUNT; i++)
+		exif_content_log (data->ifd[i], log);
+}
+
+/* Used internally within libexif */
+ExifLog *exif_data_get_log (ExifData *);
+ExifLog *
+exif_data_get_log (ExifData *data)
+{
+	if (!data || !data->priv) 
+		return NULL;
+	return data->priv->log;
+}
+
+static const struct {
+	ExifDataOption option;
+	const char *name;
+	const char *description;
+} exif_data_option[] = {
+	{EXIF_DATA_OPTION_IGNORE_UNKNOWN_TAGS, N_("Ignore unknown tags"),
+	 N_("Ignore unknown tags when loading EXIF data.")},
+	{EXIF_DATA_OPTION_FOLLOW_SPECIFICATION, N_("Follow specification"),
+	 N_("Add, correct and remove entries to get EXIF data that follows "
+	    "the specification.")},
+	{EXIF_DATA_OPTION_DONT_CHANGE_MAKER_NOTE, N_("Do not change maker note"),
+	 N_("When loading and resaving Exif data, save the maker note unmodified."
+	    " Be aware that the maker note can get corrupted.")},
+	{0, NULL, NULL}
+};
+
+const char *
+exif_data_option_get_name (ExifDataOption o)
+{
+	unsigned int i;
+
+	for (i = 0; exif_data_option[i].name; i++)
+		if (exif_data_option[i].option == o) 
+			break;
+	return _(exif_data_option[i].name);
+}
+
+const char *
+exif_data_option_get_description (ExifDataOption o)
+{
+	unsigned int i;
+
+	for (i = 0; exif_data_option[i].description; i++)
+		if (exif_data_option[i].option == o) 
+			break;
+	return _(exif_data_option[i].description);
+}
+
+void
+exif_data_set_option (ExifData *d, ExifDataOption o)
+{
+	if (!d) 
+		return;
+
+	d->priv->options |= o;
+}
+
+void
+exif_data_unset_option (ExifData *d, ExifDataOption o)
+{
+	if (!d) 
+		return;
+
+	d->priv->options &= ~o;
+}
+
+static void
+fix_func (ExifContent *c, void *UNUSED(data))
+{
+	switch (exif_content_get_ifd (c)) {
+	case EXIF_IFD_1:
+		if (c->parent->data)
+			exif_content_fix (c);
+		else if (c->count) {
+			exif_log (c->parent->priv->log, EXIF_LOG_CODE_DEBUG, "exif-data",
+				  "No thumbnail but entries on thumbnail. These entries have been "
+				  "removed.");
+			while (c->count) {
+				unsigned int cnt = c->count;
+				exif_content_remove_entry (c, c->entries[c->count - 1]);
+				if (cnt == c->count) {
+					/* safety net */
+					exif_log (c->parent->priv->log, EXIF_LOG_CODE_DEBUG, "exif-data",
+					"failed to remove last entry from entries.");
+					c->count--;
+				}
+			}
+		}
+		break;
+	default:
+		exif_content_fix (c);
+	}
+}
+
+void
+exif_data_fix (ExifData *d)
+{
+	exif_data_foreach_content (d, fix_func, NULL);
+}
+
+void
+exif_data_set_data_type (ExifData *d, ExifDataType dt)
+{
+	if (!d || !d->priv) 
+		return;
+
+	d->priv->data_type = dt;
+}
+
+ExifDataType
+exif_data_get_data_type (ExifData *d)
+{
+	return (d && d->priv) ? d->priv->data_type : EXIF_DATA_TYPE_UNKNOWN;
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-data.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-data.h
new file mode 100644
index 0000000000000000000000000000000000000000..1bcc4e5d3d73f0063823571baa7af722ee2efbac
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-data.h
@@ -0,0 +1,264 @@
+/*! \file exif-data.h
+ * \brief Defines the ExifData type and the associated functions.
+ */
+/*
+ * \author Lutz Mueller <lutz@users.sourceforge.net>
+ * \date 2001-2005
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#ifndef __EXIF_DATA_H__
+#define __EXIF_DATA_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#include <libexif/exif-byte-order.h>
+#include <libexif/exif-data-type.h>
+#include <libexif/exif-ifd.h>
+#include <libexif/exif-log.h>
+#include <libexif/exif-tag.h>
+
+/*! Represents the entire EXIF data found in an image */
+typedef struct _ExifData        ExifData;
+typedef struct _ExifDataPrivate ExifDataPrivate;
+
+#include <libexif/exif-content.h>
+#include <libexif/exif-mnote-data.h>
+#include <libexif/exif-mem.h>
+
+/*! Represents the entire EXIF data found in an image */
+struct _ExifData
+{
+	/*! Data for each IFD */
+	ExifContent *ifd[EXIF_IFD_COUNT];
+
+	/*! Pointer to thumbnail image, or NULL if not available */
+	unsigned char *data;
+
+	/*! Number of bytes in thumbnail image at \c data */
+	unsigned int size;
+
+	ExifDataPrivate *priv;
+};
+
+/*! Allocate a new #ExifData. The #ExifData contains an empty
+ * #ExifContent for each IFD and the default set of options,
+ * which has #EXIF_DATA_OPTION_IGNORE_UNKNOWN_TAGS
+ * and #EXIF_DATA_OPTION_FOLLOW_SPECIFICATION set.
+ *
+ * \return allocated #ExifData, or NULL on error
+ */
+ExifData *exif_data_new           (void);
+
+/*! Allocate a new #ExifData using the given memory allocator.
+ * The #ExifData contains an empty #ExifContent for each IFD and the default
+ * set of options, which has #EXIF_DATA_OPTION_IGNORE_UNKNOWN_TAGS and
+ * #EXIF_DATA_OPTION_FOLLOW_SPECIFICATION set.
+ *
+ * \return allocated #ExifData, or NULL on error
+ */
+ExifData *exif_data_new_mem       (ExifMem *);
+
+/*! Allocate a new #ExifData and load EXIF data from a JPEG file.
+ * Uses an #ExifLoader internally to do the loading.
+ *
+ * \param[in] path filename including path
+ * \return allocated #ExifData, or NULL on error
+ */
+ExifData *exif_data_new_from_file (const char *path);
+
+/*! Allocate a new #ExifData and load EXIF data from a memory buffer.
+ *
+ * \param[in] data pointer to raw JPEG or EXIF data
+ * \param[in] size number of bytes of data at data
+ * \return allocated #ExifData, or NULL on error
+ */
+ExifData *exif_data_new_from_data (const unsigned char *data,
+				   unsigned int size);
+
+/*! Load the #ExifData structure from the raw JPEG or EXIF data in the given
+ * memory buffer. If the EXIF data contains a recognized MakerNote, it is
+ * loaded and stored as well for later retrieval by #exif_data_get_mnote_data.
+ * If the EXIF_DATA_OPTION_FOLLOW_SPECIFICATION has been set on this #ExifData,
+ * then the tags are fixed after loading.
+ *
+ * \param[in,out] data EXIF data
+ * \param[in] d pointer to raw JPEG or EXIF data
+ * \param[in] size number of bytes of data at d
+ */
+void      exif_data_load_data (ExifData *data, const unsigned char *d, 
+			       unsigned int size);
+
+/*! Store raw EXIF data representing the #ExifData structure into a memory
+ * buffer. The buffer is allocated by this function and must subsequently be
+ * freed by the caller using the matching free function as used by the #ExifMem
+ * in use by this #ExifData.
+ *
+ * \param[in] data EXIF data
+ * \param[out] d pointer to buffer pointer containing raw EXIF data on return
+ * \param[out] ds pointer to variable to hold the number of bytes of
+ *   data at d, or set to 0 on error
+ */
+void      exif_data_save_data (ExifData *data, unsigned char **d,
+			       unsigned int *ds);
+
+void      exif_data_ref   (ExifData *data);
+void      exif_data_unref (ExifData *data);
+void      exif_data_free  (ExifData *data);
+
+/*! Return the byte order in use by this EXIF structure.
+ *
+ * \param[in] data EXIF data
+ * \return byte order
+ */
+ExifByteOrder exif_data_get_byte_order  (ExifData *data);
+
+/*! Set the byte order to use for this EXIF data. If any tags already exist
+ * (including MakerNote tags) they are are converted to the specified byte
+ * order.
+ *
+ * \param[in,out] data EXIF data
+ * \param[in] order byte order
+ */
+void          exif_data_set_byte_order  (ExifData *data, ExifByteOrder order);
+
+/*! Return the MakerNote data out of the EXIF data.  Only certain
+ * MakerNote formats that are recognized by libexif are supported.
+ * The pointer references a member of the #ExifData structure and must NOT be
+ * freed by the caller.
+ *
+ * \param[in] d EXIF data
+ * \return MakerNote data, or NULL if not found or not supported
+ */
+ExifMnoteData *exif_data_get_mnote_data (ExifData *d);
+
+/*! Fix the EXIF data to bring it into specification. Call #exif_content_fix
+ * on each IFD to fix existing entries, create any new entries that are
+ * mandatory but do not yet exist, and remove any entries that are not
+ * allowed.
+ *
+ * \param[in,out] d EXIF data
+ */
+void           exif_data_fix (ExifData *d);
+
+typedef void (* ExifDataForeachContentFunc) (ExifContent *, void *user_data);
+
+/*! Execute a function on each IFD in turn.
+ *
+ * \param[in] data EXIF data over which to iterate
+ * \param[in] func function to call for each entry
+ * \param[in] user_data data to pass into func on each call
+ */
+void          exif_data_foreach_content (ExifData *data,
+					 ExifDataForeachContentFunc func,
+					 void *user_data);
+
+/*! Options to configure the behaviour of #ExifData */
+typedef enum {
+	/*! Act as though unknown tags are not present */
+	EXIF_DATA_OPTION_IGNORE_UNKNOWN_TAGS = 1 << 0,
+
+	/*! Fix the EXIF tags to follow the spec */
+	EXIF_DATA_OPTION_FOLLOW_SPECIFICATION = 1 << 1,
+
+	/*! Leave the MakerNote alone, which could cause it to be corrupted */
+	EXIF_DATA_OPTION_DONT_CHANGE_MAKER_NOTE = 1 << 2
+} ExifDataOption;
+
+/*! Return a short textual description of the given #ExifDataOption.
+ *
+ * \param[in] o option
+ * \return localized textual description of the option
+ */
+const char *exif_data_option_get_name        (ExifDataOption o);
+
+/*! Return a verbose textual description of the given #ExifDataOption.
+ *
+ * \param[in] o option
+ * \return verbose localized textual description of the option
+ */
+const char *exif_data_option_get_description (ExifDataOption o);
+
+/*! Set the given option on the given #ExifData.
+ *
+ * \param[in] d EXIF data
+ * \param[in] o option
+ */
+void        exif_data_set_option             (ExifData *d, ExifDataOption o);
+
+/*! Clear the given option on the given #ExifData.
+ *
+ * \param[in] d EXIF data
+ * \param[in] o option
+ */
+void        exif_data_unset_option           (ExifData *d, ExifDataOption o);
+
+/*! Set the data type for the given #ExifData.
+ *
+ * \param[in] d EXIF data
+ * \param[in] dt data type
+ */
+void         exif_data_set_data_type (ExifData *d, ExifDataType dt);
+
+/*! Return the data type for the given #ExifData.
+ *
+ * \param[in] d EXIF data
+ * \return data type, or #EXIF_DATA_TYPE_UNKNOWN on error
+ */
+ExifDataType exif_data_get_data_type (ExifData *d);
+
+/*! Dump all EXIF data to stdout.
+ * This is intended for diagnostic purposes only.
+ *
+ * \param[in] data EXIF data
+ */
+void exif_data_dump (ExifData *data);
+
+/*! Set the log message object for all IFDs.
+ *
+ * \param[in] data EXIF data
+ * \param[in] log #ExifLog
+ */
+void exif_data_log  (ExifData *data, ExifLog *log);
+
+/*! Return an #ExifEntry for the given tag if found in any IFD.
+ * Each IFD is searched in turn and the first containing a tag with
+ * this number is returned.
+ *
+ * \param[in] d #ExifData
+ * \param[in] t #ExifTag
+ * \return #ExifEntry* if found, else NULL if not found
+ */
+#define exif_data_get_entry(d,t)					\
+	(exif_content_get_entry(d->ifd[EXIF_IFD_0],t) ?			\
+	 exif_content_get_entry(d->ifd[EXIF_IFD_0],t) :			\
+	 exif_content_get_entry(d->ifd[EXIF_IFD_1],t) ?			\
+	 exif_content_get_entry(d->ifd[EXIF_IFD_1],t) :			\
+	 exif_content_get_entry(d->ifd[EXIF_IFD_EXIF],t) ?		\
+	 exif_content_get_entry(d->ifd[EXIF_IFD_EXIF],t) :		\
+	 exif_content_get_entry(d->ifd[EXIF_IFD_GPS],t) ?		\
+	 exif_content_get_entry(d->ifd[EXIF_IFD_GPS],t) :		\
+	 exif_content_get_entry(d->ifd[EXIF_IFD_INTEROPERABILITY],t) ?	\
+	 exif_content_get_entry(d->ifd[EXIF_IFD_INTEROPERABILITY],t) : NULL)
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __EXIF_DATA_H__ */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-entry.c b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-entry.c
new file mode 100644
index 0000000000000000000000000000000000000000..a7edf7a0156aec62d52b77931a62c9378e626e0f
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-entry.c
@@ -0,0 +1,1710 @@
+/* exif-entry.c
+ *
+ * Copyright (c) 2001 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#include <config.h>
+
+#include <libexif/exif-entry.h>
+#include <libexif/exif-ifd.h>
+#include <libexif/exif-utils.h>
+#include <libexif/i18n.h>
+
+#include <ctype.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <time.h>
+#include <math.h>
+
+#ifndef M_PI
+#define M_PI 3.14159265358979323846
+#endif
+
+struct _ExifEntryPrivate
+{
+	unsigned int ref_count;
+
+	ExifMem *mem;
+};
+
+/* This function is hidden in exif-data.c */
+ExifLog *exif_data_get_log (ExifData *);
+
+#ifndef NO_VERBOSE_TAG_STRINGS
+static void
+exif_entry_log (ExifEntry *e, ExifLogCode code, const char *format, ...)
+{
+	va_list args;
+	ExifLog *l = NULL;
+
+	if (e && e->parent && e->parent->parent)
+		l = exif_data_get_log (e->parent->parent);
+	va_start (args, format);
+	exif_logv (l, code, "ExifEntry", format, args);
+	va_end (args);
+}
+#else
+#if defined(__STDC_VERSION__) &&  __STDC_VERSION__ >= 199901L
+#define exif_entry_log(...) do { } while (0)
+#elif defined(__GNUC__)
+#define exif_entry_log(x...) do { } while (0)
+#else
+#define exif_entry_log (void)
+#endif
+#endif
+
+static void *
+exif_entry_alloc (ExifEntry *e, unsigned int i)
+{
+	void *d;
+	ExifLog *l = NULL;
+
+	if (!e || !e->priv || !i) return NULL;
+
+	d = exif_mem_alloc (e->priv->mem, i);
+	if (d) return d;
+
+	if (e->parent && e->parent->parent)
+		l = exif_data_get_log (e->parent->parent);
+	EXIF_LOG_NO_MEMORY (l, "ExifEntry", i);
+	return NULL;
+}
+
+static void *
+exif_entry_realloc (ExifEntry *e, void *d_orig, unsigned int i)
+{
+	void *d;
+	ExifLog *l = NULL;
+
+	if (!e || !e->priv) return NULL;
+
+	if (!i) { exif_mem_free (e->priv->mem, d_orig); return NULL; }
+
+	d = exif_mem_realloc (e->priv->mem, d_orig, i);
+	if (d) return d;
+
+	if (e->parent && e->parent->parent)
+		l = exif_data_get_log (e->parent->parent);
+	EXIF_LOG_NO_MEMORY (l, "ExifEntry", i);
+	return NULL;
+}
+
+ExifEntry *
+exif_entry_new (void)
+{
+	ExifMem *mem = exif_mem_new_default ();
+	ExifEntry *e = exif_entry_new_mem (mem);
+
+	exif_mem_unref (mem);
+
+	return e;
+}
+
+ExifEntry *
+exif_entry_new_mem (ExifMem *mem)
+{
+	ExifEntry *e = NULL;
+
+	e = exif_mem_alloc (mem, sizeof (ExifEntry));
+	if (!e) return NULL;
+	e->priv = exif_mem_alloc (mem, sizeof (ExifEntryPrivate));
+	if (!e->priv) { exif_mem_free (mem, e); return NULL; }
+	e->priv->ref_count = 1;
+
+	e->priv->mem = mem;
+	exif_mem_ref (mem);
+
+	return e;
+}
+
+void
+exif_entry_ref (ExifEntry *e)
+{
+	if (!e) return;
+
+	e->priv->ref_count++;
+}
+
+void
+exif_entry_unref (ExifEntry *e)
+{
+	if (!e) return;
+
+	e->priv->ref_count--;
+	if (!e->priv->ref_count)
+		exif_entry_free (e);
+}
+
+void
+exif_entry_free (ExifEntry *e)
+{
+	if (!e) return;
+
+	if (e->priv) {
+		ExifMem *mem = e->priv->mem;
+		if (e->data)
+			exif_mem_free (mem, e->data);
+		exif_mem_free (mem, e->priv);
+		exif_mem_free (mem, e);
+		exif_mem_unref (mem);
+	}
+}
+
+/*! Get a value and convert it to an ExifShort.
+ * \bug Not all types are converted that could be converted and no indication
+ *      is made when that occurs
+ */
+static inline ExifShort
+exif_get_short_convert (const unsigned char *buf, ExifFormat format,
+			ExifByteOrder order)
+{
+	switch (format) {
+	case EXIF_FORMAT_LONG:
+		return (ExifShort) exif_get_long (buf, order);
+	case EXIF_FORMAT_SLONG:
+		return (ExifShort) exif_get_slong (buf, order);
+	case EXIF_FORMAT_SHORT:
+		return (ExifShort) exif_get_short (buf, order);
+	case EXIF_FORMAT_SSHORT:
+		return (ExifShort) exif_get_sshort (buf, order);
+	case EXIF_FORMAT_BYTE:
+	case EXIF_FORMAT_SBYTE:
+		return (ExifShort) buf[0];
+	default:
+		/* Unsupported type */
+		return (ExifShort) 0;
+	}
+}
+
+void
+exif_entry_fix (ExifEntry *e)
+{
+	unsigned int i, newsize;
+	unsigned char *newdata;
+	ExifByteOrder o;
+	ExifRational r;
+	ExifSRational sr;
+
+	if (!e || !e->priv) return;
+
+	switch (e->tag) {
+	
+	/* These tags all need to be of format SHORT. */
+	case EXIF_TAG_YCBCR_SUB_SAMPLING:
+	case EXIF_TAG_SUBJECT_AREA:
+	case EXIF_TAG_COLOR_SPACE:
+	case EXIF_TAG_PLANAR_CONFIGURATION:
+	case EXIF_TAG_SENSING_METHOD:
+	case EXIF_TAG_ORIENTATION:
+	case EXIF_TAG_YCBCR_POSITIONING:
+	case EXIF_TAG_PHOTOMETRIC_INTERPRETATION:
+	case EXIF_TAG_CUSTOM_RENDERED:
+	case EXIF_TAG_EXPOSURE_MODE:
+	case EXIF_TAG_WHITE_BALANCE:
+	case EXIF_TAG_SCENE_CAPTURE_TYPE:
+	case EXIF_TAG_GAIN_CONTROL:
+	case EXIF_TAG_SATURATION:
+	case EXIF_TAG_CONTRAST:
+	case EXIF_TAG_SHARPNESS:
+	case EXIF_TAG_ISO_SPEED_RATINGS:
+		switch (e->format) {
+		case EXIF_FORMAT_LONG:
+		case EXIF_FORMAT_SLONG:
+		case EXIF_FORMAT_BYTE:
+		case EXIF_FORMAT_SBYTE:
+		case EXIF_FORMAT_SSHORT:
+			if (!e->parent || !e->parent->parent) break;
+			exif_entry_log (e, EXIF_LOG_CODE_DEBUG,
+				_("Tag '%s' was of format '%s' (which is "
+				"against specification) and has been "
+				"changed to format '%s'."),
+				exif_tag_get_name_in_ifd(e->tag,
+							exif_entry_get_ifd(e)),
+				exif_format_get_name (e->format),
+				exif_format_get_name (EXIF_FORMAT_SHORT));
+
+			o = exif_data_get_byte_order (e->parent->parent);
+			newsize = e->components * exif_format_get_size (EXIF_FORMAT_SHORT);
+			newdata = exif_entry_alloc (e, newsize);
+			if (!newdata) {
+				exif_entry_log (e, EXIF_LOG_CODE_NO_MEMORY,
+					"Could not allocate %lu byte(s).", (unsigned long)newsize);
+				break;
+			}
+
+			for (i = 0; i < e->components; i++)
+				exif_set_short (
+					newdata + i *
+					exif_format_get_size (
+					 EXIF_FORMAT_SHORT), o,
+					 exif_get_short_convert (
+					  e->data + i *
+					  exif_format_get_size (e->format),
+					  e->format, o));
+
+			exif_mem_free (e->priv->mem, e->data);
+			e->data = newdata;
+			e->size = newsize;
+			e->format = EXIF_FORMAT_SHORT;
+			break;
+		case EXIF_FORMAT_SHORT:
+			/* No conversion necessary */
+			break;
+		default:
+			exif_entry_log (e, EXIF_LOG_CODE_CORRUPT_DATA,
+				_("Tag '%s' is of format '%s' (which is "
+				"against specification) but cannot be changed "
+				"to format '%s'."),
+				exif_tag_get_name_in_ifd(e->tag,
+							exif_entry_get_ifd(e)),
+				exif_format_get_name (e->format),
+				exif_format_get_name (EXIF_FORMAT_SHORT));
+			break;
+		}
+		break;
+
+	/* All these tags need to be of format 'Rational'. */
+	case EXIF_TAG_FNUMBER:
+	case EXIF_TAG_APERTURE_VALUE:
+	case EXIF_TAG_EXPOSURE_TIME:
+	case EXIF_TAG_FOCAL_LENGTH:
+		switch (e->format) {
+		case EXIF_FORMAT_SRATIONAL:
+			if (!e->parent || !e->parent->parent) break;
+			o = exif_data_get_byte_order (e->parent->parent);
+			for (i = 0; i < e->components; i++) {
+				sr = exif_get_srational (e->data + i * 
+					exif_format_get_size (
+						EXIF_FORMAT_SRATIONAL), o);
+				r.numerator = (ExifLong) sr.numerator;
+				r.denominator = (ExifLong) sr.denominator;
+				exif_set_rational (e->data + i *
+					exif_format_get_size (
+						EXIF_FORMAT_RATIONAL), o, r);
+			}
+			e->format = EXIF_FORMAT_RATIONAL;
+			exif_entry_log (e, EXIF_LOG_CODE_DEBUG,
+				_("Tag '%s' was of format '%s' (which is "
+				"against specification) and has been "
+				"changed to format '%s'."),
+				exif_tag_get_name_in_ifd(e->tag,
+							exif_entry_get_ifd(e)),
+				exif_format_get_name (EXIF_FORMAT_SRATIONAL),
+				exif_format_get_name (EXIF_FORMAT_RATIONAL));
+			break;
+		default:
+			break;
+		}
+		break;
+
+	/* All these tags need to be of format 'SRational'. */
+	case EXIF_TAG_EXPOSURE_BIAS_VALUE:
+	case EXIF_TAG_BRIGHTNESS_VALUE:
+	case EXIF_TAG_SHUTTER_SPEED_VALUE:
+		switch (e->format) {
+		case EXIF_FORMAT_RATIONAL:
+			if (!e->parent || !e->parent->parent) break;
+			o = exif_data_get_byte_order (e->parent->parent);
+			for (i = 0; i < e->components; i++) {
+				r = exif_get_rational (e->data + i * 
+					exif_format_get_size (
+						EXIF_FORMAT_RATIONAL), o);
+				sr.numerator = (ExifLong) r.numerator;
+				sr.denominator = (ExifLong) r.denominator;
+				exif_set_srational (e->data + i *
+					exif_format_get_size (
+						EXIF_FORMAT_SRATIONAL), o, sr);
+			}
+			e->format = EXIF_FORMAT_SRATIONAL;
+			exif_entry_log (e, EXIF_LOG_CODE_DEBUG,
+				_("Tag '%s' was of format '%s' (which is "
+				"against specification) and has been "
+				"changed to format '%s'."),
+				exif_tag_get_name_in_ifd(e->tag,
+							exif_entry_get_ifd(e)),
+				exif_format_get_name (EXIF_FORMAT_RATIONAL),
+				exif_format_get_name (EXIF_FORMAT_SRATIONAL));
+			break;
+		default:
+			break;
+		}
+		break;
+
+	case EXIF_TAG_USER_COMMENT:
+
+		/* Format needs to be UNDEFINED. */
+		if (e->format != EXIF_FORMAT_UNDEFINED) {
+			exif_entry_log (e, EXIF_LOG_CODE_DEBUG,
+				_("Tag 'UserComment' had invalid format '%s'. "
+				"Format has been set to 'undefined'."),
+				exif_format_get_name (e->format));
+			e->format = EXIF_FORMAT_UNDEFINED;
+		}
+
+		/* Some packages like Canon ZoomBrowser EX 4.5 store
+		   only one zero byte followed by 7 bytes of rubbish */
+		if ((e->size >= 8) && (e->data[0] == 0)) {
+			memcpy(e->data, "\0\0\0\0\0\0\0\0", 8);
+		}
+
+		/* There need to be at least 8 bytes. */
+		if (e->size < 8) {
+			e->data = exif_entry_realloc (e, e->data, 8 + e->size);
+			if (!e->data) {
+				e->size = 0;
+				e->components = 0;
+				return;
+			}
+
+			/* Assume ASCII */
+			memmove (e->data + 8, e->data, e->size);
+			memcpy (e->data, "ASCII\0\0\0", 8);
+			e->size += 8;
+			e->components += 8;
+			exif_entry_log (e, EXIF_LOG_CODE_DEBUG,
+				_("Tag 'UserComment' has been expanded to at "
+				"least 8 bytes in order to follow the "
+				"specification."));
+			break;
+		}
+
+		/*
+		 * If the first 8 bytes are empty and real data starts
+		 * afterwards, let's assume ASCII and claim the 8 first
+		 * bytes for the format specifyer.
+		 */
+		for (i = 0; (i < e->size) && !e->data[i]; i++);
+		if (!i) for ( ; (i < e->size) && (e->data[i] == ' '); i++);
+		if ((i >= 8) && (i < e->size)) {
+			exif_entry_log (e, EXIF_LOG_CODE_DEBUG,
+				_("Tag 'UserComment' is not empty but does not "
+				"start with a format identifier. "
+				"This has been fixed."));
+			memcpy (e->data, "ASCII\0\0\0", 8);
+			break;
+		}
+
+		/* 
+		 * First 8 bytes need to follow the specification. If they don't, 
+		 * assume ASCII.
+		 */
+		if (memcmp (e->data, "ASCII\0\0\0"     , 8) &&
+		    memcmp (e->data, "UNICODE\0"       , 8) &&
+		    memcmp (e->data, "JIS\0\0\0\0\0"   , 8) &&
+		    memcmp (e->data, "\0\0\0\0\0\0\0\0", 8)) {
+			e->data = exif_entry_realloc (e, e->data, 8 + e->size);
+			if (!e->data) {
+				e->size = 0;
+				e->components = 0;
+				break;
+			}
+
+			/* Assume ASCII */
+			memmove (e->data + 8, e->data, e->size);
+			memcpy (e->data, "ASCII\0\0\0", 8);
+			e->size += 8;
+			e->components += 8;
+			exif_entry_log (e, EXIF_LOG_CODE_DEBUG,
+				_("Tag 'UserComment' did not start with a "
+				"format identifier. This has been fixed."));
+			break;
+		}
+
+		break;
+	default:
+		break;
+	}
+}
+
+/*! Format the value of an ExifEntry for human display in a generic way.
+ * The output is localized. The formatting is independent of the tag number.
+ * \pre The buffer at val is entirely cleared to 0. This guarantees that the
+ *      resulting string will be NUL terminated.
+ * \pre The ExifEntry is already a member of an ExifData.
+ * \param[in] e EXIF entry
+ * \param[out] val buffer in which to store value
+ * \param[in] maxlen one less than the length of the buffer val
+ */
+static void
+exif_entry_format_value(ExifEntry *e, char *val, size_t maxlen)
+{
+	ExifByte v_byte;
+	ExifShort v_short;
+	ExifSShort v_sshort;
+	ExifLong v_long;
+	ExifRational v_rat;
+	ExifSRational v_srat;
+	ExifSLong v_slong;
+	char b[64];
+	unsigned int i;
+	const ExifByteOrder o = exif_data_get_byte_order (e->parent->parent);
+
+	if (!e->size)
+		return;
+	switch (e->format) {
+	case EXIF_FORMAT_UNDEFINED:
+		snprintf (val, maxlen, _("%i bytes undefined data"), e->size);
+		break;
+	case EXIF_FORMAT_BYTE:
+	case EXIF_FORMAT_SBYTE:
+		v_byte = e->data[0];
+		snprintf (val, maxlen, "0x%02x", v_byte);
+		maxlen -= strlen (val);
+		for (i = 1; i < e->components; i++) {
+			v_byte = e->data[i];
+			snprintf (b, sizeof (b), ", 0x%02x", v_byte);
+			strncat (val, b, maxlen);
+			maxlen -= strlen (b);
+			if ((signed)maxlen <= 0) break;
+		}
+		break;
+	case EXIF_FORMAT_SHORT:
+		v_short = exif_get_short (e->data, o);
+		snprintf (val, maxlen, "%u", v_short);
+		maxlen -= strlen (val);
+		for (i = 1; i < e->components; i++) {
+			v_short = exif_get_short (e->data +
+				exif_format_get_size (e->format) * i, o);
+			snprintf (b, sizeof (b), ", %u", v_short);
+			strncat (val, b, maxlen);
+			maxlen -= strlen (b);
+			if ((signed)maxlen <= 0) break;
+		}
+		break;
+	case EXIF_FORMAT_SSHORT:
+		v_sshort = exif_get_sshort (e->data, o);
+		snprintf (val, maxlen, "%i", v_sshort);
+		maxlen -= strlen (val);
+		for (i = 1; i < e->components; i++) {
+			v_sshort = exif_get_short (e->data +
+				exif_format_get_size (e->format) *
+				i, o);
+			snprintf (b, sizeof (b), ", %i", v_sshort);
+			strncat (val, b, maxlen);
+			maxlen -= strlen (b);
+			if ((signed)maxlen <= 0) break;
+		}
+		break;
+	case EXIF_FORMAT_LONG:
+		v_long = exif_get_long (e->data, o);
+		snprintf (val, maxlen, "%lu", (unsigned long) v_long);
+		maxlen -= strlen (val);
+		for (i = 1; i < e->components; i++) {
+			v_long = exif_get_long (e->data +
+				exif_format_get_size (e->format) *
+				i, o);
+			snprintf (b, sizeof (b), ", %lu", (unsigned long) v_long);
+			strncat (val, b, maxlen);
+			maxlen -= strlen (b);
+			if ((signed)maxlen <= 0) break;
+		}
+		break;
+	case EXIF_FORMAT_SLONG:
+		v_slong = exif_get_slong (e->data, o);
+		snprintf (val, maxlen, "%li", (long) v_slong);
+		maxlen -= strlen (val);
+		for (i = 1; i < e->components; i++) {
+			v_slong = exif_get_slong (e->data +
+				exif_format_get_size (e->format) * i, o);
+			snprintf (b, sizeof (b), ", %li", (long) v_slong);
+			strncat (val, b, maxlen);
+			maxlen -= strlen (b);
+			if ((signed)maxlen <= 0) break;
+		}
+		break;
+	case EXIF_FORMAT_ASCII:
+		strncpy (val, (char *) e->data, MIN (maxlen, e->size));
+		break;
+	case EXIF_FORMAT_RATIONAL:
+		for (i = 0; i < e->components; i++) {
+			if (i > 0) {
+				strncat (val, ", ", maxlen);
+				maxlen -= 2;
+			}
+			v_rat = exif_get_rational (
+				e->data + 8 * i, o);
+			if (v_rat.denominator) {
+				/*
+				 * Choose the number of significant digits to
+				 * display based on the size of the denominator.
+				 * It is scaled so that denominators within the
+				 * range 13..120 will show 2 decimal points.
+				 */
+				int decimals = (int)(log10(v_rat.denominator)-0.08+1.0);
+				snprintf (b, sizeof (b), "%2.*f",
+					  decimals,
+					  (double) v_rat.numerator /
+					  (double) v_rat.denominator);
+			} else
+				snprintf (b, sizeof (b), "%lu/%lu",
+				  (unsigned long) v_rat.numerator,
+				  (unsigned long) v_rat.denominator);
+			strncat (val, b, maxlen);
+			maxlen -= strlen (b);
+			if ((signed) maxlen <= 0) break;
+		}
+		break;
+	case EXIF_FORMAT_SRATIONAL:
+		for (i = 0; i < e->components; i++) {
+			if (i > 0) {
+				strncat (val, ", ", maxlen);
+				maxlen -= 2;
+			}
+			v_srat = exif_get_srational (
+				e->data + 8 * i, o);
+			if (v_srat.denominator) {
+				int decimals = (int)(log10(fabs(v_srat.denominator))-0.08+1.0);
+				snprintf (b, sizeof (b), "%2.*f",
+					  decimals,
+					  (double) v_srat.numerator /
+					  (double) v_srat.denominator);
+			} else
+				snprintf (b, sizeof (b), "%li/%li",
+				  (long) v_srat.numerator,
+				  (long) v_srat.denominator);
+			strncat (val, b, maxlen);
+			maxlen -= strlen (b);
+			if ((signed) maxlen <= 0) break;
+		}
+		break;
+	case EXIF_FORMAT_DOUBLE:
+	case EXIF_FORMAT_FLOAT:
+	default:
+		snprintf (val, maxlen, _("%i bytes unsupported data type"),
+			  e->size);
+		break;
+	}
+}
+
+void
+exif_entry_dump (ExifEntry *e, unsigned int indent)
+{
+	char buf[1024];
+	char value[1024];
+	unsigned int i;
+
+	for (i = 0; i < 2 * indent; i++)
+		buf[i] = ' ';
+	buf[i] = '\0';
+
+	if (!e)
+		return;
+
+	printf ("%sTag: 0x%x ('%s')\n", buf, e->tag,
+		exif_tag_get_name_in_ifd (e->tag, exif_entry_get_ifd(e)));
+	printf ("%s  Format: %i ('%s')\n", buf, e->format,
+		exif_format_get_name (e->format));
+	printf ("%s  Components: %i\n", buf, (int) e->components);
+	printf ("%s  Size: %i\n", buf, e->size);
+	printf ("%s  Value: %s\n", buf, exif_entry_get_value (e, value, sizeof(value)));
+}
+
+#define CF(entry,target,v,maxlen)					\
+{									\
+	if (entry->format != target) {					\
+		exif_entry_log (entry, EXIF_LOG_CODE_CORRUPT_DATA,	\
+			_("The tag '%s' contains data of an invalid "	\
+			"format ('%s', expected '%s')."),		\
+			exif_tag_get_name (entry->tag),			\
+			exif_format_get_name (entry->format),		\
+			exif_format_get_name (target));			\
+		break;							\
+	}								\
+}
+
+#define CC(entry,target,v,maxlen)					\
+{									\
+	if (entry->components != target) {				\
+		exif_entry_log (entry, EXIF_LOG_CODE_CORRUPT_DATA,	\
+			_("The tag '%s' contains an invalid number of "	\
+			  "components (%i, expected %i)."),		\
+			exif_tag_get_name (entry->tag),		\
+			(int) entry->components, (int) target);		\
+		break;							\
+	}								\
+}
+
+static const struct {
+	ExifTag tag;
+	const char *strings[10];
+} list[] = {
+#ifndef NO_VERBOSE_TAG_DATA
+  { EXIF_TAG_PLANAR_CONFIGURATION,
+    { N_("Chunky format"), N_("Planar format"), NULL}},
+  { EXIF_TAG_SENSING_METHOD,
+    { "", N_("Not defined"), N_("One-chip color area sensor"),
+      N_("Two-chip color area sensor"), N_("Three-chip color area sensor"),
+      N_("Color sequential area sensor"), "", N_("Trilinear sensor"),
+      N_("Color sequential linear sensor"), NULL}},
+  { EXIF_TAG_ORIENTATION,
+    { "", N_("Top-left"), N_("Top-right"), N_("Bottom-right"),
+      N_("Bottom-left"), N_("Left-top"), N_("Right-top"),
+      N_("Right-bottom"), N_("Left-bottom"), NULL}},
+  { EXIF_TAG_YCBCR_POSITIONING,
+    { "", N_("Centered"), N_("Co-sited"), NULL}},
+  { EXIF_TAG_PHOTOMETRIC_INTERPRETATION,
+    { N_("Reversed mono"), N_("Normal mono"), N_("RGB"), N_("Palette"), "",
+      N_("CMYK"), N_("YCbCr"), "", N_("CieLAB"), NULL}},
+  { EXIF_TAG_CUSTOM_RENDERED,
+    { N_("Normal process"), N_("Custom process"), NULL}},
+  { EXIF_TAG_EXPOSURE_MODE,
+    { N_("Auto exposure"), N_("Manual exposure"), N_("Auto bracket"), NULL}},
+  { EXIF_TAG_WHITE_BALANCE,
+    { N_("Auto white balance"), N_("Manual white balance"), NULL}},
+  { EXIF_TAG_SCENE_CAPTURE_TYPE,
+    { N_("Standard"), N_("Landscape"), N_("Portrait"),
+      N_("Night scene"), NULL}},
+  { EXIF_TAG_GAIN_CONTROL,
+    { N_("Normal"), N_("Low gain up"), N_("High gain up"),
+      N_("Low gain down"), N_("High gain down"), NULL}},
+  { EXIF_TAG_SATURATION,
+    { N_("Normal"), N_("Low saturation"), N_("High saturation"), NULL}},
+  { EXIF_TAG_CONTRAST , {N_("Normal"), N_("Soft"), N_("Hard"), NULL}},
+  { EXIF_TAG_SHARPNESS, {N_("Normal"), N_("Soft"), N_("Hard"), NULL}},
+#endif
+  { 0, {NULL}}
+};
+
+static const struct {
+  ExifTag tag;
+  struct {
+    int index;
+    const char *values[4]; /*!< list of progressively shorter string
+			    descriptions; the longest one that fits will be
+			    selected */
+  } elem[25];
+} list2[] = {
+#ifndef NO_VERBOSE_TAG_DATA
+  { EXIF_TAG_METERING_MODE,
+    { {  0, {N_("Unknown"), NULL}},
+      {  1, {N_("Average"), N_("Avg"), NULL}},
+      {  2, {N_("Center-weighted average"), N_("Center-weight"), NULL}},
+      {  3, {N_("Spot"), NULL}},
+      {  4, {N_("Multi spot"), NULL}},
+      {  5, {N_("Pattern"), NULL}},
+      {  6, {N_("Partial"), NULL}},
+      {255, {N_("Other"), NULL}},
+      {  0, {NULL}}}},
+  { EXIF_TAG_COMPRESSION,
+    { {1, {N_("Uncompressed"), NULL}},
+      {5, {N_("LZW compression"), NULL}},
+      {6, {N_("JPEG compression"), NULL}},
+      {7, {N_("JPEG compression"), NULL}},
+      {8, {N_("Deflate/ZIP compression"), NULL}},
+      {32773, {N_("PackBits compression"), NULL}},
+      {0, {NULL}}}},
+  { EXIF_TAG_LIGHT_SOURCE,
+    { {  0, {N_("Unknown"), NULL}},
+      {  1, {N_("Daylight"), NULL}},
+      {  2, {N_("Fluorescent"), NULL}},
+      {  3, {N_("Tungsten incandescent light"), N_("Tungsten"), NULL}},
+      {  4, {N_("Flash"), NULL}},
+      {  9, {N_("Fine weather"), NULL}},
+      { 10, {N_("Cloudy weather"), N_("Cloudy"), NULL}},
+      { 11, {N_("Shade"), NULL}},
+      { 12, {N_("Daylight fluorescent"), NULL}},
+      { 13, {N_("Day white fluorescent"), NULL}},
+      { 14, {N_("Cool white fluorescent"), NULL}},
+      { 15, {N_("White fluorescent"), NULL}},
+      { 17, {N_("Standard light A"), NULL}},
+      { 18, {N_("Standard light B"), NULL}},
+      { 19, {N_("Standard light C"), NULL}},
+      { 20, {N_("D55"), NULL}},
+      { 21, {N_("D65"), NULL}},
+      { 22, {N_("D75"), NULL}},
+      { 24, {N_("ISO studio tungsten"),NULL}},
+      {255, {N_("Other"), NULL}},
+      {  0, {NULL}}}},
+  { EXIF_TAG_FOCAL_PLANE_RESOLUTION_UNIT,
+    { {2, {N_("Inch"), N_("in"), NULL}},
+      {3, {N_("Centimeter"), N_("cm"), NULL}},
+      {0, {NULL}}}},
+  { EXIF_TAG_RESOLUTION_UNIT,
+    { {2, {N_("Inch"), N_("in"), NULL}},
+      {3, {N_("Centimeter"), N_("cm"), NULL}}, 
+      {0, {NULL}}}},
+  { EXIF_TAG_EXPOSURE_PROGRAM,
+    { {0, {N_("Not defined"), NULL}},
+      {1, {N_("Manual"), NULL}},
+      {2, {N_("Normal program"), N_("Normal"), NULL}},
+      {3, {N_("Aperture priority"), N_("Aperture"), NULL}},
+      {4, {N_("Shutter priority"),N_("Shutter"), NULL}},
+      {5, {N_("Creative program (biased toward depth of field)"),
+	   N_("Creative"), NULL}},
+      {6, {N_("Creative program (biased toward fast shutter speed)"),
+	   N_("Action"), NULL}},
+      {7, {N_("Portrait mode (for closeup photos with the background out "
+	      "of focus)"), N_("Portrait"), NULL}},
+      {8, {N_("Landscape mode (for landscape photos with the background "
+	      "in focus)"), N_("Landscape"), NULL}},
+      {0, {NULL}}}},
+  { EXIF_TAG_FLASH,
+    { {0x0000, {N_("Flash did not fire"), N_("No flash"), NULL}},
+      {0x0001, {N_("Flash fired"), N_("Flash"), N_("Yes"), NULL}},
+      {0x0005, {N_("Strobe return light not detected"), N_("Without strobe"),
+		NULL}},
+      {0x0007, {N_("Strobe return light detected"), N_("With strobe"), NULL}},
+      {0x0008, {N_("Flash did not fire"), NULL}}, /* Olympus E-330 */
+      {0x0009, {N_("Flash fired, compulsory flash mode"), NULL}},
+      {0x000d, {N_("Flash fired, compulsory flash mode, return light "
+		   "not detected"), NULL}},
+      {0x000f, {N_("Flash fired, compulsory flash mode, return light "
+		   "detected"), NULL}},
+      {0x0010, {N_("Flash did not fire, compulsory flash mode"), NULL}},
+      {0x0018, {N_("Flash did not fire, auto mode"), NULL}},
+      {0x0019, {N_("Flash fired, auto mode"), NULL}},
+      {0x001d, {N_("Flash fired, auto mode, return light not detected"),
+		NULL}},
+      {0x001f, {N_("Flash fired, auto mode, return light detected"), NULL}},
+      {0x0020, {N_("No flash function"),NULL}},
+      {0x0041, {N_("Flash fired, red-eye reduction mode"), NULL}},
+      {0x0045, {N_("Flash fired, red-eye reduction mode, return light "
+		   "not detected"), NULL}},
+      {0x0047, {N_("Flash fired, red-eye reduction mode, return light "
+		   "detected"), NULL}},
+      {0x0049, {N_("Flash fired, compulsory flash mode, red-eye reduction "
+		   "mode"), NULL}},
+      {0x004d, {N_("Flash fired, compulsory flash mode, red-eye reduction "
+		  "mode, return light not detected"), NULL}},
+      {0x004f, {N_("Flash fired, compulsory flash mode, red-eye reduction mode, "
+		   "return light detected"), NULL}},
+      {0x0058, {N_("Flash did not fire, auto mode, red-eye reduction mode"), NULL}},
+      {0x0059, {N_("Flash fired, auto mode, red-eye reduction mode"), NULL}},
+      {0x005d, {N_("Flash fired, auto mode, return light not detected, "
+		   "red-eye reduction mode"), NULL}},
+      {0x005f, {N_("Flash fired, auto mode, return light detected, "
+		   "red-eye reduction mode"), NULL}},
+      {0x0000, {NULL}}}},
+  { EXIF_TAG_SUBJECT_DISTANCE_RANGE, 
+    { {0, {N_("Unknown"), N_("?"), NULL}},
+      {1, {N_("Macro"), NULL}},
+      {2, {N_("Close view"), N_("Close"), NULL}},
+      {3, {N_("Distant view"), N_("Distant"), NULL}},
+      {0, {NULL}}}},
+  { EXIF_TAG_COLOR_SPACE,
+    { {1, {N_("sRGB"), NULL}},
+      {2, {N_("Adobe RGB"), NULL}},
+      {0xffff, {N_("Uncalibrated"), NULL}},
+      {0x0000, {NULL}}}},
+#endif
+  {0, { { 0, {NULL}}} }
+};
+
+const char *
+exif_entry_get_value (ExifEntry *e, char *val, unsigned int maxlen)
+{
+	unsigned int i, j, k;
+	const unsigned char *t;
+	ExifShort v_short, v_short2, v_short3, v_short4;
+	ExifByte v_byte;
+	ExifRational v_rat;
+	ExifSRational v_srat;
+	char b[64];
+	const char *c;
+	ExifByteOrder o;
+	double d;
+	ExifEntry *entry;
+	static const struct {
+		char label[5];
+		char major, minor;
+	} versions[] = {
+		{"0110", 1,  1},
+		{"0120", 1,  2},
+		{"0200", 2,  0},
+		{"0210", 2,  1},
+		{"0220", 2,  2},
+		{"0221", 2, 21},
+		{""    , 0,  0}
+	};
+
+	/* FIXME: This belongs to somewhere else. */
+	/* libexif should use the default system locale.
+	 * If an application specifically requires UTF-8, then we
+	 * must give the application a way to tell libexif that.
+	 * 
+	 * bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+	 */
+	bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
+
+	/* make sure the returned string is zero terminated */
+	memset (val, 0, maxlen);
+	maxlen--;
+	memset (b, 0, sizeof (b));
+
+	/* We need the byte order */
+	if (!e || !e->parent || !e->parent->parent)
+		return val;
+	o = exif_data_get_byte_order (e->parent->parent);
+
+	/* Sanity check */
+	if (e->size != e->components * exif_format_get_size (e->format)) {
+		snprintf (val, maxlen, _("Invalid size of entry (%i, "
+			"expected %li x %i)."), e->size, e->components,
+				exif_format_get_size (e->format));
+		return val;
+	}
+
+	switch (e->tag) {
+	case EXIF_TAG_USER_COMMENT:
+
+		/*
+		 * The specification says UNDEFINED, but some
+		 * manufacturers don't care and use ASCII. If this is the
+		 * case here, only refuse to read it if there is no chance
+		 * of finding readable data.
+		 */
+		if ((e->format != EXIF_FORMAT_ASCII) || 
+		    (e->size <= 8) ||
+		    ( memcmp (e->data, "ASCII\0\0\0"  , 8) &&
+		      memcmp (e->data, "UNICODE\0"    , 8) &&
+		      memcmp (e->data, "JIS\0\0\0\0\0", 8) &&
+		      memcmp (e->data, "\0\0\0\0\0\0\0\0", 8)))
+			CF (e, EXIF_FORMAT_UNDEFINED, val, maxlen);
+
+		/*
+		 * Note that, according to the specification (V2.1, p 40),
+		 * the user comment field does not have to be 
+		 * NULL terminated.
+		 */
+		if ((e->size >= 8) && !memcmp (e->data, "ASCII\0\0\0", 8)) {
+			strncpy (val, (char *) e->data + 8, MIN (e->size - 8, maxlen));
+			break;
+		}
+		if ((e->size >= 8) && !memcmp (e->data, "UNICODE\0", 8)) {
+			strncpy (val, _("Unsupported UNICODE string"), maxlen);
+		/* FIXME: use iconv to convert into the locale encoding.
+		 * EXIF 2.2 implies (but does not say) that this encoding is
+		 * UCS-2.
+		 */
+			break;
+		}
+		if ((e->size >= 8) && !memcmp (e->data, "JIS\0\0\0\0\0", 8)) {
+			strncpy (val, _("Unsupported JIS string"), maxlen);
+		/* FIXME: use iconv to convert into the locale encoding */
+			break;
+		}
+
+		/* Check if there is really some information in the tag. */
+		for (i = 0; (i < e->size) &&
+			    (!e->data[i] || (e->data[i] == ' ')); i++);
+		if (i == e->size) break;
+
+		/*
+		 * If we reach this point, the tag does not
+		 * comply with the standard and seems to contain data.
+		 * Print as much as possible.
+		 */
+		exif_entry_log (e, EXIF_LOG_CODE_DEBUG,
+			_("Tag UserComment does not comply "
+			"with standard but contains data."));
+		for (; (i < e->size)  && (strlen (val) < maxlen - 1); i++) {
+			exif_entry_log (e, EXIF_LOG_CODE_DEBUG,
+				_("Byte at position %i: 0x%02x"), i, e->data[i]);
+			val[strlen (val)] =
+				isprint (e->data[i]) ? e->data[i] : '.';
+		}
+		break;
+
+	case EXIF_TAG_EXIF_VERSION:
+		CF (e, EXIF_FORMAT_UNDEFINED, val, maxlen);
+		CC (e, 4, val, maxlen);
+		strncpy (val, _("Unknown Exif Version"), maxlen);
+		for (i = 0; *versions[i].label; i++) {
+			if (!memcmp (e->data, versions[i].label, 4)) {
+    				snprintf (val, maxlen,
+					_("Exif Version %d.%d"),
+					versions[i].major,
+					versions[i].minor);
+    				break;
+			}
+		}
+		break;
+	case EXIF_TAG_FLASH_PIX_VERSION:
+		CF (e, EXIF_FORMAT_UNDEFINED, val, maxlen);
+		CC (e, 4, val, maxlen);
+		if (!memcmp (e->data, "0100", 4))
+			strncpy (val, _("FlashPix Version 1.0"), maxlen);
+		else if (!memcmp (e->data, "0101", 4))
+			strncpy (val, _("FlashPix Version 1.01"), maxlen);
+		else
+			strncpy (val, _("Unknown FlashPix Version"), maxlen);
+		break;
+	case EXIF_TAG_COPYRIGHT:
+		CF (e, EXIF_FORMAT_ASCII, val, maxlen);
+
+		/*
+		 * First part: Photographer.
+		 * Some cameras store a string like "   " here. Ignore it.
+		 */
+		if (e->size && e->data &&
+		    (strspn ((char *)e->data, " ") != strlen ((char *) e->data)))
+			strncpy (val, (char *) e->data, MIN (maxlen, e->size));
+		else
+			strncpy (val, _("[None]"), maxlen);
+		strncat (val, " ", maxlen - strlen (val));
+		strncat (val, _("(Photographer)"), maxlen - strlen (val));
+
+		/* Second part: Editor. */
+		strncat (val, " - ", maxlen - strlen (val));
+		if (e->size && e->data) {
+			size_t ts;
+			t = e->data + strlen ((char *) e->data) + 1;
+			ts = e->data + e->size - t;
+			if ((ts > 0) && (strspn ((char *)t, " ") != ts))
+				strncat (val, (char *)t, MIN (maxlen - strlen (val), ts));
+		} else {
+			strncat (val, _("[None]"), maxlen - strlen (val));
+		}
+		strncat (val, " ", maxlen - strlen (val));
+		strncat (val, _("(Editor)"), maxlen - strlen (val));
+
+		break;
+	case EXIF_TAG_FNUMBER:
+		CF (e, EXIF_FORMAT_RATIONAL, val, maxlen);
+		CC (e, 1, val, maxlen);
+		v_rat = exif_get_rational (e->data, o);
+		if (!v_rat.denominator) {
+			exif_entry_format_value(e, val, maxlen);
+			break;
+		}
+		d = (double) v_rat.numerator / (double) v_rat.denominator;
+		snprintf (val, maxlen, "f/%.01f", d);
+		break;
+	case EXIF_TAG_APERTURE_VALUE:
+	case EXIF_TAG_MAX_APERTURE_VALUE:
+		CF (e, EXIF_FORMAT_RATIONAL, val, maxlen);
+		CC (e, 1, val, maxlen);
+		v_rat = exif_get_rational (e->data, o);
+		if (!v_rat.denominator || (0x80000000 == v_rat.numerator)) {
+			exif_entry_format_value(e, val, maxlen);
+			break;
+		}
+		d = (double) v_rat.numerator / (double) v_rat.denominator;
+		snprintf (val, maxlen, _("%.02f EV"), d);
+		snprintf (b, sizeof (b), _(" (f/%.01f)"), pow (2, d / 2.));
+		if (maxlen > strlen (val) + strlen (b))
+			strncat (val, b, maxlen - strlen (val));
+		break;
+	case EXIF_TAG_FOCAL_LENGTH:
+		CF (e, EXIF_FORMAT_RATIONAL, val, maxlen);
+		CC (e, 1, val, maxlen);
+		v_rat = exif_get_rational (e->data, o);
+		if (!v_rat.denominator) {
+			exif_entry_format_value(e, val, maxlen);
+			break;
+		}
+
+		/*
+		 * For calculation of the 35mm equivalent,
+		 * Minolta cameras need a multiplier that depends on the
+		 * camera model.
+		 */
+		d = 0.;
+		entry = exif_content_get_entry (
+			e->parent->parent->ifd[EXIF_IFD_0], EXIF_TAG_MAKE);
+		if (entry && entry->data &&
+		    !strncmp ((char *)entry->data, "Minolta", 7)) {
+			entry = exif_content_get_entry (
+					e->parent->parent->ifd[EXIF_IFD_0],
+					EXIF_TAG_MODEL);
+			if (entry && entry->data) {
+				if (!strncmp ((char *)entry->data, "DiMAGE 7", 8))
+					d = 3.9;
+				else if (!strncmp ((char *)entry->data, "DiMAGE 5", 8))
+					d = 4.9;
+			}
+		}
+		if (d)
+			snprintf (b, sizeof (b), _(" (35 equivalent: %d mm)"),
+				  (int) (d * (double) v_rat.numerator /
+				  	     (double) v_rat.denominator));
+
+		d = (double) v_rat.numerator / (double) v_rat.denominator;
+		snprintf (val, maxlen, "%.1f mm", d);
+		if (maxlen > strlen (val) + strlen (b))
+			strncat (val, b, maxlen - strlen (val));
+		break;
+	case EXIF_TAG_SUBJECT_DISTANCE:
+		CF (e, EXIF_FORMAT_RATIONAL, val, maxlen);
+		CC (e, 1, val, maxlen);
+		v_rat = exif_get_rational (e->data, o);
+		if (!v_rat.denominator) {
+			exif_entry_format_value(e, val, maxlen);
+			break;
+		}
+		d = (double) v_rat.numerator / (double) v_rat.denominator;
+		snprintf (val, maxlen, "%.1f m", d);
+		break;
+	case EXIF_TAG_EXPOSURE_TIME:
+		CF (e, EXIF_FORMAT_RATIONAL, val, maxlen);
+		CC (e, 1, val, maxlen);
+		v_rat = exif_get_rational (e->data, o);
+		if (!v_rat.denominator) {
+			exif_entry_format_value(e, val, maxlen);
+			break;
+		}
+		d = (double) v_rat.numerator / (double) v_rat.denominator;
+		if (d < 1)
+			snprintf (val, maxlen, _("1/%i"), (int) (0.5 + 1. / d));
+		else
+			snprintf (val, maxlen, "%i", (int) d);
+		if (maxlen > strlen (val) + strlen (_(" sec.")))
+			strncat (val, _(" sec."), maxlen - strlen (val));
+		break;
+	case EXIF_TAG_SHUTTER_SPEED_VALUE:
+		CF (e, EXIF_FORMAT_SRATIONAL, val, maxlen);
+		CC (e, 1, val, maxlen);
+		v_srat = exif_get_srational (e->data, o);
+		if (!v_srat.denominator) {
+			exif_entry_format_value(e, val, maxlen);
+			break;
+		}
+		d = (double) v_srat.numerator / (double) v_srat.denominator;
+		snprintf (val, maxlen, _("%.02f EV"), d);
+		d = 1. / pow (2, d);
+		if (d < 1)
+		  snprintf (b, sizeof (b), _(" (1/%d sec.)"), (int) (1. / d));
+		else
+		  snprintf (b, sizeof (b), _(" (%d sec.)"), (int) d);
+		strncat (val, b, maxlen - strlen (val));
+		break;
+	case EXIF_TAG_BRIGHTNESS_VALUE:
+		CF (e, EXIF_FORMAT_SRATIONAL, val, maxlen);
+		CC (e, 1, val, maxlen);
+		v_srat = exif_get_srational (e->data, o);
+		if (!v_srat.denominator) {
+			exif_entry_format_value(e, val, maxlen);
+			break;
+		}
+		d = (double) v_srat.numerator / (double) v_srat.denominator;
+		snprintf (val, maxlen, _("%.02f EV"), d);
+		snprintf (b, sizeof (b), _(" (%.02f cd/m^2)"),
+			1. / (M_PI * 0.3048 * 0.3048) * pow (2, d));
+		if (maxlen > strlen (val) + strlen (b))
+			strncat (val, b, maxlen - strlen (val));
+		break;
+	case EXIF_TAG_FILE_SOURCE:
+		CF (e, EXIF_FORMAT_UNDEFINED, val, maxlen);
+		CC (e, 1, val, maxlen);
+		v_byte = e->data[0];
+		if (v_byte == 3)
+			strncpy (val, _("DSC"), maxlen);
+		else
+			snprintf (val, maxlen, _("Internal error (unknown "
+				  "value %i)"), v_byte);
+		break;
+	case EXIF_TAG_COMPONENTS_CONFIGURATION:
+		CF (e, EXIF_FORMAT_UNDEFINED, val, maxlen);
+		CC (e, 4, val, maxlen);
+		for (i = 0; i < 4; i++) {
+			switch (e->data[i]) {
+			case 0: c = _("-"); break;
+			case 1: c = _("Y"); break;
+			case 2: c = _("Cb"); break;
+			case 3: c = _("Cr"); break;
+			case 4: c = _("R"); break;
+			case 5: c = _("G"); break;
+			case 6: c = _("B"); break;
+			default: c = _("Reserved"); break;
+			}
+			strncat (val, c, maxlen - strlen (val));
+			if (i < 3)
+				strncat (val, " ", maxlen - strlen (val));
+		}
+		break;
+	case EXIF_TAG_EXPOSURE_BIAS_VALUE:
+		CF (e, EXIF_FORMAT_SRATIONAL, val, maxlen);
+		CC (e, 1, val, maxlen);
+		v_srat = exif_get_srational (e->data, o);
+		if (!v_srat.denominator) {
+			exif_entry_format_value(e, val, maxlen);
+			break;
+		}
+		d = (double) v_srat.numerator / (double) v_srat.denominator;
+		snprintf (val, maxlen, _("%.02f EV"), d);
+		break;
+	case EXIF_TAG_SCENE_TYPE:
+		CF (e, EXIF_FORMAT_UNDEFINED, val, maxlen);
+		CC (e, 1, val, maxlen);
+		v_byte = e->data[0];
+		if (v_byte == 1)
+			strncpy (val, _("Directly photographed"), maxlen);
+		else
+			snprintf (val, maxlen, _("Internal error (unknown "
+				  "value %i)"), v_byte);
+		break;
+	case EXIF_TAG_YCBCR_SUB_SAMPLING:
+		CF (e, EXIF_FORMAT_SHORT, val, maxlen);
+		CC (e, 2, val, maxlen);
+		v_short  = exif_get_short (e->data, o);
+		v_short2 = exif_get_short (
+			e->data + exif_format_get_size (e->format),
+			o);
+		if ((v_short == 2) && (v_short2 == 1))
+			strncpy (val, _("YCbCr4:2:2"), maxlen);
+		else if ((v_short == 2) && (v_short2 == 2))
+			strncpy (val, _("YCbCr4:2:0"), maxlen);
+		else
+			snprintf (val, maxlen, "%u, %u", v_short, v_short2);
+		break;
+	case EXIF_TAG_SUBJECT_AREA:
+		CF (e, EXIF_FORMAT_SHORT, val, maxlen);
+		switch (e->components) {
+		case 2:
+			v_short  = exif_get_short (e->data, o);
+			v_short2 = exif_get_short (e->data + 2, o);
+			snprintf (val, maxlen, "(x,y) = (%i,%i)",
+				  v_short, v_short2);
+			break;
+		case 3:
+			v_short  = exif_get_short (e->data, o);
+			v_short2 = exif_get_short (e->data + 2, o);
+			v_short3 = exif_get_short (e->data + 4, o);
+			snprintf (val, maxlen, _("Within distance %i of "
+				"(x,y) = (%i,%i)"), v_short3, v_short,
+				v_short2);
+			break;
+		case 4:
+			v_short  = exif_get_short (e->data, o);
+			v_short2 = exif_get_short (e->data + 2, o);
+			v_short3 = exif_get_short (e->data + 4, o);
+			v_short4 = exif_get_short (e->data + 6, o);
+			snprintf (val, maxlen, _("Within rectangle "
+				"(width %i, height %i) around "
+				"(x,y) = (%i,%i)"), v_short3, v_short4,
+				v_short, v_short2);
+			break;
+		default:
+			snprintf (val, maxlen, _("Unexpected number "
+				"of components (%li, expected 2, 3, or 4)."),
+				e->components);	
+		}
+		break;
+	case EXIF_TAG_GPS_VERSION_ID:
+		/* This is only valid in the GPS IFD */
+		CF (e, EXIF_FORMAT_BYTE, val, maxlen);
+		CC (e, 4, val, maxlen);
+		v_byte = e->data[0];
+		snprintf (val, maxlen, "%u", v_byte);
+		maxlen -= strlen (val);
+		for (i = 1; i < e->components; i++) {
+			v_byte = e->data[i];
+			snprintf (b, sizeof (b), ".%u", v_byte);
+			strncat (val, b, maxlen);
+			maxlen -= strlen (b);
+			if ((signed)maxlen <= 0) break;
+		}
+		break;
+	case EXIF_TAG_INTEROPERABILITY_VERSION:
+	/* a.k.a. case EXIF_TAG_GPS_LATITUDE: */
+		/* This tag occurs in EXIF_IFD_INTEROPERABILITY */
+		if (e->format == EXIF_FORMAT_UNDEFINED) {
+			strncpy (val, (char *) e->data, MIN (maxlen, e->size));
+			break;
+		}
+		/* EXIF_TAG_GPS_LATITUDE is the same numerically as
+		 * EXIF_TAG_INTEROPERABILITY_VERSION but in EXIF_IFD_GPS
+		 */
+		exif_entry_format_value(e, val, maxlen);
+		break;
+	case EXIF_TAG_GPS_ALTITUDE_REF:
+		/* This is only valid in the GPS IFD */
+		CF (e, EXIF_FORMAT_BYTE, val, maxlen);
+		CC (e, 1, val, maxlen);
+		v_byte = e->data[0];
+		if (v_byte == 0)
+			strncpy (val, _("Sea level"), maxlen);
+		else if (v_byte == 1)
+			strncpy (val, _("Sea level reference"), maxlen);
+		else
+			snprintf (val, maxlen, _("Internal error (unknown "
+				  "value %i)"), v_byte);
+		break;
+	case EXIF_TAG_GPS_TIME_STAMP:
+		/* This is only valid in the GPS IFD */
+		CF (e, EXIF_FORMAT_RATIONAL, val, maxlen);
+		CC (e, 3, val, maxlen);
+
+		v_rat  = exif_get_rational (e->data, o);
+		if (!v_rat.denominator) {
+			exif_entry_format_value(e, val, maxlen);
+			break;
+		}
+		i = v_rat.numerator / v_rat.denominator;
+
+		v_rat = exif_get_rational (e->data +
+					     exif_format_get_size (e->format),
+					   o);
+		if (!v_rat.denominator) {
+			exif_entry_format_value(e, val, maxlen);
+			break;
+		}
+		j = v_rat.numerator / v_rat.denominator;
+
+		v_rat = exif_get_rational (e->data +
+					     2*exif_format_get_size (e->format),
+					     o);
+		if (!v_rat.denominator) {
+			exif_entry_format_value(e, val, maxlen);
+			break;
+		}
+		d = (double) v_rat.numerator / (double) v_rat.denominator;
+		snprintf (val, maxlen, "%02u:%02u:%05.2f", i, j, d);
+		break;
+
+	case EXIF_TAG_METERING_MODE:
+	case EXIF_TAG_COMPRESSION:
+	case EXIF_TAG_LIGHT_SOURCE:
+	case EXIF_TAG_FOCAL_PLANE_RESOLUTION_UNIT:
+	case EXIF_TAG_RESOLUTION_UNIT:
+	case EXIF_TAG_EXPOSURE_PROGRAM:
+	case EXIF_TAG_FLASH:
+	case EXIF_TAG_SUBJECT_DISTANCE_RANGE:
+	case EXIF_TAG_COLOR_SPACE:
+		CF (e,EXIF_FORMAT_SHORT, val, maxlen);
+		CC (e, 1, val, maxlen);
+		v_short = exif_get_short (e->data, o);
+
+		/* Search the tag */
+		for (i = 0; list2[i].tag && (list2[i].tag != e->tag); i++);
+		if (!list2[i].tag) {
+			snprintf (val, maxlen, _("Internal error (unknown "
+				  "value %i)"), v_short);
+			break;
+		}
+
+		/* Find the value */
+		for (j = 0; list2[i].elem[j].values[0] &&
+			    (list2[i].elem[j].index < v_short); j++);
+		if (list2[i].elem[j].index != v_short) {
+			snprintf (val, maxlen, _("Internal error (unknown "
+				  "value %i)"), v_short);
+			break;
+		}
+
+		/* Find a short enough value */
+		memset (val, 0, maxlen);
+		for (k = 0; list2[i].elem[j].values[k]; k++) {
+			size_t l = strlen (_(list2[i].elem[j].values[k]));
+			if ((maxlen > l) && (strlen (val) < l))
+				strncpy (val, _(list2[i].elem[j].values[k]), maxlen);
+		}
+		if (!val[0]) snprintf (val, maxlen, "%i", v_short);
+
+		break;
+
+	case EXIF_TAG_PLANAR_CONFIGURATION:
+	case EXIF_TAG_SENSING_METHOD:
+	case EXIF_TAG_ORIENTATION:
+	case EXIF_TAG_YCBCR_POSITIONING:
+	case EXIF_TAG_PHOTOMETRIC_INTERPRETATION:
+	case EXIF_TAG_CUSTOM_RENDERED:
+	case EXIF_TAG_EXPOSURE_MODE:
+	case EXIF_TAG_WHITE_BALANCE:
+	case EXIF_TAG_SCENE_CAPTURE_TYPE:
+	case EXIF_TAG_GAIN_CONTROL:
+	case EXIF_TAG_SATURATION:
+	case EXIF_TAG_CONTRAST:
+	case EXIF_TAG_SHARPNESS:
+		CF (e, EXIF_FORMAT_SHORT, val, maxlen);
+		CC (e, 1, val, maxlen);
+		v_short = exif_get_short (e->data, o);
+
+		/* Search the tag */
+		for (i = 0; list[i].tag && (list[i].tag != e->tag); i++);
+		if (!list[i].tag) {
+			snprintf (val, maxlen, _("Internal error (unknown "
+				  "value %i)"), v_short);
+			break;
+		}
+
+		/* Find the value */
+		for (j = 0; list[i].strings[j] && (j < v_short); j++);
+		if (!list[i].strings[j])
+			snprintf (val, maxlen, "%i", v_short);
+		else if (!*list[i].strings[j])
+			snprintf (val, maxlen, _("Unknown value %i"), v_short);
+		else
+			strncpy (val, _(list[i].strings[j]), maxlen);
+		break;
+
+	case EXIF_TAG_XP_TITLE:
+	case EXIF_TAG_XP_COMMENT:
+	case EXIF_TAG_XP_AUTHOR:
+	case EXIF_TAG_XP_KEYWORDS:
+	case EXIF_TAG_XP_SUBJECT:
+		/* Warning! The texts are converted from UTF16 to UTF8 */
+		/* FIXME: use iconv to convert into the locale encoding */
+		exif_convert_utf16_to_utf8(val, (unsigned short*)e->data, MIN(maxlen, e->size));
+		break;
+
+	default:
+		/* Use a generic value formatting */
+		exif_entry_format_value(e, val, maxlen);
+	}
+
+	return val;
+}
+
+
+/*!
+ * \bug Log and report failed exif_mem_malloc() calls.
+ */
+void
+exif_entry_initialize (ExifEntry *e, ExifTag tag)
+{
+	ExifRational r;
+	ExifByteOrder o;
+
+	/* We need the byte order */
+	if (!e || !e->parent || e->data || !e->parent->parent)
+		return;
+	o = exif_data_get_byte_order (e->parent->parent);
+
+	e->tag = tag;
+	switch (tag) {
+
+	/* LONG, 1 component, no default */
+	case EXIF_TAG_PIXEL_X_DIMENSION:
+	case EXIF_TAG_PIXEL_Y_DIMENSION:
+	case EXIF_TAG_EXIF_IFD_POINTER:
+	case EXIF_TAG_GPS_INFO_IFD_POINTER:
+	case EXIF_TAG_INTEROPERABILITY_IFD_POINTER:
+	case EXIF_TAG_JPEG_INTERCHANGE_FORMAT_LENGTH:
+	case EXIF_TAG_JPEG_INTERCHANGE_FORMAT:
+		e->components = 1;
+		e->format = EXIF_FORMAT_LONG;
+		e->size = exif_format_get_size (e->format) * e->components;
+		e->data = exif_entry_alloc (e, e->size);
+		if (!e->data) break;
+		break;
+
+	/* SHORT, 1 component, no default */
+	case EXIF_TAG_SUBJECT_LOCATION:
+	case EXIF_TAG_SENSING_METHOD:
+	case EXIF_TAG_PHOTOMETRIC_INTERPRETATION:
+	case EXIF_TAG_COMPRESSION:
+	case EXIF_TAG_EXPOSURE_MODE:
+	case EXIF_TAG_WHITE_BALANCE:
+	case EXIF_TAG_FOCAL_LENGTH_IN_35MM_FILM:
+	case EXIF_TAG_GAIN_CONTROL:
+	case EXIF_TAG_SUBJECT_DISTANCE_RANGE:
+	case EXIF_TAG_FLASH:
+	case EXIF_TAG_ISO_SPEED_RATINGS:
+
+	/* SHORT, 1 component, default 0 */
+	case EXIF_TAG_IMAGE_WIDTH:
+	case EXIF_TAG_IMAGE_LENGTH:
+	case EXIF_TAG_EXPOSURE_PROGRAM:
+	case EXIF_TAG_LIGHT_SOURCE:
+	case EXIF_TAG_METERING_MODE:
+	case EXIF_TAG_CUSTOM_RENDERED:
+	case EXIF_TAG_SCENE_CAPTURE_TYPE:
+	case EXIF_TAG_CONTRAST:
+	case EXIF_TAG_SATURATION:
+	case EXIF_TAG_SHARPNESS:
+		e->components = 1;
+		e->format = EXIF_FORMAT_SHORT;
+		e->size = exif_format_get_size (e->format) * e->components;
+		e->data = exif_entry_alloc (e, e->size);
+		if (!e->data) break;
+		exif_set_short (e->data, o, 0);
+		break;
+
+	/* SHORT, 1 component, default 1 */
+	case EXIF_TAG_ORIENTATION:
+	case EXIF_TAG_PLANAR_CONFIGURATION:
+	case EXIF_TAG_YCBCR_POSITIONING:
+		e->components = 1;
+		e->format = EXIF_FORMAT_SHORT;
+		e->size = exif_format_get_size (e->format) * e->components;
+		e->data = exif_entry_alloc (e, e->size);
+		if (!e->data) break;
+		exif_set_short (e->data, o, 1);
+		break;
+
+	/* SHORT, 1 component, default 2 */
+	case EXIF_TAG_RESOLUTION_UNIT:
+	case EXIF_TAG_FOCAL_PLANE_RESOLUTION_UNIT:
+		e->components = 1;
+		e->format = EXIF_FORMAT_SHORT;
+		e->size = exif_format_get_size (e->format) * e->components;
+		e->data = exif_entry_alloc (e, e->size);
+		if (!e->data) break;
+		exif_set_short (e->data, o, 2);
+		break;
+
+	/* SHORT, 1 component, default 3 */
+	case EXIF_TAG_SAMPLES_PER_PIXEL:
+		e->components = 1;
+		e->format = EXIF_FORMAT_SHORT;
+		e->size = exif_format_get_size (e->format) * e->components;
+		e->data = exif_entry_alloc (e, e->size);
+		if (!e->data) break;
+		exif_set_short (e->data, o, 3);
+		break;
+
+	/* SHORT, 1 component, default 0xffff */
+	case EXIF_TAG_COLOR_SPACE:
+		e->components = 1;
+		e->format = EXIF_FORMAT_SHORT;
+		e->size = exif_format_get_size (e->format) * e->components;
+		e->data = exif_entry_alloc (e, e->size);
+		if (!e->data) break;
+		exif_set_short (e->data, o, 0xffff);
+		break;
+
+	/* SHORT, 3 components, default 8 8 8 */
+	case EXIF_TAG_BITS_PER_SAMPLE:
+		e->components = 3;
+		e->format = EXIF_FORMAT_SHORT;
+		e->size = exif_format_get_size (e->format) * e->components;
+		e->data = exif_entry_alloc (e, e->size);
+		if (!e->data) break;
+		exif_set_short (e->data, o, 8);
+		exif_set_short (
+			e->data + exif_format_get_size (e->format),
+			o, 8);
+		exif_set_short (
+			e->data + 2 * exif_format_get_size (e->format),
+			o, 8);
+		break;
+
+	/* SHORT, 2 components, default 2 1 */
+	case EXIF_TAG_YCBCR_SUB_SAMPLING:
+		e->components = 2;
+		e->format = EXIF_FORMAT_SHORT;
+		e->size = exif_format_get_size (e->format) * e->components;
+		e->data = exif_entry_alloc (e, e->size);
+		if (!e->data) break;
+		exif_set_short (e->data, o, 2);
+		exif_set_short (
+			e->data + exif_format_get_size (e->format),
+			o, 1);
+		break;
+
+	/* SRATIONAL, 1 component, no default */
+	case EXIF_TAG_EXPOSURE_BIAS_VALUE:
+	case EXIF_TAG_BRIGHTNESS_VALUE:
+	case EXIF_TAG_SHUTTER_SPEED_VALUE:
+		e->components = 1;
+		e->format = EXIF_FORMAT_SRATIONAL;
+		e->size = exif_format_get_size (e->format) * e->components;
+		e->data = exif_entry_alloc (e, e->size);
+		if (!e->data) break;
+		break;
+
+	/* RATIONAL, 1 component, no default */
+	case EXIF_TAG_EXPOSURE_TIME:
+	case EXIF_TAG_FOCAL_PLANE_X_RESOLUTION:
+	case EXIF_TAG_FOCAL_PLANE_Y_RESOLUTION:
+	case EXIF_TAG_EXPOSURE_INDEX:
+	case EXIF_TAG_FLASH_ENERGY:
+	case EXIF_TAG_FNUMBER:
+	case EXIF_TAG_FOCAL_LENGTH:
+	case EXIF_TAG_SUBJECT_DISTANCE:
+	case EXIF_TAG_MAX_APERTURE_VALUE:
+	case EXIF_TAG_APERTURE_VALUE:
+	case EXIF_TAG_COMPRESSED_BITS_PER_PIXEL:
+	case EXIF_TAG_PRIMARY_CHROMATICITIES:
+	case EXIF_TAG_DIGITAL_ZOOM_RATIO:
+		e->components = 1;
+		e->format = EXIF_FORMAT_RATIONAL;
+		e->size = exif_format_get_size (e->format) * e->components;
+		e->data = exif_entry_alloc (e, e->size);
+		if (!e->data) break;
+		break;
+
+	/* RATIONAL, 1 component, default 72/1 */
+	case EXIF_TAG_X_RESOLUTION:
+	case EXIF_TAG_Y_RESOLUTION:
+		e->components = 1;
+		e->format = EXIF_FORMAT_RATIONAL;
+		e->size = exif_format_get_size (e->format) * e->components;
+		e->data = exif_entry_alloc (e, e->size);
+		if (!e->data) break;
+		r.numerator = 72;
+		r.denominator = 1;
+		exif_set_rational (e->data, o, r);
+		break;
+
+	/* RATIONAL, 2 components, no default */
+	case EXIF_TAG_WHITE_POINT:
+		e->components = 2;
+		e->format = EXIF_FORMAT_RATIONAL;
+		e->size = exif_format_get_size (e->format) * e->components;
+		e->data = exif_entry_alloc (e, e->size);
+		if (!e->data) break;
+		break;
+
+	/* RATIONAL, 6 components */
+	case EXIF_TAG_REFERENCE_BLACK_WHITE:
+		e->components = 6;
+		e->format = EXIF_FORMAT_RATIONAL;
+		e->size = exif_format_get_size (e->format) * e->components;
+		e->data = exif_entry_alloc (e, e->size);
+		if (!e->data) break;
+		r.denominator = 1;
+		r.numerator = 0;
+		exif_set_rational (e->data, o, r);
+		r.numerator = 255;
+		exif_set_rational (
+			e->data + exif_format_get_size (e->format), o, r);
+		r.numerator = 0;
+		exif_set_rational (
+			e->data + 2 * exif_format_get_size (e->format), o, r);
+		r.numerator = 255;
+		exif_set_rational (
+			e->data + 3 * exif_format_get_size (e->format), o, r);
+		r.numerator = 0;
+		exif_set_rational (
+			e->data + 4 * exif_format_get_size (e->format), o, r);
+		r.numerator = 255;
+		exif_set_rational (
+			e->data + 5 * exif_format_get_size (e->format), o, r);
+		break;
+
+	/* ASCII, 20 components */
+	case EXIF_TAG_DATE_TIME:
+	case EXIF_TAG_DATE_TIME_ORIGINAL:
+	case EXIF_TAG_DATE_TIME_DIGITIZED:
+	{
+		time_t t;
+#ifdef HAVE_LOCALTIME_R
+		struct tm tms;
+#endif
+		struct tm *tm;
+
+		t = time (NULL);
+#ifdef HAVE_LOCALTIME_R
+		tm = localtime_r (&t, &tms);
+#else
+		tm = localtime (&t);
+#endif
+		e->components = 20;
+		e->format = EXIF_FORMAT_ASCII;
+		e->size = exif_format_get_size (e->format) * e->components;
+		e->data = exif_entry_alloc (e, e->size);
+		if (!e->data) break;
+		snprintf ((char *) e->data, e->size,
+			  "%04i:%02i:%02i %02i:%02i:%02i",
+			  tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
+			  tm->tm_hour, tm->tm_min, tm->tm_sec);
+		break;
+	}
+
+	/* ASCII, no default */
+	case EXIF_TAG_SUB_SEC_TIME:
+	case EXIF_TAG_SUB_SEC_TIME_ORIGINAL:
+	case EXIF_TAG_SUB_SEC_TIME_DIGITIZED:
+		e->components = 0;
+		e->format = EXIF_FORMAT_ASCII;
+		e->size = 0;
+		e->data = NULL;
+		break;
+
+	/* ASCII, default "[None]" */
+	case EXIF_TAG_IMAGE_DESCRIPTION:
+	case EXIF_TAG_MAKE:
+	case EXIF_TAG_MODEL:
+	case EXIF_TAG_SOFTWARE:
+	case EXIF_TAG_ARTIST:
+		e->components = strlen (_("[None]")) + 1;
+		e->format = EXIF_FORMAT_ASCII;
+		e->size = exif_format_get_size (e->format) * e->components;
+		e->data = exif_entry_alloc (e, e->size);
+		if (!e->data) break;
+		strncpy ((char *)e->data, _("[None]"), e->size);
+		break;
+	/* ASCII, default "[None]\0[None]\0" */
+	case EXIF_TAG_COPYRIGHT:
+		e->components = (strlen (_("[None]")) + 1) * 2;
+		e->format = EXIF_FORMAT_ASCII;
+		e->size = exif_format_get_size (e->format) * e->components;
+		e->data = exif_entry_alloc (e, e->size);
+		if (!e->data) break;
+		strcpy (((char *)e->data) + 0, _("[None]"));
+		strcpy (((char *)e->data) + strlen (_("[None]")) + 1, _("[None]"));
+		break;
+
+	/* UNDEFINED, 1 component, default 1 */
+	case EXIF_TAG_SCENE_TYPE:
+		e->components = 1;
+		e->format = EXIF_FORMAT_UNDEFINED;
+		e->size = exif_format_get_size (e->format) * e->components;
+		e->data = exif_entry_alloc (e, e->size);
+		if (!e->data) break;
+		e->data[0] = 0x01;
+		break;
+
+	/* UNDEFINED, 1 component, default 3 */
+	case EXIF_TAG_FILE_SOURCE:
+		e->components = 1;
+		e->format = EXIF_FORMAT_UNDEFINED;
+		e->size = exif_format_get_size (e->format) * e->components;
+		e->data = exif_entry_alloc (e, e->size);
+		if (!e->data) break;
+		e->data[0] = 0x03;
+		break;
+
+	/* UNDEFINED, 4 components, default 48 49 48 48 */
+        case EXIF_TAG_FLASH_PIX_VERSION:
+                e->components = 4;
+                e->format = EXIF_FORMAT_UNDEFINED;
+                e->size = exif_format_get_size (e->format) * e->components;
+                e->data = exif_entry_alloc (e, e->size);
+		if (!e->data) break;
+                memcpy (e->data, "0100", 4);
+                break;
+
+        /* UNDEFINED, 4 components, default 48 50 49 48 */
+        case EXIF_TAG_EXIF_VERSION:
+                e->components = 4;
+                e->format = EXIF_FORMAT_UNDEFINED;
+                e->size = exif_format_get_size (e->format) * e->components;
+                e->data = exif_entry_alloc (e, e->size);
+		if (!e->data) break;
+                memcpy (e->data, "0210", 4);
+                break;
+
+        /* UNDEFINED, 4 components, default 1 2 3 0 */
+        case EXIF_TAG_COMPONENTS_CONFIGURATION:
+                e->components = 4;
+                e->format = EXIF_FORMAT_UNDEFINED;
+                e->size = exif_format_get_size (e->format) * e->components;
+                e->data = exif_entry_alloc (e, e->size);
+		if (!e->data) break;
+		e->data[0] = 1;
+		e->data[1] = 2;
+		e->data[2] = 3;
+		e->data[3] = 0;
+                break;
+
+	/* UNDEFINED, no components, no default */
+	/* Use this if the tag is otherwise unsupported */
+	case EXIF_TAG_MAKER_NOTE:
+	case EXIF_TAG_USER_COMMENT:
+	default:
+		e->components = 0;
+		e->format = EXIF_FORMAT_UNDEFINED;
+		e->size = 0;
+		e->data = NULL;
+		break;
+	}
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-entry.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-entry.h
new file mode 100644
index 0000000000000000000000000000000000000000..1dcdc7364e5e2b34b218c7256d17cfdbe80deecc
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-entry.h
@@ -0,0 +1,185 @@
+/*! \file exif-entry.h
+ *  \brief Handling EXIF entries
+ */
+/*
+ * Copyright (c) 2001 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#ifndef __EXIF_ENTRY_H__
+#define __EXIF_ENTRY_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/*! Data found in one EXIF tag.
+ * The #exif_entry_get_value function can provide access to the
+ * formatted contents, or the struct members can be used directly to
+ * access the raw contents.
+ */
+typedef struct _ExifEntry        ExifEntry;
+typedef struct _ExifEntryPrivate ExifEntryPrivate;
+
+#include <libexif/exif-content.h>
+#include <libexif/exif-format.h>
+#include <libexif/exif-mem.h>
+
+/*! Data found in one EXIF tag */
+struct _ExifEntry {
+	/*! EXIF tag for this entry */
+        ExifTag tag;
+	
+	/*! Type of data in this entry */
+        ExifFormat format;
+
+	/*! Number of elements in the array, if this is an array entry.
+	 * Contains 1 for non-array data types. */
+        unsigned long components;
+
+	/*! Pointer to the raw EXIF data for this entry. It is allocated
+	 * by #exif_entry_initialize and is NULL beforehand. Data contained
+	 * here may be manipulated using the functions in exif-utils.h */
+        unsigned char *data;
+
+	/*! Number of bytes in the buffer at \c data. This must be no less
+	 * than exif_format_get_size(format)*components */
+        unsigned int size;
+
+	/*! #ExifContent containing this entry. 
+	 * \see exif_entry_get_ifd */
+	ExifContent *parent;
+
+	/*! Internal data to be used by libexif itself */
+	ExifEntryPrivate *priv;
+};
+
+/* Lifecycle */
+
+/*! Reserve memory for and initialize a new #ExifEntry.
+ * No memory is allocated for the \c data element of the returned #ExifEntry.
+ *
+ * \return new allocated #ExifEntry, or NULL on error
+ *
+ * \see exif_entry_new_mem, exif_entry_unref
+ */
+ExifEntry  *exif_entry_new     (void);
+
+/*! Reserve memory for and initialize new #ExifEntry using the specified
+ * memory allocator.
+ * No memory is allocated for the \c data element of the returned #ExifEntry.
+ *
+ * \return new allocated #ExifEntry, or NULL on error
+ *
+ * \see exif_entry_new, exif_entry_unref
+ */
+ExifEntry  *exif_entry_new_mem (ExifMem *);
+
+/*! Increase reference counter for #ExifEntry.
+ *
+ * \param[in] entry #ExifEntry
+ *
+ * \see exif_entry_unref
+ */
+void        exif_entry_ref     (ExifEntry *entry);
+
+/*! Decrease reference counter for #ExifEntry.
+ * When the reference count drops to zero, free the entry.
+ *
+ * \param[in] entry #ExifEntry
+ */
+void        exif_entry_unref   (ExifEntry *entry);
+
+/*! Actually free the #ExifEntry.
+ *
+ * \deprecated Should not be called directly. Use #exif_entry_ref and
+ *             #exif_entry_unref instead.
+ *
+ * \param[in] entry EXIF entry
+ */
+void        exif_entry_free  (ExifEntry *entry);
+
+/*! Initialize an empty #ExifEntry with default data in the correct format
+ * for the given tag. If the entry is already initialized, this function
+ * does nothing.
+ * This call allocates memory for the \c data element of the given #ExifEntry.
+ * That memory is freed at the same time as the #ExifEntry.
+ *
+ * \param[out] e entry to initialize
+ * \param[in] tag tag number to initialize as
+ */
+void        exif_entry_initialize (ExifEntry *e, ExifTag tag);
+
+/*! Fix the type or format of the given EXIF entry to bring it into spec.
+ * If the data for this EXIF tag is in of the wrong type or is in an invalid
+ * format according to the EXIF specification, then it is converted to make it
+ * valid. This may involve, for example, converting an EXIF_FORMAT_LONG into a
+ * EXIF_FORMAT_SHORT. If the tag is unknown, its value is untouched.
+ *
+ * \note Unfortunately, some conversions are to a type with a more restricted
+ * range, which could have the side effect that the converted data becomes
+ * invalid. This is unlikely as the range of each tag in the standard is
+ * designed to encompass all likely data.
+ *
+ * \param[in,out] entry EXIF entry
+ */
+void        exif_entry_fix        (ExifEntry *entry);
+
+
+/* For your convenience */
+
+/*! Return a localized textual representation of the value of the EXIF entry.
+ * This is meant for display to the user. The format of each tag is subject
+ * to change between locales and in newer versions of libexif.  Users who
+ * require the tag data in an unambiguous form should access the data members
+ * of the #ExifEntry structure directly.
+ *
+ * \warning The character set of the returned string may be in
+ *          the encoding of the current locale or the native encoding
+ *          of the camera.
+ * \bug     The EXIF_TAG_XP_* tags are currently always returned in UTF-8,
+ *          regardless of locale, and code points above U+FFFF are not
+ *          supported.
+ *
+ * \param[in] entry EXIF entry
+ * \param[out] val buffer in which to store value
+ * \param[in] maxlen length of the buffer val
+ * \return val pointer
+ */
+const char *exif_entry_get_value (ExifEntry *entry, char *val,
+				  unsigned int maxlen);
+
+/*! Dump text representation of #ExifEntry to stdout.
+ * This is intended for diagnostic purposes only.
+ *
+ * \param[in] entry EXIF tag data
+ * \param[in] indent how many levels deep to indent the data
+ */
+void        exif_entry_dump      (ExifEntry *entry, unsigned int indent);
+
+/*! Return the IFD number of the given #ExifEntry
+ *
+ * \param[in] e an #ExifEntry*
+ * \return #ExifIfd, or #EXIF_IFD_COUNT on error
+ */
+#define exif_entry_get_ifd(e) ((e)?exif_content_get_ifd((e)->parent):EXIF_IFD_COUNT)
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __EXIF_ENTRY_H__ */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-format.c b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-format.c
new file mode 100644
index 0000000000000000000000000000000000000000..2c63c331ef459b5d9fc0f898a3e078c2c7c71f22
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-format.c
@@ -0,0 +1,81 @@
+/* exif-format.c
+ *
+ * Copyright (c) 2001 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#include <config.h>
+
+#include <libexif/exif-format.h>
+#include <libexif/i18n.h>
+
+#include <stdlib.h>
+
+/*! Table of data format types, descriptions and sizes.
+ * This table should be sorted in decreasing order of popularity in order
+ * to decrease the total average lookup time.
+ */
+static const struct {
+        ExifFormat format;
+	const char *name;
+        unsigned char size;
+} ExifFormatTable[] = {
+        {EXIF_FORMAT_SHORT,     N_("Short"),     2},
+        {EXIF_FORMAT_RATIONAL,  N_("Rational"),  8},
+        {EXIF_FORMAT_SRATIONAL, N_("SRational"), 8},
+        {EXIF_FORMAT_UNDEFINED, N_("Undefined"), 1},
+        {EXIF_FORMAT_ASCII,     N_("ASCII"),     1},
+        {EXIF_FORMAT_LONG,      N_("Long"),      4},
+        {EXIF_FORMAT_BYTE,      N_("Byte"),      1},
+	{EXIF_FORMAT_SBYTE,     N_("SByte"),     1},
+	{EXIF_FORMAT_SSHORT,    N_("SShort"),    2},
+        {EXIF_FORMAT_SLONG,     N_("SLong"),     4},
+	{EXIF_FORMAT_FLOAT,     N_("Float"),     4},
+	{EXIF_FORMAT_DOUBLE,    N_("Double"),    8},
+        {0, NULL, 0}
+};
+
+const char *
+exif_format_get_name (ExifFormat format)
+{
+	unsigned int i;
+
+	/* FIXME: This belongs to somewhere else. */
+	/* libexif should use the default system locale.
+	 * If an application specifically requires UTF-8, then we
+	 * must give the application a way to tell libexif that.
+	 * 
+	 * bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+	 */
+	bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
+
+	for (i = 0; ExifFormatTable[i].name; i++)
+		if (ExifFormatTable[i].format == format)
+			return _(ExifFormatTable[i].name);
+	return NULL;
+}
+
+unsigned char
+exif_format_get_size (ExifFormat format)
+{
+	unsigned int i;
+
+	for (i = 0; ExifFormatTable[i].size; i++)
+		if (ExifFormatTable[i].format == format)
+			return ExifFormatTable[i].size;
+	return 0;
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-format.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-format.h
new file mode 100644
index 0000000000000000000000000000000000000000..b7a79a430135d158126ef5a4a59ba3b4acfe9bcb
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-format.h
@@ -0,0 +1,65 @@
+/*! \file exif-format.h
+ *  \brief Handling native EXIF data types
+ */
+/*
+ *
+ * Copyright (c) 2001 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#ifndef __EXIF_FORMAT_H__
+#define __EXIF_FORMAT_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/*! EXIF tag data formats */
+typedef enum {
+        EXIF_FORMAT_BYTE       =  1,
+        EXIF_FORMAT_ASCII      =  2,
+        EXIF_FORMAT_SHORT      =  3,
+        EXIF_FORMAT_LONG       =  4,
+        EXIF_FORMAT_RATIONAL   =  5,
+	EXIF_FORMAT_SBYTE      =  6,
+        EXIF_FORMAT_UNDEFINED  =  7,
+	EXIF_FORMAT_SSHORT     =  8,
+        EXIF_FORMAT_SLONG      =  9,
+        EXIF_FORMAT_SRATIONAL  = 10,
+	EXIF_FORMAT_FLOAT      = 11,
+	EXIF_FORMAT_DOUBLE     = 12
+} ExifFormat;
+
+/*! Return a textual representation of the given EXIF data type.
+ *
+ * \param[in] format EXIF data format
+ * \return localized textual name
+ */
+const char   *exif_format_get_name (ExifFormat format);
+
+/*! Return the raw size of the given EXIF data type.
+ *
+ * \param[in] format EXIF data format
+ * \return size in bytes
+ */
+unsigned char exif_format_get_size (ExifFormat format);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __EXIF_FORMAT_H__ */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-ifd.c b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-ifd.c
new file mode 100644
index 0000000000000000000000000000000000000000..f0f8816c01ee2d148e38407a84c772a295740b9a
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-ifd.c
@@ -0,0 +1,49 @@
+/* exif-ifd.c
+ *
+ * Copyright (c) 2002 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#include <config.h>
+
+#include <libexif/exif-ifd.h>
+
+#include <stdlib.h>
+
+static const struct {
+	ExifIfd ifd;
+	const char *name;
+} ExifIfdTable[] = {
+	{EXIF_IFD_0, "0"},
+	{EXIF_IFD_1, "1"},
+	{EXIF_IFD_EXIF, "EXIF"},
+	{EXIF_IFD_GPS, "GPS"},
+	{EXIF_IFD_INTEROPERABILITY, "Interoperability"},
+	{0, NULL}
+};
+
+const char *
+exif_ifd_get_name (ExifIfd ifd)
+{
+	unsigned int i;
+
+	for (i = 0; ExifIfdTable[i].name; i++)
+		if (ExifIfdTable[i].ifd == ifd)
+			break;
+
+	return (ExifIfdTable[i].name);
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-ifd.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-ifd.h
new file mode 100644
index 0000000000000000000000000000000000000000..26c4053473a8f5b7c8b61cc0d111ef4a2aaa3ed7
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-ifd.h
@@ -0,0 +1,43 @@
+/* exif-ifd.h
+ *
+ * Copyright (c) 2002 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#ifndef __EXIF_IFD_H__
+#define __EXIF_IFD_H__
+
+/*! Possible EXIF Image File Directories */
+typedef enum {
+	EXIF_IFD_0 = 0,                /*!< */
+	EXIF_IFD_1,                    /*!< */
+	EXIF_IFD_EXIF,                 /*!< */
+	EXIF_IFD_GPS,                  /*!< */
+	EXIF_IFD_INTEROPERABILITY,     /*!< */
+	EXIF_IFD_COUNT                 /*!< Not a real value, just (max_value + 1). */
+} ExifIfd;
+
+/*! Return a textual name of the given IFD. The name is a short, unique,
+ * non-localized text string containing only US-ASCII alphanumeric
+ * characters.
+ *
+ * \param[in] ifd IFD
+ * \return textual name of the IFD
+ */
+const char *exif_ifd_get_name (ExifIfd ifd);
+
+#endif /* __EXIF_IFD_H__ */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-loader.c b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-loader.c
new file mode 100644
index 0000000000000000000000000000000000000000..317b86bb749c7a9c86042531d10d67b2a33dc73e
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-loader.c
@@ -0,0 +1,434 @@
+/* exif-loader.c
+ *
+ * Copyright (c) 2002 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#include <config.h>
+
+#include <libexif/exif-loader.h>
+#include <libexif/exif-utils.h>
+#include <libexif/i18n.h>
+
+#include <sys/types.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+#undef JPEG_MARKER_DHT
+#define JPEG_MARKER_DHT  0xc4
+#undef JPEG_MARKER_SOI
+#define JPEG_MARKER_SOI  0xd8
+#undef JPEG_MARKER_DQT
+#define JPEG_MARKER_DQT  0xdb
+#undef JPEG_MARKER_APP0
+#define JPEG_MARKER_APP0 0xe0
+#undef JPEG_MARKER_APP1
+#define JPEG_MARKER_APP1 0xe1
+#undef JPEG_MARKER_APP2
+#define JPEG_MARKER_APP2 0xe2
+#undef JPEG_MARKER_APP13
+#define JPEG_MARKER_APP13 0xed
+#undef JPEG_MARKER_COM
+#define JPEG_MARKER_COM 0xfe
+
+typedef enum {
+	EL_READ = 0,
+	EL_READ_SIZE_BYTE_24,
+	EL_READ_SIZE_BYTE_16,
+	EL_READ_SIZE_BYTE_08,
+	EL_READ_SIZE_BYTE_00,
+	EL_SKIP_BYTES,
+	EL_EXIF_FOUND,
+} ExifLoaderState;
+
+typedef enum {
+	EL_DATA_FORMAT_UNKNOWN,
+	EL_DATA_FORMAT_EXIF,
+	EL_DATA_FORMAT_JPEG,
+	EL_DATA_FORMAT_FUJI_RAW
+} ExifLoaderDataFormat;
+
+/*! \internal */
+struct _ExifLoader {
+	ExifLoaderState state;
+	ExifLoaderDataFormat data_format;
+
+	/*! Small buffer used for detection of format */
+	unsigned char b[12];
+
+	/*! Number of bytes in the small buffer \c b */
+	unsigned char b_len;
+
+	unsigned int size;
+	unsigned char *buf;
+	unsigned int bytes_read;
+
+	unsigned int ref_count;
+
+	ExifLog *log;
+	ExifMem *mem;
+};
+
+/*! Magic number for EXIF header */
+static const unsigned char ExifHeader[] = {0x45, 0x78, 0x69, 0x66, 0x00, 0x00};
+
+static void *
+exif_loader_alloc (ExifLoader *l, unsigned int i)
+{
+	void *d;
+
+	if (!l || !i) 
+		return NULL;
+
+	d = exif_mem_alloc (l->mem, i);
+	if (d) 
+		return d;
+
+	EXIF_LOG_NO_MEMORY (l->log, "ExifLog", i);
+	return NULL;
+}
+
+void
+exif_loader_write_file (ExifLoader *l, const char *path)
+{
+	FILE *f;
+	int size;
+	unsigned char data[1024];
+
+	if (!l) 
+		return;
+
+	f = fopen (path, "rb");
+	if (!f) {
+		exif_log (l->log, EXIF_LOG_CODE_NONE, "ExifLoader",
+			  _("The file '%s' could not be opened."), path);
+		return;
+	}
+	while (1) {
+		size = fread (data, 1, sizeof (data), f);
+		if (size <= 0) 
+			break;
+		if (!exif_loader_write (l, data, size)) 
+			break;
+	}
+	fclose (f);
+}
+
+static unsigned int
+exif_loader_copy (ExifLoader *eld, unsigned char *buf, unsigned int len)
+{
+	if (!eld || (len && !buf) || (eld->bytes_read >= eld->size)) 
+		return 0;
+
+	/* If needed, allocate the buffer. */
+	if (!eld->buf) 
+		eld->buf = exif_loader_alloc (eld, eld->size);
+	if (!eld->buf) 
+		return 0;
+
+	/* Copy memory */
+	len = MIN (len, eld->size - eld->bytes_read);
+	memcpy (eld->buf + eld->bytes_read, buf, len);
+	eld->bytes_read += len;
+
+	return (eld->bytes_read >= eld->size) ? 0 : 1;
+}
+
+unsigned char
+exif_loader_write (ExifLoader *eld, unsigned char *buf, unsigned int len)
+{
+	unsigned int i;
+
+	if (!eld || (len && !buf)) 
+		return 0;
+
+	switch (eld->state) {
+	case EL_EXIF_FOUND:
+		return exif_loader_copy (eld, buf, len);
+	case EL_SKIP_BYTES:
+		if (eld->size > len) { 
+			eld->size -= len; 
+			return 1; 
+		}
+		len -= eld->size;
+		buf += eld->size;
+		eld->size = 0;
+		eld->b_len = 0;
+		switch (eld->data_format) {
+		case EL_DATA_FORMAT_FUJI_RAW:
+			eld->state = EL_READ_SIZE_BYTE_24;
+			break;
+		default:
+			eld->state = EL_READ;
+			break;
+		}
+		break;
+
+	case EL_READ:
+	default:
+		break;
+	}
+
+	if (!len)
+		return 1;
+	exif_log (eld->log, EXIF_LOG_CODE_DEBUG, "ExifLoader",
+		  "Scanning %i byte(s) of data...", len);
+
+	/*
+	 * First fill the small buffer. Only continue if the buffer
+	 * is filled. Note that EXIF data contains at least 12 bytes.
+	 */
+	i = MIN (len, sizeof (eld->b) - eld->b_len);
+	if (i) {
+		memcpy (&eld->b[eld->b_len], buf, i);
+		eld->b_len += i;
+		if (eld->b_len < sizeof (eld->b)) 
+			return 1;
+		buf += i;
+		len -= i;
+	}
+
+	switch (eld->data_format) {
+	case EL_DATA_FORMAT_UNKNOWN:
+
+		/* Check the small buffer against known formats. */
+		if (!memcmp (eld->b, "FUJIFILM", 8)) {
+
+			/* Skip to byte 84. There is another offset there. */
+			eld->data_format = EL_DATA_FORMAT_FUJI_RAW;
+			eld->size = 84;
+			eld->state = EL_SKIP_BYTES;
+			eld->size = 84;
+
+		} else if (!memcmp (eld->b + 2, ExifHeader, sizeof (ExifHeader))) {
+
+			/* Read the size (2 bytes). */
+			eld->data_format = EL_DATA_FORMAT_EXIF;
+			eld->state = EL_READ_SIZE_BYTE_08;
+		}
+	default:
+		break;
+	}
+
+	for (i = 0; i < sizeof (eld->b); i++)
+		switch (eld->state) {
+		case EL_EXIF_FOUND:
+			if (!exif_loader_copy (eld, eld->b + i,
+					sizeof (eld->b) - i)) 
+				return 0;
+			return exif_loader_copy (eld, buf, len);
+		case EL_SKIP_BYTES:
+			eld->size--;
+			if (!eld->size) 
+				eld->state = EL_READ;
+			break;
+
+		case EL_READ_SIZE_BYTE_24:
+			eld->size |= eld->b[i] << 24;
+			eld->state = EL_READ_SIZE_BYTE_16;
+			break;
+		case EL_READ_SIZE_BYTE_16:
+			eld->size |= eld->b[i] << 16;
+			eld->state = EL_READ_SIZE_BYTE_08;
+			break;
+		case EL_READ_SIZE_BYTE_08:
+			eld->size |= eld->b[i] << 8;
+			eld->state = EL_READ_SIZE_BYTE_00;
+			break;
+		case EL_READ_SIZE_BYTE_00:
+			eld->size |= eld->b[i] << 0;
+			switch (eld->data_format) {
+			case EL_DATA_FORMAT_JPEG:
+				eld->state = EL_SKIP_BYTES;
+				eld->size -= 2;
+				break;
+			case EL_DATA_FORMAT_FUJI_RAW:
+				eld->data_format = EL_DATA_FORMAT_EXIF;
+				eld->state = EL_SKIP_BYTES;
+				eld->size -= 86;
+				break;
+			case EL_DATA_FORMAT_EXIF:
+				eld->state = EL_EXIF_FOUND;
+				break;
+			default:
+				break;
+			}
+			break;
+
+		default:
+			switch (eld->b[i]) {
+			case JPEG_MARKER_APP1:
+			  if (!memcmp (eld->b + i + 3, ExifHeader, MIN((ssize_t)(sizeof(ExifHeader)), MAX(0, ((ssize_t)(sizeof(eld->b))) - ((ssize_t)i) - 3)))) {
+					eld->data_format = EL_DATA_FORMAT_EXIF;
+				} else {
+					eld->data_format = EL_DATA_FORMAT_JPEG; /* Probably JFIF - keep searching for APP1 EXIF*/
+				}
+				eld->size = 0;
+				eld->state = EL_READ_SIZE_BYTE_08;
+				break;
+			case JPEG_MARKER_DHT:
+			case JPEG_MARKER_DQT:
+			case JPEG_MARKER_APP0:
+			case JPEG_MARKER_APP2:
+			case JPEG_MARKER_APP13:
+			case JPEG_MARKER_COM:
+				eld->data_format = EL_DATA_FORMAT_JPEG;
+				eld->size = 0;
+				eld->state = EL_READ_SIZE_BYTE_08;
+				break;
+			case 0xff:
+			case JPEG_MARKER_SOI:
+				break;
+			default:
+				exif_log (eld->log,
+					EXIF_LOG_CODE_CORRUPT_DATA,
+					"ExifLoader", _("The data supplied "
+						"does not seem to contain "
+						"EXIF data."));
+				exif_loader_reset (eld);
+				return 0;
+			}
+		}
+
+	/*
+	 * If we reach this point, the buffer has not been big enough
+	 * to read all data we need. Fill it with new data.
+	 */
+	eld->b_len = 0;
+	return exif_loader_write (eld, buf, len);
+}
+
+ExifLoader *
+exif_loader_new (void)
+{
+	ExifMem *mem = exif_mem_new_default ();
+	ExifLoader *l = exif_loader_new_mem (mem);
+
+	exif_mem_unref (mem);
+
+	return l;
+}
+
+ExifLoader *
+exif_loader_new_mem (ExifMem *mem)
+{
+	ExifLoader *loader;
+
+	if (!mem) 
+		return NULL;
+	
+	loader = exif_mem_alloc (mem, sizeof (ExifLoader));
+	if (!loader) 
+		return NULL;
+	loader->ref_count = 1;
+
+	loader->mem = mem;
+	exif_mem_ref (mem);
+
+	return loader;
+}
+
+void
+exif_loader_ref (ExifLoader *loader)
+{
+	if (loader) 
+		loader->ref_count++;
+}
+
+static void
+exif_loader_free (ExifLoader *loader)
+{
+	ExifMem *mem;
+
+	if (!loader) 
+		return;
+
+	mem = loader->mem;
+	exif_loader_reset (loader);
+	exif_log_unref (loader->log);
+	exif_mem_free (mem, loader);
+	exif_mem_unref (mem);
+}
+	
+void
+exif_loader_unref (ExifLoader *loader)
+{
+	if (!loader) 
+		return;
+	if (!--loader->ref_count)
+		exif_loader_free (loader);
+}
+
+void
+exif_loader_reset (ExifLoader *loader)
+{
+	if (!loader) 
+		return;
+	exif_mem_free (loader->mem, loader->buf); loader->buf = NULL;
+	loader->size = 0;
+	loader->bytes_read = 0;
+	loader->state = 0;
+	loader->b_len = 0;
+	loader->data_format = EL_DATA_FORMAT_UNKNOWN;
+}
+
+ExifData *
+exif_loader_get_data (ExifLoader *loader)
+{
+	ExifData *ed;
+
+	if (!loader || (loader->data_format == EL_DATA_FORMAT_UNKNOWN) ||
+	    !loader->bytes_read)
+		return NULL;
+
+	ed = exif_data_new_mem (loader->mem);
+	exif_data_log (ed, loader->log);
+	exif_data_load_data (ed, loader->buf, loader->bytes_read);
+
+	return ed;
+}
+
+void
+exif_loader_get_buf (ExifLoader *loader, const unsigned char **buf,
+						  unsigned int *buf_size)
+{
+	const unsigned char* b = NULL;
+	unsigned int s = 0;
+
+	if (!loader || (loader->data_format == EL_DATA_FORMAT_UNKNOWN)) {
+		exif_log (loader->log, EXIF_LOG_CODE_DEBUG, "ExifLoader",
+			  "Loader format unknown");
+	} else {
+		b = loader->buf;
+		s = loader->bytes_read;
+	}
+	if (buf)
+		*buf = b;
+	if (buf_size)
+		*buf_size = s;
+}
+
+void
+exif_loader_log (ExifLoader *loader, ExifLog *log)
+{
+	if (!loader) 
+		return;
+	exif_log_unref (loader->log);
+	loader->log = log;
+	exif_log_ref (log);
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-loader.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-loader.h
new file mode 100644
index 0000000000000000000000000000000000000000..62ee87c65d52ad307d7c91b6c933336b1a119db7
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-loader.h
@@ -0,0 +1,128 @@
+/*! \file exif-loader.h
+ * \brief Defines the ExifLoader type
+ */
+/*
+ * Copyright (c) 2003 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#ifndef __EXIF_LOADER_H__
+#define __EXIF_LOADER_H__
+
+#include <libexif/exif-data.h>
+#include <libexif/exif-log.h>
+#include <libexif/exif-mem.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/*! Data used by the loader interface */
+typedef struct _ExifLoader ExifLoader;
+
+/*! Allocate a new #ExifLoader.
+ *
+ *  \return allocated ExifLoader
+ */
+ExifLoader *exif_loader_new     (void);
+
+/*! Allocate a new #ExifLoader using the specified memory allocator.
+ *
+ *  \param[in] mem the ExifMem
+ *  \return allocated ExifLoader
+ */
+ExifLoader *exif_loader_new_mem (ExifMem *mem);
+
+/*! Increase the refcount of the #ExifLoader.
+ *
+ *  \param[in] loader the ExifLoader to increase the refcount of.
+ */
+void        exif_loader_ref     (ExifLoader *loader);
+
+/*! Decrease the refcount of the #ExifLoader.
+ * If the refcount reaches 0, the loader is freed.
+ *
+ * \param[in] loader ExifLoader for which to decrease the refcount
+ */
+void        exif_loader_unref   (ExifLoader *loader);
+
+/*! Load a file into the given #ExifLoader from the filesystem.
+ * The relevant data is copied in raw form into the #ExifLoader.
+ *
+ * \param[in] loader loader to write to
+ * \param[in] fname path to the file to read
+ */
+void        exif_loader_write_file (ExifLoader *loader, const char *fname);
+
+/*! Load a buffer into the #ExifLoader from a memory buffer.
+ * The relevant data is copied in raw form into the #ExifLoader.
+ *
+ * \param[in] loader loader to write to
+ * \param[in] buf buffer to read from
+ * \param[in] sz size of the buffer
+ * \return 1 while EXIF data is read (or while there is still hope that
+ *   there will be EXIF data later on), 0 otherwise.
+ */
+unsigned char exif_loader_write (ExifLoader *loader, unsigned char *buf, unsigned int sz);
+
+/*! Free any data previously loaded and reset the #ExifLoader to its
+ * newly-initialized state.
+ *
+ * \param[in] loader the loader
+ */
+void          exif_loader_reset (ExifLoader *loader);
+
+/*! Create an #ExifData from the data in the loader. The loader must
+ * already contain data from a previous call to #exif_loader_write_file
+ * or #exif_loader_write.
+ *
+ * \note The #ExifData returned is created using its default options, which
+ * may take effect before the data is returned. If other options are desired,
+ * an #ExifData must be created explicitly and data extracted from the loader
+ * using #exif_loader_get_buf instead.
+ *
+ * \param[in] loader the loader
+ * \return allocated ExifData
+ *
+ * \see exif_loader_get_buf
+ */
+ExifData     *exif_loader_get_data (ExifLoader *loader);
+
+/*! Return the raw data read by the loader.  The returned pointer is only
+ * guaranteed to be valid until the next call to a function modifying
+ * this #ExifLoader.  Either or both of buf and buf_size may be NULL on
+ * entry, in which case that value is not returned.
+ *
+ * \param[in] loader the loader
+ * \param[out] buf read-only pointer to the data read by the loader, or NULL
+ *                 in case of error
+ * \param[out] buf_size size of the data at buf, or 0 in case of error
+ */
+void exif_loader_get_buf (ExifLoader *loader, const unsigned char **buf,
+						  unsigned int *buf_size);
+
+/*! Set the log message object used by this #ExifLoader.
+ * \param[in] loader the loader
+ * \param[in] log #ExifLog
+ */
+void exif_loader_log (ExifLoader *loader, ExifLog *log);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __EXIF_LOADER_H__ */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-log.c b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-log.c
new file mode 100644
index 0000000000000000000000000000000000000000..2db18e3e9bf67b4037e822452353fc6dbcb80873
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-log.c
@@ -0,0 +1,152 @@
+/* exif-log.c
+ *
+ * Copyright (c) 2004 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#include <config.h>
+
+#include <libexif/exif-log.h>
+#include <libexif/i18n.h>
+
+#include <stdlib.h>
+#include <string.h>
+
+struct _ExifLog {
+	unsigned int ref_count;
+
+	ExifLogFunc func;
+	void *data;
+
+	ExifMem *mem;
+};
+
+static const struct {
+	ExifLogCode code;
+	const char *title;
+	const char *message;
+} codes[] = {
+	{ EXIF_LOG_CODE_DEBUG, N_("Debugging information"),
+	  N_("Debugging information is available.") },
+	{ EXIF_LOG_CODE_NO_MEMORY, N_("Not enough memory"),
+	  N_("The system cannot provide enough memory.") },
+	{ EXIF_LOG_CODE_CORRUPT_DATA, N_("Corrupt data"),
+	  N_("The data provided does not follow the specification.") },
+	{ 0, NULL, NULL }
+};
+
+const char *
+exif_log_code_get_title (ExifLogCode code)
+{
+	unsigned int i;
+
+	for (i = 0; codes[i].title; i++) if (codes[i].code == code) break;
+	return _(codes[i].title);
+}
+
+const char *
+exif_log_code_get_message (ExifLogCode code)
+{
+	unsigned int i;
+
+	for (i = 0; codes[i].message; i++) if (codes[i].code == code) break;
+	return _(codes[i].message);
+}
+
+ExifLog *
+exif_log_new_mem (ExifMem *mem)
+{
+	ExifLog *log;
+
+	log = exif_mem_alloc (mem, sizeof (ExifLog));
+	if (!log) return NULL;
+	log->ref_count = 1;
+
+	log->mem = mem;
+	exif_mem_ref (mem);
+
+	return log;
+}
+
+ExifLog *
+exif_log_new (void)
+{
+	ExifMem *mem = exif_mem_new_default ();
+	ExifLog *log = exif_log_new_mem (mem);
+
+	exif_mem_unref (mem);
+
+	return log;
+}
+
+void
+exif_log_ref (ExifLog *log)
+{
+	if (!log) return;
+	log->ref_count++;
+}
+
+void
+exif_log_unref (ExifLog *log)
+{
+	if (!log) return;
+	if (log->ref_count > 0) log->ref_count--;
+	if (!log->ref_count) exif_log_free (log);
+}
+
+void
+exif_log_free (ExifLog *log)
+{
+	ExifMem *mem = log ? log->mem : NULL;
+
+	if (!log) return;
+
+	exif_mem_free (mem, log);
+	exif_mem_unref (mem);
+}
+
+void
+exif_log_set_func (ExifLog *log, ExifLogFunc func, void *data)
+{
+	if (!log) return;
+	log->func = func;
+	log->data = data;
+}
+
+#ifdef NO_VERBOSE_TAG_STRINGS
+/* exif_log forms part of the API and can't be commented away */
+#undef exif_log
+#endif
+void
+exif_log (ExifLog *log, ExifLogCode code, const char *domain,
+	  const char *format, ...)
+{
+	va_list args;
+
+	va_start (args, format);
+	exif_logv (log, code, domain, format, args);
+	va_end (args);
+}
+
+void
+exif_logv (ExifLog *log, ExifLogCode code, const char *domain,
+	   const char *format, va_list args)
+{
+	if (!log) return;
+	if (!log->func) return;
+	log->func (log, code, domain, format, args, log->data);
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-log.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-log.h
new file mode 100644
index 0000000000000000000000000000000000000000..9e71ad6b4f87d1f60d6870abfa308e1cd08f7a0a
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-log.h
@@ -0,0 +1,116 @@
+/*! \file exif-log.h
+ *  \brief Log message infrastructure
+ */
+/*
+ * Copyright (c) 2004 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#ifndef __EXIF_LOG_H__
+#define __EXIF_LOG_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#include <libexif/exif-mem.h>
+#include <stdarg.h>
+
+/*! State maintained by the logging interface */
+typedef struct _ExifLog        ExifLog;
+
+/*! Create a new logging instance.
+ * \see exif_log_free
+ *
+ * \return new instance of #ExifLog
+ */
+ExifLog *exif_log_new     (void);
+ExifLog *exif_log_new_mem (ExifMem *);
+void     exif_log_ref     (ExifLog *log);
+void     exif_log_unref   (ExifLog *log);
+
+/*! Delete instance of #ExifLog.
+ * \see exif_log_new
+ *
+ * \param[in] log #ExifLog
+ * \return new instance of #ExifLog
+ */
+void     exif_log_free    (ExifLog *log);
+
+typedef enum {
+	EXIF_LOG_CODE_NONE,
+	EXIF_LOG_CODE_DEBUG,
+	EXIF_LOG_CODE_NO_MEMORY,
+	EXIF_LOG_CODE_CORRUPT_DATA
+} ExifLogCode;
+
+/*! Return a textual description of the given class of error log.
+ *
+ * \param[in] code logging message class
+ * \return textual description of the log class
+ */
+const char *exif_log_code_get_title   (ExifLogCode code);
+
+/*! Return a verbose description of the given class of error log.
+ *
+ * \param[in] code logging message class
+ * \return verbose description of the log class
+ */
+const char *exif_log_code_get_message (ExifLogCode code);
+
+/*! Log callback function prototype.
+ */
+typedef void (* ExifLogFunc) (ExifLog *log, ExifLogCode, const char *domain,
+			      const char *format, va_list args, void *data);
+
+/*! Register log callback function.
+ * Calls to the log callback function are purely for diagnostic purposes.
+ *
+ * \param[in] log logging state variable
+ * \param[in] func callback function to set
+ * \param[in] data data to pass into callback function
+ */
+void     exif_log_set_func (ExifLog *log, ExifLogFunc func, void *data);
+
+#ifndef NO_VERBOSE_TAG_STRINGS
+void     exif_log  (ExifLog *log, ExifLogCode, const char *domain,
+		    const char *format, ...)
+#ifdef __GNUC__
+			__attribute__((__format__(printf,4,5)))
+#endif
+;
+#else
+#if defined(__STDC_VERSION__) &&  __STDC_VERSION__ >= 199901L
+#define exif_log(...) do { } while (0)
+#elif defined(__GNUC__)
+#define exif_log(x...) do { } while (0)
+#else
+#define exif_log (void)
+#endif
+#endif
+
+void     exif_logv (ExifLog *log, ExifLogCode, const char *domain,
+		    const char *format, va_list args);
+
+/* For your convenience */
+#define EXIF_LOG_NO_MEMORY(l,d,s) exif_log ((l), EXIF_LOG_CODE_NO_MEMORY, (d), "Could not allocate %lu byte(s).", (unsigned long)(s))
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __EXIF_LOG_H__ */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-mem.c b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-mem.c
new file mode 100644
index 0000000000000000000000000000000000000000..b4d7ece727fc7b3e9ce69f6d037bb8fb117818dc
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-mem.c
@@ -0,0 +1,99 @@
+#include <libexif/exif-mem.h>
+
+#include <stdlib.h>
+
+struct _ExifMem {
+	unsigned int ref_count;
+	ExifMemAllocFunc alloc_func;
+	ExifMemReallocFunc realloc_func;
+	ExifMemFreeFunc free_func;
+};
+
+/*! Default memory allocation function. */
+static void *
+exif_mem_alloc_func (ExifLong ds)
+{
+	return calloc ((size_t) ds, 1);
+}
+
+/*! Default memory reallocation function. */
+static void *
+exif_mem_realloc_func (void *d, ExifLong ds)
+{
+	return realloc (d, (size_t) ds);
+}
+
+/*! Default memory free function. */
+static void
+exif_mem_free_func (void *d)
+{
+	free (d);
+}
+
+ExifMem *
+exif_mem_new (ExifMemAllocFunc alloc_func, ExifMemReallocFunc realloc_func,
+	      ExifMemFreeFunc free_func)
+{
+	ExifMem *mem;
+
+	if (!alloc_func && !realloc_func) 
+		return NULL;
+	mem = alloc_func ? alloc_func (sizeof (ExifMem)) :
+		           realloc_func (NULL, sizeof (ExifMem));
+	if (!mem) return NULL;
+	mem->ref_count = 1;
+
+	mem->alloc_func   = alloc_func;
+	mem->realloc_func = realloc_func;
+	mem->free_func    = free_func;
+
+	return mem;
+}
+
+void
+exif_mem_ref (ExifMem *mem)
+{
+	if (!mem) return;
+	mem->ref_count++;
+}
+
+void
+exif_mem_unref (ExifMem *mem)
+{
+	if (!mem) return;
+	if (!--mem->ref_count)
+		exif_mem_free (mem, mem);
+}
+
+void
+exif_mem_free (ExifMem *mem, void *d)
+{
+	if (!mem) return;
+	if (mem->free_func) {
+		mem->free_func (d);
+		return;
+	}
+}
+
+void *
+exif_mem_alloc (ExifMem *mem, ExifLong ds)
+{
+	if (!mem) return NULL;
+	if (mem->alloc_func || mem->realloc_func)
+		return mem->alloc_func ? mem->alloc_func (ds) :
+					 mem->realloc_func (NULL, ds);
+	return NULL;
+}
+
+void *
+exif_mem_realloc (ExifMem *mem, void *d, ExifLong ds)
+{
+	return (mem && mem->realloc_func) ? mem->realloc_func (d, ds) : NULL;
+}
+
+ExifMem *
+exif_mem_new_default (void)
+{
+	return exif_mem_new (exif_mem_alloc_func, exif_mem_realloc_func,
+			     exif_mem_free_func);
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-mem.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-mem.h
new file mode 100644
index 0000000000000000000000000000000000000000..fd8f2fabd6f1b78fac7bd50b2b73911381864d2b
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-mem.h
@@ -0,0 +1,90 @@
+/*! \file exif-mem.h
+ *  \brief Define the ExifMem data type and the associated functions.
+ *  ExifMem defines the memory management functions used within libexif.
+ */
+/* exif-mem.h
+ *
+ * Copyright (c) 2003 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#ifndef __EXIF_MEM_H__
+#define __EXIF_MEM_H__
+
+#include <libexif/exif-utils.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/*! Should work like calloc()
+ *
+ *  \param[in] s the size of the block to allocate.
+ *  \return the allocated memory and initialized. 
+ */
+typedef void * (* ExifMemAllocFunc)   (ExifLong s);
+
+/*! Should work like realloc()
+ *
+ * \param[in] p the pointer to reallocate
+ * \param[in] s the size of the reallocated block
+ * \return allocated memory 
+ */
+typedef void * (* ExifMemReallocFunc) (void *p, ExifLong s);
+
+/*! Free method for ExifMem
+ *
+ * \param[in] p the pointer to free
+ * \return the freed pointer
+ */
+typedef void   (* ExifMemFreeFunc)    (void *p);
+
+/*! ExifMem define a memory allocator */
+typedef struct _ExifMem ExifMem;
+
+/*! Create a new ExifMem
+ *
+ * \param[in] a the allocator function
+ * \param[in] r the reallocator function
+ * \param[in] f the free function
+ */
+ExifMem *exif_mem_new   (ExifMemAllocFunc a, ExifMemReallocFunc r,
+			 ExifMemFreeFunc f);
+/*! Refcount an ExifMem
+ */
+void     exif_mem_ref   (ExifMem *);
+
+/*! Unrefcount an ExifMem.
+ * If the refcount reaches 0, the ExifMem is freed
+ */
+void     exif_mem_unref (ExifMem *);
+
+void *exif_mem_alloc   (ExifMem *m, ExifLong s);
+void *exif_mem_realloc (ExifMem *m, void *p, ExifLong s);
+void  exif_mem_free    (ExifMem *m, void *p);
+
+/*! Create a new ExifMem with default values for your convenience
+ *
+ * \return return a new default ExifMem
+ */
+ExifMem *exif_mem_new_default (void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __EXIF_MEM_H__ */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-mnote-data-priv.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-mnote-data-priv.h
new file mode 100644
index 0000000000000000000000000000000000000000..7462c97c9f8122eae06f40baf2b139518df6b68e
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-mnote-data-priv.h
@@ -0,0 +1,86 @@
+/* exif-mnote-data-priv.h
+ *
+ * Copyright (c) 2003 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#ifndef __EXIF_MNOTE_DATA_PRIV_H__
+#define __EXIF_MNOTE_DATA_PRIV_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#include <libexif/exif-mnote-data.h>
+#include <libexif/exif-byte-order.h>
+#include <libexif/exif-log.h>
+
+/*! \internal */
+typedef struct _ExifMnoteDataMethods ExifMnoteDataMethods;
+
+/*! \internal */
+struct _ExifMnoteDataMethods {
+
+	/* Life cycle */
+	void (* free) (ExifMnoteData *);
+
+	/* Modification */
+	void (* save) (ExifMnoteData *, unsigned char **, unsigned int *);
+	void (* load) (ExifMnoteData *, const unsigned char *, unsigned int);
+	void (* set_offset)     (ExifMnoteData *, unsigned int);
+	void (* set_byte_order) (ExifMnoteData *, ExifByteOrder);
+
+	/* Query */
+	unsigned int (* count)           (ExifMnoteData *);
+        unsigned int (* get_id)          (ExifMnoteData *, unsigned int);
+	const char * (* get_name)        (ExifMnoteData *, unsigned int);
+	const char * (* get_title)       (ExifMnoteData *, unsigned int);
+	const char * (* get_description) (ExifMnoteData *, unsigned int);
+	char * (* get_value)             (ExifMnoteData *, unsigned int, char *val, unsigned int maxlen);
+};
+
+/*! \internal */
+typedef struct _ExifMnoteDataPriv ExifMnoteDataPriv;
+
+/*! \internal */
+struct _ExifMnoteData 
+{
+	ExifMnoteDataPriv *priv;
+
+	ExifMnoteDataMethods methods;
+
+	/* Logging */
+	ExifLog *log;
+
+	/* Memory management */
+	ExifMem *mem;
+};
+
+/*! \internal */
+void exif_mnote_data_construct      (ExifMnoteData *, ExifMem *mem);
+
+/*! \internal */
+void exif_mnote_data_set_byte_order (ExifMnoteData *, ExifByteOrder);
+
+/*! \internal */
+void exif_mnote_data_set_offset     (ExifMnoteData *, unsigned int);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __EXIF_MNOTE_PRIV_H__ */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-mnote-data.c b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-mnote-data.c
new file mode 100644
index 0000000000000000000000000000000000000000..248056ef05190e9ce3e3fe162c7feda8bcb4c755
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-mnote-data.c
@@ -0,0 +1,158 @@
+/* exif-mnote-data.c
+ *
+ * Copyright (C) 2003 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#include <config.h>
+
+#include <libexif/exif-mnote-data.h>
+#include <libexif/exif-mnote-data-priv.h>
+
+#include <stdlib.h>
+#include <string.h>
+
+struct _ExifMnoteDataPriv
+{
+	unsigned int ref_count;
+};
+
+void
+exif_mnote_data_construct (ExifMnoteData *d, ExifMem *mem)
+{
+	if (!d || !mem) return;
+	if (d->priv) return;
+	d->priv = exif_mem_alloc (mem, sizeof (ExifMnoteDataPriv));
+	if (!d->priv) return;
+
+	d->priv->ref_count = 1;
+
+	d->mem = mem;
+	exif_mem_ref (mem);
+}
+
+void
+exif_mnote_data_ref (ExifMnoteData *d)
+{
+	if (d && d->priv) d->priv->ref_count++;
+}
+
+static void
+exif_mnote_data_free (ExifMnoteData *d)
+{
+	ExifMem *mem = d ? d->mem : NULL;
+
+	if (!d) return;
+	if (d->priv) {
+		if (d->methods.free) d->methods.free (d);
+		exif_mem_free (mem, d->priv);
+		d->priv = NULL;
+	}
+	exif_log_unref (d->log);
+	exif_mem_free (mem, d);
+	exif_mem_unref (mem);
+}
+
+void
+exif_mnote_data_unref (ExifMnoteData *d)
+{
+	if (!d || !d->priv) return;
+	if (d->priv->ref_count > 0) d->priv->ref_count--;
+	if (!d->priv->ref_count)
+		exif_mnote_data_free (d);
+}
+
+void
+exif_mnote_data_load (ExifMnoteData *d, const unsigned char *buf,
+		      unsigned int buf_size)
+{
+	if (!d || !d->methods.load) return;
+	d->methods.load (d, buf, buf_size);
+}
+
+void
+exif_mnote_data_save (ExifMnoteData *d, unsigned char **buf,
+		      unsigned int *buf_size)
+{
+	if (!d || !d->methods.save) return;
+	d->methods.save (d, buf, buf_size);
+}
+
+void
+exif_mnote_data_set_byte_order (ExifMnoteData *d, ExifByteOrder o)
+{
+	if (!d || !d->methods.set_byte_order) return;
+	d->methods.set_byte_order (d, o);
+}
+
+void
+exif_mnote_data_set_offset (ExifMnoteData *d, unsigned int o)
+{
+	if (!d || !d->methods.set_offset) return;
+	d->methods.set_offset (d, o);
+}
+
+unsigned int
+exif_mnote_data_count (ExifMnoteData *d)
+{
+	if (!d || !d->methods.count) return 0;
+	return d->methods.count (d);
+}
+
+unsigned int
+exif_mnote_data_get_id (ExifMnoteData *d, unsigned int n)
+{
+	if (!d || !d->methods.get_id) return 0;
+	return d->methods.get_id (d, n);
+}
+
+const char *
+exif_mnote_data_get_name (ExifMnoteData *d, unsigned int n)
+{
+	if (!d || !d->methods.get_name) return NULL;
+	return d->methods.get_name (d, n);
+}
+
+const char *
+exif_mnote_data_get_title (ExifMnoteData *d, unsigned int n)
+{
+	if (!d || !d->methods.get_title) return NULL;
+	return d->methods.get_title (d, n);
+}
+	
+const char *
+exif_mnote_data_get_description (ExifMnoteData *d, unsigned int n)
+{
+	if (!d || !d->methods.get_description) return NULL;
+	return d->methods.get_description (d, n);
+}
+	
+char *
+exif_mnote_data_get_value (ExifMnoteData *d, unsigned int n, char *val, unsigned int maxlen)
+{
+	if (!d || !d->methods.get_value) return NULL;
+	return d->methods.get_value (d, n, val, maxlen);
+}
+
+void
+exif_mnote_data_log (ExifMnoteData *d, ExifLog *log)
+{
+	if (!d) return;
+	exif_log_unref (d->log);
+	d->log = log;
+	exif_log_ref (log);
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-mnote-data.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-mnote-data.h
new file mode 100644
index 0000000000000000000000000000000000000000..19e1de5a4f7a2c5a636dfd9b7ea365cdc3d46281
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-mnote-data.h
@@ -0,0 +1,122 @@
+/*! \file exif-mnote-data.h
+ *  \brief Handling EXIF MakerNote tags
+ */
+/*
+ * Copyright (c) 2003 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#ifndef __EXIF_MNOTE_DATA_H__
+#define __EXIF_MNOTE_DATA_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#include <libexif/exif-log.h>
+
+/*! Data found in the MakerNote tag */
+typedef struct _ExifMnoteData ExifMnoteData;
+
+void exif_mnote_data_ref   (ExifMnoteData *);
+void exif_mnote_data_unref (ExifMnoteData *);
+
+/*! Load the MakerNote data from a memory buffer.
+ *
+ * \param[in] d MakerNote data
+ * \param[in] buf pointer to raw MakerNote tag data
+ * \param[in] buf_siz number of bytes of data at buf
+ */
+void exif_mnote_data_load (ExifMnoteData *d, const unsigned char *buf,
+			   unsigned int buf_siz);
+
+/*!
+ * Save the raw MakerNote data into a memory buffer.  The buffer is
+ * allocated by this function and must subsequently be freed by the
+ * caller.
+ *
+ * \param[in,out] d extract the data from this structure 
+ * \param[out] buf pointer to buffer pointer containing MakerNote data on return
+ * \param[out] buf_siz pointer to the size of the buffer
+ */
+void exif_mnote_data_save (ExifMnoteData *d, unsigned char **buf,
+			   unsigned int *buf_siz);
+
+/*! Return the number of tags in the MakerNote.
+ *
+ * \param[in] d MakerNote data
+ * \return number of tags, or 0 if no MakerNote or the type is not supported
+ */
+unsigned int exif_mnote_data_count           (ExifMnoteData *d);
+
+/*! Return the MakerNote tag number for the tag at the specified index within
+ * the MakerNote.
+ *
+ * \param[in] d MakerNote data
+ * \param[in] n index of the entry within the MakerNote data
+ * \return MakerNote tag number
+ */
+unsigned int exif_mnote_data_get_id          (ExifMnoteData *d, unsigned int n);
+
+/*! Returns textual name of the given MakerNote tag. The name is a short,
+ * unique (within this type of MakerNote), non-localized text string
+ * containing only US-ASCII alphanumeric characters.
+ *
+ * \param[in] d MakerNote data
+ * \param[in] n index of the entry within the MakerNote data
+ * \return textual name of the tag
+ */
+const char  *exif_mnote_data_get_name        (ExifMnoteData *d, unsigned int n);
+
+/*! Returns textual title of the given MakerNote tag.
+ * The title is a short, localized textual description of the tag.
+ *
+ * \param[in] d MakerNote data
+ * \param[in] n index of the entry within the MakerNote data
+ * \return textual name of the tag
+ */
+const char  *exif_mnote_data_get_title       (ExifMnoteData *d, unsigned int n);
+
+/*! Returns verbose textual description of the given MakerNote tag.
+ *
+ * \param[in] d MakerNote data
+ * \param[in] n index of the entry within the MakerNote data
+ * \return textual description of the tag
+ */
+const char  *exif_mnote_data_get_description (ExifMnoteData *d, unsigned int n);
+
+/*! Return a textual representation of the value of the MakerNote entry.
+ *
+ * \warning The character set of the returned string may be in
+ *          the encoding of the current locale or the native encoding
+ *          of the camera.
+ *
+ * \param[in] d MakerNote data
+ * \param[in] n index of the entry within the MakerNote data
+ * \param[out] val buffer in which to store value
+ * \param[in] maxlen length of the buffer val
+ * \return val pointer, or NULL on error
+ */
+char  *exif_mnote_data_get_value (ExifMnoteData *d, unsigned int n, char *val, unsigned int maxlen);
+
+void exif_mnote_data_log (ExifMnoteData *, ExifLog *);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __EXIF_MNOTE_DATA_H__ */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-system.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-system.h
new file mode 100644
index 0000000000000000000000000000000000000000..81fa703a1652fbc34e253359aec3179559a25502
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-system.h
@@ -0,0 +1,32 @@
+/*! \file exif-system.h
+ * \brief System specific definitions, not for installation!
+ */
+/*
+ * Copyright (c) 2007 Hans Ulrich Niedermann <gp@n-dimensional.de>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#ifndef EXIF_SYSTEM_H
+#define EXIF_SYSTEM_H
+
+#if defined(__GNUC__) && (__GNUC__ >= 2)
+# define UNUSED(param) UNUSED_PARAM_##param __attribute__((unused))
+#else
+# define UNUSED(param) param
+#endif
+
+#endif /* !defined(EXIF_SYSTEM_H) */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-tag.c b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-tag.c
new file mode 100644
index 0000000000000000000000000000000000000000..9e388495eeb36b0a71c55952ff11d8e022f913f0
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-tag.c
@@ -0,0 +1,1180 @@
+/* exif-tag.c
+ *
+ * Copyright (c) 2001 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#include <config.h>
+
+#include <libexif/exif-tag.h>
+#include <libexif/i18n.h>
+
+#include <stdlib.h>
+#include <string.h>
+
+#define ESL_NNNN { EXIF_SUPPORT_LEVEL_NOT_RECORDED, EXIF_SUPPORT_LEVEL_NOT_RECORDED, EXIF_SUPPORT_LEVEL_NOT_RECORDED, EXIF_SUPPORT_LEVEL_NOT_RECORDED }
+#define ESL_OOOO { EXIF_SUPPORT_LEVEL_OPTIONAL, EXIF_SUPPORT_LEVEL_OPTIONAL, EXIF_SUPPORT_LEVEL_OPTIONAL, EXIF_SUPPORT_LEVEL_OPTIONAL }
+#define ESL_MMMN { EXIF_SUPPORT_LEVEL_MANDATORY, EXIF_SUPPORT_LEVEL_MANDATORY, EXIF_SUPPORT_LEVEL_MANDATORY, EXIF_SUPPORT_LEVEL_NOT_RECORDED }
+#define ESL_MMMM { EXIF_SUPPORT_LEVEL_MANDATORY, EXIF_SUPPORT_LEVEL_MANDATORY, EXIF_SUPPORT_LEVEL_MANDATORY, EXIF_SUPPORT_LEVEL_MANDATORY }
+#define ESL_OMON { EXIF_SUPPORT_LEVEL_OPTIONAL, EXIF_SUPPORT_LEVEL_MANDATORY, EXIF_SUPPORT_LEVEL_OPTIONAL, EXIF_SUPPORT_LEVEL_NOT_RECORDED }
+#define ESL_NNOO { EXIF_SUPPORT_LEVEL_NOT_RECORDED, EXIF_SUPPORT_LEVEL_NOT_RECORDED, EXIF_SUPPORT_LEVEL_OPTIONAL, EXIF_SUPPORT_LEVEL_OPTIONAL }
+#define ESL_NNMN { EXIF_SUPPORT_LEVEL_NOT_RECORDED, EXIF_SUPPORT_LEVEL_NOT_RECORDED, EXIF_SUPPORT_LEVEL_MANDATORY, EXIF_SUPPORT_LEVEL_NOT_RECORDED }
+#define ESL_NNMM { EXIF_SUPPORT_LEVEL_NOT_RECORDED, EXIF_SUPPORT_LEVEL_NOT_RECORDED, EXIF_SUPPORT_LEVEL_MANDATORY, EXIF_SUPPORT_LEVEL_MANDATORY }
+#define ESL_NNNM { EXIF_SUPPORT_LEVEL_NOT_RECORDED, EXIF_SUPPORT_LEVEL_NOT_RECORDED, EXIF_SUPPORT_LEVEL_NOT_RECORDED, EXIF_SUPPORT_LEVEL_MANDATORY }
+#define ESL_NNNO { EXIF_SUPPORT_LEVEL_NOT_RECORDED, EXIF_SUPPORT_LEVEL_NOT_RECORDED, EXIF_SUPPORT_LEVEL_NOT_RECORDED, EXIF_SUPPORT_LEVEL_OPTIONAL }
+#define ESL_GPS { ESL_NNNN, ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN }
+
+/*!
+ * Table giving information about each EXIF tag.
+ * There may be more than one entry with the same tag value because some tags
+ * have different meanings depending on the IFD in which they appear.
+ * When there are such duplicate entries, there must be no overlap in their
+ * support levels.
+ * The entries MUST be sorted in tag order.
+ * The name and title are mandatory, but the description may be an empty
+ * string. None of the entries may be NULL except the final array terminator.
+ */
+static const struct TagEntry {
+	/*! Tag ID. There may be duplicate tags when the same number is used for
+	 * different meanings in different IFDs. */
+	ExifTag tag;
+	const char *name;
+	const char *title;
+	const char *description;
+	/*! indexed by the types [ExifIfd][ExifDataType] */
+	ExifSupportLevel esl[EXIF_IFD_COUNT][EXIF_DATA_TYPE_COUNT];
+} ExifTagTable[] = {
+#ifndef NO_VERBOSE_TAG_STRINGS
+	{EXIF_TAG_GPS_VERSION_ID, "GPSVersionID", N_("GPS Tag Version"),
+	 N_("Indicates the version of <GPSInfoIFD>. The version is given "
+	    "as 2.0.0.0. This tag is mandatory when <GPSInfo> tag is "
+	    "present. (Note: The <GPSVersionID> tag is given in bytes, "
+	    "unlike the <ExifVersion> tag. When the version is "
+	    "2.0.0.0, the tag value is 02000000.H)."), ESL_GPS},
+	{EXIF_TAG_INTEROPERABILITY_INDEX, "InteroperabilityIndex",
+	 N_("Interoperability Index"),
+	 N_("Indicates the identification of the Interoperability rule. "
+	    "Use \"R98\" for stating ExifR98 Rules. Four bytes used "
+	    "including the termination code (NULL). see the separate "
+	    "volume of Recommended Exif Interoperability Rules (ExifR98) "
+	    "for other tags used for ExifR98."),
+	 { ESL_NNNN, ESL_NNNN, ESL_NNNN, ESL_NNNN, ESL_OOOO } },
+	{EXIF_TAG_GPS_LATITUDE_REF, "GPSLatitudeRef", N_("North or South Latitude"),
+	 N_("Indicates whether the latitude is north or south latitude. The "
+	    "ASCII value 'N' indicates north latitude, and 'S' is south "
+	    "latitude."), ESL_GPS},
+	{EXIF_TAG_INTEROPERABILITY_VERSION, "InteroperabilityVersion",
+	 N_("Interoperability Version"), "",
+	 { ESL_NNNN, ESL_NNNN, ESL_NNNN, ESL_NNNN, ESL_OOOO } },
+	{EXIF_TAG_GPS_LATITUDE, "GPSLatitude", N_("Latitude"),
+	 N_("Indicates the latitude. The latitude is expressed as three "
+	    "RATIONAL values giving the degrees, minutes, and seconds, "
+	    "respectively. When degrees, minutes and seconds are expressed, "
+	    "the format is dd/1,mm/1,ss/1. When degrees and minutes are used "
+	    "and, for example, fractions of minutes are given up to two "
+	    "decimal places, the format is dd/1,mmmm/100,0/1."),
+	 ESL_GPS},
+	{EXIF_TAG_GPS_LONGITUDE_REF, "GPSLongitudeRef", N_("East or West Longitude"),
+	 N_("Indicates whether the longitude is east or west longitude. "
+	    "ASCII 'E' indicates east longitude, and 'W' is west "
+	    "longitude."), ESL_GPS},
+	{EXIF_TAG_GPS_LONGITUDE, "GPSLongitude", N_("Longitude"),
+	 N_("Indicates the longitude. The longitude is expressed as three "
+	    "RATIONAL values giving the degrees, minutes, and seconds, "
+	    "respectively. When degrees, minutes and seconds are expressed, "
+	    "the format is ddd/1,mm/1,ss/1. When degrees and minutes are "
+	    "used and, for example, fractions of minutes are given up to "
+	    "two decimal places, the format is ddd/1,mmmm/100,0/1."),
+	 ESL_GPS},
+	{EXIF_TAG_GPS_ALTITUDE_REF, "GPSAltitudeRef", N_("Altitude Reference"),
+	 N_("Indicates the altitude used as the reference altitude. If the "
+	    "reference is sea level and the altitude is above sea level, 0 "
+	    "is given. If the altitude is below sea level, a value of 1 is given "
+	    "and the altitude is indicated as an absolute value in the "
+	    "GSPAltitude tag. The reference unit is meters. Note that this tag "
+	    "is BYTE type, unlike other reference tags."), ESL_GPS},
+	{EXIF_TAG_GPS_ALTITUDE, "GPSAltitude", N_("Altitude"),
+	 N_("Indicates the altitude based on the reference in GPSAltitudeRef. "
+	    "Altitude is expressed as one RATIONAL value. The reference unit "
+	    "is meters."), ESL_GPS},
+	{EXIF_TAG_GPS_TIME_STAMP, "GPSTimeStamp", N_("GPS Time (Atomic Clock)"),
+         N_("Indicates the time as UTC (Coordinated Universal Time). "
+	    "TimeStamp is expressed as three RATIONAL values giving "
+            "the hour, minute, and second."), ESL_GPS},
+	{EXIF_TAG_GPS_SATELLITES, "GPSSatellites", N_("GPS Satellites"),
+         N_("Indicates the GPS satellites used for measurements. This "
+            "tag can be used to describe the number of satellites, their ID "
+            "number, angle of elevation, azimuth, SNR and other information "
+            "in ASCII notation. The format is not specified. If the GPS "
+            "receiver is incapable of taking measurements, value of the tag "
+            "shall be set to NULL."), ESL_GPS},
+	{EXIF_TAG_GPS_STATUS, "GPSStatus", N_("GPS Receiver Status"),
+         N_("Indicates the status of the GPS receiver when the image is "
+            "recorded. 'A' means measurement is in progress, and 'V' means "
+            "the measurement is Interoperability."), ESL_GPS},
+	{EXIF_TAG_GPS_MEASURE_MODE, "GPSMeasureMode", N_("GPS Measurement Mode"),
+         N_("Indicates the GPS measurement mode. '2' means "
+            "two-dimensional measurement and '3' means three-dimensional "
+            "measurement is in progress."), ESL_GPS},
+	{EXIF_TAG_GPS_DOP, "GPSDOP", N_("Measurement Precision"),
+         N_("Indicates the GPS DOP (data degree of precision). An HDOP "
+            "value is written during two-dimensional measurement, and PDOP "
+            "during three-dimensional measurement."), ESL_GPS},
+	{EXIF_TAG_GPS_SPEED_REF, "GPSSpeedRef", N_("Speed Unit"),
+         N_("Indicates the unit used to express the GPS receiver speed "
+            "of movement. 'K', 'M' and 'N' represent kilometers per hour, "
+            "miles per hour, and knots."), ESL_GPS},
+	{EXIF_TAG_GPS_SPEED, "GPSSpeed", N_("Speed of GPS Receiver"),
+	 N_("Indicates the speed of GPS receiver movement."), ESL_GPS},
+	{EXIF_TAG_GPS_TRACK_REF, "GPSTrackRef", N_("Reference for direction of movement"),
+         N_("Indicates the reference for giving the direction of GPS "
+            "receiver movement. 'T' denotes true direction and 'M' is "
+            "magnetic direction."), ESL_GPS},
+	{EXIF_TAG_GPS_TRACK, "GPSTrack", N_("Direction of Movement"),
+         N_("Indicates the direction of GPS receiver movement. The range "
+            "of values is from 0.00 to 359.99."), ESL_GPS},
+	{EXIF_TAG_GPS_IMG_DIRECTION_REF, "GPSImgDirectionRef", N_("GPS Image Direction Reference"),
+	 N_("Indicates the reference for giving the direction of the image when it is captured. "
+	    "'T' denotes true direction and 'M' is magnetic direction."), ESL_GPS},
+	{EXIF_TAG_GPS_IMG_DIRECTION, "GPSImgDirection", N_("GPS Image Direction"),
+	 N_("Indicates the direction of the image when it was captured. The range of values is "
+	    "from 0.00 to 359.99."), ESL_GPS},
+	{EXIF_TAG_GPS_MAP_DATUM, "GPSMapDatum", N_("Geodetic Survey Data Used"),
+         N_("Indicates the geodetic survey data used by the GPS "
+            "receiver. If the survey data is restricted to Japan, the value "
+            "of this tag is 'TOKYO' or 'WGS-84'. If a GPS Info tag is "
+            "recorded, it is strongly recommended that this tag be recorded."), ESL_GPS},
+	{EXIF_TAG_GPS_DEST_LATITUDE_REF, "GPSDestLatitudeRef", N_("Reference For Latitude of Destination"),
+         N_("Indicates whether the latitude of the destination point is "
+            "north or south latitude. The ASCII value 'N' indicates north "
+            "latitude, and 'S' is south latitude."), ESL_GPS},
+	{EXIF_TAG_GPS_DEST_LATITUDE, "GPSDestLatitude", N_("Latitude of Destination"),
+         N_("Indicates the latitude of the destination point. The "
+            "latitude is expressed as three RATIONAL values giving the "
+            "degrees, minutes, and seconds, respectively. If latitude is "
+            "expressed as degrees, minutes and seconds, a typical format "
+            "would be dd/1,mm/1,ss/1. When degrees and minutes are used and, "
+            "for example, fractions of minutes are given up to two decimal "
+            "places, the format would be dd/1,mmmm/100,0/1."), ESL_GPS},
+	{EXIF_TAG_GPS_DEST_LONGITUDE_REF, "GPSDestLongitudeRef", N_("Reference for Longitude of Destination"),
+         N_("Indicates whether the longitude of the destination point is "
+            "east or west longitude. ASCII 'E' indicates east longitude, and "
+            "'W' is west longitude."), ESL_GPS},
+	{EXIF_TAG_GPS_DEST_LONGITUDE, "GPSDestLongitude", N_("Longitude of Destination"),
+         N_("Indicates the longitude of the destination point. The "
+            "longitude is expressed as three RATIONAL values giving the "
+            "degrees, minutes, and seconds, respectively. If longitude is "
+            "expressed as degrees, minutes and seconds, a typical format "
+            "would be ddd/1,mm/1,ss/1. When degrees and minutes are used "
+            "and, for example, fractions of minutes are given up to two "
+            "decimal places, the format would be ddd/1,mmmm/100,0/1."),
+         ESL_GPS},
+	{EXIF_TAG_GPS_DEST_BEARING_REF, "GPSDestBearingRef", N_("Reference for Bearing of Destination"),
+         N_("Indicates the reference used for giving the bearing to "
+            "the destination point. 'T' denotes true direction and 'M' is "
+            "magnetic direction."), ESL_GPS},
+	{EXIF_TAG_GPS_DEST_BEARING, "GPSDestBearing", N_("Bearing of Destination"),
+         N_("Indicates the bearing to the destination point. The range "
+            "of values is from 0.00 to 359.99."), ESL_GPS},
+	{EXIF_TAG_GPS_DEST_DISTANCE_REF, "GPSDestDistanceRef", N_("Reference for Distance to Destination"),
+         N_("Indicates the unit used to express the distance to the "
+            "destination point. 'K', 'M' and 'N' represent kilometers, miles "
+            "and knots."), ESL_GPS},
+	{EXIF_TAG_GPS_DEST_DISTANCE, "GPSDestDistance", N_("Distance to Destination"),
+	 N_("Indicates the distance to the destination point."), ESL_GPS},
+	{EXIF_TAG_GPS_PROCESSING_METHOD, "GPSProcessingMethod", N_("Name of GPS Processing Method"),
+         N_("A character string recording the name of the method used "
+            "for location finding. The first byte indicates the character "
+            "code used, and this is followed by the name "
+            "of the method. Since the Type is not ASCII, NULL termination is "
+            "not necessary."), ESL_GPS},
+	{EXIF_TAG_GPS_AREA_INFORMATION, "GPSAreaInformation", N_("Name of GPS Area"),
+         N_("A character string recording the name of the GPS area. The "
+            "first byte indicates the character code used, "
+            "and this is followed by the name of the GPS area. Since "
+            "the Type is not ASCII, NULL termination is not necessary."), ESL_GPS},
+	{EXIF_TAG_GPS_DATE_STAMP, "GPSDateStamp", N_("GPS Date"),
+         N_("A character string recording date and time information "
+            "relative to UTC (Coordinated Universal Time). The format is "
+            "\"YYYY:MM:DD\". The length of the string is 11 bytes including "
+            "NULL."), ESL_GPS},
+	{EXIF_TAG_GPS_DIFFERENTIAL, "GPSDifferential", N_("GPS Differential Correction"),
+         N_("Indicates whether differential correction is applied to the "
+            "GPS receiver."), ESL_GPS},
+	/* Not in EXIF 2.2 */
+	{EXIF_TAG_NEW_SUBFILE_TYPE, "NewSubfileType",
+	 N_("New Subfile Type"), N_("A general indication of the kind of data "
+	    "contained in this subfile.")},
+	{EXIF_TAG_IMAGE_WIDTH, "ImageWidth", N_("Image Width"),
+	 N_("The number of columns of image data, equal to the number of "
+	    "pixels per row. In JPEG compressed data a JPEG marker is "
+	    "used instead of this tag."),
+	 { ESL_MMMN, ESL_MMMN, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_IMAGE_LENGTH, "ImageLength", N_("Image Length"),
+	 N_("The number of rows of image data. In JPEG compressed data a "
+	    "JPEG marker is used instead of this tag."), 
+	 { ESL_MMMN, ESL_MMMN, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_BITS_PER_SAMPLE, "BitsPerSample", N_("Bits per Sample"),
+	 N_("The number of bits per image component. In this standard each "
+	    "component of the image is 8 bits, so the value for this "
+	    "tag is 8. See also <SamplesPerPixel>. In JPEG compressed data "
+	    "a JPEG marker is used instead of this tag."),
+	 { ESL_MMMN, ESL_MMMN, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_COMPRESSION, "Compression", N_("Compression"),
+	 N_("The compression scheme used for the image data. When a "
+	    "primary image is JPEG compressed, this designation is "
+	    "not necessary and is omitted. When thumbnails use JPEG "
+	    "compression, this tag value is set to 6."),
+	 { ESL_MMMN, ESL_MMMM, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_PHOTOMETRIC_INTERPRETATION, "PhotometricInterpretation",
+	 N_("Photometric Interpretation"),
+	 N_("The pixel composition. In JPEG compressed data a JPEG "
+	    "marker is used instead of this tag."),
+	 { ESL_MMMN, ESL_MMMN, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	/* Not in EXIF 2.2 */
+	{EXIF_TAG_FILL_ORDER, "FillOrder", N_("Fill Order"), ""},
+	/* Not in EXIF 2.2 */
+	{EXIF_TAG_DOCUMENT_NAME, "DocumentName", N_("Document Name"), ""},
+	{EXIF_TAG_IMAGE_DESCRIPTION, "ImageDescription",
+	 N_("Image Description"),
+	 N_("A character string giving the title of the image. It may be "
+	    "a comment such as \"1988 company picnic\" or "
+	    "the like. Two-bytes character codes cannot be used. "
+	    "When a 2-bytes code is necessary, the Exif Private tag "
+	    "<UserComment> is to be used."),
+	 { ESL_OOOO, ESL_OOOO, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_MAKE, "Make", N_("Manufacturer"),
+	 N_("The manufacturer of the recording "
+	    "equipment. This is the manufacturer of the DSC, scanner, "
+	    "video digitizer or other equipment that generated the "
+	    "image. When the field is left blank, it is treated as "
+	    "unknown."),
+	 { ESL_OOOO, ESL_OOOO, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_MODEL, "Model", N_("Model"),
+	 N_("The model name or model number of the equipment. This is the "
+	    "model name or number of the DSC, scanner, video digitizer "
+	    "or other equipment that generated the image. When the field "
+	    "is left blank, it is treated as unknown."),
+	 { ESL_OOOO, ESL_OOOO, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_STRIP_OFFSETS, "StripOffsets", N_("Strip Offsets"),
+	 N_("For each strip, the byte offset of that strip. It is "
+	    "recommended that this be selected so the number of strip "
+	    "bytes does not exceed 64 Kbytes. With JPEG compressed "
+	    "data this designation is not needed and is omitted. See also "
+	    "<RowsPerStrip> and <StripByteCounts>."),
+	 { ESL_MMMN, ESL_MMMN, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_ORIENTATION, "Orientation", N_("Orientation"),
+	 N_("The image orientation viewed in terms of rows and columns."),
+	 { ESL_OOOO, ESL_OOOO, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_SAMPLES_PER_PIXEL, "SamplesPerPixel",
+	 N_("Samples per Pixel"),
+	 N_("The number of components per pixel. Since this standard applies "
+	    "to RGB and YCbCr images, the value set for this tag is 3. "
+	    "In JPEG compressed data a JPEG marker is used instead of this "
+	    "tag."), 
+	 { ESL_MMMN, ESL_MMMN, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_ROWS_PER_STRIP, "RowsPerStrip", N_("Rows per Strip"),
+	 N_("The number of rows per strip. This is the number of rows "
+	    "in the image of one strip when an image is divided into "
+	    "strips. With JPEG compressed data this designation is not "
+	    "needed and is omitted. See also <StripOffsets> and "
+	    "<StripByteCounts>."),
+	 { ESL_MMMN, ESL_MMMN, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_STRIP_BYTE_COUNTS, "StripByteCounts", N_("Strip Byte Count"),
+	 N_("The total number of bytes in each strip. With JPEG compressed "
+	    "data this designation is not needed and is omitted."),
+	 { ESL_MMMN, ESL_MMMN, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_X_RESOLUTION, "XResolution", N_("X-Resolution"),
+	 N_("The number of pixels per <ResolutionUnit> in the <ImageWidth> "
+	    "direction. When the image resolution is unknown, 72 [dpi] "
+	    "is designated."),
+	 { ESL_MMMM, ESL_MMMM, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_Y_RESOLUTION, "YResolution", N_("Y-Resolution"),
+	 N_("The number of pixels per <ResolutionUnit> in the <ImageLength> "
+	    "direction. The same value as <XResolution> is designated."),
+	 { ESL_MMMM, ESL_MMMM, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_PLANAR_CONFIGURATION, "PlanarConfiguration",
+	 N_("Planar Configuration"),
+	 N_("Indicates whether pixel components are recorded in a chunky "
+	    "or planar format. In JPEG compressed files a JPEG marker "
+	    "is used instead of this tag. If this field does not exist, "
+	    "the TIFF default of 1 (chunky) is assumed."),
+	 { ESL_OMON, ESL_OMON, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_RESOLUTION_UNIT, "ResolutionUnit", N_("Resolution Unit"),
+	 N_("The unit for measuring <XResolution> and <YResolution>. The same "
+	    "unit is used for both <XResolution> and <YResolution>. If "
+	    "the image resolution is unknown, 2 (inches) is designated."),
+	 { ESL_MMMM, ESL_MMMM, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_TRANSFER_FUNCTION, "TransferFunction",
+	 N_("Transfer Function"),
+	 N_("A transfer function for the image, described in tabular style. "
+	    "Normally this tag is not necessary, since color space is "
+	    "specified in the color space information tag (<ColorSpace>)."),
+	 { ESL_OOOO, ESL_OOOO, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_SOFTWARE, "Software", N_("Software"),
+	 N_("This tag records the name and version of the software or "
+	    "firmware of the camera or image input device used to "
+	    "generate the image. The detailed format is not specified, but "
+	    "it is recommended that the example shown below be "
+	    "followed. When the field is left blank, it is treated as "
+	    "unknown."),
+	 { ESL_OOOO, ESL_OOOO, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_DATE_TIME, "DateTime", N_("Date and Time"),
+	 N_("The date and time of image creation. In this standard "
+	    "(EXIF-2.1) it is the date and time the file was changed."),
+	 { ESL_OOOO, ESL_OOOO, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_ARTIST, "Artist", N_("Artist"),
+	 N_("This tag records the name of the camera owner, photographer or "
+	    "image creator. The detailed format is not specified, but it is "
+	    "recommended that the information be written as in the example "
+	    "below for ease of Interoperability. When the field is "
+	    "left blank, it is treated as unknown."),
+	 { ESL_OOOO, ESL_OOOO, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_WHITE_POINT, "WhitePoint", N_("White Point"),
+	 N_("The chromaticity of the white point of the image. Normally "
+	    "this tag is not necessary, since color space is specified "
+	    "in the color space information tag (<ColorSpace>)."),
+	 { ESL_OOOO, ESL_OOOO, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_PRIMARY_CHROMATICITIES, "PrimaryChromaticities",
+	 N_("Primary Chromaticities"),
+	 N_("The chromaticity of the three primary colors of the image. "
+	    "Normally this tag is not necessary, since color space is "
+	    "specified in the color space information tag (<ColorSpace>)."),
+	 { ESL_OOOO, ESL_OOOO, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	/* Not in EXIF 2.2 */
+	{EXIF_TAG_SUB_IFDS, "SubIFDs", "SubIFD Offsets", N_("Defined by Adobe Corporation "
+	    "to enable TIFF Trees within a TIFF file.")},
+	/* Not in EXIF 2.2 */
+	{EXIF_TAG_TRANSFER_RANGE, "TransferRange", N_("Transfer Range"), ""},
+	/* Not in EXIF 2.2 */
+	{EXIF_TAG_JPEG_PROC, "JPEGProc", "JPEGProc", ""},
+	{EXIF_TAG_JPEG_INTERCHANGE_FORMAT, "JPEGInterchangeFormat",
+	 N_("JPEG Interchange Format"),
+	 N_("The offset to the start byte (SOI) of JPEG compressed "
+	    "thumbnail data. This is not used for primary image "
+	    "JPEG data."),
+	 { ESL_NNNN, ESL_NNNM, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_JPEG_INTERCHANGE_FORMAT_LENGTH,
+	 "JPEGInterchangeFormatLength", N_("JPEG Interchange Format Length"),
+	 N_("The number of bytes of JPEG compressed thumbnail data. This "
+	    "is not used for primary image JPEG data. JPEG thumbnails "
+	    "are not divided but are recorded as a continuous JPEG "
+	    "bitstream from SOI to EOI. Appn and COM markers should "
+	    "not be recorded. Compressed thumbnails must be recorded in no "
+	    "more than 64 Kbytes, including all other data to be "
+	    "recorded in APP1."),
+	 { ESL_NNNN, ESL_NNNM, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_YCBCR_COEFFICIENTS, "YCbCrCoefficients",
+	 N_("YCbCr Coefficients"),
+	 N_("The matrix coefficients for transformation from RGB to YCbCr "
+	    "image data. No default is given in TIFF; but here the "
+	    "value given in \"Color Space Guidelines\", is used "
+	    "as the default. The color space is declared in a "
+	    "color space information tag, with the default being the value "
+	    "that gives the optimal image characteristics "
+	    "Interoperability this condition."),
+	 { ESL_NNOO, ESL_NNOO, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_YCBCR_SUB_SAMPLING, "YCbCrSubSampling",
+	 N_("YCbCr Sub-Sampling"),
+	 N_("The sampling ratio of chrominance components in relation to the "
+	    "luminance component. In JPEG compressed data a JPEG marker "
+	    "is used instead of this tag."),
+	 { ESL_NNMN, ESL_NNMN, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_YCBCR_POSITIONING, "YCbCrPositioning",
+	 N_("YCbCr Positioning"),
+	 N_("The position of chrominance components in relation to the "
+	    "luminance component. This field is designated only for "
+	    "JPEG compressed data or uncompressed YCbCr data. The TIFF "
+	    "default is 1 (centered); but when Y:Cb:Cr = 4:2:2 it is "
+	    "recommended in this standard that 2 (co-sited) be used to "
+	    "record data, in order to improve the image quality when viewed "
+	    "on TV systems. When this field does not exist, the reader shall "
+	    "assume the TIFF default. In the case of Y:Cb:Cr = 4:2:0, the "
+	    "TIFF default (centered) is recommended. If the reader "
+	    "does not have the capability of supporting both kinds of "
+	    "<YCbCrPositioning>, it shall follow the TIFF default regardless "
+	    "of the value in this field. It is preferable that readers "
+	    "be able to support both centered and co-sited positioning."),
+	 { ESL_NNMM, ESL_NNOO, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_REFERENCE_BLACK_WHITE, "ReferenceBlackWhite",
+	 N_("Reference Black/White"),
+	 N_("The reference black point value and reference white point "
+	    "value. No defaults are given in TIFF, but the values "
+	    "below are given as defaults here. The color space is declared "
+	    "in a color space information tag, with the default "
+	    "being the value that gives the optimal image characteristics "
+	    "Interoperability these conditions."),
+	 { ESL_OOOO, ESL_OOOO, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	/* Not in EXIF 2.2 */
+	{EXIF_TAG_XML_PACKET, "XMLPacket", N_("XML Packet"), N_("XMP Metadata")},
+	/* Not in EXIF 2.2 */
+	{EXIF_TAG_RELATED_IMAGE_FILE_FORMAT, "RelatedImageFileFormat",
+	 "RelatedImageFileFormat", ""},
+	/* Not in EXIF 2.2 */
+	{EXIF_TAG_RELATED_IMAGE_WIDTH, "RelatedImageWidth",
+	 "RelatedImageWidth", ""},
+	/* Not in EXIF 2.2 */
+	{EXIF_TAG_RELATED_IMAGE_LENGTH, "RelatedImageLength",
+	 "RelatedImageLength", ""},
+	/* Not in EXIF 2.2 */
+	{EXIF_TAG_CFA_REPEAT_PATTERN_DIM, "CFARepeatPatternDim",
+	 "CFARepeatPatternDim", ""},
+	/* Not in EXIF 2.2 */
+	{EXIF_TAG_CFA_PATTERN, "CFAPattern",
+	 N_("CFA Pattern"),
+	 N_("Indicates the color filter array (CFA) geometric pattern of the "
+	    "image sensor when a one-chip color area sensor is used. "
+	    "It does not apply to all sensing methods.")},
+	/* Not in EXIF 2.2 */
+	{EXIF_TAG_BATTERY_LEVEL, "BatteryLevel", N_("Battery Level"), ""},
+	{EXIF_TAG_COPYRIGHT, "Copyright", N_("Copyright"),
+	 N_("Copyright information. In this standard the tag is used to "
+	    "indicate both the photographer and editor copyrights. It is "
+	    "the copyright notice of the person or organization claiming "
+	    "rights to the image. The Interoperability copyright "
+	    "statement including date and rights should be written in this "
+	    "field; e.g., \"Copyright, John Smith, 19xx. All rights "
+	    "reserved.\". In this standard the field records both the "
+	    "photographer and editor copyrights, with each recorded in a "
+	    "separate part of the statement. When there is a clear "
+	    "distinction between the photographer and editor copyrights, "
+	    "these are to be written in the order of photographer followed "
+	    "by editor copyright, separated by NULL (in this case, "
+	    "since the statement also ends with a NULL, there are two NULL "
+	    "codes) (see example 1). When only the photographer is given, "
+	    "it is terminated by one NULL code (see example 2). When only "
+	    "the editor copyright is given, "
+	    "the photographer copyright part consists of one space followed "
+	    "by a terminating NULL code, then the editor copyright is given "
+	    "(see example 3). When the field is left blank, it is treated "
+	    "as unknown."),
+	 { ESL_OOOO, ESL_OOOO, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_EXPOSURE_TIME, "ExposureTime", N_("Exposure Time"),
+	 N_("Exposure time, given in seconds (sec)."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_FNUMBER, "FNumber", N_("F-Number"),
+	 N_("The F number."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	/* Not in EXIF 2.2 */
+	{EXIF_TAG_IPTC_NAA, "IPTC/NAA", "IPTC/NAA", ""},
+	/* Not in EXIF 2.2 */
+	{EXIF_TAG_IMAGE_RESOURCES, "ImageResources", N_("Image Resources Block"), ""},
+	{EXIF_TAG_EXIF_IFD_POINTER, "ExifIfdPointer", "ExifIFDPointer",
+	 N_("A pointer to the Exif IFD. Interoperability, Exif IFD has the "
+	    "same structure as that of the IFD specified in TIFF. "
+	    "ordinarily, however, it does not contain image data as in "
+	    "the case of TIFF."),
+	 { ESL_NNNN, ESL_NNNN, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	/* Not in EXIF 2.2 */
+	{EXIF_TAG_INTER_COLOR_PROFILE, "InterColorProfile",
+	 "InterColorProfile", ""},
+	{EXIF_TAG_EXPOSURE_PROGRAM, "ExposureProgram", N_("Exposure Program"),
+	 N_("The class of the program used by the camera to set exposure "
+	    "when the picture is taken."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_SPECTRAL_SENSITIVITY, "SpectralSensitivity",
+	 N_("Spectral Sensitivity"),
+	 N_("Indicates the spectral sensitivity of each channel of the "
+	    "camera used. The tag value is an ASCII string compatible "
+	    "with the standard developed by the ASTM Technical Committee."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_GPS_INFO_IFD_POINTER, "GPSInfoIFDPointer", 
+	 N_("GPS Info IFD Pointer"),
+	 N_("A pointer to the GPS Info IFD. The "
+	    "Interoperability structure of the GPS Info IFD, like that of "
+	    "Exif IFD, has no image data."),
+	 { ESL_NNNN, ESL_NNNN, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+
+	{EXIF_TAG_ISO_SPEED_RATINGS, "ISOSpeedRatings",
+	 N_("ISO Speed Ratings"),
+	 N_("Indicates the ISO Speed and ISO Latitude of the camera or "
+	    "input device as specified in ISO 12232."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_OECF, "OECF", N_("Opto-Electronic Conversion Function"),
+	 N_("Indicates the Opto-Electronic Conversion Function (OECF) "
+	    "specified in ISO 14524. <OECF> is the relationship between "
+	    "the camera optical input and the image values."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	/* Not in EXIF 2.2 */
+	{EXIF_TAG_TIME_ZONE_OFFSET, "TimeZoneOffset", N_("Time Zone Offset"),
+	 N_("Encodes time zone of camera clock relative to GMT.")},
+	{EXIF_TAG_EXIF_VERSION, "ExifVersion", N_("Exif Version"),
+	 N_("The version of this standard supported. Nonexistence of this "
+	    "field is taken to mean nonconformance to the standard."),
+	 { ESL_NNNN, ESL_NNNN, ESL_MMMM, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_DATE_TIME_ORIGINAL, "DateTimeOriginal",
+	 N_("Date and Time (Original)"),
+	 N_("The date and time when the original image data was generated. "
+	    "For a digital still camera "
+	    "the date and time the picture was taken are recorded."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_DATE_TIME_DIGITIZED, "DateTimeDigitized",
+	 N_("Date and Time (Digitized)"),
+	 N_("The date and time when the image was stored as digital data."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_COMPONENTS_CONFIGURATION, "ComponentsConfiguration",
+	 N_("Components Configuration"),
+	 N_("Information specific to compressed data. The channels of "
+	    "each component are arranged in order from the 1st "
+	    "component to the 4th. For uncompressed data the data "
+	    "arrangement is given in the <PhotometricInterpretation> tag. "
+	    "However, since <PhotometricInterpretation> can only "
+	    "express the order of Y, Cb and Cr, this tag is provided "
+	    "for cases when compressed data uses components other than "
+	    "Y, Cb, and Cr and to enable support of other sequences."),
+	 { ESL_NNNN, ESL_NNNN, ESL_NNNM, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_COMPRESSED_BITS_PER_PIXEL, "CompressedBitsPerPixel",
+	 N_("Compressed Bits per Pixel"),
+	 N_("Information specific to compressed data. The compression mode "
+	    "used for a compressed image is indicated in unit bits "
+	    "per pixel."),
+	 { ESL_NNNN, ESL_NNNN, ESL_NNNO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_SHUTTER_SPEED_VALUE, "ShutterSpeedValue", N_("Shutter Speed"),
+	 N_("Shutter speed. The unit is the APEX (Additive System of "
+	    "Photographic Exposure) setting."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_APERTURE_VALUE, "ApertureValue", N_("Aperture"),
+	 N_("The lens aperture. The unit is the APEX value."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_BRIGHTNESS_VALUE, "BrightnessValue", N_("Brightness"),
+	 N_("The value of brightness. The unit is the APEX value. "
+	    "Ordinarily it is given in the range of -99.99 to 99.99."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_EXPOSURE_BIAS_VALUE, "ExposureBiasValue",
+	 N_("Exposure Bias"),
+	 N_("The exposure bias. The units is the APEX value. Ordinarily "
+	    "it is given in the range of -99.99 to 99.99."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_MAX_APERTURE_VALUE, "MaxApertureValue", N_("Maximum Aperture Value"),
+	 N_("The smallest F number of the lens. The unit is the APEX value. "
+	    "Ordinarily it is given in the range of 00.00 to 99.99, "
+	    "but it is not limited to this range."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_SUBJECT_DISTANCE, "SubjectDistance",
+	 N_("Subject Distance"),
+	 N_("The distance to the subject, given in meters."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_METERING_MODE, "MeteringMode", N_("Metering Mode"),
+	 N_("The metering mode."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_LIGHT_SOURCE, "LightSource", N_("Light Source"),
+	 N_("The kind of light source."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_FLASH, "Flash", N_("Flash"),
+	 N_("This tag is recorded when an image is taken using a strobe "
+	    "light (flash)."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_FOCAL_LENGTH, "FocalLength", N_("Focal Length"),
+	 N_("The actual focal length of the lens, in mm. Conversion is not "
+	    "made to the focal length of a 35 mm film camera."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_SUBJECT_AREA, "SubjectArea", N_("Subject Area"),
+	 N_("This tag indicates the location and area of the main subject "
+	    "in the overall scene."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	/* Not in EXIF 2.2 */
+	{EXIF_TAG_TIFF_EP_STANDARD_ID, "TIFF/EPStandardID", N_("TIFF/EP Standard ID"), ""},
+	{EXIF_TAG_MAKER_NOTE, "MakerNote", N_("Maker Note"),
+	 N_("A tag for manufacturers of Exif writers to record any desired "
+	    "information. The contents are up to the manufacturer."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_USER_COMMENT, "UserComment", N_("User Comment"),
+	 N_("A tag for Exif users to write keywords or comments on the image "
+	    "besides those in <ImageDescription>, and without the "
+	    "character code limitations of the <ImageDescription> tag. The "
+	    "character code used in the <UserComment> tag is identified "
+	    "based on an ID code in a fixed 8-byte area at the start of "
+	    "the tag data area. The unused portion of the area is padded "
+	    "with NULL (\"00.h\"). ID codes are assigned by means of "
+	    "registration. The designation method and references for each "
+	    "character code are defined in the specification. The value of "
+	    "CountN is determined based on the 8 bytes in the character code "
+	    "area and the number of bytes in the user comment part. Since "
+	    "the TYPE is not ASCII, NULL termination is not necessary. "
+	    "The ID code for the <UserComment> area may be a Defined code "
+	    "such as JIS or ASCII, or may be Undefined. The Undefined name "
+	    "is UndefinedText, and the ID code is filled with 8 bytes of all "
+	    "\"NULL\" (\"00.H\"). An Exif reader that reads the "
+	    "<UserComment> tag must have a function for determining the "
+	    "ID code. This function is not required in Exif readers that "
+	    "do not use the <UserComment> tag. "
+	    "When a <UserComment> area is set aside, it is recommended that "
+	    "the ID code be ASCII and that the following user comment "
+	    "part be filled with blank characters [20.H]."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_SUB_SEC_TIME, "SubsecTime", N_("Sub-second Time"),
+	 N_("A tag used to record fractions of seconds for the "
+	    "<DateTime> tag."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_SUB_SEC_TIME_ORIGINAL, "SubSecTimeOriginal",
+	 N_("Sub-second Time (Original)"),
+	 N_("A tag used to record fractions of seconds for the "
+	    "<DateTimeOriginal> tag."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_SUB_SEC_TIME_DIGITIZED, "SubSecTimeDigitized",
+	 N_("Sub-second Time (Digitized)"),
+	 N_("A tag used to record fractions of seconds for the "
+	    "<DateTimeDigitized> tag."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	/* Not in EXIF 2.2 (Microsoft extension) */
+	{EXIF_TAG_XP_TITLE, "XPTitle", N_("XP Title"),
+	 N_("A character string giving the title of the image, encoded in "
+	    "UTF-16LE."),
+	 { ESL_OOOO, ESL_NNNN, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	/* Not in EXIF 2.2 (Microsoft extension) */
+	{EXIF_TAG_XP_COMMENT, "XPComment", N_("XP Comment"), 
+	 N_("A character string containing a comment about the image, encoded "
+	    "in UTF-16LE."),
+	 { ESL_OOOO, ESL_NNNN, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	/* Not in EXIF 2.2 (Microsoft extension) */
+	{EXIF_TAG_XP_AUTHOR, "XPAuthor", N_("XP Author"), 
+	 N_("A character string containing the name of the image creator, "
+	    "encoded in UTF-16LE."),
+	 { ESL_OOOO, ESL_NNNN, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	/* Not in EXIF 2.2 (Microsoft extension) */
+	{EXIF_TAG_XP_KEYWORDS, "XPKeywords", N_("XP Keywords"), 
+	 N_("A character string containing key words describing the image, "
+	    "encoded in UTF-16LE."),
+	 { ESL_OOOO, ESL_NNNN, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	/* Not in EXIF 2.2 (Microsoft extension) */
+	{EXIF_TAG_XP_SUBJECT, "XPSubject", N_("XP Subject"), 
+	 N_("A character string giving the image subject, encoded in "
+	    "UTF-16LE."),
+	 { ESL_OOOO, ESL_NNNN, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_FLASH_PIX_VERSION, "FlashPixVersion", "FlashPixVersion",
+	 N_("The FlashPix format version supported by a FPXR file."),
+	 { ESL_NNNN, ESL_NNNN, ESL_MMMM, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_COLOR_SPACE, "ColorSpace", N_("Color Space"),
+	 N_("The color space information tag is always "
+	    "recorded as the color space specifier. Normally sRGB (=1) "
+	    "is used to define the color space based on the PC monitor "
+	    "conditions and environment. If a color space other than "
+	    "sRGB is used, Uncalibrated (=FFFF.H) is set. Image data "
+	    "recorded as Uncalibrated can be treated as sRGB when it is "
+	    "converted to FlashPix."),
+	 { ESL_NNNN, ESL_NNNN, ESL_MMMM, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_PIXEL_X_DIMENSION, "PixelXDimension", N_("Pixel X Dimension"),
+	 N_("Information specific to compressed data. When a "
+	    "compressed file is recorded, the valid width of the "
+	    "meaningful image must be recorded in this tag, whether or "
+	    "not there is padding data or a restart marker. This tag "
+	    "should not exist in an uncompressed file."),
+	 { ESL_NNNN, ESL_NNNN, ESL_NNNM, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_PIXEL_Y_DIMENSION, "PixelYDimension", N_("Pixel Y Dimension"),
+	 N_("Information specific to compressed data. When a compressed "
+	    "file is recorded, the valid height of the meaningful image "
+	    "must be recorded in this tag, whether or not there is padding "
+	    "data or a restart marker. This tag should not exist in an "
+	    "uncompressed file. "
+	    "Since data padding is unnecessary in the vertical direction, "
+	    "the number of lines recorded in this valid image height tag "
+	    "will in fact be the same as that recorded in the SOF."),
+	 { ESL_NNNN, ESL_NNNN, ESL_NNNM, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_RELATED_SOUND_FILE, "RelatedSoundFile",
+	 N_("Related Sound File"),
+	 N_("This tag is used to record the name of an audio file related "
+	    "to the image data. The only relational information "
+	    "recorded here is the Exif audio file name and extension (an "
+	    "ASCII string consisting of 8 characters + '.' + 3 "
+	    "characters). The path is not recorded. Stipulations on audio "
+	    "and file naming conventions are defined in the specification. "
+	    "When using this tag, audio files must be recorded in "
+	    "conformance to the Exif audio format. Writers are also allowed "
+	    "to store the data such as Audio within APP2 as FlashPix "
+	    "extension stream data. "
+	    "The mapping of Exif image files and audio files is done "
+	    "in any of three ways, [1], [2] and [3]. If multiple files "
+	    "are mapped to one file as in [2] or [3], the above "
+	    "format is used to record just one audio file name. If "
+	    "there are multiple audio files, the first recorded file is "
+	    "given. In the case of [3], for example, for the "
+	    "Exif image file \"DSC00001.JPG\" only  \"SND00001.WAV\" is "
+	    "given as the related Exif audio file. When there are three "
+	    "Exif audio files \"SND00001.WAV\", \"SND00002.WAV\" and "
+	    "\"SND00003.WAV\", the Exif image file name for each of them, "
+	    "\"DSC00001.JPG\", is indicated. By combining multiple "
+	    "relational information, a variety of playback possibilities "
+	    "can be supported. The method of using relational information "
+	    "is left to the implementation on the playback side. Since this "
+	    "information is an ASCII character string, it is terminated by "
+	    "NULL. When this tag is used to map audio files, the relation "
+	    "of the audio file to image data must also be indicated on the "
+	    "audio file end."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_INTEROPERABILITY_IFD_POINTER, "InteroperabilityIFDPointer",
+	 N_("Interoperability IFD Pointer"),
+	 N_("Interoperability IFD is composed of tags which stores the "
+	    "information to ensure the Interoperability and pointed "
+	    "by the following tag located in Exif IFD. "
+	    "The Interoperability structure of Interoperability IFD is "
+	    "the same as TIFF defined IFD structure "
+	    "but does not contain the "
+	    "image data characteristically compared with normal TIFF "
+	    "IFD."),
+	 { ESL_NNNN, ESL_NNNN, ESL_NNNN, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_FLASH_ENERGY, "FlashEnergy", N_("Flash Energy"),
+	 N_("Indicates the strobe energy at the time the image is "
+	    "captured, as measured in Beam Candle Power Seconds (BCPS)."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_SPATIAL_FREQUENCY_RESPONSE, "SpatialFrequencyResponse",
+	 N_("Spatial Frequency Response"),
+	 N_("This tag records the camera or input device spatial frequency "
+	    "table and SFR values in the direction of image width, "
+	    "image height, and diagonal direction, as specified in ISO "
+	    "12233."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_FOCAL_PLANE_X_RESOLUTION, "FocalPlaneXResolution",
+	 N_("Focal Plane X-Resolution"),
+	 N_("Indicates the number of pixels in the image width (X) direction "
+	    "per <FocalPlaneResolutionUnit> on the camera focal plane."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_FOCAL_PLANE_Y_RESOLUTION, "FocalPlaneYResolution",
+	 N_("Focal Plane Y-Resolution"),
+	 N_("Indicates the number of pixels in the image height (V) direction "
+	    "per <FocalPlaneResolutionUnit> on the camera focal plane."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_FOCAL_PLANE_RESOLUTION_UNIT, "FocalPlaneResolutionUnit",
+	 N_("Focal Plane Resolution Unit"),
+	 N_("Indicates the unit for measuring <FocalPlaneXResolution> and "
+	    "<FocalPlaneYResolution>. This value is the same as the "
+	    "<ResolutionUnit>."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_SUBJECT_LOCATION, "SubjectLocation",
+	 N_("Subject Location"),
+	 N_("Indicates the location of the main subject in the scene. The "
+	    "value of this tag represents the pixel at the center of the "
+	    "main subject relative to the left edge, prior to rotation "
+	    "processing as per the <Rotation> tag. The first value "
+	    "indicates the X column number and the second indicates "
+	    "the Y row number."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_EXPOSURE_INDEX, "ExposureIndex", N_("Exposure Index"),
+	 N_("Indicates the exposure index selected on the camera or "
+	    "input device at the time the image is captured."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_SENSING_METHOD, "SensingMethod", N_("Sensing Method"),
+	 N_("Indicates the image sensor type on the camera or input "
+	    "device."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_FILE_SOURCE, "FileSource", N_("File Source"),
+	 N_("Indicates the image source. If a DSC recorded the image, "
+	    "the tag value of this tag always be set to 3, indicating "
+	    "that the image was recorded on a DSC."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_SCENE_TYPE, "SceneType", N_("Scene Type"),
+	 N_("Indicates the type of scene. If a DSC recorded the image, "
+	    "this tag value must always be set to 1, indicating that the "
+	    "image was directly photographed."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_NEW_CFA_PATTERN, "CFAPattern",
+	 N_("CFA Pattern"),
+	 N_("Indicates the color filter array (CFA) geometric pattern of the "
+	    "image sensor when a one-chip color area sensor is used. "
+	    "It does not apply to all sensing methods."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_CUSTOM_RENDERED, "CustomRendered", N_("Custom Rendered"),
+	 N_("This tag indicates the use of special processing on image "
+	    "data, such as rendering geared to output. When special "
+	    "processing is performed, the reader is expected to disable "
+	    "or minimize any further processing."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_EXPOSURE_MODE, "ExposureMode", N_("Exposure Mode"),
+	 N_("This tag indicates the exposure mode set when the image was "
+	    "shot. In auto-bracketing mode, the camera shoots a series of "
+	    "frames of the same scene at different exposure settings."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_WHITE_BALANCE, "WhiteBalance", N_("White Balance"),
+	 N_("This tag indicates the white balance mode set when the image "
+	    "was shot."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_DIGITAL_ZOOM_RATIO, "DigitalZoomRatio",
+	 N_("Digital Zoom Ratio"),
+	 N_("This tag indicates the digital zoom ratio when the image was "
+	    "shot. If the numerator of the recorded value is 0, this "
+	    "indicates that digital zoom was not used."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_FOCAL_LENGTH_IN_35MM_FILM, "FocalLengthIn35mmFilm",
+	 N_("Focal Length in 35mm Film"),
+	 N_("This tag indicates the equivalent focal length assuming a "
+	    "35mm film camera, in mm. A value of 0 means the focal "
+	    "length is unknown. Note that this tag differs from the "
+	    "FocalLength tag."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_SCENE_CAPTURE_TYPE, "SceneCaptureType",
+	 N_("Scene Capture Type"),
+	 N_("This tag indicates the type of scene that was shot. It can "
+	    "also be used to record the mode in which the image was "
+	    "shot. Note that this differs from the scene type "
+	    "<SceneType> tag."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_GAIN_CONTROL, "GainControl", N_("Gain Control"),
+	 N_("This tag indicates the degree of overall image gain "
+	    "adjustment."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_CONTRAST, "Contrast", N_("Contrast"),
+	 N_("This tag indicates the direction of contrast processing "
+	    "applied by the camera when the image was shot."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_SATURATION, "Saturation", N_("Saturation"),
+	 N_("This tag indicates the direction of saturation processing "
+	    "applied by the camera when the image was shot."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_SHARPNESS, "Sharpness", N_("Sharpness"),
+	 N_("This tag indicates the direction of sharpness processing "
+	    "applied by the camera when the image was shot."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_DEVICE_SETTING_DESCRIPTION, "DeviceSettingDescription",
+	 N_("Device Setting Description"),
+	 N_("This tag indicates information on the picture-taking "
+	    "conditions of a particular camera model. The tag is used "
+	    "only to indicate the picture-taking conditions in the "
+	    "reader."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_SUBJECT_DISTANCE_RANGE, "SubjectDistanceRange",
+	 N_("Subject Distance Range"),
+	 N_("This tag indicates the distance to the subject."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	{EXIF_TAG_IMAGE_UNIQUE_ID, "ImageUniqueID", N_("Image Unique ID"),
+	 N_("This tag indicates an identifier assigned uniquely to "
+	    "each image. It is recorded as an ASCII string equivalent "
+	    "to hexadecimal notation and 128-bit fixed length."),
+	 { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+	/* Not in EXIF 2.2 */
+	{EXIF_TAG_GAMMA, "Gamma", N_("Gamma"),
+	 N_("Indicates the value of coefficient gamma.")},
+	/* Not in EXIF 2.2 */
+	{EXIF_TAG_PRINT_IMAGE_MATCHING, "PrintImageMatching", N_("PRINT Image Matching"),
+	 N_("Related to Epson's PRINT Image Matching technology")},
+	/* Not in EXIF 2.2 (from the Microsoft HD Photo specification) */
+	{EXIF_TAG_PADDING, "Padding", N_("Padding"),
+	 N_("This tag reserves space that can be reclaimed later when "
+            "additional metadata are added. New metadata can be written "
+            "in place by replacing this tag with a smaller data element "
+            "and using the reclaimed space to store the new or expanded "
+            "metadata tags."),
+	 { ESL_OOOO, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } },
+#endif
+	{0, NULL, NULL, NULL}
+};
+
+/* For now, do not use these functions. */
+
+/*!
+ * Return the number of entries in the EXIF tag table, including the
+ * terminating NULL entry.
+ */
+inline unsigned int
+exif_tag_table_count (void)
+{
+	return sizeof (ExifTagTable) / sizeof (ExifTagTable[0]);
+}
+
+
+ExifTag
+exif_tag_table_get_tag (unsigned int n)
+{
+	return (n < exif_tag_table_count ()) ? ExifTagTable[n].tag : 0;
+}
+
+const char *
+exif_tag_table_get_name (unsigned int n)
+{
+	return (n < exif_tag_table_count ()) ? ExifTagTable[n].name : NULL;
+}
+
+/*!
+ * Compares the tag with that in entry.
+ * \param[in] tag pointer to integer tag value
+ * \param[in] entry pointer to a struct TagEntry
+ * \return 0 if tags are equal, <0 if tag < entry, >0 if tag > entry
+ */
+static int
+match_tag(const void *tag, const void *entry)
+{
+	return *(int*)tag - ((struct TagEntry *)entry)->tag;
+}
+
+
+/*!
+ * Finds the first entry in the EXIF tag table with the given tag number
+ * using a binary search.
+ * \param[in] tag to find
+ * \return index into table, or -1 if not found
+ */
+static int
+exif_tag_table_first(ExifTag tag)
+{
+	int i;
+	struct TagEntry *entry = bsearch(&tag, ExifTagTable,
+		exif_tag_table_count()-1, sizeof(struct TagEntry), match_tag);
+	if (!entry)
+		return -1;	/* Not found */
+
+	/* Calculate index of found entry */
+	i = entry - ExifTagTable;
+
+	/* There may be other entries with the same tag number, so search
+	 * backwards to find the first
+	 */
+	while ((i > 0) && (ExifTagTable[i-1].tag == tag)) {
+		--i;
+	}
+	return i;
+}
+
+#define RECORDED \
+((ExifTagTable[i].esl[ifd][EXIF_DATA_TYPE_UNCOMPRESSED_CHUNKY] != EXIF_SUPPORT_LEVEL_NOT_RECORDED) || \
+ (ExifTagTable[i].esl[ifd][EXIF_DATA_TYPE_UNCOMPRESSED_PLANAR] != EXIF_SUPPORT_LEVEL_NOT_RECORDED) || \
+ (ExifTagTable[i].esl[ifd][EXIF_DATA_TYPE_UNCOMPRESSED_YCC] != EXIF_SUPPORT_LEVEL_NOT_RECORDED) || \
+ (ExifTagTable[i].esl[ifd][EXIF_DATA_TYPE_COMPRESSED] != EXIF_SUPPORT_LEVEL_NOT_RECORDED))
+
+const char *
+exif_tag_get_name_in_ifd (ExifTag tag, ExifIfd ifd)
+{
+	unsigned int i;
+	int first;
+
+	if (ifd >= EXIF_IFD_COUNT)
+		return NULL;
+	first = exif_tag_table_first(tag);
+	if (first < 0)
+		return NULL;
+
+	for (i = first; ExifTagTable[i].name; i++) {
+		if (ExifTagTable[i].tag == tag) {
+		   if (RECORDED)
+			   break;
+		} else
+			return NULL; /* Recorded tag not found in the table */
+	}
+	return ExifTagTable[i].name;
+}
+
+const char *
+exif_tag_get_title_in_ifd (ExifTag tag, ExifIfd ifd)
+{
+	unsigned int i;
+	int first;
+
+	if (ifd >= EXIF_IFD_COUNT)
+		return NULL;
+	first = exif_tag_table_first(tag);
+	if (first < 0)
+		return NULL;
+
+	for (i = first; ExifTagTable[i].name; i++) {
+		if (ExifTagTable[i].tag == tag) {
+		   if (RECORDED)
+			   break;
+		} else
+			return NULL; /* Recorded tag not found in the table */
+	}
+	/* FIXME: This belongs to somewhere else. */
+	/* libexif should use the default system locale.
+	 * If an application specifically requires UTF-8, then we
+	 * must give the application a way to tell libexif that.
+	 * 
+	 * bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+	 */
+	bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
+	return _(ExifTagTable[i].title);
+}
+
+const char *
+exif_tag_get_description_in_ifd (ExifTag tag, ExifIfd ifd)
+{
+	unsigned int i;
+	int first;
+
+	if (ifd >= EXIF_IFD_COUNT)
+		return NULL;
+	first = exif_tag_table_first(tag);
+	if (first < 0)
+		return NULL;
+
+	for (i = first; ExifTagTable[i].name; i++) {
+		if (ExifTagTable[i].tag == tag) {
+			if (RECORDED)
+				break;
+		} else
+			return NULL; /* Recorded tag not found in the table */
+	}
+
+	/* GNU gettext acts strangely when given an empty string */
+	if (!ExifTagTable[i].description || !*ExifTagTable[i].description)
+		return "";
+
+	/* libexif should use the default system locale.
+	 * If an application specifically requires UTF-8, then we
+	 * must give the application a way to tell libexif that.
+	 * 
+	 * bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+	 */
+	bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
+	return _(ExifTagTable[i].description);
+}
+
+
+/**********************************************************************
+ * convenience functions
+ **********************************************************************/
+
+/* generic part: iterate through IFD list and return first result */
+typedef const char * (*get_stuff_func) (ExifTag tag, ExifIfd ifd);
+
+static const char *
+exif_tag_get_stuff (ExifTag tag, get_stuff_func func)
+{
+	/* Search IFDs in this order, in decreasing order of number of valid tags */
+	static const ExifIfd ifds[EXIF_IFD_COUNT] = {
+		EXIF_IFD_EXIF,
+		EXIF_IFD_0,
+		EXIF_IFD_1,
+		EXIF_IFD_INTEROPERABILITY,
+		EXIF_IFD_GPS
+	};
+	int i;
+	for (i=0; i<EXIF_IFD_COUNT; i++) {
+		const char *result = func(tag, ifds[i]);
+		if (result != NULL) {
+			return result;
+		}
+	}
+	return (const char *) NULL;
+}
+
+/* explicit functions */
+const char *
+exif_tag_get_name (ExifTag tag)
+{
+	return exif_tag_get_stuff(tag, exif_tag_get_name_in_ifd);
+}
+
+const char *
+exif_tag_get_title (ExifTag tag)
+{
+	return exif_tag_get_stuff(tag, exif_tag_get_title_in_ifd);
+}
+
+const char *
+exif_tag_get_description (ExifTag tag)
+{
+	return exif_tag_get_stuff(tag, exif_tag_get_description_in_ifd);
+}
+
+
+
+ExifTag 
+exif_tag_from_name (const char *name)
+{
+	unsigned int i;
+	unsigned int result=0;
+
+	if (!name) return 0;
+
+	for (i = 0; ExifTagTable[i].name; i++)
+		if (!strcmp (ExifTagTable[i].name, name))  {
+		  	result = ExifTagTable[i].tag;
+		  	break;
+		}
+	return result;
+}
+
+/*! Return the support level of a tag in the given IFD with the given data
+ * type. If the tag is not specified in the EXIF standard, this function
+ * returns EXIF_SUPPORT_LEVEL_NOT_RECORDED.
+ *
+ * \param[in] tag EXIF tag
+ * \param[in] ifd a valid IFD (not EXIF_IFD_COUNT)
+ * \param[in] t a valid data type (not EXIF_DATA_TYPE_UNKNOWN)
+ * \return the level of support for this tag
+ */
+static inline ExifSupportLevel
+get_support_level_in_ifd (ExifTag tag, ExifIfd ifd, ExifDataType t)
+{
+	unsigned int i;
+	int first = exif_tag_table_first(tag);
+	if (first < 0)
+		return EXIF_SUPPORT_LEVEL_NOT_RECORDED;
+
+	for (i = first; ExifTagTable[i].name; i++) {
+		if (ExifTagTable[i].tag == tag) {
+			const ExifSupportLevel supp = ExifTagTable[i].esl[ifd][t];
+			if (supp != EXIF_SUPPORT_LEVEL_NOT_RECORDED)
+				return supp;
+			/* Try looking for another entry */
+		} else {
+			break; /* We've reached the end of the matching tags */
+		}
+	}
+	return EXIF_SUPPORT_LEVEL_NOT_RECORDED;
+}
+
+/*! Return the support level of a tag in the given IFD, regardless of the
+ * data type. If the support level varies depending on the data type, this
+ * function returns EXIF_SUPPORT_LEVEL_UNKNOWN. If the tag is not specified
+ * in the EXIF standard, this function returns EXIF_SUPPORT_LEVEL_UNKNOWN.
+ *
+ * \param[in] tag EXIF tag
+ * \param[in] ifd a valid IFD (not EXIF_IFD_COUNT)
+ * \return the level of support for this tag
+ */
+static inline ExifSupportLevel
+get_support_level_any_type (ExifTag tag, ExifIfd ifd)
+{
+	unsigned int i;
+	int first = exif_tag_table_first(tag);
+	if (first < 0)
+		return EXIF_SUPPORT_LEVEL_UNKNOWN;
+
+	for (i = first; ExifTagTable[i].name; i++) {
+		if (ExifTagTable[i].tag == tag) {
+			/*
+			 * Check whether the support level is the same for all possible
+			 * data types and isn't marked not recorded.
+			 */
+			const ExifSupportLevel supp = ExifTagTable[i].esl[ifd][0];
+			/* If level is not recorded, keep searching for another */
+			if (supp != EXIF_SUPPORT_LEVEL_NOT_RECORDED) {
+				unsigned int dt;
+				for (dt = 0; dt < EXIF_DATA_TYPE_COUNT; ++dt) {
+					if (ExifTagTable[i].esl[ifd][dt] != supp)
+						break;
+				}
+				if (dt == EXIF_DATA_TYPE_COUNT)
+					/* Support level is always the same, so return it */
+					return supp;
+			}
+			/* Keep searching the table for another tag for our IFD */
+		} else {
+			break; /* We've reached the end of the matching tags */
+		}
+	}
+	return EXIF_SUPPORT_LEVEL_UNKNOWN;
+}
+
+ExifSupportLevel
+exif_tag_get_support_level_in_ifd (ExifTag tag, ExifIfd ifd, ExifDataType t)
+{
+	if (ifd >= EXIF_IFD_COUNT)
+		return EXIF_SUPPORT_LEVEL_UNKNOWN;
+
+	if (t >= EXIF_DATA_TYPE_COUNT)
+		return get_support_level_any_type (tag, ifd);
+
+	return get_support_level_in_ifd (tag, ifd, t);
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-tag.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-tag.h
new file mode 100644
index 0000000000000000000000000000000000000000..d8b8657f3b8910d1a9bb7afb1d60769a5f0f0593
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-tag.h
@@ -0,0 +1,287 @@
+/*! \file exif-tag.h
+ *  \brief Handling EXIF tags
+ */
+/*
+ * Copyright (c) 2001 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#ifndef __EXIF_TAG_H__
+#define __EXIF_TAG_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#include <libexif/exif-ifd.h>
+#include <libexif/exif-data-type.h>
+
+/*! EXIF tags */
+typedef enum {
+	EXIF_TAG_INTEROPERABILITY_INDEX		= 0x0001,
+	EXIF_TAG_INTEROPERABILITY_VERSION	= 0x0002,
+	EXIF_TAG_NEW_SUBFILE_TYPE		= 0x00fe,
+	EXIF_TAG_IMAGE_WIDTH 			= 0x0100,
+	EXIF_TAG_IMAGE_LENGTH 			= 0x0101,
+	EXIF_TAG_BITS_PER_SAMPLE 		= 0x0102,
+	EXIF_TAG_COMPRESSION 			= 0x0103,
+	EXIF_TAG_PHOTOMETRIC_INTERPRETATION 	= 0x0106,
+	EXIF_TAG_FILL_ORDER 			= 0x010a,
+	EXIF_TAG_DOCUMENT_NAME 			= 0x010d,
+	EXIF_TAG_IMAGE_DESCRIPTION 		= 0x010e,
+	EXIF_TAG_MAKE 				= 0x010f,
+	EXIF_TAG_MODEL 				= 0x0110,
+	EXIF_TAG_STRIP_OFFSETS 			= 0x0111,
+	EXIF_TAG_ORIENTATION 			= 0x0112,
+	EXIF_TAG_SAMPLES_PER_PIXEL 		= 0x0115,
+	EXIF_TAG_ROWS_PER_STRIP 		= 0x0116,
+	EXIF_TAG_STRIP_BYTE_COUNTS		= 0x0117,
+	EXIF_TAG_X_RESOLUTION 			= 0x011a,
+	EXIF_TAG_Y_RESOLUTION 			= 0x011b,
+	EXIF_TAG_PLANAR_CONFIGURATION 		= 0x011c,
+	EXIF_TAG_RESOLUTION_UNIT 		= 0x0128,
+	EXIF_TAG_TRANSFER_FUNCTION 		= 0x012d,
+	EXIF_TAG_SOFTWARE 			= 0x0131,
+	EXIF_TAG_DATE_TIME			= 0x0132,
+	EXIF_TAG_ARTIST				= 0x013b,
+	EXIF_TAG_WHITE_POINT			= 0x013e,
+	EXIF_TAG_PRIMARY_CHROMATICITIES		= 0x013f,
+	EXIF_TAG_SUB_IFDS			= 0x014a,
+	EXIF_TAG_TRANSFER_RANGE			= 0x0156,
+	EXIF_TAG_JPEG_PROC			= 0x0200,
+	EXIF_TAG_JPEG_INTERCHANGE_FORMAT	= 0x0201,
+	EXIF_TAG_JPEG_INTERCHANGE_FORMAT_LENGTH	= 0x0202,
+	EXIF_TAG_YCBCR_COEFFICIENTS		= 0x0211,
+	EXIF_TAG_YCBCR_SUB_SAMPLING		= 0x0212,
+	EXIF_TAG_YCBCR_POSITIONING		= 0x0213,
+	EXIF_TAG_REFERENCE_BLACK_WHITE		= 0x0214,
+	EXIF_TAG_XML_PACKET			= 0x02bc,
+	EXIF_TAG_RELATED_IMAGE_FILE_FORMAT	= 0x1000,
+	EXIF_TAG_RELATED_IMAGE_WIDTH		= 0x1001,
+	EXIF_TAG_RELATED_IMAGE_LENGTH		= 0x1002,
+	EXIF_TAG_CFA_REPEAT_PATTERN_DIM		= 0x828d,
+	EXIF_TAG_CFA_PATTERN			= 0x828e,
+	EXIF_TAG_BATTERY_LEVEL			= 0x828f,
+	EXIF_TAG_COPYRIGHT			= 0x8298,
+	EXIF_TAG_EXPOSURE_TIME			= 0x829a,
+	EXIF_TAG_FNUMBER			= 0x829d,
+	EXIF_TAG_IPTC_NAA			= 0x83bb,
+	EXIF_TAG_IMAGE_RESOURCES		= 0x8649,
+	EXIF_TAG_EXIF_IFD_POINTER		= 0x8769,
+	EXIF_TAG_INTER_COLOR_PROFILE		= 0x8773,
+	EXIF_TAG_EXPOSURE_PROGRAM		= 0x8822,
+	EXIF_TAG_SPECTRAL_SENSITIVITY		= 0x8824,
+	EXIF_TAG_GPS_INFO_IFD_POINTER		= 0x8825,
+	EXIF_TAG_ISO_SPEED_RATINGS		= 0x8827,
+	EXIF_TAG_OECF				= 0x8828,
+	EXIF_TAG_TIME_ZONE_OFFSET		= 0x882a,
+	EXIF_TAG_EXIF_VERSION			= 0x9000,
+	EXIF_TAG_DATE_TIME_ORIGINAL		= 0x9003,
+	EXIF_TAG_DATE_TIME_DIGITIZED		= 0x9004,
+	EXIF_TAG_COMPONENTS_CONFIGURATION	= 0x9101,
+	EXIF_TAG_COMPRESSED_BITS_PER_PIXEL	= 0x9102,
+	EXIF_TAG_SHUTTER_SPEED_VALUE		= 0x9201,
+	EXIF_TAG_APERTURE_VALUE			= 0x9202,
+	EXIF_TAG_BRIGHTNESS_VALUE		= 0x9203,
+	EXIF_TAG_EXPOSURE_BIAS_VALUE		= 0x9204,
+	EXIF_TAG_MAX_APERTURE_VALUE		= 0x9205,
+	EXIF_TAG_SUBJECT_DISTANCE		= 0x9206,
+	EXIF_TAG_METERING_MODE			= 0x9207,
+	EXIF_TAG_LIGHT_SOURCE			= 0x9208,
+	EXIF_TAG_FLASH				= 0x9209,
+	EXIF_TAG_FOCAL_LENGTH			= 0x920a,
+	EXIF_TAG_SUBJECT_AREA			= 0x9214,
+	EXIF_TAG_TIFF_EP_STANDARD_ID		= 0x9216,
+	EXIF_TAG_MAKER_NOTE			= 0x927c,
+	EXIF_TAG_USER_COMMENT			= 0x9286,
+	EXIF_TAG_SUB_SEC_TIME			= 0x9290,
+	EXIF_TAG_SUB_SEC_TIME_ORIGINAL		= 0x9291,
+	EXIF_TAG_SUB_SEC_TIME_DIGITIZED		= 0x9292,
+	EXIF_TAG_XP_TITLE			= 0x9c9b,
+	EXIF_TAG_XP_COMMENT			= 0x9c9c,
+	EXIF_TAG_XP_AUTHOR			= 0x9c9d,
+	EXIF_TAG_XP_KEYWORDS			= 0x9c9e,
+	EXIF_TAG_XP_SUBJECT			= 0x9c9f,
+	EXIF_TAG_FLASH_PIX_VERSION		= 0xa000,
+	EXIF_TAG_COLOR_SPACE			= 0xa001,
+	EXIF_TAG_PIXEL_X_DIMENSION		= 0xa002,
+	EXIF_TAG_PIXEL_Y_DIMENSION		= 0xa003,
+	EXIF_TAG_RELATED_SOUND_FILE		= 0xa004,
+	EXIF_TAG_INTEROPERABILITY_IFD_POINTER	= 0xa005,
+	EXIF_TAG_FLASH_ENERGY			= 0xa20b,
+	EXIF_TAG_SPATIAL_FREQUENCY_RESPONSE	= 0xa20c,
+	EXIF_TAG_FOCAL_PLANE_X_RESOLUTION	= 0xa20e,
+	EXIF_TAG_FOCAL_PLANE_Y_RESOLUTION	= 0xa20f,
+	EXIF_TAG_FOCAL_PLANE_RESOLUTION_UNIT	= 0xa210,
+	EXIF_TAG_SUBJECT_LOCATION		= 0xa214,
+	EXIF_TAG_EXPOSURE_INDEX			= 0xa215,
+	EXIF_TAG_SENSING_METHOD			= 0xa217,
+	EXIF_TAG_FILE_SOURCE			= 0xa300,
+	EXIF_TAG_SCENE_TYPE			= 0xa301,
+	EXIF_TAG_NEW_CFA_PATTERN		= 0xa302,
+	EXIF_TAG_CUSTOM_RENDERED		= 0xa401,
+	EXIF_TAG_EXPOSURE_MODE			= 0xa402,
+	EXIF_TAG_WHITE_BALANCE			= 0xa403,
+	EXIF_TAG_DIGITAL_ZOOM_RATIO		= 0xa404,
+	EXIF_TAG_FOCAL_LENGTH_IN_35MM_FILM	= 0xa405,
+	EXIF_TAG_SCENE_CAPTURE_TYPE		= 0xa406,
+	EXIF_TAG_GAIN_CONTROL			= 0xa407,
+	EXIF_TAG_CONTRAST			= 0xa408,
+	EXIF_TAG_SATURATION			= 0xa409,
+	EXIF_TAG_SHARPNESS			= 0xa40a,
+	EXIF_TAG_DEVICE_SETTING_DESCRIPTION	= 0xa40b,
+	EXIF_TAG_SUBJECT_DISTANCE_RANGE		= 0xa40c,
+	EXIF_TAG_IMAGE_UNIQUE_ID		= 0xa420,
+	EXIF_TAG_GAMMA				= 0xa500,
+	EXIF_TAG_PRINT_IMAGE_MATCHING		= 0xc4a5,
+	EXIF_TAG_PADDING			= 0xea1c
+} ExifTag;
+
+/* GPS tags overlap with above ones. */
+#define EXIF_TAG_GPS_VERSION_ID        0x0000
+#define EXIF_TAG_GPS_LATITUDE_REF      0x0001 /* INTEROPERABILITY_INDEX   */
+#define EXIF_TAG_GPS_LATITUDE          0x0002 /* INTEROPERABILITY_VERSION */
+#define EXIF_TAG_GPS_LONGITUDE_REF     0x0003
+#define EXIF_TAG_GPS_LONGITUDE         0x0004
+#define EXIF_TAG_GPS_ALTITUDE_REF      0x0005
+#define EXIF_TAG_GPS_ALTITUDE          0x0006
+#define EXIF_TAG_GPS_TIME_STAMP        0x0007
+#define EXIF_TAG_GPS_SATELLITES        0x0008
+#define EXIF_TAG_GPS_STATUS            0x0009
+#define EXIF_TAG_GPS_MEASURE_MODE      0x000a
+#define EXIF_TAG_GPS_DOP               0x000b
+#define EXIF_TAG_GPS_SPEED_REF         0x000c
+#define EXIF_TAG_GPS_SPEED             0x000d
+#define EXIF_TAG_GPS_TRACK_REF         0x000e
+#define EXIF_TAG_GPS_TRACK             0x000f
+#define EXIF_TAG_GPS_IMG_DIRECTION_REF 0x0010
+#define EXIF_TAG_GPS_IMG_DIRECTION     0x0011
+#define EXIF_TAG_GPS_MAP_DATUM         0x0012
+#define EXIF_TAG_GPS_DEST_LATITUDE_REF 0x0013
+#define EXIF_TAG_GPS_DEST_LATITUDE     0x0014
+#define EXIF_TAG_GPS_DEST_LONGITUDE_REF 0x0015
+#define EXIF_TAG_GPS_DEST_LONGITUDE     0x0016
+#define EXIF_TAG_GPS_DEST_BEARING_REF   0x0017
+#define EXIF_TAG_GPS_DEST_BEARING       0x0018
+#define EXIF_TAG_GPS_DEST_DISTANCE_REF  0x0019
+#define EXIF_TAG_GPS_DEST_DISTANCE      0x001a
+#define EXIF_TAG_GPS_PROCESSING_METHOD  0x001b
+#define EXIF_TAG_GPS_AREA_INFORMATION   0x001c
+#define EXIF_TAG_GPS_DATE_STAMP         0x001d
+#define EXIF_TAG_GPS_DIFFERENTIAL       0x001e
+
+/*! What level of support a tag enjoys in the EXIF standard */
+typedef enum {
+	/*! The meaning of this tag is unknown */
+	EXIF_SUPPORT_LEVEL_UNKNOWN = 0,
+
+	/*! This tag is not allowed in the given IFD */
+	EXIF_SUPPORT_LEVEL_NOT_RECORDED,
+
+	/*! This tag is mandatory in the given IFD */
+	EXIF_SUPPORT_LEVEL_MANDATORY,
+
+	/*! This tag is optional in the given IFD */
+	EXIF_SUPPORT_LEVEL_OPTIONAL
+} ExifSupportLevel;
+
+/*! Return the tag ID given its unique textual name.
+ *
+ * \param[in] name tag name
+ * \return tag ID, or 0 if tag not found
+ * \note The tag not found value cannot be distinguished from a legitimate
+ *   tag number 0.
+ */
+ExifTag          exif_tag_from_name                (const char *name);
+
+/*! Return a textual name of the given tag when found in the given IFD. The
+ * name is a short, unique, non-localized text string containing only
+ * US-ASCII alphanumeric characters.
+ *
+ * \param[in] tag EXIF tag
+ * \param[in] ifd IFD
+ * \return textual name of the tag, or NULL if the tag is unknown
+ */
+const char      *exif_tag_get_name_in_ifd          (ExifTag tag, ExifIfd ifd);
+
+/*! Return a textual title of the given tag when found in the given IFD.
+ * The title is a short, localized description of the tag.
+ *
+ * \param[in] tag EXIF tag
+ * \param[in] ifd IFD
+ * \return textual title of the tag, or NULL if the tag is unknown
+ */
+const char      *exif_tag_get_title_in_ifd         (ExifTag tag, ExifIfd ifd);
+
+/*! Return a verbose textual description of the given tag when found in the
+ * given IFD. The description is a verbose, localized description of the tag.
+ *
+ * \param[in] tag EXIF tag
+ * \param[in] ifd IFD
+ * \return textual description of the tag, or NULL if the tag is unknown
+ */
+const char      *exif_tag_get_description_in_ifd   (ExifTag tag, ExifIfd ifd);
+
+/*! Return whether the given tag is mandatory or not in the given IFD and
+ * data type according to the EXIF specification. If the IFD given is
+ * EXIF_IFD_COUNT, the result is EXIF_SUPPORT_LEVEL_UNKNOWN. If the data
+ * type is EXIF_DATA_TYPE_UNKNOWN, the result is
+ * EXIF_SUPPORT_LEVEL_UNKNOWN unless the support level is the same for
+ * all data types.
+ *
+ * \param[in] tag EXIF tag
+ * \param[in] ifd IFD or EXIF_IFD_COUNT
+ * \param[in] t data type or EXIF_DATA_TYPE_UNKNOWN
+ * \return the level of support for this tag
+ */
+ExifSupportLevel exif_tag_get_support_level_in_ifd (ExifTag tag, ExifIfd ifd,
+                                                    ExifDataType t);
+
+/* Don't use these functions. They are here for compatibility only. */
+
+/*! \deprecated Use #exif_tag_get_name_in_ifd instead */
+const char     *exif_tag_get_name        (ExifTag tag);
+
+/*! \deprecated Use #exif_tag_get_title_in_ifd instead */
+const char     *exif_tag_get_title       (ExifTag tag);
+
+/*! \deprecated Use #exif_tag_get_description_in_ifd instead */
+const char     *exif_tag_get_description (ExifTag tag);
+
+
+/* For now, do not use these functions. */
+
+/*! \internal */
+ExifTag      exif_tag_table_get_tag  (unsigned int n);
+
+/*! \internal */
+const char  *exif_tag_table_get_name (unsigned int n);
+
+/*! \internal */
+unsigned int exif_tag_table_count    (void);
+
+
+/* Don't use these definitions. They are here for compatibility only. */
+
+/*! \deprecated Use EXIF_TAG_PRINT_IMAGE_MATCHING instead. */
+#define EXIF_TAG_UNKNOWN_C4A5 EXIF_TAG_PRINT_IMAGE_MATCHING
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __EXIF_TAG_H__ */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-utils.c b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-utils.c
new file mode 100644
index 0000000000000000000000000000000000000000..22ee29f711905627bea6798f9b2f5a0a691ab967
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-utils.c
@@ -0,0 +1,253 @@
+/* exif-utils.c
+ *
+ * Copyright (c) 2001 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#include <config.h>
+
+#include <libexif/exif-utils.h>
+
+void
+exif_array_set_byte_order (ExifFormat f, unsigned char *b, unsigned int n,
+		ExifByteOrder o_orig, ExifByteOrder o_new)
+{
+	unsigned int j;
+	unsigned int fs = exif_format_get_size (f);
+	ExifShort s;
+	ExifSShort ss;
+	ExifLong l;
+	ExifSLong sl;
+	ExifRational r;
+	ExifSRational sr;
+
+	if (!b || !n || !fs) return;
+
+	switch (f) {
+	case EXIF_FORMAT_SHORT:
+		for (j = 0; j < n; j++) {
+			s = exif_get_short (b + j * fs, o_orig);
+			exif_set_short (b + j * fs, o_new, s);
+		}
+		break;
+	case EXIF_FORMAT_SSHORT:
+		for (j = 0; j < n; j++) {
+			ss = exif_get_sshort (b + j * fs, o_orig);
+			exif_set_sshort (b + j * fs, o_new, ss);
+		}
+		break;
+	case EXIF_FORMAT_LONG:
+		for (j = 0; j < n; j++) {
+			l = exif_get_long (b + j * fs, o_orig);
+			exif_set_long (b + j * fs, o_new, l);
+		}
+		break;
+	case EXIF_FORMAT_RATIONAL:
+		for (j = 0; j < n; j++) {
+			r = exif_get_rational (b + j * fs, o_orig);
+			exif_set_rational (b + j * fs, o_new, r);
+		}
+		break;
+	case EXIF_FORMAT_SLONG:
+		for (j = 0; j < n; j++) {
+			sl = exif_get_slong (b + j * fs, o_orig);
+			exif_set_slong (b + j * fs, o_new, sl);
+		}
+		break;
+	case EXIF_FORMAT_SRATIONAL:
+		for (j = 0; j < n; j++) {
+			sr = exif_get_srational (b + j * fs, o_orig);
+			exif_set_srational (b + j * fs, o_new, sr);
+		}
+		break;
+	case EXIF_FORMAT_UNDEFINED:
+	case EXIF_FORMAT_BYTE:
+	case EXIF_FORMAT_ASCII:
+	default:
+		/* Nothing here. */
+		break;
+	}
+}
+
+ExifSShort
+exif_get_sshort (const unsigned char *buf, ExifByteOrder order)
+{
+	if (!buf) return 0;
+        switch (order) {
+        case EXIF_BYTE_ORDER_MOTOROLA:
+                return ((buf[0] << 8) | buf[1]);
+        case EXIF_BYTE_ORDER_INTEL:
+                return ((buf[1] << 8) | buf[0]);
+        }
+
+	/* Won't be reached */
+	return (0);
+}
+
+ExifShort
+exif_get_short (const unsigned char *buf, ExifByteOrder order)
+{
+	return (exif_get_sshort (buf, order) & 0xffff);
+}
+
+void
+exif_set_sshort (unsigned char *b, ExifByteOrder order, ExifSShort value)
+{
+	if (!b) return;
+	switch (order) {
+	case EXIF_BYTE_ORDER_MOTOROLA:
+		b[0] = (unsigned char) (value >> 8);
+		b[1] = (unsigned char) value;
+		break;
+	case EXIF_BYTE_ORDER_INTEL:
+		b[0] = (unsigned char) value;
+		b[1] = (unsigned char) (value >> 8);
+		break;
+	}
+}
+
+void
+exif_set_short (unsigned char *b, ExifByteOrder order, ExifShort value)
+{
+	exif_set_sshort (b, order, value);
+}
+
+ExifSLong
+exif_get_slong (const unsigned char *b, ExifByteOrder order)
+{
+	if (!b) return 0;
+        switch (order) {
+        case EXIF_BYTE_ORDER_MOTOROLA:
+                return ((b[0] << 24) | (b[1] << 16) | (b[2] << 8) | b[3]);
+        case EXIF_BYTE_ORDER_INTEL:
+                return ((b[3] << 24) | (b[2] << 16) | (b[1] << 8) | b[0]);
+        }
+
+	/* Won't be reached */
+	return (0);
+}
+
+void
+exif_set_slong (unsigned char *b, ExifByteOrder order, ExifSLong value)
+{
+	if (!b) return;
+	switch (order) {
+	case EXIF_BYTE_ORDER_MOTOROLA:
+		b[0] = (unsigned char) (value >> 24);
+		b[1] = (unsigned char) (value >> 16);
+		b[2] = (unsigned char) (value >> 8);
+		b[3] = (unsigned char) value;
+		break;
+	case EXIF_BYTE_ORDER_INTEL:
+		b[3] = (unsigned char) (value >> 24);
+		b[2] = (unsigned char) (value >> 16);
+		b[1] = (unsigned char) (value >> 8);
+		b[0] = (unsigned char) value;
+		break;
+	}
+}
+
+ExifLong
+exif_get_long (const unsigned char *buf, ExifByteOrder order)
+{
+        return (exif_get_slong (buf, order) & 0xffffffff);
+}
+
+void
+exif_set_long (unsigned char *b, ExifByteOrder order, ExifLong value)
+{
+	exif_set_slong (b, order, value);
+}
+
+ExifSRational
+exif_get_srational (const unsigned char *buf, ExifByteOrder order)
+{
+	ExifSRational r;
+
+	r.numerator   = buf ? exif_get_slong (buf, order) : 0;
+	r.denominator = buf ? exif_get_slong (buf + 4, order) : 0;
+
+	return (r);
+}
+
+ExifRational
+exif_get_rational (const unsigned char *buf, ExifByteOrder order)
+{
+	ExifRational r;
+
+	r.numerator   = buf ? exif_get_long (buf, order) : 0;
+	r.denominator = buf ? exif_get_long (buf + 4, order) : 0;
+
+	return (r);
+}
+
+void
+exif_set_rational (unsigned char *buf, ExifByteOrder order,
+		   ExifRational value)
+{
+	if (!buf) return;
+	exif_set_long (buf, order, value.numerator);
+	exif_set_long (buf + 4, order, value.denominator);
+}
+
+void
+exif_set_srational (unsigned char *buf, ExifByteOrder order,
+		    ExifSRational value)
+{
+	if (!buf) return;
+	exif_set_slong (buf, order, value.numerator);
+	exif_set_slong (buf + 4, order, value.denominator);
+}
+
+/*! This function converts rather UCS-2LE than UTF-16 to UTF-8.
+ * It should really be replaced by iconv().
+ */
+void
+exif_convert_utf16_to_utf8 (char *out, const unsigned short *in, int maxlen)
+{
+	if (maxlen <= 0) {
+		return;
+	}
+	while (*in) {
+		if (*in < 0x80) {
+			if (maxlen > 1) {
+				*out++ = (char)*in++;
+				maxlen--;
+			} else {
+				break;
+			}
+		} else if (*in < 0x800) {
+			if (maxlen > 2) {
+				*out++ = ((*in >> 6) & 0x1F) | 0xC0;
+				*out++ = (*in++ & 0x3F) | 0x80;
+				maxlen -= 2;
+			} else {
+				break;
+			}
+		} else {
+			if (maxlen > 2) {
+				*out++ = ((*in >> 12) & 0x0F) | 0xE0;
+				*out++ = ((*in >> 6) & 0x3F) | 0x80;
+				*out++ = (*in++ & 0x3F) | 0x80;
+				maxlen -= 3;
+			} else {
+				break;
+			}
+		}
+	}
+	*out = 0;
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-utils.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-utils.h
new file mode 100644
index 0000000000000000000000000000000000000000..7861564f21cc22027637bf5d2caa212154837153
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif-utils.h
@@ -0,0 +1,194 @@
+/*! \file exif-utils.h
+ *  \brief EXIF data manipulation functions and types 
+ */
+/*
+ * Copyright (c) 2001 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#ifndef __EXIF_UTILS_H__
+#define __EXIF_UTILS_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#include <libexif/exif-byte-order.h>
+#include <libexif/exif-format.h>
+#include <libexif/_stdint.h>
+
+
+/* If these definitions don't work for you, please let us fix the 
+ * macro generating _stdint.h */
+	
+/*! EXIF Unsigned Byte data type */
+typedef unsigned char	ExifByte;          /* 1 byte  */
+	
+/*! EXIF Signed Byte data type */
+typedef signed char	ExifSByte;         /* 1 byte  */
+	
+/*! EXIF Text String data type */
+typedef char *		ExifAscii;
+	
+/*! EXIF Unsigned Short data type */
+typedef uint16_t	ExifShort;         /* 2 bytes */
+	
+/*! EXIF Signed Short data type */
+typedef int16_t         ExifSShort;        /* 2 bytes */
+	
+/*! EXIF Unsigned Long data type */
+typedef uint32_t	ExifLong;          /* 4 bytes */
+	
+/*! EXIF Signed Long data type */
+typedef int32_t		ExifSLong;         /* 4 bytes */
+
+/*! EXIF Unsigned Rational data type */
+typedef struct {ExifLong numerator; ExifLong denominator;} ExifRational;
+
+typedef char		ExifUndefined;     /* 1 byte  */
+
+/*! EXIF Signed Rational data type */
+typedef struct {ExifSLong numerator; ExifSLong denominator;} ExifSRational;
+
+
+/*! Retrieve an #ExifShort value from memory.
+ *
+ * \param[in] b pointer to raw EXIF value in memory
+ * \param[in] order byte order of raw value
+ * \return value
+ */
+ExifShort     exif_get_short     (const unsigned char *b, ExifByteOrder order);
+
+/*! Retrieve an #ExifSShort value from memory.
+ *
+ * \param[in] b pointer to raw EXIF value in memory
+ * \param[in] order byte order of raw value
+ * \return value
+ */
+ExifSShort    exif_get_sshort    (const unsigned char *b, ExifByteOrder order);
+
+/*! Retrieve an #ExifLong value from memory.
+ *
+ * \param[in] b pointer to raw EXIF value in memory
+ * \param[in] order byte order of raw value
+ * \return value
+ */
+ExifLong      exif_get_long      (const unsigned char *b, ExifByteOrder order);
+
+/*! Retrieve an #ExifSLong value from memory.
+ *
+ * \param[in] b pointer to raw EXIF value in memory
+ * \param[in] order byte order of raw value
+ * \return value
+ */
+ExifSLong     exif_get_slong     (const unsigned char *b, ExifByteOrder order);
+
+/*! Retrieve an #ExifRational value from memory.
+ *
+ * \param[in] b pointer to raw EXIF value in memory
+ * \param[in] order byte order of raw value
+ * \return value
+ */
+ExifRational  exif_get_rational  (const unsigned char *b, ExifByteOrder order);
+
+/*! Retrieve an #ExifSRational value from memory.
+ *
+ * \param[in] b pointer to raw EXIF value in memory
+ * \param[in] order byte order of raw value
+ * \return value
+ */
+ExifSRational exif_get_srational (const unsigned char *b, ExifByteOrder order);
+
+/*! Store an ExifShort value into memory in EXIF format.
+ *
+ * \param[out] b buffer in which to write raw value
+ * \param[in] order byte order to use
+ * \param[in] value data value to store
+ */
+void exif_set_short     (unsigned char *b, ExifByteOrder order,
+			 ExifShort value);
+
+/*! Store an ExifSShort value into memory in EXIF format.
+ *
+ * \param[out] b buffer in which to write raw value
+ * \param[in] order byte order to use
+ * \param[in] value data value to store
+ */
+void exif_set_sshort    (unsigned char *b, ExifByteOrder order,
+			 ExifSShort value);
+
+/*! Store an ExifLong value into memory in EXIF format.
+ *
+ * \param[out] b buffer in which to write raw value
+ * \param[in] order byte order to use
+ * \param[in] value data value to store
+ */
+void exif_set_long      (unsigned char *b, ExifByteOrder order,
+			 ExifLong value);
+
+/*! Store an ExifSLong value into memory in EXIF format.
+ *
+ * \param[out] b buffer in which to write raw value
+ * \param[in] order byte order to use
+ * \param[in] value data value to store
+ */
+void exif_set_slong     (unsigned char *b, ExifByteOrder order,
+			 ExifSLong value);
+
+/*! Store an ExifRational value into memory in EXIF format.
+ *
+ * \param[out] b buffer in which to write raw value
+ * \param[in] order byte order to use
+ * \param[in] value data value to store
+ */
+void exif_set_rational  (unsigned char *b, ExifByteOrder order,
+			 ExifRational value);
+
+/*! Store an ExifSRational value into memory in EXIF format.
+ *
+ * \param[out] b buffer in which to write raw value
+ * \param[in] order byte order to use
+ * \param[in] value data value to store
+ */
+void exif_set_srational (unsigned char *b, ExifByteOrder order,
+			 ExifSRational value);
+
+/*! \internal */
+void exif_convert_utf16_to_utf8 (char *out, const unsigned short *in, int maxlen);
+
+/* Please do not use this function outside of the library. */
+
+/*! \internal */
+void exif_array_set_byte_order (ExifFormat, unsigned char *, unsigned int,
+		ExifByteOrder o_orig, ExifByteOrder o_new);
+
+#undef  MIN
+#define MIN(a, b)  (((a) < (b)) ? (a) : (b))
+
+#undef  MAX
+#define MAX(a, b)  (((a) > (b)) ? (a) : (b))
+
+/* For compatibility with older versions */
+
+/*! \deprecated Use EXIF_TAG_SUB_SEC_TIME instead. */
+#define EXIF_TAG_SUBSEC_TIME EXIF_TAG_SUB_SEC_TIME
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __EXIF_UTILS_H__ */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif.h
new file mode 100644
index 0000000000000000000000000000000000000000..1c8e0f668dfa91e6fe66297a611f7346ff84f507
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/exif.h
@@ -0,0 +1,87 @@
+/*! \file exif.h exif/exif.h
+ * \brief Dummy header file for documentation purposes
+ * \date 2007
+ * \author Hans Ulrich Niedermann, et. al.
+ *
+ * \mainpage The libexif library
+ *
+ * \section general_notes General Notes
+ *
+ * This documentation is work in progress, as is the code itself.
+ *
+ * \section using_libexif Using libexif
+ *
+ * \#include <libexif/exif-data.h>
+ *
+ * libexif provides a libexif.pc file for use with pkgconfig on the
+ * libexif installation. If you are using libtool to build your
+ * package, you can also make use of libexif-uninstalled.pc.
+ *
+ * An application using libexif would typically first create an #ExifLoader to
+ * load EXIF data into memory. From there, it would extract that data as
+ * an #ExifData to start manipulating it. Each IFD is represented by its own
+ * #ExifContent within that #ExifData, which contains all the tag data in
+ * #ExifEntry form.  If the MakerNote data is required, an #ExifMnoteData
+ * can be extracted from the #ExifData and manipulated with the MakerNote
+ * functions.
+ *
+ * libexif is written in C using an object-based style that defines
+ * sets of functions that operate on each data structure.
+ *
+ * \section data_structures Primary Data Structures
+ *
+ * #ExifLoader
+ * State maintained by the loader interface while importing EXIF data
+ * from an external file or memory
+ *
+ * #ExifData
+ * The entirety of EXIF data found in an image
+ *
+ * #ExifContent
+ * All EXIF tags in a single IFD
+ *
+ * #ExifEntry
+ * Data found in a single EXIF tag
+ *
+ * #ExifMnoteData
+ * All data found in the MakerNote tag
+ *
+ * #ExifLog
+ * State maintained by the logging interface
+ *
+ * \section string_conventions String Conventions
+ *
+ * Strings are 8 bit characters ("char*"). When libexif is compiled with
+ * NLS, character set and encoding are as set in the current locale,
+ * except for strings that come directly from the data in EXIF
+ * tags which are generally returned in raw form.  Most EXIF strings are
+ * defined to be plain 7-bit ASCII so this raw form should be acceptable in
+ * any UNIX locale, but some software ignores the specification and
+ * writes 8-bit characters.  It is up to the application to detect this
+ * and deal with it intelligently.
+ *
+ * \section memory_management Memory Management Patterns
+ *
+ * For pointers to data objects, libexif uses reference counting. The
+ * pattern is to use the foo_new() function to create a data object,
+ * foo_ref() to increase the reference counter, and foo_unref() to
+ * decrease the reference counter and possibly free(3)ing the memory.
+ *
+ * Libexif by default relies on the calloc(3), realloc(3), and free(3)
+ * functions, but the libexif user can tell libexif to use their
+ * special memory management functions at runtime.
+ * 
+ * \section thread_safety Thread Safety
+ * 
+ * libexif is thread safe when the underlying C library is also thread safe.
+ * Some C libraries may require defining a special macro (like _REENTRANT)
+ * to ensure this, or may require linking to a special thread-safe version of
+ * the library.
+ *
+ * The programmer must ensure that each object allocated by libexif is only
+ * used in a single thread at once. For example, an ExifData* allocated
+ * in one thread can't be used in a second thread if there is any chance
+ * that the first thread could use it at the same time. Multiple threads
+ * can use libexif without issues if they never share handles.
+ *
+ */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/fuji/Makefile-files b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/fuji/Makefile-files
new file mode 100644
index 0000000000000000000000000000000000000000..3a520b3ddfc4148ed7720d64077ee068facb1566
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/fuji/Makefile-files
@@ -0,0 +1,7 @@
+# -*- Makefile -*-
+noinst_LTLIBRARIES += libmnote-fuji.la
+libmnote_fuji_la_SOURCES = \
+	fuji/mnote-fuji-entry.c fuji/mnote-fuji-entry.h \
+	fuji/exif-mnote-data-fuji.c fuji/exif-mnote-data-fuji.h \
+	fuji/mnote-fuji-tag.c fuji/mnote-fuji-tag.h
+libmnote_fuji_la_LIBADD = $(LTLIBINTL)
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/fuji/exif-mnote-data-fuji.c b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/fuji/exif-mnote-data-fuji.c
new file mode 100644
index 0000000000000000000000000000000000000000..95146544dda2b6bfe12d7e06116daee2f8605175
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/fuji/exif-mnote-data-fuji.c
@@ -0,0 +1,349 @@
+/* exif-mnote-data-fuji.c
+ *
+ * Copyright (c) 2002 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+
+#include <config.h>
+#include <libexif/exif-byte-order.h>
+#include <libexif/exif-utils.h>
+
+#include "exif-mnote-data-fuji.h"
+
+struct _MNoteFujiDataPrivate {
+	ExifByteOrder order;
+};
+
+static void
+exif_mnote_data_fuji_clear (ExifMnoteDataFuji *n)
+{
+	ExifMnoteData *d = (ExifMnoteData *) n;
+	unsigned int i;
+
+	if (!n) return;
+
+	if (n->entries) {
+		for (i = 0; i < n->count; i++)
+			if (n->entries[i].data) {
+				exif_mem_free (d->mem, n->entries[i].data);
+				n->entries[i].data = NULL;
+			}
+		exif_mem_free (d->mem, n->entries);
+		n->entries = NULL;
+		n->count = 0;
+	}
+}
+
+static void
+exif_mnote_data_fuji_free (ExifMnoteData *n)
+{
+	if (!n) return;
+
+	exif_mnote_data_fuji_clear ((ExifMnoteDataFuji *) n);
+}
+
+static char *
+exif_mnote_data_fuji_get_value (ExifMnoteData *d, unsigned int i, char *val, unsigned int maxlen)
+{
+	ExifMnoteDataFuji *n = (ExifMnoteDataFuji *) d;
+
+	if (!d || !val) return NULL;
+	if (i > n->count -1) return NULL;
+/*
+	exif_log (d->log, EXIF_LOG_CODE_DEBUG, "ExifMnoteDataFuji",
+		  "Querying value for tag '%s'...",
+		  mnote_fuji_tag_get_name (n->entries[i].tag));
+*/
+	return mnote_fuji_entry_get_value (&n->entries[i], val, maxlen);
+}
+
+static void
+exif_mnote_data_fuji_save (ExifMnoteData *ne, unsigned char **buf,
+			   unsigned int *buf_size)
+{
+	ExifMnoteDataFuji *n = (ExifMnoteDataFuji *) ne;
+	size_t i, o, s, doff;
+	unsigned char *t;
+	size_t ts;
+
+	if (!n || !buf || !buf_size) return;
+
+	/*
+	 * Allocate enough memory for all entries and the number
+	 * of entries.
+	 */
+	*buf_size = 8 + 4 + 2 + n->count * 12 + 4;
+	*buf = exif_mem_alloc (ne->mem, *buf_size);
+	if (!*buf) {
+		*buf_size = 0;
+		return;
+	}
+
+	/*
+	 * Header: "FUJIFILM" and 4 bytes offset to the first entry.
+	 * As the first entry will start right thereafter, the offset is 12.
+	 */
+	memcpy (*buf, "FUJIFILM", 8);
+	exif_set_long (*buf + 8, n->order, 12);
+
+	/* Save the number of entries */
+	exif_set_short (*buf + 8 + 4, n->order, (ExifShort) n->count);
+	
+	/* Save each entry */
+	for (i = 0; i < n->count; i++) {
+		o = 8 + 4 + 2 + i * 12;
+		exif_set_short (*buf + o + 0, n->order, (ExifShort) n->entries[i].tag);
+		exif_set_short (*buf + o + 2, n->order, (ExifShort) n->entries[i].format);
+		exif_set_long  (*buf + o + 4, n->order, n->entries[i].components);
+		o += 8;
+		s = exif_format_get_size (n->entries[i].format) *
+						n->entries[i].components;
+		if (s > 65536) {
+			/* Corrupt data: EXIF data size is limited to the
+			 * maximum size of a JPEG segment (64 kb).
+			 */
+			continue;
+		}
+		if (s > 4) {
+			ts = *buf_size + s;
+
+			/* Ensure even offsets. Set padding bytes to 0. */
+			if (s & 1) ts += 1;
+			t = exif_mem_realloc (ne->mem, *buf, ts);
+			if (!t) {
+				return;
+			}
+			*buf = t;
+			*buf_size = ts;
+			doff = *buf_size - s;
+			if (s & 1) { doff--; *(*buf + *buf_size - 1) = '\0'; }
+			exif_set_long (*buf + o, n->order, doff);
+		} else
+			doff = o;
+
+		/*
+		 * Write the data. Fill unneeded bytes with 0. Do not
+		 * crash if data is NULL.
+		 */
+		if (!n->entries[i].data) memset (*buf + doff, 0, s);
+		else memcpy (*buf + doff, n->entries[i].data, s);
+	}
+}
+
+static void
+exif_mnote_data_fuji_load (ExifMnoteData *en,
+	const unsigned char *buf, unsigned int buf_size)
+{
+	ExifMnoteDataFuji *n = (ExifMnoteDataFuji*) en;
+	ExifLong c;
+	size_t i, tcount, o, datao;
+
+	if (!n || !buf || !buf_size) {
+		exif_log (en->log, EXIF_LOG_CODE_CORRUPT_DATA,
+			  "ExifMnoteDataFuji", "Short MakerNote");
+		return;
+	}
+	datao = 6 + n->offset;
+	if ((datao + 12 < datao) || (datao + 12 < 12) || (datao + 12 > buf_size)) {
+		exif_log (en->log, EXIF_LOG_CODE_CORRUPT_DATA,
+			  "ExifMnoteDataFuji", "Short MakerNote");
+		return;
+	}
+
+	n->order = EXIF_BYTE_ORDER_INTEL;
+	datao += exif_get_long (buf + datao + 8, EXIF_BYTE_ORDER_INTEL);
+	if ((datao + 2 < datao) || (datao + 2 < 2) ||
+	    (datao + 2 > buf_size)) {
+		exif_log (en->log, EXIF_LOG_CODE_CORRUPT_DATA,
+			  "ExifMnoteDataFuji", "Short MakerNote");
+		return;
+	}
+
+	/* Read the number of tags */
+	c = exif_get_short (buf + datao, EXIF_BYTE_ORDER_INTEL);
+	datao += 2;
+
+	/* Remove any old entries */
+	exif_mnote_data_fuji_clear (n);
+
+	/* Reserve enough space for all the possible MakerNote tags */
+	n->entries = exif_mem_alloc (en->mem, sizeof (MnoteFujiEntry) * c);
+	if (!n->entries) {
+		EXIF_LOG_NO_MEMORY(en->log, "ExifMnoteDataFuji", sizeof (MnoteFujiEntry) * c);
+		return;
+	}
+
+	/* Parse all c entries, storing ones that are successfully parsed */
+	tcount = 0;
+	for (i = c, o = datao; i; --i, o += 12) {
+		size_t s;
+		if ((o + 12 < o) || (o + 12 < 12) || (o + 12 > buf_size)) {
+			exif_log (en->log, EXIF_LOG_CODE_CORRUPT_DATA,
+				  "ExifMnoteDataFuji", "Short MakerNote");
+			break;
+		}
+
+		n->entries[tcount].tag        = exif_get_short (buf + o, n->order);
+		n->entries[tcount].format     = exif_get_short (buf + o + 2, n->order);
+		n->entries[tcount].components = exif_get_long (buf + o + 4, n->order);
+		n->entries[tcount].order      = n->order;
+
+		exif_log (en->log, EXIF_LOG_CODE_DEBUG, "ExifMnoteDataFuji",
+			  "Loading entry 0x%x ('%s')...", n->entries[tcount].tag,
+			  mnote_fuji_tag_get_name (n->entries[tcount].tag));
+
+		/*
+		 * Size? If bigger than 4 bytes, the actual data is not
+		 * in the entry but somewhere else (offset).
+		 */
+		s = exif_format_get_size (n->entries[tcount].format) * n->entries[tcount].components;
+		n->entries[tcount].size = s;
+		if (s) {
+			size_t dataofs = o + 8;
+			if (s > 4)
+				/* The data in this case is merely a pointer */
+				dataofs = exif_get_long (buf + dataofs, n->order) + 6 + n->offset;
+			if ((dataofs + s < dataofs) || (dataofs + s < s) ||
+				(dataofs + s >= buf_size)) {
+				exif_log (en->log, EXIF_LOG_CODE_CORRUPT_DATA,
+						  "ExifMnoteDataFuji", "Tag data past end of "
+					  "buffer (%u >= %u)", dataofs + s, buf_size);
+				continue;
+			}
+
+			n->entries[tcount].data = exif_mem_alloc (en->mem, s);
+			if (!n->entries[tcount].data) {
+				EXIF_LOG_NO_MEMORY(en->log, "ExifMnoteDataFuji", s);
+				continue;
+			}
+			memcpy (n->entries[tcount].data, buf + dataofs, s);
+		}
+
+		/* Tag was successfully parsed */
+		++tcount;
+	}
+	/* Store the count of successfully parsed tags */
+	n->count = tcount;
+}
+
+static unsigned int
+exif_mnote_data_fuji_count (ExifMnoteData *n)
+{
+	return n ? ((ExifMnoteDataFuji *) n)->count : 0;
+}
+
+static unsigned int
+exif_mnote_data_fuji_get_id (ExifMnoteData *d, unsigned int n)
+{
+	ExifMnoteDataFuji *note = (ExifMnoteDataFuji *) d;
+
+	if (!note) return 0;
+	if (note->count <= n) return 0;
+	return note->entries[n].tag;
+}
+
+static const char *
+exif_mnote_data_fuji_get_name (ExifMnoteData *d, unsigned int i)
+{
+	ExifMnoteDataFuji *n = (ExifMnoteDataFuji *) d;
+
+	if (!n) return NULL;
+	if (i >= n->count) return NULL;
+	return mnote_fuji_tag_get_name (n->entries[i].tag);
+}
+
+static const char *
+exif_mnote_data_fuji_get_title (ExifMnoteData *d, unsigned int i)
+{
+	ExifMnoteDataFuji *n = (ExifMnoteDataFuji *) d;
+	
+	if (!n) return NULL;
+	if (i >= n->count) return NULL;
+        return mnote_fuji_tag_get_title (n->entries[i].tag);
+}
+
+static const char *
+exif_mnote_data_fuji_get_description (ExifMnoteData *d, unsigned int i)
+{
+	ExifMnoteDataFuji *n = (ExifMnoteDataFuji *) d;
+	
+	if (!n) return NULL;
+	if (i >= n->count) return NULL;
+        return mnote_fuji_tag_get_description (n->entries[i].tag);
+}
+
+static void
+exif_mnote_data_fuji_set_byte_order (ExifMnoteData *d, ExifByteOrder o)
+{
+	ExifByteOrder o_orig;
+	ExifMnoteDataFuji *n = (ExifMnoteDataFuji *) d;
+	unsigned int i;
+
+	if (!n) return;
+
+	o_orig = n->order;
+	n->order = o;
+	for (i = 0; i < n->count; i++) {
+		n->entries[i].order = o;
+		exif_array_set_byte_order (n->entries[i].format, n->entries[i].data,
+				n->entries[i].components, o_orig, o);
+	}
+}
+
+static void
+exif_mnote_data_fuji_set_offset (ExifMnoteData *n, unsigned int o)
+{
+	if (n) ((ExifMnoteDataFuji *) n)->offset = o;
+}
+
+int
+exif_mnote_data_fuji_identify (const ExifData *ed, const ExifEntry *e)
+{
+	return ((e->size >= 12) && !memcmp (e->data, "FUJIFILM", 8));
+}
+
+ExifMnoteData *
+exif_mnote_data_fuji_new (ExifMem *mem)
+{
+	ExifMnoteData *d;
+
+	if (!mem) return NULL;
+
+	d = exif_mem_alloc (mem, sizeof (ExifMnoteDataFuji));
+	if (!d) return NULL;
+
+	exif_mnote_data_construct (d, mem);
+
+	/* Set up function pointers */
+	d->methods.free            = exif_mnote_data_fuji_free;
+	d->methods.set_byte_order  = exif_mnote_data_fuji_set_byte_order;
+	d->methods.set_offset      = exif_mnote_data_fuji_set_offset;
+	d->methods.load            = exif_mnote_data_fuji_load;
+	d->methods.save            = exif_mnote_data_fuji_save;
+	d->methods.count           = exif_mnote_data_fuji_count;
+	d->methods.get_id          = exif_mnote_data_fuji_get_id;
+	d->methods.get_name        = exif_mnote_data_fuji_get_name;
+	d->methods.get_title       = exif_mnote_data_fuji_get_title;
+	d->methods.get_description = exif_mnote_data_fuji_get_description;
+	d->methods.get_value       = exif_mnote_data_fuji_get_value;
+
+	return d;
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/fuji/exif-mnote-data-fuji.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/fuji/exif-mnote-data-fuji.h
new file mode 100644
index 0000000000000000000000000000000000000000..2a7cd3ec8c096206e573ed1784c82a52fae33710
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/fuji/exif-mnote-data-fuji.h
@@ -0,0 +1,53 @@
+/* exif-mnote-data-fuji.h
+ *
+ * Copyright (c) 2002 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#ifndef __MNOTE_FUJI_CONTENT_H__
+#define __MNOTE_FUJI_CONTENT_H__
+
+#include <libexif/exif-mnote-data.h>
+#include <libexif/exif-mnote-data-priv.h>
+#include <libexif/exif-data.h>
+#include <libexif/fuji/mnote-fuji-entry.h>
+
+typedef struct _ExifMnoteDataFuji        ExifMnoteDataFuji;
+
+struct _ExifMnoteDataFuji {
+	ExifMnoteData parent;
+
+	MnoteFujiEntry *entries;
+	unsigned int count;
+
+	ExifByteOrder order;
+	unsigned int offset;
+};
+
+/*! Detect if MakerNote is recognized as one handled by the Fuji module.
+ * 
+ * \param[in] ed image #ExifData to identify as as a Fuji type
+ * \param[in] e #ExifEntry for EXIF_TAG_MAKER_NOTE, from within ed but
+ *   duplicated here for convenience
+ * \return 0 if not recognized, nonzero if recognized. The specific nonzero 
+ *   value returned may identify a subtype unique within this module.
+ */
+int exif_mnote_data_fuji_identify (const ExifData *ed, const ExifEntry *e);
+
+ExifMnoteData *exif_mnote_data_fuji_new (ExifMem *);
+
+#endif /* __MNOTE_FUJI_CONTENT_H__ */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/fuji/mnote-fuji-entry.c b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/fuji/mnote-fuji-entry.c
new file mode 100644
index 0000000000000000000000000000000000000000..0ca1634aabb7a93d48490b9196913543b224d011
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/fuji/mnote-fuji-entry.c
@@ -0,0 +1,306 @@
+/* mnote-fuji-entry.c
+ *
+ * Copyright (c) 2002 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <config.h>
+
+#include <libexif/i18n.h>
+
+#include "mnote-fuji-entry.h"
+
+#define CF(format,target,v,maxlen)                              \
+{                                                               \
+        if (format != target) {                                 \
+                snprintf (v, maxlen,	                        \
+                        _("Invalid format '%s', "               \
+                        "expected '%s'."),                      \
+                        exif_format_get_name (format),          \
+                        exif_format_get_name (target));         \
+                break;                                          \
+        }                                                       \
+}
+
+#define CC(number,target,v,maxlen)                                      \
+{                                                                       \
+        if (number != target) {                                         \
+                snprintf (v, maxlen,                                    \
+                        _("Invalid number of components (%i, "          \
+                        "expected %i)."), (int) number, (int) target);  \
+                break;                                                  \
+        }                                                               \
+}
+
+static const struct {
+	ExifTag tag;
+	struct {
+		int index;
+		const char *string;
+	} elem[22];
+} items[] = {
+#ifndef NO_VERBOSE_TAG_DATA
+  { MNOTE_FUJI_TAG_SHARPNESS,
+    { {1, N_("Softest")},
+      {2, N_("Soft")},
+      {3, N_("Normal")},
+      {4, N_("Hard")},
+      {5, N_("Hardest")},
+      {0x0082, N_("Medium soft")},
+      {0x0084, N_("Medium hard")},
+      {0x8000, N_("Film simulation mode")},
+      {0xFFFF, N_("Off")},
+      {0, NULL}}},
+  { MNOTE_FUJI_TAG_WHITE_BALANCE,
+    { {0, N_("Auto")},
+      {0x100, N_("Daylight")},
+      {0x200, N_("Cloudy")},
+      {0x300, N_("Daylight fluorescent")},
+      {0x301, N_("Day white fluorescent")},
+      {0x302, N_("White fluorescent")},
+      {0x400, N_("Incandescent")},
+      {0x500, N_("Flash")},
+      {0xF00, N_("Custom")},
+      {0, NULL}}},
+  { MNOTE_FUJI_TAG_COLOR,
+    { {0, N_("Standard")},
+      {0x0080, N_("Medium high")},
+      {0x0100, N_("High")},
+      {0x0180, N_("Medium low")},
+      {0x0200, N_("Original")},
+      {0x0300, N_("Black & white")},
+      {0x8000, N_("Film simulation mode")},
+      {0, NULL}}},
+  { MNOTE_FUJI_TAG_TONE,
+    { {0, N_("Standard")},
+      {0x0080, N_("Medium hard")},
+      {0x0100, N_("Hard")},
+      {0x0180, N_("Medium soft")},
+      {0x0200, N_("Original")},
+      {0x8000, N_("Film simulation mode")},
+      {0, NULL}}},
+  { MNOTE_FUJI_TAG_FLASH_MODE,
+    { {0, N_("Auto")},
+      {1, N_("On")},
+      {2, N_("Off")},
+      {3, N_("Red-eye reduction")},
+      {0, NULL}}},
+  { MNOTE_FUJI_TAG_MACRO,
+    { {0, N_("Off")},
+      {1, N_("On")},
+      {0, NULL}}},
+  { MNOTE_FUJI_TAG_FOCUS_MODE,
+    { {0, N_("Auto")},
+      {1, N_("Manual")},
+      {0, NULL}}},
+  { MNOTE_FUJI_TAG_SLOW_SYNC,
+    { {0, N_("Off")},
+      {1, N_("On")},
+      {0, NULL}}},
+  { MNOTE_FUJI_TAG_PICTURE_MODE,
+    { {0, N_("Auto")},
+      {1, N_("Portrait")},
+      {2, N_("Landscape")},
+      {4, N_("Sports")},
+      {5, N_("Night")},
+      {6, N_("Program AE")},
+      {7, N_("Natural photo")},
+      {8, N_("Vibration reduction")},
+      {0x000A, N_("Sunset")},
+      {0x000B, N_("Museum")},
+      {0x000C, N_("Party")},
+      {0x000D, N_("Flower")},
+      {0x000E, N_("Text")},
+      {0x000F, N_("NP & flash")},
+      {0x0010, N_("Beach")},
+      {0x0011, N_("Snow")},
+      {0x0012, N_("Fireworks")},
+      {0x0013, N_("Underwater")},
+      {0x0100, N_("Aperture priority AE")},
+      {0x0200, N_("Shutter priority AE")},
+      {0x0300, N_("Manual exposure")},
+      {0, NULL}}},
+  { MNOTE_FUJI_TAG_CONT_TAKING,
+    { {0, N_("Off")},
+      {1, N_("On")},
+      {0, NULL}}},
+  { MNOTE_FUJI_TAG_FINEPIX_COLOR,
+    { {0x00, N_("F-Standard")},
+      {0x10, N_("F-Chrome")},
+      {0x30, N_("F-B&W")},
+      {0, NULL}}},
+  { MNOTE_FUJI_TAG_BLUR_CHECK,
+    { {0, N_("No blur")},
+      {1, N_("Blur warning")},
+      {0, NULL}}},
+  { MNOTE_FUJI_TAG_FOCUS_CHECK,
+    { {0, N_("Focus good")},
+      {1, N_("Out of focus")},
+      {0, NULL}}},
+  { MNOTE_FUJI_TAG_AUTO_EXPOSURE_CHECK,
+    { {0, N_("AE good")},
+      {1, N_("Over exposed")},
+      {0, NULL}}},
+  { MNOTE_FUJI_TAG_DYNAMIC_RANGE,
+    { {1, N_("Standard")},
+      {3, N_("Wide")},
+      {0, NULL}}},
+  { MNOTE_FUJI_TAG_FILM_MODE,
+    { {0, N_("F0/Standard")},
+      {0x0100, N_("F1/Studio portrait")},
+      {0x0110, N_("F1a/Professional portrait")},
+      {0x0120, N_("F1b/Professional portrait")},
+      {0x0130, N_("F1c/Professional portrait")},
+      {0x0200, N_("F2/Fujichrome")},
+      {0x0300, N_("F3/Studio portrait Ex")},
+      {0x0400, N_("F4/Velvia")},
+      {0, NULL}}},
+  { MNOTE_FUJI_TAG_DYNAMIC_RANGE_SETTING,
+    { {0, N_("Auto (100-400%)")},
+      {1, N_("RAW")},
+      {0x0100, N_("Standard (100%)")},
+      {0x0200, N_("Wide1 (230%)")},
+      {0x0201, N_("Wide2 (400%)")},
+      {0x8000, N_("Film simulation mode")},
+      {0, NULL}}},
+#endif
+  {0, {{0, NULL}}}
+};
+
+
+char *
+mnote_fuji_entry_get_value (MnoteFujiEntry *entry,
+			      char *val, unsigned int maxlen)
+{
+	ExifLong  vl;
+	ExifSLong vsl;
+	ExifShort vs, vs2;
+	ExifRational vr;
+	ExifSRational vsr;
+	int i, j;
+
+	if (!entry) return (NULL);
+
+	memset (val, 0, maxlen);
+	maxlen--;
+
+	switch (entry->tag) {
+	  case MNOTE_FUJI_TAG_VERSION:
+		CF (entry->format, EXIF_FORMAT_UNDEFINED, val, maxlen);
+		CC (entry->components, 4, val, maxlen);
+		memcpy (val, entry->data, MIN(maxlen, entry->size));
+		break;
+	  case MNOTE_FUJI_TAG_SHARPNESS:
+	  case MNOTE_FUJI_TAG_WHITE_BALANCE:
+	  case MNOTE_FUJI_TAG_COLOR:
+  	  case MNOTE_FUJI_TAG_TONE:
+	  case MNOTE_FUJI_TAG_FLASH_MODE:
+	  case MNOTE_FUJI_TAG_MACRO:
+	  case MNOTE_FUJI_TAG_FOCUS_MODE:
+	  case MNOTE_FUJI_TAG_SLOW_SYNC:
+	  case MNOTE_FUJI_TAG_PICTURE_MODE:
+	  case MNOTE_FUJI_TAG_CONT_TAKING:
+	  case MNOTE_FUJI_TAG_FINEPIX_COLOR:
+	  case MNOTE_FUJI_TAG_BLUR_CHECK:
+	  case MNOTE_FUJI_TAG_FOCUS_CHECK:
+	  case MNOTE_FUJI_TAG_AUTO_EXPOSURE_CHECK:
+	  case MNOTE_FUJI_TAG_DYNAMIC_RANGE:
+	  case MNOTE_FUJI_TAG_FILM_MODE:
+	  case MNOTE_FUJI_TAG_DYNAMIC_RANGE_SETTING:
+		CF (entry->format, EXIF_FORMAT_SHORT, val, maxlen);
+		CC (entry->components, 1, val, maxlen);
+		vs = exif_get_short (entry->data, entry->order);
+
+		/* search the tag */
+		for (i = 0; (items[i].tag && items[i].tag != entry->tag); i++);
+		if (!items[i].tag) {
+			snprintf (val, maxlen,
+				  _("Internal error (unknown value %i)"), vs);
+		  	break;
+		}
+
+		/* find the value */
+		for (j = 0; items[i].elem[j].string &&
+		    (items[i].elem[j].index < vs); j++);
+		if (items[i].elem[j].index != vs) {
+			snprintf (val, maxlen,
+				  _("Internal error (unknown value %i)"), vs);
+			break;
+		}
+		strncpy (val, _(items[i].elem[j].string), maxlen);
+		break;
+	  case MNOTE_FUJI_TAG_FOCUS_POINT:
+		CF (entry->format, EXIF_FORMAT_SHORT, val, maxlen);
+		CC (entry->components, 2, val, maxlen);
+		vs = exif_get_short (entry->data, entry->order);
+		vs2 = exif_get_short (entry->data+2, entry->order);
+		snprintf (val, maxlen, "%i, %i", vs, vs2);
+		break;
+	  case MNOTE_FUJI_TAG_MIN_FOCAL_LENGTH:
+	  case MNOTE_FUJI_TAG_MAX_FOCAL_LENGTH:
+		CF (entry->format, EXIF_FORMAT_RATIONAL, val, maxlen);
+		CC (entry->components, 1, val, maxlen);
+		vr = exif_get_rational (entry->data, entry->order);
+		if (!vr.denominator) break;
+		snprintf (val, maxlen, _("%2.2f mm"), (double) vr.numerator /
+			  vr.denominator);
+		break;
+
+	default:
+		switch (entry->format) {
+		case EXIF_FORMAT_ASCII:
+		  strncpy (val, (char *)entry->data, MIN(maxlen, entry->size));
+		  break;
+		case EXIF_FORMAT_SHORT:
+		  vs = exif_get_short (entry->data, entry->order);
+		  snprintf (val, maxlen, "%i", vs);
+		  break;
+		case EXIF_FORMAT_LONG:
+		  vl = exif_get_long (entry->data, entry->order);
+		  snprintf (val, maxlen, "%lu", (long unsigned) vl);
+		  break;
+		case EXIF_FORMAT_SLONG:
+		  vsl = exif_get_slong (entry->data, entry->order);
+		  snprintf (val, maxlen, "%li", (long int) vsl);
+		  break;
+		case EXIF_FORMAT_RATIONAL:
+		  vr = exif_get_rational (entry->data, entry->order);
+		  if (!vr.denominator) break;
+		  snprintf (val, maxlen, "%2.4f", (double) vr.numerator /
+						    vr.denominator);
+		  break;
+		case EXIF_FORMAT_SRATIONAL:
+		  vsr = exif_get_srational (entry->data, entry->order);
+		  if (!vsr.denominator) break;
+		  snprintf (val, maxlen, "%2.4f", (double) vsr.numerator /
+			  vsr.denominator);
+		  break;
+		case EXIF_FORMAT_UNDEFINED:
+		default:
+		  snprintf (val, maxlen, _("%i bytes unknown data"),
+ 			  entry->size);
+		  break;
+		}
+		break;
+	}
+
+	return (val);
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/fuji/mnote-fuji-entry.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/fuji/mnote-fuji-entry.h
new file mode 100644
index 0000000000000000000000000000000000000000..a8395c5f331bdbd44ed3cd91ac040a847fa51304
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/fuji/mnote-fuji-entry.h
@@ -0,0 +1,45 @@
+/* mnote-fuji-entry.h
+ *
+ * Copyright (c) 2002 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#ifndef __MNOTE_FUJI_ENTRY_H__
+#define __MNOTE_FUJI_ENTRY_H__
+
+#include <libexif/exif-format.h>
+#include <libexif/fuji/mnote-fuji-tag.h>
+
+typedef struct _MnoteFujiEntry        MnoteFujiEntry;
+typedef struct _MnoteFujiEntryPrivate MnoteFujiEntryPrivate;
+
+#include <libexif/fuji/exif-mnote-data-fuji.h>
+
+struct _MnoteFujiEntry {
+	MnoteFujiTag tag;
+	ExifFormat format;
+	unsigned long components;
+
+	unsigned char *data;
+	unsigned int size;
+
+	ExifByteOrder order;
+};
+
+char *mnote_fuji_entry_get_value (MnoteFujiEntry *entry, char *val, unsigned int maxlen);
+
+#endif /* __MNOTE_FUJI_ENTRY_H__ */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/fuji/mnote-fuji-tag.c b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/fuji/mnote-fuji-tag.c
new file mode 100644
index 0000000000000000000000000000000000000000..3200eb6cc7077e65f12cd37169d23640ac063692
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/fuji/mnote-fuji-tag.c
@@ -0,0 +1,105 @@
+/* mnote-fuji-tag.c
+ *
+ * Copyright (c) 2002 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#include <stdlib.h>
+
+#include <config.h>
+#include <libexif/i18n.h>
+
+#include "mnote-fuji-tag.h"
+
+
+static const struct {
+	MnoteFujiTag tag;
+	const char *name;
+	const char *title;
+	const char *description;
+} table[] = {
+#ifndef NO_VERBOSE_TAG_STRINGS
+	{MNOTE_FUJI_TAG_VERSION, "Version", N_("Maker Note Version"), ""},
+	{MNOTE_FUJI_TAG_SERIAL_NUMBER, "SerialNumber", N_("Serial Number"), N_("This number is unique and based on the date of manufacture.")},
+	{MNOTE_FUJI_TAG_QUALITY, "Quality", N_("Quality"), ""},
+	{MNOTE_FUJI_TAG_SHARPNESS, "Sharpness", N_("Sharpness"), ""},
+	{MNOTE_FUJI_TAG_WHITE_BALANCE, "WhiteBalance", N_("White Balance"), ""},
+	{MNOTE_FUJI_TAG_COLOR, "ChromaticitySaturation", N_("Chromaticity Saturation"), ""},
+	{MNOTE_FUJI_TAG_TONE, "Contrast", N_("Contrast"), ""},
+	{MNOTE_FUJI_TAG_FLASH_MODE, "FlashMode", N_("Flash Mode"), ""},
+	{MNOTE_FUJI_TAG_FLASH_STRENGTH, "FlashStrength", N_("Flash Firing Strength Compensation"), ""},
+	{MNOTE_FUJI_TAG_MACRO, "MacroMode", N_("Macro Mode"), ""},
+	{MNOTE_FUJI_TAG_FOCUS_MODE, "FocusingMode", N_("Focusing Mode"), ""},
+	{MNOTE_FUJI_TAG_FOCUS_POINT, "FocusPoint", N_("Focus Point"), ""},
+	{MNOTE_FUJI_TAG_SLOW_SYNC, "SlowSynchro", N_("Slow Synchro Mode"), ""},
+	{MNOTE_FUJI_TAG_PICTURE_MODE, "PictureMode", N_("Picture Mode"), ""},
+	{MNOTE_FUJI_TAG_CONT_TAKING, "ContinuousTaking", N_("Continuous Taking"), ""},
+	{MNOTE_FUJI_TAG_SEQUENCE_NUMBER, "ContinuousSequence", N_("Continuous Sequence Number"), ""},
+	{MNOTE_FUJI_TAG_FINEPIX_COLOR, "FinePixColor", N_("FinePix Color"), ""},
+	{MNOTE_FUJI_TAG_BLUR_CHECK, "BlurCheck", N_("Blur Check"), ""},
+	{MNOTE_FUJI_TAG_FOCUS_CHECK, "AutoFocusCheck", N_("Auto Focus Check"), ""},
+	{MNOTE_FUJI_TAG_AUTO_EXPOSURE_CHECK, "AutoExposureCheck", N_("Auto Exposure Check"), ""},
+	{MNOTE_FUJI_TAG_DYNAMIC_RANGE, "DynamicRange", N_("Dynamic Range"), ""},
+	{MNOTE_FUJI_TAG_FILM_MODE, "FilmMode", N_("Film Simulation Mode"), ""},
+	{MNOTE_FUJI_TAG_DYNAMIC_RANGE_SETTING, "DRangeMode", N_("Dynamic Range Wide Mode"), ""},
+	{MNOTE_FUJI_TAG_DEV_DYNAMIC_RANGE_SETTING, "DevDRangeMode", N_("Development Dynamic Range Wide Mode"), ""},
+	{MNOTE_FUJI_TAG_MIN_FOCAL_LENGTH, "MinFocalLen", N_("Minimum Focal Length"), ""},
+	{MNOTE_FUJI_TAG_MAX_FOCAL_LENGTH, "MaxFocalLen", N_("Maximum Focal Length"), ""},
+	{MNOTE_FUJI_TAG_MAX_APERT_AT_MIN_FOC, "MaxApertAtMinFoc", N_("Maximum Aperture at Minimum Focal"), ""},
+	{MNOTE_FUJI_TAG_MAX_APERT_AT_MAX_FOC, "MaxApertAtMaxFoc", N_("Maximum Aperture at Maximum Focal"), ""},
+	{MNOTE_FUJI_TAG_FILE_SOURCE, "FileSource", N_("File Source"), ""},
+	{MNOTE_FUJI_TAG_ORDER_NUMBER, "OrderNumber", N_("Order Number"), ""},
+	{MNOTE_FUJI_TAG_FRAME_NUMBER, "FrameNumber", N_("Frame Number"), ""},
+#endif
+	{0, NULL, NULL, NULL}
+};
+
+const char *
+mnote_fuji_tag_get_name (MnoteFujiTag t)
+{
+	unsigned int i;
+
+	for (i = 0; i < sizeof (table) / sizeof (table[0]); i++)
+		if (table[i].tag == t) return (table[i].name);
+	return NULL;
+}
+
+const char *
+mnote_fuji_tag_get_title (MnoteFujiTag t)
+{
+	unsigned int i;
+
+	bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
+	for (i = 0; i < sizeof (table) / sizeof (table[0]); i++)
+		if (table[i].tag == t) return (_(table[i].title));
+	return NULL;
+}
+
+const char *
+mnote_fuji_tag_get_description (MnoteFujiTag t)
+{
+	unsigned int i;
+
+	for (i = 0; i < sizeof (table) / sizeof (table[0]); i++)
+		if (table[i].tag == t) {
+			if (!*table[i].description)
+				return "";
+			bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
+			return _(table[i].description);
+		}
+	return NULL;
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/fuji/mnote-fuji-tag.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/fuji/mnote-fuji-tag.h
new file mode 100644
index 0000000000000000000000000000000000000000..1d250e452efccb84db773e7665748b7250b7627e
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/fuji/mnote-fuji-tag.h
@@ -0,0 +1,92 @@
+/* mnote-fuji-tag.h
+ *
+ * Copyright (c) 2002 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#ifndef __MNOTE_FUJI_TAG_H__
+#define __MNOTE_FUJI_TAG_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#include <libexif/exif-data.h>
+
+enum _MnoteFujiTag {
+	MNOTE_FUJI_TAG_VERSION                  = 0x0000,
+	MNOTE_FUJI_TAG_SERIAL_NUMBER            = 0x0010,
+	MNOTE_FUJI_TAG_QUALITY                  = 0x1000,
+	MNOTE_FUJI_TAG_SHARPNESS                = 0x1001,
+	MNOTE_FUJI_TAG_WHITE_BALANCE            = 0x1002,
+	MNOTE_FUJI_TAG_COLOR                    = 0x1003,
+	MNOTE_FUJI_TAG_TONE                     = 0x1004,
+	MNOTE_FUJI_TAG_UNKNOWN_1006             = 0x1006,
+	MNOTE_FUJI_TAG_UNKNOWN_1007             = 0x1007,
+	MNOTE_FUJI_TAG_UNKNOWN_1008             = 0x1008,
+	MNOTE_FUJI_TAG_UNKNOWN_1009             = 0x1009,
+	MNOTE_FUJI_TAG_UNKNOWN_100A             = 0x100A,
+	MNOTE_FUJI_TAG_UNKNOWN_100B             = 0x100B,
+	MNOTE_FUJI_TAG_FLASH_MODE               = 0x1010,
+	MNOTE_FUJI_TAG_FLASH_STRENGTH           = 0x1011,
+	MNOTE_FUJI_TAG_MACRO                    = 0x1020,
+	MNOTE_FUJI_TAG_FOCUS_MODE               = 0x1021,
+	MNOTE_FUJI_TAG_UNKNOWN_1022             = 0x1022,
+	MNOTE_FUJI_TAG_FOCUS_POINT              = 0x1023,
+	MNOTE_FUJI_TAG_UNKNOWN_1024             = 0x1024,
+	MNOTE_FUJI_TAG_UNKNOWN_1025             = 0x1025,
+	MNOTE_FUJI_TAG_SLOW_SYNC                = 0x1030,
+	MNOTE_FUJI_TAG_PICTURE_MODE             = 0x1031,
+	MNOTE_FUJI_TAG_UNKNOWN_1032             = 0x1032,
+	MNOTE_FUJI_TAG_CONT_TAKING              = 0x1100,
+	MNOTE_FUJI_TAG_SEQUENCE_NUMBER          = 0x1101,
+	MNOTE_FUJI_TAG_UNKNOWN_1200             = 0x1200,
+	MNOTE_FUJI_TAG_FINEPIX_COLOR            = 0x1210,
+	MNOTE_FUJI_TAG_BLUR_CHECK               = 0x1300,
+	MNOTE_FUJI_TAG_FOCUS_CHECK              = 0x1301,
+	MNOTE_FUJI_TAG_AUTO_EXPOSURE_CHECK      = 0x1302,
+	MNOTE_FUJI_TAG_UNKNOWN_1303             = 0x1303,
+	MNOTE_FUJI_TAG_DYNAMIC_RANGE            = 0x1400,
+	MNOTE_FUJI_TAG_FILM_MODE                = 0x1401,
+	MNOTE_FUJI_TAG_DYNAMIC_RANGE_SETTING    = 0x1402,
+	MNOTE_FUJI_TAG_DEV_DYNAMIC_RANGE_SETTING= 0x1403,
+	MNOTE_FUJI_TAG_MIN_FOCAL_LENGTH         = 0x1404,
+	MNOTE_FUJI_TAG_MAX_FOCAL_LENGTH         = 0x1405,
+	MNOTE_FUJI_TAG_MAX_APERT_AT_MIN_FOC     = 0x1406,
+	MNOTE_FUJI_TAG_MAX_APERT_AT_MAX_FOC     = 0x1407,
+	MNOTE_FUJI_TAG_UNKNOWN_1408             = 0x1408,
+	MNOTE_FUJI_TAG_UNKNOWN_1409             = 0x1409,
+	MNOTE_FUJI_TAG_UNKNOWN_140A             = 0x140A,
+	MNOTE_FUJI_TAG_UNKNOWN_1410             = 0x1410,
+	MNOTE_FUJI_TAG_UNKNOWN_1421             = 0x1421,
+	MNOTE_FUJI_TAG_UNKNOWN_4100             = 0x4100,
+	MNOTE_FUJI_TAG_UNKNOWN_4800             = 0x4800,
+	MNOTE_FUJI_TAG_FILE_SOURCE              = 0x8000,
+	MNOTE_FUJI_TAG_ORDER_NUMBER             = 0x8002,
+	MNOTE_FUJI_TAG_FRAME_NUMBER             = 0x8003,
+};
+typedef enum _MnoteFujiTag MnoteFujiTag;
+
+const char *mnote_fuji_tag_get_name        (MnoteFujiTag tag);
+const char *mnote_fuji_tag_get_title       (MnoteFujiTag tag);
+const char *mnote_fuji_tag_get_description (MnoteFujiTag tag);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __MNOTE_FUJI_TAG_H__ */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/i18n.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/i18n.h
new file mode 100644
index 0000000000000000000000000000000000000000..dbfe258af2e8604506d9cf94945bf184839237ae
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/i18n.h
@@ -0,0 +1,52 @@
+/* i18n.h
+ *
+ * Copyright (c) 2001 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#ifndef __I18N_H__
+#define __I18N_H__
+
+#include "config.h"
+
+#ifdef ENABLE_NLS
+#  include <libintl.h>
+#  undef _
+#  define _(String) dgettext (GETTEXT_PACKAGE, String)
+#  ifdef gettext_noop
+#    define N_(String) gettext_noop (String)
+#  else
+#    define N_(String) (String)
+#  endif
+#else
+#  define textdomain(String) (String)
+#  define gettext(String) (String)
+#  define ngettext(String1,String2,Count) (Count==1?String1:String2)
+#  define dgettext(Domain,Message) (Message)
+#  define dcgettext(Domain,Message,Type) (Message)
+#ifdef __WATCOMC__
+#    define bind_textdomain_codeset(Domain,Codeset)
+#    define bindtextdomain(Domain,Directory)
+#else
+#    define bind_textdomain_codeset(Domain,Codeset) (Codeset)
+#    define bindtextdomain(Domain,Directory) (Domain)
+#endif
+#  define _(String) (String)
+#  define N_(String) (String)
+#endif
+
+#endif /* __I18N_H__ */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/libexif.sym b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/libexif.sym
new file mode 100644
index 0000000000000000000000000000000000000000..f1d77cf429b60f1b8ca61d47be89f3529b7b3198
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/libexif.sym
@@ -0,0 +1,129 @@
+exif_array_set_byte_order
+exif_byte_order_get_name
+exif_content_add_entry
+exif_content_dump
+exif_content_fix
+exif_content_foreach_entry
+exif_content_free
+exif_content_get_entry
+exif_content_get_ifd
+exif_content_log
+exif_content_new
+exif_content_new_mem
+exif_content_ref
+exif_content_remove_entry
+exif_content_unref
+exif_data_dump
+exif_data_fix
+exif_data_foreach_content
+exif_data_free
+exif_data_get_byte_order
+exif_data_get_data_type
+exif_data_get_log
+exif_data_get_mnote_data
+exif_data_load_data
+exif_data_log
+exif_data_new
+exif_data_new_from_data
+exif_data_new_from_file
+exif_data_new_mem
+exif_data_option_get_description
+exif_data_option_get_name
+exif_data_ref
+exif_data_save_data
+exif_data_set_byte_order
+exif_data_set_data_type
+exif_data_set_option
+exif_data_unref
+exif_data_unset_option
+exif_entry_dump
+exif_entry_fix
+exif_entry_free
+exif_entry_get_value
+exif_entry_initialize
+exif_entry_new
+exif_entry_new_mem
+exif_entry_ref
+exif_entry_unref
+exif_format_get_name
+exif_format_get_size
+exif_get_long
+exif_get_rational
+exif_get_short
+exif_get_slong
+exif_get_srational
+exif_get_sshort
+exif_ifd_get_name
+exif_loader_get_data
+exif_loader_log
+exif_loader_new
+exif_loader_new_mem
+exif_loader_ref
+exif_loader_reset
+exif_loader_unref
+exif_loader_write
+exif_loader_write_file
+exif_log
+exif_log_code_get_message
+exif_log_code_get_title
+exif_log_free
+exif_log_new
+exif_log_new_mem
+exif_log_ref
+exif_log_set_func
+exif_log_unref
+exif_logv
+exif_mem_alloc
+exif_mem_free
+exif_mem_new
+exif_mem_new_default
+exif_mem_realloc
+exif_mem_ref
+exif_mem_unref
+exif_mnote_data_canon_new
+exif_mnote_data_construct
+exif_mnote_data_count
+exif_mnote_data_get_description
+exif_mnote_data_get_id
+exif_mnote_data_get_name
+exif_mnote_data_get_title
+exif_mnote_data_get_value
+exif_mnote_data_load
+exif_mnote_data_log
+exif_mnote_data_olympus_new
+exif_mnote_data_pentax_new
+exif_mnote_data_ref
+exif_mnote_data_save
+exif_mnote_data_set_byte_order
+exif_mnote_data_set_offset
+exif_mnote_data_unref
+exif_set_long
+exif_set_rational
+exif_set_short
+exif_set_slong
+exif_set_srational
+exif_set_sshort
+exif_tag_from_name
+exif_tag_get_description
+exif_tag_get_description_in_ifd
+exif_tag_get_name
+exif_tag_get_name_in_ifd
+exif_tag_get_support_level_in_ifd
+exif_tag_get_title
+exif_tag_get_title_in_ifd
+exif_tag_table_count
+exif_tag_table_get_name
+exif_tag_table_get_tag
+mnote_canon_entry_get_value
+mnote_canon_tag_get_description
+mnote_canon_tag_get_name
+mnote_canon_tag_get_title
+mnote_olympus_entry_get_value
+mnote_olympus_tag_get_description
+mnote_olympus_tag_get_name
+mnote_olympus_tag_get_title
+mnote_pentax_entry_get_value
+mnote_pentax_tag_get_description
+mnote_pentax_tag_get_name
+mnote_pentax_tag_get_title
+exif_loader_get_buf
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/olympus/Makefile-files b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/olympus/Makefile-files
new file mode 100644
index 0000000000000000000000000000000000000000..b7b6b3073df2b5547187351e7a831cdaa82dc187
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/olympus/Makefile-files
@@ -0,0 +1,7 @@
+# -*- Makefile -*-
+noinst_LTLIBRARIES += libmnote-olympus.la
+libmnote_olympus_la_SOURCES = \
+	olympus/mnote-olympus-entry.c olympus/mnote-olympus-entry.h \
+	olympus/exif-mnote-data-olympus.c olympus/exif-mnote-data-olympus.h \
+	olympus/mnote-olympus-tag.c olympus/mnote-olympus-tag.h
+libmnote_olympus_la_LIBADD = $(LTLIBINTL)
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/olympus/exif-mnote-data-olympus.c b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/olympus/exif-mnote-data-olympus.c
new file mode 100644
index 0000000000000000000000000000000000000000..099671de8d79afb9164aa90e2f450af353bfc319
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/olympus/exif-mnote-data-olympus.c
@@ -0,0 +1,659 @@
+/* exif-mnote-data-olympus.c
+ *
+ * Copyright (c) 2002, 2003 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#include <config.h>
+#include "exif-mnote-data-olympus.h"
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+#include <libexif/exif-utils.h>
+#include <libexif/exif-data.h>
+
+#define DEBUG
+
+/* Uncomment this to fix a problem with Sanyo MakerNotes. It's probably best
+ * not to in most cases because it seems to only affect the thumbnail tag
+ * which is duplicated in IFD 1, and fixing the offset could actually cause
+ * problems with other software that expects the broken form.
+ */
+/*#define EXIF_OVERCOME_SANYO_OFFSET_BUG */
+
+static enum OlympusVersion
+exif_mnote_data_olympus_identify_variant (const unsigned char *buf,
+		unsigned int buf_size);
+
+
+static void
+exif_mnote_data_olympus_clear (ExifMnoteDataOlympus *n)
+{
+	ExifMnoteData *d = (ExifMnoteData *) n;
+	unsigned int i;
+
+	if (!n) return;
+
+	if (n->entries) {
+		for (i = 0; i < n->count; i++)
+			if (n->entries[i].data) {
+				exif_mem_free (d->mem, n->entries[i].data);
+				n->entries[i].data = NULL;
+			}
+		exif_mem_free (d->mem, n->entries);
+		n->entries = NULL;
+		n->count = 0;
+	}
+}
+
+static void
+exif_mnote_data_olympus_free (ExifMnoteData *n)
+{
+	if (!n) return;
+
+	exif_mnote_data_olympus_clear ((ExifMnoteDataOlympus *) n);
+}
+
+static char *
+exif_mnote_data_olympus_get_value (ExifMnoteData *d, unsigned int i, char *val, unsigned int maxlen)
+{
+	ExifMnoteDataOlympus *n = (ExifMnoteDataOlympus *) d;
+
+	if (!d || !val) return NULL;
+	if (i > n->count -1) return NULL;
+/*
+	exif_log (d->log, EXIF_LOG_CODE_DEBUG, "ExifMnoteDataOlympus",
+		  "Querying value for tag '%s'...",
+		  mnote_olympus_tag_get_name (n->entries[i].tag));
+*/
+	return mnote_olympus_entry_get_value (&n->entries[i], val, maxlen);
+}
+
+
+
+
+/** 
+ * @brief save the MnoteData from ne to buf
+ * 
+ * @param ne extract the data from this structure 
+ * @param *buf write the mnoteData to this buffer (buffer will be allocated)
+ * @param buf_size the size of the buffer
+ */
+static void
+exif_mnote_data_olympus_save (ExifMnoteData *ne,
+		unsigned char **buf, unsigned int *buf_size)
+{
+	ExifMnoteDataOlympus *n = (ExifMnoteDataOlympus *) ne;
+	size_t i, o, s, doff, base = 0, o2 = 6 + 2;
+	size_t datao = 0;
+	unsigned char *t;
+	size_t ts;
+
+	if (!n || !buf || !buf_size) return;
+
+	/*
+	 * Allocate enough memory for all entries and the number of entries.
+	 */
+	*buf_size = 6 + 2 + 2 + n->count * 12;
+	switch (n->version) {
+	case olympusV1:
+	case sanyoV1:
+	case epsonV1:
+		*buf = exif_mem_alloc (ne->mem, *buf_size);
+		if (!*buf) {
+			EXIF_LOG_NO_MEMORY(ne->log, "ExifMnoteDataOlympus", *buf_size);
+			return;
+		}
+
+		/* Write the header and the number of entries. */
+		strcpy ((char *)*buf, n->version==sanyoV1?"SANYO":
+					(n->version==epsonV1?"EPSON":"OLYMP"));
+		exif_set_short (*buf + 6, n->order, (ExifShort) 1);
+		datao = n->offset;
+		break;
+
+	case olympusV2:
+		*buf_size += 8-6 + 4;
+		*buf = exif_mem_alloc (ne->mem, *buf_size);
+		if (!*buf) {
+			EXIF_LOG_NO_MEMORY(ne->log, "ExifMnoteDataOlympus", *buf_size);
+			return;
+		}
+
+		/* Write the header and the number of entries. */
+		strcpy ((char *)*buf, "OLYMPUS");
+		exif_set_short (*buf + 8, n->order, (ExifShort) (
+			(n->order == EXIF_BYTE_ORDER_INTEL) ?
+			('I' << 8) | 'I' :
+			('M' << 8) | 'M'));
+		exif_set_short (*buf + 10, n->order, (ExifShort) 3);
+		o2 += 4;
+		break;
+
+	case nikonV1: 
+		base = MNOTE_NIKON1_TAG_BASE;
+
+		/* v1 has offsets based to main IFD, not makernote IFD */
+		datao += n->offset + 10;
+		/* subtract the size here, so the increment in the next case will not harm us */
+		*buf_size -= 8 + 2;
+	/* Fall through to nikonV2 handler */
+	case nikonV2: 
+	/* Write out V0 files in V2 format */
+	case nikonV0: 
+		*buf_size += 8 + 2;
+		*buf_size += 4; /* Next IFD pointer */
+		*buf = exif_mem_alloc (ne->mem, *buf_size);
+		if (!*buf) {
+			EXIF_LOG_NO_MEMORY(ne->log, "ExifMnoteDataOlympus", *buf_size);
+			return;
+		}
+
+		/* Write the header and the number of entries. */
+		strcpy ((char *)*buf, "Nikon");
+		(*buf)[6] = n->version;
+
+		if (n->version != nikonV1) {
+			exif_set_short (*buf + 10, n->order, (ExifShort) (
+				(n->order == EXIF_BYTE_ORDER_INTEL) ?
+				('I' << 8) | 'I' :
+				('M' << 8) | 'M'));
+			exif_set_short (*buf + 12, n->order, (ExifShort) 0x2A);
+			exif_set_long (*buf + 14, n->order, (ExifShort) 8);
+			o2 += 2 + 8;
+		}
+		datao -= 10;
+		/* Reset next IFD pointer */
+		exif_set_long (*buf + o2 + 2 + n->count * 12, n->order, 0);
+		break;
+
+	default:
+		return;
+	}
+
+	exif_set_short (*buf + o2, n->order, (ExifShort) n->count);
+	o2 += 2;
+
+	/* Save each entry */
+	for (i = 0; i < n->count; i++) {
+		o = o2 + i * 12;
+		exif_set_short (*buf + o + 0, n->order,
+				(ExifShort) (n->entries[i].tag - base));
+		exif_set_short (*buf + o + 2, n->order,
+				(ExifShort) n->entries[i].format);
+		exif_set_long  (*buf + o + 4, n->order,
+				n->entries[i].components);
+		o += 8;
+		s = exif_format_get_size (n->entries[i].format) *
+						n->entries[i].components;
+		if (s > 65536) {
+			/* Corrupt data: EXIF data size is limited to the
+			 * maximum size of a JPEG segment (64 kb).
+			 */
+			continue;
+		}
+		if (s > 4) {
+			doff = *buf_size;
+			ts = *buf_size + s;
+			t = exif_mem_realloc (ne->mem, *buf,
+						 sizeof (char) * ts);
+			if (!t) {
+				EXIF_LOG_NO_MEMORY(ne->log, "ExifMnoteDataOlympus", ts);
+				return;
+			}
+			*buf = t;
+			*buf_size = ts;
+			exif_set_long (*buf + o, n->order, datao + doff);
+		} else
+			doff = o;
+
+		/* Write the data. */
+		if (n->entries[i].data) {
+			memcpy (*buf + doff, n->entries[i].data, s);
+		} else {
+			/* Most certainly damaged input file */
+			memset (*buf + doff, 0, s);
+		}
+	}
+}
+
+static void
+exif_mnote_data_olympus_load (ExifMnoteData *en,
+			      const unsigned char *buf, unsigned int buf_size)
+{
+	ExifMnoteDataOlympus *n = (ExifMnoteDataOlympus *) en;
+	ExifShort c;
+	size_t i, tcount, o, o2, datao = 6, base = 0;
+
+	if (!n || !buf || !buf_size) {
+		exif_log (en->log, EXIF_LOG_CODE_CORRUPT_DATA,
+			  "ExifMnoteDataOlympus", "Short MakerNote");
+		return;
+	}
+	o2 = 6 + n->offset; /* Start of interesting data */
+	if ((o2 + 10 < o2) || (o2 + 10 < 10) || (o2 + 10 > buf_size)) {
+		exif_log (en->log, EXIF_LOG_CODE_CORRUPT_DATA,
+			  "ExifMnoteDataOlympus", "Short MakerNote");
+		return;
+	}
+
+	/*
+	 * Olympus headers start with "OLYMP" and need to have at least
+	 * a size of 22 bytes (6 for 'OLYMP', 2 other bytes, 2 for the
+	 * number of entries, and 12 for one entry.
+	 *
+	 * Sanyo format is identical and uses identical tags except that
+	 * header starts with "SANYO".
+	 *
+	 * Epson format is identical and uses identical tags except that
+	 * header starts with "EPSON".
+	 *
+	 * Nikon headers start with "Nikon" (6 bytes including '\0'), 
+	 * version number (1 or 2).
+	 * 
+	 * Version 1 continues with 0, 1, 0, number_of_tags,
+	 * or just with number_of_tags (models D1H, D1X...).
+	 * 
+	 * Version 2 continues with an unknown byte (0 or 10),
+	 * two unknown bytes (0), "MM" or "II", another byte 0 and 
+	 * lastly 0x2A.
+	 */
+	n->version = exif_mnote_data_olympus_identify_variant(buf+o2, buf_size-o2);
+	switch (n->version) {
+	case olympusV1:
+	case sanyoV1:
+	case epsonV1:
+		exif_log (en->log, EXIF_LOG_CODE_DEBUG, "ExifMnoteDataOlympus",
+			"Parsing Olympus/Sanyo/Epson maker note v1...");
+
+		/* The number of entries is at position 8. */
+		if (buf[o2 + 6] == 1)
+			n->order = EXIF_BYTE_ORDER_INTEL;
+		else if (buf[o2 + 6 + 1] == 1)
+			n->order = EXIF_BYTE_ORDER_MOTOROLA;
+		o2 += 8;
+		if (o2 + 2 > buf_size) return;
+		c = exif_get_short (buf + o2, n->order);
+		if ((!(c & 0xFF)) && (c > 0x500)) {
+			if (n->order == EXIF_BYTE_ORDER_INTEL) {
+				n->order = EXIF_BYTE_ORDER_MOTOROLA;
+			} else {
+				n->order = EXIF_BYTE_ORDER_INTEL;
+			}
+		}
+		break;
+
+	case olympusV2:
+		/* Olympus S760, S770 */
+		datao = o2;
+		o2 += 8;
+		exif_log (en->log, EXIF_LOG_CODE_DEBUG, "ExifMnoteDataOlympus",
+			"Parsing Olympus maker note v2 (0x%02x, %02x, %02x, %02x)...",
+			buf[o2], buf[o2 + 1], buf[o2 + 2], buf[o2 + 3]);
+
+		if ((buf[o2] == 'I') && (buf[o2 + 1] == 'I'))
+			n->order = EXIF_BYTE_ORDER_INTEL;
+		else if ((buf[o2] == 'M') && (buf[o2 + 1] == 'M'))
+			n->order = EXIF_BYTE_ORDER_MOTOROLA;
+
+		/* The number of entries is at position 8+4. */
+		o2 += 4;
+		break;
+
+	case nikonV1:
+		o2 += 6;
+		if (o2 >= buf_size) return;
+		exif_log (en->log, EXIF_LOG_CODE_DEBUG, "ExifMnoteDataOlympus",
+			"Parsing Nikon maker note v1 (0x%02x, %02x, %02x, "
+			"%02x, %02x, %02x, %02x, %02x)...",
+			buf[o2 + 0], buf[o2 + 1], buf[o2 + 2], buf[o2 + 3], 
+			buf[o2 + 4], buf[o2 + 5], buf[o2 + 6], buf[o2 + 7]);
+
+		/* Skip version number */
+		o2 += 1;
+
+		/* Skip an unknown byte (00 or 0A). */
+		o2 += 1;
+
+		base = MNOTE_NIKON1_TAG_BASE;
+		/* Fix endianness, if needed */
+		if (o2 + 2 > buf_size) return;
+		c = exif_get_short (buf + o2, n->order);
+		if ((!(c & 0xFF)) && (c > 0x500)) {
+			if (n->order == EXIF_BYTE_ORDER_INTEL) {
+				n->order = EXIF_BYTE_ORDER_MOTOROLA;
+			} else {
+				n->order = EXIF_BYTE_ORDER_INTEL;
+			}
+		}
+		break;
+
+	case nikonV2:
+		o2 += 6;
+		if (o2 >= buf_size) return;
+		exif_log (en->log, EXIF_LOG_CODE_DEBUG, "ExifMnoteDataOlympus",
+			"Parsing Nikon maker note v2 (0x%02x, %02x, %02x, "
+			"%02x, %02x, %02x, %02x, %02x)...",
+			buf[o2 + 0], buf[o2 + 1], buf[o2 + 2], buf[o2 + 3], 
+			buf[o2 + 4], buf[o2 + 5], buf[o2 + 6], buf[o2 + 7]);
+
+		/* Skip version number */
+		o2 += 1;
+
+		/* Skip an unknown byte (00 or 0A). */
+		o2 += 1;
+
+		/* Skip 2 unknown bytes (00 00). */
+		o2 += 2;
+
+		/*
+		 * Byte order. From here the data offset
+		 * gets calculated.
+		 */
+		datao = o2;
+		if (o2 >= buf_size) return;
+		if (!strncmp ((char *)&buf[o2], "II", 2))
+			n->order = EXIF_BYTE_ORDER_INTEL;
+		else if (!strncmp ((char *)&buf[o2], "MM", 2))
+			n->order = EXIF_BYTE_ORDER_MOTOROLA;
+		else {
+			exif_log (en->log, EXIF_LOG_CODE_DEBUG,
+				"ExifMnoteDataOlympus", "Unknown "
+				"byte order '%c%c'", buf[o2],
+				buf[o2 + 1]);
+			return;
+		}
+		o2 += 2;
+
+		/* Skip 2 unknown bytes (00 2A). */
+		o2 += 2;
+
+		/* Go to where the number of entries is. */
+		if (o2 + 4 > buf_size) return;
+		o2 = datao + exif_get_long (buf + o2, n->order);
+		break;
+
+	case nikonV0:
+		exif_log (en->log, EXIF_LOG_CODE_DEBUG, "ExifMnoteDataOlympus",
+			"Parsing Nikon maker note v0 (0x%02x, %02x, %02x, "
+			"%02x, %02x, %02x, %02x, %02x)...",
+			buf[o2 + 0], buf[o2 + 1], buf[o2 + 2], buf[o2 + 3], 
+			buf[o2 + 4], buf[o2 + 5], buf[o2 + 6], buf[o2 + 7]);
+		/* 00 1b is # of entries in Motorola order - the rest should also be in MM order */
+		n->order = EXIF_BYTE_ORDER_MOTOROLA;
+		break;
+	
+	default:
+		exif_log (en->log, EXIF_LOG_CODE_DEBUG, "ExifMnoteDataOlympus",
+			"Unknown Olympus variant %i.", n->version);
+		return;
+	}
+
+	/* Sanity check the offset */
+	if ((o2 + 2 < o2) || (o2 + 2 < 2) || (o2 + 2 > buf_size)) {
+		exif_log (en->log, EXIF_LOG_CODE_CORRUPT_DATA,
+			  "ExifMnoteOlympus", "Short MakerNote");
+		return;
+	}
+
+	/* Read the number of tags */
+	c = exif_get_short (buf + o2, n->order);
+	o2 += 2;
+
+	/* Remove any old entries */
+	exif_mnote_data_olympus_clear (n);
+
+	/* Reserve enough space for all the possible MakerNote tags */
+	n->entries = exif_mem_alloc (en->mem, sizeof (MnoteOlympusEntry) * c);
+	if (!n->entries) {
+		EXIF_LOG_NO_MEMORY(en->log, "ExifMnoteOlympus", sizeof (MnoteOlympusEntry) * c);
+		return;
+	}
+
+	/* Parse all c entries, storing ones that are successfully parsed */
+	tcount = 0;
+	for (i = c, o = o2; i; --i, o += 12) {
+		size_t s;
+		if ((o + 12 < o) || (o + 12 < 12) || (o + 12 > buf_size)) {
+			exif_log (en->log, EXIF_LOG_CODE_CORRUPT_DATA,
+				  "ExifMnoteOlympus", "Short MakerNote");
+			break;
+		}
+
+	    n->entries[tcount].tag        = exif_get_short (buf + o, n->order) + base;
+	    n->entries[tcount].format     = exif_get_short (buf + o + 2, n->order);
+	    n->entries[tcount].components = exif_get_long (buf + o + 4, n->order);
+	    n->entries[tcount].order      = n->order;
+
+	    exif_log (en->log, EXIF_LOG_CODE_DEBUG, "ExifMnoteOlympus",
+		      "Loading entry 0x%x ('%s')...", n->entries[tcount].tag,
+		      mnote_olympus_tag_get_name (n->entries[tcount].tag));
+/*	    exif_log (en->log, EXIF_LOG_CODE_DEBUG, "ExifMnoteOlympus",
+			    "0x%x %d %ld*(%d)",
+		    n->entries[tcount].tag,
+		    n->entries[tcount].format,
+		    n->entries[tcount].components,
+		    (int)exif_format_get_size(n->entries[tcount].format)); */
+
+	    /*
+	     * Size? If bigger than 4 bytes, the actual data is not
+	     * in the entry but somewhere else (offset).
+	     */
+	    s = exif_format_get_size (n->entries[tcount].format) *
+		   			 n->entries[tcount].components;
+		n->entries[tcount].size = s;
+		if (s) {
+			size_t dataofs = o + 8;
+			if (s > 4) {
+				/* The data in this case is merely a pointer */
+				dataofs = exif_get_long (buf + dataofs, n->order) + datao;
+#ifdef EXIF_OVERCOME_SANYO_OFFSET_BUG
+				/* Some Sanyo models (e.g. VPC-C5, C40) suffer from a bug when
+				 * writing the offset for the MNOTE_OLYMPUS_TAG_THUMBNAILIMAGE
+				 * tag in its MakerNote. The offset is actually the absolute
+				 * position in the file instead of the position within the IFD.
+				 */
+			    if (dataofs + s > buf_size && n->version == sanyoV1) {
+					/* fix pointer */
+					dataofs -= datao + 6;
+					exif_log (en->log, EXIF_LOG_CODE_DEBUG,
+						  "ExifMnoteOlympus",
+						  "Inconsistent thumbnail tag offset; attempting to recover");
+			    }
+#endif
+			}
+			if ((dataofs + s < dataofs) || (dataofs + s < s) || 
+			    (dataofs + s > buf_size)) {
+				exif_log (en->log, EXIF_LOG_CODE_DEBUG,
+					  "ExifMnoteOlympus",
+					  "Tag data past end of buffer (%u > %u)",
+					  dataofs + s, buf_size);
+				continue;
+			}
+
+			n->entries[tcount].data = exif_mem_alloc (en->mem, s);
+			if (!n->entries[tcount].data) {
+				EXIF_LOG_NO_MEMORY(en->log, "ExifMnoteOlympus", s);
+				continue;
+			}
+			memcpy (n->entries[tcount].data, buf + dataofs, s);
+		}
+
+		/* Tag was successfully parsed */
+		++tcount;
+	}
+	/* Store the count of successfully parsed tags */
+	n->count = tcount;
+}
+
+static unsigned int
+exif_mnote_data_olympus_count (ExifMnoteData *n)
+{
+	return n ? ((ExifMnoteDataOlympus *) n)->count : 0;
+}
+
+static unsigned int
+exif_mnote_data_olympus_get_id (ExifMnoteData *d, unsigned int n)
+{
+	ExifMnoteDataOlympus *note = (ExifMnoteDataOlympus *) d;
+
+	if (!note) return 0;
+	if (note->count <= n) return 0;
+	return note->entries[n].tag;
+}
+
+static const char *
+exif_mnote_data_olympus_get_name (ExifMnoteData *d, unsigned int i)
+{
+	ExifMnoteDataOlympus *n = (ExifMnoteDataOlympus *) d;
+
+	if (!n) return NULL;
+	if (i >= n->count) return NULL;
+	return mnote_olympus_tag_get_name (n->entries[i].tag);
+}
+
+static const char *
+exif_mnote_data_olympus_get_title (ExifMnoteData *d, unsigned int i)
+{
+	ExifMnoteDataOlympus *n = (ExifMnoteDataOlympus *) d;
+	
+	if (!n) return NULL;
+	if (i >= n->count) return NULL;
+        return mnote_olympus_tag_get_title (n->entries[i].tag);
+}
+
+static const char *
+exif_mnote_data_olympus_get_description (ExifMnoteData *d, unsigned int i)
+{
+	ExifMnoteDataOlympus *n = (ExifMnoteDataOlympus *) d;
+	
+	if (!n) return NULL;
+	if (i >= n->count) return NULL;
+        return mnote_olympus_tag_get_description (n->entries[i].tag);
+}
+
+static void
+exif_mnote_data_olympus_set_byte_order (ExifMnoteData *d, ExifByteOrder o)
+{
+	ExifByteOrder o_orig;
+	ExifMnoteDataOlympus *n = (ExifMnoteDataOlympus *) d;
+	unsigned int i;
+
+	if (!n) return;
+
+	o_orig = n->order;
+	n->order = o;
+	for (i = 0; i < n->count; i++) {
+		n->entries[i].order = o;
+		exif_array_set_byte_order (n->entries[i].format, n->entries[i].data,
+				n->entries[i].components, o_orig, o);
+	}
+}
+
+static void
+exif_mnote_data_olympus_set_offset (ExifMnoteData *n, unsigned int o)
+{
+	if (n) ((ExifMnoteDataOlympus *) n)->offset = o;
+}
+
+static enum OlympusVersion
+exif_mnote_data_olympus_identify_variant (const unsigned char *buf,
+		unsigned int buf_size)
+{
+	/* Olympus, Nikon, Sanyo, Epson */
+	if (buf_size >= 8) {
+		/* Match the terminating NUL character, too */
+		if (!memcmp (buf, "OLYMPUS", 8))
+			   return olympusV2;
+		else if (!memcmp (buf, "OLYMP", 6))
+			   return olympusV1;
+		else if (!memcmp (buf, "SANYO", 6))
+			   return sanyoV1;
+		else if (!memcmp (buf, "EPSON", 6))
+			   return epsonV1;
+		else if (!memcmp (buf, "Nikon", 6)) {
+			switch (buf[6]) {
+				case 1:  return nikonV1;
+				case 2:  return nikonV2;
+				default: return 0; /* Unrecognized Nikon variant */
+			}
+		}
+	}
+
+	/* Another variant of Nikon */
+	if ((buf_size >= 2) && (buf[0] == 0x00) && (buf[1] == 0x1b)) {
+		return nikonV0;
+	}
+
+	return unrecognized;
+}
+
+int
+exif_mnote_data_olympus_identify (const ExifData *ed, const ExifEntry *e)
+{
+	int variant = exif_mnote_data_olympus_identify_variant(e->data, e->size);
+
+	if (variant == nikonV0) {
+		/* This variant needs some extra checking with the Make */
+		char value[5];
+		ExifEntry *em = exif_data_get_entry (ed, EXIF_TAG_MAKE);
+		variant = unrecognized;
+
+		if (em) {
+			const char *v = exif_entry_get_value (em, value, sizeof(value));
+			if (v && (!strncmp (v, "Nikon", sizeof(value)) || 
+					  !strncmp (v, "NIKON", sizeof(value)) ))
+				/* When saved, this variant will be written out like the
+				 * alternative nikonV2 form above instead
+				 */
+				variant = nikonV0;
+		}
+	}
+
+	return variant;
+}
+
+
+ExifMnoteData *
+exif_mnote_data_olympus_new (ExifMem *mem)
+{
+	ExifMnoteData *d;
+
+	if (!mem) return NULL;
+	
+	d = exif_mem_alloc (mem, sizeof (ExifMnoteDataOlympus));
+	if (!d) return NULL;
+
+	exif_mnote_data_construct (d, mem);
+
+	/* Set up function pointers */
+	d->methods.free            = exif_mnote_data_olympus_free;
+	d->methods.set_byte_order  = exif_mnote_data_olympus_set_byte_order;
+	d->methods.set_offset      = exif_mnote_data_olympus_set_offset;
+	d->methods.load            = exif_mnote_data_olympus_load;
+	d->methods.save            = exif_mnote_data_olympus_save;
+	d->methods.count           = exif_mnote_data_olympus_count;
+	d->methods.get_id          = exif_mnote_data_olympus_get_id;
+	d->methods.get_name        = exif_mnote_data_olympus_get_name;
+	d->methods.get_title       = exif_mnote_data_olympus_get_title;
+	d->methods.get_description = exif_mnote_data_olympus_get_description;
+	d->methods.get_value       = exif_mnote_data_olympus_get_value;
+
+	return d;
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/olympus/exif-mnote-data-olympus.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/olympus/exif-mnote-data-olympus.h
new file mode 100644
index 0000000000000000000000000000000000000000..d08b0f40763168d4a887fb3c87ca6b40a2799cf2
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/olympus/exif-mnote-data-olympus.h
@@ -0,0 +1,67 @@
+/* mnote-olympus-data.h
+ *
+ * Copyright (c) 2002 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#ifndef __MNOTE_OLYMPUS_CONTENT_H__
+#define __MNOTE_OLYMPUS_CONTENT_H__
+
+#include <libexif/exif-mnote-data-priv.h>
+#include <libexif/olympus/mnote-olympus-entry.h>
+#include <libexif/exif-byte-order.h>
+#include <libexif/exif-data.h>
+#include <libexif/exif-mem.h>
+
+enum OlympusVersion {
+	unrecognized = 0,
+	nikonV1 = 1,
+	nikonV2 = 2,
+	olympusV1 = 3,
+	olympusV2 = 4,
+	sanyoV1 = 5,
+	epsonV1 = 6,
+	nikonV0 = 7
+};
+
+
+typedef struct _ExifMnoteDataOlympus ExifMnoteDataOlympus;
+
+struct _ExifMnoteDataOlympus {
+	ExifMnoteData parent;
+
+	MnoteOlympusEntry *entries;
+	unsigned int count;
+
+	ExifByteOrder order;
+	unsigned int offset;
+	enum OlympusVersion version;
+};
+
+/*! Detect if MakerNote is recognized as one handled by the Olympus module.
+ * 
+ * \param[in] ed image #ExifData to identify as as an Olympus type
+ * \param[in] e #ExifEntry for EXIF_TAG_MAKER_NOTE, from within ed but
+ *   duplicated here for convenience
+ * \return 0 if not recognized, nonzero if recognized. The specific nonzero 
+ *   value returned may identify a subtype unique within this module.
+ */
+int exif_mnote_data_olympus_identify (const ExifData *ed, const ExifEntry *e);
+
+ExifMnoteData *exif_mnote_data_olympus_new (ExifMem *);
+
+#endif /* __MNOTE_OLYMPUS_CONTENT_H__ */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/olympus/mnote-olympus-entry.c b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/olympus/mnote-olympus-entry.c
new file mode 100644
index 0000000000000000000000000000000000000000..9db522483ad27c2ecebb39c1d699257524aff4dc
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/olympus/mnote-olympus-entry.c
@@ -0,0 +1,821 @@
+/* mnote-olympus-entry.c
+ *
+ * Copyright (c) 2002-2009 Lutz Mueller <lutz@users.sourceforge.net> et. al.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#include <config.h>
+#include "mnote-olympus-entry.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <libexif/exif-format.h>
+#include <libexif/exif-utils.h>
+#include <libexif/exif-entry.h>
+#include <libexif/i18n.h>
+
+#define CF(format,target,v,maxlen)                              \
+{                                                               \
+        if (format != target) {                                 \
+                snprintf (v, maxlen,	                        \
+                        _("Invalid format '%s', "               \
+                        "expected '%s'."),                      \
+                        exif_format_get_name (format),          \
+                        exif_format_get_name (target));         \
+                break;                                          \
+        }                                                       \
+}
+
+#define CF2(format,target1,target2,v,maxlen)                    \
+{                                                               \
+        if ((format != target1) && (format != target2)) {       \
+                snprintf (v, maxlen,	                        \
+                        _("Invalid format '%s', "               \
+                        "expected '%s' or '%s'."),              \
+                        exif_format_get_name (format),          \
+                        exif_format_get_name (target1),         \
+                        exif_format_get_name (target2));        \
+                break;                                          \
+        }                                                       \
+}
+
+#define CC(number,target,v,maxlen)                                      \
+{                                                                       \
+        if (number != target) {                                         \
+                snprintf (v, maxlen,                                    \
+                        _("Invalid number of components (%i, "          \
+                        "expected %i)."), (int) number, (int) target);  \
+                break;                                                  \
+        }                                                               \
+}
+
+#define CC2(number,t1,t2,v,maxlen)                                      \
+{                                                                       \
+	if ((number < t1) || (number > t2)) {                           \
+		snprintf (v, maxlen,                                    \
+			_("Invalid number of components (%i, "          \
+			"expected %i or %i)."), (int) number,		\
+			(int) t1, (int) t2);  				\
+		break;                                                  \
+	}                                                               \
+}
+
+static const struct {
+	ExifTag tag;
+	ExifFormat fmt;
+	struct {
+		int index;
+		const char *string;
+	} elem[24];
+} items[] = {
+#ifndef NO_VERBOSE_TAG_DATA
+  { MNOTE_NIKON_TAG_LENSTYPE, EXIF_FORMAT_BYTE,
+    { {0, N_("AF non D lens")},
+      {1, N_("Manual")},
+      {2, N_("AF-D or AF-S lens")},
+      {6, N_("AF-D G lens")},
+      {10, N_("AF-D VR lens")},
+      {14, N_("AF-D G VR lens")},
+      {0, NULL}}},
+  { MNOTE_NIKON_TAG_FLASHUSED, EXIF_FORMAT_BYTE,
+    { {0, N_("Flash did not fire")},
+      {4, N_("Flash unit unknown")},
+      {7, N_("Flash is external")},
+      {9, N_("Flash is on camera")},
+      {0, NULL}}},
+  { MNOTE_NIKON1_TAG_QUALITY, EXIF_FORMAT_SHORT,
+    { {1, N_("VGA basic")},
+      {2, N_("VGA normal")},
+      {3, N_("VGA fine")},
+      {4, N_("SXGA basic")},
+      {5, N_("SXGA normal")},
+      {6, N_("SXGA fine")},
+      {10, N_("2 Mpixel basic")},
+      {11, N_("2 Mpixel normal")},
+      {12, N_("2 Mpixel fine")},
+      {0, NULL}}},
+  { MNOTE_NIKON1_TAG_COLORMODE, EXIF_FORMAT_SHORT,
+    { {1, N_("Color")},
+      {2, N_("Monochrome")},
+      {0, NULL}}},
+  { MNOTE_NIKON1_TAG_IMAGEADJUSTMENT, EXIF_FORMAT_SHORT,
+    { {0, N_("Normal")},
+      {1, N_("Bright+")},
+      {2, N_("Bright-")},
+      {3, N_("Contrast+")},
+      {4, N_("Contrast-")},
+      {0, NULL}}},
+  { MNOTE_NIKON1_TAG_CCDSENSITIVITY, EXIF_FORMAT_SHORT,
+    { {0, N_("ISO 80")},
+      {2, N_("ISO 160")},
+      {4, N_("ISO 320")},
+      {5, N_("ISO 100")},
+      {0, NULL}}},
+  { MNOTE_NIKON1_TAG_WHITEBALANCE, EXIF_FORMAT_SHORT,
+    { {0, N_("Auto")},
+      {1, N_("Preset")},
+      {2, N_("Daylight")},
+      {3, N_("Incandescence")},
+      {4, N_("Fluorescence")},
+      {5, N_("Cloudy")},
+      {6, N_("SpeedLight")},
+      {0, NULL}}},
+  { MNOTE_NIKON1_TAG_CONVERTER, EXIF_FORMAT_SHORT,
+    { {0, N_("No fisheye")},
+      {1, N_("Fisheye on")},
+      {0, NULL}}},
+  { MNOTE_OLYMPUS_TAG_QUALITY, EXIF_FORMAT_SHORT,
+    { {1, N_("Normal, SQ")},
+      {2, N_("Normal, HQ")},
+      {3, N_("Normal, SHQ")},
+      {4, N_("Normal, RAW")},
+      {5, N_("Normal, SQ1")},
+      {6, N_("Normal, SQ2")},
+      {7, N_("Normal, super high")},
+      {17, N_("Normal, standard")},
+      {0x101, N_("Fine, SQ")},
+      {0x102, N_("Fine, HQ")},
+      {0x103, N_("Fine, SHQ")},
+      {0x104, N_("Fine, RAW")},
+      {0x105, N_("Fine, SQ1")},
+      {0x106, N_("Fine, SQ2")},
+      {0x107, N_("Fine, super high")},
+      {0x201, N_("Super fine, SQ")},
+      {0x202, N_("Super fine, HQ")},
+      {0x203, N_("Super fine, SHQ")},
+      {0x204, N_("Super fine, RAW")},
+      {0x205, N_("Super fine, SQ1")},
+      {0x206, N_("Super fine, SQ2")},
+      {0x207, N_("Super fine, super high")},
+      {0x211, N_("Super fine, high")},
+      {0, NULL}}},
+  { MNOTE_OLYMPUS_TAG_MACRO, EXIF_FORMAT_SHORT,
+    { {0, N_("No")},
+      {1, N_("Yes")},
+      {2, N_("Super macro")},
+      {0, NULL}}},
+  { MNOTE_OLYMPUS_TAG_BWMODE, EXIF_FORMAT_SHORT,
+    { {0, N_("No")},
+      {1, N_("Yes")},
+      {0, NULL}}},
+  { MNOTE_OLYMPUS_TAG_ONETOUCHWB, EXIF_FORMAT_SHORT,
+    { {0, N_("Off")},
+      {1, N_("On")},
+      {2, N_("On (Preset)")},
+      {0, NULL}}},
+  { MNOTE_OLYMPUS_TAG_FLASHMODE, EXIF_FORMAT_SHORT,
+    { {0, N_("Auto")},
+      {1, N_("Red-eye reduction")},
+      {2, N_("Fill")},
+      {3, N_("Off")},
+      {0, NULL}}},
+  { MNOTE_OLYMPUS_TAG_FLASHDEVICE, EXIF_FORMAT_SHORT,
+    { {0, N_("None")},
+      {1, N_("Internal")},
+      {4, N_("External")},
+      {5, N_("Internal + external")},
+      {0, NULL}}},
+  { MNOTE_OLYMPUS_TAG_FOCUSRANGE, EXIF_FORMAT_SHORT,
+    { {0, N_("Normal")},
+      {1, N_("Macro")},
+      {0, NULL}}},
+  { MNOTE_OLYMPUS_TAG_MANFOCUS, EXIF_FORMAT_SHORT,
+    { {0, N_("Auto")},
+      {1, N_("Manual")},
+      {0, NULL}}},
+  { MNOTE_OLYMPUS_TAG_SHARPNESS, EXIF_FORMAT_SHORT,
+    { {0, N_("Normal")},
+      {1, N_("Hard")},
+      {2, N_("Soft")},
+      {0, NULL}}},
+  { MNOTE_OLYMPUS_TAG_EXTERNALFLASHBOUNCE, EXIF_FORMAT_SHORT,
+    { {0, N_("No")},
+      {1, N_("Yes")},
+      {0, NULL}}},
+  { MNOTE_OLYMPUS_TAG_CONTRAST, EXIF_FORMAT_SHORT,
+    { {0, N_("Hard")},
+      {1, N_("Normal")},
+      {2, N_("Soft")},
+      {0, NULL}}},
+  { MNOTE_OLYMPUS_TAG_PREVIEWIMAGEVALID, EXIF_FORMAT_LONG,
+    { {0, N_("No")},
+      {1, N_("Yes")},
+      {0, NULL}}},
+  { MNOTE_OLYMPUS_TAG_CCDSCANMODE, EXIF_FORMAT_SHORT,
+    { {0, N_("Interlaced")},
+      {1, N_("Progressive")},
+      {0, NULL}}},
+
+  { MNOTE_SANYO_TAG_SEQUENTIALSHOT, EXIF_FORMAT_SHORT,
+    { {0, N_("None")},
+      {1, N_("Standard")},
+      {2, N_("Best")},
+      {3, N_("Adjust exposure")},
+      {0, NULL}}},
+  { MNOTE_SANYO_TAG_FOCUSMODE, EXIF_FORMAT_SHORT,
+    { {1, N_("Spot focus")},
+      {2, N_("Normal focus")},
+      {0, NULL}}},
+  { MNOTE_SANYO_TAG_RECORDSHUTTERRELEASE, EXIF_FORMAT_SHORT,
+    { {0, N_("Record while down")},
+      {1, N_("Press start, press stop")},
+      {0, NULL}}},
+  { MNOTE_SANYO_TAG_RESAVED, EXIF_FORMAT_SHORT,
+    { {0, N_("No")},
+      {1, N_("Yes")},
+      {0, NULL}}},
+  { MNOTE_SANYO_TAG_CCDSENSITIVITY, EXIF_FORMAT_SHORT,
+    { {0, N_("Auto")},
+      {1, N_("ISO 50")},
+      {3, N_("ISO 100")},
+      {4, N_("ISO 200")},
+      {5, N_("ISO 400")},
+      {0, NULL}}},
+  { MNOTE_SANYO_TAG_SCENESELECT, EXIF_FORMAT_SHORT,
+    { {0, N_("Off")},
+      {1, N_("Sport")},
+      {2, N_("TV")},
+      {3, N_("Night")},
+      {4, N_("User 1")},
+      {5, N_("User 2")},
+      {6, N_("Lamp")},
+      {0, NULL}}},
+  { MNOTE_SANYO_TAG_SEQUENCESHOTINTERVAL, EXIF_FORMAT_SHORT,
+    { {0, N_("5 frames/sec")},
+      {1, N_("10 frames/sec")},
+      {2, N_("15 frames/sec")},
+      {3, N_("20 frames/sec")},
+      {0, NULL}}},
+#endif
+  { 0, 0, { { 0, NULL } } }
+};
+
+char *
+mnote_olympus_entry_get_value (MnoteOlympusEntry *entry, char *v, unsigned int maxlen)
+{
+	char         buf[30];
+	ExifLong     vl;
+	ExifShort    vs = 0;
+	ExifSShort   vss = 0;
+	ExifRational vr, vr2;
+	ExifSRational vsr;
+	int          i, j;
+	double       r, b;
+
+	if (!entry)
+		return (NULL);
+
+	memset (v, 0, maxlen);
+	maxlen--;
+
+	if ((!entry->data) && (entry->components > 0)) 
+		return (v);
+
+	switch (entry->tag) {
+	
+	/* Nikon */
+	case MNOTE_NIKON_TAG_FIRMWARE:
+		CF (entry->format,  EXIF_FORMAT_UNDEFINED, v, maxlen);
+		CC (entry->components, 4, v, maxlen);
+		vl = exif_get_long (entry->data, entry->order);
+		if ((vl & 0xF0F0F0F0) == 0x30303030) {
+			memcpy (v, entry->data, MIN (maxlen, 4));
+		} else {
+			snprintf (v, maxlen, "%04lx", (long unsigned int) vl);
+		}
+		break;
+	case MNOTE_NIKON_TAG_ISO:
+                CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen);
+                CC (entry->components, 2, v, maxlen);
+                /*vs = exif_get_short (entry->data, entry->order);*/
+                vs = exif_get_short (entry->data + 2, entry->order);
+                snprintf (v, maxlen, "ISO %hd", vs);
+                break;
+	case MNOTE_NIKON_TAG_ISO2:
+                CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen);
+                CC (entry->components, 2, v, maxlen);
+                /*vs = exif_get_short (entry->data, entry->order);*/
+                vs = exif_get_short (entry->data + 2, entry->order);
+                snprintf (v, maxlen, "ISO2 %hd", vs);
+                break;
+	case MNOTE_NIKON_TAG_QUALITY:
+	case MNOTE_NIKON_TAG_COLORMODE:
+	case MNOTE_NIKON_TAG_COLORMODE1:
+	case MNOTE_NIKON_TAG_WHITEBALANCE:
+	case MNOTE_NIKON_TAG_SHARPENING:
+	case MNOTE_NIKON_TAG_FOCUSMODE:
+	case MNOTE_NIKON_TAG_FLASHSETTING:
+	case MNOTE_NIKON_TAG_ISOSELECTION:
+	case MNOTE_NIKON_TAG_FLASHMODE:
+	case MNOTE_NIKON_TAG_IMAGEADJUSTMENT:
+	case MNOTE_NIKON_TAG_ADAPTER:
+	case MNOTE_NIKON_TAG_SATURATION2:
+	case MNOTE_EPSON_TAG_SOFTWARE:
+		CF (entry->format, EXIF_FORMAT_ASCII, v, maxlen);
+		memcpy(v, entry->data, MIN (maxlen, entry->size));
+		break;
+	case MNOTE_NIKON_TAG_TOTALPICTURES:
+	case MNOTE_EPSON_TAG_IMAGE_WIDTH:
+	case MNOTE_EPSON_TAG_IMAGE_HEIGHT:
+		CF (entry->format, EXIF_FORMAT_LONG, v, maxlen);
+		CC (entry->components, 1, v, maxlen);
+		vl =  exif_get_long (entry->data, entry->order);
+		snprintf (v, maxlen, "%lu",  (long unsigned int) vl );
+		break;
+	case MNOTE_NIKON_TAG_LENS_FSTOPS:
+	case MNOTE_NIKON_TAG_EXPOSUREDIFF: {
+		unsigned char a,b,c,d;
+		CF (entry->format, EXIF_FORMAT_UNDEFINED, v, maxlen);
+		CC (entry->components, 4, v, maxlen);
+		vl =  exif_get_long (entry->data, entry->order);
+		a = (vl>>24)&0xff; b = (vl>>16)&0xff; c = (vl>>8)&0xff; d = (vl)&0xff;
+		snprintf (v, maxlen, "%.1f",  c?(float)a*((float)b/(float)c):0 );
+		break;
+	}
+	case MNOTE_NIKON_TAG_FLASHEXPCOMPENSATION:
+	case MNOTE_NIKON_TAG_FLASHEXPOSUREBRACKETVAL:
+		CF (entry->format, EXIF_FORMAT_UNDEFINED, v, maxlen);
+		CC (entry->components, 4, v, maxlen);
+		vl =  exif_get_long (entry->data, entry->order);
+		snprintf (v, maxlen, "%.1f",  ((long unsigned int) vl>>24)/6.0 );
+		break;
+	case MNOTE_NIKON_TAG_SATURATION:
+	case MNOTE_NIKON_TAG_WHITEBALANCEFINE:
+	case MNOTE_NIKON_TAG_HUE:
+	case MNOTE_OLYMPUS_TAG_SENSORTEMPERATURE:
+	case MNOTE_OLYMPUS_TAG_LENSTEMPERATURE:
+		CF (entry->format, EXIF_FORMAT_SSHORT, v, maxlen);
+		CC (entry->components, 1, v, maxlen);
+		vs = exif_get_short (entry->data, entry->order);
+		snprintf (v, maxlen, "%hd", vs);
+		break;
+	case MNOTE_NIKON_TAG_WHITEBALANCERB:
+		CF (entry->format, EXIF_FORMAT_RATIONAL, v, maxlen);
+		CC (entry->components, 4, v, maxlen);
+		vr = exif_get_rational (entry->data, entry->order);
+		r = (double)vr.numerator / vr.denominator;
+		vr = exif_get_rational (entry->data+8, entry->order);
+		b = (double)vr.numerator / vr.denominator;
+		snprintf (v, maxlen, _("Red Correction %f, blue Correction %f"), r,b);
+		break;
+	case MNOTE_NIKON_TAG_MANUALFOCUSDISTANCE:
+		CF (entry->format, EXIF_FORMAT_RATIONAL, v, maxlen);
+		CC (entry->components, 1, v, maxlen);
+		vr = exif_get_rational (entry->data, entry->order);
+		if (vr.numerator) {
+			r = (double)vr.numerator / vr.denominator;
+			snprintf (v, maxlen, _("%2.2f meters"), r);
+		} else {
+			strncpy (v, _("No manual focus selection"), maxlen);
+		}
+		break;
+	case MNOTE_NIKON_TAG_SENSORPIXELSIZE:
+		CF (entry->format, EXIF_FORMAT_RATIONAL, v, maxlen);
+		CC (entry->components, 2, v, maxlen);
+		vr = exif_get_rational (entry->data, entry->order);
+		vr2 = exif_get_rational (entry->data+8, entry->order);
+		r = (double)vr.numerator / vr.denominator;
+		b = (double)vr2.numerator / vr2.denominator;
+		snprintf (v, maxlen, "%2.2f x %2.2f um", r, b);
+		break;
+	case MNOTE_NIKON_TAG_BRACKETING:
+		CF2 (entry->format, EXIF_FORMAT_BYTE, EXIF_FORMAT_SHORT, v, maxlen);
+		CC (entry->components, 1, v, maxlen);
+		if (EXIF_FORMAT_SHORT == entry->format) {
+			vs = exif_get_short (entry->data, entry->order);
+		} else {
+			vs = entry->data[0];
+		}
+		snprintf (v, maxlen, "%hd", vs);
+		break;
+	case MNOTE_NIKON_TAG_AFFOCUSPOSITION:
+		CF (entry->format, EXIF_FORMAT_UNDEFINED, v, maxlen);
+		CC (entry->components, 4, v, maxlen);
+		switch (  *( entry->data+1)  ) {
+		  	case  0: strncpy (v, _("AF position: center"), maxlen); break;
+		  	case  1: strncpy (v, _("AF position: top"), maxlen); break;
+		  	case  2: strncpy (v, _("AF position: bottom"), maxlen); break;
+		  	case  3: strncpy (v, _("AF position: left"), maxlen); break;
+		  	case  4: strncpy (v, _("AF position: right"), maxlen); break;
+			case  5: strncpy (v, _("AF position: upper-left"), maxlen); break;
+		  	case  6: strncpy (v, _("AF position: upper-right"), maxlen); break;
+		  	case  7: strncpy (v, _("AF position: lower-left"), maxlen); break;
+		  	case  8: strncpy (v, _("AF position: lower-right"), maxlen); break;
+		  	case  9: strncpy (v, _("AF position: far left"), maxlen); break;
+		  	case  10: strncpy (v, _("AF position: far right"), maxlen); break;
+		  	default: strncpy (v, _("Unknown AF position"), maxlen);
+		}     
+		break;
+	case MNOTE_OLYMPUS_TAG_FLASHDEVICE:
+		CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen);
+		CC (entry->components, 2, v, maxlen);
+		vs = exif_get_short(entry->data, entry->order);
+		/* search for the tag */
+		for (i = 0; (items[i].tag && items[i].tag != entry->tag); i++)
+			;
+		if (!items[i].tag) {
+		  	snprintf (v, maxlen, _("Internal error (unknown value %hi)"), vs);
+		  	break;
+		}
+		CF (entry->format, items[i].fmt, v, maxlen);
+		/* find the value */
+		for (j = 0; items[i].elem[j].string &&
+			    (items[i].elem[j].index < vs); j++);
+		if (items[i].elem[j].index != vs) {
+			snprintf (v, maxlen, _("Unknown value %hi"), vs);
+			break;
+		}
+		strncpy (v, _(items[i].elem[j].string), maxlen);
+		break;
+	case MNOTE_OLYMPUS_TAG_DIGIZOOM:
+		if (entry->format == EXIF_FORMAT_RATIONAL) {
+			CC (entry->components, 1, v, maxlen);
+			vr = exif_get_rational (entry->data, entry->order);
+			if (!vr.numerator) {
+				strncpy (v, _("None"), maxlen);
+			} else {
+				r = (double)vr.numerator / vr.denominator;
+				snprintf (v, maxlen, "%2.2f", r);
+			}
+			break;
+		}
+		/* fall through to handle SHORT version of this tag */
+	case MNOTE_NIKON_TAG_LENSTYPE:
+	case MNOTE_NIKON_TAG_FLASHUSED:
+	case MNOTE_NIKON1_TAG_QUALITY:
+	case MNOTE_NIKON1_TAG_COLORMODE:
+	case MNOTE_NIKON1_TAG_IMAGEADJUSTMENT:
+	case MNOTE_NIKON1_TAG_CCDSENSITIVITY:
+	case MNOTE_NIKON1_TAG_WHITEBALANCE:
+	case MNOTE_NIKON1_TAG_CONVERTER:
+	case MNOTE_OLYMPUS_TAG_QUALITY:
+	case MNOTE_OLYMPUS_TAG_MACRO:
+	case MNOTE_OLYMPUS_TAG_BWMODE:
+	case MNOTE_OLYMPUS_TAG_ONETOUCHWB:
+	case MNOTE_OLYMPUS_TAG_FLASHMODE:
+	case MNOTE_OLYMPUS_TAG_FOCUSRANGE:
+	case MNOTE_OLYMPUS_TAG_MANFOCUS:
+	case MNOTE_OLYMPUS_TAG_SHARPNESS:
+	case MNOTE_OLYMPUS_TAG_EXTERNALFLASHBOUNCE:
+	case MNOTE_OLYMPUS_TAG_CONTRAST:
+	case MNOTE_OLYMPUS_TAG_PREVIEWIMAGEVALID:
+	case MNOTE_OLYMPUS_TAG_CCDSCANMODE:
+	case MNOTE_SANYO_TAG_SEQUENTIALSHOT:
+	case MNOTE_SANYO_TAG_FOCUSMODE:
+	case MNOTE_SANYO_TAG_RECORDSHUTTERRELEASE:
+	case MNOTE_SANYO_TAG_RESAVED:
+	case MNOTE_SANYO_TAG_CCDSENSITIVITY:
+	case MNOTE_SANYO_TAG_SCENESELECT:
+	case MNOTE_SANYO_TAG_SEQUENCESHOTINTERVAL:
+		CC (entry->components, 1, v, maxlen);
+		switch (entry->format) {
+		case EXIF_FORMAT_BYTE:
+		case EXIF_FORMAT_UNDEFINED:
+			vs = entry->data[0];
+			break;
+		case EXIF_FORMAT_SHORT:
+			vs = exif_get_short(entry->data, entry->order);
+			break;
+		default:
+			vs = 0;
+			break;
+		}
+		/* search for the tag */
+		for (i = 0; (items[i].tag && items[i].tag != entry->tag); i++)
+			;
+		if (!items[i].tag) {
+		  	snprintf (v, maxlen, _("Internal error (unknown value %hi)"), vs);
+		  	break;
+		}
+		CF (entry->format, items[i].fmt, v, maxlen);
+		/* find the value */
+		for (j = 0; items[i].elem[j].string &&
+			    (items[i].elem[j].index < vs); j++);
+		if (items[i].elem[j].index != vs) {
+			snprintf (v, maxlen, _("Unknown value %hi"), vs);
+			break;
+		}
+		strncpy (v, _(items[i].elem[j].string), maxlen);
+		break;
+	case MNOTE_OLYMPUS_TAG_NOISEREDUCTION:
+	case MNOTE_SANYO_TAG_WIDERANGE:
+	case MNOTE_SANYO_TAG_COLORADJUSTMENTMODE:
+	case MNOTE_SANYO_TAG_QUICKSHOT:
+	case MNOTE_SANYO_TAG_VOICEMEMO:
+	case MNOTE_SANYO_TAG_FLICKERREDUCE:
+	case MNOTE_SANYO_TAG_OPTICALZOOM:
+	case MNOTE_SANYO_TAG_DIGITALZOOM:
+	case MNOTE_SANYO_TAG_LIGHTSOURCESPECIAL:
+		CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen);
+		CC (entry->components, 1, v, maxlen);
+		vs = exif_get_short (entry->data, entry->order);
+		switch (vs) {
+		case 0:
+			strncpy (v, _("Off"), maxlen);
+			break;
+		case 1:
+			strncpy (v, _("On"), maxlen);
+			break;
+		default:
+			sprintf (buf, _("Unknown %hu"), vs);
+			strncat (v, buf, maxlen - strlen (v));
+			break;
+		}
+		break;
+	case MNOTE_SANYO_TAG_SELFTIMER:
+		CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen);
+		CC (entry->components, 1, v, maxlen);
+		vs = exif_get_short (entry->data, entry->order);
+		switch (vs) {
+		case 0:
+			strncpy (v, _("Off"), maxlen);
+			break;
+		case 1:
+			strncpy (v, _("On"), maxlen);
+			break;
+		case 2:
+			strncpy (v, _("2 sec."), maxlen);
+			break;
+		default:
+			sprintf (buf, _("Unknown %hu"), vs);
+			strncat (v, buf, maxlen - strlen (v));
+			break;
+		}
+		break;
+	case MNOTE_NIKON_TAG_LENS:
+		CF (entry->format, EXIF_FORMAT_RATIONAL, v, maxlen);
+		CC (entry->components, 4, v, maxlen);
+		{
+			double c,d;
+			unsigned long a,b;
+			vr = exif_get_rational (entry->data, entry->order);
+			a = vr.numerator / vr.denominator;
+			vr = exif_get_rational (entry->data+8, entry->order);
+			b = vr.numerator / vr.denominator;
+			vr = exif_get_rational (entry->data+16, entry->order);
+			c = (double)vr.numerator / vr.denominator;
+			vr = exif_get_rational (entry->data+24, entry->order);
+			d = (double)vr.numerator / vr.denominator;
+			snprintf (v, maxlen, "%ld-%ldmm 1:%3.1f - %3.1f",a,b,c,d);
+		}
+		break;
+
+	/* Olympus */
+	case MNOTE_OLYMPUS_TAG_MODE:
+		CF (entry->format, EXIF_FORMAT_LONG, v, maxlen);
+		CC (entry->components, 3, v, maxlen);
+		vl = exif_get_long (entry->data, entry->order);
+		switch (vl) {
+		case 0:
+			strncpy (v, _("Normal"), maxlen);
+			break;
+		case 1:
+			strncpy (v, _("Unknown"), maxlen);
+			break;
+		case 2:
+			strncpy (v, _("Fast"), maxlen);
+			break;
+		case 3:
+			strncpy (v, _("Panorama"), maxlen);
+			break;
+		default:
+			snprintf (v, maxlen, "%li", (long int) vl);
+		}
+		vl = exif_get_long (entry->data + 4, entry->order);
+		snprintf (buf, sizeof (buf), "/%li/", (long int) vl);
+		strncat (v, buf, maxlen - strlen (v));
+		vl = exif_get_long (entry->data + 8, entry->order);
+		switch (vl) {
+		case 1:
+			strncat (v, _("Left to right"), maxlen - strlen (v));
+			break;
+		case 2:
+			strncat (v, _("Right to left"), maxlen - strlen (v));
+			break;
+		case 3:
+			strncat (v, _("Bottom to top"), maxlen - strlen (v));
+			break;
+		case 4:
+			strncat (v, _("Top to bottom"), maxlen - strlen (v));
+			break;
+		default:
+			snprintf (buf, sizeof (buf), "%li",
+				  (long int) vl);
+			strncat (v, buf, maxlen - strlen (v));
+		}
+		break;
+	case MNOTE_OLYMPUS_TAG_LENSDISTORTION:
+		if (entry->format == EXIF_FORMAT_SHORT) {
+			/* Epson uses a single SHORT here */
+			CC (entry->components, 1, v, maxlen);
+			vs = exif_get_short (entry->data, entry->order);
+			sprintf (buf, "%hu", vs);
+			strncat (v, buf, maxlen - strlen (v));
+		} else {
+			/* Others use an array of SSHORT here */
+			CC (entry->components, 6, v, maxlen);
+			CF (entry->format, EXIF_FORMAT_SSHORT, v, maxlen);
+			for (i=0; i < (int)entry->components; ++i) {
+				vss = exif_get_sshort (entry->data+2*i, entry->order);
+				sprintf (buf, "%hd ", vss);
+				strncat (v, buf, maxlen - strlen (v));
+			}
+		}
+		break;
+	case MNOTE_OLYMPUS_TAG_COLORCONTROL:
+		CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen);
+		CC (entry->components, 6, v, maxlen);
+		for (i=0; i < (int)entry->components; ++i) {
+			vs = exif_get_short (entry->data+2*i, entry->order);
+			sprintf (buf, "%hu ", vs);
+			strncat (v, buf, maxlen - strlen (v));
+		}
+		break;
+	case MNOTE_OLYMPUS_TAG_VERSION:
+		CF (entry->format, EXIF_FORMAT_ASCII, v, maxlen);
+		CC2 (entry->components, 5, 8, v, maxlen);
+		strncpy (v, (char *)entry->data, MIN (maxlen, entry->size));
+		break;
+	case MNOTE_OLYMPUS_TAG_SERIALNUMBER2:
+		CF (entry->format, EXIF_FORMAT_ASCII, v, maxlen);
+		strncpy (v, (char *)entry->data, MIN (maxlen, entry->size));
+		break;
+	case MNOTE_OLYMPUS_TAG_INFO:
+		CF (entry->format, EXIF_FORMAT_ASCII, v, maxlen);
+		CC2 (entry->components, 52, 60, v, maxlen);
+		strncpy (v, (char *)entry->data, MIN (maxlen, entry->size));
+		break;
+	case MNOTE_OLYMPUS_TAG_ID:
+		CF (entry->format, EXIF_FORMAT_UNDEFINED, v, maxlen);
+		CC (entry->components, 32, v, maxlen);
+		strncpy (v, (char *)entry->data, MIN (maxlen, entry->size));
+		break;
+	case MNOTE_OLYMPUS_TAG_UNKNOWN_4:
+		CF (entry->format, EXIF_FORMAT_LONG, v, maxlen);
+		CC (entry->components, 30, v, maxlen);
+		for (i=0; i < (int)entry->components; ++i) {
+			vl = exif_get_long (entry->data+4*i, entry->order);
+			sprintf (buf, "%lu ", (unsigned long)vl);
+			strncat (v, buf, maxlen - strlen (v));
+		}
+		break;
+	case MNOTE_OLYMPUS_TAG_FOCUSDIST:
+		CF (entry->format, EXIF_FORMAT_RATIONAL, v, maxlen);
+		CC (entry->components, 1, v, maxlen);
+		vr = exif_get_rational (entry->data, entry->order);
+		if (vr.numerator == 0) {
+			strncpy (v, _("Unknown"), maxlen);
+		}
+		else {
+			unsigned long tmp = vr.numerator / vr.denominator;
+			snprintf (v, maxlen, "%li mm", tmp);
+		}
+		break;
+	case MNOTE_OLYMPUS_TAG_WBALANCE:
+		CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen);
+		CC (entry->components, 2, v, maxlen);
+		vs = exif_get_short (entry->data, entry->order);
+		switch (vs) {
+		case 1:
+			strncpy (v, _("Automatic"), maxlen);
+			break;
+		case 2:
+			{
+				ExifShort v2 = exif_get_short (entry->data + 2, entry->order);
+				unsigned long colorTemp = 0;
+				switch (v2) {
+				case 2:
+					colorTemp = 3000;
+					break;
+				case 3:
+					colorTemp = 3700;
+					break;
+				case 4:
+					colorTemp = 4000;
+					break;
+				case 5:
+					colorTemp = 4500;
+					break;
+				case 6:
+					colorTemp = 5500;
+					break;
+				case 7:
+					colorTemp = 6500;
+					break;
+				case 9:
+					colorTemp = 7500;
+					break;
+				}
+				if (colorTemp) {
+					snprintf (v, maxlen, _("Manual: %liK"), colorTemp);
+				}
+				else {
+					strncpy (v, _("Manual: unknown"), maxlen);
+				}
+
+			}
+			break;
+		case 3:
+			strncpy (v, _("One-touch"), maxlen);
+			break;
+		default:
+			strncpy (v, _("Unknown"), maxlen);
+			break;
+		}
+		break;
+	case MNOTE_OLYMPUS_TAG_REDBALANCE:
+	case MNOTE_OLYMPUS_TAG_BLUEBALANCE:
+		CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen);
+		CC (entry->components, 2, v, maxlen);
+		vs = exif_get_short (entry->data, entry->order);
+		snprintf (v, maxlen, "%hu ", vs);
+		vs = exif_get_short (entry->data + 2, entry->order);
+		sprintf (buf, "%hu", vs);
+		strncat (v, buf, maxlen - strlen (v));
+		break;
+	case MNOTE_OLYMPUS_TAG_BLACKLEVEL:
+	case MNOTE_NIKON_TAG_IMAGEBOUNDARY:
+		CC (entry->components, 4, v, maxlen);
+		/* Fall through to COLORMATRIX */
+	case MNOTE_OLYMPUS_TAG_COLORMATRIX:
+		CF (entry->format, EXIF_FORMAT_SHORT, v, maxlen);
+		if (entry->tag == MNOTE_OLYMPUS_TAG_COLORMATRIX)
+			CC (entry->components, 9, v, maxlen);
+		for (i=0; i < (int)entry->components; ++i) {
+			vs = exif_get_short (entry->data+2*i, entry->order);
+			sprintf (buf, "%hu ", vs);
+			strncat (v, buf, maxlen - strlen (v));
+		}
+		break;
+	case MNOTE_NIKON1_TAG_FOCUS:
+	case MNOTE_NIKON_TAG_DIGITALZOOM:
+	case MNOTE_NIKON1_TAG_DIGITALZOOM:
+	case MNOTE_OLYMPUS_TAG_FOCALPLANEDIAGONAL:
+		CF (entry->format, EXIF_FORMAT_RATIONAL, v, maxlen);
+		/* Fall through to default handler for display */
+	default:
+		switch (entry->format) {
+		case EXIF_FORMAT_ASCII:
+			strncpy (v, (char *)entry->data, MIN (maxlen, entry->size));
+			break;
+		case EXIF_FORMAT_SHORT:
+			CC (entry->components, 1, v, maxlen);
+			vs = exif_get_short (entry->data, entry->order);
+			snprintf (v, maxlen, "%hu", vs);
+			break;
+		case EXIF_FORMAT_LONG:
+			CC (entry->components, 1, v, maxlen);
+			vl = exif_get_long (entry->data, entry->order);
+			snprintf (v, maxlen, "%li", (long int) vl);
+			break;
+		case EXIF_FORMAT_RATIONAL:
+			CC (entry->components, 1, v, maxlen);
+			vr = exif_get_rational (entry->data, entry->order);
+			if (!vr.denominator) {
+				strncpy (v, _("Infinite"), maxlen);
+			} else {
+				r = (double)vr.numerator / vr.denominator;
+				snprintf (v, maxlen, "%2.3f", r);
+			}
+			break;
+		case EXIF_FORMAT_SRATIONAL:
+			CC (entry->components, 1, v, maxlen);
+			vsr = exif_get_srational (entry->data, entry->order);
+			if (!vsr.denominator) {
+				strncpy (v, _("Infinite"), maxlen);
+			} else {
+				r = (double)vsr.numerator / vsr.denominator;
+				snprintf (v, maxlen, "%2.3f", r);
+			}
+			break;
+		case EXIF_FORMAT_UNDEFINED:
+		default:
+			snprintf (v, maxlen, _("%i bytes unknown data: "),
+				  entry->size);
+			for (i = 0; i < (int)entry->size; i++) {
+				sprintf (buf, "%02x", entry->data[i]);
+				strncat (v, buf, maxlen - strlen (v));
+			}
+			break;
+		}
+		break;
+	}
+
+	return (v);
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/olympus/mnote-olympus-entry.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/olympus/mnote-olympus-entry.h
new file mode 100644
index 0000000000000000000000000000000000000000..f1b0a98b3d07d38ea7a5bd1ec33d51049afb6431
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/olympus/mnote-olympus-entry.h
@@ -0,0 +1,43 @@
+/* mnote-olympus-entry.h
+ *
+ * Copyright (c) 2002 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#ifndef __MNOTE_OLYMPUS_ENTRY_H__
+#define __MNOTE_OLYMPUS_ENTRY_H__
+
+#include <libexif/exif-format.h>
+#include <libexif/exif-byte-order.h>
+#include <libexif/olympus/mnote-olympus-tag.h>
+
+typedef struct _MnoteOlympusEntry        MnoteOlympusEntry;
+
+struct _MnoteOlympusEntry {
+	MnoteOlympusTag tag;
+	ExifFormat format;
+	unsigned long components;
+
+	unsigned char *data;
+	unsigned int size;
+
+	ExifByteOrder order;
+};
+
+char *mnote_olympus_entry_get_value (MnoteOlympusEntry *entry, char *val, unsigned int maxlen);
+
+#endif /* __MNOTE_OLYMPUS_ENTRY_H__ */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/olympus/mnote-olympus-tag.c b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/olympus/mnote-olympus-tag.c
new file mode 100644
index 0000000000000000000000000000000000000000..38103523722b19eef76271615826ece65be71100
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/olympus/mnote-olympus-tag.c
@@ -0,0 +1,230 @@
+/* mnote-olympus-tag.c:
+ *
+ * Copyright (c) 2002 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#include <config.h>
+#include "mnote-olympus-tag.h"
+
+#include <libexif/i18n.h>
+#include <libexif/exif-utils.h>
+
+#include <stdlib.h>
+
+static const struct {
+	MnoteOlympusTag tag;
+	const char *name;
+	const char *title;
+	const char *description;
+} table[] = {
+#ifndef NO_VERBOSE_TAG_STRINGS
+	/* Nikon v2 */
+	{MNOTE_NIKON_TAG_FIRMWARE,     "Firmware", N_("Firmware Version"), ""},
+	{MNOTE_NIKON_TAG_ISO,          "ISO", N_("ISO Setting"), ""},
+	{MNOTE_NIKON_TAG_COLORMODE1,   "ColorMode1", N_("Color Mode (?)"), ""},
+	{MNOTE_NIKON_TAG_QUALITY,      "Quality", N_("Quality"), ""},
+	{MNOTE_NIKON_TAG_WHITEBALANCE, "WhiteBalance", N_("White Balance"), ""},
+	{MNOTE_NIKON_TAG_SHARPENING,   "Sharpening",   N_("Image Sharpening"), ""},
+	{MNOTE_NIKON_TAG_FOCUSMODE,    "FocusMode",   N_("Focus Mode"), ""},
+	{MNOTE_NIKON_TAG_FLASHSETTING, "FlashSetting",   N_("Flash Setting"), ""},
+	{MNOTE_NIKON_TAG_FLASHMODE,    "FlashMode",    N_("Flash Mode"), ""},
+	{MNOTE_NIKON_TAG_WHITEBALANCEFINE,"WhiteBalanceFine",N_("White Balance Fine Adjustment"), ""},
+	{MNOTE_NIKON_TAG_WHITEBALANCERB,  "WhiteBalanceRB", N_("White Balance RB"), ""},
+	{MNOTE_NIKON_TAG_UNKNOWN_0X000D,  NULL, NULL, NULL},
+	{MNOTE_NIKON_TAG_ISOSELECTION,    "ISOSelection", N_("ISO Selection"), ""},
+	{MNOTE_NIKON_TAG_PREVIEWIMAGE_IFD_POINTER, "PreviewImage", N_("Preview Image IFD"), N_("Offset of the preview image directory (IFD) inside the file.")},
+	{MNOTE_NIKON_TAG_EXPOSUREDIFF,    "ExposureDiff", N_("Exposurediff ?"), ""},
+	{MNOTE_NIKON_TAG_FLASHEXPCOMPENSATION, "FlashExpCompensation", N_("Flash Exposure Compensation"), ""},
+	{MNOTE_NIKON_TAG_ISO2,            "ISO", N_("ISO Setting"), ""},
+	{MNOTE_NIKON_TAG_IMAGEBOUNDARY,   "ImageBoundary", N_("Image Boundary"), ""},
+	{MNOTE_NIKON_TAG_UNKNOWN_0X0017,  NULL, NULL, NULL},
+	{MNOTE_NIKON_TAG_FLASHEXPOSUREBRACKETVAL,  "FlashExposureBracketVal", N_("Flash Exposure Bracket Value"), ""},
+	{MNOTE_NIKON_TAG_EXPOSUREBRACKETVAL,  "ExposureBracketVal", N_("Exposure Bracket Value"), ""},
+	{MNOTE_NIKON_TAG_IMAGEADJUSTMENT, "ImageAdjustment", N_("Image Adjustment"), ""},
+	{MNOTE_NIKON_TAG_TONECOMPENSATION, "ToneCompensation", N_("Tone Compensation"), ""},
+	{MNOTE_NIKON_TAG_ADAPTER,         "Adapter", N_("Adapter"), ""},
+	{MNOTE_NIKON_TAG_LENSTYPE,        "LensType", N_("Lens Type"), ""},
+	{MNOTE_NIKON_TAG_LENS,            "Lens", N_("Lens"), ""},
+	{MNOTE_NIKON_TAG_MANUALFOCUSDISTANCE, "ManualFocusDistance", N_("Manual Focus Distance"), ""},
+	{MNOTE_NIKON_TAG_DIGITALZOOM,     "DigitalZoom", N_("Digital Zoom"), ""},
+	{MNOTE_NIKON_TAG_FLASHUSED,       "FlashUsed", N_("Flash Used"), ""},
+	{MNOTE_NIKON_TAG_AFFOCUSPOSITION, "AFFocusPosition", N_("AF Focus Position"), ""},
+	{MNOTE_NIKON_TAG_BRACKETING,      "Bracketing", N_("Bracketing"), ""},
+	{MNOTE_NIKON_TAG_UNKNOWN_0X008A,  NULL, NULL, NULL},
+	{MNOTE_NIKON_TAG_LENS_FSTOPS,     "LensFStops", N_("Lens F Stops"), ""},
+	{MNOTE_NIKON_TAG_CURVE,           "Curve,", N_("Contrast Curve"), ""},
+	{MNOTE_NIKON_TAG_COLORMODE,       "ColorMode,", N_("Color Mode"), ""},
+	{MNOTE_NIKON_TAG_LIGHTTYPE,       "LightType,", N_("Light Type"), ""},
+	{MNOTE_NIKON_TAG_UNKNOWN_0X0091,  NULL, NULL, NULL},
+	{MNOTE_NIKON_TAG_HUE,             "Hue", N_("Hue Adjustment"), ""},
+	{MNOTE_NIKON_TAG_SATURATION,      "Saturation", N_("Saturation"), ""},
+	{MNOTE_NIKON_TAG_NOISEREDUCTION,  "NoiseReduction,", N_("Noise Reduction"), ""},
+	{MNOTE_NIKON_TAG_UNKNOWN_0X0097,  NULL, NULL, NULL},
+	{MNOTE_NIKON_TAG_UNKNOWN_0X0098,  NULL, NULL, NULL},
+	{MNOTE_NIKON_TAG_SENSORPIXELSIZE, "SensorPixelSize", N_("Sensor Pixel Size"), ""},
+	{MNOTE_NIKON_TAG_UNKNOWN_0X009B,  NULL, NULL, NULL},
+	{MNOTE_NIKON_TAG_SERIALNUMBER,    "SerialNumber", N_("Serial Number"), ""},
+	{MNOTE_NIKON_TAG_IMAGE_DATASIZE,  "ImageDataSize", N_("Image Data Size"), N_("Size of compressed image data in bytes.")},
+	{MNOTE_NIKON_TAG_UNKNOWN_0X00A3,  NULL, NULL, NULL},
+	{MNOTE_NIKON_TAG_TOTALPICTURES,   "TotalPictures,", N_("Total Number of Pictures Taken"), ""},
+	{MNOTE_NIKON_TAG_UNKNOWN_0X00A8,  NULL, NULL, NULL},
+	{MNOTE_NIKON_TAG_OPTIMIZATION,    "Optimization,", N_("Optimize Image"), ""},
+	{MNOTE_NIKON_TAG_SATURATION,      "Saturation", N_("Saturation"), ""},
+	{MNOTE_NIKON_TAG_VARIPROGRAM,     "VariProgram", N_("Vari Program"), ""},
+	{MNOTE_NIKON_TAG_CAPTUREEDITORDATA, "CaptureEditorData", N_("Capture Editor Data"), ""},
+	{MNOTE_NIKON_TAG_CAPTUREEDITORVER, "CaptureEditorVer", N_("Capture Editor Version"), ""},
+	{MNOTE_NIKON_TAG_UNKNOWN_0X0E0E,  NULL, NULL, NULL},
+	{MNOTE_NIKON_TAG_UNKNOWN_0X0E10,  NULL, NULL, NULL},
+	{MNOTE_NIKON1_TAG_UNKNOWN_0X0002, NULL, NULL, NULL},
+	{MNOTE_NIKON1_TAG_QUALITY,        "Quality", N_("Quality"), ""},
+	{MNOTE_NIKON1_TAG_COLORMODE,      "ColorMode,", N_("Color Mode"), ""},
+	{MNOTE_NIKON1_TAG_IMAGEADJUSTMENT, "ImageAdjustment", N_("Image Adjustment"), ""},
+	{MNOTE_NIKON1_TAG_CCDSENSITIVITY, "CCDSensitivity", N_("CCD Sensitivity"), ""},
+	{MNOTE_NIKON1_TAG_WHITEBALANCE,   "WhiteBalance", N_("White Balance"), ""},
+	{MNOTE_NIKON1_TAG_FOCUS,          "Focus", N_("Focus"), ""},
+	{MNOTE_NIKON1_TAG_UNKNOWN_0X0009, NULL, NULL, NULL},
+	{MNOTE_NIKON1_TAG_DIGITALZOOM,    "DigitalZoom", N_("Digital Zoom"), ""},
+	{MNOTE_NIKON1_TAG_CONVERTER,      "Converter", N_("Converter"), ""},
+
+	/* Olympus & some Sanyo */
+	{MNOTE_OLYMPUS_TAG_THUMBNAILIMAGE, "ThumbnailImage", N_("Thumbnail Image"), ""},
+	{MNOTE_OLYMPUS_TAG_MODE, "Mode", N_("Speed/Sequence/Panorama Direction"), ""},
+	{MNOTE_OLYMPUS_TAG_QUALITY, "Quality", N_("Quality"), ""},
+	{MNOTE_OLYMPUS_TAG_MACRO, "Macro", N_("Macro"), ""},
+	{MNOTE_OLYMPUS_TAG_BWMODE, "BWMode", N_("Black & White Mode"), ""},
+	{MNOTE_OLYMPUS_TAG_DIGIZOOM, "DigiZoom", N_("Digital Zoom"), ""},
+	{MNOTE_OLYMPUS_TAG_FOCALPLANEDIAGONAL, "FocalPlaneDiagonal", N_("Focal Plane Diagonal"), ""},
+	{MNOTE_OLYMPUS_TAG_LENSDISTORTION, "LensDistortionParams", N_("Lens Distortion Parameters"), ""},
+	{MNOTE_OLYMPUS_TAG_VERSION, "FirmwareVersion", N_("Firmware Version"), ""},
+	{MNOTE_OLYMPUS_TAG_INFO, "Info", N_("Info"), ""},
+	{MNOTE_OLYMPUS_TAG_ID, "CameraID", N_("Camera ID"), ""},
+	{MNOTE_OLYMPUS_TAG_PRECAPTUREFRAMES, "PreCaptureFrames", N_("Precapture Frames"), ""},
+	{MNOTE_OLYMPUS_TAG_WHITEBOARD, "WhiteBoard", N_("White Board"), ""},
+	{MNOTE_OLYMPUS_TAG_ONETOUCHWB, "OneTouchWB", N_("One Touch White Balance"), ""},
+	{MNOTE_OLYMPUS_TAG_WHITEBALANCEBRACKET, "WhiteBalanceBracket", N_("White Balance Bracket"), ""},
+	{MNOTE_OLYMPUS_TAG_WHITEBALANCEBIAS, "WhiteBalanceBias", N_("White Balance Bias"), ""},
+	{MNOTE_OLYMPUS_TAG_DATADUMP, "DataDump", N_("Data Dump"), NULL},
+	{MNOTE_OLYMPUS_TAG_UNKNOWN_4, NULL, NULL, NULL},
+	{MNOTE_OLYMPUS_TAG_SHUTTERSPEED, "ShutterSpeed", N_("Shutter Speed"), ""},
+	{MNOTE_OLYMPUS_TAG_ISOVALUE, "ISOValue", N_("ISO Value"), ""},
+	{MNOTE_OLYMPUS_TAG_APERTUREVALUE, "ApertureValue", N_("Aperture Value"), ""},
+	{MNOTE_OLYMPUS_TAG_BRIGHTNESSVALUE, "BrightnessValue", N_("Brightness Value"), ""},
+	{MNOTE_OLYMPUS_TAG_FLASHMODE, "FlashMode", N_("Flash Mode"), ""},
+	{MNOTE_OLYMPUS_TAG_FLASHDEVICE, "FlashDevice", N_("Flash Device"), ""},
+	{MNOTE_OLYMPUS_TAG_EXPOSURECOMP, "ExposureCompensation", N_("Exposure Compensation"), ""},
+	{MNOTE_OLYMPUS_TAG_SENSORTEMPERATURE, "SensorTemperature", N_("Sensor Temperature"), ""},
+	{MNOTE_OLYMPUS_TAG_LENSTEMPERATURE, "LensTemperature", N_("Lens Temperature"), ""},
+	{MNOTE_OLYMPUS_TAG_LIGHTCONDITION, "LightCondition", N_("Light Condition"), ""},
+	{MNOTE_OLYMPUS_TAG_FOCUSRANGE, "FocusRange", N_("Focus Range"), ""},
+	{MNOTE_OLYMPUS_TAG_MANFOCUS, "FocusMode", N_("Focus Mode"), "Automatic or manual focusing mode"},
+	{MNOTE_OLYMPUS_TAG_FOCUSDIST, "ManualFocusDistance", N_("Manual Focus Distance"), ""},
+	{MNOTE_OLYMPUS_TAG_ZOOMSTEPCOUNT, "ZoomStepCount", N_("Zoom Step Count"), ""},
+	{MNOTE_OLYMPUS_TAG_FOCUSSTEPCOUNT, "FocusStepCount", N_("Focus Step Count"), ""},
+	{MNOTE_OLYMPUS_TAG_SHARPNESS, "Sharpness", N_("Sharpness Setting"), ""},
+	{MNOTE_OLYMPUS_TAG_FLASHCHARGELEVEL, "FlashChargeLevel", N_("Flash Charge Level"), ""},
+	{MNOTE_OLYMPUS_TAG_COLORMATRIX, "ColorMatrix", N_("Color Matrix"), ""},
+	{MNOTE_OLYMPUS_TAG_BLACKLEVEL, "BlackLevel", N_("Black Level"), ""},
+	{MNOTE_OLYMPUS_TAG_WBALANCE, "WhiteBalance", N_("White Balance Setting"), ""},
+	{MNOTE_OLYMPUS_TAG_REDBALANCE, "RedBalance", N_("Red Balance"), ""},
+	{MNOTE_OLYMPUS_TAG_BLUEBALANCE, "BlueBalance", N_("Blue Balance"), ""},
+	{MNOTE_OLYMPUS_TAG_COLORMATRIXNUMBER, "ColorMatrixNumber", N_("Color Matrix Number"), ""},
+	{MNOTE_OLYMPUS_TAG_SERIALNUMBER2, "SerialNumber", N_("Serial Number"), ""},
+	{MNOTE_OLYMPUS_TAG_FLASHEXPOSURECOMP, "FlashExposureComp", N_("Flash Exposure Comp"), ""},
+	{MNOTE_OLYMPUS_TAG_INTERNALFLASHTABLE, "InternalFlashTable", N_("Internal Flash Table"), ""},
+	{MNOTE_OLYMPUS_TAG_EXTERNALFLASHGVALUE, "ExternalFlashGValue", N_("External Flash G Value"), ""},
+	{MNOTE_OLYMPUS_TAG_EXTERNALFLASHBOUNCE, "ExternalFlashBounce", N_("External Flash Bounce"), ""},
+	{MNOTE_OLYMPUS_TAG_EXTERNALFLASHZOOM, "ExternalFlashZoom", N_("External Flash Zoom"), ""},
+	{MNOTE_OLYMPUS_TAG_EXTERNALFLASHMODE, "ExternalFlashMode", N_("External Flash Mode"), ""},
+	{MNOTE_OLYMPUS_TAG_CONTRAST, "Contrast", N_("Contrast Setting"), ""},
+	{MNOTE_OLYMPUS_TAG_SHARPNESSFACTOR, "SharpnessFactor", N_("Sharpness Factor"), ""},
+	{MNOTE_OLYMPUS_TAG_COLORCONTROL, "ColorControl", N_("Color Control"), ""},
+	{MNOTE_OLYMPUS_TAG_IMAGEWIDTH, "OlympusImageWidth", N_("Olympus Image Width"), ""},
+	{MNOTE_OLYMPUS_TAG_IMAGEHEIGHT, "OlympusImageHeight", N_("Olympus Image Height"), ""},
+	{MNOTE_OLYMPUS_TAG_SCENEDETECT, "SceneDetect", N_("Scene Detect"), ""},
+	{MNOTE_OLYMPUS_TAG_COMPRESSIONRATIO, "CompressionRatio", N_("Compression Ratio"), ""},
+	{MNOTE_OLYMPUS_TAG_PREVIEWIMAGEVALID, "PreviewImageValid", N_("Preview Image Valid"), ""},
+	{MNOTE_OLYMPUS_TAG_AFRESULT, "AFResult", N_("AF Result"), ""},
+	{MNOTE_OLYMPUS_TAG_CCDSCANMODE, "CCDScanMode", N_("CCD Scan Mode"), ""},
+	{MNOTE_OLYMPUS_TAG_NOISEREDUCTION, "NoiseReduction", N_("Noise Reduction"), ""},
+	{MNOTE_OLYMPUS_TAG_INFINITYLENSSTEP, "InfinityLensStep", N_("Infinity Lens Step"), ""},
+	{MNOTE_OLYMPUS_TAG_NEARLENSSTEP, "NearLensStep", N_("Near Lens Step"), ""},
+	{MNOTE_OLYMPUS_TAG_LIGHTVALUECENTER, "LightValueCenter", N_("Light Value Center"), ""},
+	{MNOTE_OLYMPUS_TAG_LIGHTVALUEPERIPHERY, "LightValuePeriphery", N_("Light Value Periphery"), ""},
+
+	/* Sanyo */
+	{MNOTE_SANYO_TAG_SEQUENTIALSHOT, "SequentialShot", N_("Sequential Shot"), ""},
+	{MNOTE_SANYO_TAG_WIDERANGE, "WideRange", N_("Wide Range"), ""},
+	{MNOTE_SANYO_TAG_COLORADJUSTMENTMODE, "ColorAdjustmentMode", N_("Color Adjustment Mode"), ""},
+	{MNOTE_SANYO_TAG_FOCUSMODE, "FocusMode", N_("Focus Mode"), ""},
+	{MNOTE_SANYO_TAG_QUICKSHOT, "QuickShot", N_("Quick Shot"), ""},
+	{MNOTE_SANYO_TAG_SELFTIMER, "SelfTimer", N_("Self-timer"), ""},
+	{MNOTE_SANYO_TAG_VOICEMEMO, "VoiceMemo", N_("Voice Memo"), ""},
+	{MNOTE_SANYO_TAG_RECORDSHUTTERRELEASE, "RecordShutterRelease", N_("Record Shutter Release"), ""},
+	{MNOTE_SANYO_TAG_FLICKERREDUCE, "FlickerReduce", N_("Flicker Reduce"), ""},
+	{MNOTE_SANYO_TAG_OPTICALZOOM, "OpticalZoom", N_("Optical Zoom"), ""},
+	{MNOTE_SANYO_TAG_DIGITALZOOM, "DigitalZoom", N_("Digital Zoom"), ""},
+	{MNOTE_SANYO_TAG_LIGHTSOURCESPECIAL, "LightSourceSpecial", N_("Light Source Special"), ""},
+	{MNOTE_SANYO_TAG_RESAVED, "Resaved", N_("Resaved"), ""},
+	{MNOTE_SANYO_TAG_CCDSENSITIVITY, "CCDSensitivity", N_("CCD Sensitivity"), ""},
+	{MNOTE_SANYO_TAG_SCENESELECT, "SceneSelect", N_("Scene Select"), ""},
+	{MNOTE_SANYO_TAG_MANUALFOCUSDISTANCE, "ManualFocusDistance", N_("Manual Focus Distance"), ""},
+	{MNOTE_SANYO_TAG_SEQUENCESHOTINTERVAL, "SequenceShotInterval", N_("Sequence Shot Interval"), ""},
+
+	/* Epson */
+	{MNOTE_EPSON_TAG_IMAGE_WIDTH, "EpsonImageWidth", N_("Epson Image Width"), ""},
+	{MNOTE_EPSON_TAG_IMAGE_HEIGHT, "EpsonImageHeight", N_("Epson Image Height"), ""},
+	{MNOTE_EPSON_TAG_SOFTWARE, "EpsonSoftware", N_("Epson Software Version"), ""},
+#endif
+	{0, NULL, NULL, NULL}
+};
+
+const char *
+mnote_olympus_tag_get_name (MnoteOlympusTag t)
+{
+	unsigned int i;
+
+	for (i = 0; i < sizeof (table) / sizeof (table[0]); i++)
+		if (table[i].tag == t) return (table[i].name);
+	return NULL;
+}
+
+const char *
+mnote_olympus_tag_get_title (MnoteOlympusTag t)
+{
+	unsigned int i;
+
+	bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
+	for (i = 0; i < sizeof (table) / sizeof (table[0]); i++)
+		if (table[i].tag == t) return (_(table[i].title));
+	return NULL;
+}
+
+const char *
+mnote_olympus_tag_get_description (MnoteOlympusTag t)
+{
+	unsigned int i;
+
+	for (i = 0; i < sizeof (table) / sizeof (table[0]); i++)
+		if (table[i].tag == t) {
+			if (!table[i].description || !*table[i].description)
+				return "";
+			bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
+			return _(table[i].description);
+		}
+	return NULL;
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/olympus/mnote-olympus-tag.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/olympus/mnote-olympus-tag.h
new file mode 100644
index 0000000000000000000000000000000000000000..2c3de82dd33e3415912b63a9abcebe3f44d246b8
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/olympus/mnote-olympus-tag.h
@@ -0,0 +1,229 @@
+/* mnote-olympus-tag.h
+ *
+ * Copyright (c) 2002 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#ifndef __MNOTE_OLYMPUS_TAG_H__
+#define __MNOTE_OLYMPUS_TAG_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+enum _MnoteOlympusTag {
+
+	/* Nikon v.2 */
+	MNOTE_NIKON_TAG_FIRMWARE                = 0x0001,
+	MNOTE_NIKON_TAG_ISO                     = 0x0002,
+	MNOTE_NIKON_TAG_COLORMODE1              = 0x0003,
+	MNOTE_NIKON_TAG_QUALITY                 = 0x0004,
+	MNOTE_NIKON_TAG_WHITEBALANCE            = 0x0005,
+	MNOTE_NIKON_TAG_SHARPENING              = 0x0006,
+	MNOTE_NIKON_TAG_FOCUSMODE               = 0x0007,
+	MNOTE_NIKON_TAG_FLASHSETTING            = 0x0008,
+	MNOTE_NIKON_TAG_FLASHMODE               = 0x0009,
+	MNOTE_NIKON_TAG_WHITEBALANCEFINE        = 0x000b,
+	MNOTE_NIKON_TAG_WHITEBALANCERB          = 0x000c,
+	MNOTE_NIKON_TAG_UNKNOWN_0X000D          = 0x000d,
+	MNOTE_NIKON_TAG_EXPOSUREDIFF            = 0x000e,
+	MNOTE_NIKON_TAG_ISOSELECTION            = 0x000f,
+	MNOTE_NIKON_TAG_PREVIEWIMAGE_IFD_POINTER= 0x0011,
+	MNOTE_NIKON_TAG_FLASHEXPCOMPENSATION    = 0x0012,
+	MNOTE_NIKON_TAG_ISO2                    = 0x0013,
+	MNOTE_NIKON_TAG_IMAGEBOUNDARY           = 0x0016,
+	MNOTE_NIKON_TAG_UNKNOWN_0X0017          = 0x0017,
+	MNOTE_NIKON_TAG_FLASHEXPOSUREBRACKETVAL = 0x0018,
+	MNOTE_NIKON_TAG_EXPOSUREBRACKETVAL      = 0x0019,
+	MNOTE_NIKON_TAG_IMAGEADJUSTMENT         = 0x0080,
+	MNOTE_NIKON_TAG_TONECOMPENSATION        = 0x0081,
+	MNOTE_NIKON_TAG_ADAPTER                 = 0x0082,
+	MNOTE_NIKON_TAG_LENSTYPE                = 0x0083,
+	MNOTE_NIKON_TAG_LENS                    = 0x0084,
+	MNOTE_NIKON_TAG_MANUALFOCUSDISTANCE     = 0x0085,
+	MNOTE_NIKON_TAG_DIGITALZOOM             = 0x0086,
+	MNOTE_NIKON_TAG_FLASHUSED               = 0x0087,
+	MNOTE_NIKON_TAG_AFFOCUSPOSITION         = 0x0088,
+	MNOTE_NIKON_TAG_BRACKETING              = 0x0089,
+	MNOTE_NIKON_TAG_UNKNOWN_0X008A          = 0x008a,
+	MNOTE_NIKON_TAG_LENS_FSTOPS             = 0x008b,
+	MNOTE_NIKON_TAG_CURVE                   = 0x008c,
+	MNOTE_NIKON_TAG_COLORMODE               = 0x008d,
+	MNOTE_NIKON_TAG_LIGHTTYPE               = 0x0090,
+	MNOTE_NIKON_TAG_UNKNOWN_0X0091          = 0x0091,
+	MNOTE_NIKON_TAG_HUE                     = 0x0092,
+	MNOTE_NIKON_TAG_SATURATION              = 0x0094,
+	MNOTE_NIKON_TAG_NOISEREDUCTION          = 0x0095,
+	MNOTE_NIKON_TAG_UNKNOWN_0X0097          = 0x0097,
+	MNOTE_NIKON_TAG_UNKNOWN_0X0098          = 0x0098,
+	MNOTE_NIKON_TAG_SENSORPIXELSIZE         = 0x009a,
+	MNOTE_NIKON_TAG_UNKNOWN_0X009B          = 0x009b,
+	MNOTE_NIKON_TAG_SERIALNUMBER            = 0x00a0,
+	MNOTE_NIKON_TAG_IMAGE_DATASIZE          = 0x00a2,
+	MNOTE_NIKON_TAG_UNKNOWN_0X00A3          = 0x00a3,
+	MNOTE_NIKON_TAG_TOTALPICTURES           = 0x00a7,
+	MNOTE_NIKON_TAG_UNKNOWN_0X00A8          = 0x00a8,
+	MNOTE_NIKON_TAG_OPTIMIZATION            = 0x00a9,
+	MNOTE_NIKON_TAG_SATURATION2             = 0x00aa,
+	MNOTE_NIKON_TAG_VARIPROGRAM             = 0x00ab,
+	MNOTE_NIKON_TAG_CAPTUREEDITORDATA       = 0x0e01,
+	MNOTE_NIKON_TAG_CAPTUREEDITORVER	= 0x0e09,
+	MNOTE_NIKON_TAG_UNKNOWN_0X0E0E		= 0x0e0e,
+	MNOTE_NIKON_TAG_UNKNOWN_0X0E10		= 0x0e10,
+
+	/* Nikon v1: real values + our proprietary base to distinguish from v2 */
+	MNOTE_NIKON1_TAG_BASE                   = 0x8000,
+	MNOTE_NIKON1_TAG_UNKNOWN_0X0002         = 0x0002 + MNOTE_NIKON1_TAG_BASE,
+	MNOTE_NIKON1_TAG_QUALITY                = 0x0003 + MNOTE_NIKON1_TAG_BASE,
+	MNOTE_NIKON1_TAG_COLORMODE              = 0x0004 + MNOTE_NIKON1_TAG_BASE,
+	MNOTE_NIKON1_TAG_IMAGEADJUSTMENT        = 0x0005 + MNOTE_NIKON1_TAG_BASE,
+	MNOTE_NIKON1_TAG_CCDSENSITIVITY         = 0x0006 + MNOTE_NIKON1_TAG_BASE,
+	MNOTE_NIKON1_TAG_WHITEBALANCE           = 0x0007 + MNOTE_NIKON1_TAG_BASE,
+	MNOTE_NIKON1_TAG_FOCUS                  = 0x0008 + MNOTE_NIKON1_TAG_BASE,
+	MNOTE_NIKON1_TAG_UNKNOWN_0X0009         = 0x0009 + MNOTE_NIKON1_TAG_BASE,
+	MNOTE_NIKON1_TAG_DIGITALZOOM            = 0x000a + MNOTE_NIKON1_TAG_BASE,
+	MNOTE_NIKON1_TAG_CONVERTER              = 0x000b + MNOTE_NIKON1_TAG_BASE,
+
+	/* Olympus and some Sanyo */
+	MNOTE_OLYMPUS_TAG_THUMBNAILIMAGE	= 0x0100,
+	MNOTE_OLYMPUS_TAG_MODE			= 0x0200,
+	MNOTE_OLYMPUS_TAG_QUALITY		= 0x0201,
+	MNOTE_OLYMPUS_TAG_MACRO			= 0x0202,
+	MNOTE_OLYMPUS_TAG_BWMODE		= 0x0203,
+	MNOTE_OLYMPUS_TAG_DIGIZOOM		= 0x0204,
+	MNOTE_OLYMPUS_TAG_FOCALPLANEDIAGONAL	= 0x0205,
+	MNOTE_OLYMPUS_TAG_LENSDISTORTION	= 0x0206,
+	MNOTE_OLYMPUS_TAG_VERSION		= 0x0207,
+	MNOTE_OLYMPUS_TAG_INFO			= 0x0208,
+	MNOTE_OLYMPUS_TAG_ID			= 0x0209,
+	MNOTE_OLYMPUS_TAG_PRECAPTUREFRAMES	= 0x0300,
+	MNOTE_OLYMPUS_TAG_WHITEBOARD		= 0x0301,
+	MNOTE_OLYMPUS_TAG_ONETOUCHWB		= 0x0302,
+	MNOTE_OLYMPUS_TAG_WHITEBALANCEBRACKET	= 0x0303,
+	MNOTE_OLYMPUS_TAG_WHITEBALANCEBIAS	= 0x0304,
+	MNOTE_OLYMPUS_TAG_DATADUMP		= 0x0f00,
+	MNOTE_OLYMPUS_TAG_UNKNOWN_4		= 0x0f04,
+	MNOTE_OLYMPUS_TAG_SHUTTERSPEED		= 0x1000,
+	MNOTE_OLYMPUS_TAG_ISOVALUE		= 0x1001,
+	MNOTE_OLYMPUS_TAG_APERTUREVALUE		= 0x1002,
+	MNOTE_OLYMPUS_TAG_BRIGHTNESSVALUE	= 0x1003,
+	MNOTE_OLYMPUS_TAG_FLASHMODE		= 0x1004,
+	MNOTE_OLYMPUS_TAG_FLASHDEVICE		= 0x1005,
+	MNOTE_OLYMPUS_TAG_EXPOSURECOMP		= 0x1006,
+	MNOTE_OLYMPUS_TAG_SENSORTEMPERATURE	= 0x1007,
+	MNOTE_OLYMPUS_TAG_LENSTEMPERATURE	= 0x1008,
+	MNOTE_OLYMPUS_TAG_LIGHTCONDITION	= 0x1009,
+	MNOTE_OLYMPUS_TAG_FOCUSRANGE		= 0x100a,
+	MNOTE_OLYMPUS_TAG_MANFOCUS		= 0x100b,
+	MNOTE_OLYMPUS_TAG_FOCUSDIST		= 0x100c,
+	MNOTE_OLYMPUS_TAG_ZOOMSTEPCOUNT		= 0x100d,
+	MNOTE_OLYMPUS_TAG_FOCUSSTEPCOUNT	= 0x100e,
+	MNOTE_OLYMPUS_TAG_SHARPNESS		= 0x100f,
+	MNOTE_OLYMPUS_TAG_FLASHCHARGELEVEL	= 0x1010,
+	MNOTE_OLYMPUS_TAG_COLORMATRIX		= 0x1011,
+	MNOTE_OLYMPUS_TAG_BLACKLEVEL		= 0x1012,
+	MNOTE_OLYMPUS_TAG_WBALANCE		= 0x1015,
+	MNOTE_OLYMPUS_TAG_REDBALANCE		= 0x1017,
+	MNOTE_OLYMPUS_TAG_BLUEBALANCE		= 0x1018,
+	MNOTE_OLYMPUS_TAG_COLORMATRIXNUMBER	= 0x1019,
+	MNOTE_OLYMPUS_TAG_SERIALNUMBER2		= 0x101a,
+	MNOTE_OLYMPUS_TAG_FLASHEXPOSURECOMP	= 0x1023,
+	MNOTE_OLYMPUS_TAG_INTERNALFLASHTABLE	= 0x1024,
+	MNOTE_OLYMPUS_TAG_EXTERNALFLASHGVALUE	= 0x1025,
+	MNOTE_OLYMPUS_TAG_EXTERNALFLASHBOUNCE	= 0x1026,
+	MNOTE_OLYMPUS_TAG_EXTERNALFLASHZOOM	= 0x1027,
+	MNOTE_OLYMPUS_TAG_EXTERNALFLASHMODE	= 0x1028,
+	MNOTE_OLYMPUS_TAG_CONTRAST		= 0x1029,
+	MNOTE_OLYMPUS_TAG_SHARPNESSFACTOR	= 0x102a,
+	MNOTE_OLYMPUS_TAG_COLORCONTROL		= 0x102b,
+	MNOTE_OLYMPUS_TAG_IMAGEWIDTH		= 0x102e,
+	MNOTE_OLYMPUS_TAG_IMAGEHEIGHT		= 0x102f,
+	MNOTE_OLYMPUS_TAG_SCENEDETECT		= 0x1030,
+	MNOTE_OLYMPUS_TAG_COMPRESSIONRATIO	= 0x1034,
+	MNOTE_OLYMPUS_TAG_PREVIEWIMAGEVALID	= 0x1035,
+	MNOTE_OLYMPUS_TAG_AFRESULT		= 0x1038,
+	MNOTE_OLYMPUS_TAG_CCDSCANMODE		= 0x1039,
+	MNOTE_OLYMPUS_TAG_NOISEREDUCTION	= 0x103a,
+	MNOTE_OLYMPUS_TAG_INFINITYLENSSTEP	= 0x103b,
+	MNOTE_OLYMPUS_TAG_NEARLENSSTEP		= 0x103c,
+	MNOTE_OLYMPUS_TAG_LIGHTVALUECENTER	= 0x103d,
+	MNOTE_OLYMPUS_TAG_LIGHTVALUEPERIPHERY	= 0x103e,
+
+	/* Epson */
+	MNOTE_EPSON_TAG_IMAGE_WIDTH		= 0x020b,
+	MNOTE_EPSON_TAG_IMAGE_HEIGHT		= 0x020c,
+	MNOTE_EPSON_TAG_SOFTWARE		= 0x020d,
+
+	/* Sanyo */
+	MNOTE_SANYO_TAG_SEQUENTIALSHOT		= 0x020e,
+	MNOTE_SANYO_TAG_WIDERANGE		= 0x020f,
+	MNOTE_SANYO_TAG_COLORADJUSTMENTMODE	= 0x0210,
+	MNOTE_SANYO_TAG_FOCUSMODE		= 0x0212,
+	MNOTE_SANYO_TAG_QUICKSHOT		= 0x0213,
+	MNOTE_SANYO_TAG_SELFTIMER		= 0x0214,
+	MNOTE_SANYO_TAG_VOICEMEMO		= 0x0216,
+	MNOTE_SANYO_TAG_RECORDSHUTTERRELEASE	= 0x0217,
+	MNOTE_SANYO_TAG_FLICKERREDUCE		= 0x0218,
+	MNOTE_SANYO_TAG_OPTICALZOOM		= 0x0219,
+	MNOTE_SANYO_TAG_CCDSENSITIVITY		= 0x021a,
+	MNOTE_SANYO_TAG_DIGITALZOOM		= 0x021b,
+	MNOTE_SANYO_TAG_LIGHTSOURCESPECIAL	= 0x021d,
+	MNOTE_SANYO_TAG_RESAVED			= 0x021e,
+	MNOTE_SANYO_TAG_SCENESELECT		= 0x021f,
+	MNOTE_SANYO_TAG_MANUALFOCUSDISTANCE	= 0x0223,
+	MNOTE_SANYO_TAG_SEQUENCESHOTINTERVAL	= 0x0224,
+};
+typedef enum _MnoteOlympusTag MnoteOlympusTag;
+
+/* Don't use these definitions. They are here for compatibility only. */
+#define MNOTE_OLYMPUS_TAG_UNKNOWN_1	MNOTE_OLYMPUS_TAG_BWMODE
+#define MNOTE_OLYMPUS_TAG_UNKNOWN_2	MNOTE_OLYMPUS_TAG_FOCALPLANEDIAGONAL
+#define MNOTE_OLYMPUS_TAG_UNKNOWN_3	MNOTE_OLYMPUS_TAG_LENSDISTORTION
+#define MNOTE_OLYMPUS_TAG_UNKNOWN_5	MNOTE_OLYMPUS_TAG_DATADUMP
+#define MNOTE_NIKON_TAG_PREVIEWIMAGE	MNOTE_NIKON_TAG_PREVIEWIMAGE_IFD_POINTER
+
+/*! Return a textual name of the given tag within the Olympus-style MakerNote.
+ * The name is a short, unique, non-localized text string containing only
+ * US-ASCII alphanumeric characters.
+ *
+ * \param[in] tag Olympus-style MakerNote tag
+ * \return textual name of the tag, or NULL if the tag is unknown
+ */
+const char *mnote_olympus_tag_get_name        (MnoteOlympusTag tag);
+
+/*! Return a textual title of the given tag within the Olympus-style MakerNote.
+ * The title is a short, localized description of the tag.
+ *
+ * \param[in] tag Olympus-style MakerNote tag
+ * \return textual title of the tag, or NULL if the tag is unknown
+ */
+const char *mnote_olympus_tag_get_title       (MnoteOlympusTag tag);
+
+/*! Return a verbose textual description of the given tag within the
+ * Olympus-style MakerNote.
+ * The description is a verbose, localized description of the tag.
+ *
+ * \param[in] tag EXIF tag
+ * \return textual description of the tag, or NULL if the tag is unknown
+ */
+const char *mnote_olympus_tag_get_description (MnoteOlympusTag tag);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __MNOTE_OLYMPUS_TAG_H__ */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/pentax/Makefile-files b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/pentax/Makefile-files
new file mode 100644
index 0000000000000000000000000000000000000000..bcc0ac54a037217fde87e71204d03704f750721c
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/pentax/Makefile-files
@@ -0,0 +1,7 @@
+# -*- Makefile -*-
+noinst_LTLIBRARIES += libmnote-pentax.la
+libmnote_pentax_la_SOURCES = \
+	pentax/mnote-pentax-entry.c pentax/mnote-pentax-entry.h \
+	pentax/exif-mnote-data-pentax.c pentax/exif-mnote-data-pentax.h \
+	pentax/mnote-pentax-tag.c pentax/mnote-pentax-tag.h
+libmnote_pentax_la_LIBADD = $(LTLIBINTL)
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/pentax/exif-mnote-data-pentax.c b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/pentax/exif-mnote-data-pentax.c
new file mode 100644
index 0000000000000000000000000000000000000000..757bb72e94506245024ce41723b300e1c25e21aa
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/pentax/exif-mnote-data-pentax.c
@@ -0,0 +1,449 @@
+/* exif-mnote-data-pentax.c
+ *
+ * Copyright (c) 2002, 2003 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#include "config.h"
+#include "exif-mnote-data-pentax.h"
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+#include <libexif/exif-byte-order.h>
+#include <libexif/exif-utils.h>
+
+static void
+exif_mnote_data_pentax_clear (ExifMnoteDataPentax *n)
+{
+	ExifMnoteData *d = (ExifMnoteData *) n;
+	unsigned int i;
+
+	if (!n) return;
+
+	if (n->entries) {
+		for (i = 0; i < n->count; i++)
+			if (n->entries[i].data) {
+				exif_mem_free (d->mem, n->entries[i].data);
+				n->entries[i].data = NULL;
+			}
+		exif_mem_free (d->mem, n->entries);
+		n->entries = NULL;
+		n->count = 0;
+	}
+}
+
+static void
+exif_mnote_data_pentax_free (ExifMnoteData *n)
+{
+	if (!n) return;
+
+	exif_mnote_data_pentax_clear ((ExifMnoteDataPentax *) n);
+}
+
+static char *
+exif_mnote_data_pentax_get_value (ExifMnoteData *d, unsigned int i, char *val, unsigned int maxlen)
+{
+	ExifMnoteDataPentax *n = (ExifMnoteDataPentax *) d;
+
+	if (!n) return NULL;
+	if (n->count <= i) return NULL;
+	return mnote_pentax_entry_get_value (&n->entries[i], val, maxlen);
+}
+
+/** 
+ * @brief save the MnoteData from ne to buf
+ * 
+ * @param ne extract the data from this structure 
+ * @param *buf write the mnoteData to this buffer (buffer will be allocated)
+ * @param buf_size the final size of the buffer
+ */
+static void
+exif_mnote_data_pentax_save (ExifMnoteData *ne,
+		unsigned char **buf, unsigned int *buf_size)
+{
+	ExifMnoteDataPentax *n = (ExifMnoteDataPentax *) ne;
+	size_t i,
+	   base = 0,		/* internal MakerNote tag number offset */
+	   o2 = 4 + 2;  	/* offset to first tag entry, past header */
+        size_t datao = n->offset; /* this MakerNote style uses offsets
+        			  based on main IFD, not makernote IFD */
+
+	if (!n || !buf || !buf_size) return;
+
+	/*
+	 * Allocate enough memory for header, the number of entries, entries,
+	 * and next IFD pointer
+	 */
+	*buf_size = o2 + 2 + n->count * 12 + 4;
+	switch (n->version) {
+	case casioV2:
+		base = MNOTE_PENTAX2_TAG_BASE;
+		*buf = exif_mem_alloc (ne->mem, *buf_size);
+		if (!*buf) {
+			EXIF_LOG_NO_MEMORY(ne->log, "ExifMnoteDataPentax", *buf_size);
+			return;
+		}
+		/* Write the magic header */
+		strcpy ((char *)*buf, "QVC");
+		exif_set_short (*buf + 4, n->order, (ExifShort) 0);
+
+		break;
+
+	case pentaxV3:
+		base = MNOTE_PENTAX2_TAG_BASE;
+		*buf = exif_mem_alloc (ne->mem, *buf_size);
+		if (!*buf) {
+			EXIF_LOG_NO_MEMORY(ne->log, "ExifMnoteDataPentax", *buf_size);
+			return;
+		}
+
+		/* Write the magic header */
+		strcpy ((char *)*buf, "AOC");
+		exif_set_short (*buf + 4, n->order, (ExifShort) (
+			(n->order == EXIF_BYTE_ORDER_INTEL) ?
+			('I' << 8) | 'I' :
+			('M' << 8) | 'M'));
+		break;
+
+	case pentaxV2:
+		base = MNOTE_PENTAX2_TAG_BASE;
+		*buf = exif_mem_alloc (ne->mem, *buf_size);
+		if (!*buf) {
+			EXIF_LOG_NO_MEMORY(ne->log, "ExifMnoteDataPentax", *buf_size);
+			return;
+		}
+
+		/* Write the magic header */
+		strcpy ((char *)*buf, "AOC");
+		exif_set_short (*buf + 4, n->order, (ExifShort) 0);
+		break;
+
+	case pentaxV1:
+		/* It looks like this format doesn't have a magic header as
+		 * such, just has a fixed number of entries equal to 0x001b */
+		*buf_size -= 6;
+		o2 -= 6;
+		*buf = exif_mem_alloc (ne->mem, *buf_size);
+		if (!*buf) {
+			EXIF_LOG_NO_MEMORY(ne->log, "ExifMnoteDataPentax", *buf_size);
+			return;
+		}
+		break;
+
+	default:
+		/* internal error */
+		return;
+	}
+
+	/* Write the number of entries. */
+	exif_set_short (*buf + o2, n->order, (ExifShort) n->count);
+	o2 += 2;
+
+	/* Save each entry */
+	for (i = 0; i < n->count; i++) {
+		size_t doff;	/* offset to current data portion of tag */
+		size_t s;
+		unsigned char *t;
+		size_t o = o2 + i * 12;   /* current offset into output buffer */
+		exif_set_short (*buf + o + 0, n->order,
+				(ExifShort) (n->entries[i].tag - base));
+		exif_set_short (*buf + o + 2, n->order,
+				(ExifShort) n->entries[i].format);
+		exif_set_long  (*buf + o + 4, n->order,
+				n->entries[i].components);
+		o += 8;
+		s = exif_format_get_size (n->entries[i].format) *
+						n->entries[i].components;
+		if (s > 65536) {
+			/* Corrupt data: EXIF data size is limited to the
+			 * maximum size of a JPEG segment (64 kb).
+			 */
+			continue;
+		}
+		if (s > 4) {
+			size_t ts = *buf_size + s;
+			doff = *buf_size;
+			t = exif_mem_realloc (ne->mem, *buf,
+						 sizeof (char) * ts);
+			if (!t) {
+				EXIF_LOG_NO_MEMORY(ne->log, "ExifMnoteDataPentax", ts);
+				return;
+			}
+			*buf = t;
+			*buf_size = ts;
+			exif_set_long (*buf + o, n->order, datao + doff);
+		} else
+			doff = o;
+
+		/* Write the data. */
+		if (n->entries[i].data) {
+			memcpy (*buf + doff, n->entries[i].data, s);
+		} else {
+			/* Most certainly damaged input file */
+			memset (*buf + doff, 0, s);
+		}
+	}
+
+	/* Sanity check the buffer size */
+	if (*buf_size < (o2 + n->count * 12 + 4)) {
+		exif_log (ne->log, EXIF_LOG_CODE_CORRUPT_DATA, "ExifMnoteDataPentax",
+			"Buffer overflow");
+	}
+
+	/* Reset next IFD pointer */
+	exif_set_long (*buf + o2 + n->count * 12, n->order, 0);
+}
+
+static void
+exif_mnote_data_pentax_load (ExifMnoteData *en,
+		const unsigned char *buf, unsigned int buf_size)
+{
+	ExifMnoteDataPentax *n = (ExifMnoteDataPentax *) en;
+	size_t i, tcount, o, datao, base = 0;
+	ExifShort c;
+
+	if (!n || !buf || !buf_size) {
+		exif_log (en->log, EXIF_LOG_CODE_CORRUPT_DATA,
+			  "ExifMnoteDataPentax", "Short MakerNote");
+		return;
+	}
+	datao = 6 + n->offset;
+	if ((datao + 8 < datao) || (datao + 8 < 8) || (datao + 8 > buf_size)) {
+		exif_log (en->log, EXIF_LOG_CODE_CORRUPT_DATA,
+			  "ExifMnoteDataPentax", "Short MakerNote");
+		return;
+	}
+
+	/* Detect variant of Pentax/Casio MakerNote found */
+	if (!memcmp(buf + datao, "AOC", 4)) {
+		if ((buf[datao + 4] == 'I') && (buf[datao + 5] == 'I')) {
+			n->version = pentaxV3;
+			n->order = EXIF_BYTE_ORDER_INTEL;
+		} else if ((buf[datao + 4] == 'M') && (buf[datao + 5] == 'M')) {
+			n->version = pentaxV3;
+			n->order = EXIF_BYTE_ORDER_MOTOROLA;
+		} else {
+			/* Uses Casio v2 tags */
+			n->version = pentaxV2;
+		}
+		exif_log (en->log, EXIF_LOG_CODE_DEBUG, "ExifMnoteDataPentax",
+			"Parsing Pentax maker note v%d...", (int)n->version);
+		datao += 4 + 2;
+		base = MNOTE_PENTAX2_TAG_BASE;
+	} else if (!memcmp(buf + datao, "QVC", 4)) {
+		exif_log (en->log, EXIF_LOG_CODE_DEBUG, "ExifMnoteDataPentax",
+			"Parsing Casio maker note v2...");
+		n->version = casioV2;
+		base = MNOTE_CASIO2_TAG_BASE;
+		datao += 4 + 2;
+	} else {
+		/* probably assert(!memcmp(buf + datao, "\x00\x1b", 2)) */
+		exif_log (en->log, EXIF_LOG_CODE_DEBUG, "ExifMnoteDataPentax",
+			"Parsing Pentax maker note v1...");
+		n->version = pentaxV1;
+	}
+
+	/* Read the number of tags */
+	c = exif_get_short (buf + datao, n->order);
+	datao += 2;
+
+	/* Remove any old entries */
+	exif_mnote_data_pentax_clear (n);
+
+	/* Reserve enough space for all the possible MakerNote tags */
+	n->entries = exif_mem_alloc (en->mem, sizeof (MnotePentaxEntry) * c);
+	if (!n->entries) {
+		EXIF_LOG_NO_MEMORY(en->log, "ExifMnoteDataPentax", sizeof (MnotePentaxEntry) * c);
+		return;
+	}
+
+	/* Parse all c entries, storing ones that are successfully parsed */
+	tcount = 0;
+	for (i = c, o = datao; i; --i, o += 12) {
+		size_t s;
+		if ((o + 12 < o) || (o + 12 < 12) || (o + 12 > buf_size)) {
+			exif_log (en->log, EXIF_LOG_CODE_CORRUPT_DATA,
+				  "ExifMnoteDataPentax", "Short MakerNote");
+			break;
+		}
+
+		n->entries[tcount].tag        = exif_get_short (buf + o + 0, n->order) + base;
+		n->entries[tcount].format     = exif_get_short (buf + o + 2, n->order);
+		n->entries[tcount].components = exif_get_long  (buf + o + 4, n->order);
+		n->entries[tcount].order      = n->order;
+
+		exif_log (en->log, EXIF_LOG_CODE_DEBUG, "ExifMnotePentax",
+			  "Loading entry 0x%x ('%s')...", n->entries[tcount].tag,
+			  mnote_pentax_tag_get_name (n->entries[tcount].tag));
+
+		/*
+		 * Size? If bigger than 4 bytes, the actual data is not
+		 * in the entry but somewhere else (offset).
+		 */
+		s = exif_format_get_size (n->entries[tcount].format) *
+                                      n->entries[tcount].components;
+		n->entries[tcount].size = s;
+		if (s) {
+			size_t dataofs = o + 8;
+			if (s > 4)
+				/* The data in this case is merely a pointer */
+			   	dataofs = exif_get_long (buf + dataofs, n->order) + 6;
+			if ((dataofs + s < dataofs) || (dataofs + s < s) ||
+				(dataofs + s > buf_size)) {
+				exif_log (en->log, EXIF_LOG_CODE_DEBUG,
+						  "ExifMnoteDataPentax", "Tag data past end "
+					  "of buffer (%u > %u)", dataofs + s, buf_size);
+				continue;
+			}
+
+			n->entries[tcount].data = exif_mem_alloc (en->mem, s);
+			if (!n->entries[tcount].data) {
+				EXIF_LOG_NO_MEMORY(en->log, "ExifMnoteDataPentax", s);
+				continue;
+			}
+			memcpy (n->entries[tcount].data, buf + dataofs, s);
+		}
+
+		/* Tag was successfully parsed */
+		++tcount;
+	}
+	/* Store the count of successfully parsed tags */
+	n->count = tcount;
+}
+
+static unsigned int
+exif_mnote_data_pentax_count (ExifMnoteData *n)
+{
+	return n ? ((ExifMnoteDataPentax *) n)->count : 0;
+}
+
+static unsigned int
+exif_mnote_data_pentax_get_id (ExifMnoteData *d, unsigned int n)
+{
+	ExifMnoteDataPentax *note = (ExifMnoteDataPentax *) d;
+
+	if (!note) return 0;
+	if (note->count <= n) return 0;
+	return note->entries[n].tag;
+}
+
+static const char *
+exif_mnote_data_pentax_get_name (ExifMnoteData *d, unsigned int n)
+{
+	ExifMnoteDataPentax *note = (ExifMnoteDataPentax *) d;
+
+	if (!note) return NULL;
+	if (note->count <= n) return NULL;
+	return mnote_pentax_tag_get_name (note->entries[n].tag);
+}
+
+static const char *
+exif_mnote_data_pentax_get_title (ExifMnoteData *d, unsigned int n)
+{
+	ExifMnoteDataPentax *note = (ExifMnoteDataPentax *) d;
+
+	if (!note) return NULL;
+	if (note->count <= n) return NULL;
+	return mnote_pentax_tag_get_title (note->entries[n].tag);
+}
+
+static const char *
+exif_mnote_data_pentax_get_description (ExifMnoteData *d, unsigned int n)
+{
+	ExifMnoteDataPentax *note = (ExifMnoteDataPentax *) d;
+	
+	if (!note) return NULL;
+	if (note->count <= n) return NULL;
+	return mnote_pentax_tag_get_description (note->entries[n].tag);
+}
+
+static void
+exif_mnote_data_pentax_set_offset (ExifMnoteData *d, unsigned int o)
+{
+	if (d) ((ExifMnoteDataPentax *) d)->offset = o;
+}
+
+static void
+exif_mnote_data_pentax_set_byte_order (ExifMnoteData *d, ExifByteOrder o)
+{
+	ExifByteOrder o_orig;
+	ExifMnoteDataPentax *n = (ExifMnoteDataPentax *) d;
+	unsigned int i;
+
+	if (!n) return;
+
+	o_orig = n->order;
+	n->order = o;
+	for (i = 0; i < n->count; i++) {
+		n->entries[i].order = o;
+		exif_array_set_byte_order (n->entries[i].format, n->entries[i].data,
+				n->entries[i].components, o_orig, o);
+	}
+}
+
+int
+exif_mnote_data_pentax_identify (const ExifData *ed, const ExifEntry *e)
+{
+	if ((e->size >= 8) && !memcmp (e->data, "AOC", 4)) {
+		if (((e->data[4] == 'I') && (e->data[5] == 'I')) ||
+		    ((e->data[4] == 'M') && (e->data[5] == 'M')))
+			return pentaxV3;
+		else
+			/* Uses Casio v2 tags */
+			return pentaxV2;
+	}
+
+	if ((e->size >= 8) && !memcmp (e->data, "QVC", 4))
+		return casioV2;
+
+	/* This isn't a very robust test, so make sure it's done last */
+	/* Maybe we should additionally check for a make of Asahi or Pentax */
+	if ((e->size >= 2) && (e->data[0] == 0x00) && (e->data[1] == 0x1b))
+		return pentaxV1;
+
+	return 0;
+}
+
+ExifMnoteData *
+exif_mnote_data_pentax_new (ExifMem *mem)
+{
+	ExifMnoteData *d;
+
+	if (!mem) return NULL;
+
+	d = exif_mem_alloc (mem, sizeof (ExifMnoteDataPentax));
+	if (!d) return NULL;
+
+	exif_mnote_data_construct (d, mem);
+
+	/* Set up function pointers */
+	d->methods.free            = exif_mnote_data_pentax_free;
+	d->methods.set_byte_order  = exif_mnote_data_pentax_set_byte_order;
+	d->methods.set_offset      = exif_mnote_data_pentax_set_offset;
+	d->methods.load            = exif_mnote_data_pentax_load;
+	d->methods.save            = exif_mnote_data_pentax_save;
+	d->methods.count           = exif_mnote_data_pentax_count;
+	d->methods.get_id          = exif_mnote_data_pentax_get_id;
+	d->methods.get_name        = exif_mnote_data_pentax_get_name;
+	d->methods.get_title       = exif_mnote_data_pentax_get_title;
+	d->methods.get_description = exif_mnote_data_pentax_get_description;
+	d->methods.get_value       = exif_mnote_data_pentax_get_value;
+
+	return d;
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/pentax/exif-mnote-data-pentax.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/pentax/exif-mnote-data-pentax.h
new file mode 100644
index 0000000000000000000000000000000000000000..da9f79a87c46194aabad66bf020a691b6e61ba43
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/pentax/exif-mnote-data-pentax.h
@@ -0,0 +1,59 @@
+/* exif-mnote-data-pentax.h
+ *
+ * Copyright (c) 2002 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#ifndef __EXIF_MNOTE_DATA_PENTAX_H__
+#define __EXIF_MNOTE_DATA_PENTAX_H__
+
+#include <libexif/exif-byte-order.h>
+#include <libexif/exif-mnote-data.h>
+#include <libexif/exif-mnote-data-priv.h>
+#include <libexif/pentax/mnote-pentax-entry.h>
+#include <libexif/exif-data.h>
+#include <libexif/exif-mem.h>
+
+enum PentaxVersion {pentaxV1 = 1, pentaxV2 = 2, pentaxV3 = 3, casioV2 = 4 };
+
+typedef struct _ExifMnoteDataPentax ExifMnoteDataPentax;
+
+struct _ExifMnoteDataPentax {
+	ExifMnoteData parent;
+
+	MnotePentaxEntry *entries;
+	unsigned int count;
+
+	ExifByteOrder order;
+	unsigned int offset;
+
+	enum PentaxVersion version;
+};
+
+/*! Detect if MakerNote is recognized as one handled by the Pentax module.
+ * 
+ * \param[in] ed image #ExifData to identify as as a Pentax type
+ * \param[in] e #ExifEntry for EXIF_TAG_MAKER_NOTE, from within ed but
+ *   duplicated here for convenience
+ * \return 0 if not recognized, nonzero if recognized. The specific nonzero 
+ *   value returned may identify a subtype unique within this module.
+ */
+int exif_mnote_data_pentax_identify (const ExifData *ed, const ExifEntry *e);
+
+ExifMnoteData *exif_mnote_data_pentax_new (ExifMem *);
+
+#endif /* __EXIF_MNOTE_DATA_PENTAX_H__ */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/pentax/mnote-pentax-entry.c b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/pentax/mnote-pentax-entry.c
new file mode 100644
index 0000000000000000000000000000000000000000..7e97c2c24ec2b13f66cb460586fca3fd1d747ffd
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/pentax/mnote-pentax-entry.c
@@ -0,0 +1,459 @@
+/* mnote-pentax-entry.c
+ *
+ * Copyright (c) 2002 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#include <config.h>
+#include "mnote-pentax-entry.h"
+
+#include <libexif/i18n.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <libexif/exif-format.h>
+#include <libexif/exif-utils.h>
+#include <libexif/exif-entry.h>
+
+
+#define CF(format,target,v,maxlen)                              \
+{                                                               \
+	if (format != target) {                                 \
+		snprintf (v, maxlen,	                        \
+			_("Invalid format '%s', "               \
+			"expected '%s'."),                      \
+			exif_format_get_name (format),          \
+			exif_format_get_name (target));         \
+		break;                                          \
+	}                                                       \
+}
+
+#define CC(number,target,v,maxlen)                                      \
+{                                                                       \
+	if (number != target) {                                         \
+		snprintf (v, maxlen,                                    \
+			_("Invalid number of components (%i, "          \
+			"expected %i)."), (int) number, (int) target);  \
+		break;                                                  \
+	}                                                               \
+}
+
+#define CC2(number,t1,t2,v,maxlen)                                      \
+{                                                                       \
+	if ((number != t1) && (number != t2)) {                         \
+		snprintf (v, maxlen,                                    \
+			_("Invalid number of components (%i, "          \
+			"expected %i or %i)."), (int) number,		\
+			(int) t1, (int) t2);  				\
+		break;                                                  \
+	}                                                               \
+}
+
+static const struct {
+	ExifTag tag;
+	struct {
+		int index;
+		const char *string;
+	} elem[33];
+} items[] = {
+#ifndef NO_VERBOSE_TAG_DATA
+  { MNOTE_PENTAX_TAG_MODE,
+    { {0, N_("Auto")},
+      {1, N_("Night scene")},
+      {2, N_("Manual")},
+      {4, N_("Multi-exposure")},
+      {0, NULL}}},
+  { MNOTE_PENTAX_TAG_QUALITY,
+    { {0, N_("Good")},
+      {1, N_("Better")},
+      {2, N_("Best")},{0,NULL}}},
+  { MNOTE_PENTAX_TAG_FOCUS,
+    { {2, N_("Custom")},
+      {3, N_("Auto")},
+      {0, NULL}}},
+  { MNOTE_PENTAX_TAG_FLASH,
+    { {1, N_("Auto")},
+      {2, N_("Flash on")},
+      {4, N_("Flash off")},
+      {6, N_("Red-eye reduction")},
+      {0, NULL}}},
+  { MNOTE_PENTAX_TAG_WHITE_BALANCE,
+    { {0, N_("Auto")},
+      {1, N_("Daylight")},
+      {2, N_("Shade")},
+      {3, N_("Tungsten")},
+      {4, N_("Fluorescent")},
+      {5, N_("Manual")},
+      {0, NULL}}},
+  { MNOTE_PENTAX_TAG_SHARPNESS,
+    { {0, N_("Normal")},
+      {1, N_("Soft")},
+      {2, N_("Hard")},
+      {0, NULL}}},
+  { MNOTE_PENTAX_TAG_CONTRAST,
+    { {0, N_("Normal")},
+      {1, N_("Low")},
+      {2, N_("High")},
+      {0, NULL}}},
+  { MNOTE_PENTAX_TAG_SATURATION,
+    { {0, N_("Normal")},
+      {1, N_("Low")},
+      {2, N_("High")},
+      {0, NULL}}},
+  { MNOTE_PENTAX_TAG_ISO_SPEED,
+    { {10,  N_("100")},
+      {16,  N_("200")},
+      {100, N_("100")},
+      {200, N_("200")},
+      { 0,  NULL}}},
+  { MNOTE_PENTAX_TAG_COLOR,
+    { {1, N_("Full")},
+      {2, N_("Black & white")},
+      {3, N_("Sepia")},
+      {0, NULL}}},
+  { MNOTE_PENTAX2_TAG_MODE,
+    { {0, N_("Auto")},
+      {1, N_("Night scene")},
+      {2, N_("Manual")},
+      {4, N_("Multi-exposure")},
+      {0, NULL}}},
+  { MNOTE_PENTAX2_TAG_QUALITY,
+    { {0, N_("Good")},
+      {1, N_("Better")},
+      {2, N_("Best")},
+      {3, N_("TIFF")},
+      {4, N_("RAW")},
+      {0, NULL}}},
+  { MNOTE_PENTAX2_TAG_IMAGE_SIZE,
+    { {0, "640x480"},
+      {1, N_("Full")},
+      {2, "1024x768"},
+      {3, "1280x960"},
+      {4, "1600x1200"},
+      {5, "2048x1536"},
+      {8, N_("2560x1920 or 2304x1728")},
+      {9, "3072x2304"},
+      {10, "3264x2448"},
+      {19, "320x240"},
+      {20, "2288x1712"},
+      {21, "2592x1944"},
+      {22, N_("2304x1728 or 2592x1944")},
+      {23, "3056x2296"},
+      {25, N_("2816x2212 or 2816x2112")},
+      {27, "3648x2736"},
+      {36, "3008x2008"},
+      {0, NULL}}},
+  { MNOTE_PENTAX2_TAG_PICTURE_MODE,
+    { {0, N_("Program")},
+      {2, N_("Program AE")},
+      {3, N_("Manual")},
+      {5, N_("Portrait")},
+      {6, N_("Landscape")},
+      {8, N_("Sport")},
+      {9, N_("Night scene")},
+      {11, N_("Soft")},
+      {12, N_("Surf & snow")},
+      {13, N_("Sunset or candlelight")},
+      {14, N_("Autumn")},
+      {15, N_("Macro")},
+      {17, N_("Fireworks")},
+      {18, N_("Text")},
+      {19, N_("Panorama")},
+      {30, N_("Self portrait")},
+      {31, N_("Illustrations")},
+      {33, N_("Digital filter")},
+      {37, N_("Museum")},
+      {38, N_("Food")},
+      {40, N_("Green mode")},
+      {49, N_("Light pet")},
+      {50, N_("Dark pet")},
+      {51, N_("Medium pet")},
+      {53, N_("Underwater")},
+      {54, N_("Candlelight")},
+      {55, N_("Natural skin tone")},
+      {56, N_("Synchro sound record")},
+      {58, N_("Frame composite")},
+      {0, NULL}}},
+  { MNOTE_PENTAX2_TAG_FLASH_MODE,
+    { {0x0000, N_("Auto, did not fire")},
+      {0x0001, N_("Off")},
+      {0x0003, N_("Auto, did not fire, red-eye reduction")},
+      {0x0100, N_("Auto, fired")},
+      {0x0102, N_("On")},
+      {0x0103, N_("Auto, fired, red-eye reduction")},
+      {0x0104, N_("On, red-eye reduction")},
+      {0x0105, N_("On, wireless")},
+      {0x0108, N_("On, soft")},
+      {0x0109, N_("On, slow-sync")},
+      {0x010a, N_("On, slow-sync, red-eye reduction")},
+      {0x010b, N_("On, trailing-curtain sync")},
+      {0, NULL}}},
+  { MNOTE_PENTAX2_TAG_FOCUS_MODE,
+    { {0, N_("Normal")},
+      {1, N_("Macro")},
+      {2, N_("Infinity")},
+      {3, N_("Manual")},
+      {5, N_("Pan focus")},
+      {16, N_("AF-S")},
+      {17, N_("AF-C")},
+      {0, NULL}}},
+  { MNOTE_PENTAX2_TAG_AFPOINT_SELECTED,
+    { {1, N_("Upper-left")},
+      {2, N_("Top")},
+      {3, N_("Upper-right")},
+      {4, N_("Left")},
+      {5, N_("Mid-left")},
+      {6, N_("Center")},
+      {7, N_("Mid-right")},
+      {8, N_("Right")},
+      {9, N_("Lower-left")},
+      {10, N_("Bottom")},
+      {11, N_("Lower-right")},
+      {0xfffe, N_("Fixed center")},
+      {0xffff, N_("Auto")},
+      {0, NULL}}},
+  { MNOTE_PENTAX2_TAG_AUTO_AFPOINT,
+    { {0, N_("Multiple")},
+      {1, N_("Top-left")},
+      {2, N_("Top-center")},
+      {3, N_("Top-right")},
+      {4, N_("Left")},
+      {5, N_("Center")},
+      {6, N_("Right")},
+      {7, N_("Bottom-left")},
+      {8, N_("Bottom-center")},
+      {9, N_("Bottom-right")},
+      {0xffff, N_("None")},
+      {0, NULL}}},
+  { MNOTE_PENTAX2_TAG_WHITE_BALANCE,
+    { {0, N_("Auto")},
+      {1, N_("Daylight")},
+      {2, N_("Shade")},
+      {3, N_("Fluorescent")},
+      {4, N_("Tungsten")},
+      {5, N_("Manual")},
+      {6, N_("Daylight fluorescent")},
+      {7, N_("Day white fluorescent")},
+      {8, N_("White fluorescent")},
+      {9, N_("Flash")},
+      {10, N_("Cloudy")},
+      {0xfffe, N_("Unknown")},
+      {0xffff, N_("User selected")},
+      {0, NULL}}},
+  {MNOTE_CASIO2_TAG_BESTSHOT_MODE, 
+    { {0, N_("Off")},
+      {1, N_("On")},
+      {0, NULL}}},
+#endif
+  {0, {{0, NULL}}}
+};
+
+/* Two-component values */
+static const struct {
+	ExifTag tag;
+	struct {
+		int index1, index2;
+		const char *string;
+	} elem[39];
+} items2[] = {
+#ifndef NO_VERBOSE_TAG_DATA
+  { MNOTE_PENTAX2_TAG_IMAGE_SIZE,
+    { {0, 0, "2304x1728"},
+      {4, 0, "1600x1200"},
+      {5, 0, "2048x1536"},
+      {8, 0, "2560x1920"},
+      {34, 0, "1536x1024"},
+      {36, 0, N_("3008x2008 or 3040x2024")},
+      {37, 0, "3008x2000"},
+      {35, 1, "2400x1600"},
+      {32, 2, "960x480"},
+      {33, 2, "1152x768"},
+      {34, 2, "1536x1024"},
+      {0,  0, NULL}}},
+  { MNOTE_PENTAX2_TAG_PICTURE_MODE,
+    { {0,   0, N_("Auto")},
+      {5,   0, N_("Portrait")},
+      {53,  0, N_("Underwater")},
+      {255, 0, N_("Digital filter?")},
+      {5,   1, N_("Portrait")},
+      {9,   1, N_("Night scene")},
+      {13,  1, N_("Candlelight")},
+      {15,  1, N_("Macro")},
+      {53,  1, N_("Underwater")},
+      {0,   2, N_("Program AE")},
+      {5,   2, N_("Portrait")},
+      {6,   2, N_("Landscape")},
+      {0,   0, NULL}}},
+#endif
+  {0, {{0, 0, NULL}}}
+};
+
+char *
+mnote_pentax_entry_get_value (MnotePentaxEntry *entry,
+			      char *val, unsigned int maxlen)
+{
+	ExifLong vl;
+	ExifShort vs, vs2;
+	int i = 0, j = 0;
+
+	if (!entry) return (NULL);
+
+	memset (val, 0, maxlen);
+	maxlen--;
+
+	switch (entry->tag) {
+	  case MNOTE_PENTAX_TAG_MODE:
+	  case MNOTE_PENTAX_TAG_QUALITY:
+	  case MNOTE_PENTAX_TAG_FOCUS:
+	  case MNOTE_PENTAX_TAG_FLASH:
+	  case MNOTE_PENTAX_TAG_WHITE_BALANCE:
+	  case MNOTE_PENTAX_TAG_SHARPNESS:
+	  case MNOTE_PENTAX_TAG_CONTRAST:
+	  case MNOTE_PENTAX_TAG_SATURATION:
+	  case MNOTE_PENTAX_TAG_ISO_SPEED:
+	  case MNOTE_PENTAX_TAG_COLOR:
+	  case MNOTE_PENTAX2_TAG_MODE:
+	  case MNOTE_PENTAX2_TAG_QUALITY:
+	  case MNOTE_PENTAX2_TAG_FLASH_MODE:
+	  case MNOTE_PENTAX2_TAG_FOCUS_MODE:
+	  case MNOTE_PENTAX2_TAG_AFPOINT_SELECTED:
+	  case MNOTE_PENTAX2_TAG_AUTO_AFPOINT:
+	  case MNOTE_PENTAX2_TAG_WHITE_BALANCE:
+	  case MNOTE_PENTAX2_TAG_PICTURE_MODE:
+	  case MNOTE_PENTAX2_TAG_IMAGE_SIZE:
+	  case MNOTE_CASIO2_TAG_BESTSHOT_MODE:
+		CF (entry->format, EXIF_FORMAT_SHORT, val, maxlen);
+		CC2 (entry->components, 1, 2, val, maxlen);
+		if (entry->components == 1) {
+			vs = exif_get_short (entry->data, entry->order);
+
+			/* search the tag */
+			for (i = 0; (items[i].tag && items[i].tag != entry->tag); i++);
+			if (!items[i].tag) {
+				snprintf (val, maxlen,
+					  _("Internal error (unknown value %i)"), vs);
+			  	break;
+			}
+
+			/* find the value */
+			for (j = 0; items[i].elem[j].string &&
+			    (items[i].elem[j].index < vs); j++);
+			if (items[i].elem[j].index != vs) {
+				snprintf (val, maxlen,
+					  _("Internal error (unknown value %i)"), vs);
+				break;
+			}
+			strncpy (val, _(items[i].elem[j].string), maxlen);
+		} else {
+			/* Two-component values */
+			CF (entry->format, EXIF_FORMAT_SHORT, val, maxlen);
+			CC2 (entry->components, 1, 2, val, maxlen);
+			vs = exif_get_short (entry->data, entry->order);
+			vs2 = exif_get_short (entry->data+2, entry->order) << 16;
+
+			/* search the tag */
+			for (i = 0; (items2[i].tag && items2[i].tag != entry->tag); i++);
+			if (!items2[i].tag) {
+				snprintf (val, maxlen,
+					  _("Internal error (unknown value %i %i)"), vs, vs2);
+			  	break;
+			}
+
+			/* find the value */
+			for (j = 0; items2[i].elem[j].string && ((items2[i].elem[j].index2 < vs2)
+				|| ((items2[i].elem[j].index2 == vs2) && (items2[i].elem[j].index1 < vs))); j++);
+			if ((items2[i].elem[j].index1 != vs) || (items2[i].elem[j].index2 != vs2)) {
+				snprintf (val, maxlen,
+					  _("Internal error (unknown value %i %i)"), vs, vs2);
+				break;
+			}
+			strncpy (val, _(items2[i].elem[j].string), maxlen);
+		}
+		break;
+
+	case MNOTE_PENTAX_TAG_ZOOM:
+		CF (entry->format, EXIF_FORMAT_LONG, val, maxlen);
+		CC (entry->components, 1, val, maxlen);
+		vl = exif_get_long (entry->data, entry->order);
+		snprintf (val, maxlen, "%li", (long int) vl);
+		break;
+	case MNOTE_PENTAX_TAG_PRINTIM:
+		CF (entry->format, EXIF_FORMAT_UNDEFINED, val, maxlen);
+		CC (entry->components, 124, val, maxlen);
+		snprintf (val, maxlen, _("%i bytes unknown data"),
+			entry->size);
+		break;
+	case MNOTE_PENTAX_TAG_TZ_CITY:
+	case MNOTE_PENTAX_TAG_TZ_DST:
+		CF (entry->format, EXIF_FORMAT_UNDEFINED, val, maxlen);
+		CC (entry->components, 4, val, maxlen);
+		strncpy (val, (char*)entry->data, MIN(maxlen, entry->size));
+		break;
+	case MNOTE_PENTAX2_TAG_DATE:
+		CF (entry->format, EXIF_FORMAT_UNDEFINED, val, maxlen);
+		CC (entry->components, 4, val, maxlen);
+		/* Note: format is UNDEFINED, not SHORT -> order is fixed: MOTOROLA */
+		vs = exif_get_short (entry->data, EXIF_BYTE_ORDER_MOTOROLA);
+		snprintf (val, maxlen, "%i:%02i:%02i", vs, entry->data[2], entry->data[3]);
+		break;
+	case MNOTE_PENTAX2_TAG_TIME:
+		CF (entry->format, EXIF_FORMAT_UNDEFINED, val, maxlen);
+		CC2 (entry->components, 3, 4, val, maxlen);
+		snprintf (val, maxlen, "%02i:%02i:%02i", entry->data[0], entry->data[1], entry->data[2]);
+		break;
+	default:
+		switch (entry->format) {
+		case EXIF_FORMAT_ASCII:
+		  strncpy (val, (char *)entry->data, MIN(maxlen, entry->size));
+		  break;
+		case EXIF_FORMAT_SHORT:
+		  {
+			const unsigned char *data = entry->data;
+		  	size_t k, len = strlen(val);
+		  	for(k=0; k<entry->components; k++) {
+				vs = exif_get_short (data, entry->order);
+				snprintf (val+len, maxlen-len, "%i ", vs);
+				len = strlen(val);
+				data += 2;
+			}
+		  }
+		  break;
+		case EXIF_FORMAT_LONG:
+		  {
+			const unsigned char *data = entry->data;
+		  	size_t k, len = strlen(val);
+		  	for(k=0; k<entry->components; k++) {
+				vl = exif_get_long (data, entry->order);
+				snprintf (val+len, maxlen-len, "%li", (long int) vl);
+				len = strlen(val);
+				data += 4;
+			}
+		  }
+		  break;
+		case EXIF_FORMAT_UNDEFINED:
+		default:
+		  snprintf (val, maxlen, _("%i bytes unknown data"),
+			  entry->size);
+		  break;
+		}
+		break;
+	}
+
+	return (val);
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/pentax/mnote-pentax-entry.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/pentax/mnote-pentax-entry.h
new file mode 100644
index 0000000000000000000000000000000000000000..4547ec3bebb9ac29adf143d76fcf7d7b7e0b6681
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/pentax/mnote-pentax-entry.h
@@ -0,0 +1,43 @@
+/* mnote-pentax-entry.h
+ *
+ * Copyright (c) 2002 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#ifndef __MNOTE_PENTAX_ENTRY_H__
+#define __MNOTE_PENTAX_ENTRY_H__
+
+#include <libexif/exif-format.h>
+#include <libexif/exif-byte-order.h>
+#include <libexif/pentax/mnote-pentax-tag.h>
+
+typedef struct _MnotePentaxEntry        MnotePentaxEntry;
+
+struct _MnotePentaxEntry {
+	MnotePentaxTag tag;
+	ExifFormat format;
+	unsigned long components;
+
+	unsigned char *data;
+	unsigned int size;
+
+	ExifByteOrder order;
+};
+
+char *mnote_pentax_entry_get_value (MnotePentaxEntry *entry, char *val, unsigned int maxlen);
+
+#endif /* __MNOTE_PENTAX_ENTRY_H__ */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/pentax/mnote-pentax-tag.c b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/pentax/mnote-pentax-tag.c
new file mode 100644
index 0000000000000000000000000000000000000000..740f135b27bdabfde1241600331782659d360da6
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/pentax/mnote-pentax-tag.c
@@ -0,0 +1,175 @@
+/* mnote-pentax-tag.c:
+ *
+ * Copyright (c) 2002 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#include <config.h>
+#include "mnote-pentax-tag.h"
+
+#include <stdlib.h>
+
+#include <libexif/i18n.h>
+
+static const struct {
+	MnotePentaxTag tag;
+	const char *name;
+	const char *title;
+	const char *description;
+} table[] = {
+#ifndef NO_VERBOSE_TAG_STRINGS
+	{MNOTE_PENTAX_TAG_MODE, "Mode", N_("Capture Mode"), ""},
+	{MNOTE_PENTAX_TAG_QUALITY, "Quality", N_("Quality Level"), ""},
+	{MNOTE_PENTAX_TAG_FOCUS, "Focus", N_("Focus Mode"), ""},
+	{MNOTE_PENTAX_TAG_FLASH, "Flash", N_("Flash Mode"), ""},
+	{MNOTE_PENTAX_TAG_UNKNOWN_05, NULL, NULL, NULL},
+	{MNOTE_PENTAX_TAG_UNKNOWN_06, NULL, NULL, NULL},
+	{MNOTE_PENTAX_TAG_WHITE_BALANCE, "WhiteBalance", N_("White Balance"), ""},
+	{MNOTE_PENTAX_TAG_UNKNOWN_08, NULL, NULL, NULL},
+	{MNOTE_PENTAX_TAG_UNKNOWN_09, NULL, NULL, NULL},
+	{MNOTE_PENTAX_TAG_ZOOM, "Zoom", N_("Zoom"), NULL},
+	{MNOTE_PENTAX_TAG_SHARPNESS, "Sharpness", N_("Sharpness"), ""},
+	{MNOTE_PENTAX_TAG_CONTRAST, "Contrast", N_("Contrast"), ""},
+	{MNOTE_PENTAX_TAG_SATURATION, "Saturation", N_("Saturation"), ""},
+	{MNOTE_PENTAX_TAG_UNKNOWN_14, NULL, NULL, NULL},
+	{MNOTE_PENTAX_TAG_UNKNOWN_15, NULL, NULL, NULL},
+	{MNOTE_PENTAX_TAG_UNKNOWN_16, NULL, NULL, NULL},
+	{MNOTE_PENTAX_TAG_UNKNOWN_17, NULL, NULL, NULL},
+	{MNOTE_PENTAX_TAG_UNKNOWN_18, NULL, NULL, NULL},
+	{MNOTE_PENTAX_TAG_UNKNOWN_19, NULL, NULL, NULL},
+	{MNOTE_PENTAX_TAG_ISO_SPEED, "ISOSpeed", N_("ISO Speed"), ""},
+	{MNOTE_PENTAX_TAG_UNKNOWN_21, NULL, NULL, NULL},
+	{MNOTE_PENTAX_TAG_COLOR, "Color", N_("Colors"), ""},
+	{MNOTE_PENTAX_TAG_UNKNOWN_24, NULL, NULL, NULL},
+	{MNOTE_PENTAX_TAG_UNKNOWN_25, NULL, NULL, NULL},
+	{MNOTE_PENTAX_TAG_PRINTIM, "PrintIM", N_("PrintIM Settings"), ""},
+	{MNOTE_PENTAX_TAG_TZ_CITY, "TimeZone", N_("Time Zone"), ""},
+	{MNOTE_PENTAX_TAG_TZ_DST, "DaylightSavings", N_("Daylight Savings"), ""},
+
+	{MNOTE_PENTAX2_TAG_MODE, "Mode", N_("Capture Mode"), ""},
+	{MNOTE_PENTAX2_TAG_PREVIEW_SIZE, "PentaxPreviewSize", N_("Preview Size"), ""},
+	{MNOTE_PENTAX2_TAG_PREVIEW_LENGTH, "PentaxPreviewLength", N_("Preview Length"), ""},
+	{MNOTE_PENTAX2_TAG_PREVIEW_START, "PentaxPreviewStart", N_("Preview Start"), ""},
+	{MNOTE_PENTAX2_TAG_MODEL_ID, "ModelID", N_("Model Identification"), ""},
+	{MNOTE_PENTAX2_TAG_DATE, "Date", N_("Date"), ""},
+	{MNOTE_PENTAX2_TAG_TIME, "Time", N_("Time"), ""},
+	{MNOTE_PENTAX2_TAG_QUALITY, "Quality", N_("Quality Level"), ""},
+	{MNOTE_PENTAX2_TAG_IMAGE_SIZE, "ImageSize", N_("Image Size"), ""},
+	{MNOTE_PENTAX2_TAG_PICTURE_MODE, "PictureMode", N_("Picture Mode"), ""},
+	{MNOTE_PENTAX2_TAG_FLASH_MODE, "FlashMode", N_("Flash Mode"), ""},
+	{MNOTE_PENTAX2_TAG_FOCUS_MODE, "FocusMode", N_("Focus Mode"), ""},
+	{MNOTE_PENTAX2_TAG_AFPOINT_SELECTED, "AFPointSelected", N_("AF Point Selected"), ""},
+	{MNOTE_PENTAX2_TAG_AUTO_AFPOINT, "AutoAFPoint", N_("Auto AF Point"), ""},
+	{MNOTE_PENTAX2_TAG_FOCUS_POSITION, "FocusPosition", N_("Focus Position"), ""},
+	{MNOTE_PENTAX2_TAG_EXPOSURE_TIME, "ExposureTime", N_("Exposure Time"), ""},
+	{MNOTE_PENTAX2_TAG_FNUMBER, "FNumber", N_("F-Number"), ""},
+	{MNOTE_PENTAX2_TAG_ISO, "ISO", N_("ISO Number"), ""},
+	{MNOTE_PENTAX2_TAG_EXPOSURE_COMPENSATION, "ExposureCompensation", N_("Exposure Compensation"), ""},
+	{MNOTE_PENTAX2_TAG_METERING_MODE, "MeteringMode", N_("Metering Mode"), ""},
+	{MNOTE_PENTAX2_TAG_AUTO_BRACKETING, "AutoBracketing", N_("Auto Bracketing"), ""},
+	{MNOTE_PENTAX2_TAG_WHITE_BALANCE, "WhiteBalance", N_("White Balance"), ""},
+	{MNOTE_PENTAX2_TAG_WHITE_BALANCE_MODE, "WhiteBalanceMode", N_("White Balance Mode"), ""},
+	{MNOTE_PENTAX2_TAG_BLUE_BALANCE, "BlueBalance", N_("Blue Balance"), ""},
+	{MNOTE_PENTAX2_TAG_RED_BALANCE, "RedBalance", N_("Red Balance"), ""},
+	{MNOTE_PENTAX2_TAG_FOCAL_LENGTH, "FocalLength", N_("Focal Length"), ""},
+	{MNOTE_PENTAX2_TAG_DIGITAL_ZOOM, "DigitalZoom", N_("Digital Zoom"), ""},
+	{MNOTE_PENTAX2_TAG_SATURATION, "Saturation", N_("Saturation"), ""},
+	{MNOTE_PENTAX2_TAG_CONTRAST, "Contrast", N_("Contrast"), ""},
+	{MNOTE_PENTAX2_TAG_SHARPNESS, "Sharpness", N_("Sharpness"), ""},
+	{MNOTE_PENTAX2_TAG_WORLDTIME_LOCATION, "WorldTimeLocation", N_("World Time Location"), ""},
+	{MNOTE_PENTAX2_TAG_HOMETOWN_CITY, "HometownCity", N_("Hometown City"), ""},
+	{MNOTE_PENTAX2_TAG_DESTINATION_CITY, "DestinationCity", N_("Destination City"), ""},
+	{MNOTE_PENTAX2_TAG_HOMETOWN_DST, "HometownDST,", N_("Hometown DST"), N_("Home Daylight Savings Time")},
+	{MNOTE_PENTAX2_TAG_DESTINATION_DST, "DestinationDST", N_("Destination DST"), N_("Destination Daylight Savings Time")},
+	{MNOTE_PENTAX2_TAG_FRAME_NUMBER, "FrameNumber", N_("Frame Number"), ""},
+	{MNOTE_PENTAX2_TAG_IMAGE_PROCESSING, "ImageProcessing", N_("Image Processing"), ""},
+	{MNOTE_PENTAX2_TAG_PICTURE_MODE2, "PictureMode2", N_("Picture Mode (2)"), ""},
+	{MNOTE_PENTAX2_TAG_DRIVE_MODE, "DriveMode", N_("Drive Mode"), ""},
+	{MNOTE_PENTAX2_TAG_COLOR_SPACE, "ColorSpace", N_("Color Space"), ""},
+	{MNOTE_PENTAX2_TAG_IMAGE_AREA_OFFSET, "ImageAreaOffset", N_("Image Area Offset"), ""},
+	{MNOTE_PENTAX2_TAG_RAW_IMAGE_SIZE, "RawImageSize", N_("Raw Image Size"), ""},
+	{MNOTE_PENTAX2_TAG_AFPOINTS_USED, "AfPointsUsed,", N_("Autofocus Points Used"), ""},
+	{MNOTE_PENTAX2_TAG_LENS_TYPE, "LensType", N_("Lens Type"), ""},
+	{MNOTE_PENTAX2_TAG_CAMERA_TEMPERATURE, "CameraTemperature", N_("Camera Temperature"), ""},
+	{MNOTE_PENTAX2_TAG_NOISE_REDUCTION, "NoiseReduction", N_("Noise Reduction"), ""},
+	{MNOTE_PENTAX2_TAG_FLASH_EXPOSURE_COMP, "FlashExposureComp", N_("Flash Exposure Compensation"), ""},
+	{MNOTE_PENTAX2_TAG_IMAGE_TONE, "ImageTone", N_("Image Tone"), ""},
+	{MNOTE_PENTAX2_TAG_SHAKE_REDUCTION_INFO, "ShakeReductionInfo,", N_("Shake Reduction Info"), ""},
+	{MNOTE_PENTAX2_TAG_BLACK_POINT, "BlackPoint", N_("Black Point"), ""},
+	{MNOTE_PENTAX2_TAG_WHITE_POINT, "WhitePoint", N_("White Point"), ""},
+	{MNOTE_PENTAX2_TAG_AE_INFO, "AEInfo", N_("AE Info"), ""},
+	{MNOTE_PENTAX2_TAG_LENS_INFO, "LensInfo", N_("Lens Info"), ""},
+	{MNOTE_PENTAX2_TAG_FLASH_INFO, "FlashInfo", N_("Flash Info"), ""},
+	{MNOTE_PENTAX2_TAG_CAMERA_INFO, "CameraInfo", N_("Camera Info"), ""},
+	{MNOTE_PENTAX2_TAG_BATTERY_INFO, "BatteryInfo", N_("Battery Info"), ""},
+	{MNOTE_PENTAX2_TAG_HOMETOWN_CITY_CODE, "HometownCityCode", N_("Hometown City Code"), ""},
+	{MNOTE_PENTAX2_TAG_DESTINATION_CITY_CODE, "DestinationCityCode", N_("Destination City Code"), ""},
+
+	{MNOTE_CASIO2_TAG_PREVIEW_START, "CasioPreviewStart", N_("Preview Start"), ""},
+	{MNOTE_CASIO2_TAG_WHITE_BALANCE_BIAS, "WhiteBalanceBias", N_("White Balance Bias"), ""},
+	{MNOTE_CASIO2_TAG_WHITE_BALANCE, "WhiteBalance", N_("White Balance"), ""},
+	{MNOTE_CASIO2_TAG_OBJECT_DISTANCE, "ObjectDistance", N_("Object Distance"), N_("Distance of photographed object in millimeters.")},
+	{MNOTE_CASIO2_TAG_FLASH_DISTANCE, "FlashDistance", N_("Flash Distance"), ""},
+	{MNOTE_CASIO2_TAG_RECORD_MODE, "RecordMode", N_("Record Mode"), ""},
+	{MNOTE_CASIO2_TAG_SELF_TIMER, "SelfTimer", N_("Self-timer"), ""},
+	{MNOTE_CASIO2_TAG_QUALITY, "CasioQuality", N_("Quality Level"), ""},
+	{MNOTE_CASIO2_TAG_FOCUS_MODE, "CasioFocusMode", N_("Focus Mode"), ""},
+	{MNOTE_CASIO2_TAG_TIME_ZONE, "TimeZone", N_("Time Zone"), ""},
+	{MNOTE_CASIO2_TAG_BESTSHOT_MODE, "BestshotMode", N_("Bestshot Mode"), ""},
+	{MNOTE_CASIO2_TAG_CCS_ISO_SENSITIVITY, "CCSISOSensitivity", N_("CCS ISO Sensitivity"), ""},
+	{MNOTE_CASIO2_TAG_COLOR_MODE, "ColorMode", N_("Color Mode"), ""},
+	{MNOTE_CASIO2_TAG_ENHANCEMENT, "Enhancement", N_("Enhancement"), ""},
+	{MNOTE_CASIO2_TAG_FINER, "Finer", N_("Finer"), ""},
+#endif
+	{0, NULL, NULL, NULL}
+};
+
+const char *
+mnote_pentax_tag_get_name (MnotePentaxTag t)
+{
+	unsigned int i;
+
+	for (i = 0; i < sizeof (table) / sizeof (table[0]); i++)
+		if (table[i].tag == t) return (table[i].name);
+	return NULL;
+}
+
+const char *
+mnote_pentax_tag_get_title (MnotePentaxTag t)
+{
+	unsigned int i;
+
+	bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
+	for (i = 0; i < sizeof (table) / sizeof (table[0]); i++)
+		if (table[i].tag == t) return (_(table[i].title));
+	return NULL;
+}
+
+const char *
+mnote_pentax_tag_get_description (MnotePentaxTag t)
+{
+	unsigned int i;
+
+	for (i = 0; i < sizeof (table) / sizeof (table[0]); i++)
+		if (table[i].tag == t) {
+			if (!table[i].description || !*table[i].description)
+				return "";
+			bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
+			return _(table[i].description);
+		}
+	return NULL;
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/pentax/mnote-pentax-tag.h b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/pentax/mnote-pentax-tag.h
new file mode 100644
index 0000000000000000000000000000000000000000..51b2aec9993f33a4ccc7d0e02fdea0316646c6ec
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/libexif/pentax/mnote-pentax-tag.h
@@ -0,0 +1,153 @@
+/* mnote-pentax-tag.h
+ *
+ * Copyright (c) 2002, 2003 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#ifndef __MNOTE_PENTAX_TAG_H__
+#define __MNOTE_PENTAX_TAG_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/*
+ * Missing features which are probably in the unknowns somewhere ...
+ * 1/ AF Area (Wide, Spot, Free)
+ * 2/ AE Metering (Multi segment, Centre-weighted, Spot)
+ * 3/ 
+ */
+
+enum _MnotePentaxTag {
+	MNOTE_PENTAX_TAG_MODE		= 0x0001,
+	MNOTE_PENTAX_TAG_QUALITY	= 0x0002,
+	MNOTE_PENTAX_TAG_FOCUS		= 0x0003,
+	MNOTE_PENTAX_TAG_FLASH		= 0x0004,
+	MNOTE_PENTAX_TAG_UNKNOWN_05	= 0x0005,
+	MNOTE_PENTAX_TAG_UNKNOWN_06	= 0x0006,
+	MNOTE_PENTAX_TAG_WHITE_BALANCE	= 0x0007,
+	MNOTE_PENTAX_TAG_UNKNOWN_08	= 0x0008,
+	MNOTE_PENTAX_TAG_UNKNOWN_09	= 0x0009,
+	MNOTE_PENTAX_TAG_ZOOM		= 0x000a,
+	MNOTE_PENTAX_TAG_SHARPNESS	= 0x000b,
+	MNOTE_PENTAX_TAG_CONTRAST	= 0x000c,
+	MNOTE_PENTAX_TAG_SATURATION	= 0x000d,
+	MNOTE_PENTAX_TAG_UNKNOWN_14	= 0x000e,
+	MNOTE_PENTAX_TAG_UNKNOWN_15	= 0x000f,
+	MNOTE_PENTAX_TAG_UNKNOWN_16	= 0x0010,
+	MNOTE_PENTAX_TAG_UNKNOWN_17	= 0x0011,
+	MNOTE_PENTAX_TAG_UNKNOWN_18	= 0x0012,
+	MNOTE_PENTAX_TAG_UNKNOWN_19	= 0x0013,
+	MNOTE_PENTAX_TAG_ISO_SPEED	= 0x0014,
+	MNOTE_PENTAX_TAG_UNKNOWN_21	= 0x0015,
+	MNOTE_PENTAX_TAG_COLOR		= 0x0017,
+	MNOTE_PENTAX_TAG_UNKNOWN_24	= 0x0018,
+	MNOTE_PENTAX_TAG_UNKNOWN_25	= 0x0019,
+	MNOTE_PENTAX_TAG_PRINTIM	= 0x0e00,
+	MNOTE_PENTAX_TAG_TZ_CITY	= 0x1000,
+	MNOTE_PENTAX_TAG_TZ_DST		= 0x1001,
+
+	/* Pentax v2, v3: real values + our proprietary base to distinguish from v1 */
+	MNOTE_PENTAX2_TAG_BASE              = 0x4000,
+	MNOTE_PENTAX2_TAG_MODE		    = 0x0001 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_PREVIEW_SIZE      = 0x0002 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_PREVIEW_LENGTH    = 0x0003 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_PREVIEW_START     = 0x0004 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_MODEL_ID          = 0x0005 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_DATE              = 0x0006 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_TIME              = 0x0007 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_QUALITY           = 0x0008 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_IMAGE_SIZE        = 0x0009 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_PICTURE_MODE      = 0x000b + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_FLASH_MODE        = 0x000c + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_FOCUS_MODE        = 0x000d + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_AFPOINT_SELECTED  = 0x000e + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_AUTO_AFPOINT      = 0x000f + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_FOCUS_POSITION    = 0x0010 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_EXPOSURE_TIME     = 0x0012 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_FNUMBER           = 0x0013 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_ISO               = 0x0014 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_EXPOSURE_COMPENSATION = 0x0016 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_METERING_MODE     = 0x0017 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_AUTO_BRACKETING   = 0x0018 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_WHITE_BALANCE     = 0x0019 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_WHITE_BALANCE_MODE= 0x001a + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_BLUE_BALANCE      = 0x001b + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_RED_BALANCE       = 0x001c + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_FOCAL_LENGTH      = 0x001d + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_DIGITAL_ZOOM      = 0x001e + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_SATURATION        = 0x001f + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_CONTRAST          = 0x0020 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_SHARPNESS         = 0x0021 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_WORLDTIME_LOCATION = 0x0022 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_HOMETOWN_CITY     = 0x0023 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_DESTINATION_CITY  = 0x0024 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_HOMETOWN_DST      = 0x0025 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_DESTINATION_DST   = 0x0026 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_FRAME_NUMBER      = 0x0029 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_IMAGE_PROCESSING  = 0x0032 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_PICTURE_MODE2     = 0x0033 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_DRIVE_MODE        = 0x0034 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_COLOR_SPACE       = 0x0037 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_IMAGE_AREA_OFFSET = 0x0038 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_RAW_IMAGE_SIZE    = 0x0039 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_AFPOINTS_USED     = 0x003c + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_LENS_TYPE         = 0x003f + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_CAMERA_TEMPERATURE = 0x0047 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_NOISE_REDUCTION   = 0x0049 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_FLASH_EXPOSURE_COMP = 0x004d + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_IMAGE_TONE        = 0x004f + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_SHAKE_REDUCTION_INFO = 0x005c + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_BLACK_POINT       = 0x0200 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_WHITE_POINT       = 0x0201 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_AE_INFO           = 0x0206 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_LENS_INFO         = 0x0207 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_FLASH_INFO        = 0x0208 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_CAMERA_INFO       = 0x0215 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_BATTERY_INFO      = 0x0216 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_HOMETOWN_CITY_CODE = 0x1000 + MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_PENTAX2_TAG_DESTINATION_CITY_CODE = 0x1001 + MNOTE_PENTAX2_TAG_BASE,
+
+	/* Casio v2: some Casio v2 tags match Pentax v2 tags */
+	MNOTE_CASIO2_TAG_BASE               = MNOTE_PENTAX2_TAG_BASE,
+	MNOTE_CASIO2_TAG_PREVIEW_START      = 0x2000 + MNOTE_CASIO2_TAG_BASE,
+	MNOTE_CASIO2_TAG_WHITE_BALANCE_BIAS = 0x2011 + MNOTE_CASIO2_TAG_BASE,
+	MNOTE_CASIO2_TAG_WHITE_BALANCE      = 0x2012 + MNOTE_CASIO2_TAG_BASE,
+	MNOTE_CASIO2_TAG_OBJECT_DISTANCE    = 0x2022 + MNOTE_CASIO2_TAG_BASE,
+	MNOTE_CASIO2_TAG_FLASH_DISTANCE     = 0x2034 + MNOTE_CASIO2_TAG_BASE,
+	MNOTE_CASIO2_TAG_RECORD_MODE        = 0x3000 + MNOTE_CASIO2_TAG_BASE,
+	MNOTE_CASIO2_TAG_SELF_TIMER         = 0x3001 + MNOTE_CASIO2_TAG_BASE,
+	MNOTE_CASIO2_TAG_QUALITY            = 0x3002 + MNOTE_CASIO2_TAG_BASE,
+	MNOTE_CASIO2_TAG_FOCUS_MODE         = 0x3003 + MNOTE_CASIO2_TAG_BASE,
+	MNOTE_CASIO2_TAG_TIME_ZONE          = 0x3006 + MNOTE_CASIO2_TAG_BASE,
+	MNOTE_CASIO2_TAG_BESTSHOT_MODE      = 0x3007 + MNOTE_CASIO2_TAG_BASE,
+	MNOTE_CASIO2_TAG_CCS_ISO_SENSITIVITY = 0x3014 + MNOTE_CASIO2_TAG_BASE,
+	MNOTE_CASIO2_TAG_COLOR_MODE         = 0x3015 + MNOTE_CASIO2_TAG_BASE,
+	MNOTE_CASIO2_TAG_ENHANCEMENT        = 0x3016 + MNOTE_CASIO2_TAG_BASE,
+	MNOTE_CASIO2_TAG_FINER              = 0x3017 + MNOTE_CASIO2_TAG_BASE
+};
+typedef enum _MnotePentaxTag MnotePentaxTag;
+
+const char *mnote_pentax_tag_get_name        (MnotePentaxTag tag);
+const char *mnote_pentax_tag_get_title       (MnotePentaxTag tag);
+const char *mnote_pentax_tag_get_description (MnotePentaxTag tag);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __MNOTE_PENTAX_TAG_H__ */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/ltmain.sh b/framework/modules/c_LibExifModule/libexif-0.6.20/ltmain.sh
new file mode 100644
index 0000000000000000000000000000000000000000..7ed280bc9525daa93de726e1100f11de4b113de2
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/ltmain.sh
@@ -0,0 +1,8413 @@
+# Generated from ltmain.m4sh.
+
+# ltmain.sh (GNU libtool) 2.2.6b
+# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions.  There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Libtool; see the file COPYING.  If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html,
+# or obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# Usage: $progname [OPTION]... [MODE-ARG]...
+#
+# Provide generalized library-building support services.
+#
+#     --config             show all configuration variables
+#     --debug              enable verbose shell tracing
+# -n, --dry-run            display commands without modifying any files
+#     --features           display basic configuration information and exit
+#     --mode=MODE          use operation mode MODE
+#     --preserve-dup-deps  don't remove duplicate dependency libraries
+#     --quiet, --silent    don't print informational messages
+#     --tag=TAG            use configuration variables from tag TAG
+# -v, --verbose            print informational messages (default)
+#     --version            print version information
+# -h, --help               print short or long help message
+#
+# MODE must be one of the following:
+#
+#       clean              remove files from the build directory
+#       compile            compile a source file into a libtool object
+#       execute            automatically set library path, then run a program
+#       finish             complete the installation of libtool libraries
+#       install            install libraries or executables
+#       link               create a library or an executable
+#       uninstall          remove libraries from an installed directory
+#
+# MODE-ARGS vary depending on the MODE.
+# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
+#
+# When reporting a bug, please describe a test case to reproduce it and
+# include the following information:
+#
+#       host-triplet:	$host
+#       shell:		$SHELL
+#       compiler:		$LTCC
+#       compiler flags:		$LTCFLAGS
+#       linker:		$LD (gnu? $with_gnu_ld)
+#       $progname:		(GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#       automake:		$automake_version
+#       autoconf:		$autoconf_version
+#
+# Report bugs to <bug-libtool@gnu.org>.
+
+PROGRAM=ltmain.sh
+PACKAGE=libtool
+VERSION="2.2.6b Debian-2.2.6b-2ubuntu1"
+TIMESTAMP=""
+package_revision=1.3017
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# NLS nuisances: We save the old values to restore during execute mode.
+# Only set LANG and LC_ALL to C if already set.
+# These must not be set unconditionally because not all systems understand
+# e.g. LANG=C (notably SCO).
+lt_user_locale=
+lt_safe_locale=
+for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+do
+  eval "if test \"\${$lt_var+set}\" = set; then
+          save_$lt_var=\$$lt_var
+          $lt_var=C
+	  export $lt_var
+	  lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
+	  lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
+	fi"
+done
+
+$lt_unset CDPATH
+
+
+
+
+
+: ${CP="cp -f"}
+: ${ECHO="echo"}
+: ${EGREP="/bin/grep -E"}
+: ${FGREP="/bin/grep -F"}
+: ${GREP="/bin/grep"}
+: ${LN_S="ln -s"}
+: ${MAKE="make"}
+: ${MKDIR="mkdir"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+: ${SED="/bin/sed"}
+: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
+: ${Xsed="$SED -e 1s/^X//"}
+
+# Global variables:
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
+EXIT_SKIP=77	  # $? = 77 is used to indicate a skipped test to automake.
+
+exit_status=$EXIT_SUCCESS
+
+# Make sure IFS has a sensible default
+lt_nl='
+'
+IFS=" 	$lt_nl"
+
+dirname="s,/[^/]*$,,"
+basename="s,^.*/,,"
+
+# func_dirname_and_basename file append nondir_replacement
+# perform func_basename and func_dirname in a single function
+# call:
+#   dirname:  Compute the dirname of FILE.  If nonempty,
+#             add APPEND to the result, otherwise set result
+#             to NONDIR_REPLACEMENT.
+#             value returned in "$func_dirname_result"
+#   basename: Compute filename of FILE.
+#             value retuned in "$func_basename_result"
+# Implementation must be kept synchronized with func_dirname
+# and func_basename. For efficiency, we do not delegate to
+# those functions but instead duplicate the functionality here.
+func_dirname_and_basename ()
+{
+  # Extract subdirectory from the argument.
+  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
+  if test "X$func_dirname_result" = "X${1}"; then
+    func_dirname_result="${3}"
+  else
+    func_dirname_result="$func_dirname_result${2}"
+  fi
+  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
+}
+
+# Generated shell functions inserted here.
+
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath="$0"
+
+# The name of this program:
+# In the unlikely event $progname began with a '-', it would play havoc with
+# func_echo (imagine progname=-n), so we prepend ./ in that case:
+func_dirname_and_basename "$progpath"
+progname=$func_basename_result
+case $progname in
+  -*) progname=./$progname ;;
+esac
+
+# Make sure we have an absolute path for reexecution:
+case $progpath in
+  [\\/]*|[A-Za-z]:\\*) ;;
+  *[\\/]*)
+     progdir=$func_dirname_result
+     progdir=`cd "$progdir" && pwd`
+     progpath="$progdir/$progname"
+     ;;
+  *)
+     save_IFS="$IFS"
+     IFS=:
+     for progdir in $PATH; do
+       IFS="$save_IFS"
+       test -x "$progdir/$progname" && break
+     done
+     IFS="$save_IFS"
+     test -n "$progdir" || progdir=`pwd`
+     progpath="$progdir/$progname"
+     ;;
+esac
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed="${SED}"' -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Re-`\' parameter expansions in output of double_quote_subst that were
+# `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
+# in input to double_quote_subst, that '$' was protected from expansion.
+# Since each input `\' is now two `\'s, look for any number of runs of
+# four `\'s followed by two `\'s and then a '$'.  `\' that '$'.
+bs='\\'
+bs2='\\\\'
+bs4='\\\\\\\\'
+dollar='\$'
+sed_double_backslash="\
+  s/$bs4/&\\
+/g
+  s/^$bs2$dollar/$bs&/
+  s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
+  s/\n//g"
+
+# Standard options:
+opt_dry_run=false
+opt_help=false
+opt_quiet=false
+opt_verbose=false
+opt_warning=:
+
+# func_echo arg...
+# Echo program name prefixed message, along with the current mode
+# name if it has been set yet.
+func_echo ()
+{
+    $ECHO "$progname${mode+: }$mode: $*"
+}
+
+# func_verbose arg...
+# Echo program name prefixed message in verbose mode only.
+func_verbose ()
+{
+    $opt_verbose && func_echo ${1+"$@"}
+
+    # A bug in bash halts the script if the last line of a function
+    # fails when set -e is in force, so we need another command to
+    # work around that:
+    :
+}
+
+# func_error arg...
+# Echo program name prefixed message to standard error.
+func_error ()
+{
+    $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2
+}
+
+# func_warning arg...
+# Echo program name prefixed warning message to standard error.
+func_warning ()
+{
+    $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
+
+    # bash bug again:
+    :
+}
+
+# func_fatal_error arg...
+# Echo program name prefixed message to standard error, and exit.
+func_fatal_error ()
+{
+    func_error ${1+"$@"}
+    exit $EXIT_FAILURE
+}
+
+# func_fatal_help arg...
+# Echo program name prefixed message to standard error, followed by
+# a help hint, and exit.
+func_fatal_help ()
+{
+    func_error ${1+"$@"}
+    func_fatal_error "$help"
+}
+help="Try \`$progname --help' for more information."  ## default
+
+
+# func_grep expression filename
+# Check whether EXPRESSION matches any line of FILENAME, without output.
+func_grep ()
+{
+    $GREP "$1" "$2" >/dev/null 2>&1
+}
+
+
+# func_mkdir_p directory-path
+# Make sure the entire path to DIRECTORY-PATH is available.
+func_mkdir_p ()
+{
+    my_directory_path="$1"
+    my_dir_list=
+
+    if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
+
+      # Protect directory names starting with `-'
+      case $my_directory_path in
+        -*) my_directory_path="./$my_directory_path" ;;
+      esac
+
+      # While some portion of DIR does not yet exist...
+      while test ! -d "$my_directory_path"; do
+        # ...make a list in topmost first order.  Use a colon delimited
+	# list incase some portion of path contains whitespace.
+        my_dir_list="$my_directory_path:$my_dir_list"
+
+        # If the last portion added has no slash in it, the list is done
+        case $my_directory_path in */*) ;; *) break ;; esac
+
+        # ...otherwise throw away the child directory and loop
+        my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"`
+      done
+      my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'`
+
+      save_mkdir_p_IFS="$IFS"; IFS=':'
+      for my_dir in $my_dir_list; do
+	IFS="$save_mkdir_p_IFS"
+        # mkdir can fail with a `File exist' error if two processes
+        # try to create one of the directories concurrently.  Don't
+        # stop in that case!
+        $MKDIR "$my_dir" 2>/dev/null || :
+      done
+      IFS="$save_mkdir_p_IFS"
+
+      # Bail out if we (or some other process) failed to create a directory.
+      test -d "$my_directory_path" || \
+        func_fatal_error "Failed to create \`$1'"
+    fi
+}
+
+
+# func_mktempdir [string]
+# Make a temporary directory that won't clash with other running
+# libtool processes, and avoids race conditions if possible.  If
+# given, STRING is the basename for that directory.
+func_mktempdir ()
+{
+    my_template="${TMPDIR-/tmp}/${1-$progname}"
+
+    if test "$opt_dry_run" = ":"; then
+      # Return a directory name, but don't create it in dry-run mode
+      my_tmpdir="${my_template}-$$"
+    else
+
+      # If mktemp works, use that first and foremost
+      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
+
+      if test ! -d "$my_tmpdir"; then
+        # Failing that, at least try and use $RANDOM to avoid a race
+        my_tmpdir="${my_template}-${RANDOM-0}$$"
+
+        save_mktempdir_umask=`umask`
+        umask 0077
+        $MKDIR "$my_tmpdir"
+        umask $save_mktempdir_umask
+      fi
+
+      # If we're not in dry-run mode, bomb out on failure
+      test -d "$my_tmpdir" || \
+        func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
+    fi
+
+    $ECHO "X$my_tmpdir" | $Xsed
+}
+
+
+# func_quote_for_eval arg
+# Aesthetically quote ARG to be evaled later.
+# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
+# is double-quoted, suitable for a subsequent eval, whereas
+# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
+# which are still active within double quotes backslashified.
+func_quote_for_eval ()
+{
+    case $1 in
+      *[\\\`\"\$]*)
+	func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;;
+      *)
+        func_quote_for_eval_unquoted_result="$1" ;;
+    esac
+
+    case $func_quote_for_eval_unquoted_result in
+      # Double-quote args containing shell metacharacters to delay
+      # word splitting, command substitution and and variable
+      # expansion for a subsequent eval.
+      # Many Bourne shells cannot handle close brackets correctly
+      # in scan sets, so we specify it separately.
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+        func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
+        ;;
+      *)
+        func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
+    esac
+}
+
+
+# func_quote_for_expand arg
+# Aesthetically quote ARG to be evaled later; same as above,
+# but do not quote variable references.
+func_quote_for_expand ()
+{
+    case $1 in
+      *[\\\`\"]*)
+	my_arg=`$ECHO "X$1" | $Xsed \
+	    -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
+      *)
+        my_arg="$1" ;;
+    esac
+
+    case $my_arg in
+      # Double-quote args containing shell metacharacters to delay
+      # word splitting and command substitution for a subsequent eval.
+      # Many Bourne shells cannot handle close brackets correctly
+      # in scan sets, so we specify it separately.
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+        my_arg="\"$my_arg\""
+        ;;
+    esac
+
+    func_quote_for_expand_result="$my_arg"
+}
+
+
+# func_show_eval cmd [fail_exp]
+# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
+# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it.
+func_show_eval ()
+{
+    my_cmd="$1"
+    my_fail_exp="${2-:}"
+
+    ${opt_silent-false} || {
+      func_quote_for_expand "$my_cmd"
+      eval "func_echo $func_quote_for_expand_result"
+    }
+
+    if ${opt_dry_run-false}; then :; else
+      eval "$my_cmd"
+      my_status=$?
+      if test "$my_status" -eq 0; then :; else
+	eval "(exit $my_status); $my_fail_exp"
+      fi
+    fi
+}
+
+
+# func_show_eval_locale cmd [fail_exp]
+# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
+# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it.  Use the saved locale for evaluation.
+func_show_eval_locale ()
+{
+    my_cmd="$1"
+    my_fail_exp="${2-:}"
+
+    ${opt_silent-false} || {
+      func_quote_for_expand "$my_cmd"
+      eval "func_echo $func_quote_for_expand_result"
+    }
+
+    if ${opt_dry_run-false}; then :; else
+      eval "$lt_user_locale
+	    $my_cmd"
+      my_status=$?
+      eval "$lt_safe_locale"
+      if test "$my_status" -eq 0; then :; else
+	eval "(exit $my_status); $my_fail_exp"
+      fi
+    fi
+}
+
+
+
+
+
+# func_version
+# Echo version message to standard output and exit.
+func_version ()
+{
+    $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / {
+        s/^# //
+	s/^# *$//
+        s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
+        p
+     }' < "$progpath"
+     exit $?
+}
+
+# func_usage
+# Echo short help message to standard output and exit.
+func_usage ()
+{
+    $SED -n '/^# Usage:/,/# -h/ {
+        s/^# //
+	s/^# *$//
+	s/\$progname/'$progname'/
+	p
+    }' < "$progpath"
+    $ECHO
+    $ECHO "run \`$progname --help | more' for full usage"
+    exit $?
+}
+
+# func_help
+# Echo long help message to standard output and exit.
+func_help ()
+{
+    $SED -n '/^# Usage:/,/# Report bugs to/ {
+        s/^# //
+	s/^# *$//
+	s*\$progname*'$progname'*
+	s*\$host*'"$host"'*
+	s*\$SHELL*'"$SHELL"'*
+	s*\$LTCC*'"$LTCC"'*
+	s*\$LTCFLAGS*'"$LTCFLAGS"'*
+	s*\$LD*'"$LD"'*
+	s/\$with_gnu_ld/'"$with_gnu_ld"'/
+	s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
+	s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
+	p
+     }' < "$progpath"
+    exit $?
+}
+
+# func_missing_arg argname
+# Echo program name prefixed message to standard error and set global
+# exit_cmd.
+func_missing_arg ()
+{
+    func_error "missing argument for $1"
+    exit_cmd=exit
+}
+
+exit_cmd=:
+
+
+
+
+
+# Check that we have a working $ECHO.
+if test "X$1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X$1" = X--fallback-echo; then
+  # Avoid inline document here, it may be left over
+  :
+elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
+  # Yippee, $ECHO works!
+  :
+else
+  # Restart under the correct shell, and then maybe $ECHO will work.
+  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+  # used as fallback echo
+  shift
+  cat <<EOF
+$*
+EOF
+  exit $EXIT_SUCCESS
+fi
+
+magic="%%%MAGIC variable%%%"
+magic_exe="%%%MAGIC EXE variable%%%"
+
+# Global variables.
+# $mode is unset
+nonopt=
+execute_dlfiles=
+preserve_args=
+lo2o="s/\\.lo\$/.${objext}/"
+o2lo="s/\\.${objext}\$/.lo/"
+extracted_archives=
+extracted_serial=0
+
+opt_dry_run=false
+opt_duplicate_deps=false
+opt_silent=false
+opt_debug=:
+
+# If this variable is set in any of the actions, the command in it
+# will be execed at the end.  This prevents here-documents from being
+# left over by shells.
+exec_cmd=
+
+# func_fatal_configuration arg...
+# Echo program name prefixed message to standard error, followed by
+# a configuration failure hint, and exit.
+func_fatal_configuration ()
+{
+    func_error ${1+"$@"}
+    func_error "See the $PACKAGE documentation for more information."
+    func_fatal_error "Fatal configuration error."
+}
+
+
+# func_config
+# Display the configuration for all the tags in this script.
+func_config ()
+{
+    re_begincf='^# ### BEGIN LIBTOOL'
+    re_endcf='^# ### END LIBTOOL'
+
+    # Default configuration.
+    $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
+
+    # Now print the configurations for the tags.
+    for tagname in $taglist; do
+      $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
+    done
+
+    exit $?
+}
+
+# func_features
+# Display the features supported by this script.
+func_features ()
+{
+    $ECHO "host: $host"
+    if test "$build_libtool_libs" = yes; then
+      $ECHO "enable shared libraries"
+    else
+      $ECHO "disable shared libraries"
+    fi
+    if test "$build_old_libs" = yes; then
+      $ECHO "enable static libraries"
+    else
+      $ECHO "disable static libraries"
+    fi
+
+    exit $?
+}
+
+# func_enable_tag tagname
+# Verify that TAGNAME is valid, and either flag an error and exit, or
+# enable the TAGNAME tag.  We also add TAGNAME to the global $taglist
+# variable here.
+func_enable_tag ()
+{
+  # Global variable:
+  tagname="$1"
+
+  re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
+  re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
+  sed_extractcf="/$re_begincf/,/$re_endcf/p"
+
+  # Validate tagname.
+  case $tagname in
+    *[!-_A-Za-z0-9,/]*)
+      func_fatal_error "invalid tag name: $tagname"
+      ;;
+  esac
+
+  # Don't test for the "default" C tag, as we know it's
+  # there but not specially marked.
+  case $tagname in
+    CC) ;;
+    *)
+      if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
+	taglist="$taglist $tagname"
+
+	# Evaluate the configuration.  Be careful to quote the path
+	# and the sed script, to avoid splitting on whitespace, but
+	# also don't use non-portable quotes within backquotes within
+	# quotes we have to do it in 2 steps:
+	extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
+	eval "$extractedcf"
+      else
+	func_error "ignoring unknown tag $tagname"
+      fi
+      ;;
+  esac
+}
+
+# Parse options once, thoroughly.  This comes as soon as possible in
+# the script to make things like `libtool --version' happen quickly.
+{
+
+  # Shorthand for --mode=foo, only valid as the first argument
+  case $1 in
+  clean|clea|cle|cl)
+    shift; set dummy --mode clean ${1+"$@"}; shift
+    ;;
+  compile|compil|compi|comp|com|co|c)
+    shift; set dummy --mode compile ${1+"$@"}; shift
+    ;;
+  execute|execut|execu|exec|exe|ex|e)
+    shift; set dummy --mode execute ${1+"$@"}; shift
+    ;;
+  finish|finis|fini|fin|fi|f)
+    shift; set dummy --mode finish ${1+"$@"}; shift
+    ;;
+  install|instal|insta|inst|ins|in|i)
+    shift; set dummy --mode install ${1+"$@"}; shift
+    ;;
+  link|lin|li|l)
+    shift; set dummy --mode link ${1+"$@"}; shift
+    ;;
+  uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
+    shift; set dummy --mode uninstall ${1+"$@"}; shift
+    ;;
+  esac
+
+  # Parse non-mode specific arguments:
+  while test "$#" -gt 0; do
+    opt="$1"
+    shift
+
+    case $opt in
+      --config)		func_config					;;
+
+      --debug)		preserve_args="$preserve_args $opt"
+			func_echo "enabling shell trace mode"
+			opt_debug='set -x'
+			$opt_debug
+			;;
+
+      -dlopen)		test "$#" -eq 0 && func_missing_arg "$opt" && break
+			execute_dlfiles="$execute_dlfiles $1"
+			shift
+			;;
+
+      --dry-run | -n)	opt_dry_run=:					;;
+      --features)       func_features					;;
+      --finish)		mode="finish"					;;
+
+      --mode)		test "$#" -eq 0 && func_missing_arg "$opt" && break
+			case $1 in
+			  # Valid mode arguments:
+			  clean)	;;
+			  compile)	;;
+			  execute)	;;
+			  finish)	;;
+			  install)	;;
+			  link)		;;
+			  relink)	;;
+			  uninstall)	;;
+
+			  # Catch anything else as an error
+			  *) func_error "invalid argument for $opt"
+			     exit_cmd=exit
+			     break
+			     ;;
+		        esac
+
+			mode="$1"
+			shift
+			;;
+
+      --preserve-dup-deps)
+			opt_duplicate_deps=:				;;
+
+      --quiet|--silent)	preserve_args="$preserve_args $opt"
+			opt_silent=:
+			;;
+
+      --verbose| -v)	preserve_args="$preserve_args $opt"
+			opt_silent=false
+			;;
+
+      --tag)		test "$#" -eq 0 && func_missing_arg "$opt" && break
+			preserve_args="$preserve_args $opt $1"
+			func_enable_tag "$1"	# tagname is set here
+			shift
+			;;
+
+      # Separate optargs to long options:
+      -dlopen=*|--mode=*|--tag=*)
+			func_opt_split "$opt"
+			set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"}
+			shift
+			;;
+
+      -\?|-h)		func_usage					;;
+      --help)		opt_help=:					;;
+      --version)	func_version					;;
+
+      -*)		func_fatal_help "unrecognized option \`$opt'"	;;
+
+      *)		nonopt="$opt"
+			break
+			;;
+    esac
+  done
+
+
+  case $host in
+    *cygwin* | *mingw* | *pw32* | *cegcc*)
+      # don't eliminate duplications in $postdeps and $predeps
+      opt_duplicate_compiler_generated_deps=:
+      ;;
+    *)
+      opt_duplicate_compiler_generated_deps=$opt_duplicate_deps
+      ;;
+  esac
+
+  # Having warned about all mis-specified options, bail out if
+  # anything was wrong.
+  $exit_cmd $EXIT_FAILURE
+}
+
+# func_check_version_match
+# Ensure that we are using m4 macros, and libtool script from the same
+# release of libtool.
+func_check_version_match ()
+{
+  if test "$package_revision" != "$macro_revision"; then
+    if test "$VERSION" != "$macro_version"; then
+      if test -z "$macro_version"; then
+        cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from an older release.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+      else
+        cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+      fi
+    else
+      cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
+$progname: but the definition of this LT_INIT comes from revision $macro_revision.
+$progname: You should recreate aclocal.m4 with macros from revision $package_revision
+$progname: of $PACKAGE $VERSION and run autoconf again.
+_LT_EOF
+    fi
+
+    exit $EXIT_MISMATCH
+  fi
+}
+
+
+## ----------- ##
+##    Main.    ##
+## ----------- ##
+
+$opt_help || {
+  # Sanity checks first:
+  func_check_version_match
+
+  if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
+    func_fatal_configuration "not configured to build any kind of library"
+  fi
+
+  test -z "$mode" && func_fatal_error "error: you must specify a MODE."
+
+
+  # Darwin sucks
+  eval std_shrext=\"$shrext_cmds\"
+
+
+  # Only execute mode is allowed to have -dlopen flags.
+  if test -n "$execute_dlfiles" && test "$mode" != execute; then
+    func_error "unrecognized option \`-dlopen'"
+    $ECHO "$help" 1>&2
+    exit $EXIT_FAILURE
+  fi
+
+  # Change the help message to a mode-specific one.
+  generic_help="$help"
+  help="Try \`$progname --help --mode=$mode' for more information."
+}
+
+
+# func_lalib_p file
+# True iff FILE is a libtool `.la' library or `.lo' object file.
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_lalib_p ()
+{
+    test -f "$1" &&
+      $SED -e 4q "$1" 2>/dev/null \
+        | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
+}
+
+# func_lalib_unsafe_p file
+# True iff FILE is a libtool `.la' library or `.lo' object file.
+# This function implements the same check as func_lalib_p without
+# resorting to external programs.  To this end, it redirects stdin and
+# closes it afterwards, without saving the original file descriptor.
+# As a safety measure, use it only where a negative result would be
+# fatal anyway.  Works if `file' does not exist.
+func_lalib_unsafe_p ()
+{
+    lalib_p=no
+    if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
+	for lalib_p_l in 1 2 3 4
+	do
+	    read lalib_p_line
+	    case "$lalib_p_line" in
+		\#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
+	    esac
+	done
+	exec 0<&5 5<&-
+    fi
+    test "$lalib_p" = yes
+}
+
+# func_ltwrapper_script_p file
+# True iff FILE is a libtool wrapper script
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_script_p ()
+{
+    func_lalib_p "$1"
+}
+
+# func_ltwrapper_executable_p file
+# True iff FILE is a libtool wrapper executable
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_executable_p ()
+{
+    func_ltwrapper_exec_suffix=
+    case $1 in
+    *.exe) ;;
+    *) func_ltwrapper_exec_suffix=.exe ;;
+    esac
+    $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
+}
+
+# func_ltwrapper_scriptname file
+# Assumes file is an ltwrapper_executable
+# uses $file to determine the appropriate filename for a
+# temporary ltwrapper_script.
+func_ltwrapper_scriptname ()
+{
+    func_ltwrapper_scriptname_result=""
+    if func_ltwrapper_executable_p "$1"; then
+	func_dirname_and_basename "$1" "" "."
+	func_stripname '' '.exe' "$func_basename_result"
+	func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
+    fi
+}
+
+# func_ltwrapper_p file
+# True iff FILE is a libtool wrapper script or wrapper executable
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_p ()
+{
+    func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
+}
+
+
+# func_execute_cmds commands fail_cmd
+# Execute tilde-delimited COMMANDS.
+# If FAIL_CMD is given, eval that upon failure.
+# FAIL_CMD may read-access the current command in variable CMD!
+func_execute_cmds ()
+{
+    $opt_debug
+    save_ifs=$IFS; IFS='~'
+    for cmd in $1; do
+      IFS=$save_ifs
+      eval cmd=\"$cmd\"
+      func_show_eval "$cmd" "${2-:}"
+    done
+    IFS=$save_ifs
+}
+
+
+# func_source file
+# Source FILE, adding directory component if necessary.
+# Note that it is not necessary on cygwin/mingw to append a dot to
+# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
+# behavior happens only for exec(3), not for open(2)!  Also, sourcing
+# `FILE.' does not work on cygwin managed mounts.
+func_source ()
+{
+    $opt_debug
+    case $1 in
+    */* | *\\*)	. "$1" ;;
+    *)		. "./$1" ;;
+    esac
+}
+
+
+# func_infer_tag arg
+# Infer tagged configuration to use if any are available and
+# if one wasn't chosen via the "--tag" command line option.
+# Only attempt this if the compiler in the base compile
+# command doesn't match the default compiler.
+# arg is usually of the form 'gcc ...'
+func_infer_tag ()
+{
+    $opt_debug
+    if test -n "$available_tags" && test -z "$tagname"; then
+      CC_quoted=
+      for arg in $CC; do
+        func_quote_for_eval "$arg"
+	CC_quoted="$CC_quoted $func_quote_for_eval_result"
+      done
+      case $@ in
+      # Blanks in the command may have been stripped by the calling shell,
+      # but not from the CC environment variable when configure was run.
+      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;;
+      # Blanks at the start of $base_compile will cause this to fail
+      # if we don't check for them as well.
+      *)
+	for z in $available_tags; do
+	  if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
+	    # Evaluate the configuration.
+	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
+	    CC_quoted=
+	    for arg in $CC; do
+	      # Double-quote args containing other shell metacharacters.
+	      func_quote_for_eval "$arg"
+	      CC_quoted="$CC_quoted $func_quote_for_eval_result"
+	    done
+	    case "$@ " in
+	      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*)
+	      # The compiler in the base compile command matches
+	      # the one in the tagged configuration.
+	      # Assume this is the tagged configuration we want.
+	      tagname=$z
+	      break
+	      ;;
+	    esac
+	  fi
+	done
+	# If $tagname still isn't set, then no tagged configuration
+	# was found and let the user know that the "--tag" command
+	# line option must be used.
+	if test -z "$tagname"; then
+	  func_echo "unable to infer tagged configuration"
+	  func_fatal_error "specify a tag with \`--tag'"
+#	else
+#	  func_verbose "using $tagname tagged configuration"
+	fi
+	;;
+      esac
+    fi
+}
+
+
+
+# func_write_libtool_object output_name pic_name nonpic_name
+# Create a libtool object file (analogous to a ".la" file),
+# but don't create it if we're doing a dry run.
+func_write_libtool_object ()
+{
+    write_libobj=${1}
+    if test "$build_libtool_libs" = yes; then
+      write_lobj=\'${2}\'
+    else
+      write_lobj=none
+    fi
+
+    if test "$build_old_libs" = yes; then
+      write_oldobj=\'${3}\'
+    else
+      write_oldobj=none
+    fi
+
+    $opt_dry_run || {
+      cat >${write_libobj}T <<EOF
+# $write_libobj - a libtool object file
+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object=$write_lobj
+
+# Name of the non-PIC object
+non_pic_object=$write_oldobj
+
+EOF
+      $MV "${write_libobj}T" "${write_libobj}"
+    }
+}
+
+# func_mode_compile arg...
+func_mode_compile ()
+{
+    $opt_debug
+    # Get the compilation command and the source file.
+    base_compile=
+    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
+    suppress_opt=yes
+    suppress_output=
+    arg_mode=normal
+    libobj=
+    later=
+    pie_flag=
+
+    for arg
+    do
+      case $arg_mode in
+      arg  )
+	# do not "continue".  Instead, add this to base_compile
+	lastarg="$arg"
+	arg_mode=normal
+	;;
+
+      target )
+	libobj="$arg"
+	arg_mode=normal
+	continue
+	;;
+
+      normal )
+	# Accept any command-line options.
+	case $arg in
+	-o)
+	  test -n "$libobj" && \
+	    func_fatal_error "you cannot specify \`-o' more than once"
+	  arg_mode=target
+	  continue
+	  ;;
+
+	-pie | -fpie | -fPIE)
+          pie_flag="$pie_flag $arg"
+	  continue
+	  ;;
+
+	-shared | -static | -prefer-pic | -prefer-non-pic)
+	  later="$later $arg"
+	  continue
+	  ;;
+
+	-no-suppress)
+	  suppress_opt=no
+	  continue
+	  ;;
+
+	-Xcompiler)
+	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
+	  continue      #  The current "srcfile" will either be retained or
+	  ;;            #  replaced later.  I would guess that would be a bug.
+
+	-Wc,*)
+	  func_stripname '-Wc,' '' "$arg"
+	  args=$func_stripname_result
+	  lastarg=
+	  save_ifs="$IFS"; IFS=','
+	  for arg in $args; do
+	    IFS="$save_ifs"
+	    func_quote_for_eval "$arg"
+	    lastarg="$lastarg $func_quote_for_eval_result"
+	  done
+	  IFS="$save_ifs"
+	  func_stripname ' ' '' "$lastarg"
+	  lastarg=$func_stripname_result
+
+	  # Add the arguments to base_compile.
+	  base_compile="$base_compile $lastarg"
+	  continue
+	  ;;
+
+	*)
+	  # Accept the current argument as the source file.
+	  # The previous "srcfile" becomes the current argument.
+	  #
+	  lastarg="$srcfile"
+	  srcfile="$arg"
+	  ;;
+	esac  #  case $arg
+	;;
+      esac    #  case $arg_mode
+
+      # Aesthetically quote the previous argument.
+      func_quote_for_eval "$lastarg"
+      base_compile="$base_compile $func_quote_for_eval_result"
+    done # for arg
+
+    case $arg_mode in
+    arg)
+      func_fatal_error "you must specify an argument for -Xcompile"
+      ;;
+    target)
+      func_fatal_error "you must specify a target with \`-o'"
+      ;;
+    *)
+      # Get the name of the library object.
+      test -z "$libobj" && {
+	func_basename "$srcfile"
+	libobj="$func_basename_result"
+      }
+      ;;
+    esac
+
+    # Recognize several different file suffixes.
+    # If the user specifies -o file.o, it is replaced with file.lo
+    case $libobj in
+    *.[cCFSifmso] | \
+    *.ada | *.adb | *.ads | *.asm | \
+    *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
+    *.[fF][09]? | *.for | *.java | *.obj | *.sx)
+      func_xform "$libobj"
+      libobj=$func_xform_result
+      ;;
+    esac
+
+    case $libobj in
+    *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
+    *)
+      func_fatal_error "cannot determine name of library object from \`$libobj'"
+      ;;
+    esac
+
+    func_infer_tag $base_compile
+
+    for arg in $later; do
+      case $arg in
+      -shared)
+	test "$build_libtool_libs" != yes && \
+	  func_fatal_configuration "can not build a shared library"
+	build_old_libs=no
+	continue
+	;;
+
+      -static)
+	build_libtool_libs=no
+	build_old_libs=yes
+	continue
+	;;
+
+      -prefer-pic)
+	pic_mode=yes
+	continue
+	;;
+
+      -prefer-non-pic)
+	pic_mode=no
+	continue
+	;;
+      esac
+    done
+
+    func_quote_for_eval "$libobj"
+    test "X$libobj" != "X$func_quote_for_eval_result" \
+      && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'	 &()|`$[]' \
+      && func_warning "libobj name \`$libobj' may not contain shell special characters."
+    func_dirname_and_basename "$obj" "/" ""
+    objname="$func_basename_result"
+    xdir="$func_dirname_result"
+    lobj=${xdir}$objdir/$objname
+
+    test -z "$base_compile" && \
+      func_fatal_help "you must specify a compilation command"
+
+    # Delete any leftover library objects.
+    if test "$build_old_libs" = yes; then
+      removelist="$obj $lobj $libobj ${libobj}T"
+    else
+      removelist="$lobj $libobj ${libobj}T"
+    fi
+
+    # On Cygwin there's no "real" PIC flag so we must build both object types
+    case $host_os in
+    cygwin* | mingw* | pw32* | os2* | cegcc*)
+      pic_mode=default
+      ;;
+    esac
+    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
+      # non-PIC code in shared libraries is not supported
+      pic_mode=default
+    fi
+
+    # Calculate the filename of the output object if compiler does
+    # not support -o with -c
+    if test "$compiler_c_o" = no; then
+      output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
+      lockfile="$output_obj.lock"
+    else
+      output_obj=
+      need_locks=no
+      lockfile=
+    fi
+
+    # Lock this critical section if it is needed
+    # We use this script file to make the link, it avoids creating a new file
+    if test "$need_locks" = yes; then
+      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
+	func_echo "Waiting for $lockfile to be removed"
+	sleep 2
+      done
+    elif test "$need_locks" = warn; then
+      if test -f "$lockfile"; then
+	$ECHO "\
+*** ERROR, $lockfile exists and contains:
+`cat $lockfile 2>/dev/null`
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$opt_dry_run || $RM $removelist
+	exit $EXIT_FAILURE
+      fi
+      removelist="$removelist $output_obj"
+      $ECHO "$srcfile" > "$lockfile"
+    fi
+
+    $opt_dry_run || $RM $removelist
+    removelist="$removelist $lockfile"
+    trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
+
+    if test -n "$fix_srcfile_path"; then
+      eval srcfile=\"$fix_srcfile_path\"
+    fi
+    func_quote_for_eval "$srcfile"
+    qsrcfile=$func_quote_for_eval_result
+
+    # Only build a PIC object if we are building libtool libraries.
+    if test "$build_libtool_libs" = yes; then
+      # Without this assignment, base_compile gets emptied.
+      fbsd_hideous_sh_bug=$base_compile
+
+      if test "$pic_mode" != no; then
+	command="$base_compile $qsrcfile $pic_flag"
+      else
+	# Don't build PIC code
+	command="$base_compile $qsrcfile"
+      fi
+
+      func_mkdir_p "$xdir$objdir"
+
+      if test -z "$output_obj"; then
+	# Place PIC objects in $objdir
+	command="$command -o $lobj"
+      fi
+
+      func_show_eval_locale "$command"	\
+          'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
+
+      if test "$need_locks" = warn &&
+	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+	$ECHO "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$opt_dry_run || $RM $removelist
+	exit $EXIT_FAILURE
+      fi
+
+      # Just move the object if needed, then go on to compile the next one
+      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
+	func_show_eval '$MV "$output_obj" "$lobj"' \
+	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
+      fi
+
+      # Allow error messages only from the first compilation.
+      if test "$suppress_opt" = yes; then
+	suppress_output=' >/dev/null 2>&1'
+      fi
+    fi
+
+    # Only build a position-dependent object if we build old libraries.
+    if test "$build_old_libs" = yes; then
+      if test "$pic_mode" != yes; then
+	# Don't build PIC code
+	command="$base_compile $qsrcfile$pie_flag"
+      else
+	command="$base_compile $qsrcfile $pic_flag"
+      fi
+      if test "$compiler_c_o" = yes; then
+	command="$command -o $obj"
+      fi
+
+      # Suppress compiler output if we already did a PIC compilation.
+      command="$command$suppress_output"
+      func_show_eval_locale "$command" \
+        '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
+
+      if test "$need_locks" = warn &&
+	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+	$ECHO "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$opt_dry_run || $RM $removelist
+	exit $EXIT_FAILURE
+      fi
+
+      # Just move the object if needed
+      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
+	func_show_eval '$MV "$output_obj" "$obj"' \
+	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
+      fi
+    fi
+
+    $opt_dry_run || {
+      func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
+
+      # Unlock the critical section if it was locked
+      if test "$need_locks" != no; then
+	removelist=$lockfile
+        $RM "$lockfile"
+      fi
+    }
+
+    exit $EXIT_SUCCESS
+}
+
+$opt_help || {
+test "$mode" = compile && func_mode_compile ${1+"$@"}
+}
+
+func_mode_help ()
+{
+    # We need to display help for each of the modes.
+    case $mode in
+      "")
+        # Generic help is extracted from the usage comments
+        # at the start of this file.
+        func_help
+        ;;
+
+      clean)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
+
+Remove files from the build directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, object or program, all the files associated
+with it are deleted. Otherwise, only FILE itself is deleted using RM."
+        ;;
+
+      compile)
+      $ECHO \
+"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
+
+Compile a source file into a libtool library object.
+
+This mode accepts the following additional options:
+
+  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
+  -no-suppress      do not suppress compiler output for multiple passes
+  -prefer-pic       try to building PIC objects only
+  -prefer-non-pic   try to building non-PIC objects only
+  -shared           do not build a \`.o' file suitable for static linking
+  -static           only build a \`.o' file suitable for static linking
+
+COMPILE-COMMAND is a command to be used in creating a \`standard' object file
+from the given SOURCEFILE.
+
+The output file name is determined by removing the directory component from
+SOURCEFILE, then substituting the C source code suffix \`.c' with the
+library object suffix, \`.lo'."
+        ;;
+
+      execute)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
+
+Automatically set library path, then run a program.
+
+This mode accepts the following additional options:
+
+  -dlopen FILE      add the directory containing FILE to the library path
+
+This mode sets the library path environment variable according to \`-dlopen'
+flags.
+
+If any of the ARGS are libtool executable wrappers, then they are translated
+into their corresponding uninstalled binary, and any of their required library
+directories are added to the library path.
+
+Then, COMMAND is executed, with ARGS as arguments."
+        ;;
+
+      finish)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
+
+Complete the installation of libtool libraries.
+
+Each LIBDIR is a directory that contains libtool libraries.
+
+The commands that this mode executes may require superuser privileges.  Use
+the \`--dry-run' option if you just want to see what would be executed."
+        ;;
+
+      install)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
+
+Install executables or libraries.
+
+INSTALL-COMMAND is the installation command.  The first component should be
+either the \`install' or \`cp' program.
+
+The following components of INSTALL-COMMAND are treated specially:
+
+  -inst-prefix PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
+
+The rest of the components are interpreted as arguments to that command (only
+BSD-compatible install options are recognized)."
+        ;;
+
+      link)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
+
+Link object files or libraries together to form another library, or to
+create an executable program.
+
+LINK-COMMAND is a command using the C compiler that you would use to create
+a program from several object files.
+
+The following components of LINK-COMMAND are treated specially:
+
+  -all-static       do not do any dynamic linking at all
+  -avoid-version    do not add a version suffix if possible
+  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
+  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
+  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
+  -export-symbols SYMFILE
+                    try to export only the symbols listed in SYMFILE
+  -export-symbols-regex REGEX
+                    try to export only the symbols matching REGEX
+  -LLIBDIR          search LIBDIR for required installed libraries
+  -lNAME            OUTPUT-FILE requires the installed library libNAME
+  -module           build a library that can dlopened
+  -no-fast-install  disable the fast-install mode
+  -no-install       link a not-installable executable
+  -no-undefined     declare that a library does not refer to external symbols
+  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
+  -objectlist FILE  Use a list of object files found in FILE to specify objects
+  -precious-files-regex REGEX
+                    don't remove output files matching REGEX
+  -release RELEASE  specify package release information
+  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
+  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
+  -shared           only do dynamic linking of libtool libraries
+  -shrext SUFFIX    override the standard shared library file extension
+  -static           do not do any dynamic linking of uninstalled libtool libraries
+  -static-libtool-libs
+                    do not do any dynamic linking of libtool libraries
+  -version-info CURRENT[:REVISION[:AGE]]
+                    specify library version info [each variable defaults to 0]
+  -weak LIBNAME     declare that the target provides the LIBNAME interface
+
+All other options (arguments beginning with \`-') are ignored.
+
+Every other argument is treated as a filename.  Files ending in \`.la' are
+treated as uninstalled libtool libraries, other files are standard or library
+object files.
+
+If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
+only library objects (\`.lo' files) may be specified, and \`-rpath' is
+required, except when creating a convenience library.
+
+If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
+using \`ar' and \`ranlib', or on Windows using \`lib'.
+
+If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
+is created, otherwise an executable program is created."
+        ;;
+
+      uninstall)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
+
+Remove libraries from an installation directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, all the files associated with it are deleted.
+Otherwise, only FILE itself is deleted using RM."
+        ;;
+
+      *)
+        func_fatal_help "invalid operation mode \`$mode'"
+        ;;
+    esac
+
+    $ECHO
+    $ECHO "Try \`$progname --help' for more information about other modes."
+
+    exit $?
+}
+
+  # Now that we've collected a possible --mode arg, show help if necessary
+  $opt_help && func_mode_help
+
+
+# func_mode_execute arg...
+func_mode_execute ()
+{
+    $opt_debug
+    # The first argument is the command name.
+    cmd="$nonopt"
+    test -z "$cmd" && \
+      func_fatal_help "you must specify a COMMAND"
+
+    # Handle -dlopen flags immediately.
+    for file in $execute_dlfiles; do
+      test -f "$file" \
+	|| func_fatal_help "\`$file' is not a file"
+
+      dir=
+      case $file in
+      *.la)
+	# Check to see that this really is a libtool archive.
+	func_lalib_unsafe_p "$file" \
+	  || func_fatal_help "\`$lib' is not a valid libtool archive"
+
+	# Read the libtool library.
+	dlname=
+	library_names=
+	func_source "$file"
+
+	# Skip this library if it cannot be dlopened.
+	if test -z "$dlname"; then
+	  # Warn if it was a shared library.
+	  test -n "$library_names" && \
+	    func_warning "\`$file' was not linked with \`-export-dynamic'"
+	  continue
+	fi
+
+	func_dirname "$file" "" "."
+	dir="$func_dirname_result"
+
+	if test -f "$dir/$objdir/$dlname"; then
+	  dir="$dir/$objdir"
+	else
+	  if test ! -f "$dir/$dlname"; then
+	    func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
+	  fi
+	fi
+	;;
+
+      *.lo)
+	# Just add the directory containing the .lo file.
+	func_dirname "$file" "" "."
+	dir="$func_dirname_result"
+	;;
+
+      *)
+	func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
+	continue
+	;;
+      esac
+
+      # Get the absolute pathname.
+      absdir=`cd "$dir" && pwd`
+      test -n "$absdir" && dir="$absdir"
+
+      # Now add the directory to shlibpath_var.
+      if eval "test -z \"\$$shlibpath_var\""; then
+	eval "$shlibpath_var=\"\$dir\""
+      else
+	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
+      fi
+    done
+
+    # This variable tells wrapper scripts just to set shlibpath_var
+    # rather than running their programs.
+    libtool_execute_magic="$magic"
+
+    # Check if any of the arguments is a wrapper script.
+    args=
+    for file
+    do
+      case $file in
+      -*) ;;
+      *)
+	# Do a test to see if this is really a libtool program.
+	if func_ltwrapper_script_p "$file"; then
+	  func_source "$file"
+	  # Transform arg to wrapped name.
+	  file="$progdir/$program"
+	elif func_ltwrapper_executable_p "$file"; then
+	  func_ltwrapper_scriptname "$file"
+	  func_source "$func_ltwrapper_scriptname_result"
+	  # Transform arg to wrapped name.
+	  file="$progdir/$program"
+	fi
+	;;
+      esac
+      # Quote arguments (to preserve shell metacharacters).
+      func_quote_for_eval "$file"
+      args="$args $func_quote_for_eval_result"
+    done
+
+    if test "X$opt_dry_run" = Xfalse; then
+      if test -n "$shlibpath_var"; then
+	# Export the shlibpath_var.
+	eval "export $shlibpath_var"
+      fi
+
+      # Restore saved environment variables
+      for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+      do
+	eval "if test \"\${save_$lt_var+set}\" = set; then
+                $lt_var=\$save_$lt_var; export $lt_var
+	      else
+		$lt_unset $lt_var
+	      fi"
+      done
+
+      # Now prepare to actually exec the command.
+      exec_cmd="\$cmd$args"
+    else
+      # Display what would be done.
+      if test -n "$shlibpath_var"; then
+	eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
+	$ECHO "export $shlibpath_var"
+      fi
+      $ECHO "$cmd$args"
+      exit $EXIT_SUCCESS
+    fi
+}
+
+test "$mode" = execute && func_mode_execute ${1+"$@"}
+
+
+# func_mode_finish arg...
+func_mode_finish ()
+{
+    $opt_debug
+    libdirs="$nonopt"
+    admincmds=
+
+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+      for dir
+      do
+	libdirs="$libdirs $dir"
+      done
+
+      for libdir in $libdirs; do
+	if test -n "$finish_cmds"; then
+	  # Do each command in the finish commands.
+	  func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
+'"$cmd"'"'
+	fi
+	if test -n "$finish_eval"; then
+	  # Do the single finish_eval.
+	  eval cmds=\"$finish_eval\"
+	  $opt_dry_run || eval "$cmds" || admincmds="$admincmds
+       $cmds"
+	fi
+      done
+    fi
+
+    # Exit here if they wanted silent mode.
+    $opt_silent && exit $EXIT_SUCCESS
+
+    $ECHO "X----------------------------------------------------------------------" | $Xsed
+    $ECHO "Libraries have been installed in:"
+    for libdir in $libdirs; do
+      $ECHO "   $libdir"
+    done
+    $ECHO
+    $ECHO "If you ever happen to want to link against installed libraries"
+    $ECHO "in a given directory, LIBDIR, you must either use libtool, and"
+    $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'"
+    $ECHO "flag during linking and do at least one of the following:"
+    if test -n "$shlibpath_var"; then
+      $ECHO "   - add LIBDIR to the \`$shlibpath_var' environment variable"
+      $ECHO "     during execution"
+    fi
+    if test -n "$runpath_var"; then
+      $ECHO "   - add LIBDIR to the \`$runpath_var' environment variable"
+      $ECHO "     during linking"
+    fi
+    if test -n "$hardcode_libdir_flag_spec"; then
+      libdir=LIBDIR
+      eval flag=\"$hardcode_libdir_flag_spec\"
+
+      $ECHO "   - use the \`$flag' linker flag"
+    fi
+    if test -n "$admincmds"; then
+      $ECHO "   - have your system administrator run these commands:$admincmds"
+    fi
+    if test -f /etc/ld.so.conf; then
+      $ECHO "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+    fi
+    $ECHO
+
+    $ECHO "See any operating system documentation about shared libraries for"
+    case $host in
+      solaris2.[6789]|solaris2.1[0-9])
+        $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual"
+	$ECHO "pages."
+	;;
+      *)
+        $ECHO "more information, such as the ld(1) and ld.so(8) manual pages."
+        ;;
+    esac
+    $ECHO "X----------------------------------------------------------------------" | $Xsed
+    exit $EXIT_SUCCESS
+}
+
+test "$mode" = finish && func_mode_finish ${1+"$@"}
+
+
+# func_mode_install arg...
+func_mode_install ()
+{
+    $opt_debug
+    # There may be an optional sh(1) argument at the beginning of
+    # install_prog (especially on Windows NT).
+    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
+       # Allow the use of GNU shtool's install command.
+       $ECHO "X$nonopt" | $GREP shtool >/dev/null; then
+      # Aesthetically quote it.
+      func_quote_for_eval "$nonopt"
+      install_prog="$func_quote_for_eval_result "
+      arg=$1
+      shift
+    else
+      install_prog=
+      arg=$nonopt
+    fi
+
+    # The real first argument should be the name of the installation program.
+    # Aesthetically quote it.
+    func_quote_for_eval "$arg"
+    install_prog="$install_prog$func_quote_for_eval_result"
+
+    # We need to accept at least all the BSD install flags.
+    dest=
+    files=
+    opts=
+    prev=
+    install_type=
+    isdir=no
+    stripme=
+    for arg
+    do
+      if test -n "$dest"; then
+	files="$files $dest"
+	dest=$arg
+	continue
+      fi
+
+      case $arg in
+      -d) isdir=yes ;;
+      -f)
+	case " $install_prog " in
+	*[\\\ /]cp\ *) ;;
+	*) prev=$arg ;;
+	esac
+	;;
+      -g | -m | -o)
+	prev=$arg
+	;;
+      -s)
+	stripme=" -s"
+	continue
+	;;
+      -*)
+	;;
+      *)
+	# If the previous option needed an argument, then skip it.
+	if test -n "$prev"; then
+	  prev=
+	else
+	  dest=$arg
+	  continue
+	fi
+	;;
+      esac
+
+      # Aesthetically quote the argument.
+      func_quote_for_eval "$arg"
+      install_prog="$install_prog $func_quote_for_eval_result"
+    done
+
+    test -z "$install_prog" && \
+      func_fatal_help "you must specify an install program"
+
+    test -n "$prev" && \
+      func_fatal_help "the \`$prev' option requires an argument"
+
+    if test -z "$files"; then
+      if test -z "$dest"; then
+	func_fatal_help "no file or destination specified"
+      else
+	func_fatal_help "you must specify a destination"
+      fi
+    fi
+
+    # Strip any trailing slash from the destination.
+    func_stripname '' '/' "$dest"
+    dest=$func_stripname_result
+
+    # Check to see that the destination is a directory.
+    test -d "$dest" && isdir=yes
+    if test "$isdir" = yes; then
+      destdir="$dest"
+      destname=
+    else
+      func_dirname_and_basename "$dest" "" "."
+      destdir="$func_dirname_result"
+      destname="$func_basename_result"
+
+      # Not a directory, so check to see that there is only one file specified.
+      set dummy $files; shift
+      test "$#" -gt 1 && \
+	func_fatal_help "\`$dest' is not a directory"
+    fi
+    case $destdir in
+    [\\/]* | [A-Za-z]:[\\/]*) ;;
+    *)
+      for file in $files; do
+	case $file in
+	*.lo) ;;
+	*)
+	  func_fatal_help "\`$destdir' must be an absolute directory name"
+	  ;;
+	esac
+      done
+      ;;
+    esac
+
+    # This variable tells wrapper scripts just to set variables rather
+    # than running their programs.
+    libtool_install_magic="$magic"
+
+    staticlibs=
+    future_libdirs=
+    current_libdirs=
+    for file in $files; do
+
+      # Do each installation.
+      case $file in
+      *.$libext)
+	# Do the static libraries later.
+	staticlibs="$staticlibs $file"
+	;;
+
+      *.la)
+	# Check to see that this really is a libtool archive.
+	func_lalib_unsafe_p "$file" \
+	  || func_fatal_help "\`$file' is not a valid libtool archive"
+
+	library_names=
+	old_library=
+	relink_command=
+	func_source "$file"
+
+	# Add the libdir to current_libdirs if it is the destination.
+	if test "X$destdir" = "X$libdir"; then
+	  case "$current_libdirs " in
+	  *" $libdir "*) ;;
+	  *) current_libdirs="$current_libdirs $libdir" ;;
+	  esac
+	else
+	  # Note the libdir as a future libdir.
+	  case "$future_libdirs " in
+	  *" $libdir "*) ;;
+	  *) future_libdirs="$future_libdirs $libdir" ;;
+	  esac
+	fi
+
+	func_dirname "$file" "/" ""
+	dir="$func_dirname_result"
+	dir="$dir$objdir"
+
+	if test -n "$relink_command"; then
+	  # Determine the prefix the user has applied to our future dir.
+	  inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"`
+
+	  # Don't allow the user to place us outside of our expected
+	  # location b/c this prevents finding dependent libraries that
+	  # are installed to the same prefix.
+	  # At present, this check doesn't affect windows .dll's that
+	  # are installed into $libdir/../bin (currently, that works fine)
+	  # but it's something to keep an eye on.
+	  test "$inst_prefix_dir" = "$destdir" && \
+	    func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
+
+	  if test -n "$inst_prefix_dir"; then
+	    # Stick the inst_prefix_dir data into the link command.
+	    relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
+	  else
+	    relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"`
+	  fi
+
+	  func_warning "relinking \`$file'"
+	  func_show_eval "$relink_command" \
+	    'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
+	fi
+
+	# See the names of the shared library.
+	set dummy $library_names; shift
+	if test -n "$1"; then
+	  realname="$1"
+	  shift
+
+	  srcname="$realname"
+	  test -n "$relink_command" && srcname="$realname"T
+
+	  # Install the shared library and build the symlinks.
+	  func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \
+	      'exit $?'
+	  tstripme="$stripme"
+	  case $host_os in
+	  cygwin* | mingw* | pw32* | cegcc*)
+	    case $realname in
+	    *.dll.a)
+	      tstripme=""
+	      ;;
+	    esac
+	    ;;
+	  esac
+	  if test -n "$tstripme" && test -n "$striplib"; then
+	    func_show_eval "$striplib $destdir/$realname" 'exit $?'
+	  fi
+
+	  if test "$#" -gt 0; then
+	    # Delete the old symlinks, and create new ones.
+	    # Try `ln -sf' first, because the `ln' binary might depend on
+	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
+	    # so we also need to try rm && ln -s.
+	    for linkname
+	    do
+	      test "$linkname" != "$realname" \
+		&& func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
+	    done
+	  fi
+
+	  # Do each command in the postinstall commands.
+	  lib="$destdir/$realname"
+	  func_execute_cmds "$postinstall_cmds" 'exit $?'
+	fi
+
+	# Install the pseudo-library for information purposes.
+	func_basename "$file"
+	name="$func_basename_result"
+	instname="$dir/$name"i
+	func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
+
+	# Maybe install the static library, too.
+	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
+	;;
+
+      *.lo)
+	# Install (i.e. copy) a libtool object.
+
+	# Figure out destination file name, if it wasn't already specified.
+	if test -n "$destname"; then
+	  destfile="$destdir/$destname"
+	else
+	  func_basename "$file"
+	  destfile="$func_basename_result"
+	  destfile="$destdir/$destfile"
+	fi
+
+	# Deduce the name of the destination old-style object file.
+	case $destfile in
+	*.lo)
+	  func_lo2o "$destfile"
+	  staticdest=$func_lo2o_result
+	  ;;
+	*.$objext)
+	  staticdest="$destfile"
+	  destfile=
+	  ;;
+	*)
+	  func_fatal_help "cannot copy a libtool object to \`$destfile'"
+	  ;;
+	esac
+
+	# Install the libtool object if requested.
+	test -n "$destfile" && \
+	  func_show_eval "$install_prog $file $destfile" 'exit $?'
+
+	# Install the old object if enabled.
+	if test "$build_old_libs" = yes; then
+	  # Deduce the name of the old-style object file.
+	  func_lo2o "$file"
+	  staticobj=$func_lo2o_result
+	  func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
+	fi
+	exit $EXIT_SUCCESS
+	;;
+
+      *)
+	# Figure out destination file name, if it wasn't already specified.
+	if test -n "$destname"; then
+	  destfile="$destdir/$destname"
+	else
+	  func_basename "$file"
+	  destfile="$func_basename_result"
+	  destfile="$destdir/$destfile"
+	fi
+
+	# If the file is missing, and there is a .exe on the end, strip it
+	# because it is most likely a libtool script we actually want to
+	# install
+	stripped_ext=""
+	case $file in
+	  *.exe)
+	    if test ! -f "$file"; then
+	      func_stripname '' '.exe' "$file"
+	      file=$func_stripname_result
+	      stripped_ext=".exe"
+	    fi
+	    ;;
+	esac
+
+	# Do a test to see if this is really a libtool program.
+	case $host in
+	*cygwin* | *mingw*)
+	    if func_ltwrapper_executable_p "$file"; then
+	      func_ltwrapper_scriptname "$file"
+	      wrapper=$func_ltwrapper_scriptname_result
+	    else
+	      func_stripname '' '.exe' "$file"
+	      wrapper=$func_stripname_result
+	    fi
+	    ;;
+	*)
+	    wrapper=$file
+	    ;;
+	esac
+	if func_ltwrapper_script_p "$wrapper"; then
+	  notinst_deplibs=
+	  relink_command=
+
+	  func_source "$wrapper"
+
+	  # Check the variables that should have been set.
+	  test -z "$generated_by_libtool_version" && \
+	    func_fatal_error "invalid libtool wrapper script \`$wrapper'"
+
+	  finalize=yes
+	  for lib in $notinst_deplibs; do
+	    # Check to see that each library is installed.
+	    libdir=
+	    if test -f "$lib"; then
+	      func_source "$lib"
+	    fi
+	    libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
+	    if test -n "$libdir" && test ! -f "$libfile"; then
+	      func_warning "\`$lib' has not been installed in \`$libdir'"
+	      finalize=no
+	    fi
+	  done
+
+	  relink_command=
+	  func_source "$wrapper"
+
+	  outputname=
+	  if test "$fast_install" = no && test -n "$relink_command"; then
+	    $opt_dry_run || {
+	      if test "$finalize" = yes; then
+	        tmpdir=`func_mktempdir`
+		func_basename "$file$stripped_ext"
+		file="$func_basename_result"
+	        outputname="$tmpdir/$file"
+	        # Replace the output file specification.
+	        relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
+
+	        $opt_silent || {
+	          func_quote_for_expand "$relink_command"
+		  eval "func_echo $func_quote_for_expand_result"
+	        }
+	        if eval "$relink_command"; then :
+	          else
+		  func_error "error: relink \`$file' with the above command before installing it"
+		  $opt_dry_run || ${RM}r "$tmpdir"
+		  continue
+	        fi
+	        file="$outputname"
+	      else
+	        func_warning "cannot relink \`$file'"
+	      fi
+	    }
+	  else
+	    # Install the binary that we compiled earlier.
+	    file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
+	  fi
+	fi
+
+	# remove .exe since cygwin /usr/bin/install will append another
+	# one anyway
+	case $install_prog,$host in
+	*/usr/bin/install*,*cygwin*)
+	  case $file:$destfile in
+	  *.exe:*.exe)
+	    # this is ok
+	    ;;
+	  *.exe:*)
+	    destfile=$destfile.exe
+	    ;;
+	  *:*.exe)
+	    func_stripname '' '.exe' "$destfile"
+	    destfile=$func_stripname_result
+	    ;;
+	  esac
+	  ;;
+	esac
+	func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
+	$opt_dry_run || if test -n "$outputname"; then
+	  ${RM}r "$tmpdir"
+	fi
+	;;
+      esac
+    done
+
+    for file in $staticlibs; do
+      func_basename "$file"
+      name="$func_basename_result"
+
+      # Set up the ranlib parameters.
+      oldlib="$destdir/$name"
+
+      func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
+
+      if test -n "$stripme" && test -n "$old_striplib"; then
+	func_show_eval "$old_striplib $oldlib" 'exit $?'
+      fi
+
+      # Do each command in the postinstall commands.
+      func_execute_cmds "$old_postinstall_cmds" 'exit $?'
+    done
+
+    test -n "$future_libdirs" && \
+      func_warning "remember to run \`$progname --finish$future_libdirs'"
+
+    if test -n "$current_libdirs"; then
+      # Maybe just do a dry run.
+      $opt_dry_run && current_libdirs=" -n$current_libdirs"
+      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
+    else
+      exit $EXIT_SUCCESS
+    fi
+}
+
+test "$mode" = install && func_mode_install ${1+"$@"}
+
+
+# func_generate_dlsyms outputname originator pic_p
+# Extract symbols from dlprefiles and create ${outputname}S.o with
+# a dlpreopen symbol table.
+func_generate_dlsyms ()
+{
+    $opt_debug
+    my_outputname="$1"
+    my_originator="$2"
+    my_pic_p="${3-no}"
+    my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
+    my_dlsyms=
+
+    if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+      if test -n "$NM" && test -n "$global_symbol_pipe"; then
+	my_dlsyms="${my_outputname}S.c"
+      else
+	func_error "not configured to extract global symbols from dlpreopened files"
+      fi
+    fi
+
+    if test -n "$my_dlsyms"; then
+      case $my_dlsyms in
+      "") ;;
+      *.c)
+	# Discover the nlist of each of the dlfiles.
+	nlist="$output_objdir/${my_outputname}.nm"
+
+	func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
+
+	# Parse the name list into a source file.
+	func_verbose "creating $output_objdir/$my_dlsyms"
+
+	$opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
+/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
+/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
+
+#ifdef __cplusplus
+extern \"C\" {
+#endif
+
+/* External symbol declarations for the compiler. */\
+"
+
+	if test "$dlself" = yes; then
+	  func_verbose "generating symbol list for \`$output'"
+
+	  $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
+
+	  # Add our own program objects to the symbol list.
+	  progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	  for progfile in $progfiles; do
+	    func_verbose "extracting global C symbols from \`$progfile'"
+	    $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
+	  done
+
+	  if test -n "$exclude_expsyms"; then
+	    $opt_dry_run || {
+	      eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
+	      eval '$MV "$nlist"T "$nlist"'
+	    }
+	  fi
+
+	  if test -n "$export_symbols_regex"; then
+	    $opt_dry_run || {
+	      eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
+	      eval '$MV "$nlist"T "$nlist"'
+	    }
+	  fi
+
+	  # Prepare the list of exported symbols
+	  if test -z "$export_symbols"; then
+	    export_symbols="$output_objdir/$outputname.exp"
+	    $opt_dry_run || {
+	      $RM $export_symbols
+	      eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+	      case $host in
+	      *cygwin* | *mingw* | *cegcc* )
+                eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+                eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
+	        ;;
+	      esac
+	    }
+	  else
+	    $opt_dry_run || {
+	      eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
+	      eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
+	      eval '$MV "$nlist"T "$nlist"'
+	      case $host in
+	        *cygwin | *mingw* | *cegcc* )
+	          eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+	          eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
+	          ;;
+	      esac
+	    }
+	  fi
+	fi
+
+	for dlprefile in $dlprefiles; do
+	  func_verbose "extracting global C symbols from \`$dlprefile'"
+	  func_basename "$dlprefile"
+	  name="$func_basename_result"
+	  $opt_dry_run || {
+	    eval '$ECHO ": $name " >> "$nlist"'
+	    eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+	  }
+	done
+
+	$opt_dry_run || {
+	  # Make sure we have at least an empty file.
+	  test -f "$nlist" || : > "$nlist"
+
+	  if test -n "$exclude_expsyms"; then
+	    $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
+	    $MV "$nlist"T "$nlist"
+	  fi
+
+	  # Try sorting and uniquifying the output.
+	  if $GREP -v "^: " < "$nlist" |
+	      if sort -k 3 </dev/null >/dev/null 2>&1; then
+		sort -k 3
+	      else
+		sort +2
+	      fi |
+	      uniq > "$nlist"S; then
+	    :
+	  else
+	    $GREP -v "^: " < "$nlist" > "$nlist"S
+	  fi
+
+	  if test -f "$nlist"S; then
+	    eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
+	  else
+	    $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms"
+	  fi
+
+	  $ECHO >> "$output_objdir/$my_dlsyms" "\
+
+/* The mapping between symbol names and symbols.  */
+typedef struct {
+  const char *name;
+  void *address;
+} lt_dlsymlist;
+"
+	  case $host in
+	  *cygwin* | *mingw* | *cegcc* )
+	    $ECHO >> "$output_objdir/$my_dlsyms" "\
+/* DATA imports from DLLs on WIN32 con't be const, because
+   runtime relocations are performed -- see ld's documentation
+   on pseudo-relocs.  */"
+	    lt_dlsym_const= ;;
+	  *osf5*)
+	    echo >> "$output_objdir/$my_dlsyms" "\
+/* This system does not cope well with relocations in const data */"
+	    lt_dlsym_const= ;;
+	  *)
+	    lt_dlsym_const=const ;;
+	  esac
+
+	  $ECHO >> "$output_objdir/$my_dlsyms" "\
+extern $lt_dlsym_const lt_dlsymlist
+lt_${my_prefix}_LTX_preloaded_symbols[];
+$lt_dlsym_const lt_dlsymlist
+lt_${my_prefix}_LTX_preloaded_symbols[] =
+{\
+  { \"$my_originator\", (void *) 0 },"
+
+	  case $need_lib_prefix in
+	  no)
+	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
+	    ;;
+	  *)
+	    eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
+	    ;;
+	  esac
+	  $ECHO >> "$output_objdir/$my_dlsyms" "\
+  {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+  return lt_${my_prefix}_LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif\
+"
+	} # !$opt_dry_run
+
+	pic_flag_for_symtable=
+	case "$compile_command " in
+	*" -static "*) ;;
+	*)
+	  case $host in
+	  # compiling the symbol table file with pic_flag works around
+	  # a FreeBSD bug that causes programs to crash when -lm is
+	  # linked before any other PIC object.  But we must not use
+	  # pic_flag when linking with -static.  The problem exists in
+	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
+	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+	    pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
+	  *-*-hpux*)
+	    pic_flag_for_symtable=" $pic_flag"  ;;
+	  *)
+	    if test "X$my_pic_p" != Xno; then
+	      pic_flag_for_symtable=" $pic_flag"
+	    fi
+	    ;;
+	  esac
+	  ;;
+	esac
+	symtab_cflags=
+	for arg in $LTCFLAGS; do
+	  case $arg in
+	  -pie | -fpie | -fPIE) ;;
+	  *) symtab_cflags="$symtab_cflags $arg" ;;
+	  esac
+	done
+
+	# Now compile the dynamic symbol file.
+	func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
+
+	# Clean up the generated files.
+	func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
+
+	# Transform the symbol file into the correct name.
+	symfileobj="$output_objdir/${my_outputname}S.$objext"
+	case $host in
+	*cygwin* | *mingw* | *cegcc* )
+	  if test -f "$output_objdir/$my_outputname.def"; then
+	    compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+	    finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+	  else
+	    compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+	    finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+	  fi
+	  ;;
+	*)
+	  compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+	  finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+	  ;;
+	esac
+	;;
+      *)
+	func_fatal_error "unknown suffix for \`$my_dlsyms'"
+	;;
+      esac
+    else
+      # We keep going just in case the user didn't refer to
+      # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
+      # really was required.
+
+      # Nullify the symbol file.
+      compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
+      finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
+    fi
+}
+
+# func_win32_libid arg
+# return the library type of file 'arg'
+#
+# Need a lot of goo to handle *both* DLLs and import libs
+# Has to be a shell function in order to 'eat' the argument
+# that is supplied when $file_magic_command is called.
+func_win32_libid ()
+{
+  $opt_debug
+  win32_libid_type="unknown"
+  win32_fileres=`file -L $1 2>/dev/null`
+  case $win32_fileres in
+  *ar\ archive\ import\ library*) # definitely import
+    win32_libid_type="x86 archive import"
+    ;;
+  *ar\ archive*) # could be an import, or static
+    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
+       $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
+      win32_nmres=`eval $NM -f posix -A $1 |
+	$SED -n -e '
+	    1,100{
+		/ I /{
+		    s,.*,import,
+		    p
+		    q
+		}
+	    }'`
+      case $win32_nmres in
+      import*)  win32_libid_type="x86 archive import";;
+      *)        win32_libid_type="x86 archive static";;
+      esac
+    fi
+    ;;
+  *DLL*)
+    win32_libid_type="x86 DLL"
+    ;;
+  *executable*) # but shell scripts are "executable" too...
+    case $win32_fileres in
+    *MS\ Windows\ PE\ Intel*)
+      win32_libid_type="x86 DLL"
+      ;;
+    esac
+    ;;
+  esac
+  $ECHO "$win32_libid_type"
+}
+
+
+
+# func_extract_an_archive dir oldlib
+func_extract_an_archive ()
+{
+    $opt_debug
+    f_ex_an_ar_dir="$1"; shift
+    f_ex_an_ar_oldlib="$1"
+    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?'
+    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
+     :
+    else
+      func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
+    fi
+}
+
+
+# func_extract_archives gentop oldlib ...
+func_extract_archives ()
+{
+    $opt_debug
+    my_gentop="$1"; shift
+    my_oldlibs=${1+"$@"}
+    my_oldobjs=""
+    my_xlib=""
+    my_xabs=""
+    my_xdir=""
+
+    for my_xlib in $my_oldlibs; do
+      # Extract the objects.
+      case $my_xlib in
+	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
+	*) my_xabs=`pwd`"/$my_xlib" ;;
+      esac
+      func_basename "$my_xlib"
+      my_xlib="$func_basename_result"
+      my_xlib_u=$my_xlib
+      while :; do
+        case " $extracted_archives " in
+	*" $my_xlib_u "*)
+	  func_arith $extracted_serial + 1
+	  extracted_serial=$func_arith_result
+	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
+	*) break ;;
+	esac
+      done
+      extracted_archives="$extracted_archives $my_xlib_u"
+      my_xdir="$my_gentop/$my_xlib_u"
+
+      func_mkdir_p "$my_xdir"
+
+      case $host in
+      *-darwin*)
+	func_verbose "Extracting $my_xabs"
+	# Do not bother doing anything if just a dry run
+	$opt_dry_run || {
+	  darwin_orig_dir=`pwd`
+	  cd $my_xdir || exit $?
+	  darwin_archive=$my_xabs
+	  darwin_curdir=`pwd`
+	  darwin_base_archive=`basename "$darwin_archive"`
+	  darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
+	  if test -n "$darwin_arches"; then
+	    darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
+	    darwin_arch=
+	    func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
+	    for darwin_arch in  $darwin_arches ; do
+	      func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+	      $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
+	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
+	      cd "$darwin_curdir"
+	      $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
+	    done # $darwin_arches
+            ## Okay now we've a bunch of thin objects, gotta fatten them up :)
+	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
+	    darwin_file=
+	    darwin_files=
+	    for darwin_file in $darwin_filelist; do
+	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
+	      $LIPO -create -output "$darwin_file" $darwin_files
+	    done # $darwin_filelist
+	    $RM -rf unfat-$$
+	    cd "$darwin_orig_dir"
+	  else
+	    cd $darwin_orig_dir
+	    func_extract_an_archive "$my_xdir" "$my_xabs"
+	  fi # $darwin_arches
+	} # !$opt_dry_run
+	;;
+      *)
+        func_extract_an_archive "$my_xdir" "$my_xabs"
+	;;
+      esac
+      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
+    done
+
+    func_extract_archives_result="$my_oldobjs"
+}
+
+
+
+# func_emit_wrapper_part1 [arg=no]
+#
+# Emit the first part of a libtool wrapper script on stdout.
+# For more information, see the description associated with
+# func_emit_wrapper(), below.
+func_emit_wrapper_part1 ()
+{
+	func_emit_wrapper_part1_arg1=no
+	if test -n "$1" ; then
+	  func_emit_wrapper_part1_arg1=$1
+	fi
+
+	$ECHO "\
+#! $SHELL
+
+# $output - temporary wrapper script for $objdir/$outputname
+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+#
+# The $output program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='${SED} -e 1s/^X//'
+sed_quote_subst='$sed_quote_subst'
+
+# Be Bourne compatible
+if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else
+  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command=\"$relink_command\"
+
+# This environment variable determines our operation mode.
+if test \"\$libtool_install_magic\" = \"$magic\"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='$macro_version'
+  notinst_deplibs='$notinst_deplibs'
+else
+  # When we are sourced in execute mode, \$file and \$ECHO are already set.
+  if test \"\$libtool_execute_magic\" != \"$magic\"; then
+    ECHO=\"$qecho\"
+    file=\"\$0\"
+    # Make sure echo works.
+    if test \"X\$1\" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then
+      # Yippee, \$ECHO works!
+      :
+    else
+      # Restart under the correct shell, and then maybe \$ECHO will work.
+      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
+    fi
+  fi\
+"
+	$ECHO "\
+
+  # Find the directory that this script lives in.
+  thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
+  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
+  while test -n \"\$file\"; do
+    destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
+
+    # If there was a directory component, then change thisdir.
+    if test \"x\$destdir\" != \"x\$file\"; then
+      case \"\$destdir\" in
+      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
+      *) thisdir=\"\$thisdir/\$destdir\" ;;
+      esac
+    fi
+
+    file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
+    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
+  done
+"
+}
+# end: func_emit_wrapper_part1
+
+# func_emit_wrapper_part2 [arg=no]
+#
+# Emit the second part of a libtool wrapper script on stdout.
+# For more information, see the description associated with
+# func_emit_wrapper(), below.
+func_emit_wrapper_part2 ()
+{
+	func_emit_wrapper_part2_arg1=no
+	if test -n "$1" ; then
+	  func_emit_wrapper_part2_arg1=$1
+	fi
+
+	$ECHO "\
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1
+  if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
+    # special case for '.'
+    if test \"\$thisdir\" = \".\"; then
+      thisdir=\`pwd\`
+    fi
+    # remove .libs from thisdir
+    case \"\$thisdir\" in
+    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;;
+    $objdir )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=\`cd \"\$thisdir\" && pwd\`
+  test -n \"\$absdir\" && thisdir=\"\$absdir\"
+"
+
+	if test "$fast_install" = yes; then
+	  $ECHO "\
+  program=lt-'$outputname'$exeext
+  progdir=\"\$thisdir/$objdir\"
+
+  if test ! -f \"\$progdir/\$program\" ||
+     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
+       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
+
+    file=\"\$\$-\$program\"
+
+    if test ! -d \"\$progdir\"; then
+      $MKDIR \"\$progdir\"
+    else
+      $RM \"\$progdir/\$file\"
+    fi"
+
+	  $ECHO "\
+
+    # relink executable if necessary
+    if test -n \"\$relink_command\"; then
+      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
+      else
+	$ECHO \"\$relink_command_output\" >&2
+	$RM \"\$progdir/\$file\"
+	exit 1
+      fi
+    fi
+
+    $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
+    { $RM \"\$progdir/\$program\";
+      $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
+    $RM \"\$progdir/\$file\"
+  fi"
+	else
+	  $ECHO "\
+  program='$outputname'
+  progdir=\"\$thisdir/$objdir\"
+"
+	fi
+
+	$ECHO "\
+
+  if test -f \"\$progdir/\$program\"; then"
+
+	# Export our shlibpath_var if we have one.
+	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+	  $ECHO "\
+    # Add our own library path to $shlibpath_var
+    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
+
+    # Some systems cannot cope with colon-terminated $shlibpath_var
+    # The second colon is a workaround for a bug in BeOS R4 sed
+    $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
+
+    export $shlibpath_var
+"
+	fi
+
+	# fixup the dll searchpath if we need to.
+	if test -n "$dllsearchpath"; then
+	  $ECHO "\
+    # Add the dll search path components to the executable PATH
+    PATH=$dllsearchpath:\$PATH
+"
+	fi
+
+	$ECHO "\
+    if test \"\$libtool_execute_magic\" != \"$magic\"; then
+      # Run the actual program with our arguments.
+"
+	case $host in
+	# Backslashes separate directories on plain windows
+	*-*-mingw | *-*-os2* | *-cegcc*)
+	  $ECHO "\
+      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
+"
+	  ;;
+
+	*)
+	  $ECHO "\
+      exec \"\$progdir/\$program\" \${1+\"\$@\"}
+"
+	  ;;
+	esac
+	$ECHO "\
+      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
+      exit 1
+    fi
+  else
+    # The program doesn't exist.
+    \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
+    \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
+    $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
+    exit 1
+  fi
+fi\
+"
+}
+# end: func_emit_wrapper_part2
+
+
+# func_emit_wrapper [arg=no]
+#
+# Emit a libtool wrapper script on stdout.
+# Don't directly open a file because we may want to
+# incorporate the script contents within a cygwin/mingw
+# wrapper executable.  Must ONLY be called from within
+# func_mode_link because it depends on a number of variables
+# set therein.
+#
+# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
+# variable will take.  If 'yes', then the emitted script
+# will assume that the directory in which it is stored is
+# the $objdir directory.  This is a cygwin/mingw-specific
+# behavior.
+func_emit_wrapper ()
+{
+	func_emit_wrapper_arg1=no
+	if test -n "$1" ; then
+	  func_emit_wrapper_arg1=$1
+	fi
+
+	# split this up so that func_emit_cwrapperexe_src
+	# can call each part independently.
+	func_emit_wrapper_part1 "${func_emit_wrapper_arg1}"
+	func_emit_wrapper_part2 "${func_emit_wrapper_arg1}"
+}
+
+
+# func_to_host_path arg
+#
+# Convert paths to host format when used with build tools.
+# Intended for use with "native" mingw (where libtool itself
+# is running under the msys shell), or in the following cross-
+# build environments:
+#    $build          $host
+#    mingw (msys)    mingw  [e.g. native]
+#    cygwin          mingw
+#    *nix + wine     mingw
+# where wine is equipped with the `winepath' executable.
+# In the native mingw case, the (msys) shell automatically
+# converts paths for any non-msys applications it launches,
+# but that facility isn't available from inside the cwrapper.
+# Similar accommodations are necessary for $host mingw and
+# $build cygwin.  Calling this function does no harm for other
+# $host/$build combinations not listed above.
+#
+# ARG is the path (on $build) that should be converted to
+# the proper representation for $host. The result is stored
+# in $func_to_host_path_result.
+func_to_host_path ()
+{
+  func_to_host_path_result="$1"
+  if test -n "$1" ; then
+    case $host in
+      *mingw* )
+        lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+        case $build in
+          *mingw* ) # actually, msys
+            # awkward: cmd appends spaces to result
+            lt_sed_strip_trailing_spaces="s/[ ]*\$//"
+            func_to_host_path_tmp1=`( cmd //c echo "$1" |\
+              $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
+            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
+              $SED -e "$lt_sed_naive_backslashify"`
+            ;;
+          *cygwin* )
+            func_to_host_path_tmp1=`cygpath -w "$1"`
+            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
+              $SED -e "$lt_sed_naive_backslashify"`
+            ;;
+          * )
+            # Unfortunately, winepath does not exit with a non-zero
+            # error code, so we are forced to check the contents of
+            # stdout. On the other hand, if the command is not
+            # found, the shell will set an exit code of 127 and print
+            # *an error message* to stdout. So we must check for both
+            # error code of zero AND non-empty stdout, which explains
+            # the odd construction:
+            func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
+            if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
+              func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
+                $SED -e "$lt_sed_naive_backslashify"`
+            else
+              # Allow warning below.
+              func_to_host_path_result=""
+            fi
+            ;;
+        esac
+        if test -z "$func_to_host_path_result" ; then
+          func_error "Could not determine host path corresponding to"
+          func_error "  '$1'"
+          func_error "Continuing, but uninstalled executables may not work."
+          # Fallback:
+          func_to_host_path_result="$1"
+        fi
+        ;;
+    esac
+  fi
+}
+# end: func_to_host_path
+
+# func_to_host_pathlist arg
+#
+# Convert pathlists to host format when used with build tools.
+# See func_to_host_path(), above. This function supports the
+# following $build/$host combinations (but does no harm for
+# combinations not listed here):
+#    $build          $host
+#    mingw (msys)    mingw  [e.g. native]
+#    cygwin          mingw
+#    *nix + wine     mingw
+#
+# Path separators are also converted from $build format to
+# $host format. If ARG begins or ends with a path separator
+# character, it is preserved (but converted to $host format)
+# on output.
+#
+# ARG is a pathlist (on $build) that should be converted to
+# the proper representation on $host. The result is stored
+# in $func_to_host_pathlist_result.
+func_to_host_pathlist ()
+{
+  func_to_host_pathlist_result="$1"
+  if test -n "$1" ; then
+    case $host in
+      *mingw* )
+        lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+        # Remove leading and trailing path separator characters from
+        # ARG. msys behavior is inconsistent here, cygpath turns them
+        # into '.;' and ';.', and winepath ignores them completely.
+        func_to_host_pathlist_tmp2="$1"
+        # Once set for this call, this variable should not be
+        # reassigned. It is used in tha fallback case.
+        func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\
+          $SED -e 's|^:*||' -e 's|:*$||'`
+        case $build in
+          *mingw* ) # Actually, msys.
+            # Awkward: cmd appends spaces to result.
+            lt_sed_strip_trailing_spaces="s/[ ]*\$//"
+            func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\
+              $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
+            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
+              $SED -e "$lt_sed_naive_backslashify"`
+            ;;
+          *cygwin* )
+            func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"`
+            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
+              $SED -e "$lt_sed_naive_backslashify"`
+            ;;
+          * )
+            # unfortunately, winepath doesn't convert pathlists
+            func_to_host_pathlist_result=""
+            func_to_host_pathlist_oldIFS=$IFS
+            IFS=:
+            for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do
+              IFS=$func_to_host_pathlist_oldIFS
+              if test -n "$func_to_host_pathlist_f" ; then
+                func_to_host_path "$func_to_host_pathlist_f"
+                if test -n "$func_to_host_path_result" ; then
+                  if test -z "$func_to_host_pathlist_result" ; then
+                    func_to_host_pathlist_result="$func_to_host_path_result"
+                  else
+                    func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result"
+                  fi
+                fi
+              fi
+              IFS=:
+            done
+            IFS=$func_to_host_pathlist_oldIFS
+            ;;
+        esac
+        if test -z "$func_to_host_pathlist_result" ; then
+          func_error "Could not determine the host path(s) corresponding to"
+          func_error "  '$1'"
+          func_error "Continuing, but uninstalled executables may not work."
+          # Fallback. This may break if $1 contains DOS-style drive
+          # specifications. The fix is not to complicate the expression
+          # below, but for the user to provide a working wine installation
+          # with winepath so that path translation in the cross-to-mingw
+          # case works properly.
+          lt_replace_pathsep_nix_to_dos="s|:|;|g"
+          func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\
+            $SED -e "$lt_replace_pathsep_nix_to_dos"`
+        fi
+        # Now, add the leading and trailing path separators back
+        case "$1" in
+          :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result"
+            ;;
+        esac
+        case "$1" in
+          *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;"
+            ;;
+        esac
+        ;;
+    esac
+  fi
+}
+# end: func_to_host_pathlist
+
+# func_emit_cwrapperexe_src
+# emit the source code for a wrapper executable on stdout
+# Must ONLY be called from within func_mode_link because
+# it depends on a number of variable set therein.
+func_emit_cwrapperexe_src ()
+{
+	cat <<EOF
+
+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
+   Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+
+   The $output program cannot be directly executed until all the libtool
+   libraries that it depends on are installed.
+
+   This wrapper executable should never be moved out of the build directory.
+   If it is, it will not operate correctly.
+
+   Currently, it simply execs the wrapper *script* "$SHELL $output",
+   but could eventually absorb all of the scripts functionality and
+   exec $objdir/$outputname directly.
+*/
+EOF
+	    cat <<"EOF"
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef _MSC_VER
+# include <direct.h>
+# include <process.h>
+# include <io.h>
+# define setmode _setmode
+#else
+# include <unistd.h>
+# include <stdint.h>
+# ifdef __CYGWIN__
+#  include <io.h>
+#  define HAVE_SETENV
+#  ifdef __STRICT_ANSI__
+char *realpath (const char *, char *);
+int putenv (char *);
+int setenv (const char *, const char *, int);
+#  endif
+# endif
+#endif
+#include <malloc.h>
+#include <stdarg.h>
+#include <assert.h>
+#include <string.h>
+#include <ctype.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+
+#if defined(PATH_MAX)
+# define LT_PATHMAX PATH_MAX
+#elif defined(MAXPATHLEN)
+# define LT_PATHMAX MAXPATHLEN
+#else
+# define LT_PATHMAX 1024
+#endif
+
+#ifndef S_IXOTH
+# define S_IXOTH 0
+#endif
+#ifndef S_IXGRP
+# define S_IXGRP 0
+#endif
+
+#ifdef _MSC_VER
+# define S_IXUSR _S_IEXEC
+# define stat _stat
+# ifndef _INTPTR_T_DEFINED
+#  define intptr_t int
+# endif
+#endif
+
+#ifndef DIR_SEPARATOR
+# define DIR_SEPARATOR '/'
+# define PATH_SEPARATOR ':'
+#endif
+
+#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
+  defined (__OS2__)
+# define HAVE_DOS_BASED_FILE_SYSTEM
+# define FOPEN_WB "wb"
+# ifndef DIR_SEPARATOR_2
+#  define DIR_SEPARATOR_2 '\\'
+# endif
+# ifndef PATH_SEPARATOR_2
+#  define PATH_SEPARATOR_2 ';'
+# endif
+#endif
+
+#ifndef DIR_SEPARATOR_2
+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
+#else /* DIR_SEPARATOR_2 */
+# define IS_DIR_SEPARATOR(ch) \
+	(((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
+#endif /* DIR_SEPARATOR_2 */
+
+#ifndef PATH_SEPARATOR_2
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
+#else /* PATH_SEPARATOR_2 */
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
+#endif /* PATH_SEPARATOR_2 */
+
+#ifdef __CYGWIN__
+# define FOPEN_WB "wb"
+#endif
+
+#ifndef FOPEN_WB
+# define FOPEN_WB "w"
+#endif
+#ifndef _O_BINARY
+# define _O_BINARY 0
+#endif
+
+#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
+#define XFREE(stale) do { \
+  if (stale) { free ((void *) stale); stale = 0; } \
+} while (0)
+
+#undef LTWRAPPER_DEBUGPRINTF
+#if defined DEBUGWRAPPER
+# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args
+static void
+ltwrapper_debugprintf (const char *fmt, ...)
+{
+    va_list args;
+    va_start (args, fmt);
+    (void) vfprintf (stderr, fmt, args);
+    va_end (args);
+}
+#else
+# define LTWRAPPER_DEBUGPRINTF(args)
+#endif
+
+const char *program_name = NULL;
+
+void *xmalloc (size_t num);
+char *xstrdup (const char *string);
+const char *base_name (const char *name);
+char *find_executable (const char *wrapper);
+char *chase_symlinks (const char *pathspec);
+int make_executable (const char *path);
+int check_executable (const char *path);
+char *strendzap (char *str, const char *pat);
+void lt_fatal (const char *message, ...);
+void lt_setenv (const char *name, const char *value);
+char *lt_extend_str (const char *orig_value, const char *add, int to_end);
+void lt_opt_process_env_set (const char *arg);
+void lt_opt_process_env_prepend (const char *arg);
+void lt_opt_process_env_append (const char *arg);
+int lt_split_name_value (const char *arg, char** name, char** value);
+void lt_update_exe_path (const char *name, const char *value);
+void lt_update_lib_path (const char *name, const char *value);
+
+static const char *script_text_part1 =
+EOF
+
+	    func_emit_wrapper_part1 yes |
+	        $SED -e 's/\([\\"]\)/\\\1/g' \
+	             -e 's/^/  "/' -e 's/$/\\n"/'
+	    echo ";"
+	    cat <<EOF
+
+static const char *script_text_part2 =
+EOF
+	    func_emit_wrapper_part2 yes |
+	        $SED -e 's/\([\\"]\)/\\\1/g' \
+	             -e 's/^/  "/' -e 's/$/\\n"/'
+	    echo ";"
+
+	    cat <<EOF
+const char * MAGIC_EXE = "$magic_exe";
+const char * LIB_PATH_VARNAME = "$shlibpath_var";
+EOF
+
+	    if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+              func_to_host_pathlist "$temp_rpath"
+	      cat <<EOF
+const char * LIB_PATH_VALUE   = "$func_to_host_pathlist_result";
+EOF
+	    else
+	      cat <<"EOF"
+const char * LIB_PATH_VALUE   = "";
+EOF
+	    fi
+
+	    if test -n "$dllsearchpath"; then
+              func_to_host_pathlist "$dllsearchpath:"
+	      cat <<EOF
+const char * EXE_PATH_VARNAME = "PATH";
+const char * EXE_PATH_VALUE   = "$func_to_host_pathlist_result";
+EOF
+	    else
+	      cat <<"EOF"
+const char * EXE_PATH_VARNAME = "";
+const char * EXE_PATH_VALUE   = "";
+EOF
+	    fi
+
+	    if test "$fast_install" = yes; then
+	      cat <<EOF
+const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
+EOF
+	    else
+	      cat <<EOF
+const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
+EOF
+	    fi
+
+
+	    cat <<"EOF"
+
+#define LTWRAPPER_OPTION_PREFIX         "--lt-"
+#define LTWRAPPER_OPTION_PREFIX_LENGTH  5
+
+static const size_t opt_prefix_len         = LTWRAPPER_OPTION_PREFIX_LENGTH;
+static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
+
+static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
+
+static const size_t env_set_opt_len     = LTWRAPPER_OPTION_PREFIX_LENGTH + 7;
+static const char *env_set_opt          = LTWRAPPER_OPTION_PREFIX "env-set";
+  /* argument is putenv-style "foo=bar", value of foo is set to bar */
+
+static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11;
+static const char *env_prepend_opt      = LTWRAPPER_OPTION_PREFIX "env-prepend";
+  /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */
+
+static const size_t env_append_opt_len  = LTWRAPPER_OPTION_PREFIX_LENGTH + 10;
+static const char *env_append_opt       = LTWRAPPER_OPTION_PREFIX "env-append";
+  /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */
+
+int
+main (int argc, char *argv[])
+{
+  char **newargz;
+  int  newargc;
+  char *tmp_pathspec;
+  char *actual_cwrapper_path;
+  char *actual_cwrapper_name;
+  char *target_name;
+  char *lt_argv_zero;
+  intptr_t rval = 127;
+
+  int i;
+
+  program_name = (char *) xstrdup (base_name (argv[0]));
+  LTWRAPPER_DEBUGPRINTF (("(main) argv[0]      : %s\n", argv[0]));
+  LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name));
+
+  /* very simple arg parsing; don't want to rely on getopt */
+  for (i = 1; i < argc; i++)
+    {
+      if (strcmp (argv[i], dumpscript_opt) == 0)
+	{
+EOF
+	    case "$host" in
+	      *mingw* | *cygwin* )
+		# make stdout use "unix" line endings
+		echo "          setmode(1,_O_BINARY);"
+		;;
+	      esac
+
+	    cat <<"EOF"
+	  printf ("%s", script_text_part1);
+	  printf ("%s", script_text_part2);
+	  return 0;
+	}
+    }
+
+  newargz = XMALLOC (char *, argc + 1);
+  tmp_pathspec = find_executable (argv[0]);
+  if (tmp_pathspec == NULL)
+    lt_fatal ("Couldn't find %s", argv[0]);
+  LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n",
+			  tmp_pathspec));
+
+  actual_cwrapper_path = chase_symlinks (tmp_pathspec);
+  LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n",
+			  actual_cwrapper_path));
+  XFREE (tmp_pathspec);
+
+  actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path));
+  strendzap (actual_cwrapper_path, actual_cwrapper_name);
+
+  /* wrapper name transforms */
+  strendzap (actual_cwrapper_name, ".exe");
+  tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
+  XFREE (actual_cwrapper_name);
+  actual_cwrapper_name = tmp_pathspec;
+  tmp_pathspec = 0;
+
+  /* target_name transforms -- use actual target program name; might have lt- prefix */
+  target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
+  strendzap (target_name, ".exe");
+  tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
+  XFREE (target_name);
+  target_name = tmp_pathspec;
+  tmp_pathspec = 0;
+
+  LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n",
+			  target_name));
+EOF
+
+	    cat <<EOF
+  newargz[0] =
+    XMALLOC (char, (strlen (actual_cwrapper_path) +
+		    strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
+  strcpy (newargz[0], actual_cwrapper_path);
+  strcat (newargz[0], "$objdir");
+  strcat (newargz[0], "/");
+EOF
+
+	    cat <<"EOF"
+  /* stop here, and copy so we don't have to do this twice */
+  tmp_pathspec = xstrdup (newargz[0]);
+
+  /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
+  strcat (newargz[0], actual_cwrapper_name);
+
+  /* DO want the lt- prefix here if it exists, so use target_name */
+  lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
+  XFREE (tmp_pathspec);
+  tmp_pathspec = NULL;
+EOF
+
+	    case $host_os in
+	      mingw*)
+	    cat <<"EOF"
+  {
+    char* p;
+    while ((p = strchr (newargz[0], '\\')) != NULL)
+      {
+	*p = '/';
+      }
+    while ((p = strchr (lt_argv_zero, '\\')) != NULL)
+      {
+	*p = '/';
+      }
+  }
+EOF
+	    ;;
+	    esac
+
+	    cat <<"EOF"
+  XFREE (target_name);
+  XFREE (actual_cwrapper_path);
+  XFREE (actual_cwrapper_name);
+
+  lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
+  lt_setenv ("DUALCASE", "1");  /* for MSK sh */
+  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
+  lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
+
+  newargc=0;
+  for (i = 1; i < argc; i++)
+    {
+      if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0)
+        {
+          if (argv[i][env_set_opt_len] == '=')
+            {
+              const char *p = argv[i] + env_set_opt_len + 1;
+              lt_opt_process_env_set (p);
+            }
+          else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc)
+            {
+              lt_opt_process_env_set (argv[++i]); /* don't copy */
+            }
+          else
+            lt_fatal ("%s missing required argument", env_set_opt);
+          continue;
+        }
+      if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0)
+        {
+          if (argv[i][env_prepend_opt_len] == '=')
+            {
+              const char *p = argv[i] + env_prepend_opt_len + 1;
+              lt_opt_process_env_prepend (p);
+            }
+          else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc)
+            {
+              lt_opt_process_env_prepend (argv[++i]); /* don't copy */
+            }
+          else
+            lt_fatal ("%s missing required argument", env_prepend_opt);
+          continue;
+        }
+      if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0)
+        {
+          if (argv[i][env_append_opt_len] == '=')
+            {
+              const char *p = argv[i] + env_append_opt_len + 1;
+              lt_opt_process_env_append (p);
+            }
+          else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc)
+            {
+              lt_opt_process_env_append (argv[++i]); /* don't copy */
+            }
+          else
+            lt_fatal ("%s missing required argument", env_append_opt);
+          continue;
+        }
+      if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0)
+        {
+          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
+             namespace, but it is not one of the ones we know about and
+             have already dealt with, above (inluding dump-script), then
+             report an error. Otherwise, targets might begin to believe
+             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
+             namespace. The first time any user complains about this, we'll
+             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
+             or a configure.ac-settable value.
+           */
+          lt_fatal ("Unrecognized option in %s namespace: '%s'",
+                    ltwrapper_option_prefix, argv[i]);
+        }
+      /* otherwise ... */
+      newargz[++newargc] = xstrdup (argv[i]);
+    }
+  newargz[++newargc] = NULL;
+
+  LTWRAPPER_DEBUGPRINTF     (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>")));
+  for (i = 0; i < newargc; i++)
+    {
+      LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d]   : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>")));
+    }
+
+EOF
+
+	    case $host_os in
+	      mingw*)
+		cat <<"EOF"
+  /* execv doesn't actually work on mingw as expected on unix */
+  rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
+  if (rval == -1)
+    {
+      /* failed to start process */
+      LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno));
+      return 127;
+    }
+  return rval;
+EOF
+		;;
+	      *)
+		cat <<"EOF"
+  execv (lt_argv_zero, newargz);
+  return rval; /* =127, but avoids unused variable warning */
+EOF
+		;;
+	    esac
+
+	    cat <<"EOF"
+}
+
+void *
+xmalloc (size_t num)
+{
+  void *p = (void *) malloc (num);
+  if (!p)
+    lt_fatal ("Memory exhausted");
+
+  return p;
+}
+
+char *
+xstrdup (const char *string)
+{
+  return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
+			  string) : NULL;
+}
+
+const char *
+base_name (const char *name)
+{
+  const char *base;
+
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  /* Skip over the disk name in MSDOS pathnames. */
+  if (isalpha ((unsigned char) name[0]) && name[1] == ':')
+    name += 2;
+#endif
+
+  for (base = name; *name; name++)
+    if (IS_DIR_SEPARATOR (*name))
+      base = name + 1;
+  return base;
+}
+
+int
+check_executable (const char *path)
+{
+  struct stat st;
+
+  LTWRAPPER_DEBUGPRINTF (("(check_executable)  : %s\n",
+			  path ? (*path ? path : "EMPTY!") : "NULL!"));
+  if ((!path) || (!*path))
+    return 0;
+
+  if ((stat (path, &st) >= 0)
+      && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
+    return 1;
+  else
+    return 0;
+}
+
+int
+make_executable (const char *path)
+{
+  int rval = 0;
+  struct stat st;
+
+  LTWRAPPER_DEBUGPRINTF (("(make_executable)   : %s\n",
+			  path ? (*path ? path : "EMPTY!") : "NULL!"));
+  if ((!path) || (!*path))
+    return 0;
+
+  if (stat (path, &st) >= 0)
+    {
+      rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
+    }
+  return rval;
+}
+
+/* Searches for the full path of the wrapper.  Returns
+   newly allocated full path name if found, NULL otherwise
+   Does not chase symlinks, even on platforms that support them.
+*/
+char *
+find_executable (const char *wrapper)
+{
+  int has_slash = 0;
+  const char *p;
+  const char *p_next;
+  /* static buffer for getcwd */
+  char tmp[LT_PATHMAX + 1];
+  int tmp_len;
+  char *concat_name;
+
+  LTWRAPPER_DEBUGPRINTF (("(find_executable)   : %s\n",
+			  wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"));
+
+  if ((wrapper == NULL) || (*wrapper == '\0'))
+    return NULL;
+
+  /* Absolute path? */
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
+    {
+      concat_name = xstrdup (wrapper);
+      if (check_executable (concat_name))
+	return concat_name;
+      XFREE (concat_name);
+    }
+  else
+    {
+#endif
+      if (IS_DIR_SEPARATOR (wrapper[0]))
+	{
+	  concat_name = xstrdup (wrapper);
+	  if (check_executable (concat_name))
+	    return concat_name;
+	  XFREE (concat_name);
+	}
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+    }
+#endif
+
+  for (p = wrapper; *p; p++)
+    if (*p == '/')
+      {
+	has_slash = 1;
+	break;
+      }
+  if (!has_slash)
+    {
+      /* no slashes; search PATH */
+      const char *path = getenv ("PATH");
+      if (path != NULL)
+	{
+	  for (p = path; *p; p = p_next)
+	    {
+	      const char *q;
+	      size_t p_len;
+	      for (q = p; *q; q++)
+		if (IS_PATH_SEPARATOR (*q))
+		  break;
+	      p_len = q - p;
+	      p_next = (*q == '\0' ? q : q + 1);
+	      if (p_len == 0)
+		{
+		  /* empty path: current directory */
+		  if (getcwd (tmp, LT_PATHMAX) == NULL)
+		    lt_fatal ("getcwd failed");
+		  tmp_len = strlen (tmp);
+		  concat_name =
+		    XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
+		  memcpy (concat_name, tmp, tmp_len);
+		  concat_name[tmp_len] = '/';
+		  strcpy (concat_name + tmp_len + 1, wrapper);
+		}
+	      else
+		{
+		  concat_name =
+		    XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
+		  memcpy (concat_name, p, p_len);
+		  concat_name[p_len] = '/';
+		  strcpy (concat_name + p_len + 1, wrapper);
+		}
+	      if (check_executable (concat_name))
+		return concat_name;
+	      XFREE (concat_name);
+	    }
+	}
+      /* not found in PATH; assume curdir */
+    }
+  /* Relative path | not found in path: prepend cwd */
+  if (getcwd (tmp, LT_PATHMAX) == NULL)
+    lt_fatal ("getcwd failed");
+  tmp_len = strlen (tmp);
+  concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
+  memcpy (concat_name, tmp, tmp_len);
+  concat_name[tmp_len] = '/';
+  strcpy (concat_name + tmp_len + 1, wrapper);
+
+  if (check_executable (concat_name))
+    return concat_name;
+  XFREE (concat_name);
+  return NULL;
+}
+
+char *
+chase_symlinks (const char *pathspec)
+{
+#ifndef S_ISLNK
+  return xstrdup (pathspec);
+#else
+  char buf[LT_PATHMAX];
+  struct stat s;
+  char *tmp_pathspec = xstrdup (pathspec);
+  char *p;
+  int has_symlinks = 0;
+  while (strlen (tmp_pathspec) && !has_symlinks)
+    {
+      LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n",
+			      tmp_pathspec));
+      if (lstat (tmp_pathspec, &s) == 0)
+	{
+	  if (S_ISLNK (s.st_mode) != 0)
+	    {
+	      has_symlinks = 1;
+	      break;
+	    }
+
+	  /* search backwards for last DIR_SEPARATOR */
+	  p = tmp_pathspec + strlen (tmp_pathspec) - 1;
+	  while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
+	    p--;
+	  if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
+	    {
+	      /* no more DIR_SEPARATORS left */
+	      break;
+	    }
+	  *p = '\0';
+	}
+      else
+	{
+	  char *errstr = strerror (errno);
+	  lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr);
+	}
+    }
+  XFREE (tmp_pathspec);
+
+  if (!has_symlinks)
+    {
+      return xstrdup (pathspec);
+    }
+
+  tmp_pathspec = realpath (pathspec, buf);
+  if (tmp_pathspec == 0)
+    {
+      lt_fatal ("Could not follow symlinks for %s", pathspec);
+    }
+  return xstrdup (tmp_pathspec);
+#endif
+}
+
+char *
+strendzap (char *str, const char *pat)
+{
+  size_t len, patlen;
+
+  assert (str != NULL);
+  assert (pat != NULL);
+
+  len = strlen (str);
+  patlen = strlen (pat);
+
+  if (patlen <= len)
+    {
+      str += len - patlen;
+      if (strcmp (str, pat) == 0)
+	*str = '\0';
+    }
+  return str;
+}
+
+static void
+lt_error_core (int exit_status, const char *mode,
+	       const char *message, va_list ap)
+{
+  fprintf (stderr, "%s: %s: ", program_name, mode);
+  vfprintf (stderr, message, ap);
+  fprintf (stderr, ".\n");
+
+  if (exit_status >= 0)
+    exit (exit_status);
+}
+
+void
+lt_fatal (const char *message, ...)
+{
+  va_list ap;
+  va_start (ap, message);
+  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
+  va_end (ap);
+}
+
+void
+lt_setenv (const char *name, const char *value)
+{
+  LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n",
+                          (name ? name : "<NULL>"),
+                          (value ? value : "<NULL>")));
+  {
+#ifdef HAVE_SETENV
+    /* always make a copy, for consistency with !HAVE_SETENV */
+    char *str = xstrdup (value);
+    setenv (name, str, 1);
+#else
+    int len = strlen (name) + 1 + strlen (value) + 1;
+    char *str = XMALLOC (char, len);
+    sprintf (str, "%s=%s", name, value);
+    if (putenv (str) != EXIT_SUCCESS)
+      {
+        XFREE (str);
+      }
+#endif
+  }
+}
+
+char *
+lt_extend_str (const char *orig_value, const char *add, int to_end)
+{
+  char *new_value;
+  if (orig_value && *orig_value)
+    {
+      int orig_value_len = strlen (orig_value);
+      int add_len = strlen (add);
+      new_value = XMALLOC (char, add_len + orig_value_len + 1);
+      if (to_end)
+        {
+          strcpy (new_value, orig_value);
+          strcpy (new_value + orig_value_len, add);
+        }
+      else
+        {
+          strcpy (new_value, add);
+          strcpy (new_value + add_len, orig_value);
+        }
+    }
+  else
+    {
+      new_value = xstrdup (add);
+    }
+  return new_value;
+}
+
+int
+lt_split_name_value (const char *arg, char** name, char** value)
+{
+  const char *p;
+  int len;
+  if (!arg || !*arg)
+    return 1;
+
+  p = strchr (arg, (int)'=');
+
+  if (!p)
+    return 1;
+
+  *value = xstrdup (++p);
+
+  len = strlen (arg) - strlen (*value);
+  *name = XMALLOC (char, len);
+  strncpy (*name, arg, len-1);
+  (*name)[len - 1] = '\0';
+
+  return 0;
+}
+
+void
+lt_opt_process_env_set (const char *arg)
+{
+  char *name = NULL;
+  char *value = NULL;
+
+  if (lt_split_name_value (arg, &name, &value) != 0)
+    {
+      XFREE (name);
+      XFREE (value);
+      lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg);
+    }
+
+  lt_setenv (name, value);
+  XFREE (name);
+  XFREE (value);
+}
+
+void
+lt_opt_process_env_prepend (const char *arg)
+{
+  char *name = NULL;
+  char *value = NULL;
+  char *new_value = NULL;
+
+  if (lt_split_name_value (arg, &name, &value) != 0)
+    {
+      XFREE (name);
+      XFREE (value);
+      lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg);
+    }
+
+  new_value = lt_extend_str (getenv (name), value, 0);
+  lt_setenv (name, new_value);
+  XFREE (new_value);
+  XFREE (name);
+  XFREE (value);
+}
+
+void
+lt_opt_process_env_append (const char *arg)
+{
+  char *name = NULL;
+  char *value = NULL;
+  char *new_value = NULL;
+
+  if (lt_split_name_value (arg, &name, &value) != 0)
+    {
+      XFREE (name);
+      XFREE (value);
+      lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg);
+    }
+
+  new_value = lt_extend_str (getenv (name), value, 1);
+  lt_setenv (name, new_value);
+  XFREE (new_value);
+  XFREE (name);
+  XFREE (value);
+}
+
+void
+lt_update_exe_path (const char *name, const char *value)
+{
+  LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
+                          (name ? name : "<NULL>"),
+                          (value ? value : "<NULL>")));
+
+  if (name && *name && value && *value)
+    {
+      char *new_value = lt_extend_str (getenv (name), value, 0);
+      /* some systems can't cope with a ':'-terminated path #' */
+      int len = strlen (new_value);
+      while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
+        {
+          new_value[len-1] = '\0';
+        }
+      lt_setenv (name, new_value);
+      XFREE (new_value);
+    }
+}
+
+void
+lt_update_lib_path (const char *name, const char *value)
+{
+  LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
+                          (name ? name : "<NULL>"),
+                          (value ? value : "<NULL>")));
+
+  if (name && *name && value && *value)
+    {
+      char *new_value = lt_extend_str (getenv (name), value, 0);
+      lt_setenv (name, new_value);
+      XFREE (new_value);
+    }
+}
+
+
+EOF
+}
+# end: func_emit_cwrapperexe_src
+
+# func_mode_link arg...
+func_mode_link ()
+{
+    $opt_debug
+    case $host in
+    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+      # It is impossible to link a dll without this setting, and
+      # we shouldn't force the makefile maintainer to figure out
+      # which system we are compiling for in order to pass an extra
+      # flag for every libtool invocation.
+      # allow_undefined=no
+
+      # FIXME: Unfortunately, there are problems with the above when trying
+      # to make a dll which has undefined symbols, in which case not
+      # even a static library is built.  For now, we need to specify
+      # -no-undefined on the libtool link line when we can be certain
+      # that all symbols are satisfied, otherwise we get a static library.
+      allow_undefined=yes
+      ;;
+    *)
+      allow_undefined=yes
+      ;;
+    esac
+    libtool_args=$nonopt
+    base_compile="$nonopt $@"
+    compile_command=$nonopt
+    finalize_command=$nonopt
+
+    compile_rpath=
+    finalize_rpath=
+    compile_shlibpath=
+    finalize_shlibpath=
+    convenience=
+    old_convenience=
+    deplibs=
+    old_deplibs=
+    compiler_flags=
+    linker_flags=
+    dllsearchpath=
+    lib_search_path=`pwd`
+    inst_prefix_dir=
+    new_inherited_linker_flags=
+
+    avoid_version=no
+    dlfiles=
+    dlprefiles=
+    dlself=no
+    export_dynamic=no
+    export_symbols=
+    export_symbols_regex=
+    generated=
+    libobjs=
+    ltlibs=
+    module=no
+    no_install=no
+    objs=
+    non_pic_objects=
+    precious_files_regex=
+    prefer_static_libs=no
+    preload=no
+    prev=
+    prevarg=
+    release=
+    rpath=
+    xrpath=
+    perm_rpath=
+    temp_rpath=
+    thread_safe=no
+    vinfo=
+    vinfo_number=no
+    weak_libs=
+    single_module="${wl}-single_module"
+    func_infer_tag $base_compile
+
+    # We need to know -static, to get the right output filenames.
+    for arg
+    do
+      case $arg in
+      -shared)
+	test "$build_libtool_libs" != yes && \
+	  func_fatal_configuration "can not build a shared library"
+	build_old_libs=no
+	break
+	;;
+      -all-static | -static | -static-libtool-libs)
+	case $arg in
+	-all-static)
+	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
+	    func_warning "complete static linking is impossible in this configuration"
+	  fi
+	  if test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	  prefer_static_libs=yes
+	  ;;
+	-static)
+	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	  prefer_static_libs=built
+	  ;;
+	-static-libtool-libs)
+	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	  prefer_static_libs=yes
+	  ;;
+	esac
+	build_libtool_libs=no
+	build_old_libs=yes
+	break
+	;;
+      esac
+    done
+
+    # See if our shared archives depend on static archives.
+    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
+
+    # Go through the arguments, transforming them on the way.
+    while test "$#" -gt 0; do
+      arg="$1"
+      shift
+      func_quote_for_eval "$arg"
+      qarg=$func_quote_for_eval_unquoted_result
+      func_append libtool_args " $func_quote_for_eval_result"
+
+      # If the previous option needs an argument, assign it.
+      if test -n "$prev"; then
+	case $prev in
+	output)
+	  func_append compile_command " @OUTPUT@"
+	  func_append finalize_command " @OUTPUT@"
+	  ;;
+	esac
+
+	case $prev in
+	dlfiles|dlprefiles)
+	  if test "$preload" = no; then
+	    # Add the symbol object into the linking commands.
+	    func_append compile_command " @SYMFILE@"
+	    func_append finalize_command " @SYMFILE@"
+	    preload=yes
+	  fi
+	  case $arg in
+	  *.la | *.lo) ;;  # We handle these cases below.
+	  force)
+	    if test "$dlself" = no; then
+	      dlself=needless
+	      export_dynamic=yes
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  self)
+	    if test "$prev" = dlprefiles; then
+	      dlself=yes
+	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
+	      dlself=yes
+	    else
+	      dlself=needless
+	      export_dynamic=yes
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  *)
+	    if test "$prev" = dlfiles; then
+	      dlfiles="$dlfiles $arg"
+	    else
+	      dlprefiles="$dlprefiles $arg"
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  esac
+	  ;;
+	expsyms)
+	  export_symbols="$arg"
+	  test -f "$arg" \
+	    || func_fatal_error "symbol file \`$arg' does not exist"
+	  prev=
+	  continue
+	  ;;
+	expsyms_regex)
+	  export_symbols_regex="$arg"
+	  prev=
+	  continue
+	  ;;
+	framework)
+	  case $host in
+	    *-*-darwin*)
+	      case "$deplibs " in
+		*" $qarg.ltframework "*) ;;
+		*) deplibs="$deplibs $qarg.ltframework" # this is fixed later
+		   ;;
+	      esac
+	      ;;
+	  esac
+	  prev=
+	  continue
+	  ;;
+	inst_prefix)
+	  inst_prefix_dir="$arg"
+	  prev=
+	  continue
+	  ;;
+	objectlist)
+	  if test -f "$arg"; then
+	    save_arg=$arg
+	    moreargs=
+	    for fil in `cat "$save_arg"`
+	    do
+#	      moreargs="$moreargs $fil"
+	      arg=$fil
+	      # A libtool-controlled object.
+
+	      # Check to see that this really is a libtool object.
+	      if func_lalib_unsafe_p "$arg"; then
+		pic_object=
+		non_pic_object=
+
+		# Read the .lo file
+		func_source "$arg"
+
+		if test -z "$pic_object" ||
+		   test -z "$non_pic_object" ||
+		   test "$pic_object" = none &&
+		   test "$non_pic_object" = none; then
+		  func_fatal_error "cannot find name of object for \`$arg'"
+		fi
+
+		# Extract subdirectory from the argument.
+		func_dirname "$arg" "/" ""
+		xdir="$func_dirname_result"
+
+		if test "$pic_object" != none; then
+		  # Prepend the subdirectory the object is found in.
+		  pic_object="$xdir$pic_object"
+
+		  if test "$prev" = dlfiles; then
+		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+		      dlfiles="$dlfiles $pic_object"
+		      prev=
+		      continue
+		    else
+		      # If libtool objects are unsupported, then we need to preload.
+		      prev=dlprefiles
+		    fi
+		  fi
+
+		  # CHECK ME:  I think I busted this.  -Ossama
+		  if test "$prev" = dlprefiles; then
+		    # Preload the old-style object.
+		    dlprefiles="$dlprefiles $pic_object"
+		    prev=
+		  fi
+
+		  # A PIC object.
+		  func_append libobjs " $pic_object"
+		  arg="$pic_object"
+		fi
+
+		# Non-PIC object.
+		if test "$non_pic_object" != none; then
+		  # Prepend the subdirectory the object is found in.
+		  non_pic_object="$xdir$non_pic_object"
+
+		  # A standard non-PIC object
+		  func_append non_pic_objects " $non_pic_object"
+		  if test -z "$pic_object" || test "$pic_object" = none ; then
+		    arg="$non_pic_object"
+		  fi
+		else
+		  # If the PIC object exists, use it instead.
+		  # $xdir was prepended to $pic_object above.
+		  non_pic_object="$pic_object"
+		  func_append non_pic_objects " $non_pic_object"
+		fi
+	      else
+		# Only an error if not doing a dry-run.
+		if $opt_dry_run; then
+		  # Extract subdirectory from the argument.
+		  func_dirname "$arg" "/" ""
+		  xdir="$func_dirname_result"
+
+		  func_lo2o "$arg"
+		  pic_object=$xdir$objdir/$func_lo2o_result
+		  non_pic_object=$xdir$func_lo2o_result
+		  func_append libobjs " $pic_object"
+		  func_append non_pic_objects " $non_pic_object"
+	        else
+		  func_fatal_error "\`$arg' is not a valid libtool object"
+		fi
+	      fi
+	    done
+	  else
+	    func_fatal_error "link input file \`$arg' does not exist"
+	  fi
+	  arg=$save_arg
+	  prev=
+	  continue
+	  ;;
+	precious_regex)
+	  precious_files_regex="$arg"
+	  prev=
+	  continue
+	  ;;
+	release)
+	  release="-$arg"
+	  prev=
+	  continue
+	  ;;
+	rpath | xrpath)
+	  # We need an absolute path.
+	  case $arg in
+	  [\\/]* | [A-Za-z]:[\\/]*) ;;
+	  *)
+	    func_fatal_error "only absolute run-paths are allowed"
+	    ;;
+	  esac
+	  if test "$prev" = rpath; then
+	    case "$rpath " in
+	    *" $arg "*) ;;
+	    *) rpath="$rpath $arg" ;;
+	    esac
+	  else
+	    case "$xrpath " in
+	    *" $arg "*) ;;
+	    *) xrpath="$xrpath $arg" ;;
+	    esac
+	  fi
+	  prev=
+	  continue
+	  ;;
+	shrext)
+	  shrext_cmds="$arg"
+	  prev=
+	  continue
+	  ;;
+	weak)
+	  weak_libs="$weak_libs $arg"
+	  prev=
+	  continue
+	  ;;
+	xcclinker)
+	  linker_flags="$linker_flags $qarg"
+	  compiler_flags="$compiler_flags $qarg"
+	  prev=
+	  func_append compile_command " $qarg"
+	  func_append finalize_command " $qarg"
+	  continue
+	  ;;
+	xcompiler)
+	  compiler_flags="$compiler_flags $qarg"
+	  prev=
+	  func_append compile_command " $qarg"
+	  func_append finalize_command " $qarg"
+	  continue
+	  ;;
+	xlinker)
+	  linker_flags="$linker_flags $qarg"
+	  compiler_flags="$compiler_flags $wl$qarg"
+	  prev=
+	  func_append compile_command " $wl$qarg"
+	  func_append finalize_command " $wl$qarg"
+	  continue
+	  ;;
+	*)
+	  eval "$prev=\"\$arg\""
+	  prev=
+	  continue
+	  ;;
+	esac
+      fi # test -n "$prev"
+
+      prevarg="$arg"
+
+      case $arg in
+      -all-static)
+	if test -n "$link_static_flag"; then
+	  # See comment for -static flag below, for more details.
+	  func_append compile_command " $link_static_flag"
+	  func_append finalize_command " $link_static_flag"
+	fi
+	continue
+	;;
+
+      -allow-undefined)
+	# FIXME: remove this flag sometime in the future.
+	func_fatal_error "\`-allow-undefined' must not be used because it is the default"
+	;;
+
+      -avoid-version)
+	avoid_version=yes
+	continue
+	;;
+
+      -dlopen)
+	prev=dlfiles
+	continue
+	;;
+
+      -dlpreopen)
+	prev=dlprefiles
+	continue
+	;;
+
+      -export-dynamic)
+	export_dynamic=yes
+	continue
+	;;
+
+      -export-symbols | -export-symbols-regex)
+	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+	  func_fatal_error "more than one -exported-symbols argument is not allowed"
+	fi
+	if test "X$arg" = "X-export-symbols"; then
+	  prev=expsyms
+	else
+	  prev=expsyms_regex
+	fi
+	continue
+	;;
+
+      -framework)
+	prev=framework
+	continue
+	;;
+
+      -inst-prefix-dir)
+	prev=inst_prefix
+	continue
+	;;
+
+      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
+      # so, if we see these flags be careful not to treat them like -L
+      -L[A-Z][A-Z]*:*)
+	case $with_gcc/$host in
+	no/*-*-irix* | /*-*-irix*)
+	  func_append compile_command " $arg"
+	  func_append finalize_command " $arg"
+	  ;;
+	esac
+	continue
+	;;
+
+      -L*)
+	func_stripname '-L' '' "$arg"
+	dir=$func_stripname_result
+	if test -z "$dir"; then
+	  if test "$#" -gt 0; then
+	    func_fatal_error "require no space between \`-L' and \`$1'"
+	  else
+	    func_fatal_error "need path for \`-L' option"
+	  fi
+	fi
+	# We need an absolute path.
+	case $dir in
+	[\\/]* | [A-Za-z]:[\\/]*) ;;
+	*)
+	  absdir=`cd "$dir" && pwd`
+	  test -z "$absdir" && \
+	    func_fatal_error "cannot determine absolute directory name of \`$dir'"
+	  dir="$absdir"
+	  ;;
+	esac
+	case "$deplibs " in
+	*" -L$dir "*) ;;
+	*)
+	  deplibs="$deplibs -L$dir"
+	  lib_search_path="$lib_search_path $dir"
+	  ;;
+	esac
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+	  testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`
+	  case :$dllsearchpath: in
+	  *":$dir:"*) ;;
+	  ::) dllsearchpath=$dir;;
+	  *) dllsearchpath="$dllsearchpath:$dir";;
+	  esac
+	  case :$dllsearchpath: in
+	  *":$testbindir:"*) ;;
+	  ::) dllsearchpath=$testbindir;;
+	  *) dllsearchpath="$dllsearchpath:$testbindir";;
+	  esac
+	  ;;
+	esac
+	continue
+	;;
+
+      -l*)
+	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
+	  case $host in
+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*)
+	    # These systems don't actually have a C or math library (as such)
+	    continue
+	    ;;
+	  *-*-os2*)
+	    # These systems don't actually have a C library (as such)
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+	    # Do not include libc due to us having libc/libc_r.
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  *-*-rhapsody* | *-*-darwin1.[012])
+	    # Rhapsody C and math libraries are in the System framework
+	    deplibs="$deplibs System.ltframework"
+	    continue
+	    ;;
+	  *-*-sco3.2v5* | *-*-sco5v6*)
+	    # Causes problems with __ctype
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+	    # Compiler inserts libc in the correct place for threads to work
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  esac
+	elif test "X$arg" = "X-lc_r"; then
+	 case $host in
+	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+	   # Do not include libc_r directly, use -pthread flag.
+	   continue
+	   ;;
+	 esac
+	fi
+	deplibs="$deplibs $arg"
+	continue
+	;;
+
+      -module)
+	module=yes
+	continue
+	;;
+
+      # Tru64 UNIX uses -model [arg] to determine the layout of C++
+      # classes, name mangling, and exception handling.
+      # Darwin uses the -arch flag to determine output architecture.
+      -model|-arch|-isysroot)
+	compiler_flags="$compiler_flags $arg"
+	func_append compile_command " $arg"
+	func_append finalize_command " $arg"
+	prev=xcompiler
+	continue
+	;;
+
+      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
+	compiler_flags="$compiler_flags $arg"
+	func_append compile_command " $arg"
+	func_append finalize_command " $arg"
+	case "$new_inherited_linker_flags " in
+	    *" $arg "*) ;;
+	    * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
+	esac
+	continue
+	;;
+
+      -multi_module)
+	single_module="${wl}-multi_module"
+	continue
+	;;
+
+      -no-fast-install)
+	fast_install=no
+	continue
+	;;
+
+      -no-install)
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
+	  # The PATH hackery in wrapper scripts is required on Windows
+	  # and Darwin in order for the loader to find any dlls it needs.
+	  func_warning "\`-no-install' is ignored for $host"
+	  func_warning "assuming \`-no-fast-install' instead"
+	  fast_install=no
+	  ;;
+	*) no_install=yes ;;
+	esac
+	continue
+	;;
+
+      -no-undefined)
+	allow_undefined=no
+	continue
+	;;
+
+      -objectlist)
+	prev=objectlist
+	continue
+	;;
+
+      -o) prev=output ;;
+
+      -precious-files-regex)
+	prev=precious_regex
+	continue
+	;;
+
+      -release)
+	prev=release
+	continue
+	;;
+
+      -rpath)
+	prev=rpath
+	continue
+	;;
+
+      -R)
+	prev=xrpath
+	continue
+	;;
+
+      -R*)
+	func_stripname '-R' '' "$arg"
+	dir=$func_stripname_result
+	# We need an absolute path.
+	case $dir in
+	[\\/]* | [A-Za-z]:[\\/]*) ;;
+	*)
+	  func_fatal_error "only absolute run-paths are allowed"
+	  ;;
+	esac
+	case "$xrpath " in
+	*" $dir "*) ;;
+	*) xrpath="$xrpath $dir" ;;
+	esac
+	continue
+	;;
+
+      -shared)
+	# The effects of -shared are defined in a previous loop.
+	continue
+	;;
+
+      -shrext)
+	prev=shrext
+	continue
+	;;
+
+      -static | -static-libtool-libs)
+	# The effects of -static are defined in a previous loop.
+	# We used to do the same as -all-static on platforms that
+	# didn't have a PIC flag, but the assumption that the effects
+	# would be equivalent was wrong.  It would break on at least
+	# Digital Unix and AIX.
+	continue
+	;;
+
+      -thread-safe)
+	thread_safe=yes
+	continue
+	;;
+
+      -version-info)
+	prev=vinfo
+	continue
+	;;
+
+      -version-number)
+	prev=vinfo
+	vinfo_number=yes
+	continue
+	;;
+
+      -weak)
+        prev=weak
+	continue
+	;;
+
+      -Wc,*)
+	func_stripname '-Wc,' '' "$arg"
+	args=$func_stripname_result
+	arg=
+	save_ifs="$IFS"; IFS=','
+	for flag in $args; do
+	  IFS="$save_ifs"
+          func_quote_for_eval "$flag"
+	  arg="$arg $wl$func_quote_for_eval_result"
+	  compiler_flags="$compiler_flags $func_quote_for_eval_result"
+	done
+	IFS="$save_ifs"
+	func_stripname ' ' '' "$arg"
+	arg=$func_stripname_result
+	;;
+
+      -Wl,*)
+	func_stripname '-Wl,' '' "$arg"
+	args=$func_stripname_result
+	arg=
+	save_ifs="$IFS"; IFS=','
+	for flag in $args; do
+	  IFS="$save_ifs"
+          func_quote_for_eval "$flag"
+	  arg="$arg $wl$func_quote_for_eval_result"
+	  compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"
+	  linker_flags="$linker_flags $func_quote_for_eval_result"
+	done
+	IFS="$save_ifs"
+	func_stripname ' ' '' "$arg"
+	arg=$func_stripname_result
+	;;
+
+      -Xcompiler)
+	prev=xcompiler
+	continue
+	;;
+
+      -Xlinker)
+	prev=xlinker
+	continue
+	;;
+
+      -XCClinker)
+	prev=xcclinker
+	continue
+	;;
+
+      # -msg_* for osf cc
+      -msg_*)
+	func_quote_for_eval "$arg"
+	arg="$func_quote_for_eval_result"
+	;;
+
+      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
+      # -r[0-9][0-9]* specifies the processor on the SGI compiler
+      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
+      # +DA*, +DD* enable 64-bit mode on the HP compiler
+      # -q* pass through compiler args for the IBM compiler
+      # -m*, -t[45]*, -txscale* pass through architecture-specific
+      # compiler args for GCC
+      # -F/path gives path to uninstalled frameworks, gcc on darwin
+      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
+      # @file GCC response files
+      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
+      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
+        func_quote_for_eval "$arg"
+	arg="$func_quote_for_eval_result"
+        func_append compile_command " $arg"
+        func_append finalize_command " $arg"
+        compiler_flags="$compiler_flags $arg"
+        continue
+        ;;
+
+      # Some other compiler flag.
+      -* | +*)
+        func_quote_for_eval "$arg"
+	arg="$func_quote_for_eval_result"
+	;;
+
+      *.$objext)
+	# A standard object.
+	objs="$objs $arg"
+	;;
+
+      *.lo)
+	# A libtool-controlled object.
+
+	# Check to see that this really is a libtool object.
+	if func_lalib_unsafe_p "$arg"; then
+	  pic_object=
+	  non_pic_object=
+
+	  # Read the .lo file
+	  func_source "$arg"
+
+	  if test -z "$pic_object" ||
+	     test -z "$non_pic_object" ||
+	     test "$pic_object" = none &&
+	     test "$non_pic_object" = none; then
+	    func_fatal_error "cannot find name of object for \`$arg'"
+	  fi
+
+	  # Extract subdirectory from the argument.
+	  func_dirname "$arg" "/" ""
+	  xdir="$func_dirname_result"
+
+	  if test "$pic_object" != none; then
+	    # Prepend the subdirectory the object is found in.
+	    pic_object="$xdir$pic_object"
+
+	    if test "$prev" = dlfiles; then
+	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+		dlfiles="$dlfiles $pic_object"
+		prev=
+		continue
+	      else
+		# If libtool objects are unsupported, then we need to preload.
+		prev=dlprefiles
+	      fi
+	    fi
+
+	    # CHECK ME:  I think I busted this.  -Ossama
+	    if test "$prev" = dlprefiles; then
+	      # Preload the old-style object.
+	      dlprefiles="$dlprefiles $pic_object"
+	      prev=
+	    fi
+
+	    # A PIC object.
+	    func_append libobjs " $pic_object"
+	    arg="$pic_object"
+	  fi
+
+	  # Non-PIC object.
+	  if test "$non_pic_object" != none; then
+	    # Prepend the subdirectory the object is found in.
+	    non_pic_object="$xdir$non_pic_object"
+
+	    # A standard non-PIC object
+	    func_append non_pic_objects " $non_pic_object"
+	    if test -z "$pic_object" || test "$pic_object" = none ; then
+	      arg="$non_pic_object"
+	    fi
+	  else
+	    # If the PIC object exists, use it instead.
+	    # $xdir was prepended to $pic_object above.
+	    non_pic_object="$pic_object"
+	    func_append non_pic_objects " $non_pic_object"
+	  fi
+	else
+	  # Only an error if not doing a dry-run.
+	  if $opt_dry_run; then
+	    # Extract subdirectory from the argument.
+	    func_dirname "$arg" "/" ""
+	    xdir="$func_dirname_result"
+
+	    func_lo2o "$arg"
+	    pic_object=$xdir$objdir/$func_lo2o_result
+	    non_pic_object=$xdir$func_lo2o_result
+	    func_append libobjs " $pic_object"
+	    func_append non_pic_objects " $non_pic_object"
+	  else
+	    func_fatal_error "\`$arg' is not a valid libtool object"
+	  fi
+	fi
+	;;
+
+      *.$libext)
+	# An archive.
+	deplibs="$deplibs $arg"
+	old_deplibs="$old_deplibs $arg"
+	continue
+	;;
+
+      *.la)
+	# A libtool-controlled library.
+
+	if test "$prev" = dlfiles; then
+	  # This library was specified with -dlopen.
+	  dlfiles="$dlfiles $arg"
+	  prev=
+	elif test "$prev" = dlprefiles; then
+	  # The library was specified with -dlpreopen.
+	  dlprefiles="$dlprefiles $arg"
+	  prev=
+	else
+	  deplibs="$deplibs $arg"
+	fi
+	continue
+	;;
+
+      # Some other compiler argument.
+      *)
+	# Unknown arguments in both finalize_command and compile_command need
+	# to be aesthetically quoted because they are evaled later.
+	func_quote_for_eval "$arg"
+	arg="$func_quote_for_eval_result"
+	;;
+      esac # arg
+
+      # Now actually substitute the argument into the commands.
+      if test -n "$arg"; then
+	func_append compile_command " $arg"
+	func_append finalize_command " $arg"
+      fi
+    done # argument parsing loop
+
+    test -n "$prev" && \
+      func_fatal_help "the \`$prevarg' option requires an argument"
+
+    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
+      eval arg=\"$export_dynamic_flag_spec\"
+      func_append compile_command " $arg"
+      func_append finalize_command " $arg"
+    fi
+
+    oldlibs=
+    # calculate the name of the file, without its directory
+    func_basename "$output"
+    outputname="$func_basename_result"
+    libobjs_save="$libobjs"
+
+    if test -n "$shlibpath_var"; then
+      # get the directories listed in $shlibpath_var
+      eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
+    else
+      shlib_search_path=
+    fi
+    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
+    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
+
+    func_dirname "$output" "/" ""
+    output_objdir="$func_dirname_result$objdir"
+    # Create the object directory.
+    func_mkdir_p "$output_objdir"
+
+    # Determine the type of output
+    case $output in
+    "")
+      func_fatal_help "you must specify an output file"
+      ;;
+    *.$libext) linkmode=oldlib ;;
+    *.lo | *.$objext) linkmode=obj ;;
+    *.la) linkmode=lib ;;
+    *) linkmode=prog ;; # Anything else should be a program.
+    esac
+
+    specialdeplibs=
+
+    libs=
+    # Find all interdependent deplibs by searching for libraries
+    # that are linked more than once (e.g. -la -lb -la)
+    for deplib in $deplibs; do
+      if $opt_duplicate_deps ; then
+	case "$libs " in
+	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	esac
+      fi
+      libs="$libs $deplib"
+    done
+
+    if test "$linkmode" = lib; then
+      libs="$predeps $libs $compiler_lib_search_path $postdeps"
+
+      # Compute libraries that are listed more than once in $predeps
+      # $postdeps and mark them as special (i.e., whose duplicates are
+      # not to be eliminated).
+      pre_post_deps=
+      if $opt_duplicate_compiler_generated_deps; then
+	for pre_post_dep in $predeps $postdeps; do
+	  case "$pre_post_deps " in
+	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
+	  esac
+	  pre_post_deps="$pre_post_deps $pre_post_dep"
+	done
+      fi
+      pre_post_deps=
+    fi
+
+    deplibs=
+    newdependency_libs=
+    newlib_search_path=
+    need_relink=no # whether we're linking any uninstalled libtool libraries
+    notinst_deplibs= # not-installed libtool libraries
+    notinst_path= # paths that contain not-installed libtool libraries
+
+    case $linkmode in
+    lib)
+	passes="conv dlpreopen link"
+	for file in $dlfiles $dlprefiles; do
+	  case $file in
+	  *.la) ;;
+	  *)
+	    func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
+	    ;;
+	  esac
+	done
+	;;
+    prog)
+	compile_deplibs=
+	finalize_deplibs=
+	alldeplibs=no
+	newdlfiles=
+	newdlprefiles=
+	passes="conv scan dlopen dlpreopen link"
+	;;
+    *)  passes="conv"
+	;;
+    esac
+
+    for pass in $passes; do
+      # The preopen pass in lib mode reverses $deplibs; put it back here
+      # so that -L comes before libs that need it for instance...
+      if test "$linkmode,$pass" = "lib,link"; then
+	## FIXME: Find the place where the list is rebuilt in the wrong
+	##        order, and fix it there properly
+        tmp_deplibs=
+	for deplib in $deplibs; do
+	  tmp_deplibs="$deplib $tmp_deplibs"
+	done
+	deplibs="$tmp_deplibs"
+      fi
+
+      if test "$linkmode,$pass" = "lib,link" ||
+	 test "$linkmode,$pass" = "prog,scan"; then
+	libs="$deplibs"
+	deplibs=
+      fi
+      if test "$linkmode" = prog; then
+	case $pass in
+	dlopen) libs="$dlfiles" ;;
+	dlpreopen) libs="$dlprefiles" ;;
+	link)
+	  libs="$deplibs %DEPLIBS%"
+	  test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
+	  ;;
+	esac
+      fi
+      if test "$linkmode,$pass" = "lib,dlpreopen"; then
+	# Collect and forward deplibs of preopened libtool libs
+	for lib in $dlprefiles; do
+	  # Ignore non-libtool-libs
+	  dependency_libs=
+	  case $lib in
+	  *.la)	func_source "$lib" ;;
+	  esac
+
+	  # Collect preopened libtool deplibs, except any this library
+	  # has declared as weak libs
+	  for deplib in $dependency_libs; do
+            deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"`
+	    case " $weak_libs " in
+	    *" $deplib_base "*) ;;
+	    *) deplibs="$deplibs $deplib" ;;
+	    esac
+	  done
+	done
+	libs="$dlprefiles"
+      fi
+      if test "$pass" = dlopen; then
+	# Collect dlpreopened libraries
+	save_deplibs="$deplibs"
+	deplibs=
+      fi
+
+      for deplib in $libs; do
+	lib=
+	found=no
+	case $deplib in
+	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
+	  if test "$linkmode,$pass" = "prog,link"; then
+	    compile_deplibs="$deplib $compile_deplibs"
+	    finalize_deplibs="$deplib $finalize_deplibs"
+	  else
+	    compiler_flags="$compiler_flags $deplib"
+	    if test "$linkmode" = lib ; then
+		case "$new_inherited_linker_flags " in
+		    *" $deplib "*) ;;
+		    * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
+		esac
+	    fi
+	  fi
+	  continue
+	  ;;
+	-l*)
+	  if test "$linkmode" != lib && test "$linkmode" != prog; then
+	    func_warning "\`-l' is ignored for archives/objects"
+	    continue
+	  fi
+	  func_stripname '-l' '' "$deplib"
+	  name=$func_stripname_result
+	  if test "$linkmode" = lib; then
+	    searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
+	  else
+	    searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
+	  fi
+	  for searchdir in $searchdirs; do
+	    for search_ext in .la $std_shrext .so .a; do
+	      # Search the libtool library
+	      lib="$searchdir/lib${name}${search_ext}"
+	      if test -f "$lib"; then
+		if test "$search_ext" = ".la"; then
+		  found=yes
+		else
+		  found=no
+		fi
+		break 2
+	      fi
+	    done
+	  done
+	  if test "$found" != yes; then
+	    # deplib doesn't seem to be a libtool library
+	    if test "$linkmode,$pass" = "prog,link"; then
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    else
+	      deplibs="$deplib $deplibs"
+	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+	    fi
+	    continue
+	  else # deplib is a libtool library
+	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
+	    # We need to do some special things here, and not later.
+	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+	      case " $predeps $postdeps " in
+	      *" $deplib "*)
+		if func_lalib_p "$lib"; then
+		  library_names=
+		  old_library=
+		  func_source "$lib"
+		  for l in $old_library $library_names; do
+		    ll="$l"
+		  done
+		  if test "X$ll" = "X$old_library" ; then # only static version available
+		    found=no
+		    func_dirname "$lib" "" "."
+		    ladir="$func_dirname_result"
+		    lib=$ladir/$old_library
+		    if test "$linkmode,$pass" = "prog,link"; then
+		      compile_deplibs="$deplib $compile_deplibs"
+		      finalize_deplibs="$deplib $finalize_deplibs"
+		    else
+		      deplibs="$deplib $deplibs"
+		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+		    fi
+		    continue
+		  fi
+		fi
+		;;
+	      *) ;;
+	      esac
+	    fi
+	  fi
+	  ;; # -l
+	*.ltframework)
+	  if test "$linkmode,$pass" = "prog,link"; then
+	    compile_deplibs="$deplib $compile_deplibs"
+	    finalize_deplibs="$deplib $finalize_deplibs"
+	  else
+	    deplibs="$deplib $deplibs"
+	    if test "$linkmode" = lib ; then
+		case "$new_inherited_linker_flags " in
+		    *" $deplib "*) ;;
+		    * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
+		esac
+	    fi
+	  fi
+	  continue
+	  ;;
+	-L*)
+	  case $linkmode in
+	  lib)
+	    deplibs="$deplib $deplibs"
+	    test "$pass" = conv && continue
+	    newdependency_libs="$deplib $newdependency_libs"
+	    func_stripname '-L' '' "$deplib"
+	    newlib_search_path="$newlib_search_path $func_stripname_result"
+	    ;;
+	  prog)
+	    if test "$pass" = conv; then
+	      deplibs="$deplib $deplibs"
+	      continue
+	    fi
+	    if test "$pass" = scan; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    fi
+	    func_stripname '-L' '' "$deplib"
+	    newlib_search_path="$newlib_search_path $func_stripname_result"
+	    ;;
+	  *)
+	    func_warning "\`-L' is ignored for archives/objects"
+	    ;;
+	  esac # linkmode
+	  continue
+	  ;; # -L
+	-R*)
+	  if test "$pass" = link; then
+	    func_stripname '-R' '' "$deplib"
+	    dir=$func_stripname_result
+	    # Make sure the xrpath contains only unique directories.
+	    case "$xrpath " in
+	    *" $dir "*) ;;
+	    *) xrpath="$xrpath $dir" ;;
+	    esac
+	  fi
+	  deplibs="$deplib $deplibs"
+	  continue
+	  ;;
+	*.la) lib="$deplib" ;;
+	*.$libext)
+	  if test "$pass" = conv; then
+	    deplibs="$deplib $deplibs"
+	    continue
+	  fi
+	  case $linkmode in
+	  lib)
+	    # Linking convenience modules into shared libraries is allowed,
+	    # but linking other static libraries is non-portable.
+	    case " $dlpreconveniencelibs " in
+	    *" $deplib "*) ;;
+	    *)
+	      valid_a_lib=no
+	      case $deplibs_check_method in
+		match_pattern*)
+		  set dummy $deplibs_check_method; shift
+		  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+		  if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \
+		    | $EGREP "$match_pattern_regex" > /dev/null; then
+		    valid_a_lib=yes
+		  fi
+		;;
+		pass_all)
+		  valid_a_lib=yes
+		;;
+	      esac
+	      if test "$valid_a_lib" != yes; then
+		$ECHO
+		$ECHO "*** Warning: Trying to link with static lib archive $deplib."
+		$ECHO "*** I have the capability to make that library automatically link in when"
+		$ECHO "*** you link to this library.  But I can only do this if you have a"
+		$ECHO "*** shared version of the library, which you do not appear to have"
+		$ECHO "*** because the file extensions .$libext of this argument makes me believe"
+		$ECHO "*** that it is just a static archive that I should not use here."
+	      else
+		$ECHO
+		$ECHO "*** Warning: Linking the shared library $output against the"
+		$ECHO "*** static library $deplib is not portable!"
+		deplibs="$deplib $deplibs"
+	      fi
+	      ;;
+	    esac
+	    continue
+	    ;;
+	  prog)
+	    if test "$pass" != link; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    fi
+	    continue
+	    ;;
+	  esac # linkmode
+	  ;; # *.$libext
+	*.lo | *.$objext)
+	  if test "$pass" = conv; then
+	    deplibs="$deplib $deplibs"
+	  elif test "$linkmode" = prog; then
+	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
+	      # If there is no dlopen support or we're linking statically,
+	      # we need to preload.
+	      newdlprefiles="$newdlprefiles $deplib"
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    else
+	      newdlfiles="$newdlfiles $deplib"
+	    fi
+	  fi
+	  continue
+	  ;;
+	%DEPLIBS%)
+	  alldeplibs=yes
+	  continue
+	  ;;
+	esac # case $deplib
+
+	if test "$found" = yes || test -f "$lib"; then :
+	else
+	  func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
+	fi
+
+	# Check to see that this really is a libtool archive.
+	func_lalib_unsafe_p "$lib" \
+	  || func_fatal_error "\`$lib' is not a valid libtool archive"
+
+	func_dirname "$lib" "" "."
+	ladir="$func_dirname_result"
+
+	dlname=
+	dlopen=
+	dlpreopen=
+	libdir=
+	library_names=
+	old_library=
+	inherited_linker_flags=
+	# If the library was installed with an old release of libtool,
+	# it will not redefine variables installed, or shouldnotlink
+	installed=yes
+	shouldnotlink=no
+	avoidtemprpath=
+
+
+	# Read the .la file
+	func_source "$lib"
+
+	# Convert "-framework foo" to "foo.ltframework"
+	if test -n "$inherited_linker_flags"; then
+	  tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
+	  for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
+	    case " $new_inherited_linker_flags " in
+	      *" $tmp_inherited_linker_flag "*) ;;
+	      *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
+	    esac
+	  done
+	fi
+	dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	if test "$linkmode,$pass" = "lib,link" ||
+	   test "$linkmode,$pass" = "prog,scan" ||
+	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
+	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
+	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
+	fi
+
+	if test "$pass" = conv; then
+	  # Only check for convenience libraries
+	  deplibs="$lib $deplibs"
+	  if test -z "$libdir"; then
+	    if test -z "$old_library"; then
+	      func_fatal_error "cannot find name of link library for \`$lib'"
+	    fi
+	    # It is a libtool convenience library, so add in its objects.
+	    convenience="$convenience $ladir/$objdir/$old_library"
+	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
+	    tmp_libs=
+	    for deplib in $dependency_libs; do
+	      deplibs="$deplib $deplibs"
+	      if $opt_duplicate_deps ; then
+		case "$tmp_libs " in
+		*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+		esac
+	      fi
+	      tmp_libs="$tmp_libs $deplib"
+	    done
+	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
+	    func_fatal_error "\`$lib' is not a convenience library"
+	  fi
+	  continue
+	fi # $pass = conv
+
+
+	# Get the name of the library we link against.
+	linklib=
+	for l in $old_library $library_names; do
+	  linklib="$l"
+	done
+	if test -z "$linklib"; then
+	  func_fatal_error "cannot find name of link library for \`$lib'"
+	fi
+
+	# This library was specified with -dlopen.
+	if test "$pass" = dlopen; then
+	  if test -z "$libdir"; then
+	    func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
+	  fi
+	  if test -z "$dlname" ||
+	     test "$dlopen_support" != yes ||
+	     test "$build_libtool_libs" = no; then
+	    # If there is no dlname, no dlopen support or we're linking
+	    # statically, we need to preload.  We also need to preload any
+	    # dependent libraries so libltdl's deplib preloader doesn't
+	    # bomb out in the load deplibs phase.
+	    dlprefiles="$dlprefiles $lib $dependency_libs"
+	  else
+	    newdlfiles="$newdlfiles $lib"
+	  fi
+	  continue
+	fi # $pass = dlopen
+
+	# We need an absolute path.
+	case $ladir in
+	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
+	*)
+	  abs_ladir=`cd "$ladir" && pwd`
+	  if test -z "$abs_ladir"; then
+	    func_warning "cannot determine absolute directory name of \`$ladir'"
+	    func_warning "passing it literally to the linker, although it might fail"
+	    abs_ladir="$ladir"
+	  fi
+	  ;;
+	esac
+	func_basename "$lib"
+	laname="$func_basename_result"
+
+	# Find the relevant object directory and library name.
+	if test "X$installed" = Xyes; then
+	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+	    func_warning "library \`$lib' was moved."
+	    dir="$ladir"
+	    absdir="$abs_ladir"
+	    libdir="$abs_ladir"
+	  else
+	    dir="$libdir"
+	    absdir="$libdir"
+	  fi
+	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
+	else
+	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+	    dir="$ladir"
+	    absdir="$abs_ladir"
+	    # Remove this search path later
+	    notinst_path="$notinst_path $abs_ladir"
+	  else
+	    dir="$ladir/$objdir"
+	    absdir="$abs_ladir/$objdir"
+	    # Remove this search path later
+	    notinst_path="$notinst_path $abs_ladir"
+	  fi
+	fi # $installed = yes
+	func_stripname 'lib' '.la' "$laname"
+	name=$func_stripname_result
+
+	# This library was specified with -dlpreopen.
+	if test "$pass" = dlpreopen; then
+	  if test -z "$libdir" && test "$linkmode" = prog; then
+	    func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
+	  fi
+	  # Prefer using a static library (so that no silly _DYNAMIC symbols
+	  # are required to link).
+	  if test -n "$old_library"; then
+	    newdlprefiles="$newdlprefiles $dir/$old_library"
+	    # Keep a list of preopened convenience libraries to check
+	    # that they are being used correctly in the link pass.
+	    test -z "$libdir" && \
+		dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
+	  # Otherwise, use the dlname, so that lt_dlopen finds it.
+	  elif test -n "$dlname"; then
+	    newdlprefiles="$newdlprefiles $dir/$dlname"
+	  else
+	    newdlprefiles="$newdlprefiles $dir/$linklib"
+	  fi
+	fi # $pass = dlpreopen
+
+	if test -z "$libdir"; then
+	  # Link the convenience library
+	  if test "$linkmode" = lib; then
+	    deplibs="$dir/$old_library $deplibs"
+	  elif test "$linkmode,$pass" = "prog,link"; then
+	    compile_deplibs="$dir/$old_library $compile_deplibs"
+	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
+	  else
+	    deplibs="$lib $deplibs" # used for prog,scan pass
+	  fi
+	  continue
+	fi
+
+
+	if test "$linkmode" = prog && test "$pass" != link; then
+	  newlib_search_path="$newlib_search_path $ladir"
+	  deplibs="$lib $deplibs"
+
+	  linkalldeplibs=no
+	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
+	     test "$build_libtool_libs" = no; then
+	    linkalldeplibs=yes
+	  fi
+
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    case $deplib in
+	    -L*) func_stripname '-L' '' "$deplib"
+	         newlib_search_path="$newlib_search_path $func_stripname_result"
+		 ;;
+	    esac
+	    # Need to link against all dependency_libs?
+	    if test "$linkalldeplibs" = yes; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      # Need to hardcode shared library paths
+	      # or/and link against static libraries
+	      newdependency_libs="$deplib $newdependency_libs"
+	    fi
+	    if $opt_duplicate_deps ; then
+	      case "$tmp_libs " in
+	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	      esac
+	    fi
+	    tmp_libs="$tmp_libs $deplib"
+	  done # for deplib
+	  continue
+	fi # $linkmode = prog...
+
+	if test "$linkmode,$pass" = "prog,link"; then
+	  if test -n "$library_names" &&
+	     { { test "$prefer_static_libs" = no ||
+	         test "$prefer_static_libs,$installed" = "built,yes"; } ||
+	       test -z "$old_library"; }; then
+	    # We need to hardcode the library path
+	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
+	      # Make sure the rpath contains only unique directories.
+	      case "$temp_rpath:" in
+	      *"$absdir:"*) ;;
+	      *) temp_rpath="$temp_rpath$absdir:" ;;
+	      esac
+	    fi
+
+	    # Hardcode the library path.
+	    # Skip directories that are in the system default run-time
+	    # search path.
+	    case " $sys_lib_dlsearch_path " in
+	    *" $absdir "*) ;;
+	    *)
+	      case "$compile_rpath " in
+	      *" $absdir "*) ;;
+	      *) compile_rpath="$compile_rpath $absdir"
+	      esac
+	      ;;
+	    esac
+	    case " $sys_lib_dlsearch_path " in
+	    *" $libdir "*) ;;
+	    *)
+	      case "$finalize_rpath " in
+	      *" $libdir "*) ;;
+	      *) finalize_rpath="$finalize_rpath $libdir"
+	      esac
+	      ;;
+	    esac
+	  fi # $linkmode,$pass = prog,link...
+
+	  if test "$alldeplibs" = yes &&
+	     { test "$deplibs_check_method" = pass_all ||
+	       { test "$build_libtool_libs" = yes &&
+		 test -n "$library_names"; }; }; then
+	    # We only need to search for static libraries
+	    continue
+	  fi
+	fi
+
+	link_static=no # Whether the deplib will be linked statically
+	use_static_libs=$prefer_static_libs
+	if test "$use_static_libs" = built && test "$installed" = yes; then
+	  use_static_libs=no
+	fi
+	if test -n "$library_names" &&
+	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
+	  case $host in
+	  *cygwin* | *mingw* | *cegcc*)
+	      # No point in relinking DLLs because paths are not encoded
+	      notinst_deplibs="$notinst_deplibs $lib"
+	      need_relink=no
+	    ;;
+	  *)
+	    if test "$installed" = no; then
+	      notinst_deplibs="$notinst_deplibs $lib"
+	      need_relink=yes
+	    fi
+	    ;;
+	  esac
+	  # This is a shared library
+
+	  # Warn about portability, can't link against -module's on some
+	  # systems (darwin).  Don't bleat about dlopened modules though!
+	  dlopenmodule=""
+	  for dlpremoduletest in $dlprefiles; do
+	    if test "X$dlpremoduletest" = "X$lib"; then
+	      dlopenmodule="$dlpremoduletest"
+	      break
+	    fi
+	  done
+	  if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
+	    $ECHO
+	    if test "$linkmode" = prog; then
+	      $ECHO "*** Warning: Linking the executable $output against the loadable module"
+	    else
+	      $ECHO "*** Warning: Linking the shared library $output against the loadable module"
+	    fi
+	    $ECHO "*** $linklib is not portable!"
+	  fi
+	  if test "$linkmode" = lib &&
+	     test "$hardcode_into_libs" = yes; then
+	    # Hardcode the library path.
+	    # Skip directories that are in the system default run-time
+	    # search path.
+	    case " $sys_lib_dlsearch_path " in
+	    *" $absdir "*) ;;
+	    *)
+	      case "$compile_rpath " in
+	      *" $absdir "*) ;;
+	      *) compile_rpath="$compile_rpath $absdir"
+	      esac
+	      ;;
+	    esac
+	    case " $sys_lib_dlsearch_path " in
+	    *" $libdir "*) ;;
+	    *)
+	      case "$finalize_rpath " in
+	      *" $libdir "*) ;;
+	      *) finalize_rpath="$finalize_rpath $libdir"
+	      esac
+	      ;;
+	    esac
+	  fi
+
+	  if test -n "$old_archive_from_expsyms_cmds"; then
+	    # figure out the soname
+	    set dummy $library_names
+	    shift
+	    realname="$1"
+	    shift
+	    libname=`eval "\\$ECHO \"$libname_spec\""`
+	    # use dlname if we got it. it's perfectly good, no?
+	    if test -n "$dlname"; then
+	      soname="$dlname"
+	    elif test -n "$soname_spec"; then
+	      # bleh windows
+	      case $host in
+	      *cygwin* | mingw* | *cegcc*)
+	        func_arith $current - $age
+		major=$func_arith_result
+		versuffix="-$major"
+		;;
+	      esac
+	      eval soname=\"$soname_spec\"
+	    else
+	      soname="$realname"
+	    fi
+
+	    # Make a new name for the extract_expsyms_cmds to use
+	    soroot="$soname"
+	    func_basename "$soroot"
+	    soname="$func_basename_result"
+	    func_stripname 'lib' '.dll' "$soname"
+	    newlib=libimp-$func_stripname_result.a
+
+	    # If the library has no export list, then create one now
+	    if test -f "$output_objdir/$soname-def"; then :
+	    else
+	      func_verbose "extracting exported symbol list from \`$soname'"
+	      func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
+	    fi
+
+	    # Create $newlib
+	    if test -f "$output_objdir/$newlib"; then :; else
+	      func_verbose "generating import library for \`$soname'"
+	      func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
+	    fi
+	    # make sure the library variables are pointing to the new library
+	    dir=$output_objdir
+	    linklib=$newlib
+	  fi # test -n "$old_archive_from_expsyms_cmds"
+
+	  if test "$linkmode" = prog || test "$mode" != relink; then
+	    add_shlibpath=
+	    add_dir=
+	    add=
+	    lib_linked=yes
+	    case $hardcode_action in
+	    immediate | unsupported)
+	      if test "$hardcode_direct" = no; then
+		add="$dir/$linklib"
+		case $host in
+		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
+		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
+		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
+		    *-*-unixware7*) add_dir="-L$dir" ;;
+		  *-*-darwin* )
+		    # if the lib is a (non-dlopened) module then we can not
+		    # link against it, someone is ignoring the earlier warnings
+		    if /usr/bin/file -L $add 2> /dev/null |
+			 $GREP ": [^:]* bundle" >/dev/null ; then
+		      if test "X$dlopenmodule" != "X$lib"; then
+			$ECHO "*** Warning: lib $linklib is a module, not a shared library"
+			if test -z "$old_library" ; then
+			  $ECHO
+			  $ECHO "*** And there doesn't seem to be a static archive available"
+			  $ECHO "*** The link will probably fail, sorry"
+			else
+			  add="$dir/$old_library"
+			fi
+		      elif test -n "$old_library"; then
+			add="$dir/$old_library"
+		      fi
+		    fi
+		esac
+	      elif test "$hardcode_minus_L" = no; then
+		case $host in
+		*-*-sunos*) add_shlibpath="$dir" ;;
+		esac
+		add_dir="-L$dir"
+		add="-l$name"
+	      elif test "$hardcode_shlibpath_var" = no; then
+		add_shlibpath="$dir"
+		add="-l$name"
+	      else
+		lib_linked=no
+	      fi
+	      ;;
+	    relink)
+	      if test "$hardcode_direct" = yes &&
+	         test "$hardcode_direct_absolute" = no; then
+		add="$dir/$linklib"
+	      elif test "$hardcode_minus_L" = yes; then
+		add_dir="-L$dir"
+		# Try looking first in the location we're being installed to.
+		if test -n "$inst_prefix_dir"; then
+		  case $libdir in
+		    [\\/]*)
+		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
+		      ;;
+		  esac
+		fi
+		add="-l$name"
+	      elif test "$hardcode_shlibpath_var" = yes; then
+		add_shlibpath="$dir"
+		add="-l$name"
+	      else
+		lib_linked=no
+	      fi
+	      ;;
+	    *) lib_linked=no ;;
+	    esac
+
+	    if test "$lib_linked" != yes; then
+	      func_fatal_configuration "unsupported hardcode properties"
+	    fi
+
+	    if test -n "$add_shlibpath"; then
+	      case :$compile_shlibpath: in
+	      *":$add_shlibpath:"*) ;;
+	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
+	      esac
+	    fi
+	    if test "$linkmode" = prog; then
+	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
+	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
+	    else
+	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
+	      test -n "$add" && deplibs="$add $deplibs"
+	      if test "$hardcode_direct" != yes &&
+		 test "$hardcode_minus_L" != yes &&
+		 test "$hardcode_shlibpath_var" = yes; then
+		case :$finalize_shlibpath: in
+		*":$libdir:"*) ;;
+		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+		esac
+	      fi
+	    fi
+	  fi
+
+	  if test "$linkmode" = prog || test "$mode" = relink; then
+	    add_shlibpath=
+	    add_dir=
+	    add=
+	    # Finalize command for both is simple: just hardcode it.
+	    if test "$hardcode_direct" = yes &&
+	       test "$hardcode_direct_absolute" = no; then
+	      add="$libdir/$linklib"
+	    elif test "$hardcode_minus_L" = yes; then
+	      add_dir="-L$libdir"
+	      add="-l$name"
+	    elif test "$hardcode_shlibpath_var" = yes; then
+	      case :$finalize_shlibpath: in
+	      *":$libdir:"*) ;;
+	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+	      esac
+	      add="-l$name"
+	    elif test "$hardcode_automatic" = yes; then
+	      if test -n "$inst_prefix_dir" &&
+		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
+		add="$inst_prefix_dir$libdir/$linklib"
+	      else
+		add="$libdir/$linklib"
+	      fi
+	    else
+	      # We cannot seem to hardcode it, guess we'll fake it.
+	      add_dir="-L$libdir"
+	      # Try looking first in the location we're being installed to.
+	      if test -n "$inst_prefix_dir"; then
+		case $libdir in
+		  [\\/]*)
+		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
+		    ;;
+		esac
+	      fi
+	      add="-l$name"
+	    fi
+
+	    if test "$linkmode" = prog; then
+	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
+	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
+	    else
+	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
+	      test -n "$add" && deplibs="$add $deplibs"
+	    fi
+	  fi
+	elif test "$linkmode" = prog; then
+	  # Here we assume that one of hardcode_direct or hardcode_minus_L
+	  # is not unsupported.  This is valid on all known static and
+	  # shared platforms.
+	  if test "$hardcode_direct" != unsupported; then
+	    test -n "$old_library" && linklib="$old_library"
+	    compile_deplibs="$dir/$linklib $compile_deplibs"
+	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
+	  else
+	    compile_deplibs="-l$name -L$dir $compile_deplibs"
+	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
+	  fi
+	elif test "$build_libtool_libs" = yes; then
+	  # Not a shared library
+	  if test "$deplibs_check_method" != pass_all; then
+	    # We're trying link a shared library against a static one
+	    # but the system doesn't support it.
+
+	    # Just print a warning and add the library to dependency_libs so
+	    # that the program can be linked against the static library.
+	    $ECHO
+	    $ECHO "*** Warning: This system can not link to static lib archive $lib."
+	    $ECHO "*** I have the capability to make that library automatically link in when"
+	    $ECHO "*** you link to this library.  But I can only do this if you have a"
+	    $ECHO "*** shared version of the library, which you do not appear to have."
+	    if test "$module" = yes; then
+	      $ECHO "*** But as you try to build a module library, libtool will still create "
+	      $ECHO "*** a static module, that should work as long as the dlopening application"
+	      $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime."
+	      if test -z "$global_symbol_pipe"; then
+		$ECHO
+		$ECHO "*** However, this would only work if libtool was able to extract symbol"
+		$ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
+		$ECHO "*** not find such a program.  So, this module is probably useless."
+		$ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
+	      fi
+	      if test "$build_old_libs" = no; then
+		build_libtool_libs=module
+		build_old_libs=yes
+	      else
+		build_libtool_libs=no
+	      fi
+	    fi
+	  else
+	    deplibs="$dir/$old_library $deplibs"
+	    link_static=yes
+	  fi
+	fi # link shared/static library?
+
+	if test "$linkmode" = lib; then
+	  if test -n "$dependency_libs" &&
+	     { test "$hardcode_into_libs" != yes ||
+	       test "$build_old_libs" = yes ||
+	       test "$link_static" = yes; }; then
+	    # Extract -R from dependency_libs
+	    temp_deplibs=
+	    for libdir in $dependency_libs; do
+	      case $libdir in
+	      -R*) func_stripname '-R' '' "$libdir"
+	           temp_xrpath=$func_stripname_result
+		   case " $xrpath " in
+		   *" $temp_xrpath "*) ;;
+		   *) xrpath="$xrpath $temp_xrpath";;
+		   esac;;
+	      *) temp_deplibs="$temp_deplibs $libdir";;
+	      esac
+	    done
+	    dependency_libs="$temp_deplibs"
+	  fi
+
+	  newlib_search_path="$newlib_search_path $absdir"
+	  # Link against this library
+	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
+	  # ... and its dependency_libs
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    newdependency_libs="$deplib $newdependency_libs"
+	    if $opt_duplicate_deps ; then
+	      case "$tmp_libs " in
+	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	      esac
+	    fi
+	    tmp_libs="$tmp_libs $deplib"
+	  done
+
+	  if test "$link_all_deplibs" != no; then
+	    # Add the search paths of all dependency libraries
+	    for deplib in $dependency_libs; do
+	      path=
+	      case $deplib in
+	      -L*) path="$deplib" ;;
+	      *.la)
+	        func_dirname "$deplib" "" "."
+		dir="$func_dirname_result"
+		# We need an absolute path.
+		case $dir in
+		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
+		*)
+		  absdir=`cd "$dir" && pwd`
+		  if test -z "$absdir"; then
+		    func_warning "cannot determine absolute directory name of \`$dir'"
+		    absdir="$dir"
+		  fi
+		  ;;
+		esac
+		if $GREP "^installed=no" $deplib > /dev/null; then
+		case $host in
+		*-*-darwin*)
+		  depdepl=
+		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
+		  if test -n "$deplibrary_names" ; then
+		    for tmp in $deplibrary_names ; do
+		      depdepl=$tmp
+		    done
+		    if test -f "$absdir/$objdir/$depdepl" ; then
+		      depdepl="$absdir/$objdir/$depdepl"
+		      darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
+                      if test -z "$darwin_install_name"; then
+                          darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
+                      fi
+		      compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
+		      linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
+		      path=
+		    fi
+		  fi
+		  ;;
+		*)
+		  path="-L$absdir/$objdir"
+		  ;;
+		esac
+		else
+		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+		  test -z "$libdir" && \
+		    func_fatal_error "\`$deplib' is not a valid libtool archive"
+		  test "$absdir" != "$libdir" && \
+		    func_warning "\`$deplib' seems to be moved"
+
+		  path="-L$absdir"
+		fi
+		;;
+	      esac
+	      case " $deplibs " in
+	      *" $path "*) ;;
+	      *) deplibs="$path $deplibs" ;;
+	      esac
+	    done
+	  fi # link_all_deplibs != no
+	fi # linkmode = lib
+      done # for deplib in $libs
+      if test "$pass" = link; then
+	if test "$linkmode" = "prog"; then
+	  compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
+	  finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
+	else
+	  compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	fi
+      fi
+      dependency_libs="$newdependency_libs"
+      if test "$pass" = dlpreopen; then
+	# Link the dlpreopened libraries before other libraries
+	for deplib in $save_deplibs; do
+	  deplibs="$deplib $deplibs"
+	done
+      fi
+      if test "$pass" != dlopen; then
+	if test "$pass" != conv; then
+	  # Make sure lib_search_path contains only unique directories.
+	  lib_search_path=
+	  for dir in $newlib_search_path; do
+	    case "$lib_search_path " in
+	    *" $dir "*) ;;
+	    *) lib_search_path="$lib_search_path $dir" ;;
+	    esac
+	  done
+	  newlib_search_path=
+	fi
+
+	if test "$linkmode,$pass" != "prog,link"; then
+	  vars="deplibs"
+	else
+	  vars="compile_deplibs finalize_deplibs"
+	fi
+	for var in $vars dependency_libs; do
+	  # Add libraries to $var in reverse order
+	  eval tmp_libs=\"\$$var\"
+	  new_libs=
+	  for deplib in $tmp_libs; do
+	    # FIXME: Pedantically, this is the right thing to do, so
+	    #        that some nasty dependency loop isn't accidentally
+	    #        broken:
+	    #new_libs="$deplib $new_libs"
+	    # Pragmatically, this seems to cause very few problems in
+	    # practice:
+	    case $deplib in
+	    -L*) new_libs="$deplib $new_libs" ;;
+	    -R*) ;;
+	    *)
+	      # And here is the reason: when a library appears more
+	      # than once as an explicit dependence of a library, or
+	      # is implicitly linked in more than once by the
+	      # compiler, it is considered special, and multiple
+	      # occurrences thereof are not removed.  Compare this
+	      # with having the same library being listed as a
+	      # dependency of multiple other libraries: in this case,
+	      # we know (pedantically, we assume) the library does not
+	      # need to be listed more than once, so we keep only the
+	      # last copy.  This is not always right, but it is rare
+	      # enough that we require users that really mean to play
+	      # such unportable linking tricks to link the library
+	      # using -Wl,-lname, so that libtool does not consider it
+	      # for duplicate removal.
+	      case " $specialdeplibs " in
+	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
+	      *)
+		case " $new_libs " in
+		*" $deplib "*) ;;
+		*) new_libs="$deplib $new_libs" ;;
+		esac
+		;;
+	      esac
+	      ;;
+	    esac
+	  done
+	  tmp_libs=
+	  for deplib in $new_libs; do
+	    case $deplib in
+	    -L*)
+	      case " $tmp_libs " in
+	      *" $deplib "*) ;;
+	      *) tmp_libs="$tmp_libs $deplib" ;;
+	      esac
+	      ;;
+	    *) tmp_libs="$tmp_libs $deplib" ;;
+	    esac
+	  done
+	  eval $var=\"$tmp_libs\"
+	done # for var
+      fi
+      # Last step: remove runtime libs from dependency_libs
+      # (they stay in deplibs)
+      tmp_libs=
+      for i in $dependency_libs ; do
+	case " $predeps $postdeps $compiler_lib_search_path " in
+	*" $i "*)
+	  i=""
+	  ;;
+	esac
+	if test -n "$i" ; then
+	  tmp_libs="$tmp_libs $i"
+	fi
+      done
+      dependency_libs=$tmp_libs
+    done # for pass
+    if test "$linkmode" = prog; then
+      dlfiles="$newdlfiles"
+    fi
+    if test "$linkmode" = prog || test "$linkmode" = lib; then
+      dlprefiles="$newdlprefiles"
+    fi
+
+    case $linkmode in
+    oldlib)
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+	func_warning "\`-dlopen' is ignored for archives"
+      fi
+
+      case " $deplibs" in
+      *\ -l* | *\ -L*)
+	func_warning "\`-l' and \`-L' are ignored for archives" ;;
+      esac
+
+      test -n "$rpath" && \
+	func_warning "\`-rpath' is ignored for archives"
+
+      test -n "$xrpath" && \
+	func_warning "\`-R' is ignored for archives"
+
+      test -n "$vinfo" && \
+	func_warning "\`-version-info/-version-number' is ignored for archives"
+
+      test -n "$release" && \
+	func_warning "\`-release' is ignored for archives"
+
+      test -n "$export_symbols$export_symbols_regex" && \
+	func_warning "\`-export-symbols' is ignored for archives"
+
+      # Now set the variables for building old libraries.
+      build_libtool_libs=no
+      oldlibs="$output"
+      objs="$objs$old_deplibs"
+      ;;
+
+    lib)
+      # Make sure we only generate libraries of the form `libNAME.la'.
+      case $outputname in
+      lib*)
+	func_stripname 'lib' '.la' "$outputname"
+	name=$func_stripname_result
+	eval shared_ext=\"$shrext_cmds\"
+	eval libname=\"$libname_spec\"
+	;;
+      *)
+	test "$module" = no && \
+	  func_fatal_help "libtool library \`$output' must begin with \`lib'"
+
+	if test "$need_lib_prefix" != no; then
+	  # Add the "lib" prefix for modules if required
+	  func_stripname '' '.la' "$outputname"
+	  name=$func_stripname_result
+	  eval shared_ext=\"$shrext_cmds\"
+	  eval libname=\"$libname_spec\"
+	else
+	  func_stripname '' '.la' "$outputname"
+	  libname=$func_stripname_result
+	fi
+	;;
+      esac
+
+      if test -n "$objs"; then
+	if test "$deplibs_check_method" != pass_all; then
+	  func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
+	else
+	  $ECHO
+	  $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
+	  $ECHO "*** objects $objs is not portable!"
+	  libobjs="$libobjs $objs"
+	fi
+      fi
+
+      test "$dlself" != no && \
+	func_warning "\`-dlopen self' is ignored for libtool libraries"
+
+      set dummy $rpath
+      shift
+      test "$#" -gt 1 && \
+	func_warning "ignoring multiple \`-rpath's for a libtool library"
+
+      install_libdir="$1"
+
+      oldlibs=
+      if test -z "$rpath"; then
+	if test "$build_libtool_libs" = yes; then
+	  # Building a libtool convenience library.
+	  # Some compilers have problems with a `.al' extension so
+	  # convenience libraries should have the same extension an
+	  # archive normally would.
+	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
+	  build_libtool_libs=convenience
+	  build_old_libs=yes
+	fi
+
+	test -n "$vinfo" && \
+	  func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
+
+	test -n "$release" && \
+	  func_warning "\`-release' is ignored for convenience libraries"
+      else
+
+	# Parse the version information argument.
+	save_ifs="$IFS"; IFS=':'
+	set dummy $vinfo 0 0 0
+	shift
+	IFS="$save_ifs"
+
+	test -n "$7" && \
+	  func_fatal_help "too many parameters to \`-version-info'"
+
+	# convert absolute version numbers to libtool ages
+	# this retains compatibility with .la files and attempts
+	# to make the code below a bit more comprehensible
+
+	case $vinfo_number in
+	yes)
+	  number_major="$1"
+	  number_minor="$2"
+	  number_revision="$3"
+	  #
+	  # There are really only two kinds -- those that
+	  # use the current revision as the major version
+	  # and those that subtract age and use age as
+	  # a minor version.  But, then there is irix
+	  # which has an extra 1 added just for fun
+	  #
+	  case $version_type in
+	  darwin|linux|osf|windows|none)
+	    func_arith $number_major + $number_minor
+	    current=$func_arith_result
+	    age="$number_minor"
+	    revision="$number_revision"
+	    ;;
+	  freebsd-aout|freebsd-elf|sunos)
+	    current="$number_major"
+	    revision="$number_minor"
+	    age="0"
+	    ;;
+	  irix|nonstopux)
+	    func_arith $number_major + $number_minor
+	    current=$func_arith_result
+	    age="$number_minor"
+	    revision="$number_minor"
+	    lt_irix_increment=no
+	    ;;
+	  *)
+	    func_fatal_configuration "$modename: unknown library version type \`$version_type'"
+	    ;;
+	  esac
+	  ;;
+	no)
+	  current="$1"
+	  revision="$2"
+	  age="$3"
+	  ;;
+	esac
+
+	# Check that each of the things are valid numbers.
+	case $current in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  func_error "CURRENT \`$current' must be a nonnegative integer"
+	  func_fatal_error "\`$vinfo' is not valid version information"
+	  ;;
+	esac
+
+	case $revision in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  func_error "REVISION \`$revision' must be a nonnegative integer"
+	  func_fatal_error "\`$vinfo' is not valid version information"
+	  ;;
+	esac
+
+	case $age in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  func_error "AGE \`$age' must be a nonnegative integer"
+	  func_fatal_error "\`$vinfo' is not valid version information"
+	  ;;
+	esac
+
+	if test "$age" -gt "$current"; then
+	  func_error "AGE \`$age' is greater than the current interface number \`$current'"
+	  func_fatal_error "\`$vinfo' is not valid version information"
+	fi
+
+	# Calculate the version variables.
+	major=
+	versuffix=
+	verstring=
+	case $version_type in
+	none) ;;
+
+	darwin)
+	  # Like Linux, but with the current version available in
+	  # verstring for coding it into the library header
+	  func_arith $current - $age
+	  major=.$func_arith_result
+	  versuffix="$major.$age.$revision"
+	  # Darwin ld doesn't like 0 for these options...
+	  func_arith $current + 1
+	  minor_current=$func_arith_result
+	  xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
+	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+	  ;;
+
+	freebsd-aout)
+	  major=".$current"
+	  versuffix=".$current.$revision";
+	  ;;
+
+	freebsd-elf)
+	  major=".$current"
+	  versuffix=".$current"
+	  ;;
+
+	irix | nonstopux)
+	  if test "X$lt_irix_increment" = "Xno"; then
+	    func_arith $current - $age
+	  else
+	    func_arith $current - $age + 1
+	  fi
+	  major=$func_arith_result
+
+	  case $version_type in
+	    nonstopux) verstring_prefix=nonstopux ;;
+	    *)         verstring_prefix=sgi ;;
+	  esac
+	  verstring="$verstring_prefix$major.$revision"
+
+	  # Add in all the interfaces that we are compatible with.
+	  loop=$revision
+	  while test "$loop" -ne 0; do
+	    func_arith $revision - $loop
+	    iface=$func_arith_result
+	    func_arith $loop - 1
+	    loop=$func_arith_result
+	    verstring="$verstring_prefix$major.$iface:$verstring"
+	  done
+
+	  # Before this point, $major must not contain `.'.
+	  major=.$major
+	  versuffix="$major.$revision"
+	  ;;
+
+	linux)
+	  func_arith $current - $age
+	  major=.$func_arith_result
+	  versuffix="$major.$age.$revision"
+	  ;;
+
+	osf)
+	  func_arith $current - $age
+	  major=.$func_arith_result
+	  versuffix=".$current.$age.$revision"
+	  verstring="$current.$age.$revision"
+
+	  # Add in all the interfaces that we are compatible with.
+	  loop=$age
+	  while test "$loop" -ne 0; do
+	    func_arith $current - $loop
+	    iface=$func_arith_result
+	    func_arith $loop - 1
+	    loop=$func_arith_result
+	    verstring="$verstring:${iface}.0"
+	  done
+
+	  # Make executables depend on our current version.
+	  verstring="$verstring:${current}.0"
+	  ;;
+
+	qnx)
+	  major=".$current"
+	  versuffix=".$current"
+	  ;;
+
+	sunos)
+	  major=".$current"
+	  versuffix=".$current.$revision"
+	  ;;
+
+	windows)
+	  # Use '-' rather than '.', since we only want one
+	  # extension on DOS 8.3 filesystems.
+	  func_arith $current - $age
+	  major=$func_arith_result
+	  versuffix="-$major"
+	  ;;
+
+	*)
+	  func_fatal_configuration "unknown library version type \`$version_type'"
+	  ;;
+	esac
+
+	# Clear the version info if we defaulted, and they specified a release.
+	if test -z "$vinfo" && test -n "$release"; then
+	  major=
+	  case $version_type in
+	  darwin)
+	    # we can't check for "0.0" in archive_cmds due to quoting
+	    # problems, so we reset it completely
+	    verstring=
+	    ;;
+	  *)
+	    verstring="0.0"
+	    ;;
+	  esac
+	  if test "$need_version" = no; then
+	    versuffix=
+	  else
+	    versuffix=".0.0"
+	  fi
+	fi
+
+	# Remove version info from name if versioning should be avoided
+	if test "$avoid_version" = yes && test "$need_version" = no; then
+	  major=
+	  versuffix=
+	  verstring=""
+	fi
+
+	# Check to see if the archive will have undefined symbols.
+	if test "$allow_undefined" = yes; then
+	  if test "$allow_undefined_flag" = unsupported; then
+	    func_warning "undefined symbols not allowed in $host shared libraries"
+	    build_libtool_libs=no
+	    build_old_libs=yes
+	  fi
+	else
+	  # Don't allow undefined symbols.
+	  allow_undefined_flag="$no_undefined_flag"
+	fi
+
+      fi
+
+      func_generate_dlsyms "$libname" "$libname" "yes"
+      libobjs="$libobjs $symfileobj"
+      test "X$libobjs" = "X " && libobjs=
+
+      if test "$mode" != relink; then
+	# Remove our outputs, but don't remove object files since they
+	# may have been created when compiling PIC objects.
+	removelist=
+	tempremovelist=`$ECHO "$output_objdir/*"`
+	for p in $tempremovelist; do
+	  case $p in
+	    *.$objext | *.gcno)
+	       ;;
+	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
+	       if test "X$precious_files_regex" != "X"; then
+		 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
+		 then
+		   continue
+		 fi
+	       fi
+	       removelist="$removelist $p"
+	       ;;
+	    *) ;;
+	  esac
+	done
+	test -n "$removelist" && \
+	  func_show_eval "${RM}r \$removelist"
+      fi
+
+      # Now set the variables for building old libraries.
+      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
+	oldlibs="$oldlibs $output_objdir/$libname.$libext"
+
+	# Transform .lo files to .o files.
+	oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
+      fi
+
+      # Eliminate all temporary directories.
+      #for path in $notinst_path; do
+      #	lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`
+      #	deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`
+      #	dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`
+      #done
+
+      if test -n "$xrpath"; then
+	# If the user specified any rpath flags, then add them.
+	temp_xrpath=
+	for libdir in $xrpath; do
+	  temp_xrpath="$temp_xrpath -R$libdir"
+	  case "$finalize_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_rpath="$finalize_rpath $libdir" ;;
+	  esac
+	done
+	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
+	  dependency_libs="$temp_xrpath $dependency_libs"
+	fi
+      fi
+
+      # Make sure dlfiles contains only unique files that won't be dlpreopened
+      old_dlfiles="$dlfiles"
+      dlfiles=
+      for lib in $old_dlfiles; do
+	case " $dlprefiles $dlfiles " in
+	*" $lib "*) ;;
+	*) dlfiles="$dlfiles $lib" ;;
+	esac
+      done
+
+      # Make sure dlprefiles contains only unique files
+      old_dlprefiles="$dlprefiles"
+      dlprefiles=
+      for lib in $old_dlprefiles; do
+	case "$dlprefiles " in
+	*" $lib "*) ;;
+	*) dlprefiles="$dlprefiles $lib" ;;
+	esac
+      done
+
+      if test "$build_libtool_libs" = yes; then
+	if test -n "$rpath"; then
+	  case $host in
+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*)
+	    # these systems don't actually have a c library (as such)!
+	    ;;
+	  *-*-rhapsody* | *-*-darwin1.[012])
+	    # Rhapsody C library is in the System framework
+	    deplibs="$deplibs System.ltframework"
+	    ;;
+	  *-*-netbsd*)
+	    # Don't link with libc until the a.out ld.so is fixed.
+	    ;;
+	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+	    # Do not include libc due to us having libc/libc_r.
+	    ;;
+	  *-*-sco3.2v5* | *-*-sco5v6*)
+	    # Causes problems with __ctype
+	    ;;
+	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+	    # Compiler inserts libc in the correct place for threads to work
+	    ;;
+	  *)
+	    # Add libc to deplibs on all other systems if necessary.
+	    if test "$build_libtool_need_lc" = "yes"; then
+	      deplibs="$deplibs -lc"
+	    fi
+	    ;;
+	  esac
+	fi
+
+	# Transform deplibs into only deplibs that can be linked in shared.
+	name_save=$name
+	libname_save=$libname
+	release_save=$release
+	versuffix_save=$versuffix
+	major_save=$major
+	# I'm not sure if I'm treating the release correctly.  I think
+	# release should show up in the -l (ie -lgmp5) so we don't want to
+	# add it in twice.  Is that correct?
+	release=""
+	versuffix=""
+	major=""
+	newdeplibs=
+	droppeddeps=no
+	case $deplibs_check_method in
+	pass_all)
+	  # Don't check for shared/static.  Everything works.
+	  # This might be a little naive.  We might want to check
+	  # whether the library exists or not.  But this is on
+	  # osf3 & osf4 and I'm not really sure... Just
+	  # implementing what was already the behavior.
+	  newdeplibs=$deplibs
+	  ;;
+	test_compile)
+	  # This code stresses the "libraries are programs" paradigm to its
+	  # limits. Maybe even breaks it.  We compile a program, linking it
+	  # against the deplibs as a proxy for the library.  Then we can check
+	  # whether they linked in statically or dynamically with ldd.
+	  $opt_dry_run || $RM conftest.c
+	  cat > conftest.c <<EOF
+	  int main() { return 0; }
+EOF
+	  $opt_dry_run || $RM conftest
+	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
+	    ldd_output=`ldd conftest`
+	    for i in $deplibs; do
+	      case $i in
+	      -l*)
+		func_stripname -l '' "$i"
+		name=$func_stripname_result
+		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		  case " $predeps $postdeps " in
+		  *" $i "*)
+		    newdeplibs="$newdeplibs $i"
+		    i=""
+		    ;;
+		  esac
+		fi
+		if test -n "$i" ; then
+		  libname=`eval "\\$ECHO \"$libname_spec\""`
+		  deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+		  set dummy $deplib_matches; shift
+		  deplib_match=$1
+		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+		    newdeplibs="$newdeplibs $i"
+		  else
+		    droppeddeps=yes
+		    $ECHO
+		    $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+		    $ECHO "*** I have the capability to make that library automatically link in when"
+		    $ECHO "*** you link to this library.  But I can only do this if you have a"
+		    $ECHO "*** shared version of the library, which I believe you do not have"
+		    $ECHO "*** because a test_compile did reveal that the linker did not use it for"
+		    $ECHO "*** its dynamic dependency list that programs get resolved with at runtime."
+		  fi
+		fi
+		;;
+	      *)
+		newdeplibs="$newdeplibs $i"
+		;;
+	      esac
+	    done
+	  else
+	    # Error occurred in the first compile.  Let's try to salvage
+	    # the situation: Compile a separate program for each library.
+	    for i in $deplibs; do
+	      case $i in
+	      -l*)
+		func_stripname -l '' "$i"
+		name=$func_stripname_result
+		$opt_dry_run || $RM conftest
+		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
+		  ldd_output=`ldd conftest`
+		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		    case " $predeps $postdeps " in
+		    *" $i "*)
+		      newdeplibs="$newdeplibs $i"
+		      i=""
+		      ;;
+		    esac
+		  fi
+		  if test -n "$i" ; then
+		    libname=`eval "\\$ECHO \"$libname_spec\""`
+		    deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+		    set dummy $deplib_matches; shift
+		    deplib_match=$1
+		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+		      newdeplibs="$newdeplibs $i"
+		    else
+		      droppeddeps=yes
+		      $ECHO
+		      $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+		      $ECHO "*** I have the capability to make that library automatically link in when"
+		      $ECHO "*** you link to this library.  But I can only do this if you have a"
+		      $ECHO "*** shared version of the library, which you do not appear to have"
+		      $ECHO "*** because a test_compile did reveal that the linker did not use this one"
+		      $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime."
+		    fi
+		  fi
+		else
+		  droppeddeps=yes
+		  $ECHO
+		  $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
+		  $ECHO "*** make it link in!  You will probably need to install it or some"
+		  $ECHO "*** library that it depends on before this library will be fully"
+		  $ECHO "*** functional.  Installing it before continuing would be even better."
+		fi
+		;;
+	      *)
+		newdeplibs="$newdeplibs $i"
+		;;
+	      esac
+	    done
+	  fi
+	  ;;
+	file_magic*)
+	  set dummy $deplibs_check_method; shift
+	  file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+	  for a_deplib in $deplibs; do
+	    case $a_deplib in
+	    -l*)
+	      func_stripname -l '' "$a_deplib"
+	      name=$func_stripname_result
+	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		case " $predeps $postdeps " in
+		*" $a_deplib "*)
+		  newdeplibs="$newdeplibs $a_deplib"
+		  a_deplib=""
+		  ;;
+		esac
+	      fi
+	      if test -n "$a_deplib" ; then
+		libname=`eval "\\$ECHO \"$libname_spec\""`
+		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+		  for potent_lib in $potential_libs; do
+		      # Follow soft links.
+		      if ls -lLd "$potent_lib" 2>/dev/null |
+			 $GREP " -> " >/dev/null; then
+			continue
+		      fi
+		      # The statement above tries to avoid entering an
+		      # endless loop below, in case of cyclic links.
+		      # We might still enter an endless loop, since a link
+		      # loop can be closed while we follow links,
+		      # but so what?
+		      potlib="$potent_lib"
+		      while test -h "$potlib" 2>/dev/null; do
+			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
+			case $potliblink in
+			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
+			*) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
+			esac
+		      done
+		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
+			 $SED -e 10q |
+			 $EGREP "$file_magic_regex" > /dev/null; then
+			newdeplibs="$newdeplibs $a_deplib"
+			a_deplib=""
+			break 2
+		      fi
+		  done
+		done
+	      fi
+	      if test -n "$a_deplib" ; then
+		droppeddeps=yes
+		$ECHO
+		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
+		$ECHO "*** I have the capability to make that library automatically link in when"
+		$ECHO "*** you link to this library.  But I can only do this if you have a"
+		$ECHO "*** shared version of the library, which you do not appear to have"
+		$ECHO "*** because I did check the linker path looking for a file starting"
+		if test -z "$potlib" ; then
+		  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
+		else
+		  $ECHO "*** with $libname and none of the candidates passed a file format test"
+		  $ECHO "*** using a file magic. Last file checked: $potlib"
+		fi
+	      fi
+	      ;;
+	    *)
+	      # Add a -L argument.
+	      newdeplibs="$newdeplibs $a_deplib"
+	      ;;
+	    esac
+	  done # Gone through all deplibs.
+	  ;;
+	match_pattern*)
+	  set dummy $deplibs_check_method; shift
+	  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+	  for a_deplib in $deplibs; do
+	    case $a_deplib in
+	    -l*)
+	      func_stripname -l '' "$a_deplib"
+	      name=$func_stripname_result
+	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		case " $predeps $postdeps " in
+		*" $a_deplib "*)
+		  newdeplibs="$newdeplibs $a_deplib"
+		  a_deplib=""
+		  ;;
+		esac
+	      fi
+	      if test -n "$a_deplib" ; then
+		libname=`eval "\\$ECHO \"$libname_spec\""`
+		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+		  for potent_lib in $potential_libs; do
+		    potlib="$potent_lib" # see symlink-check above in file_magic test
+		    if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \
+		       $EGREP "$match_pattern_regex" > /dev/null; then
+		      newdeplibs="$newdeplibs $a_deplib"
+		      a_deplib=""
+		      break 2
+		    fi
+		  done
+		done
+	      fi
+	      if test -n "$a_deplib" ; then
+		droppeddeps=yes
+		$ECHO
+		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
+		$ECHO "*** I have the capability to make that library automatically link in when"
+		$ECHO "*** you link to this library.  But I can only do this if you have a"
+		$ECHO "*** shared version of the library, which you do not appear to have"
+		$ECHO "*** because I did check the linker path looking for a file starting"
+		if test -z "$potlib" ; then
+		  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
+		else
+		  $ECHO "*** with $libname and none of the candidates passed a file format test"
+		  $ECHO "*** using a regex pattern. Last file checked: $potlib"
+		fi
+	      fi
+	      ;;
+	    *)
+	      # Add a -L argument.
+	      newdeplibs="$newdeplibs $a_deplib"
+	      ;;
+	    esac
+	  done # Gone through all deplibs.
+	  ;;
+	none | unknown | *)
+	  newdeplibs=""
+	  tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \
+	      -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`
+	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+	    for i in $predeps $postdeps ; do
+	      # can't use Xsed below, because $i might contain '/'
+	      tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
+	    done
+	  fi
+	  if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[	 ]//g' |
+	     $GREP . >/dev/null; then
+	    $ECHO
+	    if test "X$deplibs_check_method" = "Xnone"; then
+	      $ECHO "*** Warning: inter-library dependencies are not supported in this platform."
+	    else
+	      $ECHO "*** Warning: inter-library dependencies are not known to be supported."
+	    fi
+	    $ECHO "*** All declared inter-library dependencies are being dropped."
+	    droppeddeps=yes
+	  fi
+	  ;;
+	esac
+	versuffix=$versuffix_save
+	major=$major_save
+	release=$release_save
+	libname=$libname_save
+	name=$name_save
+
+	case $host in
+	*-*-rhapsody* | *-*-darwin1.[012])
+	  # On Rhapsody replace the C library with the System framework
+	  newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+	  ;;
+	esac
+
+	if test "$droppeddeps" = yes; then
+	  if test "$module" = yes; then
+	    $ECHO
+	    $ECHO "*** Warning: libtool could not satisfy all declared inter-library"
+	    $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
+	    $ECHO "*** a static module, that should work as long as the dlopening"
+	    $ECHO "*** application is linked with the -dlopen flag."
+	    if test -z "$global_symbol_pipe"; then
+	      $ECHO
+	      $ECHO "*** However, this would only work if libtool was able to extract symbol"
+	      $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
+	      $ECHO "*** not find such a program.  So, this module is probably useless."
+	      $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
+	    fi
+	    if test "$build_old_libs" = no; then
+	      oldlibs="$output_objdir/$libname.$libext"
+	      build_libtool_libs=module
+	      build_old_libs=yes
+	    else
+	      build_libtool_libs=no
+	    fi
+	  else
+	    $ECHO "*** The inter-library dependencies that have been dropped here will be"
+	    $ECHO "*** automatically added whenever a program is linked with this library"
+	    $ECHO "*** or is declared to -dlopen it."
+
+	    if test "$allow_undefined" = no; then
+	      $ECHO
+	      $ECHO "*** Since this library must not contain undefined symbols,"
+	      $ECHO "*** because either the platform does not support them or"
+	      $ECHO "*** it was explicitly requested with -no-undefined,"
+	      $ECHO "*** libtool will only create a static version of it."
+	      if test "$build_old_libs" = no; then
+		oldlibs="$output_objdir/$libname.$libext"
+		build_libtool_libs=module
+		build_old_libs=yes
+	      else
+		build_libtool_libs=no
+	      fi
+	    fi
+	  fi
+	fi
+	# Done checking deplibs!
+	deplibs=$newdeplibs
+      fi
+      # Time to change all our "foo.ltframework" stuff back to "-framework foo"
+      case $host in
+	*-*-darwin*)
+	  newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	  new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	  deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	  ;;
+      esac
+
+      # move library search paths that coincide with paths to not yet
+      # installed libraries to the beginning of the library search list
+      new_libs=
+      for path in $notinst_path; do
+	case " $new_libs " in
+	*" -L$path/$objdir "*) ;;
+	*)
+	  case " $deplibs " in
+	  *" -L$path/$objdir "*)
+	    new_libs="$new_libs -L$path/$objdir" ;;
+	  esac
+	  ;;
+	esac
+      done
+      for deplib in $deplibs; do
+	case $deplib in
+	-L*)
+	  case " $new_libs " in
+	  *" $deplib "*) ;;
+	  *) new_libs="$new_libs $deplib" ;;
+	  esac
+	  ;;
+	*) new_libs="$new_libs $deplib" ;;
+	esac
+      done
+      deplibs="$new_libs"
+
+      # All the library-specific variables (install_libdir is set above).
+      library_names=
+      old_library=
+      dlname=
+
+      # Test again, we may have decided not to build it any more
+      if test "$build_libtool_libs" = yes; then
+	if test "$hardcode_into_libs" = yes; then
+	  # Hardcode the library paths
+	  hardcode_libdirs=
+	  dep_rpath=
+	  rpath="$finalize_rpath"
+	  test "$mode" != relink && rpath="$compile_rpath$rpath"
+	  for libdir in $rpath; do
+	    if test -n "$hardcode_libdir_flag_spec"; then
+	      if test -n "$hardcode_libdir_separator"; then
+		if test -z "$hardcode_libdirs"; then
+		  hardcode_libdirs="$libdir"
+		else
+		  # Just accumulate the unique libdirs.
+		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		    ;;
+		  *)
+		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		    ;;
+		  esac
+		fi
+	      else
+		eval flag=\"$hardcode_libdir_flag_spec\"
+		dep_rpath="$dep_rpath $flag"
+	      fi
+	    elif test -n "$runpath_var"; then
+	      case "$perm_rpath " in
+	      *" $libdir "*) ;;
+	      *) perm_rpath="$perm_rpath $libdir" ;;
+	      esac
+	    fi
+	  done
+	  # Substitute the hardcoded libdirs into the rpath.
+	  if test -n "$hardcode_libdir_separator" &&
+	     test -n "$hardcode_libdirs"; then
+	    libdir="$hardcode_libdirs"
+	    if test -n "$hardcode_libdir_flag_spec_ld"; then
+	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
+	    else
+	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
+	    fi
+	  fi
+	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
+	    # We should set the runpath_var.
+	    rpath=
+	    for dir in $perm_rpath; do
+	      rpath="$rpath$dir:"
+	    done
+	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
+	  fi
+	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
+	fi
+
+	shlibpath="$finalize_shlibpath"
+	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+	if test -n "$shlibpath"; then
+	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
+	fi
+
+	# Get the real and link names of the library.
+	eval shared_ext=\"$shrext_cmds\"
+	eval library_names=\"$library_names_spec\"
+	set dummy $library_names
+	shift
+	realname="$1"
+	shift
+
+	if test -n "$soname_spec"; then
+	  eval soname=\"$soname_spec\"
+	else
+	  soname="$realname"
+	fi
+	if test -z "$dlname"; then
+	  dlname=$soname
+	fi
+
+	lib="$output_objdir/$realname"
+	linknames=
+	for link
+	do
+	  linknames="$linknames $link"
+	done
+
+	# Use standard objects if they are pic
+	test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	test "X$libobjs" = "X " && libobjs=
+
+	delfiles=
+	if test -n "$export_symbols" && test -n "$include_expsyms"; then
+	  $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
+	  export_symbols="$output_objdir/$libname.uexp"
+	  delfiles="$delfiles $export_symbols"
+	fi
+
+	orig_export_symbols=
+	case $host_os in
+	cygwin* | mingw* | cegcc*)
+	  if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
+	    # exporting using user supplied symfile
+	    if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
+	      # and it's NOT already a .def file. Must figure out
+	      # which of the given symbols are data symbols and tag
+	      # them as such. So, trigger use of export_symbols_cmds.
+	      # export_symbols gets reassigned inside the "prepare
+	      # the list of exported symbols" if statement, so the
+	      # include_expsyms logic still works.
+	      orig_export_symbols="$export_symbols"
+	      export_symbols=
+	      always_export_symbols=yes
+	    fi
+	  fi
+	  ;;
+	esac
+
+	# Prepare the list of exported symbols
+	if test -z "$export_symbols"; then
+	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
+	    func_verbose "generating symbol list for \`$libname.la'"
+	    export_symbols="$output_objdir/$libname.exp"
+	    $opt_dry_run || $RM $export_symbols
+	    cmds=$export_symbols_cmds
+	    save_ifs="$IFS"; IFS='~'
+	    for cmd in $cmds; do
+	      IFS="$save_ifs"
+	      eval cmd=\"$cmd\"
+	      func_len " $cmd"
+	      len=$func_len_result
+	      if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+		func_show_eval "$cmd" 'exit $?'
+		skipped_export=false
+	      else
+		# The command line is too long to execute in one step.
+		func_verbose "using reloadable object file for export list..."
+		skipped_export=:
+		# Break out early, otherwise skipped_export may be
+		# set to false by a later but shorter cmd.
+		break
+	      fi
+	    done
+	    IFS="$save_ifs"
+	    if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
+	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
+	    fi
+	  fi
+	fi
+
+	if test -n "$export_symbols" && test -n "$include_expsyms"; then
+	  tmp_export_symbols="$export_symbols"
+	  test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
+	  $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
+	fi
+
+	if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
+	  # The given exports_symbols file has to be filtered, so filter it.
+	  func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
+	  # FIXME: $output_objdir/$libname.filter potentially contains lots of
+	  # 's' commands which not all seds can handle. GNU sed should be fine
+	  # though. Also, the filter scales superlinearly with the number of
+	  # global variables. join(1) would be nice here, but unfortunately
+	  # isn't a blessed tool.
+	  $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
+	  delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
+	  export_symbols=$output_objdir/$libname.def
+	  $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
+	fi
+
+	tmp_deplibs=
+	for test_deplib in $deplibs; do
+	  case " $convenience " in
+	  *" $test_deplib "*) ;;
+	  *)
+	    tmp_deplibs="$tmp_deplibs $test_deplib"
+	    ;;
+	  esac
+	done
+	deplibs="$tmp_deplibs"
+
+	if test -n "$convenience"; then
+	  if test -n "$whole_archive_flag_spec" &&
+	    test "$compiler_needs_object" = yes &&
+	    test -z "$libobjs"; then
+	    # extract the archives, so we have objects to list.
+	    # TODO: could optimize this to just extract one archive.
+	    whole_archive_flag_spec=
+	  fi
+	  if test -n "$whole_archive_flag_spec"; then
+	    save_libobjs=$libobjs
+	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+	    test "X$libobjs" = "X " && libobjs=
+	  else
+	    gentop="$output_objdir/${outputname}x"
+	    generated="$generated $gentop"
+
+	    func_extract_archives $gentop $convenience
+	    libobjs="$libobjs $func_extract_archives_result"
+	    test "X$libobjs" = "X " && libobjs=
+	  fi
+	fi
+
+	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
+	  eval flag=\"$thread_safe_flag_spec\"
+	  linker_flags="$linker_flags $flag"
+	fi
+
+	# Make a backup of the uninstalled library when relinking
+	if test "$mode" = relink; then
+	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
+	fi
+
+	# Do each of the archive commands.
+	if test "$module" = yes && test -n "$module_cmds" ; then
+	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+	    eval test_cmds=\"$module_expsym_cmds\"
+	    cmds=$module_expsym_cmds
+	  else
+	    eval test_cmds=\"$module_cmds\"
+	    cmds=$module_cmds
+	  fi
+	else
+	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+	    eval test_cmds=\"$archive_expsym_cmds\"
+	    cmds=$archive_expsym_cmds
+	  else
+	    eval test_cmds=\"$archive_cmds\"
+	    cmds=$archive_cmds
+	  fi
+	fi
+
+	if test "X$skipped_export" != "X:" &&
+	   func_len " $test_cmds" &&
+	   len=$func_len_result &&
+	   test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	  :
+	else
+	  # The command line is too long to link in one step, link piecewise
+	  # or, if using GNU ld and skipped_export is not :, use a linker
+	  # script.
+
+	  # Save the value of $output and $libobjs because we want to
+	  # use them later.  If we have whole_archive_flag_spec, we
+	  # want to use save_libobjs as it was before
+	  # whole_archive_flag_spec was expanded, because we can't
+	  # assume the linker understands whole_archive_flag_spec.
+	  # This may have to be revisited, in case too many
+	  # convenience libraries get linked in and end up exceeding
+	  # the spec.
+	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
+	    save_libobjs=$libobjs
+	  fi
+	  save_output=$output
+	  output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
+
+	  # Clear the reloadable object creation command queue and
+	  # initialize k to one.
+	  test_cmds=
+	  concat_cmds=
+	  objlist=
+	  last_robj=
+	  k=1
+
+	  if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
+	    output=${output_objdir}/${output_la}.lnkscript
+	    func_verbose "creating GNU ld script: $output"
+	    $ECHO 'INPUT (' > $output
+	    for obj in $save_libobjs
+	    do
+	      $ECHO "$obj" >> $output
+	    done
+	    $ECHO ')' >> $output
+	    delfiles="$delfiles $output"
+	  elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
+	    output=${output_objdir}/${output_la}.lnk
+	    func_verbose "creating linker input file list: $output"
+	    : > $output
+	    set x $save_libobjs
+	    shift
+	    firstobj=
+	    if test "$compiler_needs_object" = yes; then
+	      firstobj="$1 "
+	      shift
+	    fi
+	    for obj
+	    do
+	      $ECHO "$obj" >> $output
+	    done
+	    delfiles="$delfiles $output"
+	    output=$firstobj\"$file_list_spec$output\"
+	  else
+	    if test -n "$save_libobjs"; then
+	      func_verbose "creating reloadable object files..."
+	      output=$output_objdir/$output_la-${k}.$objext
+	      eval test_cmds=\"$reload_cmds\"
+	      func_len " $test_cmds"
+	      len0=$func_len_result
+	      len=$len0
+
+	      # Loop over the list of objects to be linked.
+	      for obj in $save_libobjs
+	      do
+		func_len " $obj"
+		func_arith $len + $func_len_result
+		len=$func_arith_result
+		if test "X$objlist" = X ||
+		   test "$len" -lt "$max_cmd_len"; then
+		  func_append objlist " $obj"
+		else
+		  # The command $test_cmds is almost too long, add a
+		  # command to the queue.
+		  if test "$k" -eq 1 ; then
+		    # The first file doesn't have a previous command to add.
+		    eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
+		  else
+		    # All subsequent reloadable object files will link in
+		    # the last one created.
+		    eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\"
+		  fi
+		  last_robj=$output_objdir/$output_la-${k}.$objext
+		  func_arith $k + 1
+		  k=$func_arith_result
+		  output=$output_objdir/$output_la-${k}.$objext
+		  objlist=$obj
+		  func_len " $last_robj"
+		  func_arith $len0 + $func_len_result
+		  len=$func_arith_result
+		fi
+	      done
+	      # Handle the remaining objects by creating one last
+	      # reloadable object file.  All subsequent reloadable object
+	      # files will link in the last one created.
+	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	      eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
+	      if test -n "$last_robj"; then
+	        eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
+	      fi
+	      delfiles="$delfiles $output"
+
+	    else
+	      output=
+	    fi
+
+	    if ${skipped_export-false}; then
+	      func_verbose "generating symbol list for \`$libname.la'"
+	      export_symbols="$output_objdir/$libname.exp"
+	      $opt_dry_run || $RM $export_symbols
+	      libobjs=$output
+	      # Append the command to create the export file.
+	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	      eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
+	      if test -n "$last_robj"; then
+		eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
+	      fi
+	    fi
+
+	    test -n "$save_libobjs" &&
+	      func_verbose "creating a temporary reloadable object file: $output"
+
+	    # Loop through the commands generated above and execute them.
+	    save_ifs="$IFS"; IFS='~'
+	    for cmd in $concat_cmds; do
+	      IFS="$save_ifs"
+	      $opt_silent || {
+		  func_quote_for_expand "$cmd"
+		  eval "func_echo $func_quote_for_expand_result"
+	      }
+	      $opt_dry_run || eval "$cmd" || {
+		lt_exit=$?
+
+		# Restore the uninstalled library and exit
+		if test "$mode" = relink; then
+		  ( cd "$output_objdir" && \
+		    $RM "${realname}T" && \
+		    $MV "${realname}U" "$realname" )
+		fi
+
+		exit $lt_exit
+	      }
+	    done
+	    IFS="$save_ifs"
+
+	    if test -n "$export_symbols_regex" && ${skipped_export-false}; then
+	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
+	    fi
+	  fi
+
+          if ${skipped_export-false}; then
+	    if test -n "$export_symbols" && test -n "$include_expsyms"; then
+	      tmp_export_symbols="$export_symbols"
+	      test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
+	      $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
+	    fi
+
+	    if test -n "$orig_export_symbols"; then
+	      # The given exports_symbols file has to be filtered, so filter it.
+	      func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
+	      # FIXME: $output_objdir/$libname.filter potentially contains lots of
+	      # 's' commands which not all seds can handle. GNU sed should be fine
+	      # though. Also, the filter scales superlinearly with the number of
+	      # global variables. join(1) would be nice here, but unfortunately
+	      # isn't a blessed tool.
+	      $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
+	      delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
+	      export_symbols=$output_objdir/$libname.def
+	      $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
+	    fi
+	  fi
+
+	  libobjs=$output
+	  # Restore the value of output.
+	  output=$save_output
+
+	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
+	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+	    test "X$libobjs" = "X " && libobjs=
+	  fi
+	  # Expand the library linking commands again to reset the
+	  # value of $libobjs for piecewise linking.
+
+	  # Do each of the archive commands.
+	  if test "$module" = yes && test -n "$module_cmds" ; then
+	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+	      cmds=$module_expsym_cmds
+	    else
+	      cmds=$module_cmds
+	    fi
+	  else
+	    if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+	      cmds=$archive_expsym_cmds
+	    else
+	      cmds=$archive_cmds
+	    fi
+	  fi
+	fi
+
+	if test -n "$delfiles"; then
+	  # Append the command to remove temporary files to $cmds.
+	  eval cmds=\"\$cmds~\$RM $delfiles\"
+	fi
+
+	# Add any objects from preloaded convenience libraries
+	if test -n "$dlprefiles"; then
+	  gentop="$output_objdir/${outputname}x"
+	  generated="$generated $gentop"
+
+	  func_extract_archives $gentop $dlprefiles
+	  libobjs="$libobjs $func_extract_archives_result"
+	  test "X$libobjs" = "X " && libobjs=
+	fi
+
+	save_ifs="$IFS"; IFS='~'
+	for cmd in $cmds; do
+	  IFS="$save_ifs"
+	  eval cmd=\"$cmd\"
+	  $opt_silent || {
+	    func_quote_for_expand "$cmd"
+	    eval "func_echo $func_quote_for_expand_result"
+	  }
+	  $opt_dry_run || eval "$cmd" || {
+	    lt_exit=$?
+
+	    # Restore the uninstalled library and exit
+	    if test "$mode" = relink; then
+	      ( cd "$output_objdir" && \
+	        $RM "${realname}T" && \
+		$MV "${realname}U" "$realname" )
+	    fi
+
+	    exit $lt_exit
+	  }
+	done
+	IFS="$save_ifs"
+
+	# Restore the uninstalled library and exit
+	if test "$mode" = relink; then
+	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
+
+	  if test -n "$convenience"; then
+	    if test -z "$whole_archive_flag_spec"; then
+	      func_show_eval '${RM}r "$gentop"'
+	    fi
+	  fi
+
+	  exit $EXIT_SUCCESS
+	fi
+
+	# Create links to the real library.
+	for linkname in $linknames; do
+	  if test "$realname" != "$linkname"; then
+	    func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
+	  fi
+	done
+
+	# If -module or -export-dynamic was specified, set the dlname.
+	if test "$module" = yes || test "$export_dynamic" = yes; then
+	  # On all known operating systems, these are identical.
+	  dlname="$soname"
+	fi
+      fi
+      ;;
+
+    obj)
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+	func_warning "\`-dlopen' is ignored for objects"
+      fi
+
+      case " $deplibs" in
+      *\ -l* | *\ -L*)
+	func_warning "\`-l' and \`-L' are ignored for objects" ;;
+      esac
+
+      test -n "$rpath" && \
+	func_warning "\`-rpath' is ignored for objects"
+
+      test -n "$xrpath" && \
+	func_warning "\`-R' is ignored for objects"
+
+      test -n "$vinfo" && \
+	func_warning "\`-version-info' is ignored for objects"
+
+      test -n "$release" && \
+	func_warning "\`-release' is ignored for objects"
+
+      case $output in
+      *.lo)
+	test -n "$objs$old_deplibs" && \
+	  func_fatal_error "cannot build library object \`$output' from non-libtool objects"
+
+	libobj=$output
+	func_lo2o "$libobj"
+	obj=$func_lo2o_result
+	;;
+      *)
+	libobj=
+	obj="$output"
+	;;
+      esac
+
+      # Delete the old objects.
+      $opt_dry_run || $RM $obj $libobj
+
+      # Objects from convenience libraries.  This assumes
+      # single-version convenience libraries.  Whenever we create
+      # different ones for PIC/non-PIC, this we'll have to duplicate
+      # the extraction.
+      reload_conv_objs=
+      gentop=
+      # reload_cmds runs $LD directly, so let us get rid of
+      # -Wl from whole_archive_flag_spec and hope we can get by with
+      # turning comma into space..
+      wl=
+
+      if test -n "$convenience"; then
+	if test -n "$whole_archive_flag_spec"; then
+	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
+	  reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
+	else
+	  gentop="$output_objdir/${obj}x"
+	  generated="$generated $gentop"
+
+	  func_extract_archives $gentop $convenience
+	  reload_conv_objs="$reload_objs $func_extract_archives_result"
+	fi
+      fi
+
+      # Create the old-style object.
+      reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
+
+      output="$obj"
+      func_execute_cmds "$reload_cmds" 'exit $?'
+
+      # Exit if we aren't doing a library object file.
+      if test -z "$libobj"; then
+	if test -n "$gentop"; then
+	  func_show_eval '${RM}r "$gentop"'
+	fi
+
+	exit $EXIT_SUCCESS
+      fi
+
+      if test "$build_libtool_libs" != yes; then
+	if test -n "$gentop"; then
+	  func_show_eval '${RM}r "$gentop"'
+	fi
+
+	# Create an invalid libtool object if no PIC, so that we don't
+	# accidentally link it into a program.
+	# $show "echo timestamp > $libobj"
+	# $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
+	exit $EXIT_SUCCESS
+      fi
+
+      if test -n "$pic_flag" || test "$pic_mode" != default; then
+	# Only do commands if we really have different PIC objects.
+	reload_objs="$libobjs $reload_conv_objs"
+	output="$libobj"
+	func_execute_cmds "$reload_cmds" 'exit $?'
+      fi
+
+      if test -n "$gentop"; then
+	func_show_eval '${RM}r "$gentop"'
+      fi
+
+      exit $EXIT_SUCCESS
+      ;;
+
+    prog)
+      case $host in
+	*cygwin*) func_stripname '' '.exe' "$output"
+	          output=$func_stripname_result.exe;;
+      esac
+      test -n "$vinfo" && \
+	func_warning "\`-version-info' is ignored for programs"
+
+      test -n "$release" && \
+	func_warning "\`-release' is ignored for programs"
+
+      test "$preload" = yes \
+        && test "$dlopen_support" = unknown \
+	&& test "$dlopen_self" = unknown \
+	&& test "$dlopen_self_static" = unknown && \
+	  func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
+
+      case $host in
+      *-*-rhapsody* | *-*-darwin1.[012])
+	# On Rhapsody replace the C library is the System framework
+	compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+	finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+	;;
+      esac
+
+      case $host in
+      *-*-darwin*)
+	# Don't allow lazy linking, it breaks C++ global constructors
+	# But is supposedly fixed on 10.4 or later (yay!).
+	if test "$tagname" = CXX ; then
+	  case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
+	    10.[0123])
+	      compile_command="$compile_command ${wl}-bind_at_load"
+	      finalize_command="$finalize_command ${wl}-bind_at_load"
+	    ;;
+	  esac
+	fi
+	# Time to change all our "foo.ltframework" stuff back to "-framework foo"
+	compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	;;
+      esac
+
+
+      # move library search paths that coincide with paths to not yet
+      # installed libraries to the beginning of the library search list
+      new_libs=
+      for path in $notinst_path; do
+	case " $new_libs " in
+	*" -L$path/$objdir "*) ;;
+	*)
+	  case " $compile_deplibs " in
+	  *" -L$path/$objdir "*)
+	    new_libs="$new_libs -L$path/$objdir" ;;
+	  esac
+	  ;;
+	esac
+      done
+      for deplib in $compile_deplibs; do
+	case $deplib in
+	-L*)
+	  case " $new_libs " in
+	  *" $deplib "*) ;;
+	  *) new_libs="$new_libs $deplib" ;;
+	  esac
+	  ;;
+	*) new_libs="$new_libs $deplib" ;;
+	esac
+      done
+      compile_deplibs="$new_libs"
+
+
+      compile_command="$compile_command $compile_deplibs"
+      finalize_command="$finalize_command $finalize_deplibs"
+
+      if test -n "$rpath$xrpath"; then
+	# If the user specified any rpath flags, then add them.
+	for libdir in $rpath $xrpath; do
+	  # This is the magic to use -rpath.
+	  case "$finalize_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_rpath="$finalize_rpath $libdir" ;;
+	  esac
+	done
+      fi
+
+      # Now hardcode the library paths
+      rpath=
+      hardcode_libdirs=
+      for libdir in $compile_rpath $finalize_rpath; do
+	if test -n "$hardcode_libdir_flag_spec"; then
+	  if test -n "$hardcode_libdir_separator"; then
+	    if test -z "$hardcode_libdirs"; then
+	      hardcode_libdirs="$libdir"
+	    else
+	      # Just accumulate the unique libdirs.
+	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		;;
+	      *)
+		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		;;
+	      esac
+	    fi
+	  else
+	    eval flag=\"$hardcode_libdir_flag_spec\"
+	    rpath="$rpath $flag"
+	  fi
+	elif test -n "$runpath_var"; then
+	  case "$perm_rpath " in
+	  *" $libdir "*) ;;
+	  *) perm_rpath="$perm_rpath $libdir" ;;
+	  esac
+	fi
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+	  testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
+	  case :$dllsearchpath: in
+	  *":$libdir:"*) ;;
+	  ::) dllsearchpath=$libdir;;
+	  *) dllsearchpath="$dllsearchpath:$libdir";;
+	  esac
+	  case :$dllsearchpath: in
+	  *":$testbindir:"*) ;;
+	  ::) dllsearchpath=$testbindir;;
+	  *) dllsearchpath="$dllsearchpath:$testbindir";;
+	  esac
+	  ;;
+	esac
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+	 test -n "$hardcode_libdirs"; then
+	libdir="$hardcode_libdirs"
+	eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      compile_rpath="$rpath"
+
+      rpath=
+      hardcode_libdirs=
+      for libdir in $finalize_rpath; do
+	if test -n "$hardcode_libdir_flag_spec"; then
+	  if test -n "$hardcode_libdir_separator"; then
+	    if test -z "$hardcode_libdirs"; then
+	      hardcode_libdirs="$libdir"
+	    else
+	      # Just accumulate the unique libdirs.
+	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		;;
+	      *)
+		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		;;
+	      esac
+	    fi
+	  else
+	    eval flag=\"$hardcode_libdir_flag_spec\"
+	    rpath="$rpath $flag"
+	  fi
+	elif test -n "$runpath_var"; then
+	  case "$finalize_perm_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
+	  esac
+	fi
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+	 test -n "$hardcode_libdirs"; then
+	libdir="$hardcode_libdirs"
+	eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      finalize_rpath="$rpath"
+
+      if test -n "$libobjs" && test "$build_old_libs" = yes; then
+	# Transform all the library objects into standard objects.
+	compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+      fi
+
+      func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
+
+      # template prelinking step
+      if test -n "$prelink_cmds"; then
+	func_execute_cmds "$prelink_cmds" 'exit $?'
+      fi
+
+      wrappers_required=yes
+      case $host in
+      *cygwin* | *mingw* )
+        if test "$build_libtool_libs" != yes; then
+          wrappers_required=no
+        fi
+        ;;
+      *cegcc)
+        # Disable wrappers for cegcc, we are cross compiling anyway.
+        wrappers_required=no
+        ;;
+      *)
+        if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
+          wrappers_required=no
+        fi
+        ;;
+      esac
+      if test "$wrappers_required" = no; then
+	# Replace the output file specification.
+	compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+	link_command="$compile_command$compile_rpath"
+
+	# We have no uninstalled library dependencies, so finalize right now.
+	exit_status=0
+	func_show_eval "$link_command" 'exit_status=$?'
+
+	# Delete the generated files.
+	if test -f "$output_objdir/${outputname}S.${objext}"; then
+	  func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
+	fi
+
+	exit $exit_status
+      fi
+
+      if test -n "$compile_shlibpath$finalize_shlibpath"; then
+	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
+      fi
+      if test -n "$finalize_shlibpath"; then
+	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
+      fi
+
+      compile_var=
+      finalize_var=
+      if test -n "$runpath_var"; then
+	if test -n "$perm_rpath"; then
+	  # We should set the runpath_var.
+	  rpath=
+	  for dir in $perm_rpath; do
+	    rpath="$rpath$dir:"
+	  done
+	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
+	fi
+	if test -n "$finalize_perm_rpath"; then
+	  # We should set the runpath_var.
+	  rpath=
+	  for dir in $finalize_perm_rpath; do
+	    rpath="$rpath$dir:"
+	  done
+	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+	fi
+      fi
+
+      if test "$no_install" = yes; then
+	# We don't need to create a wrapper script.
+	link_command="$compile_var$compile_command$compile_rpath"
+	# Replace the output file specification.
+	link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+	# Delete the old output file.
+	$opt_dry_run || $RM $output
+	# Link the executable and exit
+	func_show_eval "$link_command" 'exit $?'
+	exit $EXIT_SUCCESS
+      fi
+
+      if test "$hardcode_action" = relink; then
+	# Fast installation is not supported
+	link_command="$compile_var$compile_command$compile_rpath"
+	relink_command="$finalize_var$finalize_command$finalize_rpath"
+
+	func_warning "this platform does not like uninstalled shared libraries"
+	func_warning "\`$output' will be relinked during installation"
+      else
+	if test "$fast_install" != no; then
+	  link_command="$finalize_var$compile_command$finalize_rpath"
+	  if test "$fast_install" = yes; then
+	    relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
+	  else
+	    # fast_install is set to needless
+	    relink_command=
+	  fi
+	else
+	  link_command="$compile_var$compile_command$compile_rpath"
+	  relink_command="$finalize_var$finalize_command$finalize_rpath"
+	fi
+      fi
+
+      # Replace the output file specification.
+      link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+
+      # Delete the old output files.
+      $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
+
+      func_show_eval "$link_command" 'exit $?'
+
+      # Now create the wrapper script.
+      func_verbose "creating $output"
+
+      # Quote the relink command for shipping.
+      if test -n "$relink_command"; then
+	# Preserve any variables that may affect compiler behavior
+	for var in $variables_saved_for_relink; do
+	  if eval test -z \"\${$var+set}\"; then
+	    relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
+	  elif eval var_value=\$$var; test -z "$var_value"; then
+	    relink_command="$var=; export $var; $relink_command"
+	  else
+	    func_quote_for_eval "$var_value"
+	    relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
+	  fi
+	done
+	relink_command="(cd `pwd`; $relink_command)"
+	relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+      fi
+
+      # Quote $ECHO for shipping.
+      if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then
+	case $progpath in
+	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
+	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
+	esac
+	qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`
+      else
+	qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`
+      fi
+
+      # Only actually do things if not in dry run mode.
+      $opt_dry_run || {
+	# win32 will think the script is a binary if it has
+	# a .exe suffix, so we strip it off here.
+	case $output in
+	  *.exe) func_stripname '' '.exe' "$output"
+	         output=$func_stripname_result ;;
+	esac
+	# test for cygwin because mv fails w/o .exe extensions
+	case $host in
+	  *cygwin*)
+	    exeext=.exe
+	    func_stripname '' '.exe' "$outputname"
+	    outputname=$func_stripname_result ;;
+	  *) exeext= ;;
+	esac
+	case $host in
+	  *cygwin* | *mingw* )
+	    func_dirname_and_basename "$output" "" "."
+	    output_name=$func_basename_result
+	    output_path=$func_dirname_result
+	    cwrappersource="$output_path/$objdir/lt-$output_name.c"
+	    cwrapper="$output_path/$output_name.exe"
+	    $RM $cwrappersource $cwrapper
+	    trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
+
+	    func_emit_cwrapperexe_src > $cwrappersource
+
+	    # The wrapper executable is built using the $host compiler,
+	    # because it contains $host paths and files. If cross-
+	    # compiling, it, like the target executable, must be
+	    # executed on the $host or under an emulation environment.
+	    $opt_dry_run || {
+	      $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
+	      $STRIP $cwrapper
+	    }
+
+	    # Now, create the wrapper script for func_source use:
+	    func_ltwrapper_scriptname $cwrapper
+	    $RM $func_ltwrapper_scriptname_result
+	    trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
+	    $opt_dry_run || {
+	      # note: this script will not be executed, so do not chmod.
+	      if test "x$build" = "x$host" ; then
+		$cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
+	      else
+		func_emit_wrapper no > $func_ltwrapper_scriptname_result
+	      fi
+	    }
+	  ;;
+	  * )
+	    $RM $output
+	    trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
+
+	    func_emit_wrapper no > $output
+	    chmod +x $output
+	  ;;
+	esac
+      }
+      exit $EXIT_SUCCESS
+      ;;
+    esac
+
+    # See if we need to build an old-fashioned archive.
+    for oldlib in $oldlibs; do
+
+      if test "$build_libtool_libs" = convenience; then
+	oldobjs="$libobjs_save $symfileobj"
+	addlibs="$convenience"
+	build_libtool_libs=no
+      else
+	if test "$build_libtool_libs" = module; then
+	  oldobjs="$libobjs_save"
+	  build_libtool_libs=no
+	else
+	  oldobjs="$old_deplibs $non_pic_objects"
+	  if test "$preload" = yes && test -f "$symfileobj"; then
+	    oldobjs="$oldobjs $symfileobj"
+	  fi
+	fi
+	addlibs="$old_convenience"
+      fi
+
+      if test -n "$addlibs"; then
+	gentop="$output_objdir/${outputname}x"
+	generated="$generated $gentop"
+
+	func_extract_archives $gentop $addlibs
+	oldobjs="$oldobjs $func_extract_archives_result"
+      fi
+
+      # Do each command in the archive commands.
+      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
+	cmds=$old_archive_from_new_cmds
+      else
+
+	# Add any objects from preloaded convenience libraries
+	if test -n "$dlprefiles"; then
+	  gentop="$output_objdir/${outputname}x"
+	  generated="$generated $gentop"
+
+	  func_extract_archives $gentop $dlprefiles
+	  oldobjs="$oldobjs $func_extract_archives_result"
+	fi
+
+	# POSIX demands no paths to be encoded in archives.  We have
+	# to avoid creating archives with duplicate basenames if we
+	# might have to extract them afterwards, e.g., when creating a
+	# static archive out of a convenience library, or when linking
+	# the entirety of a libtool archive into another (currently
+	# not supported by libtool).
+	if (for obj in $oldobjs
+	    do
+	      func_basename "$obj"
+	      $ECHO "$func_basename_result"
+	    done | sort | sort -uc >/dev/null 2>&1); then
+	  :
+	else
+	  $ECHO "copying selected object files to avoid basename conflicts..."
+	  gentop="$output_objdir/${outputname}x"
+	  generated="$generated $gentop"
+	  func_mkdir_p "$gentop"
+	  save_oldobjs=$oldobjs
+	  oldobjs=
+	  counter=1
+	  for obj in $save_oldobjs
+	  do
+	    func_basename "$obj"
+	    objbase="$func_basename_result"
+	    case " $oldobjs " in
+	    " ") oldobjs=$obj ;;
+	    *[\ /]"$objbase "*)
+	      while :; do
+		# Make sure we don't pick an alternate name that also
+		# overlaps.
+		newobj=lt$counter-$objbase
+		func_arith $counter + 1
+		counter=$func_arith_result
+		case " $oldobjs " in
+		*[\ /]"$newobj "*) ;;
+		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
+		esac
+	      done
+	      func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
+	      oldobjs="$oldobjs $gentop/$newobj"
+	      ;;
+	    *) oldobjs="$oldobjs $obj" ;;
+	    esac
+	  done
+	fi
+	eval cmds=\"$old_archive_cmds\"
+
+	func_len " $cmds"
+	len=$func_len_result
+	if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	  cmds=$old_archive_cmds
+	else
+	  # the command line is too long to link in one step, link in parts
+	  func_verbose "using piecewise archive linking..."
+	  save_RANLIB=$RANLIB
+	  RANLIB=:
+	  objlist=
+	  concat_cmds=
+	  save_oldobjs=$oldobjs
+	  oldobjs=
+	  # Is there a better way of finding the last object in the list?
+	  for obj in $save_oldobjs
+	  do
+	    last_oldobj=$obj
+	  done
+	  eval test_cmds=\"$old_archive_cmds\"
+	  func_len " $test_cmds"
+	  len0=$func_len_result
+	  len=$len0
+	  for obj in $save_oldobjs
+	  do
+	    func_len " $obj"
+	    func_arith $len + $func_len_result
+	    len=$func_arith_result
+	    func_append objlist " $obj"
+	    if test "$len" -lt "$max_cmd_len"; then
+	      :
+	    else
+	      # the above command should be used before it gets too long
+	      oldobjs=$objlist
+	      if test "$obj" = "$last_oldobj" ; then
+		RANLIB=$save_RANLIB
+	      fi
+	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
+	      objlist=
+	      len=$len0
+	    fi
+	  done
+	  RANLIB=$save_RANLIB
+	  oldobjs=$objlist
+	  if test "X$oldobjs" = "X" ; then
+	    eval cmds=\"\$concat_cmds\"
+	  else
+	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
+	  fi
+	fi
+      fi
+      func_execute_cmds "$cmds" 'exit $?'
+    done
+
+    test -n "$generated" && \
+      func_show_eval "${RM}r$generated"
+
+    # Now create the libtool archive.
+    case $output in
+    *.la)
+      old_library=
+      test "$build_old_libs" = yes && old_library="$libname.$libext"
+      func_verbose "creating $output"
+
+      # Preserve any variables that may affect compiler behavior
+      for var in $variables_saved_for_relink; do
+	if eval test -z \"\${$var+set}\"; then
+	  relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
+	elif eval var_value=\$$var; test -z "$var_value"; then
+	  relink_command="$var=; export $var; $relink_command"
+	else
+	  func_quote_for_eval "$var_value"
+	  relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
+	fi
+      done
+      # Quote the link command for shipping.
+      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
+      relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+      if test "$hardcode_automatic" = yes ; then
+	relink_command=
+      fi
+
+      # Only create the output if not a dry run.
+      $opt_dry_run || {
+	for installed in no yes; do
+	  if test "$installed" = yes; then
+	    if test -z "$install_libdir"; then
+	      break
+	    fi
+	    output="$output_objdir/$outputname"i
+	    # Replace all uninstalled libtool libraries with the installed ones
+	    newdependency_libs=
+	    for deplib in $dependency_libs; do
+	      case $deplib in
+	      *.la)
+		func_basename "$deplib"
+		name="$func_basename_result"
+		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+		test -z "$libdir" && \
+		  func_fatal_error "\`$deplib' is not a valid libtool archive"
+		newdependency_libs="$newdependency_libs $libdir/$name"
+		;;
+	      *) newdependency_libs="$newdependency_libs $deplib" ;;
+	      esac
+	    done
+	    dependency_libs="$newdependency_libs"
+	    newdlfiles=
+
+	    for lib in $dlfiles; do
+	      case $lib in
+	      *.la)
+	        func_basename "$lib"
+		name="$func_basename_result"
+		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+		test -z "$libdir" && \
+		  func_fatal_error "\`$lib' is not a valid libtool archive"
+		newdlfiles="$newdlfiles $libdir/$name"
+		;;
+	      *) newdlfiles="$newdlfiles $lib" ;;
+	      esac
+	    done
+	    dlfiles="$newdlfiles"
+	    newdlprefiles=
+	    for lib in $dlprefiles; do
+	      case $lib in
+	      *.la)
+		# Only pass preopened files to the pseudo-archive (for
+		# eventual linking with the app. that links it) if we
+		# didn't already link the preopened objects directly into
+		# the library:
+		func_basename "$lib"
+		name="$func_basename_result"
+		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+		test -z "$libdir" && \
+		  func_fatal_error "\`$lib' is not a valid libtool archive"
+		newdlprefiles="$newdlprefiles $libdir/$name"
+		;;
+	      esac
+	    done
+	    dlprefiles="$newdlprefiles"
+	  else
+	    newdlfiles=
+	    for lib in $dlfiles; do
+	      case $lib in
+		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+		*) abs=`pwd`"/$lib" ;;
+	      esac
+	      newdlfiles="$newdlfiles $abs"
+	    done
+	    dlfiles="$newdlfiles"
+	    newdlprefiles=
+	    for lib in $dlprefiles; do
+	      case $lib in
+		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+		*) abs=`pwd`"/$lib" ;;
+	      esac
+	      newdlprefiles="$newdlprefiles $abs"
+	    done
+	    dlprefiles="$newdlprefiles"
+	  fi
+	  $RM $output
+	  # place dlname in correct position for cygwin
+	  tdlname=$dlname
+	  case $host,$output,$installed,$module,$dlname in
+	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
+	  esac
+	  $ECHO > $output "\
+# $outputname - a libtool library file
+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='$tdlname'
+
+# Names of this library.
+library_names='$library_names'
+
+# The name of the static archive.
+old_library='$old_library'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags='$new_inherited_linker_flags'
+
+# Libraries that this one depends upon.
+dependency_libs='$dependency_libs'
+
+# Names of additional weak libraries provided by this library
+weak_library_names='$weak_libs'
+
+# Version information for $libname.
+current=$current
+age=$age
+revision=$revision
+
+# Is this an already installed library?
+installed=$installed
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=$module
+
+# Files to dlopen/dlpreopen
+dlopen='$dlfiles'
+dlpreopen='$dlprefiles'
+
+# Directory that this library needs to be installed in:
+libdir='$install_libdir'"
+	  if test "$installed" = no && test "$need_relink" = yes; then
+	    $ECHO >> $output "\
+relink_command=\"$relink_command\""
+	  fi
+	done
+      }
+
+      # Do a symbolic link so that the libtool archive can be found in
+      # LD_LIBRARY_PATH before the program is installed.
+      func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
+      ;;
+    esac
+    exit $EXIT_SUCCESS
+}
+
+{ test "$mode" = link || test "$mode" = relink; } &&
+    func_mode_link ${1+"$@"}
+
+
+# func_mode_uninstall arg...
+func_mode_uninstall ()
+{
+    $opt_debug
+    RM="$nonopt"
+    files=
+    rmforce=
+    exit_status=0
+
+    # This variable tells wrapper scripts just to set variables rather
+    # than running their programs.
+    libtool_install_magic="$magic"
+
+    for arg
+    do
+      case $arg in
+      -f) RM="$RM $arg"; rmforce=yes ;;
+      -*) RM="$RM $arg" ;;
+      *) files="$files $arg" ;;
+      esac
+    done
+
+    test -z "$RM" && \
+      func_fatal_help "you must specify an RM program"
+
+    rmdirs=
+
+    origobjdir="$objdir"
+    for file in $files; do
+      func_dirname "$file" "" "."
+      dir="$func_dirname_result"
+      if test "X$dir" = X.; then
+	objdir="$origobjdir"
+      else
+	objdir="$dir/$origobjdir"
+      fi
+      func_basename "$file"
+      name="$func_basename_result"
+      test "$mode" = uninstall && objdir="$dir"
+
+      # Remember objdir for removal later, being careful to avoid duplicates
+      if test "$mode" = clean; then
+	case " $rmdirs " in
+	  *" $objdir "*) ;;
+	  *) rmdirs="$rmdirs $objdir" ;;
+	esac
+      fi
+
+      # Don't error if the file doesn't exist and rm -f was used.
+      if { test -L "$file"; } >/dev/null 2>&1 ||
+	 { test -h "$file"; } >/dev/null 2>&1 ||
+	 test -f "$file"; then
+	:
+      elif test -d "$file"; then
+	exit_status=1
+	continue
+      elif test "$rmforce" = yes; then
+	continue
+      fi
+
+      rmfiles="$file"
+
+      case $name in
+      *.la)
+	# Possibly a libtool archive, so verify it.
+	if func_lalib_p "$file"; then
+	  func_source $dir/$name
+
+	  # Delete the libtool libraries and symlinks.
+	  for n in $library_names; do
+	    rmfiles="$rmfiles $objdir/$n"
+	  done
+	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
+
+	  case "$mode" in
+	  clean)
+	    case "  $library_names " in
+	    # "  " in the beginning catches empty $dlname
+	    *" $dlname "*) ;;
+	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
+	    esac
+	    test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
+	    ;;
+	  uninstall)
+	    if test -n "$library_names"; then
+	      # Do each command in the postuninstall commands.
+	      func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
+	    fi
+
+	    if test -n "$old_library"; then
+	      # Do each command in the old_postuninstall commands.
+	      func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
+	    fi
+	    # FIXME: should reinstall the best remaining shared library.
+	    ;;
+	  esac
+	fi
+	;;
+
+      *.lo)
+	# Possibly a libtool object, so verify it.
+	if func_lalib_p "$file"; then
+
+	  # Read the .lo file
+	  func_source $dir/$name
+
+	  # Add PIC object to the list of files to remove.
+	  if test -n "$pic_object" &&
+	     test "$pic_object" != none; then
+	    rmfiles="$rmfiles $dir/$pic_object"
+	  fi
+
+	  # Add non-PIC object to the list of files to remove.
+	  if test -n "$non_pic_object" &&
+	     test "$non_pic_object" != none; then
+	    rmfiles="$rmfiles $dir/$non_pic_object"
+	  fi
+	fi
+	;;
+
+      *)
+	if test "$mode" = clean ; then
+	  noexename=$name
+	  case $file in
+	  *.exe)
+	    func_stripname '' '.exe' "$file"
+	    file=$func_stripname_result
+	    func_stripname '' '.exe' "$name"
+	    noexename=$func_stripname_result
+	    # $file with .exe has already been added to rmfiles,
+	    # add $file without .exe
+	    rmfiles="$rmfiles $file"
+	    ;;
+	  esac
+	  # Do a test to see if this is a libtool program.
+	  if func_ltwrapper_p "$file"; then
+	    if func_ltwrapper_executable_p "$file"; then
+	      func_ltwrapper_scriptname "$file"
+	      relink_command=
+	      func_source $func_ltwrapper_scriptname_result
+	      rmfiles="$rmfiles $func_ltwrapper_scriptname_result"
+	    else
+	      relink_command=
+	      func_source $dir/$noexename
+	    fi
+
+	    # note $name still contains .exe if it was in $file originally
+	    # as does the version of $file that was added into $rmfiles
+	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
+	    if test "$fast_install" = yes && test -n "$relink_command"; then
+	      rmfiles="$rmfiles $objdir/lt-$name"
+	    fi
+	    if test "X$noexename" != "X$name" ; then
+	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
+	    fi
+	  fi
+	fi
+	;;
+      esac
+      func_show_eval "$RM $rmfiles" 'exit_status=1'
+    done
+    objdir="$origobjdir"
+
+    # Try to remove the ${objdir}s in the directories where we deleted files
+    for dir in $rmdirs; do
+      if test -d "$dir"; then
+	func_show_eval "rmdir $dir >/dev/null 2>&1"
+      fi
+    done
+
+    exit $exit_status
+}
+
+{ test "$mode" = uninstall || test "$mode" = clean; } &&
+    func_mode_uninstall ${1+"$@"}
+
+test -z "$mode" && {
+  help="$generic_help"
+  func_fatal_help "you must specify a MODE"
+}
+
+test -z "$exec_cmd" && \
+  func_fatal_help "invalid operation mode \`$mode'"
+
+if test -n "$exec_cmd"; then
+  eval exec "$exec_cmd"
+  exit $EXIT_FAILURE
+fi
+
+exit $exit_status
+
+
+# The TAGs below are defined such that we never get into a situation
+# in which we disable both kinds of libraries.  Given conflicting
+# choices, we go for a static library, that is the most portable,
+# since we can't tell whether shared libraries were disabled because
+# the user asked for that or because the platform doesn't support
+# them.  This is particularly important on AIX, because we don't
+# support having both static and shared libraries enabled at the same
+# time on that platform, so we default to a shared-only configuration.
+# If a disable-shared tag is given, we'll fallback to a static-only
+# configuration.  But we'll never go from static-only to shared-only.
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
+build_libtool_libs=no
+build_old_libs=yes
+# ### END LIBTOOL TAG CONFIG: disable-shared
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-static
+build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
+# ### END LIBTOOL TAG CONFIG: disable-static
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation:2
+# End:
+# vi:sw=2
+
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/Makefile.am b/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..297314a1e76c61394ead6790b38982d12302627e
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/Makefile.am
@@ -0,0 +1 @@
+EXTRA_DIST = gp-byteorder.m4 gp-check-library.m4 gp-check-popt.m4 gp-check-shell-environment.m4 gp-config-msg.m4 gp-documentation.m4 gp-gettext-hack.m4 gp-packaging.m4 gp-pkg-config.m4 gp-references.m4 stdint.m4
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-byteorder.m4 b/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-byteorder.m4
new file mode 100644
index 0000000000000000000000000000000000000000..693f939b7d251dc35404fb8314f5457d0c60a5ca
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-byteorder.m4
@@ -0,0 +1,354 @@
+dnl AC_NEED_BYTEORDER_H ( HEADER-TO-GENERATE )
+dnl Copyright 2001-2002 by Dan Fandrich <dan@coneharvesters.com>
+dnl This file may be copied and used freely without restrictions.  No warranty
+dnl is expressed or implied.
+dnl
+dnl Create a header file that guarantees that byte swapping macros of the
+dnl ntohl variety as well as the extended types included in OpenBSD and
+dnl NetBSD such as le32toh are defined.  If possible, the standard ntohl
+dnl are overloaded as they are optimized for the given platform, but when
+dnl this is not possible (e.g. on a big-endian machine) they are defined
+dnl in this file.
+
+dnl Look for a symbol in a header file
+dnl AC_HAVE_SYMBOL ( IDENTIFIER, HEADER-FILE, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND )
+AC_DEFUN([AC_HAVE_SYMBOL],
+[
+AC_MSG_CHECKING(for $1 in $2)
+AC_EGREP_CPP([symbol is present|\<$1\>],[
+#include <$2>
+#ifdef $1
+ 	symbol is present
+#endif
+	], 
+[AC_MSG_RESULT(yes)
+$3
+],
+[AC_MSG_RESULT(no)
+$4
+])])
+
+
+dnl Create a header file that defines extended byte swapping macros
+AC_DEFUN([AC_NEED_BYTEORDER_H],
+[
+changequote(, )dnl
+ac_dir=`echo $1|sed 's%/[^/][^/]*$%%'`
+changequote([, ])dnl
+if test "$ac_dir" != "$1" && test "$ac_dir" != .; then
+  # The file is in a subdirectory.
+  test ! -d "$ac_dir" && mkdir "$ac_dir"
+fi
+
+# We're only interested in the target CPU, but it's not always set
+effective_target="$target"
+if test "x$effective_target" = xNONE -o "x$effective_target" = x ; then
+	effective_target="$host"
+fi
+AC_SUBST(effective_target)
+
+cat > "$1" << EOF
+/* This file is generated automatically by configure */
+/* It is valid only for the system type ${effective_target} */
+
+#ifndef __BYTEORDER_H
+#define __BYTEORDER_H
+
+EOF
+
+dnl First, do an endian check
+AC_C_BIGENDIAN
+
+dnl Look for NetBSD-style extended byte swapping macros
+AC_HAVE_SYMBOL(le32toh,machine/endian.h,
+ [HAVE_LE32TOH=1
+ cat >> "$1" << EOF
+/* extended byte swapping macros are already available */
+#include <machine/endian.h>
+
+EOF],
+
+[
+
+dnl Look for standard byte swapping macros
+AC_HAVE_SYMBOL(ntohl,arpa/inet.h,
+ [cat >> "$1" << EOF
+/* ntohl and relatives live here */
+#include <arpa/inet.h>
+
+EOF],
+
+ [AC_HAVE_SYMBOL(ntohl,netinet/in.h,
+  [cat >> "$1" << EOF
+/* ntohl and relatives live here */
+#include <netinet/in.h>
+
+EOF],true)])
+])
+
+dnl Look for generic byte swapping macros
+
+dnl OpenBSD
+AC_HAVE_SYMBOL(swap32,machine/endian.h,
+ [cat >> "$1" << EOF
+/* swap32 and swap16 are defined in machine/endian.h */
+
+EOF],
+
+ [
+dnl Linux GLIBC
+  AC_HAVE_SYMBOL(bswap_32,byteswap.h,
+   [cat >> "$1" << EOF
+/* Define generic byte swapping functions */
+#include <byteswap.h>
+#define swap16(x) bswap_16(x)
+#define swap32(x) bswap_32(x)
+#define swap64(x) bswap_64(x)
+
+EOF],
+
+   [
+dnl NetBSD
+  	AC_HAVE_SYMBOL(bswap32,machine/endian.h,
+    dnl We're already including machine/endian.h if this test succeeds
+  	 [cat >> "$1" << EOF
+/* Define generic byte swapping functions */
+EOF
+	if test "$HAVE_LE32TOH" != "1"; then
+		echo '#include <machine/endian.h>'>> "$1"
+	fi
+cat >> "$1" << EOF
+#define swap16(x) bswap16(x)
+#define swap32(x) bswap32(x)
+#define swap64(x) bswap64(x)
+
+EOF],
+
+   [
+dnl FreeBSD
+  	AC_HAVE_SYMBOL(__byte_swap_long,sys/types.h,
+  	 [cat >> "$1" << EOF
+/* Define generic byte swapping functions */
+#include <sys/types.h>
+#define swap16(x) __byte_swap_word(x)
+#define swap32(x) __byte_swap_long(x)
+/* No optimized 64 bit byte swapping macro is available */
+#define swap64(x) ((uint64_t)(((uint64_t)(x) << 56) & 0xff00000000000000ULL | \\
+			      ((uint64_t)(x) << 40) & 0x00ff000000000000ULL | \\
+			      ((uint64_t)(x) << 24) & 0x0000ff0000000000ULL | \\
+			      ((uint64_t)(x) << 8)  & 0x000000ff00000000ULL | \\
+			      ((x) >> 8)  & 0x00000000ff000000ULL | \\
+			      ((x) >> 24) & 0x0000000000ff0000ULL | \\
+			      ((x) >> 40) & 0x000000000000ff00ULL | \\
+			      ((x) >> 56) & 0x00000000000000ffULL))
+
+EOF],
+
+  	 [
+dnl OS X
+  	AC_HAVE_SYMBOL(NXSwapLong,machine/byte_order.h,
+  	 [cat >> "$1" << EOF
+/* Define generic byte swapping functions */
+#include <machine/byte_order.h>
+#define swap16(x) NXSwapShort(x)
+#define swap32(x) NXSwapLong(x)
+#define swap64(x) NXSwapLongLong(x)
+
+EOF],
+         [
+	if test $ac_cv_c_bigendian = yes; then
+		cat >> "$1" << EOF
+/* No other byte swapping functions are available on this big-endian system */
+#define swap16(x)	((uint16_t)(((x) << 8) | ((uint16_t)(x) >> 8)))
+#define swap32(x)	((uint32_t)(((uint32_t)(x) << 24) & 0xff000000UL | \\
+				    ((uint32_t)(x) << 8)  & 0x00ff0000UL | \\
+				    ((x) >> 8)  & 0x0000ff00UL | \\
+				    ((x) >> 24) & 0x000000ffUL))
+#define swap64(x) ((uint64_t)(((uint64_t)(x) << 56) & 0xff00000000000000ULL | \\
+			      ((uint64_t)(x) << 40) & 0x00ff000000000000ULL | \\
+			      ((uint64_t)(x) << 24) & 0x0000ff0000000000ULL | \\
+			      ((uint64_t)(x) << 8)  & 0x000000ff00000000ULL | \\
+			      ((x) >> 8)  & 0x00000000ff000000ULL | \\
+			      ((x) >> 24) & 0x0000000000ff0000ULL | \\
+			      ((x) >> 40) & 0x000000000000ff00ULL | \\
+			      ((x) >> 56) & 0x00000000000000ffULL))
+
+EOF
+	else
+ cat >> "$1" << EOF
+/* Use these as generic byteswapping macros on this little endian system */
+#define swap16(x)		ntohs(x)
+#define swap32(x)		ntohl(x)
+/* No optimized 64 bit byte swapping macro is available */
+#define swap64(x) ((uint64_t)(((uint64_t)(x) << 56) & 0xff00000000000000ULL | \\
+			      ((uint64_t)(x) << 40) & 0x00ff000000000000ULL | \\
+			      ((uint64_t)(x) << 24) & 0x0000ff0000000000ULL | \\
+			      ((uint64_t)(x) << 8)  & 0x000000ff00000000ULL | \\
+			      ((x) >> 8)  & 0x00000000ff000000ULL | \\
+			      ((x) >> 24) & 0x0000000000ff0000ULL | \\
+			      ((x) >> 40) & 0x000000000000ff00ULL | \\
+			      ((x) >> 56) & 0x00000000000000ffULL))
+
+EOF
+	fi
+])
+  	  ])
+    ])
+  ])
+])
+
+
+[
+if test "$HAVE_LE32TOH" != "1"; then
+ cat >> "$1" << EOF
+/* The byte swapping macros have the form: */
+/*   EENN[a]toh or htoEENN[a] where EE is be (big endian) or */
+/* le (little-endian), NN is 16 or 32 (number of bits) and a, */
+/* if present, indicates that the endian side is a pointer to an */
+/* array of uint8_t bytes instead of an integer of the specified length. */
+/* h refers to the host's ordering method. */
+
+/* So, to convert a 32-bit integer stored in a buffer in little-endian */
+/* format into a uint32_t usable on this machine, you could use: */
+/*   uint32_t value = le32atoh(&buf[3]); */
+/* To put that value back into the buffer, you could use: */
+/*   htole32a(&buf[3], value); */
+
+/* Define aliases for the standard byte swapping macros */
+/* Arguments to these macros must be properly aligned on natural word */
+/* boundaries in order to work properly on all architectures */
+#define htobe16(x) htons(x)
+#define htobe32(x) htonl(x)
+#define be16toh(x) ntohs(x)
+#define be32toh(x) ntohl(x)
+
+#define HTOBE16(x) (x) = htobe16(x)
+#define HTOBE32(x) (x) = htobe32(x)
+#define BE32TOH(x) (x) = be32toh(x)
+#define BE16TOH(x) (x) = be16toh(x)
+
+EOF
+
+ if test $ac_cv_c_bigendian = yes; then
+  cat >> "$1" << EOF
+/* Define our own extended byte swapping macros for big-endian machines */
+#define htole16(x)      swap16(x)
+#define htole32(x)      swap32(x)
+#define le16toh(x)      swap16(x)
+#define le32toh(x)      swap32(x)
+
+#define htobe64(x)      (x)
+#define be64toh(x)      (x)
+
+#define HTOLE16(x)      (x) = htole16(x)
+#define HTOLE32(x)      (x) = htole32(x)
+#define LE16TOH(x)      (x) = le16toh(x)
+#define LE32TOH(x)      (x) = le32toh(x)
+
+#define HTOBE64(x)      (void) (x)
+#define BE64TOH(x)      (void) (x)
+
+EOF
+ else
+  cat >> "$1" << EOF
+/* On little endian machines, these macros are null */
+#define htole16(x)      (x)
+#define htole32(x)      (x)
+#define htole64(x)      (x)
+#define le16toh(x)      (x)
+#define le32toh(x)      (x)
+#define le64toh(x)      (x)
+
+#define HTOLE16(x)      (void) (x)
+#define HTOLE32(x)      (void) (x)
+#define HTOLE64(x)      (void) (x)
+#define LE16TOH(x)      (void) (x)
+#define LE32TOH(x)      (void) (x)
+#define LE64TOH(x)      (void) (x)
+
+/* These don't have standard aliases */
+#define htobe64(x)      swap64(x)
+#define be64toh(x)      swap64(x)
+
+#define HTOBE64(x)      (x) = htobe64(x)
+#define BE64TOH(x)      (x) = be64toh(x)
+
+EOF
+ fi
+fi
+
+cat >> "$1" << EOF
+/* Define the C99 standard length-specific integer types */
+#include <_stdint.h>
+
+EOF
+
+case "${effective_target}" in
+ i[3456]86-*)
+  cat >> "$1" << EOF
+/* Here are some macros to create integers from a byte array */
+/* These are used to get and put integers from/into a uint8_t array */
+/* with a specific endianness.  This is the most portable way to generate */
+/* and read messages to a network or serial device.  Each member of a */
+/* packet structure must be handled separately. */
+
+/* The i386 and compatibles can handle unaligned memory access, */
+/* so use the optimized macros above to do this job */
+#define be16atoh(x)     be16toh(*(uint16_t*)(x))
+#define be32atoh(x)     be32toh(*(uint32_t*)(x))
+#define be64atoh(x)     be64toh(*(uint64_t*)(x))
+#define le16atoh(x)     le16toh(*(uint16_t*)(x))
+#define le32atoh(x)     le32toh(*(uint32_t*)(x))
+#define le64atoh(x)     le64toh(*(uint64_t*)(x))
+
+#define htobe16a(a,x)   *(uint16_t*)(a) = htobe16(x)
+#define htobe32a(a,x)   *(uint32_t*)(a) = htobe32(x)
+#define htobe64a(a,x)   *(uint64_t*)(a) = htobe64(x)
+#define htole16a(a,x)   *(uint16_t*)(a) = htole16(x)
+#define htole32a(a,x)   *(uint32_t*)(a) = htole32(x)
+#define htole64a(a,x)   *(uint64_t*)(a) = htole64(x)
+
+EOF
+  ;;
+
+ *)
+  cat >> "$1" << EOF
+/* Here are some macros to create integers from a byte array */
+/* These are used to get and put integers from/into a uint8_t array */
+/* with a specific endianness.  This is the most portable way to generate */
+/* and read messages to a network or serial device.  Each member of a */
+/* packet structure must be handled separately. */
+
+/* Non-optimized but portable macros */
+#define be16atoh(x)     ((uint16_t)(((x)[0]<<8)|(x)[1]))
+#define be32atoh(x)     ((uint32_t)(((x)[0]<<24)|((x)[1]<<16)|((x)[2]<<8)|(x)[3]))
+#define be64atoh(x)     ((uint64_t)(((x)[0]<<56)|((x)[1]<<48)|((x)[2]<<40)| \\
+        ((x)[3]<<32)|((x)[4]<<24)|((x)[5]<<16)|((x)[6]<<8)|(x)[7]))
+#define le16atoh(x)     ((uint16_t)(((x)[1]<<8)|(x)[0]))
+#define le32atoh(x)     ((uint32_t)(((x)[3]<<24)|((x)[2]<<16)|((x)[1]<<8)|(x)[0]))
+#define le64atoh(x)     ((uint64_t)(((x)[7]<<56)|((x)[6]<<48)|((x)[5]<<40)| \\
+        ((x)[4]<<32)|((x)[3]<<24)|((x)[2]<<16)|((x)[1]<<8)|(x)[0]))
+
+#define htobe16a(a,x)   (a)[0]=(uint8_t)((x)>>8), (a)[1]=(uint8_t)(x)
+#define htobe32a(a,x)   (a)[0]=(uint8_t)((x)>>24), (a)[1]=(uint8_t)((x)>>16), \\
+        (a)[2]=(uint8_t)((x)>>8), (a)[3]=(uint8_t)(x)
+#define htobe64a(a,x)   (a)[0]=(uint8_t)((x)>>56), (a)[1]=(uint8_t)((x)>>48), \\
+        (a)[2]=(uint8_t)((x)>>40), (a)[3]=(uint8_t)((x)>>32), \\
+        (a)[4]=(uint8_t)((x)>>24), (a)[5]=(uint8_t)((x)>>16), \\
+        (a)[6]=(uint8_t)((x)>>8), (a)[7]=(uint8_t)(x)
+#define htole16a(a,x)   (a)[1]=(uint8_t)((x)>>8), (a)[0]=(uint8_t)(x)
+#define htole32a(a,x)   (a)[3]=(uint8_t)((x)>>24), (a)[2]=(uint8_t)((x)>>16), \\
+        (a)[1]=(uint8_t)((x)>>8), (a)[0]=(uint8_t)(x)
+#define htole64a(a,x)   (a)[7]=(uint8_t)((x)>>56), (a)[6]=(uint8_t)((x)>>48), \\
+        (a)[5]=(uint8_t)((x)>>40), (a)[4]=(uint8_t)((x)>>32), \\
+        (a)[3]=(uint8_t)((x)>>24), (a)[2]=(uint8_t)((x)>>16), \\
+        (a)[1]=(uint8_t)((x)>>8), (a)[0]=(uint8_t)(x)
+
+EOF
+  ;;
+esac
+]
+
+cat >> "$1" << EOF
+#endif /*__BYTEORDER_H*/
+EOF])
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-check-library.m4 b/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-check-library.m4
new file mode 100644
index 0000000000000000000000000000000000000000..dd3700a7d323a54c41faf49b4df21d8e0aa3b56c
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-check-library.m4
@@ -0,0 +1,378 @@
+dnl @synopsis GP_CHECK_LIBRARY([VARNAMEPART],[libname],[VERSION-REQUIREMENT],
+dnl                            [headername],[functionname],
+dnl                            [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND],
+dnl                            [OPTIONAL-REQUIRED-ETC],[WHERE-TO-GET-IT])
+dnl
+dnl Checks for the presence of a certain library.
+dnl
+dnl Parameters:
+dnl
+dnl    VARNAMEPART            partial variable name for variable definitions
+dnl    libname                name of library
+dnl    VERSION-REQUIREMENT    check for the version using pkg-config.
+dnl                           default: []
+dnl    headername             name of header file
+dnl                           default: []
+dnl    functionname           name of function name in library
+dnl                           default: []
+dnl    ACTION-IF-FOUND        shell action to execute if found
+dnl                           default: []
+dnl    ACTION-IF-NOT-FOUND    shell action to execute if not found
+dnl                           default: []
+dnl    OPTIONAL-REQUIRED-ETC  one of "mandatory", "default-on", "default-off"
+dnl                                  "disable-explicitly"
+dnl                           default: [mandatory]
+dnl    WHERE-TO-GET-IT        place where to find the library, e.g. a URL
+dnl                           default: []
+dnl
+dnl What the ACTION-IFs can do:
+dnl
+dnl   * change the variable have_[$1] to "yes" or "no" and thus change
+dnl     the outcome of the test
+dnl   * execute additional checks to define more specific variables, e.g.
+dnl     for different API versions
+dnl
+dnl What the OPTIONAL-REQUIRED-ETC options mean:
+dnl
+dnl   mandatory           Absolute requirement, cannot be disabled.
+dnl   default-on          If found, it is used. If not found, it is not used.
+dnl   default-off         In case of --with-libfoo, detect it. Without
+dnl                       --with-libfoo, do not look for and use it.
+dnl   disable-explicitly  Required by default, but can be disabled by
+dnl                       explicitly giving --without-libfoo.
+dnl
+dnl These results have happened after calling GP_CHECK_LIBRARY:
+dnl
+dnl    AM_CONDITIONAL([HAVE_VARPREFIX],[ if found ])
+dnl    AM_SUBST([have_VARPREFIX], [ "yes" if found, "no" if not found ])
+dnl    AM_SUBST([VARPREFIX_CFLAGS],[ -I, -D and stuff ])
+dnl    AM_SUBST([VARPREFIX_LIBS], [ /path/to/libname.la -L/path -lfoo ])
+dnl
+dnl Parameters to ./configure which influence the GP_CHECK_LIBRARY results:
+dnl
+dnl   * VARNAMEPART_LIBS=/foobar/arm-palmos/lib/libname.la
+dnl     VARNAMEPART_CFLAGS=-I/foobar/include
+dnl   * --without-libfoo
+dnl   * --with-libfoo=/usr/local
+dnl   * --with-libfoo-include-dir=/foobar/include
+dnl   * --with-libfoo-lib=/foobar/arm-palmos/lib
+dnl   * --with-libfoo=autodetect
+dnl
+dnl Examples:
+dnl    GP_CHECK_LIBRARY([LIBEXIF], [libexif])dnl
+dnl    GP_CHECK_LIBRARY([LIBEXIF], [libexif-gtk], [>= 0.3.3])dnl
+dnl                                  note the space! ^
+dnl
+dnl Possible enhancements:
+dnl
+dnl   * Derive VAR_PREFIX directly from libname
+dnl     This will change the calling conventions, so be aware of that.
+dnl   * Give names of a header file and function name and to a test
+dnl     compilation.
+dnl
+AC_DEFUN([_GP_CHECK_LIBRARY_SOEXT],[dnl
+AC_MSG_CHECKING([for dynamic library extension])
+soext=""
+case "$host" in
+	*linux*)	soext=".so" ;;
+	*sunos*)	soext=".so" ;;
+	*solaris*)	soext=".so" ;;
+	*bsd*)		soext=".so" ;;
+	*darwin*)	soext=".dylib" ;;
+	*w32*)		soext=".dll" ;;
+esac
+if test "x$soext" = "x"; then
+	soext=".so"
+	AC_MSG_RESULT([${soext}])
+	AC_MSG_WARN([
+Host system "${host}" not recognized, defaulting to "${soext}".
+])
+else
+	AC_MSG_RESULT([${soext}])
+fi
+])dnl
+dnl
+AC_DEFUN([_GP_CHECK_LIBRARY],[
+# ----------------------------------------------------------------------
+# [GP_CHECK_LIBRARY]([$1],[$2],[$3],
+#                    [$4],[$5],
+#                    [...],[...],[$8])
+m4_ifval([$9],[dnl
+# $9
+])dnl
+# ----------------------------------------------------------------------
+dnl
+AC_REQUIRE([GP_CONFIG_MSG])dnl
+AC_REQUIRE([GP_PKG_CONFIG])dnl
+AC_REQUIRE([_GP_CHECK_LIBRARY_SOEXT])dnl
+dnl Use _CFLAGS and _LIBS given to configure.
+dnl This makes it possible to set these vars in a configure script
+dnl and AC_CONFIG_SUBDIRS this configure.
+AC_ARG_VAR([$1][_CFLAGS], [CFLAGS for compiling with ][$2])dnl
+AC_ARG_VAR([$1][_LIBS],   [LIBS to add for linking against ][$2])dnl
+dnl
+AC_MSG_CHECKING([for ][$2][ to use])
+userdef_[$1]=no
+have_[$1]=no
+if test "x${[$1][_LIBS]}" = "x" && test "x${[$1][_CFLAGS]}" = "x"; then
+	dnl define --with/--without argument
+	m4_if([$8], [default-off],
+		[m4_pushdef([gp_lib_arg],[--without-][$2])dnl
+			try_[$1]=no
+		],
+		[m4_pushdef([gp_lib_arg],[--with-][$2])dnl
+			try_[$1]=auto
+		])dnl
+	AC_ARG_WITH([$2],[AS_HELP_STRING([gp_lib_arg][=PREFIX],[where to find ][$2][, "no" or "auto"])],[try_][$1][="$withval"])
+	if test "x${[try_][$1]}" = "xauto"; then [try_][$1]=autodetect; fi
+	AC_MSG_RESULT([${try_][$1][}])
+	m4_popdef([gp_lib_arg])dnl
+	if test "x${[try_][$1]}" = "xautodetect"; then
+		dnl OK, we have to autodetect.
+		dnl We start autodetection with the cleanest known method: pkg-config
+		if test "x${[have_][$1]}" = "xno"; then
+			dnl we need that line break after the PKG_CHECK_MODULES
+			m4_ifval([$3],
+				[PKG_CHECK_MODULES([$1],[$2][ $3],[have_][$1][=yes],[:])],
+				[PKG_CHECK_MODULES([$1],[$2],     [have_][$1][=yes],[:])]
+			)
+		fi
+		dnl If pkg-config didn't find anything, try the libfoo-config program
+		dnl certain known libraries ship with.
+		if test "x${[have_][$1]}" = "xno"; then
+			AC_MSG_WARN([The `$2' library could not be found using pkg-config.
+No version checks will be performed if it is found using any other method.])
+			AC_MSG_CHECKING([$2][ config program])
+			m4_pushdef([gp_lib_config],[m4_if([$2],[libusb],[libusb-config],
+				[$2],[libgphoto2],[gphoto2-config],
+				[$2],[libgphoto2_port],[gphoto2-port-config],
+				[none])])dnl
+			AC_MSG_RESULT([gp_lib_config])
+			AC_PATH_PROG([$1][_CONFIG_PROG],[gp_lib_config])
+			if test -n "${[$1][_CONFIG_PROG]}" &&
+				test "${[$1][_CONFIG_PROG]}" != "none"; then
+				AC_MSG_CHECKING([for ][$2][ parameters from ][gp_lib_config])
+				[$1]_LIBS="$(${[$1][_CONFIG_PROG]} --libs || echo "*error*")"
+				[$1]_CFLAGSS="$(${[$1][_CONFIG_PROG]} --cflags || echo "*error*")"
+				if test "x${[$1]_LIBS}" = "*error*" || 
+					test "x${[$1]_CFLAGS}" = "*error*"; then
+					AC_MSG_RESULT([error])
+				else
+					have_[$1]=yes
+					AC_MSG_RESULT([ok])
+				fi
+			fi
+			m4_popdef([gp_lib_config])dnl
+		fi
+		dnl Neither pkg-config, nor the libfoo-config program have found anything.
+		dnl So let's just probe the system.
+		if test "x${[have_][$1]}" = "xno"; then
+			ifs="$IFS"
+			IFS=":" # FIXME: for W32 and OS/2 we may need ";" here
+			for _libdir_ in \
+				${LD_LIBRARY_PATH} \
+				"${libdir}" \
+				"${prefix}/lib64" "${prefix}/lib" \
+				/usr/lib64 /usr/lib \
+				/usr/local/lib64 /usr/local/lib \
+				/opt/lib64 /opt/lib
+			do
+				IFS="$ifs"
+				for _soext_ in .la ${soext} .a; do
+					if test -f "${_libdir_}/[$2]${_soext_}"
+					then
+						if test "x${_soext_}" = "x.la" ||
+						   test "x${_soext_}" = "x.a"; then
+							[$1]_LIBS="${_libdir_}/[$2]${_soext_}"
+						else
+							[$1]_LIBS="-L${_libdir_} -l$(echo "$2" | sed 's/^lib//')"
+						fi
+						break
+					fi
+				done
+				if test "x${[$1][_LIBS]}" != "x"; then
+					break
+				fi
+			done
+			IFS="$ifs"
+			if test "x${[$1][_LIBS]}" != "x"; then
+				have_[$1]=yes
+			fi
+		fi
+	elif test "x${[try_][$1]}" = "xno"; then
+		:
+	else
+		[$1][_LIBS]="-L${[try_][$1]}/lib -l$(echo "$2" | sed 's/^lib//')"
+		[$1][_CFLAGS]="-I${[try_][$1]}/include"
+	fi
+elif test "x${[$1][_LIBS]}" != "x" && test "x${[$1][_CFLAGS]}" != "x"; then
+	AC_MSG_RESULT([user-defined])
+	userdef_[$1]=yes
+	have_[$1]=yes
+else
+	AC_MSG_RESULT([broken call])
+	AC_MSG_ERROR([
+* Fatal:
+* When calling configure for ${PACKAGE_TARNAME}
+*     ${PACKAGE_NAME}
+* either set both [$1][_LIBS] *and* [$1][_CFLAGS]
+* or neither.
+])
+fi
+dnl
+dnl ACTION-IF-FOUND
+dnl
+m4_ifval([$6],[dnl
+if test "x${[have_][$1]}" = "xyes"; then
+# ACTION-IF-FOUND
+$6
+fi
+])dnl
+dnl
+dnl ACTION-IF-NOT-FOUND
+dnl
+m4_ifval([$7],[dnl
+if test "x${[have_][$1]}" = "xno"; then
+# ACTION-IF-NOT-FOUND
+$7
+fi
+])dnl
+dnl
+dnl Run our own test compilation
+dnl
+m4_ifval([$4],[dnl
+if test "x${[have_][$1]}" = "xyes"; then
+dnl AC_MSG_CHECKING([whether ][$2][ test compile succeeds])
+dnl AC_MSG_RESULT([${[have_][$1]}])
+CPPFLAGS_save="$CPPFLAGS"
+CPPFLAGS="${[$1]_CFLAGS}"
+AC_CHECK_HEADER([$4],[have_][$1][=yes],[have_][$1][=no])
+CPPFLAGS="$CPPFLAGS_save"
+fi
+])dnl
+dnl
+dnl Run our own test link
+dnl    Does not work for libraries which be built after configure time,
+dnl    so we deactivate it for them (userdef_).
+dnl
+m4_ifval([$5],[dnl
+if test "x${[userdef_][$1]}" = "xno" && test "x${[have_][$1]}" = "xyes"; then
+	AC_MSG_CHECKING([for function ][$5][ in ][$2])
+	LIBS_save="$LIBS"
+	LIBS="${[$1]_LIBS}"
+	AC_TRY_LINK_FUNC([$5],[],[have_][$1][=no])
+	LIBS="$LIBS_save"
+	AC_MSG_RESULT([${[have_][$1]}])
+fi
+])dnl
+dnl
+dnl Abort configure script if mandatory, but not found
+dnl
+m4_if([$8],[mandatory],[
+if test "x${[have_][$1]}" = "xno"; then
+	AC_MSG_ERROR([
+PKG_CONFIG_PATH=${PKG_CONFIG_PATH}
+[$1][_LIBS]=${[$1][_LIBS]}
+[$1][_CFLAGS]=${[$1][_CFLAGS]}
+
+* Fatal: ${PACKAGE_NAME} requires $2 to build.
+* 
+* Possible solutions:
+*   - set PKG_CONFIG_PATH to adequate value
+*   - call configure with [$1][_LIBS]=.. and [$1][_CFLAGS]=..
+*   - call configure with one of the --with-$2 parameters
+]m4_ifval([$9],[dnl
+*   - get $2 and install it
+],[dnl
+*   - get $2 and install it:
+      $9]))
+fi
+])dnl
+dnl
+dnl Abort configure script if not found and not explicitly disabled
+dnl
+m4_if([$8],[disable-explicitly],[
+if test "x${[try_][$1]}" != "xno" && test "x${[have_][$1]}" = "xno"; then
+        AC_MSG_ERROR([
+PKG_CONFIG_PATH=${PKG_CONFIG_PATH}
+[$1][_LIBS]=${[$1][_LIBS]}
+[$1][_CFLAGS]=${[$1][_CFLAGS]}
+
+* Fatal: ${PACKAGE_NAME} by default requires $2 to build.
+*        You must explicitly disable $2 to build ${PACKAGE_TARNAME} without it.
+* 
+* Possible solutions:
+*   - call configure with --with-$2=no or --without-$2
+*   - set PKG_CONFIG_PATH to adequate value
+*   - call configure with [$1][_LIBS]=.. and [$1][_CFLAGS]=..
+*   - call configure with one of the --with-$2 parameters
+]m4_ifval([$9],[dnl
+*   - get $2 and install it
+],[dnl
+*   - get $2 and install it:
+      $9]))
+fi
+])dnl
+AM_CONDITIONAL([HAVE_][$1], [test "x$have_[$1]" = "xyes"])
+if test "x$have_[$1]" = "xyes"; then
+	AC_DEFINE([HAVE_][$1], 1, [whether we compile with ][$2][ support])
+	GP_CONFIG_MSG([$2],[yes])dnl
+	AC_MSG_CHECKING([$2][ library flags])
+	AC_MSG_RESULT([${[$1][_LIBS]}])
+	AC_MSG_CHECKING([$2][ cpp flags])
+	AC_MSG_RESULT([${[$1][_CFLAGS]}])
+else
+	GP_CONFIG_MSG([$2],[no])dnl
+fi
+dnl AC_SUBST is done implicitly by AC_ARG_VAR above.
+dnl AC_SUBST([$1][_LIBS])
+dnl AC_SUBST([$1][_CFLAGS])
+])dnl
+dnl
+dnl ####################################################################
+dnl
+AC_DEFUN([_GP_CHECK_LIBRARY_SYNTAX_ERROR],[dnl
+m4_errprint(__file__:__line__:[ Error:
+*** Calling $0 macro with old syntax
+*** Aborting.
+])dnl
+m4_exit(1)dnl
+])dnl
+dnl
+dnl ####################################################################
+dnl
+AC_DEFUN([GP_CHECK_LIBRARY],[dnl
+m4_if([$4], [mandatory],        [_GP_CHECK_LIBRARY_SYNTAX_ERROR($0)],
+      [$4], [default-enabled],  [_GP_CHECK_LIBRARY_SYNTAX_ERROR($0)],
+      [$4], [default-disabled], [_GP_CHECK_LIBRARY_SYNTAX_ERROR($0)])dnl
+m4_if([$8], [], [dnl
+      _GP_CHECK_LIBRARY([$1],[$2],[$3],[$4],[$5],[$6],[$7],[mandatory],[$9])],
+      [$8], [default-on], [dnl
+      _GP_CHECK_LIBRARY([$1],[$2],[$3],[$4],[$5],[$6],[$7],[$8],[$9])],
+      [$8], [disable-explicitly], [dnl
+      _GP_CHECK_LIBRARY([$1],[$2],[$3],[$4],[$5],[$6],[$7],[$8],[$9])],
+      [$8], [default-off], [dnl
+      _GP_CHECK_LIBRARY([$1],[$2],[$3],[$4],[$5],[$6],[$7],[$8],[$9])],
+      [$8], [mandatory], [dnl
+      _GP_CHECK_LIBRARY([$1],[$2],[$3],[$4],[$5],[$6],[$7],[$8],[$9])],
+      [m4_errprint(__file__:__line__:[ Error:
+Illegal argument 6 to $0: `$6'
+It must be one of "default-on", "default-off", "mandatory".
+])m4_exit(1)])dnl
+])dnl
+dnl
+m4_pattern_disallow([GP_CHECK_LIBRARY])
+m4_pattern_disallow([_GP_CHECK_LIBRARY])
+m4_pattern_disallow([_GP_CHECK_LIBRARY_SYNTAX_ERROR])
+m4_pattern_disallow([_GP_CHECK_LIBRARY_SOEXT])
+dnl
+dnl ####################################################################
+dnl
+dnl Please do not remove this:
+dnl filetype: 6e60b4f0-acb2-4cd5-8258-42014f92bd2c
+dnl I use this to find all the different instances of this file which 
+dnl are supposed to be synchronized.
+dnl
+dnl Local Variables:
+dnl mode: autoconf
+dnl End:
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-check-popt.m4 b/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-check-popt.m4
new file mode 100644
index 0000000000000000000000000000000000000000..585bf21babbf89bb3da79d7d9ca092e0d6cd8810
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-check-popt.m4
@@ -0,0 +1,180 @@
+dnl @synopsis GP_CHECK_POPT(FLAG)
+dnl
+dnl Check whether libpopt is available.
+dnl FLAG must be one of
+dnl    "mandatory"
+dnl    "default-enabled"
+dnl    "default-disabled"
+dnl
+AC_DEFUN([GP_CHECK_POPT],[
+#
+# [GP_CHECK_POPT]
+#
+AC_REQUIRE([GP_CONFIG_MSG])dnl
+m4_if([$1],[mandatory],        [_GP_CHECK_POPT([mandatory])],
+      [$1],[default-enabled],  [_GP_CHECK_POPT([disable])],
+      [$1],[default-disabled], [_GP_CHECK_POPT([enable])],
+      [m4_errprint(__file__:__line__:[ Error:
+Illegal argument to $0: `$1'
+Valid values are: mandatory, default-enabled, default-disabled
+])m4_exit(1)])dnl
+])dnl
+dnl
+AC_DEFUN([_GP_CHECK_POPT],[
+m4_if([$1],[mandatory],[
+try_popt=yes
+require_popt=yes
+],[
+try_popt=auto
+require_popt=no
+AC_ARG_ENABLE([popt],
+[AS_HELP_STRING([--$1-popt],[Do not use popt])],
+[ if   test "x$withval" = no \
+    || test "x$withval" = off \
+    || test "x$withval" = false; 
+  then
+    try_popt=no
+    require_popt=no
+  elif test "x$withval" = yes \
+    || test "x$withval" = on \
+    || test "x$withval" = true
+  then
+    try_popt=yes
+    require_popt=yes
+  fi
+])dnl
+])dnl
+
+AC_MSG_CHECKING([whether popt is required])
+AC_MSG_RESULT([${require_popt}])
+
+if test "$require_popt" != yes; then
+	AC_MSG_CHECKING([whether popt is requested])
+	AC_MSG_RESULT([${try_popt}])
+fi
+
+dnl Implicit AC_SUBST
+AC_ARG_VAR([POPT_CFLAGS],[CPPFLAGS to compile with libpopt])dnl
+AC_ARG_VAR([POPT_LIBS],[LDFLAGS to link with libpopt])dnl
+
+have_popt=no
+
+if test "x$POPT_CFLAGS" = "x" && test "x$POPT_LIBS" = "x"; then
+
+	# try to find options to compile popt.h
+	CPPFLAGS_save="$CPPFLAGS"
+	popth_found=no
+	for popt_prefix in "" /usr /usr/local
+	do
+		if test -n "${popt_prefix}"; then
+			:
+		elif test -d "${popt_prefix}/include"; then
+			CPPFLAGS="-I${popt_prefix}/include ${CPPFLAGS}"
+		else
+			continue
+		fi
+		ac_cv_header_popt_h=""
+		unset ac_cv_header_popt_h
+		AC_CHECK_HEADER([popt.h], [popth_found=yes])
+		if test "$popth_found" = yes; then break; fi
+	done
+	CPPFLAGS="$CPPFLAGS_save"
+	if test "$popth_found" = "yes"; then
+		if test "$popt_prefix" = ""; then
+			POPT_CFLAGS=""
+		else
+			POPT_CFLAGS="-I${popt_prefix}/include"
+		fi
+	else
+		AC_MSG_ERROR([
+* Cannot autodetect popt.h
+*
+* Set POPT_CFLAGS and POPT_LIBS correctly.
+])
+	fi
+
+	# try to find options to link against popt
+	LDFLAGS_save="$LDFLAGS"
+	popt_links=no
+	for popt_prefix in /usr "" /usr/local; do
+		# We could have "/usr" and "lib64" at the beginning of the
+		# lists. Then the first tested location would
+		# incidentally be the right one on 64bit systems, and
+		# thus work around a bug in libtool on 32bit systems:
+		#
+		# 32bit libtool doesn't know about 64bit systems, and so the
+		# compilation will fail when linking a 32bit library from
+		# /usr/lib to a 64bit binary.
+		#
+		# This hack has been confirmed to workwith a
+		# 32bit Debian Sarge and 64bit Fedora Core 3 system.
+		for ldir in lib64 "" lib; do
+			popt_libdir="${popt_prefix}/${ldir}"
+			if test "${popt_libdir}" = "/"; then
+				popt_libdir=""
+			elif test -d "${popt_libdir}"; then
+				LDFLAGS="-L${popt_libdir} ${LDFLAGS}"
+			else
+				continue
+			fi
+			# Avoid caching of results
+			ac_cv_lib_popt_poptStuffArgs=""
+			unset ac_cv_lib_popt_poptStuffArgs
+			AC_CHECK_LIB([popt], [poptStuffArgs], [popt_links=yes])
+			if test "$popt_links" = yes; then break; fi
+		done
+		if test "$popt_links" = yes; then break; fi
+	done
+	LDFLAGS="$LDFLAGS_save"
+	if test "$popt_links" = "yes"; then
+		if test "$popt_libdir" = ""; then
+			POPT_LIBS="-lpopt"
+		else
+			POPT_LIBS="-L${popt_libdir} -lpopt"
+		fi
+	else
+		AC_MSG_ERROR([
+* Cannot autodetect library directory containing popt
+*
+* Set POPT_CFLAGS and POPT_LIBS correctly.
+])
+	fi
+	have_popt=yes
+elif test "x$POPT_CFLAGS" != "x" && test "x$POPT_LIBS" != "x"; then
+    # just use the user specivied option
+    popt_msg="yes (user specified)"
+    have_popt=yes
+else
+	AC_MSG_ERROR([
+* Fatal: Either set both POPT_CFLAGS and POPT_LIBS or neither.
+])
+fi
+
+AC_MSG_CHECKING([if popt is functional])
+if test "$require_popt$have_popt" = "yesno"; then
+	AC_MSG_RESULT([no, but required])
+	AC_MSG_ERROR([
+* popt library not found
+* Fatal: ${PACKAGE_NAME} (${PACKAGE_TARNAME}) requires popt
+* Please install it and/or set POPT_CFLAGS and POPT_LIBS.
+])
+fi
+AC_MSG_RESULT([${have_popt}])
+
+GP_CONFIG_MSG([use popt library], [${have_popt}])
+if test "$have_popt" = "yes"; then
+	AC_DEFINE([HAVE_POPT],[1],[whether the popt library is available])
+	GP_CONFIG_MSG([popt libs],[${POPT_LIBS}])
+	GP_CONFIG_MSG([popt cppflags],[${POPT_CFLAGS}])
+fi
+AM_CONDITIONAL([HAVE_POPT],[test "$have_popt" = "yes"])
+])dnl
+dnl
+dnl Please do not remove this:
+dnl filetype: 7595380e-eff3-49e5-90ab-e40f1d544639
+dnl I use this to find all the different instances of this file which 
+dnl are supposed to be synchronized.
+dnl
+dnl Local Variables:
+dnl mode: autoconf
+dnl End:
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-check-shell-environment.m4 b/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-check-shell-environment.m4
new file mode 100644
index 0000000000000000000000000000000000000000..b9850e7aa9dc05af5524980127de10ad877fa0f4
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-check-shell-environment.m4
@@ -0,0 +1,48 @@
+dnl @synopsis GP_CHECK_SHELL_ENVIRONMENT([SHOW-LOCALE-VARS])
+dnl 
+dnl Check that the shell environment is sane.
+dnl
+dnl If SHOW-LOCALE-VARS is set to [true], print all LC_* and LANG*
+dnl variables at configure time. (WARNING: This is not portable!)
+dnl
+dnl
+AC_DEFUN([GP_CHECK_SHELL_ENVIRONMENT],
+[
+# make sure "cd" doesn't print anything on stdout
+if test x"${CDPATH+set}" = xset
+then
+	CDPATH=:
+	export CDPATH
+fi
+
+# make sure $() command substitution works
+AC_MSG_CHECKING([for POSIX sh \$() command substitution])
+if test "x$(pwd)" = "x`pwd`" && test "y$(echo "foobar")" = "y`echo foobar`" # ''''
+then
+	AC_MSG_RESULT([yes])
+else
+	AC_MSG_RESULT([no])
+	uname=`uname 2>&1` # ''
+	uname_a=`uname -a 2>&1` # ''
+	AC_MSG_ERROR([
+
+* POSIX sh \$() command substition does not work with this shell.
+*
+* You are running a very rare species of shell. Please report this
+* sighting to <${PACKAGE_BUGREPORT}>:
+* SHELL=${SHELL}
+* uname=${uname}
+* uname-a=${uname_a}
+* Please also include your OS and version.
+*
+* Run this configure script using a better (i.e. POSIX compliant) shell.
+])
+fi
+dnl
+m4_if([$1],[true],[dnl
+printenv | grep -E '^(LC_|LANG)'
+])dnl
+
+dnl
+])dnl
+dnl
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-config-msg.m4 b/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-config-msg.m4
new file mode 100644
index 0000000000000000000000000000000000000000..cc1935182ccd7cefe4bd17c5b30e20c02b4d1a99
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-config-msg.m4
@@ -0,0 +1,102 @@
+dnl
+dnl GP_CONFIG_INIT
+dnl      use default LHS width (called implicitly if not called explicitly)
+dnl GP_CONFIG_INIT([WIDTH-OF-LHS])
+dnl      explicitly set the LHS width to the given value
+dnl
+dnl GP_CONFIG_MSG
+dnl      empty output line
+dnl GP_CONFIG_MSG([LHS],[RHS])
+dnl      formatted output line "LHS: RHS"
+dnl
+dnl GP_CONFIG_OUTPUT
+dnl      print all the output messages we collected in the mean time
+dnl
+dnl Simple way to print a configuration summary at the end of ./configure.
+dnl
+dnl Example usage:
+dnl
+dnl    GP_CONFIG_INIT
+dnl    GP_CONFIG_MSG([Source code location],[${srcdir}])
+dnl    GP_CONFIG_MSG([Compiler],[${CC}])
+dnl    GP_CONFIG_MSG
+dnl    GP_CONFIG_MSG([Feature foo],[${foo}])
+dnl    GP_CONFIG_MSG([Location of bar],[${bar}])
+dnl    [...]
+dnl    AC_OUTPUT
+dnl    GP_CONFIG_OUTPUT
+dnl
+dnl
+AC_DEFUN([GP_CONFIG_INIT],
+[dnl
+AC_REQUIRE([GP_CHECK_SHELL_ENVIRONMENT])
+dnl the empty string must contain at least as many spaces as the substr length
+dnl FIXME: let m4 determine that length
+dnl        (collect left parts in array and choose largest length)
+m4_if([$1],[],[gp_config_len="30"],[gp_config_len="$1"])
+gp_config_empty=""
+gp_config_len3="$(expr "$gp_config_len" - 3)"
+n="$gp_config_len"
+while test "$n" -gt 0; do
+      gp_config_empty="${gp_config_empty} "
+      n="$(expr "$n" - 1)"
+done
+gp_config_msg="
+Configuration (${PACKAGE_TARNAME} ${PACKAGE_VERSION}):
+"
+])dnl
+dnl
+dnl
+AC_DEFUN([GP_CONFIG_MSG],
+[AC_REQUIRE([GP_CONFIG_INIT])dnl
+m4_if([$1],[],[
+gp_config_msg="${gp_config_msg}
+"
+],[$2],[],[
+gp_config_msg="${gp_config_msg}
+  [$1]
+"
+],[
+gp_config_msg_len="$(expr "[$1]" : '.*')"
+if test "$gp_config_msg_len" -ge "$gp_config_len"; then
+	gp_config_msg_lhs="$(expr "[$1]" : "\(.\{0,${gp_config_len3}\}\)")..:"
+else
+	gp_config_msg_lhs="$(expr "[$1]:${gp_config_empty}" : "\(.\{0,${gp_config_len}\}\)")"
+fi
+gp_config_msg="${gp_config_msg}    ${gp_config_msg_lhs} [$2]
+"
+])])dnl
+dnl
+AC_DEFUN([GP_CONFIG_MSG_SUBDIRS],[dnl
+# Message about configured subprojects
+if test "x$subdirs" != "x"; then
+	GP_CONFIG_MSG()dnl
+	_subdirs=""
+	for sd in $subdirs; do
+		ssd="$(basename "$sd")"
+		if test "x$_subdirs" = "x"; then
+			_subdirs="$ssd";
+		else
+			_subdirs="$_subdirs $ssd"
+		fi
+	done
+	GP_CONFIG_MSG([Subprojects],[${_subdirs}])dnl
+fi
+])dnl
+dnl
+AC_DEFUN([GP_CONFIG_OUTPUT],
+[AC_REQUIRE([GP_CONFIG_INIT])dnl
+AC_REQUIRE([GP_CONFIG_MSG])dnl
+AC_REQUIRE([GP_CONFIG_MSG_SUBDIRS])dnl
+echo "${gp_config_msg}
+You may run \"make\" and \"make install\" now."
+])dnl
+dnl
+dnl Please do not remove this:
+dnl filetype: de774af3-dc3b-4b1d-b6f2-4aca35d3da16
+dnl I use this to find all the different instances of this file which 
+dnl are supposed to be synchronized.
+dnl
+dnl Local Variables:
+dnl mode: autoconf
+dnl End:
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-documentation.m4 b/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-documentation.m4
new file mode 100644
index 0000000000000000000000000000000000000000..c355f0679e4ef1318100305aa653d932c2b15ada
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-documentation.m4
@@ -0,0 +1,149 @@
+dnl
+dnl check where to install documentation
+dnl
+dnl determines documentation "root directory", i.e. the directory
+dnl where all documentation will be placed in
+dnl
+
+AC_DEFUN([GP_DOC_GENERAL],[dnl
+AC_MSG_CHECKING([whether to build any docs])
+AC_ARG_ENABLE([docs], [dnl
+AS_HELP_STRING([--disable-docs], [whether to create any documentation])], [dnl
+case "$enableval" in
+	yes|true|on) gp_build_docs="yes" ;;
+	*) gp_build_docs="no" ;;
+esac
+],[dnl
+gp_build_docs="yes"
+])dnl
+AC_MSG_RESULT([${gp_build_docs}])
+AM_CONDITIONAL([BUILD_DOCS], [test "x${gp_build_docs}" = "xyes"])
+])dnl
+
+AC_DEFUN([GP_CHECK_DOC_DIR],
+[
+AC_REQUIRE([GP_DOC_GENERAL])dnl
+AC_BEFORE([$0], [GP_BUILD_GTK_DOCS])dnl
+AC_BEFORE([$0], [GP_CHECK_DOXYGEN])dnl
+
+AC_ARG_WITH([doc-dir],
+[AS_HELP_STRING([--with-doc-dir=PATH],
+[Where to install docs  [default=autodetect]])])
+
+# check for the main ("root") documentation directory
+AC_MSG_CHECKING([main docdir])
+
+if test "x${with_doc_dir}" != "x"
+then # docdir is given as parameter
+    docdir="${with_doc_dir}"
+    AC_MSG_RESULT([${docdir} (from parameter)])
+else # otherwise invent a docdir hopefully compatible with system policy
+    if test -d "/usr/share/doc"
+    then
+        maindocdir='${prefix}/share/doc'
+        AC_MSG_RESULT([${maindocdir} (FHS style)])
+    elif test -d "/usr/doc"
+    then
+        maindocdir='${prefix}/doc'
+        AC_MSG_RESULT([${maindocdir} (old style)])
+    else
+        maindocdir='${datadir}/doc'
+        AC_MSG_RESULT([${maindocdir} (default value)])
+    fi
+    AC_MSG_CHECKING([package docdir])
+    # check whether to include package version into documentation path
+    # FIXME: doesn't work properly.
+    if ls -d /usr/{share/,}doc/make-[0-9]* > /dev/null 2>&1
+    then
+        docdir="${maindocdir}/${PACKAGE}-${VERSION}"
+        AC_MSG_RESULT([${docdir} (redhat style)])
+    else
+        docdir="${maindocdir}/${PACKAGE}"
+        AC_MSG_RESULT([${docdir} (default style)])
+    fi
+fi
+
+AC_SUBST([docdir])
+])dnl
+
+dnl
+dnl check whether to build docs and where to:
+dnl
+dnl * determine presence of prerequisites (only gtk-doc for now)
+dnl * determine destination directory for HTML files
+dnl
+
+AC_DEFUN([GP_BUILD_GTK_DOCS],
+[
+# docdir has to be determined in advance
+AC_REQUIRE([GP_CHECK_DOC_DIR])
+
+# ---------------------------------------------------------------------------
+# gtk-doc: We use gtk-doc for building our documentation. However, we
+#          require the user to explicitely request the build.
+# ---------------------------------------------------------------------------
+try_gtkdoc=false
+gtkdoc_msg="no (not requested)"
+have_gtkdoc=false
+AC_ARG_ENABLE([docs],
+[AS_HELP_STRING([--enable-docs],
+[Use gtk-doc to build documentation [default=no]])],[
+	if test x$enableval = xyes; then
+		try_gtkdoc=true
+	fi
+])
+if $try_gtkdoc; then
+	AC_PATH_PROG([GTKDOC],[gtkdoc-mkdb])
+	if test -n "${GTKDOC}"; then
+		have_gtkdoc=true
+		gtkdoc_msg="yes"
+	else
+		gtkdoc_msg="no (http://www.gtk.org/rdp/download.html)"
+	fi
+fi
+AM_CONDITIONAL([ENABLE_GTK_DOC], [$have_gtkdoc])
+GP_CONFIG_MSG([build API docs with gtk-doc],[$gtkdoc_msg])
+
+
+# ---------------------------------------------------------------------------
+# Give the user the possibility to install html documentation in a 
+# user-defined location.
+# ---------------------------------------------------------------------------
+AC_ARG_WITH([html-dir],
+[AS_HELP_STRING([--with-html-dir=PATH],
+[Where to install html docs [default=autodetect]])])
+
+AC_MSG_CHECKING([for html dir])
+if test "x${with_html_dir}" = "x" ; then
+    htmldir="${docdir}/html"
+    AC_MSG_RESULT([${htmldir} (default)])
+else
+    htmldir="${with_html_dir}"
+    AC_MSG_RESULT([${htmldir} (from parameter)])
+fi
+AC_SUBST([htmldir])
+apidocdir="${htmldir}/api"
+AC_SUBST([apidocdir}])
+
+])dnl
+
+
+dnl doxygen related stuff
+dnl look for tools
+dnl define substitutions for Doxyfile.in
+AC_DEFUN([GP_CHECK_DOXYGEN],[dnl
+AC_REQUIRE([GP_CHECK_DOC_DIR])dnl
+AC_PATH_PROG([DOT], [dot], [false])
+AC_PATH_PROG([DOXYGEN], [doxygen], [false])
+AM_CONDITIONAL([HAVE_DOXYGEN], [test "x$DOXYGEN" != "xfalse"])
+AM_CONDITIONAL([HAVE_DOT], [test "x$DOT" != "xfalse"])
+if test "x$DOT" != "xfalse"; then
+	AC_SUBST([HAVE_DOT],[YES])
+else
+	AC_SUBST([HAVE_DOT],[NO])
+fi
+AC_SUBST([HTML_APIDOC_DIR], ["${PACKAGE_TARNAME}-api.html"])
+AC_SUBST([DOXYGEN_OUTPUT_DIR], [doxygen-output])
+AC_SUBST([HTML_APIDOC_INTERNALS_DIR], ["${PACKAGE_TARNAME}-internals.html"])
+])dnl
+
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-gettext-hack.m4 b/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-gettext-hack.m4
new file mode 100644
index 0000000000000000000000000000000000000000..0c6635ac2bd466e922dbff0f060b01931199bcb1
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-gettext-hack.m4
@@ -0,0 +1,82 @@
+dnl
+dnl GP_GETTEXT_HACK
+dnl
+dnl gettext hack, originally designed for libexif, libgphoto2, and Co.
+dnl This creates a po/Makevars file with adequate values if the
+dnl po/Makevars.template is present.
+dnl
+dnl Example usage:
+dnl    GP_GETTEXT_HACK([${PACKAGE_TARNAME}-${LIBFOO_CURRENT}],
+dnl                    [Copyright Holder],
+dnl                    [foo-translation@example.org])
+dnl    ALL_LINGUAS="de es fr"
+dnl    AM_GNU_GETTEXT_VERSION([0.14.1])
+dnl    AM_GNU_GETTEXT([external])
+dnl    AM_PO_SUBDIRS()
+dnl    AM_ICONV()
+dnl    GP_GETTEXT_FLAGS
+dnl
+dnl You can leave out the GP_GETTEXT_HACK parameters if you want to,
+dnl GP_GETTEXT_HACK will try fall back to sensible values in that case:
+dnl
+
+AC_DEFUN([GP_GETTEXT_HACK],
+[
+AC_BEFORE([$0], [AM_GNU_GETTEXT])dnl
+AC_BEFORE([$0], [AM_GNU_GETTEXT_VERSION])dnl
+m4_if([$1],[],[GETTEXT_PACKAGE="${PACKAGE_TARNAME}"],[GETTEXT_PACKAGE="$1"])
+# The gettext domain we're using
+AM_CPPFLAGS="$AM_CPPFLAGS -DGETTEXT_PACKAGE=\\\"${GETTEXT_PACKAGE}\\\""
+AC_SUBST([GETTEXT_PACKAGE])
+sed_cmds="s|^DOMAIN.*|DOMAIN = ${GETTEXT_PACKAGE}|"
+m4_if([$2],[],[],[sed_cmds="${sed_cmds};s|^COPYRIGHT_HOLDER.*|COPYRIGHT_HOLDER = $2|"])
+m4_ifval([$3],[
+sed_mb="$3"
+],[
+if test -n "$PACKAGE_BUGREPORT"; then
+   sed_mb="${PACKAGE_BUGREPORT}"
+else
+   AC_MSG_ERROR([
+*** Your configure.{ac,in} is wrong.
+*** Either define PACKAGE_BUGREPORT (by using the 4-parameter AC INIT syntax)
+*** or give [GP_GETTEXT_HACK] the third parameter.
+***
+])
+fi
+])
+sed_cmds="${sed_cmds};s|^MSGID_BUGS_ADDRESS.*|MSGID_BUGS_ADDRESS = ${sed_mb}|"
+# Not so sure whether this hack is all *that* evil...
+AC_MSG_CHECKING([for po/Makevars requiring hack])
+if test -f "${srcdir}/po/Makevars.template"; then
+   sed "$sed_cmds" < "${srcdir}/po/Makevars.template" > "${srcdir}/po/Makevars"
+   AC_MSG_RESULT([yes, done.])
+else
+   AC_MSG_RESULT([no])
+fi
+])
+
+AC_DEFUN([GP_GETTEXT_FLAGS],
+[
+AC_REQUIRE([AM_GNU_GETTEXT])
+AC_REQUIRE([GP_CONFIG_INIT])
+if test "x${BUILD_INCLUDED_LIBINTL}" = "xyes"; then
+   AM_CFLAGS="${AM_CFLAGS} -I\$(top_srcdir)/intl"
+fi
+GP_CONFIG_MSG([Use translations],[${USE_NLS}])
+if test "x$USE_NLS" = "xyes" && test "${BUILD_INCLUDED_LIBINTL}"; then
+   GP_CONFIG_MSG([Use included libintl],[${BUILD_INCLUDED_LIBINTL}])
+fi
+dnl We cannot use AC_DEFINE_UNQUOTED() for these definitions, as
+dnl we require make to do insert the proper $(datadir) value
+AC_SUBST([localedir], ['$(datadir)/locale'])
+AM_CPPFLAGS="$AM_CPPFLAGS -DLOCALEDIR=\\\"${localedir}\\\""
+])
+
+dnl Please do not remove this:
+dnl filetype: 71ff3941-a5ae-4677-a369-d7cb01f92c81
+dnl I use this to find all the different instances of this file which 
+dnl are supposed to be synchronized.
+
+dnl Local Variables:
+dnl mode: autoconf
+dnl End:
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-packaging.m4 b/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-packaging.m4
new file mode 100644
index 0000000000000000000000000000000000000000..163ece3019825e376d0d484cafaec9ad3bc50257
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-packaging.m4
@@ -0,0 +1,74 @@
+AC_DEFUN([GPKG_CHECK_RPM],
+[
+AC_ARG_WITH([rpmbuild],
+[AS_HELP_STRING([--with-rpmbuild=PATH],
+[Program to use for building RPMs])])
+
+if test -x "${with_rpmbuild}"
+then
+    RPMBUILD="${with_rpmbuild}"
+    AC_MSG_CHECKING([for rpmbuild or rpm])
+    AC_MSG_RESULT([${RPMBUILD} (from parameter)])
+else
+    AC_MSG_RESULT([using autodetection])
+    AC_CHECK_PROGS(RPMBUILD, [rpmbuild rpm], false)
+    AC_MSG_CHECKING([for rpmbuild or rpm])
+    AC_MSG_RESULT([${RPMBUILD} (autodetected)])
+fi
+AC_SUBST([RPMBUILD])
+AM_CONDITIONAL([ENABLE_RPM], [test "$RPMBUILD" != "false"])
+
+# whether libusb-devel is installed or not defines whether the RPM
+# packages we're going to build will depend on libusb and libusb-devel
+# RPM packages or not.
+AM_CONDITIONAL([RPM_LIBUSB_DEVEL], [rpm -q libusb-devel > /dev/null 2>&1])
+])
+
+AC_DEFUN([GPKG_CHECK_LINUX],
+[
+	# effective_target has to be determined in advance
+	AC_REQUIRE([AC_NEED_BYTEORDER_H])
+
+	is_linux=false
+	case "$effective_target" in 
+		*linux*)
+			is_linux=true
+			;;
+	esac
+	AM_CONDITIONAL([HAVE_LINUX], ["$is_linux"])
+
+	# required for docdir
+	# FIXME: Implicit dependency
+	# AC_REQUIRE(GP_CHECK_DOC_DIR)
+
+	AC_ARG_WITH([hotplug-doc-dir],
+	[AS_HELP_STRING([--with-hotplug-doc-dir=PATH],
+	[Where to install hotplug scripts as docs [default=autodetect]])])
+
+	AC_MSG_CHECKING([for hotplug doc dir])
+	if test "x${with_hotplug_doc_dir}" != "x"
+	then # given as parameter
+	    hotplugdocdir="${with_hotplug_doc_dir}"
+	    AC_MSG_RESULT([${hotplugdocdir} (from parameter)])
+	else # start at docdir
+	    hotplugdocdir="${docdir}/linux-hotplug"
+	    AC_MSG_RESULT([${hotplugdocdir} (default)])
+	fi
+	AC_SUBST([hotplugdocdir])
+
+	AC_ARG_WITH([hotplug-usermap-dir],
+	[AS_HELP_STRING([--with-hotplug-usermap-dir=PATH],
+	[Where to install hotplug scripts as docs [default=autodetect]])])
+
+	AC_MSG_CHECKING([for hotplug usermap dir])
+	if test "x${with_hotplug_usermap_dir}" != "x"
+	then # given as parameter
+	    hotplugusermapdir="${with_hotplug_usermap_dir}"
+	    AC_MSG_RESULT([${hotplugusermapdir} (from parameter)])
+	else # start at docdir
+	    hotplugusermapdir="${docdir}/linux-hotplug"
+	    AC_MSG_RESULT([${hotplugusermapdir} (default)])
+	fi
+
+	AC_SUBST([hotplugusermapdir])
+])
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-pkg-config.m4 b/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-pkg-config.m4
new file mode 100644
index 0000000000000000000000000000000000000000..531bfe476a80b9d4f3b141c525603b22a0692b02
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-pkg-config.m4
@@ -0,0 +1,42 @@
+dnl @synopsis GP_PKG_CONFIG
+dnl
+dnl If you want to set the PKG_CONFIG_PATH, best do so before
+dnl calling GP_PKG_CONFIG
+AC_DEFUN([GP_PKG_CONFIG],[
+#
+# [GP_PKG_CONFIG]
+#
+AC_ARG_VAR([PKG_CONFIG],[pkg-config package config utility])
+export PKG_CONFIG
+AC_ARG_VAR([PKG_CONFIG_PATH],[directory where pkg-config looks for *.pc files])
+export PKG_CONFIG_PATH
+
+AC_MSG_CHECKING([PKG_CONFIG_PATH])
+if test "x${PKG_CONFIG_PATH}" = "x"; then
+	AC_MSG_RESULT([empty])
+else
+	AC_MSG_RESULT([${PKG_CONFIG_PATH}])
+fi
+
+dnl AC_REQUIRE([PKG_CHECK_MODULES])
+AC_PATH_PROG([PKG_CONFIG],[pkg-config],[false])
+if test "$PKG_CONFIG" = "false"; then
+AC_MSG_ERROR([
+*** Build requires pkg-config
+***
+*** Possible solutions:
+***   - set PKG_CONFIG to where your pkg-config is located
+***   - set PATH to include the directory where pkg-config is installed
+***   - get it from http://freedesktop.org/software/pkgconfig/ and install it
+])
+fi
+])dnl
+
+dnl Please do not remove this:
+dnl filetype: d87b877b-80ec-447c-b042-21ec4a27c6f0
+dnl I use this to find all the different instances of this file which 
+dnl are supposed to be synchronized.
+
+dnl Local Variables:
+dnl mode: autoconf
+dnl End:
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-references.m4 b/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-references.m4
new file mode 100644
index 0000000000000000000000000000000000000000..fca98f14e345d6e98cf594af24958b00fca93112
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/gp-references.m4
@@ -0,0 +1,48 @@
+dnl
+dnl Define external references
+dnl
+dnl Define once, use many times. 
+dnl No more URLs and Mail addresses in translated strings and stuff.
+dnl
+
+AC_DEFUN([GP_REF],[
+AC_SUBST([$1],["$2"])
+AC_DEFINE_UNQUOTED([$1],["$2"],[$3])
+])
+
+AC_DEFUN([GP_REFERENCES],
+[
+
+GP_REF(	[URL_GPHOTO_HOME], 
+	[http://www.gphoto.org/], 
+	[gphoto project home page])dnl
+
+GP_REF(	[URL_GPHOTO_PROJECT], 
+	[http://sourceforge.net/projects/gphoto], 
+	[gphoto sourceforge project page])
+
+GP_REF(	[URL_DIGICAM_LIST],
+	[http://www.teaser.fr/~hfiguiere/linux/digicam.html],
+	[camera list with support status])
+
+GP_REF(	[URL_JPHOTO_HOME],
+	[http://jphoto.sourceforge.net/],
+	[jphoto home page])
+
+GP_REF(	[URL_USB_MASSSTORAGE],
+	[http://www.linux-usb.org/USB-guide/x498.html],
+ 	[information about using USB mass storage])
+
+GP_REF(	[MAIL_GPHOTO_DEVEL],
+	[<gphoto-devel@lists.sourceforge.net>],
+	[gphoto development mailing list])
+
+GP_REF(	[MAIL_GPHOTO_USER],
+	[<gphoto-user@lists.sourceforge.net>],
+	[gphoto user mailing list])
+
+GP_REF(	[MAIL_GPHOTO_TRANSLATION],
+	[<gphoto-translation@lists.sourceforge.net>],
+	[gphoto translation mailing list])
+
+])
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/stdint.m4 b/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/stdint.m4
new file mode 100644
index 0000000000000000000000000000000000000000..f95b28c773d162ad8f9b05ce821b67cf65372c62
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/m4m/stdint.m4
@@ -0,0 +1,734 @@
+dnl AC_NEED_STDINT_H ( HEADER-TO-GENERATE )
+dnl Copyright 2001-2002 by Dan Fandrich <dan@coneharvesters.com>
+dnl This file may be copied and used freely without restrictions.  No warranty
+dnl is expressed or implied.
+dnl
+dnl Look for a header file that defines size-specific integer types like the
+dnl ones recommended to be in stdint.h in the C99 standard (e.g. uint32_t).
+dnl This is a dumbed-down version of the macro of the same name in the file
+dnl ac_need_stdint_h.m4 which is part of the ac-archive, available at
+dnl <URL:http://ac-archive.sourceforge.net/> (also, another macro
+dnl AC_CREATE_STDINT_H by the same author).  This version is not as smart,
+dnl but works on older autoconf versions and has a different license.
+
+dnl AX_CHECK_DEFINED_TYPE ( TYPE, FILE, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND )
+dnl This is similar to _AC_CHECK_TYPE_NEW (a.k.a. new syntax version of
+dnl AC_CHECK_TYPE) in autoconf 2.50 but works on older versions
+AC_DEFUN([AX_CHECK_DEFINED_TYPE],
+[AC_MSG_CHECKING([for $1 in $2])
+AC_EGREP_CPP(changequote(<<,>>)dnl
+<<(^|[^a-zA-Z_0-9])$1[^a-zA-Z_0-9]>>dnl
+changequote([,]), [#include <$2>],
+ac_cv_type_$1=yes, ac_cv_type_$1=no)dnl
+AC_MSG_RESULT($ac_cv_type_$1)
+if test $ac_cv_type_$1 = yes; then
+  $3
+else
+  $4
+fi
+])
+
+dnl Look for a header file that defines size-specific integer types
+AC_DEFUN([AX_NEED_STDINT_H],
+[
+changequote(, )dnl
+ac_dir=`echo "$1"|sed 's%/[^/][^/]*$%%'`
+changequote([, ])dnl
+if test "$ac_dir" != "$1" && test "$ac_dir" != .; then
+  # The file is in a subdirectory.
+  test ! -d "$ac_dir" && mkdir "$ac_dir"
+fi
+
+AX_CHECK_DEFINED_TYPE(uint8_t,
+stdint.h,
+[
+cat > "$1" <<EOF
+/* This file is generated automatically by configure */
+#include <stdint.h>
+EOF],
+[AX_CHECK_DEFINED_TYPE(uint8_t,
+inttypes.h,
+[cat > "$1" <<EOF
+/* This file is generated automatically by configure */
+#include <inttypes.h>
+EOF],
+[AX_CHECK_DEFINED_TYPE(uint8_t,
+sys/types.h,
+[cat > "$1" <<EOF
+/* This file is generated automatically by configure */
+#include <sys/types.h>
+EOF],
+[AX_CHECK_DEFINED_TYPE(u_int8_t,
+sys/types.h,
+[cat > "$1" <<EOF
+/* This file is generated automatically by configure */
+#ifndef __STDINT_H
+#define __STDINT_H
+#include <sys/types.h>
+typedef u_int8_t uint8_t;
+typedef u_int16_t uint16_t;
+typedef u_int32_t uint32_t;
+EOF
+
+AX_CHECK_DEFINED_TYPE(u_int64_t,
+sys/types.h,
+[cat >> "$1" <<EOF
+typedef u_int64_t uint64_t;
+#endif /*!__STDINT_H*/
+EOF],
+[cat >> "$1" <<EOF
+/* 64-bit types are not available on this system */
+/* typedef u_int64_t uint64_t; */
+#endif /*!__STDINT_H*/
+EOF])
+
+],
+[AC_MSG_WARN([I can't find size-specific integer definitions on this system])
+if test -e "$1" ; then
+	rm -f "$1"
+fi
+])])])])dnl
+])
+
+AC_DEFUN([AX_CHECK_DATA_MODEL],[
+   AC_CHECK_SIZEOF(char)
+   AC_CHECK_SIZEOF(short)
+   AC_CHECK_SIZEOF(int)
+   AC_CHECK_SIZEOF(long)
+   AC_CHECK_SIZEOF(void*)
+   ac_cv_char_data_model=""
+   ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_char"
+   ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_short"
+   ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_int"
+   ac_cv_long_data_model=""
+   ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_int"
+   ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_long"
+   ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_voidp"
+   AC_MSG_CHECKING([data model])
+   case "$ac_cv_char_data_model/$ac_cv_long_data_model" in
+    122/242)     ac_cv_data_model="IP16"  ; n="standard 16bit machine" ;;
+    122/244)     ac_cv_data_model="LP32"  ; n="standard 32bit machine" ;;
+    122/*)       ac_cv_data_model="i16"   ; n="unusual int16 model" ;;
+    124/444)     ac_cv_data_model="ILP32" ; n="standard 32bit unixish" ;;
+    124/488)     ac_cv_data_model="LP64"  ; n="standard 64bit unixish" ;;
+    124/448)     ac_cv_data_model="LLP64" ; n="unusual 64bit unixish" ;;
+    124/*)       ac_cv_data_model="i32"   ; n="unusual int32 model" ;;
+    128/888)     ac_cv_data_model="ILP64" ; n="unusual 64bit numeric" ;;
+    128/*)       ac_cv_data_model="i64"   ; n="unusual int64 model" ;;
+    222/*2)      ac_cv_data_model="DSP16" ; n="strict 16bit dsptype" ;;
+    333/*3)      ac_cv_data_model="DSP24" ; n="strict 24bit dsptype" ;;
+    444/*4)      ac_cv_data_model="DSP32" ; n="strict 32bit dsptype" ;;
+    666/*6)      ac_cv_data_model="DSP48" ; n="strict 48bit dsptype" ;;
+    888/*8)      ac_cv_data_model="DSP64" ; n="strict 64bit dsptype" ;;
+    222/*|333/*|444/*|666/*|888/*) :
+                 ac_cv_data_model="iDSP"  ; n="unusual dsptype" ;;
+     *)          ac_cv_data_model="none"  ; n="very unusual model" ;;
+   esac
+   AC_MSG_RESULT([$ac_cv_data_model ($ac_cv_long_data_model, $n)])
+])
+
+dnl AX_CHECK_HEADER_STDINT_X([HEADERLIST][,ACTION-IF])
+AC_DEFUN([AX_CHECK_HEADER_STDINT_X],[
+AC_CACHE_CHECK([for stdint uintptr_t], [ac_cv_header_stdint_x],[
+ ac_cv_header_stdint_x="" # the 1997 typedefs (inttypes.h)
+  AC_MSG_RESULT([(..)])
+  for i in m4_ifval([$1],[$1],[stdint.h inttypes.h sys/inttypes.h]) ; do
+   unset ac_cv_type_uintptr_t
+   unset ac_cv_type_uint64_t
+   AC_CHECK_TYPE(uintptr_t,[ac_cv_header_stdint_x=$i],continue,[#include <$i>])
+   AC_CHECK_TYPE(uint64_t,[and64="/uint64_t"],[and64=""],[#include<$i>])
+   m4_ifvaln([$1],[$1]) break
+  done
+  AC_MSG_CHECKING([for stdint uintptr_t])
+ ])
+])
+
+AC_DEFUN([AX_CHECK_HEADER_STDINT_O],[
+AC_CACHE_CHECK([for stdint uint32_t], [ac_cv_header_stdint_o],[
+ ac_cv_header_stdint_o="" # the 1995 typedefs (sys/inttypes.h)
+  AC_MSG_RESULT([(..)])
+  for i in m4_ifval([$1],[$1],[inttypes.h sys/inttypes.h stdint.h]) ; do
+   unset ac_cv_type_uint32_t
+   unset ac_cv_type_uint64_t
+   AC_CHECK_TYPE(uint32_t,[ac_cv_header_stdint_o=$i],continue,[#include <$i>])
+   AC_CHECK_TYPE(uint64_t,[and64="/uint64_t"],[and64=""],[#include<$i>])
+   m4_ifvaln([$1],[$1]) break
+   break;
+  done
+  AC_MSG_CHECKING([for stdint uint32_t])
+ ])
+])
+
+AC_DEFUN([AX_CHECK_HEADER_STDINT_U],[
+AC_CACHE_CHECK([for stdint u_int32_t], [ac_cv_header_stdint_u],[
+ ac_cv_header_stdint_u="" # the BSD typedefs (sys/types.h)
+  AC_MSG_RESULT([(..)])
+  for i in m4_ifval([$1],[$1],[sys/types.h inttypes.h sys/inttypes.h]) ; do
+   unset ac_cv_type_u_int32_t
+   unset ac_cv_type_u_int64_t
+   AC_CHECK_TYPE(u_int32_t,[ac_cv_header_stdint_u=$i],continue,[#include <$i>])
+   AC_CHECK_TYPE(u_int64_t,[and64="/u_int64_t"],[and64=""],[#include<$i>])
+   m4_ifvaln([$1],[$1]) break
+   break;
+  done
+  AC_MSG_CHECKING([for stdint u_int32_t])
+ ])
+])
+
+AC_DEFUN([AX_CREATE_STDINT_H],
+[# ------ AX CREATE STDINT H -------------------------------------
+AC_MSG_CHECKING([for stdint types])
+ac_stdint_h=`echo ifelse($1, , _stdint.h, $1)`
+# try to shortcircuit - if the default include path of the compiler
+# can find a "stdint.h" header then we assume that all compilers can.
+AC_CACHE_VAL([ac_cv_header_stdint_t],[
+old_CXXFLAGS="$CXXFLAGS" ; CXXFLAGS=""
+old_CPPFLAGS="$CPPFLAGS" ; CPPFLAGS=""
+old_CFLAGS="$CFLAGS"     ; CFLAGS=""
+AC_TRY_COMPILE([#include <stdint.h>],[int_least32_t v = 0;],
+[ac_cv_stdint_result="(assuming C99 compatible system)"
+ ac_cv_header_stdint_t="stdint.h"; ],
+[ac_cv_header_stdint_t=""])
+CXXFLAGS="$old_CXXFLAGS"
+CPPFLAGS="$old_CPPFLAGS"
+CFLAGS="$old_CFLAGS" ])
+
+v="... $ac_cv_header_stdint_h"
+if test "$ac_stdint_h" = "stdint.h" ; then
+ AC_MSG_RESULT([(are you sure you want them in ./stdint.h?)])
+elif test "$ac_stdint_h" = "inttypes.h" ; then
+ AC_MSG_RESULT([(are you sure you want them in ./inttypes.h?)])
+elif test "_$ac_cv_header_stdint_t" = "_" ; then
+ AC_MSG_RESULT([(putting them into $ac_stdint_h)$v])
+else
+ ac_cv_header_stdint="$ac_cv_header_stdint_t"
+ AC_MSG_RESULT([$ac_cv_header_stdint (shortcircuit)])
+fi
+
+if test "_$ac_cv_header_stdint_t" = "_" ; then # can not shortcircuit..
+
+dnl .....intro message done, now do a few system checks.....
+dnl btw, all old CHECK_TYPE macros do automatically "DEFINE" a type,
+dnl therefore we use the autoconf implementation detail CHECK_TYPE_NEW
+dnl instead that is triggered with 3 or more arguments (see types.m4)
+
+inttype_headers=`echo $2 | sed -e 's/,/ /g'`
+
+ac_cv_stdint_result="(no helpful system typedefs seen)"
+AX_CHECK_HEADER_STDINT_X(dnl
+   stdint.h inttypes.h sys/inttypes.h $inttype_headers,
+   ac_cv_stdint_result="(seen uintptr_t$and64 in $i)")
+
+if test "_$ac_cv_header_stdint_x" = "_" ; then
+AX_CHECK_HEADER_STDINT_O(dnl,
+   inttypes.h sys/inttypes.h stdint.h $inttype_headers,
+   ac_cv_stdint_result="(seen uint32_t$and64 in $i)")
+fi
+
+if test "_$ac_cv_header_stdint_x" = "_" ; then
+if test "_$ac_cv_header_stdint_o" = "_" ; then
+AX_CHECK_HEADER_STDINT_U(dnl,
+   sys/types.h inttypes.h sys/inttypes.h $inttype_headers,
+   ac_cv_stdint_result="(seen u_int32_t$and64 in $i)")
+fi fi
+
+dnl if there was no good C99 header file, do some typedef checks...
+if test "_$ac_cv_header_stdint_x" = "_" ; then
+   AC_MSG_CHECKING([for stdint datatype model])
+   AC_MSG_RESULT([(..)])
+   AX_CHECK_DATA_MODEL
+fi
+
+if test "_$ac_cv_header_stdint_x" != "_" ; then
+   ac_cv_header_stdint="$ac_cv_header_stdint_x"
+elif  test "_$ac_cv_header_stdint_o" != "_" ; then
+   ac_cv_header_stdint="$ac_cv_header_stdint_o"
+elif  test "_$ac_cv_header_stdint_u" != "_" ; then
+   ac_cv_header_stdint="$ac_cv_header_stdint_u"
+else
+   ac_cv_header_stdint="stddef.h"
+fi
+
+AC_MSG_CHECKING([for extra inttypes in chosen header])
+AC_MSG_RESULT([($ac_cv_header_stdint)])
+dnl see if int_least and int_fast types are present in _this_ header.
+unset ac_cv_type_int_least32_t
+unset ac_cv_type_int_fast32_t
+AC_CHECK_TYPE(int_least32_t,,,[#include <$ac_cv_header_stdint>])
+AC_CHECK_TYPE(int_fast32_t,,,[#include<$ac_cv_header_stdint>])
+AC_CHECK_TYPE(intmax_t,,,[#include <$ac_cv_header_stdint>])
+
+fi # shortcircut to system "stdint.h"
+# ------------------ PREPARE VARIABLES ------------------------------
+if test "$GCC" = "yes" ; then
+ac_cv_stdint_message="using gnu compiler "`$CC --version | head -1`
+else
+ac_cv_stdint_message="using $CC"
+fi
+
+AC_MSG_RESULT([make use of $ac_cv_header_stdint in $ac_stdint_h dnl
+$ac_cv_stdint_result])
+
+dnl -----------------------------------------------------------------
+# ----------------- DONE inttypes.h checks START header -------------
+AC_CONFIG_COMMANDS([$ac_stdint_h],[
+AC_MSG_NOTICE(creating $ac_stdint_h : $_ac_stdint_h)
+ac_stdint=$tmp/_stdint.h
+
+echo "#ifndef" $_ac_stdint_h >$ac_stdint
+echo "#define" $_ac_stdint_h "1" >>$ac_stdint
+echo "#ifndef" _GENERATED_STDINT_H >>$ac_stdint
+echo "#define" _GENERATED_STDINT_H '"'$PACKAGE $VERSION'"' >>$ac_stdint
+echo "/* generated $ac_cv_stdint_message */" >>$ac_stdint
+if test "_$ac_cv_header_stdint_t" != "_" ; then
+echo "#define _STDINT_HAVE_STDINT_H" "1" >>$ac_stdint
+echo "#include <stdint.h>" >>$ac_stdint
+echo "#endif" >>$ac_stdint
+echo "#endif" >>$ac_stdint
+else
+
+cat >>$ac_stdint <<STDINT_EOF
+
+/* ................... shortcircuit part ........................... */
+
+#if defined HAVE_STDINT_H || defined _STDINT_HAVE_STDINT_H
+#include <stdint.h>
+#else
+#include <stddef.h>
+
+/* .................... configured part ............................ */
+
+STDINT_EOF
+
+echo "/* whether we have a C99 compatible stdint header file */" >>$ac_stdint
+if test "_$ac_cv_header_stdint_x" != "_" ; then
+  ac_header="$ac_cv_header_stdint_x"
+  echo "#define _STDINT_HEADER_INTPTR" '"'"$ac_header"'"' >>$ac_stdint
+else
+  echo "/* #undef _STDINT_HEADER_INTPTR */" >>$ac_stdint
+fi
+
+echo "/* whether we have a C96 compatible inttypes header file */" >>$ac_stdint
+if  test "_$ac_cv_header_stdint_o" != "_" ; then
+  ac_header="$ac_cv_header_stdint_o"
+  echo "#define _STDINT_HEADER_UINT32" '"'"$ac_header"'"' >>$ac_stdint
+else
+  echo "/* #undef _STDINT_HEADER_UINT32 */" >>$ac_stdint
+fi
+
+echo "/* whether we have a BSD compatible inet types header */" >>$ac_stdint
+if  test "_$ac_cv_header_stdint_u" != "_" ; then
+  ac_header="$ac_cv_header_stdint_u"
+  echo "#define _STDINT_HEADER_U_INT32" '"'"$ac_header"'"' >>$ac_stdint
+else
+  echo "/* #undef _STDINT_HEADER_U_INT32 */" >>$ac_stdint
+fi
+
+echo "" >>$ac_stdint
+
+if test "_$ac_header" != "_" ; then if test "$ac_header" != "stddef.h" ; then
+  echo "#include <$ac_header>" >>$ac_stdint
+  echo "" >>$ac_stdint
+fi fi
+
+echo "/* which 64bit typedef has been found */" >>$ac_stdint
+if test "$ac_cv_type_uint64_t" = "yes" ; then
+echo "#define   _STDINT_HAVE_UINT64_T" "1"  >>$ac_stdint
+else
+echo "/* #undef _STDINT_HAVE_UINT64_T */" >>$ac_stdint
+fi
+if test "$ac_cv_type_u_int64_t" = "yes" ; then
+echo "#define   _STDINT_HAVE_U_INT64_T" "1"  >>$ac_stdint
+else
+echo "/* #undef _STDINT_HAVE_U_INT64_T */" >>$ac_stdint
+fi
+echo "" >>$ac_stdint
+
+echo "/* which type model has been detected */" >>$ac_stdint
+if test "_$ac_cv_char_data_model" != "_" ; then
+echo "#define   _STDINT_CHAR_MODEL" "$ac_cv_char_data_model" >>$ac_stdint
+echo "#define   _STDINT_LONG_MODEL" "$ac_cv_long_data_model" >>$ac_stdint
+else
+echo "/* #undef _STDINT_CHAR_MODEL // skipped */" >>$ac_stdint
+echo "/* #undef _STDINT_LONG_MODEL // skipped */" >>$ac_stdint
+fi
+echo "" >>$ac_stdint
+
+echo "/* whether int_least types were detected */" >>$ac_stdint
+if test "$ac_cv_type_int_least32_t" = "yes"; then
+echo "#define   _STDINT_HAVE_INT_LEAST32_T" "1"  >>$ac_stdint
+else
+echo "/* #undef _STDINT_HAVE_INT_LEAST32_T */" >>$ac_stdint
+fi
+echo "/* whether int_fast types were detected */" >>$ac_stdint
+if test "$ac_cv_type_int_fast32_t" = "yes"; then
+echo "#define   _STDINT_HAVE_INT_FAST32_T" "1" >>$ac_stdint
+else
+echo "/* #undef _STDINT_HAVE_INT_FAST32_T */" >>$ac_stdint
+fi
+echo "/* whether intmax_t type was detected */" >>$ac_stdint
+if test "$ac_cv_type_intmax_t" = "yes"; then
+echo "#define   _STDINT_HAVE_INTMAX_T" "1" >>$ac_stdint
+else
+echo "/* #undef _STDINT_HAVE_INTMAX_T */" >>$ac_stdint
+fi
+echo "" >>$ac_stdint
+
+  cat >>$ac_stdint <<STDINT_EOF
+/* .................... detections part ............................ */
+
+/* whether we need to define bitspecific types from compiler base types */
+#ifndef _STDINT_HEADER_INTPTR
+#ifndef _STDINT_HEADER_UINT32
+#ifndef _STDINT_HEADER_U_INT32
+#define _STDINT_NEED_INT_MODEL_T
+#else
+#define _STDINT_HAVE_U_INT_TYPES
+#endif
+#endif
+#endif
+
+#ifdef _STDINT_HAVE_U_INT_TYPES
+#undef _STDINT_NEED_INT_MODEL_T
+#endif
+
+#ifdef  _STDINT_CHAR_MODEL
+#if     _STDINT_CHAR_MODEL+0 == 122 || _STDINT_CHAR_MODEL+0 == 124
+#ifndef _STDINT_BYTE_MODEL
+#define _STDINT_BYTE_MODEL 12
+#endif
+#endif
+#endif
+
+#ifndef _STDINT_HAVE_INT_LEAST32_T
+#define _STDINT_NEED_INT_LEAST_T
+#endif
+
+#ifndef _STDINT_HAVE_INT_FAST32_T
+#define _STDINT_NEED_INT_FAST_T
+#endif
+
+#ifndef _STDINT_HEADER_INTPTR
+#define _STDINT_NEED_INTPTR_T
+#ifndef _STDINT_HAVE_INTMAX_T
+#define _STDINT_NEED_INTMAX_T
+#endif
+#endif
+
+
+/* .................... definition part ............................ */
+
+/* some system headers have good uint64_t */
+#ifndef _HAVE_UINT64_T
+#if     defined _STDINT_HAVE_UINT64_T  || defined HAVE_UINT64_T
+#define _HAVE_UINT64_T
+#elif   defined _STDINT_HAVE_U_INT64_T || defined HAVE_U_INT64_T
+#define _HAVE_UINT64_T
+typedef u_int64_t uint64_t;
+#endif
+#endif
+
+#ifndef _HAVE_UINT64_T
+/* .. here are some common heuristics using compiler runtime specifics */
+#if defined __STDC_VERSION__ && defined __STDC_VERSION__ >= 199901L
+#define _HAVE_UINT64_T
+#define _HAVE_LONGLONG_UINT64_T
+typedef long long int64_t;
+typedef unsigned long long uint64_t;
+
+#elif !defined __STRICT_ANSI__
+#if defined _MSC_VER || defined __WATCOMC__ || defined __BORLANDC__
+#define _HAVE_UINT64_T
+typedef __int64 int64_t;
+typedef unsigned __int64 uint64_t;
+
+#elif defined __GNUC__ || defined __MWERKS__ || defined __ELF__
+/* note: all ELF-systems seem to have loff-support which needs 64-bit */
+#if !defined _NO_LONGLONG
+#define _HAVE_UINT64_T
+#define _HAVE_LONGLONG_UINT64_T
+typedef long long int64_t;
+typedef unsigned long long uint64_t;
+#endif
+
+#elif defined __alpha || (defined __mips && defined _ABIN32)
+#if !defined _NO_LONGLONG
+typedef long int64_t;
+typedef unsigned long uint64_t;
+#endif
+  /* compiler/cpu type to define int64_t */
+#endif
+#endif
+#endif
+
+#if defined _STDINT_HAVE_U_INT_TYPES
+/* int8_t int16_t int32_t defined by inet code, redeclare the u_intXX types */
+typedef u_int8_t uint8_t;
+typedef u_int16_t uint16_t;
+typedef u_int32_t uint32_t;
+
+/* glibc compatibility */
+#ifndef __int8_t_defined
+#define __int8_t_defined
+#endif
+#endif
+
+#ifdef _STDINT_NEED_INT_MODEL_T
+/* we must guess all the basic types. Apart from byte-adressable system, */
+/* there a few 32-bit-only dsp-systems that we guard with BYTE_MODEL 8-} */
+/* (btw, those nibble-addressable systems are way off, or so we assume) */
+
+dnl   /* have a look at "64bit and data size neutrality" at */
+dnl   /* http://unix.org/version2/whatsnew/login_64bit.html */
+dnl   /* (the shorthand "ILP" types always have a "P" part) */
+
+#if defined _STDINT_BYTE_MODEL
+#if _STDINT_LONG_MODEL+0 == 242
+/* 2:4:2 =  IP16 = a normal 16-bit system                */
+typedef unsigned char   uint8_t;
+typedef unsigned short  uint16_t;
+typedef unsigned long   uint32_t;
+#ifndef __int8_t_defined
+#define __int8_t_defined
+typedef          char    int8_t;
+typedef          short   int16_t;
+typedef          long    int32_t;
+#endif
+#elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL == 444
+/* 2:4:4 =  LP32 = a 32-bit system derived from a 16-bit */
+/* 4:4:4 = ILP32 = a normal 32-bit system                */
+typedef unsigned char   uint8_t;
+typedef unsigned short  uint16_t;
+typedef unsigned int    uint32_t;
+#ifndef __int8_t_defined
+#define __int8_t_defined
+typedef          char    int8_t;
+typedef          short   int16_t;
+typedef          int     int32_t;
+#endif
+#elif _STDINT_LONG_MODEL+0 == 484 || _STDINT_LONG_MODEL+0 == 488
+/* 4:8:4 =  IP32 = a 32-bit system prepared for 64-bit    */
+/* 4:8:8 =  LP64 = a normal 64-bit system                 */
+typedef unsigned char   uint8_t;
+typedef unsigned short  uint16_t;
+typedef unsigned int    uint32_t;
+#ifndef __int8_t_defined
+#define __int8_t_defined
+typedef          char    int8_t;
+typedef          short   int16_t;
+typedef          int     int32_t;
+#endif
+/* this system has a "long" of 64bit */
+#ifndef _HAVE_UINT64_T
+#define _HAVE_UINT64_T
+typedef unsigned long   uint64_t;
+typedef          long    int64_t;
+#endif
+#elif _STDINT_LONG_MODEL+0 == 448
+/*      LLP64   a 64-bit system derived from a 32-bit system */
+typedef unsigned char   uint8_t;
+typedef unsigned short  uint16_t;
+typedef unsigned int    uint32_t;
+#ifndef __int8_t_defined
+#define __int8_t_defined
+typedef          char    int8_t;
+typedef          short   int16_t;
+typedef          int     int32_t;
+#endif
+/* assuming the system has a "long long" */
+#ifndef _HAVE_UINT64_T
+#define _HAVE_UINT64_T
+#define _HAVE_LONGLONG_UINT64_T
+typedef unsigned long long uint64_t;
+typedef          long long  int64_t;
+#endif
+#else
+#define _STDINT_NO_INT32_T
+#endif
+#else
+#define _STDINT_NO_INT8_T
+#define _STDINT_NO_INT32_T
+#endif
+#endif
+
+/*
+ * quote from SunOS-5.8 sys/inttypes.h:
+ * Use at your own risk.  As of February 1996, the committee is squarely
+ * behind the fixed sized types; the "least" and "fast" types are still being
+ * discussed.  The probability that the "fast" types may be removed before
+ * the standard is finalized is high enough that they are not currently
+ * implemented.
+ */
+
+#if defined _STDINT_NEED_INT_LEAST_T
+typedef  int8_t    int_least8_t;
+typedef  int16_t   int_least16_t;
+typedef  int32_t   int_least32_t;
+#ifdef _HAVE_UINT64_T
+typedef  int64_t   int_least64_t;
+#endif
+
+typedef uint8_t   uint_least8_t;
+typedef uint16_t  uint_least16_t;
+typedef uint32_t  uint_least32_t;
+#ifdef _HAVE_UINT64_T
+typedef uint64_t  uint_least64_t;
+#endif
+  /* least types */
+#endif
+
+#if defined _STDINT_NEED_INT_FAST_T
+typedef  int8_t    int_fast8_t;
+typedef  int       int_fast16_t;
+typedef  int32_t   int_fast32_t;
+#ifdef _HAVE_UINT64_T
+typedef  int64_t   int_fast64_t;
+#endif
+
+typedef uint8_t   uint_fast8_t;
+typedef unsigned  uint_fast16_t;
+typedef uint32_t  uint_fast32_t;
+#ifdef _HAVE_UINT64_T
+typedef uint64_t  uint_fast64_t;
+#endif
+  /* fast types */
+#endif
+
+#ifdef _STDINT_NEED_INTMAX_T
+#ifdef _HAVE_UINT64_T
+typedef  int64_t       intmax_t;
+typedef uint64_t      uintmax_t;
+#else
+typedef          long  intmax_t;
+typedef unsigned long uintmax_t;
+#endif
+#endif
+
+#ifdef _STDINT_NEED_INTPTR_T
+#ifndef __intptr_t_defined
+#define __intptr_t_defined
+/* we encourage using "long" to store pointer values, never use "int" ! */
+#if   _STDINT_LONG_MODEL+0 == 242 || _STDINT_LONG_MODEL+0 == 484
+typedef  unsinged int   uintptr_t;
+typedef           int    intptr_t;
+#elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL+0 == 444
+typedef  unsigned long  uintptr_t;
+typedef           long   intptr_t;
+#elif _STDINT_LONG_MODEL+0 == 448 && defined _HAVE_UINT64_T
+typedef        uint64_t uintptr_t;
+typedef         int64_t  intptr_t;
+#else /* matches typical system types ILP32 and LP64 - but not IP16 or LLP64 */
+typedef  unsigned long  uintptr_t;
+typedef           long   intptr_t;
+#endif
+#endif
+#endif
+
+/* The ISO C99 standard specifies that in C++ implementations these
+   should only be defined if explicitly requested.  */
+#if !defined __cplusplus || defined __STDC_CONSTANT_MACROS
+#ifndef UINT32_C
+
+/* Signed.  */
+# define INT8_C(c)      c
+# define INT16_C(c)     c
+# define INT32_C(c)     c
+# ifdef _HAVE_LONGLONG_UINT64_T
+#  define INT64_C(c)    c ## L
+# else
+#  define INT64_C(c)    c ## LL
+# endif
+
+/* Unsigned.  */
+# define UINT8_C(c)     c ## U
+# define UINT16_C(c)    c ## U
+# define UINT32_C(c)    c ## U
+# ifdef _HAVE_LONGLONG_UINT64_T
+#  define UINT64_C(c)   c ## UL
+# else
+#  define UINT64_C(c)   c ## ULL
+# endif
+
+/* Maximal type.  */
+# ifdef _HAVE_LONGLONG_UINT64_T
+#  define INTMAX_C(c)   c ## L
+#  define UINTMAX_C(c)  c ## UL
+# else
+#  define INTMAX_C(c)   c ## LL
+#  define UINTMAX_C(c)  c ## ULL
+# endif
+
+  /* literalnumbers */
+#endif
+#endif
+
+/* These limits are merily those of a two complement byte-oriented system */
+
+/* Minimum of signed integral types.  */
+# define INT8_MIN               (-128)
+# define INT16_MIN              (-32767-1)
+# define INT32_MIN              (-2147483647-1)
+# define INT64_MIN              (-__INT64_C(9223372036854775807)-1)
+/* Maximum of signed integral types.  */
+# define INT8_MAX               (127)
+# define INT16_MAX              (32767)
+# define INT32_MAX              (2147483647)
+# define INT64_MAX              (__INT64_C(9223372036854775807))
+
+/* Maximum of unsigned integral types.  */
+# define UINT8_MAX              (255)
+# define UINT16_MAX             (65535)
+# define UINT32_MAX             (4294967295U)
+# define UINT64_MAX             (__UINT64_C(18446744073709551615))
+
+/* Minimum of signed integral types having a minimum size.  */
+# define INT_LEAST8_MIN         INT8_MIN
+# define INT_LEAST16_MIN        INT16_MIN
+# define INT_LEAST32_MIN        INT32_MIN
+# define INT_LEAST64_MIN        INT64_MIN
+/* Maximum of signed integral types having a minimum size.  */
+# define INT_LEAST8_MAX         INT8_MAX
+# define INT_LEAST16_MAX        INT16_MAX
+# define INT_LEAST32_MAX        INT32_MAX
+# define INT_LEAST64_MAX        INT64_MAX
+
+/* Maximum of unsigned integral types having a minimum size.  */
+# define UINT_LEAST8_MAX        UINT8_MAX
+# define UINT_LEAST16_MAX       UINT16_MAX
+# define UINT_LEAST32_MAX       UINT32_MAX
+# define UINT_LEAST64_MAX       UINT64_MAX
+
+  /* shortcircuit*/
+#endif
+  /* once */
+#endif
+#endif
+STDINT_EOF
+fi
+    if cmp -s $ac_stdint_h $ac_stdint 2>/dev/null; then
+      AC_MSG_NOTICE([$ac_stdint_h is unchanged])
+    else
+      ac_dir=`AS_DIRNAME(["$ac_stdint_h"])`
+      AS_MKDIR_P(["$ac_dir"])
+      rm -f $ac_stdint_h
+      mv $ac_stdint $ac_stdint_h
+    fi
+],[# variables for create stdint.h replacement
+PACKAGE="$PACKAGE"
+VERSION="$VERSION"
+ac_stdint_h="$ac_stdint_h"
+_ac_stdint_h=AS_TR_CPP(_$PACKAGE-$ac_stdint_h)
+ac_cv_stdint_message="$ac_cv_stdint_message"
+ac_cv_header_stdint_t="$ac_cv_header_stdint_t"
+ac_cv_header_stdint_x="$ac_cv_header_stdint_x"
+ac_cv_header_stdint_o="$ac_cv_header_stdint_o"
+ac_cv_header_stdint_u="$ac_cv_header_stdint_u"
+ac_cv_type_uint64_t="$ac_cv_type_uint64_t"
+ac_cv_type_u_int64_t="$ac_cv_type_u_int64_t"
+ac_cv_char_data_model="$ac_cv_char_data_model"
+ac_cv_long_data_model="$ac_cv_long_data_model"
+ac_cv_type_int_least32_t="$ac_cv_type_int_least32_t"
+ac_cv_type_int_fast32_t="$ac_cv_type_int_fast32_t"
+ac_cv_type_intmax_t="$ac_cv_type_intmax_t"
+])
+])
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/missing b/framework/modules/c_LibExifModule/libexif-0.6.20/missing
new file mode 100644
index 0000000000000000000000000000000000000000..28055d2ae6f2a2c584afcd769d7881e11f62ecd9
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/missing
@@ -0,0 +1,376 @@
+#! /bin/sh
+# Common stub for a few missing GNU programs while installing.
+
+scriptversion=2009-04-28.21; # UTC
+
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
+# 2008, 2009 Free Software Foundation, Inc.
+# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+if test $# -eq 0; then
+  echo 1>&2 "Try \`$0 --help' for more information"
+  exit 1
+fi
+
+run=:
+sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
+sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
+
+# In the cases where this matters, `missing' is being run in the
+# srcdir already.
+if test -f configure.ac; then
+  configure_ac=configure.ac
+else
+  configure_ac=configure.in
+fi
+
+msg="missing on your system"
+
+case $1 in
+--run)
+  # Try to run requested program, and just exit if it succeeds.
+  run=
+  shift
+  "$@" && exit 0
+  # Exit code 63 means version mismatch.  This often happens
+  # when the user try to use an ancient version of a tool on
+  # a file that requires a minimum version.  In this case we
+  # we should proceed has if the program had been absent, or
+  # if --run hadn't been passed.
+  if test $? = 63; then
+    run=:
+    msg="probably too old"
+  fi
+  ;;
+
+  -h|--h|--he|--hel|--help)
+    echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+error status if there is no known handling for PROGRAM.
+
+Options:
+  -h, --help      display this help and exit
+  -v, --version   output version information and exit
+  --run           try to run the given command, and emulate it if it fails
+
+Supported PROGRAM values:
+  aclocal      touch file \`aclocal.m4'
+  autoconf     touch file \`configure'
+  autoheader   touch file \`config.h.in'
+  autom4te     touch the output file, or create a stub one
+  automake     touch all \`Makefile.in' files
+  bison        create \`y.tab.[ch]', if possible, from existing .[ch]
+  flex         create \`lex.yy.c', if possible, from existing .c
+  help2man     touch the output file
+  lex          create \`lex.yy.c', if possible, from existing .c
+  makeinfo     touch the output file
+  tar          try tar, gnutar, gtar, then tar without non-portable flags
+  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
+
+Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
+\`g' are ignored when checking the name.
+
+Send bug reports to <bug-automake@gnu.org>."
+    exit $?
+    ;;
+
+  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+    echo "missing $scriptversion (GNU Automake)"
+    exit $?
+    ;;
+
+  -*)
+    echo 1>&2 "$0: Unknown \`$1' option"
+    echo 1>&2 "Try \`$0 --help' for more information"
+    exit 1
+    ;;
+
+esac
+
+# normalize program name to check for.
+program=`echo "$1" | sed '
+  s/^gnu-//; t
+  s/^gnu//; t
+  s/^g//; t'`
+
+# Now exit if we have it, but it failed.  Also exit now if we
+# don't have it and --version was passed (most likely to detect
+# the program).  This is about non-GNU programs, so use $1 not
+# $program.
+case $1 in
+  lex*|yacc*)
+    # Not GNU programs, they don't have --version.
+    ;;
+
+  tar*)
+    if test -n "$run"; then
+       echo 1>&2 "ERROR: \`tar' requires --run"
+       exit 1
+    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+       exit 1
+    fi
+    ;;
+
+  *)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+       # Could not run --version or --help.  This is probably someone
+       # running `$TOOL --version' or `$TOOL --help' to check whether
+       # $TOOL exists and not knowing $TOOL uses missing.
+       exit 1
+    fi
+    ;;
+esac
+
+# If it does not exist, or fails to run (possibly an outdated version),
+# try to emulate it.
+case $program in
+  aclocal*)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
+         to install the \`Automake' and \`Perl' packages.  Grab them from
+         any GNU archive site."
+    touch aclocal.m4
+    ;;
+
+  autoconf*)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified \`${configure_ac}'.  You might want to install the
+         \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
+         archive site."
+    touch configure
+    ;;
+
+  autoheader*)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified \`acconfig.h' or \`${configure_ac}'.  You might want
+         to install the \`Autoconf' and \`GNU m4' packages.  Grab them
+         from any GNU archive site."
+    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
+    test -z "$files" && files="config.h"
+    touch_files=
+    for f in $files; do
+      case $f in
+      *:*) touch_files="$touch_files "`echo "$f" |
+				       sed -e 's/^[^:]*://' -e 's/:.*//'`;;
+      *) touch_files="$touch_files $f.in";;
+      esac
+    done
+    touch $touch_files
+    ;;
+
+  automake*)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
+         You might want to install the \`Automake' and \`Perl' packages.
+         Grab them from any GNU archive site."
+    find . -type f -name Makefile.am -print |
+	   sed 's/\.am$/.in/' |
+	   while read f; do touch "$f"; done
+    ;;
+
+  autom4te*)
+    echo 1>&2 "\
+WARNING: \`$1' is needed, but is $msg.
+         You might have modified some files without having the
+         proper tools for further handling them.
+         You can get \`$1' as part of \`Autoconf' from any GNU
+         archive site."
+
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+    if test -f "$file"; then
+	touch $file
+    else
+	test -z "$file" || exec >$file
+	echo "#! /bin/sh"
+	echo "# Created by GNU Automake missing as a replacement of"
+	echo "#  $ $@"
+	echo "exit 0"
+	chmod +x $file
+	exit 1
+    fi
+    ;;
+
+  bison*|yacc*)
+    echo 1>&2 "\
+WARNING: \`$1' $msg.  You should only need it if
+         you modified a \`.y' file.  You may need the \`Bison' package
+         in order for those modifications to take effect.  You can get
+         \`Bison' from any GNU archive site."
+    rm -f y.tab.c y.tab.h
+    if test $# -ne 1; then
+        eval LASTARG="\${$#}"
+	case $LASTARG in
+	*.y)
+	    SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
+	    if test -f "$SRCFILE"; then
+	         cp "$SRCFILE" y.tab.c
+	    fi
+	    SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
+	    if test -f "$SRCFILE"; then
+	         cp "$SRCFILE" y.tab.h
+	    fi
+	  ;;
+	esac
+    fi
+    if test ! -f y.tab.h; then
+	echo >y.tab.h
+    fi
+    if test ! -f y.tab.c; then
+	echo 'main() { return 0; }' >y.tab.c
+    fi
+    ;;
+
+  lex*|flex*)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified a \`.l' file.  You may need the \`Flex' package
+         in order for those modifications to take effect.  You can get
+         \`Flex' from any GNU archive site."
+    rm -f lex.yy.c
+    if test $# -ne 1; then
+        eval LASTARG="\${$#}"
+	case $LASTARG in
+	*.l)
+	    SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
+	    if test -f "$SRCFILE"; then
+	         cp "$SRCFILE" lex.yy.c
+	    fi
+	  ;;
+	esac
+    fi
+    if test ! -f lex.yy.c; then
+	echo 'main() { return 0; }' >lex.yy.c
+    fi
+    ;;
+
+  help2man*)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+	 you modified a dependency of a manual page.  You may need the
+	 \`Help2man' package in order for those modifications to take
+	 effect.  You can get \`Help2man' from any GNU archive site."
+
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+    if test -f "$file"; then
+	touch $file
+    else
+	test -z "$file" || exec >$file
+	echo ".ab help2man is required to generate this page"
+	exit $?
+    fi
+    ;;
+
+  makeinfo*)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified a \`.texi' or \`.texinfo' file, or any other file
+         indirectly affecting the aspect of the manual.  The spurious
+         call might also be the consequence of using a buggy \`make' (AIX,
+         DU, IRIX).  You might want to install the \`Texinfo' package or
+         the \`GNU make' package.  Grab either from any GNU archive site."
+    # The file to touch is that specified with -o ...
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+    if test -z "$file"; then
+      # ... or it is the one specified with @setfilename ...
+      infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+      file=`sed -n '
+	/^@setfilename/{
+	  s/.* \([^ ]*\) *$/\1/
+	  p
+	  q
+	}' $infile`
+      # ... or it is derived from the source name (dir/f.texi becomes f.info)
+      test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
+    fi
+    # If the file does not exist, the user really needs makeinfo;
+    # let's fail without touching anything.
+    test -f $file || exit 1
+    touch $file
+    ;;
+
+  tar*)
+    shift
+
+    # We have already tried tar in the generic part.
+    # Look for gnutar/gtar before invocation to avoid ugly error
+    # messages.
+    if (gnutar --version > /dev/null 2>&1); then
+       gnutar "$@" && exit 0
+    fi
+    if (gtar --version > /dev/null 2>&1); then
+       gtar "$@" && exit 0
+    fi
+    firstarg="$1"
+    if shift; then
+	case $firstarg in
+	*o*)
+	    firstarg=`echo "$firstarg" | sed s/o//`
+	    tar "$firstarg" "$@" && exit 0
+	    ;;
+	esac
+	case $firstarg in
+	*h*)
+	    firstarg=`echo "$firstarg" | sed s/h//`
+	    tar "$firstarg" "$@" && exit 0
+	    ;;
+	esac
+    fi
+
+    echo 1>&2 "\
+WARNING: I can't seem to be able to run \`tar' with the given arguments.
+         You may want to install GNU tar or Free paxutils, or check the
+         command line arguments."
+    exit 1
+    ;;
+
+  *)
+    echo 1>&2 "\
+WARNING: \`$1' is needed, and is $msg.
+         You might have modified some files without having the
+         proper tools for further handling them.  Check the \`README' file,
+         it often tells you about the needed prerequisites for installing
+         this package.  You may also peek at any GNU archive site, in case
+         some other package would contain this missing \`$1' program."
+    exit 1
+    ;;
+esac
+
+exit 0
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/mkinstalldirs b/framework/modules/c_LibExifModule/libexif-0.6.20/mkinstalldirs
new file mode 100644
index 0000000000000000000000000000000000000000..4191a45dbd72ecd24c25b45a53e94ea0a4b5baf7
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/mkinstalldirs
@@ -0,0 +1,162 @@
+#! /bin/sh
+# mkinstalldirs --- make directory hierarchy
+
+scriptversion=2009-04-28.21; # UTC
+
+# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
+# Created: 1993-05-16
+# Public domain.
+#
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+nl='
+'
+IFS=" ""	$nl"
+errstatus=0
+dirmode=
+
+usage="\
+Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
+
+Create each directory DIR (with mode MODE, if specified), including all
+leading file name components.
+
+Report bugs to <bug-automake@gnu.org>."
+
+# process command line arguments
+while test $# -gt 0 ; do
+  case $1 in
+    -h | --help | --h*)         # -h for help
+      echo "$usage"
+      exit $?
+      ;;
+    -m)                         # -m PERM arg
+      shift
+      test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
+      dirmode=$1
+      shift
+      ;;
+    --version)
+      echo "$0 $scriptversion"
+      exit $?
+      ;;
+    --)                         # stop option processing
+      shift
+      break
+      ;;
+    -*)                         # unknown option
+      echo "$usage" 1>&2
+      exit 1
+      ;;
+    *)                          # first non-opt arg
+      break
+      ;;
+  esac
+done
+
+for file
+do
+  if test -d "$file"; then
+    shift
+  else
+    break
+  fi
+done
+
+case $# in
+  0) exit 0 ;;
+esac
+
+# Solaris 8's mkdir -p isn't thread-safe.  If you mkdir -p a/b and
+# mkdir -p a/c at the same time, both will detect that a is missing,
+# one will create a, then the other will try to create a and die with
+# a "File exists" error.  This is a problem when calling mkinstalldirs
+# from a parallel make.  We use --version in the probe to restrict
+# ourselves to GNU mkdir, which is thread-safe.
+case $dirmode in
+  '')
+    if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
+      echo "mkdir -p -- $*"
+      exec mkdir -p -- "$@"
+    else
+      # On NextStep and OpenStep, the `mkdir' command does not
+      # recognize any option.  It will interpret all options as
+      # directories to create, and then abort because `.' already
+      # exists.
+      test -d ./-p && rmdir ./-p
+      test -d ./--version && rmdir ./--version
+    fi
+    ;;
+  *)
+    if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
+       test ! -d ./--version; then
+      echo "mkdir -m $dirmode -p -- $*"
+      exec mkdir -m "$dirmode" -p -- "$@"
+    else
+      # Clean up after NextStep and OpenStep mkdir.
+      for d in ./-m ./-p ./--version "./$dirmode";
+      do
+        test -d $d && rmdir $d
+      done
+    fi
+    ;;
+esac
+
+for file
+do
+  case $file in
+    /*) pathcomp=/ ;;
+    *)  pathcomp= ;;
+  esac
+  oIFS=$IFS
+  IFS=/
+  set fnord $file
+  shift
+  IFS=$oIFS
+
+  for d
+  do
+    test "x$d" = x && continue
+
+    pathcomp=$pathcomp$d
+    case $pathcomp in
+      -*) pathcomp=./$pathcomp ;;
+    esac
+
+    if test ! -d "$pathcomp"; then
+      echo "mkdir $pathcomp"
+
+      mkdir "$pathcomp" || lasterr=$?
+
+      if test ! -d "$pathcomp"; then
+	errstatus=$lasterr
+      else
+	if test ! -z "$dirmode"; then
+	  echo "chmod $dirmode $pathcomp"
+	  lasterr=
+	  chmod "$dirmode" "$pathcomp" || lasterr=$?
+
+	  if test ! -z "$lasterr"; then
+	    errstatus=$lasterr
+	  fi
+	fi
+      fi
+    fi
+
+    pathcomp=$pathcomp/
+  done
+done
+
+exit $errstatus
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/Makevars b/framework/modules/c_LibExifModule/libexif-0.6.20/po/Makevars
new file mode 100644
index 0000000000000000000000000000000000000000..024d47a8fc374139ec0a75c08de7a5c29a70560c
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/Makevars
@@ -0,0 +1,41 @@
+# Makefile variables for PO directory in any package using GNU gettext.
+
+# Usually the message domain is the same as the package name.
+DOMAIN = libexif-12
+
+# These two variables depend on the location of this directory.
+subdir = po
+top_builddir = ..
+
+# These options get passed to xgettext.
+XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
+
+# This is the copyright holder that gets inserted into the header of the
+# $(DOMAIN).pot file.  Set this to the copyright holder of the surrounding
+# package.  (Note that the msgstr strings, extracted from the package's
+# sources, belong to the copyright holder of the package.)  Translators are
+# expected to transfer the copyright for their translations to this person
+# or entity, or to disclaim their copyright.  The empty string stands for
+# the public domain; in this case the translators are expected to disclaim
+# their copyright.
+COPYRIGHT_HOLDER = Lutz Mueller and others
+
+# This is the email address or URL to which the translators shall report
+# bugs in the untranslated strings:
+# - Strings which are not entire sentences, see the maintainer guidelines
+#   in the GNU gettext documentation, section 'Preparing Strings'.
+# - Strings which use unclear terms or require additional context to be
+#   understood.
+# - Strings which make invalid assumptions about notation of date, time or
+#   money.
+# - Pluralisation problems.
+# - Incorrect English spelling.
+# - Incorrect formatting.
+# It can be your email address, or a mailing list address where translators
+# can write to without being subscribed, or the URL of a web page through
+# which the translators can contact you.
+MSGID_BUGS_ADDRESS = libexif-devel@lists.sourceforge.net
+
+# This is the list of locale categories, beyond LC_MESSAGES, for which the
+# message catalogs shall be used.  It is usually empty.
+EXTRA_LOCALE_CATEGORIES =
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/POTFILES b/framework/modules/c_LibExifModule/libexif-0.6.20/po/POTFILES
new file mode 100644
index 0000000000000000000000000000000000000000..d99d25655737db2feda864bc19917b36851a562c
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/POTFILES
@@ -0,0 +1,17 @@
+     ../libexif/canon/mnote-canon-entry.c \
+     ../libexif/canon/mnote-canon-tag.c \
+     ../libexif/exif-byte-order.c \
+     ../libexif/exif-data.c \
+     ../libexif/exif-entry.c \
+     ../libexif/exif-format.c \
+     ../libexif/exif-loader.c \
+     ../libexif/exif-log.c \
+     ../libexif/exif-tag.c \
+     ../libexif/fuji/mnote-fuji-entry.c \
+     ../libexif/fuji/mnote-fuji-tag.c \
+     ../libexif/olympus/mnote-olympus-entry.c \
+     ../libexif/olympus/mnote-olympus-tag.c \
+     ../libexif/pentax/mnote-pentax-entry.c \
+     ../libexif/pentax/mnote-pentax-tag.c \
+     ../test/nls/test-codeset.c \
+     ../test/nls/test-nls.c
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/Rules-quot b/framework/modules/c_LibExifModule/libexif-0.6.20/po/Rules-quot
new file mode 100644
index 0000000000000000000000000000000000000000..9c2a995e3009a099cf52764d458398716dee4df6
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/Rules-quot
@@ -0,0 +1,47 @@
+# Special Makefile rules for English message catalogs with quotation marks.
+
+DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot
+
+.SUFFIXES: .insert-header .po-update-en
+
+en@quot.po-create:
+	$(MAKE) en@quot.po-update
+en@boldquot.po-create:
+	$(MAKE) en@boldquot.po-update
+
+en@quot.po-update: en@quot.po-update-en
+en@boldquot.po-update: en@boldquot.po-update-en
+
+.insert-header.po-update-en:
+	@lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \
+	if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \
+	tmpdir=`pwd`; \
+	echo "$$lang:"; \
+	ll=`echo $$lang | sed -e 's/@.*//'`; \
+	LC_ALL=C; export LC_ALL; \
+	cd $(srcdir); \
+	if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \
+	  if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+	    rm -f $$tmpdir/$$lang.new.po; \
+	  else \
+	    if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+	      :; \
+	    else \
+	      echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+	      exit 1; \
+	    fi; \
+	  fi; \
+	else \
+	  echo "creation of $$lang.po failed!" 1>&2; \
+	  rm -f $$tmpdir/$$lang.new.po; \
+	fi
+
+en@quot.insert-header: insert-header.sin
+	sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header
+
+en@boldquot.insert-header: insert-header.sin
+	sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header
+
+mostlyclean: mostlyclean-quot
+mostlyclean-quot:
+	rm -f *.insert-header
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/be.gmo b/framework/modules/c_LibExifModule/libexif-0.6.20/po/be.gmo
new file mode 100644
index 0000000000000000000000000000000000000000..dd9658182562aa150a868950e1a73397a411327b
Binary files /dev/null and b/framework/modules/c_LibExifModule/libexif-0.6.20/po/be.gmo differ
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/be.po b/framework/modules/c_LibExifModule/libexif-0.6.20/po/be.po
new file mode 100644
index 0000000000000000000000000000000000000000..7b8e6641da34cea9c3d683f459d5407609641bd7
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/be.po
@@ -0,0 +1,5436 @@
+# Belarusian translation for libexif
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the libexif package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: libexif\n"
+"Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-12-15 22:14-0800\n"
+"PO-Revision-Date: 2009-11-25 15:18+0000\n"
+"Last-Translator: Iryna Nikanchuk <defragbrain@gmail.com>\n"
+"Language-Team: Belarusian <be@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-12-14 00:36+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: libexif/canon/mnote-canon-entry.c:40 libexif/fuji/mnote-fuji-entry.c:35
+#: libexif/olympus/mnote-olympus-entry.c:37
+#: libexif/pentax/mnote-pentax-entry.c:39
+#, c-format
+msgid "Invalid format '%s', expected '%s'."
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:52 libexif/fuji/mnote-fuji-entry.c:47
+#: libexif/olympus/mnote-olympus-entry.c:62
+#: libexif/pentax/mnote-pentax-entry.c:51
+#, c-format
+msgid "Invalid number of components (%i, expected %i)."
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:61
+#: libexif/olympus/mnote-olympus-entry.c:72
+#: libexif/pentax/mnote-pentax-entry.c:61
+#, c-format
+msgid "Invalid number of components (%i, expected %i or %i)."
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:76 libexif/canon/mnote-canon-entry.c:130
+#: libexif/canon/mnote-canon-entry.c:182 libexif/exif-entry.c:796
+#: libexif/olympus/mnote-olympus-entry.c:196
+#: libexif/olympus/mnote-olympus-tag.c:108
+#: libexif/pentax/mnote-pentax-entry.c:174
+#: libexif/pentax/mnote-pentax-entry.c:209
+#: libexif/pentax/mnote-pentax-entry.c:297
+msgid "Macro"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:77 libexif/canon/mnote-canon-entry.c:79
+#: libexif/canon/mnote-canon-entry.c:157 libexif/canon/mnote-canon-entry.c:160
+#: libexif/canon/mnote-canon-entry.c:163 libexif/exif-entry.c:674
+#: libexif/exif-entry.c:677 libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/exif-entry.c:745 libexif/fuji/mnote-fuji-entry.c:64
+#: libexif/olympus/mnote-olympus-entry.c:118
+#: libexif/olympus/mnote-olympus-entry.c:195
+#: libexif/olympus/mnote-olympus-entry.c:203
+#: libexif/olympus/mnote-olympus-entry.c:213
+#: libexif/olympus/mnote-olympus-entry.c:586
+#: libexif/pentax/mnote-pentax-entry.c:105
+#: libexif/pentax/mnote-pentax-entry.c:110
+#: libexif/pentax/mnote-pentax-entry.c:115
+#: libexif/pentax/mnote-pentax-entry.c:208
+msgid "Normal"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:78
+msgid "Economy"
+msgstr "Эканоміка"
+
+#: libexif/canon/mnote-canon-entry.c:80
+msgid "Fine"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:81 libexif/fuji/mnote-fuji-entry.c:178
+#: libexif/pentax/mnote-pentax-entry.c:141
+msgid "RAW"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:82
+msgid "Superfine"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:83 libexif/canon/mnote-canon-entry.c:301
+#: libexif/canon/mnote-canon-entry.c:304 libexif/canon/mnote-canon-entry.c:312
+#: libexif/canon/mnote-canon-entry.c:345 libexif/canon/mnote-canon-entry.c:357
+#: libexif/canon/mnote-canon-entry.c:370 libexif/canon/mnote-canon-entry.c:372
+#: libexif/canon/mnote-canon-entry.c:574 libexif/canon/mnote-canon-entry.c:671
+#: libexif/fuji/mnote-fuji-entry.c:70 libexif/fuji/mnote-fuji-entry.c:103
+#: libexif/fuji/mnote-fuji-entry.c:107 libexif/fuji/mnote-fuji-entry.c:115
+#: libexif/fuji/mnote-fuji-entry.c:142
+#: libexif/olympus/mnote-olympus-entry.c:178
+#: libexif/olympus/mnote-olympus-entry.c:186
+#: libexif/olympus/mnote-olympus-entry.c:251
+#: libexif/olympus/mnote-olympus-entry.c:530
+#: libexif/olympus/mnote-olympus-entry.c:547
+#: libexif/pentax/mnote-pentax-entry.c:195
+#: libexif/pentax/mnote-pentax-entry.c:260
+msgid "Off"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:84 libexif/canon/mnote-canon-entry.c:167
+#: libexif/canon/mnote-canon-entry.c:180 libexif/canon/mnote-canon-entry.c:328
+#: libexif/canon/mnote-canon-entry.c:400 libexif/fuji/mnote-fuji-entry.c:73
+#: libexif/fuji/mnote-fuji-entry.c:101 libexif/fuji/mnote-fuji-entry.c:111
+#: libexif/fuji/mnote-fuji-entry.c:119
+#: libexif/olympus/mnote-olympus-entry.c:131
+#: libexif/olympus/mnote-olympus-entry.c:183
+#: libexif/olympus/mnote-olympus-entry.c:199
+#: libexif/olympus/mnote-olympus-entry.c:244
+#: libexif/pentax/mnote-pentax-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:88
+#: libexif/pentax/mnote-pentax-entry.c:91
+#: libexif/pentax/mnote-pentax-entry.c:97
+#: libexif/pentax/mnote-pentax-entry.c:131
+#: libexif/pentax/mnote-pentax-entry.c:229
+#: libexif/pentax/mnote-pentax-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:290
+msgid "Auto"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:85 libexif/canon/mnote-canon-entry.c:302
+#: libexif/canon/mnote-canon-entry.c:347 libexif/canon/mnote-canon-entry.c:361
+#: libexif/canon/mnote-canon-entry.c:371 libexif/fuji/mnote-fuji-entry.c:102
+#: libexif/fuji/mnote-fuji-entry.c:108 libexif/fuji/mnote-fuji-entry.c:116
+#: libexif/fuji/mnote-fuji-entry.c:143
+#: libexif/olympus/mnote-olympus-entry.c:179
+#: libexif/olympus/mnote-olympus-entry.c:533
+#: libexif/olympus/mnote-olympus-entry.c:550
+#: libexif/pentax/mnote-pentax-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:261
+msgid "On"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:86 libexif/fuji/mnote-fuji-entry.c:104
+#: libexif/olympus/mnote-olympus-entry.c:184
+#: libexif/pentax/mnote-pentax-entry.c:94
+msgid "Red-eye reduction"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:87
+msgid "Slow synchro"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:88
+msgid "Auto, red-eye reduction"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:89
+#: libexif/pentax/mnote-pentax-entry.c:200
+msgid "On, red-eye reduction"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:90
+msgid "External flash"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:91 libexif/canon/mnote-canon-entry.c:101
+#: libexif/canon/mnote-canon-entry.c:294
+msgid "Single"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:92 libexif/canon/mnote-canon-entry.c:102
+#: libexif/canon/mnote-canon-entry.c:295
+msgid "Continuous"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:93
+msgid "Movie"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:94
+msgid "Continuous, speed priority"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:95
+msgid "Continuous, low"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:96
+msgid "Continuous, high"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:97
+msgid "One-shot AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:98
+msgid "AI servo AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:99
+msgid "AI focus AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:100 libexif/canon/mnote-canon-entry.c:103
+msgid "Manual focus"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:104 libexif/canon/mnote-canon-entry.c:132
+#: libexif/canon/mnote-canon-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:212
+msgid "Pan focus"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:105
+msgid "JPEG"
+msgstr "JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:106
+msgid "CRW+THM"
+msgstr "CRW+THM"
+
+#: libexif/canon/mnote-canon-entry.c:107
+msgid "AVI+THM"
+msgstr "AVI+THM"
+
+#: libexif/canon/mnote-canon-entry.c:108
+msgid "TIF"
+msgstr "TIF"
+
+#: libexif/canon/mnote-canon-entry.c:109
+msgid "TIF+JPEG"
+msgstr "TIF+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:110
+msgid "CR2"
+msgstr "CR2"
+
+#: libexif/canon/mnote-canon-entry.c:111
+msgid "CR2+JPEG"
+msgstr "CR2+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:112
+msgid "Large"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:113
+msgid "Medium"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:114
+msgid "Small"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:115
+msgid "Medium 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:116
+msgid "Medium 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:117
+msgid "Medium 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:118
+msgid "Postcard"
+msgstr "Паштоўка"
+
+#: libexif/canon/mnote-canon-entry.c:119
+msgid "Widescreen"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:120
+msgid "Full auto"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:121 libexif/canon/mnote-canon-entry.c:179
+#: libexif/canon/mnote-canon-entry.c:201 libexif/canon/mnote-canon-entry.c:285
+#: libexif/canon/mnote-canon-entry.c:392 libexif/exif-entry.c:744
+#: libexif/fuji/mnote-fuji-entry.c:112
+#: libexif/olympus/mnote-olympus-entry.c:90
+#: libexif/olympus/mnote-olympus-entry.c:200
+#: libexif/pentax/mnote-pentax-entry.c:79
+#: libexif/pentax/mnote-pentax-entry.c:102
+#: libexif/pentax/mnote-pentax-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:165
+#: libexif/pentax/mnote-pentax-entry.c:211
+#: libexif/pentax/mnote-pentax-entry.c:250
+msgid "Manual"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:122 libexif/canon/mnote-canon-entry.c:430
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:755
+#: libexif/fuji/mnote-fuji-entry.c:121 libexif/pentax/mnote-pentax-entry.c:167
+#: libexif/pentax/mnote-pentax-entry.c:301
+msgid "Landscape"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:123
+msgid "Fast shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:124
+msgid "Slow shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:125 libexif/fuji/mnote-fuji-entry.c:123
+#: libexif/olympus/mnote-olympus-entry.c:254
+msgid "Night"
+msgstr "Ноч"
+
+#: libexif/canon/mnote-canon-entry.c:126
+msgid "Grayscale"
+msgstr "Адценьні шэрага"
+
+#: libexif/canon/mnote-canon-entry.c:127 libexif/canon/mnote-canon-entry.c:308
+#: libexif/pentax/mnote-pentax-entry.c:128
+msgid "Sepia"
+msgstr "Сэпія"
+
+#: libexif/canon/mnote-canon-entry.c:128 libexif/canon/mnote-canon-entry.c:429
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:753
+#: libexif/fuji/mnote-fuji-entry.c:120 libexif/pentax/mnote-pentax-entry.c:166
+#: libexif/pentax/mnote-pentax-entry.c:291
+#: libexif/pentax/mnote-pentax-entry.c:294
+#: libexif/pentax/mnote-pentax-entry.c:300
+msgid "Portrait"
+msgstr "Партрэт"
+
+#: libexif/canon/mnote-canon-entry.c:129 libexif/fuji/mnote-fuji-entry.c:122
+msgid "Sports"
+msgstr "Спорт"
+
+#: libexif/canon/mnote-canon-entry.c:131 libexif/canon/mnote-canon-entry.c:309
+#: libexif/canon/mnote-canon-entry.c:335 libexif/canon/mnote-canon-entry.c:407
+#: libexif/fuji/mnote-fuji-entry.c:89 libexif/pentax/mnote-pentax-entry.c:127
+msgid "Black & white"
+msgstr "Чорна-белы"
+
+#: libexif/canon/mnote-canon-entry.c:133 libexif/canon/mnote-canon-entry.c:305
+msgid "Vivid"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:134 libexif/canon/mnote-canon-entry.c:306
+#: libexif/canon/mnote-canon-entry.c:431
+msgid "Neutral"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:93
+msgid "Flash off"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:136
+msgid "Long shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:137 libexif/canon/mnote-canon-entry.c:188
+#: libexif/olympus/mnote-olympus-entry.c:171
+msgid "Super macro"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:138
+msgid "Foliage"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:139
+msgid "Indoor"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:140 libexif/fuji/mnote-fuji-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:175
+msgid "Fireworks"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:141 libexif/fuji/mnote-fuji-entry.c:133
+msgid "Beach"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:142 libexif/canon/mnote-canon-entry.c:344
+#: libexif/canon/mnote-canon-entry.c:416 libexif/fuji/mnote-fuji-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:292
+#: libexif/pentax/mnote-pentax-entry.c:298
+msgid "Underwater"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:143 libexif/fuji/mnote-fuji-entry.c:134
+msgid "Snow"
+msgstr "Сьнег"
+
+#: libexif/canon/mnote-canon-entry.c:144
+msgid "Kids & pets"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:145
+msgid "Night snapshot"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:146
+msgid "Digital macro"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:147
+msgid "My colors"
+msgstr "Мае колеры"
+
+#: libexif/canon/mnote-canon-entry.c:148
+msgid "Still image"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:149
+msgid "Color accent"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:150
+msgid "Color swap"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:151
+msgid "Aquarium"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:152
+msgid "ISO 3200"
+msgstr "ISO 3200"
+
+#: libexif/canon/mnote-canon-entry.c:153 libexif/canon/mnote-canon-entry.c:348
+#: libexif/canon/mnote-canon-entry.c:365 libexif/canon/mnote-canon-entry.c:417
+#: libexif/olympus/mnote-olympus-entry.c:189
+#: libexif/olympus/mnote-olympus-entry.c:226
+#: libexif/olympus/mnote-olympus-entry.c:451
+#: libexif/pentax/mnote-pentax-entry.c:242
+msgid "None"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:154
+msgid "2x"
+msgstr "2x"
+
+#: libexif/canon/mnote-canon-entry.c:155
+msgid "4x"
+msgstr "4x"
+
+#: libexif/canon/mnote-canon-entry.c:156 libexif/exif-entry.c:702
+#: libexif/exif-entry.c:732
+msgid "Other"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:158 libexif/canon/mnote-canon-entry.c:161
+#: libexif/canon/mnote-canon-entry.c:164 libexif/canon/mnote-canon-entry.c:398
+#: libexif/fuji/mnote-fuji-entry.c:86 libexif/pentax/mnote-pentax-entry.c:112
+#: libexif/pentax/mnote-pentax-entry.c:117
+msgid "High"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:159 libexif/canon/mnote-canon-entry.c:162
+#: libexif/canon/mnote-canon-entry.c:165 libexif/canon/mnote-canon-entry.c:396
+#: libexif/pentax/mnote-pentax-entry.c:111
+#: libexif/pentax/mnote-pentax-entry.c:116
+msgid "Low"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:166
+msgid "Auto high"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:168
+msgid "50"
+msgstr "50"
+
+#: libexif/canon/mnote-canon-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:120
+#: libexif/pentax/mnote-pentax-entry.c:122
+msgid "100"
+msgstr "100"
+
+#: libexif/canon/mnote-canon-entry.c:170
+#: libexif/pentax/mnote-pentax-entry.c:121
+#: libexif/pentax/mnote-pentax-entry.c:123
+msgid "200"
+msgstr "200"
+
+#: libexif/canon/mnote-canon-entry.c:171
+msgid "400"
+msgstr "400"
+
+#: libexif/canon/mnote-canon-entry.c:172
+msgid "800"
+msgstr "800"
+
+#: libexif/canon/mnote-canon-entry.c:173
+msgid "Default"
+msgstr "Дапомна"
+
+#: libexif/canon/mnote-canon-entry.c:174 libexif/exif-entry.c:698
+msgid "Spot"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:175 libexif/exif-entry.c:696
+msgid "Average"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:176
+msgid "Evaluative"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:177 libexif/exif-entry.c:701
+msgid "Partial"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:178 libexif/exif-entry.c:697
+msgid "Center-weighted average"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:181
+msgid "Not known"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:183
+msgid "Very close"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:184 libexif/exif-entry.c:797
+msgid "Close"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:185
+msgid "Middle range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:186
+msgid "Far range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:189
+#: libexif/pentax/mnote-pentax-entry.c:210
+msgid "Infinity"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:190
+msgid "Manual AF point selection"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:191 libexif/canon/mnote-canon-entry.c:349
+msgid "None (MF)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:192
+msgid "Auto-selected"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:193 libexif/canon/mnote-canon-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:224
+#: libexif/pentax/mnote-pentax-entry.c:238
+msgid "Right"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:194 libexif/canon/mnote-canon-entry.c:351
+#: libexif/pentax/mnote-pentax-entry.c:222
+#: libexif/pentax/mnote-pentax-entry.c:237
+msgid "Center"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:195 libexif/canon/mnote-canon-entry.c:353
+#: libexif/pentax/mnote-pentax-entry.c:220
+#: libexif/pentax/mnote-pentax-entry.c:236
+msgid "Left"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:196
+msgid "Auto AF point selection"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:197
+msgid "Easy shooting"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:163
+msgid "Program"
+msgstr "Праграма"
+
+#: libexif/canon/mnote-canon-entry.c:199
+msgid "Tv-priority"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:200
+msgid "Av-priority"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:202
+msgid "A-DEP"
+msgstr "A-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:203
+msgid "M-DEP"
+msgstr "M-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:204
+msgid "Canon EF 50mm f/1.8"
+msgstr "Canon EF 50mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:205
+msgid "Canon EF 28mm f/2.8"
+msgstr "Canon EF 28mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:206
+msgid "Sigma UC Zoom 35-135mm f/4-5.6"
+msgstr "Sigma UC Zoom 35-135mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:207
+msgid "Tokina AF193-2 19-35mm f/3.5-4.5"
+msgstr "Tokina AF193-2 19-35mm f/3.5-4.5"
+
+#: libexif/canon/mnote-canon-entry.c:208
+msgid "Canon EF 100-300mm F5.6L"
+msgstr "Canon EF 100-300mm F5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:209
+msgid "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+msgstr "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:210
+msgid "Canon EF 35mm f/2"
+msgstr "Canon EF 35mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:211
+msgid "Canon EF 15mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:212
+msgid "Canon EF 80-200mm f/2.8L"
+msgstr "Canon EF 80-200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:213
+#, fuzzy
+msgid "Tokina AT-X280AF PRO 28-80mm F2.8 Aspherical"
+msgstr "Tokina AT-X280AF PRO 28-80mm F2.8 ASPHERICAL"
+
+#: libexif/canon/mnote-canon-entry.c:214
+msgid "Cosina 100mm f/3.5 Macro AF"
+msgstr "Cosina 100mm f/3.5 Macro AF"
+
+#: libexif/canon/mnote-canon-entry.c:215
+msgid "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+msgstr "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:216
+msgid "Canon EF 50mm f/1.8 MkII"
+msgstr "Canon EF 50mm f/1.8 MkII"
+
+#: libexif/canon/mnote-canon-entry.c:217
+msgid "Tamron SP AF 300mm f/2.8 LD IF"
+msgstr "Tamron SP AF 300mm f/2.8 LD IF"
+
+#: libexif/canon/mnote-canon-entry.c:218
+msgid "Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+msgstr "Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+
+#: libexif/canon/mnote-canon-entry.c:219
+msgid "Canon EF 75-300mm f/4-5.6"
+msgstr "Canon EF 75-300mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:220
+msgid "Canon EF 28-80mm f/3.5-5.6"
+msgstr "Canon EF 28-80mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:221
+msgid "Canon EF 28-105mm f/4-5.6"
+msgstr "Canon EF 28-105mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:222
+msgid "Canon EF-S 18-55mm f/3.5-5.6"
+msgstr "Canon EF-S 18-55mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:223
+msgid "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+msgstr "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+
+#: libexif/canon/mnote-canon-entry.c:224
+msgid "Canon TS-E 24mm f/3.5L"
+msgstr "Canon TS-E 24mm f/3.5L"
+
+#: libexif/canon/mnote-canon-entry.c:225
+msgid "Canon TS-E 45mm f/2.8"
+msgstr "Canon TS-E 45mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:226
+msgid "Canon TS-E 90mm f/2.8"
+msgstr "Canon TS-E 90mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:227
+msgid "Canon EF 50mm f/1.0L"
+msgstr "Canon EF 50mm f/1.0L"
+
+#: libexif/canon/mnote-canon-entry.c:228
+msgid "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+msgstr "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+
+#: libexif/canon/mnote-canon-entry.c:229
+msgid "Canon EF 600mm f/4L IS"
+msgstr "Canon EF 600mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:230
+msgid "Canon EF 200mm f/1.8L"
+msgstr "Canon EF 200mm f/1.8L"
+
+#: libexif/canon/mnote-canon-entry.c:231
+msgid "Canon EF 300mm f/2.8L"
+msgstr "Canon EF 300mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:232
+msgid "Canon EF 85mm f/1.2L"
+msgstr "Canon EF 85mm f/1.2L"
+
+#: libexif/canon/mnote-canon-entry.c:233
+msgid "Canon EF 400mm f/2.8L"
+msgstr "Canon EF 400mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:234
+msgid "Canon EF 500mm f/4.5L"
+msgstr "Canon EF 500mm f/4.5L"
+
+#: libexif/canon/mnote-canon-entry.c:235
+msgid "Canon EF 300mm f/2.8L IS"
+msgstr "Canon EF 300mm f/2.8L IS"
+
+#: libexif/canon/mnote-canon-entry.c:236
+msgid "Canon EF 500mm f/4L IS"
+msgstr "Canon EF 500mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:237
+msgid "Canon EF 100mm f/2"
+msgstr "Canon EF 100mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:238
+msgid "Sigma 20mm EX f/1.8"
+msgstr "Sigma 20mm EX f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:239
+msgid "Canon EF 200mm f/2.8L"
+msgstr "Canon EF 200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:240
+msgid "Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+msgstr "Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:241
+msgid "Canon EF 35-350mm f/3.5-5.6L"
+msgstr "Canon EF 35-350mm f/3.5-5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:242
+msgid "Canon EF 85mm f/1.8 USM"
+msgstr "Canon EF 85mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:243
+msgid "Canon EF 28-105mm f/3.5-4.5 USM"
+msgstr "Canon EF 28-105mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:244
+msgid "Canon EF 20-35mm f/3.5-4.5 USM"
+msgstr "Canon EF 20-35mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:245
+msgid "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+msgstr "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:246
+msgid "Canon EF 70-200mm f/2.8 L"
+msgstr "Canon EF 70-200mm f/2.8 L"
+
+#: libexif/canon/mnote-canon-entry.c:247
+msgid "Canon EF 70-200mm f/2.8 L + x1.4"
+msgstr "Canon EF 70-200mm f/2.8 L + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:248
+msgid "Canon EF 70-200mm f/2.8 L + x2"
+msgstr "Canon EF 70-200mm f/2.8 L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:249
+msgid "Canon EF 28mm f/1.8 USM"
+msgstr "Canon EF 28mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:250
+msgid "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+msgstr "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+
+#: libexif/canon/mnote-canon-entry.c:251
+msgid "Canon EF 200mm f/2.8L II"
+msgstr "Canon EF 200mm f/2.8L II"
+
+#: libexif/canon/mnote-canon-entry.c:252
+msgid "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+msgstr "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+
+#: libexif/canon/mnote-canon-entry.c:253
+msgid "Canon EF 135mm f/2L"
+msgstr "Canon EF 135mm f/2L"
+
+#: libexif/canon/mnote-canon-entry.c:254
+msgid "Canon EF 24-85mm f/3.5-4.5 USM"
+msgstr "Canon EF 24-85mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:255
+msgid "Canon EF 300mm f/4L IS"
+msgstr "Canon EF 300mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:256
+msgid "Canon EF 28-135mm f/3.5-5.6 IS"
+msgstr "Canon EF 28-135mm f/3.5-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:257
+msgid "Canon EF 35mm f/1.4L"
+msgstr "Canon EF 35mm f/1.4L"
+
+#: libexif/canon/mnote-canon-entry.c:258
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:259
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+
+#: libexif/canon/mnote-canon-entry.c:260
+msgid "Canon EF 100-400mm f/4.5-5.6L IS"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS"
+
+#: libexif/canon/mnote-canon-entry.c:261
+msgid "Canon EF 400mm f/2.8L + x2"
+msgstr "Canon EF 400mm f/2.8L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:262
+msgid "Canon EF 70-200mm f/4L"
+msgstr "Canon EF 70-200mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:263
+msgid "Canon EF 100mm f/2.8 Macro"
+msgstr "Canon EF 100mm f/2.8 Macro"
+
+#: libexif/canon/mnote-canon-entry.c:264
+msgid "Canon EF 400mm f/4 DO IS"
+msgstr "Canon EF 400mm f/4 DO IS"
+
+#: libexif/canon/mnote-canon-entry.c:265
+msgid "Canon EF 75-300mm f/4-5.6 IS"
+msgstr "Canon EF 75-300mm f/4-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:266
+msgid "Canon EF 50mm f/1.4"
+msgstr "Canon EF 50mm f/1.4"
+
+#: libexif/canon/mnote-canon-entry.c:267
+msgid "Canon EF 28-80 f/3.5-5.6 USM IV"
+msgstr "Canon EF 28-80 f/3.5-5.6 USM IV"
+
+#: libexif/canon/mnote-canon-entry.c:268
+msgid "Canon EF 28-200mm f/3.5-5.6"
+msgstr "Canon EF 28-200mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:269
+msgid "Canon EF 90-300mm f/4.5-5.6"
+msgstr "Canon EF 90-300mm f/4.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:270
+msgid "Canon EF-S 18-55mm f/3.5-4.5 USM"
+msgstr "Canon EF-S 18-55mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:271
+msgid "Canon EF 70-200mm f/2.8L IS USM"
+msgstr "Canon EF 70-200mm f/2.8L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:272
+msgid "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+msgstr "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:273
+msgid "Canon EF 70-200mm f/2.8L IS USM + x2"
+msgstr "Canon EF 70-200mm f/2.8L IS USM + x2"
+
+#: libexif/canon/mnote-canon-entry.c:274
+msgid "Canon EF 16-35mm f/2.8L"
+msgstr "Canon EF 16-35mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:275
+msgid "Canon EF 24-70mm f/2.8L"
+msgstr "Canon EF 24-70mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:276
+msgid "Canon EF 17-40mm f/4L"
+msgstr "Canon EF 17-40mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:277
+msgid "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+msgstr "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:278
+msgid "Canon EF-S 17-85mm f4-5.6 IS USM"
+msgstr "Canon EF-S 17-85mm f4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:279
+msgid "Canon EF-S10-22mm F3.5-4.5 USM"
+msgstr "Canon EF-S10-22mm F3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:280
+msgid "Canon EF-S60mm F2.8 Macro USM"
+msgstr "Canon EF-S60mm F2.8 Macro USM"
+
+#: libexif/canon/mnote-canon-entry.c:281
+msgid "Canon EF 24-105mm f/4L IS"
+msgstr "Canon EF 24-105mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:282
+msgid "Canon EF 70-300mm F4-5.6 IS USM"
+msgstr "Canon EF 70-300mm F4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:283
+msgid "Canon EF 50mm F1.2L USM"
+msgstr "Canon EF 50mm F1.2L USM"
+
+#: libexif/canon/mnote-canon-entry.c:284
+msgid "Canon EF 70-200mm f/4L IS USM"
+msgstr "Canon EF 70-200mm f/4L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:286
+msgid "TTL"
+msgstr "TTL"
+
+#: libexif/canon/mnote-canon-entry.c:287
+msgid "A-TTL"
+msgstr "A-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:288
+msgid "E-TTL"
+msgstr "E-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:289
+msgid "FP sync enabled"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:290
+msgid "2nd-curtain sync used"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:291
+msgid "FP sync used"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:292
+#: libexif/olympus/mnote-olympus-entry.c:190
+msgid "Internal"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:293
+#: libexif/olympus/mnote-olympus-entry.c:191
+msgid "External"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:296
+msgid "Normal AE"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:297
+msgid "Exposure compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:298
+msgid "AE lock"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:299
+msgid "AE lock + exposure compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:300
+msgid "No AE"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:303
+msgid "On, shot only"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:307
+msgid "Smooth"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:310 libexif/canon/mnote-canon-entry.c:334
+#: libexif/canon/mnote-canon-entry.c:393 libexif/canon/mnote-canon-entry.c:406
+#: libexif/fuji/mnote-fuji-entry.c:81 libexif/pentax/mnote-pentax-entry.c:87
+msgid "Custom"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:311
+msgid "My color data"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:313 libexif/canon/mnote-canon-entry.c:375
+#: libexif/pentax/mnote-pentax-entry.c:126
+#: libexif/pentax/mnote-pentax-entry.c:145
+msgid "Full"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:314 libexif/canon/mnote-canon-entry.c:374
+msgid "2/3"
+msgstr "2/3"
+
+#: libexif/canon/mnote-canon-entry.c:315 libexif/canon/mnote-canon-entry.c:373
+msgid "1/3"
+msgstr "1/3"
+
+#: libexif/canon/mnote-canon-entry.c:321
+msgid "Fixed"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:322 libexif/pentax/mnote-pentax-tag.c:44
+msgid "Zoom"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:329
+msgid "Sunny"
+msgstr "Сонечна"
+
+#: libexif/canon/mnote-canon-entry.c:330 libexif/canon/mnote-canon-entry.c:402
+#: libexif/exif-entry.c:719 libexif/fuji/mnote-fuji-entry.c:75
+#: libexif/olympus/mnote-olympus-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:255
+msgid "Cloudy"
+msgstr "Воблачна"
+
+#: libexif/canon/mnote-canon-entry.c:331 libexif/canon/mnote-canon-entry.c:403
+#: libexif/exif-entry.c:716 libexif/pentax/mnote-pentax-entry.c:100
+#: libexif/pentax/mnote-pentax-entry.c:249
+msgid "Tungsten"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:332 libexif/canon/mnote-canon-entry.c:404
+#: libexif/exif-entry.c:715 libexif/pentax/mnote-pentax-entry.c:101
+#: libexif/pentax/mnote-pentax-entry.c:248
+msgid "Fluorescent"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:333 libexif/canon/mnote-canon-entry.c:405
+#: libexif/exif-entry.c:717 libexif/exif-entry.c:759 libexif/exif-tag.c:577
+#: libexif/fuji/mnote-fuji-entry.c:80 libexif/pentax/mnote-pentax-entry.c:254
+msgid "Flash"
+msgstr "Успышка"
+
+#: libexif/canon/mnote-canon-entry.c:336 libexif/canon/mnote-canon-entry.c:408
+#: libexif/exif-entry.c:720 libexif/pentax/mnote-pentax-entry.c:99
+#: libexif/pentax/mnote-pentax-entry.c:247
+msgid "Shade"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:337 libexif/canon/mnote-canon-entry.c:409
+msgid "Manual temperature (Kelvin)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:338 libexif/canon/mnote-canon-entry.c:410
+msgid "PC set 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:339 libexif/canon/mnote-canon-entry.c:411
+msgid "PC set 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:340 libexif/canon/mnote-canon-entry.c:412
+msgid "PC set 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:341 libexif/canon/mnote-canon-entry.c:413
+#: libexif/exif-entry.c:721 libexif/fuji/mnote-fuji-entry.c:76
+#: libexif/pentax/mnote-pentax-entry.c:251
+msgid "Daylight fluorescent"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:342 libexif/canon/mnote-canon-entry.c:414
+msgid "Custom 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:343 libexif/canon/mnote-canon-entry.c:415
+msgid "Custom 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:346 libexif/exif-entry.c:672
+#: libexif/pentax/mnote-pentax-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:132
+#: libexif/pentax/mnote-pentax-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:295
+msgid "Night scene"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:352
+msgid "Center-right"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:354
+#, fuzzy
+msgid "Left-right"
+msgstr "Злева направа"
+
+#: libexif/canon/mnote-canon-entry.c:355
+msgid "Left-center"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:356
+msgid "All"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:358
+msgid "On (shot 1)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:359
+msgid "On (shot 2)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:360
+msgid "On (shot 3)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:362
+msgid "EOS high-end"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:363
+msgid "Compact"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:364
+msgid "EOS mid-range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:366
+msgid "Rotate 90 CW"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:367
+msgid "Rotate 180"
+msgstr "Павярнуць на 180"
+
+#: libexif/canon/mnote-canon-entry.c:368
+msgid "Rotate 270 CW"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:369
+msgid "Rotated by software"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:381
+#: libexif/olympus/mnote-olympus-entry.c:606
+msgid "Left to right"
+msgstr "Злева направа"
+
+#: libexif/canon/mnote-canon-entry.c:382
+#: libexif/olympus/mnote-olympus-entry.c:609
+msgid "Right to left"
+msgstr "Справа налева"
+
+#: libexif/canon/mnote-canon-entry.c:383
+#: libexif/olympus/mnote-olympus-entry.c:612
+msgid "Bottom to top"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:384
+#: libexif/olympus/mnote-olympus-entry.c:615
+msgid "Top to bottom"
+msgstr "Зверху ўніз"
+
+#: libexif/canon/mnote-canon-entry.c:385
+msgid "2x2 matrix (clockwise)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:391 libexif/canon/mnote-canon-entry.c:397
+#: libexif/canon/mnote-canon-entry.c:418 libexif/canon/mnote-canon-entry.c:428
+#: libexif/exif-entry.c:671 libexif/fuji/mnote-fuji-entry.c:84
+#: libexif/fuji/mnote-fuji-entry.c:93 libexif/fuji/mnote-fuji-entry.c:163
+#: libexif/olympus/mnote-olympus-entry.c:227
+msgid "Standard"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:394
+msgid "N/A"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:395
+msgid "Lowest"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:399
+msgid "Highest"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:401 libexif/exif-entry.c:714
+#: libexif/fuji/mnote-fuji-entry.c:74
+#: libexif/olympus/mnote-olympus-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:98
+#: libexif/pentax/mnote-pentax-entry.c:246
+msgid "Daylight"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:419
+msgid "Set 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:420
+msgid "Set 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:421
+msgid "Set 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:422
+msgid "User def. 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:423
+msgid "User def. 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:424
+msgid "User def. 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:425
+msgid "External 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:426
+msgid "External 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:427
+msgid "External 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:432
+msgid "Faithful"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:115
+msgid "Monochrome"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:491
+msgid ", "
+msgstr ", "
+
+#: libexif/canon/mnote-canon-entry.c:577 libexif/canon/mnote-canon-entry.c:674
+#, c-format
+msgid "%i (ms)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:621
+#, c-format
+msgid "%.2f mm"
+msgstr "%.2f мм"
+
+#: libexif/canon/mnote-canon-entry.c:645
+#, c-format
+msgid "%.2f EV"
+msgstr "%.2f EV"
+
+#: libexif/canon/mnote-canon-entry.c:655 libexif/exif-entry.c:1064
+#, c-format
+msgid "1/%i"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:667
+#, c-format
+msgid "%u mm"
+msgstr "%u мм"
+
+#: libexif/canon/mnote-canon-tag.c:35
+msgid "Settings (First Part)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:36 libexif/canon/mnote-canon-tag.c:92
+#: libexif/exif-tag.c:581 libexif/pentax/mnote-pentax-tag.c:88
+msgid "Focal Length"
+msgstr "Фокусная адлегласьць"
+
+#: libexif/canon/mnote-canon-tag.c:37
+msgid "Settings (Second Part)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:38
+#: libexif/olympus/mnote-olympus-entry.c:595
+#: libexif/pentax/mnote-pentax-entry.c:177
+msgid "Panorama"
+msgstr "Панарама"
+
+#: libexif/canon/mnote-canon-tag.c:39
+msgid "Image Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:40 libexif/olympus/mnote-olympus-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:113
+msgid "Firmware Version"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:41
+msgid "Image Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:42
+msgid "Owner Name"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:43
+msgid "Color Information"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:44 libexif/fuji/mnote-fuji-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:81
+#: libexif/olympus/mnote-olympus-tag.c:146
+msgid "Serial Number"
+msgstr "Сэрыйны нумар"
+
+#: libexif/canon/mnote-canon-tag.c:45
+msgid "Custom Functions"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:56 libexif/fuji/mnote-fuji-tag.c:45
+msgid "Macro Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:57 libexif/canon/mnote-canon-tag.c:117
+#: libexif/olympus/mnote-olympus-tag.c:175
+#: libexif/pentax/mnote-pentax-tag.c:128
+msgid "Self-timer"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:58 libexif/fuji/mnote-fuji-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:94
+#: libexif/olympus/mnote-olympus-tag.c:107
+msgid "Quality"
+msgstr "Якасьць"
+
+#: libexif/canon/mnote-canon-tag.c:59 libexif/fuji/mnote-fuji-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:45
+#: libexif/olympus/mnote-olympus-tag.c:127
+#: libexif/pentax/mnote-pentax-tag.c:38 libexif/pentax/mnote-pentax-tag.c:73
+msgid "Flash Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:60 libexif/pentax/mnote-pentax-tag.c:101
+msgid "Drive Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:61 libexif/canon/mnote-canon-tag.c:82
+#: libexif/olympus/mnote-olympus-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:134
+#: libexif/olympus/mnote-olympus-tag.c:173
+#: libexif/pentax/mnote-pentax-tag.c:37 libexif/pentax/mnote-pentax-tag.c:74
+#: libexif/pentax/mnote-pentax-tag.c:130
+msgid "Focus Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:62 libexif/pentax/mnote-pentax-tag.c:127
+msgid "Record Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:63 libexif/pentax/mnote-pentax-tag.c:71
+msgid "Image Size"
+msgstr "Памер выявы"
+
+#: libexif/canon/mnote-canon-tag.c:64
+msgid "Easy Shooting Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:65 libexif/olympus/mnote-olympus-tag.c:64
+#: libexif/olympus/mnote-olympus-tag.c:101
+#: libexif/olympus/mnote-olympus-tag.c:110
+#: libexif/olympus/mnote-olympus-tag.c:180
+#: libexif/pentax/mnote-pentax-tag.c:89
+msgid "Digital Zoom"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:66 libexif/exif-tag.c:828
+#: libexif/fuji/mnote-fuji-tag.c:42 libexif/pentax/mnote-pentax-tag.c:46
+#: libexif/pentax/mnote-pentax-tag.c:91
+msgid "Contrast"
+msgstr "Кантраст"
+
+#: libexif/canon/mnote-canon-tag.c:67 libexif/exif-tag.c:832
+#: libexif/olympus/mnote-olympus-tag.c:75
+#: libexif/olympus/mnote-olympus-tag.c:87 libexif/pentax/mnote-pentax-tag.c:47
+#: libexif/pentax/mnote-pentax-tag.c:90
+msgid "Saturation"
+msgstr "Насычанасьць"
+
+#: libexif/canon/mnote-canon-tag.c:68 libexif/exif-tag.c:836
+#: libexif/fuji/mnote-fuji-tag.c:39 libexif/pentax/mnote-pentax-tag.c:45
+#: libexif/pentax/mnote-pentax-tag.c:92
+msgid "Sharpness"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:69
+msgid "ISO"
+msgstr "ISO"
+
+#: libexif/canon/mnote-canon-tag.c:70 libexif/exif-tag.c:571
+#: libexif/pentax/mnote-pentax-tag.c:82
+msgid "Metering Mode"
+msgstr "Рэжым вымярэньня"
+
+#: libexif/canon/mnote-canon-tag.c:71 libexif/olympus/mnote-olympus-tag.c:133
+msgid "Focus Range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:72 libexif/canon/mnote-canon-tag.c:105
+msgid "AF Point"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:73 libexif/exif-tag.c:795
+msgid "Exposure Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:74 libexif/olympus/mnote-olympus-tag.c:61
+#: libexif/pentax/mnote-pentax-tag.c:106
+msgid "Lens Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:75
+msgid "Long Focal Length of Lens"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:76
+msgid "Short Focal Length of Lens"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:77
+msgid "Focal Units per mm"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:78
+msgid "Maximal Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:79
+msgid "Minimal Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:80
+msgid "Flash Activity"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:81
+msgid "Flash Details"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:83
+msgid "AE Setting"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:84
+msgid "Image Stabilization"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:85
+msgid "Display Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:86
+msgid "Zoom Source Width"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:87
+msgid "Zoom Target Width"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:88
+msgid "Photo Effect"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:89 libexif/canon/mnote-canon-tag.c:118
+msgid "Manual Flash Output"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:90
+msgid "Color Tone"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:91
+msgid "Focal Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:93
+msgid "Focal Plane X Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:94
+msgid "Focal Plane Y Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:95
+msgid "Auto ISO"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:96
+msgid "Shot ISO"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:97
+msgid "Measured EV"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:98
+msgid "Target Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:99
+msgid "Target Exposure Time"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:100 libexif/olympus/mnote-olympus-tag.c:129
+#: libexif/pentax/mnote-pentax-tag.c:81
+msgid "Exposure Compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:101 libexif/canon/mnote-canon-tag.c:123
+#: libexif/exif-tag.c:800 libexif/fuji/mnote-fuji-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:41
+#: libexif/olympus/mnote-olympus-tag.c:98 libexif/pentax/mnote-pentax-tag.c:41
+#: libexif/pentax/mnote-pentax-tag.c:84 libexif/pentax/mnote-pentax-tag.c:124
+msgid "White Balance"
+msgstr "Баланс белага"
+
+#: libexif/canon/mnote-canon-tag.c:102
+msgid "Slow Shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:103
+msgid "Sequence Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:104
+msgid "Flash Guide Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:106 libexif/olympus/mnote-olympus-tag.c:52
+#: libexif/pentax/mnote-pentax-tag.c:109
+msgid "Flash Exposure Compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:107
+msgid "AE Bracketing"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:108
+msgid "AE Bracket Value"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:109
+msgid "Focus Distance Upper"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:110
+msgid "Focus Distance Lower"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:111
+msgid "FNumber"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:112 libexif/exif-tag.c:466
+#: libexif/pentax/mnote-pentax-tag.c:78
+msgid "Exposure Time"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:113
+msgid "Bulb Duration"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:114
+msgid "Camera Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:115
+msgid "Auto Rotate"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:116
+msgid "ND Filter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:119
+msgid "Panorama Frame"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:120
+msgid "Panorama Direction"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:121
+msgid "Tone Curve"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:122
+msgid "Sharpness Frequency"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:124
+msgid "Picture Style"
+msgstr ""
+
+#: libexif/exif-byte-order.c:33
+msgid "Motorola"
+msgstr ""
+
+#: libexif/exif-byte-order.c:35
+msgid "Intel"
+msgstr "Intel"
+
+#: libexif/exif-data.c:780
+msgid "Size of data too small to allow for EXIF data."
+msgstr ""
+
+#: libexif/exif-data.c:841
+msgid "EXIF marker not found."
+msgstr ""
+
+#: libexif/exif-data.c:868
+msgid "EXIF header not found."
+msgstr ""
+
+#: libexif/exif-data.c:884
+msgid "Unknown encoding."
+msgstr ""
+
+#: libexif/exif-data.c:1168
+msgid "Ignore unknown tags"
+msgstr ""
+
+#: libexif/exif-data.c:1169
+msgid "Ignore unknown tags when loading EXIF data."
+msgstr ""
+
+#: libexif/exif-data.c:1170
+msgid "Follow specification"
+msgstr ""
+
+#: libexif/exif-data.c:1171
+msgid ""
+"Add, correct and remove entries to get EXIF data that follows the "
+"specification."
+msgstr ""
+
+#: libexif/exif-data.c:1173
+msgid "Do not change maker note"
+msgstr ""
+
+#: libexif/exif-data.c:1174
+msgid ""
+"When loading and resaving Exif data, save the maker note unmodified. Be "
+"aware that the maker note can get corrupted."
+msgstr ""
+
+#: libexif/exif-entry.c:234 libexif/exif-entry.c:303 libexif/exif-entry.c:336
+#, c-format
+msgid ""
+"Tag '%s' was of format '%s' (which is against specification) and has been "
+"changed to format '%s'."
+msgstr ""
+
+#: libexif/exif-entry.c:271
+#, c-format
+msgid ""
+"Tag '%s' is of format '%s' (which is against specification) but cannot be "
+"changed to format '%s'."
+msgstr ""
+
+#: libexif/exif-entry.c:354
+#, c-format
+msgid ""
+"Tag 'UserComment' had invalid format '%s'. Format has been set to "
+"'undefined'."
+msgstr ""
+
+#: libexif/exif-entry.c:381
+msgid ""
+"Tag 'UserComment' has been expanded to at least 8 bytes in order to follow "
+"the specification."
+msgstr ""
+
+#: libexif/exif-entry.c:396
+msgid ""
+"Tag 'UserComment' is not empty but does not start with a format identifier. "
+"This has been fixed."
+msgstr ""
+
+#: libexif/exif-entry.c:424
+msgid ""
+"Tag 'UserComment' did not start with a format identifier. This has been "
+"fixed."
+msgstr ""
+
+#: libexif/exif-entry.c:462
+#, c-format
+msgid "%i bytes undefined data"
+msgstr ""
+
+#: libexif/exif-entry.c:589
+#, c-format
+msgid "%i bytes unsupported data type"
+msgstr ""
+
+#: libexif/exif-entry.c:622
+#, c-format
+msgid "The tag '%s' contains data of an invalid format ('%s', expected '%s')."
+msgstr ""
+
+#: libexif/exif-entry.c:635
+#, c-format
+msgid ""
+"The tag '%s' contains an invalid number of components (%i, expected %i)."
+msgstr ""
+
+#: libexif/exif-entry.c:649
+msgid "Chunky format"
+msgstr ""
+
+#: libexif/exif-entry.c:649
+#, fuzzy
+msgid "Planar format"
+msgstr "Панарама"
+
+#: libexif/exif-entry.c:651 libexif/exif-entry.c:743
+#: test/nls/test-codeset.c:54
+msgid "Not defined"
+msgstr ""
+
+#: libexif/exif-entry.c:651
+msgid "One-chip color area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:652
+msgid "Two-chip color area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:652
+msgid "Three-chip color area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:653
+msgid "Color sequential area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:653
+msgid "Trilinear sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:654
+msgid "Color sequential linear sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:233
+msgid "Top-left"
+msgstr ""
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:235
+msgid "Top-right"
+msgstr ""
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:241
+msgid "Bottom-right"
+msgstr ""
+
+#: libexif/exif-entry.c:657 libexif/pentax/mnote-pentax-entry.c:239
+msgid "Bottom-left"
+msgstr ""
+
+#: libexif/exif-entry.c:657
+msgid "Left-top"
+msgstr ""
+
+#: libexif/exif-entry.c:657
+#, fuzzy
+msgid "Right-top"
+msgstr "Справа налева"
+
+#: libexif/exif-entry.c:658
+msgid "Right-bottom"
+msgstr ""
+
+#: libexif/exif-entry.c:658
+msgid "Left-bottom"
+msgstr ""
+
+#: libexif/exif-entry.c:660
+#, fuzzy
+msgid "Centered"
+msgstr "Сантымэтар"
+
+#: libexif/exif-entry.c:660
+msgid "Co-sited"
+msgstr ""
+
+#: libexif/exif-entry.c:662
+msgid "Reversed mono"
+msgstr ""
+
+#: libexif/exif-entry.c:662
+msgid "Normal mono"
+msgstr ""
+
+#: libexif/exif-entry.c:662
+msgid "RGB"
+msgstr "RGB"
+
+#: libexif/exif-entry.c:662
+msgid "Palette"
+msgstr "Палітра"
+
+#: libexif/exif-entry.c:663
+msgid "CMYK"
+msgstr "CMYK"
+
+#: libexif/exif-entry.c:663
+msgid "YCbCr"
+msgstr "YCbCr"
+
+#: libexif/exif-entry.c:663
+msgid "CieLAB"
+msgstr "CieLAB"
+
+#: libexif/exif-entry.c:665
+msgid "Normal process"
+msgstr ""
+
+#: libexif/exif-entry.c:665
+msgid "Custom process"
+msgstr ""
+
+#: libexif/exif-entry.c:667
+msgid "Auto exposure"
+msgstr ""
+
+#: libexif/exif-entry.c:667 libexif/fuji/mnote-fuji-entry.c:139
+msgid "Manual exposure"
+msgstr ""
+
+#: libexif/exif-entry.c:667
+msgid "Auto bracket"
+msgstr ""
+
+#: libexif/exif-entry.c:669
+msgid "Auto white balance"
+msgstr ""
+
+#: libexif/exif-entry.c:669
+msgid "Manual white balance"
+msgstr ""
+
+#: libexif/exif-entry.c:674
+msgid "Low gain up"
+msgstr ""
+
+#: libexif/exif-entry.c:674
+msgid "High gain up"
+msgstr ""
+
+#: libexif/exif-entry.c:675
+msgid "Low gain down"
+msgstr ""
+
+#: libexif/exif-entry.c:675
+msgid "High gain down"
+msgstr ""
+
+#: libexif/exif-entry.c:677
+msgid "Low saturation"
+msgstr ""
+
+#: libexif/exif-entry.c:677 test/nls/test-codeset.c:48
+#: test/nls/test-codeset.c:61
+msgid "High saturation"
+msgstr ""
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:63
+#: libexif/olympus/mnote-olympus-entry.c:205
+#: libexif/olympus/mnote-olympus-entry.c:214
+#: libexif/pentax/mnote-pentax-entry.c:106
+#: libexif/pentax/mnote-pentax-entry.c:170
+msgid "Soft"
+msgstr ""
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:65 libexif/fuji/mnote-fuji-entry.c:95
+#: libexif/olympus/mnote-olympus-entry.c:204
+#: libexif/olympus/mnote-olympus-entry.c:212
+#: libexif/pentax/mnote-pentax-entry.c:107
+msgid "Hard"
+msgstr ""
+
+#: libexif/exif-entry.c:695 libexif/exif-entry.c:713 libexif/exif-entry.c:795
+#: libexif/olympus/mnote-olympus-entry.c:589
+#: libexif/olympus/mnote-olympus-entry.c:683
+#: libexif/olympus/mnote-olympus-entry.c:738
+#: libexif/pentax/mnote-pentax-entry.c:256
+msgid "Unknown"
+msgstr ""
+
+#: libexif/exif-entry.c:696
+#, fuzzy
+msgid "Avg"
+msgstr "avg"
+
+#: libexif/exif-entry.c:697
+msgid "Center-weight"
+msgstr ""
+
+#: libexif/exif-entry.c:699
+msgid "Multi spot"
+msgstr ""
+
+#: libexif/exif-entry.c:700
+msgid "Pattern"
+msgstr "Узор"
+
+#: libexif/exif-entry.c:705
+msgid "Uncompressed"
+msgstr ""
+
+#: libexif/exif-entry.c:706
+msgid "LZW compression"
+msgstr ""
+
+#: libexif/exif-entry.c:707 libexif/exif-entry.c:708
+msgid "JPEG compression"
+msgstr ""
+
+#: libexif/exif-entry.c:709
+msgid "Deflate/ZIP compression"
+msgstr ""
+
+#: libexif/exif-entry.c:710
+msgid "PackBits compression"
+msgstr ""
+
+#: libexif/exif-entry.c:716
+msgid "Tungsten incandescent light"
+msgstr ""
+
+#: libexif/exif-entry.c:718
+msgid "Fine weather"
+msgstr "Добрае надвор'е"
+
+#: libexif/exif-entry.c:719
+msgid "Cloudy weather"
+msgstr "Воблачнае надвор'е"
+
+#: libexif/exif-entry.c:722 libexif/fuji/mnote-fuji-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:252
+msgid "Day white fluorescent"
+msgstr ""
+
+#: libexif/exif-entry.c:723
+msgid "Cool white fluorescent"
+msgstr ""
+
+#: libexif/exif-entry.c:724 libexif/fuji/mnote-fuji-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:253
+msgid "White fluorescent"
+msgstr ""
+
+#: libexif/exif-entry.c:725
+msgid "Standard light A"
+msgstr ""
+
+#: libexif/exif-entry.c:726
+msgid "Standard light B"
+msgstr ""
+
+#: libexif/exif-entry.c:727
+msgid "Standard light C"
+msgstr ""
+
+#: libexif/exif-entry.c:728
+msgid "D55"
+msgstr "D55"
+
+#: libexif/exif-entry.c:729
+msgid "D65"
+msgstr "D65"
+
+#: libexif/exif-entry.c:730
+msgid "D75"
+msgstr "D75"
+
+#: libexif/exif-entry.c:731
+msgid "ISO studio tungsten"
+msgstr ""
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "Inch"
+msgstr ""
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "in"
+msgstr ""
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "Centimeter"
+msgstr "Сантымэтар"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "cm"
+msgstr "см"
+
+#: libexif/exif-entry.c:745
+msgid "Normal program"
+msgstr ""
+
+#: libexif/exif-entry.c:746
+msgid "Aperture priority"
+msgstr ""
+
+#: libexif/exif-entry.c:746 libexif/exif-tag.c:550
+msgid "Aperture"
+msgstr "Апертура"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter priority"
+msgstr ""
+
+#: libexif/exif-entry.c:747
+msgid "Shutter"
+msgstr ""
+
+#: libexif/exif-entry.c:748
+msgid "Creative program (biased toward depth of field)"
+msgstr ""
+
+#: libexif/exif-entry.c:749
+msgid "Creative"
+msgstr ""
+
+#: libexif/exif-entry.c:750
+msgid "Creative program (biased toward fast shutter speed)"
+msgstr ""
+
+#: libexif/exif-entry.c:751
+msgid "Action"
+msgstr "Дзеяньне"
+
+#: libexif/exif-entry.c:752
+msgid "Portrait mode (for closeup photos with the background out of focus)"
+msgstr ""
+
+#: libexif/exif-entry.c:754
+msgid "Landscape mode (for landscape photos with the background in focus)"
+msgstr ""
+
+#: libexif/exif-entry.c:758 libexif/exif-entry.c:763
+#: libexif/olympus/mnote-olympus-entry.c:97
+msgid "Flash did not fire"
+msgstr ""
+
+#: libexif/exif-entry.c:758
+#, fuzzy
+msgid "No flash"
+msgstr "Успышка"
+
+#: libexif/exif-entry.c:759
+msgid "Flash fired"
+msgstr ""
+
+#: libexif/exif-entry.c:759 libexif/olympus/mnote-olympus-entry.c:170
+#: libexif/olympus/mnote-olympus-entry.c:175
+#: libexif/olympus/mnote-olympus-entry.c:209
+#: libexif/olympus/mnote-olympus-entry.c:218
+#: libexif/olympus/mnote-olympus-entry.c:241
+msgid "Yes"
+msgstr ""
+
+#: libexif/exif-entry.c:760
+msgid "Strobe return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:760
+msgid "Without strobe"
+msgstr ""
+
+#: libexif/exif-entry.c:762
+msgid "Strobe return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:762
+msgid "With strobe"
+msgstr ""
+
+#: libexif/exif-entry.c:764
+msgid "Flash fired, compulsory flash mode"
+msgstr ""
+
+#: libexif/exif-entry.c:765
+msgid "Flash fired, compulsory flash mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:767
+msgid "Flash fired, compulsory flash mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:769
+msgid "Flash did not fire, compulsory flash mode"
+msgstr ""
+
+#: libexif/exif-entry.c:770
+msgid "Flash did not fire, auto mode"
+msgstr ""
+
+#: libexif/exif-entry.c:771
+msgid "Flash fired, auto mode"
+msgstr ""
+
+#: libexif/exif-entry.c:772
+msgid "Flash fired, auto mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:774
+msgid "Flash fired, auto mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:775
+msgid "No flash function"
+msgstr ""
+
+#: libexif/exif-entry.c:776
+msgid "Flash fired, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:777
+msgid "Flash fired, red-eye reduction mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:779
+msgid "Flash fired, red-eye reduction mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:781
+msgid "Flash fired, compulsory flash mode, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:783
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light not "
+"detected"
+msgstr ""
+
+#: libexif/exif-entry.c:785
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light "
+"detected"
+msgstr ""
+
+#: libexif/exif-entry.c:787
+msgid "Flash did not fire, auto mode, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:788
+msgid "Flash fired, auto mode, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:789
+msgid ""
+"Flash fired, auto mode, return light not detected, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:791
+msgid "Flash fired, auto mode, return light detected, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:795
+msgid "?"
+msgstr "?"
+
+#: libexif/exif-entry.c:797
+msgid "Close view"
+msgstr ""
+
+#: libexif/exif-entry.c:798
+msgid "Distant view"
+msgstr ""
+
+#: libexif/exif-entry.c:798
+msgid "Distant"
+msgstr ""
+
+#: libexif/exif-entry.c:801
+msgid "sRGB"
+msgstr "sRGB"
+
+#: libexif/exif-entry.c:802
+msgid "Adobe RGB"
+msgstr ""
+
+#: libexif/exif-entry.c:803
+msgid "Uncalibrated"
+msgstr ""
+
+#: libexif/exif-entry.c:857
+#, c-format
+msgid "Invalid size of entry (%i, expected %li x %i)."
+msgstr ""
+
+#: libexif/exif-entry.c:890
+msgid "Unsupported UNICODE string"
+msgstr ""
+
+#: libexif/exif-entry.c:898
+msgid "Unsupported JIS string"
+msgstr ""
+
+#: libexif/exif-entry.c:914
+msgid "Tag UserComment does not comply with standard but contains data."
+msgstr ""
+
+#: libexif/exif-entry.c:918
+#, c-format
+msgid "Byte at position %i: 0x%02x"
+msgstr ""
+
+#: libexif/exif-entry.c:927
+msgid "Unknown Exif Version"
+msgstr ""
+
+#: libexif/exif-entry.c:931
+#, c-format
+msgid "Exif Version %d.%d"
+msgstr ""
+
+#: libexif/exif-entry.c:942
+msgid "FlashPix Version 1.0"
+msgstr ""
+
+#: libexif/exif-entry.c:944
+msgid "FlashPix Version 1.01"
+msgstr ""
+
+#: libexif/exif-entry.c:946
+msgid "Unknown FlashPix Version"
+msgstr ""
+
+#: libexif/exif-entry.c:959 libexif/exif-entry.c:972 libexif/exif-entry.c:1628
+#: libexif/exif-entry.c:1633 libexif/exif-entry.c:1637
+#: libexif/exif-entry.c:1642 libexif/exif-entry.c:1643
+msgid "[None]"
+msgstr ""
+
+#: libexif/exif-entry.c:961
+msgid "(Photographer)"
+msgstr ""
+
+#: libexif/exif-entry.c:975
+msgid "(Editor)"
+msgstr ""
+
+#: libexif/exif-entry.c:999 libexif/exif-entry.c:1079
+#: libexif/exif-entry.c:1096 libexif/exif-entry.c:1140
+#, c-format
+msgid "%.02f EV"
+msgstr "%.02f EV"
+
+#: libexif/exif-entry.c:1000
+#, c-format
+msgid " (f/%.01f)"
+msgstr " (f/%.01f)"
+
+#: libexif/exif-entry.c:1034
+#, c-format
+msgid " (35 equivalent: %d mm)"
+msgstr ""
+
+#: libexif/exif-entry.c:1067 libexif/exif-entry.c:1068
+msgid " sec."
+msgstr ""
+
+#: libexif/exif-entry.c:1082
+#, c-format
+msgid " (1/%d sec.)"
+msgstr ""
+
+#: libexif/exif-entry.c:1084
+#, c-format
+msgid " (%d sec.)"
+msgstr ""
+
+#: libexif/exif-entry.c:1097
+#, c-format
+msgid " (%.02f cd/m^2)"
+msgstr ""
+
+#: libexif/exif-entry.c:1107
+msgid "DSC"
+msgstr "DSC"
+
+#: libexif/exif-entry.c:1109 libexif/exif-entry.c:1149
+#: libexif/exif-entry.c:1236 libexif/exif-entry.c:1287
+#: libexif/exif-entry.c:1296 libexif/exif-entry.c:1332
+#: libexif/fuji/mnote-fuji-entry.c:236 libexif/fuji/mnote-fuji-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:359
+#, c-format
+msgid "Internal error (unknown value %i)"
+msgstr "Унутраная памылка (невядомае значэньне %i)"
+
+#: libexif/exif-entry.c:1117
+msgid "-"
+msgstr "-"
+
+#: libexif/exif-entry.c:1118
+msgid "Y"
+msgstr ""
+
+#: libexif/exif-entry.c:1119
+msgid "Cb"
+msgstr "Cb"
+
+#: libexif/exif-entry.c:1120
+msgid "Cr"
+msgstr "Cr"
+
+#: libexif/exif-entry.c:1121
+msgid "R"
+msgstr "R"
+
+#: libexif/exif-entry.c:1122
+msgid "G"
+msgstr "G"
+
+#: libexif/exif-entry.c:1123
+msgid "B"
+msgstr "B"
+
+#: libexif/exif-entry.c:1124
+msgid "Reserved"
+msgstr ""
+
+#: libexif/exif-entry.c:1147
+msgid "Directly photographed"
+msgstr ""
+
+#: libexif/exif-entry.c:1160
+msgid "YCbCr4:2:2"
+msgstr "YCbCr4:2:2"
+
+#: libexif/exif-entry.c:1162
+msgid "YCbCr4:2:0"
+msgstr "YCbCr4:2:0"
+
+#: libexif/exif-entry.c:1179
+#, c-format
+msgid "Within distance %i of (x,y) = (%i,%i)"
+msgstr ""
+
+#: libexif/exif-entry.c:1188
+#, c-format
+msgid "Within rectangle (width %i, height %i) around (x,y) = (%i,%i)"
+msgstr ""
+
+#: libexif/exif-entry.c:1194
+#, c-format
+msgid "Unexpected number of components (%li, expected 2, 3, or 4)."
+msgstr ""
+
+#: libexif/exif-entry.c:1232
+msgid "Sea level"
+msgstr ""
+
+#: libexif/exif-entry.c:1234
+msgid "Sea level reference"
+msgstr ""
+
+#: libexif/exif-entry.c:1342
+#, c-format
+msgid "Unknown value %i"
+msgstr ""
+
+#: libexif/exif-format.c:37
+msgid "Short"
+msgstr ""
+
+#: libexif/exif-format.c:38
+msgid "Rational"
+msgstr ""
+
+#: libexif/exif-format.c:39
+msgid "SRational"
+msgstr ""
+
+#: libexif/exif-format.c:40
+msgid "Undefined"
+msgstr ""
+
+#: libexif/exif-format.c:41
+msgid "ASCII"
+msgstr ""
+
+#: libexif/exif-format.c:42
+msgid "Long"
+msgstr ""
+
+#: libexif/exif-format.c:43
+msgid "Byte"
+msgstr "Байт"
+
+#: libexif/exif-format.c:44
+msgid "SByte"
+msgstr ""
+
+#: libexif/exif-format.c:45
+msgid "SShort"
+msgstr ""
+
+#: libexif/exif-format.c:46
+msgid "SLong"
+msgstr ""
+
+#: libexif/exif-format.c:47
+msgid "Float"
+msgstr ""
+
+#: libexif/exif-format.c:48
+msgid "Double"
+msgstr ""
+
+#: libexif/exif-loader.c:119
+#, c-format
+msgid "The file '%s' could not be opened."
+msgstr ""
+
+#: libexif/exif-loader.c:300
+msgid "The data supplied does not seem to contain EXIF data."
+msgstr ""
+
+#: libexif/exif-log.c:43
+msgid "Debugging information"
+msgstr ""
+
+#: libexif/exif-log.c:44
+msgid "Debugging information is available."
+msgstr ""
+
+#: libexif/exif-log.c:45
+msgid "Not enough memory"
+msgstr "Не хапае памяці"
+
+#: libexif/exif-log.c:46
+msgid "The system cannot provide enough memory."
+msgstr ""
+
+#: libexif/exif-log.c:47
+msgid "Corrupt data"
+msgstr ""
+
+#: libexif/exif-log.c:48
+msgid "The data provided does not follow the specification."
+msgstr ""
+
+#: libexif/exif-tag.c:62
+msgid "GPS Tag Version"
+msgstr ""
+
+#: libexif/exif-tag.c:63
+msgid ""
+"Indicates the version of <GPSInfoIFD>. The version is given as 2.0.0.0. This "
+"tag is mandatory when <GPSInfo> tag is present. (Note: The <GPSVersionID> "
+"tag is given in bytes, unlike the <ExifVersion> tag. When the version is "
+"2.0.0.0, the tag value is 02000000.H)."
+msgstr ""
+
+#: libexif/exif-tag.c:69
+msgid "Interoperability Index"
+msgstr ""
+
+#: libexif/exif-tag.c:70
+msgid ""
+"Indicates the identification of the Interoperability rule. Use \"R98\" for "
+"stating ExifR98 Rules. Four bytes used including the termination code "
+"(NULL). see the separate volume of Recommended Exif Interoperability Rules "
+"(ExifR98) for other tags used for ExifR98."
+msgstr ""
+
+#: libexif/exif-tag.c:76
+msgid "North or South Latitude"
+msgstr ""
+
+#: libexif/exif-tag.c:77
+msgid ""
+"Indicates whether the latitude is north or south latitude. The ASCII value "
+"'N' indicates north latitude, and 'S' is south latitude."
+msgstr ""
+
+#: libexif/exif-tag.c:81
+msgid "Interoperability Version"
+msgstr ""
+
+#: libexif/exif-tag.c:83
+msgid "Latitude"
+msgstr "Шырата"
+
+#: libexif/exif-tag.c:84
+msgid ""
+"Indicates the latitude. The latitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is dd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is dd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:91
+msgid "East or West Longitude"
+msgstr ""
+
+#: libexif/exif-tag.c:92
+msgid ""
+"Indicates whether the longitude is east or west longitude. ASCII 'E' "
+"indicates east longitude, and 'W' is west longitude."
+msgstr ""
+
+#: libexif/exif-tag.c:95
+msgid "Longitude"
+msgstr "Даўгата"
+
+#: libexif/exif-tag.c:96
+msgid ""
+"Indicates the longitude. The longitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is ddd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is ddd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:103
+msgid "Altitude Reference"
+msgstr ""
+
+#: libexif/exif-tag.c:104
+msgid ""
+"Indicates the altitude used as the reference altitude. If the reference is "
+"sea level and the altitude is above sea level, 0 is given. If the altitude "
+"is below sea level, a value of 1 is given and the altitude is indicated as "
+"an absolute value in the GSPAltitude tag. The reference unit is meters. Note "
+"that this tag is BYTE type, unlike other reference tags."
+msgstr ""
+
+#: libexif/exif-tag.c:110
+msgid "Altitude"
+msgstr ""
+
+#: libexif/exif-tag.c:111
+msgid ""
+"Indicates the altitude based on the reference in GPSAltitudeRef. Altitude is "
+"expressed as one RATIONAL value. The reference unit is meters."
+msgstr ""
+
+#: libexif/exif-tag.c:114
+msgid "GPS Time (Atomic Clock)"
+msgstr ""
+
+#: libexif/exif-tag.c:115
+msgid ""
+"Indicates the time as UTC (Coordinated Universal Time). TimeStamp is "
+"expressed as three RATIONAL values giving the hour, minute, and second."
+msgstr ""
+
+#: libexif/exif-tag.c:118
+msgid "GPS Satellites"
+msgstr ""
+
+#: libexif/exif-tag.c:119
+msgid ""
+"Indicates the GPS satellites used for measurements. This tag can be used to "
+"describe the number of satellites, their ID number, angle of elevation, "
+"azimuth, SNR and other information in ASCII notation. The format is not "
+"specified. If the GPS receiver is incapable of taking measurements, value of "
+"the tag shall be set to NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:125
+msgid "GPS Receiver Status"
+msgstr ""
+
+#: libexif/exif-tag.c:126
+msgid ""
+"Indicates the status of the GPS receiver when the image is recorded. 'A' "
+"means measurement is in progress, and 'V' means the measurement is "
+"Interoperability."
+msgstr ""
+
+#: libexif/exif-tag.c:129
+msgid "GPS Measurement Mode"
+msgstr ""
+
+#: libexif/exif-tag.c:130
+msgid ""
+"Indicates the GPS measurement mode. '2' means two-dimensional measurement "
+"and '3' means three-dimensional measurement is in progress."
+msgstr ""
+
+#: libexif/exif-tag.c:133
+msgid "Measurement Precision"
+msgstr ""
+
+#: libexif/exif-tag.c:134
+msgid ""
+"Indicates the GPS DOP (data degree of precision). An HDOP value is written "
+"during two-dimensional measurement, and PDOP during three-dimensional "
+"measurement."
+msgstr ""
+
+#: libexif/exif-tag.c:137
+msgid "Speed Unit"
+msgstr ""
+
+#: libexif/exif-tag.c:138
+msgid ""
+"Indicates the unit used to express the GPS receiver speed of movement. 'K', "
+"'M' and 'N' represent kilometers per hour, miles per hour, and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:141
+msgid "Speed of GPS Receiver"
+msgstr ""
+
+#: libexif/exif-tag.c:142
+msgid "Indicates the speed of GPS receiver movement."
+msgstr ""
+
+#: libexif/exif-tag.c:143
+msgid "Reference for direction of movement"
+msgstr ""
+
+#: libexif/exif-tag.c:144
+msgid ""
+"Indicates the reference for giving the direction of GPS receiver movement. "
+"'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:147
+msgid "Direction of Movement"
+msgstr ""
+
+#: libexif/exif-tag.c:148
+msgid ""
+"Indicates the direction of GPS receiver movement. The range of values is "
+"from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:150
+msgid "GPS Image Direction Reference"
+msgstr ""
+
+#: libexif/exif-tag.c:151
+msgid ""
+"Indicates the reference for giving the direction of the image when it is "
+"captured. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:153
+#, fuzzy
+msgid "GPS Image Direction"
+msgstr "Апісаньне выявы"
+
+#: libexif/exif-tag.c:154
+msgid ""
+"Indicates the direction of the image when it was captured. The range of "
+"values is from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:156
+msgid "Geodetic Survey Data Used"
+msgstr ""
+
+#: libexif/exif-tag.c:157
+msgid ""
+"Indicates the geodetic survey data used by the GPS receiver. If the survey "
+"data is restricted to Japan, the value of this tag is 'TOKYO' or 'WGS-84'. "
+"If a GPS Info tag is recorded, it is strongly recommended that this tag be "
+"recorded."
+msgstr ""
+
+#: libexif/exif-tag.c:161
+msgid "Reference For Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:162
+msgid ""
+"Indicates whether the latitude of the destination point is north or south "
+"latitude. The ASCII value 'N' indicates north latitude, and 'S' is south "
+"latitude."
+msgstr ""
+
+#: libexif/exif-tag.c:165
+msgid "Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:166
+msgid ""
+"Indicates the latitude of the destination point. The latitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If latitude is expressed as degrees, minutes and seconds, a "
+"typical format would be dd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be dd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:173
+msgid "Reference for Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:174
+msgid ""
+"Indicates whether the longitude of the destination point is east or west "
+"longitude. ASCII 'E' indicates east longitude, and 'W' is west longitude."
+msgstr ""
+
+#: libexif/exif-tag.c:177
+msgid "Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:178
+msgid ""
+"Indicates the longitude of the destination point. The longitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If longitude is expressed as degrees, minutes and seconds, a "
+"typical format would be ddd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be ddd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:186
+msgid "Reference for Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:187
+msgid ""
+"Indicates the reference used for giving the bearing to the destination "
+"point. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:190
+msgid "Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:191
+msgid ""
+"Indicates the bearing to the destination point. The range of values is from "
+"0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:193
+msgid "Reference for Distance to Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:194
+msgid ""
+"Indicates the unit used to express the distance to the destination point. "
+"'K', 'M' and 'N' represent kilometers, miles and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:197
+msgid "Distance to Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:198
+msgid "Indicates the distance to the destination point."
+msgstr ""
+
+#: libexif/exif-tag.c:199
+msgid "Name of GPS Processing Method"
+msgstr ""
+
+#: libexif/exif-tag.c:200
+msgid ""
+"A character string recording the name of the method used for location "
+"finding. The first byte indicates the character code used, and this is "
+"followed by the name of the method. Since the Type is not ASCII, NULL "
+"termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:205
+msgid "Name of GPS Area"
+msgstr ""
+
+#: libexif/exif-tag.c:206
+msgid ""
+"A character string recording the name of the GPS area. The first byte "
+"indicates the character code used, and this is followed by the name of the "
+"GPS area. Since the Type is not ASCII, NULL termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:210
+msgid "GPS Date"
+msgstr ""
+
+#: libexif/exif-tag.c:211
+msgid ""
+"A character string recording date and time information relative to UTC "
+"(Coordinated Universal Time). The format is \"YYYY:MM:DD\". The length of "
+"the string is 11 bytes including NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:215
+msgid "GPS Differential Correction"
+msgstr ""
+
+#: libexif/exif-tag.c:216
+msgid ""
+"Indicates whether differential correction is applied to the GPS receiver."
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "New Subfile Type"
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "A general indication of the kind of data contained in this subfile."
+msgstr ""
+
+#: libexif/exif-tag.c:222
+msgid "Image Width"
+msgstr ""
+
+#: libexif/exif-tag.c:223
+msgid ""
+"The number of columns of image data, equal to the number of pixels per row. "
+"In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:227
+msgid "Image Length"
+msgstr ""
+
+#: libexif/exif-tag.c:228
+msgid ""
+"The number of rows of image data. In JPEG compressed data a JPEG marker is "
+"used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:231
+msgid "Bits per Sample"
+msgstr ""
+
+#: libexif/exif-tag.c:232
+msgid ""
+"The number of bits per image component. In this standard each component of "
+"the image is 8 bits, so the value for this tag is 8. See also "
+"<SamplesPerPixel>. In JPEG compressed data a JPEG marker is used instead of "
+"this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:237
+msgid "Compression"
+msgstr "Сьцісканьне"
+
+#: libexif/exif-tag.c:238
+msgid ""
+"The compression scheme used for the image data. When a primary image is JPEG "
+"compressed, this designation is not necessary and is omitted. When "
+"thumbnails use JPEG compression, this tag value is set to 6."
+msgstr ""
+
+#: libexif/exif-tag.c:244
+msgid "Photometric Interpretation"
+msgstr ""
+
+#: libexif/exif-tag.c:245
+msgid ""
+"The pixel composition. In JPEG compressed data a JPEG marker is used instead "
+"of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:249
+msgid "Fill Order"
+msgstr ""
+
+#: libexif/exif-tag.c:251
+msgid "Document Name"
+msgstr "Назва дакумэнта"
+
+#: libexif/exif-tag.c:253
+msgid "Image Description"
+msgstr "Апісаньне выявы"
+
+#: libexif/exif-tag.c:254
+msgid ""
+"A character string giving the title of the image. It may be a comment such "
+"as \"1988 company picnic\" or the like. Two-bytes character codes cannot be "
+"used. When a 2-bytes code is necessary, the Exif Private tag <UserComment> "
+"is to be used."
+msgstr ""
+
+#: libexif/exif-tag.c:260
+msgid "Manufacturer"
+msgstr "Вытворца"
+
+#: libexif/exif-tag.c:261
+msgid ""
+"The manufacturer of the recording equipment. This is the manufacturer of the "
+"DSC, scanner, video digitizer or other equipment that generated the image. "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:267
+msgid "Model"
+msgstr "Мадэль"
+
+#: libexif/exif-tag.c:268
+msgid ""
+"The model name or model number of the equipment. This is the model name or "
+"number of the DSC, scanner, video digitizer or other equipment that "
+"generated the image. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:273
+msgid "Strip Offsets"
+msgstr ""
+
+#: libexif/exif-tag.c:274
+msgid ""
+"For each strip, the byte offset of that strip. It is recommended that this "
+"be selected so the number of strip bytes does not exceed 64 Kbytes. With "
+"JPEG compressed data this designation is not needed and is omitted. See also "
+"<RowsPerStrip> and <StripByteCounts>."
+msgstr ""
+
+#: libexif/exif-tag.c:280
+msgid "Orientation"
+msgstr "Напрамак"
+
+#: libexif/exif-tag.c:281
+msgid "The image orientation viewed in terms of rows and columns."
+msgstr ""
+
+#: libexif/exif-tag.c:284
+msgid "Samples per Pixel"
+msgstr ""
+
+#: libexif/exif-tag.c:285
+msgid ""
+"The number of components per pixel. Since this standard applies to RGB and "
+"YCbCr images, the value set for this tag is 3. In JPEG compressed data a "
+"JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:290
+msgid "Rows per Strip"
+msgstr ""
+
+#: libexif/exif-tag.c:291
+msgid ""
+"The number of rows per strip. This is the number of rows in the image of one "
+"strip when an image is divided into strips. With JPEG compressed data this "
+"designation is not needed and is omitted. See also <StripOffsets> and "
+"<StripByteCounts>."
+msgstr ""
+
+#: libexif/exif-tag.c:297
+msgid "Strip Byte Count"
+msgstr ""
+
+#: libexif/exif-tag.c:298
+msgid ""
+"The total number of bytes in each strip. With JPEG compressed data this "
+"designation is not needed and is omitted."
+msgstr ""
+
+#: libexif/exif-tag.c:301
+msgid "X-Resolution"
+msgstr ""
+
+#: libexif/exif-tag.c:302
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageWidth> direction. "
+"When the image resolution is unknown, 72 [dpi] is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:306
+msgid "Y-Resolution"
+msgstr ""
+
+#: libexif/exif-tag.c:307
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageLength> direction. "
+"The same value as <XResolution> is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:311
+msgid "Planar Configuration"
+msgstr ""
+
+#: libexif/exif-tag.c:312
+msgid ""
+"Indicates whether pixel components are recorded in a chunky or planar "
+"format. In JPEG compressed files a JPEG marker is used instead of this tag. "
+"If this field does not exist, the TIFF default of 1 (chunky) is assumed."
+msgstr ""
+
+#: libexif/exif-tag.c:317
+msgid "Resolution Unit"
+msgstr ""
+
+#: libexif/exif-tag.c:318
+msgid ""
+"The unit for measuring <XResolution> and <YResolution>. The same unit is "
+"used for both <XResolution> and <YResolution>. If the image resolution is "
+"unknown, 2 (inches) is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:323
+msgid "Transfer Function"
+msgstr ""
+
+#: libexif/exif-tag.c:324
+msgid ""
+"A transfer function for the image, described in tabular style. Normally this "
+"tag is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:328
+msgid "Software"
+msgstr "Праграмнае забясьпечаньне"
+
+#: libexif/exif-tag.c:329
+msgid ""
+"This tag records the name and version of the software or firmware of the "
+"camera or image input device used to generate the image. The detailed format "
+"is not specified, but it is recommended that the example shown below be "
+"followed. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:336
+msgid "Date and Time"
+msgstr "Дата й час"
+
+#: libexif/exif-tag.c:337
+msgid ""
+"The date and time of image creation. In this standard (EXIF-2.1) it is the "
+"date and time the file was changed."
+msgstr ""
+
+#: libexif/exif-tag.c:340
+msgid "Artist"
+msgstr "Выканаўца"
+
+#: libexif/exif-tag.c:341
+msgid ""
+"This tag records the name of the camera owner, photographer or image "
+"creator. The detailed format is not specified, but it is recommended that "
+"the information be written as in the example below for ease of "
+"Interoperability. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:347 libexif/pentax/mnote-pentax-tag.c:113
+msgid "White Point"
+msgstr ""
+
+#: libexif/exif-tag.c:348
+msgid ""
+"The chromaticity of the white point of the image. Normally this tag is not "
+"necessary, since color space is specified in the color space information tag "
+"(<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:353
+msgid "Primary Chromaticities"
+msgstr ""
+
+#: libexif/exif-tag.c:354
+msgid ""
+"The chromaticity of the three primary colors of the image. Normally this tag "
+"is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:359
+msgid "Defined by Adobe Corporation to enable TIFF Trees within a TIFF file."
+msgstr ""
+
+#: libexif/exif-tag.c:362
+msgid "Transfer Range"
+msgstr ""
+
+#: libexif/exif-tag.c:366
+msgid "JPEG Interchange Format"
+msgstr ""
+
+#: libexif/exif-tag.c:367
+msgid ""
+"The offset to the start byte (SOI) of JPEG compressed thumbnail data. This "
+"is not used for primary image JPEG data."
+msgstr ""
+
+#: libexif/exif-tag.c:372
+msgid "JPEG Interchange Format Length"
+msgstr ""
+
+#: libexif/exif-tag.c:373
+msgid ""
+"The number of bytes of JPEG compressed thumbnail data. This is not used for "
+"primary image JPEG data. JPEG thumbnails are not divided but are recorded as "
+"a continuous JPEG bitstream from SOI to EOI. Appn and COM markers should not "
+"be recorded. Compressed thumbnails must be recorded in no more than 64 "
+"Kbytes, including all other data to be recorded in APP1."
+msgstr ""
+
+#: libexif/exif-tag.c:382
+msgid "YCbCr Coefficients"
+msgstr ""
+
+#: libexif/exif-tag.c:383
+msgid ""
+"The matrix coefficients for transformation from RGB to YCbCr image data. No "
+"default is given in TIFF; but here the value given in \"Color Space "
+"Guidelines\", is used as the default. The color space is declared in a color "
+"space information tag, with the default being the value that gives the "
+"optimal image characteristics Interoperability this condition."
+msgstr ""
+
+#: libexif/exif-tag.c:392
+msgid "YCbCr Sub-Sampling"
+msgstr ""
+
+#: libexif/exif-tag.c:393
+msgid ""
+"The sampling ratio of chrominance components in relation to the luminance "
+"component. In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:398
+msgid "YCbCr Positioning"
+msgstr ""
+
+#: libexif/exif-tag.c:399
+msgid ""
+"The position of chrominance components in relation to the luminance "
+"component. This field is designated only for JPEG compressed data or "
+"uncompressed YCbCr data. The TIFF default is 1 (centered); but when Y:Cb:Cr "
+"= 4:2:2 it is recommended in this standard that 2 (co-sited) be used to "
+"record data, in order to improve the image quality when viewed on TV "
+"systems. When this field does not exist, the reader shall assume the TIFF "
+"default. In the case of Y:Cb:Cr = 4:2:0, the TIFF default (centered) is "
+"recommended. If the reader does not have the capability of supporting both "
+"kinds of <YCbCrPositioning>, it shall follow the TIFF default regardless of "
+"the value in this field. It is preferable that readers be able to support "
+"both centered and co-sited positioning."
+msgstr ""
+
+#: libexif/exif-tag.c:414
+msgid "Reference Black/White"
+msgstr ""
+
+#: libexif/exif-tag.c:415
+msgid ""
+"The reference black point value and reference white point value. No defaults "
+"are given in TIFF, but the values below are given as defaults here. The "
+"color space is declared in a color space information tag, with the default "
+"being the value that gives the optimal image characteristics "
+"Interoperability these conditions."
+msgstr ""
+
+#: libexif/exif-tag.c:423
+msgid "XML Packet"
+msgstr ""
+
+#: libexif/exif-tag.c:423
+msgid "XMP Metadata"
+msgstr ""
+
+#: libexif/exif-tag.c:438 libexif/exif-tag.c:784
+msgid "CFA Pattern"
+msgstr ""
+
+#: libexif/exif-tag.c:439 libexif/exif-tag.c:785
+msgid ""
+"Indicates the color filter array (CFA) geometric pattern of the image sensor "
+"when a one-chip color area sensor is used. It does not apply to all sensing "
+"methods."
+msgstr ""
+
+#: libexif/exif-tag.c:443
+msgid "Battery Level"
+msgstr "Узровень батарэі"
+
+#: libexif/exif-tag.c:444
+msgid "Copyright"
+msgstr "Аўтарскія правы"
+
+#: libexif/exif-tag.c:445
+msgid ""
+"Copyright information. In this standard the tag is used to indicate both the "
+"photographer and editor copyrights. It is the copyright notice of the person "
+"or organization claiming rights to the image. The Interoperability copyright "
+"statement including date and rights should be written in this field; e.g., "
+"\"Copyright, John Smith, 19xx. All rights reserved.\". In this standard the "
+"field records both the photographer and editor copyrights, with each "
+"recorded in a separate part of the statement. When there is a clear "
+"distinction between the photographer and editor copyrights, these are to be "
+"written in the order of photographer followed by editor copyright, separated "
+"by NULL (in this case, since the statement also ends with a NULL, there are "
+"two NULL codes) (see example 1). When only the photographer is given, it is "
+"terminated by one NULL code (see example 2). When only the editor copyright "
+"is given, the photographer copyright part consists of one space followed by "
+"a terminating NULL code, then the editor copyright is given (see example 3). "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:467
+msgid "Exposure time, given in seconds (sec)."
+msgstr ""
+
+#: libexif/exif-tag.c:469 libexif/pentax/mnote-pentax-tag.c:79
+msgid "F-Number"
+msgstr ""
+
+#: libexif/exif-tag.c:470
+msgid "The F number."
+msgstr ""
+
+#: libexif/exif-tag.c:475
+msgid "Image Resources Block"
+msgstr ""
+
+#: libexif/exif-tag.c:477
+msgid ""
+"A pointer to the Exif IFD. Interoperability, Exif IFD has the same structure "
+"as that of the IFD specified in TIFF. ordinarily, however, it does not "
+"contain image data as in the case of TIFF."
+msgstr ""
+
+#: libexif/exif-tag.c:485
+msgid "Exposure Program"
+msgstr ""
+
+#: libexif/exif-tag.c:486
+msgid ""
+"The class of the program used by the camera to set exposure when the picture "
+"is taken."
+msgstr ""
+
+#: libexif/exif-tag.c:490
+msgid "Spectral Sensitivity"
+msgstr ""
+
+#: libexif/exif-tag.c:491
+msgid ""
+"Indicates the spectral sensitivity of each channel of the camera used. The "
+"tag value is an ASCII string compatible with the standard developed by the "
+"ASTM Technical Committee."
+msgstr ""
+
+#: libexif/exif-tag.c:496
+msgid "GPS Info IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:497
+msgid ""
+"A pointer to the GPS Info IFD. The Interoperability structure of the GPS "
+"Info IFD, like that of Exif IFD, has no image data."
+msgstr ""
+
+#: libexif/exif-tag.c:503
+msgid "ISO Speed Ratings"
+msgstr ""
+
+#: libexif/exif-tag.c:504
+msgid ""
+"Indicates the ISO Speed and ISO Latitude of the camera or input device as "
+"specified in ISO 12232."
+msgstr ""
+
+#: libexif/exif-tag.c:507
+msgid "Opto-Electronic Conversion Function"
+msgstr ""
+
+#: libexif/exif-tag.c:508
+msgid ""
+"Indicates the Opto-Electronic Conversion Function (OECF) specified in ISO "
+"14524. <OECF> is the relationship between the camera optical input and the "
+"image values."
+msgstr ""
+
+#: libexif/exif-tag.c:513
+msgid "Time Zone Offset"
+msgstr ""
+
+#: libexif/exif-tag.c:514
+msgid "Encodes time zone of camera clock relative to GMT."
+msgstr ""
+
+#: libexif/exif-tag.c:515
+msgid "Exif Version"
+msgstr ""
+
+#: libexif/exif-tag.c:516
+msgid ""
+"The version of this standard supported. Nonexistence of this field is taken "
+"to mean nonconformance to the standard."
+msgstr ""
+
+#: libexif/exif-tag.c:520
+#, fuzzy
+msgid "Date and Time (Original)"
+msgstr "Дата й час"
+
+#: libexif/exif-tag.c:521
+msgid ""
+"The date and time when the original image data was generated. For a digital "
+"still camera the date and time the picture was taken are recorded."
+msgstr ""
+
+#: libexif/exif-tag.c:526
+#, fuzzy
+msgid "Date and Time (Digitized)"
+msgstr "Дата й час"
+
+#: libexif/exif-tag.c:527
+msgid "The date and time when the image was stored as digital data."
+msgstr ""
+
+#: libexif/exif-tag.c:530
+msgid "Components Configuration"
+msgstr "Канфігурацыя кампанэнтаў"
+
+#: libexif/exif-tag.c:531
+msgid ""
+"Information specific to compressed data. The channels of each component are "
+"arranged in order from the 1st component to the 4th. For uncompressed data "
+"the data arrangement is given in the <PhotometricInterpretation> tag. "
+"However, since <PhotometricInterpretation> can only express the order of Y, "
+"Cb and Cr, this tag is provided for cases when compressed data uses "
+"components other than Y, Cb, and Cr and to enable support of other sequences."
+msgstr ""
+
+#: libexif/exif-tag.c:541
+msgid "Compressed Bits per Pixel"
+msgstr ""
+
+#: libexif/exif-tag.c:542
+msgid ""
+"Information specific to compressed data. The compression mode used for a "
+"compressed image is indicated in unit bits per pixel."
+msgstr ""
+
+#: libexif/exif-tag.c:546 libexif/olympus/mnote-olympus-tag.c:123
+msgid "Shutter Speed"
+msgstr "Хуткасьць затвора"
+
+#: libexif/exif-tag.c:547
+msgid ""
+"Shutter speed. The unit is the APEX (Additive System of Photographic "
+"Exposure) setting."
+msgstr ""
+
+#: libexif/exif-tag.c:551
+msgid "The lens aperture. The unit is the APEX value."
+msgstr ""
+
+#: libexif/exif-tag.c:553
+msgid "Brightness"
+msgstr "Яркасьць"
+
+#: libexif/exif-tag.c:554
+msgid ""
+"The value of brightness. The unit is the APEX value. Ordinarily it is given "
+"in the range of -99.99 to 99.99."
+msgstr ""
+
+#: libexif/exif-tag.c:558
+msgid "Exposure Bias"
+msgstr ""
+
+#: libexif/exif-tag.c:559
+msgid ""
+"The exposure bias. The units is the APEX value. Ordinarily it is given in "
+"the range of -99.99 to 99.99."
+msgstr ""
+
+#: libexif/exif-tag.c:562
+msgid "Maximum Aperture Value"
+msgstr ""
+
+#: libexif/exif-tag.c:563
+msgid ""
+"The smallest F number of the lens. The unit is the APEX value. Ordinarily it "
+"is given in the range of 00.00 to 99.99, but it is not limited to this range."
+msgstr ""
+
+#: libexif/exif-tag.c:568
+msgid "Subject Distance"
+msgstr ""
+
+#: libexif/exif-tag.c:569
+msgid "The distance to the subject, given in meters."
+msgstr ""
+
+#: libexif/exif-tag.c:572
+msgid "The metering mode."
+msgstr ""
+
+#: libexif/exif-tag.c:574
+msgid "Light Source"
+msgstr ""
+
+#: libexif/exif-tag.c:575
+msgid "The kind of light source."
+msgstr ""
+
+#: libexif/exif-tag.c:578
+msgid ""
+"This tag is recorded when an image is taken using a strobe light (flash)."
+msgstr ""
+
+#: libexif/exif-tag.c:582
+msgid ""
+"The actual focal length of the lens, in mm. Conversion is not made to the "
+"focal length of a 35 mm film camera."
+msgstr ""
+
+#: libexif/exif-tag.c:585
+msgid "Subject Area"
+msgstr ""
+
+#: libexif/exif-tag.c:586
+msgid ""
+"This tag indicates the location and area of the main subject in the overall "
+"scene."
+msgstr ""
+
+#: libexif/exif-tag.c:590
+msgid "TIFF/EP Standard ID"
+msgstr ""
+
+#: libexif/exif-tag.c:591
+msgid "Maker Note"
+msgstr "Заўвага стваральніка"
+
+#: libexif/exif-tag.c:592
+msgid ""
+"A tag for manufacturers of Exif writers to record any desired information. "
+"The contents are up to the manufacturer."
+msgstr ""
+
+#: libexif/exif-tag.c:595
+msgid "User Comment"
+msgstr "Камэнтар карыстальніка"
+
+#: libexif/exif-tag.c:596
+msgid ""
+"A tag for Exif users to write keywords or comments on the image besides "
+"those in <ImageDescription>, and without the character code limitations of "
+"the <ImageDescription> tag. The character code used in the <UserComment> tag "
+"is identified based on an ID code in a fixed 8-byte area at the start of the "
+"tag data area. The unused portion of the area is padded with NULL (\"00.h"
+"\"). ID codes are assigned by means of registration. The designation method "
+"and references for each character code are defined in the specification. The "
+"value of CountN is determined based on the 8 bytes in the character code "
+"area and the number of bytes in the user comment part. Since the TYPE is not "
+"ASCII, NULL termination is not necessary. The ID code for the <UserComment> "
+"area may be a Defined code such as JIS or ASCII, or may be Undefined. The "
+"Undefined name is UndefinedText, and the ID code is filled with 8 bytes of "
+"all \"NULL\" (\"00.H\"). An Exif reader that reads the <UserComment> tag "
+"must have a function for determining the ID code. This function is not "
+"required in Exif readers that do not use the <UserComment> tag. When a "
+"<UserComment> area is set aside, it is recommended that the ID code be ASCII "
+"and that the following user comment part be filled with blank characters [20."
+"H]."
+msgstr ""
+
+#: libexif/exif-tag.c:619
+msgid "Sub-second Time"
+msgstr ""
+
+#: libexif/exif-tag.c:620
+msgid "A tag used to record fractions of seconds for the <DateTime> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:624
+msgid "Sub-second Time (Original)"
+msgstr ""
+
+#: libexif/exif-tag.c:625
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeOriginal> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:629
+msgid "Sub-second Time (Digitized)"
+msgstr ""
+
+#: libexif/exif-tag.c:630
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeDigitized> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:634
+msgid "XP Title"
+msgstr ""
+
+#: libexif/exif-tag.c:635
+msgid "A character string giving the title of the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:639
+msgid "XP Comment"
+msgstr ""
+
+#: libexif/exif-tag.c:640
+msgid ""
+"A character string containing a comment about the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:644
+msgid "XP Author"
+msgstr ""
+
+#: libexif/exif-tag.c:645
+msgid ""
+"A character string containing the name of the image creator, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:649
+msgid "XP Keywords"
+msgstr ""
+
+#: libexif/exif-tag.c:650
+msgid ""
+"A character string containing key words describing the image, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:654
+msgid "XP Subject"
+msgstr ""
+
+#: libexif/exif-tag.c:655
+msgid "A character string giving the image subject, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:659
+msgid "The FlashPix format version supported by a FPXR file."
+msgstr ""
+
+#: libexif/exif-tag.c:661 libexif/pentax/mnote-pentax-tag.c:102
+msgid "Color Space"
+msgstr ""
+
+#: libexif/exif-tag.c:662
+msgid ""
+"The color space information tag is always recorded as the color space "
+"specifier. Normally sRGB (=1) is used to define the color space based on the "
+"PC monitor conditions and environment. If a color space other than sRGB is "
+"used, Uncalibrated (=FFFF.H) is set. Image data recorded as Uncalibrated can "
+"be treated as sRGB when it is converted to FlashPix."
+msgstr ""
+
+#: libexif/exif-tag.c:670
+msgid "Pixel X Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:671
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid width of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file."
+msgstr ""
+
+#: libexif/exif-tag.c:677
+msgid "Pixel Y Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:678
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid height of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file. Since data padding is unnecessary in the "
+"vertical direction, the number of lines recorded in this valid image height "
+"tag will in fact be the same as that recorded in the SOF."
+msgstr ""
+
+#: libexif/exif-tag.c:688
+msgid "Related Sound File"
+msgstr ""
+
+#: libexif/exif-tag.c:689
+msgid ""
+"This tag is used to record the name of an audio file related to the image "
+"data. The only relational information recorded here is the Exif audio file "
+"name and extension (an ASCII string consisting of 8 characters + '.' + 3 "
+"characters). The path is not recorded. Stipulations on audio and file naming "
+"conventions are defined in the specification. When using this tag, audio "
+"files must be recorded in conformance to the Exif audio format. Writers are "
+"also allowed to store the data such as Audio within APP2 as FlashPix "
+"extension stream data. The mapping of Exif image files and audio files is "
+"done in any of three ways, [1], [2] and [3]. If multiple files are mapped to "
+"one file as in [2] or [3], the above format is used to record just one audio "
+"file name. If there are multiple audio files, the first recorded file is "
+"given. In the case of [3], for example, for the Exif image file \"DSC00001."
+"JPG\" only  \"SND00001.WAV\" is given as the related Exif audio file. When "
+"there are three Exif audio files \"SND00001.WAV\", \"SND00002.WAV\" and "
+"\"SND00003.WAV\", the Exif image file name for each of them, \"DSC00001.JPG"
+"\", is indicated. By combining multiple relational information, a variety of "
+"playback possibilities can be supported. The method of using relational "
+"information is left to the implementation on the playback side. Since this "
+"information is an ASCII character string, it is terminated by NULL. When "
+"this tag is used to map audio files, the relation of the audio file to image "
+"data must also be indicated on the audio file end."
+msgstr ""
+
+#: libexif/exif-tag.c:719
+msgid "Interoperability IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:720
+msgid ""
+"Interoperability IFD is composed of tags which stores the information to "
+"ensure the Interoperability and pointed by the following tag located in Exif "
+"IFD. The Interoperability structure of Interoperability IFD is the same as "
+"TIFF defined IFD structure but does not contain the image data "
+"characteristically compared with normal TIFF IFD."
+msgstr ""
+
+#: libexif/exif-tag.c:729
+msgid "Flash Energy"
+msgstr ""
+
+#: libexif/exif-tag.c:730
+msgid ""
+"Indicates the strobe energy at the time the image is captured, as measured "
+"in Beam Candle Power Seconds (BCPS)."
+msgstr ""
+
+#: libexif/exif-tag.c:734
+msgid "Spatial Frequency Response"
+msgstr ""
+
+#: libexif/exif-tag.c:735
+msgid ""
+"This tag records the camera or input device spatial frequency table and SFR "
+"values in the direction of image width, image height, and diagonal "
+"direction, as specified in ISO 12233."
+msgstr ""
+
+#: libexif/exif-tag.c:741
+msgid "Focal Plane X-Resolution"
+msgstr ""
+
+#: libexif/exif-tag.c:742
+msgid ""
+"Indicates the number of pixels in the image width (X) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+
+#: libexif/exif-tag.c:746
+msgid "Focal Plane Y-Resolution"
+msgstr ""
+
+#: libexif/exif-tag.c:747
+msgid ""
+"Indicates the number of pixels in the image height (V) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+
+#: libexif/exif-tag.c:751
+msgid "Focal Plane Resolution Unit"
+msgstr ""
+
+#: libexif/exif-tag.c:752
+msgid ""
+"Indicates the unit for measuring <FocalPlaneXResolution> and "
+"<FocalPlaneYResolution>. This value is the same as the <ResolutionUnit>."
+msgstr ""
+
+#: libexif/exif-tag.c:757
+msgid "Subject Location"
+msgstr ""
+
+#: libexif/exif-tag.c:758
+msgid ""
+"Indicates the location of the main subject in the scene. The value of this "
+"tag represents the pixel at the center of the main subject relative to the "
+"left edge, prior to rotation processing as per the <Rotation> tag. The first "
+"value indicates the X column number and the second indicates the Y row "
+"number."
+msgstr ""
+
+#: libexif/exif-tag.c:765
+msgid "Exposure Index"
+msgstr ""
+
+#: libexif/exif-tag.c:766
+msgid ""
+"Indicates the exposure index selected on the camera or input device at the "
+"time the image is captured."
+msgstr ""
+
+#: libexif/exif-tag.c:769
+msgid "Sensing Method"
+msgstr ""
+
+#: libexif/exif-tag.c:770
+msgid "Indicates the image sensor type on the camera or input device."
+msgstr ""
+
+#: libexif/exif-tag.c:773 libexif/fuji/mnote-fuji-tag.c:64
+msgid "File Source"
+msgstr ""
+
+#: libexif/exif-tag.c:774
+msgid ""
+"Indicates the image source. If a DSC recorded the image, the tag value of "
+"this tag always be set to 3, indicating that the image was recorded on a DSC."
+msgstr ""
+
+#: libexif/exif-tag.c:778
+msgid "Scene Type"
+msgstr ""
+
+#: libexif/exif-tag.c:779
+msgid ""
+"Indicates the type of scene. If a DSC recorded the image, this tag value "
+"must always be set to 1, indicating that the image was directly photographed."
+msgstr ""
+
+#: libexif/exif-tag.c:789
+msgid "Custom Rendered"
+msgstr ""
+
+#: libexif/exif-tag.c:790
+msgid ""
+"This tag indicates the use of special processing on image data, such as "
+"rendering geared to output. When special processing is performed, the reader "
+"is expected to disable or minimize any further processing."
+msgstr ""
+
+#: libexif/exif-tag.c:796
+msgid ""
+"This tag indicates the exposure mode set when the image was shot. In auto-"
+"bracketing mode, the camera shoots a series of frames of the same scene at "
+"different exposure settings."
+msgstr ""
+
+#: libexif/exif-tag.c:801
+msgid "This tag indicates the white balance mode set when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:805
+msgid "Digital Zoom Ratio"
+msgstr ""
+
+#: libexif/exif-tag.c:806
+msgid ""
+"This tag indicates the digital zoom ratio when the image was shot. If the "
+"numerator of the recorded value is 0, this indicates that digital zoom was "
+"not used."
+msgstr ""
+
+#: libexif/exif-tag.c:811
+#, fuzzy
+msgid "Focal Length in 35mm Film"
+msgstr "Фокусная адлегласьць"
+
+#: libexif/exif-tag.c:812
+msgid ""
+"This tag indicates the equivalent focal length assuming a 35mm film camera, "
+"in mm. A value of 0 means the focal length is unknown. Note that this tag "
+"differs from the FocalLength tag."
+msgstr ""
+
+#: libexif/exif-tag.c:818
+msgid "Scene Capture Type"
+msgstr ""
+
+#: libexif/exif-tag.c:819
+msgid ""
+"This tag indicates the type of scene that was shot. It can also be used to "
+"record the mode in which the image was shot. Note that this differs from the "
+"scene type <SceneType> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:824
+msgid "Gain Control"
+msgstr ""
+
+#: libexif/exif-tag.c:825
+msgid "This tag indicates the degree of overall image gain adjustment."
+msgstr ""
+
+#: libexif/exif-tag.c:829
+msgid ""
+"This tag indicates the direction of contrast processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:833
+msgid ""
+"This tag indicates the direction of saturation processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:837
+msgid ""
+"This tag indicates the direction of sharpness processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:841
+msgid "Device Setting Description"
+msgstr ""
+
+#: libexif/exif-tag.c:842
+msgid ""
+"This tag indicates information on the picture-taking conditions of a "
+"particular camera model. The tag is used only to indicate the picture-taking "
+"conditions in the reader."
+msgstr ""
+
+#: libexif/exif-tag.c:848
+msgid "Subject Distance Range"
+msgstr ""
+
+#: libexif/exif-tag.c:849
+msgid "This tag indicates the distance to the subject."
+msgstr ""
+
+#: libexif/exif-tag.c:851
+msgid "Image Unique ID"
+msgstr ""
+
+#: libexif/exif-tag.c:852
+msgid ""
+"This tag indicates an identifier assigned uniquely to each image. It is "
+"recorded as an ASCII string equivalent to hexadecimal notation and 128-bit "
+"fixed length."
+msgstr ""
+
+#: libexif/exif-tag.c:857
+msgid "Gamma"
+msgstr "Гама"
+
+#: libexif/exif-tag.c:858
+msgid "Indicates the value of coefficient gamma."
+msgstr ""
+
+#: libexif/exif-tag.c:860
+msgid "PRINT Image Matching"
+msgstr ""
+
+#: libexif/exif-tag.c:861
+msgid "Related to Epson's PRINT Image Matching technology"
+msgstr ""
+
+#: libexif/exif-tag.c:863
+msgid "Padding"
+msgstr ""
+
+#: libexif/exif-tag.c:864
+msgid ""
+"This tag reserves space that can be reclaimed later when additional metadata "
+"are added. New metadata can be written in place by replacing this tag with a "
+"smaller data element and using the reclaimed space to store the new or "
+"expanded metadata tags."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:62
+msgid "Softest"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:66
+msgid "Hardest"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:67 libexif/fuji/mnote-fuji-entry.c:96
+msgid "Medium soft"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:68 libexif/fuji/mnote-fuji-entry.c:94
+msgid "Medium hard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:69 libexif/fuji/mnote-fuji-entry.c:90
+#: libexif/fuji/mnote-fuji-entry.c:98 libexif/fuji/mnote-fuji-entry.c:182
+msgid "Film simulation mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:79
+msgid "Incandescent"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:85
+msgid "Medium high"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:87
+msgid "Medium low"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:88 libexif/fuji/mnote-fuji-entry.c:97
+msgid "Original"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:124 libexif/pentax/mnote-pentax-entry.c:164
+#: libexif/pentax/mnote-pentax-entry.c:299
+msgid "Program AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:125
+msgid "Natural photo"
+msgstr "Натуральны здымак"
+
+#: libexif/fuji/mnote-fuji-entry.c:126
+msgid "Vibration reduction"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:127
+msgid "Sunset"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:128 libexif/pentax/mnote-pentax-entry.c:181
+msgid "Museum"
+msgstr "Музэй"
+
+#: libexif/fuji/mnote-fuji-entry.c:129
+msgid "Party"
+msgstr "Вечарына"
+
+#: libexif/fuji/mnote-fuji-entry.c:130
+msgid "Flower"
+msgstr "Кветка"
+
+#: libexif/fuji/mnote-fuji-entry.c:131 libexif/pentax/mnote-pentax-entry.c:176
+msgid "Text"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:132
+msgid "NP & flash"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:137
+msgid "Aperture priority AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:138
+msgid "Shutter priority AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:146
+msgid "F-Standard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:147
+msgid "F-Chrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:148
+msgid "F-B&W"
+msgstr "F-B&W"
+
+#: libexif/fuji/mnote-fuji-entry.c:151
+msgid "No blur"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:152
+msgid "Blur warning"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:155
+msgid "Focus good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:156
+msgid "Out of focus"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:159
+msgid "AE good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:160
+msgid "Over exposed"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:164
+msgid "Wide"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:167
+msgid "F0/Standard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:168
+msgid "F1/Studio portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:169
+msgid "F1a/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:170
+msgid "F1b/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:171
+msgid "F1c/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:172
+msgid "F2/Fujichrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:173
+msgid "F3/Studio portrait Ex"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:174
+msgid "F4/Velvia"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:177
+msgid "Auto (100-400%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:179
+msgid "Standard (100%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:180
+msgid "Wide1 (230%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:181
+msgid "Wide2 (400%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:263
+#, c-format
+msgid "%2.2f mm"
+msgstr "%2.2f мм"
+
+#: libexif/fuji/mnote-fuji-entry.c:298 libexif/pentax/mnote-pentax-entry.c:399
+#: libexif/pentax/mnote-pentax-entry.c:451
+#, c-format
+msgid "%i bytes unknown data"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:36
+msgid "Maker Note Version"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:37
+msgid "This number is unique and based on the date of manufacture."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:41
+msgid "Chromaticity Saturation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:44
+msgid "Flash Firing Strength Compensation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:46
+msgid "Focusing Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:47
+msgid "Focus Point"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:48
+msgid "Slow Synchro Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:49 libexif/pentax/mnote-pentax-tag.c:72
+msgid "Picture Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:50
+msgid "Continuous Taking"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:51
+msgid "Continuous Sequence Number"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:52
+msgid "FinePix Color"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:53
+msgid "Blur Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:54
+msgid "Auto Focus Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:55
+msgid "Auto Exposure Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:56
+msgid "Dynamic Range"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:57
+msgid "Film Simulation Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:58
+msgid "Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:59
+msgid "Development Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:60
+msgid "Minimum Focal Length"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:61
+msgid "Maximum Focal Length"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:62
+msgid "Maximum Aperture at Minimum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:63
+msgid "Maximum Aperture at Maximum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:65
+msgid "Order Number"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:66 libexif/pentax/mnote-pentax-tag.c:98
+msgid "Frame Number"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:49
+#, c-format
+msgid "Invalid format '%s', expected '%s' or '%s'."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:89
+msgid "AF non D lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:91
+msgid "AF-D or AF-S lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:92
+msgid "AF-D G lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:93
+msgid "AF-D VR lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:94
+msgid "AF-D G VR lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:98
+msgid "Flash unit unknown"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:99
+msgid "Flash is external"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:100
+msgid "Flash is on camera"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:103
+msgid "VGA basic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:104
+msgid "VGA normal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:105
+msgid "VGA fine"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:106
+msgid "SXGA basic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:107
+msgid "SXGA normal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:108
+msgid "SXGA fine"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:109
+msgid "2 Mpixel basic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:110
+msgid "2 Mpixel normal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:111
+msgid "2 Mpixel fine"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:114
+msgid "Color"
+msgstr "Колер"
+
+#: libexif/olympus/mnote-olympus-entry.c:119
+msgid "Bright+"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:120
+msgid "Bright-"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:121
+msgid "Contrast+"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:122
+msgid "Contrast-"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:125
+msgid "ISO 80"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:126
+msgid "ISO 160"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:127
+msgid "ISO 320"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:128
+#: libexif/olympus/mnote-olympus-entry.c:246
+msgid "ISO 100"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:132
+msgid "Preset"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:134
+msgid "Incandescence"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:135
+msgid "Fluorescence"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:137
+msgid "SpeedLight"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:140
+msgid "No fisheye"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:141
+msgid "Fisheye on"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:144
+msgid "Normal, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:145
+msgid "Normal, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:146
+msgid "Normal, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:147
+msgid "Normal, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:148
+msgid "Normal, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:149
+msgid "Normal, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:150
+msgid "Normal, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:151
+msgid "Normal, standard"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:152
+msgid "Fine, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:153
+msgid "Fine, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:154
+msgid "Fine, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:155
+msgid "Fine, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:156
+msgid "Fine, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:157
+msgid "Fine, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:158
+msgid "Fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:159
+msgid "Super fine, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:160
+msgid "Super fine, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:161
+msgid "Super fine, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:162
+msgid "Super fine, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:163
+msgid "Super fine, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:164
+msgid "Super fine, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:165
+msgid "Super fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:166
+msgid "Super fine, high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:169
+#: libexif/olympus/mnote-olympus-entry.c:174
+#: libexif/olympus/mnote-olympus-entry.c:208
+#: libexif/olympus/mnote-olympus-entry.c:217
+#: libexif/olympus/mnote-olympus-entry.c:240
+msgid "No"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:180
+msgid "On (Preset)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:185
+msgid "Fill"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:192
+msgid "Internal + external"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:221
+msgid "Interlaced"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:222
+msgid "Progressive"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:228
+#: libexif/pentax/mnote-pentax-entry.c:85
+#: libexif/pentax/mnote-pentax-entry.c:139
+msgid "Best"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:229
+msgid "Adjust exposure"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:232
+#, fuzzy
+msgid "Spot focus"
+msgstr "Спорт"
+
+#: libexif/olympus/mnote-olympus-entry.c:233
+msgid "Normal focus"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:236
+msgid "Record while down"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:237
+msgid "Press start, press stop"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:245
+msgid "ISO 50"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:247
+msgid "ISO 200"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:248
+msgid "ISO 400"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:252
+#: libexif/pentax/mnote-pentax-entry.c:168
+msgid "Sport"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:253
+msgid "TV"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:255
+msgid "User 1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:256
+msgid "User 2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:257
+msgid "Lamp"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:260
+msgid "5 frames/sec"
+msgstr "5 кадраў/сэк"
+
+#: libexif/olympus/mnote-olympus-entry.c:261
+msgid "10 frames/sec"
+msgstr "10 кадраў/сэк"
+
+#: libexif/olympus/mnote-olympus-entry.c:262
+msgid "15 frames/sec"
+msgstr "15 кадраў/сэк"
+
+#: libexif/olympus/mnote-olympus-entry.c:263
+msgid "20 frames/sec"
+msgstr "20 кадраў/сэк"
+
+#: libexif/olympus/mnote-olympus-entry.c:375
+#, c-format
+msgid "Red Correction %f, blue Correction %f"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:383
+#, c-format
+msgid "%2.2f meters"
+msgstr "%2.2f мэтраў"
+
+#: libexif/olympus/mnote-olympus-entry.c:385
+msgid "No manual focus selection"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:411
+msgid "AF position: center"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:412
+msgid "AF position: top"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:413
+#, fuzzy
+msgid "AF position: bottom"
+msgstr "Зверху ўніз"
+
+#: libexif/olympus/mnote-olympus-entry.c:414
+msgid "AF position: left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:415
+msgid "AF position: right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:416
+msgid "AF position: upper-left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:417
+msgid "AF position: upper-right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:418
+msgid "AF position: lower-left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:419
+msgid "AF position: lower-right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:420
+msgid "AF position: far left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:421
+msgid "AF position: far right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:422
+msgid "Unknown AF position"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:503
+#, c-format
+msgid "Internal error (unknown value %hi)"
+msgstr "Унутраная памылка (невядомае значэньне %hi)"
+
+#: libexif/olympus/mnote-olympus-entry.c:441
+#: libexif/olympus/mnote-olympus-entry.c:511
+#, c-format
+msgid "Unknown value %hi"
+msgstr "Невядомае значэньне %hi"
+
+#: libexif/olympus/mnote-olympus-entry.c:536
+#: libexif/olympus/mnote-olympus-entry.c:556
+#, c-format
+msgid "Unknown %hu"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:553
+msgid "2 sec."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:592
+#, fuzzy
+msgid "Fast"
+msgstr "Успышка"
+
+#: libexif/olympus/mnote-olympus-entry.c:696
+msgid "Automatic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:726
+#, c-format
+msgid "Manual: %liK"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:729
+msgid "Manual: unknown"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:735
+msgid "One-touch"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:791
+#: libexif/olympus/mnote-olympus-entry.c:801
+msgid "Infinite"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:809
+#, c-format
+msgid "%i bytes unknown data: "
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:53
+msgid "ISO Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:39
+msgid "Color Mode (?)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:42
+msgid "Image Sharpening"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:44
+msgid "Flash Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:46
+msgid "White Balance Fine Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:47
+msgid "White Balance RB"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:49
+msgid "ISO Selection"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Preview Image IFD"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Offset of the preview image directory (IFD) inside the file."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:51
+msgid "Exposurediff ?"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:54
+msgid "Image Boundary"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:56
+msgid "Flash Exposure Bracket Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:57
+msgid "Exposure Bracket Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:58
+#: libexif/olympus/mnote-olympus-tag.c:96
+msgid "Image Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:59
+msgid "Tone Compensation"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:60
+msgid "Adapter"
+msgstr "Адаптэр"
+
+#: libexif/olympus/mnote-olympus-tag.c:62
+msgid "Lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:63
+#: libexif/olympus/mnote-olympus-tag.c:135
+#: libexif/olympus/mnote-olympus-tag.c:185
+msgid "Manual Focus Distance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:65
+msgid "Flash Used"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:66
+msgid "AF Focus Position"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:67
+msgid "Bracketing"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:69
+msgid "Lens F Stops"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:70
+msgid "Contrast Curve"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:71
+#: libexif/olympus/mnote-olympus-tag.c:95
+#: libexif/pentax/mnote-pentax-tag.c:134
+msgid "Color Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:72
+msgid "Light Type"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:74
+msgid "Hue Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:76
+#: libexif/olympus/mnote-olympus-tag.c:163
+#: libexif/pentax/mnote-pentax-tag.c:108
+msgid "Noise Reduction"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:79
+msgid "Sensor Pixel Size"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+#, fuzzy
+msgid "Image Data Size"
+msgstr "Памер выявы"
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Size of compressed image data in bytes."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:84
+msgid "Total Number of Pictures Taken"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:86
+msgid "Optimize Image"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:88
+msgid "Vari Program"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:89
+msgid "Capture Editor Data"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:90
+msgid "Capture Editor Version"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:97
+#: libexif/olympus/mnote-olympus-tag.c:183
+msgid "CCD Sensitivity"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:99
+msgid "Focus"
+msgstr "Фокус"
+
+#: libexif/olympus/mnote-olympus-tag.c:102
+msgid "Converter"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:105
+msgid "Thumbnail Image"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:106
+msgid "Speed/Sequence/Panorama Direction"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:109
+#, fuzzy
+msgid "Black & White Mode"
+msgstr "Чорна-белы"
+
+#: libexif/olympus/mnote-olympus-tag.c:111
+msgid "Focal Plane Diagonal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:112
+msgid "Lens Distortion Parameters"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:114
+msgid "Info"
+msgstr "Зьвесткі"
+
+#: libexif/olympus/mnote-olympus-tag.c:115
+msgid "Camera ID"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:116
+msgid "Precapture Frames"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:117
+msgid "White Board"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:118
+msgid "One Touch White Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:119
+msgid "White Balance Bracket"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:120
+#: libexif/pentax/mnote-pentax-tag.c:123
+msgid "White Balance Bias"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:121
+msgid "Data Dump"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:124
+msgid "ISO Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:125
+msgid "Aperture Value"
+msgstr "Велічыня апертуры"
+
+#: libexif/olympus/mnote-olympus-tag.c:126
+msgid "Brightness Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:128
+msgid "Flash Device"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:130
+msgid "Sensor Temperature"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:131
+msgid "Lens Temperature"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:132
+msgid "Light Condition"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:136
+msgid "Zoom Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:137
+msgid "Focus Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:138
+msgid "Sharpness Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:139
+msgid "Flash Charge Level"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:140
+msgid "Color Matrix"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:141
+msgid "Black Level"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:142
+msgid "White Balance Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:143
+#: libexif/pentax/mnote-pentax-tag.c:87
+msgid "Red Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:144
+#: libexif/pentax/mnote-pentax-tag.c:86
+msgid "Blue Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:145
+msgid "Color Matrix Number"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:147
+msgid "Flash Exposure Comp"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:148
+msgid "Internal Flash Table"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:149
+msgid "External Flash G Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:150
+msgid "External Flash Bounce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:151
+msgid "External Flash Zoom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:152
+msgid "External Flash Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:153
+msgid "Contrast Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:154
+msgid "Sharpness Factor"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:155
+msgid "Color Control"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:156
+msgid "Olympus Image Width"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:157
+msgid "Olympus Image Height"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:158
+msgid "Scene Detect"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:159
+msgid "Compression Ratio"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:160
+msgid "Preview Image Valid"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:161
+msgid "AF Result"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:162
+msgid "CCD Scan Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:164
+msgid "Infinity Lens Step"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:165
+msgid "Near Lens Step"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:166
+msgid "Light Value Center"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:167
+msgid "Light Value Periphery"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:170
+msgid "Sequential Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:171
+msgid "Wide Range"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:172
+msgid "Color Adjustment Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:174
+msgid "Quick Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:176
+msgid "Voice Memo"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:177
+msgid "Record Shutter Release"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:178
+msgid "Flicker Reduce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:179
+msgid "Optical Zoom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:181
+msgid "Light Source Special"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:182
+msgid "Resaved"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:184
+msgid "Scene Select"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:186
+msgid "Sequence Shot Interval"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:189
+msgid "Epson Image Width"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:190
+msgid "Epson Image Height"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:191
+msgid "Epson Software Version"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:80
+#: libexif/pentax/mnote-pentax-entry.c:134
+msgid "Multi-exposure"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:83
+#: libexif/pentax/mnote-pentax-entry.c:137
+msgid "Good"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:84
+#: libexif/pentax/mnote-pentax-entry.c:138
+msgid "Better"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:92
+msgid "Flash on"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:140
+msgid "TIFF"
+msgstr "TIFF"
+
+#: libexif/pentax/mnote-pentax-entry.c:150
+msgid "2560x1920 or 2304x1728"
+msgstr "2560x1920 ці 2304x1728"
+
+#: libexif/pentax/mnote-pentax-entry.c:156
+msgid "2304x1728 or 2592x1944"
+msgstr "2304x1728 ці 2592x1944"
+
+#: libexif/pentax/mnote-pentax-entry.c:158
+msgid "2816x2212 or 2816x2112"
+msgstr "2816x2212 ці 2816x2112"
+
+#: libexif/pentax/mnote-pentax-entry.c:171
+msgid "Surf & snow"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:172
+msgid "Sunset or candlelight"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:173
+msgid "Autumn"
+msgstr "Восень"
+
+#: libexif/pentax/mnote-pentax-entry.c:178
+#, fuzzy
+msgid "Self portrait"
+msgstr "Партрэт"
+
+#: libexif/pentax/mnote-pentax-entry.c:179
+msgid "Illustrations"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:180
+msgid "Digital filter"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:182
+msgid "Food"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:183
+#, fuzzy
+msgid "Green mode"
+msgstr "Рэжым вымярэньня"
+
+#: libexif/pentax/mnote-pentax-entry.c:184
+#, fuzzy
+msgid "Light pet"
+msgstr "Справа налева"
+
+#: libexif/pentax/mnote-pentax-entry.c:185
+msgid "Dark pet"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:186
+msgid "Medium pet"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:188
+#: libexif/pentax/mnote-pentax-entry.c:296
+msgid "Candlelight"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:189
+#, fuzzy
+msgid "Natural skin tone"
+msgstr "Натуральны здымак"
+
+#: libexif/pentax/mnote-pentax-entry.c:190
+msgid "Synchro sound record"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:191
+msgid "Frame composite"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:194
+msgid "Auto, did not fire"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:196
+msgid "Auto, did not fire, red-eye reduction"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:197
+msgid "Auto, fired"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:199
+msgid "Auto, fired, red-eye reduction"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:201
+msgid "On, wireless"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:202
+msgid "On, soft"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:203
+msgid "On, slow-sync"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:204
+msgid "On, slow-sync, red-eye reduction"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:205
+msgid "On, trailing-curtain sync"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:213
+msgid "AF-S"
+msgstr "AF-S"
+
+#: libexif/pentax/mnote-pentax-entry.c:214
+msgid "AF-C"
+msgstr "AF-C"
+
+#: libexif/pentax/mnote-pentax-entry.c:217
+msgid "Upper-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:218
+msgid "Top"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:219
+msgid "Upper-right"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:221
+msgid "Mid-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:223
+msgid "Mid-right"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:225
+msgid "Lower-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:226
+msgid "Bottom"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:227
+msgid "Lower-right"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:228
+#, fuzzy
+msgid "Fixed center"
+msgstr "Добрае надвор'е"
+
+#: libexif/pentax/mnote-pentax-entry.c:232
+msgid "Multiple"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:234
+msgid "Top-center"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:240
+msgid "Bottom-center"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:257
+msgid "User selected"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:282
+msgid "3008x2008 or 3040x2024"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:293
+msgid "Digital filter?"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:374
+#: libexif/pentax/mnote-pentax-entry.c:383
+#, c-format
+msgid "Internal error (unknown value %i %i)"
+msgstr "Унутраная памылка (невядомае значэньне %i %i)"
+
+#: libexif/pentax/mnote-pentax-tag.c:35 libexif/pentax/mnote-pentax-tag.c:63
+msgid "Capture Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:36 libexif/pentax/mnote-pentax-tag.c:70
+#: libexif/pentax/mnote-pentax-tag.c:129
+msgid "Quality Level"
+msgstr "Узровень якасьці"
+
+#: libexif/pentax/mnote-pentax-tag.c:54
+#, fuzzy
+msgid "ISO Speed"
+msgstr "Хуткасьць затвора"
+
+#: libexif/pentax/mnote-pentax-tag.c:56
+msgid "Colors"
+msgstr "Колеры"
+
+#: libexif/pentax/mnote-pentax-tag.c:59
+msgid "PrintIM Settings"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:60 libexif/pentax/mnote-pentax-tag.c:131
+msgid "Time Zone"
+msgstr "Часавая зона"
+
+#: libexif/pentax/mnote-pentax-tag.c:61
+msgid "Daylight Savings"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:64
+msgid "Preview Size"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:65
+msgid "Preview Length"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:66 libexif/pentax/mnote-pentax-tag.c:122
+msgid "Preview Start"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:67
+msgid "Model Identification"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:68
+msgid "Date"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:69
+msgid "Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:75
+msgid "AF Point Selected"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:76
+msgid "Auto AF Point"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:77
+msgid "Focus Position"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:80
+msgid "ISO Number"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:83
+msgid "Auto Bracketing"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:85
+msgid "White Balance Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:93
+msgid "World Time Location"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:94
+msgid "Hometown City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:95
+msgid "Destination City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Hometown DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Home Daylight Savings Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination Daylight Savings Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:99
+msgid "Image Processing"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:100
+msgid "Picture Mode (2)"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:103
+msgid "Image Area Offset"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:104
+msgid "Raw Image Size"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:105
+msgid "Autofocus Points Used"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:107
+msgid "Camera Temperature"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:110
+msgid "Image Tone"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:111
+msgid "Shake Reduction Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:112
+msgid "Black Point"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:114
+msgid "AE Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:115
+msgid "Lens Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:116
+msgid "Flash Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:117
+msgid "Camera Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:118
+msgid "Battery Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:119
+msgid "Hometown City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:120
+msgid "Destination City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Object Distance"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Distance of photographed object in millimeters."
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:126
+msgid "Flash Distance"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:132
+msgid "Bestshot Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:133
+msgid "CCS ISO Sensitivity"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:135
+msgid "Enhancement"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:136
+msgid "Finer"
+msgstr ""
+
+#: test/nls/test-nls.c:20 test/nls/test-nls.c:23 test/nls/test-nls.c:24
+msgid "[DO_NOT_TRANSLATE_THIS_MARKER]"
+msgstr "[DO_NOT_TRANSLATE_THIS_MARKER]"
+
+#~ msgid "%.02lf EV"
+#~ msgstr "%.02lf EV"
+
+#~ msgid "Shutter speed"
+#~ msgstr "Хуткасьць затвора"
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/boldquot.sed b/framework/modules/c_LibExifModule/libexif-0.6.20/po/boldquot.sed
new file mode 100644
index 0000000000000000000000000000000000000000..4b937aa517bcff9f5adfc2a01d6d780445999297
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/boldquot.sed
@@ -0,0 +1,10 @@
+s/"\([^"]*\)"/“\1”/g
+s/`\([^`']*\)'/‘\1’/g
+s/ '\([^`']*\)' / ‘\1’ /g
+s/ '\([^`']*\)'$/ ‘\1’/g
+s/^'\([^`']*\)' /‘\1’ /g
+s/“”/""/g
+s/“/“/g
+s/”/”/g
+s/‘/‘/g
+s/’/’/g
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/bs.gmo b/framework/modules/c_LibExifModule/libexif-0.6.20/po/bs.gmo
new file mode 100644
index 0000000000000000000000000000000000000000..0173db13421cd38649fb07b9d2b9f241ba9f0fa2
Binary files /dev/null and b/framework/modules/c_LibExifModule/libexif-0.6.20/po/bs.gmo differ
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/bs.po b/framework/modules/c_LibExifModule/libexif-0.6.20/po/bs.po
new file mode 100644
index 0000000000000000000000000000000000000000..6e035f20bfbe9c1723e023c86b8c93ee204c982c
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/bs.po
@@ -0,0 +1,5811 @@
+# Bosnian translation for libexif
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the libexif package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: libexif\n"
+"Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-12-15 22:14-0800\n"
+"PO-Revision-Date: 2010-01-11 10:29+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Bosnian <bs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-12-14 00:37+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: libexif/canon/mnote-canon-entry.c:40 libexif/fuji/mnote-fuji-entry.c:35
+#: libexif/olympus/mnote-olympus-entry.c:37
+#: libexif/pentax/mnote-pentax-entry.c:39
+#, c-format
+msgid "Invalid format '%s', expected '%s'."
+msgstr "Neispravan format '%s', očekivao sam '%s'."
+
+#: libexif/canon/mnote-canon-entry.c:52 libexif/fuji/mnote-fuji-entry.c:47
+#: libexif/olympus/mnote-olympus-entry.c:62
+#: libexif/pentax/mnote-pentax-entry.c:51
+#, c-format
+msgid "Invalid number of components (%i, expected %i)."
+msgstr "Neispravan broj elemenata (%i, očekivao sam %i)."
+
+#: libexif/canon/mnote-canon-entry.c:61
+#: libexif/olympus/mnote-olympus-entry.c:72
+#: libexif/pentax/mnote-pentax-entry.c:61
+#, c-format
+msgid "Invalid number of components (%i, expected %i or %i)."
+msgstr "Neispravan broj elemenata (%i, očekivao sam %i ili %i)."
+
+#: libexif/canon/mnote-canon-entry.c:76 libexif/canon/mnote-canon-entry.c:130
+#: libexif/canon/mnote-canon-entry.c:182 libexif/exif-entry.c:796
+#: libexif/olympus/mnote-olympus-entry.c:196
+#: libexif/olympus/mnote-olympus-tag.c:108
+#: libexif/pentax/mnote-pentax-entry.c:174
+#: libexif/pentax/mnote-pentax-entry.c:209
+#: libexif/pentax/mnote-pentax-entry.c:297
+msgid "Macro"
+msgstr "Makro"
+
+#: libexif/canon/mnote-canon-entry.c:77 libexif/canon/mnote-canon-entry.c:79
+#: libexif/canon/mnote-canon-entry.c:157 libexif/canon/mnote-canon-entry.c:160
+#: libexif/canon/mnote-canon-entry.c:163 libexif/exif-entry.c:674
+#: libexif/exif-entry.c:677 libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/exif-entry.c:745 libexif/fuji/mnote-fuji-entry.c:64
+#: libexif/olympus/mnote-olympus-entry.c:118
+#: libexif/olympus/mnote-olympus-entry.c:195
+#: libexif/olympus/mnote-olympus-entry.c:203
+#: libexif/olympus/mnote-olympus-entry.c:213
+#: libexif/olympus/mnote-olympus-entry.c:586
+#: libexif/pentax/mnote-pentax-entry.c:105
+#: libexif/pentax/mnote-pentax-entry.c:110
+#: libexif/pentax/mnote-pentax-entry.c:115
+#: libexif/pentax/mnote-pentax-entry.c:208
+msgid "Normal"
+msgstr "Normalno"
+
+#: libexif/canon/mnote-canon-entry.c:78
+msgid "Economy"
+msgstr "Ekonomično"
+
+#: libexif/canon/mnote-canon-entry.c:80
+msgid "Fine"
+msgstr "Odlično"
+
+#: libexif/canon/mnote-canon-entry.c:81 libexif/fuji/mnote-fuji-entry.c:178
+#: libexif/pentax/mnote-pentax-entry.c:141
+msgid "RAW"
+msgstr "RAW"
+
+#: libexif/canon/mnote-canon-entry.c:82
+msgid "Superfine"
+msgstr "Super fino"
+
+#: libexif/canon/mnote-canon-entry.c:83 libexif/canon/mnote-canon-entry.c:301
+#: libexif/canon/mnote-canon-entry.c:304 libexif/canon/mnote-canon-entry.c:312
+#: libexif/canon/mnote-canon-entry.c:345 libexif/canon/mnote-canon-entry.c:357
+#: libexif/canon/mnote-canon-entry.c:370 libexif/canon/mnote-canon-entry.c:372
+#: libexif/canon/mnote-canon-entry.c:574 libexif/canon/mnote-canon-entry.c:671
+#: libexif/fuji/mnote-fuji-entry.c:70 libexif/fuji/mnote-fuji-entry.c:103
+#: libexif/fuji/mnote-fuji-entry.c:107 libexif/fuji/mnote-fuji-entry.c:115
+#: libexif/fuji/mnote-fuji-entry.c:142
+#: libexif/olympus/mnote-olympus-entry.c:178
+#: libexif/olympus/mnote-olympus-entry.c:186
+#: libexif/olympus/mnote-olympus-entry.c:251
+#: libexif/olympus/mnote-olympus-entry.c:530
+#: libexif/olympus/mnote-olympus-entry.c:547
+#: libexif/pentax/mnote-pentax-entry.c:195
+#: libexif/pentax/mnote-pentax-entry.c:260
+msgid "Off"
+msgstr "Isključeno"
+
+#: libexif/canon/mnote-canon-entry.c:84 libexif/canon/mnote-canon-entry.c:167
+#: libexif/canon/mnote-canon-entry.c:180 libexif/canon/mnote-canon-entry.c:328
+#: libexif/canon/mnote-canon-entry.c:400 libexif/fuji/mnote-fuji-entry.c:73
+#: libexif/fuji/mnote-fuji-entry.c:101 libexif/fuji/mnote-fuji-entry.c:111
+#: libexif/fuji/mnote-fuji-entry.c:119
+#: libexif/olympus/mnote-olympus-entry.c:131
+#: libexif/olympus/mnote-olympus-entry.c:183
+#: libexif/olympus/mnote-olympus-entry.c:199
+#: libexif/olympus/mnote-olympus-entry.c:244
+#: libexif/pentax/mnote-pentax-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:88
+#: libexif/pentax/mnote-pentax-entry.c:91
+#: libexif/pentax/mnote-pentax-entry.c:97
+#: libexif/pentax/mnote-pentax-entry.c:131
+#: libexif/pentax/mnote-pentax-entry.c:229
+#: libexif/pentax/mnote-pentax-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:290
+msgid "Auto"
+msgstr "Automatski"
+
+#: libexif/canon/mnote-canon-entry.c:85 libexif/canon/mnote-canon-entry.c:302
+#: libexif/canon/mnote-canon-entry.c:347 libexif/canon/mnote-canon-entry.c:361
+#: libexif/canon/mnote-canon-entry.c:371 libexif/fuji/mnote-fuji-entry.c:102
+#: libexif/fuji/mnote-fuji-entry.c:108 libexif/fuji/mnote-fuji-entry.c:116
+#: libexif/fuji/mnote-fuji-entry.c:143
+#: libexif/olympus/mnote-olympus-entry.c:179
+#: libexif/olympus/mnote-olympus-entry.c:533
+#: libexif/olympus/mnote-olympus-entry.c:550
+#: libexif/pentax/mnote-pentax-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:261
+msgid "On"
+msgstr "Uključeno"
+
+#: libexif/canon/mnote-canon-entry.c:86 libexif/fuji/mnote-fuji-entry.c:104
+#: libexif/olympus/mnote-olympus-entry.c:184
+#: libexif/pentax/mnote-pentax-entry.c:94
+msgid "Red-eye reduction"
+msgstr "Ispravka crvenih očiju"
+
+#: libexif/canon/mnote-canon-entry.c:87
+msgid "Slow synchro"
+msgstr "Sporo usklađivanje"
+
+#: libexif/canon/mnote-canon-entry.c:88
+#, fuzzy
+msgid "Auto, red-eye reduction"
+msgstr "Automatski + Ispravka crvenih očiju"
+
+#: libexif/canon/mnote-canon-entry.c:89
+#: libexif/pentax/mnote-pentax-entry.c:200
+#, fuzzy
+msgid "On, red-eye reduction"
+msgstr "Uključeno, uklanjanje crvenih očiju"
+
+#: libexif/canon/mnote-canon-entry.c:90
+msgid "External flash"
+msgstr "Spoljni blic"
+
+#: libexif/canon/mnote-canon-entry.c:91 libexif/canon/mnote-canon-entry.c:101
+#: libexif/canon/mnote-canon-entry.c:294
+msgid "Single"
+msgstr "Jedna"
+
+#: libexif/canon/mnote-canon-entry.c:92 libexif/canon/mnote-canon-entry.c:102
+#: libexif/canon/mnote-canon-entry.c:295
+msgid "Continuous"
+msgstr "Neprekidno"
+
+#: libexif/canon/mnote-canon-entry.c:93
+msgid "Movie"
+msgstr "Film"
+
+#: libexif/canon/mnote-canon-entry.c:94
+msgid "Continuous, speed priority"
+msgstr "Neprekidno, prednost brzini"
+
+#: libexif/canon/mnote-canon-entry.c:95
+msgid "Continuous, low"
+msgstr "Neprekidno, nisko"
+
+#: libexif/canon/mnote-canon-entry.c:96
+msgid "Continuous, high"
+msgstr "Neprekidno, visoko"
+
+#: libexif/canon/mnote-canon-entry.c:97
+msgid "One-shot AF"
+msgstr "Automatski fokus za jedan snimak"
+
+#: libexif/canon/mnote-canon-entry.c:98
+msgid "AI servo AF"
+msgstr "AI servo AF"
+
+#: libexif/canon/mnote-canon-entry.c:99
+msgid "AI focus AF"
+msgstr "AI žiža AF"
+
+#: libexif/canon/mnote-canon-entry.c:100 libexif/canon/mnote-canon-entry.c:103
+msgid "Manual focus"
+msgstr "Ručno podesiva žiža"
+
+#: libexif/canon/mnote-canon-entry.c:104 libexif/canon/mnote-canon-entry.c:132
+#: libexif/canon/mnote-canon-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:212
+msgid "Pan focus"
+msgstr "Pan žiža"
+
+#: libexif/canon/mnote-canon-entry.c:105
+msgid "JPEG"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:106
+msgid "CRW+THM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:107
+msgid "AVI+THM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:108
+msgid "TIF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:109
+msgid "TIF+JPEG"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:110
+msgid "CR2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:111
+msgid "CR2+JPEG"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:112
+msgid "Large"
+msgstr "Veliko"
+
+#: libexif/canon/mnote-canon-entry.c:113
+msgid "Medium"
+msgstr "Srednje"
+
+#: libexif/canon/mnote-canon-entry.c:114
+msgid "Small"
+msgstr "Malo"
+
+#: libexif/canon/mnote-canon-entry.c:115
+msgid "Medium 1"
+msgstr "Srednje 1"
+
+#: libexif/canon/mnote-canon-entry.c:116
+msgid "Medium 2"
+msgstr "Srednje 2"
+
+#: libexif/canon/mnote-canon-entry.c:117
+msgid "Medium 3"
+msgstr "Srednje 3"
+
+#: libexif/canon/mnote-canon-entry.c:118
+msgid "Postcard"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:119
+msgid "Widescreen"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:120
+msgid "Full auto"
+msgstr "Potpuna automatika"
+
+#: libexif/canon/mnote-canon-entry.c:121 libexif/canon/mnote-canon-entry.c:179
+#: libexif/canon/mnote-canon-entry.c:201 libexif/canon/mnote-canon-entry.c:285
+#: libexif/canon/mnote-canon-entry.c:392 libexif/exif-entry.c:744
+#: libexif/fuji/mnote-fuji-entry.c:112
+#: libexif/olympus/mnote-olympus-entry.c:90
+#: libexif/olympus/mnote-olympus-entry.c:200
+#: libexif/pentax/mnote-pentax-entry.c:79
+#: libexif/pentax/mnote-pentax-entry.c:102
+#: libexif/pentax/mnote-pentax-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:165
+#: libexif/pentax/mnote-pentax-entry.c:211
+#: libexif/pentax/mnote-pentax-entry.c:250
+msgid "Manual"
+msgstr "Ručno"
+
+#: libexif/canon/mnote-canon-entry.c:122 libexif/canon/mnote-canon-entry.c:430
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:755
+#: libexif/fuji/mnote-fuji-entry.c:121 libexif/pentax/mnote-pentax-entry.c:167
+#: libexif/pentax/mnote-pentax-entry.c:301
+msgid "Landscape"
+msgstr "Pejzaž"
+
+#: libexif/canon/mnote-canon-entry.c:123
+msgid "Fast shutter"
+msgstr "Brza blenda"
+
+#: libexif/canon/mnote-canon-entry.c:124
+msgid "Slow shutter"
+msgstr "Sporo blenda"
+
+#: libexif/canon/mnote-canon-entry.c:125 libexif/fuji/mnote-fuji-entry.c:123
+#: libexif/olympus/mnote-olympus-entry.c:254
+msgid "Night"
+msgstr "Noć"
+
+#: libexif/canon/mnote-canon-entry.c:126
+msgid "Grayscale"
+msgstr "Belo-sivo"
+
+#: libexif/canon/mnote-canon-entry.c:127 libexif/canon/mnote-canon-entry.c:308
+#: libexif/pentax/mnote-pentax-entry.c:128
+msgid "Sepia"
+msgstr "Sepia"
+
+#: libexif/canon/mnote-canon-entry.c:128 libexif/canon/mnote-canon-entry.c:429
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:753
+#: libexif/fuji/mnote-fuji-entry.c:120 libexif/pentax/mnote-pentax-entry.c:166
+#: libexif/pentax/mnote-pentax-entry.c:291
+#: libexif/pentax/mnote-pentax-entry.c:294
+#: libexif/pentax/mnote-pentax-entry.c:300
+msgid "Portrait"
+msgstr "Portret"
+
+#: libexif/canon/mnote-canon-entry.c:129 libexif/fuji/mnote-fuji-entry.c:122
+msgid "Sports"
+msgstr "Sport"
+
+#: libexif/canon/mnote-canon-entry.c:131 libexif/canon/mnote-canon-entry.c:309
+#: libexif/canon/mnote-canon-entry.c:335 libexif/canon/mnote-canon-entry.c:407
+#: libexif/fuji/mnote-fuji-entry.c:89 libexif/pentax/mnote-pentax-entry.c:127
+msgid "Black & white"
+msgstr "Crno-belo"
+
+#: libexif/canon/mnote-canon-entry.c:133 libexif/canon/mnote-canon-entry.c:305
+msgid "Vivid"
+msgstr "Živopisno"
+
+#: libexif/canon/mnote-canon-entry.c:134 libexif/canon/mnote-canon-entry.c:306
+#: libexif/canon/mnote-canon-entry.c:431
+msgid "Neutral"
+msgstr "Neutrlno"
+
+#: libexif/canon/mnote-canon-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:93
+msgid "Flash off"
+msgstr "Isključen blic"
+
+#: libexif/canon/mnote-canon-entry.c:136
+msgid "Long shutter"
+msgstr "Duga blenda"
+
+#: libexif/canon/mnote-canon-entry.c:137 libexif/canon/mnote-canon-entry.c:188
+#: libexif/olympus/mnote-olympus-entry.c:171
+msgid "Super macro"
+msgstr "Super makro"
+
+#: libexif/canon/mnote-canon-entry.c:138
+msgid "Foliage"
+msgstr "LIšće"
+
+#: libexif/canon/mnote-canon-entry.c:139
+msgid "Indoor"
+msgstr "u sobi"
+
+#: libexif/canon/mnote-canon-entry.c:140 libexif/fuji/mnote-fuji-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:175
+msgid "Fireworks"
+msgstr "Vatromet"
+
+#: libexif/canon/mnote-canon-entry.c:141 libexif/fuji/mnote-fuji-entry.c:133
+msgid "Beach"
+msgstr "Plaža"
+
+#: libexif/canon/mnote-canon-entry.c:142 libexif/canon/mnote-canon-entry.c:344
+#: libexif/canon/mnote-canon-entry.c:416 libexif/fuji/mnote-fuji-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:292
+#: libexif/pentax/mnote-pentax-entry.c:298
+msgid "Underwater"
+msgstr "Pod vodom"
+
+#: libexif/canon/mnote-canon-entry.c:143 libexif/fuji/mnote-fuji-entry.c:134
+msgid "Snow"
+msgstr "Snijeg"
+
+#: libexif/canon/mnote-canon-entry.c:144
+msgid "Kids & pets"
+msgstr "Djeca i ljubimci"
+
+#: libexif/canon/mnote-canon-entry.c:145
+msgid "Night snapshot"
+msgstr "Noćni snimak"
+
+#: libexif/canon/mnote-canon-entry.c:146
+msgid "Digital macro"
+msgstr "Digitalni makro"
+
+#: libexif/canon/mnote-canon-entry.c:147
+msgid "My colors"
+msgstr "Moje boje"
+
+#: libexif/canon/mnote-canon-entry.c:148
+msgid "Still image"
+msgstr "Mirna slika"
+
+#: libexif/canon/mnote-canon-entry.c:149
+msgid "Color accent"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:150
+msgid "Color swap"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:151
+msgid "Aquarium"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:152
+msgid "ISO 3200"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:153 libexif/canon/mnote-canon-entry.c:348
+#: libexif/canon/mnote-canon-entry.c:365 libexif/canon/mnote-canon-entry.c:417
+#: libexif/olympus/mnote-olympus-entry.c:189
+#: libexif/olympus/mnote-olympus-entry.c:226
+#: libexif/olympus/mnote-olympus-entry.c:451
+#: libexif/pentax/mnote-pentax-entry.c:242
+msgid "None"
+msgstr "Ništa"
+
+#: libexif/canon/mnote-canon-entry.c:154
+msgid "2x"
+msgstr "2x"
+
+#: libexif/canon/mnote-canon-entry.c:155
+msgid "4x"
+msgstr "4x"
+
+#: libexif/canon/mnote-canon-entry.c:156 libexif/exif-entry.c:702
+#: libexif/exif-entry.c:732
+msgid "Other"
+msgstr "Drugo"
+
+#: libexif/canon/mnote-canon-entry.c:158 libexif/canon/mnote-canon-entry.c:161
+#: libexif/canon/mnote-canon-entry.c:164 libexif/canon/mnote-canon-entry.c:398
+#: libexif/fuji/mnote-fuji-entry.c:86 libexif/pentax/mnote-pentax-entry.c:112
+#: libexif/pentax/mnote-pentax-entry.c:117
+msgid "High"
+msgstr "Visoko"
+
+#: libexif/canon/mnote-canon-entry.c:159 libexif/canon/mnote-canon-entry.c:162
+#: libexif/canon/mnote-canon-entry.c:165 libexif/canon/mnote-canon-entry.c:396
+#: libexif/pentax/mnote-pentax-entry.c:111
+#: libexif/pentax/mnote-pentax-entry.c:116
+msgid "Low"
+msgstr "Nisko"
+
+#: libexif/canon/mnote-canon-entry.c:166
+msgid "Auto high"
+msgstr "Automatski visoko"
+
+#: libexif/canon/mnote-canon-entry.c:168
+msgid "50"
+msgstr "50"
+
+#: libexif/canon/mnote-canon-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:120
+#: libexif/pentax/mnote-pentax-entry.c:122
+msgid "100"
+msgstr "100"
+
+#: libexif/canon/mnote-canon-entry.c:170
+#: libexif/pentax/mnote-pentax-entry.c:121
+#: libexif/pentax/mnote-pentax-entry.c:123
+msgid "200"
+msgstr "200"
+
+#: libexif/canon/mnote-canon-entry.c:171
+msgid "400"
+msgstr "400"
+
+#: libexif/canon/mnote-canon-entry.c:172
+msgid "800"
+msgstr "800"
+
+#: libexif/canon/mnote-canon-entry.c:173
+msgid "Default"
+msgstr "Podrazumevano"
+
+#: libexif/canon/mnote-canon-entry.c:174 libexif/exif-entry.c:698
+msgid "Spot"
+msgstr "Mjesto"
+
+#: libexif/canon/mnote-canon-entry.c:175 libexif/exif-entry.c:696
+msgid "Average"
+msgstr "Prosječno"
+
+#: libexif/canon/mnote-canon-entry.c:176
+msgid "Evaluative"
+msgstr "Procjena"
+
+#: libexif/canon/mnote-canon-entry.c:177 libexif/exif-entry.c:701
+msgid "Partial"
+msgstr "Delimično"
+
+#: libexif/canon/mnote-canon-entry.c:178 libexif/exif-entry.c:697
+msgid "Center-weighted average"
+msgstr "Prosječna težina centra"
+
+#: libexif/canon/mnote-canon-entry.c:181
+msgid "Not known"
+msgstr "Nepoznato"
+
+#: libexif/canon/mnote-canon-entry.c:183
+msgid "Very close"
+msgstr "Veoma blizu"
+
+#: libexif/canon/mnote-canon-entry.c:184 libexif/exif-entry.c:797
+msgid "Close"
+msgstr "Blizu"
+
+#: libexif/canon/mnote-canon-entry.c:185
+msgid "Middle range"
+msgstr "Srednji opseg"
+
+#: libexif/canon/mnote-canon-entry.c:186
+msgid "Far range"
+msgstr "Dalek opseg"
+
+#: libexif/canon/mnote-canon-entry.c:189
+#: libexif/pentax/mnote-pentax-entry.c:210
+msgid "Infinity"
+msgstr "Beskonačno"
+
+#: libexif/canon/mnote-canon-entry.c:190
+msgid "Manual AF point selection"
+msgstr "Ručno biranje AF"
+
+#: libexif/canon/mnote-canon-entry.c:191 libexif/canon/mnote-canon-entry.c:349
+msgid "None (MF)"
+msgstr "Ništa (MF)"
+
+#: libexif/canon/mnote-canon-entry.c:192
+msgid "Auto-selected"
+msgstr "Automatski izabrano"
+
+#: libexif/canon/mnote-canon-entry.c:193 libexif/canon/mnote-canon-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:224
+#: libexif/pentax/mnote-pentax-entry.c:238
+msgid "Right"
+msgstr "Desno"
+
+#: libexif/canon/mnote-canon-entry.c:194 libexif/canon/mnote-canon-entry.c:351
+#: libexif/pentax/mnote-pentax-entry.c:222
+#: libexif/pentax/mnote-pentax-entry.c:237
+msgid "Center"
+msgstr "U sredini"
+
+#: libexif/canon/mnote-canon-entry.c:195 libexif/canon/mnote-canon-entry.c:353
+#: libexif/pentax/mnote-pentax-entry.c:220
+#: libexif/pentax/mnote-pentax-entry.c:236
+msgid "Left"
+msgstr "Lijevo"
+
+#: libexif/canon/mnote-canon-entry.c:196
+msgid "Auto AF point selection"
+msgstr "Automatsko AF biranje tačke"
+
+#: libexif/canon/mnote-canon-entry.c:197
+msgid "Easy shooting"
+msgstr "Lako slikanje"
+
+#: libexif/canon/mnote-canon-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:163
+msgid "Program"
+msgstr "Program"
+
+#: libexif/canon/mnote-canon-entry.c:199
+msgid "Tv-priority"
+msgstr "Prioritet Tv"
+
+#: libexif/canon/mnote-canon-entry.c:200
+msgid "Av-priority"
+msgstr "Prioritet Av"
+
+#: libexif/canon/mnote-canon-entry.c:202
+msgid "A-DEP"
+msgstr "A-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:203
+msgid "M-DEP"
+msgstr "M-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:204
+msgid "Canon EF 50mm f/1.8"
+msgstr "Canon EF 50mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:205
+msgid "Canon EF 28mm f/2.8"
+msgstr "Canon EF 28mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:206
+msgid "Sigma UC Zoom 35-135mm f/4-5.6"
+msgstr "Sigma UC Zoom 35-135mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:207
+msgid "Tokina AF193-2 19-35mm f/3.5-4.5"
+msgstr "Tokina AF193-2 19-35mm f/3.5-4.5"
+
+#: libexif/canon/mnote-canon-entry.c:208
+msgid "Canon EF 100-300mm F5.6L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:209
+msgid "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+msgstr "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:210
+msgid "Canon EF 35mm f/2"
+msgstr "Canon EF 35mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:211
+msgid "Canon EF 15mm f/2.8"
+msgstr "Canon EF 15mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:212
+msgid "Canon EF 80-200mm f/2.8L"
+msgstr "Canon EF 80-200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:213
+msgid "Tokina AT-X280AF PRO 28-80mm F2.8 Aspherical"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:214
+msgid "Cosina 100mm f/3.5 Macro AF"
+msgstr "Cosina 100mm f/3.5 Macro AF"
+
+#: libexif/canon/mnote-canon-entry.c:215
+msgid "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+msgstr "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:216
+msgid "Canon EF 50mm f/1.8 MkII"
+msgstr "Canon EF 50mm f/1.8 MkII"
+
+#: libexif/canon/mnote-canon-entry.c:217
+msgid "Tamron SP AF 300mm f/2.8 LD IF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:218
+msgid "Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:219
+msgid "Canon EF 75-300mm f/4-5.6"
+msgstr "Canon EF 75-300mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:220
+msgid "Canon EF 28-80mm f/3.5-5.6"
+msgstr "Canon EF 28-80mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:221
+msgid "Canon EF 28-105mm f/4-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:222
+msgid "Canon EF-S 18-55mm f/3.5-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:223
+msgid "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+msgstr "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+
+#: libexif/canon/mnote-canon-entry.c:224
+msgid "Canon TS-E 24mm f/3.5L"
+msgstr "Canon TS-E 24mm f/3.5L"
+
+#: libexif/canon/mnote-canon-entry.c:225
+msgid "Canon TS-E 45mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:226
+msgid "Canon TS-E 90mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:227
+msgid "Canon EF 50mm f/1.0L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:228
+msgid "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+msgstr "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+
+#: libexif/canon/mnote-canon-entry.c:229
+msgid "Canon EF 600mm f/4L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:230
+msgid "Canon EF 200mm f/1.8L"
+msgstr "Canon EF 200mm f/1.8L"
+
+#: libexif/canon/mnote-canon-entry.c:231
+msgid "Canon EF 300mm f/2.8L"
+msgstr "Canon EF 300mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:232
+msgid "Canon EF 85mm f/1.2L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:233
+msgid "Canon EF 400mm f/2.8L"
+msgstr "Canon EF 400mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:234
+msgid "Canon EF 500mm f/4.5L"
+msgstr "Canon EF 500mm f/4.5L"
+
+#: libexif/canon/mnote-canon-entry.c:235
+msgid "Canon EF 300mm f/2.8L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:236
+msgid "Canon EF 500mm f/4L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:237
+msgid "Canon EF 100mm f/2"
+msgstr "Canon EF 100mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:238
+msgid "Sigma 20mm EX f/1.8"
+msgstr "Sigma 20mm EX f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:239
+msgid "Canon EF 200mm f/2.8L"
+msgstr "Canon EF 200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:240
+msgid "Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:241
+msgid "Canon EF 35-350mm f/3.5-5.6L"
+msgstr "Canon EF 35-350mm f/3.5-5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:242
+msgid "Canon EF 85mm f/1.8 USM"
+msgstr "Canon EF 85mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:243
+msgid "Canon EF 28-105mm f/3.5-4.5 USM"
+msgstr "Canon EF 28-105mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:244
+msgid "Canon EF 20-35mm f/3.5-4.5 USM"
+msgstr "Canon EF 20-35mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:245
+msgid "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+msgstr "Canon EF 28-70mm f/2.8L ili Sigma 24-70mm EX f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:246
+msgid "Canon EF 70-200mm f/2.8 L"
+msgstr "Canon EF 70-200mm f/2.8 L"
+
+#: libexif/canon/mnote-canon-entry.c:247
+msgid "Canon EF 70-200mm f/2.8 L + x1.4"
+msgstr "Canon EF 70-200mm f/2.8 L + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:248
+msgid "Canon EF 70-200mm f/2.8 L + x2"
+msgstr "Canon EF 70-200mm f/2.8 L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:249
+msgid "Canon EF 28mm f/1.8 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:250
+msgid "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+msgstr "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+
+#: libexif/canon/mnote-canon-entry.c:251
+msgid "Canon EF 200mm f/2.8L II"
+msgstr "Canon EF 200mm f/2.8L II"
+
+#: libexif/canon/mnote-canon-entry.c:252
+msgid "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+msgstr "Canon EF 180mm Macro f/3.5L ili Sigma 180mm EX HSM Macro f/3.5"
+
+#: libexif/canon/mnote-canon-entry.c:253
+msgid "Canon EF 135mm f/2L"
+msgstr "Canon EF 135mm f/2L"
+
+#: libexif/canon/mnote-canon-entry.c:254
+msgid "Canon EF 24-85mm f/3.5-4.5 USM"
+msgstr "Canon EF 24-85mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:255
+msgid "Canon EF 300mm f/4L IS"
+msgstr "Canon EF 300mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:256
+msgid "Canon EF 28-135mm f/3.5-5.6 IS"
+msgstr "Canon EF 28-135mm f/3.5-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:257
+msgid "Canon EF 35mm f/1.4L"
+msgstr "Canon EF 35mm f/1.4L"
+
+#: libexif/canon/mnote-canon-entry.c:258
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:259
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+
+#: libexif/canon/mnote-canon-entry.c:260
+msgid "Canon EF 100-400mm f/4.5-5.6L IS"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS"
+
+#: libexif/canon/mnote-canon-entry.c:261
+msgid "Canon EF 400mm f/2.8L + x2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:262
+msgid "Canon EF 70-200mm f/4L"
+msgstr "Canon EF 70-200mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:263
+msgid "Canon EF 100mm f/2.8 Macro"
+msgstr "Canon EF 100mm f/2.8 Macro"
+
+#: libexif/canon/mnote-canon-entry.c:264
+msgid "Canon EF 400mm f/4 DO IS"
+msgstr "Canon EF 400mm f/4 DO IS"
+
+#: libexif/canon/mnote-canon-entry.c:265
+msgid "Canon EF 75-300mm f/4-5.6 IS"
+msgstr "Canon EF 75-300mm f/4-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:266
+msgid "Canon EF 50mm f/1.4"
+msgstr "Canon EF 50mm f/1.4"
+
+#: libexif/canon/mnote-canon-entry.c:267
+msgid "Canon EF 28-80 f/3.5-5.6 USM IV"
+msgstr "Canon EF 28-80 f/3.5-5.6 USM IV"
+
+#: libexif/canon/mnote-canon-entry.c:268
+msgid "Canon EF 28-200mm f/3.5-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:269
+msgid "Canon EF 90-300mm f/4.5-5.6"
+msgstr "Canon EF 90-300mm f/4.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:270
+msgid "Canon EF-S 18-55mm f/3.5-4.5 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:271
+msgid "Canon EF 70-200mm f/2.8L IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:272
+msgid "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:273
+msgid "Canon EF 70-200mm f/2.8L IS USM + x2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:274
+msgid "Canon EF 16-35mm f/2.8L"
+msgstr "Canon EF 16-35mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:275
+msgid "Canon EF 24-70mm f/2.8L"
+msgstr "Canon EF 24-70mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:276
+msgid "Canon EF 17-40mm f/4L"
+msgstr "Canon EF 17-40mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:277
+msgid "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:278
+msgid "Canon EF-S 17-85mm f4-5.6 IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:279
+msgid "Canon EF-S10-22mm F3.5-4.5 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:280
+msgid "Canon EF-S60mm F2.8 Macro USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:281
+msgid "Canon EF 24-105mm f/4L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:282
+msgid "Canon EF 70-300mm F4-5.6 IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:283
+msgid "Canon EF 50mm F1.2L USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:284
+msgid "Canon EF 70-200mm f/4L IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:286
+msgid "TTL"
+msgstr "TTL"
+
+#: libexif/canon/mnote-canon-entry.c:287
+msgid "A-TTL"
+msgstr "A-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:288
+msgid "E-TTL"
+msgstr "E-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:289
+msgid "FP sync enabled"
+msgstr "Omogućena sinhronizacija FP"
+
+#: libexif/canon/mnote-canon-entry.c:290
+msgid "2nd-curtain sync used"
+msgstr "Korišćena druga zastava sinhronizacije"
+
+#: libexif/canon/mnote-canon-entry.c:291
+msgid "FP sync used"
+msgstr "Korišćena FP sinhronizacija"
+
+#: libexif/canon/mnote-canon-entry.c:292
+#: libexif/olympus/mnote-olympus-entry.c:190
+msgid "Internal"
+msgstr "Unutrašnje"
+
+#: libexif/canon/mnote-canon-entry.c:293
+#: libexif/olympus/mnote-olympus-entry.c:191
+msgid "External"
+msgstr "Spoljašnje"
+
+#: libexif/canon/mnote-canon-entry.c:296
+msgid "Normal AE"
+msgstr "Normalna AE"
+
+#: libexif/canon/mnote-canon-entry.c:297
+msgid "Exposure compensation"
+msgstr "Nadomešćivanje osvjetljenja"
+
+#: libexif/canon/mnote-canon-entry.c:298
+msgid "AE lock"
+msgstr "Zaključavanje AE"
+
+#: libexif/canon/mnote-canon-entry.c:299
+#, fuzzy
+msgid "AE lock + exposure compensation"
+msgstr "Zaključavanje AE + Nadomešćivanje osvjetljenja"
+
+#: libexif/canon/mnote-canon-entry.c:300
+msgid "No AE"
+msgstr "Bez AE"
+
+#: libexif/canon/mnote-canon-entry.c:303
+msgid "On, shot only"
+msgstr "Uključeno, samo slikanje"
+
+#: libexif/canon/mnote-canon-entry.c:307
+msgid "Smooth"
+msgstr "Glatko"
+
+#: libexif/canon/mnote-canon-entry.c:310 libexif/canon/mnote-canon-entry.c:334
+#: libexif/canon/mnote-canon-entry.c:393 libexif/canon/mnote-canon-entry.c:406
+#: libexif/fuji/mnote-fuji-entry.c:81 libexif/pentax/mnote-pentax-entry.c:87
+msgid "Custom"
+msgstr "Prilagođeno"
+
+#: libexif/canon/mnote-canon-entry.c:311
+msgid "My color data"
+msgstr "Moji podaci o boji"
+
+#: libexif/canon/mnote-canon-entry.c:313 libexif/canon/mnote-canon-entry.c:375
+#: libexif/pentax/mnote-pentax-entry.c:126
+#: libexif/pentax/mnote-pentax-entry.c:145
+msgid "Full"
+msgstr "Potpuno"
+
+#: libexif/canon/mnote-canon-entry.c:314 libexif/canon/mnote-canon-entry.c:374
+msgid "2/3"
+msgstr "2/3"
+
+#: libexif/canon/mnote-canon-entry.c:315 libexif/canon/mnote-canon-entry.c:373
+msgid "1/3"
+msgstr "1/3"
+
+#: libexif/canon/mnote-canon-entry.c:321
+msgid "Fixed"
+msgstr "Učvršćeno"
+
+#: libexif/canon/mnote-canon-entry.c:322 libexif/pentax/mnote-pentax-tag.c:44
+msgid "Zoom"
+msgstr "Uvećanje"
+
+#: libexif/canon/mnote-canon-entry.c:329
+msgid "Sunny"
+msgstr "Sunčano"
+
+#: libexif/canon/mnote-canon-entry.c:330 libexif/canon/mnote-canon-entry.c:402
+#: libexif/exif-entry.c:719 libexif/fuji/mnote-fuji-entry.c:75
+#: libexif/olympus/mnote-olympus-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:255
+msgid "Cloudy"
+msgstr "Oblačno"
+
+#: libexif/canon/mnote-canon-entry.c:331 libexif/canon/mnote-canon-entry.c:403
+#: libexif/exif-entry.c:716 libexif/pentax/mnote-pentax-entry.c:100
+#: libexif/pentax/mnote-pentax-entry.c:249
+msgid "Tungsten"
+msgstr "Volfram"
+
+#: libexif/canon/mnote-canon-entry.c:332 libexif/canon/mnote-canon-entry.c:404
+#: libexif/exif-entry.c:715 libexif/pentax/mnote-pentax-entry.c:101
+#: libexif/pentax/mnote-pentax-entry.c:248
+msgid "Fluorescent"
+msgstr "Flurascentno"
+
+#: libexif/canon/mnote-canon-entry.c:333 libexif/canon/mnote-canon-entry.c:405
+#: libexif/exif-entry.c:717 libexif/exif-entry.c:759 libexif/exif-tag.c:577
+#: libexif/fuji/mnote-fuji-entry.c:80 libexif/pentax/mnote-pentax-entry.c:254
+msgid "Flash"
+msgstr "Blic"
+
+#: libexif/canon/mnote-canon-entry.c:336 libexif/canon/mnote-canon-entry.c:408
+#: libexif/exif-entry.c:720 libexif/pentax/mnote-pentax-entry.c:99
+#: libexif/pentax/mnote-pentax-entry.c:247
+msgid "Shade"
+msgstr "Sjenka"
+
+#: libexif/canon/mnote-canon-entry.c:337 libexif/canon/mnote-canon-entry.c:409
+msgid "Manual temperature (Kelvin)"
+msgstr "Ručna temperatura (Kelvin)"
+
+#: libexif/canon/mnote-canon-entry.c:338 libexif/canon/mnote-canon-entry.c:410
+msgid "PC set 1"
+msgstr "PC skup 1"
+
+#: libexif/canon/mnote-canon-entry.c:339 libexif/canon/mnote-canon-entry.c:411
+msgid "PC set 2"
+msgstr "PC skup 2"
+
+#: libexif/canon/mnote-canon-entry.c:340 libexif/canon/mnote-canon-entry.c:412
+msgid "PC set 3"
+msgstr "PC skup 3"
+
+#: libexif/canon/mnote-canon-entry.c:341 libexif/canon/mnote-canon-entry.c:413
+#: libexif/exif-entry.c:721 libexif/fuji/mnote-fuji-entry.c:76
+#: libexif/pentax/mnote-pentax-entry.c:251
+msgid "Daylight fluorescent"
+msgstr "Dnevno fluroscentno"
+
+#: libexif/canon/mnote-canon-entry.c:342 libexif/canon/mnote-canon-entry.c:414
+msgid "Custom 1"
+msgstr "Prilagođeno 1"
+
+#: libexif/canon/mnote-canon-entry.c:343 libexif/canon/mnote-canon-entry.c:415
+msgid "Custom 2"
+msgstr "Prilagođeno 2"
+
+#: libexif/canon/mnote-canon-entry.c:346 libexif/exif-entry.c:672
+#: libexif/pentax/mnote-pentax-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:132
+#: libexif/pentax/mnote-pentax-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:295
+msgid "Night scene"
+msgstr "Noćno okruženje"
+
+#: libexif/canon/mnote-canon-entry.c:352
+#, fuzzy
+msgid "Center-right"
+msgstr "Centralna težina"
+
+#: libexif/canon/mnote-canon-entry.c:354
+#, fuzzy
+msgid "Left-right"
+msgstr "Lijevo na desno"
+
+#: libexif/canon/mnote-canon-entry.c:355
+#, fuzzy
+msgid "Left-center"
+msgstr "Lijevo + U središti"
+
+#: libexif/canon/mnote-canon-entry.c:356
+msgid "All"
+msgstr "Sve"
+
+#: libexif/canon/mnote-canon-entry.c:358
+msgid "On (shot 1)"
+msgstr "Uključeno (slikanje 1)"
+
+#: libexif/canon/mnote-canon-entry.c:359
+msgid "On (shot 2)"
+msgstr "Uključeno (slikanje 2)"
+
+#: libexif/canon/mnote-canon-entry.c:360
+msgid "On (shot 3)"
+msgstr "Uključeno (slikanje 3)"
+
+#: libexif/canon/mnote-canon-entry.c:362
+msgid "EOS high-end"
+msgstr "EOS visokog kvaliteta"
+
+#: libexif/canon/mnote-canon-entry.c:363
+msgid "Compact"
+msgstr "Zbijeno"
+
+#: libexif/canon/mnote-canon-entry.c:364
+msgid "EOS mid-range"
+msgstr "EOS srednji opseg"
+
+#: libexif/canon/mnote-canon-entry.c:366
+msgid "Rotate 90 CW"
+msgstr "Okreni 90 u smjeru sata"
+
+#: libexif/canon/mnote-canon-entry.c:367
+msgid "Rotate 180"
+msgstr "Okreni 180"
+
+#: libexif/canon/mnote-canon-entry.c:368
+msgid "Rotate 270 CW"
+msgstr "Okreni 270 u smjeru sata"
+
+#: libexif/canon/mnote-canon-entry.c:369
+msgid "Rotated by software"
+msgstr "Okrenuće program"
+
+#: libexif/canon/mnote-canon-entry.c:381
+#: libexif/olympus/mnote-olympus-entry.c:606
+msgid "Left to right"
+msgstr "Lijevo na desno"
+
+#: libexif/canon/mnote-canon-entry.c:382
+#: libexif/olympus/mnote-olympus-entry.c:609
+msgid "Right to left"
+msgstr "Desno na lijevo"
+
+#: libexif/canon/mnote-canon-entry.c:383
+#: libexif/olympus/mnote-olympus-entry.c:612
+msgid "Bottom to top"
+msgstr "Odozdo nagore"
+
+#: libexif/canon/mnote-canon-entry.c:384
+#: libexif/olympus/mnote-olympus-entry.c:615
+msgid "Top to bottom"
+msgstr "Odozgo nadolje"
+
+#: libexif/canon/mnote-canon-entry.c:385
+msgid "2x2 matrix (clockwise)"
+msgstr "2x2 matrica (u smjeru kretanja sata)"
+
+#: libexif/canon/mnote-canon-entry.c:391 libexif/canon/mnote-canon-entry.c:397
+#: libexif/canon/mnote-canon-entry.c:418 libexif/canon/mnote-canon-entry.c:428
+#: libexif/exif-entry.c:671 libexif/fuji/mnote-fuji-entry.c:84
+#: libexif/fuji/mnote-fuji-entry.c:93 libexif/fuji/mnote-fuji-entry.c:163
+#: libexif/olympus/mnote-olympus-entry.c:227
+msgid "Standard"
+msgstr "Standardno"
+
+#: libexif/canon/mnote-canon-entry.c:394
+msgid "N/A"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:395
+msgid "Lowest"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:399
+msgid "Highest"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:401 libexif/exif-entry.c:714
+#: libexif/fuji/mnote-fuji-entry.c:74
+#: libexif/olympus/mnote-olympus-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:98
+#: libexif/pentax/mnote-pentax-entry.c:246
+msgid "Daylight"
+msgstr "Dnevno svjetlo"
+
+#: libexif/canon/mnote-canon-entry.c:419
+msgid "Set 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:420
+msgid "Set 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:421
+msgid "Set 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:422
+msgid "User def. 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:423
+msgid "User def. 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:424
+msgid "User def. 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:425
+msgid "External 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:426
+msgid "External 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:427
+msgid "External 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:432
+msgid "Faithful"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:115
+msgid "Monochrome"
+msgstr "Monohromo"
+
+#: libexif/canon/mnote-canon-entry.c:491
+msgid ", "
+msgstr ", "
+
+#: libexif/canon/mnote-canon-entry.c:577 libexif/canon/mnote-canon-entry.c:674
+#, c-format
+msgid "%i (ms)"
+msgstr "%i (ms)"
+
+#: libexif/canon/mnote-canon-entry.c:621
+#, c-format
+msgid "%.2f mm"
+msgstr "%.2f mm"
+
+#: libexif/canon/mnote-canon-entry.c:645
+#, c-format
+msgid "%.2f EV"
+msgstr "%.2f EV"
+
+#: libexif/canon/mnote-canon-entry.c:655 libexif/exif-entry.c:1064
+#, c-format
+msgid "1/%i"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:667
+#, c-format
+msgid "%u mm"
+msgstr "%u mm"
+
+#: libexif/canon/mnote-canon-tag.c:35
+msgid "Settings (First Part)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:36 libexif/canon/mnote-canon-tag.c:92
+#: libexif/exif-tag.c:581 libexif/pentax/mnote-pentax-tag.c:88
+msgid "Focal Length"
+msgstr "Žižna daljina"
+
+#: libexif/canon/mnote-canon-tag.c:37
+msgid "Settings (Second Part)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:38
+#: libexif/olympus/mnote-olympus-entry.c:595
+#: libexif/pentax/mnote-pentax-entry.c:177
+msgid "Panorama"
+msgstr "Panorama"
+
+#: libexif/canon/mnote-canon-tag.c:39
+msgid "Image Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:40 libexif/olympus/mnote-olympus-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:113
+msgid "Firmware Version"
+msgstr "Firmware verzije"
+
+#: libexif/canon/mnote-canon-tag.c:41
+msgid "Image Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:42
+msgid "Owner Name"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:43
+msgid "Color Information"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:44 libexif/fuji/mnote-fuji-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:81
+#: libexif/olympus/mnote-olympus-tag.c:146
+msgid "Serial Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:45
+msgid "Custom Functions"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:56 libexif/fuji/mnote-fuji-tag.c:45
+msgid "Macro Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:57 libexif/canon/mnote-canon-tag.c:117
+#: libexif/olympus/mnote-olympus-tag.c:175
+#: libexif/pentax/mnote-pentax-tag.c:128
+msgid "Self-timer"
+msgstr "Odbrojavač"
+
+#: libexif/canon/mnote-canon-tag.c:58 libexif/fuji/mnote-fuji-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:94
+#: libexif/olympus/mnote-olympus-tag.c:107
+msgid "Quality"
+msgstr "Kvalitet"
+
+#: libexif/canon/mnote-canon-tag.c:59 libexif/fuji/mnote-fuji-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:45
+#: libexif/olympus/mnote-olympus-tag.c:127
+#: libexif/pentax/mnote-pentax-tag.c:38 libexif/pentax/mnote-pentax-tag.c:73
+msgid "Flash Mode"
+msgstr "Mod blica"
+
+#: libexif/canon/mnote-canon-tag.c:60 libexif/pentax/mnote-pentax-tag.c:101
+msgid "Drive Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:61 libexif/canon/mnote-canon-tag.c:82
+#: libexif/olympus/mnote-olympus-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:134
+#: libexif/olympus/mnote-olympus-tag.c:173
+#: libexif/pentax/mnote-pentax-tag.c:37 libexif/pentax/mnote-pentax-tag.c:74
+#: libexif/pentax/mnote-pentax-tag.c:130
+msgid "Focus Mode"
+msgstr "Žižni mod"
+
+#: libexif/canon/mnote-canon-tag.c:62 libexif/pentax/mnote-pentax-tag.c:127
+msgid "Record Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:63 libexif/pentax/mnote-pentax-tag.c:71
+msgid "Image Size"
+msgstr "Veličina slike"
+
+#: libexif/canon/mnote-canon-tag.c:64
+msgid "Easy Shooting Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:65 libexif/olympus/mnote-olympus-tag.c:64
+#: libexif/olympus/mnote-olympus-tag.c:101
+#: libexif/olympus/mnote-olympus-tag.c:110
+#: libexif/olympus/mnote-olympus-tag.c:180
+#: libexif/pentax/mnote-pentax-tag.c:89
+msgid "Digital Zoom"
+msgstr "Digitalno uvećanje"
+
+#: libexif/canon/mnote-canon-tag.c:66 libexif/exif-tag.c:828
+#: libexif/fuji/mnote-fuji-tag.c:42 libexif/pentax/mnote-pentax-tag.c:46
+#: libexif/pentax/mnote-pentax-tag.c:91
+msgid "Contrast"
+msgstr "Suprotnost"
+
+#: libexif/canon/mnote-canon-tag.c:67 libexif/exif-tag.c:832
+#: libexif/olympus/mnote-olympus-tag.c:75
+#: libexif/olympus/mnote-olympus-tag.c:87 libexif/pentax/mnote-pentax-tag.c:47
+#: libexif/pentax/mnote-pentax-tag.c:90
+msgid "Saturation"
+msgstr "Zasićenost"
+
+#: libexif/canon/mnote-canon-tag.c:68 libexif/exif-tag.c:836
+#: libexif/fuji/mnote-fuji-tag.c:39 libexif/pentax/mnote-pentax-tag.c:45
+#: libexif/pentax/mnote-pentax-tag.c:92
+msgid "Sharpness"
+msgstr "Oštrina"
+
+#: libexif/canon/mnote-canon-tag.c:69
+msgid "ISO"
+msgstr "ISO"
+
+#: libexif/canon/mnote-canon-tag.c:70 libexif/exif-tag.c:571
+#: libexif/pentax/mnote-pentax-tag.c:82
+msgid "Metering Mode"
+msgstr "Mod mjerenja"
+
+#: libexif/canon/mnote-canon-tag.c:71 libexif/olympus/mnote-olympus-tag.c:133
+msgid "Focus Range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:72 libexif/canon/mnote-canon-tag.c:105
+msgid "AF Point"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:73 libexif/exif-tag.c:795
+msgid "Exposure Mode"
+msgstr "Mod osvjetljenja"
+
+#: libexif/canon/mnote-canon-tag.c:74 libexif/olympus/mnote-olympus-tag.c:61
+#: libexif/pentax/mnote-pentax-tag.c:106
+msgid "Lens Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:75
+msgid "Long Focal Length of Lens"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:76
+msgid "Short Focal Length of Lens"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:77
+msgid "Focal Units per mm"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:78
+msgid "Maximal Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:79
+msgid "Minimal Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:80
+msgid "Flash Activity"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:81
+msgid "Flash Details"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:83
+msgid "AE Setting"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:84
+msgid "Image Stabilization"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:85
+msgid "Display Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:86
+msgid "Zoom Source Width"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:87
+msgid "Zoom Target Width"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:88
+msgid "Photo Effect"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:89 libexif/canon/mnote-canon-tag.c:118
+msgid "Manual Flash Output"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:90
+msgid "Color Tone"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:91
+msgid "Focal Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:93
+msgid "Focal Plane X Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:94
+msgid "Focal Plane Y Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:95
+msgid "Auto ISO"
+msgstr "Automatsko ISO"
+
+#: libexif/canon/mnote-canon-tag.c:96
+msgid "Shot ISO"
+msgstr "ISO snimak"
+
+#: libexif/canon/mnote-canon-tag.c:97
+msgid "Measured EV"
+msgstr "Merljivo EV"
+
+#: libexif/canon/mnote-canon-tag.c:98
+msgid "Target Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:99
+msgid "Target Exposure Time"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:100 libexif/olympus/mnote-olympus-tag.c:129
+#: libexif/pentax/mnote-pentax-tag.c:81
+msgid "Exposure Compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:101 libexif/canon/mnote-canon-tag.c:123
+#: libexif/exif-tag.c:800 libexif/fuji/mnote-fuji-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:41
+#: libexif/olympus/mnote-olympus-tag.c:98 libexif/pentax/mnote-pentax-tag.c:41
+#: libexif/pentax/mnote-pentax-tag.c:84 libexif/pentax/mnote-pentax-tag.c:124
+msgid "White Balance"
+msgstr "Ravnoteža bele"
+
+#: libexif/canon/mnote-canon-tag.c:102
+msgid "Slow Shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:103
+msgid "Sequence Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:104
+msgid "Flash Guide Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:106 libexif/olympus/mnote-olympus-tag.c:52
+#: libexif/pentax/mnote-pentax-tag.c:109
+msgid "Flash Exposure Compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:107
+msgid "AE Bracketing"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:108
+msgid "AE Bracket Value"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:109
+msgid "Focus Distance Upper"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:110
+msgid "Focus Distance Lower"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:111
+msgid "FNumber"
+msgstr "FBroj"
+
+#: libexif/canon/mnote-canon-tag.c:112 libexif/exif-tag.c:466
+#: libexif/pentax/mnote-pentax-tag.c:78
+msgid "Exposure Time"
+msgstr "Vrijeme osvjetljenja"
+
+#: libexif/canon/mnote-canon-tag.c:113
+msgid "Bulb Duration"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:114
+msgid "Camera Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:115
+msgid "Auto Rotate"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:116
+msgid "ND Filter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:119
+msgid "Panorama Frame"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:120
+msgid "Panorama Direction"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:121
+msgid "Tone Curve"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:122
+msgid "Sharpness Frequency"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:124
+msgid "Picture Style"
+msgstr ""
+
+#: libexif/exif-byte-order.c:33
+msgid "Motorola"
+msgstr "Motorola"
+
+#: libexif/exif-byte-order.c:35
+msgid "Intel"
+msgstr "Intel"
+
+#: libexif/exif-data.c:780
+msgid "Size of data too small to allow for EXIF data."
+msgstr "Podaci su premali da bih dozvolio EXIF podatke."
+
+#: libexif/exif-data.c:841
+msgid "EXIF marker not found."
+msgstr "Nisam pronašao EXIF oznaku."
+
+#: libexif/exif-data.c:868
+msgid "EXIF header not found."
+msgstr "EXIF zaglavlje nije pronađeno."
+
+#: libexif/exif-data.c:884
+msgid "Unknown encoding."
+msgstr "Nepoznato šifrovanje."
+
+#: libexif/exif-data.c:1168
+msgid "Ignore unknown tags"
+msgstr "Zanemari nepozante oznake."
+
+#: libexif/exif-data.c:1169
+msgid "Ignore unknown tags when loading EXIF data."
+msgstr "Zanemari nepozante oznake dok učitavaš EXIF podatke."
+
+#: libexif/exif-data.c:1170
+msgid "Follow specification"
+msgstr "Uskladi sa tehničkim podacima"
+
+#: libexif/exif-data.c:1171
+msgid ""
+"Add, correct and remove entries to get EXIF data that follows the "
+"specification."
+msgstr ""
+"Dodaj, ispravi ili ukloni unose ne bi li dobio EXIF podatke u skladu sa "
+"tehničkim podacima."
+
+#: libexif/exif-data.c:1173
+msgid "Do not change maker note"
+msgstr ""
+
+#: libexif/exif-data.c:1174
+msgid ""
+"When loading and resaving Exif data, save the maker note unmodified. Be "
+"aware that the maker note can get corrupted."
+msgstr ""
+"Prilikom učitavanja i rezervisanja Exif podataka, nemojte da mijenjate "
+"bilješke autora. Ali one ipak mogu da se oštete."
+
+#: libexif/exif-entry.c:234 libexif/exif-entry.c:303 libexif/exif-entry.c:336
+#, c-format
+msgid ""
+"Tag '%s' was of format '%s' (which is against specification) and has been "
+"changed to format '%s'."
+msgstr ""
+"Etiketa '%s' je oblika '%s' (što je protivno specifikaciji) i promijenjeno "
+"je u oblik '%s'."
+
+#: libexif/exif-entry.c:271
+#, c-format
+msgid ""
+"Tag '%s' is of format '%s' (which is against specification) but cannot be "
+"changed to format '%s'."
+msgstr ""
+
+#: libexif/exif-entry.c:354
+#, c-format
+msgid ""
+"Tag 'UserComment' had invalid format '%s'. Format has been set to "
+"'undefined'."
+msgstr ""
+"Etiketa 'Komentar korisnika' ima neispravan oblik '%s'. Oblik je obilježen "
+"kao \"neodređen\"."
+
+#: libexif/exif-entry.c:381
+msgid ""
+"Tag 'UserComment' has been expanded to at least 8 bytes in order to follow "
+"the specification."
+msgstr ""
+"Etiketa 'Komentar korisnika' je prošireno na najmanje 8 bajtova ne bi "
+"ispoštovali specifikaciju."
+
+#: libexif/exif-entry.c:396
+msgid ""
+"Tag 'UserComment' is not empty but does not start with a format identifier. "
+"This has been fixed."
+msgstr ""
+
+#: libexif/exif-entry.c:424
+msgid ""
+"Tag 'UserComment' did not start with a format identifier. This has been "
+"fixed."
+msgstr ""
+
+#: libexif/exif-entry.c:462
+#, c-format
+msgid "%i bytes undefined data"
+msgstr ""
+
+#: libexif/exif-entry.c:589
+#, c-format
+msgid "%i bytes unsupported data type"
+msgstr ""
+
+#: libexif/exif-entry.c:622
+#, c-format
+msgid "The tag '%s' contains data of an invalid format ('%s', expected '%s')."
+msgstr ""
+"Etiketa '%s' sadrži podatke u neispravnom obliku ( '%s', a traži se '%s')."
+
+#: libexif/exif-entry.c:635
+#, c-format
+msgid ""
+"The tag '%s' contains an invalid number of components (%i, expected %i)."
+msgstr "Etiketa  '%s sadrži neispravan broj elemenata (%i, umjesto %i)."
+
+#: libexif/exif-entry.c:649
+#, fuzzy
+msgid "Chunky format"
+msgstr "zdepast format"
+
+#: libexif/exif-entry.c:649
+#, fuzzy
+msgid "Planar format"
+msgstr "pljosnati format"
+
+#: libexif/exif-entry.c:651 libexif/exif-entry.c:743
+#: test/nls/test-codeset.c:54
+msgid "Not defined"
+msgstr "Neodređeno"
+
+#: libexif/exif-entry.c:651
+msgid "One-chip color area sensor"
+msgstr "Jednočipni senzor oblasti boje"
+
+#: libexif/exif-entry.c:652
+msgid "Two-chip color area sensor"
+msgstr "Dvočipni senzor oblasti boje"
+
+#: libexif/exif-entry.c:652
+msgid "Three-chip color area sensor"
+msgstr "Tročipni senzor oblasti boje"
+
+#: libexif/exif-entry.c:653
+msgid "Color sequential area sensor"
+msgstr "Senzor sekvencijalnog prostora boja"
+
+#: libexif/exif-entry.c:653
+msgid "Trilinear sensor"
+msgstr "Prostrani senzor"
+
+#: libexif/exif-entry.c:654
+msgid "Color sequential linear sensor"
+msgstr "Senzor linearnog prostora boja"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:233
+msgid "Top-left"
+msgstr "Gore - lijevo"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:235
+msgid "Top-right"
+msgstr "Gore - desno"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:241
+msgid "Bottom-right"
+msgstr "Dolje - desno"
+
+#: libexif/exif-entry.c:657 libexif/pentax/mnote-pentax-entry.c:239
+msgid "Bottom-left"
+msgstr "Dolje - lijevo"
+
+#: libexif/exif-entry.c:657
+#, fuzzy
+msgid "Left-top"
+msgstr "lijevo - gore"
+
+#: libexif/exif-entry.c:657
+#, fuzzy
+msgid "Right-top"
+msgstr "desno - gore"
+
+#: libexif/exif-entry.c:658
+#, fuzzy
+msgid "Right-bottom"
+msgstr "desno - dolje"
+
+#: libexif/exif-entry.c:658
+#, fuzzy
+msgid "Left-bottom"
+msgstr "lijevo - dolje"
+
+#: libexif/exif-entry.c:660
+#, fuzzy
+msgid "Centered"
+msgstr "u središtu"
+
+#: libexif/exif-entry.c:660
+#, fuzzy
+msgid "Co-sited"
+msgstr "sadržan"
+
+#: libexif/exif-entry.c:662
+msgid "Reversed mono"
+msgstr "Obrnuti mono"
+
+#: libexif/exif-entry.c:662
+msgid "Normal mono"
+msgstr "Normalni mono"
+
+#: libexif/exif-entry.c:662
+msgid "RGB"
+msgstr "RGB"
+
+#: libexif/exif-entry.c:662
+msgid "Palette"
+msgstr "Paleta"
+
+#: libexif/exif-entry.c:663
+msgid "CMYK"
+msgstr "CMYK"
+
+#: libexif/exif-entry.c:663
+msgid "YCbCr"
+msgstr "YCbCr"
+
+#: libexif/exif-entry.c:663
+msgid "CieLAB"
+msgstr "CieLAB"
+
+#: libexif/exif-entry.c:665
+msgid "Normal process"
+msgstr "Normalni postupak"
+
+#: libexif/exif-entry.c:665
+msgid "Custom process"
+msgstr "Prilagođeni postupak"
+
+#: libexif/exif-entry.c:667
+msgid "Auto exposure"
+msgstr "Automatsko osvjetljenje"
+
+#: libexif/exif-entry.c:667 libexif/fuji/mnote-fuji-entry.c:139
+msgid "Manual exposure"
+msgstr "Ručno osvjetljenje"
+
+#: libexif/exif-entry.c:667
+msgid "Auto bracket"
+msgstr "Automatska potpora"
+
+#: libexif/exif-entry.c:669
+msgid "Auto white balance"
+msgstr "Automatska ravnoteža bele"
+
+#: libexif/exif-entry.c:669
+msgid "Manual white balance"
+msgstr "Ručno uravnoteživanje bele"
+
+#: libexif/exif-entry.c:674
+msgid "Low gain up"
+msgstr "Povećaj niske pragove"
+
+#: libexif/exif-entry.c:674
+msgid "High gain up"
+msgstr "Visoki skok"
+
+#: libexif/exif-entry.c:675
+msgid "Low gain down"
+msgstr "Smanji niske pragove"
+
+#: libexif/exif-entry.c:675
+msgid "High gain down"
+msgstr "Smanji visoke pragove"
+
+#: libexif/exif-entry.c:677
+msgid "Low saturation"
+msgstr "Mala zasićenost"
+
+#: libexif/exif-entry.c:677 test/nls/test-codeset.c:48
+#: test/nls/test-codeset.c:61
+msgid "High saturation"
+msgstr "Velika zasićenost"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:63
+#: libexif/olympus/mnote-olympus-entry.c:205
+#: libexif/olympus/mnote-olympus-entry.c:214
+#: libexif/pentax/mnote-pentax-entry.c:106
+#: libexif/pentax/mnote-pentax-entry.c:170
+msgid "Soft"
+msgstr "Meko"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:65 libexif/fuji/mnote-fuji-entry.c:95
+#: libexif/olympus/mnote-olympus-entry.c:204
+#: libexif/olympus/mnote-olympus-entry.c:212
+#: libexif/pentax/mnote-pentax-entry.c:107
+msgid "Hard"
+msgstr "Teško"
+
+#: libexif/exif-entry.c:695 libexif/exif-entry.c:713 libexif/exif-entry.c:795
+#: libexif/olympus/mnote-olympus-entry.c:589
+#: libexif/olympus/mnote-olympus-entry.c:683
+#: libexif/olympus/mnote-olympus-entry.c:738
+#: libexif/pentax/mnote-pentax-entry.c:256
+msgid "Unknown"
+msgstr "Nepoznato"
+
+#: libexif/exif-entry.c:696
+#, fuzzy
+msgid "Avg"
+msgstr "prosječno"
+
+#: libexif/exif-entry.c:697
+#, fuzzy
+msgid "Center-weight"
+msgstr "Centralna težina"
+
+#: libexif/exif-entry.c:699
+#, fuzzy
+msgid "Multi spot"
+msgstr "Multi tačka"
+
+#: libexif/exif-entry.c:700
+msgid "Pattern"
+msgstr "Šablon"
+
+#: libexif/exif-entry.c:705
+msgid "Uncompressed"
+msgstr "Nesabijeno"
+
+#: libexif/exif-entry.c:706
+msgid "LZW compression"
+msgstr "LZW sažimanje"
+
+#: libexif/exif-entry.c:707 libexif/exif-entry.c:708
+msgid "JPEG compression"
+msgstr "JPEG sažimanje"
+
+#: libexif/exif-entry.c:709
+msgid "Deflate/ZIP compression"
+msgstr "Ispumpati/ZIP sažimanje"
+
+#: libexif/exif-entry.c:710
+msgid "PackBits compression"
+msgstr "PackBits sažimanje"
+
+#: libexif/exif-entry.c:716
+msgid "Tungsten incandescent light"
+msgstr "Volframsko užareno svjetlo"
+
+#: libexif/exif-entry.c:718
+msgid "Fine weather"
+msgstr "Lijepo vrijeme"
+
+#: libexif/exif-entry.c:719
+msgid "Cloudy weather"
+msgstr "Oblačno vrijeme"
+
+#: libexif/exif-entry.c:722 libexif/fuji/mnote-fuji-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:252
+msgid "Day white fluorescent"
+msgstr "Dnevno bijelo fluroscentno"
+
+#: libexif/exif-entry.c:723
+msgid "Cool white fluorescent"
+msgstr "Hladno bijelo fluroscentno"
+
+#: libexif/exif-entry.c:724 libexif/fuji/mnote-fuji-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:253
+msgid "White fluorescent"
+msgstr "Bijelo fluroscentno"
+
+#: libexif/exif-entry.c:725
+msgid "Standard light A"
+msgstr "Standardno svjetlo A"
+
+#: libexif/exif-entry.c:726
+msgid "Standard light B"
+msgstr "Standardno svjetlo V"
+
+#: libexif/exif-entry.c:727
+msgid "Standard light C"
+msgstr "Standardno svjetlo S"
+
+#: libexif/exif-entry.c:728
+msgid "D55"
+msgstr "D55"
+
+#: libexif/exif-entry.c:729
+msgid "D65"
+msgstr "D65"
+
+#: libexif/exif-entry.c:730
+msgid "D75"
+msgstr "D75"
+
+#: libexif/exif-entry.c:731
+msgid "ISO studio tungsten"
+msgstr "ISO studio volfram"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "Inch"
+msgstr "Inč"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "in"
+msgstr "in"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "Centimeter"
+msgstr "Centimetar"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "cm"
+msgstr "cm"
+
+#: libexif/exif-entry.c:745
+msgid "Normal program"
+msgstr "Normalni program"
+
+#: libexif/exif-entry.c:746
+msgid "Aperture priority"
+msgstr "Prednost otvora"
+
+#: libexif/exif-entry.c:746 libexif/exif-tag.c:550
+msgid "Aperture"
+msgstr "Otvor"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter priority"
+msgstr "Prednost zatvarača"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter"
+msgstr "Zatvarač"
+
+#: libexif/exif-entry.c:748
+msgid "Creative program (biased toward depth of field)"
+msgstr "Stvaralački program (sklono dubini polja)"
+
+#: libexif/exif-entry.c:749
+msgid "Creative"
+msgstr "Stvaralčko"
+
+#: libexif/exif-entry.c:750
+msgid "Creative program (biased toward fast shutter speed)"
+msgstr "Stvaralački program (sklono brzom zatvaranju)"
+
+#: libexif/exif-entry.c:751
+msgid "Action"
+msgstr "Akcija"
+
+#: libexif/exif-entry.c:752
+msgid "Portrait mode (for closeup photos with the background out of focus)"
+msgstr "Poptretni mod (za slikanje izbliza kod kojih pozadina nije u žiži)"
+
+#: libexif/exif-entry.c:754
+msgid "Landscape mode (for landscape photos with the background in focus)"
+msgstr "Pejzažni mod (za pejzažne fotografije kod kojih je pozadina u žiži)"
+
+#: libexif/exif-entry.c:758 libexif/exif-entry.c:763
+#: libexif/olympus/mnote-olympus-entry.c:97
+msgid "Flash did not fire"
+msgstr "Blic nije bljesnuo"
+
+#: libexif/exif-entry.c:758
+#, fuzzy
+msgid "No flash"
+msgstr "bez blica"
+
+#: libexif/exif-entry.c:759
+msgid "Flash fired"
+msgstr ""
+
+#: libexif/exif-entry.c:759 libexif/olympus/mnote-olympus-entry.c:170
+#: libexif/olympus/mnote-olympus-entry.c:175
+#: libexif/olympus/mnote-olympus-entry.c:209
+#: libexif/olympus/mnote-olympus-entry.c:218
+#: libexif/olympus/mnote-olympus-entry.c:241
+msgid "Yes"
+msgstr "Da"
+
+#: libexif/exif-entry.c:760
+msgid "Strobe return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:760
+#, fuzzy
+msgid "Without strobe"
+msgstr "W/o elektronski blic"
+
+#: libexif/exif-entry.c:762
+msgid "Strobe return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:762
+#, fuzzy
+msgid "With strobe"
+msgstr "W. strob (elektronski blic)"
+
+#: libexif/exif-entry.c:764
+msgid "Flash fired, compulsory flash mode"
+msgstr ""
+
+#: libexif/exif-entry.c:765
+msgid "Flash fired, compulsory flash mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:767
+msgid "Flash fired, compulsory flash mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:769
+msgid "Flash did not fire, compulsory flash mode"
+msgstr ""
+
+#: libexif/exif-entry.c:770
+msgid "Flash did not fire, auto mode"
+msgstr ""
+
+#: libexif/exif-entry.c:771
+msgid "Flash fired, auto mode"
+msgstr ""
+
+#: libexif/exif-entry.c:772
+msgid "Flash fired, auto mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:774
+msgid "Flash fired, auto mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:775
+msgid "No flash function"
+msgstr ""
+
+#: libexif/exif-entry.c:776
+msgid "Flash fired, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:777
+msgid "Flash fired, red-eye reduction mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:779
+msgid "Flash fired, red-eye reduction mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:781
+msgid "Flash fired, compulsory flash mode, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:783
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light not "
+"detected"
+msgstr ""
+
+#: libexif/exif-entry.c:785
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light "
+"detected"
+msgstr ""
+
+#: libexif/exif-entry.c:787
+msgid "Flash did not fire, auto mode, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:788
+msgid "Flash fired, auto mode, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:789
+msgid ""
+"Flash fired, auto mode, return light not detected, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:791
+msgid "Flash fired, auto mode, return light detected, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:795
+msgid "?"
+msgstr "?"
+
+#: libexif/exif-entry.c:797
+msgid "Close view"
+msgstr "Pogleda izbliza"
+
+#: libexif/exif-entry.c:798
+msgid "Distant view"
+msgstr "Udaljen pogled"
+
+#: libexif/exif-entry.c:798
+msgid "Distant"
+msgstr ""
+
+#: libexif/exif-entry.c:801
+msgid "sRGB"
+msgstr "sRGB"
+
+#: libexif/exif-entry.c:802
+msgid "Adobe RGB"
+msgstr "Adobe RGB"
+
+#: libexif/exif-entry.c:803
+msgid "Uncalibrated"
+msgstr "Nepodešeno"
+
+#: libexif/exif-entry.c:857
+#, c-format
+msgid "Invalid size of entry (%i, expected %li x %i)."
+msgstr "Neispravna veličina unosa (%i, traži se %li x %i)."
+
+#: libexif/exif-entry.c:890
+msgid "Unsupported UNICODE string"
+msgstr "Nepodržan UNICODE string"
+
+#: libexif/exif-entry.c:898
+msgid "Unsupported JIS string"
+msgstr "Nepodržan JIS string"
+
+#: libexif/exif-entry.c:914
+msgid "Tag UserComment does not comply with standard but contains data."
+msgstr ""
+"Zastavica KorisničkiKomentar se ne uklapa sa standardom, već sadrži podatke."
+
+#: libexif/exif-entry.c:918
+#, c-format
+msgid "Byte at position %i: 0x%02x"
+msgstr "Bajt na poziciji %i: 0x%02x"
+
+#: libexif/exif-entry.c:927
+msgid "Unknown Exif Version"
+msgstr "Nepoznata verzija Exif"
+
+#: libexif/exif-entry.c:931
+#, c-format
+msgid "Exif Version %d.%d"
+msgstr "Exif verzija %d.%d"
+
+#: libexif/exif-entry.c:942
+msgid "FlashPix Version 1.0"
+msgstr "FlashPix verzija 1.0"
+
+#: libexif/exif-entry.c:944
+msgid "FlashPix Version 1.01"
+msgstr "FlashPix verzija 1.01"
+
+#: libexif/exif-entry.c:946
+msgid "Unknown FlashPix Version"
+msgstr "Nepoznata verzija FlashPix"
+
+#: libexif/exif-entry.c:959 libexif/exif-entry.c:972 libexif/exif-entry.c:1628
+#: libexif/exif-entry.c:1633 libexif/exif-entry.c:1637
+#: libexif/exif-entry.c:1642 libexif/exif-entry.c:1643
+msgid "[None]"
+msgstr "[Ništa]"
+
+#: libexif/exif-entry.c:961
+msgid "(Photographer)"
+msgstr "(Fotograf)"
+
+#: libexif/exif-entry.c:975
+msgid "(Editor)"
+msgstr "(Urednik)"
+
+#: libexif/exif-entry.c:999 libexif/exif-entry.c:1079
+#: libexif/exif-entry.c:1096 libexif/exif-entry.c:1140
+#, c-format
+msgid "%.02f EV"
+msgstr "%.02f EV"
+
+#: libexif/exif-entry.c:1000
+#, c-format
+msgid " (f/%.01f)"
+msgstr " (f/%.01f)"
+
+#: libexif/exif-entry.c:1034
+#, c-format
+msgid " (35 equivalent: %d mm)"
+msgstr " (35 odgovara: %d mm)"
+
+#: libexif/exif-entry.c:1067 libexif/exif-entry.c:1068
+msgid " sec."
+msgstr " sec."
+
+#: libexif/exif-entry.c:1082
+#, c-format
+msgid " (1/%d sec.)"
+msgstr ""
+
+#: libexif/exif-entry.c:1084
+#, c-format
+msgid " (%d sec.)"
+msgstr ""
+
+#: libexif/exif-entry.c:1097
+#, c-format
+msgid " (%.02f cd/m^2)"
+msgstr " (%.02f cd/m^2)"
+
+#: libexif/exif-entry.c:1107
+msgid "DSC"
+msgstr "DSC"
+
+#: libexif/exif-entry.c:1109 libexif/exif-entry.c:1149
+#: libexif/exif-entry.c:1236 libexif/exif-entry.c:1287
+#: libexif/exif-entry.c:1296 libexif/exif-entry.c:1332
+#: libexif/fuji/mnote-fuji-entry.c:236 libexif/fuji/mnote-fuji-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:359
+#, c-format
+msgid "Internal error (unknown value %i)"
+msgstr "Unutrašnja greška (nepoznata vrijednost %i)"
+
+#: libexif/exif-entry.c:1117
+msgid "-"
+msgstr "-"
+
+#: libexif/exif-entry.c:1118
+msgid "Y"
+msgstr "Y"
+
+#: libexif/exif-entry.c:1119
+msgid "Cb"
+msgstr "Cb"
+
+#: libexif/exif-entry.c:1120
+msgid "Cr"
+msgstr "Cr"
+
+#: libexif/exif-entry.c:1121
+msgid "R"
+msgstr "R"
+
+#: libexif/exif-entry.c:1122
+msgid "G"
+msgstr "G"
+
+#: libexif/exif-entry.c:1123
+msgid "B"
+msgstr "B"
+
+#: libexif/exif-entry.c:1124
+#, fuzzy
+msgid "Reserved"
+msgstr "zauzeto"
+
+#: libexif/exif-entry.c:1147
+msgid "Directly photographed"
+msgstr ""
+
+#: libexif/exif-entry.c:1160
+msgid "YCbCr4:2:2"
+msgstr "YCbCr4:2:2"
+
+#: libexif/exif-entry.c:1162
+msgid "YCbCr4:2:0"
+msgstr "YCbCr4:2:0"
+
+#: libexif/exif-entry.c:1179
+#, c-format
+msgid "Within distance %i of (x,y) = (%i,%i)"
+msgstr "U okviru razdaljine %i of (x,y) = (%i,%i)"
+
+#: libexif/exif-entry.c:1188
+#, c-format
+msgid "Within rectangle (width %i, height %i) around (x,y) = (%i,%i)"
+msgstr "U okviru pravougaonika (širina %i, visina %i) oko (x,y) = (%i,%i)"
+
+#: libexif/exif-entry.c:1194
+#, c-format
+msgid "Unexpected number of components (%li, expected 2, 3, or 4)."
+msgstr "Neočekivan broj elemena (%li, traži se 2, 3, ili 4)."
+
+#: libexif/exif-entry.c:1232
+msgid "Sea level"
+msgstr ""
+
+#: libexif/exif-entry.c:1234
+msgid "Sea level reference"
+msgstr ""
+
+#: libexif/exif-entry.c:1342
+#, c-format
+msgid "Unknown value %i"
+msgstr ""
+
+#: libexif/exif-format.c:37
+msgid "Short"
+msgstr "Short"
+
+#: libexif/exif-format.c:38
+msgid "Rational"
+msgstr "Rational"
+
+#: libexif/exif-format.c:39
+msgid "SRational"
+msgstr "SRational"
+
+#: libexif/exif-format.c:40
+msgid "Undefined"
+msgstr "Neodređeno"
+
+#: libexif/exif-format.c:41
+msgid "ASCII"
+msgstr ""
+
+#: libexif/exif-format.c:42
+msgid "Long"
+msgstr "Long"
+
+#: libexif/exif-format.c:43
+msgid "Byte"
+msgstr "Byte"
+
+#: libexif/exif-format.c:44
+msgid "SByte"
+msgstr "SByte"
+
+#: libexif/exif-format.c:45
+msgid "SShort"
+msgstr "SShort"
+
+#: libexif/exif-format.c:46
+msgid "SLong"
+msgstr "SLong"
+
+#: libexif/exif-format.c:47
+msgid "Float"
+msgstr "Float"
+
+#: libexif/exif-format.c:48
+msgid "Double"
+msgstr "Double"
+
+#: libexif/exif-loader.c:119
+#, c-format
+msgid "The file '%s' could not be opened."
+msgstr "Ne može da se otvori datoteku  '%s'."
+
+#: libexif/exif-loader.c:300
+msgid "The data supplied does not seem to contain EXIF data."
+msgstr "Proslijeđeni podaci ne sadrže EXIF podatke."
+
+#: libexif/exif-log.c:43
+msgid "Debugging information"
+msgstr "Debag informacija"
+
+#: libexif/exif-log.c:44
+msgid "Debugging information is available."
+msgstr "Nije dostupna informacija o debagovanju."
+
+#: libexif/exif-log.c:45
+msgid "Not enough memory"
+msgstr "Nema dovoljno memorije"
+
+#: libexif/exif-log.c:46
+msgid "The system cannot provide enough memory."
+msgstr "Sistem ne može da obezbijedi dovoljno memorije."
+
+#: libexif/exif-log.c:47
+msgid "Corrupt data"
+msgstr "Oštećeni podaci"
+
+#: libexif/exif-log.c:48
+msgid "The data provided does not follow the specification."
+msgstr "Proslijeđeni podaci nisu u skladu sa tehničkim podacima."
+
+#: libexif/exif-tag.c:62
+#, fuzzy
+msgid "GPS Tag Version"
+msgstr "Etiketa GPS verzije"
+
+#: libexif/exif-tag.c:63
+msgid ""
+"Indicates the version of <GPSInfoIFD>. The version is given as 2.0.0.0. This "
+"tag is mandatory when <GPSInfo> tag is present. (Note: The <GPSVersionID> "
+"tag is given in bytes, unlike the <ExifVersion> tag. When the version is "
+"2.0.0.0, the tag value is 02000000.H)."
+msgstr ""
+"Označava verziju od <GPSInfoIFD>. Ovo je verzija 2.0.0.0. Ova etiketa je "
+"obavezna kad je prisutna etiketa <GPSInfo>. (Primjedba: Etiketa "
+"<GPSVersionID> se izražava u bajtovima, za razliku od etikete <ExifVersion>."
+"Ako je verzija 2.0.0.0, vrijednost etikete je 02000000.H)."
+
+#: libexif/exif-tag.c:69
+msgid "Interoperability Index"
+msgstr ""
+
+#: libexif/exif-tag.c:70
+msgid ""
+"Indicates the identification of the Interoperability rule. Use \"R98\" for "
+"stating ExifR98 Rules. Four bytes used including the termination code "
+"(NULL). see the separate volume of Recommended Exif Interoperability Rules "
+"(ExifR98) for other tags used for ExifR98."
+msgstr ""
+"Naznačasva identifikaciju interoperabilnog pravila. Koristite \"R98\" za "
+"naznačavanje ExifR98 pravila. Koriste se četiri bajta uključujući i "
+"terminacioni kod (NULL). Pogledajte zasebno poglavlje za preporučena pravila "
+"interoperabilnosti Exif standarda (ExifR98) za ostale oznake."
+
+#: libexif/exif-tag.c:76
+msgid "North or South Latitude"
+msgstr "Sjeverna ili južna geografska dužina"
+
+#: libexif/exif-tag.c:77
+msgid ""
+"Indicates whether the latitude is north or south latitude. The ASCII value "
+"'N' indicates north latitude, and 'S' is south latitude."
+msgstr ""
+"Označava sjevernu ili južnu geogr. širinu. ASCII slovo 'N' označava "
+"sjevernu, a 'S' južnu širinu.."
+
+#: libexif/exif-tag.c:81
+msgid "Interoperability Version"
+msgstr ""
+
+#: libexif/exif-tag.c:83
+msgid "Latitude"
+msgstr "Geografska širina"
+
+#: libexif/exif-tag.c:84
+msgid ""
+"Indicates the latitude. The latitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is dd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is dd/1,mmmm/100,0/1."
+msgstr ""
+"Označava geogr. širinu. Ona se mjeri u stepenima, minutima i sekundama i "
+"zapisuje u racionalnim brojevima. Ako su izraženi i stepeni, minuti i "
+"sekunde, koristi se oblik dd/1,mm/1,ss/1. Ako je izraženo samo u stepenima i "
+"minutima, i minuti su, recimo, izraženi u dvije decimale, oblik je dd/1,"
+"mmmm/100,0/1."
+
+#: libexif/exif-tag.c:91
+msgid "East or West Longitude"
+msgstr "Istočna ili zapadna geogr. dužina"
+
+#: libexif/exif-tag.c:92
+msgid ""
+"Indicates whether the longitude is east or west longitude. ASCII 'E' "
+"indicates east longitude, and 'W' is west longitude."
+msgstr ""
+"Označava istočnu ili zapadnu geogr. dužinu.  ASCII slovo 'E' je za istočnu, "
+"a 'W' za zapadnu dužinu."
+
+#: libexif/exif-tag.c:95
+msgid "Longitude"
+msgstr "Geografska dužina"
+
+#: libexif/exif-tag.c:96
+msgid ""
+"Indicates the longitude. The longitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is ddd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is ddd/1,mmmm/100,0/1."
+msgstr ""
+"Označava geogr. dužinu. Ona se mjeri u stepenima, minutima i sekundama i "
+"zapisuje u racionalnim brojevima. Ako su izraženi i stepeni, minuti i "
+"sekunde, koristi se oblik dd/1,mm/1,ss/1. Ako je izraženo samo u stepenima i "
+"minutima, i minuti su, recimo, izraženi u dvije decimale, oblik je dd/1,"
+"mmmm/100,0/1."
+
+#: libexif/exif-tag.c:103
+#, fuzzy
+msgid "Altitude Reference"
+msgstr "Obilježivač visine"
+
+#: libexif/exif-tag.c:104
+msgid ""
+"Indicates the altitude used as the reference altitude. If the reference is "
+"sea level and the altitude is above sea level, 0 is given. If the altitude "
+"is below sea level, a value of 1 is given and the altitude is indicated as "
+"an absolute value in the GSPAltitude tag. The reference unit is meters. Note "
+"that this tag is BYTE type, unlike other reference tags."
+msgstr ""
+"Označava visinu u odnosu na obilježivač visine. Ako se mjeri u odnosu na "
+"nivo mora, i visina je iznad nivoa mora, postavlja se 0. Ako je visina ispod "
+"nivoa mora, postavlja se 1 i na visinu se gleda kao na apsolutnu vrijednost "
+"u etiketi GSPAltitude. Jedinica su metri. Ova etiketa je tipa BYTE, za "
+"razliku od drugih etiketa upućivača."
+
+#: libexif/exif-tag.c:110
+msgid "Altitude"
+msgstr "Visina"
+
+#: libexif/exif-tag.c:111
+msgid ""
+"Indicates the altitude based on the reference in GPSAltitudeRef. Altitude is "
+"expressed as one RATIONAL value. The reference unit is meters."
+msgstr ""
+"Označava visinu u odnosu na upućivač u GPSAltitudeRef. Visina se izražava "
+"kao racionalni broj. Jedinica su metri."
+
+#: libexif/exif-tag.c:114
+msgid "GPS Time (Atomic Clock)"
+msgstr ""
+
+#: libexif/exif-tag.c:115
+msgid ""
+"Indicates the time as UTC (Coordinated Universal Time). TimeStamp is "
+"expressed as three RATIONAL values giving the hour, minute, and second."
+msgstr ""
+
+#: libexif/exif-tag.c:118
+msgid "GPS Satellites"
+msgstr ""
+
+#: libexif/exif-tag.c:119
+msgid ""
+"Indicates the GPS satellites used for measurements. This tag can be used to "
+"describe the number of satellites, their ID number, angle of elevation, "
+"azimuth, SNR and other information in ASCII notation. The format is not "
+"specified. If the GPS receiver is incapable of taking measurements, value of "
+"the tag shall be set to NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:125
+msgid "GPS Receiver Status"
+msgstr ""
+
+#: libexif/exif-tag.c:126
+msgid ""
+"Indicates the status of the GPS receiver when the image is recorded. 'A' "
+"means measurement is in progress, and 'V' means the measurement is "
+"Interoperability."
+msgstr ""
+
+#: libexif/exif-tag.c:129
+#, fuzzy
+msgid "GPS Measurement Mode"
+msgstr "Zeleni mod"
+
+#: libexif/exif-tag.c:130
+msgid ""
+"Indicates the GPS measurement mode. '2' means two-dimensional measurement "
+"and '3' means three-dimensional measurement is in progress."
+msgstr ""
+
+#: libexif/exif-tag.c:133
+msgid "Measurement Precision"
+msgstr ""
+
+#: libexif/exif-tag.c:134
+msgid ""
+"Indicates the GPS DOP (data degree of precision). An HDOP value is written "
+"during two-dimensional measurement, and PDOP during three-dimensional "
+"measurement."
+msgstr ""
+
+#: libexif/exif-tag.c:137
+#, fuzzy
+msgid "Speed Unit"
+msgstr "Brzina svjetlosti"
+
+#: libexif/exif-tag.c:138
+msgid ""
+"Indicates the unit used to express the GPS receiver speed of movement. 'K', "
+"'M' and 'N' represent kilometers per hour, miles per hour, and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:141
+msgid "Speed of GPS Receiver"
+msgstr ""
+
+#: libexif/exif-tag.c:142
+msgid "Indicates the speed of GPS receiver movement."
+msgstr ""
+
+#: libexif/exif-tag.c:143
+msgid "Reference for direction of movement"
+msgstr ""
+
+#: libexif/exif-tag.c:144
+msgid ""
+"Indicates the reference for giving the direction of GPS receiver movement. "
+"'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:147
+msgid "Direction of Movement"
+msgstr ""
+
+#: libexif/exif-tag.c:148
+msgid ""
+"Indicates the direction of GPS receiver movement. The range of values is "
+"from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:150
+msgid "GPS Image Direction Reference"
+msgstr ""
+
+#: libexif/exif-tag.c:151
+msgid ""
+"Indicates the reference for giving the direction of the image when it is "
+"captured. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:153
+#, fuzzy
+msgid "GPS Image Direction"
+msgstr "Opis slike"
+
+#: libexif/exif-tag.c:154
+msgid ""
+"Indicates the direction of the image when it was captured. The range of "
+"values is from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:156
+msgid "Geodetic Survey Data Used"
+msgstr ""
+
+#: libexif/exif-tag.c:157
+msgid ""
+"Indicates the geodetic survey data used by the GPS receiver. If the survey "
+"data is restricted to Japan, the value of this tag is 'TOKYO' or 'WGS-84'. "
+"If a GPS Info tag is recorded, it is strongly recommended that this tag be "
+"recorded."
+msgstr ""
+
+#: libexif/exif-tag.c:161
+msgid "Reference For Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:162
+msgid ""
+"Indicates whether the latitude of the destination point is north or south "
+"latitude. The ASCII value 'N' indicates north latitude, and 'S' is south "
+"latitude."
+msgstr ""
+
+#: libexif/exif-tag.c:165
+msgid "Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:166
+msgid ""
+"Indicates the latitude of the destination point. The latitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If latitude is expressed as degrees, minutes and seconds, a "
+"typical format would be dd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be dd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:173
+msgid "Reference for Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:174
+msgid ""
+"Indicates whether the longitude of the destination point is east or west "
+"longitude. ASCII 'E' indicates east longitude, and 'W' is west longitude."
+msgstr ""
+
+#: libexif/exif-tag.c:177
+msgid "Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:178
+msgid ""
+"Indicates the longitude of the destination point. The longitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If longitude is expressed as degrees, minutes and seconds, a "
+"typical format would be ddd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be ddd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:186
+msgid "Reference for Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:187
+msgid ""
+"Indicates the reference used for giving the bearing to the destination "
+"point. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:190
+msgid "Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:191
+msgid ""
+"Indicates the bearing to the destination point. The range of values is from "
+"0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:193
+msgid "Reference for Distance to Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:194
+msgid ""
+"Indicates the unit used to express the distance to the destination point. "
+"'K', 'M' and 'N' represent kilometers, miles and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:197
+#, fuzzy
+msgid "Distance to Destination"
+msgstr "Djevice Setting Description"
+
+#: libexif/exif-tag.c:198
+msgid "Indicates the distance to the destination point."
+msgstr ""
+
+#: libexif/exif-tag.c:199
+#, fuzzy
+msgid "Name of GPS Processing Method"
+msgstr "Sensing Method"
+
+#: libexif/exif-tag.c:200
+msgid ""
+"A character string recording the name of the method used for location "
+"finding. The first byte indicates the character code used, and this is "
+"followed by the name of the method. Since the Type is not ASCII, NULL "
+"termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:205
+msgid "Name of GPS Area"
+msgstr ""
+
+#: libexif/exif-tag.c:206
+msgid ""
+"A character string recording the name of the GPS area. The first byte "
+"indicates the character code used, and this is followed by the name of the "
+"GPS area. Since the Type is not ASCII, NULL termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:210
+msgid "GPS Date"
+msgstr ""
+
+#: libexif/exif-tag.c:211
+msgid ""
+"A character string recording date and time information relative to UTC "
+"(Coordinated Universal Time). The format is \"YYYY:MM:DD\". The length of "
+"the string is 11 bytes including NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:215
+msgid "GPS Differential Correction"
+msgstr ""
+
+#: libexif/exif-tag.c:216
+msgid ""
+"Indicates whether differential correction is applied to the GPS receiver."
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "New Subfile Type"
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "A general indication of the kind of data contained in this subfile."
+msgstr "Opšta naznaka vrste podataka koja se nalazi u ovom poddatoteci."
+
+#: libexif/exif-tag.c:222
+msgid "Image Width"
+msgstr "Širina slike"
+
+#: libexif/exif-tag.c:223
+msgid ""
+"The number of columns of image data, equal to the number of pixels per row. "
+"In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+"Broj kolona u podacima slike, jednak broju piksela po redu. U JPEG sažetim "
+"podacima, JPEG etiketa se koristi umjesto ove etikete."
+
+#: libexif/exif-tag.c:227
+msgid "Image Length"
+msgstr "Dužina slike"
+
+#: libexif/exif-tag.c:228
+msgid ""
+"The number of rows of image data. In JPEG compressed data a JPEG marker is "
+"used instead of this tag."
+msgstr ""
+"Broj redova podataka slike. U JPEG sažetim podacima, JPEG etiketa se koristi "
+"umjesto ove etikete."
+
+#: libexif/exif-tag.c:231
+msgid "Bits per Sample"
+msgstr "Bitova po uzorku"
+
+#: libexif/exif-tag.c:232
+msgid ""
+"The number of bits per image component. In this standard each component of "
+"the image is 8 bits, so the value for this tag is 8. See also "
+"<SamplesPerPixel>. In JPEG compressed data a JPEG marker is used instead of "
+"this tag."
+msgstr ""
+"Broj bita po sastavnom djelu slike. U ovom stanardu svaki dio slike ima 8 "
+"bita, tako da je vrijednost etikete 8. Pogledajte <SamplesPerPixel>. Kod "
+"JPEG sažimanja, JPEG obeliživač se koristi umjesto ove etikete."
+
+#: libexif/exif-tag.c:237
+msgid "Compression"
+msgstr "Sažimanje"
+
+#: libexif/exif-tag.c:238
+msgid ""
+"The compression scheme used for the image data. When a primary image is JPEG "
+"compressed, this designation is not necessary and is omitted. When "
+"thumbnails use JPEG compression, this tag value is set to 6."
+msgstr ""
+"Šema sažimanja koja se koristi za podatke slike. Ako je glavna slika JPEG "
+"sažeta, oznaka nije neophodna i izostavljena je. Kada sličice za pregled "
+"koriste JPEG sažimanje, vrijednost etikete je 6."
+
+#: libexif/exif-tag.c:244
+msgid "Photometric Interpretation"
+msgstr "Fotometrijsko predstavljanje"
+
+#: libexif/exif-tag.c:245
+msgid ""
+"The pixel composition. In JPEG compressed data a JPEG marker is used instead "
+"of this tag."
+msgstr ""
+"Sastav piksela. Kod JPEG sažetih podataka, JPEG obilježivač se koristi "
+"umjesto ove etikete."
+
+#: libexif/exif-tag.c:249
+msgid "Fill Order"
+msgstr "Redoslijed datoteka"
+
+#: libexif/exif-tag.c:251
+msgid "Document Name"
+msgstr "Ime dokumenta"
+
+#: libexif/exif-tag.c:253
+msgid "Image Description"
+msgstr "Opis slike"
+
+#: libexif/exif-tag.c:254
+msgid ""
+"A character string giving the title of the image. It may be a comment such "
+"as \"1988 company picnic\" or the like. Two-bytes character codes cannot be "
+"used. When a 2-bytes code is necessary, the Exif Private tag <UserComment> "
+"is to be used."
+msgstr ""
+"String slova kojim se zadaje naslov slike. To može biti primjedba kao što je "
+"\"1988 izlet firme\" ili bilo šta. Ne mogu da se koriste slova od 2 bajta. "
+"Ako je potrebno da se oni koriste, kuca se u Exif Private etiketi "
+"<UserComment>."
+
+#: libexif/exif-tag.c:260
+msgid "Manufacturer"
+msgstr "Proizvođač"
+
+#: libexif/exif-tag.c:261
+msgid ""
+"The manufacturer of the recording equipment. This is the manufacturer of the "
+"DSC, scanner, video digitizer or other equipment that generated the image. "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+"Proizvođač opreme za slikanje. To je proizvođač DSC, skenera, video "
+"digitajzer ili druge opreme koja se koristi za stvaranje slika. Ako je polje "
+"prazno, smatra se da je nepoznato."
+
+#: libexif/exif-tag.c:267
+msgid "Model"
+msgstr "Model"
+
+#: libexif/exif-tag.c:268
+msgid ""
+"The model name or model number of the equipment. This is the model name or "
+"number of the DSC, scanner, video digitizer or other equipment that "
+"generated the image. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Ime modela ili broj modela opreme. To je ime modela ili broj DSC, skenera, "
+"video digitajzer ili druge opreme koja se koristi za stvaranje slika. Ako je "
+"polje prazno, smatra se da je nepoznato."
+
+#: libexif/exif-tag.c:273
+msgid "Strip Offsets"
+msgstr "Štampane trake"
+
+#: libexif/exif-tag.c:274
+msgid ""
+"For each strip, the byte offset of that strip. It is recommended that this "
+"be selected so the number of strip bytes does not exceed 64 Kbytes. With "
+"JPEG compressed data this designation is not needed and is omitted. See also "
+"<RowsPerStrip> and <StripByteCounts>."
+msgstr ""
+"Za svaku traku, bajtska štampa te trake. Preporučljivo je da se unese "
+"vrijednost manja od 64 kilobajta. Kod JPEG sažetih podataka, oznaka nije "
+"neophodna i izostavljena je. Pogledajte i <RowsPerStrip> i <StripByteCounts>"
+
+#: libexif/exif-tag.c:280
+msgid "Orientation"
+msgstr "Položaj"
+
+#: libexif/exif-tag.c:281
+msgid "The image orientation viewed in terms of rows and columns."
+msgstr "Položaj slike u smislu redova i kolona."
+
+#: libexif/exif-tag.c:284
+msgid "Samples per Pixel"
+msgstr "Uzoraka po pikselu"
+
+#: libexif/exif-tag.c:285
+msgid ""
+"The number of components per pixel. Since this standard applies to RGB and "
+"YCbCr images, the value set for this tag is 3. In JPEG compressed data a "
+"JPEG marker is used instead of this tag."
+msgstr ""
+"Broj sastavnih dijelova po pikselu. Pošto se standard odnosi na RGB i YCbCr "
+"slike, vrijednost etikete je 3. Kod JPEG sažetih podataka, JPEG obilježivač "
+"se koristi umjesto ove etikete."
+
+#: libexif/exif-tag.c:290
+msgid "Rows per Strip"
+msgstr "Redova po traci"
+
+#: libexif/exif-tag.c:291
+msgid ""
+"The number of rows per strip. This is the number of rows in the image of one "
+"strip when an image is divided into strips. With JPEG compressed data this "
+"designation is not needed and is omitted. See also <StripOffsets> and "
+"<StripByteCounts>."
+msgstr ""
+"Broj redova po traci. Broj redova u slici koja je izdeljena na trake. Kod "
+"JPEG sažetih podataka, oznaka nije neophodna i izostavljena je. Pogledajte i "
+"<StripOffsets> i <StripByteCounts>"
+
+#: libexif/exif-tag.c:297
+msgid "Strip Byte Count"
+msgstr "Broj bajtova na traci"
+
+#: libexif/exif-tag.c:298
+msgid ""
+"The total number of bytes in each strip. With JPEG compressed data this "
+"designation is not needed and is omitted."
+msgstr ""
+"Ukupan broj bajtova za svaku traku. Kod JPEG sažetih podataka, oznaka nije "
+"neophodna i izostavljena je."
+
+#: libexif/exif-tag.c:301
+#, fuzzy
+msgid "X-Resolution"
+msgstr "x-rezolucija"
+
+#: libexif/exif-tag.c:302
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageWidth> direction. "
+"When the image resolution is unknown, 72 [dpi] is designated."
+msgstr ""
+"Broj piksela po <ResolutionUnit> u <ImageWidth> pravcu. Ako je nepoznata "
+"rezolucija, 72 [dpi] je postavljeno."
+
+#: libexif/exif-tag.c:306
+#, fuzzy
+msgid "Y-Resolution"
+msgstr "x-rezolucija"
+
+#: libexif/exif-tag.c:307
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageLength> direction. "
+"The same value as <XResolution> is designated."
+msgstr ""
+"Broj piksela po <ResolutionUnit> u <ImageWidth> pravcu. Postavlja se ista "
+"vrijednost kao u <XResolution>."
+
+#: libexif/exif-tag.c:311
+msgid "Planar Configuration"
+msgstr "Raspored Planara"
+
+#: libexif/exif-tag.c:312
+msgid ""
+"Indicates whether pixel components are recorded in a chunky or planar "
+"format. In JPEG compressed files a JPEG marker is used instead of this tag. "
+"If this field does not exist, the TIFF default of 1 (chunky) is assumed."
+msgstr ""
+"Naznačava da li će komponente tačaka biti zapisane u ravnom ili raštrkanom "
+"obliku. U JPEG kompresovanim datotekama biće korišćen JPEG marker umjesto "
+"ove oznake. Ako ovo polje ne postoji, koristi se TIFF vrijednosti 1 "
+"(raštrkano)."
+
+#: libexif/exif-tag.c:317
+msgid "Resolution Unit"
+msgstr "Jedinica rezolucije"
+
+#: libexif/exif-tag.c:318
+msgid ""
+"The unit for measuring <XResolution> and <YResolution>. The same unit is "
+"used for both <XResolution> and <YResolution>. If the image resolution is "
+"unknown, 2 (inches) is designated."
+msgstr ""
+"Jedinica za mjerenje <XResolution> i <YResolution>. Ista jedinica se koristi "
+"za <XResolution> i <YResolution>. Ako je nepoznata rezolucija slike, "
+"postavlja se 2 (inča)."
+
+#: libexif/exif-tag.c:323
+msgid "Transfer Function"
+msgstr "Funkcija prijenosa"
+
+#: libexif/exif-tag.c:324
+msgid ""
+"A transfer function for the image, described in tabular style. Normally this "
+"tag is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+"Funkcija prijenosa za sliku, opisana u tabularnom stilu. Obično ova oznaka "
+"niej neophodna, obzirom da je paleta boja označena pomoću <ColorSpace>."
+
+#: libexif/exif-tag.c:328
+msgid "Software"
+msgstr "Softver"
+
+#: libexif/exif-tag.c:329
+msgid ""
+"This tag records the name and version of the software or firmware of the "
+"camera or image input device used to generate the image. The detailed format "
+"is not specified, but it is recommended that the example shown below be "
+"followed. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Ova etiketa pamti ime i verziju softvera ili firmvera foto-aparata ili "
+"ulaznog uređaja koji je napravio sliku. Oblik unosa nije preciziran, ali je "
+"preporučljivo da bude slično primjeru koji je prikazan dolje. Ako se polje "
+"ostavi prazno, smatra se da je nepoznato."
+
+#: libexif/exif-tag.c:336
+msgid "Date and Time"
+msgstr "Datum i vrijeme"
+
+#: libexif/exif-tag.c:337
+msgid ""
+"The date and time of image creation. In this standard (EXIF-2.1) it is the "
+"date and time the file was changed."
+msgstr ""
+"Vrijeme i datum slikanja fotografije. U ovom standardu (EXIF-2.1) to je "
+"datum i vrijeme izmjene datoteke."
+
+#: libexif/exif-tag.c:340
+msgid "Artist"
+msgstr "Umjetnik"
+
+#: libexif/exif-tag.c:341
+msgid ""
+"This tag records the name of the camera owner, photographer or image "
+"creator. The detailed format is not specified, but it is recommended that "
+"the information be written as in the example below for ease of "
+"Interoperability. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Ova etiketa pamti ime vlasnika aparata, fotografa ili onog koji je napravio "
+"sliku. Oblik unosa nije preciziran, ali je preporučljivo da informacija bude "
+"unijeta kao što je primjer koji je prikazan dolje. Ako se polje ostavi "
+"prazno, smatra se da je nepoznato."
+
+#: libexif/exif-tag.c:347 libexif/pentax/mnote-pentax-tag.c:113
+msgid "White Point"
+msgstr "Bela tačka"
+
+#: libexif/exif-tag.c:348
+msgid ""
+"The chromaticity of the white point of the image. Normally this tag is not "
+"necessary, since color space is specified in the color space information tag "
+"(<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:353
+msgid "Primary Chromaticities"
+msgstr "Glavna nijansiranost"
+
+#: libexif/exif-tag.c:354
+msgid ""
+"The chromaticity of the three primary colors of the image. Normally this tag "
+"is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:359
+msgid "Defined by Adobe Corporation to enable TIFF Trees within a TIFF file."
+msgstr ""
+"Određeno od strane Adobe korporacije za omogićavanje TIFF Trees u okviru "
+"TIFF datoteke."
+
+#: libexif/exif-tag.c:362
+msgid "Transfer Range"
+msgstr "Domet prijenosa"
+
+#: libexif/exif-tag.c:366
+msgid "JPEG Interchange Format"
+msgstr "JPEG format"
+
+#: libexif/exif-tag.c:367
+msgid ""
+"The offset to the start byte (SOI) of JPEG compressed thumbnail data. This "
+"is not used for primary image JPEG data."
+msgstr ""
+"Raspon prema startnom bajtu (SOI) JPEG kompresovanog umanjenog prikaza "
+"slike. Ovo se ne koristi kao primarni podatak JPEG slike."
+
+#: libexif/exif-tag.c:372
+msgid "JPEG Interchange Format Length"
+msgstr "JPEG format dužine"
+
+#: libexif/exif-tag.c:373
+msgid ""
+"The number of bytes of JPEG compressed thumbnail data. This is not used for "
+"primary image JPEG data. JPEG thumbnails are not divided but are recorded as "
+"a continuous JPEG bitstream from SOI to EOI. Appn and COM markers should not "
+"be recorded. Compressed thumbnails must be recorded in no more than 64 "
+"Kbytes, including all other data to be recorded in APP1."
+msgstr ""
+"Broj batova JPEG kompresovanog umanjenog prikaza slike. Ovo se ne koristi "
+"kao primarni podatak JPEG slike. JPEG umanjeni prikazi se ne dijele, ali su "
+"zapisani kao kontinualni JPEG tokovi bitova počev od SOI do EOI. Appn i COM "
+"markeri ne treba da se zapisuju. Kompresovani umanjeni prikazi slika moraju "
+"biti zapisani u ne više od 64 kilobajtova, uključujući i sve postale podatke "
+"koji se zapisuju u APP1."
+
+#: libexif/exif-tag.c:382
+msgid "YCbCr Coefficients"
+msgstr "YCbCr koeficijenti"
+
+#: libexif/exif-tag.c:383
+msgid ""
+"The matrix coefficients for transformation from RGB to YCbCr image data. No "
+"default is given in TIFF; but here the value given in \"Color Space "
+"Guidelines\", is used as the default. The color space is declared in a color "
+"space information tag, with the default being the value that gives the "
+"optimal image characteristics Interoperability this condition."
+msgstr ""
+
+#: libexif/exif-tag.c:392
+msgid "YCbCr Sub-Sampling"
+msgstr "YCbCr Sub-Sampling"
+
+#: libexif/exif-tag.c:393
+msgid ""
+"The sampling ratio of chrominance components in relation to the luminance "
+"component. In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+"Odnos uzoraka dijelova hromiranja u odnosu na jačinu osvjetljenja. Kod JPEG "
+"sažetih podataka, JPEG obilježivač se koristi umjesto ove etikete."
+
+#: libexif/exif-tag.c:398
+msgid "YCbCr Positioning"
+msgstr "YCbCr položaj"
+
+#: libexif/exif-tag.c:399
+msgid ""
+"The position of chrominance components in relation to the luminance "
+"component. This field is designated only for JPEG compressed data or "
+"uncompressed YCbCr data. The TIFF default is 1 (centered); but when Y:Cb:Cr "
+"= 4:2:2 it is recommended in this standard that 2 (co-sited) be used to "
+"record data, in order to improve the image quality when viewed on TV "
+"systems. When this field does not exist, the reader shall assume the TIFF "
+"default. In the case of Y:Cb:Cr = 4:2:0, the TIFF default (centered) is "
+"recommended. If the reader does not have the capability of supporting both "
+"kinds of <YCbCrPositioning>, it shall follow the TIFF default regardless of "
+"the value in this field. It is preferable that readers be able to support "
+"both centered and co-sited positioning."
+msgstr ""
+"Pozicija komponenti boja u relaciji sa komponentama osvjetljenja. Ovo polje "
+"je dizajnirano samo za JPEG kompresovane podatke ili nekompresovane YCbCr "
+"podatke. Podrazumevano za TIFF je 1 (centrirano), ali kada je Y:Cb:Cr = "
+"4:2:2 preporučljivo je u ovom standardu da 2 (co-sited) bude korišćeno za "
+"zapis podataka, kako bi se poboljšao kvalitet slike kada se gleda na TV "
+"sistemima. Kada ovo polje ne postoji, čitalac će koristiti podrazumevano za "
+"TIFF. U slučaju kada je Y:Cb:Cr = 4:2:0, preporučen je podrazumevano za TIFF "
+"(centrirano). Ako čitač nema podršku za obje vrste <YCbCrPositioning>, "
+"trebalo bi da prati podrazumevano za TIFF bez obzira na vrijednost u ovom "
+"polju. Preporučljivo je da čitači butu sposobni i za centrirano i za co-"
+"sited pozicioniranje."
+
+#: libexif/exif-tag.c:414
+msgid "Reference Black/White"
+msgstr "Referentni nivo crno/bele"
+
+#: libexif/exif-tag.c:415
+msgid ""
+"The reference black point value and reference white point value. No defaults "
+"are given in TIFF, but the values below are given as defaults here. The "
+"color space is declared in a color space information tag, with the default "
+"being the value that gives the optimal image characteristics "
+"Interoperability these conditions."
+msgstr ""
+"Referentna vrijednost crnila i referentna vrijednost bjelila. Za TIFF se "
+"ništa ne podrazumijeva, ali sljedeće vrijednosti su date kao "
+"podrazumijevane. Paleta boja je deklarisana u informacionoj oznaci za paletu "
+"boja, a podrazumijevane vrijednosti su one koje daju optimalne "
+"karakteristike slike."
+
+#: libexif/exif-tag.c:423
+msgid "XML Packet"
+msgstr "XML skup"
+
+#: libexif/exif-tag.c:423
+msgid "XMP Metadata"
+msgstr "XMP metapodaci"
+
+#: libexif/exif-tag.c:438 libexif/exif-tag.c:784
+msgid "CFA Pattern"
+msgstr "CFA šablon"
+
+#: libexif/exif-tag.c:439 libexif/exif-tag.c:785
+msgid ""
+"Indicates the color filter array (CFA) geometric pattern of the image sensor "
+"when a one-chip color area sensor is used. It does not apply to all sensing "
+"methods."
+msgstr ""
+"Naznačava geometrijski šablon niza filtera boja (CFA) senzora slike kada se "
+"koristi senzor opsega boja na jednom čipu. Nema uticaja na sve metode "
+"senzora."
+
+#: libexif/exif-tag.c:443
+msgid "Battery Level"
+msgstr "Stanje baterije"
+
+#: libexif/exif-tag.c:444
+msgid "Copyright"
+msgstr "Copyright"
+
+#: libexif/exif-tag.c:445
+msgid ""
+"Copyright information. In this standard the tag is used to indicate both the "
+"photographer and editor copyrights. It is the copyright notice of the person "
+"or organization claiming rights to the image. The Interoperability copyright "
+"statement including date and rights should be written in this field; e.g., "
+"\"Copyright, John Smith, 19xx. All rights reserved.\". In this standard the "
+"field records both the photographer and editor copyrights, with each "
+"recorded in a separate part of the statement. When there is a clear "
+"distinction between the photographer and editor copyrights, these are to be "
+"written in the order of photographer followed by editor copyright, separated "
+"by NULL (in this case, since the statement also ends with a NULL, there are "
+"two NULL codes) (see example 1). When only the photographer is given, it is "
+"terminated by one NULL code (see example 2). When only the editor copyright "
+"is given, the photographer copyright part consists of one space followed by "
+"a terminating NULL code, then the editor copyright is given (see example 3). "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+"Informacije o autorskim pravima. U ovom standardu, oznaka se koristi da "
+"naznači autorska prava fotografa i uređivača. Radi se o obavještenju o osobi "
+"ili organizaciji koja drži autorska prava. Interoperabilni izkaz autorskih "
+"prava sa datumom i pravima bi trebalo da bude napisan u ovom polju; npr. "
+"„Autorska prava, Pera Perić, 20xx god. Sva prava zadržana.“ U ovom "
+"standardu, polje takođe naznačava autorska prava i fotografa i uređivača. "
+"Kada se te dvije osobe i njihova autorska prava razlikuju, najprije se "
+"navodi fotograf, pa uređivač, razdvojeni NULL karakterom (u ovom slučaju, "
+"obzirom da se polje završava tim karakterom, biće ih dva) (pogledajte "
+"primjer 1). Kada se navodi samo fotograf, završava se NULL karakterom "
+"(pogledajte primjer 2). Kada se navodi samo uređivač, onda se dio namijenjen "
+"za fotografa sastoji od beline iza koje se nalazi NULL karakter, pa zatim "
+"ide dio o autorskim pravima uređivača (pogledajte primjer 3). Kada je polje "
+"prazno, smatra se da autorska prava nisu poznata."
+
+#: libexif/exif-tag.c:467
+msgid "Exposure time, given in seconds (sec)."
+msgstr "Vrijeme osvjetljenja u sekundama (sec)."
+
+#: libexif/exif-tag.c:469 libexif/pentax/mnote-pentax-tag.c:79
+msgid "F-Number"
+msgstr ""
+
+#: libexif/exif-tag.c:470
+msgid "The F number."
+msgstr "F broj."
+
+#: libexif/exif-tag.c:475
+msgid "Image Resources Block"
+msgstr "Image Resources Block"
+
+#: libexif/exif-tag.c:477
+msgid ""
+"A pointer to the Exif IFD. Interoperability, Exif IFD has the same structure "
+"as that of the IFD specified in TIFF. ordinarily, however, it does not "
+"contain image data as in the case of TIFF."
+msgstr ""
+"Pokazivač na Exif IFD. Interopeabilnosti radi, Exif IFD imaju istu strukturu "
+"kao kod IFD-a navedenog u TIFF-u, ali ne sadrži podatke slike  kao u slučaju "
+"TIFF-a."
+
+#: libexif/exif-tag.c:485
+msgid "Exposure Program"
+msgstr ""
+
+#: libexif/exif-tag.c:486
+msgid ""
+"The class of the program used by the camera to set exposure when the picture "
+"is taken."
+msgstr ""
+"Programska klasa koju aparat koristi da podesi osvjetljenje kada slika."
+
+#: libexif/exif-tag.c:490
+msgid "Spectral Sensitivity"
+msgstr "Spektralna osjetljivost"
+
+#: libexif/exif-tag.c:491
+msgid ""
+"Indicates the spectral sensitivity of each channel of the camera used. The "
+"tag value is an ASCII string compatible with the standard developed by the "
+"ASTM Technical Committee."
+msgstr ""
+"Označava spektralnu osjetljivost svakog kanala koji je aparat koristio. "
+"Vrijednost etikete je ASCII string koje je u skladu sa standardnom koji je "
+"razvio ASTM tehnčki komitet."
+
+#: libexif/exif-tag.c:496
+msgid "GPS Info IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:497
+msgid ""
+"A pointer to the GPS Info IFD. The Interoperability structure of the GPS "
+"Info IFD, like that of Exif IFD, has no image data."
+msgstr ""
+"Pokazivač na GPS Info IFD. Interoperabilna struktura GPS Info IFD-a kao kod "
+"Exif IFD ali ne sadrži podatke slike."
+
+#: libexif/exif-tag.c:503
+msgid "ISO Speed Ratings"
+msgstr "Stopa ISO brzine"
+
+#: libexif/exif-tag.c:504
+msgid ""
+"Indicates the ISO Speed and ISO Latitude of the camera or input device as "
+"specified in ISO 12232."
+msgstr ""
+"Označava ISO brzinu i ISO obim aparata ili ulaznog uređaja kao što je "
+"precizirano u ISO 12232."
+
+#: libexif/exif-tag.c:507
+msgid "Opto-Electronic Conversion Function"
+msgstr ""
+
+#: libexif/exif-tag.c:508
+msgid ""
+"Indicates the Opto-Electronic Conversion Function (OECF) specified in ISO "
+"14524. <OECF> is the relationship between the camera optical input and the "
+"image values."
+msgstr ""
+
+#: libexif/exif-tag.c:513
+msgid "Time Zone Offset"
+msgstr ""
+
+#: libexif/exif-tag.c:514
+msgid "Encodes time zone of camera clock relative to GMT."
+msgstr ""
+
+#: libexif/exif-tag.c:515
+msgid "Exif Version"
+msgstr "Exif verzija"
+
+#: libexif/exif-tag.c:516
+msgid ""
+"The version of this standard supported. Nonexistence of this field is taken "
+"to mean nonconformance to the standard."
+msgstr ""
+"Verzija ovog standarda je podržana. Nepostojanje ovog polja je odstupanje od "
+"prilagođenosti ovom standardu."
+
+#: libexif/exif-tag.c:520
+#, fuzzy
+msgid "Date and Time (Original)"
+msgstr "Datum i vrijeme (prvobitno)"
+
+#: libexif/exif-tag.c:521
+msgid ""
+"The date and time when the original image data was generated. For a digital "
+"still camera the date and time the picture was taken are recorded."
+msgstr ""
+"Datum i vrijeme pravljenja prvobitne fotografije. Za digitalne aparate pamte "
+"se datum i vrijeme stvaranja slike."
+
+#: libexif/exif-tag.c:526
+#, fuzzy
+msgid "Date and Time (Digitized)"
+msgstr "Dazum i vrijeme (digitilizovano)"
+
+#: libexif/exif-tag.c:527
+msgid "The date and time when the image was stored as digital data."
+msgstr ""
+
+#: libexif/exif-tag.c:530
+msgid "Components Configuration"
+msgstr ""
+
+#: libexif/exif-tag.c:531
+msgid ""
+"Information specific to compressed data. The channels of each component are "
+"arranged in order from the 1st component to the 4th. For uncompressed data "
+"the data arrangement is given in the <PhotometricInterpretation> tag. "
+"However, since <PhotometricInterpretation> can only express the order of Y, "
+"Cb and Cr, this tag is provided for cases when compressed data uses "
+"components other than Y, Cb, and Cr and to enable support of other sequences."
+msgstr ""
+"Informacije specifične za kompresovane podatke. Kanali svake komponente su "
+"uređeni od prve komponente do četvrte. Za nekompresovane podatke, uređivanje "
+"je dato u oznaci <PhotometricInterpretation>. U svakom slučaju, obzirom da "
+"<PhotometricInterpretation> može jednino da izrazi redoslijed Y, Cb i Cr, "
+"ova oznaka je obezbeđena kada kompresovani podaci koriste komponente "
+"drugacije od Y, Cb, i Cr i da bi se obezbijedila podrška za druge sekvence."
+
+#: libexif/exif-tag.c:541
+msgid "Compressed Bits per Pixel"
+msgstr "Sažeti biti po pikselu"
+
+#: libexif/exif-tag.c:542
+msgid ""
+"Information specific to compressed data. The compression mode used for a "
+"compressed image is indicated in unit bits per pixel."
+msgstr ""
+"Informacije vezane za sažete podatke. Mod za sažimanje koji se koristi za "
+"sažimanje slika se mjeri u jedinici bitovi po pikselu."
+
+#: libexif/exif-tag.c:546 libexif/olympus/mnote-olympus-tag.c:123
+msgid "Shutter Speed"
+msgstr ""
+
+#: libexif/exif-tag.c:547
+msgid ""
+"Shutter speed. The unit is the APEX (Additive System of Photographic "
+"Exposure) setting."
+msgstr ""
+"Brzina zatvarača. Jedinica je u  APEX (Additive System of Photographic "
+"Exposure) podešavanju."
+
+#: libexif/exif-tag.c:551
+msgid "The lens aperture. The unit is the APEX value."
+msgstr "Otvor sočiva. Jedinica je u APEX vrijednosti."
+
+#: libexif/exif-tag.c:553
+msgid "Brightness"
+msgstr "Svjetlina"
+
+#: libexif/exif-tag.c:554
+msgid ""
+"The value of brightness. The unit is the APEX value. Ordinarily it is given "
+"in the range of -99.99 to 99.99."
+msgstr ""
+"Vrijednost svjetline. Jedinica je vrijednost APEX-a. Obično je u opsegu -"
+"99.99 to 99.99."
+
+#: libexif/exif-tag.c:558
+msgid "Exposure Bias"
+msgstr "Osvjetljenje kosine"
+
+#: libexif/exif-tag.c:559
+msgid ""
+"The exposure bias. The units is the APEX value. Ordinarily it is given in "
+"the range of -99.99 to 99.99."
+msgstr ""
+"Pretpostavka osvjetljenja. Jedinica je vrijednost APEX-a. Obično je u opsegu "
+"-99.99 to 99.99."
+
+#: libexif/exif-tag.c:562
+msgid "Maximum Aperture Value"
+msgstr ""
+
+#: libexif/exif-tag.c:563
+msgid ""
+"The smallest F number of the lens. The unit is the APEX value. Ordinarily it "
+"is given in the range of 00.00 to 99.99, but it is not limited to this range."
+msgstr ""
+"Najmanji broj F sočiva. Jedinica je vrijednost APEX-a. Obično je u opsegu "
+"00.00 to 99.99, ali nije ograničena u ovom opsegu."
+
+#: libexif/exif-tag.c:568
+msgid "Subject Distance"
+msgstr "Udaljenost subjekta"
+
+#: libexif/exif-tag.c:569
+msgid "The distance to the subject, given in meters."
+msgstr "Udaljenost subjekta u metrima."
+
+#: libexif/exif-tag.c:572
+msgid "The metering mode."
+msgstr "Mod za mjerenje."
+
+#: libexif/exif-tag.c:574
+msgid "Light Source"
+msgstr "Izvor svjetla"
+
+#: libexif/exif-tag.c:575
+msgid "The kind of light source."
+msgstr "Vrsta izvora"
+
+#: libexif/exif-tag.c:578
+msgid ""
+"This tag is recorded when an image is taken using a strobe light (flash)."
+msgstr ""
+"Ova etiketa se popuni kada se fotografiše uz pomoć elektronskog blica "
+"(stroba)."
+
+#: libexif/exif-tag.c:582
+msgid ""
+"The actual focal length of the lens, in mm. Conversion is not made to the "
+"focal length of a 35 mm film camera."
+msgstr ""
+"Stvarna žižna daljina sočiva u mm. Nema pretvaranja za žižnu daljinu 35 mm "
+"filmske kamere."
+
+#: libexif/exif-tag.c:585
+msgid "Subject Area"
+msgstr "Oblast subjekta"
+
+#: libexif/exif-tag.c:586
+msgid ""
+"This tag indicates the location and area of the main subject in the overall "
+"scene."
+msgstr ""
+"Ova etiketa označava položaj i mjesto glavnog subjekta na sveobuhvatnoj "
+"slici."
+
+#: libexif/exif-tag.c:590
+msgid "TIFF/EP Standard ID"
+msgstr "TIFF/EP standardni ID"
+
+#: libexif/exif-tag.c:591
+msgid "Maker Note"
+msgstr "Beleška autora"
+
+#: libexif/exif-tag.c:592
+msgid ""
+"A tag for manufacturers of Exif writers to record any desired information. "
+"The contents are up to the manufacturer."
+msgstr ""
+"Etiketa za prizvođača Exif u kojoj smešta željene informacije. Sadržaj "
+"zavisi od proizvođača."
+
+#: libexif/exif-tag.c:595
+msgid "User Comment"
+msgstr "Beleška korisnika"
+
+#: libexif/exif-tag.c:596
+msgid ""
+"A tag for Exif users to write keywords or comments on the image besides "
+"those in <ImageDescription>, and without the character code limitations of "
+"the <ImageDescription> tag. The character code used in the <UserComment> tag "
+"is identified based on an ID code in a fixed 8-byte area at the start of the "
+"tag data area. The unused portion of the area is padded with NULL (\"00.h"
+"\"). ID codes are assigned by means of registration. The designation method "
+"and references for each character code are defined in the specification. The "
+"value of CountN is determined based on the 8 bytes in the character code "
+"area and the number of bytes in the user comment part. Since the TYPE is not "
+"ASCII, NULL termination is not necessary. The ID code for the <UserComment> "
+"area may be a Defined code such as JIS or ASCII, or may be Undefined. The "
+"Undefined name is UndefinedText, and the ID code is filled with 8 bytes of "
+"all \"NULL\" (\"00.H\"). An Exif reader that reads the <UserComment> tag "
+"must have a function for determining the ID code. This function is not "
+"required in Exif readers that do not use the <UserComment> tag. When a "
+"<UserComment> area is set aside, it is recommended that the ID code be ASCII "
+"and that the following user comment part be filled with blank characters [20."
+"H]."
+msgstr ""
+
+#: libexif/exif-tag.c:619
+msgid "Sub-second Time"
+msgstr ""
+
+#: libexif/exif-tag.c:620
+msgid "A tag used to record fractions of seconds for the <DateTime> tag."
+msgstr "Etiketa koja pamti djeliće sekunde za etiketu <DateTime>."
+
+#: libexif/exif-tag.c:624
+#, fuzzy
+msgid "Sub-second Time (Original)"
+msgstr "Datum i vrijeme (prvobitno)"
+
+#: libexif/exif-tag.c:625
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeOriginal> tag."
+msgstr "Etiketa koja pamti djeliće sekunde za etiketu <DateTimeOriginal>."
+
+#: libexif/exif-tag.c:629
+#, fuzzy
+msgid "Sub-second Time (Digitized)"
+msgstr "Dazum i vrijeme (digitilizovano)"
+
+#: libexif/exif-tag.c:630
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeDigitized> tag."
+msgstr "Etiketa koja pamti djeliće sekunde za etiketu <DateTimeDigitized>."
+
+#: libexif/exif-tag.c:634
+msgid "XP Title"
+msgstr "XP naslov"
+
+#: libexif/exif-tag.c:635
+msgid "A character string giving the title of the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:639
+msgid "XP Comment"
+msgstr "XP primjedba"
+
+#: libexif/exif-tag.c:640
+msgid ""
+"A character string containing a comment about the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:644
+msgid "XP Author"
+msgstr "XP autor"
+
+#: libexif/exif-tag.c:645
+msgid ""
+"A character string containing the name of the image creator, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:649
+msgid "XP Keywords"
+msgstr "XP ključne riječi"
+
+#: libexif/exif-tag.c:650
+msgid ""
+"A character string containing key words describing the image, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:654
+msgid "XP Subject"
+msgstr "XP subjekat"
+
+#: libexif/exif-tag.c:655
+msgid "A character string giving the image subject, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:659
+msgid "The FlashPix format version supported by a FPXR file."
+msgstr "Format FlashPix verzije podržan od FPXR datoteke."
+
+#: libexif/exif-tag.c:661 libexif/pentax/mnote-pentax-tag.c:102
+msgid "Color Space"
+msgstr "Paleta boja"
+
+#: libexif/exif-tag.c:662
+msgid ""
+"The color space information tag is always recorded as the color space "
+"specifier. Normally sRGB (=1) is used to define the color space based on the "
+"PC monitor conditions and environment. If a color space other than sRGB is "
+"used, Uncalibrated (=FFFF.H) is set. Image data recorded as Uncalibrated can "
+"be treated as sRGB when it is converted to FlashPix."
+msgstr ""
+"Oznaka informacije palete boja je uvijek sačuvana kao navodnik palete boja. "
+"Normalno se sRGB (=1) koristi da definiše paletu boja zasnovanu na stanju i "
+"okruženju „PC“ računara. Ako se koristi paleta boja drugačija od sRGB, "
+"postavlja se Uncalibrated (=FFFF.H) - nekalibrisan. Podaci slike sačuvane "
+"kao Uncalibrated mogu se tretirati kao sRGB kada se konvertuju u FlashPix."
+
+#: libexif/exif-tag.c:670
+msgid "Pixel X Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:671
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid width of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file."
+msgstr ""
+"Informacije specifične za kompresovane podatke. Kada se zapisuje "
+"kompresovani fajl, ispravna širina smislene slike mora biti zapisana u ovoj "
+"oznaci, bez obzira na to da li postoje poravnjavajući podaci ili marker "
+"restarta. Ova oznaka ne bi trebalo da se nalazi u nekompresovanom fajlu."
+
+#: libexif/exif-tag.c:677
+msgid "Pixel Y Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:678
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid height of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file. Since data padding is unnecessary in the "
+"vertical direction, the number of lines recorded in this valid image height "
+"tag will in fact be the same as that recorded in the SOF."
+msgstr ""
+
+#: libexif/exif-tag.c:688
+msgid "Related Sound File"
+msgstr ""
+
+#: libexif/exif-tag.c:689
+msgid ""
+"This tag is used to record the name of an audio file related to the image "
+"data. The only relational information recorded here is the Exif audio file "
+"name and extension (an ASCII string consisting of 8 characters + '.' + 3 "
+"characters). The path is not recorded. Stipulations on audio and file naming "
+"conventions are defined in the specification. When using this tag, audio "
+"files must be recorded in conformance to the Exif audio format. Writers are "
+"also allowed to store the data such as Audio within APP2 as FlashPix "
+"extension stream data. The mapping of Exif image files and audio files is "
+"done in any of three ways, [1], [2] and [3]. If multiple files are mapped to "
+"one file as in [2] or [3], the above format is used to record just one audio "
+"file name. If there are multiple audio files, the first recorded file is "
+"given. In the case of [3], for example, for the Exif image file \"DSC00001."
+"JPG\" only  \"SND00001.WAV\" is given as the related Exif audio file. When "
+"there are three Exif audio files \"SND00001.WAV\", \"SND00002.WAV\" and "
+"\"SND00003.WAV\", the Exif image file name for each of them, \"DSC00001.JPG"
+"\", is indicated. By combining multiple relational information, a variety of "
+"playback possibilities can be supported. The method of using relational "
+"information is left to the implementation on the playback side. Since this "
+"information is an ASCII character string, it is terminated by NULL. When "
+"this tag is used to map audio files, the relation of the audio file to image "
+"data must also be indicated on the audio file end."
+msgstr ""
+
+#: libexif/exif-tag.c:719
+msgid "Interoperability IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:720
+msgid ""
+"Interoperability IFD is composed of tags which stores the information to "
+"ensure the Interoperability and pointed by the following tag located in Exif "
+"IFD. The Interoperability structure of Interoperability IFD is the same as "
+"TIFF defined IFD structure but does not contain the image data "
+"characteristically compared with normal TIFF IFD."
+msgstr ""
+
+#: libexif/exif-tag.c:729
+msgid "Flash Energy"
+msgstr "Stanje energije blica"
+
+#: libexif/exif-tag.c:730
+msgid ""
+"Indicates the strobe energy at the time the image is captured, as measured "
+"in Beam Candle Power Seconds (BCPS)."
+msgstr ""
+"Označava vrijednost stroba (blica) kada je slika napravljena i mjeri se Beam "
+"Candle Power Seconds (BCPS)."
+
+#: libexif/exif-tag.c:734
+msgid "Spatial Frequency Response"
+msgstr "Prostorni odgovor učestanosti"
+
+#: libexif/exif-tag.c:735
+msgid ""
+"This tag records the camera or input device spatial frequency table and SFR "
+"values in the direction of image width, image height, and diagonal "
+"direction, as specified in ISO 12233."
+msgstr ""
+
+#: libexif/exif-tag.c:741
+#, fuzzy
+msgid "Focal Plane X-Resolution"
+msgstr "Žižna daljina prosta  y-rezolucija"
+
+#: libexif/exif-tag.c:742
+msgid ""
+"Indicates the number of pixels in the image width (X) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+"Indicates the number of pixels in the image width (X) direction pir "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+
+#: libexif/exif-tag.c:746
+#, fuzzy
+msgid "Focal Plane Y-Resolution"
+msgstr "Žižna daljina prosta  y-rezolucija"
+
+#: libexif/exif-tag.c:747
+msgid ""
+"Indicates the number of pixels in the image height (V) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+
+#: libexif/exif-tag.c:751
+msgid "Focal Plane Resolution Unit"
+msgstr ""
+
+#: libexif/exif-tag.c:752
+msgid ""
+"Indicates the unit for measuring <FocalPlaneXResolution> and "
+"<FocalPlaneYResolution>. This value is the same as the <ResolutionUnit>."
+msgstr ""
+"Označava jedinicu mjere za <FocalPlaneXResolution> i "
+"<FocalPlaneYResolution>. Ova vrijednost je ista kao kod <ResolutionUnit>."
+
+#: libexif/exif-tag.c:757
+msgid "Subject Location"
+msgstr "Položaj subjekata"
+
+#: libexif/exif-tag.c:758
+msgid ""
+"Indicates the location of the main subject in the scene. The value of this "
+"tag represents the pixel at the center of the main subject relative to the "
+"left edge, prior to rotation processing as per the <Rotation> tag. The first "
+"value indicates the X column number and the second indicates the Y row "
+"number."
+msgstr ""
+"Označava položaj glavnog subjekta u prizoru. Vrijednost etikete predstavlja "
+"piksel na sredini od glavnog subjekta relativno od lijeve ivice, prije "
+"procesa okretanja u etiketi 'Okretanje'. Prva vrijednost označava broj X "
+"kolone, a druga   Y"
+
+#: libexif/exif-tag.c:765
+msgid "Exposure Index"
+msgstr ""
+
+#: libexif/exif-tag.c:766
+msgid ""
+"Indicates the exposure index selected on the camera or input device at the "
+"time the image is captured."
+msgstr ""
+"Označava vrijednost osvjetljenja na aparatu ili ulaznom uređaju kada je "
+"uslikano."
+
+#: libexif/exif-tag.c:769
+msgid "Sensing Method"
+msgstr "Sensing Method"
+
+#: libexif/exif-tag.c:770
+msgid "Indicates the image sensor type on the camera or input device."
+msgstr "Označava tip senzora na aparatu ili ulaznom uređaju."
+
+#: libexif/exif-tag.c:773 libexif/fuji/mnote-fuji-tag.c:64
+msgid "File Source"
+msgstr "Izvor datoteke"
+
+#: libexif/exif-tag.c:774
+msgid ""
+"Indicates the image source. If a DSC recorded the image, the tag value of "
+"this tag always be set to 3, indicating that the image was recorded on a DSC."
+msgstr ""
+"Označava izvor fotografije. Ako je DSC uslikao fotografiju, vrijednost "
+"etikete mora uvijek biti 3, označavajući da je fotografija uslikana na DSC."
+
+#: libexif/exif-tag.c:778
+msgid "Scene Type"
+msgstr "Vrsta prizora"
+
+#: libexif/exif-tag.c:779
+msgid ""
+"Indicates the type of scene. If a DSC recorded the image, this tag value "
+"must always be set to 1, indicating that the image was directly photographed."
+msgstr ""
+"Označava vrstu prizora. Ako je DSC uslikao fotografiju, vrijednost etikete "
+"mora uvijek biti 1, označavajući da je fotografija neposredno uslikana."
+
+#: libexif/exif-tag.c:789
+msgid "Custom Rendered"
+msgstr "Prilagođeno renderovanje"
+
+#: libexif/exif-tag.c:790
+msgid ""
+"This tag indicates the use of special processing on image data, such as "
+"rendering geared to output. When special processing is performed, the reader "
+"is expected to disable or minimize any further processing."
+msgstr ""
+
+#: libexif/exif-tag.c:796
+msgid ""
+"This tag indicates the exposure mode set when the image was shot. In auto-"
+"bracketing mode, the camera shoots a series of frames of the same scene at "
+"different exposure settings."
+msgstr ""
+
+#: libexif/exif-tag.c:801
+msgid "This tag indicates the white balance mode set when the image was shot."
+msgstr "Ova etiketa označava vrijednost moda ravnoteže bele kada je uslikano."
+
+#: libexif/exif-tag.c:805
+msgid "Digital Zoom Ratio"
+msgstr "Odnos digitalno uvećanja"
+
+#: libexif/exif-tag.c:806
+msgid ""
+"This tag indicates the digital zoom ratio when the image was shot. If the "
+"numerator of the recorded value is 0, this indicates that digital zoom was "
+"not used."
+msgstr ""
+"Ova etiketa označava vrijednost digitalnog uvećanja kada je slikano. "
+"Vrijednost 0 označava da digitalno uvećanje nije korišćeno."
+
+#: libexif/exif-tag.c:811
+#, fuzzy
+msgid "Focal Length in 35mm Film"
+msgstr "Žižna daljina na 35mm filmu"
+
+#: libexif/exif-tag.c:812
+msgid ""
+"This tag indicates the equivalent focal length assuming a 35mm film camera, "
+"in mm. A value of 0 means the focal length is unknown. Note that this tag "
+"differs from the FocalLength tag."
+msgstr ""
+
+#: libexif/exif-tag.c:818
+msgid "Scene Capture Type"
+msgstr "Tip uslikane fotografije"
+
+#: libexif/exif-tag.c:819
+msgid ""
+"This tag indicates the type of scene that was shot. It can also be used to "
+"record the mode in which the image was shot. Note that this differs from the "
+"scene type <SceneType> tag."
+msgstr ""
+"Ova etiketa označava vrstu prizora koja je uslikana. Može se koristiti da "
+"zapamti mod u kojem je slikano. Primijetite da se razlikuje od etikete tipa "
+"slike <SceneType>."
+
+#: libexif/exif-tag.c:824
+msgid "Gain Control"
+msgstr "Zadobij kontrolu"
+
+#: libexif/exif-tag.c:825
+msgid "This tag indicates the degree of overall image gain adjustment."
+msgstr "This tag indicates the degree of overall image gain adjustment."
+
+#: libexif/exif-tag.c:829
+msgid ""
+"This tag indicates the direction of contrast processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Etiketa označava smjer obrade kontrasta koji je aparat primijenio kada je "
+"uslikao."
+
+#: libexif/exif-tag.c:833
+msgid ""
+"This tag indicates the direction of saturation processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Etiketa označava smjer obrade zasićenja koji je aparat primijenio kada je "
+"uslikao."
+
+#: libexif/exif-tag.c:837
+msgid ""
+"This tag indicates the direction of sharpness processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Etiketa označava smjer obrade oštrine koja je aparat primijenio kada je "
+"uslikao."
+
+#: libexif/exif-tag.c:841
+msgid "Device Setting Description"
+msgstr "Djevice Setting Description"
+
+#: libexif/exif-tag.c:842
+msgid ""
+"This tag indicates information on the picture-taking conditions of a "
+"particular camera model. The tag is used only to indicate the picture-taking "
+"conditions in the reader."
+msgstr ""
+"Etiketa označava uslove slikanja tog specifičnog foto-aparata. The tag is "
+"used only to indicate the picture-taking conditions in the reader."
+
+#: libexif/exif-tag.c:848
+msgid "Subject Distance Range"
+msgstr "Opseg udaljenosti subjekta"
+
+#: libexif/exif-tag.c:849
+msgid "This tag indicates the distance to the subject."
+msgstr "Ova etiketa označava udaljenost subjekta."
+
+#: libexif/exif-tag.c:851
+msgid "Image Unique ID"
+msgstr "Jedinstveni ID slike"
+
+#: libexif/exif-tag.c:852
+msgid ""
+"This tag indicates an identifier assigned uniquely to each image. It is "
+"recorded as an ASCII string equivalent to hexadecimal notation and 128-bit "
+"fixed length."
+msgstr ""
+"Etiketa jedinstveno obilježava svaku fotografiju. Pamti se kao ASCII string "
+"koji je jednak heksadecimalnoj bilježenju i stalne je dužine od 128 bitova."
+
+#: libexif/exif-tag.c:857
+msgid "Gamma"
+msgstr "Gama"
+
+#: libexif/exif-tag.c:858
+msgid "Indicates the value of coefficient gamma."
+msgstr "Pokazuje vrijednost koeficijenta game."
+
+#: libexif/exif-tag.c:860
+msgid "PRINT Image Matching"
+msgstr ""
+
+#: libexif/exif-tag.c:861
+msgid "Related to Epson's PRINT Image Matching technology"
+msgstr ""
+
+#: libexif/exif-tag.c:863
+msgid "Padding"
+msgstr ""
+
+#: libexif/exif-tag.c:864
+msgid ""
+"This tag reserves space that can be reclaimed later when additional metadata "
+"are added. New metadata can be written in place by replacing this tag with a "
+"smaller data element and using the reclaimed space to store the new or "
+"expanded metadata tags."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:62
+msgid "Softest"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:66
+msgid "Hardest"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:67 libexif/fuji/mnote-fuji-entry.c:96
+msgid "Medium soft"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:68 libexif/fuji/mnote-fuji-entry.c:94
+msgid "Medium hard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:69 libexif/fuji/mnote-fuji-entry.c:90
+#: libexif/fuji/mnote-fuji-entry.c:98 libexif/fuji/mnote-fuji-entry.c:182
+msgid "Film simulation mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:79
+msgid "Incandescent"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:85
+msgid "Medium high"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:87
+msgid "Medium low"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:88 libexif/fuji/mnote-fuji-entry.c:97
+msgid "Original"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:124 libexif/pentax/mnote-pentax-entry.c:164
+#: libexif/pentax/mnote-pentax-entry.c:299
+msgid "Program AE"
+msgstr "Program AE"
+
+#: libexif/fuji/mnote-fuji-entry.c:125
+msgid "Natural photo"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:126
+msgid "Vibration reduction"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:127
+msgid "Sunset"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:128 libexif/pentax/mnote-pentax-entry.c:181
+msgid "Museum"
+msgstr "Muzej"
+
+#: libexif/fuji/mnote-fuji-entry.c:129
+msgid "Party"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:130
+msgid "Flower"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:131 libexif/pentax/mnote-pentax-entry.c:176
+msgid "Text"
+msgstr "Tekst"
+
+#: libexif/fuji/mnote-fuji-entry.c:132
+msgid "NP & flash"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:137
+msgid "Aperture priority AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:138
+msgid "Shutter priority AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:146
+msgid "F-Standard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:147
+msgid "F-Chrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:148
+msgid "F-B&W"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:151
+msgid "No blur"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:152
+msgid "Blur warning"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:155
+msgid "Focus good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:156
+msgid "Out of focus"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:159
+msgid "AE good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:160
+msgid "Over exposed"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:164
+msgid "Wide"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:167
+msgid "F0/Standard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:168
+msgid "F1/Studio portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:169
+msgid "F1a/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:170
+msgid "F1b/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:171
+msgid "F1c/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:172
+msgid "F2/Fujichrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:173
+msgid "F3/Studio portrait Ex"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:174
+msgid "F4/Velvia"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:177
+msgid "Auto (100-400%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:179
+msgid "Standard (100%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:180
+msgid "Wide1 (230%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:181
+msgid "Wide2 (400%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:263
+#, c-format
+msgid "%2.2f mm"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:298 libexif/pentax/mnote-pentax-entry.c:399
+#: libexif/pentax/mnote-pentax-entry.c:451
+#, c-format
+msgid "%i bytes unknown data"
+msgstr "%i bajtova nepoznatih podataka"
+
+#: libexif/fuji/mnote-fuji-tag.c:36
+msgid "Maker Note Version"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:37
+msgid "This number is unique and based on the date of manufacture."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:41
+msgid "Chromaticity Saturation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:44
+msgid "Flash Firing Strength Compensation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:46
+msgid "Focusing Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:47
+msgid "Focus Point"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:48
+msgid "Slow Synchro Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:49 libexif/pentax/mnote-pentax-tag.c:72
+msgid "Picture Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:50
+msgid "Continuous Taking"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:51
+msgid "Continuous Sequence Number"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:52
+msgid "FinePix Color"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:53
+msgid "Blur Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:54
+msgid "Auto Focus Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:55
+msgid "Auto Exposure Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:56
+msgid "Dynamic Range"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:57
+msgid "Film Simulation Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:58
+msgid "Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:59
+msgid "Development Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:60
+msgid "Minimum Focal Length"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:61
+msgid "Maximum Focal Length"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:62
+msgid "Maximum Aperture at Minimum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:63
+msgid "Maximum Aperture at Maximum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:65
+msgid "Order Number"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:66 libexif/pentax/mnote-pentax-tag.c:98
+msgid "Frame Number"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:49
+#, c-format
+msgid "Invalid format '%s', expected '%s' or '%s'."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:89
+#, fuzzy
+msgid "AF non D lens"
+msgstr "AF ne D sočiva"
+
+#: libexif/olympus/mnote-olympus-entry.c:91
+#, fuzzy
+msgid "AF-D or AF-S lens"
+msgstr "AF-D ili AF-S sočiva"
+
+#: libexif/olympus/mnote-olympus-entry.c:92
+#, fuzzy
+msgid "AF-D G lens"
+msgstr "AF-D G sočiva"
+
+#: libexif/olympus/mnote-olympus-entry.c:93
+#, fuzzy
+msgid "AF-D VR lens"
+msgstr "AF-D VR sočiva"
+
+#: libexif/olympus/mnote-olympus-entry.c:94
+#, fuzzy
+msgid "AF-D G VR lens"
+msgstr "AF-D VR sočiva"
+
+#: libexif/olympus/mnote-olympus-entry.c:98
+msgid "Flash unit unknown"
+msgstr "Nepoznat blic"
+
+#: libexif/olympus/mnote-olympus-entry.c:99
+msgid "Flash is external"
+msgstr "Blic je spoljašnji"
+
+#: libexif/olympus/mnote-olympus-entry.c:100
+#, fuzzy
+msgid "Flash is on camera"
+msgstr "Uključen je blic na aparatu"
+
+#: libexif/olympus/mnote-olympus-entry.c:103
+#, fuzzy
+msgid "VGA basic"
+msgstr "VGA osnovno"
+
+#: libexif/olympus/mnote-olympus-entry.c:104
+#, fuzzy
+msgid "VGA normal"
+msgstr "VGA normalno"
+
+#: libexif/olympus/mnote-olympus-entry.c:105
+#, fuzzy
+msgid "VGA fine"
+msgstr "VGA odlično"
+
+#: libexif/olympus/mnote-olympus-entry.c:106
+#, fuzzy
+msgid "SXGA basic"
+msgstr "SXGA osnovno"
+
+#: libexif/olympus/mnote-olympus-entry.c:107
+#, fuzzy
+msgid "SXGA normal"
+msgstr "SXGA normalno"
+
+#: libexif/olympus/mnote-olympus-entry.c:108
+#, fuzzy
+msgid "SXGA fine"
+msgstr "SXGA odlično"
+
+#: libexif/olympus/mnote-olympus-entry.c:109
+#, fuzzy
+msgid "2 Mpixel basic"
+msgstr "2 MPixel osnovno"
+
+#: libexif/olympus/mnote-olympus-entry.c:110
+#, fuzzy
+msgid "2 Mpixel normal"
+msgstr "2 MPixel normalno"
+
+#: libexif/olympus/mnote-olympus-entry.c:111
+#, fuzzy
+msgid "2 Mpixel fine"
+msgstr "2 MPixel odlično"
+
+#: libexif/olympus/mnote-olympus-entry.c:114
+msgid "Color"
+msgstr "Boja"
+
+#: libexif/olympus/mnote-olympus-entry.c:119
+msgid "Bright+"
+msgstr "Svetlo+"
+
+#: libexif/olympus/mnote-olympus-entry.c:120
+msgid "Bright-"
+msgstr "Svetlo-"
+
+#: libexif/olympus/mnote-olympus-entry.c:121
+msgid "Contrast+"
+msgstr "Kontrast+"
+
+#: libexif/olympus/mnote-olympus-entry.c:122
+msgid "Contrast-"
+msgstr "Kontrast-"
+
+#: libexif/olympus/mnote-olympus-entry.c:125
+msgid "ISO 80"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:126
+msgid "ISO 160"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:127
+msgid "ISO 320"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:128
+#: libexif/olympus/mnote-olympus-entry.c:246
+msgid "ISO 100"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:132
+msgid "Preset"
+msgstr "Prepodešeno"
+
+#: libexif/olympus/mnote-olympus-entry.c:134
+msgid "Incandescence"
+msgstr "Usijanost"
+
+#: libexif/olympus/mnote-olympus-entry.c:135
+msgid "Fluorescence"
+msgstr "Fluroscentno"
+
+#: libexif/olympus/mnote-olympus-entry.c:137
+msgid "SpeedLight"
+msgstr "Brzina svjetlosti"
+
+#: libexif/olympus/mnote-olympus-entry.c:140
+#, fuzzy
+msgid "No fisheye"
+msgstr "Bez ribljeg oka"
+
+#: libexif/olympus/mnote-olympus-entry.c:141
+#, fuzzy
+msgid "Fisheye on"
+msgstr "Riblje oko uključeno"
+
+#: libexif/olympus/mnote-olympus-entry.c:144
+msgid "Normal, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:145
+msgid "Normal, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:146
+msgid "Normal, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:147
+msgid "Normal, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:148
+msgid "Normal, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:149
+msgid "Normal, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:150
+msgid "Normal, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:151
+msgid "Normal, standard"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:152
+msgid "Fine, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:153
+msgid "Fine, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:154
+msgid "Fine, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:155
+msgid "Fine, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:156
+msgid "Fine, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:157
+msgid "Fine, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:158
+msgid "Fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:159
+msgid "Super fine, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:160
+msgid "Super fine, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:161
+msgid "Super fine, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:162
+msgid "Super fine, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:163
+msgid "Super fine, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:164
+msgid "Super fine, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:165
+msgid "Super fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:166
+msgid "Super fine, high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:169
+#: libexif/olympus/mnote-olympus-entry.c:174
+#: libexif/olympus/mnote-olympus-entry.c:208
+#: libexif/olympus/mnote-olympus-entry.c:217
+#: libexif/olympus/mnote-olympus-entry.c:240
+msgid "No"
+msgstr "Ne"
+
+#: libexif/olympus/mnote-olympus-entry.c:180
+msgid "On (Preset)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:185
+msgid "Fill"
+msgstr "Popuni"
+
+#: libexif/olympus/mnote-olympus-entry.c:192
+#, fuzzy
+msgid "Internal + external"
+msgstr "Blic je spoljašnji"
+
+#: libexif/olympus/mnote-olympus-entry.c:221
+msgid "Interlaced"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:222
+msgid "Progressive"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:228
+#: libexif/pentax/mnote-pentax-entry.c:85
+#: libexif/pentax/mnote-pentax-entry.c:139
+msgid "Best"
+msgstr "Najbolje"
+
+#: libexif/olympus/mnote-olympus-entry.c:229
+#, fuzzy
+msgid "Adjust exposure"
+msgstr "Automatsko osvjetljenje"
+
+#: libexif/olympus/mnote-olympus-entry.c:232
+#, fuzzy
+msgid "Spot focus"
+msgstr "Pan žiža"
+
+#: libexif/olympus/mnote-olympus-entry.c:233
+#, fuzzy
+msgid "Normal focus"
+msgstr "Normalni postupak"
+
+#: libexif/olympus/mnote-olympus-entry.c:236
+msgid "Record while down"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:237
+msgid "Press start, press stop"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:245
+msgid "ISO 50"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:247
+msgid "ISO 200"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:248
+msgid "ISO 400"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:252
+#: libexif/pentax/mnote-pentax-entry.c:168
+msgid "Sport"
+msgstr "Sport"
+
+#: libexif/olympus/mnote-olympus-entry.c:253
+msgid "TV"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:255
+msgid "User 1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:256
+msgid "User 2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:257
+msgid "Lamp"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:260
+msgid "5 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:261
+msgid "10 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:262
+msgid "15 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:263
+msgid "20 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:375
+#, fuzzy, c-format
+msgid "Red Correction %f, blue Correction %f"
+msgstr "Ispravka crvene %f, ispravka plave %f"
+
+#: libexif/olympus/mnote-olympus-entry.c:383
+#, c-format
+msgid "%2.2f meters"
+msgstr "%2.2f metara"
+
+#: libexif/olympus/mnote-olympus-entry.c:385
+msgid "No manual focus selection"
+msgstr "Nije izabrano ručno podešavanje žiže"
+
+#: libexif/olympus/mnote-olympus-entry.c:411
+#, fuzzy
+msgid "AF position: center"
+msgstr "AF položaj: središte"
+
+#: libexif/olympus/mnote-olympus-entry.c:412
+#, fuzzy
+msgid "AF position: top"
+msgstr "AF položaj: gore"
+
+#: libexif/olympus/mnote-olympus-entry.c:413
+#, fuzzy
+msgid "AF position: bottom"
+msgstr "AF položaj: dolje"
+
+#: libexif/olympus/mnote-olympus-entry.c:414
+#, fuzzy
+msgid "AF position: left"
+msgstr "AF položaj: lijevo"
+
+#: libexif/olympus/mnote-olympus-entry.c:415
+#, fuzzy
+msgid "AF position: right"
+msgstr "AF položaj: desno"
+
+#: libexif/olympus/mnote-olympus-entry.c:416
+#, fuzzy
+msgid "AF position: upper-left"
+msgstr "AF položaj: gore lijevo"
+
+#: libexif/olympus/mnote-olympus-entry.c:417
+#, fuzzy
+msgid "AF position: upper-right"
+msgstr "AF položaj: gore desno"
+
+#: libexif/olympus/mnote-olympus-entry.c:418
+#, fuzzy
+msgid "AF position: lower-left"
+msgstr "AF položaj: donje lijevo"
+
+#: libexif/olympus/mnote-olympus-entry.c:419
+#, fuzzy
+msgid "AF position: lower-right"
+msgstr "AF položaj: Donje desno"
+
+#: libexif/olympus/mnote-olympus-entry.c:420
+#, fuzzy
+msgid "AF position: far left"
+msgstr "AF položaj: Skroz lijevo"
+
+#: libexif/olympus/mnote-olympus-entry.c:421
+#, fuzzy
+msgid "AF position: far right"
+msgstr "AF položaj: Skroz desno"
+
+#: libexif/olympus/mnote-olympus-entry.c:422
+#, fuzzy
+msgid "Unknown AF position"
+msgstr "Nepoznat položaj AF"
+
+#: libexif/olympus/mnote-olympus-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:503
+#, c-format
+msgid "Internal error (unknown value %hi)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:441
+#: libexif/olympus/mnote-olympus-entry.c:511
+#, c-format
+msgid "Unknown value %hi"
+msgstr "Nepoznata vrijednost %hi"
+
+#: libexif/olympus/mnote-olympus-entry.c:536
+#: libexif/olympus/mnote-olympus-entry.c:556
+#, c-format
+msgid "Unknown %hu"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:553
+msgid "2 sec."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:592
+#, fuzzy
+msgid "Fast"
+msgstr "brzo"
+
+#: libexif/olympus/mnote-olympus-entry.c:696
+msgid "Automatic"
+msgstr "Automatsko"
+
+#: libexif/olympus/mnote-olympus-entry.c:726
+#, c-format
+msgid "Manual: %liK"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:729
+#, fuzzy
+msgid "Manual: unknown"
+msgstr "Ručno: nepoznato"
+
+#: libexif/olympus/mnote-olympus-entry.c:735
+msgid "One-touch"
+msgstr "Jedan dodir"
+
+#: libexif/olympus/mnote-olympus-entry.c:791
+#: libexif/olympus/mnote-olympus-entry.c:801
+msgid "Infinite"
+msgstr "beskonačno"
+
+#: libexif/olympus/mnote-olympus-entry.c:809
+#, c-format
+msgid "%i bytes unknown data: "
+msgstr "%i bajtova nepoznatih podataka: "
+
+#: libexif/olympus/mnote-olympus-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:53
+msgid "ISO Setting"
+msgstr "Podešavanje ISO"
+
+#: libexif/olympus/mnote-olympus-tag.c:39
+msgid "Color Mode (?)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:42
+msgid "Image Sharpening"
+msgstr "Izoštravanje slike"
+
+#: libexif/olympus/mnote-olympus-tag.c:44
+msgid "Flash Setting"
+msgstr "Podešavanje blica"
+
+#: libexif/olympus/mnote-olympus-tag.c:46
+msgid "White Balance Fine Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:47
+msgid "White Balance RB"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:49
+msgid "ISO Selection"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Preview Image IFD"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Offset of the preview image directory (IFD) inside the file."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:51
+msgid "Exposurediff ?"
+msgstr "Exposurediff ?"
+
+#: libexif/olympus/mnote-olympus-tag.c:54
+msgid "Image Boundary"
+msgstr "Granice slike"
+
+#: libexif/olympus/mnote-olympus-tag.c:56
+msgid "Flash Exposure Bracket Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:57
+msgid "Exposure Bracket Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:58
+#: libexif/olympus/mnote-olympus-tag.c:96
+msgid "Image Adjustment"
+msgstr "Podešavanje slike"
+
+#: libexif/olympus/mnote-olympus-tag.c:59
+msgid "Tone Compensation"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:60
+msgid "Adapter"
+msgstr "Ispravljač"
+
+#: libexif/olympus/mnote-olympus-tag.c:62
+msgid "Lens"
+msgstr "Sočiva"
+
+#: libexif/olympus/mnote-olympus-tag.c:63
+#: libexif/olympus/mnote-olympus-tag.c:135
+#: libexif/olympus/mnote-olympus-tag.c:185
+msgid "Manual Focus Distance"
+msgstr "Udaljenost ručne žiže"
+
+#: libexif/olympus/mnote-olympus-tag.c:65
+msgid "Flash Used"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:66
+msgid "AF Focus Position"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:67
+msgid "Bracketing"
+msgstr "Podupiranje"
+
+#: libexif/olympus/mnote-olympus-tag.c:69
+msgid "Lens F Stops"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:70
+msgid "Contrast Curve"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:71
+#: libexif/olympus/mnote-olympus-tag.c:95
+#: libexif/pentax/mnote-pentax-tag.c:134
+msgid "Color Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:72
+msgid "Light Type"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:74
+msgid "Hue Adjustment"
+msgstr "Podešanjavanje nijanse"
+
+#: libexif/olympus/mnote-olympus-tag.c:76
+#: libexif/olympus/mnote-olympus-tag.c:163
+#: libexif/pentax/mnote-pentax-tag.c:108
+msgid "Noise Reduction"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:79
+msgid "Sensor Pixel Size"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+#, fuzzy
+msgid "Image Data Size"
+msgstr "Veličina slike"
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Size of compressed image data in bytes."
+msgstr "Veličina podataka sažetih slika u bajtovima."
+
+#: libexif/olympus/mnote-olympus-tag.c:84
+msgid "Total Number of Pictures Taken"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:86
+msgid "Optimize Image"
+msgstr "Optimizovati sliku"
+
+#: libexif/olympus/mnote-olympus-tag.c:88
+msgid "Vari Program"
+msgstr "Vari program"
+
+#: libexif/olympus/mnote-olympus-tag.c:89
+msgid "Capture Editor Data"
+msgstr "Capture Editor podaci"
+
+#: libexif/olympus/mnote-olympus-tag.c:90
+msgid "Capture Editor Version"
+msgstr "Capture Editor verzija"
+
+#: libexif/olympus/mnote-olympus-tag.c:97
+#: libexif/olympus/mnote-olympus-tag.c:183
+msgid "CCD Sensitivity"
+msgstr "CCD osjetljivost"
+
+#: libexif/olympus/mnote-olympus-tag.c:99
+msgid "Focus"
+msgstr "Žiža"
+
+#: libexif/olympus/mnote-olympus-tag.c:102
+msgid "Converter"
+msgstr "Pretvarač"
+
+#: libexif/olympus/mnote-olympus-tag.c:105
+msgid "Thumbnail Image"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:106
+msgid "Speed/Sequence/Panorama Direction"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:109
+#, fuzzy
+msgid "Black & White Mode"
+msgstr "Crno - bijelo"
+
+#: libexif/olympus/mnote-olympus-tag.c:111
+msgid "Focal Plane Diagonal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:112
+msgid "Lens Distortion Parameters"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:114
+msgid "Info"
+msgstr "Informacije"
+
+#: libexif/olympus/mnote-olympus-tag.c:115
+msgid "Camera ID"
+msgstr "ID foto-aparata"
+
+#: libexif/olympus/mnote-olympus-tag.c:116
+msgid "Precapture Frames"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:117
+msgid "White Board"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:118
+msgid "One Touch White Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:119
+msgid "White Balance Bracket"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:120
+#: libexif/pentax/mnote-pentax-tag.c:123
+msgid "White Balance Bias"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:121
+msgid "Data Dump"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:124
+msgid "ISO Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:125
+msgid "Aperture Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:126
+msgid "Brightness Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:128
+msgid "Flash Device"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:130
+msgid "Sensor Temperature"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:131
+msgid "Lens Temperature"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:132
+msgid "Light Condition"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:136
+msgid "Zoom Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:137
+msgid "Focus Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:138
+msgid "Sharpness Setting"
+msgstr "Podešavanje oštrine"
+
+#: libexif/olympus/mnote-olympus-tag.c:139
+msgid "Flash Charge Level"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:140
+msgid "Color Matrix"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:141
+msgid "Black Level"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:142
+msgid "White Balance Setting"
+msgstr "Podešavanje ravnoteže bele"
+
+#: libexif/olympus/mnote-olympus-tag.c:143
+#: libexif/pentax/mnote-pentax-tag.c:87
+msgid "Red Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:144
+#: libexif/pentax/mnote-pentax-tag.c:86
+msgid "Blue Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:145
+msgid "Color Matrix Number"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:147
+msgid "Flash Exposure Comp"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:148
+msgid "Internal Flash Table"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:149
+msgid "External Flash G Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:150
+msgid "External Flash Bounce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:151
+msgid "External Flash Zoom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:152
+msgid "External Flash Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:153
+msgid "Contrast Setting"
+msgstr "Podešavanje kontrasta"
+
+#: libexif/olympus/mnote-olympus-tag.c:154
+msgid "Sharpness Factor"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:155
+msgid "Color Control"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:156
+msgid "Olympus Image Width"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:157
+msgid "Olympus Image Height"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:158
+msgid "Scene Detect"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:159
+msgid "Compression Ratio"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:160
+msgid "Preview Image Valid"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:161
+msgid "AF Result"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:162
+msgid "CCD Scan Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:164
+msgid "Infinity Lens Step"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:165
+msgid "Near Lens Step"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:166
+msgid "Light Value Center"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:167
+msgid "Light Value Periphery"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:170
+msgid "Sequential Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:171
+msgid "Wide Range"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:172
+msgid "Color Adjustment Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:174
+msgid "Quick Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:176
+msgid "Voice Memo"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:177
+msgid "Record Shutter Release"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:178
+msgid "Flicker Reduce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:179
+msgid "Optical Zoom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:181
+msgid "Light Source Special"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:182
+msgid "Resaved"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:184
+msgid "Scene Select"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:186
+msgid "Sequence Shot Interval"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:189
+msgid "Epson Image Width"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:190
+msgid "Epson Image Height"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:191
+msgid "Epson Software Version"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:80
+#: libexif/pentax/mnote-pentax-entry.c:134
+msgid "Multi-exposure"
+msgstr "Višestruko osvjetljenje"
+
+#: libexif/pentax/mnote-pentax-entry.c:83
+#: libexif/pentax/mnote-pentax-entry.c:137
+msgid "Good"
+msgstr "Dobro"
+
+#: libexif/pentax/mnote-pentax-entry.c:84
+#: libexif/pentax/mnote-pentax-entry.c:138
+msgid "Better"
+msgstr "Bolje"
+
+#: libexif/pentax/mnote-pentax-entry.c:92
+msgid "Flash on"
+msgstr "Uključen blic"
+
+#: libexif/pentax/mnote-pentax-entry.c:140
+msgid "TIFF"
+msgstr "TIFF"
+
+#: libexif/pentax/mnote-pentax-entry.c:150
+msgid "2560x1920 or 2304x1728"
+msgstr "2560x1920 ili 2304x1728"
+
+#: libexif/pentax/mnote-pentax-entry.c:156
+msgid "2304x1728 or 2592x1944"
+msgstr "2304x1728 ili 2592x1944"
+
+#: libexif/pentax/mnote-pentax-entry.c:158
+msgid "2816x2212 or 2816x2112"
+msgstr "2816x2212 ili 2816x2112"
+
+#: libexif/pentax/mnote-pentax-entry.c:171
+#, fuzzy
+msgid "Surf & snow"
+msgstr "Surfovanje ili snijeg"
+
+#: libexif/pentax/mnote-pentax-entry.c:172
+#, fuzzy
+msgid "Sunset or candlelight"
+msgstr "Zalazak sunca ili svjetlost svijeće"
+
+#: libexif/pentax/mnote-pentax-entry.c:173
+msgid "Autumn"
+msgstr "Jesen"
+
+#: libexif/pentax/mnote-pentax-entry.c:178
+#, fuzzy
+msgid "Self portrait"
+msgstr "Auto portret"
+
+#: libexif/pentax/mnote-pentax-entry.c:179
+msgid "Illustrations"
+msgstr "Crteži"
+
+#: libexif/pentax/mnote-pentax-entry.c:180
+#, fuzzy
+msgid "Digital filter"
+msgstr "Digitalni filter"
+
+#: libexif/pentax/mnote-pentax-entry.c:182
+msgid "Food"
+msgstr "Hrana"
+
+#: libexif/pentax/mnote-pentax-entry.c:183
+#, fuzzy
+msgid "Green mode"
+msgstr "Zeleni mod"
+
+#: libexif/pentax/mnote-pentax-entry.c:184
+#, fuzzy
+msgid "Light pet"
+msgstr "Svijetao ljubimac"
+
+#: libexif/pentax/mnote-pentax-entry.c:185
+#, fuzzy
+msgid "Dark pet"
+msgstr "Taman ljubimac"
+
+#: libexif/pentax/mnote-pentax-entry.c:186
+#, fuzzy
+msgid "Medium pet"
+msgstr "Ljubimac srednje veličine"
+
+#: libexif/pentax/mnote-pentax-entry.c:188
+#: libexif/pentax/mnote-pentax-entry.c:296
+msgid "Candlelight"
+msgstr "Svjetlost svijeće"
+
+#: libexif/pentax/mnote-pentax-entry.c:189
+#, fuzzy
+msgid "Natural skin tone"
+msgstr "Prirodna boja kože"
+
+#: libexif/pentax/mnote-pentax-entry.c:190
+#, fuzzy
+msgid "Synchro sound record"
+msgstr "Synchro Sound Record"
+
+#: libexif/pentax/mnote-pentax-entry.c:191
+#, fuzzy
+msgid "Frame composite"
+msgstr "Mješavina okvira"
+
+#: libexif/pentax/mnote-pentax-entry.c:194
+#, fuzzy
+msgid "Auto, did not fire"
+msgstr "Automatski, nije okinuo"
+
+#: libexif/pentax/mnote-pentax-entry.c:196
+#, fuzzy
+msgid "Auto, did not fire, red-eye reduction"
+msgstr "Automatski, nije okinuo, umanjenje crvenih očiju"
+
+#: libexif/pentax/mnote-pentax-entry.c:197
+#, fuzzy
+msgid "Auto, fired"
+msgstr "Automatski, okinuo"
+
+#: libexif/pentax/mnote-pentax-entry.c:199
+#, fuzzy
+msgid "Auto, fired, red-eye reduction"
+msgstr "Automatski, okinuo, umanjenje crvenih očiju"
+
+#: libexif/pentax/mnote-pentax-entry.c:201
+#, fuzzy
+msgid "On, wireless"
+msgstr "Uključeno, bežično"
+
+#: libexif/pentax/mnote-pentax-entry.c:202
+#, fuzzy
+msgid "On, soft"
+msgstr "Uključeno, mekano"
+
+#: libexif/pentax/mnote-pentax-entry.c:203
+#, fuzzy
+msgid "On, slow-sync"
+msgstr "Uključeno, sporo usklađivanje"
+
+#: libexif/pentax/mnote-pentax-entry.c:204
+#, fuzzy
+msgid "On, slow-sync, red-eye reduction"
+msgstr "Uključeno, sporo usklađivanje, uklanjanje crvenih očiju"
+
+#: libexif/pentax/mnote-pentax-entry.c:205
+#, fuzzy
+msgid "On, trailing-curtain sync"
+msgstr "On, Trailing-curtain Sync"
+
+#: libexif/pentax/mnote-pentax-entry.c:213
+msgid "AF-S"
+msgstr "AF-S"
+
+#: libexif/pentax/mnote-pentax-entry.c:214
+msgid "AF-C"
+msgstr "AF-C"
+
+#: libexif/pentax/mnote-pentax-entry.c:217
+msgid "Upper-left"
+msgstr "Gore - lijevo"
+
+#: libexif/pentax/mnote-pentax-entry.c:218
+msgid "Top"
+msgstr "Gore"
+
+#: libexif/pentax/mnote-pentax-entry.c:219
+msgid "Upper-right"
+msgstr "Gore - desno"
+
+#: libexif/pentax/mnote-pentax-entry.c:221
+msgid "Mid-left"
+msgstr "Sredina - lijevo"
+
+#: libexif/pentax/mnote-pentax-entry.c:223
+msgid "Mid-right"
+msgstr "Sredina - desno"
+
+#: libexif/pentax/mnote-pentax-entry.c:225
+msgid "Lower-left"
+msgstr "Donje - lijevo"
+
+#: libexif/pentax/mnote-pentax-entry.c:226
+msgid "Bottom"
+msgstr "Dolje"
+
+#: libexif/pentax/mnote-pentax-entry.c:227
+msgid "Lower-right"
+msgstr "Dolje- desno"
+
+#: libexif/pentax/mnote-pentax-entry.c:228
+#, fuzzy
+msgid "Fixed center"
+msgstr "Nepokretna sredina"
+
+#: libexif/pentax/mnote-pentax-entry.c:232
+msgid "Multiple"
+msgstr "Višestruko"
+
+#: libexif/pentax/mnote-pentax-entry.c:234
+msgid "Top-center"
+msgstr "Gore - sredina"
+
+#: libexif/pentax/mnote-pentax-entry.c:240
+msgid "Bottom-center"
+msgstr "Dolje - sredina"
+
+#: libexif/pentax/mnote-pentax-entry.c:257
+#, fuzzy
+msgid "User selected"
+msgstr "Odabrano od strane korisnika"
+
+#: libexif/pentax/mnote-pentax-entry.c:282
+msgid "3008x2008 or 3040x2024"
+msgstr "3008x2008 ili 3040x2024"
+
+#: libexif/pentax/mnote-pentax-entry.c:293
+#, fuzzy
+msgid "Digital filter?"
+msgstr "Digitalni filter?"
+
+#: libexif/pentax/mnote-pentax-entry.c:374
+#: libexif/pentax/mnote-pentax-entry.c:383
+#, c-format
+msgid "Internal error (unknown value %i %i)"
+msgstr "Unutrašnja greška (nepoznata vrijednost %i %i)"
+
+#: libexif/pentax/mnote-pentax-tag.c:35 libexif/pentax/mnote-pentax-tag.c:63
+msgid "Capture Mode"
+msgstr "Mod hvatanja"
+
+#: libexif/pentax/mnote-pentax-tag.c:36 libexif/pentax/mnote-pentax-tag.c:70
+#: libexif/pentax/mnote-pentax-tag.c:129
+msgid "Quality Level"
+msgstr "Nivo kvaliteta"
+
+#: libexif/pentax/mnote-pentax-tag.c:54
+#, fuzzy
+msgid "ISO Speed"
+msgstr "ISO brzina"
+
+#: libexif/pentax/mnote-pentax-tag.c:56
+msgid "Colors"
+msgstr "Boje"
+
+#: libexif/pentax/mnote-pentax-tag.c:59
+msgid "PrintIM Settings"
+msgstr "PrintIM Settings"
+
+#: libexif/pentax/mnote-pentax-tag.c:60 libexif/pentax/mnote-pentax-tag.c:131
+msgid "Time Zone"
+msgstr "Vremenska zona"
+
+#: libexif/pentax/mnote-pentax-tag.c:61
+msgid "Daylight Savings"
+msgstr "Ušteda tokom dana"
+
+#: libexif/pentax/mnote-pentax-tag.c:64
+msgid "Preview Size"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:65
+msgid "Preview Length"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:66 libexif/pentax/mnote-pentax-tag.c:122
+msgid "Preview Start"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:67
+msgid "Model Identification"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:68
+msgid "Date"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:69
+msgid "Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:75
+msgid "AF Point Selected"
+msgstr "AF tačka je izabrana"
+
+#: libexif/pentax/mnote-pentax-tag.c:76
+msgid "Auto AF Point"
+msgstr "Automatska AF tačka"
+
+#: libexif/pentax/mnote-pentax-tag.c:77
+msgid "Focus Position"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:80
+msgid "ISO Number"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:83
+msgid "Auto Bracketing"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:85
+msgid "White Balance Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:93
+msgid "World Time Location"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:94
+msgid "Hometown City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:95
+msgid "Destination City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Hometown DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Home Daylight Savings Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination Daylight Savings Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:99
+msgid "Image Processing"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:100
+msgid "Picture Mode (2)"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:103
+msgid "Image Area Offset"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:104
+msgid "Raw Image Size"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:105
+msgid "Autofocus Points Used"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:107
+msgid "Camera Temperature"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:110
+msgid "Image Tone"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:111
+msgid "Shake Reduction Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:112
+msgid "Black Point"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:114
+msgid "AE Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:115
+msgid "Lens Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:116
+msgid "Flash Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:117
+msgid "Camera Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:118
+msgid "Battery Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:119
+msgid "Hometown City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:120
+msgid "Destination City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Object Distance"
+msgstr "Udaljenost predmeta"
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Distance of photographed object in millimeters."
+msgstr "Udaljenost uslikanog predmeta u milimetrima."
+
+#: libexif/pentax/mnote-pentax-tag.c:126
+msgid "Flash Distance"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:132
+msgid "Bestshot Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:133
+msgid "CCS ISO Sensitivity"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:135
+msgid "Enhancement"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:136
+msgid "Finer"
+msgstr ""
+
+#: test/nls/test-nls.c:20 test/nls/test-nls.c:23 test/nls/test-nls.c:24
+msgid "[DO_NOT_TRANSLATE_THIS_MARKER]"
+msgstr "[DO_NOT_TRANSLATE_THIS_MARKER]"
+
+#~ msgid "On + Red-eye reduction"
+#~ msgstr "Uključeno + Ispravka crvenih očiju"
+
+#~ msgid "Center + Right"
+#~ msgstr "U središtu + Desno"
+
+#~ msgid "Left + Right"
+#~ msgstr "Lijevo + Desno"
+
+#~ msgid "Daylight Fluorescent"
+#~ msgstr "Dnevnosvetlosna fluroscentna"
+
+#~ msgid "top - left"
+#~ msgstr "gore - lijevo"
+
+#~ msgid "top - right"
+#~ msgstr "gore - desno"
+
+#~ msgid "bottom - right"
+#~ msgstr "dolje - desno"
+
+#~ msgid "bottom - left"
+#~ msgstr "dolje - lijevo"
+
+#~ msgid "Center-Weighted Average"
+#~ msgstr "Prosjek centralne težine"
+
+#~ msgid "flash"
+#~ msgstr "blic"
+
+#~ msgid "y-Resolution"
+#~ msgstr "y-rezolucija"
+
+#~ msgid "Shutter speed"
+#~ msgstr "Brzina zatvarača"
+
+#~ msgid "Macro mode"
+#~ msgstr "Makro mod"
+
+#~ msgid "normal"
+#~ msgstr "normalno"
+
+#~ msgid "unknown"
+#~ msgstr "nepoznato"
+
+#~ msgid "panorama"
+#~ msgstr "panorama"
+
+#~ msgid "left to right"
+#~ msgstr "slijeva na desno"
+
+#~ msgid "right to left"
+#~ msgstr "sdesna na lijevo"
+
+#~ msgid "bottom to top"
+#~ msgstr "Odozdo na gore"
+
+#~ msgid "top to bottom"
+#~ msgstr "odozgo na dolje"
+
+#~ msgid "Noisereduction"
+#~ msgstr "Uklanjanje šuma"
+
+#~ msgid "Night-scene"
+#~ msgstr "Noćni prizor"
+
+#~ msgid "Red-eye Reduction"
+#~ msgstr "Ublažavanje crvenih očiju"
+
+#~ msgid "Night Scene"
+#~ msgstr "Noćni prizor"
+
+#~ msgid "Pan Focus"
+#~ msgstr "Pan Focus"
+
+#~ msgid "Daywhite Fluorescent"
+#~ msgstr "Dnevnobela fluroscentna"
+
+#~ msgid "White Fluorescent"
+#~ msgstr "Bela fluroscentna"
+
+#~ msgid "PictureMode"
+#~ msgstr "Mod slike"
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/cs.gmo b/framework/modules/c_LibExifModule/libexif-0.6.20/po/cs.gmo
new file mode 100644
index 0000000000000000000000000000000000000000..db0d4a26664578eedf5bed0afef3404ae187e65f
Binary files /dev/null and b/framework/modules/c_LibExifModule/libexif-0.6.20/po/cs.gmo differ
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/cs.po b/framework/modules/c_LibExifModule/libexif-0.6.20/po/cs.po
new file mode 100644
index 0000000000000000000000000000000000000000..f77f421a51619c56b2105e07a96cf5763fac863a
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/cs.po
@@ -0,0 +1,5629 @@
+# Czech translation for libexif.
+# Copyright (C) Jan Patera <patera@users.sourceforge.net>, 2007-2010.
+# This file is distributed under the same license as the libexif package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: libexif 0.6.18-pre1\n"
+"Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-12-15 22:14-0800\n"
+"PO-Revision-Date: 2010-12-15 07:00+0100\n"
+"Last-Translator: Jan Patera <patera@users.sourceforge.net>\n"
+"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: libexif/canon/mnote-canon-entry.c:40 libexif/fuji/mnote-fuji-entry.c:35
+#: libexif/olympus/mnote-olympus-entry.c:37
+#: libexif/pentax/mnote-pentax-entry.c:39
+#, c-format
+msgid "Invalid format '%s', expected '%s'."
+msgstr "Špatný formát '%s', očekáváno je '%s'."
+
+#: libexif/canon/mnote-canon-entry.c:52 libexif/fuji/mnote-fuji-entry.c:47
+#: libexif/olympus/mnote-olympus-entry.c:62
+#: libexif/pentax/mnote-pentax-entry.c:51
+#, c-format
+msgid "Invalid number of components (%i, expected %i)."
+msgstr "Špatný počet položek (%i, očekáváno %i)."
+
+#: libexif/canon/mnote-canon-entry.c:61
+#: libexif/olympus/mnote-olympus-entry.c:72
+#: libexif/pentax/mnote-pentax-entry.c:61
+#, c-format
+msgid "Invalid number of components (%i, expected %i or %i)."
+msgstr "Spatný počet položek (%i, očekáváno %i nebo %i)."
+
+#: libexif/canon/mnote-canon-entry.c:76 libexif/canon/mnote-canon-entry.c:130
+#: libexif/canon/mnote-canon-entry.c:182 libexif/exif-entry.c:796
+#: libexif/olympus/mnote-olympus-entry.c:196
+#: libexif/olympus/mnote-olympus-tag.c:108
+#: libexif/pentax/mnote-pentax-entry.c:174
+#: libexif/pentax/mnote-pentax-entry.c:209
+#: libexif/pentax/mnote-pentax-entry.c:297
+msgid "Macro"
+msgstr "Makro"
+
+#: libexif/canon/mnote-canon-entry.c:77 libexif/canon/mnote-canon-entry.c:79
+#: libexif/canon/mnote-canon-entry.c:157 libexif/canon/mnote-canon-entry.c:160
+#: libexif/canon/mnote-canon-entry.c:163 libexif/exif-entry.c:674
+#: libexif/exif-entry.c:677 libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/exif-entry.c:745 libexif/fuji/mnote-fuji-entry.c:64
+#: libexif/olympus/mnote-olympus-entry.c:118
+#: libexif/olympus/mnote-olympus-entry.c:195
+#: libexif/olympus/mnote-olympus-entry.c:203
+#: libexif/olympus/mnote-olympus-entry.c:213
+#: libexif/olympus/mnote-olympus-entry.c:586
+#: libexif/pentax/mnote-pentax-entry.c:105
+#: libexif/pentax/mnote-pentax-entry.c:110
+#: libexif/pentax/mnote-pentax-entry.c:115
+#: libexif/pentax/mnote-pentax-entry.c:208
+msgid "Normal"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:78
+msgid "Economy"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:80
+msgid "Fine"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:81 libexif/fuji/mnote-fuji-entry.c:178
+#: libexif/pentax/mnote-pentax-entry.c:141
+msgid "RAW"
+msgstr "RAW"
+
+#: libexif/canon/mnote-canon-entry.c:82
+msgid "Superfine"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:83 libexif/canon/mnote-canon-entry.c:301
+#: libexif/canon/mnote-canon-entry.c:304 libexif/canon/mnote-canon-entry.c:312
+#: libexif/canon/mnote-canon-entry.c:345 libexif/canon/mnote-canon-entry.c:357
+#: libexif/canon/mnote-canon-entry.c:370 libexif/canon/mnote-canon-entry.c:372
+#: libexif/canon/mnote-canon-entry.c:574 libexif/canon/mnote-canon-entry.c:671
+#: libexif/fuji/mnote-fuji-entry.c:70 libexif/fuji/mnote-fuji-entry.c:103
+#: libexif/fuji/mnote-fuji-entry.c:107 libexif/fuji/mnote-fuji-entry.c:115
+#: libexif/fuji/mnote-fuji-entry.c:142
+#: libexif/olympus/mnote-olympus-entry.c:178
+#: libexif/olympus/mnote-olympus-entry.c:186
+#: libexif/olympus/mnote-olympus-entry.c:251
+#: libexif/olympus/mnote-olympus-entry.c:530
+#: libexif/olympus/mnote-olympus-entry.c:547
+#: libexif/pentax/mnote-pentax-entry.c:195
+#: libexif/pentax/mnote-pentax-entry.c:260
+msgid "Off"
+msgstr "Vypnuto"
+
+#: libexif/canon/mnote-canon-entry.c:84 libexif/canon/mnote-canon-entry.c:167
+#: libexif/canon/mnote-canon-entry.c:180 libexif/canon/mnote-canon-entry.c:328
+#: libexif/canon/mnote-canon-entry.c:400 libexif/fuji/mnote-fuji-entry.c:73
+#: libexif/fuji/mnote-fuji-entry.c:101 libexif/fuji/mnote-fuji-entry.c:111
+#: libexif/fuji/mnote-fuji-entry.c:119
+#: libexif/olympus/mnote-olympus-entry.c:131
+#: libexif/olympus/mnote-olympus-entry.c:183
+#: libexif/olympus/mnote-olympus-entry.c:199
+#: libexif/olympus/mnote-olympus-entry.c:244
+#: libexif/pentax/mnote-pentax-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:88
+#: libexif/pentax/mnote-pentax-entry.c:91
+#: libexif/pentax/mnote-pentax-entry.c:97
+#: libexif/pentax/mnote-pentax-entry.c:131
+#: libexif/pentax/mnote-pentax-entry.c:229
+#: libexif/pentax/mnote-pentax-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:290
+msgid "Auto"
+msgstr "Automaticky"
+
+#: libexif/canon/mnote-canon-entry.c:85 libexif/canon/mnote-canon-entry.c:302
+#: libexif/canon/mnote-canon-entry.c:347 libexif/canon/mnote-canon-entry.c:361
+#: libexif/canon/mnote-canon-entry.c:371 libexif/fuji/mnote-fuji-entry.c:102
+#: libexif/fuji/mnote-fuji-entry.c:108 libexif/fuji/mnote-fuji-entry.c:116
+#: libexif/fuji/mnote-fuji-entry.c:143
+#: libexif/olympus/mnote-olympus-entry.c:179
+#: libexif/olympus/mnote-olympus-entry.c:533
+#: libexif/olympus/mnote-olympus-entry.c:550
+#: libexif/pentax/mnote-pentax-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:261
+msgid "On"
+msgstr "Zapnuto"
+
+#: libexif/canon/mnote-canon-entry.c:86 libexif/fuji/mnote-fuji-entry.c:104
+#: libexif/olympus/mnote-olympus-entry.c:184
+#: libexif/pentax/mnote-pentax-entry.c:94
+msgid "Red-eye reduction"
+msgstr "Redukce červených očí"
+
+#: libexif/canon/mnote-canon-entry.c:87
+msgid "Slow synchro"
+msgstr "Pomalá synchronizace"
+
+#: libexif/canon/mnote-canon-entry.c:88
+msgid "Auto, red-eye reduction"
+msgstr "Automaticky + redukce červených očí"
+
+#: libexif/canon/mnote-canon-entry.c:89
+#: libexif/pentax/mnote-pentax-entry.c:200
+msgid "On, red-eye reduction"
+msgstr "Zapnuto + redukce červených očí"
+
+#: libexif/canon/mnote-canon-entry.c:90
+msgid "External flash"
+msgstr "Přídavný blesk"
+
+#: libexif/canon/mnote-canon-entry.c:91 libexif/canon/mnote-canon-entry.c:101
+#: libexif/canon/mnote-canon-entry.c:294
+msgid "Single"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:92 libexif/canon/mnote-canon-entry.c:102
+#: libexif/canon/mnote-canon-entry.c:295
+msgid "Continuous"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:93
+msgid "Movie"
+msgstr "Film"
+
+#
+#: libexif/canon/mnote-canon-entry.c:94
+msgid "Continuous, speed priority"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:95
+msgid "Continuous, low"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:96
+msgid "Continuous, high"
+msgstr ""
+
+# focuses just one time (when half pressing shutter)
+#: libexif/canon/mnote-canon-entry.c:97
+msgid "One-shot AF"
+msgstr ""
+
+# continuous auto refocus while half-pressing shutter.
+#: libexif/canon/mnote-canon-entry.c:98
+msgid "AI servo AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:99
+msgid "AI focus AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:100 libexif/canon/mnote-canon-entry.c:103
+msgid "Manual focus"
+msgstr "Ruční zaostřování"
+
+#: libexif/canon/mnote-canon-entry.c:104 libexif/canon/mnote-canon-entry.c:132
+#: libexif/canon/mnote-canon-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:212
+msgid "Pan focus"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:105
+msgid "JPEG"
+msgstr "JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:106
+msgid "CRW+THM"
+msgstr "CRW+THM"
+
+#: libexif/canon/mnote-canon-entry.c:107
+msgid "AVI+THM"
+msgstr "AVI+THM"
+
+#: libexif/canon/mnote-canon-entry.c:108
+msgid "TIF"
+msgstr "TIF"
+
+#: libexif/canon/mnote-canon-entry.c:109
+msgid "TIF+JPEG"
+msgstr "TIF+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:110
+msgid "CR2"
+msgstr "CR2"
+
+#: libexif/canon/mnote-canon-entry.c:111
+msgid "CR2+JPEG"
+msgstr "CR2+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:112
+msgid "Large"
+msgstr "Velký"
+
+#: libexif/canon/mnote-canon-entry.c:113
+msgid "Medium"
+msgstr "Střední"
+
+#: libexif/canon/mnote-canon-entry.c:114
+msgid "Small"
+msgstr "Malý"
+
+#: libexif/canon/mnote-canon-entry.c:115
+msgid "Medium 1"
+msgstr "Střední 1"
+
+#: libexif/canon/mnote-canon-entry.c:116
+msgid "Medium 2"
+msgstr "Střední 2"
+
+#: libexif/canon/mnote-canon-entry.c:117
+msgid "Medium 3"
+msgstr "Střední 3"
+
+#: libexif/canon/mnote-canon-entry.c:118
+msgid "Postcard"
+msgstr "Pohlednice"
+
+#: libexif/canon/mnote-canon-entry.c:119
+msgid "Widescreen"
+msgstr "Širokoúhlé"
+
+#: libexif/canon/mnote-canon-entry.c:120
+msgid "Full auto"
+msgstr "Plně automatický"
+
+#: libexif/canon/mnote-canon-entry.c:121 libexif/canon/mnote-canon-entry.c:179
+#: libexif/canon/mnote-canon-entry.c:201 libexif/canon/mnote-canon-entry.c:285
+#: libexif/canon/mnote-canon-entry.c:392 libexif/exif-entry.c:744
+#: libexif/fuji/mnote-fuji-entry.c:112
+#: libexif/olympus/mnote-olympus-entry.c:90
+#: libexif/olympus/mnote-olympus-entry.c:200
+#: libexif/pentax/mnote-pentax-entry.c:79
+#: libexif/pentax/mnote-pentax-entry.c:102
+#: libexif/pentax/mnote-pentax-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:165
+#: libexif/pentax/mnote-pentax-entry.c:211
+#: libexif/pentax/mnote-pentax-entry.c:250
+msgid "Manual"
+msgstr "Ruční"
+
+#: libexif/canon/mnote-canon-entry.c:122 libexif/canon/mnote-canon-entry.c:430
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:755
+#: libexif/fuji/mnote-fuji-entry.c:121 libexif/pentax/mnote-pentax-entry.c:167
+#: libexif/pentax/mnote-pentax-entry.c:301
+msgid "Landscape"
+msgstr "Na šířku"
+
+#: libexif/canon/mnote-canon-entry.c:123
+msgid "Fast shutter"
+msgstr "Rychlá uzávěrka"
+
+#: libexif/canon/mnote-canon-entry.c:124
+msgid "Slow shutter"
+msgstr "Pomalá uzávěrka"
+
+#: libexif/canon/mnote-canon-entry.c:125 libexif/fuji/mnote-fuji-entry.c:123
+#: libexif/olympus/mnote-olympus-entry.c:254
+msgid "Night"
+msgstr "Noc"
+
+#: libexif/canon/mnote-canon-entry.c:126
+msgid "Grayscale"
+msgstr "Odstíny šedi"
+
+#: libexif/canon/mnote-canon-entry.c:127 libexif/canon/mnote-canon-entry.c:308
+#: libexif/pentax/mnote-pentax-entry.c:128
+msgid "Sepia"
+msgstr "Sépie"
+
+#: libexif/canon/mnote-canon-entry.c:128 libexif/canon/mnote-canon-entry.c:429
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:753
+#: libexif/fuji/mnote-fuji-entry.c:120 libexif/pentax/mnote-pentax-entry.c:166
+#: libexif/pentax/mnote-pentax-entry.c:291
+#: libexif/pentax/mnote-pentax-entry.c:294
+#: libexif/pentax/mnote-pentax-entry.c:300
+msgid "Portrait"
+msgstr "Na výšku"
+
+#: libexif/canon/mnote-canon-entry.c:129 libexif/fuji/mnote-fuji-entry.c:122
+msgid "Sports"
+msgstr "Sport"
+
+#: libexif/canon/mnote-canon-entry.c:131 libexif/canon/mnote-canon-entry.c:309
+#: libexif/canon/mnote-canon-entry.c:335 libexif/canon/mnote-canon-entry.c:407
+#: libexif/fuji/mnote-fuji-entry.c:89 libexif/pentax/mnote-pentax-entry.c:127
+msgid "Black & white"
+msgstr "Černobílý"
+
+#: libexif/canon/mnote-canon-entry.c:133 libexif/canon/mnote-canon-entry.c:305
+msgid "Vivid"
+msgstr "Živé"
+
+#: libexif/canon/mnote-canon-entry.c:134 libexif/canon/mnote-canon-entry.c:306
+#: libexif/canon/mnote-canon-entry.c:431
+msgid "Neutral"
+msgstr "Neutrální"
+
+#: libexif/canon/mnote-canon-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:93
+msgid "Flash off"
+msgstr "Blesk vypnut"
+
+#: libexif/canon/mnote-canon-entry.c:136
+msgid "Long shutter"
+msgstr "Dlouhá uzávěrka"
+
+#: libexif/canon/mnote-canon-entry.c:137 libexif/canon/mnote-canon-entry.c:188
+#: libexif/olympus/mnote-olympus-entry.c:171
+msgid "Super macro"
+msgstr "Super Makro"
+
+#: libexif/canon/mnote-canon-entry.c:138
+msgid "Foliage"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:139
+msgid "Indoor"
+msgstr "Uvnitř domu"
+
+#: libexif/canon/mnote-canon-entry.c:140 libexif/fuji/mnote-fuji-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:175
+msgid "Fireworks"
+msgstr "Ohňostroj"
+
+#: libexif/canon/mnote-canon-entry.c:141 libexif/fuji/mnote-fuji-entry.c:133
+msgid "Beach"
+msgstr "Na pláži"
+
+#: libexif/canon/mnote-canon-entry.c:142 libexif/canon/mnote-canon-entry.c:344
+#: libexif/canon/mnote-canon-entry.c:416 libexif/fuji/mnote-fuji-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:292
+#: libexif/pentax/mnote-pentax-entry.c:298
+msgid "Underwater"
+msgstr "Pod vodou"
+
+#: libexif/canon/mnote-canon-entry.c:143 libexif/fuji/mnote-fuji-entry.c:134
+msgid "Snow"
+msgstr "Na sněhu"
+
+#: libexif/canon/mnote-canon-entry.c:144
+msgid "Kids & pets"
+msgstr "Děti a zvířata"
+
+#: libexif/canon/mnote-canon-entry.c:145
+msgid "Night snapshot"
+msgstr "Noční snímek"
+
+#: libexif/canon/mnote-canon-entry.c:146
+msgid "Digital macro"
+msgstr "Digitální makro"
+
+#: libexif/canon/mnote-canon-entry.c:147
+msgid "My colors"
+msgstr "Moje barvy"
+
+#: libexif/canon/mnote-canon-entry.c:148
+msgid "Still image"
+msgstr "Zátiší"
+
+#: libexif/canon/mnote-canon-entry.c:149
+msgid "Color accent"
+msgstr "Zdůraznění barev"
+
+#: libexif/canon/mnote-canon-entry.c:150
+msgid "Color swap"
+msgstr "Prohození barev"
+
+#: libexif/canon/mnote-canon-entry.c:151
+msgid "Aquarium"
+msgstr "Akvárium"
+
+#: libexif/canon/mnote-canon-entry.c:152
+msgid "ISO 3200"
+msgstr "ISO 3200"
+
+#: libexif/canon/mnote-canon-entry.c:153 libexif/canon/mnote-canon-entry.c:348
+#: libexif/canon/mnote-canon-entry.c:365 libexif/canon/mnote-canon-entry.c:417
+#: libexif/olympus/mnote-olympus-entry.c:189
+#: libexif/olympus/mnote-olympus-entry.c:226
+#: libexif/olympus/mnote-olympus-entry.c:451
+#: libexif/pentax/mnote-pentax-entry.c:242
+msgid "None"
+msgstr "Žádný"
+
+#: libexif/canon/mnote-canon-entry.c:154
+msgid "2x"
+msgstr "2x"
+
+#: libexif/canon/mnote-canon-entry.c:155
+msgid "4x"
+msgstr "4x"
+
+#: libexif/canon/mnote-canon-entry.c:156 libexif/exif-entry.c:702
+#: libexif/exif-entry.c:732
+msgid "Other"
+msgstr "Jiný"
+
+#: libexif/canon/mnote-canon-entry.c:158 libexif/canon/mnote-canon-entry.c:161
+#: libexif/canon/mnote-canon-entry.c:164 libexif/canon/mnote-canon-entry.c:398
+#: libexif/fuji/mnote-fuji-entry.c:86 libexif/pentax/mnote-pentax-entry.c:112
+#: libexif/pentax/mnote-pentax-entry.c:117
+msgid "High"
+msgstr "Vysoký"
+
+#: libexif/canon/mnote-canon-entry.c:159 libexif/canon/mnote-canon-entry.c:162
+#: libexif/canon/mnote-canon-entry.c:165 libexif/canon/mnote-canon-entry.c:396
+#: libexif/pentax/mnote-pentax-entry.c:111
+#: libexif/pentax/mnote-pentax-entry.c:116
+msgid "Low"
+msgstr "Nízký"
+
+#: libexif/canon/mnote-canon-entry.c:166
+msgid "Auto high"
+msgstr "Automatický vysoký"
+
+#: libexif/canon/mnote-canon-entry.c:168
+msgid "50"
+msgstr "50"
+
+#: libexif/canon/mnote-canon-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:120
+#: libexif/pentax/mnote-pentax-entry.c:122
+msgid "100"
+msgstr "100"
+
+#: libexif/canon/mnote-canon-entry.c:170
+#: libexif/pentax/mnote-pentax-entry.c:121
+#: libexif/pentax/mnote-pentax-entry.c:123
+msgid "200"
+msgstr "200"
+
+#: libexif/canon/mnote-canon-entry.c:171
+msgid "400"
+msgstr "400"
+
+#: libexif/canon/mnote-canon-entry.c:172
+msgid "800"
+msgstr "800"
+
+#: libexif/canon/mnote-canon-entry.c:173
+msgid "Default"
+msgstr "Výchozí"
+
+#: libexif/canon/mnote-canon-entry.c:174 libexif/exif-entry.c:698
+msgid "Spot"
+msgstr "Bodový"
+
+#: libexif/canon/mnote-canon-entry.c:175 libexif/exif-entry.c:696
+msgid "Average"
+msgstr "Průměrný"
+
+#: libexif/canon/mnote-canon-entry.c:176
+msgid "Evaluative"
+msgstr "Vyhodnocující"
+
+#: libexif/canon/mnote-canon-entry.c:177 libexif/exif-entry.c:701
+msgid "Partial"
+msgstr "Částečný"
+
+#: libexif/canon/mnote-canon-entry.c:178 libexif/exif-entry.c:697
+msgid "Center-weighted average"
+msgstr "Vážený průměr"
+
+#: libexif/canon/mnote-canon-entry.c:181
+msgid "Not known"
+msgstr "Neznámý"
+
+#: libexif/canon/mnote-canon-entry.c:183
+msgid "Very close"
+msgstr "Velmi blízký"
+
+#: libexif/canon/mnote-canon-entry.c:184 libexif/exif-entry.c:797
+msgid "Close"
+msgstr "Blízký"
+
+#: libexif/canon/mnote-canon-entry.c:185
+msgid "Middle range"
+msgstr "Střední vzdálenost"
+
+#: libexif/canon/mnote-canon-entry.c:186
+msgid "Far range"
+msgstr "Vzdálený"
+
+#: libexif/canon/mnote-canon-entry.c:189
+#: libexif/pentax/mnote-pentax-entry.c:210
+msgid "Infinity"
+msgstr "Nekonečno"
+
+#: libexif/canon/mnote-canon-entry.c:190
+msgid "Manual AF point selection"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:191 libexif/canon/mnote-canon-entry.c:349
+msgid "None (MF)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:192
+msgid "Auto-selected"
+msgstr "Automaticky zvolený"
+
+#: libexif/canon/mnote-canon-entry.c:193 libexif/canon/mnote-canon-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:224
+#: libexif/pentax/mnote-pentax-entry.c:238
+msgid "Right"
+msgstr "Vpravo"
+
+#: libexif/canon/mnote-canon-entry.c:194 libexif/canon/mnote-canon-entry.c:351
+#: libexif/pentax/mnote-pentax-entry.c:222
+#: libexif/pentax/mnote-pentax-entry.c:237
+msgid "Center"
+msgstr "Uprostřed"
+
+#: libexif/canon/mnote-canon-entry.c:195 libexif/canon/mnote-canon-entry.c:353
+#: libexif/pentax/mnote-pentax-entry.c:220
+#: libexif/pentax/mnote-pentax-entry.c:236
+msgid "Left"
+msgstr "Vlevo"
+
+#: libexif/canon/mnote-canon-entry.c:196
+msgid "Auto AF point selection"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:197
+msgid "Easy shooting"
+msgstr "Snadné focení"
+
+#: libexif/canon/mnote-canon-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:163
+msgid "Program"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:199
+msgid "Tv-priority"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:200
+msgid "Av-priority"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:202
+msgid "A-DEP"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:203
+msgid "M-DEP"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:204
+msgid "Canon EF 50mm f/1.8"
+msgstr "Canon EF 50mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:205
+msgid "Canon EF 28mm f/2.8"
+msgstr "Canon EF 28mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:206
+msgid "Sigma UC Zoom 35-135mm f/4-5.6"
+msgstr "Sigma UC Zoom 35-135mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:207
+msgid "Tokina AF193-2 19-35mm f/3.5-4.5"
+msgstr "Tokina AF193-2 19-35mm f/3.5-4.5"
+
+#: libexif/canon/mnote-canon-entry.c:208
+msgid "Canon EF 100-300mm F5.6L"
+msgstr "Canon EF 100-300mm F5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:209
+msgid "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+msgstr "Sigma 50mm f/2.8 EX nebo 28mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:210
+msgid "Canon EF 35mm f/2"
+msgstr "Canon EF 35mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:211
+msgid "Canon EF 15mm f/2.8"
+msgstr "Canon EF 15mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:212
+msgid "Canon EF 80-200mm f/2.8L"
+msgstr "Canon EF 80-200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:213
+msgid "Tokina AT-X280AF PRO 28-80mm F2.8 Aspherical"
+msgstr "Tokina AT-X280AF PRO 28-80mm F2.8 asférický"
+
+#: libexif/canon/mnote-canon-entry.c:214
+msgid "Cosina 100mm f/3.5 Macro AF"
+msgstr "Cosina 100mm f/3.5 Macro AF"
+
+#: libexif/canon/mnote-canon-entry.c:215
+msgid "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+msgstr "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:216
+msgid "Canon EF 50mm f/1.8 MkII"
+msgstr "Canon EF 50mm f/1.8 MkII"
+
+#: libexif/canon/mnote-canon-entry.c:217
+msgid "Tamron SP AF 300mm f/2.8 LD IF"
+msgstr "Tamron SP AF 300mm f/2.8 LD IF"
+
+#: libexif/canon/mnote-canon-entry.c:218
+msgid "Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+msgstr "Canon EF 24mm f/2.8 nebo Sigma 15mm f/2.8 EX rybí oko"
+
+#: libexif/canon/mnote-canon-entry.c:219
+msgid "Canon EF 75-300mm f/4-5.6"
+msgstr "Canon EF 75-300mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:220
+msgid "Canon EF 28-80mm f/3.5-5.6"
+msgstr "Canon EF 28-80mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:221
+msgid "Canon EF 28-105mm f/4-5.6"
+msgstr "Canon EF 28-105mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:222
+msgid "Canon EF-S 18-55mm f/3.5-5.6"
+msgstr "Canon EF-S 18-55mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:223
+msgid "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+msgstr "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+
+#: libexif/canon/mnote-canon-entry.c:224
+msgid "Canon TS-E 24mm f/3.5L"
+msgstr "Canon TS-E 24mm f/3.5L"
+
+#: libexif/canon/mnote-canon-entry.c:225
+msgid "Canon TS-E 45mm f/2.8"
+msgstr "Canon TS-E 45mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:226
+msgid "Canon TS-E 90mm f/2.8"
+msgstr "Canon TS-E 90mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:227
+msgid "Canon EF 50mm f/1.0L"
+msgstr "Canon EF 50mm f/1.0L"
+
+#: libexif/canon/mnote-canon-entry.c:228
+msgid "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+msgstr "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+
+#: libexif/canon/mnote-canon-entry.c:229
+msgid "Canon EF 600mm f/4L IS"
+msgstr "Canon EF 600mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:230
+msgid "Canon EF 200mm f/1.8L"
+msgstr "Canon EF 200mm f/1.8L"
+
+#: libexif/canon/mnote-canon-entry.c:231
+msgid "Canon EF 300mm f/2.8L"
+msgstr "Canon EF 300mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:232
+msgid "Canon EF 85mm f/1.2L"
+msgstr "Canon EF 85mm f/1.2L"
+
+#: libexif/canon/mnote-canon-entry.c:233
+msgid "Canon EF 400mm f/2.8L"
+msgstr "Canon EF 400mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:234
+msgid "Canon EF 500mm f/4.5L"
+msgstr "Canon EF 500mm f/4.5L"
+
+#: libexif/canon/mnote-canon-entry.c:235
+msgid "Canon EF 300mm f/2.8L IS"
+msgstr "Canon EF 300mm f/2.8L IS"
+
+#: libexif/canon/mnote-canon-entry.c:236
+msgid "Canon EF 500mm f/4L IS"
+msgstr "Canon EF 500mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:237
+msgid "Canon EF 100mm f/2"
+msgstr "Canon EF 100mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:238
+msgid "Sigma 20mm EX f/1.8"
+msgstr "Sigma 20mm EX f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:239
+msgid "Canon EF 200mm f/2.8L"
+msgstr "Canon EF 200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:240
+msgid "Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+msgstr "Sigma 10-20mm F4-5.6, 12-24mm f/4.5-5.6 nebo 14mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:241
+msgid "Canon EF 35-350mm f/3.5-5.6L"
+msgstr "Canon EF 35-350mm f/3.5-5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:242
+msgid "Canon EF 85mm f/1.8 USM"
+msgstr "Canon EF 85mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:243
+msgid "Canon EF 28-105mm f/3.5-4.5 USM"
+msgstr "Canon EF 28-105mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:244
+msgid "Canon EF 20-35mm f/3.5-4.5 USM"
+msgstr "Canon EF 20-35mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:245
+msgid "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+msgstr "Canon EF 28-70mm f/2.8L nebo Sigma 24-70mm EX f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:246
+msgid "Canon EF 70-200mm f/2.8 L"
+msgstr "Canon EF 70-200mm f/2.8 L"
+
+#: libexif/canon/mnote-canon-entry.c:247
+msgid "Canon EF 70-200mm f/2.8 L + x1.4"
+msgstr "Canon EF 70-200mm f/2.8 L + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:248
+msgid "Canon EF 70-200mm f/2.8 L + x2"
+msgstr "Canon EF 70-200mm f/2.8 L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:249
+msgid "Canon EF 28mm f/1.8 USM"
+msgstr "Canon EF 28mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:250
+msgid "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+msgstr "Sigma 15-30mm f/3.5-4.5 EX DG asférický"
+
+#: libexif/canon/mnote-canon-entry.c:251
+msgid "Canon EF 200mm f/2.8L II"
+msgstr "Canon EF 200mm f/2.8L II"
+
+#: libexif/canon/mnote-canon-entry.c:252
+msgid "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+msgstr "Canon EF 180mm Macro f/3.5L nebo Sigma 180mm EX HSM Macro f/3.5"
+
+#: libexif/canon/mnote-canon-entry.c:253
+msgid "Canon EF 135mm f/2L"
+msgstr "Canon EF 135mm f/2L"
+
+#: libexif/canon/mnote-canon-entry.c:254
+msgid "Canon EF 24-85mm f/3.5-4.5 USM"
+msgstr "Canon EF 24-85mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:255
+msgid "Canon EF 300mm f/4L IS"
+msgstr "Canon EF 300mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:256
+msgid "Canon EF 28-135mm f/3.5-5.6 IS"
+msgstr "Canon EF 28-135mm f/3.5-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:257
+msgid "Canon EF 35mm f/1.4L"
+msgstr "Canon EF 35mm f/1.4L"
+
+#: libexif/canon/mnote-canon-entry.c:258
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:259
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+
+#: libexif/canon/mnote-canon-entry.c:260
+msgid "Canon EF 100-400mm f/4.5-5.6L IS"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS"
+
+#: libexif/canon/mnote-canon-entry.c:261
+msgid "Canon EF 400mm f/2.8L + x2"
+msgstr "Canon EF 400mm f/2.8L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:262
+msgid "Canon EF 70-200mm f/4L"
+msgstr "Canon EF 70-200mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:263
+msgid "Canon EF 100mm f/2.8 Macro"
+msgstr "Canon EF 100mm f/2.8 Macro"
+
+#: libexif/canon/mnote-canon-entry.c:264
+msgid "Canon EF 400mm f/4 DO IS"
+msgstr "Canon EF 400mm f/4 DO IS"
+
+#: libexif/canon/mnote-canon-entry.c:265
+msgid "Canon EF 75-300mm f/4-5.6 IS"
+msgstr "Canon EF 75-300mm f/4-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:266
+msgid "Canon EF 50mm f/1.4"
+msgstr "Canon EF 50mm f/1.4"
+
+#: libexif/canon/mnote-canon-entry.c:267
+msgid "Canon EF 28-80 f/3.5-5.6 USM IV"
+msgstr "Canon EF 28-80 f/3.5-5.6 USM IV"
+
+#: libexif/canon/mnote-canon-entry.c:268
+msgid "Canon EF 28-200mm f/3.5-5.6"
+msgstr "Canon EF 28-200mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:269
+msgid "Canon EF 90-300mm f/4.5-5.6"
+msgstr "Canon EF 90-300mm f/4.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:270
+msgid "Canon EF-S 18-55mm f/3.5-4.5 USM"
+msgstr "Canon EF-S 18-55mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:271
+msgid "Canon EF 70-200mm f/2.8L IS USM"
+msgstr "Canon EF 70-200mm f/2.8L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:272
+msgid "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+msgstr "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:273
+msgid "Canon EF 70-200mm f/2.8L IS USM + x2"
+msgstr "Canon EF 70-200mm f/2.8L IS USM + x2"
+
+#: libexif/canon/mnote-canon-entry.c:274
+msgid "Canon EF 16-35mm f/2.8L"
+msgstr "Canon EF 16-35mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:275
+msgid "Canon EF 24-70mm f/2.8L"
+msgstr "Canon EF 24-70mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:276
+msgid "Canon EF 17-40mm f/4L"
+msgstr "Canon EF 17-40mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:277
+msgid "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+msgstr "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:278
+msgid "Canon EF-S 17-85mm f4-5.6 IS USM"
+msgstr "Canon EF-S 17-85mm f4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:279
+msgid "Canon EF-S10-22mm F3.5-4.5 USM"
+msgstr "Canon EF-S10-22mm F3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:280
+msgid "Canon EF-S60mm F2.8 Macro USM"
+msgstr "Canon EF-S60mm F2.8 Macro USM"
+
+#: libexif/canon/mnote-canon-entry.c:281
+msgid "Canon EF 24-105mm f/4L IS"
+msgstr "Canon EF 24-105mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:282
+msgid "Canon EF 70-300mm F4-5.6 IS USM"
+msgstr "Canon EF 70-300mm F4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:283
+msgid "Canon EF 50mm F1.2L USM"
+msgstr "Canon EF 50mm F1.2L USM"
+
+#: libexif/canon/mnote-canon-entry.c:284
+msgid "Canon EF 70-200mm f/4L IS USM"
+msgstr "Canon EF 70-200mm f/4L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:286
+msgid "TTL"
+msgstr "TTL"
+
+#: libexif/canon/mnote-canon-entry.c:287
+msgid "A-TTL"
+msgstr "A-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:288
+msgid "E-TTL"
+msgstr "E-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:289
+msgid "FP sync enabled"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:290
+msgid "2nd-curtain sync used"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:291
+msgid "FP sync used"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:292
+#: libexif/olympus/mnote-olympus-entry.c:190
+msgid "Internal"
+msgstr "Vnitřní"
+
+#: libexif/canon/mnote-canon-entry.c:293
+#: libexif/olympus/mnote-olympus-entry.c:191
+msgid "External"
+msgstr "Přídavný"
+
+#: libexif/canon/mnote-canon-entry.c:296
+msgid "Normal AE"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:297
+msgid "Exposure compensation"
+msgstr "Kompenzace expozice"
+
+#: libexif/canon/mnote-canon-entry.c:298
+msgid "AE lock"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:299
+msgid "AE lock + exposure compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:300
+msgid "No AE"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:303
+msgid "On, shot only"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:307
+msgid "Smooth"
+msgstr "Jemný"
+
+#: libexif/canon/mnote-canon-entry.c:310 libexif/canon/mnote-canon-entry.c:334
+#: libexif/canon/mnote-canon-entry.c:393 libexif/canon/mnote-canon-entry.c:406
+#: libexif/fuji/mnote-fuji-entry.c:81 libexif/pentax/mnote-pentax-entry.c:87
+msgid "Custom"
+msgstr "Uživatelský"
+
+#: libexif/canon/mnote-canon-entry.c:311
+msgid "My color data"
+msgstr "Vlastní barevné nastavení"
+
+#: libexif/canon/mnote-canon-entry.c:313 libexif/canon/mnote-canon-entry.c:375
+#: libexif/pentax/mnote-pentax-entry.c:126
+#: libexif/pentax/mnote-pentax-entry.c:145
+msgid "Full"
+msgstr "Plný"
+
+#: libexif/canon/mnote-canon-entry.c:314 libexif/canon/mnote-canon-entry.c:374
+msgid "2/3"
+msgstr "2/3"
+
+#: libexif/canon/mnote-canon-entry.c:315 libexif/canon/mnote-canon-entry.c:373
+msgid "1/3"
+msgstr "1/3"
+
+#: libexif/canon/mnote-canon-entry.c:321
+msgid "Fixed"
+msgstr "Pevný"
+
+#: libexif/canon/mnote-canon-entry.c:322 libexif/pentax/mnote-pentax-tag.c:44
+msgid "Zoom"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:329
+msgid "Sunny"
+msgstr "Slunečný"
+
+#: libexif/canon/mnote-canon-entry.c:330 libexif/canon/mnote-canon-entry.c:402
+#: libexif/exif-entry.c:719 libexif/fuji/mnote-fuji-entry.c:75
+#: libexif/olympus/mnote-olympus-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:255
+msgid "Cloudy"
+msgstr "Oblačný"
+
+#: libexif/canon/mnote-canon-entry.c:331 libexif/canon/mnote-canon-entry.c:403
+#: libexif/exif-entry.c:716 libexif/pentax/mnote-pentax-entry.c:100
+#: libexif/pentax/mnote-pentax-entry.c:249
+msgid "Tungsten"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:332 libexif/canon/mnote-canon-entry.c:404
+#: libexif/exif-entry.c:715 libexif/pentax/mnote-pentax-entry.c:101
+#: libexif/pentax/mnote-pentax-entry.c:248
+msgid "Fluorescent"
+msgstr "Světélkující"
+
+#: libexif/canon/mnote-canon-entry.c:333 libexif/canon/mnote-canon-entry.c:405
+#: libexif/exif-entry.c:717 libexif/exif-entry.c:759 libexif/exif-tag.c:577
+#: libexif/fuji/mnote-fuji-entry.c:80 libexif/pentax/mnote-pentax-entry.c:254
+msgid "Flash"
+msgstr "Blesk"
+
+#: libexif/canon/mnote-canon-entry.c:336 libexif/canon/mnote-canon-entry.c:408
+#: libexif/exif-entry.c:720 libexif/pentax/mnote-pentax-entry.c:99
+#: libexif/pentax/mnote-pentax-entry.c:247
+msgid "Shade"
+msgstr "Stín"
+
+#: libexif/canon/mnote-canon-entry.c:337 libexif/canon/mnote-canon-entry.c:409
+msgid "Manual temperature (Kelvin)"
+msgstr "Ruční teplota (Kelvin)"
+
+#: libexif/canon/mnote-canon-entry.c:338 libexif/canon/mnote-canon-entry.c:410
+msgid "PC set 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:339 libexif/canon/mnote-canon-entry.c:411
+msgid "PC set 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:340 libexif/canon/mnote-canon-entry.c:412
+msgid "PC set 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:341 libexif/canon/mnote-canon-entry.c:413
+#: libexif/exif-entry.c:721 libexif/fuji/mnote-fuji-entry.c:76
+#: libexif/pentax/mnote-pentax-entry.c:251
+msgid "Daylight fluorescent"
+msgstr "Světélkující denní světlo"
+
+#: libexif/canon/mnote-canon-entry.c:342 libexif/canon/mnote-canon-entry.c:414
+msgid "Custom 1"
+msgstr "Uživatelský 1"
+
+#: libexif/canon/mnote-canon-entry.c:343 libexif/canon/mnote-canon-entry.c:415
+msgid "Custom 2"
+msgstr "Uživatelský 2"
+
+#: libexif/canon/mnote-canon-entry.c:346 libexif/exif-entry.c:672
+#: libexif/pentax/mnote-pentax-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:132
+#: libexif/pentax/mnote-pentax-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:295
+msgid "Night scene"
+msgstr "Noční scéna"
+
+#: libexif/canon/mnote-canon-entry.c:352
+msgid "Center-right"
+msgstr "Uprostřed - vpravo"
+
+#: libexif/canon/mnote-canon-entry.c:354
+msgid "Left-right"
+msgstr "Zleva doprava"
+
+#: libexif/canon/mnote-canon-entry.c:355
+msgid "Left-center"
+msgstr "Vlevo - uprostřed"
+
+#: libexif/canon/mnote-canon-entry.c:356
+msgid "All"
+msgstr "Vše"
+
+#: libexif/canon/mnote-canon-entry.c:358
+msgid "On (shot 1)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:359
+msgid "On (shot 2)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:360
+msgid "On (shot 3)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:362
+msgid "EOS high-end"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:363
+msgid "Compact"
+msgstr "Kompakt"
+
+#: libexif/canon/mnote-canon-entry.c:364
+msgid "EOS mid-range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:366
+msgid "Rotate 90 CW"
+msgstr "Otočit vpravo o 90st."
+
+#: libexif/canon/mnote-canon-entry.c:367
+msgid "Rotate 180"
+msgstr "Otočit o 180st."
+
+#: libexif/canon/mnote-canon-entry.c:368
+msgid "Rotate 270 CW"
+msgstr "Otočit vlevo o 90st."
+
+#: libexif/canon/mnote-canon-entry.c:369
+msgid "Rotated by software"
+msgstr "Otočeno programově"
+
+#: libexif/canon/mnote-canon-entry.c:381
+#: libexif/olympus/mnote-olympus-entry.c:606
+msgid "Left to right"
+msgstr "Zleva doprava"
+
+#: libexif/canon/mnote-canon-entry.c:382
+#: libexif/olympus/mnote-olympus-entry.c:609
+msgid "Right to left"
+msgstr "Zprava doleva"
+
+#: libexif/canon/mnote-canon-entry.c:383
+#: libexif/olympus/mnote-olympus-entry.c:612
+msgid "Bottom to top"
+msgstr "Zdola nahoru"
+
+#: libexif/canon/mnote-canon-entry.c:384
+#: libexif/olympus/mnote-olympus-entry.c:615
+msgid "Top to bottom"
+msgstr "Shora dolu"
+
+#: libexif/canon/mnote-canon-entry.c:385
+msgid "2x2 matrix (clockwise)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:391 libexif/canon/mnote-canon-entry.c:397
+#: libexif/canon/mnote-canon-entry.c:418 libexif/canon/mnote-canon-entry.c:428
+#: libexif/exif-entry.c:671 libexif/fuji/mnote-fuji-entry.c:84
+#: libexif/fuji/mnote-fuji-entry.c:93 libexif/fuji/mnote-fuji-entry.c:163
+#: libexif/olympus/mnote-olympus-entry.c:227
+msgid "Standard"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:394
+msgid "N/A"
+msgstr "Není k dispozici"
+
+#: libexif/canon/mnote-canon-entry.c:395
+msgid "Lowest"
+msgstr "Nejnižší"
+
+#: libexif/canon/mnote-canon-entry.c:399
+msgid "Highest"
+msgstr "Nejvyšší"
+
+#: libexif/canon/mnote-canon-entry.c:401 libexif/exif-entry.c:714
+#: libexif/fuji/mnote-fuji-entry.c:74
+#: libexif/olympus/mnote-olympus-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:98
+#: libexif/pentax/mnote-pentax-entry.c:246
+msgid "Daylight"
+msgstr "Denní světlo"
+
+#: libexif/canon/mnote-canon-entry.c:419
+msgid "Set 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:420
+msgid "Set 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:421
+msgid "Set 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:422
+msgid "User def. 1"
+msgstr "Uživatelsky definovaný 1"
+
+#: libexif/canon/mnote-canon-entry.c:423
+msgid "User def. 2"
+msgstr "Uživatelsky definovaný 2"
+
+#: libexif/canon/mnote-canon-entry.c:424
+msgid "User def. 3"
+msgstr "Uživatelsky definovaný 3"
+
+#: libexif/canon/mnote-canon-entry.c:425
+msgid "External 1"
+msgstr "Přídavný 1"
+
+#: libexif/canon/mnote-canon-entry.c:426
+msgid "External 2"
+msgstr "Přídavný 2"
+
+#: libexif/canon/mnote-canon-entry.c:427
+msgid "External 3"
+msgstr "Přídavný 3"
+
+#: libexif/canon/mnote-canon-entry.c:432
+msgid "Faithful"
+msgstr "Věrný"
+
+#: libexif/canon/mnote-canon-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:115
+msgid "Monochrome"
+msgstr "Černobílý"
+
+#: libexif/canon/mnote-canon-entry.c:491
+msgid ", "
+msgstr ", "
+
+#: libexif/canon/mnote-canon-entry.c:577 libexif/canon/mnote-canon-entry.c:674
+#, c-format
+msgid "%i (ms)"
+msgstr "%i (ms)"
+
+#: libexif/canon/mnote-canon-entry.c:621
+#, c-format
+msgid "%.2f mm"
+msgstr "%.2f mm"
+
+#: libexif/canon/mnote-canon-entry.c:645
+#, c-format
+msgid "%.2f EV"
+msgstr "%.2f EV"
+
+#: libexif/canon/mnote-canon-entry.c:655 libexif/exif-entry.c:1064
+#, c-format
+msgid "1/%i"
+msgstr "1/%i"
+
+#: libexif/canon/mnote-canon-entry.c:667
+#, c-format
+msgid "%u mm"
+msgstr "%u mm"
+
+#: libexif/canon/mnote-canon-tag.c:35
+msgid "Settings (First Part)"
+msgstr "Nastavení (1. část)"
+
+#: libexif/canon/mnote-canon-tag.c:36 libexif/canon/mnote-canon-tag.c:92
+#: libexif/exif-tag.c:581 libexif/pentax/mnote-pentax-tag.c:88
+msgid "Focal Length"
+msgstr "Ohnisková vzdálenost"
+
+#: libexif/canon/mnote-canon-tag.c:37
+msgid "Settings (Second Part)"
+msgstr "Nastavení (druhá část)"
+
+#: libexif/canon/mnote-canon-tag.c:38
+#: libexif/olympus/mnote-olympus-entry.c:595
+#: libexif/pentax/mnote-pentax-entry.c:177
+msgid "Panorama"
+msgstr "Panorama"
+
+#: libexif/canon/mnote-canon-tag.c:39
+msgid "Image Type"
+msgstr "Typ snímku"
+
+#: libexif/canon/mnote-canon-tag.c:40 libexif/olympus/mnote-olympus-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:113
+msgid "Firmware Version"
+msgstr "Verze firmware"
+
+#: libexif/canon/mnote-canon-tag.c:41
+msgid "Image Number"
+msgstr "Číslo snímku"
+
+#: libexif/canon/mnote-canon-tag.c:42
+msgid "Owner Name"
+msgstr "Jméno vlastníka"
+
+#: libexif/canon/mnote-canon-tag.c:43
+msgid "Color Information"
+msgstr "Informace o barvě"
+
+#: libexif/canon/mnote-canon-tag.c:44 libexif/fuji/mnote-fuji-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:81
+#: libexif/olympus/mnote-olympus-tag.c:146
+msgid "Serial Number"
+msgstr "Sériové číslo"
+
+#: libexif/canon/mnote-canon-tag.c:45
+msgid "Custom Functions"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:56 libexif/fuji/mnote-fuji-tag.c:45
+msgid "Macro Mode"
+msgstr "Režim makro"
+
+#: libexif/canon/mnote-canon-tag.c:57 libexif/canon/mnote-canon-tag.c:117
+#: libexif/olympus/mnote-olympus-tag.c:175
+#: libexif/pentax/mnote-pentax-tag.c:128
+msgid "Self-timer"
+msgstr "Samospoušť"
+
+#: libexif/canon/mnote-canon-tag.c:58 libexif/fuji/mnote-fuji-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:94
+#: libexif/olympus/mnote-olympus-tag.c:107
+msgid "Quality"
+msgstr "Kvalita"
+
+#: libexif/canon/mnote-canon-tag.c:59 libexif/fuji/mnote-fuji-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:45
+#: libexif/olympus/mnote-olympus-tag.c:127
+#: libexif/pentax/mnote-pentax-tag.c:38 libexif/pentax/mnote-pentax-tag.c:73
+msgid "Flash Mode"
+msgstr "Režim blesku"
+
+#: libexif/canon/mnote-canon-tag.c:60 libexif/pentax/mnote-pentax-tag.c:101
+msgid "Drive Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:61 libexif/canon/mnote-canon-tag.c:82
+#: libexif/olympus/mnote-olympus-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:134
+#: libexif/olympus/mnote-olympus-tag.c:173
+#: libexif/pentax/mnote-pentax-tag.c:37 libexif/pentax/mnote-pentax-tag.c:74
+#: libexif/pentax/mnote-pentax-tag.c:130
+msgid "Focus Mode"
+msgstr "Režim zaostřování"
+
+#: libexif/canon/mnote-canon-tag.c:62 libexif/pentax/mnote-pentax-tag.c:127
+msgid "Record Mode"
+msgstr "Režim záznamu"
+
+#: libexif/canon/mnote-canon-tag.c:63 libexif/pentax/mnote-pentax-tag.c:71
+msgid "Image Size"
+msgstr "Velikost obrazových dat"
+
+#: libexif/canon/mnote-canon-tag.c:64
+msgid "Easy Shooting Mode"
+msgstr "Režim snadného focení"
+
+#: libexif/canon/mnote-canon-tag.c:65 libexif/olympus/mnote-olympus-tag.c:64
+#: libexif/olympus/mnote-olympus-tag.c:101
+#: libexif/olympus/mnote-olympus-tag.c:110
+#: libexif/olympus/mnote-olympus-tag.c:180
+#: libexif/pentax/mnote-pentax-tag.c:89
+msgid "Digital Zoom"
+msgstr "Digitální zoom"
+
+#: libexif/canon/mnote-canon-tag.c:66 libexif/exif-tag.c:828
+#: libexif/fuji/mnote-fuji-tag.c:42 libexif/pentax/mnote-pentax-tag.c:46
+#: libexif/pentax/mnote-pentax-tag.c:91
+msgid "Contrast"
+msgstr "Kontrast"
+
+#: libexif/canon/mnote-canon-tag.c:67 libexif/exif-tag.c:832
+#: libexif/olympus/mnote-olympus-tag.c:75
+#: libexif/olympus/mnote-olympus-tag.c:87 libexif/pentax/mnote-pentax-tag.c:47
+#: libexif/pentax/mnote-pentax-tag.c:90
+msgid "Saturation"
+msgstr "Sytost"
+
+#: libexif/canon/mnote-canon-tag.c:68 libexif/exif-tag.c:836
+#: libexif/fuji/mnote-fuji-tag.c:39 libexif/pentax/mnote-pentax-tag.c:45
+#: libexif/pentax/mnote-pentax-tag.c:92
+msgid "Sharpness"
+msgstr "Ostrost"
+
+#: libexif/canon/mnote-canon-tag.c:69
+msgid "ISO"
+msgstr "ISO"
+
+#: libexif/canon/mnote-canon-tag.c:70 libexif/exif-tag.c:571
+#: libexif/pentax/mnote-pentax-tag.c:82
+msgid "Metering Mode"
+msgstr "Režim měření"
+
+#: libexif/canon/mnote-canon-tag.c:71 libexif/olympus/mnote-olympus-tag.c:133
+msgid "Focus Range"
+msgstr "Rozsah ostření"
+
+#: libexif/canon/mnote-canon-tag.c:72 libexif/canon/mnote-canon-tag.c:105
+msgid "AF Point"
+msgstr "Střed zaostření"
+
+#: libexif/canon/mnote-canon-tag.c:73 libexif/exif-tag.c:795
+msgid "Exposure Mode"
+msgstr "Režim expozice"
+
+#: libexif/canon/mnote-canon-tag.c:74 libexif/olympus/mnote-olympus-tag.c:61
+#: libexif/pentax/mnote-pentax-tag.c:106
+msgid "Lens Type"
+msgstr "Druh čoček"
+
+#: libexif/canon/mnote-canon-tag.c:75
+msgid "Long Focal Length of Lens"
+msgstr "Velká ohnisková vzdálenost"
+
+#: libexif/canon/mnote-canon-tag.c:76
+msgid "Short Focal Length of Lens"
+msgstr "Krátká ohnisková vzdálenost"
+
+#: libexif/canon/mnote-canon-tag.c:77
+msgid "Focal Units per mm"
+msgstr "Ohniskové jednotky na mm"
+
+#: libexif/canon/mnote-canon-tag.c:78
+msgid "Maximal Aperture"
+msgstr "Maximální clona"
+
+#: libexif/canon/mnote-canon-tag.c:79
+msgid "Minimal Aperture"
+msgstr "Minimální clona"
+
+#: libexif/canon/mnote-canon-tag.c:80
+msgid "Flash Activity"
+msgstr "Aktivita blesku"
+
+#: libexif/canon/mnote-canon-tag.c:81
+msgid "Flash Details"
+msgstr "Detaily blesku"
+
+#: libexif/canon/mnote-canon-tag.c:83
+msgid "AE Setting"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:84
+msgid "Image Stabilization"
+msgstr "Stabilizace obrazu"
+
+#: libexif/canon/mnote-canon-tag.c:85
+msgid "Display Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:86
+msgid "Zoom Source Width"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:87
+msgid "Zoom Target Width"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:88
+msgid "Photo Effect"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:89 libexif/canon/mnote-canon-tag.c:118
+msgid "Manual Flash Output"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:90
+msgid "Color Tone"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:91
+msgid "Focal Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:93
+msgid "Focal Plane X Size"
+msgstr "Šířka ohniskové roviny"
+
+#: libexif/canon/mnote-canon-tag.c:94
+msgid "Focal Plane Y Size"
+msgstr "Výška ohniskové roviny"
+
+#: libexif/canon/mnote-canon-tag.c:95
+msgid "Auto ISO"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:96
+msgid "Shot ISO"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:97
+msgid "Measured EV"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:98
+msgid "Target Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:99
+msgid "Target Exposure Time"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:100 libexif/olympus/mnote-olympus-tag.c:129
+#: libexif/pentax/mnote-pentax-tag.c:81
+msgid "Exposure Compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:101 libexif/canon/mnote-canon-tag.c:123
+#: libexif/exif-tag.c:800 libexif/fuji/mnote-fuji-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:41
+#: libexif/olympus/mnote-olympus-tag.c:98 libexif/pentax/mnote-pentax-tag.c:41
+#: libexif/pentax/mnote-pentax-tag.c:84 libexif/pentax/mnote-pentax-tag.c:124
+msgid "White Balance"
+msgstr "Vyvážení bílé"
+
+#: libexif/canon/mnote-canon-tag.c:102
+msgid "Slow Shutter"
+msgstr "Pomalá uzávěrka"
+
+#: libexif/canon/mnote-canon-tag.c:103
+msgid "Sequence Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:104
+msgid "Flash Guide Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:106 libexif/olympus/mnote-olympus-tag.c:52
+#: libexif/pentax/mnote-pentax-tag.c:109
+msgid "Flash Exposure Compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:107
+msgid "AE Bracketing"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:108
+msgid "AE Bracket Value"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:109
+msgid "Focus Distance Upper"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:110
+msgid "Focus Distance Lower"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:111
+msgid "FNumber"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:112 libexif/exif-tag.c:466
+#: libexif/pentax/mnote-pentax-tag.c:78
+msgid "Exposure Time"
+msgstr "Expoziční čas"
+
+#: libexif/canon/mnote-canon-tag.c:113
+msgid "Bulb Duration"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:114
+msgid "Camera Type"
+msgstr "Typ fotoaparátu"
+
+#: libexif/canon/mnote-canon-tag.c:115
+msgid "Auto Rotate"
+msgstr "Automatické otočení"
+
+#: libexif/canon/mnote-canon-tag.c:116
+msgid "ND Filter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:119
+msgid "Panorama Frame"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:120
+msgid "Panorama Direction"
+msgstr "Směr panoramatu"
+
+#: libexif/canon/mnote-canon-tag.c:121
+msgid "Tone Curve"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:122
+msgid "Sharpness Frequency"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:124
+msgid "Picture Style"
+msgstr ""
+
+#: libexif/exif-byte-order.c:33
+msgid "Motorola"
+msgstr "Motorola"
+
+#: libexif/exif-byte-order.c:35
+msgid "Intel"
+msgstr "Intel"
+
+#: libexif/exif-data.c:780
+msgid "Size of data too small to allow for EXIF data."
+msgstr "Příliš málo dat pro EXIF data."
+
+#: libexif/exif-data.c:841
+msgid "EXIF marker not found."
+msgstr "EXIF marker nebyl nalezen."
+
+#: libexif/exif-data.c:868
+msgid "EXIF header not found."
+msgstr "Hlavička dat EXIF nebyla nalezena."
+
+#: libexif/exif-data.c:884
+msgid "Unknown encoding."
+msgstr "Neznámé kódování"
+
+#: libexif/exif-data.c:1168
+msgid "Ignore unknown tags"
+msgstr "Ignorovat neznámé značky"
+
+#: libexif/exif-data.c:1169
+msgid "Ignore unknown tags when loading EXIF data."
+msgstr "Ignorovat neznámé značky při načítání EXIF dat."
+
+#: libexif/exif-data.c:1170
+msgid "Follow specification"
+msgstr "Dodržovat specifikaci"
+
+#: libexif/exif-data.c:1171
+msgid ""
+"Add, correct and remove entries to get EXIF data that follows the "
+"specification."
+msgstr ""
+"Dodržovat specifikaci EXIF dat pomocí přidání, opravení nebo odstranění "
+"položek."
+
+#: libexif/exif-data.c:1173
+msgid "Do not change maker note"
+msgstr "Neměnit maker note"
+
+#: libexif/exif-data.c:1174
+msgid ""
+"When loading and resaving Exif data, save the maker note unmodified. Be "
+"aware that the maker note can get corrupted."
+msgstr ""
+"Neměnit maker note při načítání a ukládání dat Exif. Konzistence maker note "
+"tak ale může být poškozena."
+
+#: libexif/exif-entry.c:234 libexif/exif-entry.c:303 libexif/exif-entry.c:336
+#, c-format
+msgid ""
+"Tag '%s' was of format '%s' (which is against specification) and has been "
+"changed to format '%s'."
+msgstr ""
+"Značka '%s' měla typ '%s', což odporovalo specifikaci, proto byla změněna na "
+"typ '%s'."
+
+#: libexif/exif-entry.c:271
+#, c-format
+msgid ""
+"Tag '%s' is of format '%s' (which is against specification) but cannot be "
+"changed to format '%s'."
+msgstr ""
+"Značka '%s' má typ '%s', což odporuje specifikaci, ale nemuže být změněna na "
+"typ '%s'."
+
+#: libexif/exif-entry.c:354
+#, c-format
+msgid ""
+"Tag 'UserComment' had invalid format '%s'. Format has been set to "
+"'undefined'."
+msgstr ""
+"Značka 'Komentář' měla špatný typ '%s', proto byla změněna na typ "
+"'nedefinováno'."
+
+#: libexif/exif-entry.c:381
+msgid ""
+"Tag 'UserComment' has been expanded to at least 8 bytes in order to follow "
+"the specification."
+msgstr ""
+"Značka 'Komentář' byla zvětšena na alespoň 8 bajtů, aby odpovídala "
+"specifikaci."
+
+#: libexif/exif-entry.c:396
+msgid ""
+"Tag 'UserComment' is not empty but does not start with a format identifier. "
+"This has been fixed."
+msgstr ""
+"Značka 'Komentář' nebyla prázdná a ani nezačínala identifikátorem typu, což "
+"bylo nyní spraveno."
+
+#: libexif/exif-entry.c:424
+msgid ""
+"Tag 'UserComment' did not start with a format identifier. This has been "
+"fixed."
+msgstr ""
+"Značka 'Komentář' nezačínala identifikátorem typu, což nyní bylo spraveno."
+
+#: libexif/exif-entry.c:462
+#, c-format
+msgid "%i bytes undefined data"
+msgstr "%i bajtů neznámých dat"
+
+#: libexif/exif-entry.c:589
+#, c-format
+msgid "%i bytes unsupported data type"
+msgstr "%i bajtů dat neznámého typu"
+
+#: libexif/exif-entry.c:622
+#, c-format
+msgid "The tag '%s' contains data of an invalid format ('%s', expected '%s')."
+msgstr "Značka '%s' obsahuje data špatného typu ('%s', očekáváno '%s')."
+
+#: libexif/exif-entry.c:635
+#, c-format
+msgid ""
+"The tag '%s' contains an invalid number of components (%i, expected %i)."
+msgstr "Značka '%s' obsahuje špatný počet položek (%i, očekáváno %i)."
+
+#: libexif/exif-entry.c:649
+msgid "Chunky format"
+msgstr ""
+
+#: libexif/exif-entry.c:649
+msgid "Planar format"
+msgstr ""
+
+#: libexif/exif-entry.c:651 libexif/exif-entry.c:743
+#: test/nls/test-codeset.c:54
+msgid "Not defined"
+msgstr "Nedefinováno"
+
+#: libexif/exif-entry.c:651
+msgid "One-chip color area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:652
+msgid "Two-chip color area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:652
+msgid "Three-chip color area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:653
+msgid "Color sequential area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:653
+msgid "Trilinear sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:654
+msgid "Color sequential linear sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:233
+msgid "Top-left"
+msgstr "Nahoře vlevo"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:235
+msgid "Top-right"
+msgstr "Nahoře vpravo"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:241
+msgid "Bottom-right"
+msgstr "Dole vpravo"
+
+#: libexif/exif-entry.c:657 libexif/pentax/mnote-pentax-entry.c:239
+msgid "Bottom-left"
+msgstr "Dole vlevo"
+
+#: libexif/exif-entry.c:657
+msgid "Left-top"
+msgstr "Vlevo nahoře"
+
+#: libexif/exif-entry.c:657
+msgid "Right-top"
+msgstr "Vpravo nahoře"
+
+#: libexif/exif-entry.c:658
+msgid "Right-bottom"
+msgstr "Vpravo dole"
+
+#: libexif/exif-entry.c:658
+msgid "Left-bottom"
+msgstr "Vlevo dole"
+
+#: libexif/exif-entry.c:660
+msgid "Centered"
+msgstr "Uprostřed"
+
+#: libexif/exif-entry.c:660
+msgid "Co-sited"
+msgstr ""
+
+#: libexif/exif-entry.c:662
+msgid "Reversed mono"
+msgstr "Negativní černobílý"
+
+#: libexif/exif-entry.c:662
+msgid "Normal mono"
+msgstr "Černobílý"
+
+#: libexif/exif-entry.c:662
+msgid "RGB"
+msgstr "RGB"
+
+#: libexif/exif-entry.c:662
+msgid "Palette"
+msgstr "Paleta"
+
+#: libexif/exif-entry.c:663
+msgid "CMYK"
+msgstr "CMYK"
+
+#: libexif/exif-entry.c:663
+msgid "YCbCr"
+msgstr "YCbCr"
+
+#: libexif/exif-entry.c:663
+msgid "CieLAB"
+msgstr "CieLAB"
+
+#: libexif/exif-entry.c:665
+msgid "Normal process"
+msgstr ""
+
+#: libexif/exif-entry.c:665
+msgid "Custom process"
+msgstr ""
+
+#: libexif/exif-entry.c:667
+msgid "Auto exposure"
+msgstr "Automatická expozice"
+
+#: libexif/exif-entry.c:667 libexif/fuji/mnote-fuji-entry.c:139
+msgid "Manual exposure"
+msgstr "Ruční expozice"
+
+#: libexif/exif-entry.c:667
+msgid "Auto bracket"
+msgstr ""
+
+#: libexif/exif-entry.c:669
+msgid "Auto white balance"
+msgstr "Automatické vyvážení bílé"
+
+#: libexif/exif-entry.c:669
+msgid "Manual white balance"
+msgstr "Ruční vyvážení bílé"
+
+#: libexif/exif-entry.c:674
+msgid "Low gain up"
+msgstr ""
+
+#: libexif/exif-entry.c:674
+msgid "High gain up"
+msgstr ""
+
+#: libexif/exif-entry.c:675
+msgid "Low gain down"
+msgstr ""
+
+#: libexif/exif-entry.c:675
+msgid "High gain down"
+msgstr ""
+
+#: libexif/exif-entry.c:677
+msgid "Low saturation"
+msgstr "Nízká sytost"
+
+#: libexif/exif-entry.c:677 test/nls/test-codeset.c:48
+#: test/nls/test-codeset.c:61
+msgid "High saturation"
+msgstr "Vysoká sytost"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:63
+#: libexif/olympus/mnote-olympus-entry.c:205
+#: libexif/olympus/mnote-olympus-entry.c:214
+#: libexif/pentax/mnote-pentax-entry.c:106
+#: libexif/pentax/mnote-pentax-entry.c:170
+msgid "Soft"
+msgstr ""
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:65 libexif/fuji/mnote-fuji-entry.c:95
+#: libexif/olympus/mnote-olympus-entry.c:204
+#: libexif/olympus/mnote-olympus-entry.c:212
+#: libexif/pentax/mnote-pentax-entry.c:107
+msgid "Hard"
+msgstr ""
+
+#: libexif/exif-entry.c:695 libexif/exif-entry.c:713 libexif/exif-entry.c:795
+#: libexif/olympus/mnote-olympus-entry.c:589
+#: libexif/olympus/mnote-olympus-entry.c:683
+#: libexif/olympus/mnote-olympus-entry.c:738
+#: libexif/pentax/mnote-pentax-entry.c:256
+msgid "Unknown"
+msgstr "Neznámý"
+
+#: libexif/exif-entry.c:696
+msgid "Avg"
+msgstr "Průměrný"
+
+#: libexif/exif-entry.c:697
+msgid "Center-weight"
+msgstr "Uprostřed - vpravo"
+
+#: libexif/exif-entry.c:699
+msgid "Multi spot"
+msgstr "Vícenásobný"
+
+#: libexif/exif-entry.c:700
+msgid "Pattern"
+msgstr "Vzorkování"
+
+#: libexif/exif-entry.c:705
+msgid "Uncompressed"
+msgstr "Nekomprimováno"
+
+#: libexif/exif-entry.c:706
+msgid "LZW compression"
+msgstr "Komprese LZW"
+
+#: libexif/exif-entry.c:707 libexif/exif-entry.c:708
+msgid "JPEG compression"
+msgstr "Komprese JPEG"
+
+#: libexif/exif-entry.c:709
+msgid "Deflate/ZIP compression"
+msgstr "Komprese Deflate/ZIP"
+
+#: libexif/exif-entry.c:710
+msgid "PackBits compression"
+msgstr "Komprese PackBits"
+
+#: libexif/exif-entry.c:716
+msgid "Tungsten incandescent light"
+msgstr ""
+
+#: libexif/exif-entry.c:718
+msgid "Fine weather"
+msgstr "Pěkné počasí"
+
+#: libexif/exif-entry.c:719
+msgid "Cloudy weather"
+msgstr "Oblačné počasí"
+
+#: libexif/exif-entry.c:722 libexif/fuji/mnote-fuji-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:252
+msgid "Day white fluorescent"
+msgstr ""
+
+#: libexif/exif-entry.c:723
+msgid "Cool white fluorescent"
+msgstr ""
+
+#: libexif/exif-entry.c:724 libexif/fuji/mnote-fuji-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:253
+msgid "White fluorescent"
+msgstr ""
+
+#: libexif/exif-entry.c:725
+msgid "Standard light A"
+msgstr "Standardní světlo A"
+
+#: libexif/exif-entry.c:726
+msgid "Standard light B"
+msgstr "Standardní světlo B"
+
+#: libexif/exif-entry.c:727
+msgid "Standard light C"
+msgstr "Standardní světlo C"
+
+#: libexif/exif-entry.c:728
+msgid "D55"
+msgstr "D55"
+
+#: libexif/exif-entry.c:729
+msgid "D65"
+msgstr "D65"
+
+#: libexif/exif-entry.c:730
+msgid "D75"
+msgstr "D75"
+
+#: libexif/exif-entry.c:731
+msgid "ISO studio tungsten"
+msgstr ""
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "Inch"
+msgstr "Palec"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "in"
+msgstr "palec"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "Centimeter"
+msgstr "cm"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "cm"
+msgstr "cm"
+
+#: libexif/exif-entry.c:745
+msgid "Normal program"
+msgstr "Normální program"
+
+#: libexif/exif-entry.c:746
+msgid "Aperture priority"
+msgstr "S předvolbou clony"
+
+#: libexif/exif-entry.c:746 libexif/exif-tag.c:550
+msgid "Aperture"
+msgstr "Clona"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter priority"
+msgstr ""
+
+#: libexif/exif-entry.c:747
+msgid "Shutter"
+msgstr "Clona"
+
+#: libexif/exif-entry.c:748
+msgid "Creative program (biased toward depth of field)"
+msgstr ""
+
+#: libexif/exif-entry.c:749
+msgid "Creative"
+msgstr ""
+
+#: libexif/exif-entry.c:750
+msgid "Creative program (biased toward fast shutter speed)"
+msgstr ""
+
+#: libexif/exif-entry.c:751
+msgid "Action"
+msgstr ""
+
+#: libexif/exif-entry.c:752
+msgid "Portrait mode (for closeup photos with the background out of focus)"
+msgstr "Režim na šířku (pro focení na blízko, bez důrazu na objekty v pozadí)"
+
+#: libexif/exif-entry.c:754
+msgid "Landscape mode (for landscape photos with the background in focus)"
+msgstr "Režim na výšku (pro focení na dálku, s důrazem na pozadí)"
+
+#: libexif/exif-entry.c:758 libexif/exif-entry.c:763
+#: libexif/olympus/mnote-olympus-entry.c:97
+msgid "Flash did not fire"
+msgstr "Blesk nebleskl"
+
+#: libexif/exif-entry.c:758
+msgid "No flash"
+msgstr "Bez blesku"
+
+#: libexif/exif-entry.c:759
+msgid "Flash fired"
+msgstr "Blesk bleskl"
+
+#: libexif/exif-entry.c:759 libexif/olympus/mnote-olympus-entry.c:170
+#: libexif/olympus/mnote-olympus-entry.c:175
+#: libexif/olympus/mnote-olympus-entry.c:209
+#: libexif/olympus/mnote-olympus-entry.c:218
+#: libexif/olympus/mnote-olympus-entry.c:241
+msgid "Yes"
+msgstr "Ano"
+
+#: libexif/exif-entry.c:760
+msgid "Strobe return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:760
+msgid "Without strobe"
+msgstr ""
+
+#: libexif/exif-entry.c:762
+msgid "Strobe return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:762
+msgid "With strobe"
+msgstr ""
+
+#: libexif/exif-entry.c:764
+msgid "Flash fired, compulsory flash mode"
+msgstr "Blesk bleskl, blesk zapnut"
+
+#: libexif/exif-entry.c:765
+msgid "Flash fired, compulsory flash mode, return light not detected"
+msgstr "Blesk bleskl, blesk zapnut, odraz světla nedetekován"
+
+#: libexif/exif-entry.c:767
+msgid "Flash fired, compulsory flash mode, return light detected"
+msgstr "Blesk bleskl, blesk zapnut, odraz světla detekován"
+
+#: libexif/exif-entry.c:769
+msgid "Flash did not fire, compulsory flash mode"
+msgstr "Blesk nebleskl, blesk zapnut"
+
+#: libexif/exif-entry.c:770
+msgid "Flash did not fire, auto mode"
+msgstr "Blesk nebleskl, automatický režim"
+
+#: libexif/exif-entry.c:771
+msgid "Flash fired, auto mode"
+msgstr "Blesk bleskl, automatický režim"
+
+#: libexif/exif-entry.c:772
+msgid "Flash fired, auto mode, return light not detected"
+msgstr "Blesk bleskl, automatický režim, odraz světla nedetekován"
+
+#: libexif/exif-entry.c:774
+msgid "Flash fired, auto mode, return light detected"
+msgstr "Blesk bleskl, automatický režim, odraz světla detekován"
+
+#: libexif/exif-entry.c:775
+msgid "No flash function"
+msgstr "Bez blesku"
+
+#: libexif/exif-entry.c:776
+msgid "Flash fired, red-eye reduction mode"
+msgstr "Blesk bleskl, režim redukce červených očí"
+
+#: libexif/exif-entry.c:777
+msgid "Flash fired, red-eye reduction mode, return light not detected"
+msgstr "Blesk bleskl, režim redukce červených očí, odraz světla nedetekován"
+
+#: libexif/exif-entry.c:779
+msgid "Flash fired, red-eye reduction mode, return light detected"
+msgstr "Blesk bleskl, režim redukce červených očí, odraz světla detekován"
+
+#: libexif/exif-entry.c:781
+msgid "Flash fired, compulsory flash mode, red-eye reduction mode"
+msgstr "Blesk bleskl, blesk zapnut, režim redukce červených očí"
+
+#: libexif/exif-entry.c:783
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light not "
+"detected"
+msgstr ""
+"Blesk bleskl, blesk zapnut, režim redukce červených očí, odraz světla "
+"nedetekován"
+
+#: libexif/exif-entry.c:785
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light "
+"detected"
+msgstr ""
+"Blesk bleskl, blesk zapnut, režim redukce červených očí, odraz světla "
+"detekován"
+
+#: libexif/exif-entry.c:787
+msgid "Flash did not fire, auto mode, red-eye reduction mode"
+msgstr "Blesk nebleskl, automatický režim, režim redukce červených očí"
+
+#: libexif/exif-entry.c:788
+msgid "Flash fired, auto mode, red-eye reduction mode"
+msgstr "Blesk bleskl, automatický režim, režim redukce červených očí"
+
+#: libexif/exif-entry.c:789
+msgid ""
+"Flash fired, auto mode, return light not detected, red-eye reduction mode"
+msgstr ""
+"Blesk bleskl, automatický režim, režim redukce červených očí, odraz světla "
+"nedetekován"
+
+#: libexif/exif-entry.c:791
+msgid "Flash fired, auto mode, return light detected, red-eye reduction mode"
+msgstr ""
+"Blesk bleskl, automatický režim, režim redukce červených očí, odraz světla "
+"detekován"
+
+#: libexif/exif-entry.c:795
+msgid "?"
+msgstr "?"
+
+#: libexif/exif-entry.c:797
+msgid "Close view"
+msgstr "Blízký pohled"
+
+#: libexif/exif-entry.c:798
+msgid "Distant view"
+msgstr "Vzdálený pohled"
+
+#: libexif/exif-entry.c:798
+msgid "Distant"
+msgstr "Vzdáleno"
+
+#: libexif/exif-entry.c:801
+msgid "sRGB"
+msgstr "sRGB"
+
+#: libexif/exif-entry.c:802
+msgid "Adobe RGB"
+msgstr "Adobe RGB"
+
+#: libexif/exif-entry.c:803
+msgid "Uncalibrated"
+msgstr "Nekalibrovaný"
+
+#: libexif/exif-entry.c:857
+#, c-format
+msgid "Invalid size of entry (%i, expected %li x %i)."
+msgstr "Chybná velikost položky (%i, očekáváno %li x %i)"
+
+#: libexif/exif-entry.c:890
+msgid "Unsupported UNICODE string"
+msgstr "Nepodporovaný text v Unicode"
+
+#: libexif/exif-entry.c:898
+msgid "Unsupported JIS string"
+msgstr "Nepodporaovný text v kódování JIS"
+
+#: libexif/exif-entry.c:914
+msgid "Tag UserComment does not comply with standard but contains data."
+msgstr "Značka Komentář neodpovídá specifikaci, avšak obsahuje data."
+
+#: libexif/exif-entry.c:918
+#, c-format
+msgid "Byte at position %i: 0x%02x"
+msgstr "Bajt na pozici %i: 0x%02x"
+
+#: libexif/exif-entry.c:927
+msgid "Unknown Exif Version"
+msgstr "Neznámá verze Exif"
+
+#: libexif/exif-entry.c:931
+#, c-format
+msgid "Exif Version %d.%d"
+msgstr "Exif verze %d.%d"
+
+#: libexif/exif-entry.c:942
+msgid "FlashPix Version 1.0"
+msgstr "FlashPix verze 1.0"
+
+#: libexif/exif-entry.c:944
+msgid "FlashPix Version 1.01"
+msgstr "FlashPix verze 1.01"
+
+#: libexif/exif-entry.c:946
+msgid "Unknown FlashPix Version"
+msgstr "Neznámá verze FlashPix"
+
+#: libexif/exif-entry.c:959 libexif/exif-entry.c:972 libexif/exif-entry.c:1628
+#: libexif/exif-entry.c:1633 libexif/exif-entry.c:1637
+#: libexif/exif-entry.c:1642 libexif/exif-entry.c:1643
+msgid "[None]"
+msgstr "[Žádný]"
+
+#: libexif/exif-entry.c:961
+msgid "(Photographer)"
+msgstr "(Fotograf)"
+
+#: libexif/exif-entry.c:975
+msgid "(Editor)"
+msgstr "(Editor)"
+
+#: libexif/exif-entry.c:999 libexif/exif-entry.c:1079
+#: libexif/exif-entry.c:1096 libexif/exif-entry.c:1140
+#, c-format
+msgid "%.02f EV"
+msgstr "%.02f EV"
+
+#: libexif/exif-entry.c:1000
+#, c-format
+msgid " (f/%.01f)"
+msgstr " (f/%.01f)"
+
+#: libexif/exif-entry.c:1034
+#, c-format
+msgid " (35 equivalent: %d mm)"
+msgstr " (35 ekvivalent: %d mm)"
+
+#: libexif/exif-entry.c:1067 libexif/exif-entry.c:1068
+msgid " sec."
+msgstr " s"
+
+#: libexif/exif-entry.c:1082
+#, c-format
+msgid " (1/%d sec.)"
+msgstr " (1/%d s)"
+
+#: libexif/exif-entry.c:1084
+#, c-format
+msgid " (%d sec.)"
+msgstr " (%d s)"
+
+#: libexif/exif-entry.c:1097
+#, c-format
+msgid " (%.02f cd/m^2)"
+msgstr " (%.02f cd/m^2)"
+
+#: libexif/exif-entry.c:1107
+msgid "DSC"
+msgstr "DSC"
+
+#: libexif/exif-entry.c:1109 libexif/exif-entry.c:1149
+#: libexif/exif-entry.c:1236 libexif/exif-entry.c:1287
+#: libexif/exif-entry.c:1296 libexif/exif-entry.c:1332
+#: libexif/fuji/mnote-fuji-entry.c:236 libexif/fuji/mnote-fuji-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:359
+#, c-format
+msgid "Internal error (unknown value %i)"
+msgstr "Vnitřní chyba (neznámá hodnota %i)"
+
+#: libexif/exif-entry.c:1117
+msgid "-"
+msgstr "-"
+
+#: libexif/exif-entry.c:1118
+msgid "Y"
+msgstr "Y"
+
+#: libexif/exif-entry.c:1119
+msgid "Cb"
+msgstr "Cb"
+
+#: libexif/exif-entry.c:1120
+msgid "Cr"
+msgstr "Cr"
+
+#: libexif/exif-entry.c:1121
+msgid "R"
+msgstr "R"
+
+#: libexif/exif-entry.c:1122
+msgid "G"
+msgstr "G"
+
+#: libexif/exif-entry.c:1123
+msgid "B"
+msgstr "B"
+
+#: libexif/exif-entry.c:1124
+msgid "Reserved"
+msgstr "Rezervováno"
+
+#: libexif/exif-entry.c:1147
+msgid "Directly photographed"
+msgstr "Přímo fotografováno"
+
+#: libexif/exif-entry.c:1160
+msgid "YCbCr4:2:2"
+msgstr "YCbCr4:2:2"
+
+#: libexif/exif-entry.c:1162
+msgid "YCbCr4:2:0"
+msgstr "YCbCr4:2:0"
+
+#: libexif/exif-entry.c:1179
+#, c-format
+msgid "Within distance %i of (x,y) = (%i,%i)"
+msgstr "Do vzdálenosti %d od (x,y) = (%i,%i)"
+
+#: libexif/exif-entry.c:1188
+#, c-format
+msgid "Within rectangle (width %i, height %i) around (x,y) = (%i,%i)"
+msgstr "V obdélníku (šířka %i, výška %i) okolo (x,y) = (%i,%i)"
+
+#: libexif/exif-entry.c:1194
+#, c-format
+msgid "Unexpected number of components (%li, expected 2, 3, or 4)."
+msgstr "Neočekávaný počet položek (%li, očekáváno 2, 3 nebo 4)."
+
+#: libexif/exif-entry.c:1232
+msgid "Sea level"
+msgstr ""
+
+#: libexif/exif-entry.c:1234
+msgid "Sea level reference"
+msgstr ""
+
+#: libexif/exif-entry.c:1342
+#, c-format
+msgid "Unknown value %i"
+msgstr "Neznámá hodnota %i"
+
+#: libexif/exif-format.c:37
+msgid "Short"
+msgstr "Short Int"
+
+#: libexif/exif-format.c:38
+msgid "Rational"
+msgstr "Rational"
+
+#: libexif/exif-format.c:39
+msgid "SRational"
+msgstr "SRational"
+
+#: libexif/exif-format.c:40
+msgid "Undefined"
+msgstr "Nedefinováno"
+
+#: libexif/exif-format.c:41
+msgid "ASCII"
+msgstr "ASCII"
+
+#: libexif/exif-format.c:42
+msgid "Long"
+msgstr "Long Int"
+
+#: libexif/exif-format.c:43
+msgid "Byte"
+msgstr "Byte"
+
+#: libexif/exif-format.c:44
+msgid "SByte"
+msgstr "SByte"
+
+#: libexif/exif-format.c:45
+msgid "SShort"
+msgstr "SShort"
+
+#: libexif/exif-format.c:46
+msgid "SLong"
+msgstr "SLong"
+
+#: libexif/exif-format.c:47
+msgid "Float"
+msgstr "Float"
+
+#: libexif/exif-format.c:48
+msgid "Double"
+msgstr "Double"
+
+#: libexif/exif-loader.c:119
+#, c-format
+msgid "The file '%s' could not be opened."
+msgstr "Soubor '%s' nelze otevřít."
+
+#: libexif/exif-loader.c:300
+msgid "The data supplied does not seem to contain EXIF data."
+msgstr "Poskytnutá data neobsahují EXIF data."
+
+#: libexif/exif-log.c:43
+msgid "Debugging information"
+msgstr "Ladicí informace"
+
+#: libexif/exif-log.c:44
+msgid "Debugging information is available."
+msgstr "Ladicí informace jsou k dispozici."
+
+#: libexif/exif-log.c:45
+msgid "Not enough memory"
+msgstr "Nedostatek paměti"
+
+#: libexif/exif-log.c:46
+msgid "The system cannot provide enough memory."
+msgstr "Systém není schopen dodat dostatek paměti."
+
+#: libexif/exif-log.c:47
+msgid "Corrupt data"
+msgstr "Poškozená data"
+
+#: libexif/exif-log.c:48
+msgid "The data provided does not follow the specification."
+msgstr "Poskytnutá data neodpovídají specifikaci."
+
+#: libexif/exif-tag.c:62
+msgid "GPS Tag Version"
+msgstr "Verze značky GPS"
+
+#: libexif/exif-tag.c:63
+msgid ""
+"Indicates the version of <GPSInfoIFD>. The version is given as 2.0.0.0. This "
+"tag is mandatory when <GPSInfo> tag is present. (Note: The <GPSVersionID> "
+"tag is given in bytes, unlike the <ExifVersion> tag. When the version is "
+"2.0.0.0, the tag value is 02000000.H)."
+msgstr ""
+
+#: libexif/exif-tag.c:69
+msgid "Interoperability Index"
+msgstr ""
+
+#: libexif/exif-tag.c:70
+msgid ""
+"Indicates the identification of the Interoperability rule. Use \"R98\" for "
+"stating ExifR98 Rules. Four bytes used including the termination code "
+"(NULL). see the separate volume of Recommended Exif Interoperability Rules "
+"(ExifR98) for other tags used for ExifR98."
+msgstr ""
+
+#: libexif/exif-tag.c:76
+msgid "North or South Latitude"
+msgstr "Směr zeměpisné šířky"
+
+#: libexif/exif-tag.c:77
+msgid ""
+"Indicates whether the latitude is north or south latitude. The ASCII value "
+"'N' indicates north latitude, and 'S' is south latitude."
+msgstr ""
+"Určuje, zda zeměpisná šířka je severní nebo jižní. Znak 'N' určuje severní "
+"šířku, znak 'S' určuje jižní šířku."
+
+#: libexif/exif-tag.c:81
+msgid "Interoperability Version"
+msgstr ""
+
+#: libexif/exif-tag.c:83
+msgid "Latitude"
+msgstr "Zeměpisná šířka"
+
+#: libexif/exif-tag.c:84
+msgid ""
+"Indicates the latitude. The latitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is dd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is dd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:91
+msgid "East or West Longitude"
+msgstr "Směr zeměpisné délky"
+
+#: libexif/exif-tag.c:92
+msgid ""
+"Indicates whether the longitude is east or west longitude. ASCII 'E' "
+"indicates east longitude, and 'W' is west longitude."
+msgstr ""
+"Určuje, zda zeměpisná délka je západní nebo východní. Znak 'W' určuje "
+"západní délku, znak 'E' určuje východní délku."
+
+#: libexif/exif-tag.c:95
+msgid "Longitude"
+msgstr "Zeměpisná délka"
+
+#: libexif/exif-tag.c:96
+msgid ""
+"Indicates the longitude. The longitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is ddd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is ddd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:103
+msgid "Altitude Reference"
+msgstr ""
+
+#: libexif/exif-tag.c:104
+msgid ""
+"Indicates the altitude used as the reference altitude. If the reference is "
+"sea level and the altitude is above sea level, 0 is given. If the altitude "
+"is below sea level, a value of 1 is given and the altitude is indicated as "
+"an absolute value in the GSPAltitude tag. The reference unit is meters. Note "
+"that this tag is BYTE type, unlike other reference tags."
+msgstr ""
+
+#: libexif/exif-tag.c:110
+msgid "Altitude"
+msgstr ""
+
+#: libexif/exif-tag.c:111
+msgid ""
+"Indicates the altitude based on the reference in GPSAltitudeRef. Altitude is "
+"expressed as one RATIONAL value. The reference unit is meters."
+msgstr ""
+
+#: libexif/exif-tag.c:114
+msgid "GPS Time (Atomic Clock)"
+msgstr "Čas GPS (atomový čas)"
+
+#: libexif/exif-tag.c:115
+msgid ""
+"Indicates the time as UTC (Coordinated Universal Time). TimeStamp is "
+"expressed as three RATIONAL values giving the hour, minute, and second."
+msgstr ""
+
+#: libexif/exif-tag.c:118
+msgid "GPS Satellites"
+msgstr ""
+
+#: libexif/exif-tag.c:119
+msgid ""
+"Indicates the GPS satellites used for measurements. This tag can be used to "
+"describe the number of satellites, their ID number, angle of elevation, "
+"azimuth, SNR and other information in ASCII notation. The format is not "
+"specified. If the GPS receiver is incapable of taking measurements, value of "
+"the tag shall be set to NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:125
+msgid "GPS Receiver Status"
+msgstr ""
+
+#: libexif/exif-tag.c:126
+msgid ""
+"Indicates the status of the GPS receiver when the image is recorded. 'A' "
+"means measurement is in progress, and 'V' means the measurement is "
+"Interoperability."
+msgstr ""
+
+#: libexif/exif-tag.c:129
+msgid "GPS Measurement Mode"
+msgstr "Režim měření GPS"
+
+#: libexif/exif-tag.c:130
+msgid ""
+"Indicates the GPS measurement mode. '2' means two-dimensional measurement "
+"and '3' means three-dimensional measurement is in progress."
+msgstr ""
+
+#: libexif/exif-tag.c:133
+msgid "Measurement Precision"
+msgstr "Přesnost měření"
+
+#: libexif/exif-tag.c:134
+msgid ""
+"Indicates the GPS DOP (data degree of precision). An HDOP value is written "
+"during two-dimensional measurement, and PDOP during three-dimensional "
+"measurement."
+msgstr ""
+
+#: libexif/exif-tag.c:137
+msgid "Speed Unit"
+msgstr "Jednotka rychlosti"
+
+#: libexif/exif-tag.c:138
+msgid ""
+"Indicates the unit used to express the GPS receiver speed of movement. 'K', "
+"'M' and 'N' represent kilometers per hour, miles per hour, and knots."
+msgstr ""
+"Jednotka použitá pro rychlost pohybu GPS přijímače. Písmena 'K', 'M' a 'N' "
+"udávají kilometry za hodinu, míle za hodinu, resp. uzly."
+
+#: libexif/exif-tag.c:141
+msgid "Speed of GPS Receiver"
+msgstr "Rychlost GPS přijímače"
+
+#: libexif/exif-tag.c:142
+msgid "Indicates the speed of GPS receiver movement."
+msgstr "Rychlost pohybu GPS přijímače."
+
+#: libexif/exif-tag.c:143
+msgid "Reference for direction of movement"
+msgstr ""
+
+#: libexif/exif-tag.c:144
+msgid ""
+"Indicates the reference for giving the direction of GPS receiver movement. "
+"'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:147
+msgid "Direction of Movement"
+msgstr "Směr pohybu"
+
+#: libexif/exif-tag.c:148
+msgid ""
+"Indicates the direction of GPS receiver movement. The range of values is "
+"from 0.00 to 359.99."
+msgstr "Směr pohybu GPS přijímače. Rozsah hodnot je 0 až 359,99."
+
+#: libexif/exif-tag.c:150
+msgid "GPS Image Direction Reference"
+msgstr ""
+
+#: libexif/exif-tag.c:151
+msgid ""
+"Indicates the reference for giving the direction of the image when it is "
+"captured. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:153
+msgid "GPS Image Direction"
+msgstr "Směr obrazu GPS"
+
+#: libexif/exif-tag.c:154
+msgid ""
+"Indicates the direction of the image when it was captured. The range of "
+"values is from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:156
+msgid "Geodetic Survey Data Used"
+msgstr ""
+
+#: libexif/exif-tag.c:157
+msgid ""
+"Indicates the geodetic survey data used by the GPS receiver. If the survey "
+"data is restricted to Japan, the value of this tag is 'TOKYO' or 'WGS-84'. "
+"If a GPS Info tag is recorded, it is strongly recommended that this tag be "
+"recorded."
+msgstr ""
+
+#: libexif/exif-tag.c:161
+msgid "Reference For Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:162
+msgid ""
+"Indicates whether the latitude of the destination point is north or south "
+"latitude. The ASCII value 'N' indicates north latitude, and 'S' is south "
+"latitude."
+msgstr ""
+"Určuje, zda zeměpisná šířka je severní nebo jižní. Znak 'N' určuje severní "
+"šířku, znak 'S' určuje jižní šířku."
+
+#: libexif/exif-tag.c:165
+msgid "Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:166
+msgid ""
+"Indicates the latitude of the destination point. The latitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If latitude is expressed as degrees, minutes and seconds, a "
+"typical format would be dd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be dd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:173
+msgid "Reference for Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:174
+msgid ""
+"Indicates whether the longitude of the destination point is east or west "
+"longitude. ASCII 'E' indicates east longitude, and 'W' is west longitude."
+msgstr ""
+"Určuje, zda zeměpisná délka je západní nebo východní. Znak 'W' určuje "
+"západní délku, znak 'E' určuje východní délku."
+
+#: libexif/exif-tag.c:177
+msgid "Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:178
+msgid ""
+"Indicates the longitude of the destination point. The longitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If longitude is expressed as degrees, minutes and seconds, a "
+"typical format would be ddd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be ddd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:186
+msgid "Reference for Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:187
+msgid ""
+"Indicates the reference used for giving the bearing to the destination "
+"point. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:190
+msgid "Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:191
+msgid ""
+"Indicates the bearing to the destination point. The range of values is from "
+"0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:193
+msgid "Reference for Distance to Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:194
+msgid ""
+"Indicates the unit used to express the distance to the destination point. "
+"'K', 'M' and 'N' represent kilometers, miles and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:197
+msgid "Distance to Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:198
+msgid "Indicates the distance to the destination point."
+msgstr "Vzdálenost fotografovaného objektu."
+
+#: libexif/exif-tag.c:199
+msgid "Name of GPS Processing Method"
+msgstr ""
+
+#: libexif/exif-tag.c:200
+msgid ""
+"A character string recording the name of the method used for location "
+"finding. The first byte indicates the character code used, and this is "
+"followed by the name of the method. Since the Type is not ASCII, NULL "
+"termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:205
+msgid "Name of GPS Area"
+msgstr ""
+
+#: libexif/exif-tag.c:206
+msgid ""
+"A character string recording the name of the GPS area. The first byte "
+"indicates the character code used, and this is followed by the name of the "
+"GPS area. Since the Type is not ASCII, NULL termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:210
+msgid "GPS Date"
+msgstr ""
+
+#: libexif/exif-tag.c:211
+msgid ""
+"A character string recording date and time information relative to UTC "
+"(Coordinated Universal Time). The format is \"YYYY:MM:DD\". The length of "
+"the string is 11 bytes including NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:215
+msgid "GPS Differential Correction"
+msgstr ""
+
+#: libexif/exif-tag.c:216
+msgid ""
+"Indicates whether differential correction is applied to the GPS receiver."
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "New Subfile Type"
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "A general indication of the kind of data contained in this subfile."
+msgstr "Rámcové určení typu dat v tomto obázku."
+
+#: libexif/exif-tag.c:222
+msgid "Image Width"
+msgstr "Šířka obrázku"
+
+#: libexif/exif-tag.c:223
+msgid ""
+"The number of columns of image data, equal to the number of pixels per row. "
+"In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+"Počet sloupečků v obrázku, neboli počet pixelů na řádek. V komprimovaných "
+"datech typu JPEG se používá speciální JPEG marker místo této značky."
+
+#: libexif/exif-tag.c:227
+msgid "Image Length"
+msgstr "Výška obrázku"
+
+#: libexif/exif-tag.c:228
+msgid ""
+"The number of rows of image data. In JPEG compressed data a JPEG marker is "
+"used instead of this tag."
+msgstr ""
+"Počet řádků v obrázku. V komprimovaných datech typu JPEG se používá "
+"speciální JPEG marker místo této značky."
+
+#: libexif/exif-tag.c:231
+msgid "Bits per Sample"
+msgstr "Počet bitů na komponentu"
+
+#: libexif/exif-tag.c:232
+msgid ""
+"The number of bits per image component. In this standard each component of "
+"the image is 8 bits, so the value for this tag is 8. See also "
+"<SamplesPerPixel>. In JPEG compressed data a JPEG marker is used instead of "
+"this tag."
+msgstr ""
+"Počet bitů na jednu barevnou složku. Pro digitální fotografie se obvykle "
+"používá 8 bitů. Viz též 'Počet komponent'. V komprimovaných datech typu JPEG "
+"se používá speciální JPEG marker místo této značky."
+
+#: libexif/exif-tag.c:237
+msgid "Compression"
+msgstr "Komprese"
+
+#: libexif/exif-tag.c:238
+msgid ""
+"The compression scheme used for the image data. When a primary image is JPEG "
+"compressed, this designation is not necessary and is omitted. When "
+"thumbnails use JPEG compression, this tag value is set to 6."
+msgstr ""
+"Kompresní schéma použité pro obrazoví data. Pokud primární obrázek je JPEG, "
+"pak se tato značka pro něj nepoužívá, neboť nemá význam. Nicméně se používá "
+"pro náhled, který obvykle bývá komprimován také metodou JPEG."
+
+#: libexif/exif-tag.c:244
+msgid "Photometric Interpretation"
+msgstr "Interpretace barev"
+
+#: libexif/exif-tag.c:245
+msgid ""
+"The pixel composition. In JPEG compressed data a JPEG marker is used instead "
+"of this tag."
+msgstr ""
+"Určuje barevný model obrázku nebo sadu inkoustů pro tisk. Např. RGB, CMYK, "
+"CieLAB. V komprimovaných datech typu JPEG se používá speciální JPEG marker "
+"místo této značky."
+
+#: libexif/exif-tag.c:249
+msgid "Fill Order"
+msgstr "Pořadí bitů v bajtu"
+
+#: libexif/exif-tag.c:251
+msgid "Document Name"
+msgstr "Jméno dokumentu"
+
+#: libexif/exif-tag.c:253
+msgid "Image Description"
+msgstr "Popis obrázku"
+
+#: libexif/exif-tag.c:254
+msgid ""
+"A character string giving the title of the image. It may be a comment such "
+"as \"1988 company picnic\" or the like. Two-bytes character codes cannot be "
+"used. When a 2-bytes code is necessary, the Exif Private tag <UserComment> "
+"is to be used."
+msgstr ""
+"Textový komentář popisující obrázek, např. \"firemní večírek\". Vícebajtové "
+"znakové sady (čínština, japonština, korejština) zde nemohou být použity, pro "
+"ně je určena soukromá EXIF značka 'Komentář uživatele'."
+
+#: libexif/exif-tag.c:260
+msgid "Manufacturer"
+msgstr "Výrobce"
+
+#: libexif/exif-tag.c:261
+msgid ""
+"The manufacturer of the recording equipment. This is the manufacturer of the "
+"DSC, scanner, video digitizer or other equipment that generated the image. "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+"Výrobce zařízení, které zaznamenalo obrazová data. Tj. výrobce fotoaparátu, "
+"skeneru, digitizéru apod. Je-li tato položka prázdná, pak je výrobce neznámý."
+
+#: libexif/exif-tag.c:267
+msgid "Model"
+msgstr ""
+
+#: libexif/exif-tag.c:268
+msgid ""
+"The model name or model number of the equipment. This is the model name or "
+"number of the DSC, scanner, video digitizer or other equipment that "
+"generated the image. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Model nebo typová řada zařízení, které zaznamenalo obrazová data. Tj. "
+"výrobce fotoaparátu, skeneru, digitizéru apod. Je-li tato položka prázdná, "
+"pak je výrobce neznámý."
+
+#: libexif/exif-tag.c:273
+msgid "Strip Offsets"
+msgstr "Pozice pásů v souboru"
+
+#: libexif/exif-tag.c:274
+msgid ""
+"For each strip, the byte offset of that strip. It is recommended that this "
+"be selected so the number of strip bytes does not exceed 64 Kbytes. With "
+"JPEG compressed data this designation is not needed and is omitted. See also "
+"<RowsPerStrip> and <StripByteCounts>."
+msgstr ""
+
+#: libexif/exif-tag.c:280
+msgid "Orientation"
+msgstr "Orientace"
+
+#: libexif/exif-tag.c:281
+msgid "The image orientation viewed in terms of rows and columns."
+msgstr ""
+"Určuje, z kterého rohu a kterým směrem se má obrázek vykreslovat při "
+"postupném čtení ze souboru."
+
+#: libexif/exif-tag.c:284
+msgid "Samples per Pixel"
+msgstr "Počet komponent"
+
+#: libexif/exif-tag.c:285
+msgid ""
+"The number of components per pixel. Since this standard applies to RGB and "
+"YCbCr images, the value set for this tag is 3. In JPEG compressed data a "
+"JPEG marker is used instead of this tag."
+msgstr ""
+"Počet barevných komponent na pixel. Pro digitální fotografie, jež se obvykle "
+"ukládájí v YCbCr nebo RGB barvách, je tato hodnota 3. Pro černobílé náhledy "
+"bývá 1. V komprimovaných datech typu JPEG se používá speciální JPEG marker "
+"místo této značky."
+
+#: libexif/exif-tag.c:290
+msgid "Rows per Strip"
+msgstr "Počet řádek na pás"
+
+#: libexif/exif-tag.c:291
+msgid ""
+"The number of rows per strip. This is the number of rows in the image of one "
+"strip when an image is divided into strips. With JPEG compressed data this "
+"designation is not needed and is omitted. See also <StripOffsets> and "
+"<StripByteCounts>."
+msgstr ""
+"Počet řádků v jednom pásu (rows per strip). Pro snadnější manipulaci obvykle "
+"bývá obrázek rozdělen do pásů o stejné výšce, která je uvedena v této "
+"značce. Viz též 'Strip offsets' a 'Počet bajtů na pás'."
+
+#: libexif/exif-tag.c:297
+msgid "Strip Byte Count"
+msgstr "Počet bajtů na pás"
+
+#: libexif/exif-tag.c:298
+msgid ""
+"The total number of bytes in each strip. With JPEG compressed data this "
+"designation is not needed and is omitted."
+msgstr ""
+"Počty bajtů v jednotlivých pásech (strip byte count), jak jsou "
+"(komprimované) uložené na disku. Údajů je tolik, kolik pásu. Díky kompresi "
+"se jednotlivé údaje mohou lišit."
+
+#: libexif/exif-tag.c:301
+msgid "X-Resolution"
+msgstr "Horizontální rozlišení"
+
+#: libexif/exif-tag.c:302
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageWidth> direction. "
+"When the image resolution is unknown, 72 [dpi] is designated."
+msgstr ""
+"Počet pixelů na 'Jednotku rozlišení' ve směru 'Šířka obrázku'. Je-li "
+"rozlišení neznámé, obvykle se použije hodnota 72 dpi (pixelů na palec)."
+
+#: libexif/exif-tag.c:306
+msgid "Y-Resolution"
+msgstr "Vertikální rozlišení"
+
+#: libexif/exif-tag.c:307
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageLength> direction. "
+"The same value as <XResolution> is designated."
+msgstr ""
+"Počet pixelů na 'Jednotku rozlišení' ve směru 'Výška obrázku'. Je-li "
+"rozlišení neznámé, obvykle se použije hodnota 72 dpi (pixelů na palec)."
+
+#: libexif/exif-tag.c:311
+msgid "Planar Configuration"
+msgstr ""
+
+#: libexif/exif-tag.c:312
+msgid ""
+"Indicates whether pixel components are recorded in a chunky or planar "
+"format. In JPEG compressed files a JPEG marker is used instead of this tag. "
+"If this field does not exist, the TIFF default of 1 (chunky) is assumed."
+msgstr ""
+"Určuje, jakým způsobem jsou jednotlivé pixely a řádky uloženy, zda "
+"prokládaně či nikoli. Buď mohou být všechny komponenty jednoho pixelu "
+"uloženy vedle (RGBRGBRGB) sebe nebo naopak 1 komponenta všech pixelů celého "
+"řádku vedle sebe následována další komponentou všech pixelů celého řádku "
+"(RRRGGGBBB)."
+
+#: libexif/exif-tag.c:317
+msgid "Resolution Unit"
+msgstr "Jednotka rozlišení"
+
+#: libexif/exif-tag.c:318
+msgid ""
+"The unit for measuring <XResolution> and <YResolution>. The same unit is "
+"used for both <XResolution> and <YResolution>. If the image resolution is "
+"unknown, 2 (inches) is designated."
+msgstr ""
+"Jednotka pro hodnoty 'Horizontální rozlišení' a 'Vertikální rozlišení'. Není-"
+"li jednotka specifikována, použije se hodnota palec (inch)."
+
+#: libexif/exif-tag.c:323
+msgid "Transfer Function"
+msgstr "Přechodová funkce"
+
+#: libexif/exif-tag.c:324
+msgid ""
+"A transfer function for the image, described in tabular style. Normally this "
+"tag is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:328
+msgid "Software"
+msgstr "Software"
+
+#: libexif/exif-tag.c:329
+msgid ""
+"This tag records the name and version of the software or firmware of the "
+"camera or image input device used to generate the image. The detailed format "
+"is not specified, but it is recommended that the example shown below be "
+"followed. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Udává software (nebo firmware zařízení) a jeho verzi, které soubor "
+"vygenerovalo. Formát tohoto údaje je zcela libovolný. Prázdný údaj znamená, "
+"že není známo."
+
+#: libexif/exif-tag.c:336
+msgid "Date and Time"
+msgstr "Datum a čas"
+
+#: libexif/exif-tag.c:337
+msgid ""
+"The date and time of image creation. In this standard (EXIF-2.1) it is the "
+"date and time the file was changed."
+msgstr ""
+"Datum a čas vytvoření obrázku. Standard EXIF udává, že se jedná o okamžik "
+"poslední modifikace souboru."
+
+#: libexif/exif-tag.c:340
+msgid "Artist"
+msgstr "Umělec"
+
+#: libexif/exif-tag.c:341
+msgid ""
+"This tag records the name of the camera owner, photographer or image "
+"creator. The detailed format is not specified, but it is recommended that "
+"the information be written as in the example below for ease of "
+"Interoperability. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:347 libexif/pentax/mnote-pentax-tag.c:113
+msgid "White Point"
+msgstr "Bílý bod"
+
+#: libexif/exif-tag.c:348
+msgid ""
+"The chromaticity of the white point of the image. Normally this tag is not "
+"necessary, since color space is specified in the color space information tag "
+"(<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:353
+msgid "Primary Chromaticities"
+msgstr ""
+
+#: libexif/exif-tag.c:354
+msgid ""
+"The chromaticity of the three primary colors of the image. Normally this tag "
+"is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:359
+msgid "Defined by Adobe Corporation to enable TIFF Trees within a TIFF file."
+msgstr ""
+"Definováno společností Adobe pro umožnění TIFF hierarchií uvnitř souboru "
+"TIFF."
+
+#: libexif/exif-tag.c:362
+msgid "Transfer Range"
+msgstr ""
+
+#: libexif/exif-tag.c:366
+msgid "JPEG Interchange Format"
+msgstr "JPEG Interchange Format"
+
+#: libexif/exif-tag.c:367
+msgid ""
+"The offset to the start byte (SOI) of JPEG compressed thumbnail data. This "
+"is not used for primary image JPEG data."
+msgstr ""
+
+#: libexif/exif-tag.c:372
+msgid "JPEG Interchange Format Length"
+msgstr "Délka dat JPEG Interchange Format"
+
+#: libexif/exif-tag.c:373
+msgid ""
+"The number of bytes of JPEG compressed thumbnail data. This is not used for "
+"primary image JPEG data. JPEG thumbnails are not divided but are recorded as "
+"a continuous JPEG bitstream from SOI to EOI. Appn and COM markers should not "
+"be recorded. Compressed thumbnails must be recorded in no more than 64 "
+"Kbytes, including all other data to be recorded in APP1."
+msgstr ""
+
+#: libexif/exif-tag.c:382
+msgid "YCbCr Coefficients"
+msgstr "Koeficienty YCbCr"
+
+#: libexif/exif-tag.c:383
+msgid ""
+"The matrix coefficients for transformation from RGB to YCbCr image data. No "
+"default is given in TIFF; but here the value given in \"Color Space "
+"Guidelines\", is used as the default. The color space is declared in a color "
+"space information tag, with the default being the value that gives the "
+"optimal image characteristics Interoperability this condition."
+msgstr ""
+
+#: libexif/exif-tag.c:392
+msgid "YCbCr Sub-Sampling"
+msgstr ""
+
+#: libexif/exif-tag.c:393
+msgid ""
+"The sampling ratio of chrominance components in relation to the luminance "
+"component. In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:398
+msgid "YCbCr Positioning"
+msgstr ""
+
+#: libexif/exif-tag.c:399
+msgid ""
+"The position of chrominance components in relation to the luminance "
+"component. This field is designated only for JPEG compressed data or "
+"uncompressed YCbCr data. The TIFF default is 1 (centered); but when Y:Cb:Cr "
+"= 4:2:2 it is recommended in this standard that 2 (co-sited) be used to "
+"record data, in order to improve the image quality when viewed on TV "
+"systems. When this field does not exist, the reader shall assume the TIFF "
+"default. In the case of Y:Cb:Cr = 4:2:0, the TIFF default (centered) is "
+"recommended. If the reader does not have the capability of supporting both "
+"kinds of <YCbCrPositioning>, it shall follow the TIFF default regardless of "
+"the value in this field. It is preferable that readers be able to support "
+"both centered and co-sited positioning."
+msgstr ""
+
+#: libexif/exif-tag.c:414
+msgid "Reference Black/White"
+msgstr ""
+
+#: libexif/exif-tag.c:415
+msgid ""
+"The reference black point value and reference white point value. No defaults "
+"are given in TIFF, but the values below are given as defaults here. The "
+"color space is declared in a color space information tag, with the default "
+"being the value that gives the optimal image characteristics "
+"Interoperability these conditions."
+msgstr ""
+
+#: libexif/exif-tag.c:423
+msgid "XML Packet"
+msgstr "XML Paket"
+
+#: libexif/exif-tag.c:423
+msgid "XMP Metadata"
+msgstr "XMP Metadata"
+
+#: libexif/exif-tag.c:438 libexif/exif-tag.c:784
+msgid "CFA Pattern"
+msgstr "CFA Pattern"
+
+#: libexif/exif-tag.c:439 libexif/exif-tag.c:785
+msgid ""
+"Indicates the color filter array (CFA) geometric pattern of the image sensor "
+"when a one-chip color area sensor is used. It does not apply to all sensing "
+"methods."
+msgstr ""
+
+#: libexif/exif-tag.c:443
+msgid "Battery Level"
+msgstr "Stav baterie"
+
+#: libexif/exif-tag.c:444
+msgid "Copyright"
+msgstr "Copyright"
+
+#: libexif/exif-tag.c:445
+msgid ""
+"Copyright information. In this standard the tag is used to indicate both the "
+"photographer and editor copyrights. It is the copyright notice of the person "
+"or organization claiming rights to the image. The Interoperability copyright "
+"statement including date and rights should be written in this field; e.g., "
+"\"Copyright, John Smith, 19xx. All rights reserved.\". In this standard the "
+"field records both the photographer and editor copyrights, with each "
+"recorded in a separate part of the statement. When there is a clear "
+"distinction between the photographer and editor copyrights, these are to be "
+"written in the order of photographer followed by editor copyright, separated "
+"by NULL (in this case, since the statement also ends with a NULL, there are "
+"two NULL codes) (see example 1). When only the photographer is given, it is "
+"terminated by one NULL code (see example 2). When only the editor copyright "
+"is given, the photographer copyright part consists of one space followed by "
+"a terminating NULL code, then the editor copyright is given (see example 3). "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:467
+msgid "Exposure time, given in seconds (sec)."
+msgstr "Expoziční čas v sekundách."
+
+#: libexif/exif-tag.c:469 libexif/pentax/mnote-pentax-tag.c:79
+msgid "F-Number"
+msgstr ""
+
+#: libexif/exif-tag.c:470
+msgid "The F number."
+msgstr ""
+
+#: libexif/exif-tag.c:475
+msgid "Image Resources Block"
+msgstr ""
+
+#: libexif/exif-tag.c:477
+msgid ""
+"A pointer to the Exif IFD. Interoperability, Exif IFD has the same structure "
+"as that of the IFD specified in TIFF. ordinarily, however, it does not "
+"contain image data as in the case of TIFF."
+msgstr ""
+
+#: libexif/exif-tag.c:485
+msgid "Exposure Program"
+msgstr "Program expozice"
+
+#: libexif/exif-tag.c:486
+msgid ""
+"The class of the program used by the camera to set exposure when the picture "
+"is taken."
+msgstr ""
+"Typ programu použitého fotoaparátem pro nastavení expozice pro pořízení "
+"tohoto snímku."
+
+#: libexif/exif-tag.c:490
+msgid "Spectral Sensitivity"
+msgstr ""
+
+#: libexif/exif-tag.c:491
+msgid ""
+"Indicates the spectral sensitivity of each channel of the camera used. The "
+"tag value is an ASCII string compatible with the standard developed by the "
+"ASTM Technical Committee."
+msgstr ""
+
+#: libexif/exif-tag.c:496
+msgid "GPS Info IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:497
+msgid ""
+"A pointer to the GPS Info IFD. The Interoperability structure of the GPS "
+"Info IFD, like that of Exif IFD, has no image data."
+msgstr ""
+
+#: libexif/exif-tag.c:503
+msgid "ISO Speed Ratings"
+msgstr ""
+
+#: libexif/exif-tag.c:504
+msgid ""
+"Indicates the ISO Speed and ISO Latitude of the camera or input device as "
+"specified in ISO 12232."
+msgstr ""
+
+#: libexif/exif-tag.c:507
+msgid "Opto-Electronic Conversion Function"
+msgstr ""
+
+#: libexif/exif-tag.c:508
+msgid ""
+"Indicates the Opto-Electronic Conversion Function (OECF) specified in ISO "
+"14524. <OECF> is the relationship between the camera optical input and the "
+"image values."
+msgstr ""
+
+#: libexif/exif-tag.c:513
+msgid "Time Zone Offset"
+msgstr "Časová zóna"
+
+#: libexif/exif-tag.c:514
+msgid "Encodes time zone of camera clock relative to GMT."
+msgstr "Udává relativní posun vůči greenwichskému času (GMT)."
+
+#: libexif/exif-tag.c:515
+msgid "Exif Version"
+msgstr "Verze Exif"
+
+#: libexif/exif-tag.c:516
+msgid ""
+"The version of this standard supported. Nonexistence of this field is taken "
+"to mean nonconformance to the standard."
+msgstr ""
+"Verze standardu, které odpovídá tento soubor. Chybějící označení verze by "
+"bylo v rozporu se standardem."
+
+#: libexif/exif-tag.c:520
+msgid "Date and Time (Original)"
+msgstr "Datum a čas pořízení"
+
+#: libexif/exif-tag.c:521
+msgid ""
+"The date and time when the original image data was generated. For a digital "
+"still camera the date and time the picture was taken are recorded."
+msgstr ""
+"Datum a čas, kdy byla vytvořena původní obrazová data. V případě digitálních "
+"fotografií se jedná o okamžik vyfotografování."
+
+#: libexif/exif-tag.c:526
+msgid "Date and Time (Digitized)"
+msgstr "Datum a čas digitalizace"
+
+#: libexif/exif-tag.c:527
+msgid "The date and time when the image was stored as digital data."
+msgstr "Datum a čas, kdy byl obrázek uložen v digitální formě."
+
+#: libexif/exif-tag.c:530
+msgid "Components Configuration"
+msgstr ""
+
+#: libexif/exif-tag.c:531
+msgid ""
+"Information specific to compressed data. The channels of each component are "
+"arranged in order from the 1st component to the 4th. For uncompressed data "
+"the data arrangement is given in the <PhotometricInterpretation> tag. "
+"However, since <PhotometricInterpretation> can only express the order of Y, "
+"Cb and Cr, this tag is provided for cases when compressed data uses "
+"components other than Y, Cb, and Cr and to enable support of other sequences."
+msgstr ""
+
+#: libexif/exif-tag.c:541
+msgid "Compressed Bits per Pixel"
+msgstr "Komprimované bity na pixel"
+
+#: libexif/exif-tag.c:542
+msgid ""
+"Information specific to compressed data. The compression mode used for a "
+"compressed image is indicated in unit bits per pixel."
+msgstr ""
+"Informace o vlastních komprimovaných datech. Udává kompresní poměr pro "
+"komprimovaná obrazová data jako přibližný počet bitů na pixel."
+
+#: libexif/exif-tag.c:546 libexif/olympus/mnote-olympus-tag.c:123
+msgid "Shutter Speed"
+msgstr "Rychlost uzávěrky"
+
+#: libexif/exif-tag.c:547
+msgid ""
+"Shutter speed. The unit is the APEX (Additive System of Photographic "
+"Exposure) setting."
+msgstr ""
+"Rychlost uzávěrky, uložená v jednotkách APEX (Additive System of "
+"Photographic Exposure)."
+
+#: libexif/exif-tag.c:551
+msgid "The lens aperture. The unit is the APEX value."
+msgstr "Clona čoček, uložená v jednotkách APEX."
+
+#: libexif/exif-tag.c:553
+msgid "Brightness"
+msgstr "Jas"
+
+#: libexif/exif-tag.c:554
+msgid ""
+"The value of brightness. The unit is the APEX value. Ordinarily it is given "
+"in the range of -99.99 to 99.99."
+msgstr ""
+"Úroveň jasu, v jednotkách APEX. Obvykle se nachází v rozsahu -99,99 až 99,99."
+
+#: libexif/exif-tag.c:558
+msgid "Exposure Bias"
+msgstr "Kompenzace expozice"
+
+#: libexif/exif-tag.c:559
+msgid ""
+"The exposure bias. The units is the APEX value. Ordinarily it is given in "
+"the range of -99.99 to 99.99."
+msgstr ""
+"Kompenzace expozice, v jednotkách APEX. Obvykle se nachází v rozsahu -99,99 "
+"až 99,99."
+
+#: libexif/exif-tag.c:562
+msgid "Maximum Aperture Value"
+msgstr "Maximální clona"
+
+#: libexif/exif-tag.c:563
+msgid ""
+"The smallest F number of the lens. The unit is the APEX value. Ordinarily it "
+"is given in the range of 00.00 to 99.99, but it is not limited to this range."
+msgstr ""
+"Nejmenší číslo F čoček, v jednotkách APEX. Obvykle se nachází v rozsahu -"
+"99,99 až 99,99, ale není to podmínkou."
+
+#: libexif/exif-tag.c:568
+msgid "Subject Distance"
+msgstr "Vzdálenost objektu"
+
+#: libexif/exif-tag.c:569
+msgid "The distance to the subject, given in meters."
+msgstr "Vzdálenost fotografovaného objektu v metrech."
+
+#: libexif/exif-tag.c:572
+msgid "The metering mode."
+msgstr "Režim měření."
+
+#: libexif/exif-tag.c:574
+msgid "Light Source"
+msgstr "Zdroj světla"
+
+#: libexif/exif-tag.c:575
+msgid "The kind of light source."
+msgstr "Typ zdroje světla."
+
+#: libexif/exif-tag.c:578
+msgid ""
+"This tag is recorded when an image is taken using a strobe light (flash)."
+msgstr "Tento údaj se zaznamenává při použití blesku."
+
+#: libexif/exif-tag.c:582
+msgid ""
+"The actual focal length of the lens, in mm. Conversion is not made to the "
+"focal length of a 35 mm film camera."
+msgstr ""
+"Skutečná ohnisková vzdálenost čoček. Hodnota není přepočtena pro fotoaparáty "
+"na 35mm film."
+
+#: libexif/exif-tag.c:585
+msgid "Subject Area"
+msgstr ""
+
+#: libexif/exif-tag.c:586
+msgid ""
+"This tag indicates the location and area of the main subject in the overall "
+"scene."
+msgstr "Udává pozici a velikost hlavního objektu ve fotografované scéně."
+
+#: libexif/exif-tag.c:590
+msgid "TIFF/EP Standard ID"
+msgstr "TIFF/EP Standard ID"
+
+#: libexif/exif-tag.c:591
+msgid "Maker Note"
+msgstr "Maker note"
+
+#: libexif/exif-tag.c:592
+msgid ""
+"A tag for manufacturers of Exif writers to record any desired information. "
+"The contents are up to the manufacturer."
+msgstr ""
+"Do této sekce zapisují různí výrobci fotoaparátů různé doplňkové informace, "
+"které se mohou lišit i typ od typu fotoaparátu. Každý výrobce ukládá tyto "
+"informace jiným způsobem."
+
+#: libexif/exif-tag.c:595
+msgid "User Comment"
+msgstr "Komentář"
+
+#: libexif/exif-tag.c:596
+msgid ""
+"A tag for Exif users to write keywords or comments on the image besides "
+"those in <ImageDescription>, and without the character code limitations of "
+"the <ImageDescription> tag. The character code used in the <UserComment> tag "
+"is identified based on an ID code in a fixed 8-byte area at the start of the "
+"tag data area. The unused portion of the area is padded with NULL (\"00.h"
+"\"). ID codes are assigned by means of registration. The designation method "
+"and references for each character code are defined in the specification. The "
+"value of CountN is determined based on the 8 bytes in the character code "
+"area and the number of bytes in the user comment part. Since the TYPE is not "
+"ASCII, NULL termination is not necessary. The ID code for the <UserComment> "
+"area may be a Defined code such as JIS or ASCII, or may be Undefined. The "
+"Undefined name is UndefinedText, and the ID code is filled with 8 bytes of "
+"all \"NULL\" (\"00.H\"). An Exif reader that reads the <UserComment> tag "
+"must have a function for determining the ID code. This function is not "
+"required in Exif readers that do not use the <UserComment> tag. When a "
+"<UserComment> area is set aside, it is recommended that the ID code be ASCII "
+"and that the following user comment part be filled with blank characters [20."
+"H]."
+msgstr ""
+
+#: libexif/exif-tag.c:619
+msgid "Sub-second Time"
+msgstr "Zlomky vteřin"
+
+#: libexif/exif-tag.c:620
+msgid "A tag used to record fractions of seconds for the <DateTime> tag."
+msgstr "Zlomky vteřin z údaje 'Datum a čas'."
+
+#: libexif/exif-tag.c:624
+msgid "Sub-second Time (Original)"
+msgstr "Zlomky vteřin času pořízení"
+
+#: libexif/exif-tag.c:625
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeOriginal> tag."
+msgstr "Zlomky sekundy z údaje 'Datum a čas pořízení'."
+
+#: libexif/exif-tag.c:629
+msgid "Sub-second Time (Digitized)"
+msgstr "Zlomky vteřin času digitalizace"
+
+#: libexif/exif-tag.c:630
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeDigitized> tag."
+msgstr "Zlomky sekundy z údaje 'Datum a čas digitalizace'."
+
+#: libexif/exif-tag.c:634
+msgid "XP Title"
+msgstr "Název (Windows)"
+
+#: libexif/exif-tag.c:635
+msgid "A character string giving the title of the image, encoded in UTF-16LE."
+msgstr "Text s popiskem fotografie, uložený v Unicode."
+
+#: libexif/exif-tag.c:639
+msgid "XP Comment"
+msgstr "Komentář (Windows)"
+
+#: libexif/exif-tag.c:640
+msgid ""
+"A character string containing a comment about the image, encoded in UTF-16LE."
+msgstr "Text s komentářem k fotografii, uložený v Unicode."
+
+#: libexif/exif-tag.c:644
+msgid "XP Author"
+msgstr "Autor (Windows)"
+
+#: libexif/exif-tag.c:645
+msgid ""
+"A character string containing the name of the image creator, encoded in UTF-"
+"16LE."
+msgstr "Text se jménem autora fotografie, uložený v Unicode."
+
+#: libexif/exif-tag.c:649
+msgid "XP Keywords"
+msgstr "Klíčová slova (Windows)"
+
+#: libexif/exif-tag.c:650
+msgid ""
+"A character string containing key words describing the image, encoded in UTF-"
+"16LE."
+msgstr ""
+"Text s klíčovými slovy vztahujícími se k fotografii, uložený v Unicode."
+
+#: libexif/exif-tag.c:654
+msgid "XP Subject"
+msgstr "Předmět (Windows)"
+
+#: libexif/exif-tag.c:655
+msgid "A character string giving the image subject, encoded in UTF-16LE."
+msgstr "Text popisující předmět fotografie, uložený v Unicode."
+
+#: libexif/exif-tag.c:659
+msgid "The FlashPix format version supported by a FPXR file."
+msgstr "Verze formátu FlashPix podporovaná souborem FPXR."
+
+#: libexif/exif-tag.c:661 libexif/pentax/mnote-pentax-tag.c:102
+msgid "Color Space"
+msgstr "Barevný model"
+
+#: libexif/exif-tag.c:662
+msgid ""
+"The color space information tag is always recorded as the color space "
+"specifier. Normally sRGB (=1) is used to define the color space based on the "
+"PC monitor conditions and environment. If a color space other than sRGB is "
+"used, Uncalibrated (=FFFF.H) is set. Image data recorded as Uncalibrated can "
+"be treated as sRGB when it is converted to FlashPix."
+msgstr ""
+
+#: libexif/exif-tag.c:670
+msgid "Pixel X Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:671
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid width of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file."
+msgstr ""
+
+#: libexif/exif-tag.c:677
+msgid "Pixel Y Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:678
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid height of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file. Since data padding is unnecessary in the "
+"vertical direction, the number of lines recorded in this valid image height "
+"tag will in fact be the same as that recorded in the SOF."
+msgstr ""
+
+#: libexif/exif-tag.c:688
+msgid "Related Sound File"
+msgstr ""
+
+#: libexif/exif-tag.c:689
+msgid ""
+"This tag is used to record the name of an audio file related to the image "
+"data. The only relational information recorded here is the Exif audio file "
+"name and extension (an ASCII string consisting of 8 characters + '.' + 3 "
+"characters). The path is not recorded. Stipulations on audio and file naming "
+"conventions are defined in the specification. When using this tag, audio "
+"files must be recorded in conformance to the Exif audio format. Writers are "
+"also allowed to store the data such as Audio within APP2 as FlashPix "
+"extension stream data. The mapping of Exif image files and audio files is "
+"done in any of three ways, [1], [2] and [3]. If multiple files are mapped to "
+"one file as in [2] or [3], the above format is used to record just one audio "
+"file name. If there are multiple audio files, the first recorded file is "
+"given. In the case of [3], for example, for the Exif image file \"DSC00001."
+"JPG\" only  \"SND00001.WAV\" is given as the related Exif audio file. When "
+"there are three Exif audio files \"SND00001.WAV\", \"SND00002.WAV\" and "
+"\"SND00003.WAV\", the Exif image file name for each of them, \"DSC00001.JPG"
+"\", is indicated. By combining multiple relational information, a variety of "
+"playback possibilities can be supported. The method of using relational "
+"information is left to the implementation on the playback side. Since this "
+"information is an ASCII character string, it is terminated by NULL. When "
+"this tag is used to map audio files, the relation of the audio file to image "
+"data must also be indicated on the audio file end."
+msgstr ""
+
+#: libexif/exif-tag.c:719
+msgid "Interoperability IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:720
+msgid ""
+"Interoperability IFD is composed of tags which stores the information to "
+"ensure the Interoperability and pointed by the following tag located in Exif "
+"IFD. The Interoperability structure of Interoperability IFD is the same as "
+"TIFF defined IFD structure but does not contain the image data "
+"characteristically compared with normal TIFF IFD."
+msgstr ""
+
+#: libexif/exif-tag.c:729
+msgid "Flash Energy"
+msgstr "Energie blesku"
+
+#: libexif/exif-tag.c:730
+msgid ""
+"Indicates the strobe energy at the time the image is captured, as measured "
+"in Beam Candle Power Seconds (BCPS)."
+msgstr ""
+
+#: libexif/exif-tag.c:734
+msgid "Spatial Frequency Response"
+msgstr ""
+
+#: libexif/exif-tag.c:735
+msgid ""
+"This tag records the camera or input device spatial frequency table and SFR "
+"values in the direction of image width, image height, and diagonal "
+"direction, as specified in ISO 12233."
+msgstr ""
+
+#: libexif/exif-tag.c:741
+msgid "Focal Plane X-Resolution"
+msgstr "Horizontální rozlišení ohniskové roviny"
+
+#: libexif/exif-tag.c:742
+msgid ""
+"Indicates the number of pixels in the image width (X) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+
+#: libexif/exif-tag.c:746
+msgid "Focal Plane Y-Resolution"
+msgstr "Vertikální rozlišení ohniskové roviny"
+
+#: libexif/exif-tag.c:747
+msgid ""
+"Indicates the number of pixels in the image height (V) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+
+#: libexif/exif-tag.c:751
+msgid "Focal Plane Resolution Unit"
+msgstr "Jednotky rozlišení ohniskové roviny"
+
+#: libexif/exif-tag.c:752
+msgid ""
+"Indicates the unit for measuring <FocalPlaneXResolution> and "
+"<FocalPlaneYResolution>. This value is the same as the <ResolutionUnit>."
+msgstr ""
+
+#: libexif/exif-tag.c:757
+msgid "Subject Location"
+msgstr "Umístění objektu"
+
+#: libexif/exif-tag.c:758
+msgid ""
+"Indicates the location of the main subject in the scene. The value of this "
+"tag represents the pixel at the center of the main subject relative to the "
+"left edge, prior to rotation processing as per the <Rotation> tag. The first "
+"value indicates the X column number and the second indicates the Y row "
+"number."
+msgstr ""
+
+#: libexif/exif-tag.c:765
+msgid "Exposure Index"
+msgstr ""
+
+#: libexif/exif-tag.c:766
+msgid ""
+"Indicates the exposure index selected on the camera or input device at the "
+"time the image is captured."
+msgstr ""
+
+#: libexif/exif-tag.c:769
+msgid "Sensing Method"
+msgstr ""
+
+#: libexif/exif-tag.c:770
+msgid "Indicates the image sensor type on the camera or input device."
+msgstr ""
+"Udává typ obrazového senzoru na fotoaparátu resp. jiném vstupním zařízení."
+
+#: libexif/exif-tag.c:773 libexif/fuji/mnote-fuji-tag.c:64
+msgid "File Source"
+msgstr "Zdroj souboru"
+
+#: libexif/exif-tag.c:774
+msgid ""
+"Indicates the image source. If a DSC recorded the image, the tag value of "
+"this tag always be set to 3, indicating that the image was recorded on a DSC."
+msgstr ""
+"Určuje zdroj obrazových dat. Pro fotoaparáty (Digital Still Camera) se "
+"používá hodnota DSC."
+
+#: libexif/exif-tag.c:778
+msgid "Scene Type"
+msgstr "Typ scény"
+
+#: libexif/exif-tag.c:779
+msgid ""
+"Indicates the type of scene. If a DSC recorded the image, this tag value "
+"must always be set to 1, indicating that the image was directly photographed."
+msgstr ""
+"Určuje typ scény. Pokud obrázek byl vyfotografován, musí být hodnota 1 "
+"určující, že obrázek byl pořízen fotografováním."
+
+#: libexif/exif-tag.c:789
+msgid "Custom Rendered"
+msgstr ""
+
+#: libexif/exif-tag.c:790
+msgid ""
+"This tag indicates the use of special processing on image data, such as "
+"rendering geared to output. When special processing is performed, the reader "
+"is expected to disable or minimize any further processing."
+msgstr ""
+
+#: libexif/exif-tag.c:796
+msgid ""
+"This tag indicates the exposure mode set when the image was shot. In auto-"
+"bracketing mode, the camera shoots a series of frames of the same scene at "
+"different exposure settings."
+msgstr ""
+"Udává režim expozice při pořizování snímků. V režimu auto bracket fotoaparát "
+"pořizuje sekvenci snímků s různým nastavením expozice."
+
+#: libexif/exif-tag.c:801
+msgid "This tag indicates the white balance mode set when the image was shot."
+msgstr "Udává způsob vyvážení bílé při pořizování snímku."
+
+#: libexif/exif-tag.c:805
+msgid "Digital Zoom Ratio"
+msgstr "Faktor digitálního zvětšení"
+
+#: libexif/exif-tag.c:806
+msgid ""
+"This tag indicates the digital zoom ratio when the image was shot. If the "
+"numerator of the recorded value is 0, this indicates that digital zoom was "
+"not used."
+msgstr ""
+"Udává poměr digitálního zvětšení při pořízování snímku. Hodnota nula v "
+"čitateli znamená, že digitální zvětšení nebylo použito."
+
+#: libexif/exif-tag.c:811
+msgid "Focal Length in 35mm Film"
+msgstr "Ohnisková vzdálenost pro 35mm film"
+
+#: libexif/exif-tag.c:812
+msgid ""
+"This tag indicates the equivalent focal length assuming a 35mm film camera, "
+"in mm. A value of 0 means the focal length is unknown. Note that this tag "
+"differs from the FocalLength tag."
+msgstr ""
+"Ohnisková vzdálenost přepočtená pro fotoaparáty na 35mm film. Hodnota nula "
+"znamená, že ohnisková vzdálenost je neznámá."
+
+#: libexif/exif-tag.c:818
+msgid "Scene Capture Type"
+msgstr ""
+
+#: libexif/exif-tag.c:819
+msgid ""
+"This tag indicates the type of scene that was shot. It can also be used to "
+"record the mode in which the image was shot. Note that this differs from the "
+"scene type <SceneType> tag."
+msgstr ""
+"Udává typ fotografované scény. Někdy se též používá pro zaznamenání způsobu, "
+"jakým byla fotografie pořízena. Tato značka má jiný význam než 'Typ scény'."
+
+#: libexif/exif-tag.c:824
+msgid "Gain Control"
+msgstr ""
+
+#: libexif/exif-tag.c:825
+msgid "This tag indicates the degree of overall image gain adjustment."
+msgstr ""
+
+#: libexif/exif-tag.c:829
+msgid ""
+"This tag indicates the direction of contrast processing applied by the "
+"camera when the image was shot."
+msgstr "Udává směr zpracování kontrastu fotoaparátem při pořizování snímku."
+
+#: libexif/exif-tag.c:833
+msgid ""
+"This tag indicates the direction of saturation processing applied by the "
+"camera when the image was shot."
+msgstr "Udává směr zpracování sytosti fotoaparátem při pořizování snímku."
+
+#: libexif/exif-tag.c:837
+msgid ""
+"This tag indicates the direction of sharpness processing applied by the "
+"camera when the image was shot."
+msgstr "Udává směr zpracování ostrosti fotoaparátem při pořizování snímku."
+
+#: libexif/exif-tag.c:841
+msgid "Device Setting Description"
+msgstr ""
+
+#: libexif/exif-tag.c:842
+msgid ""
+"This tag indicates information on the picture-taking conditions of a "
+"particular camera model. The tag is used only to indicate the picture-taking "
+"conditions in the reader."
+msgstr ""
+
+#: libexif/exif-tag.c:848
+msgid "Subject Distance Range"
+msgstr "Vzdálenost objektu"
+
+#: libexif/exif-tag.c:849
+msgid "This tag indicates the distance to the subject."
+msgstr "Vzdálenost fotografovaného objektu."
+
+#: libexif/exif-tag.c:851
+msgid "Image Unique ID"
+msgstr "Jednoznačné ID obrázku"
+
+#: libexif/exif-tag.c:852
+msgid ""
+"This tag indicates an identifier assigned uniquely to each image. It is "
+"recorded as an ASCII string equivalent to hexadecimal notation and 128-bit "
+"fixed length."
+msgstr ""
+"Jednoznačný identifikátor obrázku. Jedná se o 128-bitové číslo uložené v "
+"hexadecimálním zápisu jako ASCII řetězec."
+
+#: libexif/exif-tag.c:857
+msgid "Gamma"
+msgstr "Gama korekce"
+
+#: libexif/exif-tag.c:858
+msgid "Indicates the value of coefficient gamma."
+msgstr "Udává hodnotu koeficientu gama korekce."
+
+#: libexif/exif-tag.c:860
+msgid "PRINT Image Matching"
+msgstr ""
+
+#: libexif/exif-tag.c:861
+msgid "Related to Epson's PRINT Image Matching technology"
+msgstr ""
+"Údaj pravděpodobně pro Epson PRINT Image Matching technology, jeho přesný "
+"význam není znám."
+
+#: libexif/exif-tag.c:863
+msgid "Padding"
+msgstr ""
+
+#: libexif/exif-tag.c:864
+msgid ""
+"This tag reserves space that can be reclaimed later when additional metadata "
+"are added. New metadata can be written in place by replacing this tag with a "
+"smaller data element and using the reclaimed space to store the new or "
+"expanded metadata tags."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:62
+msgid "Softest"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:66
+msgid "Hardest"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:67 libexif/fuji/mnote-fuji-entry.c:96
+msgid "Medium soft"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:68 libexif/fuji/mnote-fuji-entry.c:94
+msgid "Medium hard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:69 libexif/fuji/mnote-fuji-entry.c:90
+#: libexif/fuji/mnote-fuji-entry.c:98 libexif/fuji/mnote-fuji-entry.c:182
+msgid "Film simulation mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:79
+msgid "Incandescent"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:85
+msgid "Medium high"
+msgstr "Středně vysoký"
+
+#: libexif/fuji/mnote-fuji-entry.c:87
+msgid "Medium low"
+msgstr "Středně nízký"
+
+#: libexif/fuji/mnote-fuji-entry.c:88 libexif/fuji/mnote-fuji-entry.c:97
+msgid "Original"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:124 libexif/pentax/mnote-pentax-entry.c:164
+#: libexif/pentax/mnote-pentax-entry.c:299
+msgid "Program AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:125
+msgid "Natural photo"
+msgstr "Přírodní fotografie"
+
+#: libexif/fuji/mnote-fuji-entry.c:126
+msgid "Vibration reduction"
+msgstr "Redukce vibrací"
+
+#: libexif/fuji/mnote-fuji-entry.c:127
+msgid "Sunset"
+msgstr "Západ slunce"
+
+#: libexif/fuji/mnote-fuji-entry.c:128 libexif/pentax/mnote-pentax-entry.c:181
+msgid "Museum"
+msgstr "Muzeum"
+
+#: libexif/fuji/mnote-fuji-entry.c:129
+msgid "Party"
+msgstr "Párty"
+
+#: libexif/fuji/mnote-fuji-entry.c:130
+msgid "Flower"
+msgstr "Květina"
+
+#: libexif/fuji/mnote-fuji-entry.c:131 libexif/pentax/mnote-pentax-entry.c:176
+msgid "Text"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:132
+msgid "NP & flash"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:137
+msgid "Aperture priority AE"
+msgstr "S předvolbou clony AE"
+
+#: libexif/fuji/mnote-fuji-entry.c:138
+msgid "Shutter priority AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:146
+msgid "F-Standard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:147
+msgid "F-Chrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:148
+msgid "F-B&W"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:151
+msgid "No blur"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:152
+msgid "Blur warning"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:155
+msgid "Focus good"
+msgstr "Dobré zaostření"
+
+#: libexif/fuji/mnote-fuji-entry.c:156
+msgid "Out of focus"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:159
+msgid "AE good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:160
+msgid "Over exposed"
+msgstr "Přeexponováno"
+
+#: libexif/fuji/mnote-fuji-entry.c:164
+msgid "Wide"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:167
+msgid "F0/Standard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:168
+msgid "F1/Studio portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:169
+msgid "F1a/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:170
+msgid "F1b/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:171
+msgid "F1c/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:172
+msgid "F2/Fujichrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:173
+msgid "F3/Studio portrait Ex"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:174
+msgid "F4/Velvia"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:177
+msgid "Auto (100-400%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:179
+msgid "Standard (100%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:180
+msgid "Wide1 (230%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:181
+msgid "Wide2 (400%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:263
+#, c-format
+msgid "%2.2f mm"
+msgstr "%2.2f mm"
+
+#: libexif/fuji/mnote-fuji-entry.c:298 libexif/pentax/mnote-pentax-entry.c:399
+#: libexif/pentax/mnote-pentax-entry.c:451
+#, c-format
+msgid "%i bytes unknown data"
+msgstr "%i bajtů neznámých dat"
+
+#: libexif/fuji/mnote-fuji-tag.c:36
+msgid "Maker Note Version"
+msgstr "Verze Maker note"
+
+#: libexif/fuji/mnote-fuji-tag.c:37
+msgid "This number is unique and based on the date of manufacture."
+msgstr "Toto číslo je jedinečné, obsahuje datum výroby."
+
+#: libexif/fuji/mnote-fuji-tag.c:41
+msgid "Chromaticity Saturation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:44
+msgid "Flash Firing Strength Compensation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:46
+msgid "Focusing Mode"
+msgstr "Režim ostření"
+
+#: libexif/fuji/mnote-fuji-tag.c:47
+msgid "Focus Point"
+msgstr "Střed zaostření"
+
+#: libexif/fuji/mnote-fuji-tag.c:48
+msgid "Slow Synchro Mode"
+msgstr "Režim pomalé synchronizace"
+
+#: libexif/fuji/mnote-fuji-tag.c:49 libexif/pentax/mnote-pentax-tag.c:72
+msgid "Picture Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:50
+msgid "Continuous Taking"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:51
+msgid "Continuous Sequence Number"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:52
+msgid "FinePix Color"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:53
+msgid "Blur Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:54
+msgid "Auto Focus Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:55
+msgid "Auto Exposure Check"
+msgstr "Kontrola automatické expozice"
+
+#: libexif/fuji/mnote-fuji-tag.c:56
+msgid "Dynamic Range"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:57
+msgid "Film Simulation Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:58
+msgid "Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:59
+msgid "Development Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:60
+msgid "Minimum Focal Length"
+msgstr "Minimální ohnisková vzdálenost"
+
+#: libexif/fuji/mnote-fuji-tag.c:61
+msgid "Maximum Focal Length"
+msgstr "Maximální ohnisková vzdálenost"
+
+#: libexif/fuji/mnote-fuji-tag.c:62
+msgid "Maximum Aperture at Minimum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:63
+msgid "Maximum Aperture at Maximum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:65
+msgid "Order Number"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:66 libexif/pentax/mnote-pentax-tag.c:98
+msgid "Frame Number"
+msgstr "Číslo snímku"
+
+#: libexif/olympus/mnote-olympus-entry.c:49
+#, c-format
+msgid "Invalid format '%s', expected '%s' or '%s'."
+msgstr "Špatný formát '%s', očekáván je '%s' nebo '%s'."
+
+#: libexif/olympus/mnote-olympus-entry.c:89
+msgid "AF non D lens"
+msgstr "Čočky AF jiné než D"
+
+#: libexif/olympus/mnote-olympus-entry.c:91
+msgid "AF-D or AF-S lens"
+msgstr "Čočky AF-D nebo AF-S"
+
+#: libexif/olympus/mnote-olympus-entry.c:92
+msgid "AF-D G lens"
+msgstr "Čočky AF-D G"
+
+#: libexif/olympus/mnote-olympus-entry.c:93
+msgid "AF-D VR lens"
+msgstr "Čočky AF-D VR"
+
+#: libexif/olympus/mnote-olympus-entry.c:94
+msgid "AF-D G VR lens"
+msgstr "Čočky AF-D VR"
+
+#: libexif/olympus/mnote-olympus-entry.c:98
+msgid "Flash unit unknown"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:99
+msgid "Flash is external"
+msgstr "Blesk je přídavný"
+
+#: libexif/olympus/mnote-olympus-entry.c:100
+msgid "Flash is on camera"
+msgstr "Blesk je vestavěn"
+
+#: libexif/olympus/mnote-olympus-entry.c:103
+msgid "VGA basic"
+msgstr "VGA basic"
+
+#: libexif/olympus/mnote-olympus-entry.c:104
+msgid "VGA normal"
+msgstr "VGA normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:105
+msgid "VGA fine"
+msgstr "VGA fine"
+
+#: libexif/olympus/mnote-olympus-entry.c:106
+msgid "SXGA basic"
+msgstr "SXGA basic"
+
+#: libexif/olympus/mnote-olympus-entry.c:107
+msgid "SXGA normal"
+msgstr "SXGA normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:108
+msgid "SXGA fine"
+msgstr "SXGA fine"
+
+#: libexif/olympus/mnote-olympus-entry.c:109
+msgid "2 Mpixel basic"
+msgstr "2 MPixel basic"
+
+#: libexif/olympus/mnote-olympus-entry.c:110
+msgid "2 Mpixel normal"
+msgstr "2 MPixel normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:111
+msgid "2 Mpixel fine"
+msgstr "2 MPixel fine"
+
+#: libexif/olympus/mnote-olympus-entry.c:114
+msgid "Color"
+msgstr "Barevný"
+
+#: libexif/olympus/mnote-olympus-entry.c:119
+msgid "Bright+"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:120
+msgid "Bright-"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:121
+msgid "Contrast+"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:122
+msgid "Contrast-"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:125
+msgid "ISO 80"
+msgstr "ISO 80"
+
+#: libexif/olympus/mnote-olympus-entry.c:126
+msgid "ISO 160"
+msgstr "ISO 160"
+
+#: libexif/olympus/mnote-olympus-entry.c:127
+msgid "ISO 320"
+msgstr "ISO 320"
+
+#: libexif/olympus/mnote-olympus-entry.c:128
+#: libexif/olympus/mnote-olympus-entry.c:246
+msgid "ISO 100"
+msgstr "ISO 100"
+
+#: libexif/olympus/mnote-olympus-entry.c:132
+msgid "Preset"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:134
+msgid "Incandescence"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:135
+msgid "Fluorescence"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:137
+msgid "SpeedLight"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:140
+msgid "No fisheye"
+msgstr "Bez rybího oka"
+
+#: libexif/olympus/mnote-olympus-entry.c:141
+msgid "Fisheye on"
+msgstr "Rybí oko zapnuto"
+
+#: libexif/olympus/mnote-olympus-entry.c:144
+msgid "Normal, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:145
+msgid "Normal, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:146
+msgid "Normal, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:147
+msgid "Normal, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:148
+msgid "Normal, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:149
+msgid "Normal, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:150
+msgid "Normal, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:151
+msgid "Normal, standard"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:152
+msgid "Fine, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:153
+msgid "Fine, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:154
+msgid "Fine, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:155
+msgid "Fine, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:156
+msgid "Fine, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:157
+msgid "Fine, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:158
+msgid "Fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:159
+msgid "Super fine, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:160
+msgid "Super fine, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:161
+msgid "Super fine, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:162
+msgid "Super fine, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:163
+msgid "Super fine, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:164
+msgid "Super fine, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:165
+msgid "Super fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:166
+msgid "Super fine, high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:169
+#: libexif/olympus/mnote-olympus-entry.c:174
+#: libexif/olympus/mnote-olympus-entry.c:208
+#: libexif/olympus/mnote-olympus-entry.c:217
+#: libexif/olympus/mnote-olympus-entry.c:240
+msgid "No"
+msgstr "Ne"
+
+#: libexif/olympus/mnote-olympus-entry.c:180
+msgid "On (Preset)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:185
+msgid "Fill"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:192
+msgid "Internal + external"
+msgstr "Vnitřní + vnější"
+
+#: libexif/olympus/mnote-olympus-entry.c:221
+msgid "Interlaced"
+msgstr "Prokládaný"
+
+#: libexif/olympus/mnote-olympus-entry.c:222
+msgid "Progressive"
+msgstr "Progresivní"
+
+#: libexif/olympus/mnote-olympus-entry.c:228
+#: libexif/pentax/mnote-pentax-entry.c:85
+#: libexif/pentax/mnote-pentax-entry.c:139
+msgid "Best"
+msgstr "Nejlepší"
+
+#: libexif/olympus/mnote-olympus-entry.c:229
+msgid "Adjust exposure"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:232
+msgid "Spot focus"
+msgstr "Bodové ostření"
+
+#: libexif/olympus/mnote-olympus-entry.c:233
+msgid "Normal focus"
+msgstr "Normální ostření"
+
+#: libexif/olympus/mnote-olympus-entry.c:236
+msgid "Record while down"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:237
+msgid "Press start, press stop"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:245
+msgid "ISO 50"
+msgstr "ISO 50"
+
+#: libexif/olympus/mnote-olympus-entry.c:247
+msgid "ISO 200"
+msgstr "ISO 200"
+
+#: libexif/olympus/mnote-olympus-entry.c:248
+msgid "ISO 400"
+msgstr "ISO 400"
+
+#: libexif/olympus/mnote-olympus-entry.c:252
+#: libexif/pentax/mnote-pentax-entry.c:168
+msgid "Sport"
+msgstr "Sport"
+
+#: libexif/olympus/mnote-olympus-entry.c:253
+msgid "TV"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:255
+msgid "User 1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:256
+msgid "User 2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:257
+msgid "Lamp"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:260
+msgid "5 frames/sec"
+msgstr "5 snímků/S"
+
+#: libexif/olympus/mnote-olympus-entry.c:261
+msgid "10 frames/sec"
+msgstr "10 snímků/S"
+
+#: libexif/olympus/mnote-olympus-entry.c:262
+msgid "15 frames/sec"
+msgstr "15 snímků/S"
+
+#: libexif/olympus/mnote-olympus-entry.c:263
+msgid "20 frames/sec"
+msgstr "20 snímků/S"
+
+#: libexif/olympus/mnote-olympus-entry.c:375
+#, c-format
+msgid "Red Correction %f, blue Correction %f"
+msgstr "Červená korekce %f, modrá korekce %f"
+
+#: libexif/olympus/mnote-olympus-entry.c:383
+#, c-format
+msgid "%2.2f meters"
+msgstr "%2.2f m"
+
+#: libexif/olympus/mnote-olympus-entry.c:385
+msgid "No manual focus selection"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:411
+msgid "AF position: center"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:412
+msgid "AF position: top"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:413
+msgid "AF position: bottom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:414
+msgid "AF position: left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:415
+msgid "AF position: right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:416
+msgid "AF position: upper-left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:417
+msgid "AF position: upper-right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:418
+msgid "AF position: lower-left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:419
+msgid "AF position: lower-right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:420
+msgid "AF position: far left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:421
+msgid "AF position: far right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:422
+msgid "Unknown AF position"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:503
+#, c-format
+msgid "Internal error (unknown value %hi)"
+msgstr "Vnitřní chyba (neznámá hodnota %hi)"
+
+#: libexif/olympus/mnote-olympus-entry.c:441
+#: libexif/olympus/mnote-olympus-entry.c:511
+#, c-format
+msgid "Unknown value %hi"
+msgstr "Neznámá hodnota %hi"
+
+#: libexif/olympus/mnote-olympus-entry.c:536
+#: libexif/olympus/mnote-olympus-entry.c:556
+#, c-format
+msgid "Unknown %hu"
+msgstr "Neznámá hodnota %hu"
+
+#: libexif/olympus/mnote-olympus-entry.c:553
+msgid "2 sec."
+msgstr "2 s"
+
+#: libexif/olympus/mnote-olympus-entry.c:592
+msgid "Fast"
+msgstr "Rychlý"
+
+#: libexif/olympus/mnote-olympus-entry.c:696
+msgid "Automatic"
+msgstr "Automatický"
+
+#: libexif/olympus/mnote-olympus-entry.c:726
+#, c-format
+msgid "Manual: %liK"
+msgstr "Ruční: %liK"
+
+#: libexif/olympus/mnote-olympus-entry.c:729
+msgid "Manual: unknown"
+msgstr "Ruční: neznámý"
+
+#: libexif/olympus/mnote-olympus-entry.c:735
+msgid "One-touch"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:791
+#: libexif/olympus/mnote-olympus-entry.c:801
+msgid "Infinite"
+msgstr "Nekonečný"
+
+#: libexif/olympus/mnote-olympus-entry.c:809
+#, c-format
+msgid "%i bytes unknown data: "
+msgstr "%i bajtů neznámých dat: "
+
+#: libexif/olympus/mnote-olympus-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:53
+msgid "ISO Setting"
+msgstr "Nastavení ISO"
+
+#: libexif/olympus/mnote-olympus-tag.c:39
+msgid "Color Mode (?)"
+msgstr "Barevný režim (?)"
+
+#: libexif/olympus/mnote-olympus-tag.c:42
+msgid "Image Sharpening"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:44
+msgid "Flash Setting"
+msgstr "Nastavení blesku"
+
+#: libexif/olympus/mnote-olympus-tag.c:46
+msgid "White Balance Fine Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:47
+msgid "White Balance RB"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:49
+msgid "ISO Selection"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Preview Image IFD"
+msgstr "Poloha IFD náhledu"
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Offset of the preview image directory (IFD) inside the file."
+msgstr "Poloha adresáře IFD s údaji o náhledu v souboru."
+
+#: libexif/olympus/mnote-olympus-tag.c:51
+msgid "Exposurediff ?"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:54
+msgid "Image Boundary"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:56
+msgid "Flash Exposure Bracket Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:57
+msgid "Exposure Bracket Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:58
+#: libexif/olympus/mnote-olympus-tag.c:96
+msgid "Image Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:59
+msgid "Tone Compensation"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:60
+msgid "Adapter"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:62
+msgid "Lens"
+msgstr "Čočky"
+
+#: libexif/olympus/mnote-olympus-tag.c:63
+#: libexif/olympus/mnote-olympus-tag.c:135
+#: libexif/olympus/mnote-olympus-tag.c:185
+msgid "Manual Focus Distance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:65
+msgid "Flash Used"
+msgstr "Blesk použit"
+
+#: libexif/olympus/mnote-olympus-tag.c:66
+msgid "AF Focus Position"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:67
+msgid "Bracketing"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:69
+msgid "Lens F Stops"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:70
+msgid "Contrast Curve"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:71
+#: libexif/olympus/mnote-olympus-tag.c:95
+#: libexif/pentax/mnote-pentax-tag.c:134
+msgid "Color Mode"
+msgstr "Barevný režim"
+
+#: libexif/olympus/mnote-olympus-tag.c:72
+msgid "Light Type"
+msgstr "Druh světla"
+
+#: libexif/olympus/mnote-olympus-tag.c:74
+msgid "Hue Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:76
+#: libexif/olympus/mnote-olympus-tag.c:163
+#: libexif/pentax/mnote-pentax-tag.c:108
+msgid "Noise Reduction"
+msgstr "Redukce šumu"
+
+#: libexif/olympus/mnote-olympus-tag.c:79
+msgid "Sensor Pixel Size"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Image Data Size"
+msgstr "Velikost obrazových dat"
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Size of compressed image data in bytes."
+msgstr "Velikost komprimovaných obrazových dat v souboru v bajtech."
+
+#: libexif/olympus/mnote-olympus-tag.c:84
+msgid "Total Number of Pictures Taken"
+msgstr "Celkový počet snímků"
+
+#: libexif/olympus/mnote-olympus-tag.c:86
+msgid "Optimize Image"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:88
+msgid "Vari Program"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:89
+msgid "Capture Editor Data"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:90
+msgid "Capture Editor Version"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:97
+#: libexif/olympus/mnote-olympus-tag.c:183
+msgid "CCD Sensitivity"
+msgstr "Citlivost CCD"
+
+#: libexif/olympus/mnote-olympus-tag.c:99
+msgid "Focus"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:102
+msgid "Converter"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:105
+msgid "Thumbnail Image"
+msgstr "Náhled"
+
+#: libexif/olympus/mnote-olympus-tag.c:106
+msgid "Speed/Sequence/Panorama Direction"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:109
+msgid "Black & White Mode"
+msgstr "Černobílý"
+
+#: libexif/olympus/mnote-olympus-tag.c:111
+msgid "Focal Plane Diagonal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:112
+msgid "Lens Distortion Parameters"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:114
+msgid "Info"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:115
+msgid "Camera ID"
+msgstr "ID fotoaparátu"
+
+#: libexif/olympus/mnote-olympus-tag.c:116
+msgid "Precapture Frames"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:117
+msgid "White Board"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:118
+msgid "One Touch White Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:119
+msgid "White Balance Bracket"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:120
+#: libexif/pentax/mnote-pentax-tag.c:123
+msgid "White Balance Bias"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:121
+msgid "Data Dump"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:124
+msgid "ISO Value"
+msgstr "Hodnota ISO"
+
+#: libexif/olympus/mnote-olympus-tag.c:125
+msgid "Aperture Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:126
+msgid "Brightness Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:128
+msgid "Flash Device"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:130
+msgid "Sensor Temperature"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:131
+msgid "Lens Temperature"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:132
+msgid "Light Condition"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:136
+msgid "Zoom Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:137
+msgid "Focus Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:138
+msgid "Sharpness Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:139
+msgid "Flash Charge Level"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:140
+msgid "Color Matrix"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:141
+msgid "Black Level"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:142
+msgid "White Balance Setting"
+msgstr "Nastavení vyvážení bílé"
+
+#: libexif/olympus/mnote-olympus-tag.c:143
+#: libexif/pentax/mnote-pentax-tag.c:87
+msgid "Red Balance"
+msgstr "Vyvážení červené"
+
+#: libexif/olympus/mnote-olympus-tag.c:144
+#: libexif/pentax/mnote-pentax-tag.c:86
+msgid "Blue Balance"
+msgstr "Vyvážení modré"
+
+#: libexif/olympus/mnote-olympus-tag.c:145
+msgid "Color Matrix Number"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:147
+msgid "Flash Exposure Comp"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:148
+msgid "Internal Flash Table"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:149
+msgid "External Flash G Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:150
+msgid "External Flash Bounce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:151
+msgid "External Flash Zoom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:152
+msgid "External Flash Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:153
+msgid "Contrast Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:154
+msgid "Sharpness Factor"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:155
+msgid "Color Control"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:156
+msgid "Olympus Image Width"
+msgstr "Šířka obrázku - Olympus"
+
+#: libexif/olympus/mnote-olympus-tag.c:157
+msgid "Olympus Image Height"
+msgstr "Výška obrázku - Olympus"
+
+#: libexif/olympus/mnote-olympus-tag.c:158
+msgid "Scene Detect"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:159
+msgid "Compression Ratio"
+msgstr "Kompresní poměr"
+
+#: libexif/olympus/mnote-olympus-tag.c:160
+msgid "Preview Image Valid"
+msgstr "Náhled je platný"
+
+#: libexif/olympus/mnote-olympus-tag.c:161
+msgid "AF Result"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:162
+msgid "CCD Scan Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:164
+msgid "Infinity Lens Step"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:165
+msgid "Near Lens Step"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:166
+msgid "Light Value Center"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:167
+msgid "Light Value Periphery"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:170
+msgid "Sequential Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:171
+msgid "Wide Range"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:172
+msgid "Color Adjustment Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:174
+msgid "Quick Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:176
+msgid "Voice Memo"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:177
+msgid "Record Shutter Release"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:178
+msgid "Flicker Reduce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:179
+msgid "Optical Zoom"
+msgstr "Optický zoom"
+
+#: libexif/olympus/mnote-olympus-tag.c:181
+msgid "Light Source Special"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:182
+msgid "Resaved"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:184
+msgid "Scene Select"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:186
+msgid "Sequence Shot Interval"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:189
+msgid "Epson Image Width"
+msgstr "Šířka obrázku - Epson"
+
+#: libexif/olympus/mnote-olympus-tag.c:190
+msgid "Epson Image Height"
+msgstr "Výška obrázku - Epson"
+
+#: libexif/olympus/mnote-olympus-tag.c:191
+msgid "Epson Software Version"
+msgstr "Verze software Epson"
+
+#: libexif/pentax/mnote-pentax-entry.c:80
+#: libexif/pentax/mnote-pentax-entry.c:134
+msgid "Multi-exposure"
+msgstr "Vícenásobna expozice"
+
+#: libexif/pentax/mnote-pentax-entry.c:83
+#: libexif/pentax/mnote-pentax-entry.c:137
+msgid "Good"
+msgstr "Dobrý"
+
+#: libexif/pentax/mnote-pentax-entry.c:84
+#: libexif/pentax/mnote-pentax-entry.c:138
+msgid "Better"
+msgstr "Lepší"
+
+#: libexif/pentax/mnote-pentax-entry.c:92
+msgid "Flash on"
+msgstr "Blesk zapnut"
+
+#: libexif/pentax/mnote-pentax-entry.c:140
+msgid "TIFF"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:150
+msgid "2560x1920 or 2304x1728"
+msgstr "2560x1920 nebo 2304x1728"
+
+#: libexif/pentax/mnote-pentax-entry.c:156
+msgid "2304x1728 or 2592x1944"
+msgstr "2304x1728 nebo 2592x1944"
+
+#: libexif/pentax/mnote-pentax-entry.c:158
+msgid "2816x2212 or 2816x2112"
+msgstr "2816x2212 nebo 2816x2112"
+
+#: libexif/pentax/mnote-pentax-entry.c:171
+msgid "Surf & snow"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:172
+msgid "Sunset or candlelight"
+msgstr "Západ slunce nebo světlo svíčky"
+
+#: libexif/pentax/mnote-pentax-entry.c:173
+msgid "Autumn"
+msgstr "Podzim"
+
+#: libexif/pentax/mnote-pentax-entry.c:178
+msgid "Self portrait"
+msgstr "Autoportrét"
+
+#: libexif/pentax/mnote-pentax-entry.c:179
+msgid "Illustrations"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:180
+msgid "Digital filter"
+msgstr "Digitální filtr"
+
+#: libexif/pentax/mnote-pentax-entry.c:182
+msgid "Food"
+msgstr "Jídlo"
+
+#: libexif/pentax/mnote-pentax-entry.c:183
+msgid "Green mode"
+msgstr "Zelený režim"
+
+#: libexif/pentax/mnote-pentax-entry.c:184
+msgid "Light pet"
+msgstr "Světlé zvíře"
+
+#: libexif/pentax/mnote-pentax-entry.c:185
+msgid "Dark pet"
+msgstr "Tmavé zvíře"
+
+#: libexif/pentax/mnote-pentax-entry.c:186
+msgid "Medium pet"
+msgstr "Středně tmavé zvíře"
+
+#: libexif/pentax/mnote-pentax-entry.c:188
+#: libexif/pentax/mnote-pentax-entry.c:296
+msgid "Candlelight"
+msgstr "Světlo svíčky"
+
+#: libexif/pentax/mnote-pentax-entry.c:189
+msgid "Natural skin tone"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:190
+msgid "Synchro sound record"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:191
+msgid "Frame composite"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:194
+msgid "Auto, did not fire"
+msgstr "Automaticky + blesk nebleskl"
+
+#: libexif/pentax/mnote-pentax-entry.c:196
+msgid "Auto, did not fire, red-eye reduction"
+msgstr "Automaticky + blesk nebleskl, redukce červených očí"
+
+#: libexif/pentax/mnote-pentax-entry.c:197
+msgid "Auto, fired"
+msgstr "Automaticky + blesk bleskl"
+
+#: libexif/pentax/mnote-pentax-entry.c:199
+msgid "Auto, fired, red-eye reduction"
+msgstr "Automaticky + blesk bleskl, redukce červených očí"
+
+#: libexif/pentax/mnote-pentax-entry.c:201
+msgid "On, wireless"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:202
+msgid "On, soft"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:203
+msgid "On, slow-sync"
+msgstr "Zapnuto + pomalá synchronizace"
+
+#: libexif/pentax/mnote-pentax-entry.c:204
+msgid "On, slow-sync, red-eye reduction"
+msgstr "Zapnuto + pomalá synchronizace, redukce červených očí"
+
+#: libexif/pentax/mnote-pentax-entry.c:205
+msgid "On, trailing-curtain sync"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:213
+msgid "AF-S"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:214
+msgid "AF-C"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:217
+msgid "Upper-left"
+msgstr "Nahoře vlevo"
+
+#: libexif/pentax/mnote-pentax-entry.c:218
+msgid "Top"
+msgstr "Nahoře"
+
+#: libexif/pentax/mnote-pentax-entry.c:219
+msgid "Upper-right"
+msgstr "Nahoře vpravo"
+
+#: libexif/pentax/mnote-pentax-entry.c:221
+msgid "Mid-left"
+msgstr "Uprostřed vlevo"
+
+#: libexif/pentax/mnote-pentax-entry.c:223
+msgid "Mid-right"
+msgstr "Uprostřed vpravo"
+
+#: libexif/pentax/mnote-pentax-entry.c:225
+msgid "Lower-left"
+msgstr "Dole vlevo"
+
+#: libexif/pentax/mnote-pentax-entry.c:226
+msgid "Bottom"
+msgstr "Dole"
+
+#: libexif/pentax/mnote-pentax-entry.c:227
+msgid "Lower-right"
+msgstr "Dole vpravo"
+
+#: libexif/pentax/mnote-pentax-entry.c:228
+msgid "Fixed center"
+msgstr "Pevný střed"
+
+#: libexif/pentax/mnote-pentax-entry.c:232
+msgid "Multiple"
+msgstr "Vícenásobný"
+
+#: libexif/pentax/mnote-pentax-entry.c:234
+msgid "Top-center"
+msgstr "Nahoře uprostřed"
+
+#: libexif/pentax/mnote-pentax-entry.c:240
+msgid "Bottom-center"
+msgstr "Dole uprostřed"
+
+#: libexif/pentax/mnote-pentax-entry.c:257
+msgid "User selected"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:282
+msgid "3008x2008 or 3040x2024"
+msgstr "3008x2008 nebo 3040x2024"
+
+#: libexif/pentax/mnote-pentax-entry.c:293
+msgid "Digital filter?"
+msgstr "Digitální filtr (?)"
+
+#: libexif/pentax/mnote-pentax-entry.c:374
+#: libexif/pentax/mnote-pentax-entry.c:383
+#, c-format
+msgid "Internal error (unknown value %i %i)"
+msgstr "Vnitřní chyba (neznámá hodnota %i %i)"
+
+#: libexif/pentax/mnote-pentax-tag.c:35 libexif/pentax/mnote-pentax-tag.c:63
+msgid "Capture Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:36 libexif/pentax/mnote-pentax-tag.c:70
+#: libexif/pentax/mnote-pentax-tag.c:129
+msgid "Quality Level"
+msgstr "Úroveň kvality"
+
+#: libexif/pentax/mnote-pentax-tag.c:54
+msgid "ISO Speed"
+msgstr "Rychlost uzávěrky"
+
+#: libexif/pentax/mnote-pentax-tag.c:56
+msgid "Colors"
+msgstr "Barvy"
+
+#: libexif/pentax/mnote-pentax-tag.c:59
+msgid "PrintIM Settings"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:60 libexif/pentax/mnote-pentax-tag.c:131
+msgid "Time Zone"
+msgstr "Časové pásmo"
+
+#: libexif/pentax/mnote-pentax-tag.c:61
+msgid "Daylight Savings"
+msgstr "Letní čas"
+
+#: libexif/pentax/mnote-pentax-tag.c:64
+msgid "Preview Size"
+msgstr "Velikost náhledu"
+
+#: libexif/pentax/mnote-pentax-tag.c:65
+msgid "Preview Length"
+msgstr "Délka náhledu"
+
+#: libexif/pentax/mnote-pentax-tag.c:66 libexif/pentax/mnote-pentax-tag.c:122
+msgid "Preview Start"
+msgstr "Začátek náhledu"
+
+#: libexif/pentax/mnote-pentax-tag.c:67
+msgid "Model Identification"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:68
+msgid "Date"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:69
+msgid "Time"
+msgstr "Čas"
+
+#: libexif/pentax/mnote-pentax-tag.c:75
+msgid "AF Point Selected"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:76
+msgid "Auto AF Point"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:77
+msgid "Focus Position"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:80
+msgid "ISO Number"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:83
+msgid "Auto Bracketing"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:85
+msgid "White Balance Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:93
+msgid "World Time Location"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:94
+msgid "Hometown City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:95
+msgid "Destination City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Hometown DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Home Daylight Savings Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination Daylight Savings Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:99
+msgid "Image Processing"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:100
+msgid "Picture Mode (2)"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:103
+msgid "Image Area Offset"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:104
+msgid "Raw Image Size"
+msgstr "Velikost syrových obrazových dat"
+
+#: libexif/pentax/mnote-pentax-tag.c:105
+msgid "Autofocus Points Used"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:107
+msgid "Camera Temperature"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:110
+msgid "Image Tone"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:111
+msgid "Shake Reduction Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:112
+msgid "Black Point"
+msgstr "Černý bod"
+
+#: libexif/pentax/mnote-pentax-tag.c:114
+msgid "AE Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:115
+msgid "Lens Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:116
+msgid "Flash Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:117
+msgid "Camera Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:118
+msgid "Battery Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:119
+msgid "Hometown City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:120
+msgid "Destination City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Object Distance"
+msgstr "Vzdálenost objektu"
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Distance of photographed object in millimeters."
+msgstr "Vzdálenost fotografovaného objektu v milimetrech."
+
+#: libexif/pentax/mnote-pentax-tag.c:126
+msgid "Flash Distance"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:132
+msgid "Bestshot Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:133
+msgid "CCS ISO Sensitivity"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:135
+msgid "Enhancement"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:136
+msgid "Finer"
+msgstr ""
+
+# This is a very special string. It is used for test purposes, and
+# we only test the de locale as a proof-of-concept example. There is
+# no need for anybody to translate it.
+#: test/nls/test-nls.c:20 test/nls/test-nls.c:23 test/nls/test-nls.c:24
+msgid "[DO_NOT_TRANSLATE_THIS_MARKER]"
+msgstr ""
+
+#~ msgid "On + Red-eye reduction"
+#~ msgstr "Zapnuto + Redukce červených očí"
+
+#~ msgid "Left + Right"
+#~ msgstr "Vlevo - vpravo"
+
+#~ msgid "Manual Temperature (Kelvin)"
+#~ msgstr "Ruční teplota (Kelvin)"
+
+#~ msgid "Daylight Fluorescent"
+#~ msgstr "Světélkující denní světlo"
+
+#~ msgid "top - left"
+#~ msgstr "Nahoře vlevo"
+
+#~ msgid "top - right"
+#~ msgstr "Nahoře vpravo"
+
+#~ msgid "bottom - right"
+#~ msgstr "Dole vpravo"
+
+#~ msgid "bottom - left"
+#~ msgstr "Dole vlevo"
+
+#~ msgid "flash"
+#~ msgstr "Blesk"
+
+#~ msgid "%.02lf EV"
+#~ msgstr "%.02lf EV"
+
+#~ msgid "y-Resolution"
+#~ msgstr "Vertikální rozlišení"
+
+#~ msgid "GPS satellites used for measurement"
+#~ msgstr "GPS satelity použité pro měření"
+
+#~ msgid "Shutter speed"
+#~ msgstr "Rychlost uzávěrky"
+
+#~ msgid "Focal Plane y-Resolution"
+#~ msgstr "Vertikální rozlišení ohniskové roviny"
+
+#~ msgid "Daylight-color fluorescent"
+#~ msgstr "Světélkující denní světlo"
+
+#~ msgid "DayWhite-color fluorescent"
+#~ msgstr "Světélkující denní bílé světlo"
+
+#~ msgid "Macro mode"
+#~ msgstr "Režim makro"
+
+#~ msgid "Super Macro"
+#~ msgstr "Super Makro"
+
+#~ msgid "unknown"
+#~ msgstr "Neznámý"
+
+#~ msgid "panorama"
+#~ msgstr "Panorama"
+
+#~ msgid "left to right"
+#~ msgstr "Zleva doprava"
+
+#~ msgid "right to left"
+#~ msgstr "Zprava doleva"
+
+#~ msgid "bottom to top"
+#~ msgstr "Zdola nahoru"
+
+#~ msgid "top to bottom"
+#~ msgstr "Shora dolu"
+
+#~ msgid "Noisereduction"
+#~ msgstr "Redukce šumu"
+
+#~ msgid "B&W Mode"
+#~ msgstr "Černobílý režim"
+
+#~ msgid "Self Timer"
+#~ msgstr "Samospoušť"
+
+#~ msgid "Night-scene"
+#~ msgstr "Noční scéna"
+
+#~ msgid "Red-eye Reduction"
+#~ msgstr "Redukce červených očí"
+
+#~ msgid "Night Scene"
+#~ msgstr "Noční scéna"
+
+#~ msgid "Daywhite Fluorescent"
+#~ msgstr "Světélkující denní bílé světlo"
+
+#~ msgid "White Fluorescent"
+#~ msgstr "Světélkující bílé světlo"
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/da.gmo b/framework/modules/c_LibExifModule/libexif-0.6.20/po/da.gmo
new file mode 100644
index 0000000000000000000000000000000000000000..27fa54e79a87d965f51c7ceffece8bc8cd0fcd2e
Binary files /dev/null and b/framework/modules/c_LibExifModule/libexif-0.6.20/po/da.gmo differ
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/da.po b/framework/modules/c_LibExifModule/libexif-0.6.20/po/da.po
new file mode 100644
index 0000000000000000000000000000000000000000..684eee7d78184fbf364387909236f6e800c3b613
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/da.po
@@ -0,0 +1,5885 @@
+# Danish translation libexif.
+# Copyright (C) 2009 Lutz Mueller and Joe Hansen.
+# This file is distributed under the same license as the libexif package.
+# Joe Hansen <joedalton2@yahoo.dk>, 2009, 2010.
+# Korrekturlæst Lars Christian Jensen 2009.
+#
+# Canon EF 50mm f/1.8 -> Canon EF 50mm f/1.8 (der er ikke oversat til 
+# dansk mellemrum: 50 mm etc.)
+# Send fejlrapport på at deres forkortelser skal have den fulde betegnelse
+# ovenfor til hjælp for oversætterne.
+#
+# konventioner:
+# aperture -> blændetal
+# bottom -> nederst
+# bracket -> sammenstilling (det er ikke kantparentes)
+# brightness -> lysstyrke
+# custom -> tilpasset
+# distance -> afstand
+# entry -> post
+# exposure -> belysning
+# flash -> blitz
+# fluorescent -> fluorescerende
+# focal -> brændpunkt, brændpunkts-
+# focal length -> brændvidde
+# focal point -> brændpunkt
+# hue -> farvetone
+# incandescence -> hvidglødende
+# Interoperability -> (uafklaret; Erklæringen om brugsret?)
+# lens -> linse (men kunne vel også være objektiv)
+# matrix -> matrice (alternativ matrix)
+# shutter -> lukker
+#            http://da.wikipedia.org/wiki/Lukker 
+# shutter speed -> lukkertid
+#                  http://da.wikipedia.org/wiki/Lukkertid            
+# still image -> stillbillede
+# strobe light -> stroboskoplys
+# top -> øverst 
+# tag -> mærke
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: libexif-0.6.20-pre1\n"
+"Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-12-15 22:14-0800\n"
+"PO-Revision-Date: 2010-10-27 01:01I+0200\n"
+"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
+"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: libexif/canon/mnote-canon-entry.c:40 libexif/fuji/mnote-fuji-entry.c:35
+#: libexif/olympus/mnote-olympus-entry.c:37
+#: libexif/pentax/mnote-pentax-entry.c:39
+#, c-format
+msgid "Invalid format '%s', expected '%s'."
+msgstr "Ugyldigt format '%s', forventede '%s'."
+
+#: libexif/canon/mnote-canon-entry.c:52 libexif/fuji/mnote-fuji-entry.c:47
+#: libexif/olympus/mnote-olympus-entry.c:62
+#: libexif/pentax/mnote-pentax-entry.c:51
+#, c-format
+msgid "Invalid number of components (%i, expected %i)."
+msgstr "Ugyldigt antal komponenter (%i, forventede %i)."
+
+#: libexif/canon/mnote-canon-entry.c:61
+#: libexif/olympus/mnote-olympus-entry.c:72
+#: libexif/pentax/mnote-pentax-entry.c:61
+#, c-format
+msgid "Invalid number of components (%i, expected %i or %i)."
+msgstr "Ugyldigt antal komponenter (%i, forventede %i eller %i)."
+
+#: libexif/canon/mnote-canon-entry.c:76 libexif/canon/mnote-canon-entry.c:130
+#: libexif/canon/mnote-canon-entry.c:182 libexif/exif-entry.c:796
+#: libexif/olympus/mnote-olympus-entry.c:196
+#: libexif/olympus/mnote-olympus-tag.c:108
+#: libexif/pentax/mnote-pentax-entry.c:174
+#: libexif/pentax/mnote-pentax-entry.c:209
+#: libexif/pentax/mnote-pentax-entry.c:297
+msgid "Macro"
+msgstr "Makro"
+
+#: libexif/canon/mnote-canon-entry.c:77 libexif/canon/mnote-canon-entry.c:79
+#: libexif/canon/mnote-canon-entry.c:157 libexif/canon/mnote-canon-entry.c:160
+#: libexif/canon/mnote-canon-entry.c:163 libexif/exif-entry.c:674
+#: libexif/exif-entry.c:677 libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/exif-entry.c:745 libexif/fuji/mnote-fuji-entry.c:64
+#: libexif/olympus/mnote-olympus-entry.c:118
+#: libexif/olympus/mnote-olympus-entry.c:195
+#: libexif/olympus/mnote-olympus-entry.c:203
+#: libexif/olympus/mnote-olympus-entry.c:213
+#: libexif/olympus/mnote-olympus-entry.c:586
+#: libexif/pentax/mnote-pentax-entry.c:105
+#: libexif/pentax/mnote-pentax-entry.c:110
+#: libexif/pentax/mnote-pentax-entry.c:115
+#: libexif/pentax/mnote-pentax-entry.c:208
+msgid "Normal"
+msgstr "Normal"
+
+#: libexif/canon/mnote-canon-entry.c:78
+msgid "Economy"
+msgstr "Økonomi"
+
+#: libexif/canon/mnote-canon-entry.c:80
+msgid "Fine"
+msgstr "Fin"
+
+#: libexif/canon/mnote-canon-entry.c:81 libexif/fuji/mnote-fuji-entry.c:178
+#: libexif/pentax/mnote-pentax-entry.c:141
+msgid "RAW"
+msgstr "RÅ"
+
+#: libexif/canon/mnote-canon-entry.c:82
+msgid "Superfine"
+msgstr "Superfin"
+
+#: libexif/canon/mnote-canon-entry.c:83 libexif/canon/mnote-canon-entry.c:301
+#: libexif/canon/mnote-canon-entry.c:304 libexif/canon/mnote-canon-entry.c:312
+#: libexif/canon/mnote-canon-entry.c:345 libexif/canon/mnote-canon-entry.c:357
+#: libexif/canon/mnote-canon-entry.c:370 libexif/canon/mnote-canon-entry.c:372
+#: libexif/canon/mnote-canon-entry.c:574 libexif/canon/mnote-canon-entry.c:671
+#: libexif/fuji/mnote-fuji-entry.c:70 libexif/fuji/mnote-fuji-entry.c:103
+#: libexif/fuji/mnote-fuji-entry.c:107 libexif/fuji/mnote-fuji-entry.c:115
+#: libexif/fuji/mnote-fuji-entry.c:142
+#: libexif/olympus/mnote-olympus-entry.c:178
+#: libexif/olympus/mnote-olympus-entry.c:186
+#: libexif/olympus/mnote-olympus-entry.c:251
+#: libexif/olympus/mnote-olympus-entry.c:530
+#: libexif/olympus/mnote-olympus-entry.c:547
+#: libexif/pentax/mnote-pentax-entry.c:195
+#: libexif/pentax/mnote-pentax-entry.c:260
+msgid "Off"
+msgstr "Slukket"
+
+#: libexif/canon/mnote-canon-entry.c:84 libexif/canon/mnote-canon-entry.c:167
+#: libexif/canon/mnote-canon-entry.c:180 libexif/canon/mnote-canon-entry.c:328
+#: libexif/canon/mnote-canon-entry.c:400 libexif/fuji/mnote-fuji-entry.c:73
+#: libexif/fuji/mnote-fuji-entry.c:101 libexif/fuji/mnote-fuji-entry.c:111
+#: libexif/fuji/mnote-fuji-entry.c:119
+#: libexif/olympus/mnote-olympus-entry.c:131
+#: libexif/olympus/mnote-olympus-entry.c:183
+#: libexif/olympus/mnote-olympus-entry.c:199
+#: libexif/olympus/mnote-olympus-entry.c:244
+#: libexif/pentax/mnote-pentax-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:88
+#: libexif/pentax/mnote-pentax-entry.c:91
+#: libexif/pentax/mnote-pentax-entry.c:97
+#: libexif/pentax/mnote-pentax-entry.c:131
+#: libexif/pentax/mnote-pentax-entry.c:229
+#: libexif/pentax/mnote-pentax-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:290
+msgid "Auto"
+msgstr "Auto"
+
+#: libexif/canon/mnote-canon-entry.c:85 libexif/canon/mnote-canon-entry.c:302
+#: libexif/canon/mnote-canon-entry.c:347 libexif/canon/mnote-canon-entry.c:361
+#: libexif/canon/mnote-canon-entry.c:371 libexif/fuji/mnote-fuji-entry.c:102
+#: libexif/fuji/mnote-fuji-entry.c:108 libexif/fuji/mnote-fuji-entry.c:116
+#: libexif/fuji/mnote-fuji-entry.c:143
+#: libexif/olympus/mnote-olympus-entry.c:179
+#: libexif/olympus/mnote-olympus-entry.c:533
+#: libexif/olympus/mnote-olympus-entry.c:550
+#: libexif/pentax/mnote-pentax-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:261
+msgid "On"
+msgstr "Tændt"
+
+#: libexif/canon/mnote-canon-entry.c:86 libexif/fuji/mnote-fuji-entry.c:104
+#: libexif/olympus/mnote-olympus-entry.c:184
+#: libexif/pentax/mnote-pentax-entry.c:94
+msgid "Red-eye reduction"
+msgstr "Rødøjereduktion"
+
+#: libexif/canon/mnote-canon-entry.c:87
+msgid "Slow synchro"
+msgstr "Langsom synkronisering"
+
+#: libexif/canon/mnote-canon-entry.c:88
+msgid "Auto, red-eye reduction"
+msgstr "Auto, rødøjereduktion"
+
+#: libexif/canon/mnote-canon-entry.c:89
+#: libexif/pentax/mnote-pentax-entry.c:200
+msgid "On, red-eye reduction"
+msgstr "Tændt, rødøjereduktion"
+
+#: libexif/canon/mnote-canon-entry.c:90
+msgid "External flash"
+msgstr "Ekstern blitz"
+
+# Går ud fra at der menes et enkelt billede.
+#: libexif/canon/mnote-canon-entry.c:91 libexif/canon/mnote-canon-entry.c:101
+#: libexif/canon/mnote-canon-entry.c:294
+msgid "Single"
+msgstr "Enkelt"
+
+#: libexif/canon/mnote-canon-entry.c:92 libexif/canon/mnote-canon-entry.c:102
+#: libexif/canon/mnote-canon-entry.c:295
+msgid "Continuous"
+msgstr "Fortsættende"
+
+#: libexif/canon/mnote-canon-entry.c:93
+msgid "Movie"
+msgstr "Film"
+
+#: libexif/canon/mnote-canon-entry.c:94
+msgid "Continuous, speed priority"
+msgstr "Fortsættende, hastighedsprioritet"
+
+#: libexif/canon/mnote-canon-entry.c:95
+msgid "Continuous, low"
+msgstr "Fortsættende, lav"
+
+#: libexif/canon/mnote-canon-entry.c:96
+msgid "Continuous, high"
+msgstr "Fortsættende, høj"
+
+# AF = automatisk fokus?
+#: libexif/canon/mnote-canon-entry.c:97
+msgid "One-shot AF"
+msgstr "Et skud AF"
+
+#: libexif/canon/mnote-canon-entry.c:98
+msgid "AI servo AF"
+msgstr "Computerservo AF"
+
+#: libexif/canon/mnote-canon-entry.c:99
+msgid "AI focus AF"
+msgstr "Computerfokus AF"
+
+#: libexif/canon/mnote-canon-entry.c:100 libexif/canon/mnote-canon-entry.c:103
+msgid "Manual focus"
+msgstr "Manuel fokus"
+
+#: libexif/canon/mnote-canon-entry.c:104 libexif/canon/mnote-canon-entry.c:132
+#: libexif/canon/mnote-canon-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:212
+msgid "Pan focus"
+msgstr "Pan fokus"
+
+#: libexif/canon/mnote-canon-entry.c:105
+msgid "JPEG"
+msgstr "JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:106
+msgid "CRW+THM"
+msgstr "CRW+THM"
+
+#: libexif/canon/mnote-canon-entry.c:107
+msgid "AVI+THM"
+msgstr "AVI+THM"
+
+#: libexif/canon/mnote-canon-entry.c:108
+msgid "TIF"
+msgstr "TIF"
+
+#: libexif/canon/mnote-canon-entry.c:109
+msgid "TIF+JPEG"
+msgstr "TIF+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:110
+msgid "CR2"
+msgstr "CR2"
+
+#: libexif/canon/mnote-canon-entry.c:111
+msgid "CR2+JPEG"
+msgstr "CR2+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:112
+msgid "Large"
+msgstr "Stor"
+
+#: libexif/canon/mnote-canon-entry.c:113
+msgid "Medium"
+msgstr "Mellem"
+
+#: libexif/canon/mnote-canon-entry.c:114
+msgid "Small"
+msgstr "Lille"
+
+#: libexif/canon/mnote-canon-entry.c:115
+msgid "Medium 1"
+msgstr "Mellem 1"
+
+#: libexif/canon/mnote-canon-entry.c:116
+msgid "Medium 2"
+msgstr "Mellem 2"
+
+#: libexif/canon/mnote-canon-entry.c:117
+msgid "Medium 3"
+msgstr "Mellem 3"
+
+#: libexif/canon/mnote-canon-entry.c:118
+msgid "Postcard"
+msgstr "Postkort"
+
+#: libexif/canon/mnote-canon-entry.c:119
+msgid "Widescreen"
+msgstr "Fuldskærm"
+
+#: libexif/canon/mnote-canon-entry.c:120
+msgid "Full auto"
+msgstr "Fuld auto"
+
+# er det en handling eller en manual. (Manual eller manuelt)
+#: libexif/canon/mnote-canon-entry.c:121 libexif/canon/mnote-canon-entry.c:179
+#: libexif/canon/mnote-canon-entry.c:201 libexif/canon/mnote-canon-entry.c:285
+#: libexif/canon/mnote-canon-entry.c:392 libexif/exif-entry.c:744
+#: libexif/fuji/mnote-fuji-entry.c:112
+#: libexif/olympus/mnote-olympus-entry.c:90
+#: libexif/olympus/mnote-olympus-entry.c:200
+#: libexif/pentax/mnote-pentax-entry.c:79
+#: libexif/pentax/mnote-pentax-entry.c:102
+#: libexif/pentax/mnote-pentax-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:165
+#: libexif/pentax/mnote-pentax-entry.c:211
+#: libexif/pentax/mnote-pentax-entry.c:250
+msgid "Manual"
+msgstr "Manuelt"
+
+#: libexif/canon/mnote-canon-entry.c:122 libexif/canon/mnote-canon-entry.c:430
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:755
+#: libexif/fuji/mnote-fuji-entry.c:121 libexif/pentax/mnote-pentax-entry.c:167
+#: libexif/pentax/mnote-pentax-entry.c:301
+msgid "Landscape"
+msgstr "Landskab"
+
+#: libexif/canon/mnote-canon-entry.c:123
+msgid "Fast shutter"
+msgstr "Hurtig lukker"
+
+#: libexif/canon/mnote-canon-entry.c:124
+msgid "Slow shutter"
+msgstr "Langsom lukker"
+
+#: libexif/canon/mnote-canon-entry.c:125 libexif/fuji/mnote-fuji-entry.c:123
+#: libexif/olympus/mnote-olympus-entry.c:254
+msgid "Night"
+msgstr "Nat"
+
+#: libexif/canon/mnote-canon-entry.c:126
+msgid "Grayscale"
+msgstr "Gråskala"
+
+#: libexif/canon/mnote-canon-entry.c:127 libexif/canon/mnote-canon-entry.c:308
+#: libexif/pentax/mnote-pentax-entry.c:128
+msgid "Sepia"
+msgstr "Sepia"
+
+#: libexif/canon/mnote-canon-entry.c:128 libexif/canon/mnote-canon-entry.c:429
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:753
+#: libexif/fuji/mnote-fuji-entry.c:120 libexif/pentax/mnote-pentax-entry.c:166
+#: libexif/pentax/mnote-pentax-entry.c:291
+#: libexif/pentax/mnote-pentax-entry.c:294
+#: libexif/pentax/mnote-pentax-entry.c:300
+msgid "Portrait"
+msgstr "Portræt"
+
+#: libexif/canon/mnote-canon-entry.c:129 libexif/fuji/mnote-fuji-entry.c:122
+msgid "Sports"
+msgstr "Sport"
+
+#: libexif/canon/mnote-canon-entry.c:131 libexif/canon/mnote-canon-entry.c:309
+#: libexif/canon/mnote-canon-entry.c:335 libexif/canon/mnote-canon-entry.c:407
+#: libexif/fuji/mnote-fuji-entry.c:89 libexif/pentax/mnote-pentax-entry.c:127
+msgid "Black & white"
+msgstr "Sort & hvid"
+
+#: libexif/canon/mnote-canon-entry.c:133 libexif/canon/mnote-canon-entry.c:305
+msgid "Vivid"
+msgstr "Levende"
+
+#: libexif/canon/mnote-canon-entry.c:134 libexif/canon/mnote-canon-entry.c:306
+#: libexif/canon/mnote-canon-entry.c:431
+msgid "Neutral"
+msgstr "Neutral"
+
+#: libexif/canon/mnote-canon-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:93
+msgid "Flash off"
+msgstr "Blitz slukket"
+
+#: libexif/canon/mnote-canon-entry.c:136
+msgid "Long shutter"
+msgstr "Lang lukker"
+
+#: libexif/canon/mnote-canon-entry.c:137 libexif/canon/mnote-canon-entry.c:188
+#: libexif/olympus/mnote-olympus-entry.c:171
+msgid "Super macro"
+msgstr "Supermakro"
+
+#: libexif/canon/mnote-canon-entry.c:138
+msgid "Foliage"
+msgstr "Bladhang"
+
+#: libexif/canon/mnote-canon-entry.c:139
+msgid "Indoor"
+msgstr "Indendørs"
+
+#: libexif/canon/mnote-canon-entry.c:140 libexif/fuji/mnote-fuji-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:175
+msgid "Fireworks"
+msgstr "Fyrværkeri"
+
+#: libexif/canon/mnote-canon-entry.c:141 libexif/fuji/mnote-fuji-entry.c:133
+msgid "Beach"
+msgstr "Strand"
+
+#: libexif/canon/mnote-canon-entry.c:142 libexif/canon/mnote-canon-entry.c:344
+#: libexif/canon/mnote-canon-entry.c:416 libexif/fuji/mnote-fuji-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:292
+#: libexif/pentax/mnote-pentax-entry.c:298
+msgid "Underwater"
+msgstr "Under vandet"
+
+#: libexif/canon/mnote-canon-entry.c:143 libexif/fuji/mnote-fuji-entry.c:134
+msgid "Snow"
+msgstr "Sne"
+
+#: libexif/canon/mnote-canon-entry.c:144
+msgid "Kids & pets"
+msgstr "Børn & kæledyr"
+
+#: libexif/canon/mnote-canon-entry.c:145
+msgid "Night snapshot"
+msgstr "Hurtigt natbillede"
+
+#: libexif/canon/mnote-canon-entry.c:146
+msgid "Digital macro"
+msgstr "Digital makro"
+
+#: libexif/canon/mnote-canon-entry.c:147
+msgid "My colors"
+msgstr "Mine farver"
+
+# Stillbillede fremgår af RO
+#: libexif/canon/mnote-canon-entry.c:148
+msgid "Still image"
+msgstr "Stillbillede"
+
+#: libexif/canon/mnote-canon-entry.c:149
+msgid "Color accent"
+msgstr "Farveaccent"
+
+#: libexif/canon/mnote-canon-entry.c:150
+msgid "Color swap"
+msgstr "Farveskift"
+
+#: libexif/canon/mnote-canon-entry.c:151
+msgid "Aquarium"
+msgstr "Akvarium"
+
+#: libexif/canon/mnote-canon-entry.c:152
+msgid "ISO 3200"
+msgstr "ISO 3200"
+
+#: libexif/canon/mnote-canon-entry.c:153 libexif/canon/mnote-canon-entry.c:348
+#: libexif/canon/mnote-canon-entry.c:365 libexif/canon/mnote-canon-entry.c:417
+#: libexif/olympus/mnote-olympus-entry.c:189
+#: libexif/olympus/mnote-olympus-entry.c:226
+#: libexif/olympus/mnote-olympus-entry.c:451
+#: libexif/pentax/mnote-pentax-entry.c:242
+msgid "None"
+msgstr "Ingen"
+
+#: libexif/canon/mnote-canon-entry.c:154
+msgid "2x"
+msgstr "2x"
+
+#: libexif/canon/mnote-canon-entry.c:155
+msgid "4x"
+msgstr "4x"
+
+#: libexif/canon/mnote-canon-entry.c:156 libexif/exif-entry.c:702
+#: libexif/exif-entry.c:732
+msgid "Other"
+msgstr "Andre"
+
+#: libexif/canon/mnote-canon-entry.c:158 libexif/canon/mnote-canon-entry.c:161
+#: libexif/canon/mnote-canon-entry.c:164 libexif/canon/mnote-canon-entry.c:398
+#: libexif/fuji/mnote-fuji-entry.c:86 libexif/pentax/mnote-pentax-entry.c:112
+#: libexif/pentax/mnote-pentax-entry.c:117
+msgid "High"
+msgstr "Høj"
+
+#: libexif/canon/mnote-canon-entry.c:159 libexif/canon/mnote-canon-entry.c:162
+#: libexif/canon/mnote-canon-entry.c:165 libexif/canon/mnote-canon-entry.c:396
+#: libexif/pentax/mnote-pentax-entry.c:111
+#: libexif/pentax/mnote-pentax-entry.c:116
+msgid "Low"
+msgstr "Lav"
+
+#: libexif/canon/mnote-canon-entry.c:166
+msgid "Auto high"
+msgstr "Autohøjde"
+
+#: libexif/canon/mnote-canon-entry.c:168
+msgid "50"
+msgstr "50"
+
+#: libexif/canon/mnote-canon-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:120
+#: libexif/pentax/mnote-pentax-entry.c:122
+msgid "100"
+msgstr "100"
+
+#: libexif/canon/mnote-canon-entry.c:170
+#: libexif/pentax/mnote-pentax-entry.c:121
+#: libexif/pentax/mnote-pentax-entry.c:123
+msgid "200"
+msgstr "200"
+
+#: libexif/canon/mnote-canon-entry.c:171
+msgid "400"
+msgstr "400"
+
+#: libexif/canon/mnote-canon-entry.c:172
+msgid "800"
+msgstr "800"
+
+#: libexif/canon/mnote-canon-entry.c:173
+msgid "Default"
+msgstr "Standard"
+
+#: libexif/canon/mnote-canon-entry.c:174 libexif/exif-entry.c:698
+msgid "Spot"
+msgstr "Spot"
+
+#: libexif/canon/mnote-canon-entry.c:175 libexif/exif-entry.c:696
+msgid "Average"
+msgstr "Gennemsnit"
+
+# vurderende, bedømmende, evaluerende
+#: libexif/canon/mnote-canon-entry.c:176
+msgid "Evaluative"
+msgstr "Vurderende"
+
+#: libexif/canon/mnote-canon-entry.c:177 libexif/exif-entry.c:701
+msgid "Partial"
+msgstr "Delvis"
+
+#: libexif/canon/mnote-canon-entry.c:178 libexif/exif-entry.c:697
+msgid "Center-weighted average"
+msgstr "Centrumvægtet gennemsnit"
+
+#: libexif/canon/mnote-canon-entry.c:181
+msgid "Not known"
+msgstr "Ikke kendt"
+
+#: libexif/canon/mnote-canon-entry.c:183
+msgid "Very close"
+msgstr "Meget tæt på"
+
+#: libexif/canon/mnote-canon-entry.c:184 libexif/exif-entry.c:797
+msgid "Close"
+msgstr "Tæt på"
+
+#: libexif/canon/mnote-canon-entry.c:185
+msgid "Middle range"
+msgstr "Mellemafstand"
+
+#: libexif/canon/mnote-canon-entry.c:186
+msgid "Far range"
+msgstr "Langt væk"
+
+#: libexif/canon/mnote-canon-entry.c:189
+#: libexif/pentax/mnote-pentax-entry.c:210
+msgid "Infinity"
+msgstr "Uendeligt"
+
+#: libexif/canon/mnote-canon-entry.c:190
+msgid "Manual AF point selection"
+msgstr "Manuel AF-punktudvælgelse"
+
+#: libexif/canon/mnote-canon-entry.c:191 libexif/canon/mnote-canon-entry.c:349
+msgid "None (MF)"
+msgstr "Ingen (MF)"
+
+#: libexif/canon/mnote-canon-entry.c:192
+msgid "Auto-selected"
+msgstr "Autovalgt"
+
+#: libexif/canon/mnote-canon-entry.c:193 libexif/canon/mnote-canon-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:224
+#: libexif/pentax/mnote-pentax-entry.c:238
+msgid "Right"
+msgstr "Højre"
+
+#: libexif/canon/mnote-canon-entry.c:194 libexif/canon/mnote-canon-entry.c:351
+#: libexif/pentax/mnote-pentax-entry.c:222
+#: libexif/pentax/mnote-pentax-entry.c:237
+msgid "Center"
+msgstr "Midten"
+
+#: libexif/canon/mnote-canon-entry.c:195 libexif/canon/mnote-canon-entry.c:353
+#: libexif/pentax/mnote-pentax-entry.c:220
+#: libexif/pentax/mnote-pentax-entry.c:236
+msgid "Left"
+msgstr "Venstre"
+
+#: libexif/canon/mnote-canon-entry.c:196
+msgid "Auto AF point selection"
+msgstr "Auto AF-punktudvælgelse"
+
+#: libexif/canon/mnote-canon-entry.c:197
+msgid "Easy shooting"
+msgstr "Nem billedtagning"
+
+#: libexif/canon/mnote-canon-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:163
+msgid "Program"
+msgstr "Program"
+
+#: libexif/canon/mnote-canon-entry.c:199
+msgid "Tv-priority"
+msgstr "Tv-prioritet"
+
+#: libexif/canon/mnote-canon-entry.c:200
+msgid "Av-priority"
+msgstr "Av-prioritet"
+
+#: libexif/canon/mnote-canon-entry.c:202
+msgid "A-DEP"
+msgstr "A-DYB"
+
+#: libexif/canon/mnote-canon-entry.c:203
+msgid "M-DEP"
+msgstr "M-DYB"
+
+#: libexif/canon/mnote-canon-entry.c:204
+msgid "Canon EF 50mm f/1.8"
+msgstr "Canon EF 50mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:205
+msgid "Canon EF 28mm f/2.8"
+msgstr "Canon EF 28mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:206
+msgid "Sigma UC Zoom 35-135mm f/4-5.6"
+msgstr "Sigma UC Zoom 35-135mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:207
+msgid "Tokina AF193-2 19-35mm f/3.5-4.5"
+msgstr "Tokina AF193-2 19-35mm f/3.5-4.5"
+
+#: libexif/canon/mnote-canon-entry.c:208
+msgid "Canon EF 100-300mm F5.6L"
+msgstr "Canon EF 100-300mm F5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:209
+msgid "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+msgstr "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:210
+msgid "Canon EF 35mm f/2"
+msgstr "Canon EF 35mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:211
+msgid "Canon EF 15mm f/2.8"
+msgstr "Canon EF 15mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:212
+msgid "Canon EF 80-200mm f/2.8L"
+msgstr "Canon EF 80-200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:213
+msgid "Tokina AT-X280AF PRO 28-80mm F2.8 Aspherical"
+msgstr "Tokina AT-X280AF PRO 28-80mm F2.8 Aspherical"
+
+#: libexif/canon/mnote-canon-entry.c:214
+msgid "Cosina 100mm f/3.5 Macro AF"
+msgstr "Cosina 100mm f/3.5 Macro AF"
+
+#: libexif/canon/mnote-canon-entry.c:215
+msgid "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+msgstr "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:216
+msgid "Canon EF 50mm f/1.8 MkII"
+msgstr "Canon EF 50mm f/1.8 MkII"
+
+#: libexif/canon/mnote-canon-entry.c:217
+msgid "Tamron SP AF 300mm f/2.8 LD IF"
+msgstr "Tamron SP AF 300mm f/2.8 LD IF"
+
+#: libexif/canon/mnote-canon-entry.c:218
+msgid "Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+msgstr "Canon EF 24mm f/2.8 eller Sigma 15mm f/2.8 EX Fiskeøje"
+
+#: libexif/canon/mnote-canon-entry.c:219
+msgid "Canon EF 75-300mm f/4-5.6"
+msgstr "Canon EF 75-300mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:220
+msgid "Canon EF 28-80mm f/3.5-5.6"
+msgstr "Canon EF 28-80mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:221
+msgid "Canon EF 28-105mm f/4-5.6"
+msgstr "Canon EF 28-105mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:222
+msgid "Canon EF-S 18-55mm f/3.5-5.6"
+msgstr "Canon EF-S 18-55mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:223
+msgid "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+msgstr "Canon MP-E 65mm f/2.8 1-5x Makrofoto"
+
+#: libexif/canon/mnote-canon-entry.c:224
+msgid "Canon TS-E 24mm f/3.5L"
+msgstr "Canon TS-E 24mm f/3.5L"
+
+#: libexif/canon/mnote-canon-entry.c:225
+msgid "Canon TS-E 45mm f/2.8"
+msgstr "Canon TS-E 45mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:226
+msgid "Canon TS-E 90mm f/2.8"
+msgstr "Canon TS-E 90mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:227
+msgid "Canon EF 50mm f/1.0L"
+msgstr "Canon EF 50mm f/1.0L"
+
+#: libexif/canon/mnote-canon-entry.c:228
+msgid "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+msgstr "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+
+#: libexif/canon/mnote-canon-entry.c:229
+msgid "Canon EF 600mm f/4L IS"
+msgstr "Canon EF 600mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:230
+msgid "Canon EF 200mm f/1.8L"
+msgstr "Canon EF 200mm f/1.8L"
+
+#: libexif/canon/mnote-canon-entry.c:231
+msgid "Canon EF 300mm f/2.8L"
+msgstr "Canon EF 300mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:232
+msgid "Canon EF 85mm f/1.2L"
+msgstr "Canon EF 85mm f/1.2L"
+
+#: libexif/canon/mnote-canon-entry.c:233
+msgid "Canon EF 400mm f/2.8L"
+msgstr "Canon EF 400mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:234
+msgid "Canon EF 500mm f/4.5L"
+msgstr "Canon EF 500mm f/4.5L"
+
+#: libexif/canon/mnote-canon-entry.c:235
+msgid "Canon EF 300mm f/2.8L IS"
+msgstr "Canon EF 300mm f/2.8L IS"
+
+#: libexif/canon/mnote-canon-entry.c:236
+msgid "Canon EF 500mm f/4L IS"
+msgstr "Canon EF 500mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:237
+msgid "Canon EF 100mm f/2"
+msgstr "Canon EF 100mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:238
+msgid "Sigma 20mm EX f/1.8"
+msgstr "Sigma 20mm EX f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:239
+msgid "Canon EF 200mm f/2.8L"
+msgstr "Canon EF 200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:240
+msgid "Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+msgstr "Sigma 10-20mm F4-5.6 eller 12-24mm f/4.5-5.6 eller 14mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:241
+msgid "Canon EF 35-350mm f/3.5-5.6L"
+msgstr "Canon EF 35-350mm f/3.5-5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:242
+msgid "Canon EF 85mm f/1.8 USM"
+msgstr "Canon EF 85mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:243
+msgid "Canon EF 28-105mm f/3.5-4.5 USM"
+msgstr "Canon EF 28-105mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:244
+msgid "Canon EF 20-35mm f/3.5-4.5 USM"
+msgstr "Canon EF 20-35mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:245
+msgid "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+msgstr "Canon EF 28-70mm f/2.8L eller Sigma 24-70mm EX f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:246
+msgid "Canon EF 70-200mm f/2.8 L"
+msgstr "Canon EF 70-200mm f/2.8 L"
+
+#: libexif/canon/mnote-canon-entry.c:247
+msgid "Canon EF 70-200mm f/2.8 L + x1.4"
+msgstr "Canon EF 70-200mm f/2.8 L + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:248
+msgid "Canon EF 70-200mm f/2.8 L + x2"
+msgstr "Canon EF 70-200mm f/2.8 L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:249
+msgid "Canon EF 28mm f/1.8 USM"
+msgstr "Canon EF 28mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:250
+msgid "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+msgstr "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+
+#: libexif/canon/mnote-canon-entry.c:251
+msgid "Canon EF 200mm f/2.8L II"
+msgstr "Canon EF 200mm f/2.8L II"
+
+#: libexif/canon/mnote-canon-entry.c:252
+msgid "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+msgstr "Canon EF 180mm Macro f/3.5L eller Sigma 180mm EX HSM Macro f/3.5"
+
+#: libexif/canon/mnote-canon-entry.c:253
+msgid "Canon EF 135mm f/2L"
+msgstr "Canon EF 135mm f/2L"
+
+#: libexif/canon/mnote-canon-entry.c:254
+msgid "Canon EF 24-85mm f/3.5-4.5 USM"
+msgstr "Canon EF 24-85mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:255
+msgid "Canon EF 300mm f/4L IS"
+msgstr "Canon EF 300mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:256
+msgid "Canon EF 28-135mm f/3.5-5.6 IS"
+msgstr "Canon EF 28-135mm f/3.5-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:257
+msgid "Canon EF 35mm f/1.4L"
+msgstr "Canon EF 35mm f/1.4L"
+
+#: libexif/canon/mnote-canon-entry.c:258
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:259
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+
+#: libexif/canon/mnote-canon-entry.c:260
+msgid "Canon EF 100-400mm f/4.5-5.6L IS"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS"
+
+#: libexif/canon/mnote-canon-entry.c:261
+msgid "Canon EF 400mm f/2.8L + x2"
+msgstr "Canon EF 400mm f/2.8L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:262
+msgid "Canon EF 70-200mm f/4L"
+msgstr "Canon EF 70-200mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:263
+msgid "Canon EF 100mm f/2.8 Macro"
+msgstr "Canon EF 100mm f/2.8 Macro"
+
+#: libexif/canon/mnote-canon-entry.c:264
+msgid "Canon EF 400mm f/4 DO IS"
+msgstr "Canon EF 400mm f/4 DO IS"
+
+#: libexif/canon/mnote-canon-entry.c:265
+msgid "Canon EF 75-300mm f/4-5.6 IS"
+msgstr "Canon EF 75-300mm f/4-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:266
+msgid "Canon EF 50mm f/1.4"
+msgstr "Canon EF 50mm f/1.4"
+
+#: libexif/canon/mnote-canon-entry.c:267
+msgid "Canon EF 28-80 f/3.5-5.6 USM IV"
+msgstr "Canon EF 28-80 f/3.5-5.6 USM IV"
+
+#: libexif/canon/mnote-canon-entry.c:268
+msgid "Canon EF 28-200mm f/3.5-5.6"
+msgstr "Canon EF 28-200mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:269
+msgid "Canon EF 90-300mm f/4.5-5.6"
+msgstr "Canon EF 90-300mm f/4.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:270
+msgid "Canon EF-S 18-55mm f/3.5-4.5 USM"
+msgstr "Canon EF-S 18-55mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:271
+msgid "Canon EF 70-200mm f/2.8L IS USM"
+msgstr "Canon EF 70-200mm f/2.8L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:272
+msgid "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+msgstr "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:273
+msgid "Canon EF 70-200mm f/2.8L IS USM + x2"
+msgstr "Canon EF 70-200mm f/2.8L IS USM + x2"
+
+#: libexif/canon/mnote-canon-entry.c:274
+msgid "Canon EF 16-35mm f/2.8L"
+msgstr "Canon EF 16-35mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:275
+msgid "Canon EF 24-70mm f/2.8L"
+msgstr "Canon EF 24-70mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:276
+msgid "Canon EF 17-40mm f/4L"
+msgstr "Canon EF 17-40mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:277
+msgid "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+msgstr "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:278
+msgid "Canon EF-S 17-85mm f4-5.6 IS USM"
+msgstr "Canon EF-S 17-85mm f4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:279
+msgid "Canon EF-S10-22mm F3.5-4.5 USM"
+msgstr "Canon EF-S10-22mm F3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:280
+msgid "Canon EF-S60mm F2.8 Macro USM"
+msgstr "Canon EF-S60mm F2.8 Macro USM"
+
+#: libexif/canon/mnote-canon-entry.c:281
+msgid "Canon EF 24-105mm f/4L IS"
+msgstr "Canon EF 24-105mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:282
+msgid "Canon EF 70-300mm F4-5.6 IS USM"
+msgstr "Canon EF 70-300mm F4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:283
+msgid "Canon EF 50mm F1.2L USM"
+msgstr "Canon EF 50mm F1.2L USM"
+
+#: libexif/canon/mnote-canon-entry.c:284
+msgid "Canon EF 70-200mm f/4L IS USM"
+msgstr "Canon EF 70-200mm f/4L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:286
+msgid "TTL"
+msgstr "TTL"
+
+#: libexif/canon/mnote-canon-entry.c:287
+msgid "A-TTL"
+msgstr "A-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:288
+msgid "E-TTL"
+msgstr "E-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:289
+msgid "FP sync enabled"
+msgstr "FP-synkronisering slået til"
+
+#: libexif/canon/mnote-canon-entry.c:290
+msgid "2nd-curtain sync used"
+msgstr "2.-udskilt synkronisering brugt"
+
+#: libexif/canon/mnote-canon-entry.c:291
+msgid "FP sync used"
+msgstr "FP-synkronisering brugt"
+
+#: libexif/canon/mnote-canon-entry.c:292
+#: libexif/olympus/mnote-olympus-entry.c:190
+msgid "Internal"
+msgstr "Intern"
+
+#: libexif/canon/mnote-canon-entry.c:293
+#: libexif/olympus/mnote-olympus-entry.c:191
+msgid "External"
+msgstr "Ekstern"
+
+#: libexif/canon/mnote-canon-entry.c:296
+msgid "Normal AE"
+msgstr "Normal AE"
+
+#: libexif/canon/mnote-canon-entry.c:297
+msgid "Exposure compensation"
+msgstr "Belysningskompensation"
+
+#: libexif/canon/mnote-canon-entry.c:298
+msgid "AE lock"
+msgstr "AE-lås"
+
+#: libexif/canon/mnote-canon-entry.c:299
+msgid "AE lock + exposure compensation"
+msgstr "AE-lås + belysningskompensation"
+
+#: libexif/canon/mnote-canon-entry.c:300
+msgid "No AE"
+msgstr "Ingen AE"
+
+#: libexif/canon/mnote-canon-entry.c:303
+msgid "On, shot only"
+msgstr "Tændt, kun billed"
+
+#: libexif/canon/mnote-canon-entry.c:307
+msgid "Smooth"
+msgstr "Udglattet"
+
+#: libexif/canon/mnote-canon-entry.c:310 libexif/canon/mnote-canon-entry.c:334
+#: libexif/canon/mnote-canon-entry.c:393 libexif/canon/mnote-canon-entry.c:406
+#: libexif/fuji/mnote-fuji-entry.c:81 libexif/pentax/mnote-pentax-entry.c:87
+msgid "Custom"
+msgstr "Tilpasset"
+
+#: libexif/canon/mnote-canon-entry.c:311
+msgid "My color data"
+msgstr "Mine farvedata"
+
+#: libexif/canon/mnote-canon-entry.c:313 libexif/canon/mnote-canon-entry.c:375
+#: libexif/pentax/mnote-pentax-entry.c:126
+#: libexif/pentax/mnote-pentax-entry.c:145
+msgid "Full"
+msgstr "Fuld"
+
+#: libexif/canon/mnote-canon-entry.c:314 libexif/canon/mnote-canon-entry.c:374
+msgid "2/3"
+msgstr "2/3"
+
+#: libexif/canon/mnote-canon-entry.c:315 libexif/canon/mnote-canon-entry.c:373
+msgid "1/3"
+msgstr "1/3"
+
+#: libexif/canon/mnote-canon-entry.c:321
+msgid "Fixed"
+msgstr "Fast"
+
+#: libexif/canon/mnote-canon-entry.c:322 libexif/pentax/mnote-pentax-tag.c:44
+msgid "Zoom"
+msgstr "Zoom"
+
+#: libexif/canon/mnote-canon-entry.c:329
+msgid "Sunny"
+msgstr "Solrig"
+
+#: libexif/canon/mnote-canon-entry.c:330 libexif/canon/mnote-canon-entry.c:402
+#: libexif/exif-entry.c:719 libexif/fuji/mnote-fuji-entry.c:75
+#: libexif/olympus/mnote-olympus-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:255
+msgid "Cloudy"
+msgstr "Overskyet"
+
+#: libexif/canon/mnote-canon-entry.c:331 libexif/canon/mnote-canon-entry.c:403
+#: libexif/exif-entry.c:716 libexif/pentax/mnote-pentax-entry.c:100
+#: libexif/pentax/mnote-pentax-entry.c:249
+msgid "Tungsten"
+msgstr "Wolfram"
+
+#: libexif/canon/mnote-canon-entry.c:332 libexif/canon/mnote-canon-entry.c:404
+#: libexif/exif-entry.c:715 libexif/pentax/mnote-pentax-entry.c:101
+#: libexif/pentax/mnote-pentax-entry.c:248
+msgid "Fluorescent"
+msgstr "Fluorescerende"
+
+#: libexif/canon/mnote-canon-entry.c:333 libexif/canon/mnote-canon-entry.c:405
+#: libexif/exif-entry.c:717 libexif/exif-entry.c:759 libexif/exif-tag.c:577
+#: libexif/fuji/mnote-fuji-entry.c:80 libexif/pentax/mnote-pentax-entry.c:254
+msgid "Flash"
+msgstr "Blitz"
+
+#: libexif/canon/mnote-canon-entry.c:336 libexif/canon/mnote-canon-entry.c:408
+#: libexif/exif-entry.c:720 libexif/pentax/mnote-pentax-entry.c:99
+#: libexif/pentax/mnote-pentax-entry.c:247
+msgid "Shade"
+msgstr "Skygge"
+
+#: libexif/canon/mnote-canon-entry.c:337 libexif/canon/mnote-canon-entry.c:409
+msgid "Manual temperature (Kelvin)"
+msgstr "Manuel temperatur (Kelvin)"
+
+# pc sb., pc'en, pc'er. jævnfør RO
+#: libexif/canon/mnote-canon-entry.c:338 libexif/canon/mnote-canon-entry.c:410
+msgid "PC set 1"
+msgstr "Pc sæt 1"
+
+#: libexif/canon/mnote-canon-entry.c:339 libexif/canon/mnote-canon-entry.c:411
+msgid "PC set 2"
+msgstr "Pc sæt 2"
+
+#: libexif/canon/mnote-canon-entry.c:340 libexif/canon/mnote-canon-entry.c:412
+msgid "PC set 3"
+msgstr "Pc sæt 3"
+
+#: libexif/canon/mnote-canon-entry.c:341 libexif/canon/mnote-canon-entry.c:413
+#: libexif/exif-entry.c:721 libexif/fuji/mnote-fuji-entry.c:76
+#: libexif/pentax/mnote-pentax-entry.c:251
+msgid "Daylight fluorescent"
+msgstr "Fluorescerende dagslys"
+
+#: libexif/canon/mnote-canon-entry.c:342 libexif/canon/mnote-canon-entry.c:414
+msgid "Custom 1"
+msgstr "Tilpasset 1"
+
+#: libexif/canon/mnote-canon-entry.c:343 libexif/canon/mnote-canon-entry.c:415
+msgid "Custom 2"
+msgstr "Tilpasset 2"
+
+#: libexif/canon/mnote-canon-entry.c:346 libexif/exif-entry.c:672
+#: libexif/pentax/mnote-pentax-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:132
+#: libexif/pentax/mnote-pentax-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:295
+msgid "Night scene"
+msgstr "Natscene"
+
+# Evt. Centrum-højre
+#: libexif/canon/mnote-canon-entry.c:352
+msgid "Center-right"
+msgstr "Centrum mod højre"
+
+#: libexif/canon/mnote-canon-entry.c:354
+msgid "Left-right"
+msgstr "Venstre mod højre"
+
+#: libexif/canon/mnote-canon-entry.c:355
+msgid "Left-center"
+msgstr "Venstre mod centrum"
+
+#: libexif/canon/mnote-canon-entry.c:356
+msgid "All"
+msgstr "Alle"
+
+#: libexif/canon/mnote-canon-entry.c:358
+msgid "On (shot 1)"
+msgstr "Tændt (billed 1)"
+
+#: libexif/canon/mnote-canon-entry.c:359
+msgid "On (shot 2)"
+msgstr "Tændt (billed 2)"
+
+#: libexif/canon/mnote-canon-entry.c:360
+msgid "On (shot 3)"
+msgstr "Tændt (billed 3)"
+
+#: libexif/canon/mnote-canon-entry.c:362
+msgid "EOS high-end"
+msgstr "EOS høj kvalitet"
+
+#: libexif/canon/mnote-canon-entry.c:363
+msgid "Compact"
+msgstr "Kompakt"
+
+#: libexif/canon/mnote-canon-entry.c:364
+msgid "EOS mid-range"
+msgstr "EOS mellem kvalitet"
+
+#: libexif/canon/mnote-canon-entry.c:366
+msgid "Rotate 90 CW"
+msgstr "Roter 90 med uret"
+
+#: libexif/canon/mnote-canon-entry.c:367
+msgid "Rotate 180"
+msgstr "Roter 180"
+
+# CW ? clockwise?
+#: libexif/canon/mnote-canon-entry.c:368
+msgid "Rotate 270 CW"
+msgstr "Roter 270 med uret"
+
+#: libexif/canon/mnote-canon-entry.c:369
+msgid "Rotated by software"
+msgstr "Roteret af software"
+
+#: libexif/canon/mnote-canon-entry.c:381
+#: libexif/olympus/mnote-olympus-entry.c:606
+msgid "Left to right"
+msgstr "Venstre mod højre"
+
+#: libexif/canon/mnote-canon-entry.c:382
+#: libexif/olympus/mnote-olympus-entry.c:609
+msgid "Right to left"
+msgstr "Højre mod venstre"
+
+#: libexif/canon/mnote-canon-entry.c:383
+#: libexif/olympus/mnote-olympus-entry.c:612
+msgid "Bottom to top"
+msgstr "Nederst til øverst"
+
+#: libexif/canon/mnote-canon-entry.c:384
+#: libexif/olympus/mnote-olympus-entry.c:615
+msgid "Top to bottom"
+msgstr "Øverst til nederst"
+
+#: libexif/canon/mnote-canon-entry.c:385
+msgid "2x2 matrix (clockwise)"
+msgstr "2x2 matrice (med uret)"
+
+#: libexif/canon/mnote-canon-entry.c:391 libexif/canon/mnote-canon-entry.c:397
+#: libexif/canon/mnote-canon-entry.c:418 libexif/canon/mnote-canon-entry.c:428
+#: libexif/exif-entry.c:671 libexif/fuji/mnote-fuji-entry.c:84
+#: libexif/fuji/mnote-fuji-entry.c:93 libexif/fuji/mnote-fuji-entry.c:163
+#: libexif/olympus/mnote-olympus-entry.c:227
+msgid "Standard"
+msgstr "Standard"
+
+#: libexif/canon/mnote-canon-entry.c:394
+msgid "N/A"
+msgstr "-"
+
+#: libexif/canon/mnote-canon-entry.c:395
+msgid "Lowest"
+msgstr "Lavest"
+
+#: libexif/canon/mnote-canon-entry.c:399
+msgid "Highest"
+msgstr "Højest"
+
+#: libexif/canon/mnote-canon-entry.c:401 libexif/exif-entry.c:714
+#: libexif/fuji/mnote-fuji-entry.c:74
+#: libexif/olympus/mnote-olympus-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:98
+#: libexif/pentax/mnote-pentax-entry.c:246
+msgid "Daylight"
+msgstr "Dagslys"
+
+#: libexif/canon/mnote-canon-entry.c:419
+msgid "Set 1"
+msgstr "Sæt 1"
+
+#: libexif/canon/mnote-canon-entry.c:420
+msgid "Set 2"
+msgstr "Sæt 2"
+
+#: libexif/canon/mnote-canon-entry.c:421
+msgid "Set 3"
+msgstr "Sæt 3"
+
+#: libexif/canon/mnote-canon-entry.c:422
+msgid "User def. 1"
+msgstr "Brugerdef. 1"
+
+#: libexif/canon/mnote-canon-entry.c:423
+msgid "User def. 2"
+msgstr "Brugerdef. 2"
+
+#: libexif/canon/mnote-canon-entry.c:424
+msgid "User def. 3"
+msgstr "Brugerdef. 3"
+
+#: libexif/canon/mnote-canon-entry.c:425
+msgid "External 1"
+msgstr "Ekstern 1"
+
+#: libexif/canon/mnote-canon-entry.c:426
+msgid "External 2"
+msgstr "Ekstern 2"
+
+#: libexif/canon/mnote-canon-entry.c:427
+msgid "External 3"
+msgstr "Ekstern 3"
+
+#: libexif/canon/mnote-canon-entry.c:432
+msgid "Faithful"
+msgstr "Trofast"
+
+#: libexif/canon/mnote-canon-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:115
+msgid "Monochrome"
+msgstr "Monokrom"
+
+#: libexif/canon/mnote-canon-entry.c:491
+msgid ", "
+msgstr ", "
+
+#: libexif/canon/mnote-canon-entry.c:577 libexif/canon/mnote-canon-entry.c:674
+#, c-format
+msgid "%i (ms)"
+msgstr "%i (ms)"
+
+#: libexif/canon/mnote-canon-entry.c:621
+#, c-format
+msgid "%.2f mm"
+msgstr "%.2f mm"
+
+#: libexif/canon/mnote-canon-entry.c:645
+#, c-format
+msgid "%.2f EV"
+msgstr "%.2f EV"
+
+#: libexif/canon/mnote-canon-entry.c:655 libexif/exif-entry.c:1064
+#, c-format
+msgid "1/%i"
+msgstr "1/%i"
+
+#: libexif/canon/mnote-canon-entry.c:667
+#, c-format
+msgid "%u mm"
+msgstr "%u mm"
+
+#: libexif/canon/mnote-canon-tag.c:35
+msgid "Settings (First Part)"
+msgstr "Opsætning (første del)"
+
+#: libexif/canon/mnote-canon-tag.c:36 libexif/canon/mnote-canon-tag.c:92
+#: libexif/exif-tag.c:581 libexif/pentax/mnote-pentax-tag.c:88
+msgid "Focal Length"
+msgstr "Brændvidde"
+
+#: libexif/canon/mnote-canon-tag.c:37
+msgid "Settings (Second Part)"
+msgstr "Opsætning (anden del)"
+
+#: libexif/canon/mnote-canon-tag.c:38
+#: libexif/olympus/mnote-olympus-entry.c:595
+#: libexif/pentax/mnote-pentax-entry.c:177
+msgid "Panorama"
+msgstr "Panorama"
+
+#: libexif/canon/mnote-canon-tag.c:39
+msgid "Image Type"
+msgstr "Billedtype"
+
+#: libexif/canon/mnote-canon-tag.c:40 libexif/olympus/mnote-olympus-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:113
+msgid "Firmware Version"
+msgstr "Firmwareversion"
+
+#: libexif/canon/mnote-canon-tag.c:41
+msgid "Image Number"
+msgstr "Billednummer"
+
+#: libexif/canon/mnote-canon-tag.c:42
+msgid "Owner Name"
+msgstr "Ejernavn"
+
+#: libexif/canon/mnote-canon-tag.c:43
+msgid "Color Information"
+msgstr "Farveinformation"
+
+#: libexif/canon/mnote-canon-tag.c:44 libexif/fuji/mnote-fuji-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:81
+#: libexif/olympus/mnote-olympus-tag.c:146
+msgid "Serial Number"
+msgstr "Serielnummer"
+
+#: libexif/canon/mnote-canon-tag.c:45
+msgid "Custom Functions"
+msgstr "Tilpassede funktioner"
+
+#: libexif/canon/mnote-canon-tag.c:56 libexif/fuji/mnote-fuji-tag.c:45
+msgid "Macro Mode"
+msgstr "Makrotilstand"
+
+#: libexif/canon/mnote-canon-tag.c:57 libexif/canon/mnote-canon-tag.c:117
+#: libexif/olympus/mnote-olympus-tag.c:175
+#: libexif/pentax/mnote-pentax-tag.c:128
+msgid "Self-timer"
+msgstr "Selvudløser"
+
+#: libexif/canon/mnote-canon-tag.c:58 libexif/fuji/mnote-fuji-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:94
+#: libexif/olympus/mnote-olympus-tag.c:107
+msgid "Quality"
+msgstr "Kvalitet"
+
+#: libexif/canon/mnote-canon-tag.c:59 libexif/fuji/mnote-fuji-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:45
+#: libexif/olympus/mnote-olympus-tag.c:127
+#: libexif/pentax/mnote-pentax-tag.c:38 libexif/pentax/mnote-pentax-tag.c:73
+msgid "Flash Mode"
+msgstr "Blitztilstand"
+
+#: libexif/canon/mnote-canon-tag.c:60 libexif/pentax/mnote-pentax-tag.c:101
+msgid "Drive Mode"
+msgstr "Drevtilstand"
+
+#: libexif/canon/mnote-canon-tag.c:61 libexif/canon/mnote-canon-tag.c:82
+#: libexif/olympus/mnote-olympus-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:134
+#: libexif/olympus/mnote-olympus-tag.c:173
+#: libexif/pentax/mnote-pentax-tag.c:37 libexif/pentax/mnote-pentax-tag.c:74
+#: libexif/pentax/mnote-pentax-tag.c:130
+msgid "Focus Mode"
+msgstr "Fokustilstand"
+
+#: libexif/canon/mnote-canon-tag.c:62 libexif/pentax/mnote-pentax-tag.c:127
+msgid "Record Mode"
+msgstr "Optagelsestilstand"
+
+#: libexif/canon/mnote-canon-tag.c:63 libexif/pentax/mnote-pentax-tag.c:71
+msgid "Image Size"
+msgstr "Billedstørrelse"
+
+#: libexif/canon/mnote-canon-tag.c:64
+msgid "Easy Shooting Mode"
+msgstr "Nem billedtagning"
+
+#: libexif/canon/mnote-canon-tag.c:65 libexif/olympus/mnote-olympus-tag.c:64
+#: libexif/olympus/mnote-olympus-tag.c:101
+#: libexif/olympus/mnote-olympus-tag.c:110
+#: libexif/olympus/mnote-olympus-tag.c:180
+#: libexif/pentax/mnote-pentax-tag.c:89
+msgid "Digital Zoom"
+msgstr "Digital zoom"
+
+#: libexif/canon/mnote-canon-tag.c:66 libexif/exif-tag.c:828
+#: libexif/fuji/mnote-fuji-tag.c:42 libexif/pentax/mnote-pentax-tag.c:46
+#: libexif/pentax/mnote-pentax-tag.c:91
+msgid "Contrast"
+msgstr "Kontrast"
+
+#: libexif/canon/mnote-canon-tag.c:67 libexif/exif-tag.c:832
+#: libexif/olympus/mnote-olympus-tag.c:75
+#: libexif/olympus/mnote-olympus-tag.c:87 libexif/pentax/mnote-pentax-tag.c:47
+#: libexif/pentax/mnote-pentax-tag.c:90
+msgid "Saturation"
+msgstr "Mæthed"
+
+#: libexif/canon/mnote-canon-tag.c:68 libexif/exif-tag.c:836
+#: libexif/fuji/mnote-fuji-tag.c:39 libexif/pentax/mnote-pentax-tag.c:45
+#: libexif/pentax/mnote-pentax-tag.c:92
+msgid "Sharpness"
+msgstr "Skarphed"
+
+#: libexif/canon/mnote-canon-tag.c:69
+msgid "ISO"
+msgstr "ISO"
+
+# Målingstilstand
+#: libexif/canon/mnote-canon-tag.c:70 libexif/exif-tag.c:571
+#: libexif/pentax/mnote-pentax-tag.c:82
+msgid "Metering Mode"
+msgstr "Måletilstand"
+
+#: libexif/canon/mnote-canon-tag.c:71 libexif/olympus/mnote-olympus-tag.c:133
+msgid "Focus Range"
+msgstr "Fokusafstand"
+
+#: libexif/canon/mnote-canon-tag.c:72 libexif/canon/mnote-canon-tag.c:105
+msgid "AF Point"
+msgstr "AF-position"
+
+#: libexif/canon/mnote-canon-tag.c:73 libexif/exif-tag.c:795
+msgid "Exposure Mode"
+msgstr "Belysningstilstand"
+
+#: libexif/canon/mnote-canon-tag.c:74 libexif/olympus/mnote-olympus-tag.c:61
+#: libexif/pentax/mnote-pentax-tag.c:106
+msgid "Lens Type"
+msgstr "Linsetype"
+
+#: libexif/canon/mnote-canon-tag.c:75
+msgid "Long Focal Length of Lens"
+msgstr "Lang brændvidde på linse"
+
+#: libexif/canon/mnote-canon-tag.c:76
+msgid "Short Focal Length of Lens"
+msgstr "Kort brændvidde på linse"
+
+#: libexif/canon/mnote-canon-tag.c:77
+msgid "Focal Units per mm"
+msgstr "Brændpunktsenheder per mm"
+
+#: libexif/canon/mnote-canon-tag.c:78
+msgid "Maximal Aperture"
+msgstr "Maksimal blændetal"
+
+#: libexif/canon/mnote-canon-tag.c:79
+msgid "Minimal Aperture"
+msgstr "Minimal blændetal"
+
+#: libexif/canon/mnote-canon-tag.c:80
+msgid "Flash Activity"
+msgstr "Blitzaktivitet"
+
+#: libexif/canon/mnote-canon-tag.c:81
+msgid "Flash Details"
+msgstr "Blitzdetaljer"
+
+#: libexif/canon/mnote-canon-tag.c:83
+msgid "AE Setting"
+msgstr "AE-opsætning"
+
+#: libexif/canon/mnote-canon-tag.c:84
+msgid "Image Stabilization"
+msgstr "Billedstabilisering"
+
+#: libexif/canon/mnote-canon-tag.c:85
+msgid "Display Aperture"
+msgstr "Vis blændetal"
+
+#: libexif/canon/mnote-canon-tag.c:86
+msgid "Zoom Source Width"
+msgstr "Zoom kildebredde"
+
+#: libexif/canon/mnote-canon-tag.c:87
+msgid "Zoom Target Width"
+msgstr "Zoom målbredde"
+
+#: libexif/canon/mnote-canon-tag.c:88
+msgid "Photo Effect"
+msgstr "Fotoeffekt"
+
+#: libexif/canon/mnote-canon-tag.c:89 libexif/canon/mnote-canon-tag.c:118
+msgid "Manual Flash Output"
+msgstr "Manuel blitzuddata"
+
+#: libexif/canon/mnote-canon-tag.c:90
+msgid "Color Tone"
+msgstr "Farvetone"
+
+#: libexif/canon/mnote-canon-tag.c:91
+msgid "Focal Type"
+msgstr "Brændpunktstype"
+
+#: libexif/canon/mnote-canon-tag.c:93
+msgid "Focal Plane X Size"
+msgstr "Brændpunktsplan X-størrelse"
+
+#: libexif/canon/mnote-canon-tag.c:94
+msgid "Focal Plane Y Size"
+msgstr "Brændpunktsplan Y-størrelse"
+
+#: libexif/canon/mnote-canon-tag.c:95
+msgid "Auto ISO"
+msgstr "Auto-ISO"
+
+# Jeg ikke særlig meget forstand på disse begreber, og jeg ved ikke 
+# om det bør være "Skud-ISO", "ISO-skud" eller "Skud, ISO".
+#: libexif/canon/mnote-canon-tag.c:96
+msgid "Shot ISO"
+msgstr "Skud ISO"
+
+#: libexif/canon/mnote-canon-tag.c:97
+msgid "Measured EV"
+msgstr "Målt EV"
+
+#: libexif/canon/mnote-canon-tag.c:98
+msgid "Target Aperture"
+msgstr "Målblændetal"
+
+#: libexif/canon/mnote-canon-tag.c:99
+msgid "Target Exposure Time"
+msgstr "Belysningstid for mål"
+
+#: libexif/canon/mnote-canon-tag.c:100 libexif/olympus/mnote-olympus-tag.c:129
+#: libexif/pentax/mnote-pentax-tag.c:81
+msgid "Exposure Compensation"
+msgstr "Belysningskompensation"
+
+#: libexif/canon/mnote-canon-tag.c:101 libexif/canon/mnote-canon-tag.c:123
+#: libexif/exif-tag.c:800 libexif/fuji/mnote-fuji-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:41
+#: libexif/olympus/mnote-olympus-tag.c:98 libexif/pentax/mnote-pentax-tag.c:41
+#: libexif/pentax/mnote-pentax-tag.c:84 libexif/pentax/mnote-pentax-tag.c:124
+msgid "White Balance"
+msgstr "Hvidbalance"
+
+#: libexif/canon/mnote-canon-tag.c:102
+msgid "Slow Shutter"
+msgstr "Langsom lukker"
+
+#: libexif/canon/mnote-canon-tag.c:103
+msgid "Sequence Number"
+msgstr "Sekvensnummer"
+
+#: libexif/canon/mnote-canon-tag.c:104
+msgid "Flash Guide Number"
+msgstr "Vejledningsnummer for blitz"
+
+#: libexif/canon/mnote-canon-tag.c:106 libexif/olympus/mnote-olympus-tag.c:52
+#: libexif/pentax/mnote-pentax-tag.c:109
+msgid "Flash Exposure Compensation"
+msgstr "Belysningskompensation for blitz"
+
+# Exposure bracketing is a simple technique professional 
+# photographers use to ensure they properly expose their 
+# pictures, especially in challenging lighting situations.
+# der tages et billede før og efter med under og overeksponering af lys.
+# Derfor ikke kantparenteser, måske omklamring eller sammenstilling.
+#: libexif/canon/mnote-canon-tag.c:107
+msgid "AE Bracketing"
+msgstr "AE-sammenstilling"
+
+#: libexif/canon/mnote-canon-tag.c:108
+msgid "AE Bracket Value"
+msgstr "AE-sammenstilingsværdi"
+
+#: libexif/canon/mnote-canon-tag.c:109
+msgid "Focus Distance Upper"
+msgstr "Fokus - Afstand - Oppe"
+
+#: libexif/canon/mnote-canon-tag.c:110
+msgid "Focus Distance Lower"
+msgstr "Fokus - Afstand - Lavt"
+
+#: libexif/canon/mnote-canon-tag.c:111
+msgid "FNumber"
+msgstr "FNummer"
+
+#: libexif/canon/mnote-canon-tag.c:112 libexif/exif-tag.c:466
+#: libexif/pentax/mnote-pentax-tag.c:78
+msgid "Exposure Time"
+msgstr "Belysningstid"
+
+#: libexif/canon/mnote-canon-tag.c:113
+msgid "Bulb Duration"
+msgstr "Pærevarighed"
+
+#: libexif/canon/mnote-canon-tag.c:114
+msgid "Camera Type"
+msgstr "Kameratype"
+
+#: libexif/canon/mnote-canon-tag.c:115
+msgid "Auto Rotate"
+msgstr "Autoroter"
+
+#: libexif/canon/mnote-canon-tag.c:116
+msgid "ND Filter"
+msgstr "ND-filter"
+
+#: libexif/canon/mnote-canon-tag.c:119
+msgid "Panorama Frame"
+msgstr "Panoramabilled"
+
+#: libexif/canon/mnote-canon-tag.c:120
+msgid "Panorama Direction"
+msgstr "Panoramaretning"
+
+#: libexif/canon/mnote-canon-tag.c:121
+msgid "Tone Curve"
+msgstr "Tonekurve"
+
+#: libexif/canon/mnote-canon-tag.c:122
+msgid "Sharpness Frequency"
+msgstr "Skarphedsfrekvens"
+
+#: libexif/canon/mnote-canon-tag.c:124
+msgid "Picture Style"
+msgstr "Billedstil"
+
+#: libexif/exif-byte-order.c:33
+msgid "Motorola"
+msgstr "Motorola"
+
+#: libexif/exif-byte-order.c:35
+msgid "Intel"
+msgstr "Intel"
+
+#: libexif/exif-data.c:780
+msgid "Size of data too small to allow for EXIF data."
+msgstr "Størrelse på data for lille til EXIF-data."
+
+#: libexif/exif-data.c:841
+msgid "EXIF marker not found."
+msgstr "EXIF-markør ikke fundet."
+
+#: libexif/exif-data.c:868
+msgid "EXIF header not found."
+msgstr "EXIF-hoved ikke fundet."
+
+#: libexif/exif-data.c:884
+msgid "Unknown encoding."
+msgstr "Ukendt kodning."
+
+#: libexif/exif-data.c:1168
+msgid "Ignore unknown tags"
+msgstr "Ignorer ukendte mærker"
+
+#: libexif/exif-data.c:1169
+msgid "Ignore unknown tags when loading EXIF data."
+msgstr "Ignorer ukendt mærker når EXIF-data indlæses."
+
+#: libexif/exif-data.c:1170
+msgid "Follow specification"
+msgstr "Følg specifikation"
+
+#: libexif/exif-data.c:1171
+msgid ""
+"Add, correct and remove entries to get EXIF data that follows the "
+"specification."
+msgstr ""
+"Tilføj, ret eller fjern poster for at få EXIF-data som følger "
+"specifikationen."
+
+#: libexif/exif-data.c:1173
+msgid "Do not change maker note"
+msgstr "Ændr ikke fremstillernote"
+
+#: libexif/exif-data.c:1174
+msgid ""
+"When loading and resaving Exif data, save the maker note unmodified. Be "
+"aware that the maker note can get corrupted."
+msgstr ""
+"Ved indlæsning og gemning af Exif-data, gem fremstillernoten uændret. Vær "
+"opmærksom på at markørnoten kan gå i stykker."
+
+#: libexif/exif-entry.c:234 libexif/exif-entry.c:303 libexif/exif-entry.c:336
+#, c-format
+msgid ""
+"Tag '%s' was of format '%s' (which is against specification) and has been "
+"changed to format '%s'."
+msgstr ""
+"Mærke '%s' var af format '%s' (som er imod specifikation), og er blevet "
+"ændret til format '%s'."
+
+#: libexif/exif-entry.c:271
+#, c-format
+msgid ""
+"Tag '%s' is of format '%s' (which is against specification) but cannot be "
+"changed to format '%s'."
+msgstr ""
+"Mærke '%s' er af format '%s' (som er imod specifikation), men kan ikke "
+"ændres til format '%s'."
+
+#: libexif/exif-entry.c:354
+#, c-format
+msgid ""
+"Tag 'UserComment' had invalid format '%s'. Format has been set to "
+"'undefined'."
+msgstr ""
+"Mærke 'Brugerkommentar' havde ugyldigt format '%s'. Format er blevet sat til "
+"'udefineret'."
+
+#: libexif/exif-entry.c:381
+msgid ""
+"Tag 'UserComment' has been expanded to at least 8 bytes in order to follow "
+"the specification."
+msgstr ""
+"Mærke 'Brugerkommentar' er blevet udvidet til mindst 8 byte for at følge "
+"specifikationen."
+
+#: libexif/exif-entry.c:396
+msgid ""
+"Tag 'UserComment' is not empty but does not start with a format identifier. "
+"This has been fixed."
+msgstr ""
+"Mærke 'Brugerkommentar' er ikke tom, men starter ikke med en "
+"formatidentifikation. Dette er rettet."
+
+#: libexif/exif-entry.c:424
+msgid ""
+"Tag 'UserComment' did not start with a format identifier. This has been "
+"fixed."
+msgstr ""
+"Mærke 'Brugerkommentar' startede ikke med en formatidentifikation. Dette er "
+"blevet rettet."
+
+#: libexif/exif-entry.c:462
+#, c-format
+msgid "%i bytes undefined data"
+msgstr "%i byte udefinerede data"
+
+#: libexif/exif-entry.c:589
+#, c-format
+msgid "%i bytes unsupported data type"
+msgstr "%i byte datatype der ikke er understøttet"
+
+#: libexif/exif-entry.c:622
+#, c-format
+msgid "The tag '%s' contains data of an invalid format ('%s', expected '%s')."
+msgstr ""
+"Mærket '%s' indeholder data i et ugyldigt format ('%s', forventede '%s')."
+
+#: libexif/exif-entry.c:635
+#, c-format
+msgid ""
+"The tag '%s' contains an invalid number of components (%i, expected %i)."
+msgstr ""
+"Mærket '%s' indeholder et ugyldigt antal af komponenter (%i, forventede %i)."
+
+#: libexif/exif-entry.c:649
+msgid "Chunky format"
+msgstr "Klumpet format"
+
+#: libexif/exif-entry.c:649
+msgid "Planar format"
+msgstr "Plant format"
+
+#: libexif/exif-entry.c:651 libexif/exif-entry.c:743
+#: test/nls/test-codeset.c:54
+msgid "Not defined"
+msgstr "Ikke defineret"
+
+#: libexif/exif-entry.c:651
+msgid "One-chip color area sensor"
+msgstr "En områdefarvesensor med en chip"
+
+#: libexif/exif-entry.c:652
+msgid "Two-chip color area sensor"
+msgstr "En områdefarvesensor med to chip"
+
+#: libexif/exif-entry.c:652
+msgid "Three-chip color area sensor"
+msgstr "En områdefarvesenor med tre chip"
+
+#: libexif/exif-entry.c:653
+msgid "Color sequential area sensor"
+msgstr "Farvesekventiel områdesensor"
+
+#: libexif/exif-entry.c:653
+msgid "Trilinear sensor"
+msgstr "Trilinær sensor"
+
+#: libexif/exif-entry.c:654
+msgid "Color sequential linear sensor"
+msgstr "Farvesekventiel lineær sensor"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:233
+msgid "Top-left"
+msgstr "Øverst-venstre"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:235
+msgid "Top-right"
+msgstr "Øverst-højre"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:241
+msgid "Bottom-right"
+msgstr "Nederst-højre"
+
+#: libexif/exif-entry.c:657 libexif/pentax/mnote-pentax-entry.c:239
+msgid "Bottom-left"
+msgstr "Nederst-venstre"
+
+#: libexif/exif-entry.c:657
+msgid "Left-top"
+msgstr "Venstre-øverst"
+
+#: libexif/exif-entry.c:657
+msgid "Right-top"
+msgstr "Højre-øverst"
+
+#: libexif/exif-entry.c:658
+msgid "Right-bottom"
+msgstr "Højre-nederst"
+
+#: libexif/exif-entry.c:658
+msgid "Left-bottom"
+msgstr "Venstre-nederst"
+
+#: libexif/exif-entry.c:660
+msgid "Centered"
+msgstr "Centreret"
+
+#: libexif/exif-entry.c:660
+msgid "Co-sited"
+msgstr "Co-placeret"
+
+#: libexif/exif-entry.c:662
+msgid "Reversed mono"
+msgstr "Omvendt mono"
+
+#: libexif/exif-entry.c:662
+msgid "Normal mono"
+msgstr "Normal mono"
+
+# opfattet som navn (Red Green Blue; hvis jeg ikke tager fejl :o) ) og derfor fortsat RGB på dansk.
+#: libexif/exif-entry.c:662
+msgid "RGB"
+msgstr "RGB"
+
+#: libexif/exif-entry.c:662
+msgid "Palette"
+msgstr "Palet"
+
+#: libexif/exif-entry.c:663
+msgid "CMYK"
+msgstr "CMYK"
+
+#: libexif/exif-entry.c:663
+msgid "YCbCr"
+msgstr "YCbCr"
+
+#: libexif/exif-entry.c:663
+msgid "CieLAB"
+msgstr "CieLAB"
+
+#: libexif/exif-entry.c:665
+msgid "Normal process"
+msgstr "Normal proces"
+
+#: libexif/exif-entry.c:665
+msgid "Custom process"
+msgstr "Tilpasset proces"
+
+#: libexif/exif-entry.c:667
+msgid "Auto exposure"
+msgstr "Automatisk belysning"
+
+#: libexif/exif-entry.c:667 libexif/fuji/mnote-fuji-entry.c:139
+msgid "Manual exposure"
+msgstr "Manuel belysning"
+
+#: libexif/exif-entry.c:667
+msgid "Auto bracket"
+msgstr "Sammenstilling på auto"
+
+#: libexif/exif-entry.c:669
+msgid "Auto white balance"
+msgstr "Hvidbalance på auto"
+
+#: libexif/exif-entry.c:669
+msgid "Manual white balance"
+msgstr "Manuel hvidbalance"
+
+#: libexif/exif-entry.c:674
+msgid "Low gain up"
+msgstr "Lav forøgelse op"
+
+#: libexif/exif-entry.c:674
+msgid "High gain up"
+msgstr "Høj forøgelse op"
+
+#: libexif/exif-entry.c:675
+msgid "Low gain down"
+msgstr "Lav forøgelse ned"
+
+#: libexif/exif-entry.c:675
+msgid "High gain down"
+msgstr "Høj forøgelse ned"
+
+#: libexif/exif-entry.c:677
+msgid "Low saturation"
+msgstr "Svag farvemætning"
+
+#: libexif/exif-entry.c:677 test/nls/test-codeset.c:48
+#: test/nls/test-codeset.c:61
+msgid "High saturation"
+msgstr "Stærk farvemætning"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:63
+#: libexif/olympus/mnote-olympus-entry.c:205
+#: libexif/olympus/mnote-olympus-entry.c:214
+#: libexif/pentax/mnote-pentax-entry.c:106
+#: libexif/pentax/mnote-pentax-entry.c:170
+msgid "Soft"
+msgstr "Blød"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:65 libexif/fuji/mnote-fuji-entry.c:95
+#: libexif/olympus/mnote-olympus-entry.c:204
+#: libexif/olympus/mnote-olympus-entry.c:212
+#: libexif/pentax/mnote-pentax-entry.c:107
+msgid "Hard"
+msgstr "Hård"
+
+#: libexif/exif-entry.c:695 libexif/exif-entry.c:713 libexif/exif-entry.c:795
+#: libexif/olympus/mnote-olympus-entry.c:589
+#: libexif/olympus/mnote-olympus-entry.c:683
+#: libexif/olympus/mnote-olympus-entry.c:738
+#: libexif/pentax/mnote-pentax-entry.c:256
+msgid "Unknown"
+msgstr "Ukendt"
+
+#: libexif/exif-entry.c:696
+msgid "Avg"
+msgstr "Gns."
+
+#: libexif/exif-entry.c:697
+msgid "Center-weight"
+msgstr "Centrumvægtet"
+
+#: libexif/exif-entry.c:699
+msgid "Multi spot"
+msgstr "Flerpunktet"
+
+#: libexif/exif-entry.c:700
+msgid "Pattern"
+msgstr "Mønster"
+
+#: libexif/exif-entry.c:705
+msgid "Uncompressed"
+msgstr "Ukomprimeret"
+
+#: libexif/exif-entry.c:706
+msgid "LZW compression"
+msgstr "LZW-komprimering"
+
+#: libexif/exif-entry.c:707 libexif/exif-entry.c:708
+msgid "JPEG compression"
+msgstr "JPEG-komprimering"
+
+#: libexif/exif-entry.c:709
+msgid "Deflate/ZIP compression"
+msgstr "Pakke sammen/ZIP-kompression"
+
+#: libexif/exif-entry.c:710
+msgid "PackBits compression"
+msgstr "PackBits-kompression"
+
+#: libexif/exif-entry.c:716
+msgid "Tungsten incandescent light"
+msgstr "Wolframhvidglødende lys"
+
+#: libexif/exif-entry.c:718
+msgid "Fine weather"
+msgstr "Fint vejr"
+
+#: libexif/exif-entry.c:719
+msgid "Cloudy weather"
+msgstr "Overskyet"
+
+#: libexif/exif-entry.c:722 libexif/fuji/mnote-fuji-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:252
+msgid "Day white fluorescent"
+msgstr "Fluorescerende daghvidt"
+
+#: libexif/exif-entry.c:723
+msgid "Cool white fluorescent"
+msgstr "Fluorescerende hvidkoldt"
+
+#: libexif/exif-entry.c:724 libexif/fuji/mnote-fuji-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:253
+msgid "White fluorescent"
+msgstr "Fluorescerende hvid"
+
+#: libexif/exif-entry.c:725
+msgid "Standard light A"
+msgstr "Standard lys A"
+
+#: libexif/exif-entry.c:726
+msgid "Standard light B"
+msgstr "Standard lys B"
+
+#: libexif/exif-entry.c:727
+msgid "Standard light C"
+msgstr "Standard lys C"
+
+#: libexif/exif-entry.c:728
+msgid "D55"
+msgstr "D55"
+
+#: libexif/exif-entry.c:729
+msgid "D65"
+msgstr "D65"
+
+#: libexif/exif-entry.c:730
+msgid "D75"
+msgstr "D75"
+
+#: libexif/exif-entry.c:731
+msgid "ISO studio tungsten"
+msgstr "ISO-studiowolfram"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "Inch"
+msgstr "Tomme"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "in"
+msgstr "i"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "Centimeter"
+msgstr "Centimeter"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "cm"
+msgstr "cm"
+
+#: libexif/exif-entry.c:745
+msgid "Normal program"
+msgstr "Normalt program"
+
+#: libexif/exif-entry.c:746
+msgid "Aperture priority"
+msgstr "Blændetalsprioritet"
+
+#: libexif/exif-entry.c:746 libexif/exif-tag.c:550
+msgid "Aperture"
+msgstr "Blændetal"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter priority"
+msgstr "Lukkerprioritet"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter"
+msgstr "Lukker"
+
+#: libexif/exif-entry.c:748
+msgid "Creative program (biased toward depth of field)"
+msgstr "Kreativt program (med henblik på fokusdybde)"
+
+#: libexif/exif-entry.c:749
+msgid "Creative"
+msgstr "Kreativt"
+
+#: libexif/exif-entry.c:750
+msgid "Creative program (biased toward fast shutter speed)"
+msgstr "Kreativt program (med henblik på hurtig lukkertid)"
+
+#: libexif/exif-entry.c:751
+msgid "Action"
+msgstr "Handling"
+
+#: libexif/exif-entry.c:752
+msgid "Portrait mode (for closeup photos with the background out of focus)"
+msgstr "Portrættilstand (for nærbilleder med baggrunde væk fra fokus)"
+
+#: libexif/exif-entry.c:754
+msgid "Landscape mode (for landscape photos with the background in focus)"
+msgstr "Landskabstilstand (for landskabsbilleder med baggrunden i fokus)"
+
+#: libexif/exif-entry.c:758 libexif/exif-entry.c:763
+#: libexif/olympus/mnote-olympus-entry.c:97
+msgid "Flash did not fire"
+msgstr "Blitz blev ikke brugt"
+
+#: libexif/exif-entry.c:758
+msgid "No flash"
+msgstr "Ingen blitz"
+
+#: libexif/exif-entry.c:759
+msgid "Flash fired"
+msgstr "Blitzen blev brugt"
+
+#: libexif/exif-entry.c:759 libexif/olympus/mnote-olympus-entry.c:170
+#: libexif/olympus/mnote-olympus-entry.c:175
+#: libexif/olympus/mnote-olympus-entry.c:209
+#: libexif/olympus/mnote-olympus-entry.c:218
+#: libexif/olympus/mnote-olympus-entry.c:241
+msgid "Yes"
+msgstr "Ja"
+
+#: libexif/exif-entry.c:760
+msgid "Strobe return light not detected"
+msgstr "Returstroboskoplys blev ikke detekteret"
+
+#: libexif/exif-entry.c:760
+msgid "Without strobe"
+msgstr "Uden stroboskop"
+
+#: libexif/exif-entry.c:762
+msgid "Strobe return light detected"
+msgstr "Stroboskopreturlys detekteret"
+
+#: libexif/exif-entry.c:762
+msgid "With strobe"
+msgstr "Med stroboskop"
+
+#: libexif/exif-entry.c:764
+msgid "Flash fired, compulsory flash mode"
+msgstr "Blitz blev brugt, tvungen blitztilstand"
+
+#: libexif/exif-entry.c:765
+msgid "Flash fired, compulsory flash mode, return light not detected"
+msgstr "Blitz blev brugt, tvungen blitztilstand, intet returlys detekteret"
+
+#: libexif/exif-entry.c:767
+msgid "Flash fired, compulsory flash mode, return light detected"
+msgstr "Blitz blev brugt, tvungen blitztilstand, returlys detekteret"
+
+#: libexif/exif-entry.c:769
+msgid "Flash did not fire, compulsory flash mode"
+msgstr "Blitz blev ikke brugt, tvungen blitztilstand"
+
+#: libexif/exif-entry.c:770
+msgid "Flash did not fire, auto mode"
+msgstr "Blitz blev ikke brugt, autotilstand"
+
+#: libexif/exif-entry.c:771
+msgid "Flash fired, auto mode"
+msgstr "Blitz blev brugt, autotilstand"
+
+#: libexif/exif-entry.c:772
+msgid "Flash fired, auto mode, return light not detected"
+msgstr "Blitz blev brugt, autotilstand, intet returlys detekteret"
+
+#: libexif/exif-entry.c:774
+msgid "Flash fired, auto mode, return light detected"
+msgstr "Blitz blev brugt, autotilstand, returlys detekteret"
+
+#: libexif/exif-entry.c:775
+msgid "No flash function"
+msgstr "Ingen blitzfunktion"
+
+#: libexif/exif-entry.c:776
+msgid "Flash fired, red-eye reduction mode"
+msgstr "Blitz blev brugt, reduktiontilstand for røde øjne"
+
+#: libexif/exif-entry.c:777
+msgid "Flash fired, red-eye reduction mode, return light not detected"
+msgstr ""
+"Blitz blev brugt, reduktiontilstand for røde øjne, intet returlys detekteret"
+
+#: libexif/exif-entry.c:779
+msgid "Flash fired, red-eye reduction mode, return light detected"
+msgstr ""
+"Blitz blev brugt, reduktiontilstand for røde øjne, intet returlys detekteret"
+
+#: libexif/exif-entry.c:781
+msgid "Flash fired, compulsory flash mode, red-eye reduction mode"
+msgstr ""
+"Blitz blev brugt, tvungen blitztilstand, reduktiontilstand for røde øjne"
+
+#: libexif/exif-entry.c:783
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light not "
+"detected"
+msgstr ""
+"Blitz blev brugt, tvungen blitztilstand, reduktiontilstand for røde øjne, "
+"intet returlys detekteret"
+
+#: libexif/exif-entry.c:785
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light "
+"detected"
+msgstr ""
+"Blitz blev brugt, tvungen blitztilstand, reduktiontilstand for røde øjne, "
+"returlys detekteret"
+
+#: libexif/exif-entry.c:787
+msgid "Flash did not fire, auto mode, red-eye reduction mode"
+msgstr "Blitz blev ikke brugt, autotilstand, reduktiontilstand for røde øjne"
+
+#: libexif/exif-entry.c:788
+msgid "Flash fired, auto mode, red-eye reduction mode"
+msgstr "Blitz blev brugt, autotilstand, reduktiontilstand for røde øjne"
+
+#: libexif/exif-entry.c:789
+msgid ""
+"Flash fired, auto mode, return light not detected, red-eye reduction mode"
+msgstr ""
+"Blitz blev brugt, autotilstand, intet returlys detekteret, reduktiontilstand "
+"for røde øjne"
+
+#: libexif/exif-entry.c:791
+msgid "Flash fired, auto mode, return light detected, red-eye reduction mode"
+msgstr ""
+"Blitz blev brugt, autotilstand, returlys detekteret, reduktiontilstand for "
+"røde øjne"
+
+#: libexif/exif-entry.c:795
+msgid "?"
+msgstr "?"
+
+#: libexif/exif-entry.c:797
+msgid "Close view"
+msgstr "Set tæt på"
+
+#: libexif/exif-entry.c:798
+msgid "Distant view"
+msgstr "Set på afstand"
+
+#: libexif/exif-entry.c:798
+msgid "Distant"
+msgstr "På afstand"
+
+#: libexif/exif-entry.c:801
+msgid "sRGB"
+msgstr "sRGB"
+
+#: libexif/exif-entry.c:802
+msgid "Adobe RGB"
+msgstr "Adobe RGB"
+
+#: libexif/exif-entry.c:803
+msgid "Uncalibrated"
+msgstr "Ukalibreret"
+
+#: libexif/exif-entry.c:857
+#, c-format
+msgid "Invalid size of entry (%i, expected %li x %i)."
+msgstr "Ugyldig størrelse på post (%i, forventede %li x %i)."
+
+#: libexif/exif-entry.c:890
+msgid "Unsupported UNICODE string"
+msgstr "Ikke understøttet UNICODE-streng"
+
+#: libexif/exif-entry.c:898
+msgid "Unsupported JIS string"
+msgstr "Ikke understøttet JIS-streng"
+
+#: libexif/exif-entry.c:914
+msgid "Tag UserComment does not comply with standard but contains data."
+msgstr "Mærke Brugerkommentar overholder ikke standard, men indeholder data."
+
+#: libexif/exif-entry.c:918
+#, c-format
+msgid "Byte at position %i: 0x%02x"
+msgstr "Byte på position %i: 0x%02x"
+
+#: libexif/exif-entry.c:927
+msgid "Unknown Exif Version"
+msgstr "Ukendt version af Exif"
+
+#: libexif/exif-entry.c:931
+#, c-format
+msgid "Exif Version %d.%d"
+msgstr "Exif version %d.%d"
+
+#: libexif/exif-entry.c:942
+msgid "FlashPix Version 1.0"
+msgstr "FlashPix version 1.0"
+
+#: libexif/exif-entry.c:944
+msgid "FlashPix Version 1.01"
+msgstr "FlashPix version 1.01"
+
+#: libexif/exif-entry.c:946
+msgid "Unknown FlashPix Version"
+msgstr "Ukendt FlashPix version"
+
+#: libexif/exif-entry.c:959 libexif/exif-entry.c:972 libexif/exif-entry.c:1628
+#: libexif/exif-entry.c:1633 libexif/exif-entry.c:1637
+#: libexif/exif-entry.c:1642 libexif/exif-entry.c:1643
+msgid "[None]"
+msgstr "[Ingen]"
+
+#: libexif/exif-entry.c:961
+msgid "(Photographer)"
+msgstr "(fotograf)"
+
+#: libexif/exif-entry.c:975
+msgid "(Editor)"
+msgstr "(Redigering)"
+
+#: libexif/exif-entry.c:999 libexif/exif-entry.c:1079
+#: libexif/exif-entry.c:1096 libexif/exif-entry.c:1140
+#, c-format
+msgid "%.02f EV"
+msgstr "%.02f EV"
+
+#: libexif/exif-entry.c:1000
+#, c-format
+msgid " (f/%.01f)"
+msgstr " (f/%.01f)"
+
+#: libexif/exif-entry.c:1034
+#, c-format
+msgid " (35 equivalent: %d mm)"
+msgstr " (35 ækvivalent: %d mm)"
+
+#: libexif/exif-entry.c:1067 libexif/exif-entry.c:1068
+msgid " sec."
+msgstr " sek."
+
+#: libexif/exif-entry.c:1082
+#, c-format
+msgid " (1/%d sec.)"
+msgstr " (1/%d sek.)"
+
+#: libexif/exif-entry.c:1084
+#, c-format
+msgid " (%d sec.)"
+msgstr " (%d sek.)"
+
+#: libexif/exif-entry.c:1097
+#, c-format
+msgid " (%.02f cd/m^2)"
+msgstr " (%.02f cd/m^2)"
+
+#: libexif/exif-entry.c:1107
+msgid "DSC"
+msgstr "DSC"
+
+#: libexif/exif-entry.c:1109 libexif/exif-entry.c:1149
+#: libexif/exif-entry.c:1236 libexif/exif-entry.c:1287
+#: libexif/exif-entry.c:1296 libexif/exif-entry.c:1332
+#: libexif/fuji/mnote-fuji-entry.c:236 libexif/fuji/mnote-fuji-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:359
+#, c-format
+msgid "Internal error (unknown value %i)"
+msgstr "Intern fejl (ukendt værdi %i)"
+
+#: libexif/exif-entry.c:1117
+msgid "-"
+msgstr "-"
+
+#: libexif/exif-entry.c:1118
+msgid "Y"
+msgstr "Y"
+
+#: libexif/exif-entry.c:1119
+msgid "Cb"
+msgstr "Cb"
+
+#: libexif/exif-entry.c:1120
+msgid "Cr"
+msgstr "Cr"
+
+#: libexif/exif-entry.c:1121
+msgid "R"
+msgstr "R"
+
+#: libexif/exif-entry.c:1122
+msgid "G"
+msgstr "G"
+
+#: libexif/exif-entry.c:1123
+msgid "B"
+msgstr "B"
+
+#: libexif/exif-entry.c:1124
+msgid "Reserved"
+msgstr "Reserveret"
+
+#: libexif/exif-entry.c:1147
+msgid "Directly photographed"
+msgstr "Direkte fotograferet"
+
+#: libexif/exif-entry.c:1160
+msgid "YCbCr4:2:2"
+msgstr "YCbCr4:2:2"
+
+#: libexif/exif-entry.c:1162
+msgid "YCbCr4:2:0"
+msgstr "YCbCr4:2:0"
+
+#: libexif/exif-entry.c:1179
+#, c-format
+msgid "Within distance %i of (x,y) = (%i,%i)"
+msgstr "Indenfor afstand %i af (x,y) = (%i,%i)"
+
+#: libexif/exif-entry.c:1188
+#, c-format
+msgid "Within rectangle (width %i, height %i) around (x,y) = (%i,%i)"
+msgstr "Indenfor rektangel (bredde %i, højde %i) omkring(x,y) = (%i,%i)"
+
+#: libexif/exif-entry.c:1194
+#, c-format
+msgid "Unexpected number of components (%li, expected 2, 3, or 4)."
+msgstr "Uventet antal af komponenter (%li, forventede 2, 4 eller 4)."
+
+#: libexif/exif-entry.c:1232
+msgid "Sea level"
+msgstr "Havniveau"
+
+#: libexif/exif-entry.c:1234
+msgid "Sea level reference"
+msgstr "Havniveaureference"
+
+#: libexif/exif-entry.c:1342
+#, c-format
+msgid "Unknown value %i"
+msgstr "Ukendt værdi %i"
+
+#: libexif/exif-format.c:37
+msgid "Short"
+msgstr "Kort"
+
+#: libexif/exif-format.c:38
+msgid "Rational"
+msgstr "Rationel"
+
+#: libexif/exif-format.c:39
+msgid "SRational"
+msgstr "SRationel"
+
+#: libexif/exif-format.c:40
+msgid "Undefined"
+msgstr "Ikke angivet"
+
+#: libexif/exif-format.c:41
+msgid "ASCII"
+msgstr "ASCII"
+
+#: libexif/exif-format.c:42
+msgid "Long"
+msgstr "Lang"
+
+#: libexif/exif-format.c:43
+msgid "Byte"
+msgstr "Byte"
+
+#: libexif/exif-format.c:44
+msgid "SByte"
+msgstr "SByte"
+
+#: libexif/exif-format.c:45
+msgid "SShort"
+msgstr "SKort"
+
+#: libexif/exif-format.c:46
+msgid "SLong"
+msgstr "SLang"
+
+#: libexif/exif-format.c:47
+msgid "Float"
+msgstr "Flydende kommatal"
+
+#: libexif/exif-format.c:48
+msgid "Double"
+msgstr "Dobbel"
+
+#: libexif/exif-loader.c:119
+#, c-format
+msgid "The file '%s' could not be opened."
+msgstr "Filen '%s' kunne ikke åbnes."
+
+#: libexif/exif-loader.c:300
+msgid "The data supplied does not seem to contain EXIF data."
+msgstr "De leverede data ser ikke ud til at indeholde EXIF-data."
+
+#: libexif/exif-log.c:43
+msgid "Debugging information"
+msgstr "Fejlsøgningsinformation"
+
+#: libexif/exif-log.c:44
+msgid "Debugging information is available."
+msgstr "Fejlsøgningsinformation er tilgængelig."
+
+#: libexif/exif-log.c:45
+msgid "Not enough memory"
+msgstr "Ikke nok hukommelse"
+
+#: libexif/exif-log.c:46
+msgid "The system cannot provide enough memory."
+msgstr "Systemet har ikke nok hukommelse."
+
+#: libexif/exif-log.c:47
+msgid "Corrupt data"
+msgstr "Korrupt data"
+
+#: libexif/exif-log.c:48
+msgid "The data provided does not follow the specification."
+msgstr "De leverede data følger ikke specifikationen."
+
+#: libexif/exif-tag.c:62
+msgid "GPS Tag Version"
+msgstr "GPS-mærkeversion"
+
+#: libexif/exif-tag.c:63
+msgid ""
+"Indicates the version of <GPSInfoIFD>. The version is given as 2.0.0.0. This "
+"tag is mandatory when <GPSInfo> tag is present. (Note: The <GPSVersionID> "
+"tag is given in bytes, unlike the <ExifVersion> tag. When the version is "
+"2.0.0.0, the tag value is 02000000.H)."
+msgstr ""
+"Indikerer versionen på <GPSInfoIFD>. Versionen er angivet som 2.0.0.0. Dette "
+"mærke er obligatorisk når <GPSInfo>-mærket er til stede. (Bemærk: Mærket "
+"<GPSVersionID> angives i byte, til forskel for mærket <ExifVersion>. Når "
+"versionen er 2.0.0.0, er mærkeværdien 02000000.H)."
+
+#: libexif/exif-tag.c:69
+msgid "Interoperability Index"
+msgstr "Interoperability indeks"
+
+#: libexif/exif-tag.c:70
+msgid ""
+"Indicates the identification of the Interoperability rule. Use \"R98\" for "
+"stating ExifR98 Rules. Four bytes used including the termination code "
+"(NULL). see the separate volume of Recommended Exif Interoperability Rules "
+"(ExifR98) for other tags used for ExifR98."
+msgstr ""
+"Indikerer identifikationen af interoperabilityreglen. Brug »R98« for at vise "
+"ExifR98-regler. Fire byte brugt inklusiv terminationskoden (NULL). Se den "
+"separate volume for anbefalede Exif interoperabilityregler (ExifR98) for "
+"andre mærker brugt i ExifR98."
+
+#: libexif/exif-tag.c:76
+msgid "North or South Latitude"
+msgstr "Nordlig eller sydlig breddegrad"
+
+#: libexif/exif-tag.c:77
+msgid ""
+"Indicates whether the latitude is north or south latitude. The ASCII value "
+"'N' indicates north latitude, and 'S' is south latitude."
+msgstr ""
+"Indikerer om breddegradden er nordlig eller sydlig breddegrad. ASCII-værdien "
+"'N' indikerer nordlig breddegrad, og 'S' er sydlig breddegrad."
+
+#: libexif/exif-tag.c:81
+msgid "Interoperability Version"
+msgstr "Interoperabilitet version"
+
+#: libexif/exif-tag.c:83
+msgid "Latitude"
+msgstr "Breddegrad"
+
+#: libexif/exif-tag.c:84
+msgid ""
+"Indicates the latitude. The latitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is dd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is dd/1,mmmm/100,0/1."
+msgstr ""
+"Indikerer breddegraden. Breddegraden udtrykkes som tre RATIONELLE værdier i "
+"form af henholdsvis grader, minutter og sekunder. Når grader, minutter og "
+"sekunder udtrykkes er formatet dd/1,mm/1,ss/s. Når grader og minutter "
+"anvendes og, for eksempel, fraktioner af minutter er angivet med op til to "
+"decimaler, er formatet dd/1,mmmm/100,0/1."
+
+#: libexif/exif-tag.c:91
+msgid "East or West Longitude"
+msgstr "Østlig eller vestlig længdegrad"
+
+#: libexif/exif-tag.c:92
+msgid ""
+"Indicates whether the longitude is east or west longitude. ASCII 'E' "
+"indicates east longitude, and 'W' is west longitude."
+msgstr ""
+"Indikerer om længdegraden er østlig eller vestlig længdegrad. ASCII 'E' "
+"indikerer østlig længdegrad, og 'W' er vestlig længdegrad."
+
+#: libexif/exif-tag.c:95
+msgid "Longitude"
+msgstr "Længdegrad"
+
+#: libexif/exif-tag.c:96
+msgid ""
+"Indicates the longitude. The longitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is ddd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is ddd/1,mmmm/100,0/1."
+msgstr ""
+"Indikerer længdegraden. Længdegraden udtrykkes som tre RATIONELLE værdier i "
+"form af henholdsvis grader, minutter og sekunder. Når grader, minutter og "
+"sekunder udtrykkes er formatet ddd/1,mm/1,ss/s. Når grader og minutter "
+"anvendes og, for eksempel, fraktioner af minutter er angivet med op til to "
+"decimaler, er formatet ddd/1,mmmm/100,0/1."
+
+#: libexif/exif-tag.c:103
+msgid "Altitude Reference"
+msgstr "Højdereference"
+
+#: libexif/exif-tag.c:104
+msgid ""
+"Indicates the altitude used as the reference altitude. If the reference is "
+"sea level and the altitude is above sea level, 0 is given. If the altitude "
+"is below sea level, a value of 1 is given and the altitude is indicated as "
+"an absolute value in the GSPAltitude tag. The reference unit is meters. Note "
+"that this tag is BYTE type, unlike other reference tags."
+msgstr ""
+"Indikerer højden anvendt som referencehøjde. Hvis referencen er havniveauet "
+"og højden er over havniveau, angives 0. Hvis højden er under havniveau, "
+"angives en værdi på 1 og højden angives som en absolut værdi i mærket "
+"GSPAltitude. Referenceenheden er meter. Bemærk at dette mærke er af typen "
+"BYTE, til forskel fra andre referencemærker."
+
+#: libexif/exif-tag.c:110
+msgid "Altitude"
+msgstr "Højde"
+
+#: libexif/exif-tag.c:111
+msgid ""
+"Indicates the altitude based on the reference in GPSAltitudeRef. Altitude is "
+"expressed as one RATIONAL value. The reference unit is meters."
+msgstr ""
+"Indikerer højden baseret på referencen i GPSAltitudeRef. Højden udtrykkes "
+"som en RATIONAL-værdi. Referenceenheden er meter."
+
+#: libexif/exif-tag.c:114
+msgid "GPS Time (Atomic Clock)"
+msgstr "GPS-tid (atomur)"
+
+# oversætter man UTC til dansk KUT ?
+# Det ville ingen forstå. Det er meningen at forkortelsen UTC skal være
+# gældende for alle sprog. På DRs tekst-tv kalder man det "Universal time
+# coordinated". Ifølge da.wikipedia kaldes det også "universel tid".
+#: libexif/exif-tag.c:115
+msgid ""
+"Indicates the time as UTC (Coordinated Universal Time). TimeStamp is "
+"expressed as three RATIONAL values giving the hour, minute, and second."
+msgstr ""
+"Indikerer tiden som UTC (Koordineret universel tid). TimeStamp udtrykkes som "
+"tre RATIONAL-værdier i form af time, minut og sekund."
+
+#: libexif/exif-tag.c:118
+msgid "GPS Satellites"
+msgstr "GPS-satellitter"
+
+# hvad er SNR?
+#: libexif/exif-tag.c:119
+msgid ""
+"Indicates the GPS satellites used for measurements. This tag can be used to "
+"describe the number of satellites, their ID number, angle of elevation, "
+"azimuth, SNR and other information in ASCII notation. The format is not "
+"specified. If the GPS receiver is incapable of taking measurements, value of "
+"the tag shall be set to NULL."
+msgstr ""
+"Indikerer GPS-satellitterne brugt til måling. Dette mærke kan bruges til at "
+"beskrive antallet af satellitter, deres id-nummer, vinkel for målinger, "
+"azimut, SNR og anden information med ASCII-notation. Formatet er ikke "
+"angivet. Hvis GPS-modtageren er ude af stand til at måle, vil værdien af "
+"mærket være angivet som NULL."
+
+#: libexif/exif-tag.c:125
+msgid "GPS Receiver Status"
+msgstr "Status for GPS-modtager"
+
+# Nogen forslag til Interoperability?
+#: libexif/exif-tag.c:126
+msgid ""
+"Indicates the status of the GPS receiver when the image is recorded. 'A' "
+"means measurement is in progress, and 'V' means the measurement is "
+"Interoperability."
+msgstr ""
+"Indikerer status på GPS-modtageren når billedet optages. 'A' betyder at "
+"måling er i gang, og 'V' betyder at målingen er interoperability."
+
+#: libexif/exif-tag.c:129
+msgid "GPS Measurement Mode"
+msgstr "GPS-målingstilstand"
+
+#: libexif/exif-tag.c:130
+msgid ""
+"Indicates the GPS measurement mode. '2' means two-dimensional measurement "
+"and '3' means three-dimensional measurement is in progress."
+msgstr ""
+"Indikerer GPS-målingstilstanden. '2' betyder 2-dimensionel måling og '3' "
+"betyder 3-dimensionel måling er i gang."
+
+#: libexif/exif-tag.c:133
+msgid "Measurement Precision"
+msgstr "Målingspræcision"
+
+#: libexif/exif-tag.c:134
+msgid ""
+"Indicates the GPS DOP (data degree of precision). An HDOP value is written "
+"during two-dimensional measurement, and PDOP during three-dimensional "
+"measurement."
+msgstr ""
+"Indikerer DOP (grad af præcision for data) for GPS-modtageren. En HDOP-værdi "
+"skrives via 2-dimensionel måling, og PDOP under 3-dimensionel måling."
+
+#: libexif/exif-tag.c:137
+msgid "Speed Unit"
+msgstr "Enhed for hastighed"
+
+#: libexif/exif-tag.c:138
+msgid ""
+"Indicates the unit used to express the GPS receiver speed of movement. 'K', "
+"'M' and 'N' represent kilometers per hour, miles per hour, and knots."
+msgstr ""
+"Indikerer enheden brugt til at udtrykke GPS-modtagerens bevægelseshastighed. "
+"'K', 'M' og 'N' repræsenterer kilometer per time, mil per time og knop."
+
+#: libexif/exif-tag.c:141
+msgid "Speed of GPS Receiver"
+msgstr "GPS-modtagerens hastighed"
+
+#: libexif/exif-tag.c:142
+msgid "Indicates the speed of GPS receiver movement."
+msgstr "Indikerer hastigheden på GPS-modtagerens bevægelse."
+
+#: libexif/exif-tag.c:143
+msgid "Reference for direction of movement"
+msgstr "Reference for bevægelsesretning"
+
+#: libexif/exif-tag.c:144
+msgid ""
+"Indicates the reference for giving the direction of GPS receiver movement. "
+"'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+"Indikerer referencen for retningen på GPS-modtagerens bevægelse. 'T' "
+"markerer reel retning og 'M' er magnetisk retning."
+
+#: libexif/exif-tag.c:147
+msgid "Direction of Movement"
+msgstr "Bevægelsesretning"
+
+#: libexif/exif-tag.c:148
+msgid ""
+"Indicates the direction of GPS receiver movement. The range of values is "
+"from 0.00 to 359.99."
+msgstr ""
+"Indikerer retningen på GPS-modtagerbevægelsen. Værdierne kan gå fra 0.00 til "
+"359.99."
+
+#: libexif/exif-tag.c:150
+msgid "GPS Image Direction Reference"
+msgstr "GPS-billedretningsreference"
+
+#: libexif/exif-tag.c:151
+msgid ""
+"Indicates the reference for giving the direction of the image when it is "
+"captured. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+"Indikerer referencen for retningen af billedet, når det optages. 'T' "
+"markerer reel retning og 'M' er magnetisk retning."
+
+#: libexif/exif-tag.c:153
+msgid "GPS Image Direction"
+msgstr "GPS-billedretning"
+
+#: libexif/exif-tag.c:154
+msgid ""
+"Indicates the direction of the image when it was captured. The range of "
+"values is from 0.00 to 359.99."
+msgstr ""
+"Indikerer retningen på billedet da det blev optaget. Værdierne kan gå fra "
+"0.00 til 359.99."
+
+#: libexif/exif-tag.c:156
+msgid "Geodetic Survey Data Used"
+msgstr "Anvendte geodætiske undersøgelsesdata"
+
+#: libexif/exif-tag.c:157
+msgid ""
+"Indicates the geodetic survey data used by the GPS receiver. If the survey "
+"data is restricted to Japan, the value of this tag is 'TOKYO' or 'WGS-84'. "
+"If a GPS Info tag is recorded, it is strongly recommended that this tag be "
+"recorded."
+msgstr ""
+"Indikerer de geodætiske undersøgelsesdata der bruges af GPS-modtageren. Hvis "
+"undersøgelsesdataene er begrænset til Japan er værdien af mærket 'TOKYO' "
+"eller 'WGS-84'. Hvis et GPS-infomærke er optaget, anbefales det kraftigt, at "
+"dette mærke registreres."
+
+# "Reference for ankomststedets breddegrad"
+# Kan man skrive /stedets/ isf. ankomststedets?
+#: libexif/exif-tag.c:161
+msgid "Reference For Latitude of Destination"
+msgstr "Reference for ankomststedets breddegrad"
+
+#: libexif/exif-tag.c:162
+msgid ""
+"Indicates whether the latitude of the destination point is north or south "
+"latitude. The ASCII value 'N' indicates north latitude, and 'S' is south "
+"latitude."
+msgstr ""
+"Indikerer om breddegraden på ankomststedet er nordlig eller sydlig "
+"breddegrad. ASCII-værdien 'N' indikerer nordlig breddegrad, og 'S' er sydlig "
+"breddegrad."
+
+#: libexif/exif-tag.c:165
+msgid "Latitude of Destination"
+msgstr "Ankomststedets breddegrad"
+
+#: libexif/exif-tag.c:166
+msgid ""
+"Indicates the latitude of the destination point. The latitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If latitude is expressed as degrees, minutes and seconds, a "
+"typical format would be dd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be dd/1,mmmm/100,0/1."
+msgstr ""
+"Indikerer breddegraden på ankomststedet. Breddegraden er udtrykt som tre "
+"RATIONAL-værdier, der angiver grader, minutter og sekunder. Hvis breddegrad "
+"er udtrykt som grader, minutter og sekunder, vil et typisk format være dd/1,"
+"mm/1,ss/1. Når der for eksempel bruges grader, minutter og dele af minutter "
+"med op til to decimaler, vil formatet være dd/1,mmmm/100,0/1."
+
+#: libexif/exif-tag.c:173
+msgid "Reference for Longitude of Destination"
+msgstr "Reference for ankomststedets længdegrad"
+
+#: libexif/exif-tag.c:174
+msgid ""
+"Indicates whether the longitude of the destination point is east or west "
+"longitude. ASCII 'E' indicates east longitude, and 'W' is west longitude."
+msgstr ""
+"Indikerer om længdegraden på ankomststedet er østlig eller vestlig "
+"længdegrad. ASCII-værdien 'E' indikerer østlig breddegrad, og 'W' er vestlig "
+"længdegrad."
+
+#: libexif/exif-tag.c:177
+msgid "Longitude of Destination"
+msgstr "Ankomststedets længdegrad"
+
+#: libexif/exif-tag.c:178
+msgid ""
+"Indicates the longitude of the destination point. The longitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If longitude is expressed as degrees, minutes and seconds, a "
+"typical format would be ddd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be ddd/1,mmmm/100,0/1."
+msgstr ""
+"Indikerer længdegraden på ankomststedet. Længdegraden er udtrykt som tre "
+"RATIONAL-værdier, der angiver grader, minutter og sekunder. Hvis længdegrad "
+"er udtrykt som grader, minutter og sekunder, vil et typisk format være ddd/1,"
+"mm/1,ss/1. Når der for eksempel bruges grader, minutter og dele af minutter "
+"med op til to decimaler, vil formatet være ddd/1,mmmm/100,0/1."
+
+#: libexif/exif-tag.c:186
+msgid "Reference for Bearing of Destination"
+msgstr "Reference for retning på ankomststed"
+
+#: libexif/exif-tag.c:187
+msgid ""
+"Indicates the reference used for giving the bearing to the destination "
+"point. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+"Indikerer referencen brugt for retningen til ankomststedet. 'T' markerer "
+"reel retning og 'M' er magnetisk retning."
+
+#: libexif/exif-tag.c:190
+msgid "Bearing of Destination"
+msgstr "Destinationsretning"
+
+#: libexif/exif-tag.c:191
+msgid ""
+"Indicates the bearing to the destination point. The range of values is from "
+"0.00 to 359.99."
+msgstr ""
+"Indikerer retningen til destinationstedet. Værdierne kan gå fra 0.00 til "
+"359.99."
+
+#: libexif/exif-tag.c:193
+msgid "Reference for Distance to Destination"
+msgstr "Reference for afstand til ankomststedet"
+
+#: libexif/exif-tag.c:194
+msgid ""
+"Indicates the unit used to express the distance to the destination point. "
+"'K', 'M' and 'N' represent kilometers, miles and knots."
+msgstr ""
+"Indikerer enheden brugt til at udtrykke afstanden til ankomststedet. 'K', "
+"'M' og 'N' repræsenterer kilometer, mil og knob."
+
+#: libexif/exif-tag.c:197
+msgid "Distance to Destination"
+msgstr "Afstand til ankomststedet"
+
+#: libexif/exif-tag.c:198
+msgid "Indicates the distance to the destination point."
+msgstr "Indikerer afstanden til ankomststedet."
+
+#: libexif/exif-tag.c:199
+msgid "Name of GPS Processing Method"
+msgstr "Navn på GPS-behandlingsmetoden"
+
+#: libexif/exif-tag.c:200
+msgid ""
+"A character string recording the name of the method used for location "
+"finding. The first byte indicates the character code used, and this is "
+"followed by the name of the method. Since the Type is not ASCII, NULL "
+"termination is not necessary."
+msgstr ""
+"En tegnstreng der angiver navnet på metoden der bruges til stedbestemmelse. "
+"Den første byte indikerer den anvendte tegnkode, og dette efterfølges af "
+"navnet på metoden. Da typen ikke er ASCII, er NULL-terminering ikke "
+"nødvendig."
+
+#: libexif/exif-tag.c:205
+msgid "Name of GPS Area"
+msgstr "Navn på GPS-område"
+
+#: libexif/exif-tag.c:206
+msgid ""
+"A character string recording the name of the GPS area. The first byte "
+"indicates the character code used, and this is followed by the name of the "
+"GPS area. Since the Type is not ASCII, NULL termination is not necessary."
+msgstr ""
+"En tegnstreng der registrerer navnet på GPS-området. Den første byte "
+"indikerer den anvendte tegnkode, og dette efterfølges af navnet på GPS-"
+"området. Da typen ikke er ASCII, er NULL-terminering ikke nødvendig."
+
+#: libexif/exif-tag.c:210
+msgid "GPS Date"
+msgstr "GPS-dato"
+
+#: libexif/exif-tag.c:211
+msgid ""
+"A character string recording date and time information relative to UTC "
+"(Coordinated Universal Time). The format is \"YYYY:MM:DD\". The length of "
+"the string is 11 bytes including NULL."
+msgstr ""
+"En tegnstreng der registrerer dato- og tidsinformation i forhold til UTC "
+"(Koordineret universel tid). Formatet er »ÅÅÅÅ:MM:DD«. Længden på strengen er "
+"11 byte inklusive NULL."
+
+#: libexif/exif-tag.c:215
+msgid "GPS Differential Correction"
+msgstr "GPS-differentiel korrektion"
+
+#: libexif/exif-tag.c:216
+msgid ""
+"Indicates whether differential correction is applied to the GPS receiver."
+msgstr "Indikerer hvorvidt differentiel korrektion anvendes på GPS-modtageren."
+
+#: libexif/exif-tag.c:220
+msgid "New Subfile Type"
+msgstr "Ny underfilstype"
+
+#: libexif/exif-tag.c:220
+msgid "A general indication of the kind of data contained in this subfile."
+msgstr ""
+"En generel indikation af den type data der er indeholdt i denne underfil."
+
+#: libexif/exif-tag.c:222
+msgid "Image Width"
+msgstr "Billedbredde"
+
+#: libexif/exif-tag.c:223
+msgid ""
+"The number of columns of image data, equal to the number of pixels per row. "
+"In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+"Antallet af kolonner med billeddata, lig antallet af billedpunkter per "
+"række. I JPEG-komprimeret data bliver en JPEG-markør brugt i steden for "
+"dette mærke."
+
+#: libexif/exif-tag.c:227
+msgid "Image Length"
+msgstr "Billedlængde"
+
+#: libexif/exif-tag.c:228
+msgid ""
+"The number of rows of image data. In JPEG compressed data a JPEG marker is "
+"used instead of this tag."
+msgstr ""
+"Antallet af rækker med billeddata. I JPEG-komprimeret data bliver en JPEG-"
+"markør brugt i steden for dette mærke."
+
+#: libexif/exif-tag.c:231
+msgid "Bits per Sample"
+msgstr "Bit per eksempel"
+
+#: libexif/exif-tag.c:232
+msgid ""
+"The number of bits per image component. In this standard each component of "
+"the image is 8 bits, so the value for this tag is 8. See also "
+"<SamplesPerPixel>. In JPEG compressed data a JPEG marker is used instead of "
+"this tag."
+msgstr ""
+"Antallet af bit per billedkomponent. I denne standard er hver "
+"billedkomponent på 8 bit, så væriden for dette mærke er 8. Se også "
+"<SamplesPerPixel>. I JPEG-komprimeret data bliver en JPEG-markør brugt i "
+"steden for dette mærke."
+
+#: libexif/exif-tag.c:237
+msgid "Compression"
+msgstr "Komprimering"
+
+#: libexif/exif-tag.c:238
+msgid ""
+"The compression scheme used for the image data. When a primary image is JPEG "
+"compressed, this designation is not necessary and is omitted. When "
+"thumbnails use JPEG compression, this tag value is set to 6."
+msgstr ""
+"Komprimeringssystemet brugt til billeddataene. Når det primære billede er "
+"JPEG-komprimeret, så er denne skelnen ikke nødvendig og udelades. Når "
+"miniaturerbilleder bruger JPEG-komprimering, så sættes værdien af dette "
+"mærke til 6."
+
+#: libexif/exif-tag.c:244
+msgid "Photometric Interpretation"
+msgstr "Fotometrisk fortolkning"
+
+#: libexif/exif-tag.c:245
+msgid ""
+"The pixel composition. In JPEG compressed data a JPEG marker is used instead "
+"of this tag."
+msgstr ""
+"Billedpunktkompositionen. I JPEG-komprimeret data bruges en JPEG-markør i "
+"steden for dette mærke."
+
+#: libexif/exif-tag.c:249
+msgid "Fill Order"
+msgstr "Fyldningsrækkefølge"
+
+#: libexif/exif-tag.c:251
+msgid "Document Name"
+msgstr "Dokumentnavn"
+
+#: libexif/exif-tag.c:253
+msgid "Image Description"
+msgstr "Billedbeskrivelse"
+
+#: libexif/exif-tag.c:254
+msgid ""
+"A character string giving the title of the image. It may be a comment such "
+"as \"1988 company picnic\" or the like. Two-bytes character codes cannot be "
+"used. When a 2-bytes code is necessary, the Exif Private tag <UserComment> "
+"is to be used."
+msgstr ""
+"En tegnstreng der angiver titlen på billedet. Det kan være en kommentar som "
+"»1988 firmaskovtur« eller noget lignende. To byte tegnkoder kan ikke bruges. "
+"Når en 2-byte kode er nødvendig, skal Exif Private-mærket <UserComment> "
+"bruges."
+
+#: libexif/exif-tag.c:260
+msgid "Manufacturer"
+msgstr "Producent"
+
+#: libexif/exif-tag.c:261
+msgid ""
+"The manufacturer of the recording equipment. This is the manufacturer of the "
+"DSC, scanner, video digitizer or other equipment that generated the image. "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+"Producenten på optagelsesudstyret. Dette er producenten af DSC'en, "
+"skanneren, videooptageren eller andet udstyr som skabte billedet. Når feltet "
+"er tomt, opfattes denne som ukendt."
+
+#: libexif/exif-tag.c:267
+msgid "Model"
+msgstr "Model"
+
+#: libexif/exif-tag.c:268
+msgid ""
+"The model name or model number of the equipment. This is the model name or "
+"number of the DSC, scanner, video digitizer or other equipment that "
+"generated the image. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Modelnavnet eller modelnummeret på udstyret. Dette er modelnavnet eller "
+"nummeret på DSC'en, skanneren, videooptageren eller andet udstyr som skabte "
+"billedet. Når feltet er tomt, opfattes dette som ukendt."
+
+#: libexif/exif-tag.c:273
+msgid "Strip Offsets"
+msgstr "Strimmeloffset"
+
+#: libexif/exif-tag.c:274
+msgid ""
+"For each strip, the byte offset of that strip. It is recommended that this "
+"be selected so the number of strip bytes does not exceed 64 Kbytes. With "
+"JPEG compressed data this designation is not needed and is omitted. See also "
+"<RowsPerStrip> and <StripByteCounts>."
+msgstr ""
+"For hver strimmel, byteoffsetten på den strimmel. Det anbefales at denne "
+"vælges så antallet af strimmelbyte ikke overstiger 64 Kbyte. Med JPEG-"
+"komprimeret data er denne udpegning ikke nødvendig og udelades. Se også "
+"<RowsPerStrip< og <StripByteCounts>."
+
+#: libexif/exif-tag.c:280
+msgid "Orientation"
+msgstr "Orientering"
+
+#: libexif/exif-tag.c:281
+msgid "The image orientation viewed in terms of rows and columns."
+msgstr "Billedeorientering set i form af rækker og kolonner."
+
+#: libexif/exif-tag.c:284
+msgid "Samples per Pixel"
+msgstr "Eksempler per billedpunkt"
+
+#: libexif/exif-tag.c:285
+msgid ""
+"The number of components per pixel. Since this standard applies to RGB and "
+"YCbCr images, the value set for this tag is 3. In JPEG compressed data a "
+"JPEG marker is used instead of this tag."
+msgstr ""
+"Antallet af komponenter per billedpunkt. Da denne standard er gældende for "
+"RGB- og YCbCr-billeder, er værdien for dette mærke sat til 3. I JPEG-"
+"komprimeret data bruges en JPEG-markør i steden for det mærke."
+
+#: libexif/exif-tag.c:290
+msgid "Rows per Strip"
+msgstr "Rækker per strimmel"
+
+#: libexif/exif-tag.c:291
+msgid ""
+"The number of rows per strip. This is the number of rows in the image of one "
+"strip when an image is divided into strips. With JPEG compressed data this "
+"designation is not needed and is omitted. See also <StripOffsets> and "
+"<StripByteCounts>."
+msgstr ""
+"Antallet af rækker per strimmel. Dette er antallet af rækker i billedet af "
+"en strimmel når et billede opdeles i strimler. Med JPEG-komprimeret data "
+"behøves denne udpegning ikke og udelades. Se også <StripOffsets> og "
+"<StripBytecounts>."
+
+#: libexif/exif-tag.c:297
+msgid "Strip Byte Count"
+msgstr "Strimmel byteoptælling"
+
+#: libexif/exif-tag.c:298
+msgid ""
+"The total number of bytes in each strip. With JPEG compressed data this "
+"designation is not needed and is omitted."
+msgstr ""
+"Det samlede antal byte i hver strimmel. Med JPEG-komprimeret data behøves "
+"denne udpegning ikke og udelades."
+
+#: libexif/exif-tag.c:301
+msgid "X-Resolution"
+msgstr "X-opløsning"
+
+#: libexif/exif-tag.c:302
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageWidth> direction. "
+"When the image resolution is unknown, 72 [dpi] is designated."
+msgstr ""
+"Antallet af billedpunkter per <ResolutionUnit> i <ImageWidth>-retningen. Når "
+"denne billedopløsning er ukendt tildeles 72 [dpi]."
+
+#: libexif/exif-tag.c:306
+msgid "Y-Resolution"
+msgstr "Y-opløsning"
+
+#: libexif/exif-tag.c:307
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageLength> direction. "
+"The same value as <XResolution> is designated."
+msgstr ""
+"Antallet af billedpunkter per <ResolutionUnit> i <ImageLength>-retningen. "
+"Den samme værdi som <XResolution> tildeles."
+
+#: libexif/exif-tag.c:311
+msgid "Planar Configuration"
+msgstr "Plan konfiguration"
+
+#: libexif/exif-tag.c:312
+msgid ""
+"Indicates whether pixel components are recorded in a chunky or planar "
+"format. In JPEG compressed files a JPEG marker is used instead of this tag. "
+"If this field does not exist, the TIFF default of 1 (chunky) is assumed."
+msgstr ""
+"Indikerer om billedpunktkomponenter er optaget i klumpet eller plant format. "
+"I JPEG-komprimeret filer bruges en JPEG-markør i steden for dette mærke. "
+"Hvis dette felt ikke eksisterer, antages TIFF-standarden 1 (klumpet)."
+
+#: libexif/exif-tag.c:317
+msgid "Resolution Unit"
+msgstr "Opløsningsenhed"
+
+#: libexif/exif-tag.c:318
+msgid ""
+"The unit for measuring <XResolution> and <YResolution>. The same unit is "
+"used for both <XResolution> and <YResolution>. If the image resolution is "
+"unknown, 2 (inches) is designated."
+msgstr ""
+"Enheden der måler <XResolution> og <YResolution>. Den samme enhed bruges for "
+"både <XResolution> og <YResolution>. Hvis billedopløsningen er ukendt "
+"tildeles 2 (tommer)."
+
+#: libexif/exif-tag.c:323
+msgid "Transfer Function"
+msgstr "Overførelsesfunktion"
+
+#: libexif/exif-tag.c:324
+msgid ""
+"A transfer function for the image, described in tabular style. Normally this "
+"tag is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+"En overførelsesfunktion for billedet, beskrevet i tabulær stil. Normalt er "
+"dette mærke ikke nødvendigt, da farvemellemrum er angivet i "
+"farvemellemrumsinformationsmærket (<ColorSpace>)."
+
+#: libexif/exif-tag.c:328
+msgid "Software"
+msgstr "Program"
+
+#: libexif/exif-tag.c:329
+msgid ""
+"This tag records the name and version of the software or firmware of the "
+"camera or image input device used to generate the image. The detailed format "
+"is not specified, but it is recommended that the example shown below be "
+"followed. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Dette mærke viser navnet og versionen på det program eller firmware på "
+"kameraet eller billedinddataenheden som blev brugt til at generere billedet. "
+"Det detaljerede format er ikke angivet, men det anbefales at eksempelt vist "
+"nedenfor følges. Når feltet efterlades uudfyldt, behandles det som ukendt."
+
+#: libexif/exif-tag.c:336
+msgid "Date and Time"
+msgstr "Dato og tid"
+
+#: libexif/exif-tag.c:337
+msgid ""
+"The date and time of image creation. In this standard (EXIF-2.1) it is the "
+"date and time the file was changed."
+msgstr ""
+"Datoen og tiden for oprettelsen af billedet. I denne standard (EXIF-2.1) er "
+"det datoen og tiden filen sidst blev ændret."
+
+#: libexif/exif-tag.c:340
+msgid "Artist"
+msgstr "Kunstner"
+
+#: libexif/exif-tag.c:341
+msgid ""
+"This tag records the name of the camera owner, photographer or image "
+"creator. The detailed format is not specified, but it is recommended that "
+"the information be written as in the example below for ease of "
+"Interoperability. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Dette mærke viser navnet på kameraejeren, fotografen eller personen der "
+"oprettede billedet. Det detaljerede format er ikke angivet, men det "
+"anbefales at informationerne skrives som vist i eksemplet nedenfor for at "
+"lette interoperabiliteten. Når feltet er uudfyldt, opfattes det som ukendt."
+
+#: libexif/exif-tag.c:347 libexif/pentax/mnote-pentax-tag.c:113
+msgid "White Point"
+msgstr "Hvidpunkt"
+
+# Kromaticiteten for billedets hvidpunkt
+#: libexif/exif-tag.c:348
+msgid ""
+"The chromaticity of the white point of the image. Normally this tag is not "
+"necessary, since color space is specified in the color space information tag "
+"(<ColorSpace>)."
+msgstr ""
+"Kromaticiteten på det hvide punkt i billedet. Normalt er dette mærke ikke "
+"nødvendigt, da farverum er angivet i informationsmærket for farverum "
+"(<ColorSpace>)."
+
+#: libexif/exif-tag.c:353
+msgid "Primary Chromaticities"
+msgstr "Primære kromaticiteter"
+
+#: libexif/exif-tag.c:354
+msgid ""
+"The chromaticity of the three primary colors of the image. Normally this tag "
+"is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+"Kromaticiteten på de tre primære farver i billedet. Normalt er dette mærke "
+"ikke nødvendigt, da farverum er angivet i informationsmærket for farverum "
+"(<ColorSpace>)."
+
+#: libexif/exif-tag.c:359
+msgid "Defined by Adobe Corporation to enable TIFF Trees within a TIFF file."
+msgstr ""
+"Defineret af Adobe Corporation for at kunne slå TIFF-træer til inden i en "
+"TIFF-fil."
+
+#: libexif/exif-tag.c:362
+msgid "Transfer Range"
+msgstr "Transferinterval"
+
+#: libexif/exif-tag.c:366
+msgid "JPEG Interchange Format"
+msgstr "JPEG-udvekslingsformat"
+
+#: libexif/exif-tag.c:367
+msgid ""
+"The offset to the start byte (SOI) of JPEG compressed thumbnail data. This "
+"is not used for primary image JPEG data."
+msgstr ""
+"Afsætningen til startbyten (SOI) på JPEG-komprimeret data for "
+"miniaturebillede. Denne bruges ikke til primære JPEG-billeddata."
+
+#: libexif/exif-tag.c:372
+msgid "JPEG Interchange Format Length"
+msgstr "JPEG-udvekslingsformatlængde"
+
+#: libexif/exif-tag.c:373
+msgid ""
+"The number of bytes of JPEG compressed thumbnail data. This is not used for "
+"primary image JPEG data. JPEG thumbnails are not divided but are recorded as "
+"a continuous JPEG bitstream from SOI to EOI. Appn and COM markers should not "
+"be recorded. Compressed thumbnails must be recorded in no more than 64 "
+"Kbytes, including all other data to be recorded in APP1."
+msgstr ""
+"Antallet af byte i JPEG-komprimeret miniaturedata. Dette bruges ikke til "
+"primære billed-JPEG-data. JPEG-miniaturebilleder opdeles ikke, men optages "
+"som en fortsættende JPEG-bitstrøm fra SOI til EOI. Appn- og COM-markører bør "
+"ikke optages. Komprimeret miniaturebilleder skal optages i ikke mere end 64 "
+"Kbyte, inklusive alle andre data der optages i APP1."
+
+#: libexif/exif-tag.c:382
+msgid "YCbCr Coefficients"
+msgstr "YCbCr-koefficienter"
+
+#: libexif/exif-tag.c:383
+msgid ""
+"The matrix coefficients for transformation from RGB to YCbCr image data. No "
+"default is given in TIFF; but here the value given in \"Color Space "
+"Guidelines\", is used as the default. The color space is declared in a color "
+"space information tag, with the default being the value that gives the "
+"optimal image characteristics Interoperability this condition."
+msgstr ""
+"Matricekoefficienterne for omdannelse fra RGB- til YCbCr-billeddata. Ingen "
+"standard er angivet i TIFF; men her bruges værdien angivet i »Color Space "
+"Guidelines« som standard. Farverummet er deklareret i informationsmærket for "
+"farverum, hvor standarden er værdien som giver denne betingelse den optimale "
+"billedkarakteristiske interoperabilitet."
+
+#: libexif/exif-tag.c:392
+msgid "YCbCr Sub-Sampling"
+msgstr "YCbCr undersampling"
+
+# fra engelske wikipedia: Chrominance(chroma for short), is the signal
+# used in videosystems to convey the color information of the picture,
+# separately from the accompanying lumasignal.
+# Luminance is a photometricmeasure of the luminous intensity per unit
+# area of lighttravelling in a given direction. 
+#: libexif/exif-tag.c:393
+msgid ""
+"The sampling ratio of chrominance components in relation to the luminance "
+"component. In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+"Samplingsforholdet på chrominance-komponenter i forhold til "
+"lysstyrkekomponenten. I JPEG-komprimeret data bruges en JPEG-markør i steden "
+"for dette mærke."
+
+#: libexif/exif-tag.c:398
+msgid "YCbCr Positioning"
+msgstr "YCbCr-placering"
+
+#: libexif/exif-tag.c:399
+msgid ""
+"The position of chrominance components in relation to the luminance "
+"component. This field is designated only for JPEG compressed data or "
+"uncompressed YCbCr data. The TIFF default is 1 (centered); but when Y:Cb:Cr "
+"= 4:2:2 it is recommended in this standard that 2 (co-sited) be used to "
+"record data, in order to improve the image quality when viewed on TV "
+"systems. When this field does not exist, the reader shall assume the TIFF "
+"default. In the case of Y:Cb:Cr = 4:2:0, the TIFF default (centered) is "
+"recommended. If the reader does not have the capability of supporting both "
+"kinds of <YCbCrPositioning>, it shall follow the TIFF default regardless of "
+"the value in this field. It is preferable that readers be able to support "
+"both centered and co-sited positioning."
+msgstr ""
+"Placeringen af chrominance-komponenterne i forhold til lysstyrkekomponenten. "
+"Dette felt er kun designet til brug for JPEG-komprimeret data eller "
+"ukomprimeret YCbCr-data. TIFF-værdien er 1 (centreret); men når Y:Cb:Cr = "
+"4:2;2 er det anbefalet i denne standard at 2 (co-placeret) bruges til at "
+"optage data med, for at forbedre billedkvaliteten ved visning på tv. Når "
+"dette felt ikke eksisterer vil læseren antage TIFF-standarden. I tilfældet "
+"med Y:Cb:Cr = 4:2;0 anbefales TIFF-standarden (centreret). Hvis læseren ikke "
+"har kapacitet til at understøtte begge slags <YCbCrPositioning> skal den "
+"følge TIFF-standarden uanset værdien i dette felt. Det er at foretrække hvis "
+"læserne kan understøtte både centreret og co-placeret positionering."
+
+#: libexif/exif-tag.c:414
+msgid "Reference Black/White"
+msgstr "Reference for sort/hvid"
+
+# evt. noget med "sort- og hvidpunkt."
+#: libexif/exif-tag.c:415
+msgid ""
+"The reference black point value and reference white point value. No defaults "
+"are given in TIFF, but the values below are given as defaults here. The "
+"color space is declared in a color space information tag, with the default "
+"being the value that gives the optimal image characteristics "
+"Interoperability these conditions."
+msgstr ""
+"Referenceværdien for det sorte og hvide punkt. Ingen standarder er angivet i "
+"TIFF, men værdierne nedenfor er angivet som standarder her. Farverummet er "
+"angivet i et informationsmærke for farverum, hvor standarden er værdien som "
+"giver denne betingelse den optimale billedkarakteristiske interoperabilitet."
+
+#: libexif/exif-tag.c:423
+msgid "XML Packet"
+msgstr "XML-pakke"
+
+#: libexif/exif-tag.c:423
+msgid "XMP Metadata"
+msgstr "XMP-metadata"
+
+#: libexif/exif-tag.c:438 libexif/exif-tag.c:784
+msgid "CFA Pattern"
+msgstr "CFA-mønster"
+
+#: libexif/exif-tag.c:439 libexif/exif-tag.c:785
+msgid ""
+"Indicates the color filter array (CFA) geometric pattern of the image sensor "
+"when a one-chip color area sensor is used. It does not apply to all sensing "
+"methods."
+msgstr ""
+"Indikerer det geometriske mønster for farvefiltertabellen (CFA) på "
+"billedsensoren når en farveområdesensor med én chip bruges. Mønsteret gælder "
+"ikke for alle sensormetoder."
+
+#: libexif/exif-tag.c:443
+msgid "Battery Level"
+msgstr "Batteriniveau"
+
+#: libexif/exif-tag.c:444
+msgid "Copyright"
+msgstr "Ophavsret"
+
+#: libexif/exif-tag.c:445
+msgid ""
+"Copyright information. In this standard the tag is used to indicate both the "
+"photographer and editor copyrights. It is the copyright notice of the person "
+"or organization claiming rights to the image. The Interoperability copyright "
+"statement including date and rights should be written in this field; e.g., "
+"\"Copyright, John Smith, 19xx. All rights reserved.\". In this standard the "
+"field records both the photographer and editor copyrights, with each "
+"recorded in a separate part of the statement. When there is a clear "
+"distinction between the photographer and editor copyrights, these are to be "
+"written in the order of photographer followed by editor copyright, separated "
+"by NULL (in this case, since the statement also ends with a NULL, there are "
+"two NULL codes) (see example 1). When only the photographer is given, it is "
+"terminated by one NULL code (see example 2). When only the editor copyright "
+"is given, the photographer copyright part consists of one space followed by "
+"a terminating NULL code, then the editor copyright is given (see example 3). "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+"Information om ophavsret. I denne standard angives både fotografens og "
+"redaktørens ophavsret i samme mærke. Her angives  ophavsretsoplysningen for "
+"personen eller organisationen som hævder at have rettighederne til billedet. "
+"Interoperabilityerklæringen for ophavsret inklusive dato og rettigheder bør "
+"skrives i dette felt; for eksempel, »Ophavsret, Kaj Jensen, 19xx. Alle "
+"rettigheder forbeholdes.«. I denne standard registreres både fotografen og "
+"redaktøren i samme felt. Når der er en klar forskel på fotografens og "
+"redaktørens ophavsret, skal de skrives i rækkefølge med fotografen først "
+"efterfulgt af redaktørens ophavsret, adskilt af NULL (da udsagnet også "
+"afsluttes med NULL, er der i dette tilfælde to NULL-koder) (se eksempel 1). "
+"Når kun fotografen er angivet, afsluttes med en NULL-kode (se eksempel 2). "
+"Når kun redaktørens rettighed er angivet, består fotografens ophavsretdel af "
+"et mellemrum efterfulgt af en afsluttende NULL-kode, hvorefter redaktørens "
+"ophavsret er angivet (se eksempel 3). Når feltet efterlades blankt, "
+"behandles oplysningen som ukendt."
+
+#: libexif/exif-tag.c:467
+msgid "Exposure time, given in seconds (sec)."
+msgstr "Belysningstid, opgivet i sekunder (sek)."
+
+#: libexif/exif-tag.c:469 libexif/pentax/mnote-pentax-tag.c:79
+msgid "F-Number"
+msgstr "F-nummer"
+
+#: libexif/exif-tag.c:470
+msgid "The F number."
+msgstr "F-nummeret."
+
+#: libexif/exif-tag.c:475
+msgid "Image Resources Block"
+msgstr "Billedressourceblok"
+
+# engelsk fejl, lille o.
+#: libexif/exif-tag.c:477
+msgid ""
+"A pointer to the Exif IFD. Interoperability, Exif IFD has the same structure "
+"as that of the IFD specified in TIFF. ordinarily, however, it does not "
+"contain image data as in the case of TIFF."
+msgstr ""
+"En peger til Exif IFD'en. Interoperability, Exif IFD har den samme struktur "
+"som den af IFD angivet i TIFF. Normalt indeholder den dog ikke billeddata "
+"som i tilfældet med TIFF."
+
+#: libexif/exif-tag.c:485
+msgid "Exposure Program"
+msgstr "Belysningsprogram"
+
+#: libexif/exif-tag.c:486
+msgid ""
+"The class of the program used by the camera to set exposure when the picture "
+"is taken."
+msgstr ""
+"Klassen af programmet, der bruges af kameraet til at angive belysning, når "
+"billedet tages."
+
+#: libexif/exif-tag.c:490
+msgid "Spectral Sensitivity"
+msgstr "Spektralsensitivitet"
+
+#: libexif/exif-tag.c:491
+msgid ""
+"Indicates the spectral sensitivity of each channel of the camera used. The "
+"tag value is an ASCII string compatible with the standard developed by the "
+"ASTM Technical Committee."
+msgstr ""
+"Indikerer spektralsensitiviteten på hver kanal der bruges af kameraet. "
+"Mærkeværdien er en ASCII-streng kompatibel med standarden udviklet af ASTM "
+"Technical Committee."
+
+#: libexif/exif-tag.c:496
+msgid "GPS Info IFD Pointer"
+msgstr "IFD-peger for GPS-info"
+
+#: libexif/exif-tag.c:497
+msgid ""
+"A pointer to the GPS Info IFD. The Interoperability structure of the GPS "
+"Info IFD, like that of Exif IFD, has no image data."
+msgstr ""
+"En peger for GPS Info IFD'en. Interoperabilitystrukturen på GPS Info IFD'en "
+"har som Exif IFD ingen billeddata."
+
+#: libexif/exif-tag.c:503
+msgid "ISO Speed Ratings"
+msgstr "ISO Speed-værdier"
+
+#: libexif/exif-tag.c:504
+msgid ""
+"Indicates the ISO Speed and ISO Latitude of the camera or input device as "
+"specified in ISO 12232."
+msgstr ""
+"Indikerer ISO Speed og ISO Latitude på kameraet eller inddataenheden som "
+"angivet i ISO 12232."
+
+#: libexif/exif-tag.c:507
+msgid "Opto-Electronic Conversion Function"
+msgstr "Opto-Electronic konversionsfunktion"
+
+#: libexif/exif-tag.c:508
+msgid ""
+"Indicates the Opto-Electronic Conversion Function (OECF) specified in ISO "
+"14524. <OECF> is the relationship between the camera optical input and the "
+"image values."
+msgstr ""
+"Indikerer Opto-Electronic konversionsfunktionen (OECF) som angivet i ISO "
+"14524. <OECF> er sammenhængen mellem kameraets optiske inddata og "
+"billedværdierne."
+
+#: libexif/exif-tag.c:513
+msgid "Time Zone Offset"
+msgstr "Tidszoneafsætning"
+
+#: libexif/exif-tag.c:514
+msgid "Encodes time zone of camera clock relative to GMT."
+msgstr "Koder tidszone på uret i kameraet i forhold til GMT."
+
+#: libexif/exif-tag.c:515
+msgid "Exif Version"
+msgstr "Version på Exif"
+
+#: libexif/exif-tag.c:516
+msgid ""
+"The version of this standard supported. Nonexistence of this field is taken "
+"to mean nonconformance to the standard."
+msgstr ""
+"Versionen på denne standard som er understøttet. Hvis dette felt ikke "
+"eksisterer antages det at standarden ikke overholdes."
+
+#: libexif/exif-tag.c:520
+msgid "Date and Time (Original)"
+msgstr "Dato og tid (oprindelig)"
+
+#: libexif/exif-tag.c:521
+msgid ""
+"The date and time when the original image data was generated. For a digital "
+"still camera the date and time the picture was taken are recorded."
+msgstr ""
+"Datoen og tidspunktet da de originale billeddata blev skabt. For et digitalt "
+"stillkamera angives datoen og tiden billedet blev optaget på."
+
+#: libexif/exif-tag.c:526
+msgid "Date and Time (Digitized)"
+msgstr "Dato og tid (digitaliseret)"
+
+#: libexif/exif-tag.c:527
+msgid "The date and time when the image was stored as digital data."
+msgstr "Datoen og tidspunktet da billedet blev gemt som digitale data."
+
+#: libexif/exif-tag.c:530
+msgid "Components Configuration"
+msgstr "Komponentkonfiguration"
+
+#: libexif/exif-tag.c:531
+msgid ""
+"Information specific to compressed data. The channels of each component are "
+"arranged in order from the 1st component to the 4th. For uncompressed data "
+"the data arrangement is given in the <PhotometricInterpretation> tag. "
+"However, since <PhotometricInterpretation> can only express the order of Y, "
+"Cb and Cr, this tag is provided for cases when compressed data uses "
+"components other than Y, Cb, and Cr and to enable support of other sequences."
+msgstr ""
+"Information specifik for komprimerede data. Kanalerne på hver komponent er "
+"arrangeret i rækkefølge fra den første komponent til den fjerde. For "
+"ukomprimerede data er dataarrangementet angivet i mærket "
+"<PhotometricInterpretation>. Da <PhotometricInterpretation> dog kun kan "
+"udtrykke rækkefølgen af Y, Cb og Cr, tilbydes dette mærke til tilfælde hvor "
+"komprimerede data bruger komponenter udover Y, Cb og Cr og for at aktivere "
+"understøttelse af andre sekvenser."
+
+#: libexif/exif-tag.c:541
+msgid "Compressed Bits per Pixel"
+msgstr "Komprimerede bit per billedpunkt"
+
+#: libexif/exif-tag.c:542
+msgid ""
+"Information specific to compressed data. The compression mode used for a "
+"compressed image is indicated in unit bits per pixel."
+msgstr ""
+"Information specifik for komprimerede data. Komprimeringstilstanden brugt "
+"for et komprimeret billede er indikeret i enheden bit per billedpunkt."
+
+#: libexif/exif-tag.c:546 libexif/olympus/mnote-olympus-tag.c:123
+msgid "Shutter Speed"
+msgstr "Lukkertid"
+
+#: libexif/exif-tag.c:547
+msgid ""
+"Shutter speed. The unit is the APEX (Additive System of Photographic "
+"Exposure) setting."
+msgstr ""
+"Lukkertid. Denne enhed er APEX-indstillingen (Additive System of "
+"Photographic Exposure)."
+
+#: libexif/exif-tag.c:551
+msgid "The lens aperture. The unit is the APEX value."
+msgstr "Linsens blændetal. Enheden er APEX-værdien."
+
+#: libexif/exif-tag.c:553
+msgid "Brightness"
+msgstr "Lysstyrke"
+
+#: libexif/exif-tag.c:554
+msgid ""
+"The value of brightness. The unit is the APEX value. Ordinarily it is given "
+"in the range of -99.99 to 99.99."
+msgstr ""
+"Værdien på lysstyrken. Enheden er APEX-værdien. Normalt angives den i "
+"intervallet -99.99 til 99.99."
+
+#: libexif/exif-tag.c:558
+msgid "Exposure Bias"
+msgstr "Belysningsbias"
+
+#: libexif/exif-tag.c:559
+msgid ""
+"The exposure bias. The units is the APEX value. Ordinarily it is given in "
+"the range of -99.99 to 99.99."
+msgstr ""
+"Belysningsbiasesn. Enheden er APEX-værdien. Normalt angives den i "
+"intervallet -99.99 til 99.99."
+
+#: libexif/exif-tag.c:562
+msgid "Maximum Aperture Value"
+msgstr "Maksimal blændetalsværdi"
+
+#: libexif/exif-tag.c:563
+msgid ""
+"The smallest F number of the lens. The unit is the APEX value. Ordinarily it "
+"is given in the range of 00.00 to 99.99, but it is not limited to this range."
+msgstr ""
+"Linsens mindste F-tal. Enheden er APEX-værdien. Normalt angives den i "
+"intervallet 00.00 til 99.99, men den er ikke begrænset til dette interval."
+
+#: libexif/exif-tag.c:568
+msgid "Subject Distance"
+msgstr "Emneafstand"
+
+#: libexif/exif-tag.c:569
+msgid "The distance to the subject, given in meters."
+msgstr "Afstanden til emnet, angivet i meter."
+
+#: libexif/exif-tag.c:572
+msgid "The metering mode."
+msgstr "Måletilstanden."
+
+#: libexif/exif-tag.c:574
+msgid "Light Source"
+msgstr "Lyskilde"
+
+#: libexif/exif-tag.c:575
+msgid "The kind of light source."
+msgstr "Lyskildetype."
+
+#: libexif/exif-tag.c:578
+msgid ""
+"This tag is recorded when an image is taken using a strobe light (flash)."
+msgstr ""
+"Dette mærke optages, når et billede bliver taget med brug af stroboskoplys "
+"(blitz)."
+
+#: libexif/exif-tag.c:582
+msgid ""
+"The actual focal length of the lens, in mm. Conversion is not made to the "
+"focal length of a 35 mm film camera."
+msgstr ""
+"Den faktiske brændvidde på linsen, i mm. Konvertering er ikke foretaget på "
+"brændvidden på et 35 mm filmkamera."
+
+#: libexif/exif-tag.c:585
+msgid "Subject Area"
+msgstr "Emneområde"
+
+#: libexif/exif-tag.c:586
+msgid ""
+"This tag indicates the location and area of the main subject in the overall "
+"scene."
+msgstr "Dette mærke indikerer stedet og området for hovedmotivet i scenen."
+
+#: libexif/exif-tag.c:590
+msgid "TIFF/EP Standard ID"
+msgstr "TIFF/EP-standard-id"
+
+#: libexif/exif-tag.c:591
+msgid "Maker Note"
+msgstr "Producentnote"
+
+#: libexif/exif-tag.c:592
+msgid ""
+"A tag for manufacturers of Exif writers to record any desired information. "
+"The contents are up to the manufacturer."
+msgstr ""
+"Et mærke for producenter af Exif-forfattere til registrering af ønsket "
+"information. Indholdet er helt op til producenten."
+
+#: libexif/exif-tag.c:595
+msgid "User Comment"
+msgstr "Brugerkommentar"
+
+#: libexif/exif-tag.c:596
+msgid ""
+"A tag for Exif users to write keywords or comments on the image besides "
+"those in <ImageDescription>, and without the character code limitations of "
+"the <ImageDescription> tag. The character code used in the <UserComment> tag "
+"is identified based on an ID code in a fixed 8-byte area at the start of the "
+"tag data area. The unused portion of the area is padded with NULL (\"00.h"
+"\"). ID codes are assigned by means of registration. The designation method "
+"and references for each character code are defined in the specification. The "
+"value of CountN is determined based on the 8 bytes in the character code "
+"area and the number of bytes in the user comment part. Since the TYPE is not "
+"ASCII, NULL termination is not necessary. The ID code for the <UserComment> "
+"area may be a Defined code such as JIS or ASCII, or may be Undefined. The "
+"Undefined name is UndefinedText, and the ID code is filled with 8 bytes of "
+"all \"NULL\" (\"00.H\"). An Exif reader that reads the <UserComment> tag "
+"must have a function for determining the ID code. This function is not "
+"required in Exif readers that do not use the <UserComment> tag. When a "
+"<UserComment> area is set aside, it is recommended that the ID code be ASCII "
+"and that the following user comment part be filled with blank characters [20."
+"H]."
+msgstr ""
+"Et mærke hvor Exifbrugere kan skrive nøgleord eller kommentarer på "
+"billederne udover dem i <ImageDescription>, og uden begrænsningerne på "
+"tegnkoden i dette mærke. Tegnkoden brugt i mærket <UserComment> "
+"identificeres på grundlag af en id-kode i et fast 8-byte område i starten af "
+"mærkets dataområde. Den ubrugte del af området fyldt med NULL (00.h). Id-"
+"koder tildeles ved brug af registrering. Betegnelsesmetoden og referencer "
+"for hver tegnkode defineres i specifikationen. Værdien af CountN afgøres på "
+"grundlag af de 8 byte i tegnkodeområdet og antallet af byte i "
+"brugerkommenteringsdelen. Da TYPEN ikke er ASCII, er NULL-terminering ikke "
+"nødvendig. Id-koden for området <UserComment> kan være en defineret kode som "
+"JIS eller ASCII, eller kan være udefineret. Det udefinerede navn er "
+"Udefineret tekst, og id-koden fyldes med 8 byte af alle NULL (00.H). En "
+"Exiflæser som læser mærket <UserComment> skal have en funktion der kan "
+"aflæse id-koden. Denne funktion er ikke krævet hvis Exiflæseren ikke bruger "
+"mærket <UserComment>. Når et <UserComment>-område reserveres anbefales det "
+"af id-koden er i ASCII-format og at den følgende brugerkommenteringsplads "
+"fyldes med blanke tegn [20.H]."
+
+#: libexif/exif-tag.c:619
+msgid "Sub-second Time"
+msgstr "Delsekundtid"
+
+#: libexif/exif-tag.c:620
+msgid "A tag used to record fractions of seconds for the <DateTime> tag."
+msgstr "Et mærke brugt til at registrere delsekunder for mærket <DateTime>."
+
+#: libexif/exif-tag.c:624
+msgid "Sub-second Time (Original)"
+msgstr "Delsekundtid (oprindelig)"
+
+#: libexif/exif-tag.c:625
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeOriginal> tag."
+msgstr ""
+"Et mærke brugt til at registrere delsekunder for mærket <DateTimeOriginal>."
+
+#: libexif/exif-tag.c:629
+msgid "Sub-second Time (Digitized)"
+msgstr "Delsekundtid (digitaliseret)"
+
+#: libexif/exif-tag.c:630
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeDigitized> tag."
+msgstr ""
+"Et mærke brugt til at registrere delsekunder for mærket <DateTimeDigitized>."
+
+#: libexif/exif-tag.c:634
+msgid "XP Title"
+msgstr "XP-titel"
+
+#: libexif/exif-tag.c:635
+msgid "A character string giving the title of the image, encoded in UTF-16LE."
+msgstr "En tegnstreng indholdende titlen på billedet, kodet i UTF-16LE."
+
+#: libexif/exif-tag.c:639
+msgid "XP Comment"
+msgstr "XP-bemærkning"
+
+#: libexif/exif-tag.c:640
+msgid ""
+"A character string containing a comment about the image, encoded in UTF-16LE."
+msgstr ""
+"En tegnstreng indeholdende en bemærkning om billedet, kodet i UTF-16LE."
+
+#: libexif/exif-tag.c:644
+msgid "XP Author"
+msgstr "XP-forfatter"
+
+#: libexif/exif-tag.c:645
+msgid ""
+"A character string containing the name of the image creator, encoded in UTF-"
+"16LE."
+msgstr ""
+"En tegnstreng indeholdende navnet på personen der oprettede billedet, kodet "
+"i UTF-16LE."
+
+#: libexif/exif-tag.c:649
+msgid "XP Keywords"
+msgstr "XP-nøgleord"
+
+#: libexif/exif-tag.c:650
+msgid ""
+"A character string containing key words describing the image, encoded in UTF-"
+"16LE."
+msgstr ""
+"En tegnstreng indeholdende nøgleord der beskriver billedet, kodet i UTF-16LE."
+
+#: libexif/exif-tag.c:654
+msgid "XP Subject"
+msgstr "XP-emne"
+
+#: libexif/exif-tag.c:655
+msgid "A character string giving the image subject, encoded in UTF-16LE."
+msgstr "En tegnstreng indeholdende billedemnet, kodet i UTF-16LE."
+
+#: libexif/exif-tag.c:659
+msgid "The FlashPix format version supported by a FPXR file."
+msgstr "FlashPix-formatversionen understøttet af en FPXR-fil."
+
+#: libexif/exif-tag.c:661 libexif/pentax/mnote-pentax-tag.c:102
+msgid "Color Space"
+msgstr "Farverum"
+
+#: libexif/exif-tag.c:662
+msgid ""
+"The color space information tag is always recorded as the color space "
+"specifier. Normally sRGB (=1) is used to define the color space based on the "
+"PC monitor conditions and environment. If a color space other than sRGB is "
+"used, Uncalibrated (=FFFF.H) is set. Image data recorded as Uncalibrated can "
+"be treated as sRGB when it is converted to FlashPix."
+msgstr ""
+"Mærket for farveruminformation optages altid som farverumangivelsen. Normalt "
+"bruges sRGB (=1) til at definere farverummet baseret på pc-monitorens "
+"forhold og miljø. Hvis et farverum andet end sRGB bruges angives ukalibreret "
+"(=FFFF.H). Billeddata optaget som ukalibreret kan behandles som sRGB når det "
+"er konverteret til FlashPix."
+
+#: libexif/exif-tag.c:670
+msgid "Pixel X Dimension"
+msgstr "Billedpunktets x-dimension"
+
+#: libexif/exif-tag.c:671
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid width of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file."
+msgstr ""
+"Specifik information for komprimerede data. Når en komprimeret fil optages, "
+"skal den gyldige bredde på det meningsfulde billede optages i dette mærke, "
+"uanset om der er fylddata eller en genstartsmarkør. Dette mærke bør ikke "
+"eksistere i en ukomprimeret fil."
+
+#: libexif/exif-tag.c:677
+msgid "Pixel Y Dimension"
+msgstr "Billedpunktets y-dimension"
+
+#: libexif/exif-tag.c:678
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid height of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file. Since data padding is unnecessary in the "
+"vertical direction, the number of lines recorded in this valid image height "
+"tag will in fact be the same as that recorded in the SOF."
+msgstr ""
+"Specifik information for komprimerede data. Når en komprimeret fil optages, "
+"skal den gyldige højde på det meningsfulde billede optages i dette mærke, "
+"uanset om der er fyldningsdata eller en genstartsmarkør. Dette mærke bør "
+"ikke eksistere i en ukomprimeret fil. Da datafyldning er unødvendigt lodret, "
+"vil antallet af linjer optaget i dette gyldige billedhøjdemærke være det "
+"samme som optaget i SOF'en."
+
+#: libexif/exif-tag.c:688
+msgid "Related Sound File"
+msgstr "Forbundet lydfil"
+
+#: libexif/exif-tag.c:689
+#, fuzzy
+msgid ""
+"This tag is used to record the name of an audio file related to the image "
+"data. The only relational information recorded here is the Exif audio file "
+"name and extension (an ASCII string consisting of 8 characters + '.' + 3 "
+"characters). The path is not recorded. Stipulations on audio and file naming "
+"conventions are defined in the specification. When using this tag, audio "
+"files must be recorded in conformance to the Exif audio format. Writers are "
+"also allowed to store the data such as Audio within APP2 as FlashPix "
+"extension stream data. The mapping of Exif image files and audio files is "
+"done in any of three ways, [1], [2] and [3]. If multiple files are mapped to "
+"one file as in [2] or [3], the above format is used to record just one audio "
+"file name. If there are multiple audio files, the first recorded file is "
+"given. In the case of [3], for example, for the Exif image file \"DSC00001."
+"JPG\" only  \"SND00001.WAV\" is given as the related Exif audio file. When "
+"there are three Exif audio files \"SND00001.WAV\", \"SND00002.WAV\" and "
+"\"SND00003.WAV\", the Exif image file name for each of them, \"DSC00001.JPG"
+"\", is indicated. By combining multiple relational information, a variety of "
+"playback possibilities can be supported. The method of using relational "
+"information is left to the implementation on the playback side. Since this "
+"information is an ASCII character string, it is terminated by NULL. When "
+"this tag is used to map audio files, the relation of the audio file to image "
+"data must also be indicated on the audio file end."
+msgstr ""
+"Dette mærke bruges til at optage navnet på en lydfil som hænger sammen med "
+"billeddataene. Den eneste relationelle information optaget her er "
+"lydfilnavnet i Exif og filendelsen (en ASCII-streng bestående af 8 tegn + "
+"'.' + 3 tegn). Stien optages ikke. Stipulationer på lyd- og "
+"filnavnskonventioner er definerede i specifikationerne. Under brug af dette "
+"mærke, skal lydfiler optages i overensstemmelse med Exifs lydformat. "
+"Forfattere kan også gemme data som lyd indenfor APP2 som FlashPix-"
+"udvidelsesstrømdata. Lydfiler skal optages i overensstemmelse med Exifs "
+"lydformat. Mapningen af Exifs billedfiler og lydfiler gøres på en af "
+"følgende tre måder: [1], [2] og [3]. Hvis flere filer mappes til en fil som "
+"i [2] eller [3], bruges ovenstående format til at optage netop et "
+"lydfilnavn. Hvis der er flere lydfiler, angives den først optaget fil. I "
+"tilfældet [3] er for eksemplet »DSC00001.JPG« kun angivet »SND00001.WAV« som "
+"den forbundne Exif-lydfil. Når der er tre Exif-lydfiler »SND00001.WAV«, "
+"»SND00002.WAV« og »SND00003.WAV«, indikeres Exifs billedfilnavn for hvert af "
+"dem »DSC00001.JPG«. Ved at kombinere flere forbundne informationer, kan et "
+"bredt udvalg af afspilningsmuligheder understøttes. Metoden med at bruge "
+"forbundne informationer er overladt til implementationen på "
+"afspilningssiden. Da denne information er i ASCII-tegnstreng, afsluttes den "
+"med NULL. Når dette mærke brugers til at kortlægge lydfiler, skal relationen "
+"i lydfilen til billedet også angives ved lydfilens afslutning."
+
+#: libexif/exif-tag.c:719
+msgid "Interoperability IFD Pointer"
+msgstr "Interoperability IFD-peger"
+
+#: libexif/exif-tag.c:720
+msgid ""
+"Interoperability IFD is composed of tags which stores the information to "
+"ensure the Interoperability and pointed by the following tag located in Exif "
+"IFD. The Interoperability structure of Interoperability IFD is the same as "
+"TIFF defined IFD structure but does not contain the image data "
+"characteristically compared with normal TIFF IFD."
+msgstr ""
+"Interoperabilitet-IFD består af mærker som gemmer informationen, der sikrer "
+"interoperabilitet og vejledt af det følgende mærke placeret i Exif-IFD. "
+"Interoperabilitetsstrukturen på interoperabilitet-IFD er den samme som TIFF "
+"defineret IFD-struktur, men indeholder ikke billeddatakarakteristika "
+"sammenlignet med normal TIFF-IFD."
+
+#: libexif/exif-tag.c:729
+msgid "Flash Energy"
+msgstr "Blitzenergi"
+
+#: libexif/exif-tag.c:730
+msgid ""
+"Indicates the strobe energy at the time the image is captured, as measured "
+"in Beam Candle Power Seconds (BCPS)."
+msgstr ""
+"Indikerer stroboskopenergien da billedet blev optaget, som målt i Beam "
+"Candle Power Seconds (BCPS)."
+
+# ups noget med hvor meget man kan udskille små ting og så forstørre dem op
+#: libexif/exif-tag.c:734
+msgid "Spatial Frequency Response"
+msgstr "Rumlig frekvenssvar (SFR)"
+
+#: libexif/exif-tag.c:735
+msgid ""
+"This tag records the camera or input device spatial frequency table and SFR "
+"values in the direction of image width, image height, and diagonal "
+"direction, as specified in ISO 12233."
+msgstr ""
+"Dette mærke viser kameraets eller inddataenhedens rumlige frekvenssvartabel "
+"og SFR-værdier i forhold til billedets bredde, billedets højde og diagonale "
+"retning, som angivet i ISO 12233."
+
+#: libexif/exif-tag.c:741
+msgid "Focal Plane X-Resolution"
+msgstr "Brændpunktsplan x-opløsning"
+
+#: libexif/exif-tag.c:742
+msgid ""
+"Indicates the number of pixels in the image width (X) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+"Indikerer antallet af billedpunkter i billedbreddens (X) retning per "
+"<FocalPlaneResolutionUnit> på kameraets brændpunktsplan."
+
+#: libexif/exif-tag.c:746
+msgid "Focal Plane Y-Resolution"
+msgstr "Brændpunktsplan y-opløsning"
+
+#: libexif/exif-tag.c:747
+msgid ""
+"Indicates the number of pixels in the image height (V) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+"Indikerer antallet af billedpunkter i billedets højderetning (V) per "
+"<FocalPlaneResolutionUnit> på kameraets brændpunktsplan."
+
+#: libexif/exif-tag.c:751
+msgid "Focal Plane Resolution Unit"
+msgstr "Brændpunktsopløsningsenhed"
+
+#: libexif/exif-tag.c:752
+msgid ""
+"Indicates the unit for measuring <FocalPlaneXResolution> and "
+"<FocalPlaneYResolution>. This value is the same as the <ResolutionUnit>."
+msgstr ""
+"Indikerer enheden til målning af <FocalPlaneXResolutionUnit> og "
+"<FocalPlaneYResolutionUnit>. Denne værdi er den samme som <ResolutionUnit>."
+
+#: libexif/exif-tag.c:757
+msgid "Subject Location"
+msgstr "Emnelokalitet"
+
+#: libexif/exif-tag.c:758
+msgid ""
+"Indicates the location of the main subject in the scene. The value of this "
+"tag represents the pixel at the center of the main subject relative to the "
+"left edge, prior to rotation processing as per the <Rotation> tag. The first "
+"value indicates the X column number and the second indicates the Y row "
+"number."
+msgstr ""
+"Indikerer placeringen af hovedement i scenen. Værdien af dette mærke "
+"repræsenterer billedpunktet i centrum af hovedement set relativt i forhold "
+"til det venstre hjørne, før rotationsproces som fremgår af mærket "
+"<Rotation>. Den første værdi indikerer tallet for x-kolonnen og det andet "
+"indikerer tallet for y-kolonnen."
+
+#: libexif/exif-tag.c:765
+msgid "Exposure Index"
+msgstr "Belysningsindeks"
+
+#: libexif/exif-tag.c:766
+msgid ""
+"Indicates the exposure index selected on the camera or input device at the "
+"time the image is captured."
+msgstr ""
+"Indikerer belysningsindekset valgt på kameraet eller inddataenheden på "
+"tidspunktet for billedoptagelsen."
+
+#: libexif/exif-tag.c:769
+msgid "Sensing Method"
+msgstr "Sensormetode"
+
+#: libexif/exif-tag.c:770
+msgid "Indicates the image sensor type on the camera or input device."
+msgstr "Indikerer billedsensortypen på kameraet eller inddataenheden."
+
+#: libexif/exif-tag.c:773 libexif/fuji/mnote-fuji-tag.c:64
+msgid "File Source"
+msgstr "Filkilde"
+
+#: libexif/exif-tag.c:774
+msgid ""
+"Indicates the image source. If a DSC recorded the image, the tag value of "
+"this tag always be set to 3, indicating that the image was recorded on a DSC."
+msgstr ""
+"Indikerer billedkilden. Hvis en DSC optog billedet, vil mærkeværdien på "
+"dette mærke altid være 3, hvilket viser at billedet blev optaget på en DSC."
+
+#: libexif/exif-tag.c:778
+msgid "Scene Type"
+msgstr "Scenetype"
+
+#: libexif/exif-tag.c:779
+msgid ""
+"Indicates the type of scene. If a DSC recorded the image, this tag value "
+"must always be set to 1, indicating that the image was directly photographed."
+msgstr ""
+"Indikerer scenetypen. Hvis en DSC optog billedet, skal denne mærkeværdi "
+"altid være sat til 1, hvilket viser at billedet blev fotograferet direkte."
+
+#: libexif/exif-tag.c:789
+msgid "Custom Rendered"
+msgstr "Brugerrenderet"
+
+#: libexif/exif-tag.c:790
+msgid ""
+"This tag indicates the use of special processing on image data, such as "
+"rendering geared to output. When special processing is performed, the reader "
+"is expected to disable or minimize any further processing."
+msgstr ""
+"Dette mærke indikerer brugen af speciel behandling på billeddataene, såsom "
+"rendering forbeholdt uddata. Når der udføres speciel behandling forventer "
+"læseren at slå  yderligere behandling fra eller minimere den."
+
+#: libexif/exif-tag.c:796
+msgid ""
+"This tag indicates the exposure mode set when the image was shot. In auto-"
+"bracketing mode, the camera shoots a series of frames of the same scene at "
+"different exposure settings."
+msgstr ""
+"Dette mærke indikerer indstillingen for belysningstilstanden da billedet "
+"blev taget. I automatisk sammenstillingstilstand, optager kameraet en serie "
+"af billeder over den samme scene ved forskellige belysningsopsætninger."
+
+#: libexif/exif-tag.c:801
+msgid "This tag indicates the white balance mode set when the image was shot."
+msgstr ""
+"Dette punkt indikerer tilstanden for hvidbalance når billedet bliver taget."
+
+#: libexif/exif-tag.c:805
+msgid "Digital Zoom Ratio"
+msgstr "Digitalt zoomforhold"
+
+#: libexif/exif-tag.c:806
+msgid ""
+"This tag indicates the digital zoom ratio when the image was shot. If the "
+"numerator of the recorded value is 0, this indicates that digital zoom was "
+"not used."
+msgstr ""
+"Dette mærke indikerer forholdt for den digitale zoom da billedet blev taget. "
+"Hvis det optaget tal er 0, indikerer det at digital zoom ikke blev brugt."
+
+#: libexif/exif-tag.c:811
+msgid "Focal Length in 35mm Film"
+msgstr "Brændvidde i 35 mm film"
+
+#: libexif/exif-tag.c:812
+msgid ""
+"This tag indicates the equivalent focal length assuming a 35mm film camera, "
+"in mm. A value of 0 means the focal length is unknown. Note that this tag "
+"differs from the FocalLength tag."
+msgstr ""
+"Dette mærke indikerer den tilsvarende brændvidde svarende til et 35 mm "
+"kamera, i mm. En værdi på 0 betyder at brændvidden er ukendt. Bemærk at "
+"dette mærke afviger fra BrændVidde-mærket."
+
+# scenetype for optagelse
+#: libexif/exif-tag.c:818
+msgid "Scene Capture Type"
+msgstr "Sceneoptagelsestype"
+
+#: libexif/exif-tag.c:819
+msgid ""
+"This tag indicates the type of scene that was shot. It can also be used to "
+"record the mode in which the image was shot. Note that this differs from the "
+"scene type <SceneType> tag."
+msgstr ""
+"Dette mærke indikerer typen af scene som blev optaget. Det kan også bruges "
+"til at optage tilstanden som billedet blev optaget i. Bemærk at dette er "
+"forskelligt fra mærket scenetype <SceneType>."
+
+#: libexif/exif-tag.c:824
+msgid "Gain Control"
+msgstr "Forstærkningskontrol"
+
+#: libexif/exif-tag.c:825
+msgid "This tag indicates the degree of overall image gain adjustment."
+msgstr "Dette mærke indikerer graden af samlet billedforstærkningsjustering."
+
+#: libexif/exif-tag.c:829
+msgid ""
+"This tag indicates the direction of contrast processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Dette mærke indikerer retningen på kontrastbehandlingen brugt af kameraet da "
+"billedet blev taget."
+
+#: libexif/exif-tag.c:833
+msgid ""
+"This tag indicates the direction of saturation processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Dette mærke indikerer retningen på farvemætningsbehandlingen brugt af "
+"kameraet, da billedet blev taget."
+
+#: libexif/exif-tag.c:837
+msgid ""
+"This tag indicates the direction of sharpness processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Dette mærke indikerer retningen for behandlingen af skarpheden brugt af "
+"kameraet, da billedet blev taget."
+
+#: libexif/exif-tag.c:841
+msgid "Device Setting Description"
+msgstr "Beskrivelse af enhedsopsætningen"
+
+#: libexif/exif-tag.c:842
+msgid ""
+"This tag indicates information on the picture-taking conditions of a "
+"particular camera model. The tag is used only to indicate the picture-taking "
+"conditions in the reader."
+msgstr ""
+"Dette mærke indikerer information om de billedtagende betingelser for en "
+"speciel kameramodel. Mærket bruges kun til at indikere de billedtagende "
+"betingelser i læseren."
+
+#: libexif/exif-tag.c:848
+msgid "Subject Distance Range"
+msgstr "Afstand til emnet"
+
+#: libexif/exif-tag.c:849
+msgid "This tag indicates the distance to the subject."
+msgstr "Dette mærke indikerer afstanden til emnet."
+
+#: libexif/exif-tag.c:851
+msgid "Image Unique ID"
+msgstr "Unik id for billede"
+
+#: libexif/exif-tag.c:852
+msgid ""
+"This tag indicates an identifier assigned uniquely to each image. It is "
+"recorded as an ASCII string equivalent to hexadecimal notation and 128-bit "
+"fixed length."
+msgstr ""
+"Dette mærke indikerer en identifikation tildelt unikt til hvert billede. Den "
+"optages som en ASCII-streng svarende til hexadecimal notation og en fast 128-"
+"bit længde."
+
+#: libexif/exif-tag.c:857
+msgid "Gamma"
+msgstr "Gamma"
+
+#: libexif/exif-tag.c:858
+msgid "Indicates the value of coefficient gamma."
+msgstr "Indikerer værdien på koefficientgamma."
+
+#: libexif/exif-tag.c:860
+msgid "PRINT Image Matching"
+msgstr "PRINT Image Matching"
+
+#: libexif/exif-tag.c:861
+msgid "Related to Epson's PRINT Image Matching technology"
+msgstr "Forbundet med Epsons PRINT Image Matching technology"
+
+#: libexif/exif-tag.c:863
+msgid "Padding"
+msgstr "Udfyldelse med nuller (datafyld)"
+
+#: libexif/exif-tag.c:864
+msgid ""
+"This tag reserves space that can be reclaimed later when additional metadata "
+"are added. New metadata can be written in place by replacing this tag with a "
+"smaller data element and using the reclaimed space to store the new or "
+"expanded metadata tags."
+msgstr ""
+"Dette mærke reserverer plads som kan bruges senere når yderligere metadata "
+"tilføjes. Nye metadata kan skrives på plads ved at erstatte dette mærke med "
+"et lille dataelement og bruge pladsen til at gemme de nye eller udvidede "
+"metadatamærker."
+
+#: libexif/fuji/mnote-fuji-entry.c:62
+msgid "Softest"
+msgstr "Blødest"
+
+#: libexif/fuji/mnote-fuji-entry.c:66
+msgid "Hardest"
+msgstr "Hårdest"
+
+#: libexif/fuji/mnote-fuji-entry.c:67 libexif/fuji/mnote-fuji-entry.c:96
+msgid "Medium soft"
+msgstr "Mellem blød"
+
+#: libexif/fuji/mnote-fuji-entry.c:68 libexif/fuji/mnote-fuji-entry.c:94
+msgid "Medium hard"
+msgstr "Mellem hård"
+
+#: libexif/fuji/mnote-fuji-entry.c:69 libexif/fuji/mnote-fuji-entry.c:90
+#: libexif/fuji/mnote-fuji-entry.c:98 libexif/fuji/mnote-fuji-entry.c:182
+msgid "Film simulation mode"
+msgstr "Filmsimulationstilstand"
+
+#: libexif/fuji/mnote-fuji-entry.c:79
+msgid "Incandescent"
+msgstr "Hvidglødende"
+
+#: libexif/fuji/mnote-fuji-entry.c:85
+msgid "Medium high"
+msgstr "Mellem høj"
+
+#: libexif/fuji/mnote-fuji-entry.c:87
+msgid "Medium low"
+msgstr "Mellem lav"
+
+#: libexif/fuji/mnote-fuji-entry.c:88 libexif/fuji/mnote-fuji-entry.c:97
+msgid "Original"
+msgstr "Original"
+
+#: libexif/fuji/mnote-fuji-entry.c:124 libexif/pentax/mnote-pentax-entry.c:164
+#: libexif/pentax/mnote-pentax-entry.c:299
+msgid "Program AE"
+msgstr "Program AE"
+
+#: libexif/fuji/mnote-fuji-entry.c:125
+msgid "Natural photo"
+msgstr "Naturligt foto"
+
+#: libexif/fuji/mnote-fuji-entry.c:126
+msgid "Vibration reduction"
+msgstr "Vibrationreduktion"
+
+#: libexif/fuji/mnote-fuji-entry.c:127
+msgid "Sunset"
+msgstr "Solnedgang"
+
+#: libexif/fuji/mnote-fuji-entry.c:128 libexif/pentax/mnote-pentax-entry.c:181
+msgid "Museum"
+msgstr "Museum"
+
+#: libexif/fuji/mnote-fuji-entry.c:129
+msgid "Party"
+msgstr "Fest"
+
+#: libexif/fuji/mnote-fuji-entry.c:130
+msgid "Flower"
+msgstr "Blomst"
+
+#: libexif/fuji/mnote-fuji-entry.c:131 libexif/pentax/mnote-pentax-entry.c:176
+msgid "Text"
+msgstr "Tekst"
+
+#: libexif/fuji/mnote-fuji-entry.c:132
+msgid "NP & flash"
+msgstr "NP & blitz"
+
+#: libexif/fuji/mnote-fuji-entry.c:137
+msgid "Aperture priority AE"
+msgstr "Blændetalsprioritet AE"
+
+#: libexif/fuji/mnote-fuji-entry.c:138
+msgid "Shutter priority AE"
+msgstr "Lukkerprioritet AE"
+
+#: libexif/fuji/mnote-fuji-entry.c:146
+msgid "F-Standard"
+msgstr "F-standard"
+
+#: libexif/fuji/mnote-fuji-entry.c:147
+msgid "F-Chrome"
+msgstr "F-Chrome"
+
+#: libexif/fuji/mnote-fuji-entry.c:148
+msgid "F-B&W"
+msgstr "F-S/H"
+
+#: libexif/fuji/mnote-fuji-entry.c:151
+msgid "No blur"
+msgstr "Ingen sløring"
+
+#: libexif/fuji/mnote-fuji-entry.c:152
+msgid "Blur warning"
+msgstr "Sløringsadvarsel"
+
+#: libexif/fuji/mnote-fuji-entry.c:155
+msgid "Focus good"
+msgstr "God fokus"
+
+# ikke i fokus, ufokuseret
+#: libexif/fuji/mnote-fuji-entry.c:156
+msgid "Out of focus"
+msgstr "Ude af fokus"
+
+# automatisk eksponenering
+#: libexif/fuji/mnote-fuji-entry.c:159
+msgid "AE good"
+msgstr "God AE"
+
+#: libexif/fuji/mnote-fuji-entry.c:160
+msgid "Over exposed"
+msgstr "Overbelyst"
+
+#: libexif/fuji/mnote-fuji-entry.c:164
+msgid "Wide"
+msgstr "Bred"
+
+#: libexif/fuji/mnote-fuji-entry.c:167
+msgid "F0/Standard"
+msgstr "F0/standard"
+
+#: libexif/fuji/mnote-fuji-entry.c:168
+msgid "F1/Studio portrait"
+msgstr "F1/Studioportræt"
+
+#: libexif/fuji/mnote-fuji-entry.c:169
+msgid "F1a/Professional portrait"
+msgstr "F1a/Professionelt portræt"
+
+#: libexif/fuji/mnote-fuji-entry.c:170
+msgid "F1b/Professional portrait"
+msgstr "F1b/Professionelt protræt"
+
+#: libexif/fuji/mnote-fuji-entry.c:171
+msgid "F1c/Professional portrait"
+msgstr "F1c/Professionelt portræt"
+
+#: libexif/fuji/mnote-fuji-entry.c:172
+msgid "F2/Fujichrome"
+msgstr "F2/Fujichrome"
+
+#: libexif/fuji/mnote-fuji-entry.c:173
+msgid "F3/Studio portrait Ex"
+msgstr "F3/Studioportræt Ex"
+
+#: libexif/fuji/mnote-fuji-entry.c:174
+msgid "F4/Velvia"
+msgstr "F4/Velvia"
+
+#: libexif/fuji/mnote-fuji-entry.c:177
+msgid "Auto (100-400%)"
+msgstr "Auto (100-400 %)"
+
+#: libexif/fuji/mnote-fuji-entry.c:179
+msgid "Standard (100%)"
+msgstr "Standard (100 %)"
+
+#: libexif/fuji/mnote-fuji-entry.c:180
+msgid "Wide1 (230%)"
+msgstr "Bredt1 (230 %)"
+
+#: libexif/fuji/mnote-fuji-entry.c:181
+msgid "Wide2 (400%)"
+msgstr "Bredt2 (400%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:263
+#, c-format
+msgid "%2.2f mm"
+msgstr "%2.2f mm"
+
+#: libexif/fuji/mnote-fuji-entry.c:298 libexif/pentax/mnote-pentax-entry.c:399
+#: libexif/pentax/mnote-pentax-entry.c:451
+#, c-format
+msgid "%i bytes unknown data"
+msgstr "%i byte ukendt data"
+
+#: libexif/fuji/mnote-fuji-tag.c:36
+msgid "Maker Note Version"
+msgstr "Version på fremstillernote"
+
+#: libexif/fuji/mnote-fuji-tag.c:37
+msgid "This number is unique and based on the date of manufacture."
+msgstr "Dette nummer er unikt og baseret på fremstillingsdatoen."
+
+#: libexif/fuji/mnote-fuji-tag.c:41
+msgid "Chromaticity Saturation"
+msgstr "Kromaticitetsfarvemætning"
+
+#: libexif/fuji/mnote-fuji-tag.c:44
+msgid "Flash Firing Strength Compensation"
+msgstr "Blitzens styrkekompensation"
+
+#: libexif/fuji/mnote-fuji-tag.c:46
+msgid "Focusing Mode"
+msgstr "Fokuseringstilstand"
+
+#: libexif/fuji/mnote-fuji-tag.c:47
+msgid "Focus Point"
+msgstr "Fokuspunkt"
+
+#: libexif/fuji/mnote-fuji-tag.c:48
+msgid "Slow Synchro Mode"
+msgstr "Langsom synkroniseringstilstand"
+
+#: libexif/fuji/mnote-fuji-tag.c:49 libexif/pentax/mnote-pentax-tag.c:72
+msgid "Picture Mode"
+msgstr "Billedtilstand"
+
+#: libexif/fuji/mnote-fuji-tag.c:50
+msgid "Continuous Taking"
+msgstr "Fortsat fotografering"
+
+#: libexif/fuji/mnote-fuji-tag.c:51
+msgid "Continuous Sequence Number"
+msgstr "Fortsættende sekvensnummer"
+
+#: libexif/fuji/mnote-fuji-tag.c:52
+msgid "FinePix Color"
+msgstr "FinePix-farve"
+
+#: libexif/fuji/mnote-fuji-tag.c:53
+msgid "Blur Check"
+msgstr "Sløringstjek"
+
+#: libexif/fuji/mnote-fuji-tag.c:54
+msgid "Auto Focus Check"
+msgstr "Tjek af autofokus"
+
+#: libexif/fuji/mnote-fuji-tag.c:55
+msgid "Auto Exposure Check"
+msgstr "Autobelysningstjek"
+
+#: libexif/fuji/mnote-fuji-tag.c:56
+msgid "Dynamic Range"
+msgstr "Dynamisk afstand"
+
+#: libexif/fuji/mnote-fuji-tag.c:57
+msgid "Film Simulation Mode"
+msgstr "Filmsimulationtilstand"
+
+#: libexif/fuji/mnote-fuji-tag.c:58
+msgid "Dynamic Range Wide Mode"
+msgstr "Dynamisk afstand - bredtilstand"
+
+#: libexif/fuji/mnote-fuji-tag.c:59
+msgid "Development Dynamic Range Wide Mode"
+msgstr "Udvikling - dynamisk afstand - bredtilstand"
+
+#: libexif/fuji/mnote-fuji-tag.c:60
+msgid "Minimum Focal Length"
+msgstr "Minimal brændvidde"
+
+#: libexif/fuji/mnote-fuji-tag.c:61
+msgid "Maximum Focal Length"
+msgstr "Maksimal brændvidde"
+
+#: libexif/fuji/mnote-fuji-tag.c:62
+msgid "Maximum Aperture at Minimum Focal"
+msgstr "Maksimal blændetal ved minimal brændpunkt"
+
+#: libexif/fuji/mnote-fuji-tag.c:63
+msgid "Maximum Aperture at Maximum Focal"
+msgstr "Maksimal blændetal ved maksimal brændpunkt"
+
+#: libexif/fuji/mnote-fuji-tag.c:65
+msgid "Order Number"
+msgstr "Ordrenummer"
+
+#: libexif/fuji/mnote-fuji-tag.c:66 libexif/pentax/mnote-pentax-tag.c:98
+msgid "Frame Number"
+msgstr "Rammenummer"
+
+#: libexif/olympus/mnote-olympus-entry.c:49
+#, c-format
+msgid "Invalid format '%s', expected '%s' or '%s'."
+msgstr "Ugyldig format '%s', forventede '%s' eller '%s'."
+
+#: libexif/olympus/mnote-olympus-entry.c:89
+msgid "AF non D lens"
+msgstr "Linse - AF ikke D"
+
+#: libexif/olympus/mnote-olympus-entry.c:91
+msgid "AF-D or AF-S lens"
+msgstr "Linse - AF-D eller AF-S"
+
+#: libexif/olympus/mnote-olympus-entry.c:92
+msgid "AF-D G lens"
+msgstr "Linse - AF-D G"
+
+#: libexif/olympus/mnote-olympus-entry.c:93
+msgid "AF-D VR lens"
+msgstr "Linse - AF-D VR"
+
+#: libexif/olympus/mnote-olympus-entry.c:94
+msgid "AF-D G VR lens"
+msgstr "Linse - AF-D G VR"
+
+#: libexif/olympus/mnote-olympus-entry.c:98
+msgid "Flash unit unknown"
+msgstr "Blitzenhed ukendt"
+
+#: libexif/olympus/mnote-olympus-entry.c:99
+msgid "Flash is external"
+msgstr "Blitz er ekstern"
+
+#: libexif/olympus/mnote-olympus-entry.c:100
+msgid "Flash is on camera"
+msgstr "Blitz er på kamera"
+
+#: libexif/olympus/mnote-olympus-entry.c:103
+msgid "VGA basic"
+msgstr "VGA - basis"
+
+#: libexif/olympus/mnote-olympus-entry.c:104
+msgid "VGA normal"
+msgstr "VGA - normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:105
+msgid "VGA fine"
+msgstr "VGA - fin"
+
+#: libexif/olympus/mnote-olympus-entry.c:106
+msgid "SXGA basic"
+msgstr "SXGA - basis"
+
+#: libexif/olympus/mnote-olympus-entry.c:107
+msgid "SXGA normal"
+msgstr "SXGA - normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:108
+msgid "SXGA fine"
+msgstr "SXGA - fin"
+
+#: libexif/olympus/mnote-olympus-entry.c:109
+msgid "2 Mpixel basic"
+msgstr "2 Mpixel - basis"
+
+#: libexif/olympus/mnote-olympus-entry.c:110
+msgid "2 Mpixel normal"
+msgstr "2 Mpixel - normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:111
+msgid "2 Mpixel fine"
+msgstr "2 Mpixel - fin"
+
+#: libexif/olympus/mnote-olympus-entry.c:114
+msgid "Color"
+msgstr "Farve"
+
+#: libexif/olympus/mnote-olympus-entry.c:119
+msgid "Bright+"
+msgstr "Klar+"
+
+#: libexif/olympus/mnote-olympus-entry.c:120
+msgid "Bright-"
+msgstr "Klar-"
+
+#: libexif/olympus/mnote-olympus-entry.c:121
+msgid "Contrast+"
+msgstr "Kontrast+"
+
+#: libexif/olympus/mnote-olympus-entry.c:122
+msgid "Contrast-"
+msgstr "Kontrast-"
+
+#: libexif/olympus/mnote-olympus-entry.c:125
+msgid "ISO 80"
+msgstr "ISO 80"
+
+#: libexif/olympus/mnote-olympus-entry.c:126
+msgid "ISO 160"
+msgstr "ISO 160"
+
+#: libexif/olympus/mnote-olympus-entry.c:127
+msgid "ISO 320"
+msgstr "ISO 320"
+
+#: libexif/olympus/mnote-olympus-entry.c:128
+#: libexif/olympus/mnote-olympus-entry.c:246
+msgid "ISO 100"
+msgstr "ISO 100"
+
+#: libexif/olympus/mnote-olympus-entry.c:132
+msgid "Preset"
+msgstr "Nulstil"
+
+#: libexif/olympus/mnote-olympus-entry.c:134
+msgid "Incandescence"
+msgstr "Hvidglødende"
+
+#: libexif/olympus/mnote-olympus-entry.c:135
+msgid "Fluorescence"
+msgstr "Fluorescens"
+
+#: libexif/olympus/mnote-olympus-entry.c:137
+msgid "SpeedLight"
+msgstr "HastighedLys"
+
+#: libexif/olympus/mnote-olympus-entry.c:140
+msgid "No fisheye"
+msgstr "Intet fiskeøje"
+
+#: libexif/olympus/mnote-olympus-entry.c:141
+msgid "Fisheye on"
+msgstr "Fiskeøje tændt"
+
+#: libexif/olympus/mnote-olympus-entry.c:144
+msgid "Normal, SQ"
+msgstr "Normal, SQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:145
+msgid "Normal, HQ"
+msgstr "Normal, HQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:146
+msgid "Normal, SHQ"
+msgstr "Normal, SHQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:147
+msgid "Normal, RAW"
+msgstr "Normal, RAW"
+
+#: libexif/olympus/mnote-olympus-entry.c:148
+msgid "Normal, SQ1"
+msgstr "Normal, SQ1"
+
+#: libexif/olympus/mnote-olympus-entry.c:149
+msgid "Normal, SQ2"
+msgstr "Normal, SQ2"
+
+#: libexif/olympus/mnote-olympus-entry.c:150
+msgid "Normal, super high"
+msgstr "Normal, superhøj"
+
+#: libexif/olympus/mnote-olympus-entry.c:151
+msgid "Normal, standard"
+msgstr "Normal, standard"
+
+#: libexif/olympus/mnote-olympus-entry.c:152
+msgid "Fine, SQ"
+msgstr "Fin, SQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:153
+msgid "Fine, HQ"
+msgstr "Fin, HQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:154
+msgid "Fine, SHQ"
+msgstr "Fin, SHQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:155
+msgid "Fine, RAW"
+msgstr "Fin, RAW"
+
+#: libexif/olympus/mnote-olympus-entry.c:156
+msgid "Fine, SQ1"
+msgstr "Fin, SQ1"
+
+#: libexif/olympus/mnote-olympus-entry.c:157
+msgid "Fine, SQ2"
+msgstr "Fin, SQ2"
+
+#: libexif/olympus/mnote-olympus-entry.c:158
+msgid "Fine, super high"
+msgstr "Fin, superhøj"
+
+#: libexif/olympus/mnote-olympus-entry.c:159
+msgid "Super fine, SQ"
+msgstr "Superfin, SQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:160
+msgid "Super fine, HQ"
+msgstr "Superfin, HQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:161
+msgid "Super fine, SHQ"
+msgstr "Superfin, SHQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:162
+msgid "Super fine, RAW"
+msgstr "Superfin, RAW"
+
+#: libexif/olympus/mnote-olympus-entry.c:163
+msgid "Super fine, SQ1"
+msgstr "Superfin, SQ1"
+
+#: libexif/olympus/mnote-olympus-entry.c:164
+msgid "Super fine, SQ2"
+msgstr "Superfin, SQ2"
+
+#: libexif/olympus/mnote-olympus-entry.c:165
+msgid "Super fine, super high"
+msgstr "Superfin, superhøj"
+
+#: libexif/olympus/mnote-olympus-entry.c:166
+msgid "Super fine, high"
+msgstr "Superfin, høj"
+
+#: libexif/olympus/mnote-olympus-entry.c:169
+#: libexif/olympus/mnote-olympus-entry.c:174
+#: libexif/olympus/mnote-olympus-entry.c:208
+#: libexif/olympus/mnote-olympus-entry.c:217
+#: libexif/olympus/mnote-olympus-entry.c:240
+msgid "No"
+msgstr "Nej"
+
+#: libexif/olympus/mnote-olympus-entry.c:180
+msgid "On (Preset)"
+msgstr "Tændt (Nulstil)"
+
+#: libexif/olympus/mnote-olympus-entry.c:185
+msgid "Fill"
+msgstr "Fyld"
+
+#: libexif/olympus/mnote-olympus-entry.c:192
+msgid "Internal + external"
+msgstr "Intern + ekstern"
+
+#: libexif/olympus/mnote-olympus-entry.c:221
+msgid "Interlaced"
+msgstr "Sammenflettet"
+
+#: libexif/olympus/mnote-olympus-entry.c:222
+msgid "Progressive"
+msgstr "Progressiv"
+
+#: libexif/olympus/mnote-olympus-entry.c:228
+#: libexif/pentax/mnote-pentax-entry.c:85
+#: libexif/pentax/mnote-pentax-entry.c:139
+msgid "Best"
+msgstr "Bedst"
+
+#: libexif/olympus/mnote-olympus-entry.c:229
+msgid "Adjust exposure"
+msgstr "Juster belysning"
+
+#: libexif/olympus/mnote-olympus-entry.c:232
+msgid "Spot focus"
+msgstr "Spotfokus"
+
+#: libexif/olympus/mnote-olympus-entry.c:233
+msgid "Normal focus"
+msgstr "Normal fokus"
+
+#: libexif/olympus/mnote-olympus-entry.c:236
+msgid "Record while down"
+msgstr "Optag når nede"
+
+#: libexif/olympus/mnote-olympus-entry.c:237
+msgid "Press start, press stop"
+msgstr "Tryk start, tryk stop"
+
+#: libexif/olympus/mnote-olympus-entry.c:245
+msgid "ISO 50"
+msgstr "ISO 50"
+
+#: libexif/olympus/mnote-olympus-entry.c:247
+msgid "ISO 200"
+msgstr "ISO 200"
+
+#: libexif/olympus/mnote-olympus-entry.c:248
+msgid "ISO 400"
+msgstr "ISO 400"
+
+#: libexif/olympus/mnote-olympus-entry.c:252
+#: libexif/pentax/mnote-pentax-entry.c:168
+msgid "Sport"
+msgstr "Sport"
+
+#: libexif/olympus/mnote-olympus-entry.c:253
+msgid "TV"
+msgstr "TV"
+
+#: libexif/olympus/mnote-olympus-entry.c:255
+msgid "User 1"
+msgstr "Bruger 1"
+
+#: libexif/olympus/mnote-olympus-entry.c:256
+msgid "User 2"
+msgstr "Bruger 2"
+
+#: libexif/olympus/mnote-olympus-entry.c:257
+msgid "Lamp"
+msgstr "Lampe"
+
+#: libexif/olympus/mnote-olympus-entry.c:260
+msgid "5 frames/sec"
+msgstr "5 billeder/sek"
+
+#: libexif/olympus/mnote-olympus-entry.c:261
+msgid "10 frames/sec"
+msgstr "10 billeder/sek"
+
+#: libexif/olympus/mnote-olympus-entry.c:262
+msgid "15 frames/sec"
+msgstr "15 billeder/sek"
+
+#: libexif/olympus/mnote-olympus-entry.c:263
+msgid "20 frames/sec"
+msgstr "20 billeder/sek"
+
+#: libexif/olympus/mnote-olympus-entry.c:375
+#, c-format
+msgid "Red Correction %f, blue Correction %f"
+msgstr "Rød korrektion %f, blå korrektion %f"
+
+#: libexif/olympus/mnote-olympus-entry.c:383
+#, c-format
+msgid "%2.2f meters"
+msgstr "%2.2f meter"
+
+#: libexif/olympus/mnote-olympus-entry.c:385
+msgid "No manual focus selection"
+msgstr "Ingen manuel fokusvalg"
+
+#: libexif/olympus/mnote-olympus-entry.c:411
+msgid "AF position: center"
+msgstr "AF-position: Centrum"
+
+#: libexif/olympus/mnote-olympus-entry.c:412
+msgid "AF position: top"
+msgstr "AF-position: Øverst"
+
+#: libexif/olympus/mnote-olympus-entry.c:413
+msgid "AF position: bottom"
+msgstr "AF-position: Nederst"
+
+#: libexif/olympus/mnote-olympus-entry.c:414
+msgid "AF position: left"
+msgstr "AF-position: Venstre"
+
+#: libexif/olympus/mnote-olympus-entry.c:415
+msgid "AF position: right"
+msgstr "AF-position: Højre"
+
+#: libexif/olympus/mnote-olympus-entry.c:416
+msgid "AF position: upper-left"
+msgstr "AF-position: Øverst-venstre"
+
+#: libexif/olympus/mnote-olympus-entry.c:417
+msgid "AF position: upper-right"
+msgstr "AF-position: Øverst-højre"
+
+#: libexif/olympus/mnote-olympus-entry.c:418
+msgid "AF position: lower-left"
+msgstr "AF-position: Nederst-venstre"
+
+#: libexif/olympus/mnote-olympus-entry.c:419
+msgid "AF position: lower-right"
+msgstr "AF-position: Nederst-højre"
+
+#: libexif/olympus/mnote-olympus-entry.c:420
+msgid "AF position: far left"
+msgstr "AF-position: Længst mod venstre"
+
+#: libexif/olympus/mnote-olympus-entry.c:421
+msgid "AF position: far right"
+msgstr "AF-position: Længst mod højre"
+
+#: libexif/olympus/mnote-olympus-entry.c:422
+msgid "Unknown AF position"
+msgstr "Ukendt AF-position"
+
+#: libexif/olympus/mnote-olympus-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:503
+#, c-format
+msgid "Internal error (unknown value %hi)"
+msgstr "Intern fejl (ukendt værdi %hi)"
+
+#: libexif/olympus/mnote-olympus-entry.c:441
+#: libexif/olympus/mnote-olympus-entry.c:511
+#, c-format
+msgid "Unknown value %hi"
+msgstr "Ukendt værdi %hi"
+
+#: libexif/olympus/mnote-olympus-entry.c:536
+#: libexif/olympus/mnote-olympus-entry.c:556
+#, c-format
+msgid "Unknown %hu"
+msgstr "Ukendt %hu"
+
+#: libexif/olympus/mnote-olympus-entry.c:553
+msgid "2 sec."
+msgstr "2 sek."
+
+#: libexif/olympus/mnote-olympus-entry.c:592
+msgid "Fast"
+msgstr "Hurtig"
+
+#: libexif/olympus/mnote-olympus-entry.c:696
+msgid "Automatic"
+msgstr "Automatisk"
+
+#: libexif/olympus/mnote-olympus-entry.c:726
+#, c-format
+msgid "Manual: %liK"
+msgstr "Manuelt: %liK"
+
+#: libexif/olympus/mnote-olympus-entry.c:729
+msgid "Manual: unknown"
+msgstr "Manuelt: Ukendt"
+
+# Enkelttryk
+#: libexif/olympus/mnote-olympus-entry.c:735
+msgid "One-touch"
+msgstr "Et tryk"
+
+#: libexif/olympus/mnote-olympus-entry.c:791
+#: libexif/olympus/mnote-olympus-entry.c:801
+msgid "Infinite"
+msgstr "Uendelig"
+
+#: libexif/olympus/mnote-olympus-entry.c:809
+#, c-format
+msgid "%i bytes unknown data: "
+msgstr "%i byte ukendt data: "
+
+#: libexif/olympus/mnote-olympus-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:53
+msgid "ISO Setting"
+msgstr "ISO-opsætning"
+
+#: libexif/olympus/mnote-olympus-tag.c:39
+msgid "Color Mode (?)"
+msgstr "Farvetilstand (?)"
+
+#: libexif/olympus/mnote-olympus-tag.c:42
+msgid "Image Sharpening"
+msgstr "Billedskarphed"
+
+#: libexif/olympus/mnote-olympus-tag.c:44
+msgid "Flash Setting"
+msgstr "Blitzopsætning"
+
+#: libexif/olympus/mnote-olympus-tag.c:46
+msgid "White Balance Fine Adjustment"
+msgstr "Finjustering af hvidbalance"
+
+#: libexif/olympus/mnote-olympus-tag.c:47
+msgid "White Balance RB"
+msgstr "Hvidbalance RB"
+
+#: libexif/olympus/mnote-olympus-tag.c:49
+msgid "ISO Selection"
+msgstr "ISO-opsætning"
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Preview Image IFD"
+msgstr "Forhåndsvis billede-IFD"
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Offset of the preview image directory (IFD) inside the file."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:51
+msgid "Exposurediff ?"
+msgstr "Belysningsforskel ?"
+
+#: libexif/olympus/mnote-olympus-tag.c:54
+msgid "Image Boundary"
+msgstr "Billedgrænse"
+
+#: libexif/olympus/mnote-olympus-tag.c:56
+msgid "Flash Exposure Bracket Value"
+msgstr "Sammenstillingsværdi for blitzbelysning"
+
+#: libexif/olympus/mnote-olympus-tag.c:57
+msgid "Exposure Bracket Value"
+msgstr "Sammenstillingsværdi for belysning"
+
+#: libexif/olympus/mnote-olympus-tag.c:58
+#: libexif/olympus/mnote-olympus-tag.c:96
+msgid "Image Adjustment"
+msgstr "Billedjustering"
+
+#: libexif/olympus/mnote-olympus-tag.c:59
+msgid "Tone Compensation"
+msgstr "Belysningskompensation"
+
+#: libexif/olympus/mnote-olympus-tag.c:60
+msgid "Adapter"
+msgstr "Adapter"
+
+#: libexif/olympus/mnote-olympus-tag.c:62
+msgid "Lens"
+msgstr "Linse"
+
+#: libexif/olympus/mnote-olympus-tag.c:63
+#: libexif/olympus/mnote-olympus-tag.c:135
+#: libexif/olympus/mnote-olympus-tag.c:185
+msgid "Manual Focus Distance"
+msgstr "Manuel fokusafstand"
+
+#: libexif/olympus/mnote-olympus-tag.c:65
+msgid "Flash Used"
+msgstr "Blitz blev brugt"
+
+#: libexif/olympus/mnote-olympus-tag.c:66
+msgid "AF Focus Position"
+msgstr "AF-fokusposition"
+
+#: libexif/olympus/mnote-olympus-tag.c:67
+msgid "Bracketing"
+msgstr "Sammenstilling"
+
+#: libexif/olympus/mnote-olympus-tag.c:69
+msgid "Lens F Stops"
+msgstr "Linse F standsninger"
+
+#: libexif/olympus/mnote-olympus-tag.c:70
+msgid "Contrast Curve"
+msgstr "Kontrastkurve"
+
+#: libexif/olympus/mnote-olympus-tag.c:71
+#: libexif/olympus/mnote-olympus-tag.c:95
+#: libexif/pentax/mnote-pentax-tag.c:134
+msgid "Color Mode"
+msgstr "Farvetilstand"
+
+#: libexif/olympus/mnote-olympus-tag.c:72
+msgid "Light Type"
+msgstr "Lystype"
+
+#: libexif/olympus/mnote-olympus-tag.c:74
+msgid "Hue Adjustment"
+msgstr "Farvetonejustering"
+
+#: libexif/olympus/mnote-olympus-tag.c:76
+#: libexif/olympus/mnote-olympus-tag.c:163
+#: libexif/pentax/mnote-pentax-tag.c:108
+msgid "Noise Reduction"
+msgstr "Støjreduktion"
+
+#: libexif/olympus/mnote-olympus-tag.c:79
+msgid "Sensor Pixel Size"
+msgstr "Sensorbilledpunktstørrelse"
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Image Data Size"
+msgstr "Billeddatastørrelse"
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Size of compressed image data in bytes."
+msgstr "Størrelse på komprimeret billeddata i byte."
+
+#: libexif/olympus/mnote-olympus-tag.c:84
+msgid "Total Number of Pictures Taken"
+msgstr "Samlet antal billeder taget"
+
+#: libexif/olympus/mnote-olympus-tag.c:86
+msgid "Optimize Image"
+msgstr "Optimer billede"
+
+#: libexif/olympus/mnote-olympus-tag.c:88
+msgid "Vari Program"
+msgstr "Vari-program"
+
+#: libexif/olympus/mnote-olympus-tag.c:89
+msgid "Capture Editor Data"
+msgstr "Fang redigeringsdata"
+
+#: libexif/olympus/mnote-olympus-tag.c:90
+msgid "Capture Editor Version"
+msgstr "Fang redigeringsversion"
+
+#: libexif/olympus/mnote-olympus-tag.c:97
+#: libexif/olympus/mnote-olympus-tag.c:183
+msgid "CCD Sensitivity"
+msgstr "CCD-følsomhed"
+
+#: libexif/olympus/mnote-olympus-tag.c:99
+msgid "Focus"
+msgstr "Fokus"
+
+#: libexif/olympus/mnote-olympus-tag.c:102
+msgid "Converter"
+msgstr "Konverter"
+
+#: libexif/olympus/mnote-olympus-tag.c:105
+msgid "Thumbnail Image"
+msgstr "Miniaturebilled"
+
+#: libexif/olympus/mnote-olympus-tag.c:106
+msgid "Speed/Sequence/Panorama Direction"
+msgstr "Hastighed/sekvens/panoramaretning"
+
+# tilstand udeladt.
+#: libexif/olympus/mnote-olympus-tag.c:109
+msgid "Black & White Mode"
+msgstr "Sort & hvid"
+
+#: libexif/olympus/mnote-olympus-tag.c:111
+msgid "Focal Plane Diagonal"
+msgstr "Brændpunktsplan diagonalt"
+
+#: libexif/olympus/mnote-olympus-tag.c:112
+msgid "Lens Distortion Parameters"
+msgstr "Linseforstyrrelsesparametre"
+
+#: libexif/olympus/mnote-olympus-tag.c:114
+msgid "Info"
+msgstr "Info"
+
+#: libexif/olympus/mnote-olympus-tag.c:115
+msgid "Camera ID"
+msgstr "Kamera-id"
+
+#: libexif/olympus/mnote-olympus-tag.c:116
+msgid "Precapture Frames"
+msgstr "Forhåndsfang billeder"
+
+#: libexif/olympus/mnote-olympus-tag.c:117
+msgid "White Board"
+msgstr "Tavle"
+
+#: libexif/olympus/mnote-olympus-tag.c:118
+msgid "One Touch White Balance"
+msgstr "Et tryks hvidbalance"
+
+#: libexif/olympus/mnote-olympus-tag.c:119
+msgid "White Balance Bracket"
+msgstr "Hvidbalancesammenstilling"
+
+#: libexif/olympus/mnote-olympus-tag.c:120
+#: libexif/pentax/mnote-pentax-tag.c:123
+msgid "White Balance Bias"
+msgstr "Hvidbalancehældning"
+
+#: libexif/olympus/mnote-olympus-tag.c:121
+msgid "Data Dump"
+msgstr "Datadump"
+
+#: libexif/olympus/mnote-olympus-tag.c:124
+msgid "ISO Value"
+msgstr "ISO-værdi"
+
+#: libexif/olympus/mnote-olympus-tag.c:125
+msgid "Aperture Value"
+msgstr "Blændetalsværdi"
+
+#: libexif/olympus/mnote-olympus-tag.c:126
+msgid "Brightness Value"
+msgstr "Lysstyrkeværdi"
+
+#: libexif/olympus/mnote-olympus-tag.c:128
+msgid "Flash Device"
+msgstr "Blitzenhed"
+
+#: libexif/olympus/mnote-olympus-tag.c:130
+msgid "Sensor Temperature"
+msgstr "Sensortemperatur"
+
+#: libexif/olympus/mnote-olympus-tag.c:131
+msgid "Lens Temperature"
+msgstr "Linsetemperatur"
+
+#: libexif/olympus/mnote-olympus-tag.c:132
+msgid "Light Condition"
+msgstr "Lysbetingelse"
+
+#: libexif/olympus/mnote-olympus-tag.c:136
+msgid "Zoom Step Count"
+msgstr "Zoomtrinoptælling"
+
+#: libexif/olympus/mnote-olympus-tag.c:137
+msgid "Focus Step Count"
+msgstr "Fokustrinoptælling"
+
+#: libexif/olympus/mnote-olympus-tag.c:138
+msgid "Sharpness Setting"
+msgstr "Opsætning af skarphed"
+
+#: libexif/olympus/mnote-olympus-tag.c:139
+msgid "Flash Charge Level"
+msgstr "Blitzens opladningsniveau"
+
+#: libexif/olympus/mnote-olympus-tag.c:140
+msgid "Color Matrix"
+msgstr "Farvematrice"
+
+#: libexif/olympus/mnote-olympus-tag.c:141
+msgid "Black Level"
+msgstr "Sort niveau"
+
+#: libexif/olympus/mnote-olympus-tag.c:142
+msgid "White Balance Setting"
+msgstr "Opsætning af hvidbalance"
+
+#: libexif/olympus/mnote-olympus-tag.c:143
+#: libexif/pentax/mnote-pentax-tag.c:87
+msgid "Red Balance"
+msgstr "Rødbalance"
+
+#: libexif/olympus/mnote-olympus-tag.c:144
+#: libexif/pentax/mnote-pentax-tag.c:86
+msgid "Blue Balance"
+msgstr "Blåbalance"
+
+#: libexif/olympus/mnote-olympus-tag.c:145
+msgid "Color Matrix Number"
+msgstr "Nummer på farvematrice"
+
+#: libexif/olympus/mnote-olympus-tag.c:147
+msgid "Flash Exposure Comp"
+msgstr "Blitzbelysningskomp."
+
+#: libexif/olympus/mnote-olympus-tag.c:148
+msgid "Internal Flash Table"
+msgstr "Intern blitztabel"
+
+#: libexif/olympus/mnote-olympus-tag.c:149
+msgid "External Flash G Value"
+msgstr "Ekstern G-værdi for blitz"
+
+#: libexif/olympus/mnote-olympus-tag.c:150
+msgid "External Flash Bounce"
+msgstr "Ekstern blitz tilbagesending"
+
+#: libexif/olympus/mnote-olympus-tag.c:151
+msgid "External Flash Zoom"
+msgstr "Ekstern zoom for blitz"
+
+#: libexif/olympus/mnote-olympus-tag.c:152
+msgid "External Flash Mode"
+msgstr "Ekstern blitztilstand"
+
+#: libexif/olympus/mnote-olympus-tag.c:153
+msgid "Contrast Setting"
+msgstr "Kontrastopsætning"
+
+#: libexif/olympus/mnote-olympus-tag.c:154
+msgid "Sharpness Factor"
+msgstr "Skarphedsfaktor"
+
+#: libexif/olympus/mnote-olympus-tag.c:155
+msgid "Color Control"
+msgstr "Farvekontrol"
+
+#: libexif/olympus/mnote-olympus-tag.c:156
+msgid "Olympus Image Width"
+msgstr "Billedbredde for Olympus"
+
+#: libexif/olympus/mnote-olympus-tag.c:157
+msgid "Olympus Image Height"
+msgstr "Billedhøjde for Olympus"
+
+#: libexif/olympus/mnote-olympus-tag.c:158
+msgid "Scene Detect"
+msgstr "Scenedetektering"
+
+#: libexif/olympus/mnote-olympus-tag.c:159
+msgid "Compression Ratio"
+msgstr "Pakkeforhold"
+
+#: libexif/olympus/mnote-olympus-tag.c:160
+msgid "Preview Image Valid"
+msgstr "Forhåndsvis billedgyldighed"
+
+#: libexif/olympus/mnote-olympus-tag.c:161
+msgid "AF Result"
+msgstr "AF-resultat"
+
+#: libexif/olympus/mnote-olympus-tag.c:162
+msgid "CCD Scan Mode"
+msgstr "CCD-skanningstilstand"
+
+#: libexif/olympus/mnote-olympus-tag.c:164
+msgid "Infinity Lens Step"
+msgstr "Uendelig linsetrin"
+
+#: libexif/olympus/mnote-olympus-tag.c:165
+msgid "Near Lens Step"
+msgstr "Tæt på linsetrin"
+
+#: libexif/olympus/mnote-olympus-tag.c:166
+msgid "Light Value Center"
+msgstr "Midtpunkt for lysværdi"
+
+#: libexif/olympus/mnote-olympus-tag.c:167
+msgid "Light Value Periphery"
+msgstr "Lysværdiperiferi"
+
+#: libexif/olympus/mnote-olympus-tag.c:170
+msgid "Sequential Shot"
+msgstr "Sekvensskud"
+
+#: libexif/olympus/mnote-olympus-tag.c:171
+msgid "Wide Range"
+msgstr "Lang afstand"
+
+#: libexif/olympus/mnote-olympus-tag.c:172
+msgid "Color Adjustment Mode"
+msgstr "Tilstand for farvejustering"
+
+#: libexif/olympus/mnote-olympus-tag.c:174
+msgid "Quick Shot"
+msgstr "Hurtigt billede"
+
+#: libexif/olympus/mnote-olympus-tag.c:176
+msgid "Voice Memo"
+msgstr "Stemmememo"
+
+#: libexif/olympus/mnote-olympus-tag.c:177
+msgid "Record Shutter Release"
+msgstr "Optag lukkerudløsning"
+
+#: libexif/olympus/mnote-olympus-tag.c:178
+msgid "Flicker Reduce"
+msgstr "Flimmer reduktion"
+
+#: libexif/olympus/mnote-olympus-tag.c:179
+msgid "Optical Zoom"
+msgstr "Optisk zoom"
+
+#: libexif/olympus/mnote-olympus-tag.c:181
+msgid "Light Source Special"
+msgstr "Lyskilde speciel"
+
+#: libexif/olympus/mnote-olympus-tag.c:182
+msgid "Resaved"
+msgstr "Gemt igen"
+
+#: libexif/olympus/mnote-olympus-tag.c:184
+msgid "Scene Select"
+msgstr "Scenevalg"
+
+#: libexif/olympus/mnote-olympus-tag.c:186
+msgid "Sequence Shot Interval"
+msgstr "Sekvensskudinterval"
+
+#: libexif/olympus/mnote-olympus-tag.c:189
+msgid "Epson Image Width"
+msgstr "Epsonbilledbredde"
+
+#: libexif/olympus/mnote-olympus-tag.c:190
+msgid "Epson Image Height"
+msgstr "Epsonbilledhøjde"
+
+#: libexif/olympus/mnote-olympus-tag.c:191
+msgid "Epson Software Version"
+msgstr "Epsonprogramversion"
+
+#: libexif/pentax/mnote-pentax-entry.c:80
+#: libexif/pentax/mnote-pentax-entry.c:134
+msgid "Multi-exposure"
+msgstr "Flerbelysning"
+
+#: libexif/pentax/mnote-pentax-entry.c:83
+#: libexif/pentax/mnote-pentax-entry.c:137
+msgid "Good"
+msgstr "God"
+
+#: libexif/pentax/mnote-pentax-entry.c:84
+#: libexif/pentax/mnote-pentax-entry.c:138
+msgid "Better"
+msgstr "Bedre"
+
+#: libexif/pentax/mnote-pentax-entry.c:92
+msgid "Flash on"
+msgstr "Flash på"
+
+#: libexif/pentax/mnote-pentax-entry.c:140
+msgid "TIFF"
+msgstr "TIFF"
+
+#: libexif/pentax/mnote-pentax-entry.c:150
+msgid "2560x1920 or 2304x1728"
+msgstr "2560x1920 eller 2304x1728"
+
+#: libexif/pentax/mnote-pentax-entry.c:156
+msgid "2304x1728 or 2592x1944"
+msgstr "2304x1728 eller 2592x1944"
+
+#: libexif/pentax/mnote-pentax-entry.c:158
+msgid "2816x2212 or 2816x2112"
+msgstr "2816x2212 eller 2816x2112"
+
+#: libexif/pentax/mnote-pentax-entry.c:171
+msgid "Surf & snow"
+msgstr "Surf & sne"
+
+#: libexif/pentax/mnote-pentax-entry.c:172
+msgid "Sunset or candlelight"
+msgstr "Solnedgang eller levende lys"
+
+#: libexif/pentax/mnote-pentax-entry.c:173
+msgid "Autumn"
+msgstr "Efterår"
+
+#: libexif/pentax/mnote-pentax-entry.c:178
+msgid "Self portrait"
+msgstr "Selvportræt"
+
+#: libexif/pentax/mnote-pentax-entry.c:179
+msgid "Illustrations"
+msgstr "Illustrationer"
+
+#: libexif/pentax/mnote-pentax-entry.c:180
+msgid "Digital filter"
+msgstr "Digitalt filter"
+
+#: libexif/pentax/mnote-pentax-entry.c:182
+msgid "Food"
+msgstr "Mad"
+
+#: libexif/pentax/mnote-pentax-entry.c:183
+msgid "Green mode"
+msgstr "Grøn tilstand"
+
+#: libexif/pentax/mnote-pentax-entry.c:184
+msgid "Light pet"
+msgstr "Lyst kæledyr"
+
+#: libexif/pentax/mnote-pentax-entry.c:185
+msgid "Dark pet"
+msgstr "Mørkt kæledyr"
+
+#: libexif/pentax/mnote-pentax-entry.c:186
+msgid "Medium pet"
+msgstr "Mellemfarvet kæledyr"
+
+#: libexif/pentax/mnote-pentax-entry.c:188
+#: libexif/pentax/mnote-pentax-entry.c:296
+msgid "Candlelight"
+msgstr "Levende lys"
+
+#: libexif/pentax/mnote-pentax-entry.c:189
+msgid "Natural skin tone"
+msgstr "Naturlig hudfarve"
+
+# er vist et navn
+#: libexif/pentax/mnote-pentax-entry.c:190
+msgid "Synchro sound record"
+msgstr "Synchro sound record"
+
+# Jeg har aldrig helt forstået hvordan ordet composite bruges på
+# engelsk.  Måske Rammekomposit
+#: libexif/pentax/mnote-pentax-entry.c:191
+msgid "Frame composite"
+msgstr "Rammesammensat"
+
+#: libexif/pentax/mnote-pentax-entry.c:194
+msgid "Auto, did not fire"
+msgstr "Auto, blev ikke brugt"
+
+#: libexif/pentax/mnote-pentax-entry.c:196
+msgid "Auto, did not fire, red-eye reduction"
+msgstr "Auto, blev ikke brugt, reduktion af røde øjne"
+
+#: libexif/pentax/mnote-pentax-entry.c:197
+msgid "Auto, fired"
+msgstr "Auto, brugt"
+
+#: libexif/pentax/mnote-pentax-entry.c:199
+msgid "Auto, fired, red-eye reduction"
+msgstr "Auto, brugt, reduktion af røde øjne"
+
+#: libexif/pentax/mnote-pentax-entry.c:201
+msgid "On, wireless"
+msgstr "Tændt, trådløs"
+
+# blidt eller blødt
+#: libexif/pentax/mnote-pentax-entry.c:202
+msgid "On, soft"
+msgstr "Tændt, blødt"
+
+#: libexif/pentax/mnote-pentax-entry.c:203
+msgid "On, slow-sync"
+msgstr "Tændt, langsom synkronisering"
+
+#: libexif/pentax/mnote-pentax-entry.c:204
+msgid "On, slow-sync, red-eye reduction"
+msgstr "Tændt, langsom synkronisering, rødøjereduktion"
+
+#: libexif/pentax/mnote-pentax-entry.c:205
+msgid "On, trailing-curtain sync"
+msgstr "Tændt, efterfølgende gardinsynkronisering"
+
+#: libexif/pentax/mnote-pentax-entry.c:213
+msgid "AF-S"
+msgstr "AF-S"
+
+#: libexif/pentax/mnote-pentax-entry.c:214
+msgid "AF-C"
+msgstr "AF-C"
+
+#: libexif/pentax/mnote-pentax-entry.c:217
+msgid "Upper-left"
+msgstr "Øverst-venstre"
+
+#: libexif/pentax/mnote-pentax-entry.c:218
+msgid "Top"
+msgstr "Øverst"
+
+#: libexif/pentax/mnote-pentax-entry.c:219
+msgid "Upper-right"
+msgstr "Øverst-højre"
+
+#: libexif/pentax/mnote-pentax-entry.c:221
+msgid "Mid-left"
+msgstr "Midt-venstre"
+
+#: libexif/pentax/mnote-pentax-entry.c:223
+msgid "Mid-right"
+msgstr "Midt-højre"
+
+#: libexif/pentax/mnote-pentax-entry.c:225
+msgid "Lower-left"
+msgstr "Nederst-venstre"
+
+#: libexif/pentax/mnote-pentax-entry.c:226
+msgid "Bottom"
+msgstr "Nederst"
+
+#: libexif/pentax/mnote-pentax-entry.c:227
+msgid "Lower-right"
+msgstr "Nederst-højre"
+
+#: libexif/pentax/mnote-pentax-entry.c:228
+msgid "Fixed center"
+msgstr "Fast centrum"
+
+#: libexif/pentax/mnote-pentax-entry.c:232
+msgid "Multiple"
+msgstr "Flere"
+
+#: libexif/pentax/mnote-pentax-entry.c:234
+msgid "Top-center"
+msgstr "Øverst-centrum"
+
+#: libexif/pentax/mnote-pentax-entry.c:240
+msgid "Bottom-center"
+msgstr "Nederst-centrum"
+
+#: libexif/pentax/mnote-pentax-entry.c:257
+msgid "User selected"
+msgstr "Brugervalgt"
+
+#: libexif/pentax/mnote-pentax-entry.c:282
+msgid "3008x2008 or 3040x2024"
+msgstr "3008x2008 eller 3040x2024"
+
+#: libexif/pentax/mnote-pentax-entry.c:293
+msgid "Digital filter?"
+msgstr "Digitalt filter?"
+
+#: libexif/pentax/mnote-pentax-entry.c:374
+#: libexif/pentax/mnote-pentax-entry.c:383
+#, c-format
+msgid "Internal error (unknown value %i %i)"
+msgstr "Intern fejl (ukendt værdi %i %i)"
+
+#: libexif/pentax/mnote-pentax-tag.c:35 libexif/pentax/mnote-pentax-tag.c:63
+msgid "Capture Mode"
+msgstr "Optagelsestilstand"
+
+#: libexif/pentax/mnote-pentax-tag.c:36 libexif/pentax/mnote-pentax-tag.c:70
+#: libexif/pentax/mnote-pentax-tag.c:129
+msgid "Quality Level"
+msgstr "Kvalitetsniveau"
+
+#: libexif/pentax/mnote-pentax-tag.c:54
+msgid "ISO Speed"
+msgstr "ISO-hastighed"
+
+#: libexif/pentax/mnote-pentax-tag.c:56
+msgid "Colors"
+msgstr "Farver"
+
+#: libexif/pentax/mnote-pentax-tag.c:59
+msgid "PrintIM Settings"
+msgstr "Opsætning af PrintIM"
+
+#: libexif/pentax/mnote-pentax-tag.c:60 libexif/pentax/mnote-pentax-tag.c:131
+msgid "Time Zone"
+msgstr "Tidszone"
+
+#: libexif/pentax/mnote-pentax-tag.c:61
+msgid "Daylight Savings"
+msgstr "Dagslysforhold"
+
+#: libexif/pentax/mnote-pentax-tag.c:64
+msgid "Preview Size"
+msgstr "Forhåndsvisningsstørrelse"
+
+#: libexif/pentax/mnote-pentax-tag.c:65
+msgid "Preview Length"
+msgstr "Forhåndsvisningslængde"
+
+#: libexif/pentax/mnote-pentax-tag.c:66 libexif/pentax/mnote-pentax-tag.c:122
+msgid "Preview Start"
+msgstr "Forhåndsvisningsstart"
+
+#: libexif/pentax/mnote-pentax-tag.c:67
+msgid "Model Identification"
+msgstr "Modelidentifikation"
+
+#: libexif/pentax/mnote-pentax-tag.c:68
+msgid "Date"
+msgstr "Dato"
+
+#: libexif/pentax/mnote-pentax-tag.c:69
+msgid "Time"
+msgstr "Tidspunkt"
+
+#: libexif/pentax/mnote-pentax-tag.c:75
+msgid "AF Point Selected"
+msgstr "AF-punkt valgt"
+
+#: libexif/pentax/mnote-pentax-tag.c:76
+msgid "Auto AF Point"
+msgstr "Auto AF-punkt"
+
+#: libexif/pentax/mnote-pentax-tag.c:77
+msgid "Focus Position"
+msgstr "Fokusposition"
+
+#: libexif/pentax/mnote-pentax-tag.c:80
+msgid "ISO Number"
+msgstr "ISO-nummer"
+
+#: libexif/pentax/mnote-pentax-tag.c:83
+msgid "Auto Bracketing"
+msgstr "Automatisk sammenstilling"
+
+#: libexif/pentax/mnote-pentax-tag.c:85
+msgid "White Balance Mode"
+msgstr "Hvidbalancetilstand"
+
+# Mystisk, man skulle tro at 'world time' var uafhængig af placeringer...
+#: libexif/pentax/mnote-pentax-tag.c:93
+msgid "World Time Location"
+msgstr "Placering af verdenstid"
+
+#: libexif/pentax/mnote-pentax-tag.c:94
+msgid "Hometown City"
+msgstr "Hjemby"
+
+#: libexif/pentax/mnote-pentax-tag.c:95
+msgid "Destination City"
+msgstr "Destinationsby"
+
+# Er der en forkortelse for sommertid på dansk?
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Hometown DST"
+msgstr "Sommertid hjemme"
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Home Daylight Savings Time"
+msgstr "Sommertid hjemme"
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination DST"
+msgstr "Sommertid destination"
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination Daylight Savings Time"
+msgstr "Sommertid på destination"
+
+#: libexif/pentax/mnote-pentax-tag.c:99
+msgid "Image Processing"
+msgstr "Billedbehandling"
+
+#: libexif/pentax/mnote-pentax-tag.c:100
+msgid "Picture Mode (2)"
+msgstr "Billedtilstand (2)"
+
+#: libexif/pentax/mnote-pentax-tag.c:103
+msgid "Image Area Offset"
+msgstr "Billedområdeafsætning"
+
+#: libexif/pentax/mnote-pentax-tag.c:104
+msgid "Raw Image Size"
+msgstr "Raw-billedstørrelse"
+
+#: libexif/pentax/mnote-pentax-tag.c:105
+msgid "Autofocus Points Used"
+msgstr "Autofokuspunkter brugt"
+
+#: libexif/pentax/mnote-pentax-tag.c:107
+msgid "Camera Temperature"
+msgstr "Kameratemperatur"
+
+#: libexif/pentax/mnote-pentax-tag.c:110
+msgid "Image Tone"
+msgstr "Billedtone"
+
+#: libexif/pentax/mnote-pentax-tag.c:111
+msgid "Shake Reduction Info"
+msgstr "Rystelsesreduktionsinfo"
+
+#: libexif/pentax/mnote-pentax-tag.c:112
+msgid "Black Point"
+msgstr "Sort plet"
+
+#: libexif/pentax/mnote-pentax-tag.c:114
+msgid "AE Info"
+msgstr "AE-info"
+
+#: libexif/pentax/mnote-pentax-tag.c:115
+msgid "Lens Info"
+msgstr "Linseinfo"
+
+#: libexif/pentax/mnote-pentax-tag.c:116
+msgid "Flash Info"
+msgstr "Blitzinfo"
+
+#: libexif/pentax/mnote-pentax-tag.c:117
+msgid "Camera Info"
+msgstr "Kamerainfo"
+
+#: libexif/pentax/mnote-pentax-tag.c:118
+msgid "Battery Info"
+msgstr "Batteriinfo"
+
+#: libexif/pentax/mnote-pentax-tag.c:119
+msgid "Hometown City Code"
+msgstr "Bynummer for hjemby"
+
+#: libexif/pentax/mnote-pentax-tag.c:120
+msgid "Destination City Code"
+msgstr "Destinationsbykode"
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Object Distance"
+msgstr "Objektafstand"
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Distance of photographed object in millimeters."
+msgstr "Afstand til fotograferet objekt i millimeter."
+
+#: libexif/pentax/mnote-pentax-tag.c:126
+msgid "Flash Distance"
+msgstr "Blitzafstand"
+
+#: libexif/pentax/mnote-pentax-tag.c:132
+msgid "Bestshot Mode"
+msgstr "Optimal tilstand"
+
+#: libexif/pentax/mnote-pentax-tag.c:133
+msgid "CCS ISO Sensitivity"
+msgstr "CCS ISO-følsomhed"
+
+#: libexif/pentax/mnote-pentax-tag.c:135
+msgid "Enhancement"
+msgstr "Forbedring"
+
+#: libexif/pentax/mnote-pentax-tag.c:136
+msgid "Finer"
+msgstr "Finere"
+
+# This is a very special string. It is used for test purposes, and
+# we only test the de locale as a proof-of-concept example. There is
+# no need for anybody to translate it.
+#: test/nls/test-nls.c:20 test/nls/test-nls.c:23 test/nls/test-nls.c:24
+msgid "[DO_NOT_TRANSLATE_THIS_MARKER]"
+msgstr "[DO_NOT_TRANSLATE_THIS_MARKER_da]"
+
+#~ msgid "%.02lf EV"
+#~ msgstr "%.02lf EV"
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/de.gmo b/framework/modules/c_LibExifModule/libexif-0.6.20/po/de.gmo
new file mode 100644
index 0000000000000000000000000000000000000000..db56ace87c1d7d8a5f29faf5b8f942581a240505
Binary files /dev/null and b/framework/modules/c_LibExifModule/libexif-0.6.20/po/de.gmo differ
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/de.po b/framework/modules/c_LibExifModule/libexif-0.6.20/po/de.po
new file mode 100644
index 0000000000000000000000000000000000000000..5831e8ddf357ce89e52cd02beced24ccecaf33d8
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/de.po
@@ -0,0 +1,5814 @@
+# translation of de.po to German
+# German Translation
+# Copyright:
+# This file is distributed under the same license as the libexif package.
+#
+#   Free Software Foundation, Inc., 2002.
+#   Lutz Mueller <lutz@users.sourceforge.net>, 2002.
+#   Marcus Meissner <marcus@jet.franken.de>, 2004, 2005, 2006, 2007, 2008, 2009, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: libexif 0.6.20-pre1\n"
+"Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-12-15 22:14-0800\n"
+"PO-Revision-Date: 2010-02-06 11:30+0100\n"
+"Last-Translator: Marcus Meissner <marcus@jet.franken.de>\n"
+"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
+
+#: libexif/canon/mnote-canon-entry.c:40 libexif/fuji/mnote-fuji-entry.c:35
+#: libexif/olympus/mnote-olympus-entry.c:37
+#: libexif/pentax/mnote-pentax-entry.c:39
+#, c-format
+msgid "Invalid format '%s', expected '%s'."
+msgstr "Ungültiges Format '%s', '%s' wurde erwartet."
+
+#: libexif/canon/mnote-canon-entry.c:52 libexif/fuji/mnote-fuji-entry.c:47
+#: libexif/olympus/mnote-olympus-entry.c:62
+#: libexif/pentax/mnote-pentax-entry.c:51
+#, c-format
+msgid "Invalid number of components (%i, expected %i)."
+msgstr "Ungültige Anzahl von Komponenten (%i, %i wurden erwartet)."
+
+#: libexif/canon/mnote-canon-entry.c:61
+#: libexif/olympus/mnote-olympus-entry.c:72
+#: libexif/pentax/mnote-pentax-entry.c:61
+#, c-format
+msgid "Invalid number of components (%i, expected %i or %i)."
+msgstr "Ungültige Anzahl von Komponenten (%i, %i oder %i wurden erwartet)."
+
+#: libexif/canon/mnote-canon-entry.c:76 libexif/canon/mnote-canon-entry.c:130
+#: libexif/canon/mnote-canon-entry.c:182 libexif/exif-entry.c:796
+#: libexif/olympus/mnote-olympus-entry.c:196
+#: libexif/olympus/mnote-olympus-tag.c:108
+#: libexif/pentax/mnote-pentax-entry.c:174
+#: libexif/pentax/mnote-pentax-entry.c:209
+#: libexif/pentax/mnote-pentax-entry.c:297
+msgid "Macro"
+msgstr "Macro"
+
+#: libexif/canon/mnote-canon-entry.c:77 libexif/canon/mnote-canon-entry.c:79
+#: libexif/canon/mnote-canon-entry.c:157 libexif/canon/mnote-canon-entry.c:160
+#: libexif/canon/mnote-canon-entry.c:163 libexif/exif-entry.c:674
+#: libexif/exif-entry.c:677 libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/exif-entry.c:745 libexif/fuji/mnote-fuji-entry.c:64
+#: libexif/olympus/mnote-olympus-entry.c:118
+#: libexif/olympus/mnote-olympus-entry.c:195
+#: libexif/olympus/mnote-olympus-entry.c:203
+#: libexif/olympus/mnote-olympus-entry.c:213
+#: libexif/olympus/mnote-olympus-entry.c:586
+#: libexif/pentax/mnote-pentax-entry.c:105
+#: libexif/pentax/mnote-pentax-entry.c:110
+#: libexif/pentax/mnote-pentax-entry.c:115
+#: libexif/pentax/mnote-pentax-entry.c:208
+msgid "Normal"
+msgstr "Normal"
+
+#: libexif/canon/mnote-canon-entry.c:78
+msgid "Economy"
+msgstr "Sparmodus"
+
+#: libexif/canon/mnote-canon-entry.c:80
+msgid "Fine"
+msgstr "Fein"
+
+#: libexif/canon/mnote-canon-entry.c:81 libexif/fuji/mnote-fuji-entry.c:178
+#: libexif/pentax/mnote-pentax-entry.c:141
+msgid "RAW"
+msgstr "RAW"
+
+#: libexif/canon/mnote-canon-entry.c:82
+msgid "Superfine"
+msgstr "Superfein"
+
+#: libexif/canon/mnote-canon-entry.c:83 libexif/canon/mnote-canon-entry.c:301
+#: libexif/canon/mnote-canon-entry.c:304 libexif/canon/mnote-canon-entry.c:312
+#: libexif/canon/mnote-canon-entry.c:345 libexif/canon/mnote-canon-entry.c:357
+#: libexif/canon/mnote-canon-entry.c:370 libexif/canon/mnote-canon-entry.c:372
+#: libexif/canon/mnote-canon-entry.c:574 libexif/canon/mnote-canon-entry.c:671
+#: libexif/fuji/mnote-fuji-entry.c:70 libexif/fuji/mnote-fuji-entry.c:103
+#: libexif/fuji/mnote-fuji-entry.c:107 libexif/fuji/mnote-fuji-entry.c:115
+#: libexif/fuji/mnote-fuji-entry.c:142
+#: libexif/olympus/mnote-olympus-entry.c:178
+#: libexif/olympus/mnote-olympus-entry.c:186
+#: libexif/olympus/mnote-olympus-entry.c:251
+#: libexif/olympus/mnote-olympus-entry.c:530
+#: libexif/olympus/mnote-olympus-entry.c:547
+#: libexif/pentax/mnote-pentax-entry.c:195
+#: libexif/pentax/mnote-pentax-entry.c:260
+msgid "Off"
+msgstr "Aus"
+
+#: libexif/canon/mnote-canon-entry.c:84 libexif/canon/mnote-canon-entry.c:167
+#: libexif/canon/mnote-canon-entry.c:180 libexif/canon/mnote-canon-entry.c:328
+#: libexif/canon/mnote-canon-entry.c:400 libexif/fuji/mnote-fuji-entry.c:73
+#: libexif/fuji/mnote-fuji-entry.c:101 libexif/fuji/mnote-fuji-entry.c:111
+#: libexif/fuji/mnote-fuji-entry.c:119
+#: libexif/olympus/mnote-olympus-entry.c:131
+#: libexif/olympus/mnote-olympus-entry.c:183
+#: libexif/olympus/mnote-olympus-entry.c:199
+#: libexif/olympus/mnote-olympus-entry.c:244
+#: libexif/pentax/mnote-pentax-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:88
+#: libexif/pentax/mnote-pentax-entry.c:91
+#: libexif/pentax/mnote-pentax-entry.c:97
+#: libexif/pentax/mnote-pentax-entry.c:131
+#: libexif/pentax/mnote-pentax-entry.c:229
+#: libexif/pentax/mnote-pentax-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:290
+msgid "Auto"
+msgstr "Automatisch"
+
+#: libexif/canon/mnote-canon-entry.c:85 libexif/canon/mnote-canon-entry.c:302
+#: libexif/canon/mnote-canon-entry.c:347 libexif/canon/mnote-canon-entry.c:361
+#: libexif/canon/mnote-canon-entry.c:371 libexif/fuji/mnote-fuji-entry.c:102
+#: libexif/fuji/mnote-fuji-entry.c:108 libexif/fuji/mnote-fuji-entry.c:116
+#: libexif/fuji/mnote-fuji-entry.c:143
+#: libexif/olympus/mnote-olympus-entry.c:179
+#: libexif/olympus/mnote-olympus-entry.c:533
+#: libexif/olympus/mnote-olympus-entry.c:550
+#: libexif/pentax/mnote-pentax-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:261
+msgid "On"
+msgstr "An"
+
+#: libexif/canon/mnote-canon-entry.c:86 libexif/fuji/mnote-fuji-entry.c:104
+#: libexif/olympus/mnote-olympus-entry.c:184
+#: libexif/pentax/mnote-pentax-entry.c:94
+msgid "Red-eye reduction"
+msgstr "Rote-Augen Reduktion"
+
+#: libexif/canon/mnote-canon-entry.c:87
+msgid "Slow synchro"
+msgstr "Langsame Synchronisation"
+
+#: libexif/canon/mnote-canon-entry.c:88
+msgid "Auto, red-eye reduction"
+msgstr "Automatisch + rote Augen Reduktion"
+
+#: libexif/canon/mnote-canon-entry.c:89
+#: libexif/pentax/mnote-pentax-entry.c:200
+msgid "On, red-eye reduction"
+msgstr "An, Rote-Augen Reduktion"
+
+#: libexif/canon/mnote-canon-entry.c:90
+msgid "External flash"
+msgstr "Externer Blitz"
+
+#: libexif/canon/mnote-canon-entry.c:91 libexif/canon/mnote-canon-entry.c:101
+#: libexif/canon/mnote-canon-entry.c:294
+msgid "Single"
+msgstr "Einzel"
+
+#: libexif/canon/mnote-canon-entry.c:92 libexif/canon/mnote-canon-entry.c:102
+#: libexif/canon/mnote-canon-entry.c:295
+msgid "Continuous"
+msgstr "Kontinuierlich"
+
+#: libexif/canon/mnote-canon-entry.c:93
+msgid "Movie"
+msgstr "Film"
+
+#
+#: libexif/canon/mnote-canon-entry.c:94
+msgid "Continuous, speed priority"
+msgstr "Kontinuierlich, geschwindigkeitsoptimiert"
+
+#: libexif/canon/mnote-canon-entry.c:95
+msgid "Continuous, low"
+msgstr "Kontinuierlich, niedrig"
+
+#: libexif/canon/mnote-canon-entry.c:96
+msgid "Continuous, high"
+msgstr "Kontinuierlich, hoch"
+
+# focuses just one time (when half pressing shutter)
+#: libexif/canon/mnote-canon-entry.c:97
+msgid "One-shot AF"
+msgstr "Einzel Autofokus"
+
+# continuous auto refocus while half-pressing shutter.
+#: libexif/canon/mnote-canon-entry.c:98
+msgid "AI servo AF"
+msgstr "Al Servo AF"
+
+#: libexif/canon/mnote-canon-entry.c:99
+msgid "AI focus AF"
+msgstr "AI Focus AF"
+
+#: libexif/canon/mnote-canon-entry.c:100 libexif/canon/mnote-canon-entry.c:103
+msgid "Manual focus"
+msgstr "Manueller Fokus"
+
+#: libexif/canon/mnote-canon-entry.c:104 libexif/canon/mnote-canon-entry.c:132
+#: libexif/canon/mnote-canon-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:212
+msgid "Pan focus"
+msgstr "Pan Fokus"
+
+#: libexif/canon/mnote-canon-entry.c:105
+msgid "JPEG"
+msgstr "JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:106
+msgid "CRW+THM"
+msgstr "CRW+THM"
+
+#: libexif/canon/mnote-canon-entry.c:107
+msgid "AVI+THM"
+msgstr "AVI+THM"
+
+#: libexif/canon/mnote-canon-entry.c:108
+msgid "TIF"
+msgstr "TIF"
+
+#: libexif/canon/mnote-canon-entry.c:109
+msgid "TIF+JPEG"
+msgstr "TIF+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:110
+msgid "CR2"
+msgstr "CR2"
+
+#: libexif/canon/mnote-canon-entry.c:111
+msgid "CR2+JPEG"
+msgstr "CR2+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:112
+msgid "Large"
+msgstr "Groß"
+
+#: libexif/canon/mnote-canon-entry.c:113
+msgid "Medium"
+msgstr "Mittel"
+
+#: libexif/canon/mnote-canon-entry.c:114
+msgid "Small"
+msgstr "Klein"
+
+#: libexif/canon/mnote-canon-entry.c:115
+msgid "Medium 1"
+msgstr "Mittel 1"
+
+#: libexif/canon/mnote-canon-entry.c:116
+msgid "Medium 2"
+msgstr "Mittel 2"
+
+#: libexif/canon/mnote-canon-entry.c:117
+msgid "Medium 3"
+msgstr "Mittel 3"
+
+#: libexif/canon/mnote-canon-entry.c:118
+msgid "Postcard"
+msgstr "Postkarte"
+
+#: libexif/canon/mnote-canon-entry.c:119
+msgid "Widescreen"
+msgstr "Widescreen"
+
+#: libexif/canon/mnote-canon-entry.c:120
+msgid "Full auto"
+msgstr "Vollautomatisch"
+
+#: libexif/canon/mnote-canon-entry.c:121 libexif/canon/mnote-canon-entry.c:179
+#: libexif/canon/mnote-canon-entry.c:201 libexif/canon/mnote-canon-entry.c:285
+#: libexif/canon/mnote-canon-entry.c:392 libexif/exif-entry.c:744
+#: libexif/fuji/mnote-fuji-entry.c:112
+#: libexif/olympus/mnote-olympus-entry.c:90
+#: libexif/olympus/mnote-olympus-entry.c:200
+#: libexif/pentax/mnote-pentax-entry.c:79
+#: libexif/pentax/mnote-pentax-entry.c:102
+#: libexif/pentax/mnote-pentax-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:165
+#: libexif/pentax/mnote-pentax-entry.c:211
+#: libexif/pentax/mnote-pentax-entry.c:250
+msgid "Manual"
+msgstr "Manuell"
+
+#: libexif/canon/mnote-canon-entry.c:122 libexif/canon/mnote-canon-entry.c:430
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:755
+#: libexif/fuji/mnote-fuji-entry.c:121 libexif/pentax/mnote-pentax-entry.c:167
+#: libexif/pentax/mnote-pentax-entry.c:301
+msgid "Landscape"
+msgstr "Landschaft"
+
+#: libexif/canon/mnote-canon-entry.c:123
+msgid "Fast shutter"
+msgstr "Kurze Belichtungszeit"
+
+#: libexif/canon/mnote-canon-entry.c:124
+msgid "Slow shutter"
+msgstr "Lange Belichtungszeit"
+
+#: libexif/canon/mnote-canon-entry.c:125 libexif/fuji/mnote-fuji-entry.c:123
+#: libexif/olympus/mnote-olympus-entry.c:254
+msgid "Night"
+msgstr "Nacht"
+
+#: libexif/canon/mnote-canon-entry.c:126
+msgid "Grayscale"
+msgstr "Graustufen"
+
+#: libexif/canon/mnote-canon-entry.c:127 libexif/canon/mnote-canon-entry.c:308
+#: libexif/pentax/mnote-pentax-entry.c:128
+msgid "Sepia"
+msgstr "Sepia"
+
+#: libexif/canon/mnote-canon-entry.c:128 libexif/canon/mnote-canon-entry.c:429
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:753
+#: libexif/fuji/mnote-fuji-entry.c:120 libexif/pentax/mnote-pentax-entry.c:166
+#: libexif/pentax/mnote-pentax-entry.c:291
+#: libexif/pentax/mnote-pentax-entry.c:294
+#: libexif/pentax/mnote-pentax-entry.c:300
+msgid "Portrait"
+msgstr "Portrait"
+
+#: libexif/canon/mnote-canon-entry.c:129 libexif/fuji/mnote-fuji-entry.c:122
+msgid "Sports"
+msgstr "Sport"
+
+#: libexif/canon/mnote-canon-entry.c:131 libexif/canon/mnote-canon-entry.c:309
+#: libexif/canon/mnote-canon-entry.c:335 libexif/canon/mnote-canon-entry.c:407
+#: libexif/fuji/mnote-fuji-entry.c:89 libexif/pentax/mnote-pentax-entry.c:127
+msgid "Black & white"
+msgstr "Schwarz & Weiß"
+
+#: libexif/canon/mnote-canon-entry.c:133 libexif/canon/mnote-canon-entry.c:305
+msgid "Vivid"
+msgstr "Lebendig"
+
+#: libexif/canon/mnote-canon-entry.c:134 libexif/canon/mnote-canon-entry.c:306
+#: libexif/canon/mnote-canon-entry.c:431
+msgid "Neutral"
+msgstr "Neutral"
+
+#: libexif/canon/mnote-canon-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:93
+msgid "Flash off"
+msgstr "Blitz aus"
+
+#: libexif/canon/mnote-canon-entry.c:136
+msgid "Long shutter"
+msgstr "Lange Belichtungszeit"
+
+#: libexif/canon/mnote-canon-entry.c:137 libexif/canon/mnote-canon-entry.c:188
+#: libexif/olympus/mnote-olympus-entry.c:171
+msgid "Super macro"
+msgstr "Super Makro"
+
+#: libexif/canon/mnote-canon-entry.c:138
+msgid "Foliage"
+msgstr "Foliant"
+
+#: libexif/canon/mnote-canon-entry.c:139
+msgid "Indoor"
+msgstr "Innenraum"
+
+#: libexif/canon/mnote-canon-entry.c:140 libexif/fuji/mnote-fuji-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:175
+msgid "Fireworks"
+msgstr "Feuerwerk"
+
+#: libexif/canon/mnote-canon-entry.c:141 libexif/fuji/mnote-fuji-entry.c:133
+msgid "Beach"
+msgstr "Strand"
+
+#: libexif/canon/mnote-canon-entry.c:142 libexif/canon/mnote-canon-entry.c:344
+#: libexif/canon/mnote-canon-entry.c:416 libexif/fuji/mnote-fuji-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:292
+#: libexif/pentax/mnote-pentax-entry.c:298
+msgid "Underwater"
+msgstr "Unterwasser"
+
+#: libexif/canon/mnote-canon-entry.c:143 libexif/fuji/mnote-fuji-entry.c:134
+msgid "Snow"
+msgstr "Schnee"
+
+#: libexif/canon/mnote-canon-entry.c:144
+msgid "Kids & pets"
+msgstr "Kinder & Tiere"
+
+#: libexif/canon/mnote-canon-entry.c:145
+msgid "Night snapshot"
+msgstr "Nachtszene"
+
+#: libexif/canon/mnote-canon-entry.c:146
+msgid "Digital macro"
+msgstr "Digitalmakro"
+
+#: libexif/canon/mnote-canon-entry.c:147
+msgid "My colors"
+msgstr "Meine Farben"
+
+#: libexif/canon/mnote-canon-entry.c:148
+msgid "Still image"
+msgstr "Festes Bild"
+
+#: libexif/canon/mnote-canon-entry.c:149
+msgid "Color accent"
+msgstr "Farb Akzent"
+
+#: libexif/canon/mnote-canon-entry.c:150
+msgid "Color swap"
+msgstr "Farbentausch"
+
+#: libexif/canon/mnote-canon-entry.c:151
+msgid "Aquarium"
+msgstr "Aquarium"
+
+#: libexif/canon/mnote-canon-entry.c:152
+msgid "ISO 3200"
+msgstr "ISO 3200"
+
+#: libexif/canon/mnote-canon-entry.c:153 libexif/canon/mnote-canon-entry.c:348
+#: libexif/canon/mnote-canon-entry.c:365 libexif/canon/mnote-canon-entry.c:417
+#: libexif/olympus/mnote-olympus-entry.c:189
+#: libexif/olympus/mnote-olympus-entry.c:226
+#: libexif/olympus/mnote-olympus-entry.c:451
+#: libexif/pentax/mnote-pentax-entry.c:242
+msgid "None"
+msgstr "Keine"
+
+#: libexif/canon/mnote-canon-entry.c:154
+msgid "2x"
+msgstr "2x"
+
+#: libexif/canon/mnote-canon-entry.c:155
+msgid "4x"
+msgstr "4x"
+
+#: libexif/canon/mnote-canon-entry.c:156 libexif/exif-entry.c:702
+#: libexif/exif-entry.c:732
+msgid "Other"
+msgstr "Andere"
+
+#: libexif/canon/mnote-canon-entry.c:158 libexif/canon/mnote-canon-entry.c:161
+#: libexif/canon/mnote-canon-entry.c:164 libexif/canon/mnote-canon-entry.c:398
+#: libexif/fuji/mnote-fuji-entry.c:86 libexif/pentax/mnote-pentax-entry.c:112
+#: libexif/pentax/mnote-pentax-entry.c:117
+msgid "High"
+msgstr "Hoch"
+
+#: libexif/canon/mnote-canon-entry.c:159 libexif/canon/mnote-canon-entry.c:162
+#: libexif/canon/mnote-canon-entry.c:165 libexif/canon/mnote-canon-entry.c:396
+#: libexif/pentax/mnote-pentax-entry.c:111
+#: libexif/pentax/mnote-pentax-entry.c:116
+msgid "Low"
+msgstr "Niedrig"
+
+#: libexif/canon/mnote-canon-entry.c:166
+msgid "Auto high"
+msgstr "Auto hoch"
+
+#: libexif/canon/mnote-canon-entry.c:168
+msgid "50"
+msgstr "50"
+
+#: libexif/canon/mnote-canon-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:120
+#: libexif/pentax/mnote-pentax-entry.c:122
+msgid "100"
+msgstr "100"
+
+#: libexif/canon/mnote-canon-entry.c:170
+#: libexif/pentax/mnote-pentax-entry.c:121
+#: libexif/pentax/mnote-pentax-entry.c:123
+msgid "200"
+msgstr "200"
+
+#: libexif/canon/mnote-canon-entry.c:171
+msgid "400"
+msgstr "400"
+
+#: libexif/canon/mnote-canon-entry.c:172
+msgid "800"
+msgstr "800"
+
+#: libexif/canon/mnote-canon-entry.c:173
+msgid "Default"
+msgstr "Standard"
+
+#: libexif/canon/mnote-canon-entry.c:174 libexif/exif-entry.c:698
+msgid "Spot"
+msgstr "Punkt"
+
+#: libexif/canon/mnote-canon-entry.c:175 libexif/exif-entry.c:696
+msgid "Average"
+msgstr "Durchschnitt"
+
+#: libexif/canon/mnote-canon-entry.c:176
+msgid "Evaluative"
+msgstr "Berechnend"
+
+#: libexif/canon/mnote-canon-entry.c:177 libexif/exif-entry.c:701
+msgid "Partial"
+msgstr "Partiell"
+
+#: libexif/canon/mnote-canon-entry.c:178 libexif/exif-entry.c:697
+msgid "Center-weighted average"
+msgstr "Mittelpunkt gewichteter Durchschnitt"
+
+#: libexif/canon/mnote-canon-entry.c:181
+msgid "Not known"
+msgstr "Unbekannt"
+
+#: libexif/canon/mnote-canon-entry.c:183
+msgid "Very close"
+msgstr "Sehr nah"
+
+#: libexif/canon/mnote-canon-entry.c:184 libexif/exif-entry.c:797
+msgid "Close"
+msgstr "Nah"
+
+#: libexif/canon/mnote-canon-entry.c:185
+msgid "Middle range"
+msgstr "Mittlerer Abstand"
+
+#: libexif/canon/mnote-canon-entry.c:186
+msgid "Far range"
+msgstr "Weiter Abstand"
+
+#: libexif/canon/mnote-canon-entry.c:189
+#: libexif/pentax/mnote-pentax-entry.c:210
+msgid "Infinity"
+msgstr "Unendlich"
+
+#: libexif/canon/mnote-canon-entry.c:190
+msgid "Manual AF point selection"
+msgstr "Manuelle AF Punkt Selektion"
+
+#: libexif/canon/mnote-canon-entry.c:191 libexif/canon/mnote-canon-entry.c:349
+msgid "None (MF)"
+msgstr "Keine (MF)"
+
+#: libexif/canon/mnote-canon-entry.c:192
+msgid "Auto-selected"
+msgstr "Automatisch selektiert"
+
+#: libexif/canon/mnote-canon-entry.c:193 libexif/canon/mnote-canon-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:224
+#: libexif/pentax/mnote-pentax-entry.c:238
+msgid "Right"
+msgstr "Rechts"
+
+#: libexif/canon/mnote-canon-entry.c:194 libexif/canon/mnote-canon-entry.c:351
+#: libexif/pentax/mnote-pentax-entry.c:222
+#: libexif/pentax/mnote-pentax-entry.c:237
+msgid "Center"
+msgstr "Mittig"
+
+#: libexif/canon/mnote-canon-entry.c:195 libexif/canon/mnote-canon-entry.c:353
+#: libexif/pentax/mnote-pentax-entry.c:220
+#: libexif/pentax/mnote-pentax-entry.c:236
+msgid "Left"
+msgstr "Links"
+
+#: libexif/canon/mnote-canon-entry.c:196
+msgid "Auto AF point selection"
+msgstr "Automatische AF Punkt Selektion"
+
+#: libexif/canon/mnote-canon-entry.c:197
+msgid "Easy shooting"
+msgstr "Einfaches Fotografieren"
+
+#: libexif/canon/mnote-canon-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:163
+msgid "Program"
+msgstr "Programm"
+
+#: libexif/canon/mnote-canon-entry.c:199
+msgid "Tv-priority"
+msgstr "Tv-Priorität"
+
+#: libexif/canon/mnote-canon-entry.c:200
+msgid "Av-priority"
+msgstr "Av-Priorität"
+
+#: libexif/canon/mnote-canon-entry.c:202
+msgid "A-DEP"
+msgstr "A-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:203
+msgid "M-DEP"
+msgstr "M-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:204
+msgid "Canon EF 50mm f/1.8"
+msgstr "Canon EF 50mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:205
+msgid "Canon EF 28mm f/2.8"
+msgstr "Canon EF 28mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:206
+msgid "Sigma UC Zoom 35-135mm f/4-5.6"
+msgstr "Sigma UC Zoom 35-135mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:207
+msgid "Tokina AF193-2 19-35mm f/3.5-4.5"
+msgstr "Tokina AF193-2 19-35mm f/3.5-4.5"
+
+#: libexif/canon/mnote-canon-entry.c:208
+msgid "Canon EF 100-300mm F5.6L"
+msgstr "Canon EF 100-300mm F5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:209
+msgid "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+msgstr "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:210
+msgid "Canon EF 35mm f/2"
+msgstr "Canon EF 35mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:211
+msgid "Canon EF 15mm f/2.8"
+msgstr "Canon EF 15mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:212
+msgid "Canon EF 80-200mm f/2.8L"
+msgstr "Canon EF 80-200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:213
+msgid "Tokina AT-X280AF PRO 28-80mm F2.8 Aspherical"
+msgstr "Tokina AT-X280AF PRO 28-80mm F2.8 Aspherical"
+
+#: libexif/canon/mnote-canon-entry.c:214
+msgid "Cosina 100mm f/3.5 Macro AF"
+msgstr "Cosina 100mm f/3.5 Macro AF"
+
+#: libexif/canon/mnote-canon-entry.c:215
+msgid "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+msgstr "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:216
+msgid "Canon EF 50mm f/1.8 MkII"
+msgstr "Canon EF 50mm f/1.8 MkII"
+
+#: libexif/canon/mnote-canon-entry.c:217
+msgid "Tamron SP AF 300mm f/2.8 LD IF"
+msgstr "Tamron SP AF 300mm f/2.8 LD IF"
+
+#: libexif/canon/mnote-canon-entry.c:218
+msgid "Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+msgstr "Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+
+#: libexif/canon/mnote-canon-entry.c:219
+msgid "Canon EF 75-300mm f/4-5.6"
+msgstr "Canon EF 75-300mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:220
+msgid "Canon EF 28-80mm f/3.5-5.6"
+msgstr "Canon EF 28-80mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:221
+msgid "Canon EF 28-105mm f/4-5.6"
+msgstr "Canon EF 28-105mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:222
+msgid "Canon EF-S 18-55mm f/3.5-5.6"
+msgstr "Canon EF-S 18-55mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:223
+msgid "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+msgstr "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+
+#: libexif/canon/mnote-canon-entry.c:224
+msgid "Canon TS-E 24mm f/3.5L"
+msgstr "Canon TS-E 24mm f/3.5L"
+
+#: libexif/canon/mnote-canon-entry.c:225
+msgid "Canon TS-E 45mm f/2.8"
+msgstr "Canon TS-E 45mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:226
+msgid "Canon TS-E 90mm f/2.8"
+msgstr "Canon TS-E 90mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:227
+msgid "Canon EF 50mm f/1.0L"
+msgstr "Canon EF 50mm f/1.0L"
+
+#: libexif/canon/mnote-canon-entry.c:228
+msgid "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+msgstr "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+
+#: libexif/canon/mnote-canon-entry.c:229
+msgid "Canon EF 600mm f/4L IS"
+msgstr "Canon EF 600mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:230
+msgid "Canon EF 200mm f/1.8L"
+msgstr "Canon EF 200mm f/1.8L"
+
+#: libexif/canon/mnote-canon-entry.c:231
+msgid "Canon EF 300mm f/2.8L"
+msgstr "Canon EF 300mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:232
+msgid "Canon EF 85mm f/1.2L"
+msgstr "Canon EF 85mm f/1.2L"
+
+#: libexif/canon/mnote-canon-entry.c:233
+msgid "Canon EF 400mm f/2.8L"
+msgstr "Canon EF 400mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:234
+msgid "Canon EF 500mm f/4.5L"
+msgstr "Canon EF 500mm f/4.5L"
+
+#: libexif/canon/mnote-canon-entry.c:235
+msgid "Canon EF 300mm f/2.8L IS"
+msgstr "Canon EF 300mm f/2.8L IS"
+
+#: libexif/canon/mnote-canon-entry.c:236
+msgid "Canon EF 500mm f/4L IS"
+msgstr "Canon EF 500mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:237
+msgid "Canon EF 100mm f/2"
+msgstr "Canon EF 100mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:238
+msgid "Sigma 20mm EX f/1.8"
+msgstr "Sigma 20mm EX f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:239
+msgid "Canon EF 200mm f/2.8L"
+msgstr "Canon EF 200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:240
+msgid "Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+msgstr "Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:241
+msgid "Canon EF 35-350mm f/3.5-5.6L"
+msgstr "Canon EF 35-350mm f/3.5-5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:242
+msgid "Canon EF 85mm f/1.8 USM"
+msgstr "Canon EF 85mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:243
+msgid "Canon EF 28-105mm f/3.5-4.5 USM"
+msgstr "Canon EF 28-105mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:244
+msgid "Canon EF 20-35mm f/3.5-4.5 USM"
+msgstr "Canon EF 20-35mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:245
+msgid "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+msgstr "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:246
+msgid "Canon EF 70-200mm f/2.8 L"
+msgstr "Canon EF 70-200mm f/2.8 L"
+
+#: libexif/canon/mnote-canon-entry.c:247
+msgid "Canon EF 70-200mm f/2.8 L + x1.4"
+msgstr "Canon EF 70-200mm f/2.8 L + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:248
+msgid "Canon EF 70-200mm f/2.8 L + x2"
+msgstr "Canon EF 70-200mm f/2.8 L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:249
+msgid "Canon EF 28mm f/1.8 USM"
+msgstr "Canon EF 28mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:250
+msgid "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+msgstr "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+
+#: libexif/canon/mnote-canon-entry.c:251
+msgid "Canon EF 200mm f/2.8L II"
+msgstr "Canon EF 200mm f/2.8L II"
+
+#: libexif/canon/mnote-canon-entry.c:252
+msgid "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+msgstr "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+
+#: libexif/canon/mnote-canon-entry.c:253
+msgid "Canon EF 135mm f/2L"
+msgstr "Canon EF 135mm f/2L"
+
+#: libexif/canon/mnote-canon-entry.c:254
+msgid "Canon EF 24-85mm f/3.5-4.5 USM"
+msgstr "Canon EF 24-85mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:255
+msgid "Canon EF 300mm f/4L IS"
+msgstr "Canon EF 300mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:256
+msgid "Canon EF 28-135mm f/3.5-5.6 IS"
+msgstr "Canon EF 28-135mm f/3.5-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:257
+msgid "Canon EF 35mm f/1.4L"
+msgstr "Canon EF 35mm f/1.4L"
+
+#: libexif/canon/mnote-canon-entry.c:258
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:259
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+
+#: libexif/canon/mnote-canon-entry.c:260
+msgid "Canon EF 100-400mm f/4.5-5.6L IS"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS"
+
+#: libexif/canon/mnote-canon-entry.c:261
+msgid "Canon EF 400mm f/2.8L + x2"
+msgstr "Canon EF 400mm f/2.8L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:262
+msgid "Canon EF 70-200mm f/4L"
+msgstr "Canon EF 70-200mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:263
+msgid "Canon EF 100mm f/2.8 Macro"
+msgstr "Canon EF 100mm f/2.8 Macro"
+
+#: libexif/canon/mnote-canon-entry.c:264
+msgid "Canon EF 400mm f/4 DO IS"
+msgstr "Canon EF 400mm f/4 DO IS"
+
+#: libexif/canon/mnote-canon-entry.c:265
+msgid "Canon EF 75-300mm f/4-5.6 IS"
+msgstr "Canon EF 75-300mm f/4-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:266
+msgid "Canon EF 50mm f/1.4"
+msgstr "Canon EF 50mm f/1.4"
+
+#: libexif/canon/mnote-canon-entry.c:267
+msgid "Canon EF 28-80 f/3.5-5.6 USM IV"
+msgstr "Canon EF 28-80 f/3.5-5.6 USM IV"
+
+#: libexif/canon/mnote-canon-entry.c:268
+msgid "Canon EF 28-200mm f/3.5-5.6"
+msgstr "Canon EF 28-200mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:269
+msgid "Canon EF 90-300mm f/4.5-5.6"
+msgstr "Canon EF 90-300mm f/4.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:270
+msgid "Canon EF-S 18-55mm f/3.5-4.5 USM"
+msgstr "Canon EF-S 18-55mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:271
+msgid "Canon EF 70-200mm f/2.8L IS USM"
+msgstr "Canon EF 70-200mm f/2.8L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:272
+msgid "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+msgstr "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:273
+msgid "Canon EF 70-200mm f/2.8L IS USM + x2"
+msgstr "Canon EF 70-200mm f/2.8L IS USM + x2"
+
+#: libexif/canon/mnote-canon-entry.c:274
+msgid "Canon EF 16-35mm f/2.8L"
+msgstr "Canon EF 16-35mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:275
+msgid "Canon EF 24-70mm f/2.8L"
+msgstr "Canon EF 24-70mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:276
+msgid "Canon EF 17-40mm f/4L"
+msgstr "Canon EF 17-40mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:277
+msgid "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+msgstr "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:278
+msgid "Canon EF-S 17-85mm f4-5.6 IS USM"
+msgstr "Canon EF-S 17-85mm f4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:279
+msgid "Canon EF-S10-22mm F3.5-4.5 USM"
+msgstr "Canon EF-S10-22mm F3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:280
+msgid "Canon EF-S60mm F2.8 Macro USM"
+msgstr "Canon EF-S60mm F2.8 Macro USM"
+
+#: libexif/canon/mnote-canon-entry.c:281
+msgid "Canon EF 24-105mm f/4L IS"
+msgstr "Canon EF 24-105mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:282
+msgid "Canon EF 70-300mm F4-5.6 IS USM"
+msgstr "Canon EF 70-300mm F4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:283
+msgid "Canon EF 50mm F1.2L USM"
+msgstr "Canon EF 50mm F1.2L USM"
+
+#: libexif/canon/mnote-canon-entry.c:284
+msgid "Canon EF 70-200mm f/4L IS USM"
+msgstr "Canon EF 70-200mm f/4L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:286
+msgid "TTL"
+msgstr "TTL"
+
+#: libexif/canon/mnote-canon-entry.c:287
+msgid "A-TTL"
+msgstr "A-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:288
+msgid "E-TTL"
+msgstr "E-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:289
+msgid "FP sync enabled"
+msgstr "FP sync angeschaltet"
+
+#: libexif/canon/mnote-canon-entry.c:290
+msgid "2nd-curtain sync used"
+msgstr "2ter Vorhang Synchronisation benutzt"
+
+#: libexif/canon/mnote-canon-entry.c:291
+msgid "FP sync used"
+msgstr "FP sync benutzt"
+
+#: libexif/canon/mnote-canon-entry.c:292
+#: libexif/olympus/mnote-olympus-entry.c:190
+msgid "Internal"
+msgstr "Intern"
+
+#: libexif/canon/mnote-canon-entry.c:293
+#: libexif/olympus/mnote-olympus-entry.c:191
+msgid "External"
+msgstr "Extern"
+
+#: libexif/canon/mnote-canon-entry.c:296
+msgid "Normal AE"
+msgstr "Normal AE"
+
+#: libexif/canon/mnote-canon-entry.c:297
+msgid "Exposure compensation"
+msgstr "Belichtungskompensation"
+
+#: libexif/canon/mnote-canon-entry.c:298
+msgid "AE lock"
+msgstr "AE Lock"
+
+#: libexif/canon/mnote-canon-entry.c:299
+msgid "AE lock + exposure compensation"
+msgstr "AE Lock + Belichtungskompensation"
+
+#: libexif/canon/mnote-canon-entry.c:300
+msgid "No AE"
+msgstr "Kein AE"
+
+#: libexif/canon/mnote-canon-entry.c:303
+msgid "On, shot only"
+msgstr "An, 1 Aufnahme"
+
+#: libexif/canon/mnote-canon-entry.c:307
+msgid "Smooth"
+msgstr "Weich"
+
+#: libexif/canon/mnote-canon-entry.c:310 libexif/canon/mnote-canon-entry.c:334
+#: libexif/canon/mnote-canon-entry.c:393 libexif/canon/mnote-canon-entry.c:406
+#: libexif/fuji/mnote-fuji-entry.c:81 libexif/pentax/mnote-pentax-entry.c:87
+msgid "Custom"
+msgstr "Benutzerdefiniert"
+
+#: libexif/canon/mnote-canon-entry.c:311
+msgid "My color data"
+msgstr "Meine Farbdaten"
+
+#: libexif/canon/mnote-canon-entry.c:313 libexif/canon/mnote-canon-entry.c:375
+#: libexif/pentax/mnote-pentax-entry.c:126
+#: libexif/pentax/mnote-pentax-entry.c:145
+msgid "Full"
+msgstr "Voll"
+
+#: libexif/canon/mnote-canon-entry.c:314 libexif/canon/mnote-canon-entry.c:374
+msgid "2/3"
+msgstr "2/3"
+
+#: libexif/canon/mnote-canon-entry.c:315 libexif/canon/mnote-canon-entry.c:373
+msgid "1/3"
+msgstr "1/3"
+
+#: libexif/canon/mnote-canon-entry.c:321
+msgid "Fixed"
+msgstr "Fest"
+
+#: libexif/canon/mnote-canon-entry.c:322 libexif/pentax/mnote-pentax-tag.c:44
+msgid "Zoom"
+msgstr "Zoom"
+
+#: libexif/canon/mnote-canon-entry.c:329
+msgid "Sunny"
+msgstr "Sonnig"
+
+#: libexif/canon/mnote-canon-entry.c:330 libexif/canon/mnote-canon-entry.c:402
+#: libexif/exif-entry.c:719 libexif/fuji/mnote-fuji-entry.c:75
+#: libexif/olympus/mnote-olympus-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:255
+msgid "Cloudy"
+msgstr "Wolkig"
+
+#: libexif/canon/mnote-canon-entry.c:331 libexif/canon/mnote-canon-entry.c:403
+#: libexif/exif-entry.c:716 libexif/pentax/mnote-pentax-entry.c:100
+#: libexif/pentax/mnote-pentax-entry.c:249
+msgid "Tungsten"
+msgstr "Wolframlicht"
+
+#: libexif/canon/mnote-canon-entry.c:332 libexif/canon/mnote-canon-entry.c:404
+#: libexif/exif-entry.c:715 libexif/pentax/mnote-pentax-entry.c:101
+#: libexif/pentax/mnote-pentax-entry.c:248
+msgid "Fluorescent"
+msgstr "Leuchstoffröhre"
+
+#: libexif/canon/mnote-canon-entry.c:333 libexif/canon/mnote-canon-entry.c:405
+#: libexif/exif-entry.c:717 libexif/exif-entry.c:759 libexif/exif-tag.c:577
+#: libexif/fuji/mnote-fuji-entry.c:80 libexif/pentax/mnote-pentax-entry.c:254
+msgid "Flash"
+msgstr "Blitz"
+
+#: libexif/canon/mnote-canon-entry.c:336 libexif/canon/mnote-canon-entry.c:408
+#: libexif/exif-entry.c:720 libexif/pentax/mnote-pentax-entry.c:99
+#: libexif/pentax/mnote-pentax-entry.c:247
+msgid "Shade"
+msgstr "Schatten"
+
+#: libexif/canon/mnote-canon-entry.c:337 libexif/canon/mnote-canon-entry.c:409
+msgid "Manual temperature (Kelvin)"
+msgstr "Manuelle Temperatur (Kelvin)"
+
+#: libexif/canon/mnote-canon-entry.c:338 libexif/canon/mnote-canon-entry.c:410
+msgid "PC set 1"
+msgstr "PC Set 1"
+
+#: libexif/canon/mnote-canon-entry.c:339 libexif/canon/mnote-canon-entry.c:411
+msgid "PC set 2"
+msgstr "PC Set 2"
+
+#: libexif/canon/mnote-canon-entry.c:340 libexif/canon/mnote-canon-entry.c:412
+msgid "PC set 3"
+msgstr "PC Set 3"
+
+#: libexif/canon/mnote-canon-entry.c:341 libexif/canon/mnote-canon-entry.c:413
+#: libexif/exif-entry.c:721 libexif/fuji/mnote-fuji-entry.c:76
+#: libexif/pentax/mnote-pentax-entry.c:251
+msgid "Daylight fluorescent"
+msgstr "Tageslicht Leuchtstoff"
+
+#: libexif/canon/mnote-canon-entry.c:342 libexif/canon/mnote-canon-entry.c:414
+msgid "Custom 1"
+msgstr "Benutzerdefiniert 1"
+
+#: libexif/canon/mnote-canon-entry.c:343 libexif/canon/mnote-canon-entry.c:415
+msgid "Custom 2"
+msgstr "Benutzerdefiniert 2"
+
+#: libexif/canon/mnote-canon-entry.c:346 libexif/exif-entry.c:672
+#: libexif/pentax/mnote-pentax-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:132
+#: libexif/pentax/mnote-pentax-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:295
+msgid "Night scene"
+msgstr "Nachtszene"
+
+#: libexif/canon/mnote-canon-entry.c:352
+msgid "Center-right"
+msgstr "Mittelpunkt gewichtet"
+
+#: libexif/canon/mnote-canon-entry.c:354
+msgid "Left-right"
+msgstr "Links nach rechts"
+
+#: libexif/canon/mnote-canon-entry.c:355
+msgid "Left-center"
+msgstr "Links + Mitte"
+
+#: libexif/canon/mnote-canon-entry.c:356
+msgid "All"
+msgstr "Alle"
+
+#: libexif/canon/mnote-canon-entry.c:358
+msgid "On (shot 1)"
+msgstr "An (Aufnahme 1)"
+
+#: libexif/canon/mnote-canon-entry.c:359
+msgid "On (shot 2)"
+msgstr "An (Aufnahme 2)"
+
+#: libexif/canon/mnote-canon-entry.c:360
+msgid "On (shot 3)"
+msgstr "An (Aufnahme 3)"
+
+#: libexif/canon/mnote-canon-entry.c:362
+msgid "EOS high-end"
+msgstr "EOS high-end"
+
+#: libexif/canon/mnote-canon-entry.c:363
+msgid "Compact"
+msgstr "Kompakt"
+
+#: libexif/canon/mnote-canon-entry.c:364
+msgid "EOS mid-range"
+msgstr "EOS Mittelklasse"
+
+#: libexif/canon/mnote-canon-entry.c:366
+msgid "Rotate 90 CW"
+msgstr "90º im Uhrzeigersinn rotieren"
+
+#: libexif/canon/mnote-canon-entry.c:367
+msgid "Rotate 180"
+msgstr "180º rotieren"
+
+#: libexif/canon/mnote-canon-entry.c:368
+msgid "Rotate 270 CW"
+msgstr "90º gegen Uhrzeiger rotieren"
+
+#: libexif/canon/mnote-canon-entry.c:369
+msgid "Rotated by software"
+msgstr "Durch Software rotiert"
+
+#: libexif/canon/mnote-canon-entry.c:381
+#: libexif/olympus/mnote-olympus-entry.c:606
+msgid "Left to right"
+msgstr "Links nach rechts"
+
+#: libexif/canon/mnote-canon-entry.c:382
+#: libexif/olympus/mnote-olympus-entry.c:609
+msgid "Right to left"
+msgstr "Rechts nach links"
+
+#: libexif/canon/mnote-canon-entry.c:383
+#: libexif/olympus/mnote-olympus-entry.c:612
+msgid "Bottom to top"
+msgstr "Unten nach oben"
+
+#: libexif/canon/mnote-canon-entry.c:384
+#: libexif/olympus/mnote-olympus-entry.c:615
+msgid "Top to bottom"
+msgstr "Oben nach unten"
+
+#: libexif/canon/mnote-canon-entry.c:385
+msgid "2x2 matrix (clockwise)"
+msgstr "2x2 Matrix (im Uhrzeigersinn)"
+
+#: libexif/canon/mnote-canon-entry.c:391 libexif/canon/mnote-canon-entry.c:397
+#: libexif/canon/mnote-canon-entry.c:418 libexif/canon/mnote-canon-entry.c:428
+#: libexif/exif-entry.c:671 libexif/fuji/mnote-fuji-entry.c:84
+#: libexif/fuji/mnote-fuji-entry.c:93 libexif/fuji/mnote-fuji-entry.c:163
+#: libexif/olympus/mnote-olympus-entry.c:227
+msgid "Standard"
+msgstr "Standard"
+
+#: libexif/canon/mnote-canon-entry.c:394
+msgid "N/A"
+msgstr "N/A"
+
+#: libexif/canon/mnote-canon-entry.c:395
+msgid "Lowest"
+msgstr "Niedrigster"
+
+#: libexif/canon/mnote-canon-entry.c:399
+msgid "Highest"
+msgstr "Höchster"
+
+#: libexif/canon/mnote-canon-entry.c:401 libexif/exif-entry.c:714
+#: libexif/fuji/mnote-fuji-entry.c:74
+#: libexif/olympus/mnote-olympus-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:98
+#: libexif/pentax/mnote-pentax-entry.c:246
+msgid "Daylight"
+msgstr "Tageslicht"
+
+#: libexif/canon/mnote-canon-entry.c:419
+msgid "Set 1"
+msgstr "Set 1"
+
+#: libexif/canon/mnote-canon-entry.c:420
+msgid "Set 2"
+msgstr "Set 2"
+
+#: libexif/canon/mnote-canon-entry.c:421
+msgid "Set 3"
+msgstr "Set 3"
+
+#: libexif/canon/mnote-canon-entry.c:422
+msgid "User def. 1"
+msgstr "Benutzer def. 1"
+
+#: libexif/canon/mnote-canon-entry.c:423
+msgid "User def. 2"
+msgstr "Benutzer def. 2"
+
+#: libexif/canon/mnote-canon-entry.c:424
+msgid "User def. 3"
+msgstr "Benutzer def. 3"
+
+#: libexif/canon/mnote-canon-entry.c:425
+msgid "External 1"
+msgstr "Extern 1"
+
+#: libexif/canon/mnote-canon-entry.c:426
+msgid "External 2"
+msgstr "Extern 2"
+
+#: libexif/canon/mnote-canon-entry.c:427
+msgid "External 3"
+msgstr "Extern 3"
+
+#: libexif/canon/mnote-canon-entry.c:432
+msgid "Faithful"
+msgstr "Getreu"
+
+#: libexif/canon/mnote-canon-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:115
+msgid "Monochrome"
+msgstr "Schwarzweiss"
+
+#: libexif/canon/mnote-canon-entry.c:491
+msgid ", "
+msgstr ", "
+
+#: libexif/canon/mnote-canon-entry.c:577 libexif/canon/mnote-canon-entry.c:674
+#, c-format
+msgid "%i (ms)"
+msgstr "%i (ms)"
+
+#: libexif/canon/mnote-canon-entry.c:621
+#, c-format
+msgid "%.2f mm"
+msgstr "%.2f mm"
+
+#: libexif/canon/mnote-canon-entry.c:645
+#, c-format
+msgid "%.2f EV"
+msgstr "%.2f EV"
+
+#: libexif/canon/mnote-canon-entry.c:655 libexif/exif-entry.c:1064
+#, c-format
+msgid "1/%i"
+msgstr "1/%i"
+
+#: libexif/canon/mnote-canon-entry.c:667
+#, c-format
+msgid "%u mm"
+msgstr "%u mm"
+
+#: libexif/canon/mnote-canon-tag.c:35
+msgid "Settings (First Part)"
+msgstr "Einstellungen (erster Teil)"
+
+#: libexif/canon/mnote-canon-tag.c:36 libexif/canon/mnote-canon-tag.c:92
+#: libexif/exif-tag.c:581 libexif/pentax/mnote-pentax-tag.c:88
+msgid "Focal Length"
+msgstr "Brennweite"
+
+#: libexif/canon/mnote-canon-tag.c:37
+msgid "Settings (Second Part)"
+msgstr "Einstellungen (zweiter Teil)"
+
+#: libexif/canon/mnote-canon-tag.c:38
+#: libexif/olympus/mnote-olympus-entry.c:595
+#: libexif/pentax/mnote-pentax-entry.c:177
+msgid "Panorama"
+msgstr "Panorama"
+
+#: libexif/canon/mnote-canon-tag.c:39
+msgid "Image Type"
+msgstr "Bildtyp"
+
+#: libexif/canon/mnote-canon-tag.c:40 libexif/olympus/mnote-olympus-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:113
+msgid "Firmware Version"
+msgstr "Firmware Version"
+
+#: libexif/canon/mnote-canon-tag.c:41
+msgid "Image Number"
+msgstr "Bildnummer"
+
+#: libexif/canon/mnote-canon-tag.c:42
+msgid "Owner Name"
+msgstr "Name des Besitzers"
+
+#: libexif/canon/mnote-canon-tag.c:43
+msgid "Color Information"
+msgstr "Farbinformation"
+
+#: libexif/canon/mnote-canon-tag.c:44 libexif/fuji/mnote-fuji-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:81
+#: libexif/olympus/mnote-olympus-tag.c:146
+msgid "Serial Number"
+msgstr "Seriennummer"
+
+#: libexif/canon/mnote-canon-tag.c:45
+msgid "Custom Functions"
+msgstr "Benutzerdefinierte Funktionen"
+
+#: libexif/canon/mnote-canon-tag.c:56 libexif/fuji/mnote-fuji-tag.c:45
+msgid "Macro Mode"
+msgstr "Makromodus"
+
+#: libexif/canon/mnote-canon-tag.c:57 libexif/canon/mnote-canon-tag.c:117
+#: libexif/olympus/mnote-olympus-tag.c:175
+#: libexif/pentax/mnote-pentax-tag.c:128
+msgid "Self-timer"
+msgstr "Selbstauslöser"
+
+#: libexif/canon/mnote-canon-tag.c:58 libexif/fuji/mnote-fuji-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:94
+#: libexif/olympus/mnote-olympus-tag.c:107
+msgid "Quality"
+msgstr "Qualität"
+
+#: libexif/canon/mnote-canon-tag.c:59 libexif/fuji/mnote-fuji-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:45
+#: libexif/olympus/mnote-olympus-tag.c:127
+#: libexif/pentax/mnote-pentax-tag.c:38 libexif/pentax/mnote-pentax-tag.c:73
+msgid "Flash Mode"
+msgstr "Blitzmodus"
+
+#: libexif/canon/mnote-canon-tag.c:60 libexif/pentax/mnote-pentax-tag.c:101
+msgid "Drive Mode"
+msgstr "Aufnahmemodus"
+
+#: libexif/canon/mnote-canon-tag.c:61 libexif/canon/mnote-canon-tag.c:82
+#: libexif/olympus/mnote-olympus-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:134
+#: libexif/olympus/mnote-olympus-tag.c:173
+#: libexif/pentax/mnote-pentax-tag.c:37 libexif/pentax/mnote-pentax-tag.c:74
+#: libexif/pentax/mnote-pentax-tag.c:130
+msgid "Focus Mode"
+msgstr "Fokusmodus"
+
+#: libexif/canon/mnote-canon-tag.c:62 libexif/pentax/mnote-pentax-tag.c:127
+msgid "Record Mode"
+msgstr "Aufnahmemodus"
+
+#: libexif/canon/mnote-canon-tag.c:63 libexif/pentax/mnote-pentax-tag.c:71
+msgid "Image Size"
+msgstr "Bildgrõße"
+
+#: libexif/canon/mnote-canon-tag.c:64
+msgid "Easy Shooting Mode"
+msgstr "Einfacher Aufnahmemodus"
+
+#: libexif/canon/mnote-canon-tag.c:65 libexif/olympus/mnote-olympus-tag.c:64
+#: libexif/olympus/mnote-olympus-tag.c:101
+#: libexif/olympus/mnote-olympus-tag.c:110
+#: libexif/olympus/mnote-olympus-tag.c:180
+#: libexif/pentax/mnote-pentax-tag.c:89
+msgid "Digital Zoom"
+msgstr "Digital Zoom"
+
+#: libexif/canon/mnote-canon-tag.c:66 libexif/exif-tag.c:828
+#: libexif/fuji/mnote-fuji-tag.c:42 libexif/pentax/mnote-pentax-tag.c:46
+#: libexif/pentax/mnote-pentax-tag.c:91
+msgid "Contrast"
+msgstr "Kontrast"
+
+#: libexif/canon/mnote-canon-tag.c:67 libexif/exif-tag.c:832
+#: libexif/olympus/mnote-olympus-tag.c:75
+#: libexif/olympus/mnote-olympus-tag.c:87 libexif/pentax/mnote-pentax-tag.c:47
+#: libexif/pentax/mnote-pentax-tag.c:90
+msgid "Saturation"
+msgstr "Sättigung"
+
+#: libexif/canon/mnote-canon-tag.c:68 libexif/exif-tag.c:836
+#: libexif/fuji/mnote-fuji-tag.c:39 libexif/pentax/mnote-pentax-tag.c:45
+#: libexif/pentax/mnote-pentax-tag.c:92
+msgid "Sharpness"
+msgstr "Schärfe"
+
+#: libexif/canon/mnote-canon-tag.c:69
+msgid "ISO"
+msgstr "ISO"
+
+#: libexif/canon/mnote-canon-tag.c:70 libexif/exif-tag.c:571
+#: libexif/pentax/mnote-pentax-tag.c:82
+msgid "Metering Mode"
+msgstr "Messmodus"
+
+#: libexif/canon/mnote-canon-tag.c:71 libexif/olympus/mnote-olympus-tag.c:133
+msgid "Focus Range"
+msgstr "Fokusbereich"
+
+#: libexif/canon/mnote-canon-tag.c:72 libexif/canon/mnote-canon-tag.c:105
+msgid "AF Point"
+msgstr "AF Punkt"
+
+#: libexif/canon/mnote-canon-tag.c:73 libexif/exif-tag.c:795
+msgid "Exposure Mode"
+msgstr "Belichtungsart"
+
+#: libexif/canon/mnote-canon-tag.c:74 libexif/olympus/mnote-olympus-tag.c:61
+#: libexif/pentax/mnote-pentax-tag.c:106
+msgid "Lens Type"
+msgstr "Objektivtyp"
+
+#: libexif/canon/mnote-canon-tag.c:75
+msgid "Long Focal Length of Lens"
+msgstr "Lange Brennweite des Objektivs"
+
+#: libexif/canon/mnote-canon-tag.c:76
+msgid "Short Focal Length of Lens"
+msgstr "Kurze Brennweite des Objektivs"
+
+#: libexif/canon/mnote-canon-tag.c:77
+msgid "Focal Units per mm"
+msgstr "Fokuseinheiten pro mm"
+
+#: libexif/canon/mnote-canon-tag.c:78
+msgid "Maximal Aperture"
+msgstr "Maximale Blende"
+
+#: libexif/canon/mnote-canon-tag.c:79
+msgid "Minimal Aperture"
+msgstr "Minimale Blende"
+
+#: libexif/canon/mnote-canon-tag.c:80
+msgid "Flash Activity"
+msgstr "Blitz Aktivitåt"
+
+#: libexif/canon/mnote-canon-tag.c:81
+msgid "Flash Details"
+msgstr "Blitz Details"
+
+#: libexif/canon/mnote-canon-tag.c:83
+msgid "AE Setting"
+msgstr "AE Einstellungen"
+
+#: libexif/canon/mnote-canon-tag.c:84
+msgid "Image Stabilization"
+msgstr "Bildstabilisation"
+
+#: libexif/canon/mnote-canon-tag.c:85
+msgid "Display Aperture"
+msgstr "Blendenanzeige"
+
+#: libexif/canon/mnote-canon-tag.c:86
+msgid "Zoom Source Width"
+msgstr "Breite der Zoomquelle"
+
+#: libexif/canon/mnote-canon-tag.c:87
+msgid "Zoom Target Width"
+msgstr "Breite des Zoomtargets"
+
+#: libexif/canon/mnote-canon-tag.c:88
+msgid "Photo Effect"
+msgstr "Photoeffekt"
+
+#: libexif/canon/mnote-canon-tag.c:89 libexif/canon/mnote-canon-tag.c:118
+msgid "Manual Flash Output"
+msgstr "Manuelle Blitzausgabe"
+
+#: libexif/canon/mnote-canon-tag.c:90
+msgid "Color Tone"
+msgstr "Farbton"
+
+#: libexif/canon/mnote-canon-tag.c:91
+msgid "Focal Type"
+msgstr "Fokusart"
+
+#: libexif/canon/mnote-canon-tag.c:93
+msgid "Focal Plane X Size"
+msgstr "Fokusebene X-Auflösung"
+
+#: libexif/canon/mnote-canon-tag.c:94
+msgid "Focal Plane Y Size"
+msgstr "Fokusebene Y-Auflösung"
+
+#: libexif/canon/mnote-canon-tag.c:95
+msgid "Auto ISO"
+msgstr "Auto ISO"
+
+#: libexif/canon/mnote-canon-tag.c:96
+msgid "Shot ISO"
+msgstr "Aufnahme ISO"
+
+#: libexif/canon/mnote-canon-tag.c:97
+msgid "Measured EV"
+msgstr "Gemessener EV"
+
+#: libexif/canon/mnote-canon-tag.c:98
+msgid "Target Aperture"
+msgstr "Zielblende"
+
+#: libexif/canon/mnote-canon-tag.c:99
+msgid "Target Exposure Time"
+msgstr "Zielbelichtungszeit"
+
+#: libexif/canon/mnote-canon-tag.c:100 libexif/olympus/mnote-olympus-tag.c:129
+#: libexif/pentax/mnote-pentax-tag.c:81
+msgid "Exposure Compensation"
+msgstr "Belichtungskompensation"
+
+#: libexif/canon/mnote-canon-tag.c:101 libexif/canon/mnote-canon-tag.c:123
+#: libexif/exif-tag.c:800 libexif/fuji/mnote-fuji-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:41
+#: libexif/olympus/mnote-olympus-tag.c:98 libexif/pentax/mnote-pentax-tag.c:41
+#: libexif/pentax/mnote-pentax-tag.c:84 libexif/pentax/mnote-pentax-tag.c:124
+msgid "White Balance"
+msgstr "Weißabgleich"
+
+#: libexif/canon/mnote-canon-tag.c:102
+msgid "Slow Shutter"
+msgstr "Lange Belichtungszeit"
+
+#: libexif/canon/mnote-canon-tag.c:103
+msgid "Sequence Number"
+msgstr "Sequenznummer"
+
+#: libexif/canon/mnote-canon-tag.c:104
+msgid "Flash Guide Number"
+msgstr "Blitzleitzahl"
+
+#: libexif/canon/mnote-canon-tag.c:106 libexif/olympus/mnote-olympus-tag.c:52
+#: libexif/pentax/mnote-pentax-tag.c:109
+msgid "Flash Exposure Compensation"
+msgstr "Blitzbelichtungskompensation"
+
+#: libexif/canon/mnote-canon-tag.c:107
+msgid "AE Bracketing"
+msgstr "AE Bracketing"
+
+#: libexif/canon/mnote-canon-tag.c:108
+msgid "AE Bracket Value"
+msgstr "AE Bracketwert"
+
+#: libexif/canon/mnote-canon-tag.c:109
+msgid "Focus Distance Upper"
+msgstr "Oberer Fokusabstand"
+
+#: libexif/canon/mnote-canon-tag.c:110
+msgid "Focus Distance Lower"
+msgstr "Unterer Fokusabstand"
+
+#: libexif/canon/mnote-canon-tag.c:111
+msgid "FNumber"
+msgstr "F Nummer."
+
+#: libexif/canon/mnote-canon-tag.c:112 libexif/exif-tag.c:466
+#: libexif/pentax/mnote-pentax-tag.c:78
+msgid "Exposure Time"
+msgstr "Belichtungszeit"
+
+#: libexif/canon/mnote-canon-tag.c:113
+msgid "Bulb Duration"
+msgstr "Langzeitbelichtungszeit"
+
+#: libexif/canon/mnote-canon-tag.c:114
+msgid "Camera Type"
+msgstr "Kamera Typ"
+
+#: libexif/canon/mnote-canon-tag.c:115
+msgid "Auto Rotate"
+msgstr "Automatisches Rotieren"
+
+#: libexif/canon/mnote-canon-tag.c:116
+msgid "ND Filter"
+msgstr "ND Filter"
+
+#: libexif/canon/mnote-canon-tag.c:119
+msgid "Panorama Frame"
+msgstr "Panorama Teil"
+
+#: libexif/canon/mnote-canon-tag.c:120
+msgid "Panorama Direction"
+msgstr "Panorama Richtung"
+
+#: libexif/canon/mnote-canon-tag.c:121
+msgid "Tone Curve"
+msgstr "Farbtonkurve"
+
+#: libexif/canon/mnote-canon-tag.c:122
+msgid "Sharpness Frequency"
+msgstr "Schärfenfrequenz"
+
+#: libexif/canon/mnote-canon-tag.c:124
+msgid "Picture Style"
+msgstr "Bildstil"
+
+#: libexif/exif-byte-order.c:33
+msgid "Motorola"
+msgstr "Motorola"
+
+#: libexif/exif-byte-order.c:35
+msgid "Intel"
+msgstr "Intel"
+
+#: libexif/exif-data.c:780
+msgid "Size of data too small to allow for EXIF data."
+msgstr "Größe der Daten zu klein um EXIF Daten aufzunehmen."
+
+#: libexif/exif-data.c:841
+msgid "EXIF marker not found."
+msgstr "EXIF Marker nicht gefunden."
+
+#: libexif/exif-data.c:868
+msgid "EXIF header not found."
+msgstr "EXIF Informationen nicht gefunden."
+
+#: libexif/exif-data.c:884
+msgid "Unknown encoding."
+msgstr "Unbekannte Kodierung."
+
+#: libexif/exif-data.c:1168
+msgid "Ignore unknown tags"
+msgstr "Ignoriere unbekannte EXIF Tags."
+
+#: libexif/exif-data.c:1169
+msgid "Ignore unknown tags when loading EXIF data."
+msgstr "Ignoriere unbekannte Tags beim Laden der EXIF Daten."
+
+#: libexif/exif-data.c:1170
+msgid "Follow specification"
+msgstr "Beachte Spezifikation."
+
+#: libexif/exif-data.c:1171
+msgid ""
+"Add, correct and remove entries to get EXIF data that follows the "
+"specification."
+msgstr ""
+"Korrigiere, entferne oder füge fehlende Einträge zu den EXIF Daten hinzu, um "
+"Daten zu erhalten, die der Spezifikation entsprechen."
+
+#: libexif/exif-data.c:1173
+msgid "Do not change maker note"
+msgstr "Ändere MakerNote nicht"
+
+#: libexif/exif-data.c:1174
+msgid ""
+"When loading and resaving Exif data, save the maker note unmodified. Be "
+"aware that the maker note can get corrupted."
+msgstr ""
+"Die MakerNote wird unverändert übernommen, wenn Exif Daten geladen oder "
+"gespeichert werden. Bitte beachten sie, das die MakerNote dennoch ungültig "
+"werden kann."
+
+#: libexif/exif-entry.c:234 libexif/exif-entry.c:303 libexif/exif-entry.c:336
+#, c-format
+msgid ""
+"Tag '%s' was of format '%s' (which is against specification) and has been "
+"changed to format '%s'."
+msgstr ""
+"Der Tag »%s« war im Format »%s« (entgegen der Spezifikation) und wurde in das "
+"Format »%s« umgewandelt."
+
+#: libexif/exif-entry.c:271
+#, c-format
+msgid ""
+"Tag '%s' is of format '%s' (which is against specification) but cannot be "
+"changed to format '%s'."
+msgstr ""
+"Der Tag »%s« ist im Format »%s« (entgegen der Spezifikation) und kann nicht in "
+"das Format »%s« umgewandelt werden."
+
+#: libexif/exif-entry.c:354
+#, c-format
+msgid ""
+"Tag 'UserComment' had invalid format '%s'. Format has been set to "
+"'undefined'."
+msgstr ""
+"Der Tag \"UserComment\" hatte das ungültige Format »%s«. Das Format wurde auf "
+"\"undefiniert\" geändert."
+
+#: libexif/exif-entry.c:381
+msgid ""
+"Tag 'UserComment' has been expanded to at least 8 bytes in order to follow "
+"the specification."
+msgstr ""
+"Der Tag \"UserComment\" wurde auf 8 Byte Mindestlänge expandiert, um der "
+"Spezifikation zu folgen."
+
+#: libexif/exif-entry.c:396
+msgid ""
+"Tag 'UserComment' is not empty but does not start with a format identifier. "
+"This has been fixed."
+msgstr ""
+"Der Tag \"UserComment\" war nicht leer und begann nicht mit einem Formattyp. "
+"Dieser Fehler wurde behoben."
+
+#: libexif/exif-entry.c:424
+msgid ""
+"Tag 'UserComment' did not start with a format identifier. This has been "
+"fixed."
+msgstr ""
+"Der Tag \"UserComment\" begann nicht mit einem Formattyp. Dieser Fehler "
+"wurde behoben."
+
+#: libexif/exif-entry.c:462
+#, c-format
+msgid "%i bytes undefined data"
+msgstr "%i Byte(s) unbekannte Daten"
+
+#: libexif/exif-entry.c:589
+#, c-format
+msgid "%i bytes unsupported data type"
+msgstr "%i Byte(s) von unbekanntem Datentyp"
+
+#: libexif/exif-entry.c:622
+#, c-format
+msgid "The tag '%s' contains data of an invalid format ('%s', expected '%s')."
+msgstr ""
+"Der Tag '%s' enthält ein ungültiges Datenformat ('%s', '%s' wurde erwartet)."
+
+#: libexif/exif-entry.c:635
+#, c-format
+msgid ""
+"The tag '%s' contains an invalid number of components (%i, expected %i)."
+msgstr ""
+"Der Tag '%s' enthält eine ungültige Anzahl von Komponenten (%i, %i wurden "
+"erwartet)."
+
+#: libexif/exif-entry.c:649
+msgid "Chunky format"
+msgstr "Chunky Format"
+
+#: libexif/exif-entry.c:649
+msgid "Planar format"
+msgstr "Lineares Format"
+
+#: libexif/exif-entry.c:651 libexif/exif-entry.c:743
+#: test/nls/test-codeset.c:54
+msgid "Not defined"
+msgstr "Undefiniert"
+
+#: libexif/exif-entry.c:651
+msgid "One-chip color area sensor"
+msgstr "Einzel Chip Farbsensor"
+
+#: libexif/exif-entry.c:652
+msgid "Two-chip color area sensor"
+msgstr "Zwei Chip Farbsensor"
+
+#: libexif/exif-entry.c:652
+msgid "Three-chip color area sensor"
+msgstr "Drei Chip Sensor"
+
+#: libexif/exif-entry.c:653
+msgid "Color sequential area sensor"
+msgstr "Farbraum sequentiell Sensor"
+
+#: libexif/exif-entry.c:653
+msgid "Trilinear sensor"
+msgstr "Trilinearer Sensor"
+
+#: libexif/exif-entry.c:654
+msgid "Color sequential linear sensor"
+msgstr "Farbraum linear sequentieller Sensor"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:233
+msgid "Top-left"
+msgstr "Oben-Links"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:235
+msgid "Top-right"
+msgstr "Oben-Rechts"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:241
+msgid "Bottom-right"
+msgstr "Unten-Rechts"
+
+#: libexif/exif-entry.c:657 libexif/pentax/mnote-pentax-entry.c:239
+msgid "Bottom-left"
+msgstr "Unten-Links"
+
+#: libexif/exif-entry.c:657
+msgid "Left-top"
+msgstr "Links - Oben"
+
+#: libexif/exif-entry.c:657
+msgid "Right-top"
+msgstr "Rechts - Oben"
+
+#: libexif/exif-entry.c:658
+msgid "Right-bottom"
+msgstr "Rechts - Unten"
+
+#: libexif/exif-entry.c:658
+msgid "Left-bottom"
+msgstr "Links - Unten"
+
+#: libexif/exif-entry.c:660
+msgid "Centered"
+msgstr "Zentriert"
+
+#: libexif/exif-entry.c:660
+msgid "Co-sited"
+msgstr "Co-sited"
+
+#: libexif/exif-entry.c:662
+msgid "Reversed mono"
+msgstr "Weiss-Schwarz"
+
+#: libexif/exif-entry.c:662
+msgid "Normal mono"
+msgstr "Schwarz-Weiss"
+
+#: libexif/exif-entry.c:662
+msgid "RGB"
+msgstr "RGB"
+
+#: libexif/exif-entry.c:662
+msgid "Palette"
+msgstr "Palette"
+
+#: libexif/exif-entry.c:663
+msgid "CMYK"
+msgstr "CMYK"
+
+#: libexif/exif-entry.c:663
+msgid "YCbCr"
+msgstr "YCbCr"
+
+#: libexif/exif-entry.c:663
+msgid "CieLAB"
+msgstr "CieLAB"
+
+#: libexif/exif-entry.c:665
+msgid "Normal process"
+msgstr "Normale Verarbeitung"
+
+#: libexif/exif-entry.c:665
+msgid "Custom process"
+msgstr "Gesonderte Verarbeitung"
+
+#: libexif/exif-entry.c:667
+msgid "Auto exposure"
+msgstr "Automatische Belichtungzeit"
+
+#: libexif/exif-entry.c:667 libexif/fuji/mnote-fuji-entry.c:139
+msgid "Manual exposure"
+msgstr "Manuelle Belichtungszeit"
+
+#: libexif/exif-entry.c:667
+msgid "Auto bracket"
+msgstr "Automatischer Erfassung"
+
+#: libexif/exif-entry.c:669
+msgid "Auto white balance"
+msgstr "Automatischer Weißabgleich"
+
+#: libexif/exif-entry.c:669
+msgid "Manual white balance"
+msgstr "Manueller Weißabgleich"
+
+#: libexif/exif-entry.c:674
+msgid "Low gain up"
+msgstr "Low gain up"
+
+#: libexif/exif-entry.c:674
+msgid "High gain up"
+msgstr "High gain up"
+
+#: libexif/exif-entry.c:675
+msgid "Low gain down"
+msgstr "Low gain down"
+
+#: libexif/exif-entry.c:675
+msgid "High gain down"
+msgstr "High gain down"
+
+#: libexif/exif-entry.c:677
+msgid "Low saturation"
+msgstr "Geringe Sättigung"
+
+#: libexif/exif-entry.c:677 test/nls/test-codeset.c:48
+#: test/nls/test-codeset.c:61
+msgid "High saturation"
+msgstr "Hohe Sättigung"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:63
+#: libexif/olympus/mnote-olympus-entry.c:205
+#: libexif/olympus/mnote-olympus-entry.c:214
+#: libexif/pentax/mnote-pentax-entry.c:106
+#: libexif/pentax/mnote-pentax-entry.c:170
+msgid "Soft"
+msgstr "Weich"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:65 libexif/fuji/mnote-fuji-entry.c:95
+#: libexif/olympus/mnote-olympus-entry.c:204
+#: libexif/olympus/mnote-olympus-entry.c:212
+#: libexif/pentax/mnote-pentax-entry.c:107
+msgid "Hard"
+msgstr "Hart"
+
+#: libexif/exif-entry.c:695 libexif/exif-entry.c:713 libexif/exif-entry.c:795
+#: libexif/olympus/mnote-olympus-entry.c:589
+#: libexif/olympus/mnote-olympus-entry.c:683
+#: libexif/olympus/mnote-olympus-entry.c:738
+#: libexif/pentax/mnote-pentax-entry.c:256
+msgid "Unknown"
+msgstr "Unbekannt"
+
+#: libexif/exif-entry.c:696
+msgid "Avg"
+msgstr "Mittel"
+
+#: libexif/exif-entry.c:697
+msgid "Center-weight"
+msgstr "Mittelpunkt gewichtet"
+
+#: libexif/exif-entry.c:699
+msgid "Multi spot"
+msgstr "Mehr-Punkt"
+
+#: libexif/exif-entry.c:700
+msgid "Pattern"
+msgstr "Raster"
+
+#: libexif/exif-entry.c:705
+msgid "Uncompressed"
+msgstr "Unkomprimiert"
+
+#: libexif/exif-entry.c:706
+msgid "LZW compression"
+msgstr "LZW Kompression"
+
+#: libexif/exif-entry.c:707 libexif/exif-entry.c:708
+msgid "JPEG compression"
+msgstr "JPEG Kompression"
+
+#: libexif/exif-entry.c:709
+msgid "Deflate/ZIP compression"
+msgstr "Deflate/ZIP Kompression"
+
+#: libexif/exif-entry.c:710
+msgid "PackBits compression"
+msgstr "PackBits Kompression"
+
+#: libexif/exif-entry.c:716
+msgid "Tungsten incandescent light"
+msgstr "weißglühendes Wolfram Licht"
+
+#: libexif/exif-entry.c:718
+msgid "Fine weather"
+msgstr "Gutes Wetter"
+
+#: libexif/exif-entry.c:719
+msgid "Cloudy weather"
+msgstr "Wolkiges Wetter"
+
+#: libexif/exif-entry.c:722 libexif/fuji/mnote-fuji-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:252
+msgid "Day white fluorescent"
+msgstr "Tageslichtweiß Leuchtstoff"
+
+#: libexif/exif-entry.c:723
+msgid "Cool white fluorescent"
+msgstr "Kühles weißes Leuchtstoff"
+
+#: libexif/exif-entry.c:724 libexif/fuji/mnote-fuji-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:253
+msgid "White fluorescent"
+msgstr "Weißes Leuchtstofflicht"
+
+#: libexif/exif-entry.c:725
+msgid "Standard light A"
+msgstr "Standard Licht A"
+
+#: libexif/exif-entry.c:726
+msgid "Standard light B"
+msgstr "Standard Licht B"
+
+#: libexif/exif-entry.c:727
+msgid "Standard light C"
+msgstr "Standard Licht C"
+
+#: libexif/exif-entry.c:728
+msgid "D55"
+msgstr "D55"
+
+#: libexif/exif-entry.c:729
+msgid "D65"
+msgstr "D65"
+
+#: libexif/exif-entry.c:730
+msgid "D75"
+msgstr "D75"
+
+#: libexif/exif-entry.c:731
+msgid "ISO studio tungsten"
+msgstr "ISO Studio Wolfram"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "Inch"
+msgstr "Zoll"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "in"
+msgstr "Zoll"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "Centimeter"
+msgstr "Zentimeter"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "cm"
+msgstr "cm"
+
+#: libexif/exif-entry.c:745
+msgid "Normal program"
+msgstr "Normalprogramm"
+
+#: libexif/exif-entry.c:746
+msgid "Aperture priority"
+msgstr "optimiert nach Blende"
+
+#: libexif/exif-entry.c:746 libexif/exif-tag.c:550
+msgid "Aperture"
+msgstr "Blende"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter priority"
+msgstr "optimiert nach Belichtungszeit"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter"
+msgstr "Belichtungszeit"
+
+#: libexif/exif-entry.c:748
+msgid "Creative program (biased toward depth of field)"
+msgstr "Kreatives Programm (bevorzugt Schärfentiefe)"
+
+#: libexif/exif-entry.c:749
+msgid "Creative"
+msgstr "Kreativ"
+
+#: libexif/exif-entry.c:750
+msgid "Creative program (biased toward fast shutter speed)"
+msgstr "Kreatives Programm (bevorzugt kurze Belichtungszeit)"
+
+#: libexif/exif-entry.c:751
+msgid "Action"
+msgstr "Action"
+
+#: libexif/exif-entry.c:752
+msgid "Portrait mode (for closeup photos with the background out of focus)"
+msgstr "Portrait Modus (für Nahaufnahmen mit unscharfem Hintergrund)"
+
+#: libexif/exif-entry.c:754
+msgid "Landscape mode (for landscape photos with the background in focus)"
+msgstr "Landschafts Modus (für Landschaftsaufnahmen mit scharfem Hintergrund)"
+
+#: libexif/exif-entry.c:758 libexif/exif-entry.c:763
+#: libexif/olympus/mnote-olympus-entry.c:97
+msgid "Flash did not fire"
+msgstr "Blitz löste nicht aus"
+
+#: libexif/exif-entry.c:758
+msgid "No flash"
+msgstr "Kein Blitz"
+
+#: libexif/exif-entry.c:759
+msgid "Flash fired"
+msgstr "Blitz löste aus"
+
+#: libexif/exif-entry.c:759 libexif/olympus/mnote-olympus-entry.c:170
+#: libexif/olympus/mnote-olympus-entry.c:175
+#: libexif/olympus/mnote-olympus-entry.c:209
+#: libexif/olympus/mnote-olympus-entry.c:218
+#: libexif/olympus/mnote-olympus-entry.c:241
+msgid "Yes"
+msgstr "Ja"
+
+#: libexif/exif-entry.c:760
+msgid "Strobe return light not detected"
+msgstr "Blitzreflektion nicht erkannt"
+
+#: libexif/exif-entry.c:760
+msgid "Without strobe"
+msgstr "Ohne Röhrenblitz"
+
+#: libexif/exif-entry.c:762
+msgid "Strobe return light detected"
+msgstr "Blitzreflektion erkannt"
+
+#: libexif/exif-entry.c:762
+msgid "With strobe"
+msgstr "Mit Röhrenblitz"
+
+#: libexif/exif-entry.c:764
+msgid "Flash fired, compulsory flash mode"
+msgstr "Blitz ausgelöst, festgelegter Blitzmodus"
+
+#: libexif/exif-entry.c:765
+msgid "Flash fired, compulsory flash mode, return light not detected"
+msgstr ""
+"Blitz ausgelöst, festgelegter Blitzmodus, Blitzreflektion nicht erkannt"
+
+#: libexif/exif-entry.c:767
+msgid "Flash fired, compulsory flash mode, return light detected"
+msgstr "Blitz ausgelöst, festgelegter Blitzmodus, Blitzreflektion erkannt"
+
+#: libexif/exif-entry.c:769
+msgid "Flash did not fire, compulsory flash mode"
+msgstr "Blitz löste nicht aus, erzwungener Blitzmodus"
+
+#: libexif/exif-entry.c:770
+msgid "Flash did not fire, auto mode"
+msgstr "Blitz löste nicht aus, automatischer Modus"
+
+#: libexif/exif-entry.c:771
+msgid "Flash fired, auto mode"
+msgstr "Blitz löste aus, automatischer Modus"
+
+#: libexif/exif-entry.c:772
+msgid "Flash fired, auto mode, return light not detected"
+msgstr "Blitz löste aus, automatischer Modus, keine Blitzreflektion erkannt"
+
+#: libexif/exif-entry.c:774
+msgid "Flash fired, auto mode, return light detected"
+msgstr "Blitz ausgelöst, automatischer Modus, Blitzreflektion erkannt"
+
+#: libexif/exif-entry.c:775
+msgid "No flash function"
+msgstr "Keine Blitzlichtfunktion"
+
+#: libexif/exif-entry.c:776
+msgid "Flash fired, red-eye reduction mode"
+msgstr "Blitz ausgelöst, Rote Augen Reduktions Modus"
+
+#: libexif/exif-entry.c:777
+msgid "Flash fired, red-eye reduction mode, return light not detected"
+msgstr ""
+"Blitz ausgelöst, Rote Augen Reduktions Modus, Blitzreflektion nicht erkannt"
+
+#: libexif/exif-entry.c:779
+msgid "Flash fired, red-eye reduction mode, return light detected"
+msgstr "Blitz ausgelöst, Rote Augen Reduktions Modus, Blitzreflektion erkannt"
+
+#: libexif/exif-entry.c:781
+msgid "Flash fired, compulsory flash mode, red-eye reduction mode"
+msgstr "Blitz ausgelöst, fester Blitzmodus, Rote Augen Reduktions Modus"
+
+#: libexif/exif-entry.c:783
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light not "
+"detected"
+msgstr ""
+"Blitz ausgelöst, fester Blitzmodus, Rote Augen Reduktions Modus, keine "
+"Blitzreflektion erkannt"
+
+#: libexif/exif-entry.c:785
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light "
+"detected"
+msgstr ""
+"Blitz ausgelöst, fester Blitzmodus, Rote Augen Reduktions Modus, "
+"Blitzreflektion erkannt"
+
+#: libexif/exif-entry.c:787
+msgid "Flash did not fire, auto mode, red-eye reduction mode"
+msgstr ""
+"Blitz nicht ausgelöst, automatischer Modus, Rote Augen Reduktions Modus"
+
+#: libexif/exif-entry.c:788
+msgid "Flash fired, auto mode, red-eye reduction mode"
+msgstr "Blitz ausgelöst, automatischer Modus, Rote Augen Reduktions Modus"
+
+#: libexif/exif-entry.c:789
+msgid ""
+"Flash fired, auto mode, return light not detected, red-eye reduction mode"
+msgstr ""
+"Blitz ausgelöst, automatischer Modus, Blitzreflektion nicht erkannt, Rote "
+"Augen Reduktionsmodus"
+
+#: libexif/exif-entry.c:791
+msgid "Flash fired, auto mode, return light detected, red-eye reduction mode"
+msgstr ""
+"Blitz ausgelöst, automatischer Modus, Blitzreflektion erkannt, Rote Augen "
+"Reduktionsmodus"
+
+#: libexif/exif-entry.c:795
+msgid "?"
+msgstr "?"
+
+#: libexif/exif-entry.c:797
+msgid "Close view"
+msgstr "Nahaufnahme"
+
+#: libexif/exif-entry.c:798
+msgid "Distant view"
+msgstr "Große Entfernung"
+
+#: libexif/exif-entry.c:798
+msgid "Distant"
+msgstr "entfernt"
+
+#: libexif/exif-entry.c:801
+msgid "sRGB"
+msgstr "sRGB"
+
+#: libexif/exif-entry.c:802
+msgid "Adobe RGB"
+msgstr "Adobe RGB"
+
+#: libexif/exif-entry.c:803
+msgid "Uncalibrated"
+msgstr "Unkalibriert"
+
+#: libexif/exif-entry.c:857
+#, c-format
+msgid "Invalid size of entry (%i, expected %li x %i)."
+msgstr "Ungültige Größe des Eintrags (%i, erwartet %li x %i)."
+
+#: libexif/exif-entry.c:890
+msgid "Unsupported UNICODE string"
+msgstr "Nicht unterstützter UNICODE String."
+
+#: libexif/exif-entry.c:898
+msgid "Unsupported JIS string"
+msgstr "Nicht unterstützter JIS String."
+
+#: libexif/exif-entry.c:914
+msgid "Tag UserComment does not comply with standard but contains data."
+msgstr ""
+"Der Tag \"UserComment\" ist nicht standard konform, enthält aber Daten."
+
+#: libexif/exif-entry.c:918
+#, c-format
+msgid "Byte at position %i: 0x%02x"
+msgstr "Byte an Position %i: 0x%02x"
+
+#: libexif/exif-entry.c:927
+msgid "Unknown Exif Version"
+msgstr "Unbekannte Exif-Version"
+
+#: libexif/exif-entry.c:931
+#, c-format
+msgid "Exif Version %d.%d"
+msgstr "Exif Version %d.%d"
+
+#: libexif/exif-entry.c:942
+msgid "FlashPix Version 1.0"
+msgstr "FlashPix Version 1.0"
+
+#: libexif/exif-entry.c:944
+msgid "FlashPix Version 1.01"
+msgstr "FlashPix Version 1.01"
+
+#: libexif/exif-entry.c:946
+msgid "Unknown FlashPix Version"
+msgstr "Unbekannte FlashPix Version"
+
+#: libexif/exif-entry.c:959 libexif/exif-entry.c:972 libexif/exif-entry.c:1628
+#: libexif/exif-entry.c:1633 libexif/exif-entry.c:1637
+#: libexif/exif-entry.c:1642 libexif/exif-entry.c:1643
+msgid "[None]"
+msgstr "[Keins]"
+
+#: libexif/exif-entry.c:961
+msgid "(Photographer)"
+msgstr "(Photograph)"
+
+#: libexif/exif-entry.c:975
+msgid "(Editor)"
+msgstr "(Editor)"
+
+#: libexif/exif-entry.c:999 libexif/exif-entry.c:1079
+#: libexif/exif-entry.c:1096 libexif/exif-entry.c:1140
+#, c-format
+msgid "%.02f EV"
+msgstr "%.02f EV"
+
+#: libexif/exif-entry.c:1000
+#, c-format
+msgid " (f/%.01f)"
+msgstr " (f/%.01f)"
+
+#: libexif/exif-entry.c:1034
+#, c-format
+msgid " (35 equivalent: %d mm)"
+msgstr " (35 äquivalent: %d mm)"
+
+#: libexif/exif-entry.c:1067 libexif/exif-entry.c:1068
+msgid " sec."
+msgstr "sek."
+
+#: libexif/exif-entry.c:1082
+#, c-format
+msgid " (1/%d sec.)"
+msgstr " (1/%d sek.)"
+
+#: libexif/exif-entry.c:1084
+#, c-format
+msgid " (%d sec.)"
+msgstr " (%d sek.)"
+
+#: libexif/exif-entry.c:1097
+#, c-format
+msgid " (%.02f cd/m^2)"
+msgstr " (%.02f cd/m^2)"
+
+#: libexif/exif-entry.c:1107
+msgid "DSC"
+msgstr "DSC"
+
+#: libexif/exif-entry.c:1109 libexif/exif-entry.c:1149
+#: libexif/exif-entry.c:1236 libexif/exif-entry.c:1287
+#: libexif/exif-entry.c:1296 libexif/exif-entry.c:1332
+#: libexif/fuji/mnote-fuji-entry.c:236 libexif/fuji/mnote-fuji-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:359
+#, c-format
+msgid "Internal error (unknown value %i)"
+msgstr "Interner Fehler (unbekannter Wert %i)"
+
+#: libexif/exif-entry.c:1117
+msgid "-"
+msgstr "-"
+
+#: libexif/exif-entry.c:1118
+msgid "Y"
+msgstr "Y"
+
+#: libexif/exif-entry.c:1119
+msgid "Cb"
+msgstr "Cb"
+
+#: libexif/exif-entry.c:1120
+msgid "Cr"
+msgstr "Cr"
+
+#: libexif/exif-entry.c:1121
+msgid "R"
+msgstr "R"
+
+#: libexif/exif-entry.c:1122
+msgid "G"
+msgstr "G"
+
+#: libexif/exif-entry.c:1123
+msgid "B"
+msgstr "B"
+
+#: libexif/exif-entry.c:1124
+msgid "Reserved"
+msgstr "Reserviert"
+
+#: libexif/exif-entry.c:1147
+msgid "Directly photographed"
+msgstr "Direkt fotographiert"
+
+#: libexif/exif-entry.c:1160
+msgid "YCbCr4:2:2"
+msgstr "YCbCr4:2:2"
+
+#: libexif/exif-entry.c:1162
+msgid "YCbCr4:2:0"
+msgstr "YCbCr4:2:0"
+
+#: libexif/exif-entry.c:1179
+#, c-format
+msgid "Within distance %i of (x,y) = (%i,%i)"
+msgstr "Innerhalb einer Entfernung %i von (x,y) = (%i,%i)"
+
+#: libexif/exif-entry.c:1188
+#, c-format
+msgid "Within rectangle (width %i, height %i) around (x,y) = (%i,%i)"
+msgstr "Innerhalb eines Rechtecks (Breite %i, Höhe %i) um (x,y) = (%i,%i)"
+
+#: libexif/exif-entry.c:1194
+#, c-format
+msgid "Unexpected number of components (%li, expected 2, 3, or 4)."
+msgstr "Unerwartete Nummer von Komponenten (%li, erwartete 2, 3 oder 4)."
+
+#: libexif/exif-entry.c:1232
+msgid "Sea level"
+msgstr "Normalnull"
+
+#: libexif/exif-entry.c:1234
+msgid "Sea level reference"
+msgstr "Höhenreferenz"
+
+#: libexif/exif-entry.c:1342
+#, c-format
+msgid "Unknown value %i"
+msgstr "Unbekannter Wert %i"
+
+#: libexif/exif-format.c:37
+msgid "Short"
+msgstr "Short"
+
+#: libexif/exif-format.c:38
+msgid "Rational"
+msgstr "Bruch"
+
+#: libexif/exif-format.c:39
+msgid "SRational"
+msgstr "SRational"
+
+#: libexif/exif-format.c:40
+msgid "Undefined"
+msgstr "Undefiniert"
+
+#: libexif/exif-format.c:41
+msgid "ASCII"
+msgstr "ASCII"
+
+#: libexif/exif-format.c:42
+msgid "Long"
+msgstr "Long"
+
+#: libexif/exif-format.c:43
+msgid "Byte"
+msgstr "Byte"
+
+#: libexif/exif-format.c:44
+msgid "SByte"
+msgstr "SByte"
+
+#: libexif/exif-format.c:45
+msgid "SShort"
+msgstr "SShort"
+
+#: libexif/exif-format.c:46
+msgid "SLong"
+msgstr "SLong"
+
+#: libexif/exif-format.c:47
+msgid "Float"
+msgstr "Float"
+
+#: libexif/exif-format.c:48
+msgid "Double"
+msgstr "Double"
+
+#: libexif/exif-loader.c:119
+#, c-format
+msgid "The file '%s' could not be opened."
+msgstr "Die Datei »%s« konnte nicht geöffnet werden."
+
+#: libexif/exif-loader.c:300
+msgid "The data supplied does not seem to contain EXIF data."
+msgstr "Die übergebenen Daten scheinen keine EXIF Daten zu enthalten."
+
+#: libexif/exif-log.c:43
+msgid "Debugging information"
+msgstr "Debug Informationen."
+
+#: libexif/exif-log.c:44
+msgid "Debugging information is available."
+msgstr "Debug Informationen sind vorhanden."
+
+#: libexif/exif-log.c:45
+msgid "Not enough memory"
+msgstr "Nicht genug Speicher."
+
+#: libexif/exif-log.c:46
+msgid "The system cannot provide enough memory."
+msgstr "Es ist nicht genug Speicher vorhanden."
+
+#: libexif/exif-log.c:47
+msgid "Corrupt data"
+msgstr "Korrupte Daten"
+
+#: libexif/exif-log.c:48
+msgid "The data provided does not follow the specification."
+msgstr "Die Daten folgen nicht der Spezifikation."
+
+#: libexif/exif-tag.c:62
+msgid "GPS Tag Version"
+msgstr "GPS Tag Version"
+
+#: libexif/exif-tag.c:63
+msgid ""
+"Indicates the version of <GPSInfoIFD>. The version is given as 2.0.0.0. This "
+"tag is mandatory when <GPSInfo> tag is present. (Note: The <GPSVersionID> "
+"tag is given in bytes, unlike the <ExifVersion> tag. When the version is "
+"2.0.0.0, the tag value is 02000000.H)."
+msgstr ""
+"Gibt die Version des <GPSInfoID> Tags an. Die Version ist spezifiziert als "
+"2.0.0.0. Dieser Tag ist zwingend erforderlich wenn ein <GPSInfo> Tag "
+"vorhanden ist. (Merke: Der <GPSVersionID> Tag ist in Bytes spezifiziert, im "
+"Unterschied zum <ExifVersion> Tag. Wenn die Version 2.0.0.0 ist ist der Tag "
+"Wert 02000000 H)."
+
+#: libexif/exif-tag.c:69
+msgid "Interoperability Index"
+msgstr "Interoperabilitäts Index"
+
+#: libexif/exif-tag.c:70
+msgid ""
+"Indicates the identification of the Interoperability rule. Use \"R98\" for "
+"stating ExifR98 Rules. Four bytes used including the termination code "
+"(NULL). see the separate volume of Recommended Exif Interoperability Rules "
+"(ExifR98) for other tags used for ExifR98."
+msgstr ""
+"Spezifiziert die Identifikation der Interoperabilitätsregel. Benutze \"R98\" "
+"für ExifR98 Regeln. 4 Bytes werden benutzt inklusive des End Codes (NULL). "
+"Siehe auch das seperate Dokument der \"Recommended Exif Interoperability "
+"Rules\" (ExifR98) für andere Tags die für ExifR98 benutzt werden."
+
+#: libexif/exif-tag.c:76
+msgid "North or South Latitude"
+msgstr "Nördlicher oder südlicher Breitengrad"
+
+#: libexif/exif-tag.c:77
+msgid ""
+"Indicates whether the latitude is north or south latitude. The ASCII value "
+"'N' indicates north latitude, and 'S' is south latitude."
+msgstr ""
+"Gibt an, ob die Breite in nördlicher oder südlicher Breite angegeben ist. "
+"Der ASCII Wert \"N\" gibt nördliche Breite an, der Wert \"S\" ist südliche "
+"Breite."
+
+#: libexif/exif-tag.c:81
+msgid "Interoperability Version"
+msgstr "Interoperabilitäts Version"
+
+#: libexif/exif-tag.c:83
+msgid "Latitude"
+msgstr "Breitengrad"
+
+#: libexif/exif-tag.c:84
+msgid ""
+"Indicates the latitude. The latitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is dd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is dd/1,mmmm/100,0/1."
+msgstr ""
+"Enthält den Breitengrad. Der Breitengrad wird durch drei RATIONAL Werte "
+"angegeben, den Grad, die Minuten und die Sekunden. Wenn Grad, Minuten und "
+"Sekunden angegeben werden, ist das Format dd/1, mm/1, ss/1. Wenn Grade und "
+"Minuten benutzt werden und, z.B., Minutenteil auf 2 Stellen Genauigkeit, "
+"dann ist das Format, dd/1, mmmm/100, 0/1."
+
+#: libexif/exif-tag.c:91
+msgid "East or West Longitude"
+msgstr "Östliche oder Westliche Länge"
+
+#: libexif/exif-tag.c:92
+msgid ""
+"Indicates whether the longitude is east or west longitude. ASCII 'E' "
+"indicates east longitude, and 'W' is west longitude."
+msgstr ""
+"Gibt an, ob die Länge östliche oder westliche Länge ist. ASCII 'E' steht für "
+"östliche Länge und 'W' für westliche."
+
+#: libexif/exif-tag.c:95
+msgid "Longitude"
+msgstr "Längengrad"
+
+#: libexif/exif-tag.c:96
+msgid ""
+"Indicates the longitude. The longitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is ddd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is ddd/1,mmmm/100,0/1."
+msgstr ""
+"Enthält den Längengrad. Der Längengrad wird durch drei RATIONAL Werte "
+"angegeben, den Grad, die Minuten und die Sekunden. Wenn Grad, Minuten und "
+"Sekunden angegeben werden, ist das Format dd/1, mm/1, ss/1. Wenn Grade und "
+"Minuten benutzt werden und, z.B., Minutenteil auf 2 Stellen Genauigkeit, "
+"dann ist das Format, dd/1, mmmm/100, 0/1."
+
+#: libexif/exif-tag.c:103
+msgid "Altitude Reference"
+msgstr "Höhenreferenz"
+
+#: libexif/exif-tag.c:104
+msgid ""
+"Indicates the altitude used as the reference altitude. If the reference is "
+"sea level and the altitude is above sea level, 0 is given. If the altitude "
+"is below sea level, a value of 1 is given and the altitude is indicated as "
+"an absolute value in the GSPAltitude tag. The reference unit is meters. Note "
+"that this tag is BYTE type, unlike other reference tags."
+msgstr ""
+"Gibt die Referenzhöhe an. Wenn die Referenz der Meeresspiegel ist, und die "
+"Höhe ist über dem Meeresspiegel, dann ist dieser Wert 0. Wenn sie unter dem "
+"Meeresspiegel ist, dann ist hier ein Wert von 1 und die Höhe ist als absolut "
+"Wert im <GPSAltitudeTag> angegeben. Die verwendete Einheit ist Meter. "
+"Beachten sie, das dieses Tag den Typ BYTE hat."
+
+#: libexif/exif-tag.c:110
+msgid "Altitude"
+msgstr "Höhe"
+
+#: libexif/exif-tag.c:111
+msgid ""
+"Indicates the altitude based on the reference in GPSAltitudeRef. Altitude is "
+"expressed as one RATIONAL value. The reference unit is meters."
+msgstr ""
+"Gibt die Höhe über der Referenz Höhe an in <GPSAltitudeRef> an. Höhe ist ein "
+"RATIONAL Wert. Die Referenzeinheit ist Meter."
+
+#: libexif/exif-tag.c:114
+msgid "GPS Time (Atomic Clock)"
+msgstr "GPS Zeit (Atom Uhr)"
+
+#: libexif/exif-tag.c:115
+msgid ""
+"Indicates the time as UTC (Coordinated Universal Time). TimeStamp is "
+"expressed as three RATIONAL values giving the hour, minute, and second."
+msgstr ""
+"Zeigt die Zeit als UTC (Universal Time Coordinated), TimeStamp wird in drei "
+"RATIONAL Werte (Stunden, Minuten, Sekunden) ausgedrückt."
+
+#: libexif/exif-tag.c:118
+msgid "GPS Satellites"
+msgstr "GPS Zeit"
+
+#: libexif/exif-tag.c:119
+msgid ""
+"Indicates the GPS satellites used for measurements. This tag can be used to "
+"describe the number of satellites, their ID number, angle of elevation, "
+"azimuth, SNR and other information in ASCII notation. The format is not "
+"specified. If the GPS receiver is incapable of taking measurements, value of "
+"the tag shall be set to NULL."
+msgstr ""
+"Gibt die GPS Satelliten an die für die Messung verwendet wurden. Dieses Tag "
+"kann zur Angabe der Zahl der Satellitten, deren ID Nummer, Höhenwinkel, "
+"Azimuth, SNR und anderer informationen in ASCII verwendet werden. Das Format "
+"ist nicht festgelegt. Wenn der GPS Empfänger nicht zu Messungen fähig ist, "
+"sollte dieses Tag auf NULL gesetzt werden."
+
+#: libexif/exif-tag.c:125
+msgid "GPS Receiver Status"
+msgstr "Status des GPS Empfängers"
+
+#: libexif/exif-tag.c:126
+msgid ""
+"Indicates the status of the GPS receiver when the image is recorded. 'A' "
+"means measurement is in progress, and 'V' means the measurement is "
+"Interoperability."
+msgstr ""
+"Zeigt den GPS Empfänger Status zur Zeit der Bildaufnahme an. »A« zeigt eine "
+"laufende Messung, »V« heißt vollzogene Messung."
+
+#: libexif/exif-tag.c:129
+msgid "GPS Measurement Mode"
+msgstr "GPS Messmodus"
+
+#: libexif/exif-tag.c:130
+msgid ""
+"Indicates the GPS measurement mode. '2' means two-dimensional measurement "
+"and '3' means three-dimensional measurement is in progress."
+msgstr ""
+"Zeigt den GPS Messmodus. »2« zeigt eine laufende zwei-dimensionale Messung an "
+"und »3« zeigt eine laufende drei-dimensionale Messung an."
+
+#: libexif/exif-tag.c:133
+msgid "Measurement Precision"
+msgstr "Messgenauigkeit"
+
+#: libexif/exif-tag.c:134
+msgid ""
+"Indicates the GPS DOP (data degree of precision). An HDOP value is written "
+"during two-dimensional measurement, and PDOP during three-dimensional "
+"measurement."
+msgstr ""
+"Gibt die GPS DOP (data degree of precision) Genauigkeit an. Ein HDOP Wert "
+"wird bei zweidimensionaler Messung geschrieben, ein PDOP Wert bei drei-"
+"dimensionaler Messung."
+
+#: libexif/exif-tag.c:137
+msgid "Speed Unit"
+msgstr "Geschwindigkeitseinheit"
+
+#: libexif/exif-tag.c:138
+msgid ""
+"Indicates the unit used to express the GPS receiver speed of movement. 'K', "
+"'M' and 'N' represent kilometers per hour, miles per hour, and knots."
+msgstr ""
+"Gibt die Einheit an in der die Geschwindigkeit des GPS Empfängers angegeben "
+"wird. »K« für Kilometer pro Stunde, »M« für Meilen pro Stunde, »K« für Knoten."
+
+#: libexif/exif-tag.c:141
+msgid "Speed of GPS Receiver"
+msgstr "Geschwindigkeit des GPS Empfängers"
+
+#: libexif/exif-tag.c:142
+msgid "Indicates the speed of GPS receiver movement."
+msgstr "Gibt die Geschwindigkeit des GPS Empfängers an."
+
+#: libexif/exif-tag.c:143
+msgid "Reference for direction of movement"
+msgstr "Referenz für die Bewegungsrichtung"
+
+#: libexif/exif-tag.c:144
+msgid ""
+"Indicates the reference for giving the direction of GPS receiver movement. "
+"'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+"Gibt die Referenz für die Richtung der Bewegung des GPS Empfängers an. »T« "
+"gibt die wahre Richtung und »M« die magnetische Richtung an."
+
+#: libexif/exif-tag.c:147
+msgid "Direction of Movement"
+msgstr "Richtung der Bewegung"
+
+#: libexif/exif-tag.c:148
+msgid ""
+"Indicates the direction of GPS receiver movement. The range of values is "
+"from 0.00 to 359.99."
+msgstr ""
+"Gibt die Richtung der Bewegung des GPS Empfängers an. Dieser Wert geht von "
+"0.0 bis 359.99."
+
+#: libexif/exif-tag.c:150
+msgid "GPS Image Direction Reference"
+msgstr "GPS Bild Richtungsreferenz"
+
+#: libexif/exif-tag.c:151
+msgid ""
+"Indicates the reference for giving the direction of the image when it is "
+"captured. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+"Gibt die Referenz für die Richtung des Bildes bei der Aufname an. T gibt die "
+"wahre Richtung und M die magnetische Richtung an."
+
+#: libexif/exif-tag.c:153
+msgid "GPS Image Direction"
+msgstr "GPS Bild Richtung"
+
+#: libexif/exif-tag.c:154
+msgid ""
+"Indicates the direction of the image when it was captured. The range of "
+"values is from 0.00 to 359.99."
+msgstr ""
+"Gibt die Richtung der Bildaufnahme an. Dieser Wert geht von 0.0 bis 359.99."
+
+#: libexif/exif-tag.c:156
+msgid "Geodetic Survey Data Used"
+msgstr "Geodätische Survey Daten verwendet"
+
+#: libexif/exif-tag.c:157
+msgid ""
+"Indicates the geodetic survey data used by the GPS receiver. If the survey "
+"data is restricted to Japan, the value of this tag is 'TOKYO' or 'WGS-84'. "
+"If a GPS Info tag is recorded, it is strongly recommended that this tag be "
+"recorded."
+msgstr ""
+"Gibt die geodätischen Survey Daten des GPS Empfängers an. Wenn die "
+"Surveydaten auf Japan beschränkt sind, ist der Wert dieses Tags »TOKYO« oder "
+"»WGS-84«. Wenn ein GPS Info Tag aufgezeichnet wird, ist es empfohlen dieses "
+"Tag aufzuzeichnen."
+
+#: libexif/exif-tag.c:161
+msgid "Reference For Latitude of Destination"
+msgstr "Referenz des Breitengrades des Ziels"
+
+#: libexif/exif-tag.c:162
+msgid ""
+"Indicates whether the latitude of the destination point is north or south "
+"latitude. The ASCII value 'N' indicates north latitude, and 'S' is south "
+"latitude."
+msgstr ""
+"Gibt an, ob die Breite in nördlicher oder südlicher Breite angegeben ist. "
+"Der ASCII Wert \"N\" gibt nördliche Breite an, der Wert \"S\" ist südliche "
+"Breite."
+
+#: libexif/exif-tag.c:165
+msgid "Latitude of Destination"
+msgstr "Breitengrad des Ziels"
+
+#: libexif/exif-tag.c:166
+msgid ""
+"Indicates the latitude of the destination point. The latitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If latitude is expressed as degrees, minutes and seconds, a "
+"typical format would be dd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be dd/1,mmmm/100,0/1."
+msgstr ""
+"Enthält den Breitengrad des Zielpunktes. Der Breitengrad wird durch drei "
+"RATIONAL Werte angegeben, den Grad, die Minuten und die Sekunden. Wenn Grad, "
+"Minuten und Sekunden angegeben werden, ist das Format dd/1, mm/1, ss/1. Wenn "
+"Grade und Minuten benutzt werden und, z.B., Minutenteil auf 2 Stellen "
+"Genauigkeit, dann ist das Format, dd/1, mmmm/100, 0/1."
+
+#: libexif/exif-tag.c:173
+msgid "Reference for Longitude of Destination"
+msgstr "Referenz des Längengrad des Zieles"
+
+#: libexif/exif-tag.c:174
+msgid ""
+"Indicates whether the longitude of the destination point is east or west "
+"longitude. ASCII 'E' indicates east longitude, and 'W' is west longitude."
+msgstr ""
+"Gibt an, ob die Länge östliche oder westliche Länge ist. ASCII 'E' steht für "
+"östliche Länge und 'W' für westliche."
+
+#: libexif/exif-tag.c:177
+msgid "Longitude of Destination"
+msgstr "Längengrad des Zieles"
+
+#: libexif/exif-tag.c:178
+msgid ""
+"Indicates the longitude of the destination point. The longitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If longitude is expressed as degrees, minutes and seconds, a "
+"typical format would be ddd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be ddd/1,mmmm/100,0/1."
+msgstr ""
+"Enthält den Längengrad des Zielpunktes. Der Längengrad wird durch drei "
+"RATIONAL Werte angegeben, den Grad, die Minuten und die Sekunden. Wenn Grad, "
+"Minuten und Sekunden angegeben werden, ist das Format dd/1, mm/1, ss/1. Wenn "
+"Grade und Minuten benutzt werden und, z.B., Minutenteil auf 2 Stellen "
+"Genauigkeit, dann ist das Format, dd/1, mmmm/100, 0/1."
+
+#: libexif/exif-tag.c:186
+msgid "Reference for Bearing of Destination"
+msgstr "Referenz für Richtung des Zieles"
+
+#: libexif/exif-tag.c:187
+msgid ""
+"Indicates the reference used for giving the bearing to the destination "
+"point. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+"Gibt die Referenz für die Richtung des Zielpunktes bei der Aufname an. T "
+"gibt die wahre Richtung und M die magnetische Richtung an."
+
+#: libexif/exif-tag.c:190
+msgid "Bearing of Destination"
+msgstr "Richtung des Zieles"
+
+#: libexif/exif-tag.c:191
+msgid ""
+"Indicates the bearing to the destination point. The range of values is from "
+"0.00 to 359.99."
+msgstr ""
+"Gibt die Richtung der Bildaufnahme auf den Zielpunkts an. Dieser Wert geht "
+"von 0.0 bis 359.99."
+
+#: libexif/exif-tag.c:193
+msgid "Reference for Distance to Destination"
+msgstr "Referenz für Entfernung zum Zieles"
+
+#: libexif/exif-tag.c:194
+msgid ""
+"Indicates the unit used to express the distance to the destination point. "
+"'K', 'M' and 'N' represent kilometers, miles and knots."
+msgstr ""
+"Gibt die Einheit der Entfernungsangabe zum Zielpunkts an. »K«, »M« und »N« sind "
+"respektive Kilometer, Meilen oder Knoten."
+
+#: libexif/exif-tag.c:197
+msgid "Distance to Destination"
+msgstr "Abstand zum Ziel"
+
+#: libexif/exif-tag.c:198
+msgid "Indicates the distance to the destination point."
+msgstr "Dieser Tag gibt den Abstand zum Zielpunkt an."
+
+#: libexif/exif-tag.c:199
+msgid "Name of GPS Processing Method"
+msgstr "Name der GPS Verarbeitungsmethode"
+
+#: libexif/exif-tag.c:200
+msgid ""
+"A character string recording the name of the method used for location "
+"finding. The first byte indicates the character code used, and this is "
+"followed by the name of the method. Since the Type is not ASCII, NULL "
+"termination is not necessary."
+msgstr ""
+"Ein String der den Namen der Methode der Positionsfindung enthält. Das erste "
+"Byte gibt den Zeichencode an und wird gefolgt vom Namen der Methode. Da der "
+"Typ nicht ASCII ist ist eine NULL Terminierung nicht nõtig."
+
+#: libexif/exif-tag.c:205
+msgid "Name of GPS Area"
+msgstr "Name des GPS Bereichs"
+
+#: libexif/exif-tag.c:206
+msgid ""
+"A character string recording the name of the GPS area. The first byte "
+"indicates the character code used, and this is followed by the name of the "
+"GPS area. Since the Type is not ASCII, NULL termination is not necessary."
+msgstr ""
+"Ein String der den Namen des GPS Gebietss enthält. Das erste Byte gibt den "
+"verwendeten Zeichensatz an und wird gefolgt vom Namen des GPS Gebiets. Da "
+"der Typ nicht ASCII ist, ist NULL Terminierung nicht nötig."
+
+#: libexif/exif-tag.c:210
+msgid "GPS Date"
+msgstr "GPS Zeit"
+
+#: libexif/exif-tag.c:211
+msgid ""
+"A character string recording date and time information relative to UTC "
+"(Coordinated Universal Time). The format is \"YYYY:MM:DD\". The length of "
+"the string is 11 bytes including NULL."
+msgstr ""
+"Ein String der Datum und Zeit relativ zu UTC (Universal Time Coordinated) "
+"angibt. Das Format ist »YYYY:MM:DD«. Die Länge des Strings ist 11 Byte "
+"inklusive der abschliessenden NULL."
+
+#: libexif/exif-tag.c:215
+msgid "GPS Differential Correction"
+msgstr "GPS Differentiallorrektion"
+
+#: libexif/exif-tag.c:216
+msgid ""
+"Indicates whether differential correction is applied to the GPS receiver."
+msgstr ""
+"Gibt an, ob differentiale Korrekturen auf den GPS Empfänger angewandt werden."
+
+#: libexif/exif-tag.c:220
+msgid "New Subfile Type"
+msgstr "Neuer Unterdateityp"
+
+#: libexif/exif-tag.c:220
+msgid "A general indication of the kind of data contained in this subfile."
+msgstr "Genereller Hinweis auf die Art der Daten in dieser Unterdatei"
+
+#: libexif/exif-tag.c:222
+msgid "Image Width"
+msgstr "Bildbreite"
+
+#: libexif/exif-tag.c:223
+msgid ""
+"The number of columns of image data, equal to the number of pixels per row. "
+"In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+"Die Anzahl der Spalten der Bilddaten, gleich zu der Anzahl an Pixel per "
+"Zeile. Im JPEG Datenstrom wird ein JPEG Marker anstelle dieses Tags "
+"verwendet."
+
+#: libexif/exif-tag.c:227
+msgid "Image Length"
+msgstr "Bildlänge"
+
+#: libexif/exif-tag.c:228
+msgid ""
+"The number of rows of image data. In JPEG compressed data a JPEG marker is "
+"used instead of this tag."
+msgstr ""
+"Die Anzahl an Spalten in den Bilddaten. In einem JPEG Datenstrom wird ein "
+"JPEG Marker anstelle dieses Tags verwendet."
+
+#: libexif/exif-tag.c:231
+msgid "Bits per Sample"
+msgstr "Bits per Sample."
+
+#: libexif/exif-tag.c:232
+msgid ""
+"The number of bits per image component. In this standard each component of "
+"the image is 8 bits, so the value for this tag is 8. See also "
+"<SamplesPerPixel>. In JPEG compressed data a JPEG marker is used instead of "
+"this tag."
+msgstr ""
+"Die Anzahl der Bits pro Image Komponente. In diesem Standard ist jede "
+"Komponente 8 Bit, so der Wert dieses Tags ist 8. Siehe auch "
+"<SamplesPerlPixel>. Im JPEG Datenstrom wird ein JPEG Marker statt diesem Tag "
+"benutzt."
+
+#: libexif/exif-tag.c:237
+msgid "Compression"
+msgstr "Kompression"
+
+#: libexif/exif-tag.c:238
+msgid ""
+"The compression scheme used for the image data. When a primary image is JPEG "
+"compressed, this designation is not necessary and is omitted. When "
+"thumbnails use JPEG compression, this tag value is set to 6."
+msgstr ""
+"Das Kompressionsschema das für diese Bilddaten verwendet wird. Wenn ein "
+"Primärbild komprimiert wird ist diese Spezifikation nicht notwendig und wird "
+"weggelassen. Wenn die Vorschaubilder JPEG Kompression verwenden, hat dieses "
+"Tag den Wert 6."
+
+#: libexif/exif-tag.c:244
+msgid "Photometric Interpretation"
+msgstr "Fotometrische Interpretation"
+
+#: libexif/exif-tag.c:245
+msgid ""
+"The pixel composition. In JPEG compressed data a JPEG marker is used instead "
+"of this tag."
+msgstr ""
+"Der Pixel Aufbau. Im JPEG Datenstrom wird ein JPEG Marker statt diesem Tag "
+"benutzt."
+
+#: libexif/exif-tag.c:249
+msgid "Fill Order"
+msgstr "Füllreihenfolge"
+
+#: libexif/exif-tag.c:251
+msgid "Document Name"
+msgstr "Dokumentenname"
+
+#: libexif/exif-tag.c:253
+msgid "Image Description"
+msgstr "Bildbeschreibung"
+
+#: libexif/exif-tag.c:254
+msgid ""
+"A character string giving the title of the image. It may be a comment such "
+"as \"1988 company picnic\" or the like. Two-bytes character codes cannot be "
+"used. When a 2-bytes code is necessary, the Exif Private tag <UserComment> "
+"is to be used."
+msgstr ""
+"Ein ASCII String der den Titel des Bildes spezifiziert. Dieser kann ein "
+"Kommentar sein wie zb \"1988 Firmen Picknick\" oder ähnlich. 2 Byte "
+"Character Codes können nicht benutzt werden. Wenn ein 2 Byte Code notwendig "
+"ist, sollte das Exif Private Tag <UserComment> benutzt werden."
+
+#: libexif/exif-tag.c:260
+msgid "Manufacturer"
+msgstr "Hersteller"
+
+#: libexif/exif-tag.c:261
+msgid ""
+"The manufacturer of the recording equipment. This is the manufacturer of the "
+"DSC, scanner, video digitizer or other equipment that generated the image. "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+"Der Hersteller des Bildaufzeichnungsgerätes.Dies ist der Hersteller der "
+"Kamera, des Scanners, des Video Digitalisierers oder anderem Equipment "
+"welches dieses Bild erzeugte. Wenn das Feld leer ist, wird er als unbekannt "
+"behandelt."
+
+#: libexif/exif-tag.c:267
+msgid "Model"
+msgstr "Modell"
+
+#: libexif/exif-tag.c:268
+msgid ""
+"The model name or model number of the equipment. This is the model name or "
+"number of the DSC, scanner, video digitizer or other equipment that "
+"generated the image. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Der Name oder die Modellnummer des Equipments. Dies ist der Name oder die "
+"Modellnummer der Kamera, des Scanners, des Video Digitalisierers oder des "
+"Equipments, das das Bild generiert hat. Wenn das Feld leer ist, wird es als "
+"unbekannt behandelt."
+
+#: libexif/exif-tag.c:273
+msgid "Strip Offsets"
+msgstr "Strip Offsets"
+
+#: libexif/exif-tag.c:274
+msgid ""
+"For each strip, the byte offset of that strip. It is recommended that this "
+"be selected so the number of strip bytes does not exceed 64 Kbytes. With "
+"JPEG compressed data this designation is not needed and is omitted. See also "
+"<RowsPerStrip> and <StripByteCounts>."
+msgstr ""
+"Für jeden Strip ist dies das Offset für diesen Strip in Bytes. Es wird "
+"empfohlen, diese so zu wählen, das die Anzahl an Byts pro Strip nicht 64 "
+"KBytes überschreitet. In einem JPEG Datenstrom diese Spezifikation nicht "
+"nötig und wird weggelassen. Siehe auch <RowsPerStrip> und <StripByteCounts>."
+
+#: libexif/exif-tag.c:280
+msgid "Orientation"
+msgstr "Orientierung"
+
+#: libexif/exif-tag.c:281
+msgid "The image orientation viewed in terms of rows and columns."
+msgstr "Die Bildausrichtung in Sicht von Spalten und Zeilen."
+
+#: libexif/exif-tag.c:284
+msgid "Samples per Pixel"
+msgstr "Samples pro Pixel"
+
+#: libexif/exif-tag.c:285
+msgid ""
+"The number of components per pixel. Since this standard applies to RGB and "
+"YCbCr images, the value set for this tag is 3. In JPEG compressed data a "
+"JPEG marker is used instead of this tag."
+msgstr ""
+"Die Anzahl der Komponenten pro Pixel. Da sicher dieser Standard auf RGB und "
+"YCbCr Bilder bezieht, ist der Wert dieses Tags immer 3. Im JPEG Datenstrom "
+"wird anstatt dieses Tags ein JPEG Marker benutzt."
+
+#: libexif/exif-tag.c:290
+msgid "Rows per Strip"
+msgstr "Zeilen pro Strip"
+
+#: libexif/exif-tag.c:291
+msgid ""
+"The number of rows per strip. This is the number of rows in the image of one "
+"strip when an image is divided into strips. With JPEG compressed data this "
+"designation is not needed and is omitted. See also <StripOffsets> and "
+"<StripByteCounts>."
+msgstr ""
+"Die Anzahl der Zeilen pro Strip. Dieses ist die Anzahl der Zeilen in einem "
+"Strip falls ein Bild in Strips unterteilt ist. In einem JPEG Datenstrom ist "
+"dieses Tag nicht nötig und wird weggelassen. Siehe auch <StripOffsets> und "
+"<StripByteCounts>."
+
+#: libexif/exif-tag.c:297
+msgid "Strip Byte Count"
+msgstr "Strip Byte Anzahl"
+
+#: libexif/exif-tag.c:298
+msgid ""
+"The total number of bytes in each strip. With JPEG compressed data this "
+"designation is not needed and is omitted."
+msgstr ""
+"Die Anzahl der Bytes pro Strip. In einem JPEG Datenstrom ist dieses Tag "
+"nicht nötig und wird weggelassen."
+
+#: libexif/exif-tag.c:301
+msgid "X-Resolution"
+msgstr "Auflösung in X-Richtung"
+
+#: libexif/exif-tag.c:302
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageWidth> direction. "
+"When the image resolution is unknown, 72 [dpi] is designated."
+msgstr ""
+"Die Anzahl an Pixel pro <ResolutionUnit> in der <ImageWidth> Richtung. Wenn "
+"keine bekannt ist, werden 72 [dpi] angenommen."
+
+#: libexif/exif-tag.c:306
+msgid "Y-Resolution"
+msgstr "Auflösung in Y-Richtung"
+
+#: libexif/exif-tag.c:307
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageLength> direction. "
+"The same value as <XResolution> is designated."
+msgstr ""
+"Die Anzahl an Pixel pro <ResolutionUnit> in der <ImageLength> Richtung. "
+"Derselbe Wert wie in <XResolution> wird spezifiziert."
+
+#: libexif/exif-tag.c:311
+msgid "Planar Configuration"
+msgstr "Planar Konfiguration"
+
+#: libexif/exif-tag.c:312
+msgid ""
+"Indicates whether pixel components are recorded in a chunky or planar "
+"format. In JPEG compressed files a JPEG marker is used instead of this tag. "
+"If this field does not exist, the TIFF default of 1 (chunky) is assumed."
+msgstr ""
+"Zeigt an, ob Pixelkomponenten im planarer oder \"chunky\" Format vorliegen. "
+"In einem JPEG Bild wird ein JPEG Marker statt diesem Tag benutzt. Wenn "
+"dieses Feld nicht existiert wird das TIFF Default 1 (\"chunky\") angenommen."
+
+#: libexif/exif-tag.c:317
+msgid "Resolution Unit"
+msgstr "Maßeinheit der Auflösung"
+
+#: libexif/exif-tag.c:318
+msgid ""
+"The unit for measuring <XResolution> and <YResolution>. The same unit is "
+"used for both <XResolution> and <YResolution>. If the image resolution is "
+"unknown, 2 (inches) is designated."
+msgstr ""
+"Die Einheit zur Messung von <XResolution> und <YResolution>. Die selbe "
+"Einheit wird für <XResolution> und <YResolution> verwendet. Wenn diese "
+"unbekannt ist, wird der Default von 2 (Zoll) angenommen."
+
+#: libexif/exif-tag.c:323
+msgid "Transfer Function"
+msgstr "(Farb)transfer Funktion"
+
+#: libexif/exif-tag.c:324
+msgid ""
+"A transfer function for the image, described in tabular style. Normally this "
+"tag is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+"Eine Transferfunktion für das Bild, beschrieben in tabuliertem Stil. "
+"Normalerweise ist dieses Tag nicht nötig, da der Farbraum bereits im "
+"Farbraum Informations Tag angegeben wurde (<ColorSpace>)."
+
+#: libexif/exif-tag.c:328
+msgid "Software"
+msgstr "Software"
+
+#: libexif/exif-tag.c:329
+msgid ""
+"This tag records the name and version of the software or firmware of the "
+"camera or image input device used to generate the image. The detailed format "
+"is not specified, but it is recommended that the example shown below be "
+"followed. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Dieses Tag spezifiziert den Namen und die Version der Software oder Firmware "
+"des Kameras oder anderen Bildeingabegerätes, das dieses Bild erzeugt hat. "
+"Das detaillierte Format ist nicht spezifiziert, aber es ist empfohlen, das "
+"das untenstehende Beispiel nachgeahmt wird. Wenn das Feld leer ist, wird es "
+"als unbekannt angenommen."
+
+#: libexif/exif-tag.c:336
+msgid "Date and Time"
+msgstr "Datum und Uhrzeit"
+
+#: libexif/exif-tag.c:337
+msgid ""
+"The date and time of image creation. In this standard (EXIF-2.1) it is the "
+"date and time the file was changed."
+msgstr ""
+"Das Datum und die Zeit der Kreierung des Bildes. In diesem Standard (EXIF-"
+"2.1) ist es das Datum und die Zeit der letzten Modifikation."
+
+#: libexif/exif-tag.c:340
+msgid "Artist"
+msgstr "Künstler"
+
+#: libexif/exif-tag.c:341
+msgid ""
+"This tag records the name of the camera owner, photographer or image "
+"creator. The detailed format is not specified, but it is recommended that "
+"the information be written as in the example below for ease of "
+"Interoperability. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Dieses Tag enthält den Namen des Besitzers der Kamera, des Photographen oder "
+"Bilderschaffers. Das Format ist nicht festgelegt, aber es wird empfohlen die "
+"Informationen wie in unten stehendem Beispiel anzugeben für besser "
+"Interoperabilität. Wenn das Feld leer ist, wird der Name als unbekannt "
+"angenommen."
+
+#: libexif/exif-tag.c:347 libexif/pentax/mnote-pentax-tag.c:113
+msgid "White Point"
+msgstr "Weißpunkt"
+
+#: libexif/exif-tag.c:348
+msgid ""
+"The chromaticity of the white point of the image. Normally this tag is not "
+"necessary, since color space is specified in the color space information tag "
+"(<ColorSpace>)."
+msgstr ""
+"Die Chromazität des Weißpunktes des Bildes. Normalerweise ist dieser Tag "
+"nicht nötig, da der Farbraum im <ColorSpace> Tag spezifiziert wird."
+
+#: libexif/exif-tag.c:353
+msgid "Primary Chromaticities"
+msgstr "Primäre Chromazität"
+
+#: libexif/exif-tag.c:354
+msgid ""
+"The chromaticity of the three primary colors of the image. Normally this tag "
+"is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+"Die Chromazität der drei primären Farben des Bildes. Normalerweise ist "
+"dieser Tag nicht notwendig, da der Farbraum bereits im Farbraum "
+"Informationstag <ColorSpace> angeben wurde."
+
+#: libexif/exif-tag.c:359
+msgid "Defined by Adobe Corporation to enable TIFF Trees within a TIFF file."
+msgstr ""
+"Definiert von der Adobe Corporation um TIFF Bäume innerhalb von TIFF Dateien "
+"zu erlauben."
+
+#: libexif/exif-tag.c:362
+msgid "Transfer Range"
+msgstr "Transfer Range"
+
+#: libexif/exif-tag.c:366
+msgid "JPEG Interchange Format"
+msgstr "JPEG Interchange Format"
+
+#: libexif/exif-tag.c:367
+msgid ""
+"The offset to the start byte (SOI) of JPEG compressed thumbnail data. This "
+"is not used for primary image JPEG data."
+msgstr ""
+"Der Abstand zum Startbyte (SOI) der JPEG Vorschaubilddaten. Dieses Tag wird "
+"nicht für die primären JPEG Daten benutzt."
+
+#: libexif/exif-tag.c:372
+msgid "JPEG Interchange Format Length"
+msgstr "JPEG Interchange Format Länge"
+
+#: libexif/exif-tag.c:373
+msgid ""
+"The number of bytes of JPEG compressed thumbnail data. This is not used for "
+"primary image JPEG data. JPEG thumbnails are not divided but are recorded as "
+"a continuous JPEG bitstream from SOI to EOI. Appn and COM markers should not "
+"be recorded. Compressed thumbnails must be recorded in no more than 64 "
+"Kbytes, including all other data to be recorded in APP1."
+msgstr ""
+"Die Anzahl an Bytes von JPEG Daten im Vorschaubild. Dieses Tag wird nicht "
+"für die primären Bilddaten benutzt. JPEG Vorschau Daten werden nicht "
+"aufgeteilt, sondern als kontinuierlicher Datenstrom zwischen den SOI und EOI "
+"Markern aufgezeichnet. JPEG komprimierte Vorschaubilder müssen inklusive "
+"aller anderen Daten in weniger als 64 KByte aufgezeichnet werden um in den "
+"APP1 JPEG Marker zu passen."
+
+#: libexif/exif-tag.c:382
+msgid "YCbCr Coefficients"
+msgstr "YCbCr Koeffizienten"
+
+#: libexif/exif-tag.c:383
+msgid ""
+"The matrix coefficients for transformation from RGB to YCbCr image data. No "
+"default is given in TIFF; but here the value given in \"Color Space "
+"Guidelines\", is used as the default. The color space is declared in a color "
+"space information tag, with the default being the value that gives the "
+"optimal image characteristics Interoperability this condition."
+msgstr ""
+"Die Matrix Koeffizienten für Transformationen von RGB in YCbCr Imagedaten. "
+"In TIFF ist kein Default angegeben, aber hier wird der Wert, der in Appendix "
+"E \"Color Space Guidelines\" angegeben ist, als Default verwendet. Der "
+"Farbraum ist im Farbraum Informations Tag deklariert, mit dem Defaultwert, "
+"welche die beste Bild Interoperabilität unter diesen Bedingungen ergibt."
+
+#: libexif/exif-tag.c:392
+msgid "YCbCr Sub-Sampling"
+msgstr "YCbCr Sub Sampling"
+
+#: libexif/exif-tag.c:393
+msgid ""
+"The sampling ratio of chrominance components in relation to the luminance "
+"component. In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+"Die Samplingrate der Chrominanz Komponenten in Bezug zu den Helligkeits "
+"Komponenten. In JPEG Datenströmen wird ein JPEG Marker anstelle dieses Tags "
+"verwendet."
+
+#: libexif/exif-tag.c:398
+msgid "YCbCr Positioning"
+msgstr "YCbCr Positionierung"
+
+#: libexif/exif-tag.c:399
+msgid ""
+"The position of chrominance components in relation to the luminance "
+"component. This field is designated only for JPEG compressed data or "
+"uncompressed YCbCr data. The TIFF default is 1 (centered); but when Y:Cb:Cr "
+"= 4:2:2 it is recommended in this standard that 2 (co-sited) be used to "
+"record data, in order to improve the image quality when viewed on TV "
+"systems. When this field does not exist, the reader shall assume the TIFF "
+"default. In the case of Y:Cb:Cr = 4:2:0, the TIFF default (centered) is "
+"recommended. If the reader does not have the capability of supporting both "
+"kinds of <YCbCrPositioning>, it shall follow the TIFF default regardless of "
+"the value in this field. It is preferable that readers be able to support "
+"both centered and co-sited positioning."
+msgstr ""
+"Die Position der Chrominance Komponenten in Relation zur Luminanzkomponente. "
+"Dieses Feld ist nur für JPEG komprimierte Daten oder für YCbCr Daten "
+"zulässig. Das TIFF Default ist 1 (zentriert), aber wenn Y:Cb:Cr = 4:2:2 "
+"verwendet wird schlägt dieser Standard vor das 2 (co-sited) zur Aufzeichnung "
+"von Daten verwendet wird, um die Bildqualität auf TV Systemen zu verbessern. "
+"Wenn dieses Feld nicht existiert, sollte das Leseprogramm den TIFF Default "
+"annehmen. Im Fall von Y:Cb:Cr = 4:2:0 wird der TIFF Default (zentriert) "
+"empfohlen. Wenn das Leseprogramm keine der beiden Varianten von "
+"<YCBCrPositioning> unterstützt, soll es den TIFF Defaults unabhängig vom "
+"Wert in diesem Feld verwenden. Es wird bevorzugt wenn der Leser sowohl "
+"zentrierte und co-sited Positionierung unterstützt."
+
+#: libexif/exif-tag.c:414
+msgid "Reference Black/White"
+msgstr "Schwarz/Weiß Referenz"
+
+#: libexif/exif-tag.c:415
+msgid ""
+"The reference black point value and reference white point value. No defaults "
+"are given in TIFF, but the values below are given as defaults here. The "
+"color space is declared in a color space information tag, with the default "
+"being the value that gives the optimal image characteristics "
+"Interoperability these conditions."
+msgstr ""
+"Der Referenz Schwarzwert und der Referenzweißwert. Im TIFF Standard sind "
+"keine Defaults angegeben, aber unten stehende Werte werden als Default hier "
+"verwendet. Der Farbraum ist in einem Farbraum Informations Tag deklariert, "
+"mit dem Wert als Default, der die besten Bildwerte für Interoperabilität "
+"garantiert."
+
+#: libexif/exif-tag.c:423
+msgid "XML Packet"
+msgstr "XML Paket"
+
+#: libexif/exif-tag.c:423
+msgid "XMP Metadata"
+msgstr "XMP Metadaten"
+
+#: libexif/exif-tag.c:438 libexif/exif-tag.c:784
+msgid "CFA Pattern"
+msgstr "CFA Pattern"
+
+#: libexif/exif-tag.c:439 libexif/exif-tag.c:785
+msgid ""
+"Indicates the color filter array (CFA) geometric pattern of the image sensor "
+"when a one-chip color area sensor is used. It does not apply to all sensing "
+"methods."
+msgstr ""
+"Gibt das geometrische Muster des Farbfilter Arrays (CFA - Color Filter "
+"Array) des Bildsensors an, wenn ein 1 Chip Farbflächen Sensor benutzt wird. "
+"Es bezieht sich nicht auf alle Sensormethoden."
+
+#: libexif/exif-tag.c:443
+msgid "Battery Level"
+msgstr "Batteriestatus"
+
+#: libexif/exif-tag.c:444
+msgid "Copyright"
+msgstr "Copyright"
+
+#: libexif/exif-tag.c:445
+msgid ""
+"Copyright information. In this standard the tag is used to indicate both the "
+"photographer and editor copyrights. It is the copyright notice of the person "
+"or organization claiming rights to the image. The Interoperability copyright "
+"statement including date and rights should be written in this field; e.g., "
+"\"Copyright, John Smith, 19xx. All rights reserved.\". In this standard the "
+"field records both the photographer and editor copyrights, with each "
+"recorded in a separate part of the statement. When there is a clear "
+"distinction between the photographer and editor copyrights, these are to be "
+"written in the order of photographer followed by editor copyright, separated "
+"by NULL (in this case, since the statement also ends with a NULL, there are "
+"two NULL codes) (see example 1). When only the photographer is given, it is "
+"terminated by one NULL code (see example 2). When only the editor copyright "
+"is given, the photographer copyright part consists of one space followed by "
+"a terminating NULL code, then the editor copyright is given (see example 3). "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+"Copyright Information. In diesem Standard wird dieser Tag dafür benutzt um "
+"sowohl das Copyright des Photographen als auch des Editors anzugeben. Es "
+"beinhaltet die Copyright Notiz der Person oder der Organisation die Rechte "
+"an dem Bild einfordert. Die interoperable Copyrightnotiz sollte in diesen "
+"Tag geschrieben werden; z.B., \"Copyright Claudia Mustermann, 200x. All "
+"rights reserved.\" In diesem Standard enthält dieses Feld sowohl Copyright "
+"des Photographen als auch des Editors in getrennten Statements. Wenn die "
+"Photographen und Editor Copyrights unterschiedlich sind, sollten sie in der "
+"Reihenfolge: Photograph, Editor, separiert durch NULL, aufgelistet werden. "
+"Terminiert wird die Liste durch einen weiteren NULL Code. Wenn nur ein "
+"Editor Copyright vorhanden ist, ist das Photographencopyright ein einzelnes "
+"Leerzeichen gefolgt durch die trennende NULL, dann folgt das Editor "
+"Copyright. Wenn das Feld leer ist, wird es als unbekannte gewertet."
+
+#: libexif/exif-tag.c:467
+msgid "Exposure time, given in seconds (sec)."
+msgstr "Belichtungszeit in Sekunden."
+
+#: libexif/exif-tag.c:469 libexif/pentax/mnote-pentax-tag.c:79
+msgid "F-Number"
+msgstr "F Nummer"
+
+#: libexif/exif-tag.c:470
+msgid "The F number."
+msgstr "Die F Nummer."
+
+#: libexif/exif-tag.c:475
+msgid "Image Resources Block"
+msgstr "Bild Resourcen Block"
+
+#: libexif/exif-tag.c:477
+msgid ""
+"A pointer to the Exif IFD. Interoperability, Exif IFD has the same structure "
+"as that of the IFD specified in TIFF. ordinarily, however, it does not "
+"contain image data as in the case of TIFF."
+msgstr ""
+"Ein Zeiger auf die Exif IFD Interoperabilität, Exif IFD hat die gleiche "
+"Struktur wie die des im TIFF spezifizierte IFD, allerdings enthält es keine "
+"Bilddaten wie im Fall von TIFF."
+
+#: libexif/exif-tag.c:485
+msgid "Exposure Program"
+msgstr "Belichtungsprogramm"
+
+#: libexif/exif-tag.c:486
+msgid ""
+"The class of the program used by the camera to set exposure when the picture "
+"is taken."
+msgstr ""
+"Die Programmklasse, die die Kamera zum Setzen der Belichtungszeit bei der "
+"Aufnahme benutzte."
+
+#: libexif/exif-tag.c:490
+msgid "Spectral Sensitivity"
+msgstr "Spektrale Empfindlichkeit"
+
+#: libexif/exif-tag.c:491
+msgid ""
+"Indicates the spectral sensitivity of each channel of the camera used. The "
+"tag value is an ASCII string compatible with the standard developed by the "
+"ASTM Technical Committee."
+msgstr ""
+"Gibt die spektrale Empfindlichkeit jedes Kanals der Kamera an. Der Tag Wert "
+"ist ein ASCII String kompatibel mit dem Standard der vom ASTM Technical "
+"Committee entwickelt wurde."
+
+#: libexif/exif-tag.c:496
+msgid "GPS Info IFD Pointer"
+msgstr "GPS Info IFD Pointer"
+
+#: libexif/exif-tag.c:497
+msgid ""
+"A pointer to the GPS Info IFD. The Interoperability structure of the GPS "
+"Info IFD, like that of Exif IFD, has no image data."
+msgstr ""
+"Ein Zeiger auf das GPS Info IFD. Die Interoperabilitätsstruktur des GPS Info "
+"IFD hat, genau wie das Exif IFD, keine Bilddaten."
+
+#: libexif/exif-tag.c:503
+msgid "ISO Speed Ratings"
+msgstr "ISO Geschwindigkeitsangabe"
+
+#: libexif/exif-tag.c:504
+msgid ""
+"Indicates the ISO Speed and ISO Latitude of the camera or input device as "
+"specified in ISO 12232."
+msgstr ""
+"Gibt die ISO Geschwindigkeit und Breite der Kamera bzw. des Eingabegeräts "
+"an, wie in ISO 12232 spezifiziert."
+
+#: libexif/exif-tag.c:507
+msgid "Opto-Electronic Conversion Function"
+msgstr "Opto-Elektrische Konvertierungsfunktion"
+
+#: libexif/exif-tag.c:508
+msgid ""
+"Indicates the Opto-Electronic Conversion Function (OECF) specified in ISO "
+"14524. <OECF> is the relationship between the camera optical input and the "
+"image values."
+msgstr ""
+"Gibt die Opto Elektronische Konvertierungsfunktion (OECF) an, die in ISO "
+"14524 spezifiziert ist. <OECF> ist der Zusammenhang zwischen dem optischen "
+"Input und den Bildwerten."
+
+#: libexif/exif-tag.c:513
+msgid "Time Zone Offset"
+msgstr "Zeitzone Offset"
+
+#: libexif/exif-tag.c:514
+msgid "Encodes time zone of camera clock relative to GMT."
+msgstr "Gibt die Zeitzone der Kamerauhr relativ zu GMT an."
+
+#: libexif/exif-tag.c:515
+msgid "Exif Version"
+msgstr "Exif Version"
+
+#: libexif/exif-tag.c:516
+msgid ""
+"The version of this standard supported. Nonexistence of this field is taken "
+"to mean nonconformance to the standard."
+msgstr ""
+"Die Version des Exif Standards die unterstützt wird. Wenn dieses Feld nicht "
+"vorhanden ist wird angenommen, das der Standard nicht beachtet wird."
+
+#: libexif/exif-tag.c:520
+msgid "Date and Time (Original)"
+msgstr "Datum und Uhrzeit (original)"
+
+#: libexif/exif-tag.c:521
+msgid ""
+"The date and time when the original image data was generated. For a digital "
+"still camera the date and time the picture was taken are recorded."
+msgstr ""
+"Das Datum und die Zeit zu der das Bild generiert wurde. Für eine "
+"Digitalkamera ist das der Zeitpunkt an dem das Bild geschossen wurde."
+
+#: libexif/exif-tag.c:526
+msgid "Date and Time (Digitized)"
+msgstr "Datum und Uhrzeit (digitalisiert)"
+
+#: libexif/exif-tag.c:527
+msgid "The date and time when the image was stored as digital data."
+msgstr "Das Datum und die Uhrzeit der Speicherung als digitale Daten."
+
+#: libexif/exif-tag.c:530
+msgid "Components Configuration"
+msgstr "Komponenten Konfiguration"
+
+#: libexif/exif-tag.c:531
+msgid ""
+"Information specific to compressed data. The channels of each component are "
+"arranged in order from the 1st component to the 4th. For uncompressed data "
+"the data arrangement is given in the <PhotometricInterpretation> tag. "
+"However, since <PhotometricInterpretation> can only express the order of Y, "
+"Cb and Cr, this tag is provided for cases when compressed data uses "
+"components other than Y, Cb, and Cr and to enable support of other sequences."
+msgstr ""
+"Zu den komprimierten Daten gehörende Informationen. Die Kanäle jeder "
+"Komponente sind in der Reihenfolge erster bis vierter sortiert. Für "
+"unkomprimierte Daten ist das Datenlayout im <PhotometricInterpretation> Tag "
+"spezifiziert. Da aber <PhotometricInterpretation> nur die Reihenfolge von Y, "
+"Cb und Cr angeben kann wird dieser Tag dann benutzt, wenn die komprimierten "
+"Daten andere Komponenten als Y, Cb und Cr benutzen, oder um die "
+"Unterstützung anderer Sequenzen zu erlauben."
+
+#: libexif/exif-tag.c:541
+msgid "Compressed Bits per Pixel"
+msgstr "Komprimierte Bits per Pixel"
+
+#: libexif/exif-tag.c:542
+msgid ""
+"Information specific to compressed data. The compression mode used for a "
+"compressed image is indicated in unit bits per pixel."
+msgstr ""
+"Zu den komprimierten Daten gehörige Informationen. Der Kompressionsmodus der "
+"für ein komprimiertes Bild verwendet wird ist hier in Teilbits per Pixel "
+"angegeben."
+
+#: libexif/exif-tag.c:546 libexif/olympus/mnote-olympus-tag.c:123
+msgid "Shutter Speed"
+msgstr "Verschlusszeit"
+
+#: libexif/exif-tag.c:547
+msgid ""
+"Shutter speed. The unit is the APEX (Additive System of Photographic "
+"Exposure) setting."
+msgstr ""
+"Verschlusszeit. Die Einheit ist die APEX (Additive System of Photographic "
+"Exposure) Einstellung."
+
+#: libexif/exif-tag.c:551
+msgid "The lens aperture. The unit is the APEX value."
+msgstr "Die Linsenblende. Die Einheit ist der APEX Wert."
+
+#: libexif/exif-tag.c:553
+msgid "Brightness"
+msgstr "Helligkeit"
+
+#: libexif/exif-tag.c:554
+msgid ""
+"The value of brightness. The unit is the APEX value. Ordinarily it is given "
+"in the range of -99.99 to 99.99."
+msgstr ""
+"Die Helligkeit. Die Einheit ist der APEX Wert. Normalerweise ist dieser Wert "
+"zwischen -99.99 und 99.99."
+
+#: libexif/exif-tag.c:558
+msgid "Exposure Bias"
+msgstr "Belichtungsabweichung"
+
+#: libexif/exif-tag.c:559
+msgid ""
+"The exposure bias. The units is the APEX value. Ordinarily it is given in "
+"the range of -99.99 to 99.99."
+msgstr ""
+"Die Belichtungsabweichung. Die Einheit ist der APEX Wert. Normalerweise wird "
+"diese innerhalb des Bereiches -99.99 bis 99.99 spezifiziert."
+
+#: libexif/exif-tag.c:562
+msgid "Maximum Aperture Value"
+msgstr "Maximaler Blendenwert"
+
+#: libexif/exif-tag.c:563
+msgid ""
+"The smallest F number of the lens. The unit is the APEX value. Ordinarily it "
+"is given in the range of 00.00 to 99.99, but it is not limited to this range."
+msgstr ""
+"Die kleinste F Nummer der Linse. Die Einheit ist der APEX Wert. "
+"Normalerweise wird es im Bereich von 00.00 bis 99.99 angegeben, ist aber "
+"nicht limitiert auf diesen Bereich."
+
+#: libexif/exif-tag.c:568
+msgid "Subject Distance"
+msgstr "Entfernung des Objekts"
+
+#: libexif/exif-tag.c:569
+msgid "The distance to the subject, given in meters."
+msgstr "Die Entfernung zum Objekt (in Metern)."
+
+#: libexif/exif-tag.c:572
+msgid "The metering mode."
+msgstr "Der Messmodus."
+
+#: libexif/exif-tag.c:574
+msgid "Light Source"
+msgstr "Lichtquelle"
+
+#: libexif/exif-tag.c:575
+msgid "The kind of light source."
+msgstr "Die Art der Lichtquelle."
+
+#: libexif/exif-tag.c:578
+msgid ""
+"This tag is recorded when an image is taken using a strobe light (flash)."
+msgstr ""
+"Dieser Eintrag wird aufgezeichnet, wenn das Bild mit einem Blitz gemacht "
+"wurde."
+
+#: libexif/exif-tag.c:582
+msgid ""
+"The actual focal length of the lens, in mm. Conversion is not made to the "
+"focal length of a 35 mm film camera."
+msgstr ""
+"Die wirkliche Brennweite der Linse, in mm. Es wird nicht auf das 35mm "
+"Filmkamera Äquivalent konvertiert."
+
+#: libexif/exif-tag.c:585
+msgid "Subject Area"
+msgstr "Motivbereich"
+
+#: libexif/exif-tag.c:586
+msgid ""
+"This tag indicates the location and area of the main subject in the overall "
+"scene."
+msgstr ""
+"Dieser Tag gibt die Position und Größe des Hauptmotivs in der Szene an."
+
+#: libexif/exif-tag.c:590
+msgid "TIFF/EP Standard ID"
+msgstr "TIFF/EP Standard ID"
+
+#: libexif/exif-tag.c:591
+msgid "Maker Note"
+msgstr "Anmerkungen des Herstellers"
+
+#: libexif/exif-tag.c:592
+msgid ""
+"A tag for manufacturers of Exif writers to record any desired information. "
+"The contents are up to the manufacturer."
+msgstr ""
+"Ein Tag für die Hersteller von Exif Schreibern um variable Informationen "
+"abzuspeichern. Der Inhalt ist vom Hersteller abhängig."
+
+#: libexif/exif-tag.c:595
+msgid "User Comment"
+msgstr "Anmerkung des Nutzers"
+
+#: libexif/exif-tag.c:596
+msgid ""
+"A tag for Exif users to write keywords or comments on the image besides "
+"those in <ImageDescription>, and without the character code limitations of "
+"the <ImageDescription> tag. The character code used in the <UserComment> tag "
+"is identified based on an ID code in a fixed 8-byte area at the start of the "
+"tag data area. The unused portion of the area is padded with NULL (\"00.h"
+"\"). ID codes are assigned by means of registration. The designation method "
+"and references for each character code are defined in the specification. The "
+"value of CountN is determined based on the 8 bytes in the character code "
+"area and the number of bytes in the user comment part. Since the TYPE is not "
+"ASCII, NULL termination is not necessary. The ID code for the <UserComment> "
+"area may be a Defined code such as JIS or ASCII, or may be Undefined. The "
+"Undefined name is UndefinedText, and the ID code is filled with 8 bytes of "
+"all \"NULL\" (\"00.H\"). An Exif reader that reads the <UserComment> tag "
+"must have a function for determining the ID code. This function is not "
+"required in Exif readers that do not use the <UserComment> tag. When a "
+"<UserComment> area is set aside, it is recommended that the ID code be ASCII "
+"and that the following user comment part be filled with blank characters [20."
+"H]."
+msgstr ""
+"Ein Tag für Exif Benutzer um spezielle Stichworte oder Kommentare über das "
+"Bild zu notieren unabhängig von denen im <ImageDescription> Tag und ohne "
+"dessen Encoding Limitierung. Das Encoding im <UserComment> Tag wird durch "
+"einen ID Code in einem fixen 8-Byte Bereich am Beginn des Datenbereichs "
+"identifiziert. Der unbenutzte Teil dieses Bereiches wird mit Nullen "
+"aufgefüllt (00h). ID Codes werden durch Registration vergeben. Die Angaben "
+"und Referenzen sind in Tabelle 6 spezifiziert. Der Wert von CountN wird "
+"ermittelt anhand der 8 Byte im Character Code Bereich und der Anzahl an "
+"Bytes im User Kommentar Bereich. Da der TYPE nicht ASCII ist ist eine NULL "
+"Terminierung nicht nötig (siehe Abbildung 9). Der ID Code des <UserComment> "
+"Bereichs kann ein \"Defined Code\" wie z.B. JIS oder ASCII sein, oder kann "
+"\"Undefined\" sein. Der \"Undefined\" Name ist undefinierter Text und der ID "
+"Code ist mit 8 Bytes NULL (00h) gefüllt. Ein Exif Leser der dieses Feld "
+"ausliest muss eine Funktion zum Ermitteln dieses Codes besitzen. Diese "
+"Funktion wird nicht verlangt in Lesern, die das Feld nicht benutzen (siehe "
+"Tabelle 7). Wenn ein <UserComment> Bereich angelegt wurde, ist der "
+"empfohlene ID Code ASCII und der folgende User Kommentar Bereich ist mit "
+"Leerzeichen aufgefüllt (20h)."
+
+#: libexif/exif-tag.c:619
+msgid "Sub-second Time"
+msgstr "Sekundenbruchteil"
+
+#: libexif/exif-tag.c:620
+msgid "A tag used to record fractions of seconds for the <DateTime> tag."
+msgstr ""
+"Der Tag wird benutzt um Sekundenbruchteile für den <DateTime> Tag zu "
+"erfassen."
+
+#: libexif/exif-tag.c:624
+msgid "Sub-second Time (Original)"
+msgstr "Sekundenbruchteil  (Original)"
+
+#: libexif/exif-tag.c:625
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeOriginal> tag."
+msgstr ""
+"Der Tag wird benutzt um Sekundenbruchteile für den <DateTimeOriginal> Tag zu "
+"erfassen."
+
+#: libexif/exif-tag.c:629
+msgid "Sub-second Time (Digitized)"
+msgstr "Sekundenbruchteil (digitalisiert)"
+
+#: libexif/exif-tag.c:630
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeDigitized> tag."
+msgstr ""
+"Der Tag wird benutzt um Sekundenbruchteile für den <DateTimeDigitized> Tag "
+"zu erfassen."
+
+#: libexif/exif-tag.c:634
+msgid "XP Title"
+msgstr "XP Titel"
+
+#: libexif/exif-tag.c:635
+msgid "A character string giving the title of the image, encoded in UTF-16LE."
+msgstr "Ein String der den Titel des Bildes angibt, in UTF-16LE kodiert."
+
+#: libexif/exif-tag.c:639
+msgid "XP Comment"
+msgstr "XP Kommentar"
+
+#: libexif/exif-tag.c:640
+msgid ""
+"A character string containing a comment about the image, encoded in UTF-16LE."
+msgstr ""
+"Ein String der einen Kommentar über das Bild enthält, kodiert in UTF-16LE."
+
+#: libexif/exif-tag.c:644
+msgid "XP Author"
+msgstr "XP Autor"
+
+#: libexif/exif-tag.c:645
+msgid ""
+"A character string containing the name of the image creator, encoded in UTF-"
+"16LE."
+msgstr ""
+"Ein String der den Namen des Bilderschaffers enthält, kodiert in UTF-16LE."
+
+#: libexif/exif-tag.c:649
+msgid "XP Keywords"
+msgstr "XP Stichwörter"
+
+#: libexif/exif-tag.c:650
+msgid ""
+"A character string containing key words describing the image, encoded in UTF-"
+"16LE."
+msgstr ""
+"Ein String der Stichwörter die das Bild beschreiben angibt, kodiert in UTF-"
+"16LE.y"
+
+#: libexif/exif-tag.c:654
+msgid "XP Subject"
+msgstr "XP Überschrift"
+
+#: libexif/exif-tag.c:655
+msgid "A character string giving the image subject, encoded in UTF-16LE."
+msgstr "Ein String der die Bildüberschrift angibt, kodiert in UTF-16LE."
+
+#: libexif/exif-tag.c:659
+msgid "The FlashPix format version supported by a FPXR file."
+msgstr "Die FlashPix Formatversion die von einer FPXR Datei unterstützt wird."
+
+#: libexif/exif-tag.c:661 libexif/pentax/mnote-pentax-tag.c:102
+msgid "Color Space"
+msgstr "Farbraum"
+
+#: libexif/exif-tag.c:662
+msgid ""
+"The color space information tag is always recorded as the color space "
+"specifier. Normally sRGB (=1) is used to define the color space based on the "
+"PC monitor conditions and environment. If a color space other than sRGB is "
+"used, Uncalibrated (=FFFF.H) is set. Image data recorded as Uncalibrated can "
+"be treated as sRGB when it is converted to FlashPix."
+msgstr ""
+"Der Farbrauminformationstag ist immer als FarbraumSpezifikator. "
+"Normalerweise wird sRGB (=1) benutzt um den Farbraum an PC Monitor "
+"Bedingungen anzupassen. Wenn ein anderer Farbraum als sRGB benutzt wird, ist "
+"der werd \"unkalibriert\" (=FFFFH) gesetzt. Bilddaten die als unkalibriert "
+"aufgezeichnet wurden kõnnen als sRGB betrachtet werden wenn sie in FlashPix "
+"konvertiert werden."
+
+#: libexif/exif-tag.c:670
+msgid "Pixel X Dimension"
+msgstr "Pixel X Dimension"
+
+#: libexif/exif-tag.c:671
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid width of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file."
+msgstr ""
+"Informationen spezifisch zu den komprimierten Daten. Wenn eine komprimiertes "
+"Datei aufgezeichnet wird muss die Breite des sinnvollen Bildausschnitts in "
+"diesem Tag aufgezeichnet werden, egal ob Padding Daten oder ein Restart "
+"Marker vorhanden sind. Dieser Tag sollte nicht in einer unkomprimierten "
+"Datei existieren."
+
+#: libexif/exif-tag.c:677
+msgid "Pixel Y Dimension"
+msgstr "Pixel Y Dimension"
+
+#: libexif/exif-tag.c:678
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid height of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file. Since data padding is unnecessary in the "
+"vertical direction, the number of lines recorded in this valid image height "
+"tag will in fact be the same as that recorded in the SOF."
+msgstr ""
+"Informationen spezifisch zu den komprimierten Daten. Wenn eine komprimiertes "
+"Datei aufgezeichnet wird muss die Höhe des sinnvollen Bildausschnitts in "
+"diesem Tag aufgezeichnet werden, egal ob Padding Daten oder ein Restart "
+"Marker vorhanden sind. Dieser Tag sollte nicht in einer unkomprimierten "
+"Datei existieren. Für mehr Details sehen sie bitten in Sektion 2.8.1 and "
+"Anhang F. Da Padding in der Vertikalen nicht nötig ist, ist die Anzahl an "
+"Zeilen in diesem Tag die gleiche wie die im JPEG SOF Marker."
+
+#: libexif/exif-tag.c:688
+msgid "Related Sound File"
+msgstr "Zugehörige Audio Datei"
+
+#: libexif/exif-tag.c:689
+#, fuzzy
+msgid ""
+"This tag is used to record the name of an audio file related to the image "
+"data. The only relational information recorded here is the Exif audio file "
+"name and extension (an ASCII string consisting of 8 characters + '.' + 3 "
+"characters). The path is not recorded. Stipulations on audio and file naming "
+"conventions are defined in the specification. When using this tag, audio "
+"files must be recorded in conformance to the Exif audio format. Writers are "
+"also allowed to store the data such as Audio within APP2 as FlashPix "
+"extension stream data. The mapping of Exif image files and audio files is "
+"done in any of three ways, [1], [2] and [3]. If multiple files are mapped to "
+"one file as in [2] or [3], the above format is used to record just one audio "
+"file name. If there are multiple audio files, the first recorded file is "
+"given. In the case of [3], for example, for the Exif image file \"DSC00001."
+"JPG\" only  \"SND00001.WAV\" is given as the related Exif audio file. When "
+"there are three Exif audio files \"SND00001.WAV\", \"SND00002.WAV\" and "
+"\"SND00003.WAV\", the Exif image file name for each of them, \"DSC00001.JPG"
+"\", is indicated. By combining multiple relational information, a variety of "
+"playback possibilities can be supported. The method of using relational "
+"information is left to the implementation on the playback side. Since this "
+"information is an ASCII character string, it is terminated by NULL. When "
+"this tag is used to map audio files, the relation of the audio file to image "
+"data must also be indicated on the audio file end."
+msgstr ""
+"Dieser Tag wird dazu benutzt, um den Namen einer Audiodatei zu speichern, "
+"die zu den Bilddaten gehört. Die einzige Information hier ist der Exif "
+"Audiodateiname und die Extension (ein ASCII String mit 8 Zeichen, \".\" und "
+"3 Zeichen). Der Pfad ist nicht enthalten. Dieser String wird durch NULL "
+"(00h) terminiert."
+
+#: libexif/exif-tag.c:719
+msgid "Interoperability IFD Pointer"
+msgstr "Interoperabilitäts IFD Pointer"
+
+#: libexif/exif-tag.c:720
+msgid ""
+"Interoperability IFD is composed of tags which stores the information to "
+"ensure the Interoperability and pointed by the following tag located in Exif "
+"IFD. The Interoperability structure of Interoperability IFD is the same as "
+"TIFF defined IFD structure but does not contain the image data "
+"characteristically compared with normal TIFF IFD."
+msgstr ""
+"Das Interoperabilitäts IFD besteht aus Tags die Informationen enthalten, die "
+"die Interoperabilität sicherstellen. Die Interoperabilitätsstruktur des "
+"Interoperabilitäts IFD ist das gleich wie in der TIFF IFD Struktur, enthält "
+"aber keine Bildcharakteristiken wie das normale TIFF IFD."
+
+#: libexif/exif-tag.c:729
+msgid "Flash Energy"
+msgstr "Energie des Blitzes"
+
+#: libexif/exif-tag.c:730
+msgid ""
+"Indicates the strobe energy at the time the image is captured, as measured "
+"in Beam Candle Power Seconds (BCPS)."
+msgstr ""
+"Gibt die Energie des Blitzes zum Zeitpunkt der Aufnahme an, in Beam Candle "
+"Power Seconds (BCPS)."
+
+#: libexif/exif-tag.c:734
+msgid "Spatial Frequency Response"
+msgstr "Spatial Frequency Response"
+
+#: libexif/exif-tag.c:735
+msgid ""
+"This tag records the camera or input device spatial frequency table and SFR "
+"values in the direction of image width, image height, and diagonal "
+"direction, as specified in ISO 12233."
+msgstr ""
+"Dieser Tag enthält die Spatial Frequency Table und SFR Werte der Kamera oder "
+"des Eingabe Gerätes in der Richtung der Bild Breite, Bild Höhe und diagonale "
+"Richtung,wie in ISO 12233 spezifiziert."
+
+#: libexif/exif-tag.c:741
+msgid "Focal Plane X-Resolution"
+msgstr "Fokusebene X-Auflösung"
+
+#: libexif/exif-tag.c:742
+msgid ""
+"Indicates the number of pixels in the image width (X) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+"Gibt die Anzahl an Pixeln in der Breite (X Ebene) pro "
+"<FocalPlaneResolutionUnit> in der Fokusebene an."
+
+#: libexif/exif-tag.c:746
+msgid "Focal Plane Y-Resolution"
+msgstr "Fokusebene Y-Auflösung"
+
+#: libexif/exif-tag.c:747
+msgid ""
+"Indicates the number of pixels in the image height (V) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+"Gibt die Anzahl an Pixeln in der Höhe (Y Ebene) pro "
+"<FocalPlaneResolutionUnit> in der Fokusebene an."
+
+#: libexif/exif-tag.c:751
+msgid "Focal Plane Resolution Unit"
+msgstr "Einheit der Angaben der Fokusebene"
+
+#: libexif/exif-tag.c:752
+msgid ""
+"Indicates the unit for measuring <FocalPlaneXResolution> and "
+"<FocalPlaneYResolution>. This value is the same as the <ResolutionUnit>."
+msgstr ""
+"Gibt die Einheit für die Messung der <FocalPlaneXResolution> und der "
+"<FocalPlaneYResolution> an. Der Wert ist der gleiche wie <ResolutionUnit>."
+
+#: libexif/exif-tag.c:757
+msgid "Subject Location"
+msgstr "Ort des Objektes"
+
+#: libexif/exif-tag.c:758
+msgid ""
+"Indicates the location of the main subject in the scene. The value of this "
+"tag represents the pixel at the center of the main subject relative to the "
+"left edge, prior to rotation processing as per the <Rotation> tag. The first "
+"value indicates the X column number and the second indicates the Y row "
+"number."
+msgstr ""
+"Gibt den Ort des Hauptmotivs in der Szene an. Der Wert dieses Tags "
+"repräsentiert den Pixel im Zentrum des Hauptmotivs relativ zur linken "
+"Bildkante, vor der Rotation (siehe <Rotation> Tag). Der erste Wert gibt die "
+"X, der zweite die Y Koordinate an."
+
+#: libexif/exif-tag.c:765
+msgid "Exposure Index"
+msgstr "Belichtungsindex"
+
+#: libexif/exif-tag.c:766
+msgid ""
+"Indicates the exposure index selected on the camera or input device at the "
+"time the image is captured."
+msgstr ""
+"Gibt den Belichtungsindex an, der in der Kamera oder im Eingabegerät während "
+"der Aufnahme selektiert ist."
+
+#: libexif/exif-tag.c:769
+msgid "Sensing Method"
+msgstr "Bildsensor"
+
+#: libexif/exif-tag.c:770
+msgid "Indicates the image sensor type on the camera or input device."
+msgstr "Gibt den Sensortyp in der Kamera bzw. Eingabegerät an."
+
+#: libexif/exif-tag.c:773 libexif/fuji/mnote-fuji-tag.c:64
+msgid "File Source"
+msgstr "Dateiquelle"
+
+#: libexif/exif-tag.c:774
+msgid ""
+"Indicates the image source. If a DSC recorded the image, the tag value of "
+"this tag always be set to 3, indicating that the image was recorded on a DSC."
+msgstr ""
+"Gibt die Quelle des Bildes an. Wenn das Bild durch eine Digitalkamera "
+"aufgenommen wurde, ist der Wert 3."
+
+#: libexif/exif-tag.c:778
+msgid "Scene Type"
+msgstr "Szenentyp"
+
+#: libexif/exif-tag.c:779
+msgid ""
+"Indicates the type of scene. If a DSC recorded the image, this tag value "
+"must always be set to 1, indicating that the image was directly photographed."
+msgstr ""
+"Gibt den Typ der Szene an. Wenn eine Digitalkamera die Szene aufgenommen "
+"hat, muß diese Zahl immer auf 1 gesetzt werden, um anzugeben, das die Szene "
+"direkt photographiert wurde."
+
+#: libexif/exif-tag.c:789
+msgid "Custom Rendered"
+msgstr "Spezial Rendering"
+
+#: libexif/exif-tag.c:790
+msgid ""
+"This tag indicates the use of special processing on image data, such as "
+"rendering geared to output. When special processing is performed, the reader "
+"is expected to disable or minimize any further processing."
+msgstr ""
+"Dieses Tag zeigt spezielle Verarbeitung von Bilddaten an, wie z.B. Rendering "
+"für Drucken. Wenn spezielle Bearbeitung vorhanden ist, sollte der Leser "
+"weiteres Processing gering halten oder ganz darauf verzichten."
+
+#: libexif/exif-tag.c:796
+msgid ""
+"This tag indicates the exposure mode set when the image was shot. In auto-"
+"bracketing mode, the camera shoots a series of frames of the same scene at "
+"different exposure settings."
+msgstr ""
+"Dieser Tag gibt den Belichtungsmodus bei der Aufnahme des Bildes an. In "
+"\"autobracketing\" Modus nimmt die Kamera mehrere Bilder derselben Szene mit "
+"verschiedenen Belichtungseinstellungen auf."
+
+#: libexif/exif-tag.c:801
+msgid "This tag indicates the white balance mode set when the image was shot."
+msgstr ""
+"Dieser Tag gibt die Weißabgleichsmodus der zur Aufnahme eingestellt war."
+
+#: libexif/exif-tag.c:805
+msgid "Digital Zoom Ratio"
+msgstr "Digitale Zoomrate"
+
+#: libexif/exif-tag.c:806
+msgid ""
+"This tag indicates the digital zoom ratio when the image was shot. If the "
+"numerator of the recorded value is 0, this indicates that digital zoom was "
+"not used."
+msgstr ""
+"Dieser Tag gibt die digitale Zoomrate bei der Aufnahme des Bildes an. Wenn "
+"der Divisor 0 ist, wurde kein Digitalzoom benutzt."
+
+#: libexif/exif-tag.c:811
+msgid "Focal Length in 35mm Film"
+msgstr "Brennweite in 35mm Film"
+
+#: libexif/exif-tag.c:812
+msgid ""
+"This tag indicates the equivalent focal length assuming a 35mm film camera, "
+"in mm. A value of 0 means the focal length is unknown. Note that this tag "
+"differs from the FocalLength tag."
+msgstr ""
+"Dieser Tag gibt die äquivalente Brennweite bei angenommener 35mm Filmkamera "
+"an. Der Wert 0 bedeutet das die Brennweite unbekannt ist. Dieser Tag "
+"unterscheidet sich vom <FocalLength> Tag."
+
+#: libexif/exif-tag.c:818
+msgid "Scene Capture Type"
+msgstr "Szenenmodus"
+
+#: libexif/exif-tag.c:819
+msgid ""
+"This tag indicates the type of scene that was shot. It can also be used to "
+"record the mode in which the image was shot. Note that this differs from the "
+"scene type <SceneType> tag."
+msgstr ""
+"Dieser Tag gibt an welche Art von Szene aufgenommen wurde. Er kann auch zum "
+"Angeben des Aufnahmemodus verwendet werden. Beachten sie, das sich dieser "
+"Typ vom Szenentyp (<SceneType>) Tag unterscheidet."
+
+#: libexif/exif-tag.c:824
+msgid "Gain Control"
+msgstr "Verstärkungsreglung"
+
+#: libexif/exif-tag.c:825
+msgid "This tag indicates the degree of overall image gain adjustment."
+msgstr "Dieses Tag gibt den Grad der Verstärkungsregelung an."
+
+#: libexif/exif-tag.c:829
+msgid ""
+"This tag indicates the direction of contrast processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Dieser Tag gibt die Richtung der Kontrastbearbeitung an, die bei der "
+"Aufnahme des Bildes angewandt wurde."
+
+#: libexif/exif-tag.c:833
+msgid ""
+"This tag indicates the direction of saturation processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Dieser Tag gibt die Richtung der Sättigungsbearbeitung an, die bei der "
+"Aufnahme des Bildes angewandt wurde."
+
+#: libexif/exif-tag.c:837
+msgid ""
+"This tag indicates the direction of sharpness processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Dieser Tag gibt die Richtung der Schärfeberarbeitung bei der Aufnahme des "
+"Bildes an."
+
+#: libexif/exif-tag.c:841
+msgid "Device Setting Description"
+msgstr "Beschreibung der Geräteeinstellungen"
+
+#: libexif/exif-tag.c:842
+msgid ""
+"This tag indicates information on the picture-taking conditions of a "
+"particular camera model. The tag is used only to indicate the picture-taking "
+"conditions in the reader."
+msgstr ""
+"Dieser Tag enthält Informationen über die Bildaufnahme Bedingungen eines "
+"bestimmten Kameramodells. Dieser Tag wird nur zur Angabe der Bedingungen im "
+"Leser benutzt."
+
+#: libexif/exif-tag.c:848
+msgid "Subject Distance Range"
+msgstr "Motivabstand"
+
+#: libexif/exif-tag.c:849
+msgid "This tag indicates the distance to the subject."
+msgstr "Dieser Tag gibt den Motivabstand an."
+
+#: libexif/exif-tag.c:851
+msgid "Image Unique ID"
+msgstr "Eindeutige Bildnummer"
+
+#: libexif/exif-tag.c:852
+msgid ""
+"This tag indicates an identifier assigned uniquely to each image. It is "
+"recorded as an ASCII string equivalent to hexadecimal notation and 128-bit "
+"fixed length."
+msgstr ""
+"Dieser Tag gibt einen eindeutigen Bild Identifier an. Er wird als ASCII "
+"String in hexadezimal Notation aufgezeichnet und hat 128 Bit Länge."
+
+#: libexif/exif-tag.c:857
+msgid "Gamma"
+msgstr "Gamma"
+
+#: libexif/exif-tag.c:858
+msgid "Indicates the value of coefficient gamma."
+msgstr "Gibt den Wert des Gamma Koeffizienten an."
+
+#: libexif/exif-tag.c:860
+msgid "PRINT Image Matching"
+msgstr "PRINT Image Matching"
+
+#: libexif/exif-tag.c:861
+msgid "Related to Epson's PRINT Image Matching technology"
+msgstr "Zugehörig zur Epson PRINT Image Matching Technologie"
+
+#: libexif/exif-tag.c:863
+msgid "Padding"
+msgstr "Padding"
+
+#: libexif/exif-tag.c:864
+msgid ""
+"This tag reserves space that can be reclaimed later when additional metadata "
+"are added. New metadata can be written in place by replacing this tag with a "
+"smaller data element and using the reclaimed space to store the new or "
+"expanded metadata tags."
+msgstr ""
+"Dieses Tag reserviert Platz der später freigegeben werden kann um "
+"zusätzliche Metadaten hinzuzufügen. Neue Daten können in den Raum dieses "
+"Tags geschrieben werden und der gewonnene oder verlorene Raum wird durch ein "
+"angepasstest Padding Tag wieder aufgefüllt."
+
+#: libexif/fuji/mnote-fuji-entry.c:62
+msgid "Softest"
+msgstr "Weichster"
+
+#: libexif/fuji/mnote-fuji-entry.c:66
+msgid "Hardest"
+msgstr "Härtester"
+
+#: libexif/fuji/mnote-fuji-entry.c:67 libexif/fuji/mnote-fuji-entry.c:96
+msgid "Medium soft"
+msgstr "Mittelweich"
+
+#: libexif/fuji/mnote-fuji-entry.c:68 libexif/fuji/mnote-fuji-entry.c:94
+msgid "Medium hard"
+msgstr "Mittelhart"
+
+#: libexif/fuji/mnote-fuji-entry.c:69 libexif/fuji/mnote-fuji-entry.c:90
+#: libexif/fuji/mnote-fuji-entry.c:98 libexif/fuji/mnote-fuji-entry.c:182
+msgid "Film simulation mode"
+msgstr "Film Simulations Modus"
+
+#: libexif/fuji/mnote-fuji-entry.c:79
+msgid "Incandescent"
+msgstr "Glühlampe"
+
+#: libexif/fuji/mnote-fuji-entry.c:85
+msgid "Medium high"
+msgstr "Mittel hoch"
+
+#: libexif/fuji/mnote-fuji-entry.c:87
+msgid "Medium low"
+msgstr "Mittel niedrig"
+
+#: libexif/fuji/mnote-fuji-entry.c:88 libexif/fuji/mnote-fuji-entry.c:97
+msgid "Original"
+msgstr "Original"
+
+#: libexif/fuji/mnote-fuji-entry.c:124 libexif/pentax/mnote-pentax-entry.c:164
+#: libexif/pentax/mnote-pentax-entry.c:299
+msgid "Program AE"
+msgstr "Programm AE"
+
+#: libexif/fuji/mnote-fuji-entry.c:125
+msgid "Natural photo"
+msgstr "Natürliches Foto"
+
+#: libexif/fuji/mnote-fuji-entry.c:126
+msgid "Vibration reduction"
+msgstr "Vibrationsreduktion"
+
+#: libexif/fuji/mnote-fuji-entry.c:127
+msgid "Sunset"
+msgstr "Sonnenuntergang"
+
+#: libexif/fuji/mnote-fuji-entry.c:128 libexif/pentax/mnote-pentax-entry.c:181
+msgid "Museum"
+msgstr "Museum"
+
+#: libexif/fuji/mnote-fuji-entry.c:129
+msgid "Party"
+msgstr "Party"
+
+#: libexif/fuji/mnote-fuji-entry.c:130
+msgid "Flower"
+msgstr "Blume"
+
+#: libexif/fuji/mnote-fuji-entry.c:131 libexif/pentax/mnote-pentax-entry.c:176
+msgid "Text"
+msgstr "Text"
+
+#: libexif/fuji/mnote-fuji-entry.c:132
+msgid "NP & flash"
+msgstr "NP & Blitz"
+
+#: libexif/fuji/mnote-fuji-entry.c:137
+msgid "Aperture priority AE"
+msgstr "Automatik optimiert nach Blende"
+
+#: libexif/fuji/mnote-fuji-entry.c:138
+msgid "Shutter priority AE"
+msgstr "Automatik optimiert nach Belichtungszeit"
+
+#: libexif/fuji/mnote-fuji-entry.c:146
+msgid "F-Standard"
+msgstr "F-Standard"
+
+#: libexif/fuji/mnote-fuji-entry.c:147
+msgid "F-Chrome"
+msgstr "F-Farbe"
+
+#: libexif/fuji/mnote-fuji-entry.c:148
+msgid "F-B&W"
+msgstr "F-S&W"
+
+#: libexif/fuji/mnote-fuji-entry.c:151
+msgid "No blur"
+msgstr "Keine Verwacklung"
+
+#: libexif/fuji/mnote-fuji-entry.c:152
+msgid "Blur warning"
+msgstr "Verwackelwarnung"
+
+#: libexif/fuji/mnote-fuji-entry.c:155
+msgid "Focus good"
+msgstr "im Fokus"
+
+#: libexif/fuji/mnote-fuji-entry.c:156
+msgid "Out of focus"
+msgstr "Ausserhalb des Fokus"
+
+#: libexif/fuji/mnote-fuji-entry.c:159
+msgid "AE good"
+msgstr "gute Auto Exposure"
+
+#: libexif/fuji/mnote-fuji-entry.c:160
+msgid "Over exposed"
+msgstr "Überbelichtet"
+
+#: libexif/fuji/mnote-fuji-entry.c:164
+msgid "Wide"
+msgstr "Weit"
+
+#: libexif/fuji/mnote-fuji-entry.c:167
+msgid "F0/Standard"
+msgstr "F0/Standard"
+
+#: libexif/fuji/mnote-fuji-entry.c:168
+msgid "F1/Studio portrait"
+msgstr "F1/Studio Portrait"
+
+#: libexif/fuji/mnote-fuji-entry.c:169
+msgid "F1a/Professional portrait"
+msgstr "F1a/Professionelles Portrait"
+
+#: libexif/fuji/mnote-fuji-entry.c:170
+msgid "F1b/Professional portrait"
+msgstr "F1b/Professionelles Portrait"
+
+#: libexif/fuji/mnote-fuji-entry.c:171
+msgid "F1c/Professional portrait"
+msgstr "F1c/Professionelles Protrait"
+
+#: libexif/fuji/mnote-fuji-entry.c:172
+msgid "F2/Fujichrome"
+msgstr "F2/Fujichrome"
+
+#: libexif/fuji/mnote-fuji-entry.c:173
+msgid "F3/Studio portrait Ex"
+msgstr "F3/Studio Portrait Ex"
+
+#: libexif/fuji/mnote-fuji-entry.c:174
+msgid "F4/Velvia"
+msgstr "F4/Velvia"
+
+#: libexif/fuji/mnote-fuji-entry.c:177
+msgid "Auto (100-400%)"
+msgstr "Auto (100-400%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:179
+msgid "Standard (100%)"
+msgstr "Standard (100%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:180
+msgid "Wide1 (230%)"
+msgstr "Weit 1 (230%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:181
+msgid "Wide2 (400%)"
+msgstr "Weit 2 (400%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:263
+#, c-format
+msgid "%2.2f mm"
+msgstr "%2.2f mm"
+
+#: libexif/fuji/mnote-fuji-entry.c:298 libexif/pentax/mnote-pentax-entry.c:399
+#: libexif/pentax/mnote-pentax-entry.c:451
+#, c-format
+msgid "%i bytes unknown data"
+msgstr "%i Byte(s) unbekannte Daten"
+
+#: libexif/fuji/mnote-fuji-tag.c:36
+msgid "Maker Note Version"
+msgstr "Version der MakerNote"
+
+#: libexif/fuji/mnote-fuji-tag.c:37
+msgid "This number is unique and based on the date of manufacture."
+msgstr "Diese Nummer ist eindeutig, sie enthält das Datum der Herstellung."
+
+#: libexif/fuji/mnote-fuji-tag.c:41
+msgid "Chromaticity Saturation"
+msgstr "Chromazität Sättigung"
+
+#: libexif/fuji/mnote-fuji-tag.c:44
+msgid "Flash Firing Strength Compensation"
+msgstr "Blitzbelichtungskompensation"
+
+#: libexif/fuji/mnote-fuji-tag.c:46
+msgid "Focusing Mode"
+msgstr "Fokusmodus"
+
+#: libexif/fuji/mnote-fuji-tag.c:47
+msgid "Focus Point"
+msgstr "Fokuspunkt"
+
+#: libexif/fuji/mnote-fuji-tag.c:48
+msgid "Slow Synchro Mode"
+msgstr "Langsamer Synchronisationsmodus"
+
+#: libexif/fuji/mnote-fuji-tag.c:49 libexif/pentax/mnote-pentax-tag.c:72
+msgid "Picture Mode"
+msgstr "Bildmodus"
+
+#: libexif/fuji/mnote-fuji-tag.c:50
+msgid "Continuous Taking"
+msgstr "Kontinuierliche Aufnahme"
+
+#: libexif/fuji/mnote-fuji-tag.c:51
+msgid "Continuous Sequence Number"
+msgstr "Kontinuierliche Sequenznummer"
+
+#: libexif/fuji/mnote-fuji-tag.c:52
+msgid "FinePix Color"
+msgstr "FinePix Farbe"
+
+#: libexif/fuji/mnote-fuji-tag.c:53
+msgid "Blur Check"
+msgstr "Verwacklungs Test"
+
+#: libexif/fuji/mnote-fuji-tag.c:54
+msgid "Auto Focus Check"
+msgstr "Auto Fokus Test"
+
+#: libexif/fuji/mnote-fuji-tag.c:55
+msgid "Auto Exposure Check"
+msgstr "Automatische Belichtungzeit Test"
+
+#: libexif/fuji/mnote-fuji-tag.c:56
+msgid "Dynamic Range"
+msgstr "Dynamic Range"
+
+#: libexif/fuji/mnote-fuji-tag.c:57
+msgid "Film Simulation Mode"
+msgstr "Film Simulations Modus"
+
+#: libexif/fuji/mnote-fuji-tag.c:58
+msgid "Dynamic Range Wide Mode"
+msgstr "Dynamic Range Wide Modus"
+
+#: libexif/fuji/mnote-fuji-tag.c:59
+msgid "Development Dynamic Range Wide Mode"
+msgstr "Development Dynamic Range Wide Modus"
+
+#: libexif/fuji/mnote-fuji-tag.c:60
+msgid "Minimum Focal Length"
+msgstr "Minimale Brennweite"
+
+#: libexif/fuji/mnote-fuji-tag.c:61
+msgid "Maximum Focal Length"
+msgstr "Maximale Brennweite"
+
+#: libexif/fuji/mnote-fuji-tag.c:62
+msgid "Maximum Aperture at Minimum Focal"
+msgstr "Maximale Blende bei minimaler Brennweite"
+
+#: libexif/fuji/mnote-fuji-tag.c:63
+msgid "Maximum Aperture at Maximum Focal"
+msgstr "Maximale Belnde bei maximaler Brennweite"
+
+#: libexif/fuji/mnote-fuji-tag.c:65
+msgid "Order Number"
+msgstr "Bestellnummer"
+
+#: libexif/fuji/mnote-fuji-tag.c:66 libexif/pentax/mnote-pentax-tag.c:98
+msgid "Frame Number"
+msgstr "Bildnummer."
+
+#: libexif/olympus/mnote-olympus-entry.c:49
+#, c-format
+msgid "Invalid format '%s', expected '%s' or '%s'."
+msgstr "Ungültiges Format '%s', '%s' oder %s wurde erwartet."
+
+#: libexif/olympus/mnote-olympus-entry.c:89
+msgid "AF non D lens"
+msgstr "AF nicht D Linse"
+
+#: libexif/olympus/mnote-olympus-entry.c:91
+msgid "AF-D or AF-S lens"
+msgstr "AF-D oder AF-S Linse"
+
+#: libexif/olympus/mnote-olympus-entry.c:92
+msgid "AF-D G lens"
+msgstr "AF-D G Linse"
+
+#: libexif/olympus/mnote-olympus-entry.c:93
+msgid "AF-D VR lens"
+msgstr "AF-D VR Linse"
+
+#: libexif/olympus/mnote-olympus-entry.c:94
+msgid "AF-D G VR lens"
+msgstr "AF-D G VR Linse"
+
+#: libexif/olympus/mnote-olympus-entry.c:98
+msgid "Flash unit unknown"
+msgstr "Blitzeinheit unbekannt"
+
+#: libexif/olympus/mnote-olympus-entry.c:99
+msgid "Flash is external"
+msgstr "Blitz ist extern"
+
+#: libexif/olympus/mnote-olympus-entry.c:100
+msgid "Flash is on camera"
+msgstr "Blitz ist in der Kamera"
+
+#: libexif/olympus/mnote-olympus-entry.c:103
+msgid "VGA basic"
+msgstr "VGA Basic"
+
+#: libexif/olympus/mnote-olympus-entry.c:104
+msgid "VGA normal"
+msgstr "VGA Normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:105
+msgid "VGA fine"
+msgstr "VGA Fein"
+
+#: libexif/olympus/mnote-olympus-entry.c:106
+msgid "SXGA basic"
+msgstr "SXGA Basic"
+
+#: libexif/olympus/mnote-olympus-entry.c:107
+msgid "SXGA normal"
+msgstr "SXGA Normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:108
+msgid "SXGA fine"
+msgstr "SXGA Fein"
+
+#: libexif/olympus/mnote-olympus-entry.c:109
+msgid "2 Mpixel basic"
+msgstr "2 MPixel Basic"
+
+#: libexif/olympus/mnote-olympus-entry.c:110
+msgid "2 Mpixel normal"
+msgstr "2 MPixel Normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:111
+msgid "2 Mpixel fine"
+msgstr "2 MPixel Fein"
+
+#: libexif/olympus/mnote-olympus-entry.c:114
+msgid "Color"
+msgstr "Farb"
+
+#: libexif/olympus/mnote-olympus-entry.c:119
+msgid "Bright+"
+msgstr "Helligkeit+"
+
+#: libexif/olympus/mnote-olympus-entry.c:120
+msgid "Bright-"
+msgstr "Helligkeit-"
+
+#: libexif/olympus/mnote-olympus-entry.c:121
+msgid "Contrast+"
+msgstr "Kontrast+"
+
+#: libexif/olympus/mnote-olympus-entry.c:122
+msgid "Contrast-"
+msgstr "Kontrast-"
+
+#: libexif/olympus/mnote-olympus-entry.c:125
+msgid "ISO 80"
+msgstr "ISO 80"
+
+#: libexif/olympus/mnote-olympus-entry.c:126
+msgid "ISO 160"
+msgstr "ISO 160"
+
+#: libexif/olympus/mnote-olympus-entry.c:127
+msgid "ISO 320"
+msgstr "ISO 320"
+
+#: libexif/olympus/mnote-olympus-entry.c:128
+#: libexif/olympus/mnote-olympus-entry.c:246
+msgid "ISO 100"
+msgstr "ISO 100"
+
+#: libexif/olympus/mnote-olympus-entry.c:132
+msgid "Preset"
+msgstr "Voreinstellung"
+
+#: libexif/olympus/mnote-olympus-entry.c:134
+msgid "Incandescence"
+msgstr "Glühlampe"
+
+#: libexif/olympus/mnote-olympus-entry.c:135
+msgid "Fluorescence"
+msgstr "Fluoreszenz"
+
+#: libexif/olympus/mnote-olympus-entry.c:137
+msgid "SpeedLight"
+msgstr "Blitz"
+
+#: libexif/olympus/mnote-olympus-entry.c:140
+msgid "No fisheye"
+msgstr "Kein Fischauge"
+
+#: libexif/olympus/mnote-olympus-entry.c:141
+msgid "Fisheye on"
+msgstr "Fischauge An"
+
+#: libexif/olympus/mnote-olympus-entry.c:144
+msgid "Normal, SQ"
+msgstr "Normal, SQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:145
+msgid "Normal, HQ"
+msgstr "Normal, HQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:146
+msgid "Normal, SHQ"
+msgstr "Normal, SHQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:147
+msgid "Normal, RAW"
+msgstr "Normal, RAW"
+
+#: libexif/olympus/mnote-olympus-entry.c:148
+msgid "Normal, SQ1"
+msgstr "Normal, SQ1"
+
+#: libexif/olympus/mnote-olympus-entry.c:149
+msgid "Normal, SQ2"
+msgstr "Normal, SQ2"
+
+#: libexif/olympus/mnote-olympus-entry.c:150
+msgid "Normal, super high"
+msgstr "Normal, super hoch"
+
+#: libexif/olympus/mnote-olympus-entry.c:151
+msgid "Normal, standard"
+msgstr "Normal, standard"
+
+#: libexif/olympus/mnote-olympus-entry.c:152
+msgid "Fine, SQ"
+msgstr "Fein, SQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:153
+msgid "Fine, HQ"
+msgstr "Fein, HQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:154
+msgid "Fine, SHQ"
+msgstr "Fein, SHQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:155
+msgid "Fine, RAW"
+msgstr "Fein, RAW"
+
+#: libexif/olympus/mnote-olympus-entry.c:156
+msgid "Fine, SQ1"
+msgstr "Fein, SQ1"
+
+#: libexif/olympus/mnote-olympus-entry.c:157
+msgid "Fine, SQ2"
+msgstr "Fein, SQ2"
+
+#: libexif/olympus/mnote-olympus-entry.c:158
+msgid "Fine, super high"
+msgstr "Fine, super hoch"
+
+#: libexif/olympus/mnote-olympus-entry.c:159
+msgid "Super fine, SQ"
+msgstr "Superfein, SQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:160
+msgid "Super fine, HQ"
+msgstr "Superfein, HQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:161
+msgid "Super fine, SHQ"
+msgstr "Superfein, SHQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:162
+msgid "Super fine, RAW"
+msgstr "Superfein, RAW"
+
+#: libexif/olympus/mnote-olympus-entry.c:163
+msgid "Super fine, SQ1"
+msgstr "Superfein, SQ1"
+
+#: libexif/olympus/mnote-olympus-entry.c:164
+msgid "Super fine, SQ2"
+msgstr "Superfein, SQ2"
+
+#: libexif/olympus/mnote-olympus-entry.c:165
+msgid "Super fine, super high"
+msgstr "Superfein, super hoch"
+
+#: libexif/olympus/mnote-olympus-entry.c:166
+msgid "Super fine, high"
+msgstr "Superfein, hoch"
+
+#: libexif/olympus/mnote-olympus-entry.c:169
+#: libexif/olympus/mnote-olympus-entry.c:174
+#: libexif/olympus/mnote-olympus-entry.c:208
+#: libexif/olympus/mnote-olympus-entry.c:217
+#: libexif/olympus/mnote-olympus-entry.c:240
+msgid "No"
+msgstr "Nein"
+
+#: libexif/olympus/mnote-olympus-entry.c:180
+msgid "On (Preset)"
+msgstr "An (Voreinstellung)"
+
+#: libexif/olympus/mnote-olympus-entry.c:185
+msgid "Fill"
+msgstr "Zwischen"
+
+#: libexif/olympus/mnote-olympus-entry.c:192
+msgid "Internal + external"
+msgstr "Intern + Extern"
+
+#: libexif/olympus/mnote-olympus-entry.c:221
+msgid "Interlaced"
+msgstr "Interlaced"
+
+#: libexif/olympus/mnote-olympus-entry.c:222
+msgid "Progressive"
+msgstr "Progressiv"
+
+#: libexif/olympus/mnote-olympus-entry.c:228
+#: libexif/pentax/mnote-pentax-entry.c:85
+#: libexif/pentax/mnote-pentax-entry.c:139
+msgid "Best"
+msgstr "Am besten"
+
+#: libexif/olympus/mnote-olympus-entry.c:229
+msgid "Adjust exposure"
+msgstr "Angepasste Belichtung"
+
+#: libexif/olympus/mnote-olympus-entry.c:232
+msgid "Spot focus"
+msgstr "Punkt Fokus"
+
+#: libexif/olympus/mnote-olympus-entry.c:233
+msgid "Normal focus"
+msgstr "Normaler Fokus"
+
+#: libexif/olympus/mnote-olympus-entry.c:236
+msgid "Record while down"
+msgstr "Aufnehmen während des gedrückt haltens"
+
+#: libexif/olympus/mnote-olympus-entry.c:237
+msgid "Press start, press stop"
+msgstr "Drücke Start, drücke Stop"
+
+#: libexif/olympus/mnote-olympus-entry.c:245
+msgid "ISO 50"
+msgstr "ISO 50"
+
+#: libexif/olympus/mnote-olympus-entry.c:247
+msgid "ISO 200"
+msgstr "ISO 200"
+
+#: libexif/olympus/mnote-olympus-entry.c:248
+msgid "ISO 400"
+msgstr "ISO 400"
+
+#: libexif/olympus/mnote-olympus-entry.c:252
+#: libexif/pentax/mnote-pentax-entry.c:168
+msgid "Sport"
+msgstr "Sport"
+
+#: libexif/olympus/mnote-olympus-entry.c:253
+msgid "TV"
+msgstr "TV"
+
+#: libexif/olympus/mnote-olympus-entry.c:255
+msgid "User 1"
+msgstr "Benutzer 1"
+
+#: libexif/olympus/mnote-olympus-entry.c:256
+msgid "User 2"
+msgstr "Benutzer 2"
+
+#: libexif/olympus/mnote-olympus-entry.c:257
+msgid "Lamp"
+msgstr "Lampe"
+
+#: libexif/olympus/mnote-olympus-entry.c:260
+msgid "5 frames/sec"
+msgstr "5 Bilder/s"
+
+#: libexif/olympus/mnote-olympus-entry.c:261
+msgid "10 frames/sec"
+msgstr "10 Bilder/s"
+
+#: libexif/olympus/mnote-olympus-entry.c:262
+msgid "15 frames/sec"
+msgstr "15 Bilder/s"
+
+#: libexif/olympus/mnote-olympus-entry.c:263
+msgid "20 frames/sec"
+msgstr "20 Bilder/s"
+
+#: libexif/olympus/mnote-olympus-entry.c:375
+#, c-format
+msgid "Red Correction %f, blue Correction %f"
+msgstr "Rot Korrektion %f, Blau Korrektion %f"
+
+#: libexif/olympus/mnote-olympus-entry.c:383
+#, c-format
+msgid "%2.2f meters"
+msgstr "%2.2f Meter"
+
+#: libexif/olympus/mnote-olympus-entry.c:385
+msgid "No manual focus selection"
+msgstr "Keine manuelle Fokusselektion"
+
+#: libexif/olympus/mnote-olympus-entry.c:411
+msgid "AF position: center"
+msgstr "AF Position: Mitte"
+
+#: libexif/olympus/mnote-olympus-entry.c:412
+msgid "AF position: top"
+msgstr "AF Position: Oben"
+
+#: libexif/olympus/mnote-olympus-entry.c:413
+msgid "AF position: bottom"
+msgstr "AF Position: Unten"
+
+#: libexif/olympus/mnote-olympus-entry.c:414
+msgid "AF position: left"
+msgstr "AF Position: Links"
+
+#: libexif/olympus/mnote-olympus-entry.c:415
+msgid "AF position: right"
+msgstr "AF Position: Rechts"
+
+#: libexif/olympus/mnote-olympus-entry.c:416
+msgid "AF position: upper-left"
+msgstr "AF Position: Oben-links"
+
+#: libexif/olympus/mnote-olympus-entry.c:417
+msgid "AF position: upper-right"
+msgstr "AF Position: Oben-rechts"
+
+#: libexif/olympus/mnote-olympus-entry.c:418
+msgid "AF position: lower-left"
+msgstr "AF Position: Unten-links"
+
+#: libexif/olympus/mnote-olympus-entry.c:419
+msgid "AF position: lower-right"
+msgstr "AF Position: Unten-rechts"
+
+#: libexif/olympus/mnote-olympus-entry.c:420
+msgid "AF position: far left"
+msgstr "AF Position: Weit-links"
+
+#: libexif/olympus/mnote-olympus-entry.c:421
+msgid "AF position: far right"
+msgstr "AF Position: Weit-rechts"
+
+#: libexif/olympus/mnote-olympus-entry.c:422
+msgid "Unknown AF position"
+msgstr "Unbekannte AF Position"
+
+#: libexif/olympus/mnote-olympus-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:503
+#, c-format
+msgid "Internal error (unknown value %hi)"
+msgstr "Interner Fehler (unbekannter Wert %hi)"
+
+#: libexif/olympus/mnote-olympus-entry.c:441
+#: libexif/olympus/mnote-olympus-entry.c:511
+#, c-format
+msgid "Unknown value %hi"
+msgstr "Unbekannter Wert %hi"
+
+#: libexif/olympus/mnote-olympus-entry.c:536
+#: libexif/olympus/mnote-olympus-entry.c:556
+#, c-format
+msgid "Unknown %hu"
+msgstr "Unbekannt %hu"
+
+#: libexif/olympus/mnote-olympus-entry.c:553
+msgid "2 sec."
+msgstr "2 sek."
+
+#: libexif/olympus/mnote-olympus-entry.c:592
+msgid "Fast"
+msgstr "Schnell"
+
+#: libexif/olympus/mnote-olympus-entry.c:696
+msgid "Automatic"
+msgstr "Automatisch"
+
+#: libexif/olympus/mnote-olympus-entry.c:726
+#, c-format
+msgid "Manual: %liK"
+msgstr "Manuell: %liK"
+
+#: libexif/olympus/mnote-olympus-entry.c:729
+msgid "Manual: unknown"
+msgstr "Manuell: Unbekannt"
+
+#: libexif/olympus/mnote-olympus-entry.c:735
+msgid "One-touch"
+msgstr "One-touch"
+
+#: libexif/olympus/mnote-olympus-entry.c:791
+#: libexif/olympus/mnote-olympus-entry.c:801
+msgid "Infinite"
+msgstr "Unendlich"
+
+#: libexif/olympus/mnote-olympus-entry.c:809
+#, c-format
+msgid "%i bytes unknown data: "
+msgstr "%i Byte unbekannte Daten: "
+
+#: libexif/olympus/mnote-olympus-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:53
+msgid "ISO Setting"
+msgstr "ISO Einstellungen"
+
+#: libexif/olympus/mnote-olympus-tag.c:39
+msgid "Color Mode (?)"
+msgstr "Farbmodus (?)"
+
+#: libexif/olympus/mnote-olympus-tag.c:42
+msgid "Image Sharpening"
+msgstr "Bild Schärfung"
+
+#: libexif/olympus/mnote-olympus-tag.c:44
+msgid "Flash Setting"
+msgstr "Blitzeinstellungen"
+
+#: libexif/olympus/mnote-olympus-tag.c:46
+msgid "White Balance Fine Adjustment"
+msgstr "Weißabgleich Feinabstimmung"
+
+#: libexif/olympus/mnote-olympus-tag.c:47
+msgid "White Balance RB"
+msgstr "Weißabgleich RB"
+
+#: libexif/olympus/mnote-olympus-tag.c:49
+msgid "ISO Selection"
+msgstr "ISO Einstellungen"
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Preview Image IFD"
+msgstr "Vorschaubild IFD"
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Offset of the preview image directory (IFD) inside the file."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:51
+msgid "Exposurediff ?"
+msgstr "Belichtungsdifferenz ?"
+
+#: libexif/olympus/mnote-olympus-tag.c:54
+msgid "Image Boundary"
+msgstr "Bildbegrenzung"
+
+#: libexif/olympus/mnote-olympus-tag.c:56
+msgid "Flash Exposure Bracket Value"
+msgstr "Blitzbelichtungs Bracket Wert"
+
+#: libexif/olympus/mnote-olympus-tag.c:57
+msgid "Exposure Bracket Value"
+msgstr "Belichtungsbracketwert"
+
+#: libexif/olympus/mnote-olympus-tag.c:58
+#: libexif/olympus/mnote-olympus-tag.c:96
+msgid "Image Adjustment"
+msgstr "Bildanpassung"
+
+#: libexif/olympus/mnote-olympus-tag.c:59
+msgid "Tone Compensation"
+msgstr "Farbtonkompensation"
+
+#: libexif/olympus/mnote-olympus-tag.c:60
+msgid "Adapter"
+msgstr "Adapter"
+
+#: libexif/olympus/mnote-olympus-tag.c:62
+msgid "Lens"
+msgstr "Objektiv"
+
+#: libexif/olympus/mnote-olympus-tag.c:63
+#: libexif/olympus/mnote-olympus-tag.c:135
+#: libexif/olympus/mnote-olympus-tag.c:185
+msgid "Manual Focus Distance"
+msgstr "Manueller Fokusabstand"
+
+#: libexif/olympus/mnote-olympus-tag.c:65
+msgid "Flash Used"
+msgstr "Blitz löste aus"
+
+#: libexif/olympus/mnote-olympus-tag.c:66
+msgid "AF Focus Position"
+msgstr "AF Fokus Position"
+
+#: libexif/olympus/mnote-olympus-tag.c:67
+msgid "Bracketing"
+msgstr "Bracketierung"
+
+#: libexif/olympus/mnote-olympus-tag.c:69
+msgid "Lens F Stops"
+msgstr "Objektiv F Stops"
+
+#: libexif/olympus/mnote-olympus-tag.c:70
+msgid "Contrast Curve"
+msgstr "Kontrastkurve"
+
+#: libexif/olympus/mnote-olympus-tag.c:71
+#: libexif/olympus/mnote-olympus-tag.c:95
+#: libexif/pentax/mnote-pentax-tag.c:134
+msgid "Color Mode"
+msgstr "Farbmodus"
+
+#: libexif/olympus/mnote-olympus-tag.c:72
+msgid "Light Type"
+msgstr "Lichtart"
+
+#: libexif/olympus/mnote-olympus-tag.c:74
+msgid "Hue Adjustment"
+msgstr "Sättigungsanpassung"
+
+#: libexif/olympus/mnote-olympus-tag.c:76
+#: libexif/olympus/mnote-olympus-tag.c:163
+#: libexif/pentax/mnote-pentax-tag.c:108
+msgid "Noise Reduction"
+msgstr "Rauschreduktion"
+
+#: libexif/olympus/mnote-olympus-tag.c:79
+msgid "Sensor Pixel Size"
+msgstr "Sensor Pixelgröße"
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Image Data Size"
+msgstr "Bilddatengrõße"
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Size of compressed image data in bytes."
+msgstr "Größe der komprimierten Bilddaten in Bytes."
+
+#: libexif/olympus/mnote-olympus-tag.c:84
+msgid "Total Number of Pictures Taken"
+msgstr "Anzahl aller aufgenommenen Bilder"
+
+#: libexif/olympus/mnote-olympus-tag.c:86
+msgid "Optimize Image"
+msgstr "Bild optimieren"
+
+#: libexif/olympus/mnote-olympus-tag.c:88
+msgid "Vari Program"
+msgstr "Vari Programm"
+
+#: libexif/olympus/mnote-olympus-tag.c:89
+msgid "Capture Editor Data"
+msgstr "Daten des Capture Editors"
+
+#: libexif/olympus/mnote-olympus-tag.c:90
+msgid "Capture Editor Version"
+msgstr "Version des Capture Editors"
+
+#: libexif/olympus/mnote-olympus-tag.c:97
+#: libexif/olympus/mnote-olympus-tag.c:183
+msgid "CCD Sensitivity"
+msgstr "CCD Empfindlichkeit"
+
+#: libexif/olympus/mnote-olympus-tag.c:99
+msgid "Focus"
+msgstr "Fokus"
+
+#: libexif/olympus/mnote-olympus-tag.c:102
+msgid "Converter"
+msgstr "Konverter"
+
+#: libexif/olympus/mnote-olympus-tag.c:105
+msgid "Thumbnail Image"
+msgstr "Vorschaubild"
+
+#: libexif/olympus/mnote-olympus-tag.c:106
+msgid "Speed/Sequence/Panorama Direction"
+msgstr "Geschwindigkeit/Sequenz/Panorama Richtung"
+
+#: libexif/olympus/mnote-olympus-tag.c:109
+msgid "Black & White Mode"
+msgstr "Schwarz & Weiß"
+
+#: libexif/olympus/mnote-olympus-tag.c:111
+msgid "Focal Plane Diagonal"
+msgstr "Fokus Ebene Diagonal"
+
+#: libexif/olympus/mnote-olympus-tag.c:112
+msgid "Lens Distortion Parameters"
+msgstr "Objektiv Verzerrungs Parameter"
+
+#: libexif/olympus/mnote-olympus-tag.c:114
+msgid "Info"
+msgstr "Information"
+
+#: libexif/olympus/mnote-olympus-tag.c:115
+msgid "Camera ID"
+msgstr "Kamera ID"
+
+#: libexif/olympus/mnote-olympus-tag.c:116
+msgid "Precapture Frames"
+msgstr "Vorher aufgenommene Bilder"
+
+#: libexif/olympus/mnote-olympus-tag.c:117
+msgid "White Board"
+msgstr "Whiteboard"
+
+#: libexif/olympus/mnote-olympus-tag.c:118
+msgid "One Touch White Balance"
+msgstr "One Touch Weißabgleich"
+
+#: libexif/olympus/mnote-olympus-tag.c:119
+msgid "White Balance Bracket"
+msgstr "Weißabgleich Bracket"
+
+#: libexif/olympus/mnote-olympus-tag.c:120
+#: libexif/pentax/mnote-pentax-tag.c:123
+msgid "White Balance Bias"
+msgstr "Weißabgleich Abweichung"
+
+#: libexif/olympus/mnote-olympus-tag.c:121
+msgid "Data Dump"
+msgstr "Daten Dump"
+
+#: libexif/olympus/mnote-olympus-tag.c:124
+msgid "ISO Value"
+msgstr "ISO Wert"
+
+#: libexif/olympus/mnote-olympus-tag.c:125
+msgid "Aperture Value"
+msgstr "Blende"
+
+#: libexif/olympus/mnote-olympus-tag.c:126
+msgid "Brightness Value"
+msgstr "Helligkeit"
+
+#: libexif/olympus/mnote-olympus-tag.c:128
+msgid "Flash Device"
+msgstr "Blitzgerät"
+
+#: libexif/olympus/mnote-olympus-tag.c:130
+msgid "Sensor Temperature"
+msgstr "Sensor Temperatur"
+
+#: libexif/olympus/mnote-olympus-tag.c:131
+msgid "Lens Temperature"
+msgstr "Objektiv Temperatur"
+
+#: libexif/olympus/mnote-olympus-tag.c:132
+msgid "Light Condition"
+msgstr "Lichtbedingung"
+
+#: libexif/olympus/mnote-olympus-tag.c:136
+msgid "Zoom Step Count"
+msgstr "Zoom Schrittzahl"
+
+#: libexif/olympus/mnote-olympus-tag.c:137
+msgid "Focus Step Count"
+msgstr "Fokus Schrittzahl"
+
+#: libexif/olympus/mnote-olympus-tag.c:138
+msgid "Sharpness Setting"
+msgstr "Schärfeneinstellung"
+
+#: libexif/olympus/mnote-olympus-tag.c:139
+msgid "Flash Charge Level"
+msgstr "Blitzladestand"
+
+#: libexif/olympus/mnote-olympus-tag.c:140
+msgid "Color Matrix"
+msgstr "Farb Matrix"
+
+#: libexif/olympus/mnote-olympus-tag.c:141
+msgid "Black Level"
+msgstr "Schwarzwert"
+
+#: libexif/olympus/mnote-olympus-tag.c:142
+msgid "White Balance Setting"
+msgstr "Weißabgleicheinstellung"
+
+#: libexif/olympus/mnote-olympus-tag.c:143
+#: libexif/pentax/mnote-pentax-tag.c:87
+msgid "Red Balance"
+msgstr "Rotabgleich"
+
+#: libexif/olympus/mnote-olympus-tag.c:144
+#: libexif/pentax/mnote-pentax-tag.c:86
+msgid "Blue Balance"
+msgstr "Blauabgleich"
+
+#: libexif/olympus/mnote-olympus-tag.c:145
+msgid "Color Matrix Number"
+msgstr "Farbmatrixzahl"
+
+#: libexif/olympus/mnote-olympus-tag.c:147
+msgid "Flash Exposure Comp"
+msgstr "Blitz belichtungskompensation"
+
+#: libexif/olympus/mnote-olympus-tag.c:148
+msgid "Internal Flash Table"
+msgstr "Interne Blitztabelle"
+
+#: libexif/olympus/mnote-olympus-tag.c:149
+msgid "External Flash G Value"
+msgstr "Externer Blitz G Wert"
+
+#: libexif/olympus/mnote-olympus-tag.c:150
+msgid "External Flash Bounce"
+msgstr "Externer Blitz Reflektion"
+
+#: libexif/olympus/mnote-olympus-tag.c:151
+msgid "External Flash Zoom"
+msgstr "Externer Blitz Zoom"
+
+#: libexif/olympus/mnote-olympus-tag.c:152
+msgid "External Flash Mode"
+msgstr "Externer Blitz Modus"
+
+#: libexif/olympus/mnote-olympus-tag.c:153
+msgid "Contrast Setting"
+msgstr "Kontrasteinstellung"
+
+#: libexif/olympus/mnote-olympus-tag.c:154
+msgid "Sharpness Factor"
+msgstr "Schärfenfaktor"
+
+#: libexif/olympus/mnote-olympus-tag.c:155
+msgid "Color Control"
+msgstr "Farbkontrolle"
+
+#: libexif/olympus/mnote-olympus-tag.c:156
+msgid "Olympus Image Width"
+msgstr "Olympus Bildbreite"
+
+#: libexif/olympus/mnote-olympus-tag.c:157
+msgid "Olympus Image Height"
+msgstr "Olympus Bildhöhe"
+
+#: libexif/olympus/mnote-olympus-tag.c:158
+msgid "Scene Detect"
+msgstr "Szenenerkennung"
+
+#: libexif/olympus/mnote-olympus-tag.c:159
+msgid "Compression Ratio"
+msgstr "Kompressionsfaktor"
+
+#: libexif/olympus/mnote-olympus-tag.c:160
+msgid "Preview Image Valid"
+msgstr "Vorschaubild gültig"
+
+#: libexif/olympus/mnote-olympus-tag.c:161
+msgid "AF Result"
+msgstr "AF Resultat"
+
+#: libexif/olympus/mnote-olympus-tag.c:162
+msgid "CCD Scan Mode"
+msgstr "CCD Scanmodus"
+
+#: libexif/olympus/mnote-olympus-tag.c:164
+msgid "Infinity Lens Step"
+msgstr "Unendliche Objektiv Einstellung"
+
+#: libexif/olympus/mnote-olympus-tag.c:165
+msgid "Near Lens Step"
+msgstr "Nah Objektiv Einstellung"
+
+#: libexif/olympus/mnote-olympus-tag.c:166
+msgid "Light Value Center"
+msgstr "Lichtwert Mitte"
+
+#: libexif/olympus/mnote-olympus-tag.c:167
+msgid "Light Value Periphery"
+msgstr "Lichtwert Peripherie"
+
+#: libexif/olympus/mnote-olympus-tag.c:170
+msgid "Sequential Shot"
+msgstr "Sequentielle Aufnahme"
+
+#: libexif/olympus/mnote-olympus-tag.c:171
+msgid "Wide Range"
+msgstr "Weiter Bereich"
+
+#: libexif/olympus/mnote-olympus-tag.c:172
+msgid "Color Adjustment Mode"
+msgstr "Farbanpassungsmodus"
+
+#: libexif/olympus/mnote-olympus-tag.c:174
+msgid "Quick Shot"
+msgstr "Quick Shot"
+
+#: libexif/olympus/mnote-olympus-tag.c:176
+msgid "Voice Memo"
+msgstr "Voice Memo"
+
+#: libexif/olympus/mnote-olympus-tag.c:177
+msgid "Record Shutter Release"
+msgstr "Aufzeichnung Auslöser"
+
+#: libexif/olympus/mnote-olympus-tag.c:178
+msgid "Flicker Reduce"
+msgstr "Flimmerreduktion"
+
+#: libexif/olympus/mnote-olympus-tag.c:179
+msgid "Optical Zoom"
+msgstr "Optischer Zoom"
+
+#: libexif/olympus/mnote-olympus-tag.c:181
+msgid "Light Source Special"
+msgstr "Lichtquelle Spezial"
+
+#: libexif/olympus/mnote-olympus-tag.c:182
+msgid "Resaved"
+msgstr "Neugespeichert"
+
+#: libexif/olympus/mnote-olympus-tag.c:184
+msgid "Scene Select"
+msgstr "Szenen Selektion"
+
+#: libexif/olympus/mnote-olympus-tag.c:186
+msgid "Sequence Shot Interval"
+msgstr "Sequenzaufnahme Interval"
+
+#: libexif/olympus/mnote-olympus-tag.c:189
+msgid "Epson Image Width"
+msgstr "Epson Bildbreite"
+
+#: libexif/olympus/mnote-olympus-tag.c:190
+msgid "Epson Image Height"
+msgstr "Epson Bildhöhe"
+
+#: libexif/olympus/mnote-olympus-tag.c:191
+msgid "Epson Software Version"
+msgstr "Epson Firmware Version"
+
+#: libexif/pentax/mnote-pentax-entry.c:80
+#: libexif/pentax/mnote-pentax-entry.c:134
+msgid "Multi-exposure"
+msgstr "Mehrfachbelichtung"
+
+#: libexif/pentax/mnote-pentax-entry.c:83
+#: libexif/pentax/mnote-pentax-entry.c:137
+msgid "Good"
+msgstr "Gut"
+
+#: libexif/pentax/mnote-pentax-entry.c:84
+#: libexif/pentax/mnote-pentax-entry.c:138
+msgid "Better"
+msgstr "Besser"
+
+#: libexif/pentax/mnote-pentax-entry.c:92
+msgid "Flash on"
+msgstr "Blitz an"
+
+#: libexif/pentax/mnote-pentax-entry.c:140
+msgid "TIFF"
+msgstr "TIFF"
+
+#: libexif/pentax/mnote-pentax-entry.c:150
+msgid "2560x1920 or 2304x1728"
+msgstr "2560x1920 oder 2304x1728"
+
+#: libexif/pentax/mnote-pentax-entry.c:156
+msgid "2304x1728 or 2592x1944"
+msgstr "2304x1728 oder 2592x1944"
+
+#: libexif/pentax/mnote-pentax-entry.c:158
+msgid "2816x2212 or 2816x2112"
+msgstr "2816x2212 oder 2816x2112"
+
+#: libexif/pentax/mnote-pentax-entry.c:171
+msgid "Surf & snow"
+msgstr "Schnee & Meer"
+
+#: libexif/pentax/mnote-pentax-entry.c:172
+msgid "Sunset or candlelight"
+msgstr "Sonnenuntergang oder Kerzenlicht"
+
+#: libexif/pentax/mnote-pentax-entry.c:173
+msgid "Autumn"
+msgstr "Herbst"
+
+#: libexif/pentax/mnote-pentax-entry.c:178
+msgid "Self portrait"
+msgstr "Selbstportrait"
+
+#: libexif/pentax/mnote-pentax-entry.c:179
+msgid "Illustrations"
+msgstr "Zeichnungen"
+
+#: libexif/pentax/mnote-pentax-entry.c:180
+msgid "Digital filter"
+msgstr "Digitaler Filter"
+
+#: libexif/pentax/mnote-pentax-entry.c:182
+msgid "Food"
+msgstr "Essen"
+
+#: libexif/pentax/mnote-pentax-entry.c:183
+msgid "Green mode"
+msgstr "Grüner Modus"
+
+#: libexif/pentax/mnote-pentax-entry.c:184
+msgid "Light pet"
+msgstr "Helles Tier"
+
+#: libexif/pentax/mnote-pentax-entry.c:185
+msgid "Dark pet"
+msgstr "Dunkles Tier"
+
+#: libexif/pentax/mnote-pentax-entry.c:186
+msgid "Medium pet"
+msgstr "Mittleres Tier"
+
+#: libexif/pentax/mnote-pentax-entry.c:188
+#: libexif/pentax/mnote-pentax-entry.c:296
+msgid "Candlelight"
+msgstr "Kerzenlicht"
+
+#: libexif/pentax/mnote-pentax-entry.c:189
+msgid "Natural skin tone"
+msgstr "Normaler Haut Typ"
+
+#: libexif/pentax/mnote-pentax-entry.c:190
+msgid "Synchro sound record"
+msgstr "Synchrone Soundaufnahme"
+
+#: libexif/pentax/mnote-pentax-entry.c:191
+msgid "Frame composite"
+msgstr "Bild Zusammensetzung"
+
+#: libexif/pentax/mnote-pentax-entry.c:194
+msgid "Auto, did not fire"
+msgstr "Automatisch, Blitz löste nicht aus."
+
+#: libexif/pentax/mnote-pentax-entry.c:196
+msgid "Auto, did not fire, red-eye reduction"
+msgstr "Automatisch, Blitz nicht ausgelöst, rote Augen Reduktion"
+
+#: libexif/pentax/mnote-pentax-entry.c:197
+msgid "Auto, fired"
+msgstr "Automatisch, Blitz ausgelöst"
+
+#: libexif/pentax/mnote-pentax-entry.c:199
+msgid "Auto, fired, red-eye reduction"
+msgstr "Automatisch, Blitz ausgelöst, Rot-Augen Reduktion"
+
+#: libexif/pentax/mnote-pentax-entry.c:201
+msgid "On, wireless"
+msgstr "An, Drahtlos"
+
+#: libexif/pentax/mnote-pentax-entry.c:202
+msgid "On, soft"
+msgstr "An, Weich"
+
+#: libexif/pentax/mnote-pentax-entry.c:203
+msgid "On, slow-sync"
+msgstr "An, Langsame Synchronisation"
+
+#: libexif/pentax/mnote-pentax-entry.c:204
+msgid "On, slow-sync, red-eye reduction"
+msgstr "An, Langsame Synchronisation, Rote-Augen Reduktion"
+
+#: libexif/pentax/mnote-pentax-entry.c:205
+msgid "On, trailing-curtain sync"
+msgstr "An, Synchronisation auf hinteren Vorhang"
+
+#: libexif/pentax/mnote-pentax-entry.c:213
+msgid "AF-S"
+msgstr "AF-S"
+
+#: libexif/pentax/mnote-pentax-entry.c:214
+msgid "AF-C"
+msgstr "AF-C"
+
+#: libexif/pentax/mnote-pentax-entry.c:217
+msgid "Upper-left"
+msgstr "Oben-links"
+
+#: libexif/pentax/mnote-pentax-entry.c:218
+msgid "Top"
+msgstr "Oben"
+
+#: libexif/pentax/mnote-pentax-entry.c:219
+msgid "Upper-right"
+msgstr "Oben-Rechts"
+
+#: libexif/pentax/mnote-pentax-entry.c:221
+msgid "Mid-left"
+msgstr "Mitte-Links"
+
+#: libexif/pentax/mnote-pentax-entry.c:223
+msgid "Mid-right"
+msgstr "Mitte-Rechts"
+
+#: libexif/pentax/mnote-pentax-entry.c:225
+msgid "Lower-left"
+msgstr "Unten-Links"
+
+#: libexif/pentax/mnote-pentax-entry.c:226
+msgid "Bottom"
+msgstr "Unten"
+
+#: libexif/pentax/mnote-pentax-entry.c:227
+msgid "Lower-right"
+msgstr "Unten-Rechts"
+
+#: libexif/pentax/mnote-pentax-entry.c:228
+msgid "Fixed center"
+msgstr "Fixiert-Mitte"
+
+#: libexif/pentax/mnote-pentax-entry.c:232
+msgid "Multiple"
+msgstr "Mehrfach"
+
+#: libexif/pentax/mnote-pentax-entry.c:234
+msgid "Top-center"
+msgstr "Oben-Mitte"
+
+#: libexif/pentax/mnote-pentax-entry.c:240
+msgid "Bottom-center"
+msgstr "Unten-Mitte"
+
+#: libexif/pentax/mnote-pentax-entry.c:257
+msgid "User selected"
+msgstr "Benutzer selektiert"
+
+#: libexif/pentax/mnote-pentax-entry.c:282
+msgid "3008x2008 or 3040x2024"
+msgstr "3008x2008 oder 3040x2024"
+
+#: libexif/pentax/mnote-pentax-entry.c:293
+msgid "Digital filter?"
+msgstr "Digitaler Filter?"
+
+#: libexif/pentax/mnote-pentax-entry.c:374
+#: libexif/pentax/mnote-pentax-entry.c:383
+#, c-format
+msgid "Internal error (unknown value %i %i)"
+msgstr "Interner Fehler (unbekannter Wert %i %i)"
+
+#: libexif/pentax/mnote-pentax-tag.c:35 libexif/pentax/mnote-pentax-tag.c:63
+msgid "Capture Mode"
+msgstr "Aufnahme Modus"
+
+#: libexif/pentax/mnote-pentax-tag.c:36 libexif/pentax/mnote-pentax-tag.c:70
+#: libexif/pentax/mnote-pentax-tag.c:129
+msgid "Quality Level"
+msgstr "Qualitätsstufe"
+
+#: libexif/pentax/mnote-pentax-tag.c:54
+msgid "ISO Speed"
+msgstr "ISO Geschwindigkeit"
+
+#: libexif/pentax/mnote-pentax-tag.c:56
+msgid "Colors"
+msgstr "Farben"
+
+#: libexif/pentax/mnote-pentax-tag.c:59
+msgid "PrintIM Settings"
+msgstr "PrintIM Einstellungen"
+
+#: libexif/pentax/mnote-pentax-tag.c:60 libexif/pentax/mnote-pentax-tag.c:131
+msgid "Time Zone"
+msgstr "Zeitzone"
+
+#: libexif/pentax/mnote-pentax-tag.c:61
+msgid "Daylight Savings"
+msgstr "Sommerzeit"
+
+#: libexif/pentax/mnote-pentax-tag.c:64
+msgid "Preview Size"
+msgstr "Größe Vorschau"
+
+#: libexif/pentax/mnote-pentax-tag.c:65
+msgid "Preview Length"
+msgstr "Länge Vorschau"
+
+#: libexif/pentax/mnote-pentax-tag.c:66 libexif/pentax/mnote-pentax-tag.c:122
+msgid "Preview Start"
+msgstr "Beginn Vorschau"
+
+#: libexif/pentax/mnote-pentax-tag.c:67
+msgid "Model Identification"
+msgstr "Identifikations des Modells"
+
+#: libexif/pentax/mnote-pentax-tag.c:68
+msgid "Date"
+msgstr "Datum"
+
+#: libexif/pentax/mnote-pentax-tag.c:69
+msgid "Time"
+msgstr "Zeit"
+
+#: libexif/pentax/mnote-pentax-tag.c:75
+msgid "AF Point Selected"
+msgstr "AF Punkt Selektion"
+
+#: libexif/pentax/mnote-pentax-tag.c:76
+msgid "Auto AF Point"
+msgstr "Automatischer AF Punkt "
+
+#: libexif/pentax/mnote-pentax-tag.c:77
+msgid "Focus Position"
+msgstr "Fokus Position"
+
+#: libexif/pentax/mnote-pentax-tag.c:80
+msgid "ISO Number"
+msgstr "ISO Zahl"
+
+#: libexif/pentax/mnote-pentax-tag.c:83
+msgid "Auto Bracketing"
+msgstr "Automatische Belichtungsreihe"
+
+#: libexif/pentax/mnote-pentax-tag.c:85
+msgid "White Balance Mode"
+msgstr "Weißabgleichmodus"
+
+#: libexif/pentax/mnote-pentax-tag.c:93
+msgid "World Time Location"
+msgstr "Welt Zeit Position"
+
+#: libexif/pentax/mnote-pentax-tag.c:94
+msgid "Hometown City"
+msgstr "Heimatstadt"
+
+#: libexif/pentax/mnote-pentax-tag.c:95
+msgid "Destination City"
+msgstr "Zielstadt"
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Hometown DST"
+msgstr "Heimatstadt Sommerzeit"
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Home Daylight Savings Time"
+msgstr "Heim Sommerzeit"
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination DST"
+msgstr "Ziel Sommerzeit"
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination Daylight Savings Time"
+msgstr "Ziel Sommerzeit"
+
+#: libexif/pentax/mnote-pentax-tag.c:99
+msgid "Image Processing"
+msgstr "Bild Verarbeitung"
+
+#: libexif/pentax/mnote-pentax-tag.c:100
+msgid "Picture Mode (2)"
+msgstr "Bildmodus (2)"
+
+#: libexif/pentax/mnote-pentax-tag.c:103
+msgid "Image Area Offset"
+msgstr "Bildbereich Offset"
+
+#: libexif/pentax/mnote-pentax-tag.c:104
+msgid "Raw Image Size"
+msgstr "Rohe Bildgröße"
+
+#: libexif/pentax/mnote-pentax-tag.c:105
+msgid "Autofocus Points Used"
+msgstr "AutoFokuspunkte benutzt"
+
+#: libexif/pentax/mnote-pentax-tag.c:107
+msgid "Camera Temperature"
+msgstr "Kamera Temperatur"
+
+#: libexif/pentax/mnote-pentax-tag.c:110
+msgid "Image Tone"
+msgstr "Bildfarbton"
+
+#: libexif/pentax/mnote-pentax-tag.c:111
+msgid "Shake Reduction Info"
+msgstr "Verwacklungsreduktionsinformation"
+
+#: libexif/pentax/mnote-pentax-tag.c:112
+msgid "Black Point"
+msgstr "Schwarzpunkt"
+
+#: libexif/pentax/mnote-pentax-tag.c:114
+msgid "AE Info"
+msgstr "AE Information"
+
+#: libexif/pentax/mnote-pentax-tag.c:115
+msgid "Lens Info"
+msgstr "Objektivinfo"
+
+#: libexif/pentax/mnote-pentax-tag.c:116
+msgid "Flash Info"
+msgstr "Blitzinfo"
+
+#: libexif/pentax/mnote-pentax-tag.c:117
+msgid "Camera Info"
+msgstr "Kamerainfo"
+
+#: libexif/pentax/mnote-pentax-tag.c:118
+msgid "Battery Info"
+msgstr "Batterieinfo"
+
+#: libexif/pentax/mnote-pentax-tag.c:119
+msgid "Hometown City Code"
+msgstr "Heimatstadt PLZ"
+
+#: libexif/pentax/mnote-pentax-tag.c:120
+msgid "Destination City Code"
+msgstr "Zielstadt PLZ"
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Object Distance"
+msgstr "Entfernung des Objekts"
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Distance of photographed object in millimeters."
+msgstr "Die Entfernung zum Objekt (in Millimetern)."
+
+#: libexif/pentax/mnote-pentax-tag.c:126
+msgid "Flash Distance"
+msgstr "Blitzabstand"
+
+#: libexif/pentax/mnote-pentax-tag.c:132
+msgid "Bestshot Mode"
+msgstr "Einfacher Aufnahmemodus"
+
+#: libexif/pentax/mnote-pentax-tag.c:133
+msgid "CCS ISO Sensitivity"
+msgstr "CCD ISO Empfindlichkeit"
+
+#: libexif/pentax/mnote-pentax-tag.c:135
+msgid "Enhancement"
+msgstr "Verbesserung"
+
+#: libexif/pentax/mnote-pentax-tag.c:136
+msgid "Finer"
+msgstr "Feiner"
+
+# This is a very special string. It is used for test purposes, and
+# we only test the de locale as a proof-of-concept example. There is
+# no need for anybody to translate it.
+#: test/nls/test-nls.c:20 test/nls/test-nls.c:23 test/nls/test-nls.c:24
+msgid "[DO_NOT_TRANSLATE_THIS_MARKER]"
+msgstr "[DO_NOT_TRANSLATE_THIS_MARKER_de]"
+
+#~ msgid "%.02lf EV"
+#~ msgstr "%.02lf EV"
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/en@boldquot.header b/framework/modules/c_LibExifModule/libexif-0.6.20/po/en@boldquot.header
new file mode 100644
index 0000000000000000000000000000000000000000..fedb6a06d129acb554ccb20ba04e7ea5649aa2ac
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/en@boldquot.header
@@ -0,0 +1,25 @@
+# All this catalog "translates" are quotation characters.
+# The msgids must be ASCII and therefore cannot contain real quotation
+# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
+# and double quote (0x22). These substitutes look strange; see
+# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
+#
+# This catalog translates grave accent (0x60) and apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019).
+# It also translates pairs of apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019)
+# and pairs of quotation mark (0x22) to
+# left double quotation mark (U+201C) and right double quotation mark (U+201D).
+#
+# When output to an UTF-8 terminal, the quotation characters appear perfectly.
+# When output to an ISO-8859-1 terminal, the single quotation marks are
+# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
+# grave/acute accent (by libiconv), and the double quotation marks are
+# transliterated to 0x22.
+# When output to an ASCII terminal, the single quotation marks are
+# transliterated to apostrophes, and the double quotation marks are
+# transliterated to 0x22.
+#
+# This catalog furthermore displays the text between the quotation marks in
+# bold face, assuming the VT100/XTerm escape sequences.
+#
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/en@quot.header b/framework/modules/c_LibExifModule/libexif-0.6.20/po/en@quot.header
new file mode 100644
index 0000000000000000000000000000000000000000..a9647fc35c3bc0b49aaafe20deeb5c30a80996bb
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/en@quot.header
@@ -0,0 +1,22 @@
+# All this catalog "translates" are quotation characters.
+# The msgids must be ASCII and therefore cannot contain real quotation
+# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
+# and double quote (0x22). These substitutes look strange; see
+# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
+#
+# This catalog translates grave accent (0x60) and apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019).
+# It also translates pairs of apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019)
+# and pairs of quotation mark (0x22) to
+# left double quotation mark (U+201C) and right double quotation mark (U+201D).
+#
+# When output to an UTF-8 terminal, the quotation characters appear perfectly.
+# When output to an ISO-8859-1 terminal, the single quotation marks are
+# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
+# grave/acute accent (by libiconv), and the double quotation marks are
+# transliterated to 0x22.
+# When output to an ASCII terminal, the single quotation marks are
+# transliterated to apostrophes, and the double quotation marks are
+# transliterated to 0x22.
+#
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/en_CA.gmo b/framework/modules/c_LibExifModule/libexif-0.6.20/po/en_CA.gmo
new file mode 100644
index 0000000000000000000000000000000000000000..a1323b3545b1e7bbf388c50131df65152434fc61
Binary files /dev/null and b/framework/modules/c_LibExifModule/libexif-0.6.20/po/en_CA.gmo differ
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/en_CA.po b/framework/modules/c_LibExifModule/libexif-0.6.20/po/en_CA.po
new file mode 100644
index 0000000000000000000000000000000000000000..145a1d1d4cf9792779611d8ae5f9f048390ed2e6
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/en_CA.po
@@ -0,0 +1,5498 @@
+# libexif translation into Canadian English
+# Copyright (C) 2007 Lutz Mueller and others
+# This file is distributed under the same license as the libexif package.
+# Dan Fandrich <dan@coneharvesters.com>, 2007-2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: libexif 0.6.17.1\n"
+"Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-12-15 22:14-0800\n"
+"PO-Revision-Date: 2009-09-21 22:44-0700\n"
+"Last-Translator: Dan Fandrich <dan@coneharvesters.com>\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
+
+#: libexif/canon/mnote-canon-entry.c:40 libexif/fuji/mnote-fuji-entry.c:35
+#: libexif/olympus/mnote-olympus-entry.c:37
+#: libexif/pentax/mnote-pentax-entry.c:39
+#, c-format
+msgid "Invalid format '%s', expected '%s'."
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:52 libexif/fuji/mnote-fuji-entry.c:47
+#: libexif/olympus/mnote-olympus-entry.c:62
+#: libexif/pentax/mnote-pentax-entry.c:51
+#, c-format
+msgid "Invalid number of components (%i, expected %i)."
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:61
+#: libexif/olympus/mnote-olympus-entry.c:72
+#: libexif/pentax/mnote-pentax-entry.c:61
+#, c-format
+msgid "Invalid number of components (%i, expected %i or %i)."
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:76 libexif/canon/mnote-canon-entry.c:130
+#: libexif/canon/mnote-canon-entry.c:182 libexif/exif-entry.c:796
+#: libexif/olympus/mnote-olympus-entry.c:196
+#: libexif/olympus/mnote-olympus-tag.c:108
+#: libexif/pentax/mnote-pentax-entry.c:174
+#: libexif/pentax/mnote-pentax-entry.c:209
+#: libexif/pentax/mnote-pentax-entry.c:297
+msgid "Macro"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:77 libexif/canon/mnote-canon-entry.c:79
+#: libexif/canon/mnote-canon-entry.c:157 libexif/canon/mnote-canon-entry.c:160
+#: libexif/canon/mnote-canon-entry.c:163 libexif/exif-entry.c:674
+#: libexif/exif-entry.c:677 libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/exif-entry.c:745 libexif/fuji/mnote-fuji-entry.c:64
+#: libexif/olympus/mnote-olympus-entry.c:118
+#: libexif/olympus/mnote-olympus-entry.c:195
+#: libexif/olympus/mnote-olympus-entry.c:203
+#: libexif/olympus/mnote-olympus-entry.c:213
+#: libexif/olympus/mnote-olympus-entry.c:586
+#: libexif/pentax/mnote-pentax-entry.c:105
+#: libexif/pentax/mnote-pentax-entry.c:110
+#: libexif/pentax/mnote-pentax-entry.c:115
+#: libexif/pentax/mnote-pentax-entry.c:208
+msgid "Normal"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:78
+msgid "Economy"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:80
+msgid "Fine"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:81 libexif/fuji/mnote-fuji-entry.c:178
+#: libexif/pentax/mnote-pentax-entry.c:141
+msgid "RAW"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:82
+msgid "Superfine"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:83 libexif/canon/mnote-canon-entry.c:301
+#: libexif/canon/mnote-canon-entry.c:304 libexif/canon/mnote-canon-entry.c:312
+#: libexif/canon/mnote-canon-entry.c:345 libexif/canon/mnote-canon-entry.c:357
+#: libexif/canon/mnote-canon-entry.c:370 libexif/canon/mnote-canon-entry.c:372
+#: libexif/canon/mnote-canon-entry.c:574 libexif/canon/mnote-canon-entry.c:671
+#: libexif/fuji/mnote-fuji-entry.c:70 libexif/fuji/mnote-fuji-entry.c:103
+#: libexif/fuji/mnote-fuji-entry.c:107 libexif/fuji/mnote-fuji-entry.c:115
+#: libexif/fuji/mnote-fuji-entry.c:142
+#: libexif/olympus/mnote-olympus-entry.c:178
+#: libexif/olympus/mnote-olympus-entry.c:186
+#: libexif/olympus/mnote-olympus-entry.c:251
+#: libexif/olympus/mnote-olympus-entry.c:530
+#: libexif/olympus/mnote-olympus-entry.c:547
+#: libexif/pentax/mnote-pentax-entry.c:195
+#: libexif/pentax/mnote-pentax-entry.c:260
+msgid "Off"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:84 libexif/canon/mnote-canon-entry.c:167
+#: libexif/canon/mnote-canon-entry.c:180 libexif/canon/mnote-canon-entry.c:328
+#: libexif/canon/mnote-canon-entry.c:400 libexif/fuji/mnote-fuji-entry.c:73
+#: libexif/fuji/mnote-fuji-entry.c:101 libexif/fuji/mnote-fuji-entry.c:111
+#: libexif/fuji/mnote-fuji-entry.c:119
+#: libexif/olympus/mnote-olympus-entry.c:131
+#: libexif/olympus/mnote-olympus-entry.c:183
+#: libexif/olympus/mnote-olympus-entry.c:199
+#: libexif/olympus/mnote-olympus-entry.c:244
+#: libexif/pentax/mnote-pentax-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:88
+#: libexif/pentax/mnote-pentax-entry.c:91
+#: libexif/pentax/mnote-pentax-entry.c:97
+#: libexif/pentax/mnote-pentax-entry.c:131
+#: libexif/pentax/mnote-pentax-entry.c:229
+#: libexif/pentax/mnote-pentax-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:290
+msgid "Auto"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:85 libexif/canon/mnote-canon-entry.c:302
+#: libexif/canon/mnote-canon-entry.c:347 libexif/canon/mnote-canon-entry.c:361
+#: libexif/canon/mnote-canon-entry.c:371 libexif/fuji/mnote-fuji-entry.c:102
+#: libexif/fuji/mnote-fuji-entry.c:108 libexif/fuji/mnote-fuji-entry.c:116
+#: libexif/fuji/mnote-fuji-entry.c:143
+#: libexif/olympus/mnote-olympus-entry.c:179
+#: libexif/olympus/mnote-olympus-entry.c:533
+#: libexif/olympus/mnote-olympus-entry.c:550
+#: libexif/pentax/mnote-pentax-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:261
+msgid "On"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:86 libexif/fuji/mnote-fuji-entry.c:104
+#: libexif/olympus/mnote-olympus-entry.c:184
+#: libexif/pentax/mnote-pentax-entry.c:94
+msgid "Red-eye reduction"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:87
+msgid "Slow synchro"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:88
+msgid "Auto, red-eye reduction"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:89
+#: libexif/pentax/mnote-pentax-entry.c:200
+msgid "On, red-eye reduction"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:90
+msgid "External flash"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:91 libexif/canon/mnote-canon-entry.c:101
+#: libexif/canon/mnote-canon-entry.c:294
+msgid "Single"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:92 libexif/canon/mnote-canon-entry.c:102
+#: libexif/canon/mnote-canon-entry.c:295
+msgid "Continuous"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:93
+msgid "Movie"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:94
+msgid "Continuous, speed priority"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:95
+msgid "Continuous, low"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:96
+msgid "Continuous, high"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:97
+msgid "One-shot AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:98
+msgid "AI servo AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:99
+msgid "AI focus AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:100 libexif/canon/mnote-canon-entry.c:103
+msgid "Manual focus"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:104 libexif/canon/mnote-canon-entry.c:132
+#: libexif/canon/mnote-canon-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:212
+msgid "Pan focus"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:105
+msgid "JPEG"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:106
+msgid "CRW+THM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:107
+msgid "AVI+THM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:108
+msgid "TIF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:109
+msgid "TIF+JPEG"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:110
+msgid "CR2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:111
+msgid "CR2+JPEG"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:112
+msgid "Large"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:113
+msgid "Medium"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:114
+msgid "Small"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:115
+msgid "Medium 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:116
+msgid "Medium 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:117
+msgid "Medium 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:118
+msgid "Postcard"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:119
+msgid "Widescreen"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:120
+msgid "Full auto"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:121 libexif/canon/mnote-canon-entry.c:179
+#: libexif/canon/mnote-canon-entry.c:201 libexif/canon/mnote-canon-entry.c:285
+#: libexif/canon/mnote-canon-entry.c:392 libexif/exif-entry.c:744
+#: libexif/fuji/mnote-fuji-entry.c:112
+#: libexif/olympus/mnote-olympus-entry.c:90
+#: libexif/olympus/mnote-olympus-entry.c:200
+#: libexif/pentax/mnote-pentax-entry.c:79
+#: libexif/pentax/mnote-pentax-entry.c:102
+#: libexif/pentax/mnote-pentax-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:165
+#: libexif/pentax/mnote-pentax-entry.c:211
+#: libexif/pentax/mnote-pentax-entry.c:250
+msgid "Manual"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:122 libexif/canon/mnote-canon-entry.c:430
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:755
+#: libexif/fuji/mnote-fuji-entry.c:121 libexif/pentax/mnote-pentax-entry.c:167
+#: libexif/pentax/mnote-pentax-entry.c:301
+msgid "Landscape"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:123
+msgid "Fast shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:124
+msgid "Slow shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:125 libexif/fuji/mnote-fuji-entry.c:123
+#: libexif/olympus/mnote-olympus-entry.c:254
+msgid "Night"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:126
+msgid "Grayscale"
+msgstr "Greyscale"
+
+#: libexif/canon/mnote-canon-entry.c:127 libexif/canon/mnote-canon-entry.c:308
+#: libexif/pentax/mnote-pentax-entry.c:128
+msgid "Sepia"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:128 libexif/canon/mnote-canon-entry.c:429
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:753
+#: libexif/fuji/mnote-fuji-entry.c:120 libexif/pentax/mnote-pentax-entry.c:166
+#: libexif/pentax/mnote-pentax-entry.c:291
+#: libexif/pentax/mnote-pentax-entry.c:294
+#: libexif/pentax/mnote-pentax-entry.c:300
+msgid "Portrait"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:129 libexif/fuji/mnote-fuji-entry.c:122
+msgid "Sports"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:131 libexif/canon/mnote-canon-entry.c:309
+#: libexif/canon/mnote-canon-entry.c:335 libexif/canon/mnote-canon-entry.c:407
+#: libexif/fuji/mnote-fuji-entry.c:89 libexif/pentax/mnote-pentax-entry.c:127
+msgid "Black & white"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:133 libexif/canon/mnote-canon-entry.c:305
+msgid "Vivid"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:134 libexif/canon/mnote-canon-entry.c:306
+#: libexif/canon/mnote-canon-entry.c:431
+msgid "Neutral"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:93
+msgid "Flash off"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:136
+msgid "Long shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:137 libexif/canon/mnote-canon-entry.c:188
+#: libexif/olympus/mnote-olympus-entry.c:171
+msgid "Super macro"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:138
+msgid "Foliage"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:139
+msgid "Indoor"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:140 libexif/fuji/mnote-fuji-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:175
+msgid "Fireworks"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:141 libexif/fuji/mnote-fuji-entry.c:133
+msgid "Beach"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:142 libexif/canon/mnote-canon-entry.c:344
+#: libexif/canon/mnote-canon-entry.c:416 libexif/fuji/mnote-fuji-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:292
+#: libexif/pentax/mnote-pentax-entry.c:298
+msgid "Underwater"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:143 libexif/fuji/mnote-fuji-entry.c:134
+msgid "Snow"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:144
+msgid "Kids & pets"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:145
+msgid "Night snapshot"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:146
+msgid "Digital macro"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:147
+msgid "My colors"
+msgstr "My colours"
+
+#: libexif/canon/mnote-canon-entry.c:148
+msgid "Still image"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:149
+msgid "Color accent"
+msgstr "Colour accent"
+
+#: libexif/canon/mnote-canon-entry.c:150
+msgid "Color swap"
+msgstr "Colour swap"
+
+#: libexif/canon/mnote-canon-entry.c:151
+msgid "Aquarium"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:152
+msgid "ISO 3200"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:153 libexif/canon/mnote-canon-entry.c:348
+#: libexif/canon/mnote-canon-entry.c:365 libexif/canon/mnote-canon-entry.c:417
+#: libexif/olympus/mnote-olympus-entry.c:189
+#: libexif/olympus/mnote-olympus-entry.c:226
+#: libexif/olympus/mnote-olympus-entry.c:451
+#: libexif/pentax/mnote-pentax-entry.c:242
+msgid "None"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:154
+msgid "2x"
+msgstr "2×"
+
+#: libexif/canon/mnote-canon-entry.c:155
+msgid "4x"
+msgstr "4×"
+
+#: libexif/canon/mnote-canon-entry.c:156 libexif/exif-entry.c:702
+#: libexif/exif-entry.c:732
+msgid "Other"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:158 libexif/canon/mnote-canon-entry.c:161
+#: libexif/canon/mnote-canon-entry.c:164 libexif/canon/mnote-canon-entry.c:398
+#: libexif/fuji/mnote-fuji-entry.c:86 libexif/pentax/mnote-pentax-entry.c:112
+#: libexif/pentax/mnote-pentax-entry.c:117
+msgid "High"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:159 libexif/canon/mnote-canon-entry.c:162
+#: libexif/canon/mnote-canon-entry.c:165 libexif/canon/mnote-canon-entry.c:396
+#: libexif/pentax/mnote-pentax-entry.c:111
+#: libexif/pentax/mnote-pentax-entry.c:116
+msgid "Low"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:166
+msgid "Auto high"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:168
+msgid "50"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:120
+#: libexif/pentax/mnote-pentax-entry.c:122
+msgid "100"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:170
+#: libexif/pentax/mnote-pentax-entry.c:121
+#: libexif/pentax/mnote-pentax-entry.c:123
+msgid "200"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:171
+msgid "400"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:172
+msgid "800"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:173
+msgid "Default"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:174 libexif/exif-entry.c:698
+msgid "Spot"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:175 libexif/exif-entry.c:696
+msgid "Average"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:176
+msgid "Evaluative"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:177 libexif/exif-entry.c:701
+msgid "Partial"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:178 libexif/exif-entry.c:697
+msgid "Center-weighted average"
+msgstr "Centre-weighted average"
+
+#: libexif/canon/mnote-canon-entry.c:181
+msgid "Not known"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:183
+msgid "Very close"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:184 libexif/exif-entry.c:797
+msgid "Close"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:185
+msgid "Middle range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:186
+msgid "Far range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:189
+#: libexif/pentax/mnote-pentax-entry.c:210
+msgid "Infinity"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:190
+msgid "Manual AF point selection"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:191 libexif/canon/mnote-canon-entry.c:349
+msgid "None (MF)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:192
+msgid "Auto-selected"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:193 libexif/canon/mnote-canon-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:224
+#: libexif/pentax/mnote-pentax-entry.c:238
+msgid "Right"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:194 libexif/canon/mnote-canon-entry.c:351
+#: libexif/pentax/mnote-pentax-entry.c:222
+#: libexif/pentax/mnote-pentax-entry.c:237
+msgid "Center"
+msgstr "Centre"
+
+#: libexif/canon/mnote-canon-entry.c:195 libexif/canon/mnote-canon-entry.c:353
+#: libexif/pentax/mnote-pentax-entry.c:220
+#: libexif/pentax/mnote-pentax-entry.c:236
+msgid "Left"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:196
+msgid "Auto AF point selection"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:197
+msgid "Easy shooting"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:163
+msgid "Program"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:199
+msgid "Tv-priority"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:200
+msgid "Av-priority"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:202
+msgid "A-DEP"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:203
+msgid "M-DEP"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:204
+msgid "Canon EF 50mm f/1.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:205
+msgid "Canon EF 28mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:206
+msgid "Sigma UC Zoom 35-135mm f/4-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:207
+msgid "Tokina AF193-2 19-35mm f/3.5-4.5"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:208
+msgid "Canon EF 100-300mm F5.6L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:209
+msgid "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:210
+msgid "Canon EF 35mm f/2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:211
+msgid "Canon EF 15mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:212
+msgid "Canon EF 80-200mm f/2.8L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:213
+msgid "Tokina AT-X280AF PRO 28-80mm F2.8 Aspherical"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:214
+msgid "Cosina 100mm f/3.5 Macro AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:215
+msgid "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:216
+msgid "Canon EF 50mm f/1.8 MkII"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:217
+msgid "Tamron SP AF 300mm f/2.8 LD IF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:218
+msgid "Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:219
+msgid "Canon EF 75-300mm f/4-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:220
+msgid "Canon EF 28-80mm f/3.5-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:221
+msgid "Canon EF 28-105mm f/4-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:222
+msgid "Canon EF-S 18-55mm f/3.5-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:223
+msgid "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+msgstr "Canon MP-E 65mm f/2.8 1-5× Macro Photo"
+
+#: libexif/canon/mnote-canon-entry.c:224
+msgid "Canon TS-E 24mm f/3.5L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:225
+msgid "Canon TS-E 45mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:226
+msgid "Canon TS-E 90mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:227
+msgid "Canon EF 50mm f/1.0L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:228
+msgid "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:229
+msgid "Canon EF 600mm f/4L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:230
+msgid "Canon EF 200mm f/1.8L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:231
+msgid "Canon EF 300mm f/2.8L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:232
+msgid "Canon EF 85mm f/1.2L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:233
+msgid "Canon EF 400mm f/2.8L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:234
+msgid "Canon EF 500mm f/4.5L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:235
+msgid "Canon EF 300mm f/2.8L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:236
+msgid "Canon EF 500mm f/4L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:237
+msgid "Canon EF 100mm f/2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:238
+msgid "Sigma 20mm EX f/1.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:239
+msgid "Canon EF 200mm f/2.8L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:240
+msgid "Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:241
+msgid "Canon EF 35-350mm f/3.5-5.6L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:242
+msgid "Canon EF 85mm f/1.8 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:243
+msgid "Canon EF 28-105mm f/3.5-4.5 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:244
+msgid "Canon EF 20-35mm f/3.5-4.5 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:245
+msgid "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:246
+msgid "Canon EF 70-200mm f/2.8 L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:247
+msgid "Canon EF 70-200mm f/2.8 L + x1.4"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:248
+msgid "Canon EF 70-200mm f/2.8 L + x2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:249
+msgid "Canon EF 28mm f/1.8 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:250
+msgid "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:251
+msgid "Canon EF 200mm f/2.8L II"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:252
+msgid "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:253
+msgid "Canon EF 135mm f/2L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:254
+msgid "Canon EF 24-85mm f/3.5-4.5 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:255
+msgid "Canon EF 300mm f/4L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:256
+msgid "Canon EF 28-135mm f/3.5-5.6 IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:257
+msgid "Canon EF 35mm f/1.4L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:258
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:259
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:260
+msgid "Canon EF 100-400mm f/4.5-5.6L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:261
+msgid "Canon EF 400mm f/2.8L + x2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:262
+msgid "Canon EF 70-200mm f/4L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:263
+msgid "Canon EF 100mm f/2.8 Macro"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:264
+msgid "Canon EF 400mm f/4 DO IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:265
+msgid "Canon EF 75-300mm f/4-5.6 IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:266
+msgid "Canon EF 50mm f/1.4"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:267
+msgid "Canon EF 28-80 f/3.5-5.6 USM IV"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:268
+msgid "Canon EF 28-200mm f/3.5-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:269
+msgid "Canon EF 90-300mm f/4.5-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:270
+msgid "Canon EF-S 18-55mm f/3.5-4.5 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:271
+msgid "Canon EF 70-200mm f/2.8L IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:272
+msgid "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:273
+msgid "Canon EF 70-200mm f/2.8L IS USM + x2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:274
+msgid "Canon EF 16-35mm f/2.8L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:275
+msgid "Canon EF 24-70mm f/2.8L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:276
+msgid "Canon EF 17-40mm f/4L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:277
+msgid "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:278
+msgid "Canon EF-S 17-85mm f4-5.6 IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:279
+msgid "Canon EF-S10-22mm F3.5-4.5 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:280
+msgid "Canon EF-S60mm F2.8 Macro USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:281
+msgid "Canon EF 24-105mm f/4L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:282
+msgid "Canon EF 70-300mm F4-5.6 IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:283
+msgid "Canon EF 50mm F1.2L USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:284
+msgid "Canon EF 70-200mm f/4L IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:286
+msgid "TTL"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:287
+msgid "A-TTL"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:288
+msgid "E-TTL"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:289
+msgid "FP sync enabled"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:290
+msgid "2nd-curtain sync used"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:291
+msgid "FP sync used"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:292
+#: libexif/olympus/mnote-olympus-entry.c:190
+msgid "Internal"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:293
+#: libexif/olympus/mnote-olympus-entry.c:191
+msgid "External"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:296
+msgid "Normal AE"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:297
+msgid "Exposure compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:298
+msgid "AE lock"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:299
+msgid "AE lock + exposure compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:300
+msgid "No AE"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:303
+msgid "On, shot only"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:307
+msgid "Smooth"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:310 libexif/canon/mnote-canon-entry.c:334
+#: libexif/canon/mnote-canon-entry.c:393 libexif/canon/mnote-canon-entry.c:406
+#: libexif/fuji/mnote-fuji-entry.c:81 libexif/pentax/mnote-pentax-entry.c:87
+msgid "Custom"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:311
+msgid "My color data"
+msgstr "My colour data"
+
+#: libexif/canon/mnote-canon-entry.c:313 libexif/canon/mnote-canon-entry.c:375
+#: libexif/pentax/mnote-pentax-entry.c:126
+#: libexif/pentax/mnote-pentax-entry.c:145
+msgid "Full"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:314 libexif/canon/mnote-canon-entry.c:374
+msgid "2/3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:315 libexif/canon/mnote-canon-entry.c:373
+msgid "1/3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:321
+msgid "Fixed"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:322 libexif/pentax/mnote-pentax-tag.c:44
+msgid "Zoom"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:329
+msgid "Sunny"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:330 libexif/canon/mnote-canon-entry.c:402
+#: libexif/exif-entry.c:719 libexif/fuji/mnote-fuji-entry.c:75
+#: libexif/olympus/mnote-olympus-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:255
+msgid "Cloudy"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:331 libexif/canon/mnote-canon-entry.c:403
+#: libexif/exif-entry.c:716 libexif/pentax/mnote-pentax-entry.c:100
+#: libexif/pentax/mnote-pentax-entry.c:249
+msgid "Tungsten"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:332 libexif/canon/mnote-canon-entry.c:404
+#: libexif/exif-entry.c:715 libexif/pentax/mnote-pentax-entry.c:101
+#: libexif/pentax/mnote-pentax-entry.c:248
+msgid "Fluorescent"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:333 libexif/canon/mnote-canon-entry.c:405
+#: libexif/exif-entry.c:717 libexif/exif-entry.c:759 libexif/exif-tag.c:577
+#: libexif/fuji/mnote-fuji-entry.c:80 libexif/pentax/mnote-pentax-entry.c:254
+msgid "Flash"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:336 libexif/canon/mnote-canon-entry.c:408
+#: libexif/exif-entry.c:720 libexif/pentax/mnote-pentax-entry.c:99
+#: libexif/pentax/mnote-pentax-entry.c:247
+msgid "Shade"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:337 libexif/canon/mnote-canon-entry.c:409
+msgid "Manual temperature (Kelvin)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:338 libexif/canon/mnote-canon-entry.c:410
+msgid "PC set 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:339 libexif/canon/mnote-canon-entry.c:411
+msgid "PC set 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:340 libexif/canon/mnote-canon-entry.c:412
+msgid "PC set 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:341 libexif/canon/mnote-canon-entry.c:413
+#: libexif/exif-entry.c:721 libexif/fuji/mnote-fuji-entry.c:76
+#: libexif/pentax/mnote-pentax-entry.c:251
+msgid "Daylight fluorescent"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:342 libexif/canon/mnote-canon-entry.c:414
+msgid "Custom 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:343 libexif/canon/mnote-canon-entry.c:415
+msgid "Custom 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:346 libexif/exif-entry.c:672
+#: libexif/pentax/mnote-pentax-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:132
+#: libexif/pentax/mnote-pentax-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:295
+msgid "Night scene"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:352
+msgid "Center-right"
+msgstr "Centre-right"
+
+#: libexif/canon/mnote-canon-entry.c:354
+msgid "Left-right"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:355
+msgid "Left-center"
+msgstr "Left-centre"
+
+#: libexif/canon/mnote-canon-entry.c:356
+msgid "All"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:358
+msgid "On (shot 1)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:359
+msgid "On (shot 2)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:360
+msgid "On (shot 3)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:362
+msgid "EOS high-end"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:363
+msgid "Compact"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:364
+msgid "EOS mid-range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:366
+msgid "Rotate 90 CW"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:367
+msgid "Rotate 180"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:368
+msgid "Rotate 270 CW"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:369
+msgid "Rotated by software"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:381
+#: libexif/olympus/mnote-olympus-entry.c:606
+msgid "Left to right"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:382
+#: libexif/olympus/mnote-olympus-entry.c:609
+msgid "Right to left"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:383
+#: libexif/olympus/mnote-olympus-entry.c:612
+msgid "Bottom to top"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:384
+#: libexif/olympus/mnote-olympus-entry.c:615
+msgid "Top to bottom"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:385
+msgid "2x2 matrix (clockwise)"
+msgstr "2×2 matrix (clockwise)"
+
+#: libexif/canon/mnote-canon-entry.c:391 libexif/canon/mnote-canon-entry.c:397
+#: libexif/canon/mnote-canon-entry.c:418 libexif/canon/mnote-canon-entry.c:428
+#: libexif/exif-entry.c:671 libexif/fuji/mnote-fuji-entry.c:84
+#: libexif/fuji/mnote-fuji-entry.c:93 libexif/fuji/mnote-fuji-entry.c:163
+#: libexif/olympus/mnote-olympus-entry.c:227
+msgid "Standard"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:394
+msgid "N/A"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:395
+msgid "Lowest"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:399
+msgid "Highest"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:401 libexif/exif-entry.c:714
+#: libexif/fuji/mnote-fuji-entry.c:74
+#: libexif/olympus/mnote-olympus-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:98
+#: libexif/pentax/mnote-pentax-entry.c:246
+msgid "Daylight"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:419
+msgid "Set 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:420
+msgid "Set 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:421
+msgid "Set 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:422
+msgid "User def. 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:423
+msgid "User def. 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:424
+msgid "User def. 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:425
+msgid "External 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:426
+msgid "External 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:427
+msgid "External 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:432
+msgid "Faithful"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:115
+msgid "Monochrome"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:491
+msgid ", "
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:577 libexif/canon/mnote-canon-entry.c:674
+#, c-format
+msgid "%i (ms)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:621
+#, c-format
+msgid "%.2f mm"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:645
+#, c-format
+msgid "%.2f EV"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:655 libexif/exif-entry.c:1064
+#, c-format
+msgid "1/%i"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:667
+#, c-format
+msgid "%u mm"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:35
+msgid "Settings (First Part)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:36 libexif/canon/mnote-canon-tag.c:92
+#: libexif/exif-tag.c:581 libexif/pentax/mnote-pentax-tag.c:88
+msgid "Focal Length"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:37
+msgid "Settings (Second Part)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:38
+#: libexif/olympus/mnote-olympus-entry.c:595
+#: libexif/pentax/mnote-pentax-entry.c:177
+msgid "Panorama"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:39
+msgid "Image Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:40 libexif/olympus/mnote-olympus-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:113
+msgid "Firmware Version"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:41
+msgid "Image Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:42
+msgid "Owner Name"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:43
+msgid "Color Information"
+msgstr "Colour Information"
+
+#: libexif/canon/mnote-canon-tag.c:44 libexif/fuji/mnote-fuji-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:81
+#: libexif/olympus/mnote-olympus-tag.c:146
+msgid "Serial Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:45
+msgid "Custom Functions"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:56 libexif/fuji/mnote-fuji-tag.c:45
+msgid "Macro Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:57 libexif/canon/mnote-canon-tag.c:117
+#: libexif/olympus/mnote-olympus-tag.c:175
+#: libexif/pentax/mnote-pentax-tag.c:128
+msgid "Self-timer"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:58 libexif/fuji/mnote-fuji-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:94
+#: libexif/olympus/mnote-olympus-tag.c:107
+msgid "Quality"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:59 libexif/fuji/mnote-fuji-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:45
+#: libexif/olympus/mnote-olympus-tag.c:127
+#: libexif/pentax/mnote-pentax-tag.c:38 libexif/pentax/mnote-pentax-tag.c:73
+msgid "Flash Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:60 libexif/pentax/mnote-pentax-tag.c:101
+msgid "Drive Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:61 libexif/canon/mnote-canon-tag.c:82
+#: libexif/olympus/mnote-olympus-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:134
+#: libexif/olympus/mnote-olympus-tag.c:173
+#: libexif/pentax/mnote-pentax-tag.c:37 libexif/pentax/mnote-pentax-tag.c:74
+#: libexif/pentax/mnote-pentax-tag.c:130
+msgid "Focus Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:62 libexif/pentax/mnote-pentax-tag.c:127
+msgid "Record Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:63 libexif/pentax/mnote-pentax-tag.c:71
+msgid "Image Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:64
+msgid "Easy Shooting Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:65 libexif/olympus/mnote-olympus-tag.c:64
+#: libexif/olympus/mnote-olympus-tag.c:101
+#: libexif/olympus/mnote-olympus-tag.c:110
+#: libexif/olympus/mnote-olympus-tag.c:180
+#: libexif/pentax/mnote-pentax-tag.c:89
+msgid "Digital Zoom"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:66 libexif/exif-tag.c:828
+#: libexif/fuji/mnote-fuji-tag.c:42 libexif/pentax/mnote-pentax-tag.c:46
+#: libexif/pentax/mnote-pentax-tag.c:91
+msgid "Contrast"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:67 libexif/exif-tag.c:832
+#: libexif/olympus/mnote-olympus-tag.c:75
+#: libexif/olympus/mnote-olympus-tag.c:87 libexif/pentax/mnote-pentax-tag.c:47
+#: libexif/pentax/mnote-pentax-tag.c:90
+msgid "Saturation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:68 libexif/exif-tag.c:836
+#: libexif/fuji/mnote-fuji-tag.c:39 libexif/pentax/mnote-pentax-tag.c:45
+#: libexif/pentax/mnote-pentax-tag.c:92
+msgid "Sharpness"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:69
+msgid "ISO"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:70 libexif/exif-tag.c:571
+#: libexif/pentax/mnote-pentax-tag.c:82
+msgid "Metering Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:71 libexif/olympus/mnote-olympus-tag.c:133
+msgid "Focus Range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:72 libexif/canon/mnote-canon-tag.c:105
+msgid "AF Point"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:73 libexif/exif-tag.c:795
+msgid "Exposure Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:74 libexif/olympus/mnote-olympus-tag.c:61
+#: libexif/pentax/mnote-pentax-tag.c:106
+msgid "Lens Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:75
+msgid "Long Focal Length of Lens"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:76
+msgid "Short Focal Length of Lens"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:77
+msgid "Focal Units per mm"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:78
+msgid "Maximal Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:79
+msgid "Minimal Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:80
+msgid "Flash Activity"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:81
+msgid "Flash Details"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:83
+msgid "AE Setting"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:84
+msgid "Image Stabilization"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:85
+msgid "Display Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:86
+msgid "Zoom Source Width"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:87
+msgid "Zoom Target Width"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:88
+msgid "Photo Effect"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:89 libexif/canon/mnote-canon-tag.c:118
+msgid "Manual Flash Output"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:90
+msgid "Color Tone"
+msgstr "Colour Tone"
+
+#: libexif/canon/mnote-canon-tag.c:91
+msgid "Focal Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:93
+msgid "Focal Plane X Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:94
+msgid "Focal Plane Y Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:95
+msgid "Auto ISO"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:96
+msgid "Shot ISO"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:97
+msgid "Measured EV"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:98
+msgid "Target Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:99
+msgid "Target Exposure Time"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:100 libexif/olympus/mnote-olympus-tag.c:129
+#: libexif/pentax/mnote-pentax-tag.c:81
+msgid "Exposure Compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:101 libexif/canon/mnote-canon-tag.c:123
+#: libexif/exif-tag.c:800 libexif/fuji/mnote-fuji-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:41
+#: libexif/olympus/mnote-olympus-tag.c:98 libexif/pentax/mnote-pentax-tag.c:41
+#: libexif/pentax/mnote-pentax-tag.c:84 libexif/pentax/mnote-pentax-tag.c:124
+msgid "White Balance"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:102
+msgid "Slow Shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:103
+msgid "Sequence Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:104
+msgid "Flash Guide Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:106 libexif/olympus/mnote-olympus-tag.c:52
+#: libexif/pentax/mnote-pentax-tag.c:109
+msgid "Flash Exposure Compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:107
+msgid "AE Bracketing"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:108
+msgid "AE Bracket Value"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:109
+msgid "Focus Distance Upper"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:110
+msgid "Focus Distance Lower"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:111
+msgid "FNumber"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:112 libexif/exif-tag.c:466
+#: libexif/pentax/mnote-pentax-tag.c:78
+msgid "Exposure Time"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:113
+msgid "Bulb Duration"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:114
+msgid "Camera Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:115
+msgid "Auto Rotate"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:116
+msgid "ND Filter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:119
+msgid "Panorama Frame"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:120
+msgid "Panorama Direction"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:121
+msgid "Tone Curve"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:122
+msgid "Sharpness Frequency"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:124
+msgid "Picture Style"
+msgstr ""
+
+#: libexif/exif-byte-order.c:33
+msgid "Motorola"
+msgstr ""
+
+#: libexif/exif-byte-order.c:35
+msgid "Intel"
+msgstr ""
+
+#: libexif/exif-data.c:780
+msgid "Size of data too small to allow for EXIF data."
+msgstr ""
+
+#: libexif/exif-data.c:841
+msgid "EXIF marker not found."
+msgstr ""
+
+#: libexif/exif-data.c:868
+msgid "EXIF header not found."
+msgstr ""
+
+#: libexif/exif-data.c:884
+msgid "Unknown encoding."
+msgstr ""
+
+#: libexif/exif-data.c:1168
+msgid "Ignore unknown tags"
+msgstr ""
+
+#: libexif/exif-data.c:1169
+msgid "Ignore unknown tags when loading EXIF data."
+msgstr ""
+
+#: libexif/exif-data.c:1170
+msgid "Follow specification"
+msgstr ""
+
+#: libexif/exif-data.c:1171
+msgid ""
+"Add, correct and remove entries to get EXIF data that follows the "
+"specification."
+msgstr ""
+
+#: libexif/exif-data.c:1173
+msgid "Do not change maker note"
+msgstr ""
+
+#: libexif/exif-data.c:1174
+msgid ""
+"When loading and resaving Exif data, save the maker note unmodified. Be "
+"aware that the maker note can get corrupted."
+msgstr ""
+
+#: libexif/exif-entry.c:234 libexif/exif-entry.c:303 libexif/exif-entry.c:336
+#, c-format
+msgid ""
+"Tag '%s' was of format '%s' (which is against specification) and has been "
+"changed to format '%s'."
+msgstr ""
+
+#: libexif/exif-entry.c:271
+#, c-format
+msgid ""
+"Tag '%s' is of format '%s' (which is against specification) but cannot be "
+"changed to format '%s'."
+msgstr ""
+
+#: libexif/exif-entry.c:354
+#, c-format
+msgid ""
+"Tag 'UserComment' had invalid format '%s'. Format has been set to "
+"'undefined'."
+msgstr ""
+
+#: libexif/exif-entry.c:381
+msgid ""
+"Tag 'UserComment' has been expanded to at least 8 bytes in order to follow "
+"the specification."
+msgstr ""
+
+#: libexif/exif-entry.c:396
+msgid ""
+"Tag 'UserComment' is not empty but does not start with a format identifier. "
+"This has been fixed."
+msgstr ""
+
+#: libexif/exif-entry.c:424
+msgid ""
+"Tag 'UserComment' did not start with a format identifier. This has been "
+"fixed."
+msgstr ""
+
+#: libexif/exif-entry.c:462
+#, c-format
+msgid "%i bytes undefined data"
+msgstr ""
+
+#: libexif/exif-entry.c:589
+#, c-format
+msgid "%i bytes unsupported data type"
+msgstr ""
+
+#: libexif/exif-entry.c:622
+#, c-format
+msgid "The tag '%s' contains data of an invalid format ('%s', expected '%s')."
+msgstr ""
+
+#: libexif/exif-entry.c:635
+#, c-format
+msgid ""
+"The tag '%s' contains an invalid number of components (%i, expected %i)."
+msgstr ""
+
+#: libexif/exif-entry.c:649
+msgid "Chunky format"
+msgstr ""
+
+#: libexif/exif-entry.c:649
+msgid "Planar format"
+msgstr ""
+
+#: libexif/exif-entry.c:651 libexif/exif-entry.c:743
+#: test/nls/test-codeset.c:54
+msgid "Not defined"
+msgstr ""
+
+#: libexif/exif-entry.c:651
+msgid "One-chip color area sensor"
+msgstr "One-chip colour area sensor"
+
+#: libexif/exif-entry.c:652
+msgid "Two-chip color area sensor"
+msgstr "Two-chip colour area sensor"
+
+#: libexif/exif-entry.c:652
+msgid "Three-chip color area sensor"
+msgstr "Three-chip colour area sensor"
+
+#: libexif/exif-entry.c:653
+msgid "Color sequential area sensor"
+msgstr "Colour sequential area sensor"
+
+#: libexif/exif-entry.c:653
+msgid "Trilinear sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:654
+msgid "Color sequential linear sensor"
+msgstr "Colour sequential linear sensor"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:233
+msgid "Top-left"
+msgstr ""
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:235
+msgid "Top-right"
+msgstr ""
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:241
+msgid "Bottom-right"
+msgstr ""
+
+#: libexif/exif-entry.c:657 libexif/pentax/mnote-pentax-entry.c:239
+msgid "Bottom-left"
+msgstr ""
+
+#: libexif/exif-entry.c:657
+msgid "Left-top"
+msgstr ""
+
+#: libexif/exif-entry.c:657
+msgid "Right-top"
+msgstr ""
+
+#: libexif/exif-entry.c:658
+msgid "Right-bottom"
+msgstr ""
+
+#: libexif/exif-entry.c:658
+msgid "Left-bottom"
+msgstr ""
+
+#: libexif/exif-entry.c:660
+msgid "Centered"
+msgstr "Centred"
+
+#: libexif/exif-entry.c:660
+msgid "Co-sited"
+msgstr ""
+
+#: libexif/exif-entry.c:662
+msgid "Reversed mono"
+msgstr ""
+
+#: libexif/exif-entry.c:662
+msgid "Normal mono"
+msgstr ""
+
+#: libexif/exif-entry.c:662
+msgid "RGB"
+msgstr ""
+
+#: libexif/exif-entry.c:662
+msgid "Palette"
+msgstr ""
+
+#: libexif/exif-entry.c:663
+msgid "CMYK"
+msgstr ""
+
+#: libexif/exif-entry.c:663
+msgid "YCbCr"
+msgstr ""
+
+#: libexif/exif-entry.c:663
+msgid "CieLAB"
+msgstr ""
+
+#: libexif/exif-entry.c:665
+msgid "Normal process"
+msgstr ""
+
+#: libexif/exif-entry.c:665
+msgid "Custom process"
+msgstr ""
+
+#: libexif/exif-entry.c:667
+msgid "Auto exposure"
+msgstr ""
+
+#: libexif/exif-entry.c:667 libexif/fuji/mnote-fuji-entry.c:139
+msgid "Manual exposure"
+msgstr ""
+
+#: libexif/exif-entry.c:667
+msgid "Auto bracket"
+msgstr ""
+
+#: libexif/exif-entry.c:669
+msgid "Auto white balance"
+msgstr ""
+
+#: libexif/exif-entry.c:669
+msgid "Manual white balance"
+msgstr ""
+
+#: libexif/exif-entry.c:674
+msgid "Low gain up"
+msgstr ""
+
+#: libexif/exif-entry.c:674
+msgid "High gain up"
+msgstr ""
+
+#: libexif/exif-entry.c:675
+msgid "Low gain down"
+msgstr ""
+
+#: libexif/exif-entry.c:675
+msgid "High gain down"
+msgstr ""
+
+#: libexif/exif-entry.c:677
+msgid "Low saturation"
+msgstr ""
+
+#: libexif/exif-entry.c:677 test/nls/test-codeset.c:48
+#: test/nls/test-codeset.c:61
+msgid "High saturation"
+msgstr ""
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:63
+#: libexif/olympus/mnote-olympus-entry.c:205
+#: libexif/olympus/mnote-olympus-entry.c:214
+#: libexif/pentax/mnote-pentax-entry.c:106
+#: libexif/pentax/mnote-pentax-entry.c:170
+msgid "Soft"
+msgstr ""
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:65 libexif/fuji/mnote-fuji-entry.c:95
+#: libexif/olympus/mnote-olympus-entry.c:204
+#: libexif/olympus/mnote-olympus-entry.c:212
+#: libexif/pentax/mnote-pentax-entry.c:107
+msgid "Hard"
+msgstr ""
+
+#: libexif/exif-entry.c:695 libexif/exif-entry.c:713 libexif/exif-entry.c:795
+#: libexif/olympus/mnote-olympus-entry.c:589
+#: libexif/olympus/mnote-olympus-entry.c:683
+#: libexif/olympus/mnote-olympus-entry.c:738
+#: libexif/pentax/mnote-pentax-entry.c:256
+msgid "Unknown"
+msgstr ""
+
+#: libexif/exif-entry.c:696
+msgid "Avg"
+msgstr ""
+
+#: libexif/exif-entry.c:697
+msgid "Center-weight"
+msgstr "Centre-weight"
+
+#: libexif/exif-entry.c:699
+msgid "Multi spot"
+msgstr ""
+
+#: libexif/exif-entry.c:700
+msgid "Pattern"
+msgstr ""
+
+#: libexif/exif-entry.c:705
+msgid "Uncompressed"
+msgstr ""
+
+#: libexif/exif-entry.c:706
+msgid "LZW compression"
+msgstr ""
+
+#: libexif/exif-entry.c:707 libexif/exif-entry.c:708
+msgid "JPEG compression"
+msgstr ""
+
+#: libexif/exif-entry.c:709
+msgid "Deflate/ZIP compression"
+msgstr ""
+
+#: libexif/exif-entry.c:710
+msgid "PackBits compression"
+msgstr ""
+
+#: libexif/exif-entry.c:716
+msgid "Tungsten incandescent light"
+msgstr ""
+
+#: libexif/exif-entry.c:718
+msgid "Fine weather"
+msgstr ""
+
+#: libexif/exif-entry.c:719
+msgid "Cloudy weather"
+msgstr ""
+
+#: libexif/exif-entry.c:722 libexif/fuji/mnote-fuji-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:252
+msgid "Day white fluorescent"
+msgstr ""
+
+#: libexif/exif-entry.c:723
+msgid "Cool white fluorescent"
+msgstr ""
+
+#: libexif/exif-entry.c:724 libexif/fuji/mnote-fuji-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:253
+msgid "White fluorescent"
+msgstr ""
+
+#: libexif/exif-entry.c:725
+msgid "Standard light A"
+msgstr ""
+
+#: libexif/exif-entry.c:726
+msgid "Standard light B"
+msgstr ""
+
+#: libexif/exif-entry.c:727
+msgid "Standard light C"
+msgstr ""
+
+#: libexif/exif-entry.c:728
+msgid "D55"
+msgstr ""
+
+#: libexif/exif-entry.c:729
+msgid "D65"
+msgstr ""
+
+#: libexif/exif-entry.c:730
+msgid "D75"
+msgstr ""
+
+#: libexif/exif-entry.c:731
+msgid "ISO studio tungsten"
+msgstr ""
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "Inch"
+msgstr ""
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "in"
+msgstr ""
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "Centimeter"
+msgstr "Centimetre"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "cm"
+msgstr ""
+
+#: libexif/exif-entry.c:745
+msgid "Normal program"
+msgstr ""
+
+#: libexif/exif-entry.c:746
+msgid "Aperture priority"
+msgstr ""
+
+#: libexif/exif-entry.c:746 libexif/exif-tag.c:550
+msgid "Aperture"
+msgstr ""
+
+#: libexif/exif-entry.c:747
+msgid "Shutter priority"
+msgstr ""
+
+#: libexif/exif-entry.c:747
+msgid "Shutter"
+msgstr ""
+
+#: libexif/exif-entry.c:748
+msgid "Creative program (biased toward depth of field)"
+msgstr ""
+
+#: libexif/exif-entry.c:749
+msgid "Creative"
+msgstr ""
+
+#: libexif/exif-entry.c:750
+msgid "Creative program (biased toward fast shutter speed)"
+msgstr ""
+
+#: libexif/exif-entry.c:751
+msgid "Action"
+msgstr ""
+
+#: libexif/exif-entry.c:752
+msgid "Portrait mode (for closeup photos with the background out of focus)"
+msgstr ""
+
+#: libexif/exif-entry.c:754
+msgid "Landscape mode (for landscape photos with the background in focus)"
+msgstr ""
+
+#: libexif/exif-entry.c:758 libexif/exif-entry.c:763
+#: libexif/olympus/mnote-olympus-entry.c:97
+msgid "Flash did not fire"
+msgstr ""
+
+#: libexif/exif-entry.c:758
+msgid "No flash"
+msgstr ""
+
+#: libexif/exif-entry.c:759
+msgid "Flash fired"
+msgstr ""
+
+#: libexif/exif-entry.c:759 libexif/olympus/mnote-olympus-entry.c:170
+#: libexif/olympus/mnote-olympus-entry.c:175
+#: libexif/olympus/mnote-olympus-entry.c:209
+#: libexif/olympus/mnote-olympus-entry.c:218
+#: libexif/olympus/mnote-olympus-entry.c:241
+msgid "Yes"
+msgstr ""
+
+#: libexif/exif-entry.c:760
+msgid "Strobe return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:760
+msgid "Without strobe"
+msgstr ""
+
+#: libexif/exif-entry.c:762
+msgid "Strobe return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:762
+msgid "With strobe"
+msgstr ""
+
+#: libexif/exif-entry.c:764
+msgid "Flash fired, compulsory flash mode"
+msgstr ""
+
+#: libexif/exif-entry.c:765
+msgid "Flash fired, compulsory flash mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:767
+msgid "Flash fired, compulsory flash mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:769
+msgid "Flash did not fire, compulsory flash mode"
+msgstr ""
+
+#: libexif/exif-entry.c:770
+msgid "Flash did not fire, auto mode"
+msgstr ""
+
+#: libexif/exif-entry.c:771
+msgid "Flash fired, auto mode"
+msgstr ""
+
+#: libexif/exif-entry.c:772
+msgid "Flash fired, auto mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:774
+msgid "Flash fired, auto mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:775
+msgid "No flash function"
+msgstr ""
+
+#: libexif/exif-entry.c:776
+msgid "Flash fired, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:777
+msgid "Flash fired, red-eye reduction mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:779
+msgid "Flash fired, red-eye reduction mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:781
+msgid "Flash fired, compulsory flash mode, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:783
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light not "
+"detected"
+msgstr ""
+
+#: libexif/exif-entry.c:785
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light "
+"detected"
+msgstr ""
+
+#: libexif/exif-entry.c:787
+msgid "Flash did not fire, auto mode, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:788
+msgid "Flash fired, auto mode, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:789
+msgid ""
+"Flash fired, auto mode, return light not detected, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:791
+msgid "Flash fired, auto mode, return light detected, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:795
+msgid "?"
+msgstr ""
+
+#: libexif/exif-entry.c:797
+msgid "Close view"
+msgstr ""
+
+#: libexif/exif-entry.c:798
+msgid "Distant view"
+msgstr ""
+
+#: libexif/exif-entry.c:798
+msgid "Distant"
+msgstr ""
+
+#: libexif/exif-entry.c:801
+msgid "sRGB"
+msgstr ""
+
+#: libexif/exif-entry.c:802
+msgid "Adobe RGB"
+msgstr ""
+
+#: libexif/exif-entry.c:803
+msgid "Uncalibrated"
+msgstr ""
+
+#: libexif/exif-entry.c:857
+#, c-format
+msgid "Invalid size of entry (%i, expected %li x %i)."
+msgstr ""
+
+#: libexif/exif-entry.c:890
+msgid "Unsupported UNICODE string"
+msgstr ""
+
+#: libexif/exif-entry.c:898
+msgid "Unsupported JIS string"
+msgstr ""
+
+#: libexif/exif-entry.c:914
+msgid "Tag UserComment does not comply with standard but contains data."
+msgstr ""
+
+#: libexif/exif-entry.c:918
+#, c-format
+msgid "Byte at position %i: 0x%02x"
+msgstr ""
+
+#: libexif/exif-entry.c:927
+msgid "Unknown Exif Version"
+msgstr ""
+
+#: libexif/exif-entry.c:931
+#, c-format
+msgid "Exif Version %d.%d"
+msgstr ""
+
+#: libexif/exif-entry.c:942
+msgid "FlashPix Version 1.0"
+msgstr ""
+
+#: libexif/exif-entry.c:944
+msgid "FlashPix Version 1.01"
+msgstr ""
+
+#: libexif/exif-entry.c:946
+msgid "Unknown FlashPix Version"
+msgstr ""
+
+#: libexif/exif-entry.c:959 libexif/exif-entry.c:972 libexif/exif-entry.c:1628
+#: libexif/exif-entry.c:1633 libexif/exif-entry.c:1637
+#: libexif/exif-entry.c:1642 libexif/exif-entry.c:1643
+msgid "[None]"
+msgstr ""
+
+#: libexif/exif-entry.c:961
+msgid "(Photographer)"
+msgstr ""
+
+#: libexif/exif-entry.c:975
+msgid "(Editor)"
+msgstr ""
+
+#: libexif/exif-entry.c:999 libexif/exif-entry.c:1079
+#: libexif/exif-entry.c:1096 libexif/exif-entry.c:1140
+#, c-format
+msgid "%.02f EV"
+msgstr ""
+
+#: libexif/exif-entry.c:1000
+#, c-format
+msgid " (f/%.01f)"
+msgstr ""
+
+#: libexif/exif-entry.c:1034
+#, c-format
+msgid " (35 equivalent: %d mm)"
+msgstr ""
+
+#: libexif/exif-entry.c:1067 libexif/exif-entry.c:1068
+msgid " sec."
+msgstr ""
+
+#: libexif/exif-entry.c:1082
+#, c-format
+msgid " (1/%d sec.)"
+msgstr ""
+
+#: libexif/exif-entry.c:1084
+#, c-format
+msgid " (%d sec.)"
+msgstr ""
+
+#: libexif/exif-entry.c:1097
+#, c-format
+msgid " (%.02f cd/m^2)"
+msgstr " (%.02f cd/m²)"
+
+#: libexif/exif-entry.c:1107
+msgid "DSC"
+msgstr ""
+
+#: libexif/exif-entry.c:1109 libexif/exif-entry.c:1149
+#: libexif/exif-entry.c:1236 libexif/exif-entry.c:1287
+#: libexif/exif-entry.c:1296 libexif/exif-entry.c:1332
+#: libexif/fuji/mnote-fuji-entry.c:236 libexif/fuji/mnote-fuji-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:359
+#, c-format
+msgid "Internal error (unknown value %i)"
+msgstr ""
+
+#: libexif/exif-entry.c:1117
+msgid "-"
+msgstr ""
+
+#: libexif/exif-entry.c:1118
+msgid "Y"
+msgstr ""
+
+#: libexif/exif-entry.c:1119
+msgid "Cb"
+msgstr ""
+
+#: libexif/exif-entry.c:1120
+msgid "Cr"
+msgstr ""
+
+#: libexif/exif-entry.c:1121
+msgid "R"
+msgstr ""
+
+#: libexif/exif-entry.c:1122
+msgid "G"
+msgstr ""
+
+#: libexif/exif-entry.c:1123
+msgid "B"
+msgstr ""
+
+#: libexif/exif-entry.c:1124
+msgid "Reserved"
+msgstr ""
+
+#: libexif/exif-entry.c:1147
+msgid "Directly photographed"
+msgstr ""
+
+#: libexif/exif-entry.c:1160
+msgid "YCbCr4:2:2"
+msgstr ""
+
+#: libexif/exif-entry.c:1162
+msgid "YCbCr4:2:0"
+msgstr ""
+
+#: libexif/exif-entry.c:1179
+#, c-format
+msgid "Within distance %i of (x,y) = (%i,%i)"
+msgstr ""
+
+#: libexif/exif-entry.c:1188
+#, c-format
+msgid "Within rectangle (width %i, height %i) around (x,y) = (%i,%i)"
+msgstr ""
+
+#: libexif/exif-entry.c:1194
+#, c-format
+msgid "Unexpected number of components (%li, expected 2, 3, or 4)."
+msgstr ""
+
+#: libexif/exif-entry.c:1232
+msgid "Sea level"
+msgstr ""
+
+#: libexif/exif-entry.c:1234
+msgid "Sea level reference"
+msgstr ""
+
+#: libexif/exif-entry.c:1342
+#, c-format
+msgid "Unknown value %i"
+msgstr ""
+
+#: libexif/exif-format.c:37
+msgid "Short"
+msgstr ""
+
+#: libexif/exif-format.c:38
+msgid "Rational"
+msgstr ""
+
+#: libexif/exif-format.c:39
+msgid "SRational"
+msgstr ""
+
+#: libexif/exif-format.c:40
+msgid "Undefined"
+msgstr ""
+
+#: libexif/exif-format.c:41
+msgid "ASCII"
+msgstr ""
+
+#: libexif/exif-format.c:42
+msgid "Long"
+msgstr ""
+
+#: libexif/exif-format.c:43
+msgid "Byte"
+msgstr ""
+
+#: libexif/exif-format.c:44
+msgid "SByte"
+msgstr ""
+
+#: libexif/exif-format.c:45
+msgid "SShort"
+msgstr ""
+
+#: libexif/exif-format.c:46
+msgid "SLong"
+msgstr ""
+
+#: libexif/exif-format.c:47
+msgid "Float"
+msgstr ""
+
+#: libexif/exif-format.c:48
+msgid "Double"
+msgstr ""
+
+#: libexif/exif-loader.c:119
+#, c-format
+msgid "The file '%s' could not be opened."
+msgstr ""
+
+#: libexif/exif-loader.c:300
+msgid "The data supplied does not seem to contain EXIF data."
+msgstr ""
+
+#: libexif/exif-log.c:43
+msgid "Debugging information"
+msgstr ""
+
+#: libexif/exif-log.c:44
+msgid "Debugging information is available."
+msgstr ""
+
+#: libexif/exif-log.c:45
+msgid "Not enough memory"
+msgstr ""
+
+#: libexif/exif-log.c:46
+msgid "The system cannot provide enough memory."
+msgstr ""
+
+#: libexif/exif-log.c:47
+msgid "Corrupt data"
+msgstr ""
+
+#: libexif/exif-log.c:48
+msgid "The data provided does not follow the specification."
+msgstr ""
+
+#: libexif/exif-tag.c:62
+msgid "GPS Tag Version"
+msgstr ""
+
+#: libexif/exif-tag.c:63
+msgid ""
+"Indicates the version of <GPSInfoIFD>. The version is given as 2.0.0.0. This "
+"tag is mandatory when <GPSInfo> tag is present. (Note: The <GPSVersionID> "
+"tag is given in bytes, unlike the <ExifVersion> tag. When the version is "
+"2.0.0.0, the tag value is 02000000.H)."
+msgstr ""
+
+#: libexif/exif-tag.c:69
+msgid "Interoperability Index"
+msgstr ""
+
+#: libexif/exif-tag.c:70
+msgid ""
+"Indicates the identification of the Interoperability rule. Use \"R98\" for "
+"stating ExifR98 Rules. Four bytes used including the termination code "
+"(NULL). see the separate volume of Recommended Exif Interoperability Rules "
+"(ExifR98) for other tags used for ExifR98."
+msgstr ""
+
+#: libexif/exif-tag.c:76
+msgid "North or South Latitude"
+msgstr ""
+
+#: libexif/exif-tag.c:77
+msgid ""
+"Indicates whether the latitude is north or south latitude. The ASCII value "
+"'N' indicates north latitude, and 'S' is south latitude."
+msgstr ""
+
+#: libexif/exif-tag.c:81
+msgid "Interoperability Version"
+msgstr ""
+
+#: libexif/exif-tag.c:83
+msgid "Latitude"
+msgstr ""
+
+#: libexif/exif-tag.c:84
+msgid ""
+"Indicates the latitude. The latitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is dd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is dd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:91
+msgid "East or West Longitude"
+msgstr ""
+
+#: libexif/exif-tag.c:92
+msgid ""
+"Indicates whether the longitude is east or west longitude. ASCII 'E' "
+"indicates east longitude, and 'W' is west longitude."
+msgstr ""
+
+#: libexif/exif-tag.c:95
+msgid "Longitude"
+msgstr ""
+
+#: libexif/exif-tag.c:96
+msgid ""
+"Indicates the longitude. The longitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is ddd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is ddd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:103
+msgid "Altitude Reference"
+msgstr ""
+
+#: libexif/exif-tag.c:104
+msgid ""
+"Indicates the altitude used as the reference altitude. If the reference is "
+"sea level and the altitude is above sea level, 0 is given. If the altitude "
+"is below sea level, a value of 1 is given and the altitude is indicated as "
+"an absolute value in the GSPAltitude tag. The reference unit is meters. Note "
+"that this tag is BYTE type, unlike other reference tags."
+msgstr ""
+"Indicates the altitude used as the reference altitude. If the reference is "
+"sea level and the altitude is above sea level, 0 is given. If the altitude "
+"is below sea level, a value of 1 is given and the altitude is indicated as "
+"an absolute value in the GSPAltitude tag. The reference unit is metres. Note "
+"that this tag is BYTE type, unlike other reference tags."
+
+#: libexif/exif-tag.c:110
+msgid "Altitude"
+msgstr ""
+
+#: libexif/exif-tag.c:111
+msgid ""
+"Indicates the altitude based on the reference in GPSAltitudeRef. Altitude is "
+"expressed as one RATIONAL value. The reference unit is meters."
+msgstr ""
+"Indicates the altitude based on the reference in GPSAltitudeRef. Altitude is "
+"expressed as one RATIONAL value. The reference unit is metres."
+
+#: libexif/exif-tag.c:114
+msgid "GPS Time (Atomic Clock)"
+msgstr ""
+
+#: libexif/exif-tag.c:115
+msgid ""
+"Indicates the time as UTC (Coordinated Universal Time). TimeStamp is "
+"expressed as three RATIONAL values giving the hour, minute, and second."
+msgstr ""
+
+#: libexif/exif-tag.c:118
+msgid "GPS Satellites"
+msgstr ""
+
+#: libexif/exif-tag.c:119
+msgid ""
+"Indicates the GPS satellites used for measurements. This tag can be used to "
+"describe the number of satellites, their ID number, angle of elevation, "
+"azimuth, SNR and other information in ASCII notation. The format is not "
+"specified. If the GPS receiver is incapable of taking measurements, value of "
+"the tag shall be set to NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:125
+msgid "GPS Receiver Status"
+msgstr ""
+
+#: libexif/exif-tag.c:126
+msgid ""
+"Indicates the status of the GPS receiver when the image is recorded. 'A' "
+"means measurement is in progress, and 'V' means the measurement is "
+"Interoperability."
+msgstr ""
+
+#: libexif/exif-tag.c:129
+msgid "GPS Measurement Mode"
+msgstr ""
+
+#: libexif/exif-tag.c:130
+msgid ""
+"Indicates the GPS measurement mode. '2' means two-dimensional measurement "
+"and '3' means three-dimensional measurement is in progress."
+msgstr ""
+
+#: libexif/exif-tag.c:133
+msgid "Measurement Precision"
+msgstr ""
+
+#: libexif/exif-tag.c:134
+msgid ""
+"Indicates the GPS DOP (data degree of precision). An HDOP value is written "
+"during two-dimensional measurement, and PDOP during three-dimensional "
+"measurement."
+msgstr ""
+
+#: libexif/exif-tag.c:137
+msgid "Speed Unit"
+msgstr ""
+
+#: libexif/exif-tag.c:138
+msgid ""
+"Indicates the unit used to express the GPS receiver speed of movement. 'K', "
+"'M' and 'N' represent kilometers per hour, miles per hour, and knots."
+msgstr ""
+"Indicates the unit used to express the GPS receiver speed of movement. 'K' "
+"'M' and 'N' represent kilometres per hour, miles per hour, and knots."
+
+#: libexif/exif-tag.c:141
+msgid "Speed of GPS Receiver"
+msgstr ""
+
+#: libexif/exif-tag.c:142
+msgid "Indicates the speed of GPS receiver movement."
+msgstr ""
+
+#: libexif/exif-tag.c:143
+msgid "Reference for direction of movement"
+msgstr ""
+
+#: libexif/exif-tag.c:144
+msgid ""
+"Indicates the reference for giving the direction of GPS receiver movement. "
+"'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:147
+msgid "Direction of Movement"
+msgstr ""
+
+#: libexif/exif-tag.c:148
+msgid ""
+"Indicates the direction of GPS receiver movement. The range of values is "
+"from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:150
+msgid "GPS Image Direction Reference"
+msgstr ""
+
+#: libexif/exif-tag.c:151
+msgid ""
+"Indicates the reference for giving the direction of the image when it is "
+"captured. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:153
+msgid "GPS Image Direction"
+msgstr ""
+
+#: libexif/exif-tag.c:154
+msgid ""
+"Indicates the direction of the image when it was captured. The range of "
+"values is from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:156
+msgid "Geodetic Survey Data Used"
+msgstr ""
+
+#: libexif/exif-tag.c:157
+msgid ""
+"Indicates the geodetic survey data used by the GPS receiver. If the survey "
+"data is restricted to Japan, the value of this tag is 'TOKYO' or 'WGS-84'. "
+"If a GPS Info tag is recorded, it is strongly recommended that this tag be "
+"recorded."
+msgstr ""
+
+#: libexif/exif-tag.c:161
+msgid "Reference For Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:162
+msgid ""
+"Indicates whether the latitude of the destination point is north or south "
+"latitude. The ASCII value 'N' indicates north latitude, and 'S' is south "
+"latitude."
+msgstr ""
+
+#: libexif/exif-tag.c:165
+msgid "Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:166
+msgid ""
+"Indicates the latitude of the destination point. The latitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If latitude is expressed as degrees, minutes and seconds, a "
+"typical format would be dd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be dd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:173
+msgid "Reference for Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:174
+msgid ""
+"Indicates whether the longitude of the destination point is east or west "
+"longitude. ASCII 'E' indicates east longitude, and 'W' is west longitude."
+msgstr ""
+
+#: libexif/exif-tag.c:177
+msgid "Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:178
+msgid ""
+"Indicates the longitude of the destination point. The longitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If longitude is expressed as degrees, minutes and seconds, a "
+"typical format would be ddd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be ddd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:186
+msgid "Reference for Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:187
+msgid ""
+"Indicates the reference used for giving the bearing to the destination "
+"point. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:190
+msgid "Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:191
+msgid ""
+"Indicates the bearing to the destination point. The range of values is from "
+"0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:193
+msgid "Reference for Distance to Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:194
+msgid ""
+"Indicates the unit used to express the distance to the destination point. "
+"'K', 'M' and 'N' represent kilometers, miles and knots."
+msgstr ""
+"Indicates the unit used to express the distance to the destination point. "
+"'K', 'M' and 'N' represent kilometres, miles and knots."
+
+#: libexif/exif-tag.c:197
+msgid "Distance to Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:198
+msgid "Indicates the distance to the destination point."
+msgstr ""
+
+#: libexif/exif-tag.c:199
+msgid "Name of GPS Processing Method"
+msgstr ""
+
+#: libexif/exif-tag.c:200
+msgid ""
+"A character string recording the name of the method used for location "
+"finding. The first byte indicates the character code used, and this is "
+"followed by the name of the method. Since the Type is not ASCII, NULL "
+"termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:205
+msgid "Name of GPS Area"
+msgstr ""
+
+#: libexif/exif-tag.c:206
+msgid ""
+"A character string recording the name of the GPS area. The first byte "
+"indicates the character code used, and this is followed by the name of the "
+"GPS area. Since the Type is not ASCII, NULL termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:210
+msgid "GPS Date"
+msgstr ""
+
+#: libexif/exif-tag.c:211
+msgid ""
+"A character string recording date and time information relative to UTC "
+"(Coordinated Universal Time). The format is \"YYYY:MM:DD\". The length of "
+"the string is 11 bytes including NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:215
+msgid "GPS Differential Correction"
+msgstr ""
+
+#: libexif/exif-tag.c:216
+msgid ""
+"Indicates whether differential correction is applied to the GPS receiver."
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "New Subfile Type"
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "A general indication of the kind of data contained in this subfile."
+msgstr ""
+
+#: libexif/exif-tag.c:222
+msgid "Image Width"
+msgstr ""
+
+#: libexif/exif-tag.c:223
+msgid ""
+"The number of columns of image data, equal to the number of pixels per row. "
+"In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:227
+msgid "Image Length"
+msgstr ""
+
+#: libexif/exif-tag.c:228
+msgid ""
+"The number of rows of image data. In JPEG compressed data a JPEG marker is "
+"used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:231
+msgid "Bits per Sample"
+msgstr ""
+
+#: libexif/exif-tag.c:232
+msgid ""
+"The number of bits per image component. In this standard each component of "
+"the image is 8 bits, so the value for this tag is 8. See also "
+"<SamplesPerPixel>. In JPEG compressed data a JPEG marker is used instead of "
+"this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:237
+msgid "Compression"
+msgstr ""
+
+#: libexif/exif-tag.c:238
+msgid ""
+"The compression scheme used for the image data. When a primary image is JPEG "
+"compressed, this designation is not necessary and is omitted. When "
+"thumbnails use JPEG compression, this tag value is set to 6."
+msgstr ""
+
+#: libexif/exif-tag.c:244
+msgid "Photometric Interpretation"
+msgstr ""
+
+#: libexif/exif-tag.c:245
+msgid ""
+"The pixel composition. In JPEG compressed data a JPEG marker is used instead "
+"of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:249
+msgid "Fill Order"
+msgstr ""
+
+#: libexif/exif-tag.c:251
+msgid "Document Name"
+msgstr ""
+
+#: libexif/exif-tag.c:253
+msgid "Image Description"
+msgstr ""
+
+#: libexif/exif-tag.c:254
+msgid ""
+"A character string giving the title of the image. It may be a comment such "
+"as \"1988 company picnic\" or the like. Two-bytes character codes cannot be "
+"used. When a 2-bytes code is necessary, the Exif Private tag <UserComment> "
+"is to be used."
+msgstr ""
+
+#: libexif/exif-tag.c:260
+msgid "Manufacturer"
+msgstr ""
+
+#: libexif/exif-tag.c:261
+msgid ""
+"The manufacturer of the recording equipment. This is the manufacturer of the "
+"DSC, scanner, video digitizer or other equipment that generated the image. "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:267
+msgid "Model"
+msgstr ""
+
+#: libexif/exif-tag.c:268
+msgid ""
+"The model name or model number of the equipment. This is the model name or "
+"number of the DSC, scanner, video digitizer or other equipment that "
+"generated the image. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:273
+msgid "Strip Offsets"
+msgstr ""
+
+#: libexif/exif-tag.c:274
+msgid ""
+"For each strip, the byte offset of that strip. It is recommended that this "
+"be selected so the number of strip bytes does not exceed 64 Kbytes. With "
+"JPEG compressed data this designation is not needed and is omitted. See also "
+"<RowsPerStrip> and <StripByteCounts>."
+msgstr ""
+
+#: libexif/exif-tag.c:280
+msgid "Orientation"
+msgstr ""
+
+#: libexif/exif-tag.c:281
+msgid "The image orientation viewed in terms of rows and columns."
+msgstr ""
+
+#: libexif/exif-tag.c:284
+msgid "Samples per Pixel"
+msgstr ""
+
+#: libexif/exif-tag.c:285
+msgid ""
+"The number of components per pixel. Since this standard applies to RGB and "
+"YCbCr images, the value set for this tag is 3. In JPEG compressed data a "
+"JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:290
+msgid "Rows per Strip"
+msgstr ""
+
+#: libexif/exif-tag.c:291
+msgid ""
+"The number of rows per strip. This is the number of rows in the image of one "
+"strip when an image is divided into strips. With JPEG compressed data this "
+"designation is not needed and is omitted. See also <StripOffsets> and "
+"<StripByteCounts>."
+msgstr ""
+
+#: libexif/exif-tag.c:297
+msgid "Strip Byte Count"
+msgstr ""
+
+#: libexif/exif-tag.c:298
+msgid ""
+"The total number of bytes in each strip. With JPEG compressed data this "
+"designation is not needed and is omitted."
+msgstr ""
+
+#: libexif/exif-tag.c:301
+msgid "X-Resolution"
+msgstr ""
+
+#: libexif/exif-tag.c:302
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageWidth> direction. "
+"When the image resolution is unknown, 72 [dpi] is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:306
+msgid "Y-Resolution"
+msgstr ""
+
+#: libexif/exif-tag.c:307
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageLength> direction. "
+"The same value as <XResolution> is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:311
+msgid "Planar Configuration"
+msgstr ""
+
+#: libexif/exif-tag.c:312
+msgid ""
+"Indicates whether pixel components are recorded in a chunky or planar "
+"format. In JPEG compressed files a JPEG marker is used instead of this tag. "
+"If this field does not exist, the TIFF default of 1 (chunky) is assumed."
+msgstr ""
+
+#: libexif/exif-tag.c:317
+msgid "Resolution Unit"
+msgstr ""
+
+#: libexif/exif-tag.c:318
+msgid ""
+"The unit for measuring <XResolution> and <YResolution>. The same unit is "
+"used for both <XResolution> and <YResolution>. If the image resolution is "
+"unknown, 2 (inches) is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:323
+msgid "Transfer Function"
+msgstr ""
+
+#: libexif/exif-tag.c:324
+msgid ""
+"A transfer function for the image, described in tabular style. Normally this "
+"tag is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+"A transfer function for the image, described in tabular style. Normally this "
+"tag is not necessary, since colour space is specified in the colour space "
+"information tag (<ColorSpace>)."
+
+#: libexif/exif-tag.c:328
+msgid "Software"
+msgstr ""
+
+#: libexif/exif-tag.c:329
+msgid ""
+"This tag records the name and version of the software or firmware of the "
+"camera or image input device used to generate the image. The detailed format "
+"is not specified, but it is recommended that the example shown below be "
+"followed. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:336
+msgid "Date and Time"
+msgstr ""
+
+#: libexif/exif-tag.c:337
+msgid ""
+"The date and time of image creation. In this standard (EXIF-2.1) it is the "
+"date and time the file was changed."
+msgstr ""
+
+#: libexif/exif-tag.c:340
+msgid "Artist"
+msgstr ""
+
+#: libexif/exif-tag.c:341
+msgid ""
+"This tag records the name of the camera owner, photographer or image "
+"creator. The detailed format is not specified, but it is recommended that "
+"the information be written as in the example below for ease of "
+"Interoperability. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:347 libexif/pentax/mnote-pentax-tag.c:113
+msgid "White Point"
+msgstr ""
+
+#: libexif/exif-tag.c:348
+msgid ""
+"The chromaticity of the white point of the image. Normally this tag is not "
+"necessary, since color space is specified in the color space information tag "
+"(<ColorSpace>)."
+msgstr ""
+"The chromaticity of the white point of the image. Normally this tag is not "
+"necessary, since colour space is specified in the colour space information "
+"tag (<ColorSpace>)."
+
+#: libexif/exif-tag.c:353
+msgid "Primary Chromaticities"
+msgstr ""
+
+#: libexif/exif-tag.c:354
+msgid ""
+"The chromaticity of the three primary colors of the image. Normally this tag "
+"is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+"The chromaticity of the three primary colours of the image. Normally this "
+"tag is not necessary, since colour space is specified in the colour space "
+"information tag (<ColorSpace>)."
+
+#: libexif/exif-tag.c:359
+msgid "Defined by Adobe Corporation to enable TIFF Trees within a TIFF file."
+msgstr ""
+
+#: libexif/exif-tag.c:362
+msgid "Transfer Range"
+msgstr ""
+
+#: libexif/exif-tag.c:366
+msgid "JPEG Interchange Format"
+msgstr ""
+
+#: libexif/exif-tag.c:367
+msgid ""
+"The offset to the start byte (SOI) of JPEG compressed thumbnail data. This "
+"is not used for primary image JPEG data."
+msgstr ""
+
+#: libexif/exif-tag.c:372
+msgid "JPEG Interchange Format Length"
+msgstr ""
+
+#: libexif/exif-tag.c:373
+msgid ""
+"The number of bytes of JPEG compressed thumbnail data. This is not used for "
+"primary image JPEG data. JPEG thumbnails are not divided but are recorded as "
+"a continuous JPEG bitstream from SOI to EOI. Appn and COM markers should not "
+"be recorded. Compressed thumbnails must be recorded in no more than 64 "
+"Kbytes, including all other data to be recorded in APP1."
+msgstr ""
+
+#: libexif/exif-tag.c:382
+msgid "YCbCr Coefficients"
+msgstr ""
+
+#: libexif/exif-tag.c:383
+msgid ""
+"The matrix coefficients for transformation from RGB to YCbCr image data. No "
+"default is given in TIFF; but here the value given in \"Color Space "
+"Guidelines\", is used as the default. The color space is declared in a color "
+"space information tag, with the default being the value that gives the "
+"optimal image characteristics Interoperability this condition."
+msgstr ""
+"The matrix coefficients for transformation from RGB to YCbCr image data. No "
+"default is given in TIFF; but here the value given in \"Color Space "
+"Guidelines\", is used as the default. The colour space is declared in a "
+"colour space information tag, with the default being the value that gives "
+"the optimal image characteristics Interoperability this condition."
+
+#: libexif/exif-tag.c:392
+msgid "YCbCr Sub-Sampling"
+msgstr ""
+
+#: libexif/exif-tag.c:393
+msgid ""
+"The sampling ratio of chrominance components in relation to the luminance "
+"component. In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:398
+msgid "YCbCr Positioning"
+msgstr ""
+
+#: libexif/exif-tag.c:399
+msgid ""
+"The position of chrominance components in relation to the luminance "
+"component. This field is designated only for JPEG compressed data or "
+"uncompressed YCbCr data. The TIFF default is 1 (centered); but when Y:Cb:Cr "
+"= 4:2:2 it is recommended in this standard that 2 (co-sited) be used to "
+"record data, in order to improve the image quality when viewed on TV "
+"systems. When this field does not exist, the reader shall assume the TIFF "
+"default. In the case of Y:Cb:Cr = 4:2:0, the TIFF default (centered) is "
+"recommended. If the reader does not have the capability of supporting both "
+"kinds of <YCbCrPositioning>, it shall follow the TIFF default regardless of "
+"the value in this field. It is preferable that readers be able to support "
+"both centered and co-sited positioning."
+msgstr ""
+"The position of chrominance components in relation to the luminance "
+"component. This field is designated only for JPEG compressed data or "
+"uncompressed YCbCr data. The TIFF default is 1 (centred); but when Y:Cb:Cr = "
+"4:2:2 it is recommended in this standard that 2 (co-sited) be used to record "
+"data, in order to improve the image quality when viewed on TV systems. When "
+"this field does not exist, the reader shall assume the TIFF default. In the "
+"case of Y:Cb:Cr = 4:2:0, the TIFF default (centred) is recommended. If the "
+"reader does not have the capability of supporting both kinds of "
+"<YCbCrPositioning>, it shall follow the TIFF default regardless of the value "
+"in this field. It is preferable that readers be able to support both centred "
+"and co-sited positioning."
+
+#: libexif/exif-tag.c:414
+msgid "Reference Black/White"
+msgstr ""
+
+#: libexif/exif-tag.c:415
+msgid ""
+"The reference black point value and reference white point value. No defaults "
+"are given in TIFF, but the values below are given as defaults here. The "
+"color space is declared in a color space information tag, with the default "
+"being the value that gives the optimal image characteristics "
+"Interoperability these conditions."
+msgstr ""
+"The reference black point value and reference white point value. No defaults "
+"are given in TIFF, but the values below are given as defaults here. The "
+"colour space is declared in a colour space information tag, with the default "
+"being the value that gives the optimal image characteristics "
+"Interoperability these conditions."
+
+#: libexif/exif-tag.c:423
+msgid "XML Packet"
+msgstr ""
+
+#: libexif/exif-tag.c:423
+msgid "XMP Metadata"
+msgstr ""
+
+#: libexif/exif-tag.c:438 libexif/exif-tag.c:784
+msgid "CFA Pattern"
+msgstr ""
+
+#: libexif/exif-tag.c:439 libexif/exif-tag.c:785
+msgid ""
+"Indicates the color filter array (CFA) geometric pattern of the image sensor "
+"when a one-chip color area sensor is used. It does not apply to all sensing "
+"methods."
+msgstr ""
+"Indicates the colour filter array (CFA) geometric pattern of the image "
+"sensor when a one-chip colour area sensor is used. It does not apply to all "
+"sensing methods."
+
+#: libexif/exif-tag.c:443
+msgid "Battery Level"
+msgstr ""
+
+#: libexif/exif-tag.c:444
+msgid "Copyright"
+msgstr ""
+
+#: libexif/exif-tag.c:445
+msgid ""
+"Copyright information. In this standard the tag is used to indicate both the "
+"photographer and editor copyrights. It is the copyright notice of the person "
+"or organization claiming rights to the image. The Interoperability copyright "
+"statement including date and rights should be written in this field; e.g., "
+"\"Copyright, John Smith, 19xx. All rights reserved.\". In this standard the "
+"field records both the photographer and editor copyrights, with each "
+"recorded in a separate part of the statement. When there is a clear "
+"distinction between the photographer and editor copyrights, these are to be "
+"written in the order of photographer followed by editor copyright, separated "
+"by NULL (in this case, since the statement also ends with a NULL, there are "
+"two NULL codes) (see example 1). When only the photographer is given, it is "
+"terminated by one NULL code (see example 2). When only the editor copyright "
+"is given, the photographer copyright part consists of one space followed by "
+"a terminating NULL code, then the editor copyright is given (see example 3). "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:467
+msgid "Exposure time, given in seconds (sec)."
+msgstr ""
+
+#: libexif/exif-tag.c:469 libexif/pentax/mnote-pentax-tag.c:79
+msgid "F-Number"
+msgstr ""
+
+#: libexif/exif-tag.c:470
+msgid "The F number."
+msgstr ""
+
+#: libexif/exif-tag.c:475
+msgid "Image Resources Block"
+msgstr ""
+
+#: libexif/exif-tag.c:477
+msgid ""
+"A pointer to the Exif IFD. Interoperability, Exif IFD has the same structure "
+"as that of the IFD specified in TIFF. ordinarily, however, it does not "
+"contain image data as in the case of TIFF."
+msgstr ""
+
+#: libexif/exif-tag.c:485
+msgid "Exposure Program"
+msgstr ""
+
+#: libexif/exif-tag.c:486
+msgid ""
+"The class of the program used by the camera to set exposure when the picture "
+"is taken."
+msgstr ""
+
+#: libexif/exif-tag.c:490
+msgid "Spectral Sensitivity"
+msgstr ""
+
+#: libexif/exif-tag.c:491
+msgid ""
+"Indicates the spectral sensitivity of each channel of the camera used. The "
+"tag value is an ASCII string compatible with the standard developed by the "
+"ASTM Technical Committee."
+msgstr ""
+
+#: libexif/exif-tag.c:496
+msgid "GPS Info IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:497
+msgid ""
+"A pointer to the GPS Info IFD. The Interoperability structure of the GPS "
+"Info IFD, like that of Exif IFD, has no image data."
+msgstr ""
+
+#: libexif/exif-tag.c:503
+msgid "ISO Speed Ratings"
+msgstr ""
+
+#: libexif/exif-tag.c:504
+msgid ""
+"Indicates the ISO Speed and ISO Latitude of the camera or input device as "
+"specified in ISO 12232."
+msgstr ""
+
+#: libexif/exif-tag.c:507
+msgid "Opto-Electronic Conversion Function"
+msgstr ""
+
+#: libexif/exif-tag.c:508
+msgid ""
+"Indicates the Opto-Electronic Conversion Function (OECF) specified in ISO "
+"14524. <OECF> is the relationship between the camera optical input and the "
+"image values."
+msgstr ""
+
+#: libexif/exif-tag.c:513
+msgid "Time Zone Offset"
+msgstr ""
+
+#: libexif/exif-tag.c:514
+msgid "Encodes time zone of camera clock relative to GMT."
+msgstr ""
+
+#: libexif/exif-tag.c:515
+msgid "Exif Version"
+msgstr ""
+
+#: libexif/exif-tag.c:516
+msgid ""
+"The version of this standard supported. Nonexistence of this field is taken "
+"to mean nonconformance to the standard."
+msgstr ""
+
+#: libexif/exif-tag.c:520
+msgid "Date and Time (Original)"
+msgstr ""
+
+#: libexif/exif-tag.c:521
+msgid ""
+"The date and time when the original image data was generated. For a digital "
+"still camera the date and time the picture was taken are recorded."
+msgstr ""
+
+#: libexif/exif-tag.c:526
+msgid "Date and Time (Digitized)"
+msgstr ""
+
+#: libexif/exif-tag.c:527
+msgid "The date and time when the image was stored as digital data."
+msgstr ""
+
+#: libexif/exif-tag.c:530
+msgid "Components Configuration"
+msgstr ""
+
+#: libexif/exif-tag.c:531
+msgid ""
+"Information specific to compressed data. The channels of each component are "
+"arranged in order from the 1st component to the 4th. For uncompressed data "
+"the data arrangement is given in the <PhotometricInterpretation> tag. "
+"However, since <PhotometricInterpretation> can only express the order of Y, "
+"Cb and Cr, this tag is provided for cases when compressed data uses "
+"components other than Y, Cb, and Cr and to enable support of other sequences."
+msgstr ""
+
+#: libexif/exif-tag.c:541
+msgid "Compressed Bits per Pixel"
+msgstr ""
+
+#: libexif/exif-tag.c:542
+msgid ""
+"Information specific to compressed data. The compression mode used for a "
+"compressed image is indicated in unit bits per pixel."
+msgstr ""
+
+#: libexif/exif-tag.c:546 libexif/olympus/mnote-olympus-tag.c:123
+msgid "Shutter Speed"
+msgstr ""
+
+#: libexif/exif-tag.c:547
+msgid ""
+"Shutter speed. The unit is the APEX (Additive System of Photographic "
+"Exposure) setting."
+msgstr ""
+
+#: libexif/exif-tag.c:551
+msgid "The lens aperture. The unit is the APEX value."
+msgstr ""
+
+#: libexif/exif-tag.c:553
+msgid "Brightness"
+msgstr ""
+
+#: libexif/exif-tag.c:554
+msgid ""
+"The value of brightness. The unit is the APEX value. Ordinarily it is given "
+"in the range of -99.99 to 99.99."
+msgstr ""
+
+#: libexif/exif-tag.c:558
+msgid "Exposure Bias"
+msgstr ""
+
+#: libexif/exif-tag.c:559
+msgid ""
+"The exposure bias. The units is the APEX value. Ordinarily it is given in "
+"the range of -99.99 to 99.99."
+msgstr ""
+
+#: libexif/exif-tag.c:562
+msgid "Maximum Aperture Value"
+msgstr ""
+
+#: libexif/exif-tag.c:563
+msgid ""
+"The smallest F number of the lens. The unit is the APEX value. Ordinarily it "
+"is given in the range of 00.00 to 99.99, but it is not limited to this range."
+msgstr ""
+
+#: libexif/exif-tag.c:568
+msgid "Subject Distance"
+msgstr ""
+
+#: libexif/exif-tag.c:569
+msgid "The distance to the subject, given in meters."
+msgstr "The distance to the subject, given in metres."
+
+#: libexif/exif-tag.c:572
+msgid "The metering mode."
+msgstr ""
+
+#: libexif/exif-tag.c:574
+msgid "Light Source"
+msgstr ""
+
+#: libexif/exif-tag.c:575
+msgid "The kind of light source."
+msgstr ""
+
+#: libexif/exif-tag.c:578
+msgid ""
+"This tag is recorded when an image is taken using a strobe light (flash)."
+msgstr ""
+
+#: libexif/exif-tag.c:582
+msgid ""
+"The actual focal length of the lens, in mm. Conversion is not made to the "
+"focal length of a 35 mm film camera."
+msgstr ""
+
+#: libexif/exif-tag.c:585
+msgid "Subject Area"
+msgstr ""
+
+#: libexif/exif-tag.c:586
+msgid ""
+"This tag indicates the location and area of the main subject in the overall "
+"scene."
+msgstr ""
+
+#: libexif/exif-tag.c:590
+msgid "TIFF/EP Standard ID"
+msgstr ""
+
+#: libexif/exif-tag.c:591
+msgid "Maker Note"
+msgstr ""
+
+#: libexif/exif-tag.c:592
+msgid ""
+"A tag for manufacturers of Exif writers to record any desired information. "
+"The contents are up to the manufacturer."
+msgstr ""
+
+#: libexif/exif-tag.c:595
+msgid "User Comment"
+msgstr ""
+
+#: libexif/exif-tag.c:596
+msgid ""
+"A tag for Exif users to write keywords or comments on the image besides "
+"those in <ImageDescription>, and without the character code limitations of "
+"the <ImageDescription> tag. The character code used in the <UserComment> tag "
+"is identified based on an ID code in a fixed 8-byte area at the start of the "
+"tag data area. The unused portion of the area is padded with NULL (\"00.h"
+"\"). ID codes are assigned by means of registration. The designation method "
+"and references for each character code are defined in the specification. The "
+"value of CountN is determined based on the 8 bytes in the character code "
+"area and the number of bytes in the user comment part. Since the TYPE is not "
+"ASCII, NULL termination is not necessary. The ID code for the <UserComment> "
+"area may be a Defined code such as JIS or ASCII, or may be Undefined. The "
+"Undefined name is UndefinedText, and the ID code is filled with 8 bytes of "
+"all \"NULL\" (\"00.H\"). An Exif reader that reads the <UserComment> tag "
+"must have a function for determining the ID code. This function is not "
+"required in Exif readers that do not use the <UserComment> tag. When a "
+"<UserComment> area is set aside, it is recommended that the ID code be ASCII "
+"and that the following user comment part be filled with blank characters [20."
+"H]."
+msgstr ""
+
+#: libexif/exif-tag.c:619
+msgid "Sub-second Time"
+msgstr ""
+
+#: libexif/exif-tag.c:620
+msgid "A tag used to record fractions of seconds for the <DateTime> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:624
+msgid "Sub-second Time (Original)"
+msgstr ""
+
+#: libexif/exif-tag.c:625
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeOriginal> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:629
+msgid "Sub-second Time (Digitized)"
+msgstr ""
+
+#: libexif/exif-tag.c:630
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeDigitized> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:634
+msgid "XP Title"
+msgstr ""
+
+#: libexif/exif-tag.c:635
+msgid "A character string giving the title of the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:639
+msgid "XP Comment"
+msgstr ""
+
+#: libexif/exif-tag.c:640
+msgid ""
+"A character string containing a comment about the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:644
+msgid "XP Author"
+msgstr ""
+
+#: libexif/exif-tag.c:645
+msgid ""
+"A character string containing the name of the image creator, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:649
+msgid "XP Keywords"
+msgstr ""
+
+#: libexif/exif-tag.c:650
+msgid ""
+"A character string containing key words describing the image, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:654
+msgid "XP Subject"
+msgstr ""
+
+#: libexif/exif-tag.c:655
+msgid "A character string giving the image subject, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:659
+msgid "The FlashPix format version supported by a FPXR file."
+msgstr ""
+
+#: libexif/exif-tag.c:661 libexif/pentax/mnote-pentax-tag.c:102
+msgid "Color Space"
+msgstr "Colour Space"
+
+#: libexif/exif-tag.c:662
+msgid ""
+"The color space information tag is always recorded as the color space "
+"specifier. Normally sRGB (=1) is used to define the color space based on the "
+"PC monitor conditions and environment. If a color space other than sRGB is "
+"used, Uncalibrated (=FFFF.H) is set. Image data recorded as Uncalibrated can "
+"be treated as sRGB when it is converted to FlashPix."
+msgstr ""
+"The colour space information tag is always recorded as the colour space "
+"specifier. Normally sRGB (=1) is used to define the colour space based on "
+"the PC monitor conditions and environment. If a colour space other than sRGB "
+"is used, Uncalibrated (=FFFF.H) is set. Image data recorded as Uncalibrated "
+"can be treated as sRGB when it is converted to FlashPix."
+
+#: libexif/exif-tag.c:670
+msgid "Pixel X Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:671
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid width of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file."
+msgstr ""
+
+#: libexif/exif-tag.c:677
+msgid "Pixel Y Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:678
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid height of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file. Since data padding is unnecessary in the "
+"vertical direction, the number of lines recorded in this valid image height "
+"tag will in fact be the same as that recorded in the SOF."
+msgstr ""
+
+#: libexif/exif-tag.c:688
+msgid "Related Sound File"
+msgstr ""
+
+#: libexif/exif-tag.c:689
+msgid ""
+"This tag is used to record the name of an audio file related to the image "
+"data. The only relational information recorded here is the Exif audio file "
+"name and extension (an ASCII string consisting of 8 characters + '.' + 3 "
+"characters). The path is not recorded. Stipulations on audio and file naming "
+"conventions are defined in the specification. When using this tag, audio "
+"files must be recorded in conformance to the Exif audio format. Writers are "
+"also allowed to store the data such as Audio within APP2 as FlashPix "
+"extension stream data. The mapping of Exif image files and audio files is "
+"done in any of three ways, [1], [2] and [3]. If multiple files are mapped to "
+"one file as in [2] or [3], the above format is used to record just one audio "
+"file name. If there are multiple audio files, the first recorded file is "
+"given. In the case of [3], for example, for the Exif image file \"DSC00001."
+"JPG\" only  \"SND00001.WAV\" is given as the related Exif audio file. When "
+"there are three Exif audio files \"SND00001.WAV\", \"SND00002.WAV\" and "
+"\"SND00003.WAV\", the Exif image file name for each of them, \"DSC00001.JPG"
+"\", is indicated. By combining multiple relational information, a variety of "
+"playback possibilities can be supported. The method of using relational "
+"information is left to the implementation on the playback side. Since this "
+"information is an ASCII character string, it is terminated by NULL. When "
+"this tag is used to map audio files, the relation of the audio file to image "
+"data must also be indicated on the audio file end."
+msgstr ""
+
+#: libexif/exif-tag.c:719
+msgid "Interoperability IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:720
+msgid ""
+"Interoperability IFD is composed of tags which stores the information to "
+"ensure the Interoperability and pointed by the following tag located in Exif "
+"IFD. The Interoperability structure of Interoperability IFD is the same as "
+"TIFF defined IFD structure but does not contain the image data "
+"characteristically compared with normal TIFF IFD."
+msgstr ""
+
+#: libexif/exif-tag.c:729
+msgid "Flash Energy"
+msgstr ""
+
+#: libexif/exif-tag.c:730
+msgid ""
+"Indicates the strobe energy at the time the image is captured, as measured "
+"in Beam Candle Power Seconds (BCPS)."
+msgstr ""
+
+#: libexif/exif-tag.c:734
+msgid "Spatial Frequency Response"
+msgstr ""
+
+#: libexif/exif-tag.c:735
+msgid ""
+"This tag records the camera or input device spatial frequency table and SFR "
+"values in the direction of image width, image height, and diagonal "
+"direction, as specified in ISO 12233."
+msgstr ""
+
+#: libexif/exif-tag.c:741
+msgid "Focal Plane X-Resolution"
+msgstr ""
+
+#: libexif/exif-tag.c:742
+msgid ""
+"Indicates the number of pixels in the image width (X) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+
+#: libexif/exif-tag.c:746
+msgid "Focal Plane Y-Resolution"
+msgstr ""
+
+#: libexif/exif-tag.c:747
+msgid ""
+"Indicates the number of pixels in the image height (V) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+
+#: libexif/exif-tag.c:751
+msgid "Focal Plane Resolution Unit"
+msgstr ""
+
+#: libexif/exif-tag.c:752
+msgid ""
+"Indicates the unit for measuring <FocalPlaneXResolution> and "
+"<FocalPlaneYResolution>. This value is the same as the <ResolutionUnit>."
+msgstr ""
+
+#: libexif/exif-tag.c:757
+msgid "Subject Location"
+msgstr ""
+
+#: libexif/exif-tag.c:758
+msgid ""
+"Indicates the location of the main subject in the scene. The value of this "
+"tag represents the pixel at the center of the main subject relative to the "
+"left edge, prior to rotation processing as per the <Rotation> tag. The first "
+"value indicates the X column number and the second indicates the Y row "
+"number."
+msgstr ""
+"Indicates the location of the main subject in the scene. The value of this "
+"tag represents the pixel at the centre of the main subject relative to the "
+"left edge, prior to rotation processing as per the <Rotation> tag. The first "
+"value indicates the X column number and the second indicates the Y row "
+"number."
+
+#: libexif/exif-tag.c:765
+msgid "Exposure Index"
+msgstr ""
+
+#: libexif/exif-tag.c:766
+msgid ""
+"Indicates the exposure index selected on the camera or input device at the "
+"time the image is captured."
+msgstr ""
+
+#: libexif/exif-tag.c:769
+msgid "Sensing Method"
+msgstr ""
+
+#: libexif/exif-tag.c:770
+msgid "Indicates the image sensor type on the camera or input device."
+msgstr ""
+
+#: libexif/exif-tag.c:773 libexif/fuji/mnote-fuji-tag.c:64
+msgid "File Source"
+msgstr ""
+
+#: libexif/exif-tag.c:774
+msgid ""
+"Indicates the image source. If a DSC recorded the image, the tag value of "
+"this tag always be set to 3, indicating that the image was recorded on a DSC."
+msgstr ""
+
+#: libexif/exif-tag.c:778
+msgid "Scene Type"
+msgstr ""
+
+#: libexif/exif-tag.c:779
+msgid ""
+"Indicates the type of scene. If a DSC recorded the image, this tag value "
+"must always be set to 1, indicating that the image was directly photographed."
+msgstr ""
+
+#: libexif/exif-tag.c:789
+msgid "Custom Rendered"
+msgstr ""
+
+#: libexif/exif-tag.c:790
+msgid ""
+"This tag indicates the use of special processing on image data, such as "
+"rendering geared to output. When special processing is performed, the reader "
+"is expected to disable or minimize any further processing."
+msgstr ""
+
+#: libexif/exif-tag.c:796
+msgid ""
+"This tag indicates the exposure mode set when the image was shot. In auto-"
+"bracketing mode, the camera shoots a series of frames of the same scene at "
+"different exposure settings."
+msgstr ""
+
+#: libexif/exif-tag.c:801
+msgid "This tag indicates the white balance mode set when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:805
+msgid "Digital Zoom Ratio"
+msgstr ""
+
+#: libexif/exif-tag.c:806
+msgid ""
+"This tag indicates the digital zoom ratio when the image was shot. If the "
+"numerator of the recorded value is 0, this indicates that digital zoom was "
+"not used."
+msgstr ""
+
+#: libexif/exif-tag.c:811
+msgid "Focal Length in 35mm Film"
+msgstr ""
+
+#: libexif/exif-tag.c:812
+msgid ""
+"This tag indicates the equivalent focal length assuming a 35mm film camera, "
+"in mm. A value of 0 means the focal length is unknown. Note that this tag "
+"differs from the FocalLength tag."
+msgstr ""
+
+#: libexif/exif-tag.c:818
+msgid "Scene Capture Type"
+msgstr ""
+
+#: libexif/exif-tag.c:819
+msgid ""
+"This tag indicates the type of scene that was shot. It can also be used to "
+"record the mode in which the image was shot. Note that this differs from the "
+"scene type <SceneType> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:824
+msgid "Gain Control"
+msgstr ""
+
+#: libexif/exif-tag.c:825
+msgid "This tag indicates the degree of overall image gain adjustment."
+msgstr ""
+
+#: libexif/exif-tag.c:829
+msgid ""
+"This tag indicates the direction of contrast processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:833
+msgid ""
+"This tag indicates the direction of saturation processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:837
+msgid ""
+"This tag indicates the direction of sharpness processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:841
+msgid "Device Setting Description"
+msgstr ""
+
+#: libexif/exif-tag.c:842
+msgid ""
+"This tag indicates information on the picture-taking conditions of a "
+"particular camera model. The tag is used only to indicate the picture-taking "
+"conditions in the reader."
+msgstr ""
+
+#: libexif/exif-tag.c:848
+msgid "Subject Distance Range"
+msgstr ""
+
+#: libexif/exif-tag.c:849
+msgid "This tag indicates the distance to the subject."
+msgstr ""
+
+#: libexif/exif-tag.c:851
+msgid "Image Unique ID"
+msgstr ""
+
+#: libexif/exif-tag.c:852
+msgid ""
+"This tag indicates an identifier assigned uniquely to each image. It is "
+"recorded as an ASCII string equivalent to hexadecimal notation and 128-bit "
+"fixed length."
+msgstr ""
+
+#: libexif/exif-tag.c:857
+msgid "Gamma"
+msgstr ""
+
+#: libexif/exif-tag.c:858
+msgid "Indicates the value of coefficient gamma."
+msgstr ""
+
+#: libexif/exif-tag.c:860
+msgid "PRINT Image Matching"
+msgstr ""
+
+#: libexif/exif-tag.c:861
+msgid "Related to Epson's PRINT Image Matching technology"
+msgstr ""
+
+#: libexif/exif-tag.c:863
+msgid "Padding"
+msgstr ""
+
+#: libexif/exif-tag.c:864
+msgid ""
+"This tag reserves space that can be reclaimed later when additional metadata "
+"are added. New metadata can be written in place by replacing this tag with a "
+"smaller data element and using the reclaimed space to store the new or "
+"expanded metadata tags."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:62
+msgid "Softest"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:66
+msgid "Hardest"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:67 libexif/fuji/mnote-fuji-entry.c:96
+msgid "Medium soft"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:68 libexif/fuji/mnote-fuji-entry.c:94
+msgid "Medium hard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:69 libexif/fuji/mnote-fuji-entry.c:90
+#: libexif/fuji/mnote-fuji-entry.c:98 libexif/fuji/mnote-fuji-entry.c:182
+msgid "Film simulation mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:79
+msgid "Incandescent"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:85
+msgid "Medium high"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:87
+msgid "Medium low"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:88 libexif/fuji/mnote-fuji-entry.c:97
+msgid "Original"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:124 libexif/pentax/mnote-pentax-entry.c:164
+#: libexif/pentax/mnote-pentax-entry.c:299
+msgid "Program AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:125
+msgid "Natural photo"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:126
+msgid "Vibration reduction"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:127
+msgid "Sunset"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:128 libexif/pentax/mnote-pentax-entry.c:181
+msgid "Museum"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:129
+msgid "Party"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:130
+msgid "Flower"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:131 libexif/pentax/mnote-pentax-entry.c:176
+msgid "Text"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:132
+msgid "NP & flash"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:137
+msgid "Aperture priority AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:138
+msgid "Shutter priority AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:146
+msgid "F-Standard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:147
+msgid "F-Chrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:148
+msgid "F-B&W"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:151
+msgid "No blur"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:152
+msgid "Blur warning"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:155
+msgid "Focus good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:156
+msgid "Out of focus"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:159
+msgid "AE good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:160
+msgid "Over exposed"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:164
+msgid "Wide"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:167
+msgid "F0/Standard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:168
+msgid "F1/Studio portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:169
+msgid "F1a/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:170
+msgid "F1b/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:171
+msgid "F1c/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:172
+msgid "F2/Fujichrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:173
+msgid "F3/Studio portrait Ex"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:174
+msgid "F4/Velvia"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:177
+msgid "Auto (100-400%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:179
+msgid "Standard (100%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:180
+msgid "Wide1 (230%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:181
+msgid "Wide2 (400%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:263
+#, c-format
+msgid "%2.2f mm"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:298 libexif/pentax/mnote-pentax-entry.c:399
+#: libexif/pentax/mnote-pentax-entry.c:451
+#, c-format
+msgid "%i bytes unknown data"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:36
+msgid "Maker Note Version"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:37
+msgid "This number is unique and based on the date of manufacture."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:41
+msgid "Chromaticity Saturation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:44
+msgid "Flash Firing Strength Compensation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:46
+msgid "Focusing Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:47
+msgid "Focus Point"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:48
+msgid "Slow Synchro Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:49 libexif/pentax/mnote-pentax-tag.c:72
+msgid "Picture Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:50
+msgid "Continuous Taking"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:51
+msgid "Continuous Sequence Number"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:52
+msgid "FinePix Color"
+msgstr "FinePix Colour"
+
+#: libexif/fuji/mnote-fuji-tag.c:53
+msgid "Blur Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:54
+msgid "Auto Focus Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:55
+msgid "Auto Exposure Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:56
+msgid "Dynamic Range"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:57
+msgid "Film Simulation Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:58
+msgid "Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:59
+msgid "Development Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:60
+msgid "Minimum Focal Length"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:61
+msgid "Maximum Focal Length"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:62
+msgid "Maximum Aperture at Minimum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:63
+msgid "Maximum Aperture at Maximum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:65
+msgid "Order Number"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:66 libexif/pentax/mnote-pentax-tag.c:98
+msgid "Frame Number"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:49
+#, c-format
+msgid "Invalid format '%s', expected '%s' or '%s'."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:89
+msgid "AF non D lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:91
+msgid "AF-D or AF-S lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:92
+msgid "AF-D G lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:93
+msgid "AF-D VR lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:94
+msgid "AF-D G VR lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:98
+msgid "Flash unit unknown"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:99
+msgid "Flash is external"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:100
+msgid "Flash is on camera"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:103
+msgid "VGA basic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:104
+msgid "VGA normal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:105
+msgid "VGA fine"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:106
+msgid "SXGA basic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:107
+msgid "SXGA normal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:108
+msgid "SXGA fine"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:109
+msgid "2 Mpixel basic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:110
+msgid "2 Mpixel normal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:111
+msgid "2 Mpixel fine"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:114
+msgid "Color"
+msgstr "Colour"
+
+#: libexif/olympus/mnote-olympus-entry.c:119
+msgid "Bright+"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:120
+msgid "Bright-"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:121
+msgid "Contrast+"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:122
+msgid "Contrast-"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:125
+msgid "ISO 80"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:126
+msgid "ISO 160"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:127
+msgid "ISO 320"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:128
+#: libexif/olympus/mnote-olympus-entry.c:246
+msgid "ISO 100"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:132
+msgid "Preset"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:134
+msgid "Incandescence"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:135
+msgid "Fluorescence"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:137
+msgid "SpeedLight"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:140
+msgid "No fisheye"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:141
+msgid "Fisheye on"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:144
+msgid "Normal, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:145
+msgid "Normal, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:146
+msgid "Normal, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:147
+msgid "Normal, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:148
+msgid "Normal, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:149
+msgid "Normal, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:150
+msgid "Normal, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:151
+msgid "Normal, standard"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:152
+msgid "Fine, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:153
+msgid "Fine, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:154
+msgid "Fine, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:155
+msgid "Fine, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:156
+msgid "Fine, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:157
+msgid "Fine, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:158
+msgid "Fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:159
+msgid "Super fine, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:160
+msgid "Super fine, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:161
+msgid "Super fine, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:162
+msgid "Super fine, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:163
+msgid "Super fine, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:164
+msgid "Super fine, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:165
+msgid "Super fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:166
+msgid "Super fine, high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:169
+#: libexif/olympus/mnote-olympus-entry.c:174
+#: libexif/olympus/mnote-olympus-entry.c:208
+#: libexif/olympus/mnote-olympus-entry.c:217
+#: libexif/olympus/mnote-olympus-entry.c:240
+msgid "No"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:180
+msgid "On (Preset)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:185
+msgid "Fill"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:192
+msgid "Internal + external"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:221
+msgid "Interlaced"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:222
+msgid "Progressive"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:228
+#: libexif/pentax/mnote-pentax-entry.c:85
+#: libexif/pentax/mnote-pentax-entry.c:139
+msgid "Best"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:229
+msgid "Adjust exposure"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:232
+msgid "Spot focus"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:233
+msgid "Normal focus"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:236
+msgid "Record while down"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:237
+msgid "Press start, press stop"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:245
+msgid "ISO 50"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:247
+msgid "ISO 200"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:248
+msgid "ISO 400"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:252
+#: libexif/pentax/mnote-pentax-entry.c:168
+msgid "Sport"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:253
+msgid "TV"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:255
+msgid "User 1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:256
+msgid "User 2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:257
+msgid "Lamp"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:260
+msgid "5 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:261
+msgid "10 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:262
+msgid "15 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:263
+msgid "20 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:375
+#, c-format
+msgid "Red Correction %f, blue Correction %f"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:383
+#, c-format
+msgid "%2.2f meters"
+msgstr "%2.2f metres"
+
+#: libexif/olympus/mnote-olympus-entry.c:385
+msgid "No manual focus selection"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:411
+msgid "AF position: center"
+msgstr "AF position: centre"
+
+#: libexif/olympus/mnote-olympus-entry.c:412
+msgid "AF position: top"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:413
+msgid "AF position: bottom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:414
+msgid "AF position: left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:415
+msgid "AF position: right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:416
+msgid "AF position: upper-left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:417
+msgid "AF position: upper-right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:418
+msgid "AF position: lower-left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:419
+msgid "AF position: lower-right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:420
+msgid "AF position: far left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:421
+msgid "AF position: far right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:422
+msgid "Unknown AF position"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:503
+#, c-format
+msgid "Internal error (unknown value %hi)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:441
+#: libexif/olympus/mnote-olympus-entry.c:511
+#, c-format
+msgid "Unknown value %hi"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:536
+#: libexif/olympus/mnote-olympus-entry.c:556
+#, c-format
+msgid "Unknown %hu"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:553
+msgid "2 sec."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:592
+msgid "Fast"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:696
+msgid "Automatic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:726
+#, c-format
+msgid "Manual: %liK"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:729
+msgid "Manual: unknown"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:735
+msgid "One-touch"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:791
+#: libexif/olympus/mnote-olympus-entry.c:801
+msgid "Infinite"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:809
+#, c-format
+msgid "%i bytes unknown data: "
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:53
+msgid "ISO Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:39
+msgid "Color Mode (?)"
+msgstr "Colour Mode (?)"
+
+#: libexif/olympus/mnote-olympus-tag.c:42
+msgid "Image Sharpening"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:44
+msgid "Flash Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:46
+msgid "White Balance Fine Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:47
+msgid "White Balance RB"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:49
+msgid "ISO Selection"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Preview Image IFD"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Offset of the preview image directory (IFD) inside the file."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:51
+msgid "Exposurediff ?"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:54
+msgid "Image Boundary"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:56
+msgid "Flash Exposure Bracket Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:57
+msgid "Exposure Bracket Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:58
+#: libexif/olympus/mnote-olympus-tag.c:96
+msgid "Image Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:59
+msgid "Tone Compensation"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:60
+msgid "Adapter"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:62
+msgid "Lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:63
+#: libexif/olympus/mnote-olympus-tag.c:135
+#: libexif/olympus/mnote-olympus-tag.c:185
+msgid "Manual Focus Distance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:65
+msgid "Flash Used"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:66
+msgid "AF Focus Position"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:67
+msgid "Bracketing"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:69
+msgid "Lens F Stops"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:70
+msgid "Contrast Curve"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:71
+#: libexif/olympus/mnote-olympus-tag.c:95
+#: libexif/pentax/mnote-pentax-tag.c:134
+msgid "Color Mode"
+msgstr "Colour Mode"
+
+#: libexif/olympus/mnote-olympus-tag.c:72
+msgid "Light Type"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:74
+msgid "Hue Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:76
+#: libexif/olympus/mnote-olympus-tag.c:163
+#: libexif/pentax/mnote-pentax-tag.c:108
+msgid "Noise Reduction"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:79
+msgid "Sensor Pixel Size"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Image Data Size"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Size of compressed image data in bytes."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:84
+msgid "Total Number of Pictures Taken"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:86
+msgid "Optimize Image"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:88
+msgid "Vari Program"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:89
+msgid "Capture Editor Data"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:90
+msgid "Capture Editor Version"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:97
+#: libexif/olympus/mnote-olympus-tag.c:183
+msgid "CCD Sensitivity"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:99
+msgid "Focus"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:102
+msgid "Converter"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:105
+msgid "Thumbnail Image"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:106
+msgid "Speed/Sequence/Panorama Direction"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:109
+msgid "Black & White Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:111
+msgid "Focal Plane Diagonal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:112
+msgid "Lens Distortion Parameters"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:114
+msgid "Info"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:115
+msgid "Camera ID"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:116
+msgid "Precapture Frames"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:117
+msgid "White Board"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:118
+msgid "One Touch White Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:119
+msgid "White Balance Bracket"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:120
+#: libexif/pentax/mnote-pentax-tag.c:123
+msgid "White Balance Bias"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:121
+msgid "Data Dump"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:124
+msgid "ISO Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:125
+msgid "Aperture Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:126
+msgid "Brightness Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:128
+msgid "Flash Device"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:130
+msgid "Sensor Temperature"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:131
+msgid "Lens Temperature"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:132
+msgid "Light Condition"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:136
+msgid "Zoom Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:137
+msgid "Focus Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:138
+msgid "Sharpness Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:139
+msgid "Flash Charge Level"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:140
+msgid "Color Matrix"
+msgstr "Colour Matrix"
+
+#: libexif/olympus/mnote-olympus-tag.c:141
+msgid "Black Level"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:142
+msgid "White Balance Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:143
+#: libexif/pentax/mnote-pentax-tag.c:87
+msgid "Red Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:144
+#: libexif/pentax/mnote-pentax-tag.c:86
+msgid "Blue Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:145
+msgid "Color Matrix Number"
+msgstr "Colour Matrix Number"
+
+#: libexif/olympus/mnote-olympus-tag.c:147
+msgid "Flash Exposure Comp"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:148
+msgid "Internal Flash Table"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:149
+msgid "External Flash G Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:150
+msgid "External Flash Bounce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:151
+msgid "External Flash Zoom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:152
+msgid "External Flash Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:153
+msgid "Contrast Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:154
+msgid "Sharpness Factor"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:155
+msgid "Color Control"
+msgstr "Colour Control"
+
+#: libexif/olympus/mnote-olympus-tag.c:156
+msgid "Olympus Image Width"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:157
+msgid "Olympus Image Height"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:158
+msgid "Scene Detect"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:159
+msgid "Compression Ratio"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:160
+msgid "Preview Image Valid"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:161
+msgid "AF Result"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:162
+msgid "CCD Scan Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:164
+msgid "Infinity Lens Step"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:165
+msgid "Near Lens Step"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:166
+msgid "Light Value Center"
+msgstr "Light Value Centre"
+
+#: libexif/olympus/mnote-olympus-tag.c:167
+msgid "Light Value Periphery"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:170
+msgid "Sequential Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:171
+msgid "Wide Range"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:172
+msgid "Color Adjustment Mode"
+msgstr "Colour Adjustment Mode"
+
+#: libexif/olympus/mnote-olympus-tag.c:174
+msgid "Quick Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:176
+msgid "Voice Memo"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:177
+msgid "Record Shutter Release"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:178
+msgid "Flicker Reduce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:179
+msgid "Optical Zoom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:181
+msgid "Light Source Special"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:182
+msgid "Resaved"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:184
+msgid "Scene Select"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:186
+msgid "Sequence Shot Interval"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:189
+msgid "Epson Image Width"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:190
+msgid "Epson Image Height"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:191
+msgid "Epson Software Version"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:80
+#: libexif/pentax/mnote-pentax-entry.c:134
+msgid "Multi-exposure"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:83
+#: libexif/pentax/mnote-pentax-entry.c:137
+msgid "Good"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:84
+#: libexif/pentax/mnote-pentax-entry.c:138
+msgid "Better"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:92
+msgid "Flash on"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:140
+msgid "TIFF"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:150
+msgid "2560x1920 or 2304x1728"
+msgstr "2560×1920 or 2304×1728"
+
+#: libexif/pentax/mnote-pentax-entry.c:156
+msgid "2304x1728 or 2592x1944"
+msgstr "2304×1728 or 2592×1944"
+
+#: libexif/pentax/mnote-pentax-entry.c:158
+msgid "2816x2212 or 2816x2112"
+msgstr "2816×2212 or 2816×2112"
+
+#: libexif/pentax/mnote-pentax-entry.c:171
+msgid "Surf & snow"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:172
+msgid "Sunset or candlelight"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:173
+msgid "Autumn"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:178
+msgid "Self portrait"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:179
+msgid "Illustrations"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:180
+msgid "Digital filter"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:182
+msgid "Food"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:183
+msgid "Green mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:184
+msgid "Light pet"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:185
+msgid "Dark pet"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:186
+msgid "Medium pet"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:188
+#: libexif/pentax/mnote-pentax-entry.c:296
+msgid "Candlelight"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:189
+msgid "Natural skin tone"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:190
+msgid "Synchro sound record"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:191
+msgid "Frame composite"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:194
+msgid "Auto, did not fire"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:196
+msgid "Auto, did not fire, red-eye reduction"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:197
+msgid "Auto, fired"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:199
+msgid "Auto, fired, red-eye reduction"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:201
+msgid "On, wireless"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:202
+msgid "On, soft"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:203
+msgid "On, slow-sync"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:204
+msgid "On, slow-sync, red-eye reduction"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:205
+msgid "On, trailing-curtain sync"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:213
+msgid "AF-S"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:214
+msgid "AF-C"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:217
+msgid "Upper-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:218
+msgid "Top"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:219
+msgid "Upper-right"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:221
+msgid "Mid-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:223
+msgid "Mid-right"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:225
+msgid "Lower-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:226
+msgid "Bottom"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:227
+msgid "Lower-right"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:228
+msgid "Fixed center"
+msgstr "Fixed centre"
+
+#: libexif/pentax/mnote-pentax-entry.c:232
+msgid "Multiple"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:234
+msgid "Top-center"
+msgstr "Top-centre"
+
+#: libexif/pentax/mnote-pentax-entry.c:240
+msgid "Bottom-center"
+msgstr "Bottom-centre"
+
+#: libexif/pentax/mnote-pentax-entry.c:257
+msgid "User selected"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:282
+msgid "3008x2008 or 3040x2024"
+msgstr "3008×2008 or 3040×2024"
+
+#: libexif/pentax/mnote-pentax-entry.c:293
+msgid "Digital filter?"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:374
+#: libexif/pentax/mnote-pentax-entry.c:383
+#, c-format
+msgid "Internal error (unknown value %i %i)"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:35 libexif/pentax/mnote-pentax-tag.c:63
+msgid "Capture Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:36 libexif/pentax/mnote-pentax-tag.c:70
+#: libexif/pentax/mnote-pentax-tag.c:129
+msgid "Quality Level"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:54
+msgid "ISO Speed"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:56
+msgid "Colors"
+msgstr "Colours"
+
+#: libexif/pentax/mnote-pentax-tag.c:59
+msgid "PrintIM Settings"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:60 libexif/pentax/mnote-pentax-tag.c:131
+msgid "Time Zone"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:61
+msgid "Daylight Savings"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:64
+msgid "Preview Size"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:65
+msgid "Preview Length"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:66 libexif/pentax/mnote-pentax-tag.c:122
+msgid "Preview Start"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:67
+msgid "Model Identification"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:68
+msgid "Date"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:69
+msgid "Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:75
+msgid "AF Point Selected"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:76
+msgid "Auto AF Point"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:77
+msgid "Focus Position"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:80
+msgid "ISO Number"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:83
+msgid "Auto Bracketing"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:85
+msgid "White Balance Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:93
+msgid "World Time Location"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:94
+msgid "Hometown City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:95
+msgid "Destination City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Hometown DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Home Daylight Savings Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination Daylight Savings Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:99
+msgid "Image Processing"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:100
+msgid "Picture Mode (2)"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:103
+msgid "Image Area Offset"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:104
+msgid "Raw Image Size"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:105
+msgid "Autofocus Points Used"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:107
+msgid "Camera Temperature"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:110
+msgid "Image Tone"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:111
+msgid "Shake Reduction Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:112
+msgid "Black Point"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:114
+msgid "AE Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:115
+msgid "Lens Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:116
+msgid "Flash Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:117
+msgid "Camera Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:118
+msgid "Battery Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:119
+msgid "Hometown City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:120
+msgid "Destination City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Object Distance"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Distance of photographed object in millimeters."
+msgstr "Distance of photographed object in millimetres."
+
+#: libexif/pentax/mnote-pentax-tag.c:126
+msgid "Flash Distance"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:132
+msgid "Bestshot Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:133
+msgid "CCS ISO Sensitivity"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:135
+msgid "Enhancement"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:136
+msgid "Finer"
+msgstr ""
+
+#: test/nls/test-nls.c:20 test/nls/test-nls.c:23 test/nls/test-nls.c:24
+msgid "[DO_NOT_TRANSLATE_THIS_MARKER]"
+msgstr ""
+
+#~ msgid "Daylight-color fluorescent"
+#~ msgstr "Daylight-colour fluorescent"
+
+#~ msgid "DayWhite-color fluorescent"
+#~ msgstr "DayWhite-colour fluorescent"
+
+#, fuzzy
+#~ msgid "Daywhite fluorescent"
+#~ msgstr "DayWhite-colour fluorescent"
+
+#, fuzzy
+#~ msgid "Top - left"
+#~ msgstr "Top-centre"
+
+#, fuzzy
+#~ msgid "Bottom - left"
+#~ msgstr "Bottom-centre"
+
+#, fuzzy
+#~ msgid "center-weighted average"
+#~ msgstr "Centre-weighted average"
+
+#, fuzzy
+#~ msgid "fluorescent"
+#~ msgstr "Colour accent"
+
+#, fuzzy
+#~ msgid "daylight fluorescent"
+#~ msgstr "Daylight-colour fluorescent"
+
+#, fuzzy
+#~ msgid "white fluorescent"
+#~ msgstr "DayWhite-colour fluorescent"
+
+#~ msgid "Center-Weighted Average"
+#~ msgstr "Centre-Weighted Average"
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/en_GB.gmo b/framework/modules/c_LibExifModule/libexif-0.6.20/po/en_GB.gmo
new file mode 100644
index 0000000000000000000000000000000000000000..037284a220a2fbe861afaf3a4879dedcceef9a3b
Binary files /dev/null and b/framework/modules/c_LibExifModule/libexif-0.6.20/po/en_GB.gmo differ
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/en_GB.po b/framework/modules/c_LibExifModule/libexif-0.6.20/po/en_GB.po
new file mode 100644
index 0000000000000000000000000000000000000000..e3f0f859b4cd81943437b83f72ce9ab89195153b
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/en_GB.po
@@ -0,0 +1,6039 @@
+# English (United Kingdom) translation for libexif
+# Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006
+# This file is distributed under the same license as the libexif package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: libexif\n"
+"Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-12-15 22:14-0800\n"
+"PO-Revision-Date: 2010-03-17 17:09+0000\n"
+"Last-Translator: Robert Readman <Unknown>\n"
+"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-12-14 00:37+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: libexif/canon/mnote-canon-entry.c:40 libexif/fuji/mnote-fuji-entry.c:35
+#: libexif/olympus/mnote-olympus-entry.c:37
+#: libexif/pentax/mnote-pentax-entry.c:39
+#, c-format
+msgid "Invalid format '%s', expected '%s'."
+msgstr "Invalid format '%s', expected '%s'."
+
+#: libexif/canon/mnote-canon-entry.c:52 libexif/fuji/mnote-fuji-entry.c:47
+#: libexif/olympus/mnote-olympus-entry.c:62
+#: libexif/pentax/mnote-pentax-entry.c:51
+#, c-format
+msgid "Invalid number of components (%i, expected %i)."
+msgstr "Invalid number of components (%i, expected %i)."
+
+#: libexif/canon/mnote-canon-entry.c:61
+#: libexif/olympus/mnote-olympus-entry.c:72
+#: libexif/pentax/mnote-pentax-entry.c:61
+#, c-format
+msgid "Invalid number of components (%i, expected %i or %i)."
+msgstr "Invalid number of components (%i, expected %i or %i)."
+
+#: libexif/canon/mnote-canon-entry.c:76 libexif/canon/mnote-canon-entry.c:130
+#: libexif/canon/mnote-canon-entry.c:182 libexif/exif-entry.c:796
+#: libexif/olympus/mnote-olympus-entry.c:196
+#: libexif/olympus/mnote-olympus-tag.c:108
+#: libexif/pentax/mnote-pentax-entry.c:174
+#: libexif/pentax/mnote-pentax-entry.c:209
+#: libexif/pentax/mnote-pentax-entry.c:297
+msgid "Macro"
+msgstr "Macro"
+
+#: libexif/canon/mnote-canon-entry.c:77 libexif/canon/mnote-canon-entry.c:79
+#: libexif/canon/mnote-canon-entry.c:157 libexif/canon/mnote-canon-entry.c:160
+#: libexif/canon/mnote-canon-entry.c:163 libexif/exif-entry.c:674
+#: libexif/exif-entry.c:677 libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/exif-entry.c:745 libexif/fuji/mnote-fuji-entry.c:64
+#: libexif/olympus/mnote-olympus-entry.c:118
+#: libexif/olympus/mnote-olympus-entry.c:195
+#: libexif/olympus/mnote-olympus-entry.c:203
+#: libexif/olympus/mnote-olympus-entry.c:213
+#: libexif/olympus/mnote-olympus-entry.c:586
+#: libexif/pentax/mnote-pentax-entry.c:105
+#: libexif/pentax/mnote-pentax-entry.c:110
+#: libexif/pentax/mnote-pentax-entry.c:115
+#: libexif/pentax/mnote-pentax-entry.c:208
+msgid "Normal"
+msgstr "Normal"
+
+#: libexif/canon/mnote-canon-entry.c:78
+msgid "Economy"
+msgstr "Economy"
+
+#: libexif/canon/mnote-canon-entry.c:80
+msgid "Fine"
+msgstr "Fine"
+
+#: libexif/canon/mnote-canon-entry.c:81 libexif/fuji/mnote-fuji-entry.c:178
+#: libexif/pentax/mnote-pentax-entry.c:141
+msgid "RAW"
+msgstr "RAW"
+
+#: libexif/canon/mnote-canon-entry.c:82
+msgid "Superfine"
+msgstr "Superfine"
+
+#: libexif/canon/mnote-canon-entry.c:83 libexif/canon/mnote-canon-entry.c:301
+#: libexif/canon/mnote-canon-entry.c:304 libexif/canon/mnote-canon-entry.c:312
+#: libexif/canon/mnote-canon-entry.c:345 libexif/canon/mnote-canon-entry.c:357
+#: libexif/canon/mnote-canon-entry.c:370 libexif/canon/mnote-canon-entry.c:372
+#: libexif/canon/mnote-canon-entry.c:574 libexif/canon/mnote-canon-entry.c:671
+#: libexif/fuji/mnote-fuji-entry.c:70 libexif/fuji/mnote-fuji-entry.c:103
+#: libexif/fuji/mnote-fuji-entry.c:107 libexif/fuji/mnote-fuji-entry.c:115
+#: libexif/fuji/mnote-fuji-entry.c:142
+#: libexif/olympus/mnote-olympus-entry.c:178
+#: libexif/olympus/mnote-olympus-entry.c:186
+#: libexif/olympus/mnote-olympus-entry.c:251
+#: libexif/olympus/mnote-olympus-entry.c:530
+#: libexif/olympus/mnote-olympus-entry.c:547
+#: libexif/pentax/mnote-pentax-entry.c:195
+#: libexif/pentax/mnote-pentax-entry.c:260
+msgid "Off"
+msgstr "Off"
+
+#: libexif/canon/mnote-canon-entry.c:84 libexif/canon/mnote-canon-entry.c:167
+#: libexif/canon/mnote-canon-entry.c:180 libexif/canon/mnote-canon-entry.c:328
+#: libexif/canon/mnote-canon-entry.c:400 libexif/fuji/mnote-fuji-entry.c:73
+#: libexif/fuji/mnote-fuji-entry.c:101 libexif/fuji/mnote-fuji-entry.c:111
+#: libexif/fuji/mnote-fuji-entry.c:119
+#: libexif/olympus/mnote-olympus-entry.c:131
+#: libexif/olympus/mnote-olympus-entry.c:183
+#: libexif/olympus/mnote-olympus-entry.c:199
+#: libexif/olympus/mnote-olympus-entry.c:244
+#: libexif/pentax/mnote-pentax-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:88
+#: libexif/pentax/mnote-pentax-entry.c:91
+#: libexif/pentax/mnote-pentax-entry.c:97
+#: libexif/pentax/mnote-pentax-entry.c:131
+#: libexif/pentax/mnote-pentax-entry.c:229
+#: libexif/pentax/mnote-pentax-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:290
+msgid "Auto"
+msgstr "Auto"
+
+#: libexif/canon/mnote-canon-entry.c:85 libexif/canon/mnote-canon-entry.c:302
+#: libexif/canon/mnote-canon-entry.c:347 libexif/canon/mnote-canon-entry.c:361
+#: libexif/canon/mnote-canon-entry.c:371 libexif/fuji/mnote-fuji-entry.c:102
+#: libexif/fuji/mnote-fuji-entry.c:108 libexif/fuji/mnote-fuji-entry.c:116
+#: libexif/fuji/mnote-fuji-entry.c:143
+#: libexif/olympus/mnote-olympus-entry.c:179
+#: libexif/olympus/mnote-olympus-entry.c:533
+#: libexif/olympus/mnote-olympus-entry.c:550
+#: libexif/pentax/mnote-pentax-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:261
+msgid "On"
+msgstr "On"
+
+#: libexif/canon/mnote-canon-entry.c:86 libexif/fuji/mnote-fuji-entry.c:104
+#: libexif/olympus/mnote-olympus-entry.c:184
+#: libexif/pentax/mnote-pentax-entry.c:94
+msgid "Red-eye reduction"
+msgstr "Red-eye reduction"
+
+#: libexif/canon/mnote-canon-entry.c:87
+msgid "Slow synchro"
+msgstr "Slow synchro"
+
+#: libexif/canon/mnote-canon-entry.c:88
+#, fuzzy
+msgid "Auto, red-eye reduction"
+msgstr "Auto + Red-eye reduction"
+
+#: libexif/canon/mnote-canon-entry.c:89
+#: libexif/pentax/mnote-pentax-entry.c:200
+#, fuzzy
+msgid "On, red-eye reduction"
+msgstr "On, Red-eye reduction"
+
+#: libexif/canon/mnote-canon-entry.c:90
+msgid "External flash"
+msgstr "External flash"
+
+#: libexif/canon/mnote-canon-entry.c:91 libexif/canon/mnote-canon-entry.c:101
+#: libexif/canon/mnote-canon-entry.c:294
+msgid "Single"
+msgstr "Single"
+
+#: libexif/canon/mnote-canon-entry.c:92 libexif/canon/mnote-canon-entry.c:102
+#: libexif/canon/mnote-canon-entry.c:295
+msgid "Continuous"
+msgstr "Continuous"
+
+#: libexif/canon/mnote-canon-entry.c:93
+msgid "Movie"
+msgstr "Film"
+
+#: libexif/canon/mnote-canon-entry.c:94
+msgid "Continuous, speed priority"
+msgstr "Continuous, speed priority"
+
+#: libexif/canon/mnote-canon-entry.c:95
+msgid "Continuous, low"
+msgstr "Continuous, low"
+
+#: libexif/canon/mnote-canon-entry.c:96
+msgid "Continuous, high"
+msgstr "Continuous, high"
+
+#: libexif/canon/mnote-canon-entry.c:97
+msgid "One-shot AF"
+msgstr "One-shot AF"
+
+#: libexif/canon/mnote-canon-entry.c:98
+msgid "AI servo AF"
+msgstr "AI servo AF"
+
+#: libexif/canon/mnote-canon-entry.c:99
+msgid "AI focus AF"
+msgstr "AI focus AF"
+
+#: libexif/canon/mnote-canon-entry.c:100 libexif/canon/mnote-canon-entry.c:103
+msgid "Manual focus"
+msgstr "Manual focus"
+
+#: libexif/canon/mnote-canon-entry.c:104 libexif/canon/mnote-canon-entry.c:132
+#: libexif/canon/mnote-canon-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:212
+msgid "Pan focus"
+msgstr "Pan focus"
+
+#: libexif/canon/mnote-canon-entry.c:105
+msgid "JPEG"
+msgstr "JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:106
+msgid "CRW+THM"
+msgstr "CRW+THM"
+
+#: libexif/canon/mnote-canon-entry.c:107
+msgid "AVI+THM"
+msgstr "AVI+THM"
+
+#: libexif/canon/mnote-canon-entry.c:108
+msgid "TIF"
+msgstr "TIF"
+
+#: libexif/canon/mnote-canon-entry.c:109
+msgid "TIF+JPEG"
+msgstr "TIF+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:110
+msgid "CR2"
+msgstr "CR2"
+
+#: libexif/canon/mnote-canon-entry.c:111
+msgid "CR2+JPEG"
+msgstr "CR2+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:112
+msgid "Large"
+msgstr "Large"
+
+#: libexif/canon/mnote-canon-entry.c:113
+msgid "Medium"
+msgstr "Medium"
+
+#: libexif/canon/mnote-canon-entry.c:114
+msgid "Small"
+msgstr "Small"
+
+#: libexif/canon/mnote-canon-entry.c:115
+msgid "Medium 1"
+msgstr "Medium 1"
+
+#: libexif/canon/mnote-canon-entry.c:116
+msgid "Medium 2"
+msgstr "Medium 2"
+
+#: libexif/canon/mnote-canon-entry.c:117
+msgid "Medium 3"
+msgstr "Medium 3"
+
+#: libexif/canon/mnote-canon-entry.c:118
+msgid "Postcard"
+msgstr "Postcard"
+
+#: libexif/canon/mnote-canon-entry.c:119
+msgid "Widescreen"
+msgstr "Widescreen"
+
+#: libexif/canon/mnote-canon-entry.c:120
+msgid "Full auto"
+msgstr "Full auto"
+
+#: libexif/canon/mnote-canon-entry.c:121 libexif/canon/mnote-canon-entry.c:179
+#: libexif/canon/mnote-canon-entry.c:201 libexif/canon/mnote-canon-entry.c:285
+#: libexif/canon/mnote-canon-entry.c:392 libexif/exif-entry.c:744
+#: libexif/fuji/mnote-fuji-entry.c:112
+#: libexif/olympus/mnote-olympus-entry.c:90
+#: libexif/olympus/mnote-olympus-entry.c:200
+#: libexif/pentax/mnote-pentax-entry.c:79
+#: libexif/pentax/mnote-pentax-entry.c:102
+#: libexif/pentax/mnote-pentax-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:165
+#: libexif/pentax/mnote-pentax-entry.c:211
+#: libexif/pentax/mnote-pentax-entry.c:250
+msgid "Manual"
+msgstr "Manual"
+
+#: libexif/canon/mnote-canon-entry.c:122 libexif/canon/mnote-canon-entry.c:430
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:755
+#: libexif/fuji/mnote-fuji-entry.c:121 libexif/pentax/mnote-pentax-entry.c:167
+#: libexif/pentax/mnote-pentax-entry.c:301
+msgid "Landscape"
+msgstr "Landscape"
+
+#: libexif/canon/mnote-canon-entry.c:123
+msgid "Fast shutter"
+msgstr "Fast shutter"
+
+#: libexif/canon/mnote-canon-entry.c:124
+msgid "Slow shutter"
+msgstr "Slow shutter"
+
+#: libexif/canon/mnote-canon-entry.c:125 libexif/fuji/mnote-fuji-entry.c:123
+#: libexif/olympus/mnote-olympus-entry.c:254
+msgid "Night"
+msgstr "Night"
+
+#: libexif/canon/mnote-canon-entry.c:126
+msgid "Grayscale"
+msgstr "Greyscale"
+
+#: libexif/canon/mnote-canon-entry.c:127 libexif/canon/mnote-canon-entry.c:308
+#: libexif/pentax/mnote-pentax-entry.c:128
+msgid "Sepia"
+msgstr "Sepia"
+
+#: libexif/canon/mnote-canon-entry.c:128 libexif/canon/mnote-canon-entry.c:429
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:753
+#: libexif/fuji/mnote-fuji-entry.c:120 libexif/pentax/mnote-pentax-entry.c:166
+#: libexif/pentax/mnote-pentax-entry.c:291
+#: libexif/pentax/mnote-pentax-entry.c:294
+#: libexif/pentax/mnote-pentax-entry.c:300
+msgid "Portrait"
+msgstr "Portrait"
+
+#: libexif/canon/mnote-canon-entry.c:129 libexif/fuji/mnote-fuji-entry.c:122
+msgid "Sports"
+msgstr "Sports"
+
+#: libexif/canon/mnote-canon-entry.c:131 libexif/canon/mnote-canon-entry.c:309
+#: libexif/canon/mnote-canon-entry.c:335 libexif/canon/mnote-canon-entry.c:407
+#: libexif/fuji/mnote-fuji-entry.c:89 libexif/pentax/mnote-pentax-entry.c:127
+msgid "Black & white"
+msgstr "Black & white"
+
+#: libexif/canon/mnote-canon-entry.c:133 libexif/canon/mnote-canon-entry.c:305
+msgid "Vivid"
+msgstr "Vivid"
+
+#: libexif/canon/mnote-canon-entry.c:134 libexif/canon/mnote-canon-entry.c:306
+#: libexif/canon/mnote-canon-entry.c:431
+msgid "Neutral"
+msgstr "Neutral"
+
+#: libexif/canon/mnote-canon-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:93
+msgid "Flash off"
+msgstr "Flash off"
+
+#: libexif/canon/mnote-canon-entry.c:136
+msgid "Long shutter"
+msgstr "Long shutter"
+
+#: libexif/canon/mnote-canon-entry.c:137 libexif/canon/mnote-canon-entry.c:188
+#: libexif/olympus/mnote-olympus-entry.c:171
+msgid "Super macro"
+msgstr "Super macro"
+
+#: libexif/canon/mnote-canon-entry.c:138
+msgid "Foliage"
+msgstr "Foliage"
+
+#: libexif/canon/mnote-canon-entry.c:139
+msgid "Indoor"
+msgstr "Indoor"
+
+#: libexif/canon/mnote-canon-entry.c:140 libexif/fuji/mnote-fuji-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:175
+msgid "Fireworks"
+msgstr "Fireworks"
+
+#: libexif/canon/mnote-canon-entry.c:141 libexif/fuji/mnote-fuji-entry.c:133
+msgid "Beach"
+msgstr "Beach"
+
+#: libexif/canon/mnote-canon-entry.c:142 libexif/canon/mnote-canon-entry.c:344
+#: libexif/canon/mnote-canon-entry.c:416 libexif/fuji/mnote-fuji-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:292
+#: libexif/pentax/mnote-pentax-entry.c:298
+msgid "Underwater"
+msgstr "Underwater"
+
+#: libexif/canon/mnote-canon-entry.c:143 libexif/fuji/mnote-fuji-entry.c:134
+msgid "Snow"
+msgstr "Snow"
+
+#: libexif/canon/mnote-canon-entry.c:144
+msgid "Kids & pets"
+msgstr "Kids & pets"
+
+#: libexif/canon/mnote-canon-entry.c:145
+msgid "Night snapshot"
+msgstr "Night snapshot"
+
+#: libexif/canon/mnote-canon-entry.c:146
+msgid "Digital macro"
+msgstr "Digital macro"
+
+#: libexif/canon/mnote-canon-entry.c:147
+msgid "My colors"
+msgstr "My colours"
+
+#: libexif/canon/mnote-canon-entry.c:148
+msgid "Still image"
+msgstr "Still image"
+
+#: libexif/canon/mnote-canon-entry.c:149
+msgid "Color accent"
+msgstr "Colour accent"
+
+#: libexif/canon/mnote-canon-entry.c:150
+msgid "Color swap"
+msgstr "Colour swap"
+
+#: libexif/canon/mnote-canon-entry.c:151
+msgid "Aquarium"
+msgstr "Aquarium"
+
+#: libexif/canon/mnote-canon-entry.c:152
+msgid "ISO 3200"
+msgstr "ISO 3200"
+
+#: libexif/canon/mnote-canon-entry.c:153 libexif/canon/mnote-canon-entry.c:348
+#: libexif/canon/mnote-canon-entry.c:365 libexif/canon/mnote-canon-entry.c:417
+#: libexif/olympus/mnote-olympus-entry.c:189
+#: libexif/olympus/mnote-olympus-entry.c:226
+#: libexif/olympus/mnote-olympus-entry.c:451
+#: libexif/pentax/mnote-pentax-entry.c:242
+msgid "None"
+msgstr "None"
+
+#: libexif/canon/mnote-canon-entry.c:154
+msgid "2x"
+msgstr "2x"
+
+#: libexif/canon/mnote-canon-entry.c:155
+msgid "4x"
+msgstr "4x"
+
+#: libexif/canon/mnote-canon-entry.c:156 libexif/exif-entry.c:702
+#: libexif/exif-entry.c:732
+msgid "Other"
+msgstr "Other"
+
+#: libexif/canon/mnote-canon-entry.c:158 libexif/canon/mnote-canon-entry.c:161
+#: libexif/canon/mnote-canon-entry.c:164 libexif/canon/mnote-canon-entry.c:398
+#: libexif/fuji/mnote-fuji-entry.c:86 libexif/pentax/mnote-pentax-entry.c:112
+#: libexif/pentax/mnote-pentax-entry.c:117
+msgid "High"
+msgstr "High"
+
+#: libexif/canon/mnote-canon-entry.c:159 libexif/canon/mnote-canon-entry.c:162
+#: libexif/canon/mnote-canon-entry.c:165 libexif/canon/mnote-canon-entry.c:396
+#: libexif/pentax/mnote-pentax-entry.c:111
+#: libexif/pentax/mnote-pentax-entry.c:116
+msgid "Low"
+msgstr "Low"
+
+#: libexif/canon/mnote-canon-entry.c:166
+msgid "Auto high"
+msgstr "Auto high"
+
+#: libexif/canon/mnote-canon-entry.c:168
+msgid "50"
+msgstr "50"
+
+#: libexif/canon/mnote-canon-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:120
+#: libexif/pentax/mnote-pentax-entry.c:122
+msgid "100"
+msgstr "100"
+
+#: libexif/canon/mnote-canon-entry.c:170
+#: libexif/pentax/mnote-pentax-entry.c:121
+#: libexif/pentax/mnote-pentax-entry.c:123
+msgid "200"
+msgstr "200"
+
+#: libexif/canon/mnote-canon-entry.c:171
+msgid "400"
+msgstr "400"
+
+#: libexif/canon/mnote-canon-entry.c:172
+msgid "800"
+msgstr "800"
+
+#: libexif/canon/mnote-canon-entry.c:173
+msgid "Default"
+msgstr "Default"
+
+#: libexif/canon/mnote-canon-entry.c:174 libexif/exif-entry.c:698
+msgid "Spot"
+msgstr "Spot"
+
+#: libexif/canon/mnote-canon-entry.c:175 libexif/exif-entry.c:696
+msgid "Average"
+msgstr "Average"
+
+#: libexif/canon/mnote-canon-entry.c:176
+msgid "Evaluative"
+msgstr "Evaluative"
+
+#: libexif/canon/mnote-canon-entry.c:177 libexif/exif-entry.c:701
+msgid "Partial"
+msgstr "Partial"
+
+#: libexif/canon/mnote-canon-entry.c:178 libexif/exif-entry.c:697
+msgid "Center-weighted average"
+msgstr "Centre-weighted average"
+
+#: libexif/canon/mnote-canon-entry.c:181
+msgid "Not known"
+msgstr "Not known"
+
+#: libexif/canon/mnote-canon-entry.c:183
+msgid "Very close"
+msgstr "Very close"
+
+#: libexif/canon/mnote-canon-entry.c:184 libexif/exif-entry.c:797
+msgid "Close"
+msgstr "Close"
+
+#: libexif/canon/mnote-canon-entry.c:185
+msgid "Middle range"
+msgstr "Middle range"
+
+#: libexif/canon/mnote-canon-entry.c:186
+msgid "Far range"
+msgstr "Far range"
+
+#: libexif/canon/mnote-canon-entry.c:189
+#: libexif/pentax/mnote-pentax-entry.c:210
+msgid "Infinity"
+msgstr "Infinity"
+
+#: libexif/canon/mnote-canon-entry.c:190
+msgid "Manual AF point selection"
+msgstr "Manual AF point selection"
+
+#: libexif/canon/mnote-canon-entry.c:191 libexif/canon/mnote-canon-entry.c:349
+msgid "None (MF)"
+msgstr "None (MF)"
+
+#: libexif/canon/mnote-canon-entry.c:192
+msgid "Auto-selected"
+msgstr "Auto-selected"
+
+#: libexif/canon/mnote-canon-entry.c:193 libexif/canon/mnote-canon-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:224
+#: libexif/pentax/mnote-pentax-entry.c:238
+msgid "Right"
+msgstr "Right"
+
+#: libexif/canon/mnote-canon-entry.c:194 libexif/canon/mnote-canon-entry.c:351
+#: libexif/pentax/mnote-pentax-entry.c:222
+#: libexif/pentax/mnote-pentax-entry.c:237
+msgid "Center"
+msgstr "Centre"
+
+#: libexif/canon/mnote-canon-entry.c:195 libexif/canon/mnote-canon-entry.c:353
+#: libexif/pentax/mnote-pentax-entry.c:220
+#: libexif/pentax/mnote-pentax-entry.c:236
+msgid "Left"
+msgstr "Left"
+
+#: libexif/canon/mnote-canon-entry.c:196
+msgid "Auto AF point selection"
+msgstr "Auto AF point selection"
+
+#: libexif/canon/mnote-canon-entry.c:197
+msgid "Easy shooting"
+msgstr "Easy shooting"
+
+#: libexif/canon/mnote-canon-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:163
+msgid "Program"
+msgstr "Programme"
+
+#: libexif/canon/mnote-canon-entry.c:199
+msgid "Tv-priority"
+msgstr "Tv-priority"
+
+#: libexif/canon/mnote-canon-entry.c:200
+msgid "Av-priority"
+msgstr "Av-priority"
+
+#: libexif/canon/mnote-canon-entry.c:202
+msgid "A-DEP"
+msgstr "A-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:203
+msgid "M-DEP"
+msgstr "M-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:204
+msgid "Canon EF 50mm f/1.8"
+msgstr "Canon EF 50mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:205
+msgid "Canon EF 28mm f/2.8"
+msgstr "Canon EF 28mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:206
+msgid "Sigma UC Zoom 35-135mm f/4-5.6"
+msgstr "Sigma UC Zoom 35-135mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:207
+msgid "Tokina AF193-2 19-35mm f/3.5-4.5"
+msgstr "Tokina AF193-2 19-35mm f/3.5-4.5"
+
+#: libexif/canon/mnote-canon-entry.c:208
+msgid "Canon EF 100-300mm F5.6L"
+msgstr "Canon EF 100-300mm F5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:209
+msgid "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+msgstr "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:210
+msgid "Canon EF 35mm f/2"
+msgstr "Canon EF 35mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:211
+msgid "Canon EF 15mm f/2.8"
+msgstr "Canon EF 15mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:212
+msgid "Canon EF 80-200mm f/2.8L"
+msgstr "Canon EF 80-200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:213
+#, fuzzy
+msgid "Tokina AT-X280AF PRO 28-80mm F2.8 Aspherical"
+msgstr "Tokina AT-X280AF PRO 28-80mm F2.8 ASPHERICAL"
+
+#: libexif/canon/mnote-canon-entry.c:214
+msgid "Cosina 100mm f/3.5 Macro AF"
+msgstr "Cosina 100mm f/3.5 Macro AF"
+
+#: libexif/canon/mnote-canon-entry.c:215
+msgid "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+msgstr "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:216
+msgid "Canon EF 50mm f/1.8 MkII"
+msgstr "Canon EF 50mm f/1.8 MkII"
+
+#: libexif/canon/mnote-canon-entry.c:217
+msgid "Tamron SP AF 300mm f/2.8 LD IF"
+msgstr "Tamron SP AF 300mm f/2.8 LD IF"
+
+#: libexif/canon/mnote-canon-entry.c:218
+msgid "Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+msgstr "Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+
+#: libexif/canon/mnote-canon-entry.c:219
+msgid "Canon EF 75-300mm f/4-5.6"
+msgstr "Canon EF 75-300mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:220
+msgid "Canon EF 28-80mm f/3.5-5.6"
+msgstr "Canon EF 28-80mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:221
+msgid "Canon EF 28-105mm f/4-5.6"
+msgstr "Canon EF 28-105mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:222
+msgid "Canon EF-S 18-55mm f/3.5-5.6"
+msgstr "Canon EF-S 18-55mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:223
+msgid "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+msgstr "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+
+#: libexif/canon/mnote-canon-entry.c:224
+msgid "Canon TS-E 24mm f/3.5L"
+msgstr "Canon TS-E 24mm f/3.5L"
+
+#: libexif/canon/mnote-canon-entry.c:225
+msgid "Canon TS-E 45mm f/2.8"
+msgstr "Canon TS-E 45mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:226
+msgid "Canon TS-E 90mm f/2.8"
+msgstr "Canon TS-E 90mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:227
+msgid "Canon EF 50mm f/1.0L"
+msgstr "Canon EF 50mm f/1.0L"
+
+#: libexif/canon/mnote-canon-entry.c:228
+msgid "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+msgstr "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+
+#: libexif/canon/mnote-canon-entry.c:229
+msgid "Canon EF 600mm f/4L IS"
+msgstr "Canon EF 600mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:230
+msgid "Canon EF 200mm f/1.8L"
+msgstr "Canon EF 200mm f/1.8L"
+
+#: libexif/canon/mnote-canon-entry.c:231
+msgid "Canon EF 300mm f/2.8L"
+msgstr "Canon EF 300mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:232
+msgid "Canon EF 85mm f/1.2L"
+msgstr "Canon EF 85mm f/1.2L"
+
+#: libexif/canon/mnote-canon-entry.c:233
+msgid "Canon EF 400mm f/2.8L"
+msgstr "Canon EF 400mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:234
+msgid "Canon EF 500mm f/4.5L"
+msgstr "Canon EF 500mm f/4.5L"
+
+#: libexif/canon/mnote-canon-entry.c:235
+msgid "Canon EF 300mm f/2.8L IS"
+msgstr "Canon EF 300mm f/2.8L IS"
+
+#: libexif/canon/mnote-canon-entry.c:236
+msgid "Canon EF 500mm f/4L IS"
+msgstr "Canon EF 500mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:237
+msgid "Canon EF 100mm f/2"
+msgstr "Canon EF 100mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:238
+msgid "Sigma 20mm EX f/1.8"
+msgstr "Sigma 20mm EX f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:239
+msgid "Canon EF 200mm f/2.8L"
+msgstr "Canon EF 200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:240
+msgid "Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+msgstr "Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:241
+msgid "Canon EF 35-350mm f/3.5-5.6L"
+msgstr "Canon EF 35-350mm f/3.5-5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:242
+msgid "Canon EF 85mm f/1.8 USM"
+msgstr "Canon EF 85mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:243
+msgid "Canon EF 28-105mm f/3.5-4.5 USM"
+msgstr "Canon EF 28-105mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:244
+msgid "Canon EF 20-35mm f/3.5-4.5 USM"
+msgstr "Canon EF 20-35mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:245
+msgid "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+msgstr "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:246
+msgid "Canon EF 70-200mm f/2.8 L"
+msgstr "Canon EF 70-200mm f/2.8 L"
+
+#: libexif/canon/mnote-canon-entry.c:247
+msgid "Canon EF 70-200mm f/2.8 L + x1.4"
+msgstr "Canon EF 70-200mm f/2.8 L + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:248
+msgid "Canon EF 70-200mm f/2.8 L + x2"
+msgstr "Canon EF 70-200mm f/2.8 L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:249
+msgid "Canon EF 28mm f/1.8 USM"
+msgstr "Canon EF 28mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:250
+msgid "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+msgstr "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+
+#: libexif/canon/mnote-canon-entry.c:251
+msgid "Canon EF 200mm f/2.8L II"
+msgstr "Canon EF 200mm f/2.8L II"
+
+#: libexif/canon/mnote-canon-entry.c:252
+msgid "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+msgstr "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+
+#: libexif/canon/mnote-canon-entry.c:253
+msgid "Canon EF 135mm f/2L"
+msgstr "Canon EF 135mm f/2L"
+
+#: libexif/canon/mnote-canon-entry.c:254
+msgid "Canon EF 24-85mm f/3.5-4.5 USM"
+msgstr "Canon EF 24-85mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:255
+msgid "Canon EF 300mm f/4L IS"
+msgstr "Canon EF 300mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:256
+msgid "Canon EF 28-135mm f/3.5-5.6 IS"
+msgstr "Canon EF 28-135mm f/3.5-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:257
+msgid "Canon EF 35mm f/1.4L"
+msgstr "Canon EF 35mm f/1.4L"
+
+#: libexif/canon/mnote-canon-entry.c:258
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:259
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+
+#: libexif/canon/mnote-canon-entry.c:260
+msgid "Canon EF 100-400mm f/4.5-5.6L IS"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS"
+
+#: libexif/canon/mnote-canon-entry.c:261
+msgid "Canon EF 400mm f/2.8L + x2"
+msgstr "Canon EF 400mm f/2.8L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:262
+msgid "Canon EF 70-200mm f/4L"
+msgstr "Canon EF 70-200mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:263
+msgid "Canon EF 100mm f/2.8 Macro"
+msgstr "Canon EF 100mm f/2.8 Macro"
+
+#: libexif/canon/mnote-canon-entry.c:264
+msgid "Canon EF 400mm f/4 DO IS"
+msgstr "Canon EF 400mm f/4 DO IS"
+
+#: libexif/canon/mnote-canon-entry.c:265
+msgid "Canon EF 75-300mm f/4-5.6 IS"
+msgstr "Canon EF 75-300mm f/4-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:266
+msgid "Canon EF 50mm f/1.4"
+msgstr "Canon EF 50mm f/1.4"
+
+#: libexif/canon/mnote-canon-entry.c:267
+msgid "Canon EF 28-80 f/3.5-5.6 USM IV"
+msgstr "Canon EF 28-80 f/3.5-5.6 USM IV"
+
+#: libexif/canon/mnote-canon-entry.c:268
+msgid "Canon EF 28-200mm f/3.5-5.6"
+msgstr "Canon EF 28-200mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:269
+msgid "Canon EF 90-300mm f/4.5-5.6"
+msgstr "Canon EF 90-300mm f/4.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:270
+msgid "Canon EF-S 18-55mm f/3.5-4.5 USM"
+msgstr "Canon EF-S 18-55mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:271
+msgid "Canon EF 70-200mm f/2.8L IS USM"
+msgstr "Canon EF 70-200mm f/2.8L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:272
+msgid "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+msgstr "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:273
+msgid "Canon EF 70-200mm f/2.8L IS USM + x2"
+msgstr "Canon EF 70-200mm f/2.8L IS USM + x2"
+
+#: libexif/canon/mnote-canon-entry.c:274
+msgid "Canon EF 16-35mm f/2.8L"
+msgstr "Canon EF 16-35mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:275
+msgid "Canon EF 24-70mm f/2.8L"
+msgstr "Canon EF 24-70mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:276
+msgid "Canon EF 17-40mm f/4L"
+msgstr "Canon EF 17-40mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:277
+msgid "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+msgstr "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:278
+msgid "Canon EF-S 17-85mm f4-5.6 IS USM"
+msgstr "Canon EF-S 17-85mm f4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:279
+msgid "Canon EF-S10-22mm F3.5-4.5 USM"
+msgstr "Canon EF-S10-22mm F3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:280
+msgid "Canon EF-S60mm F2.8 Macro USM"
+msgstr "Canon EF-S60mm F2.8 Macro USM"
+
+#: libexif/canon/mnote-canon-entry.c:281
+msgid "Canon EF 24-105mm f/4L IS"
+msgstr "Canon EF 24-105mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:282
+msgid "Canon EF 70-300mm F4-5.6 IS USM"
+msgstr "Canon EF 70-300mm F4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:283
+msgid "Canon EF 50mm F1.2L USM"
+msgstr "Canon EF 50mm F1.2L USM"
+
+#: libexif/canon/mnote-canon-entry.c:284
+msgid "Canon EF 70-200mm f/4L IS USM"
+msgstr "Canon EF 70-200mm f/4L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:286
+msgid "TTL"
+msgstr "TTL"
+
+#: libexif/canon/mnote-canon-entry.c:287
+msgid "A-TTL"
+msgstr "A-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:288
+msgid "E-TTL"
+msgstr "E-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:289
+msgid "FP sync enabled"
+msgstr "FP sync enabled"
+
+#: libexif/canon/mnote-canon-entry.c:290
+msgid "2nd-curtain sync used"
+msgstr "2nd-curtain sync used"
+
+#: libexif/canon/mnote-canon-entry.c:291
+msgid "FP sync used"
+msgstr "FP sync used"
+
+#: libexif/canon/mnote-canon-entry.c:292
+#: libexif/olympus/mnote-olympus-entry.c:190
+msgid "Internal"
+msgstr "Internal"
+
+#: libexif/canon/mnote-canon-entry.c:293
+#: libexif/olympus/mnote-olympus-entry.c:191
+msgid "External"
+msgstr "External"
+
+#: libexif/canon/mnote-canon-entry.c:296
+msgid "Normal AE"
+msgstr "Normal AE"
+
+#: libexif/canon/mnote-canon-entry.c:297
+msgid "Exposure compensation"
+msgstr "Exposure compensation"
+
+#: libexif/canon/mnote-canon-entry.c:298
+msgid "AE lock"
+msgstr "AE lock"
+
+#: libexif/canon/mnote-canon-entry.c:299
+#, fuzzy
+msgid "AE lock + exposure compensation"
+msgstr "AE lock + Exposure compensation"
+
+#: libexif/canon/mnote-canon-entry.c:300
+msgid "No AE"
+msgstr "No AE"
+
+#: libexif/canon/mnote-canon-entry.c:303
+msgid "On, shot only"
+msgstr "On, shot only"
+
+#: libexif/canon/mnote-canon-entry.c:307
+msgid "Smooth"
+msgstr "Smooth"
+
+#: libexif/canon/mnote-canon-entry.c:310 libexif/canon/mnote-canon-entry.c:334
+#: libexif/canon/mnote-canon-entry.c:393 libexif/canon/mnote-canon-entry.c:406
+#: libexif/fuji/mnote-fuji-entry.c:81 libexif/pentax/mnote-pentax-entry.c:87
+msgid "Custom"
+msgstr "Custom"
+
+#: libexif/canon/mnote-canon-entry.c:311
+msgid "My color data"
+msgstr "My colour data"
+
+#: libexif/canon/mnote-canon-entry.c:313 libexif/canon/mnote-canon-entry.c:375
+#: libexif/pentax/mnote-pentax-entry.c:126
+#: libexif/pentax/mnote-pentax-entry.c:145
+msgid "Full"
+msgstr "Full"
+
+#: libexif/canon/mnote-canon-entry.c:314 libexif/canon/mnote-canon-entry.c:374
+msgid "2/3"
+msgstr "2/3"
+
+#: libexif/canon/mnote-canon-entry.c:315 libexif/canon/mnote-canon-entry.c:373
+msgid "1/3"
+msgstr "1/3"
+
+#: libexif/canon/mnote-canon-entry.c:321
+msgid "Fixed"
+msgstr "Fixed"
+
+#: libexif/canon/mnote-canon-entry.c:322 libexif/pentax/mnote-pentax-tag.c:44
+msgid "Zoom"
+msgstr "Zoom"
+
+#: libexif/canon/mnote-canon-entry.c:329
+msgid "Sunny"
+msgstr "Sunny"
+
+#: libexif/canon/mnote-canon-entry.c:330 libexif/canon/mnote-canon-entry.c:402
+#: libexif/exif-entry.c:719 libexif/fuji/mnote-fuji-entry.c:75
+#: libexif/olympus/mnote-olympus-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:255
+msgid "Cloudy"
+msgstr "Cloudy"
+
+#: libexif/canon/mnote-canon-entry.c:331 libexif/canon/mnote-canon-entry.c:403
+#: libexif/exif-entry.c:716 libexif/pentax/mnote-pentax-entry.c:100
+#: libexif/pentax/mnote-pentax-entry.c:249
+msgid "Tungsten"
+msgstr "Tungsten"
+
+#: libexif/canon/mnote-canon-entry.c:332 libexif/canon/mnote-canon-entry.c:404
+#: libexif/exif-entry.c:715 libexif/pentax/mnote-pentax-entry.c:101
+#: libexif/pentax/mnote-pentax-entry.c:248
+msgid "Fluorescent"
+msgstr "Fluorescent"
+
+#: libexif/canon/mnote-canon-entry.c:333 libexif/canon/mnote-canon-entry.c:405
+#: libexif/exif-entry.c:717 libexif/exif-entry.c:759 libexif/exif-tag.c:577
+#: libexif/fuji/mnote-fuji-entry.c:80 libexif/pentax/mnote-pentax-entry.c:254
+msgid "Flash"
+msgstr "Flash"
+
+#: libexif/canon/mnote-canon-entry.c:336 libexif/canon/mnote-canon-entry.c:408
+#: libexif/exif-entry.c:720 libexif/pentax/mnote-pentax-entry.c:99
+#: libexif/pentax/mnote-pentax-entry.c:247
+msgid "Shade"
+msgstr "Shade"
+
+#: libexif/canon/mnote-canon-entry.c:337 libexif/canon/mnote-canon-entry.c:409
+msgid "Manual temperature (Kelvin)"
+msgstr "Manual temperature (Kelvin)"
+
+#: libexif/canon/mnote-canon-entry.c:338 libexif/canon/mnote-canon-entry.c:410
+msgid "PC set 1"
+msgstr "PC set 1"
+
+#: libexif/canon/mnote-canon-entry.c:339 libexif/canon/mnote-canon-entry.c:411
+msgid "PC set 2"
+msgstr "PC set 2"
+
+#: libexif/canon/mnote-canon-entry.c:340 libexif/canon/mnote-canon-entry.c:412
+msgid "PC set 3"
+msgstr "PC set 3"
+
+#: libexif/canon/mnote-canon-entry.c:341 libexif/canon/mnote-canon-entry.c:413
+#: libexif/exif-entry.c:721 libexif/fuji/mnote-fuji-entry.c:76
+#: libexif/pentax/mnote-pentax-entry.c:251
+msgid "Daylight fluorescent"
+msgstr "Daylight fluorescent"
+
+#: libexif/canon/mnote-canon-entry.c:342 libexif/canon/mnote-canon-entry.c:414
+msgid "Custom 1"
+msgstr "Custom 1"
+
+#: libexif/canon/mnote-canon-entry.c:343 libexif/canon/mnote-canon-entry.c:415
+msgid "Custom 2"
+msgstr "Custom 2"
+
+#: libexif/canon/mnote-canon-entry.c:346 libexif/exif-entry.c:672
+#: libexif/pentax/mnote-pentax-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:132
+#: libexif/pentax/mnote-pentax-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:295
+msgid "Night scene"
+msgstr "Night scene"
+
+#: libexif/canon/mnote-canon-entry.c:352
+#, fuzzy
+msgid "Center-right"
+msgstr "Centre-Weight"
+
+#: libexif/canon/mnote-canon-entry.c:354
+#, fuzzy
+msgid "Left-right"
+msgstr "Left to right"
+
+#: libexif/canon/mnote-canon-entry.c:355
+#, fuzzy
+msgid "Left-center"
+msgstr "Left + Centre"
+
+#: libexif/canon/mnote-canon-entry.c:356
+msgid "All"
+msgstr "All"
+
+#: libexif/canon/mnote-canon-entry.c:358
+msgid "On (shot 1)"
+msgstr "On (shot 1)"
+
+#: libexif/canon/mnote-canon-entry.c:359
+msgid "On (shot 2)"
+msgstr "On (shot 2)"
+
+#: libexif/canon/mnote-canon-entry.c:360
+msgid "On (shot 3)"
+msgstr "On (shot 3)"
+
+#: libexif/canon/mnote-canon-entry.c:362
+msgid "EOS high-end"
+msgstr "EOS high-end"
+
+#: libexif/canon/mnote-canon-entry.c:363
+msgid "Compact"
+msgstr "Compact"
+
+#: libexif/canon/mnote-canon-entry.c:364
+msgid "EOS mid-range"
+msgstr "EOS mid-range"
+
+#: libexif/canon/mnote-canon-entry.c:366
+msgid "Rotate 90 CW"
+msgstr "Rotate 90 CW"
+
+#: libexif/canon/mnote-canon-entry.c:367
+msgid "Rotate 180"
+msgstr "Rotate 180"
+
+#: libexif/canon/mnote-canon-entry.c:368
+msgid "Rotate 270 CW"
+msgstr "Rotate 270 CW"
+
+#: libexif/canon/mnote-canon-entry.c:369
+msgid "Rotated by software"
+msgstr "Rotated by software"
+
+#: libexif/canon/mnote-canon-entry.c:381
+#: libexif/olympus/mnote-olympus-entry.c:606
+msgid "Left to right"
+msgstr "Left to right"
+
+#: libexif/canon/mnote-canon-entry.c:382
+#: libexif/olympus/mnote-olympus-entry.c:609
+msgid "Right to left"
+msgstr "Right to left"
+
+#: libexif/canon/mnote-canon-entry.c:383
+#: libexif/olympus/mnote-olympus-entry.c:612
+msgid "Bottom to top"
+msgstr "Bottom to top"
+
+#: libexif/canon/mnote-canon-entry.c:384
+#: libexif/olympus/mnote-olympus-entry.c:615
+msgid "Top to bottom"
+msgstr "Top to bottom"
+
+#: libexif/canon/mnote-canon-entry.c:385
+msgid "2x2 matrix (clockwise)"
+msgstr "2x2 matrix (clockwise)"
+
+#: libexif/canon/mnote-canon-entry.c:391 libexif/canon/mnote-canon-entry.c:397
+#: libexif/canon/mnote-canon-entry.c:418 libexif/canon/mnote-canon-entry.c:428
+#: libexif/exif-entry.c:671 libexif/fuji/mnote-fuji-entry.c:84
+#: libexif/fuji/mnote-fuji-entry.c:93 libexif/fuji/mnote-fuji-entry.c:163
+#: libexif/olympus/mnote-olympus-entry.c:227
+msgid "Standard"
+msgstr "Standard"
+
+#: libexif/canon/mnote-canon-entry.c:394
+msgid "N/A"
+msgstr "N/A"
+
+#: libexif/canon/mnote-canon-entry.c:395
+msgid "Lowest"
+msgstr "Lowest"
+
+#: libexif/canon/mnote-canon-entry.c:399
+msgid "Highest"
+msgstr "Highest"
+
+#: libexif/canon/mnote-canon-entry.c:401 libexif/exif-entry.c:714
+#: libexif/fuji/mnote-fuji-entry.c:74
+#: libexif/olympus/mnote-olympus-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:98
+#: libexif/pentax/mnote-pentax-entry.c:246
+msgid "Daylight"
+msgstr "Daylight"
+
+#: libexif/canon/mnote-canon-entry.c:419
+msgid "Set 1"
+msgstr "Set 1"
+
+#: libexif/canon/mnote-canon-entry.c:420
+msgid "Set 2"
+msgstr "Set 2"
+
+#: libexif/canon/mnote-canon-entry.c:421
+msgid "Set 3"
+msgstr "Set 3"
+
+#: libexif/canon/mnote-canon-entry.c:422
+#, fuzzy
+msgid "User def. 1"
+msgstr "User Def. 1"
+
+#: libexif/canon/mnote-canon-entry.c:423
+#, fuzzy
+msgid "User def. 2"
+msgstr "User Def. 2"
+
+#: libexif/canon/mnote-canon-entry.c:424
+#, fuzzy
+msgid "User def. 3"
+msgstr "User Def. 3"
+
+#: libexif/canon/mnote-canon-entry.c:425
+msgid "External 1"
+msgstr "External 1"
+
+#: libexif/canon/mnote-canon-entry.c:426
+msgid "External 2"
+msgstr "External 2"
+
+#: libexif/canon/mnote-canon-entry.c:427
+msgid "External 3"
+msgstr "External 3"
+
+#: libexif/canon/mnote-canon-entry.c:432
+msgid "Faithful"
+msgstr "Faithful"
+
+#: libexif/canon/mnote-canon-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:115
+msgid "Monochrome"
+msgstr "Monochrome"
+
+#: libexif/canon/mnote-canon-entry.c:491
+msgid ", "
+msgstr ", "
+
+#: libexif/canon/mnote-canon-entry.c:577 libexif/canon/mnote-canon-entry.c:674
+#, c-format
+msgid "%i (ms)"
+msgstr "%i (ms)"
+
+#: libexif/canon/mnote-canon-entry.c:621
+#, c-format
+msgid "%.2f mm"
+msgstr "%.2f mm"
+
+#: libexif/canon/mnote-canon-entry.c:645
+#, c-format
+msgid "%.2f EV"
+msgstr "%.2f EV"
+
+#: libexif/canon/mnote-canon-entry.c:655 libexif/exif-entry.c:1064
+#, c-format
+msgid "1/%i"
+msgstr "1/%i"
+
+#: libexif/canon/mnote-canon-entry.c:667
+#, c-format
+msgid "%u mm"
+msgstr "%u mm"
+
+#: libexif/canon/mnote-canon-tag.c:35
+msgid "Settings (First Part)"
+msgstr "Settings (First Part)"
+
+#: libexif/canon/mnote-canon-tag.c:36 libexif/canon/mnote-canon-tag.c:92
+#: libexif/exif-tag.c:581 libexif/pentax/mnote-pentax-tag.c:88
+msgid "Focal Length"
+msgstr "Focal Length"
+
+#: libexif/canon/mnote-canon-tag.c:37
+msgid "Settings (Second Part)"
+msgstr "Settings (Second Part)"
+
+#: libexif/canon/mnote-canon-tag.c:38
+#: libexif/olympus/mnote-olympus-entry.c:595
+#: libexif/pentax/mnote-pentax-entry.c:177
+msgid "Panorama"
+msgstr "Panorama"
+
+#: libexif/canon/mnote-canon-tag.c:39
+msgid "Image Type"
+msgstr "Image Type"
+
+#: libexif/canon/mnote-canon-tag.c:40 libexif/olympus/mnote-olympus-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:113
+msgid "Firmware Version"
+msgstr "Firmware Version"
+
+#: libexif/canon/mnote-canon-tag.c:41
+msgid "Image Number"
+msgstr "Image Number"
+
+#: libexif/canon/mnote-canon-tag.c:42
+msgid "Owner Name"
+msgstr "Owner Name"
+
+#: libexif/canon/mnote-canon-tag.c:43
+msgid "Color Information"
+msgstr "Colour Information"
+
+#: libexif/canon/mnote-canon-tag.c:44 libexif/fuji/mnote-fuji-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:81
+#: libexif/olympus/mnote-olympus-tag.c:146
+msgid "Serial Number"
+msgstr "Serial Number"
+
+#: libexif/canon/mnote-canon-tag.c:45
+msgid "Custom Functions"
+msgstr "Custom Functions"
+
+#: libexif/canon/mnote-canon-tag.c:56 libexif/fuji/mnote-fuji-tag.c:45
+msgid "Macro Mode"
+msgstr "Macro Mode"
+
+#: libexif/canon/mnote-canon-tag.c:57 libexif/canon/mnote-canon-tag.c:117
+#: libexif/olympus/mnote-olympus-tag.c:175
+#: libexif/pentax/mnote-pentax-tag.c:128
+msgid "Self-timer"
+msgstr "Self-timer"
+
+#: libexif/canon/mnote-canon-tag.c:58 libexif/fuji/mnote-fuji-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:94
+#: libexif/olympus/mnote-olympus-tag.c:107
+msgid "Quality"
+msgstr "Quality"
+
+#: libexif/canon/mnote-canon-tag.c:59 libexif/fuji/mnote-fuji-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:45
+#: libexif/olympus/mnote-olympus-tag.c:127
+#: libexif/pentax/mnote-pentax-tag.c:38 libexif/pentax/mnote-pentax-tag.c:73
+msgid "Flash Mode"
+msgstr "Flash Mode"
+
+#: libexif/canon/mnote-canon-tag.c:60 libexif/pentax/mnote-pentax-tag.c:101
+msgid "Drive Mode"
+msgstr "Drive Mode"
+
+#: libexif/canon/mnote-canon-tag.c:61 libexif/canon/mnote-canon-tag.c:82
+#: libexif/olympus/mnote-olympus-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:134
+#: libexif/olympus/mnote-olympus-tag.c:173
+#: libexif/pentax/mnote-pentax-tag.c:37 libexif/pentax/mnote-pentax-tag.c:74
+#: libexif/pentax/mnote-pentax-tag.c:130
+msgid "Focus Mode"
+msgstr "Focus Mode"
+
+#: libexif/canon/mnote-canon-tag.c:62 libexif/pentax/mnote-pentax-tag.c:127
+msgid "Record Mode"
+msgstr "Record Mode"
+
+#: libexif/canon/mnote-canon-tag.c:63 libexif/pentax/mnote-pentax-tag.c:71
+msgid "Image Size"
+msgstr "Image Size"
+
+#: libexif/canon/mnote-canon-tag.c:64
+msgid "Easy Shooting Mode"
+msgstr "Easy Shooting Mode"
+
+#: libexif/canon/mnote-canon-tag.c:65 libexif/olympus/mnote-olympus-tag.c:64
+#: libexif/olympus/mnote-olympus-tag.c:101
+#: libexif/olympus/mnote-olympus-tag.c:110
+#: libexif/olympus/mnote-olympus-tag.c:180
+#: libexif/pentax/mnote-pentax-tag.c:89
+msgid "Digital Zoom"
+msgstr "Digital Zoom"
+
+#: libexif/canon/mnote-canon-tag.c:66 libexif/exif-tag.c:828
+#: libexif/fuji/mnote-fuji-tag.c:42 libexif/pentax/mnote-pentax-tag.c:46
+#: libexif/pentax/mnote-pentax-tag.c:91
+msgid "Contrast"
+msgstr "Contrast"
+
+#: libexif/canon/mnote-canon-tag.c:67 libexif/exif-tag.c:832
+#: libexif/olympus/mnote-olympus-tag.c:75
+#: libexif/olympus/mnote-olympus-tag.c:87 libexif/pentax/mnote-pentax-tag.c:47
+#: libexif/pentax/mnote-pentax-tag.c:90
+msgid "Saturation"
+msgstr "Saturation"
+
+#: libexif/canon/mnote-canon-tag.c:68 libexif/exif-tag.c:836
+#: libexif/fuji/mnote-fuji-tag.c:39 libexif/pentax/mnote-pentax-tag.c:45
+#: libexif/pentax/mnote-pentax-tag.c:92
+msgid "Sharpness"
+msgstr "Sharpness"
+
+#: libexif/canon/mnote-canon-tag.c:69
+msgid "ISO"
+msgstr "ISO"
+
+#: libexif/canon/mnote-canon-tag.c:70 libexif/exif-tag.c:571
+#: libexif/pentax/mnote-pentax-tag.c:82
+msgid "Metering Mode"
+msgstr "Metering Mode"
+
+#: libexif/canon/mnote-canon-tag.c:71 libexif/olympus/mnote-olympus-tag.c:133
+msgid "Focus Range"
+msgstr "Focus Range"
+
+#: libexif/canon/mnote-canon-tag.c:72 libexif/canon/mnote-canon-tag.c:105
+msgid "AF Point"
+msgstr "AF Point"
+
+#: libexif/canon/mnote-canon-tag.c:73 libexif/exif-tag.c:795
+msgid "Exposure Mode"
+msgstr "Exposure Mode"
+
+#: libexif/canon/mnote-canon-tag.c:74 libexif/olympus/mnote-olympus-tag.c:61
+#: libexif/pentax/mnote-pentax-tag.c:106
+msgid "Lens Type"
+msgstr "Lens Type"
+
+#: libexif/canon/mnote-canon-tag.c:75
+msgid "Long Focal Length of Lens"
+msgstr "Long Focal Length of Lens"
+
+#: libexif/canon/mnote-canon-tag.c:76
+msgid "Short Focal Length of Lens"
+msgstr "Short Focal Length of Lens"
+
+#: libexif/canon/mnote-canon-tag.c:77
+msgid "Focal Units per mm"
+msgstr "Focal Units per mm"
+
+#: libexif/canon/mnote-canon-tag.c:78
+msgid "Maximal Aperture"
+msgstr "Maximal Aperture"
+
+#: libexif/canon/mnote-canon-tag.c:79
+msgid "Minimal Aperture"
+msgstr "Minimal Aperture"
+
+#: libexif/canon/mnote-canon-tag.c:80
+msgid "Flash Activity"
+msgstr "Flash Activity"
+
+#: libexif/canon/mnote-canon-tag.c:81
+msgid "Flash Details"
+msgstr "Flash Details"
+
+#: libexif/canon/mnote-canon-tag.c:83
+msgid "AE Setting"
+msgstr "AE Setting"
+
+#: libexif/canon/mnote-canon-tag.c:84
+msgid "Image Stabilization"
+msgstr "Image Stabilisation"
+
+#: libexif/canon/mnote-canon-tag.c:85
+msgid "Display Aperture"
+msgstr "Display Aperture"
+
+#: libexif/canon/mnote-canon-tag.c:86
+msgid "Zoom Source Width"
+msgstr "Zoom Source Width"
+
+#: libexif/canon/mnote-canon-tag.c:87
+msgid "Zoom Target Width"
+msgstr "Zoom Target Width"
+
+#: libexif/canon/mnote-canon-tag.c:88
+msgid "Photo Effect"
+msgstr "Photo Effect"
+
+#: libexif/canon/mnote-canon-tag.c:89 libexif/canon/mnote-canon-tag.c:118
+msgid "Manual Flash Output"
+msgstr "Manual Flash Output"
+
+#: libexif/canon/mnote-canon-tag.c:90
+msgid "Color Tone"
+msgstr "Colour Tone"
+
+#: libexif/canon/mnote-canon-tag.c:91
+msgid "Focal Type"
+msgstr "Focal Type"
+
+#: libexif/canon/mnote-canon-tag.c:93
+msgid "Focal Plane X Size"
+msgstr "Focal Plane X Size"
+
+#: libexif/canon/mnote-canon-tag.c:94
+msgid "Focal Plane Y Size"
+msgstr "Focal Plane Y Size"
+
+#: libexif/canon/mnote-canon-tag.c:95
+msgid "Auto ISO"
+msgstr "Auto ISO"
+
+#: libexif/canon/mnote-canon-tag.c:96
+msgid "Shot ISO"
+msgstr "Shot ISO"
+
+#: libexif/canon/mnote-canon-tag.c:97
+msgid "Measured EV"
+msgstr "Measured EV"
+
+#: libexif/canon/mnote-canon-tag.c:98
+msgid "Target Aperture"
+msgstr "Target Aperture"
+
+#: libexif/canon/mnote-canon-tag.c:99
+msgid "Target Exposure Time"
+msgstr "Target Exposure Time"
+
+#: libexif/canon/mnote-canon-tag.c:100 libexif/olympus/mnote-olympus-tag.c:129
+#: libexif/pentax/mnote-pentax-tag.c:81
+msgid "Exposure Compensation"
+msgstr "Exposure Compensation"
+
+#: libexif/canon/mnote-canon-tag.c:101 libexif/canon/mnote-canon-tag.c:123
+#: libexif/exif-tag.c:800 libexif/fuji/mnote-fuji-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:41
+#: libexif/olympus/mnote-olympus-tag.c:98 libexif/pentax/mnote-pentax-tag.c:41
+#: libexif/pentax/mnote-pentax-tag.c:84 libexif/pentax/mnote-pentax-tag.c:124
+msgid "White Balance"
+msgstr "White Balance"
+
+#: libexif/canon/mnote-canon-tag.c:102
+msgid "Slow Shutter"
+msgstr "Slow Shutter"
+
+#: libexif/canon/mnote-canon-tag.c:103
+msgid "Sequence Number"
+msgstr "Sequence Number"
+
+#: libexif/canon/mnote-canon-tag.c:104
+msgid "Flash Guide Number"
+msgstr "Flash Guide Number"
+
+#: libexif/canon/mnote-canon-tag.c:106 libexif/olympus/mnote-olympus-tag.c:52
+#: libexif/pentax/mnote-pentax-tag.c:109
+msgid "Flash Exposure Compensation"
+msgstr "Flash Exposure Compensation"
+
+#: libexif/canon/mnote-canon-tag.c:107
+msgid "AE Bracketing"
+msgstr "AE Bracketing"
+
+#: libexif/canon/mnote-canon-tag.c:108
+msgid "AE Bracket Value"
+msgstr "AE Bracket Value"
+
+#: libexif/canon/mnote-canon-tag.c:109
+msgid "Focus Distance Upper"
+msgstr "Focus Distance Upper"
+
+#: libexif/canon/mnote-canon-tag.c:110
+msgid "Focus Distance Lower"
+msgstr "Focus Distance Lower"
+
+#: libexif/canon/mnote-canon-tag.c:111
+msgid "FNumber"
+msgstr "FNumber"
+
+#: libexif/canon/mnote-canon-tag.c:112 libexif/exif-tag.c:466
+#: libexif/pentax/mnote-pentax-tag.c:78
+msgid "Exposure Time"
+msgstr "Exposure Time"
+
+#: libexif/canon/mnote-canon-tag.c:113
+msgid "Bulb Duration"
+msgstr "Bulb Duration"
+
+#: libexif/canon/mnote-canon-tag.c:114
+msgid "Camera Type"
+msgstr "Camera Type"
+
+#: libexif/canon/mnote-canon-tag.c:115
+msgid "Auto Rotate"
+msgstr "Auto Rotate"
+
+#: libexif/canon/mnote-canon-tag.c:116
+msgid "ND Filter"
+msgstr "ND Filter"
+
+#: libexif/canon/mnote-canon-tag.c:119
+msgid "Panorama Frame"
+msgstr "Panorama Frame"
+
+#: libexif/canon/mnote-canon-tag.c:120
+msgid "Panorama Direction"
+msgstr "Panorama Direction"
+
+#: libexif/canon/mnote-canon-tag.c:121
+msgid "Tone Curve"
+msgstr "Tone Curve"
+
+#: libexif/canon/mnote-canon-tag.c:122
+msgid "Sharpness Frequency"
+msgstr "Sharpness Frequency"
+
+#: libexif/canon/mnote-canon-tag.c:124
+msgid "Picture Style"
+msgstr "Picture Style"
+
+#: libexif/exif-byte-order.c:33
+msgid "Motorola"
+msgstr "Motorola"
+
+#: libexif/exif-byte-order.c:35
+msgid "Intel"
+msgstr "Intel"
+
+#: libexif/exif-data.c:780
+msgid "Size of data too small to allow for EXIF data."
+msgstr "Size of data too small to allow for EXIF data."
+
+#: libexif/exif-data.c:841
+msgid "EXIF marker not found."
+msgstr "EXIF marker not found."
+
+#: libexif/exif-data.c:868
+msgid "EXIF header not found."
+msgstr "EXIF header not found."
+
+#: libexif/exif-data.c:884
+msgid "Unknown encoding."
+msgstr "Unknown encoding."
+
+#: libexif/exif-data.c:1168
+msgid "Ignore unknown tags"
+msgstr "Ignore unknown tags"
+
+#: libexif/exif-data.c:1169
+msgid "Ignore unknown tags when loading EXIF data."
+msgstr "Ignore unknown tags when loading EXIF data."
+
+#: libexif/exif-data.c:1170
+msgid "Follow specification"
+msgstr "Follow specification"
+
+#: libexif/exif-data.c:1171
+msgid ""
+"Add, correct and remove entries to get EXIF data that follows the "
+"specification."
+msgstr ""
+"Add, correct and remove entries to get EXIF data that follows the "
+"specification."
+
+#: libexif/exif-data.c:1173
+msgid "Do not change maker note"
+msgstr "Do not change maker note"
+
+#: libexif/exif-data.c:1174
+msgid ""
+"When loading and resaving Exif data, save the maker note unmodified. Be "
+"aware that the maker note can get corrupted."
+msgstr ""
+"When loading and resaving Exif data, save the maker note unmodified. Be "
+"aware that the maker note can be corrupted."
+
+#: libexif/exif-entry.c:234 libexif/exif-entry.c:303 libexif/exif-entry.c:336
+#, c-format
+msgid ""
+"Tag '%s' was of format '%s' (which is against specification) and has been "
+"changed to format '%s'."
+msgstr ""
+"Tag '%s' was of format '%s' (which is against specification) and has been "
+"changed to format '%s'."
+
+#: libexif/exif-entry.c:271
+#, c-format
+msgid ""
+"Tag '%s' is of format '%s' (which is against specification) but cannot be "
+"changed to format '%s'."
+msgstr ""
+"Tag '%s' is of format '%s' (which is against specification) but cannot be "
+"changed to format '%s'."
+
+#: libexif/exif-entry.c:354
+#, c-format
+msgid ""
+"Tag 'UserComment' had invalid format '%s'. Format has been set to "
+"'undefined'."
+msgstr ""
+"Tag 'UserComment' had invalid format '%s'. Format has been set to "
+"'undefined'."
+
+#: libexif/exif-entry.c:381
+msgid ""
+"Tag 'UserComment' has been expanded to at least 8 bytes in order to follow "
+"the specification."
+msgstr ""
+"Tag 'UserComment' has been expanded to at least 8 bytes in order to follow "
+"the specification."
+
+#: libexif/exif-entry.c:396
+msgid ""
+"Tag 'UserComment' is not empty but does not start with a format identifier. "
+"This has been fixed."
+msgstr ""
+"Tag 'UserComment' is not empty but does not start with a format identifier. "
+"This has been fixed."
+
+#: libexif/exif-entry.c:424
+msgid ""
+"Tag 'UserComment' did not start with a format identifier. This has been "
+"fixed."
+msgstr ""
+"Tag 'UserComment' did not start with a format identifier. This has been "
+"fixed."
+
+#: libexif/exif-entry.c:462
+#, c-format
+msgid "%i bytes undefined data"
+msgstr "%i bytes undefined data"
+
+#: libexif/exif-entry.c:589
+#, c-format
+msgid "%i bytes unsupported data type"
+msgstr "%i bytes unsupported data type"
+
+#: libexif/exif-entry.c:622
+#, c-format
+msgid "The tag '%s' contains data of an invalid format ('%s', expected '%s')."
+msgstr "The tag '%s' contains data of an invalid format ('%s', expected '%s')."
+
+#: libexif/exif-entry.c:635
+#, c-format
+msgid ""
+"The tag '%s' contains an invalid number of components (%i, expected %i)."
+msgstr ""
+"The tag '%s' contains an invalid number of components (%i, expected %i)."
+
+#: libexif/exif-entry.c:649
+#, fuzzy
+msgid "Chunky format"
+msgstr "chunky format"
+
+#: libexif/exif-entry.c:649
+#, fuzzy
+msgid "Planar format"
+msgstr "planar format"
+
+#: libexif/exif-entry.c:651 libexif/exif-entry.c:743
+#: test/nls/test-codeset.c:54
+msgid "Not defined"
+msgstr "Not defined"
+
+#: libexif/exif-entry.c:651
+msgid "One-chip color area sensor"
+msgstr "One-chip colour area sensor"
+
+#: libexif/exif-entry.c:652
+msgid "Two-chip color area sensor"
+msgstr "Two-chip colour area sensor"
+
+#: libexif/exif-entry.c:652
+msgid "Three-chip color area sensor"
+msgstr "Three-chip colour area sensor"
+
+#: libexif/exif-entry.c:653
+msgid "Color sequential area sensor"
+msgstr "Colour sequential area sensor"
+
+#: libexif/exif-entry.c:653
+msgid "Trilinear sensor"
+msgstr "Trilinear sensor"
+
+#: libexif/exif-entry.c:654
+msgid "Color sequential linear sensor"
+msgstr "Colour sequential linear sensor"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:233
+msgid "Top-left"
+msgstr "Top-left"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:235
+msgid "Top-right"
+msgstr "Top-right"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:241
+msgid "Bottom-right"
+msgstr "Bottom-right"
+
+#: libexif/exif-entry.c:657 libexif/pentax/mnote-pentax-entry.c:239
+msgid "Bottom-left"
+msgstr "Bottom-left"
+
+#: libexif/exif-entry.c:657
+#, fuzzy
+msgid "Left-top"
+msgstr "left - top"
+
+#: libexif/exif-entry.c:657
+#, fuzzy
+msgid "Right-top"
+msgstr "right - top"
+
+#: libexif/exif-entry.c:658
+#, fuzzy
+msgid "Right-bottom"
+msgstr "right - bottom"
+
+#: libexif/exif-entry.c:658
+#, fuzzy
+msgid "Left-bottom"
+msgstr "left - bottom"
+
+#: libexif/exif-entry.c:660
+#, fuzzy
+msgid "Centered"
+msgstr "centred"
+
+#: libexif/exif-entry.c:660
+#, fuzzy
+msgid "Co-sited"
+msgstr "co-sited"
+
+#: libexif/exif-entry.c:662
+msgid "Reversed mono"
+msgstr "Reversed mono"
+
+#: libexif/exif-entry.c:662
+msgid "Normal mono"
+msgstr "Normal mono"
+
+#: libexif/exif-entry.c:662
+msgid "RGB"
+msgstr "RGB"
+
+#: libexif/exif-entry.c:662
+msgid "Palette"
+msgstr "Palette"
+
+#: libexif/exif-entry.c:663
+msgid "CMYK"
+msgstr "CMYK"
+
+#: libexif/exif-entry.c:663
+msgid "YCbCr"
+msgstr "YCbCr"
+
+#: libexif/exif-entry.c:663
+msgid "CieLAB"
+msgstr "CieLAB"
+
+#: libexif/exif-entry.c:665
+msgid "Normal process"
+msgstr "Normal process"
+
+#: libexif/exif-entry.c:665
+msgid "Custom process"
+msgstr "Custom process"
+
+#: libexif/exif-entry.c:667
+msgid "Auto exposure"
+msgstr "Auto exposure"
+
+#: libexif/exif-entry.c:667 libexif/fuji/mnote-fuji-entry.c:139
+msgid "Manual exposure"
+msgstr "Manual exposure"
+
+#: libexif/exif-entry.c:667
+msgid "Auto bracket"
+msgstr "Auto bracket"
+
+#: libexif/exif-entry.c:669
+msgid "Auto white balance"
+msgstr "Auto white balance"
+
+#: libexif/exif-entry.c:669
+msgid "Manual white balance"
+msgstr "Manual white balance"
+
+#: libexif/exif-entry.c:674
+msgid "Low gain up"
+msgstr "Low gain up"
+
+#: libexif/exif-entry.c:674
+msgid "High gain up"
+msgstr "High gain up"
+
+#: libexif/exif-entry.c:675
+msgid "Low gain down"
+msgstr "Low gain down"
+
+#: libexif/exif-entry.c:675
+msgid "High gain down"
+msgstr "High gain down"
+
+#: libexif/exif-entry.c:677
+msgid "Low saturation"
+msgstr "Low saturation"
+
+#: libexif/exif-entry.c:677 test/nls/test-codeset.c:48
+#: test/nls/test-codeset.c:61
+msgid "High saturation"
+msgstr "High saturation"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:63
+#: libexif/olympus/mnote-olympus-entry.c:205
+#: libexif/olympus/mnote-olympus-entry.c:214
+#: libexif/pentax/mnote-pentax-entry.c:106
+#: libexif/pentax/mnote-pentax-entry.c:170
+msgid "Soft"
+msgstr "Soft"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:65 libexif/fuji/mnote-fuji-entry.c:95
+#: libexif/olympus/mnote-olympus-entry.c:204
+#: libexif/olympus/mnote-olympus-entry.c:212
+#: libexif/pentax/mnote-pentax-entry.c:107
+msgid "Hard"
+msgstr "Hard"
+
+#: libexif/exif-entry.c:695 libexif/exif-entry.c:713 libexif/exif-entry.c:795
+#: libexif/olympus/mnote-olympus-entry.c:589
+#: libexif/olympus/mnote-olympus-entry.c:683
+#: libexif/olympus/mnote-olympus-entry.c:738
+#: libexif/pentax/mnote-pentax-entry.c:256
+msgid "Unknown"
+msgstr "Unknown"
+
+#: libexif/exif-entry.c:696
+#, fuzzy
+msgid "Avg"
+msgstr "avg"
+
+#: libexif/exif-entry.c:697
+#, fuzzy
+msgid "Center-weight"
+msgstr "Centre-Weight"
+
+#: libexif/exif-entry.c:699
+#, fuzzy
+msgid "Multi spot"
+msgstr "Multi Spot"
+
+#: libexif/exif-entry.c:700
+msgid "Pattern"
+msgstr "Pattern"
+
+#: libexif/exif-entry.c:705
+msgid "Uncompressed"
+msgstr "Uncompressed"
+
+#: libexif/exif-entry.c:706
+msgid "LZW compression"
+msgstr "LZW compression"
+
+#: libexif/exif-entry.c:707 libexif/exif-entry.c:708
+msgid "JPEG compression"
+msgstr "JPEG compression"
+
+#: libexif/exif-entry.c:709
+msgid "Deflate/ZIP compression"
+msgstr "Deflate/ZIP compression"
+
+#: libexif/exif-entry.c:710
+msgid "PackBits compression"
+msgstr "PackBits compression"
+
+#: libexif/exif-entry.c:716
+msgid "Tungsten incandescent light"
+msgstr "Tungsten incandescent light"
+
+#: libexif/exif-entry.c:718
+msgid "Fine weather"
+msgstr "Fine weather"
+
+#: libexif/exif-entry.c:719
+msgid "Cloudy weather"
+msgstr "Cloudy weather"
+
+#: libexif/exif-entry.c:722 libexif/fuji/mnote-fuji-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:252
+msgid "Day white fluorescent"
+msgstr "Day white fluorescent"
+
+#: libexif/exif-entry.c:723
+msgid "Cool white fluorescent"
+msgstr "Cool white fluorescent"
+
+#: libexif/exif-entry.c:724 libexif/fuji/mnote-fuji-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:253
+msgid "White fluorescent"
+msgstr "White fluorescent"
+
+#: libexif/exif-entry.c:725
+msgid "Standard light A"
+msgstr "Standard light A"
+
+#: libexif/exif-entry.c:726
+msgid "Standard light B"
+msgstr "Standard light B"
+
+#: libexif/exif-entry.c:727
+msgid "Standard light C"
+msgstr "Standard light C"
+
+#: libexif/exif-entry.c:728
+msgid "D55"
+msgstr "D55"
+
+#: libexif/exif-entry.c:729
+msgid "D65"
+msgstr "D65"
+
+#: libexif/exif-entry.c:730
+msgid "D75"
+msgstr "D75"
+
+#: libexif/exif-entry.c:731
+msgid "ISO studio tungsten"
+msgstr "ISO studio tungsten"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "Inch"
+msgstr "Inch"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "in"
+msgstr "in"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "Centimeter"
+msgstr "Centimetre"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "cm"
+msgstr "cm"
+
+#: libexif/exif-entry.c:745
+msgid "Normal program"
+msgstr "Normal programme"
+
+#: libexif/exif-entry.c:746
+msgid "Aperture priority"
+msgstr "Aperture priority"
+
+#: libexif/exif-entry.c:746 libexif/exif-tag.c:550
+msgid "Aperture"
+msgstr "Aperture"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter priority"
+msgstr "Shutter priority"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter"
+msgstr "Shutter"
+
+#: libexif/exif-entry.c:748
+msgid "Creative program (biased toward depth of field)"
+msgstr "Creative programme (biased towards depth of field)"
+
+#: libexif/exif-entry.c:749
+msgid "Creative"
+msgstr "Creative"
+
+#: libexif/exif-entry.c:750
+msgid "Creative program (biased toward fast shutter speed)"
+msgstr "Creative programme (biased towards fast shutter speed)"
+
+#: libexif/exif-entry.c:751
+msgid "Action"
+msgstr "Action"
+
+#: libexif/exif-entry.c:752
+msgid "Portrait mode (for closeup photos with the background out of focus)"
+msgstr "Portrait mode (for closeup photos with the background out of focus)"
+
+#: libexif/exif-entry.c:754
+msgid "Landscape mode (for landscape photos with the background in focus)"
+msgstr "Landscape mode (for landscape photos with the background in focus)"
+
+#: libexif/exif-entry.c:758 libexif/exif-entry.c:763
+#: libexif/olympus/mnote-olympus-entry.c:97
+msgid "Flash did not fire"
+msgstr "Flash did not fire"
+
+#: libexif/exif-entry.c:758
+#, fuzzy
+msgid "No flash"
+msgstr "no flash"
+
+#: libexif/exif-entry.c:759
+msgid "Flash fired"
+msgstr "Flash fired"
+
+#: libexif/exif-entry.c:759 libexif/olympus/mnote-olympus-entry.c:170
+#: libexif/olympus/mnote-olympus-entry.c:175
+#: libexif/olympus/mnote-olympus-entry.c:209
+#: libexif/olympus/mnote-olympus-entry.c:218
+#: libexif/olympus/mnote-olympus-entry.c:241
+msgid "Yes"
+msgstr "Yes"
+
+#: libexif/exif-entry.c:760
+msgid "Strobe return light not detected"
+msgstr "Strobe return light not detected"
+
+#: libexif/exif-entry.c:760
+#, fuzzy
+msgid "Without strobe"
+msgstr "W/o strobe"
+
+#: libexif/exif-entry.c:762
+msgid "Strobe return light detected"
+msgstr "Strobe return light detected"
+
+#: libexif/exif-entry.c:762
+#, fuzzy
+msgid "With strobe"
+msgstr "W. strobe"
+
+#: libexif/exif-entry.c:764
+msgid "Flash fired, compulsory flash mode"
+msgstr "Flash fired, compulsory flash mode"
+
+#: libexif/exif-entry.c:765
+msgid "Flash fired, compulsory flash mode, return light not detected"
+msgstr "Flash fired, compulsory flash mode, return light not detected"
+
+#: libexif/exif-entry.c:767
+msgid "Flash fired, compulsory flash mode, return light detected"
+msgstr "Flash fired, compulsory flash mode, return light detected"
+
+#: libexif/exif-entry.c:769
+msgid "Flash did not fire, compulsory flash mode"
+msgstr "Flash did not fire, compulsory flash mode"
+
+#: libexif/exif-entry.c:770
+msgid "Flash did not fire, auto mode"
+msgstr "Flash did not fire, auto mode"
+
+#: libexif/exif-entry.c:771
+msgid "Flash fired, auto mode"
+msgstr "Flash fired, auto mode"
+
+#: libexif/exif-entry.c:772
+msgid "Flash fired, auto mode, return light not detected"
+msgstr "Flash fired, auto mode, return light not detected"
+
+#: libexif/exif-entry.c:774
+msgid "Flash fired, auto mode, return light detected"
+msgstr "Flash fired, auto mode, return light detected"
+
+#: libexif/exif-entry.c:775
+msgid "No flash function"
+msgstr "No flash function"
+
+#: libexif/exif-entry.c:776
+msgid "Flash fired, red-eye reduction mode"
+msgstr "Flash fired, red-eye reduction mode"
+
+#: libexif/exif-entry.c:777
+msgid "Flash fired, red-eye reduction mode, return light not detected"
+msgstr "Flash fired, red-eye reduction mode, return light not detected"
+
+#: libexif/exif-entry.c:779
+msgid "Flash fired, red-eye reduction mode, return light detected"
+msgstr "Flash fired, red-eye reduction mode, return light detected"
+
+#: libexif/exif-entry.c:781
+msgid "Flash fired, compulsory flash mode, red-eye reduction mode"
+msgstr "Flash fired, compulsory flash mode, red-eye reduction mode"
+
+#: libexif/exif-entry.c:783
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light not "
+"detected"
+msgstr ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light not "
+"detected"
+
+#: libexif/exif-entry.c:785
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light "
+"detected"
+msgstr ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light "
+"detected"
+
+#: libexif/exif-entry.c:787
+msgid "Flash did not fire, auto mode, red-eye reduction mode"
+msgstr "Flash did not fire, auto mode, red-eye reduction mode"
+
+#: libexif/exif-entry.c:788
+msgid "Flash fired, auto mode, red-eye reduction mode"
+msgstr "Flash fired, auto mode, red-eye reduction mode"
+
+#: libexif/exif-entry.c:789
+msgid ""
+"Flash fired, auto mode, return light not detected, red-eye reduction mode"
+msgstr ""
+"Flash fired, auto mode, return light not detected, red-eye reduction mode"
+
+#: libexif/exif-entry.c:791
+msgid "Flash fired, auto mode, return light detected, red-eye reduction mode"
+msgstr "Flash fired, auto mode, return light detected, red-eye reduction mode"
+
+#: libexif/exif-entry.c:795
+msgid "?"
+msgstr "?"
+
+#: libexif/exif-entry.c:797
+msgid "Close view"
+msgstr "Close view"
+
+#: libexif/exif-entry.c:798
+msgid "Distant view"
+msgstr "Distant view"
+
+#: libexif/exif-entry.c:798
+msgid "Distant"
+msgstr "Distant"
+
+#: libexif/exif-entry.c:801
+msgid "sRGB"
+msgstr "sRGB"
+
+#: libexif/exif-entry.c:802
+msgid "Adobe RGB"
+msgstr "Adobe RGB"
+
+#: libexif/exif-entry.c:803
+msgid "Uncalibrated"
+msgstr "Uncalibrated"
+
+#: libexif/exif-entry.c:857
+#, c-format
+msgid "Invalid size of entry (%i, expected %li x %i)."
+msgstr "Invalid size of entry (%i, expected %li x %i)."
+
+#: libexif/exif-entry.c:890
+msgid "Unsupported UNICODE string"
+msgstr "Unsupported UNICODE string"
+
+#: libexif/exif-entry.c:898
+msgid "Unsupported JIS string"
+msgstr "Unsupported JIS string"
+
+#: libexif/exif-entry.c:914
+msgid "Tag UserComment does not comply with standard but contains data."
+msgstr "Tag UserComment does not comply with standard but contains data."
+
+#: libexif/exif-entry.c:918
+#, c-format
+msgid "Byte at position %i: 0x%02x"
+msgstr "Byte at position %i: 0x%02x"
+
+#: libexif/exif-entry.c:927
+msgid "Unknown Exif Version"
+msgstr "Unknown Exif Version"
+
+#: libexif/exif-entry.c:931
+#, c-format
+msgid "Exif Version %d.%d"
+msgstr "Exif Version %d.%d"
+
+#: libexif/exif-entry.c:942
+msgid "FlashPix Version 1.0"
+msgstr "FlashPix Version 1.0"
+
+#: libexif/exif-entry.c:944
+msgid "FlashPix Version 1.01"
+msgstr "FlashPix Version 1.01"
+
+#: libexif/exif-entry.c:946
+msgid "Unknown FlashPix Version"
+msgstr "Unknown FlashPix Version"
+
+#: libexif/exif-entry.c:959 libexif/exif-entry.c:972 libexif/exif-entry.c:1628
+#: libexif/exif-entry.c:1633 libexif/exif-entry.c:1637
+#: libexif/exif-entry.c:1642 libexif/exif-entry.c:1643
+msgid "[None]"
+msgstr "[None]"
+
+#: libexif/exif-entry.c:961
+msgid "(Photographer)"
+msgstr "(Photographer)"
+
+#: libexif/exif-entry.c:975
+msgid "(Editor)"
+msgstr "(Editor)"
+
+#: libexif/exif-entry.c:999 libexif/exif-entry.c:1079
+#: libexif/exif-entry.c:1096 libexif/exif-entry.c:1140
+#, c-format
+msgid "%.02f EV"
+msgstr "%.02f EV"
+
+#: libexif/exif-entry.c:1000
+#, c-format
+msgid " (f/%.01f)"
+msgstr " (f/%.01f)"
+
+#: libexif/exif-entry.c:1034
+#, c-format
+msgid " (35 equivalent: %d mm)"
+msgstr " (35 equivalent: %d mm)"
+
+#: libexif/exif-entry.c:1067 libexif/exif-entry.c:1068
+msgid " sec."
+msgstr " sec."
+
+#: libexif/exif-entry.c:1082
+#, c-format
+msgid " (1/%d sec.)"
+msgstr " (1/%d sec.)"
+
+#: libexif/exif-entry.c:1084
+#, c-format
+msgid " (%d sec.)"
+msgstr " (%d sec.)"
+
+#: libexif/exif-entry.c:1097
+#, c-format
+msgid " (%.02f cd/m^2)"
+msgstr " (%.02f cd/m^2)"
+
+#: libexif/exif-entry.c:1107
+msgid "DSC"
+msgstr "DSC"
+
+#: libexif/exif-entry.c:1109 libexif/exif-entry.c:1149
+#: libexif/exif-entry.c:1236 libexif/exif-entry.c:1287
+#: libexif/exif-entry.c:1296 libexif/exif-entry.c:1332
+#: libexif/fuji/mnote-fuji-entry.c:236 libexif/fuji/mnote-fuji-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:359
+#, c-format
+msgid "Internal error (unknown value %i)"
+msgstr "Internal error (unknown value %i)"
+
+#: libexif/exif-entry.c:1117
+msgid "-"
+msgstr "-"
+
+#: libexif/exif-entry.c:1118
+msgid "Y"
+msgstr "Y"
+
+#: libexif/exif-entry.c:1119
+msgid "Cb"
+msgstr "Cb"
+
+#: libexif/exif-entry.c:1120
+msgid "Cr"
+msgstr "Cr"
+
+#: libexif/exif-entry.c:1121
+msgid "R"
+msgstr "R"
+
+#: libexif/exif-entry.c:1122
+msgid "G"
+msgstr "G"
+
+#: libexif/exif-entry.c:1123
+msgid "B"
+msgstr "B"
+
+#: libexif/exif-entry.c:1124
+#, fuzzy
+msgid "Reserved"
+msgstr "reserved"
+
+#: libexif/exif-entry.c:1147
+msgid "Directly photographed"
+msgstr "Directly photographed"
+
+#: libexif/exif-entry.c:1160
+msgid "YCbCr4:2:2"
+msgstr "YCbCr4:2:2"
+
+#: libexif/exif-entry.c:1162
+msgid "YCbCr4:2:0"
+msgstr "YCbCr4:2:0"
+
+#: libexif/exif-entry.c:1179
+#, c-format
+msgid "Within distance %i of (x,y) = (%i,%i)"
+msgstr "Within distance %i of (x,y) = (%i,%i)"
+
+#: libexif/exif-entry.c:1188
+#, c-format
+msgid "Within rectangle (width %i, height %i) around (x,y) = (%i,%i)"
+msgstr "Within rectangle (width %i, height %i) around (x,y) = (%i,%i)"
+
+#: libexif/exif-entry.c:1194
+#, c-format
+msgid "Unexpected number of components (%li, expected 2, 3, or 4)."
+msgstr "Unexpected number of components (%li, expected 2, 3, or 4)."
+
+#: libexif/exif-entry.c:1232
+msgid "Sea level"
+msgstr "Sea level"
+
+#: libexif/exif-entry.c:1234
+msgid "Sea level reference"
+msgstr "Sea level reference"
+
+#: libexif/exif-entry.c:1342
+#, c-format
+msgid "Unknown value %i"
+msgstr "Unknown value %i"
+
+#: libexif/exif-format.c:37
+msgid "Short"
+msgstr "Short"
+
+#: libexif/exif-format.c:38
+msgid "Rational"
+msgstr "Rational"
+
+#: libexif/exif-format.c:39
+msgid "SRational"
+msgstr "SRational"
+
+#: libexif/exif-format.c:40
+msgid "Undefined"
+msgstr "Undefined"
+
+#: libexif/exif-format.c:41
+msgid "ASCII"
+msgstr "ASCII"
+
+#: libexif/exif-format.c:42
+msgid "Long"
+msgstr "Long"
+
+#: libexif/exif-format.c:43
+msgid "Byte"
+msgstr "Byte"
+
+#: libexif/exif-format.c:44
+msgid "SByte"
+msgstr "SByte"
+
+#: libexif/exif-format.c:45
+msgid "SShort"
+msgstr "SShort"
+
+#: libexif/exif-format.c:46
+msgid "SLong"
+msgstr "SLong"
+
+#: libexif/exif-format.c:47
+msgid "Float"
+msgstr "Float"
+
+#: libexif/exif-format.c:48
+msgid "Double"
+msgstr "Double"
+
+#: libexif/exif-loader.c:119
+#, c-format
+msgid "The file '%s' could not be opened."
+msgstr "The file '%s' could not be opened."
+
+#: libexif/exif-loader.c:300
+msgid "The data supplied does not seem to contain EXIF data."
+msgstr "The data supplied does not seem to contain EXIF data."
+
+#: libexif/exif-log.c:43
+msgid "Debugging information"
+msgstr "Debugging information"
+
+#: libexif/exif-log.c:44
+msgid "Debugging information is available."
+msgstr "Debugging information is available."
+
+#: libexif/exif-log.c:45
+msgid "Not enough memory"
+msgstr "Not enough memory"
+
+#: libexif/exif-log.c:46
+msgid "The system cannot provide enough memory."
+msgstr "The system cannot provide enough memory."
+
+#: libexif/exif-log.c:47
+msgid "Corrupt data"
+msgstr "Corrupt data"
+
+#: libexif/exif-log.c:48
+msgid "The data provided does not follow the specification."
+msgstr "The data provided does not follow the specification."
+
+#: libexif/exif-tag.c:62
+#, fuzzy
+msgid "GPS Tag Version"
+msgstr "GPS tag version"
+
+#: libexif/exif-tag.c:63
+msgid ""
+"Indicates the version of <GPSInfoIFD>. The version is given as 2.0.0.0. This "
+"tag is mandatory when <GPSInfo> tag is present. (Note: The <GPSVersionID> "
+"tag is given in bytes, unlike the <ExifVersion> tag. When the version is "
+"2.0.0.0, the tag value is 02000000.H)."
+msgstr ""
+"Indicates the version of <GPSInfoIFD>. The version is given as 2.0.0.0. This "
+"tag is mandatory when <GPSInfo> tag is present. (Note: The <GPSVersionID> "
+"tag is given in bytes, unlike the <ExifVersion> tag. When the version is "
+"2.0.0.0, the tag value is 02000000.H)."
+
+#: libexif/exif-tag.c:69
+msgid "Interoperability Index"
+msgstr "Interoperability Index"
+
+#: libexif/exif-tag.c:70
+msgid ""
+"Indicates the identification of the Interoperability rule. Use \"R98\" for "
+"stating ExifR98 Rules. Four bytes used including the termination code "
+"(NULL). see the separate volume of Recommended Exif Interoperability Rules "
+"(ExifR98) for other tags used for ExifR98."
+msgstr ""
+"Indicates the identification of the Interoperability rule. Use \"R98\" for "
+"stating ExifR98 Rules. Four bytes used including the termination code "
+"(NULL). see the separate volume of Recommended Exif Interoperability Rules "
+"(ExifR98) for other tags used for ExifR98."
+
+#: libexif/exif-tag.c:76
+msgid "North or South Latitude"
+msgstr "North or South Latitude"
+
+#: libexif/exif-tag.c:77
+msgid ""
+"Indicates whether the latitude is north or south latitude. The ASCII value "
+"'N' indicates north latitude, and 'S' is south latitude."
+msgstr ""
+"Indicates whether the latitude is north or south latitude. The ASCII value "
+"'N' indicates north latitude, and 'S' is south latitude."
+
+#: libexif/exif-tag.c:81
+msgid "Interoperability Version"
+msgstr "Interoperability Version"
+
+#: libexif/exif-tag.c:83
+msgid "Latitude"
+msgstr "Latitude"
+
+#: libexif/exif-tag.c:84
+msgid ""
+"Indicates the latitude. The latitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is dd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is dd/1,mmmm/100,0/1."
+msgstr ""
+"Indicates the latitude. The latitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is dd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is dd/1,mmmm/100,0/1."
+
+#: libexif/exif-tag.c:91
+msgid "East or West Longitude"
+msgstr "East or West Longitude"
+
+#: libexif/exif-tag.c:92
+msgid ""
+"Indicates whether the longitude is east or west longitude. ASCII 'E' "
+"indicates east longitude, and 'W' is west longitude."
+msgstr ""
+"Indicates whether the longitude is east or west longitude. ASCII 'E' "
+"indicates east longitude, and 'W' is west longitude."
+
+#: libexif/exif-tag.c:95
+msgid "Longitude"
+msgstr "Longitude"
+
+#: libexif/exif-tag.c:96
+msgid ""
+"Indicates the longitude. The longitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is ddd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is ddd/1,mmmm/100,0/1."
+msgstr ""
+"Indicates the longitude. The longitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is ddd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is ddd/1,mmmm/100,0/1."
+
+#: libexif/exif-tag.c:103
+#, fuzzy
+msgid "Altitude Reference"
+msgstr "Altitude reference"
+
+#: libexif/exif-tag.c:104
+msgid ""
+"Indicates the altitude used as the reference altitude. If the reference is "
+"sea level and the altitude is above sea level, 0 is given. If the altitude "
+"is below sea level, a value of 1 is given and the altitude is indicated as "
+"an absolute value in the GSPAltitude tag. The reference unit is meters. Note "
+"that this tag is BYTE type, unlike other reference tags."
+msgstr ""
+"Indicates the altitude used as the reference altitude. If the reference is "
+"sea level and the altitude is above sea level, 0 is given. If the altitude "
+"is below sea level, a value of 1 is given and the altitude is indicated as "
+"an absolute value in the GSPAltitude tag. The reference unit is metres. Note "
+"that this tag is BYTE type, unlike other reference tags."
+
+#: libexif/exif-tag.c:110
+msgid "Altitude"
+msgstr "Altitude"
+
+#: libexif/exif-tag.c:111
+msgid ""
+"Indicates the altitude based on the reference in GPSAltitudeRef. Altitude is "
+"expressed as one RATIONAL value. The reference unit is meters."
+msgstr ""
+"Indicates the altitude based on the reference in GPSAltitudeRef. Altitude is "
+"expressed as one RATIONAL value. The reference unit is metres."
+
+#: libexif/exif-tag.c:114
+#, fuzzy
+msgid "GPS Time (Atomic Clock)"
+msgstr "GPS time (atomic clock)"
+
+#: libexif/exif-tag.c:115
+msgid ""
+"Indicates the time as UTC (Coordinated Universal Time). TimeStamp is "
+"expressed as three RATIONAL values giving the hour, minute, and second."
+msgstr ""
+"Indicates the time as UTC (Coordinated Universal Time). TimeStamp is "
+"expressed as three RATIONAL values giving the hour, minute, and second."
+
+#: libexif/exif-tag.c:118
+#, fuzzy
+msgid "GPS Satellites"
+msgstr "GPS date"
+
+#: libexif/exif-tag.c:119
+msgid ""
+"Indicates the GPS satellites used for measurements. This tag can be used to "
+"describe the number of satellites, their ID number, angle of elevation, "
+"azimuth, SNR and other information in ASCII notation. The format is not "
+"specified. If the GPS receiver is incapable of taking measurements, value of "
+"the tag shall be set to NULL."
+msgstr ""
+"Indicates the GPS satellites used for measurements. This tag can be used to "
+"describe the number of satellites, their ID number, angle of elevation, "
+"azimuth, SNR and other information in ASCII notation. The format is not "
+"specified. If the GPS receiver is incapable of taking measurements, value of "
+"the tag shall be set to NULL."
+
+#: libexif/exif-tag.c:125
+#, fuzzy
+msgid "GPS Receiver Status"
+msgstr "GPS receiver status"
+
+#: libexif/exif-tag.c:126
+msgid ""
+"Indicates the status of the GPS receiver when the image is recorded. 'A' "
+"means measurement is in progress, and 'V' means the measurement is "
+"Interoperability."
+msgstr ""
+"Indicates the status of the GPS receiver when the image is recorded. 'A' "
+"means measurement is in progress, and 'V' means the measurement is "
+"Interoperability."
+
+#: libexif/exif-tag.c:129
+#, fuzzy
+msgid "GPS Measurement Mode"
+msgstr "GPS measurement mode"
+
+#: libexif/exif-tag.c:130
+msgid ""
+"Indicates the GPS measurement mode. '2' means two-dimensional measurement "
+"and '3' means three-dimensional measurement is in progress."
+msgstr ""
+"Indicates the GPS measurement mode. '2' means two-dimensional measurement "
+"and '3' means three-dimensional measurement is in progress."
+
+#: libexif/exif-tag.c:133
+#, fuzzy
+msgid "Measurement Precision"
+msgstr "Measurement precision"
+
+#: libexif/exif-tag.c:134
+msgid ""
+"Indicates the GPS DOP (data degree of precision). An HDOP value is written "
+"during two-dimensional measurement, and PDOP during three-dimensional "
+"measurement."
+msgstr ""
+"Indicates the GPS DOP (data degree of precision). An HDOP value is written "
+"during two-dimensional measurement, and PDOP during three-dimensional "
+"measurement."
+
+#: libexif/exif-tag.c:137
+#, fuzzy
+msgid "Speed Unit"
+msgstr "Speed unit"
+
+#: libexif/exif-tag.c:138
+msgid ""
+"Indicates the unit used to express the GPS receiver speed of movement. 'K', "
+"'M' and 'N' represent kilometers per hour, miles per hour, and knots."
+msgstr ""
+"Indicates the unit used to express the GPS receiver speed of movement. 'K', "
+"'M' and 'N' represent kilometers per hour, miles per hour, and knots."
+
+#: libexif/exif-tag.c:141
+#, fuzzy
+msgid "Speed of GPS Receiver"
+msgstr "Speed of GPS receiver"
+
+#: libexif/exif-tag.c:142
+msgid "Indicates the speed of GPS receiver movement."
+msgstr "Indicates the speed of GPS receiver movement."
+
+#: libexif/exif-tag.c:143
+msgid "Reference for direction of movement"
+msgstr "Reference for direction of movement"
+
+#: libexif/exif-tag.c:144
+msgid ""
+"Indicates the reference for giving the direction of GPS receiver movement. "
+"'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+"Indicates the reference for giving the direction of GPS receiver movement. "
+"'T' denotes true direction and 'M' is magnetic direction."
+
+#: libexif/exif-tag.c:147
+#, fuzzy
+msgid "Direction of Movement"
+msgstr "Direction of movement"
+
+#: libexif/exif-tag.c:148
+msgid ""
+"Indicates the direction of GPS receiver movement. The range of values is "
+"from 0.00 to 359.99."
+msgstr ""
+"Indicates the direction of GPS receiver movement. The range of values is "
+"from 0.00 to 359.99."
+
+#: libexif/exif-tag.c:150
+#, fuzzy
+msgid "GPS Image Direction Reference"
+msgstr "GPS Img Direction Reference"
+
+#: libexif/exif-tag.c:151
+msgid ""
+"Indicates the reference for giving the direction of the image when it is "
+"captured. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+"Indicates the reference for giving the direction of the image when it is "
+"captured. 'T' denotes true direction and 'M' is magnetic direction."
+
+#: libexif/exif-tag.c:153
+#, fuzzy
+msgid "GPS Image Direction"
+msgstr "GPS Img Direction"
+
+#: libexif/exif-tag.c:154
+msgid ""
+"Indicates the direction of the image when it was captured. The range of "
+"values is from 0.00 to 359.99."
+msgstr ""
+"Indicates the direction of the image when it was captured. The range of "
+"values is from 0.00 to 359.99."
+
+#: libexif/exif-tag.c:156
+#, fuzzy
+msgid "Geodetic Survey Data Used"
+msgstr "Geodetic survey data used"
+
+#: libexif/exif-tag.c:157
+msgid ""
+"Indicates the geodetic survey data used by the GPS receiver. If the survey "
+"data is restricted to Japan, the value of this tag is 'TOKYO' or 'WGS-84'. "
+"If a GPS Info tag is recorded, it is strongly recommended that this tag be "
+"recorded."
+msgstr ""
+"Indicates the geodetic survey data used by the GPS receiver. If the survey "
+"data is restricted to Japan, the value of this tag is 'TOKYO' or 'WGS-84'. "
+"If a GPS Info tag is recorded, it is strongly recommended that this tag be "
+"recorded."
+
+#: libexif/exif-tag.c:161
+#, fuzzy
+msgid "Reference For Latitude of Destination"
+msgstr "Reference for latitude of destination"
+
+#: libexif/exif-tag.c:162
+msgid ""
+"Indicates whether the latitude of the destination point is north or south "
+"latitude. The ASCII value 'N' indicates north latitude, and 'S' is south "
+"latitude."
+msgstr ""
+"Indicates whether the latitude of the destination point is north or south "
+"latitude. The ASCII value 'N' indicates north latitude, and 'S' is south "
+"latitude."
+
+#: libexif/exif-tag.c:165
+#, fuzzy
+msgid "Latitude of Destination"
+msgstr "Latitude of destination"
+
+#: libexif/exif-tag.c:166
+msgid ""
+"Indicates the latitude of the destination point. The latitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If latitude is expressed as degrees, minutes and seconds, a "
+"typical format would be dd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be dd/1,mmmm/100,0/1."
+msgstr ""
+"Indicates the latitude of the destination point. The latitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If latitude is expressed as degrees, minutes and seconds, a "
+"typical format would be dd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be dd/1,mmmm/100,0/1."
+
+#: libexif/exif-tag.c:173
+#, fuzzy
+msgid "Reference for Longitude of Destination"
+msgstr "Reference for longitude of destination"
+
+#: libexif/exif-tag.c:174
+msgid ""
+"Indicates whether the longitude of the destination point is east or west "
+"longitude. ASCII 'E' indicates east longitude, and 'W' is west longitude."
+msgstr ""
+"Indicates whether the longitude of the destination point is east or west "
+"longitude. ASCII 'E' indicates east longitude, and 'W' is west longitude."
+
+#: libexif/exif-tag.c:177
+#, fuzzy
+msgid "Longitude of Destination"
+msgstr "Longitude of destination"
+
+#: libexif/exif-tag.c:178
+msgid ""
+"Indicates the longitude of the destination point. The longitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If longitude is expressed as degrees, minutes and seconds, a "
+"typical format would be ddd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be ddd/1,mmmm/100,0/1."
+msgstr ""
+"Indicates the longitude of the destination point. The longitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If longitude is expressed as degrees, minutes and seconds, a "
+"typical format would be ddd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be ddd/1,mmmm/100,0/1."
+
+#: libexif/exif-tag.c:186
+#, fuzzy
+msgid "Reference for Bearing of Destination"
+msgstr "Reference for bearing of destination"
+
+#: libexif/exif-tag.c:187
+msgid ""
+"Indicates the reference used for giving the bearing to the destination "
+"point. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+"Indicates the reference used for giving the bearing to the destination "
+"point. 'T' denotes true direction and 'M' is magnetic direction."
+
+#: libexif/exif-tag.c:190
+#, fuzzy
+msgid "Bearing of Destination"
+msgstr "Bearing of destination"
+
+#: libexif/exif-tag.c:191
+msgid ""
+"Indicates the bearing to the destination point. The range of values is from "
+"0.00 to 359.99."
+msgstr ""
+"Indicates the bearing to the destination point. The range of values is from "
+"0.00 to 359.99."
+
+#: libexif/exif-tag.c:193
+#, fuzzy
+msgid "Reference for Distance to Destination"
+msgstr "Reference for distance to destination"
+
+#: libexif/exif-tag.c:194
+msgid ""
+"Indicates the unit used to express the distance to the destination point. "
+"'K', 'M' and 'N' represent kilometers, miles and knots."
+msgstr ""
+"Indicates the unit used to express the distance to the destination point. "
+"'K', 'M' and 'N' represent kilometers, miles and knots."
+
+#: libexif/exif-tag.c:197
+#, fuzzy
+msgid "Distance to Destination"
+msgstr "Distance to destination"
+
+#: libexif/exif-tag.c:198
+msgid "Indicates the distance to the destination point."
+msgstr "Indicates the distance to the destination point."
+
+#: libexif/exif-tag.c:199
+#, fuzzy
+msgid "Name of GPS Processing Method"
+msgstr "Name of GPS processing method"
+
+#: libexif/exif-tag.c:200
+msgid ""
+"A character string recording the name of the method used for location "
+"finding. The first byte indicates the character code used, and this is "
+"followed by the name of the method. Since the Type is not ASCII, NULL "
+"termination is not necessary."
+msgstr ""
+"A character string recording the name of the method used for location "
+"finding. The first byte indicates the character code used, and this is "
+"followed by the name of the method. Since the Type is not ASCII, NULL "
+"termination is not necessary."
+
+#: libexif/exif-tag.c:205
+#, fuzzy
+msgid "Name of GPS Area"
+msgstr "Name of GPS area"
+
+#: libexif/exif-tag.c:206
+msgid ""
+"A character string recording the name of the GPS area. The first byte "
+"indicates the character code used, and this is followed by the name of the "
+"GPS area. Since the Type is not ASCII, NULL termination is not necessary."
+msgstr ""
+"A character string recording the name of the GPS area. The first byte "
+"indicates the character code used, and this is followed by the name of the "
+"GPS area. Since the Type is not ASCII, NULL termination is not necessary."
+
+#: libexif/exif-tag.c:210
+#, fuzzy
+msgid "GPS Date"
+msgstr "GPS date"
+
+#: libexif/exif-tag.c:211
+msgid ""
+"A character string recording date and time information relative to UTC "
+"(Coordinated Universal Time). The format is \"YYYY:MM:DD\". The length of "
+"the string is 11 bytes including NULL."
+msgstr ""
+"A character string recording date and time information relative to UTC "
+"(Coordinated Universal Time). The format is \"YYYY:MM:DD\". The length of "
+"the string is 11 bytes including NULL."
+
+#: libexif/exif-tag.c:215
+#, fuzzy
+msgid "GPS Differential Correction"
+msgstr "GPS differential correction"
+
+#: libexif/exif-tag.c:216
+msgid ""
+"Indicates whether differential correction is applied to the GPS receiver."
+msgstr ""
+"Indicates whether differential correction is applied to the GPS receiver."
+
+#: libexif/exif-tag.c:220
+msgid "New Subfile Type"
+msgstr "New Subfile Type"
+
+#: libexif/exif-tag.c:220
+msgid "A general indication of the kind of data contained in this subfile."
+msgstr "A general indication of the kind of data contained in this subfile."
+
+#: libexif/exif-tag.c:222
+msgid "Image Width"
+msgstr "Image Width"
+
+#: libexif/exif-tag.c:223
+msgid ""
+"The number of columns of image data, equal to the number of pixels per row. "
+"In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+"The number of columns of image data, equal to the number of pixels per row. "
+"In JPEG compressed data a JPEG marker is used instead of this tag."
+
+#: libexif/exif-tag.c:227
+msgid "Image Length"
+msgstr "Image Length"
+
+#: libexif/exif-tag.c:228
+msgid ""
+"The number of rows of image data. In JPEG compressed data a JPEG marker is "
+"used instead of this tag."
+msgstr ""
+"The number of rows of image data. In JPEG compressed data a JPEG marker is "
+"used instead of this tag."
+
+#: libexif/exif-tag.c:231
+msgid "Bits per Sample"
+msgstr "Bits per Sample"
+
+#: libexif/exif-tag.c:232
+msgid ""
+"The number of bits per image component. In this standard each component of "
+"the image is 8 bits, so the value for this tag is 8. See also "
+"<SamplesPerPixel>. In JPEG compressed data a JPEG marker is used instead of "
+"this tag."
+msgstr ""
+"The number of bits per image component. In this standard each component of "
+"the image is 8 bits, so the value for this tag is 8. See also "
+"<SamplesPerPixel>. In JPEG compressed data a JPEG marker is used instead of "
+"this tag."
+
+#: libexif/exif-tag.c:237
+msgid "Compression"
+msgstr "Compression"
+
+#: libexif/exif-tag.c:238
+msgid ""
+"The compression scheme used for the image data. When a primary image is JPEG "
+"compressed, this designation is not necessary and is omitted. When "
+"thumbnails use JPEG compression, this tag value is set to 6."
+msgstr ""
+"The compression scheme used for the image data. When a primary image is JPEG "
+"compressed, this designation is not necessary and is omitted. When "
+"thumbnails use JPEG compression, this tag value is set to 6."
+
+#: libexif/exif-tag.c:244
+msgid "Photometric Interpretation"
+msgstr "Photometric Interpretation"
+
+#: libexif/exif-tag.c:245
+msgid ""
+"The pixel composition. In JPEG compressed data a JPEG marker is used instead "
+"of this tag."
+msgstr ""
+"The pixel composition. In JPEG compressed data a JPEG marker is used instead "
+"of this tag."
+
+#: libexif/exif-tag.c:249
+msgid "Fill Order"
+msgstr "Fill Order"
+
+#: libexif/exif-tag.c:251
+msgid "Document Name"
+msgstr "Document Name"
+
+#: libexif/exif-tag.c:253
+msgid "Image Description"
+msgstr "Image Description"
+
+#: libexif/exif-tag.c:254
+msgid ""
+"A character string giving the title of the image. It may be a comment such "
+"as \"1988 company picnic\" or the like. Two-bytes character codes cannot be "
+"used. When a 2-bytes code is necessary, the Exif Private tag <UserComment> "
+"is to be used."
+msgstr ""
+"A character string giving the title of the image. It may be a comment such "
+"as \"1988 company picnic\" or the like. Two-bytes character codes cannot be "
+"used. When a 2-bytes code is necessary, the Exif Private tag <UserComment> "
+"is to be used."
+
+#: libexif/exif-tag.c:260
+msgid "Manufacturer"
+msgstr "Manufacturer"
+
+#: libexif/exif-tag.c:261
+msgid ""
+"The manufacturer of the recording equipment. This is the manufacturer of the "
+"DSC, scanner, video digitizer or other equipment that generated the image. "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+"The manufacturer of the recording equipment. This is the manufacturer of the "
+"DSC, scanner, video digitiser or other equipment that generated the image. "
+"When the field is left blank, it is treated as unknown."
+
+#: libexif/exif-tag.c:267
+msgid "Model"
+msgstr "Model"
+
+#: libexif/exif-tag.c:268
+msgid ""
+"The model name or model number of the equipment. This is the model name or "
+"number of the DSC, scanner, video digitizer or other equipment that "
+"generated the image. When the field is left blank, it is treated as unknown."
+msgstr ""
+"The model name or model number of the equipment. This is the model name or "
+"number of the DSC, scanner, video digitiser or other equipment that "
+"generated the image. When the field is left blank, it is treated as unknown."
+
+#: libexif/exif-tag.c:273
+msgid "Strip Offsets"
+msgstr "Strip Offsets"
+
+#: libexif/exif-tag.c:274
+msgid ""
+"For each strip, the byte offset of that strip. It is recommended that this "
+"be selected so the number of strip bytes does not exceed 64 Kbytes. With "
+"JPEG compressed data this designation is not needed and is omitted. See also "
+"<RowsPerStrip> and <StripByteCounts>."
+msgstr ""
+"For each strip, the byte offset of that strip. It is recommended that this "
+"be selected so the number of strip bytes does not exceed 64 Kbytes. With "
+"JPEG compressed data this designation is not needed and is omitted. See also "
+"<RowsPerStrip> and <StripByteCounts>."
+
+#: libexif/exif-tag.c:280
+msgid "Orientation"
+msgstr "Orientation"
+
+#: libexif/exif-tag.c:281
+msgid "The image orientation viewed in terms of rows and columns."
+msgstr "The image orientation viewed in terms of rows and columns."
+
+#: libexif/exif-tag.c:284
+msgid "Samples per Pixel"
+msgstr "Samples per Pixel"
+
+#: libexif/exif-tag.c:285
+msgid ""
+"The number of components per pixel. Since this standard applies to RGB and "
+"YCbCr images, the value set for this tag is 3. In JPEG compressed data a "
+"JPEG marker is used instead of this tag."
+msgstr ""
+"The number of components per pixel. Since this standard applies to RGB and "
+"YCbCr images, the value set for this tag is 3. In JPEG compressed data a "
+"JPEG marker is used instead of this tag."
+
+#: libexif/exif-tag.c:290
+msgid "Rows per Strip"
+msgstr "Rows per Strip"
+
+#: libexif/exif-tag.c:291
+msgid ""
+"The number of rows per strip. This is the number of rows in the image of one "
+"strip when an image is divided into strips. With JPEG compressed data this "
+"designation is not needed and is omitted. See also <StripOffsets> and "
+"<StripByteCounts>."
+msgstr ""
+"The number of rows per strip. This is the number of rows in the image of one "
+"strip when an image is divided into strips. With JPEG compressed data this "
+"designation is not needed and is omitted. See also <StripOffsets> and "
+"<StripByteCounts>."
+
+#: libexif/exif-tag.c:297
+msgid "Strip Byte Count"
+msgstr "Strip Byte Count"
+
+#: libexif/exif-tag.c:298
+msgid ""
+"The total number of bytes in each strip. With JPEG compressed data this "
+"designation is not needed and is omitted."
+msgstr ""
+"The total number of bytes in each strip. With JPEG compressed data this "
+"designation is not needed and is omitted."
+
+#: libexif/exif-tag.c:301
+#, fuzzy
+msgid "X-Resolution"
+msgstr "x-Resolution"
+
+#: libexif/exif-tag.c:302
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageWidth> direction. "
+"When the image resolution is unknown, 72 [dpi] is designated."
+msgstr ""
+"The number of pixels per <ResolutionUnit> in the <ImageWidth> direction. "
+"When the image resolution is unknown, 72 [dpi] is designated."
+
+#: libexif/exif-tag.c:306
+#, fuzzy
+msgid "Y-Resolution"
+msgstr "x-Resolution"
+
+#: libexif/exif-tag.c:307
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageLength> direction. "
+"The same value as <XResolution> is designated."
+msgstr ""
+"The number of pixels per <ResolutionUnit> in the <ImageLength> direction. "
+"The same value as <XResolution> is designated."
+
+#: libexif/exif-tag.c:311
+msgid "Planar Configuration"
+msgstr "Planar Configuration"
+
+#: libexif/exif-tag.c:312
+msgid ""
+"Indicates whether pixel components are recorded in a chunky or planar "
+"format. In JPEG compressed files a JPEG marker is used instead of this tag. "
+"If this field does not exist, the TIFF default of 1 (chunky) is assumed."
+msgstr ""
+"Indicates whether pixel components are recorded in a chunky or planar "
+"format. In JPEG compressed files a JPEG marker is used instead of this tag. "
+"If this field does not exist, the TIFF default of 1 (chunky) is assumed."
+
+#: libexif/exif-tag.c:317
+msgid "Resolution Unit"
+msgstr "Resolution Unit"
+
+#: libexif/exif-tag.c:318
+msgid ""
+"The unit for measuring <XResolution> and <YResolution>. The same unit is "
+"used for both <XResolution> and <YResolution>. If the image resolution is "
+"unknown, 2 (inches) is designated."
+msgstr ""
+"The unit for measuring <XResolution> and <YResolution>. The same unit is "
+"used for both <XResolution> and <YResolution>. If the image resolution is "
+"unknown, 2 (inches) is designated."
+
+#: libexif/exif-tag.c:323
+msgid "Transfer Function"
+msgstr "Transfer Function"
+
+#: libexif/exif-tag.c:324
+msgid ""
+"A transfer function for the image, described in tabular style. Normally this "
+"tag is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+"A transfer function for the image, described in tabular style. Normally this "
+"tag is not necessary, since colour space is specified in the colour space "
+"information tag (<ColorSpace>)."
+
+#: libexif/exif-tag.c:328
+msgid "Software"
+msgstr "Software"
+
+#: libexif/exif-tag.c:329
+msgid ""
+"This tag records the name and version of the software or firmware of the "
+"camera or image input device used to generate the image. The detailed format "
+"is not specified, but it is recommended that the example shown below be "
+"followed. When the field is left blank, it is treated as unknown."
+msgstr ""
+"This tag records the name and version of the software or firmware of the "
+"camera or image input device used to generate the image. The detailed format "
+"is not specified, but it is recommended that the example shown below be "
+"followed. When the field is left blank, it is treated as unknown."
+
+#: libexif/exif-tag.c:336
+msgid "Date and Time"
+msgstr "Date and Time"
+
+#: libexif/exif-tag.c:337
+msgid ""
+"The date and time of image creation. In this standard (EXIF-2.1) it is the "
+"date and time the file was changed."
+msgstr ""
+"The date and time of image creation. In this standard (EXIF-2.1) it is the "
+"date and time the file was changed."
+
+#: libexif/exif-tag.c:340
+msgid "Artist"
+msgstr "Artist"
+
+#: libexif/exif-tag.c:341
+msgid ""
+"This tag records the name of the camera owner, photographer or image "
+"creator. The detailed format is not specified, but it is recommended that "
+"the information be written as in the example below for ease of "
+"Interoperability. When the field is left blank, it is treated as unknown."
+msgstr ""
+"This tag records the name of the camera owner, photographer or image "
+"creator. The detailed format is not specified, but it is recommended that "
+"the information be written as in the example below for ease of "
+"Interoperability. When the field is left blank, it is treated as unknown."
+
+#: libexif/exif-tag.c:347 libexif/pentax/mnote-pentax-tag.c:113
+msgid "White Point"
+msgstr "White Point"
+
+#: libexif/exif-tag.c:348
+msgid ""
+"The chromaticity of the white point of the image. Normally this tag is not "
+"necessary, since color space is specified in the color space information tag "
+"(<ColorSpace>)."
+msgstr ""
+"The chromaticity of the white point of the image. Normally this tag is not "
+"necessary, since colour space is specified in the colour space information "
+"tag (<ColorSpace>)."
+
+#: libexif/exif-tag.c:353
+msgid "Primary Chromaticities"
+msgstr "Primary Chromaticities"
+
+#: libexif/exif-tag.c:354
+msgid ""
+"The chromaticity of the three primary colors of the image. Normally this tag "
+"is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+"The chromaticity of the three primary colours of the image. Normally this "
+"tag is not necessary, since colour space is specified in the colour space "
+"information tag (<ColorSpace>)."
+
+#: libexif/exif-tag.c:359
+msgid "Defined by Adobe Corporation to enable TIFF Trees within a TIFF file."
+msgstr "Defined by Adobe Corporation to enable TIFF Trees within a TIFF file."
+
+#: libexif/exif-tag.c:362
+msgid "Transfer Range"
+msgstr "Transfer Range"
+
+#: libexif/exif-tag.c:366
+msgid "JPEG Interchange Format"
+msgstr "JPEG Interchange Format"
+
+#: libexif/exif-tag.c:367
+msgid ""
+"The offset to the start byte (SOI) of JPEG compressed thumbnail data. This "
+"is not used for primary image JPEG data."
+msgstr ""
+"The offset to the start byte (SOI) of JPEG compressed thumbnail data. This "
+"is not used for primary image JPEG data."
+
+#: libexif/exif-tag.c:372
+msgid "JPEG Interchange Format Length"
+msgstr "JPEG Interchange Format Length"
+
+#: libexif/exif-tag.c:373
+msgid ""
+"The number of bytes of JPEG compressed thumbnail data. This is not used for "
+"primary image JPEG data. JPEG thumbnails are not divided but are recorded as "
+"a continuous JPEG bitstream from SOI to EOI. Appn and COM markers should not "
+"be recorded. Compressed thumbnails must be recorded in no more than 64 "
+"Kbytes, including all other data to be recorded in APP1."
+msgstr ""
+"The number of bytes of JPEG compressed thumbnail data. This is not used for "
+"primary image JPEG data. JPEG thumbnails are not divided but are recorded as "
+"a continuous JPEG bitstream from SOI to EOI. Appn and COM markers should not "
+"be recorded. Compressed thumbnails must be recorded in no more than 64 "
+"Kbytes, including all other data to be recorded in APP1."
+
+#: libexif/exif-tag.c:382
+msgid "YCbCr Coefficients"
+msgstr "YCbCr Coefficients"
+
+#: libexif/exif-tag.c:383
+msgid ""
+"The matrix coefficients for transformation from RGB to YCbCr image data. No "
+"default is given in TIFF; but here the value given in \"Color Space "
+"Guidelines\", is used as the default. The color space is declared in a color "
+"space information tag, with the default being the value that gives the "
+"optimal image characteristics Interoperability this condition."
+msgstr ""
+"The matrix coefficients for transformation from RGB to YCbCr image data. No "
+"default is given in TIFF; but here the value given in \"Colour Space "
+"Guidelines\", is used as the default. The colour space is declared in a "
+"colour space information tag, with the default being the value that gives "
+"the optimal image characteristics Interoperability this condition."
+
+#: libexif/exif-tag.c:392
+msgid "YCbCr Sub-Sampling"
+msgstr "YCbCr Sub-Sampling"
+
+#: libexif/exif-tag.c:393
+msgid ""
+"The sampling ratio of chrominance components in relation to the luminance "
+"component. In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+"The sampling ratio of chrominance components in relation to the luminance "
+"component. In JPEG compressed data a JPEG marker is used instead of this tag."
+
+#: libexif/exif-tag.c:398
+msgid "YCbCr Positioning"
+msgstr "YCbCr Positioning"
+
+#: libexif/exif-tag.c:399
+msgid ""
+"The position of chrominance components in relation to the luminance "
+"component. This field is designated only for JPEG compressed data or "
+"uncompressed YCbCr data. The TIFF default is 1 (centered); but when Y:Cb:Cr "
+"= 4:2:2 it is recommended in this standard that 2 (co-sited) be used to "
+"record data, in order to improve the image quality when viewed on TV "
+"systems. When this field does not exist, the reader shall assume the TIFF "
+"default. In the case of Y:Cb:Cr = 4:2:0, the TIFF default (centered) is "
+"recommended. If the reader does not have the capability of supporting both "
+"kinds of <YCbCrPositioning>, it shall follow the TIFF default regardless of "
+"the value in this field. It is preferable that readers be able to support "
+"both centered and co-sited positioning."
+msgstr ""
+"The position of chrominance components in relation to the luminance "
+"component. This field is designated only for JPEG compressed data or "
+"uncompressed YCbCr data. The TIFF default is 1 (centred); but when Y:Cb:Cr = "
+"4:2:2 it is recommended in this standard that 2 (co-sited) be used to record "
+"data, in order to improve the image quality when viewed on TV systems. When "
+"this field does not exist, the reader shall assume the TIFF default. In the "
+"case of Y:Cb:Cr = 4:2:0, the TIFF default (centred) is recommended. If the "
+"reader does not have the capability of supporting both kinds of "
+"<YCbCrPositioning>, it shall follow the TIFF default regardless of the value "
+"in this field. It is preferable that readers be able to support both centred "
+"and co-sited positioning."
+
+#: libexif/exif-tag.c:414
+msgid "Reference Black/White"
+msgstr "Reference Black/White"
+
+#: libexif/exif-tag.c:415
+msgid ""
+"The reference black point value and reference white point value. No defaults "
+"are given in TIFF, but the values below are given as defaults here. The "
+"color space is declared in a color space information tag, with the default "
+"being the value that gives the optimal image characteristics "
+"Interoperability these conditions."
+msgstr ""
+"The reference black point value and reference white point value. No defaults "
+"are given in TIFF, but the values below are given as defaults here. The "
+"colour space is declared in a colour space information tag, with the default "
+"being the value that gives the optimal image characteristics "
+"Interoperability these conditions."
+
+#: libexif/exif-tag.c:423
+msgid "XML Packet"
+msgstr "XML Packet"
+
+#: libexif/exif-tag.c:423
+msgid "XMP Metadata"
+msgstr "XMP Metadata"
+
+#: libexif/exif-tag.c:438 libexif/exif-tag.c:784
+msgid "CFA Pattern"
+msgstr "CFA Pattern"
+
+#: libexif/exif-tag.c:439 libexif/exif-tag.c:785
+msgid ""
+"Indicates the color filter array (CFA) geometric pattern of the image sensor "
+"when a one-chip color area sensor is used. It does not apply to all sensing "
+"methods."
+msgstr ""
+"Indicates the colour filter array (CFA) geometric pattern of the image "
+"sensor when a one-chip colour area sensor is used. It does not apply to all "
+"sensing methods."
+
+#: libexif/exif-tag.c:443
+msgid "Battery Level"
+msgstr "Battery Level"
+
+#: libexif/exif-tag.c:444
+msgid "Copyright"
+msgstr "Copyright"
+
+#: libexif/exif-tag.c:445
+msgid ""
+"Copyright information. In this standard the tag is used to indicate both the "
+"photographer and editor copyrights. It is the copyright notice of the person "
+"or organization claiming rights to the image. The Interoperability copyright "
+"statement including date and rights should be written in this field; e.g., "
+"\"Copyright, John Smith, 19xx. All rights reserved.\". In this standard the "
+"field records both the photographer and editor copyrights, with each "
+"recorded in a separate part of the statement. When there is a clear "
+"distinction between the photographer and editor copyrights, these are to be "
+"written in the order of photographer followed by editor copyright, separated "
+"by NULL (in this case, since the statement also ends with a NULL, there are "
+"two NULL codes) (see example 1). When only the photographer is given, it is "
+"terminated by one NULL code (see example 2). When only the editor copyright "
+"is given, the photographer copyright part consists of one space followed by "
+"a terminating NULL code, then the editor copyright is given (see example 3). "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+"Copyright information. In this standard the tag is used to indicate both the "
+"photographer and editor copyrights. It is the copyright notice of the person "
+"or organisation claiming rights to the image. The Interoperability copyright "
+"statement including date and rights should be written in this field; e.g., "
+"\"Copyright, John Smith, 19xx. All rights reserved.\". In this standard the "
+"field records both the photographer and editor copyrights, with each "
+"recorded in a separate part of the statement. When there is a clear "
+"distinction between the photographer and editor copyrights, these are to be "
+"written in the order of photographer followed by editor copyright, separated "
+"by NULL (in this case, since the statement also ends with a NULL, there are "
+"two NULL codes) (see example 1). When only the photographer is given, it is "
+"terminated by one NULL code (see example 2). When only the editor copyright "
+"is given, the photographer copyright part consists of one space followed by "
+"a terminating NULL code, then the editor copyright is given (see example 3). "
+"When the field is left blank, it is treated as unknown."
+
+#: libexif/exif-tag.c:467
+msgid "Exposure time, given in seconds (sec)."
+msgstr "Exposure time, given in seconds (sec)."
+
+#: libexif/exif-tag.c:469 libexif/pentax/mnote-pentax-tag.c:79
+msgid "F-Number"
+msgstr "F-Number"
+
+#: libexif/exif-tag.c:470
+msgid "The F number."
+msgstr "The F number."
+
+#: libexif/exif-tag.c:475
+msgid "Image Resources Block"
+msgstr "Image Resources Block"
+
+#: libexif/exif-tag.c:477
+msgid ""
+"A pointer to the Exif IFD. Interoperability, Exif IFD has the same structure "
+"as that of the IFD specified in TIFF. ordinarily, however, it does not "
+"contain image data as in the case of TIFF."
+msgstr ""
+"A pointer to the Exif IFD. Interoperability, Exif IFD has the same structure "
+"as that of the IFD specified in TIFF. ordinarily, however, it does not "
+"contain image data as in the case of TIFF."
+
+#: libexif/exif-tag.c:485
+msgid "Exposure Program"
+msgstr "Exposure Program"
+
+#: libexif/exif-tag.c:486
+msgid ""
+"The class of the program used by the camera to set exposure when the picture "
+"is taken."
+msgstr ""
+"The class of the programme used by the camera to set exposure when the "
+"picture is taken."
+
+#: libexif/exif-tag.c:490
+msgid "Spectral Sensitivity"
+msgstr "Spectral Sensitivity"
+
+#: libexif/exif-tag.c:491
+msgid ""
+"Indicates the spectral sensitivity of each channel of the camera used. The "
+"tag value is an ASCII string compatible with the standard developed by the "
+"ASTM Technical Committee."
+msgstr ""
+"Indicates the spectral sensitivity of each channel of the camera used. The "
+"tag value is an ASCII string compatible with the standard developed by the "
+"ASTM Technical Committee."
+
+#: libexif/exif-tag.c:496
+msgid "GPS Info IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:497
+msgid ""
+"A pointer to the GPS Info IFD. The Interoperability structure of the GPS "
+"Info IFD, like that of Exif IFD, has no image data."
+msgstr ""
+"A pointer to the GPS Info IFD. The Interoperability structure of the GPS "
+"Info IFD, like that of Exif IFD, has no image data."
+
+#: libexif/exif-tag.c:503
+msgid "ISO Speed Ratings"
+msgstr "ISO Speed Ratings"
+
+#: libexif/exif-tag.c:504
+msgid ""
+"Indicates the ISO Speed and ISO Latitude of the camera or input device as "
+"specified in ISO 12232."
+msgstr ""
+"Indicates the ISO Speed and ISO Latitude of the camera or input device as "
+"specified in ISO 12232."
+
+#: libexif/exif-tag.c:507
+msgid "Opto-Electronic Conversion Function"
+msgstr ""
+
+#: libexif/exif-tag.c:508
+msgid ""
+"Indicates the Opto-Electronic Conversion Function (OECF) specified in ISO "
+"14524. <OECF> is the relationship between the camera optical input and the "
+"image values."
+msgstr ""
+"Indicates the Opto-Electronic Conversion Function (OECF) specified in ISO "
+"14524. <OECF> is the relationship between the camera optical input and the "
+"image values."
+
+#: libexif/exif-tag.c:513
+msgid "Time Zone Offset"
+msgstr "Time Zone Offset"
+
+#: libexif/exif-tag.c:514
+msgid "Encodes time zone of camera clock relative to GMT."
+msgstr "Encodes time zone of camera clock relative to GMT."
+
+#: libexif/exif-tag.c:515
+msgid "Exif Version"
+msgstr "Exif Version"
+
+#: libexif/exif-tag.c:516
+msgid ""
+"The version of this standard supported. Nonexistence of this field is taken "
+"to mean nonconformance to the standard."
+msgstr ""
+"The version of this standard supported. Nonexistence of this field is taken "
+"to mean nonconformance to the standard."
+
+#: libexif/exif-tag.c:520
+#, fuzzy
+msgid "Date and Time (Original)"
+msgstr "Date and Time (original)"
+
+#: libexif/exif-tag.c:521
+msgid ""
+"The date and time when the original image data was generated. For a digital "
+"still camera the date and time the picture was taken are recorded."
+msgstr ""
+"The date and time when the original image data was generated. For a digital "
+"still camera the date and time the picture was taken are recorded."
+
+#: libexif/exif-tag.c:526
+#, fuzzy
+msgid "Date and Time (Digitized)"
+msgstr "Date and Time (digitised)"
+
+#: libexif/exif-tag.c:527
+msgid "The date and time when the image was stored as digital data."
+msgstr "The date and time when the image was stored as digital data."
+
+#: libexif/exif-tag.c:530
+msgid "Components Configuration"
+msgstr "Components Configuration"
+
+#: libexif/exif-tag.c:531
+msgid ""
+"Information specific to compressed data. The channels of each component are "
+"arranged in order from the 1st component to the 4th. For uncompressed data "
+"the data arrangement is given in the <PhotometricInterpretation> tag. "
+"However, since <PhotometricInterpretation> can only express the order of Y, "
+"Cb and Cr, this tag is provided for cases when compressed data uses "
+"components other than Y, Cb, and Cr and to enable support of other sequences."
+msgstr ""
+"Information specific to compressed data. The channels of each component are "
+"arranged in order from the 1st component to the 4th. For uncompressed data "
+"the data arrangement is given in the <PhotometricInterpretation> tag. "
+"However, since <PhotometricInterpretation> can only express the order of Y, "
+"Cb and Cr, this tag is provided for cases when compressed data uses "
+"components other than Y, Cb, and Cr and to enable support of other sequences."
+
+#: libexif/exif-tag.c:541
+msgid "Compressed Bits per Pixel"
+msgstr "Compressed Bits per Pixel"
+
+#: libexif/exif-tag.c:542
+msgid ""
+"Information specific to compressed data. The compression mode used for a "
+"compressed image is indicated in unit bits per pixel."
+msgstr ""
+"Information specific to compressed data. The compression mode used for a "
+"compressed image is indicated in unit bits per pixel."
+
+#: libexif/exif-tag.c:546 libexif/olympus/mnote-olympus-tag.c:123
+msgid "Shutter Speed"
+msgstr "Shutter Speed"
+
+#: libexif/exif-tag.c:547
+msgid ""
+"Shutter speed. The unit is the APEX (Additive System of Photographic "
+"Exposure) setting."
+msgstr ""
+"Shutter speed. The unit is the APEX (Additive System of Photographic "
+"Exposure) setting."
+
+#: libexif/exif-tag.c:551
+msgid "The lens aperture. The unit is the APEX value."
+msgstr "The lens aperture. The unit is the APEX value."
+
+#: libexif/exif-tag.c:553
+msgid "Brightness"
+msgstr "Brightness"
+
+#: libexif/exif-tag.c:554
+msgid ""
+"The value of brightness. The unit is the APEX value. Ordinarily it is given "
+"in the range of -99.99 to 99.99."
+msgstr ""
+"The value of brightness. The unit is the APEX value. Ordinarily it is given "
+"in the range of -99.99 to 99.99."
+
+#: libexif/exif-tag.c:558
+msgid "Exposure Bias"
+msgstr "Exposure Bias"
+
+#: libexif/exif-tag.c:559
+msgid ""
+"The exposure bias. The units is the APEX value. Ordinarily it is given in "
+"the range of -99.99 to 99.99."
+msgstr ""
+"The exposure bias. The units is the APEX value. Ordinarily it is given in "
+"the range of -99.99 to 99.99."
+
+#: libexif/exif-tag.c:562
+msgid "Maximum Aperture Value"
+msgstr "Maximum Aperture Value"
+
+#: libexif/exif-tag.c:563
+msgid ""
+"The smallest F number of the lens. The unit is the APEX value. Ordinarily it "
+"is given in the range of 00.00 to 99.99, but it is not limited to this range."
+msgstr ""
+"The smallest F number of the lens. The unit is the APEX value. Ordinarily it "
+"is given in the range of 00.00 to 99.99, but it is not limited to this range."
+
+#: libexif/exif-tag.c:568
+msgid "Subject Distance"
+msgstr "Subject Distance"
+
+#: libexif/exif-tag.c:569
+msgid "The distance to the subject, given in meters."
+msgstr "The distance to the subject, given in metres."
+
+#: libexif/exif-tag.c:572
+msgid "The metering mode."
+msgstr "The metering mode."
+
+#: libexif/exif-tag.c:574
+msgid "Light Source"
+msgstr "Light Source"
+
+#: libexif/exif-tag.c:575
+msgid "The kind of light source."
+msgstr "The kind of light source."
+
+#: libexif/exif-tag.c:578
+msgid ""
+"This tag is recorded when an image is taken using a strobe light (flash)."
+msgstr ""
+"This tag is recorded when an image is taken using a strobe light (flash)."
+
+#: libexif/exif-tag.c:582
+msgid ""
+"The actual focal length of the lens, in mm. Conversion is not made to the "
+"focal length of a 35 mm film camera."
+msgstr ""
+"The actual focal length of the lens, in mm. Conversion is not made to the "
+"focal length of a 35 mm film camera."
+
+#: libexif/exif-tag.c:585
+msgid "Subject Area"
+msgstr "Subject Area"
+
+#: libexif/exif-tag.c:586
+msgid ""
+"This tag indicates the location and area of the main subject in the overall "
+"scene."
+msgstr ""
+"This tag indicates the location and area of the main subject in the overall "
+"scene."
+
+#: libexif/exif-tag.c:590
+msgid "TIFF/EP Standard ID"
+msgstr "TIFF/EP Standard ID"
+
+#: libexif/exif-tag.c:591
+msgid "Maker Note"
+msgstr "Maker Note"
+
+#: libexif/exif-tag.c:592
+msgid ""
+"A tag for manufacturers of Exif writers to record any desired information. "
+"The contents are up to the manufacturer."
+msgstr ""
+"A tag for manufacturers of Exif writers to record any desired information. "
+"The contents are up to the manufacturer."
+
+#: libexif/exif-tag.c:595
+msgid "User Comment"
+msgstr "User Comment"
+
+#: libexif/exif-tag.c:596
+msgid ""
+"A tag for Exif users to write keywords or comments on the image besides "
+"those in <ImageDescription>, and without the character code limitations of "
+"the <ImageDescription> tag. The character code used in the <UserComment> tag "
+"is identified based on an ID code in a fixed 8-byte area at the start of the "
+"tag data area. The unused portion of the area is padded with NULL (\"00.h"
+"\"). ID codes are assigned by means of registration. The designation method "
+"and references for each character code are defined in the specification. The "
+"value of CountN is determined based on the 8 bytes in the character code "
+"area and the number of bytes in the user comment part. Since the TYPE is not "
+"ASCII, NULL termination is not necessary. The ID code for the <UserComment> "
+"area may be a Defined code such as JIS or ASCII, or may be Undefined. The "
+"Undefined name is UndefinedText, and the ID code is filled with 8 bytes of "
+"all \"NULL\" (\"00.H\"). An Exif reader that reads the <UserComment> tag "
+"must have a function for determining the ID code. This function is not "
+"required in Exif readers that do not use the <UserComment> tag. When a "
+"<UserComment> area is set aside, it is recommended that the ID code be ASCII "
+"and that the following user comment part be filled with blank characters [20."
+"H]."
+msgstr ""
+"A tag for Exif users to write keywords or comments on the image besides "
+"those in <ImageDescription>, and without the character code limitations of "
+"the <ImageDescription> tag. The character code used in the <UserComment> tag "
+"is identified based on an ID code in a fixed 8-byte area at the start of the "
+"tag data area. The unused portion of the area is padded with NULL (\"00.h"
+"\"). ID codes are assigned by means of registration. The designation method "
+"and references for each character code are defined in the specification. The "
+"value of CountN is determined based on the 8 bytes in the character code "
+"area and the number of bytes in the user comment part. Since the TYPE is not "
+"ASCII, NULL termination is not necessary. The ID code for the <UserComment> "
+"area may be a Defined code such as JIS or ASCII, or may be Undefined. The "
+"Undefined name is UndefinedText, and the ID code is filled with 8 bytes of "
+"all \"NULL\" (\"00.H\"). An Exif reader that reads the <UserComment> tag "
+"must have a function for determining the ID code. This function is not "
+"required in Exif readers that do not use the <UserComment> tag. When a "
+"<UserComment> area is set aside, it is recommended that the ID code be ASCII "
+"and that the following user comment part be filled with blank characters [20."
+"H]."
+
+#: libexif/exif-tag.c:619
+msgid "Sub-second Time"
+msgstr ""
+
+#: libexif/exif-tag.c:620
+msgid "A tag used to record fractions of seconds for the <DateTime> tag."
+msgstr "A tag used to record fractions of seconds for the <DateTime> tag."
+
+#: libexif/exif-tag.c:624
+#, fuzzy
+msgid "Sub-second Time (Original)"
+msgstr "Date and Time (original)"
+
+#: libexif/exif-tag.c:625
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeOriginal> tag."
+msgstr ""
+"A tag used to record fractions of seconds for the <DateTimeOriginal> tag."
+
+#: libexif/exif-tag.c:629
+#, fuzzy
+msgid "Sub-second Time (Digitized)"
+msgstr "Date and Time (digitised)"
+
+#: libexif/exif-tag.c:630
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeDigitized> tag."
+msgstr ""
+"A tag used to record fractions of seconds for the <DateTimeDigitized> tag."
+
+#: libexif/exif-tag.c:634
+msgid "XP Title"
+msgstr "XP Title"
+
+#: libexif/exif-tag.c:635
+msgid "A character string giving the title of the image, encoded in UTF-16LE."
+msgstr "A character string giving the title of the image, encoded in UTF-16LE."
+
+#: libexif/exif-tag.c:639
+msgid "XP Comment"
+msgstr "XP Comment"
+
+#: libexif/exif-tag.c:640
+msgid ""
+"A character string containing a comment about the image, encoded in UTF-16LE."
+msgstr ""
+"A character string containing a comment about the image, encoded in UTF-16LE."
+
+#: libexif/exif-tag.c:644
+msgid "XP Author"
+msgstr "XP Author"
+
+#: libexif/exif-tag.c:645
+msgid ""
+"A character string containing the name of the image creator, encoded in UTF-"
+"16LE."
+msgstr ""
+"A character string containing the name of the image creator, encoded in UTF-"
+"16LE."
+
+#: libexif/exif-tag.c:649
+msgid "XP Keywords"
+msgstr "XP Keywords"
+
+#: libexif/exif-tag.c:650
+msgid ""
+"A character string containing key words describing the image, encoded in UTF-"
+"16LE."
+msgstr ""
+"A character string containing key words describing the image, encoded in UTF-"
+"16LE."
+
+#: libexif/exif-tag.c:654
+msgid "XP Subject"
+msgstr "XP Subject"
+
+#: libexif/exif-tag.c:655
+msgid "A character string giving the image subject, encoded in UTF-16LE."
+msgstr "A character string giving the image subject, encoded in UTF-16LE."
+
+#: libexif/exif-tag.c:659
+msgid "The FlashPix format version supported by a FPXR file."
+msgstr "The FlashPix format version supported by a FPXR file."
+
+#: libexif/exif-tag.c:661 libexif/pentax/mnote-pentax-tag.c:102
+msgid "Color Space"
+msgstr "Colour Space"
+
+#: libexif/exif-tag.c:662
+msgid ""
+"The color space information tag is always recorded as the color space "
+"specifier. Normally sRGB (=1) is used to define the color space based on the "
+"PC monitor conditions and environment. If a color space other than sRGB is "
+"used, Uncalibrated (=FFFF.H) is set. Image data recorded as Uncalibrated can "
+"be treated as sRGB when it is converted to FlashPix."
+msgstr ""
+"The colour space information tag is always recorded as the colour space "
+"specifier. Normally sRGB (=1) is used to define the colour space based on "
+"the PC monitor conditions and environment. If a colour space other than sRGB "
+"is used, Uncalibrated (=FFFF.H) is set. Image data recorded as Uncalibrated "
+"can be treated as sRGB when it is converted to FlashPix."
+
+#: libexif/exif-tag.c:670
+msgid "Pixel X Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:671
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid width of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file."
+msgstr ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid width of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file."
+
+#: libexif/exif-tag.c:677
+msgid "Pixel Y Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:678
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid height of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file. Since data padding is unnecessary in the "
+"vertical direction, the number of lines recorded in this valid image height "
+"tag will in fact be the same as that recorded in the SOF."
+msgstr ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid height of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file. Since data padding is unnecessary in the "
+"vertical direction, the number of lines recorded in this valid image height "
+"tag will in fact be the same as that recorded in the SOF."
+
+#: libexif/exif-tag.c:688
+msgid "Related Sound File"
+msgstr ""
+
+#: libexif/exif-tag.c:689
+#, fuzzy
+msgid ""
+"This tag is used to record the name of an audio file related to the image "
+"data. The only relational information recorded here is the Exif audio file "
+"name and extension (an ASCII string consisting of 8 characters + '.' + 3 "
+"characters). The path is not recorded. Stipulations on audio and file naming "
+"conventions are defined in the specification. When using this tag, audio "
+"files must be recorded in conformance to the Exif audio format. Writers are "
+"also allowed to store the data such as Audio within APP2 as FlashPix "
+"extension stream data. The mapping of Exif image files and audio files is "
+"done in any of three ways, [1], [2] and [3]. If multiple files are mapped to "
+"one file as in [2] or [3], the above format is used to record just one audio "
+"file name. If there are multiple audio files, the first recorded file is "
+"given. In the case of [3], for example, for the Exif image file \"DSC00001."
+"JPG\" only  \"SND00001.WAV\" is given as the related Exif audio file. When "
+"there are three Exif audio files \"SND00001.WAV\", \"SND00002.WAV\" and "
+"\"SND00003.WAV\", the Exif image file name for each of them, \"DSC00001.JPG"
+"\", is indicated. By combining multiple relational information, a variety of "
+"playback possibilities can be supported. The method of using relational "
+"information is left to the implementation on the playback side. Since this "
+"information is an ASCII character string, it is terminated by NULL. When "
+"this tag is used to map audio files, the relation of the audio file to image "
+"data must also be indicated on the audio file end."
+msgstr ""
+"This tag is used to record the name of an audio file related to the image "
+"data. The only relational information recorded here is the Exif audio file "
+"name and extension (an ASCII string consisting of 8 characters + '.' + 3 "
+"characters). The path is not recorded. Stipulations on audio and file naming "
+"conventions are defined in the specification. When using this tag, audio "
+"files must be recorded in conformance to the Exif audio format. Writers are "
+"also allowed to store the data such as Audio within APP2 as FlashPix "
+"extension stream data. Audio files must be recorded in conformance to the "
+"Exif audio format. The mapping of Exif image files and audio files is done "
+"in any of three ways, [1], [2] and [3]. If multiple files are mapped to one "
+"file as in [2] or [3], the above format is used to record just one audio "
+"file name. If there are multiple audio files, the first recorded file is "
+"given. In the case of [3], for example, for the Exif image file \"DSC00001."
+"JPG\" only  \"SND00001.WAV\" is given as the related Exif audio file. When "
+"there are three Exif audio files \"SND00001.WAV\", \"SND00002.WAV\" and "
+"\"SND00003.WAV\", the Exif image file name for each of them, \"DSC00001.JPG"
+"\", is indicated. By combining multiple relational information, a variety of "
+"playback possibilities can be supported. The method of using relational "
+"information is left to the implementation on the playback side. Since this "
+"information is an ASCII character string, it is terminated by NULL. When "
+"this tag is used to map audio files, the relation of the audio file to image "
+"data must also be indicated on the audio file end."
+
+#: libexif/exif-tag.c:719
+#, fuzzy
+msgid "Interoperability IFD Pointer"
+msgstr "Interoperability Index"
+
+#: libexif/exif-tag.c:720
+msgid ""
+"Interoperability IFD is composed of tags which stores the information to "
+"ensure the Interoperability and pointed by the following tag located in Exif "
+"IFD. The Interoperability structure of Interoperability IFD is the same as "
+"TIFF defined IFD structure but does not contain the image data "
+"characteristically compared with normal TIFF IFD."
+msgstr ""
+"Interoperability IFD is composed of tags which stores the information to "
+"ensure the Interoperability and pointed by the following tag located in Exif "
+"IFD. The Interoperability structure of Interoperability IFD is the same as "
+"TIFF defined IFD structure but does not contain the image data "
+"characteristically compared with normal TIFF IFD."
+
+#: libexif/exif-tag.c:729
+msgid "Flash Energy"
+msgstr "Flash Energy"
+
+#: libexif/exif-tag.c:730
+msgid ""
+"Indicates the strobe energy at the time the image is captured, as measured "
+"in Beam Candle Power Seconds (BCPS)."
+msgstr ""
+"Indicates the strobe energy at the time the image is captured, as measured "
+"in Beam Candle Power Seconds (BCPS)."
+
+#: libexif/exif-tag.c:734
+msgid "Spatial Frequency Response"
+msgstr "Spatial Frequency Response"
+
+#: libexif/exif-tag.c:735
+msgid ""
+"This tag records the camera or input device spatial frequency table and SFR "
+"values in the direction of image width, image height, and diagonal "
+"direction, as specified in ISO 12233."
+msgstr ""
+"This tag records the camera or input device spatial frequency table and SFR "
+"values in the direction of image width, image height, and diagonal "
+"direction, as specified in ISO 12233."
+
+#: libexif/exif-tag.c:741
+#, fuzzy
+msgid "Focal Plane X-Resolution"
+msgstr "Focal Plane x-Resolution"
+
+#: libexif/exif-tag.c:742
+msgid ""
+"Indicates the number of pixels in the image width (X) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+"Indicates the number of pixels in the image width (X) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+
+#: libexif/exif-tag.c:746
+#, fuzzy
+msgid "Focal Plane Y-Resolution"
+msgstr "Focal Plane x-Resolution"
+
+#: libexif/exif-tag.c:747
+msgid ""
+"Indicates the number of pixels in the image height (V) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+"Indicates the number of pixels in the image height (V) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+
+#: libexif/exif-tag.c:751
+msgid "Focal Plane Resolution Unit"
+msgstr "Focal Plane Resolution Unit"
+
+#: libexif/exif-tag.c:752
+msgid ""
+"Indicates the unit for measuring <FocalPlaneXResolution> and "
+"<FocalPlaneYResolution>. This value is the same as the <ResolutionUnit>."
+msgstr ""
+"Indicates the unit for measuring <FocalPlaneXResolution> and "
+"<FocalPlaneYResolution>. This value is the same as the <ResolutionUnit>."
+
+#: libexif/exif-tag.c:757
+msgid "Subject Location"
+msgstr "Subject Location"
+
+#: libexif/exif-tag.c:758
+msgid ""
+"Indicates the location of the main subject in the scene. The value of this "
+"tag represents the pixel at the center of the main subject relative to the "
+"left edge, prior to rotation processing as per the <Rotation> tag. The first "
+"value indicates the X column number and the second indicates the Y row "
+"number."
+msgstr ""
+"Indicates the location of the main subject in the scene. The value of this "
+"tag represents the pixel at the centre of the main subject relative to the "
+"left edge, prior to rotation processing as per the <Rotation> tag. The first "
+"value indicates the X column number and the second indicates the Y row "
+"number."
+
+#: libexif/exif-tag.c:765
+msgid "Exposure Index"
+msgstr "Exposure Index"
+
+#: libexif/exif-tag.c:766
+msgid ""
+"Indicates the exposure index selected on the camera or input device at the "
+"time the image is captured."
+msgstr ""
+"Indicates the exposure index selected on the camera or input device at the "
+"time the image is captured."
+
+#: libexif/exif-tag.c:769
+msgid "Sensing Method"
+msgstr "Sensing Method"
+
+#: libexif/exif-tag.c:770
+msgid "Indicates the image sensor type on the camera or input device."
+msgstr "Indicates the image sensor type on the camera or input device."
+
+#: libexif/exif-tag.c:773 libexif/fuji/mnote-fuji-tag.c:64
+msgid "File Source"
+msgstr "File Source"
+
+#: libexif/exif-tag.c:774
+msgid ""
+"Indicates the image source. If a DSC recorded the image, the tag value of "
+"this tag always be set to 3, indicating that the image was recorded on a DSC."
+msgstr ""
+"Indicates the image source. If a DSC recorded the image, the tag value of "
+"this tag always be set to 3, indicating that the image was recorded on a DSC."
+
+#: libexif/exif-tag.c:778
+msgid "Scene Type"
+msgstr "Scene Type"
+
+#: libexif/exif-tag.c:779
+msgid ""
+"Indicates the type of scene. If a DSC recorded the image, this tag value "
+"must always be set to 1, indicating that the image was directly photographed."
+msgstr ""
+"Indicates the type of scene. If a DSC recorded the image, this tag value "
+"must always be set to 1, indicating that the image was directly photographed."
+
+#: libexif/exif-tag.c:789
+msgid "Custom Rendered"
+msgstr "Custom Rendered"
+
+#: libexif/exif-tag.c:790
+msgid ""
+"This tag indicates the use of special processing on image data, such as "
+"rendering geared to output. When special processing is performed, the reader "
+"is expected to disable or minimize any further processing."
+msgstr ""
+"This tag indicates the use of special processing on image data, such as "
+"rendering geared to output. When special processing is performed, the reader "
+"is expected to disable or minimise any further processing."
+
+#: libexif/exif-tag.c:796
+msgid ""
+"This tag indicates the exposure mode set when the image was shot. In auto-"
+"bracketing mode, the camera shoots a series of frames of the same scene at "
+"different exposure settings."
+msgstr ""
+"This tag indicates the exposure mode set when the image was shot. In auto-"
+"bracketing mode, the camera shoots a series of frames of the same scene at "
+"different exposure settings."
+
+#: libexif/exif-tag.c:801
+msgid "This tag indicates the white balance mode set when the image was shot."
+msgstr "This tag indicates the white balance mode set when the image was shot."
+
+#: libexif/exif-tag.c:805
+msgid "Digital Zoom Ratio"
+msgstr "Digital Zoom Ratio"
+
+#: libexif/exif-tag.c:806
+msgid ""
+"This tag indicates the digital zoom ratio when the image was shot. If the "
+"numerator of the recorded value is 0, this indicates that digital zoom was "
+"not used."
+msgstr ""
+"This tag indicates the digital zoom ratio when the image was shot. If the "
+"numerator of the recorded value is 0, this indicates that digital zoom was "
+"not used."
+
+#: libexif/exif-tag.c:811
+#, fuzzy
+msgid "Focal Length in 35mm Film"
+msgstr "Focal Length In 35mm Film"
+
+#: libexif/exif-tag.c:812
+msgid ""
+"This tag indicates the equivalent focal length assuming a 35mm film camera, "
+"in mm. A value of 0 means the focal length is unknown. Note that this tag "
+"differs from the FocalLength tag."
+msgstr ""
+"This tag indicates the equivalent focal length assuming a 35mm film camera, "
+"in mm. A value of 0 means the focal length is unknown. Note that this tag "
+"differs from the FocalLength tag."
+
+#: libexif/exif-tag.c:818
+msgid "Scene Capture Type"
+msgstr "Scene Capture Type"
+
+#: libexif/exif-tag.c:819
+msgid ""
+"This tag indicates the type of scene that was shot. It can also be used to "
+"record the mode in which the image was shot. Note that this differs from the "
+"scene type <SceneType> tag."
+msgstr ""
+"This tag indicates the type of scene that was shot. It can also be used to "
+"record the mode in which the image was shot. Note that this differs from the "
+"scene type <SceneType> tag."
+
+#: libexif/exif-tag.c:824
+msgid "Gain Control"
+msgstr "Gain Control"
+
+#: libexif/exif-tag.c:825
+msgid "This tag indicates the degree of overall image gain adjustment."
+msgstr "This tag indicates the degree of overall image gain adjustment."
+
+#: libexif/exif-tag.c:829
+msgid ""
+"This tag indicates the direction of contrast processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"This tag indicates the direction of contrast processing applied by the "
+"camera when the image was shot."
+
+#: libexif/exif-tag.c:833
+msgid ""
+"This tag indicates the direction of saturation processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"This tag indicates the direction of saturation processing applied by the "
+"camera when the image was shot."
+
+#: libexif/exif-tag.c:837
+msgid ""
+"This tag indicates the direction of sharpness processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"This tag indicates the direction of sharpness processing applied by the "
+"camera when the image was shot."
+
+#: libexif/exif-tag.c:841
+msgid "Device Setting Description"
+msgstr "Device Setting Description"
+
+#: libexif/exif-tag.c:842
+msgid ""
+"This tag indicates information on the picture-taking conditions of a "
+"particular camera model. The tag is used only to indicate the picture-taking "
+"conditions in the reader."
+msgstr ""
+"This tag indicates information on the picture-taking conditions of a "
+"particular camera model. The tag is used only to indicate the picture-taking "
+"conditions in the reader."
+
+#: libexif/exif-tag.c:848
+msgid "Subject Distance Range"
+msgstr "Subject Distance Range"
+
+#: libexif/exif-tag.c:849
+msgid "This tag indicates the distance to the subject."
+msgstr "This tag indicates the distance to the subject."
+
+#: libexif/exif-tag.c:851
+msgid "Image Unique ID"
+msgstr "Image Unique ID"
+
+#: libexif/exif-tag.c:852
+msgid ""
+"This tag indicates an identifier assigned uniquely to each image. It is "
+"recorded as an ASCII string equivalent to hexadecimal notation and 128-bit "
+"fixed length."
+msgstr ""
+"This tag indicates an identifier assigned uniquely to each image. It is "
+"recorded as an ASCII string equivalent to hexadecimal notation and 128-bit "
+"fixed length."
+
+#: libexif/exif-tag.c:857
+msgid "Gamma"
+msgstr "Gamma"
+
+#: libexif/exif-tag.c:858
+msgid "Indicates the value of coefficient gamma."
+msgstr "Indicates the value of coefficient gamma."
+
+#: libexif/exif-tag.c:860
+msgid "PRINT Image Matching"
+msgstr "PRINT Image Matching"
+
+#: libexif/exif-tag.c:861
+msgid "Related to Epson's PRINT Image Matching technology"
+msgstr "Related to Epson's PRINT Image Matching technology"
+
+#: libexif/exif-tag.c:863
+msgid "Padding"
+msgstr ""
+
+#: libexif/exif-tag.c:864
+msgid ""
+"This tag reserves space that can be reclaimed later when additional metadata "
+"are added. New metadata can be written in place by replacing this tag with a "
+"smaller data element and using the reclaimed space to store the new or "
+"expanded metadata tags."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:62
+msgid "Softest"
+msgstr "Softest"
+
+#: libexif/fuji/mnote-fuji-entry.c:66
+msgid "Hardest"
+msgstr "Hardest"
+
+#: libexif/fuji/mnote-fuji-entry.c:67 libexif/fuji/mnote-fuji-entry.c:96
+msgid "Medium soft"
+msgstr "Medium soft"
+
+#: libexif/fuji/mnote-fuji-entry.c:68 libexif/fuji/mnote-fuji-entry.c:94
+msgid "Medium hard"
+msgstr "Medium hard"
+
+#: libexif/fuji/mnote-fuji-entry.c:69 libexif/fuji/mnote-fuji-entry.c:90
+#: libexif/fuji/mnote-fuji-entry.c:98 libexif/fuji/mnote-fuji-entry.c:182
+msgid "Film simulation mode"
+msgstr "Film simulation mode"
+
+#: libexif/fuji/mnote-fuji-entry.c:79
+msgid "Incandescent"
+msgstr "Incandescent"
+
+#: libexif/fuji/mnote-fuji-entry.c:85
+msgid "Medium high"
+msgstr "Medium high"
+
+#: libexif/fuji/mnote-fuji-entry.c:87
+msgid "Medium low"
+msgstr "Medium low"
+
+#: libexif/fuji/mnote-fuji-entry.c:88 libexif/fuji/mnote-fuji-entry.c:97
+msgid "Original"
+msgstr "Original"
+
+#: libexif/fuji/mnote-fuji-entry.c:124 libexif/pentax/mnote-pentax-entry.c:164
+#: libexif/pentax/mnote-pentax-entry.c:299
+msgid "Program AE"
+msgstr "Programme AE"
+
+#: libexif/fuji/mnote-fuji-entry.c:125
+msgid "Natural photo"
+msgstr "Natural photo"
+
+#: libexif/fuji/mnote-fuji-entry.c:126
+msgid "Vibration reduction"
+msgstr "Vibration reduction"
+
+#: libexif/fuji/mnote-fuji-entry.c:127
+msgid "Sunset"
+msgstr "Sunset"
+
+#: libexif/fuji/mnote-fuji-entry.c:128 libexif/pentax/mnote-pentax-entry.c:181
+msgid "Museum"
+msgstr "Museum"
+
+#: libexif/fuji/mnote-fuji-entry.c:129
+msgid "Party"
+msgstr "Party"
+
+#: libexif/fuji/mnote-fuji-entry.c:130
+msgid "Flower"
+msgstr "Flower"
+
+#: libexif/fuji/mnote-fuji-entry.c:131 libexif/pentax/mnote-pentax-entry.c:176
+msgid "Text"
+msgstr "Text"
+
+#: libexif/fuji/mnote-fuji-entry.c:132
+msgid "NP & flash"
+msgstr "NP & flash"
+
+#: libexif/fuji/mnote-fuji-entry.c:137
+msgid "Aperture priority AE"
+msgstr "Aperture priority AE"
+
+#: libexif/fuji/mnote-fuji-entry.c:138
+msgid "Shutter priority AE"
+msgstr "Shutter priority AE"
+
+#: libexif/fuji/mnote-fuji-entry.c:146
+msgid "F-Standard"
+msgstr "F-Standard"
+
+#: libexif/fuji/mnote-fuji-entry.c:147
+msgid "F-Chrome"
+msgstr "F-Chrome"
+
+#: libexif/fuji/mnote-fuji-entry.c:148
+msgid "F-B&W"
+msgstr "F-B&W"
+
+#: libexif/fuji/mnote-fuji-entry.c:151
+msgid "No blur"
+msgstr "No blur"
+
+#: libexif/fuji/mnote-fuji-entry.c:152
+msgid "Blur warning"
+msgstr "Blur warning"
+
+#: libexif/fuji/mnote-fuji-entry.c:155
+msgid "Focus good"
+msgstr "Focus good"
+
+#: libexif/fuji/mnote-fuji-entry.c:156
+msgid "Out of focus"
+msgstr "Out of focus"
+
+#: libexif/fuji/mnote-fuji-entry.c:159
+msgid "AE good"
+msgstr "AE good"
+
+#: libexif/fuji/mnote-fuji-entry.c:160
+msgid "Over exposed"
+msgstr "Over exposed"
+
+#: libexif/fuji/mnote-fuji-entry.c:164
+msgid "Wide"
+msgstr "Wide"
+
+#: libexif/fuji/mnote-fuji-entry.c:167
+msgid "F0/Standard"
+msgstr "F0/Standard"
+
+#: libexif/fuji/mnote-fuji-entry.c:168
+msgid "F1/Studio portrait"
+msgstr "F1/Studio portrait"
+
+#: libexif/fuji/mnote-fuji-entry.c:169
+msgid "F1a/Professional portrait"
+msgstr "F1a/Professional portrait"
+
+#: libexif/fuji/mnote-fuji-entry.c:170
+msgid "F1b/Professional portrait"
+msgstr "F1b/Professional portrait"
+
+#: libexif/fuji/mnote-fuji-entry.c:171
+msgid "F1c/Professional portrait"
+msgstr "F1c/Professional portrait"
+
+#: libexif/fuji/mnote-fuji-entry.c:172
+msgid "F2/Fujichrome"
+msgstr "F2/Fujichrome"
+
+#: libexif/fuji/mnote-fuji-entry.c:173
+msgid "F3/Studio portrait Ex"
+msgstr "F3/Studio portrait Ex"
+
+#: libexif/fuji/mnote-fuji-entry.c:174
+msgid "F4/Velvia"
+msgstr "F4/Velvia"
+
+#: libexif/fuji/mnote-fuji-entry.c:177
+msgid "Auto (100-400%)"
+msgstr "Auto (100-400%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:179
+msgid "Standard (100%)"
+msgstr "Standard (100%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:180
+msgid "Wide1 (230%)"
+msgstr "Wide1 (230%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:181
+msgid "Wide2 (400%)"
+msgstr "Wide2 (400%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:263
+#, c-format
+msgid "%2.2f mm"
+msgstr "%2.2f mm"
+
+#: libexif/fuji/mnote-fuji-entry.c:298 libexif/pentax/mnote-pentax-entry.c:399
+#: libexif/pentax/mnote-pentax-entry.c:451
+#, c-format
+msgid "%i bytes unknown data"
+msgstr "%i bytes unknown data"
+
+#: libexif/fuji/mnote-fuji-tag.c:36
+msgid "Maker Note Version"
+msgstr "Maker Note Version"
+
+#: libexif/fuji/mnote-fuji-tag.c:37
+#, fuzzy
+msgid "This number is unique and based on the date of manufacture."
+msgstr "This number is unique, it contains the date of manufacture."
+
+#: libexif/fuji/mnote-fuji-tag.c:41
+msgid "Chromaticity Saturation"
+msgstr "Chromaticity Saturation"
+
+#: libexif/fuji/mnote-fuji-tag.c:44
+msgid "Flash Firing Strength Compensation"
+msgstr "Flash Firing Strength Compensation"
+
+#: libexif/fuji/mnote-fuji-tag.c:46
+msgid "Focusing Mode"
+msgstr "Focusing Mode"
+
+#: libexif/fuji/mnote-fuji-tag.c:47
+msgid "Focus Point"
+msgstr "Focus Point"
+
+#: libexif/fuji/mnote-fuji-tag.c:48
+msgid "Slow Synchro Mode"
+msgstr "Slow Synchro Mode"
+
+#: libexif/fuji/mnote-fuji-tag.c:49 libexif/pentax/mnote-pentax-tag.c:72
+msgid "Picture Mode"
+msgstr "Picture Mode"
+
+#: libexif/fuji/mnote-fuji-tag.c:50
+msgid "Continuous Taking"
+msgstr "Continuous Taking"
+
+#: libexif/fuji/mnote-fuji-tag.c:51
+msgid "Continuous Sequence Number"
+msgstr "Continuous Sequence Number"
+
+#: libexif/fuji/mnote-fuji-tag.c:52
+msgid "FinePix Color"
+msgstr "FinePix Colour"
+
+#: libexif/fuji/mnote-fuji-tag.c:53
+msgid "Blur Check"
+msgstr "Blur Check"
+
+#: libexif/fuji/mnote-fuji-tag.c:54
+msgid "Auto Focus Check"
+msgstr "Auto Focus Check"
+
+#: libexif/fuji/mnote-fuji-tag.c:55
+msgid "Auto Exposure Check"
+msgstr "Auto Exposure Check"
+
+#: libexif/fuji/mnote-fuji-tag.c:56
+msgid "Dynamic Range"
+msgstr "Dynamic Range"
+
+#: libexif/fuji/mnote-fuji-tag.c:57
+msgid "Film Simulation Mode"
+msgstr "Film Simulation Mode"
+
+#: libexif/fuji/mnote-fuji-tag.c:58
+msgid "Dynamic Range Wide Mode"
+msgstr "Dynamic Range Wide Mode"
+
+#: libexif/fuji/mnote-fuji-tag.c:59
+msgid "Development Dynamic Range Wide Mode"
+msgstr "Development Dynamic Range Wide Mode"
+
+#: libexif/fuji/mnote-fuji-tag.c:60
+msgid "Minimum Focal Length"
+msgstr "Minimum Focal Length"
+
+#: libexif/fuji/mnote-fuji-tag.c:61
+msgid "Maximum Focal Length"
+msgstr "Maximum Focal Length"
+
+#: libexif/fuji/mnote-fuji-tag.c:62
+msgid "Maximum Aperture at Minimum Focal"
+msgstr "Maximum Aperture at Minimum Focal"
+
+#: libexif/fuji/mnote-fuji-tag.c:63
+msgid "Maximum Aperture at Maximum Focal"
+msgstr "Maximum Aperture at Maximum Focal"
+
+#: libexif/fuji/mnote-fuji-tag.c:65
+msgid "Order Number"
+msgstr "Order Number"
+
+#: libexif/fuji/mnote-fuji-tag.c:66 libexif/pentax/mnote-pentax-tag.c:98
+msgid "Frame Number"
+msgstr "Frame Number"
+
+#: libexif/olympus/mnote-olympus-entry.c:49
+#, c-format
+msgid "Invalid format '%s', expected '%s' or '%s'."
+msgstr "Invalid format '%s', expected '%s' or '%s'."
+
+#: libexif/olympus/mnote-olympus-entry.c:89
+#, fuzzy
+msgid "AF non D lens"
+msgstr "AF non D Lens"
+
+#: libexif/olympus/mnote-olympus-entry.c:91
+#, fuzzy
+msgid "AF-D or AF-S lens"
+msgstr "AF-D or AF-S Lens"
+
+#: libexif/olympus/mnote-olympus-entry.c:92
+#, fuzzy
+msgid "AF-D G lens"
+msgstr "AF-D G Lens"
+
+#: libexif/olympus/mnote-olympus-entry.c:93
+#, fuzzy
+msgid "AF-D VR lens"
+msgstr "AF-D VR Lens"
+
+#: libexif/olympus/mnote-olympus-entry.c:94
+#, fuzzy
+msgid "AF-D G VR lens"
+msgstr "AF-D VR Lens"
+
+#: libexif/olympus/mnote-olympus-entry.c:98
+msgid "Flash unit unknown"
+msgstr "Flash unit unknown"
+
+#: libexif/olympus/mnote-olympus-entry.c:99
+msgid "Flash is external"
+msgstr "Flash is external"
+
+#: libexif/olympus/mnote-olympus-entry.c:100
+#, fuzzy
+msgid "Flash is on camera"
+msgstr "Flash is on Camera"
+
+#: libexif/olympus/mnote-olympus-entry.c:103
+#, fuzzy
+msgid "VGA basic"
+msgstr "VGA Basic"
+
+#: libexif/olympus/mnote-olympus-entry.c:104
+#, fuzzy
+msgid "VGA normal"
+msgstr "VGA Normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:105
+#, fuzzy
+msgid "VGA fine"
+msgstr "VGA Fine"
+
+#: libexif/olympus/mnote-olympus-entry.c:106
+#, fuzzy
+msgid "SXGA basic"
+msgstr "SXGA Basic"
+
+#: libexif/olympus/mnote-olympus-entry.c:107
+#, fuzzy
+msgid "SXGA normal"
+msgstr "SXGA Normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:108
+#, fuzzy
+msgid "SXGA fine"
+msgstr "SXGA Fine"
+
+#: libexif/olympus/mnote-olympus-entry.c:109
+#, fuzzy
+msgid "2 Mpixel basic"
+msgstr "2 MPixel Basic"
+
+#: libexif/olympus/mnote-olympus-entry.c:110
+#, fuzzy
+msgid "2 Mpixel normal"
+msgstr "2 MPixel Normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:111
+#, fuzzy
+msgid "2 Mpixel fine"
+msgstr "2 MPixel Fine"
+
+#: libexif/olympus/mnote-olympus-entry.c:114
+msgid "Color"
+msgstr "Colour"
+
+#: libexif/olympus/mnote-olympus-entry.c:119
+msgid "Bright+"
+msgstr "Bright+"
+
+#: libexif/olympus/mnote-olympus-entry.c:120
+msgid "Bright-"
+msgstr "Bright-"
+
+#: libexif/olympus/mnote-olympus-entry.c:121
+msgid "Contrast+"
+msgstr "Contrast+"
+
+#: libexif/olympus/mnote-olympus-entry.c:122
+msgid "Contrast-"
+msgstr "Contrast-"
+
+#: libexif/olympus/mnote-olympus-entry.c:125
+msgid "ISO 80"
+msgstr "ISO 80"
+
+#: libexif/olympus/mnote-olympus-entry.c:126
+msgid "ISO 160"
+msgstr "ISO 160"
+
+#: libexif/olympus/mnote-olympus-entry.c:127
+msgid "ISO 320"
+msgstr "ISO 320"
+
+#: libexif/olympus/mnote-olympus-entry.c:128
+#: libexif/olympus/mnote-olympus-entry.c:246
+msgid "ISO 100"
+msgstr "ISO 100"
+
+#: libexif/olympus/mnote-olympus-entry.c:132
+msgid "Preset"
+msgstr "Preset"
+
+#: libexif/olympus/mnote-olympus-entry.c:134
+msgid "Incandescence"
+msgstr "Incandescence"
+
+#: libexif/olympus/mnote-olympus-entry.c:135
+msgid "Fluorescence"
+msgstr "Fluorescence"
+
+#: libexif/olympus/mnote-olympus-entry.c:137
+msgid "SpeedLight"
+msgstr "SpeedLight"
+
+#: libexif/olympus/mnote-olympus-entry.c:140
+#, fuzzy
+msgid "No fisheye"
+msgstr "No Fisheye"
+
+#: libexif/olympus/mnote-olympus-entry.c:141
+#, fuzzy
+msgid "Fisheye on"
+msgstr "Fisheye On"
+
+#: libexif/olympus/mnote-olympus-entry.c:144
+msgid "Normal, SQ"
+msgstr "Normal, SQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:145
+msgid "Normal, HQ"
+msgstr "Normal, HQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:146
+msgid "Normal, SHQ"
+msgstr "Normal, SHQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:147
+msgid "Normal, RAW"
+msgstr "Normal, RAW"
+
+#: libexif/olympus/mnote-olympus-entry.c:148
+msgid "Normal, SQ1"
+msgstr "Normal, SQ1"
+
+#: libexif/olympus/mnote-olympus-entry.c:149
+msgid "Normal, SQ2"
+msgstr "Normal, SQ2"
+
+#: libexif/olympus/mnote-olympus-entry.c:150
+msgid "Normal, super high"
+msgstr "Normal, super high"
+
+#: libexif/olympus/mnote-olympus-entry.c:151
+msgid "Normal, standard"
+msgstr "Normal, standard"
+
+#: libexif/olympus/mnote-olympus-entry.c:152
+msgid "Fine, SQ"
+msgstr "Fine, SQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:153
+msgid "Fine, HQ"
+msgstr "Fine, HQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:154
+msgid "Fine, SHQ"
+msgstr "Fine, SHQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:155
+msgid "Fine, RAW"
+msgstr "Fine, RAW"
+
+#: libexif/olympus/mnote-olympus-entry.c:156
+msgid "Fine, SQ1"
+msgstr "Fine, SQ1"
+
+#: libexif/olympus/mnote-olympus-entry.c:157
+msgid "Fine, SQ2"
+msgstr "Fine, SQ2"
+
+#: libexif/olympus/mnote-olympus-entry.c:158
+msgid "Fine, super high"
+msgstr "Fine, super high"
+
+#: libexif/olympus/mnote-olympus-entry.c:159
+msgid "Super fine, SQ"
+msgstr "Super fine, SQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:160
+msgid "Super fine, HQ"
+msgstr "Super fine, HQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:161
+msgid "Super fine, SHQ"
+msgstr "Super fine, SHQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:162
+msgid "Super fine, RAW"
+msgstr "Super fine, RAW"
+
+#: libexif/olympus/mnote-olympus-entry.c:163
+msgid "Super fine, SQ1"
+msgstr "Super fine, SQ1"
+
+#: libexif/olympus/mnote-olympus-entry.c:164
+msgid "Super fine, SQ2"
+msgstr "Super fine, SQ2"
+
+#: libexif/olympus/mnote-olympus-entry.c:165
+msgid "Super fine, super high"
+msgstr "Super fine, super high"
+
+#: libexif/olympus/mnote-olympus-entry.c:166
+msgid "Super fine, high"
+msgstr "Super fine, high"
+
+#: libexif/olympus/mnote-olympus-entry.c:169
+#: libexif/olympus/mnote-olympus-entry.c:174
+#: libexif/olympus/mnote-olympus-entry.c:208
+#: libexif/olympus/mnote-olympus-entry.c:217
+#: libexif/olympus/mnote-olympus-entry.c:240
+msgid "No"
+msgstr "No"
+
+#: libexif/olympus/mnote-olympus-entry.c:180
+msgid "On (Preset)"
+msgstr "On (Preset)"
+
+#: libexif/olympus/mnote-olympus-entry.c:185
+msgid "Fill"
+msgstr "Fill"
+
+#: libexif/olympus/mnote-olympus-entry.c:192
+#, fuzzy
+msgid "Internal + external"
+msgstr "Internal + External"
+
+#: libexif/olympus/mnote-olympus-entry.c:221
+msgid "Interlaced"
+msgstr "Interlaced"
+
+#: libexif/olympus/mnote-olympus-entry.c:222
+msgid "Progressive"
+msgstr "Progressive"
+
+#: libexif/olympus/mnote-olympus-entry.c:228
+#: libexif/pentax/mnote-pentax-entry.c:85
+#: libexif/pentax/mnote-pentax-entry.c:139
+msgid "Best"
+msgstr "Best"
+
+#: libexif/olympus/mnote-olympus-entry.c:229
+#, fuzzy
+msgid "Adjust exposure"
+msgstr "Adjust Exposure"
+
+#: libexif/olympus/mnote-olympus-entry.c:232
+#, fuzzy
+msgid "Spot focus"
+msgstr "Spot Focus"
+
+#: libexif/olympus/mnote-olympus-entry.c:233
+#, fuzzy
+msgid "Normal focus"
+msgstr "Normal Focus"
+
+#: libexif/olympus/mnote-olympus-entry.c:236
+msgid "Record while down"
+msgstr "Record while down"
+
+#: libexif/olympus/mnote-olympus-entry.c:237
+msgid "Press start, press stop"
+msgstr "Press start, press stop"
+
+#: libexif/olympus/mnote-olympus-entry.c:245
+msgid "ISO 50"
+msgstr "ISO 50"
+
+#: libexif/olympus/mnote-olympus-entry.c:247
+msgid "ISO 200"
+msgstr "ISO 200"
+
+#: libexif/olympus/mnote-olympus-entry.c:248
+msgid "ISO 400"
+msgstr "ISO 400"
+
+#: libexif/olympus/mnote-olympus-entry.c:252
+#: libexif/pentax/mnote-pentax-entry.c:168
+msgid "Sport"
+msgstr "Sport"
+
+#: libexif/olympus/mnote-olympus-entry.c:253
+msgid "TV"
+msgstr "TV"
+
+#: libexif/olympus/mnote-olympus-entry.c:255
+msgid "User 1"
+msgstr "User 1"
+
+#: libexif/olympus/mnote-olympus-entry.c:256
+msgid "User 2"
+msgstr "User 2"
+
+#: libexif/olympus/mnote-olympus-entry.c:257
+msgid "Lamp"
+msgstr "Lamp"
+
+#: libexif/olympus/mnote-olympus-entry.c:260
+msgid "5 frames/sec"
+msgstr "5 frames/sec"
+
+#: libexif/olympus/mnote-olympus-entry.c:261
+msgid "10 frames/sec"
+msgstr "10 frames/sec"
+
+#: libexif/olympus/mnote-olympus-entry.c:262
+msgid "15 frames/sec"
+msgstr "15 frames/sec"
+
+#: libexif/olympus/mnote-olympus-entry.c:263
+msgid "20 frames/sec"
+msgstr "20 frames/sec"
+
+#: libexif/olympus/mnote-olympus-entry.c:375
+#, fuzzy, c-format
+msgid "Red Correction %f, blue Correction %f"
+msgstr "Red Correction %f, Blue Correction %f"
+
+#: libexif/olympus/mnote-olympus-entry.c:383
+#, c-format
+msgid "%2.2f meters"
+msgstr "%2.2f metres"
+
+#: libexif/olympus/mnote-olympus-entry.c:385
+msgid "No manual focus selection"
+msgstr "No manual focus selection"
+
+#: libexif/olympus/mnote-olympus-entry.c:411
+#, fuzzy
+msgid "AF position: center"
+msgstr "AF Position: Centre"
+
+#: libexif/olympus/mnote-olympus-entry.c:412
+#, fuzzy
+msgid "AF position: top"
+msgstr "AF Position: Top"
+
+#: libexif/olympus/mnote-olympus-entry.c:413
+#, fuzzy
+msgid "AF position: bottom"
+msgstr "AF Position: Bottom"
+
+#: libexif/olympus/mnote-olympus-entry.c:414
+#, fuzzy
+msgid "AF position: left"
+msgstr "AF Position: Left"
+
+#: libexif/olympus/mnote-olympus-entry.c:415
+#, fuzzy
+msgid "AF position: right"
+msgstr "AF Position: Right"
+
+#: libexif/olympus/mnote-olympus-entry.c:416
+#, fuzzy
+msgid "AF position: upper-left"
+msgstr "AF Position: Upper-left"
+
+#: libexif/olympus/mnote-olympus-entry.c:417
+#, fuzzy
+msgid "AF position: upper-right"
+msgstr "AF Position: Upper-right"
+
+#: libexif/olympus/mnote-olympus-entry.c:418
+#, fuzzy
+msgid "AF position: lower-left"
+msgstr "AF Position: Lower-left"
+
+#: libexif/olympus/mnote-olympus-entry.c:419
+#, fuzzy
+msgid "AF position: lower-right"
+msgstr "AF Position: Lower-right"
+
+#: libexif/olympus/mnote-olympus-entry.c:420
+#, fuzzy
+msgid "AF position: far left"
+msgstr "AF Position: Far Left"
+
+#: libexif/olympus/mnote-olympus-entry.c:421
+#, fuzzy
+msgid "AF position: far right"
+msgstr "AF Position: Far Right"
+
+#: libexif/olympus/mnote-olympus-entry.c:422
+#, fuzzy
+msgid "Unknown AF position"
+msgstr "Unknown AF Position"
+
+#: libexif/olympus/mnote-olympus-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:503
+#, c-format
+msgid "Internal error (unknown value %hi)"
+msgstr "Internal error (unknown value %hi)"
+
+#: libexif/olympus/mnote-olympus-entry.c:441
+#: libexif/olympus/mnote-olympus-entry.c:511
+#, c-format
+msgid "Unknown value %hi"
+msgstr "Unknown value %hi"
+
+#: libexif/olympus/mnote-olympus-entry.c:536
+#: libexif/olympus/mnote-olympus-entry.c:556
+#, c-format
+msgid "Unknown %hu"
+msgstr "Unknown %hu"
+
+#: libexif/olympus/mnote-olympus-entry.c:553
+msgid "2 sec."
+msgstr "2 sec."
+
+#: libexif/olympus/mnote-olympus-entry.c:592
+#, fuzzy
+msgid "Fast"
+msgstr "fast"
+
+#: libexif/olympus/mnote-olympus-entry.c:696
+msgid "Automatic"
+msgstr "Automatic"
+
+#: libexif/olympus/mnote-olympus-entry.c:726
+#, c-format
+msgid "Manual: %liK"
+msgstr "Manual: %liK"
+
+#: libexif/olympus/mnote-olympus-entry.c:729
+#, fuzzy
+msgid "Manual: unknown"
+msgstr "Manual: Unknown"
+
+#: libexif/olympus/mnote-olympus-entry.c:735
+msgid "One-touch"
+msgstr "One-touch"
+
+#: libexif/olympus/mnote-olympus-entry.c:791
+#: libexif/olympus/mnote-olympus-entry.c:801
+msgid "Infinite"
+msgstr "Infinite"
+
+#: libexif/olympus/mnote-olympus-entry.c:809
+#, c-format
+msgid "%i bytes unknown data: "
+msgstr "%i bytes unknown data: "
+
+#: libexif/olympus/mnote-olympus-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:53
+msgid "ISO Setting"
+msgstr "ISO Setting"
+
+#: libexif/olympus/mnote-olympus-tag.c:39
+msgid "Color Mode (?)"
+msgstr "Colour Mode (?)"
+
+#: libexif/olympus/mnote-olympus-tag.c:42
+msgid "Image Sharpening"
+msgstr "Image Sharpening"
+
+#: libexif/olympus/mnote-olympus-tag.c:44
+msgid "Flash Setting"
+msgstr "Flash Setting"
+
+#: libexif/olympus/mnote-olympus-tag.c:46
+msgid "White Balance Fine Adjustment"
+msgstr "White Balance Fine Adjustment"
+
+#: libexif/olympus/mnote-olympus-tag.c:47
+msgid "White Balance RB"
+msgstr "White Balance RB"
+
+#: libexif/olympus/mnote-olympus-tag.c:49
+msgid "ISO Selection"
+msgstr "ISO Selection"
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Preview Image IFD"
+msgstr "Preview Image IFD"
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Offset of the preview image directory (IFD) inside the file."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:51
+msgid "Exposurediff ?"
+msgstr "Exposurediff ?"
+
+#: libexif/olympus/mnote-olympus-tag.c:54
+msgid "Image Boundary"
+msgstr "Image Boundary"
+
+#: libexif/olympus/mnote-olympus-tag.c:56
+msgid "Flash Exposure Bracket Value"
+msgstr "Flash Exposure Bracket Value"
+
+#: libexif/olympus/mnote-olympus-tag.c:57
+msgid "Exposure Bracket Value"
+msgstr "Exposure Bracket Value"
+
+#: libexif/olympus/mnote-olympus-tag.c:58
+#: libexif/olympus/mnote-olympus-tag.c:96
+msgid "Image Adjustment"
+msgstr "Image Adjustment"
+
+#: libexif/olympus/mnote-olympus-tag.c:59
+msgid "Tone Compensation"
+msgstr "Tone Compensation"
+
+#: libexif/olympus/mnote-olympus-tag.c:60
+msgid "Adapter"
+msgstr "Adaptor"
+
+#: libexif/olympus/mnote-olympus-tag.c:62
+msgid "Lens"
+msgstr "Lens"
+
+#: libexif/olympus/mnote-olympus-tag.c:63
+#: libexif/olympus/mnote-olympus-tag.c:135
+#: libexif/olympus/mnote-olympus-tag.c:185
+msgid "Manual Focus Distance"
+msgstr "Manual Focus Distance"
+
+#: libexif/olympus/mnote-olympus-tag.c:65
+msgid "Flash Used"
+msgstr "Flash Used"
+
+#: libexif/olympus/mnote-olympus-tag.c:66
+msgid "AF Focus Position"
+msgstr "AF Focus Position"
+
+#: libexif/olympus/mnote-olympus-tag.c:67
+msgid "Bracketing"
+msgstr "Bracketing"
+
+#: libexif/olympus/mnote-olympus-tag.c:69
+msgid "Lens F Stops"
+msgstr "Lens F Stops"
+
+#: libexif/olympus/mnote-olympus-tag.c:70
+msgid "Contrast Curve"
+msgstr "Contrast Curve"
+
+#: libexif/olympus/mnote-olympus-tag.c:71
+#: libexif/olympus/mnote-olympus-tag.c:95
+#: libexif/pentax/mnote-pentax-tag.c:134
+msgid "Color Mode"
+msgstr "Colour Mode"
+
+#: libexif/olympus/mnote-olympus-tag.c:72
+msgid "Light Type"
+msgstr "Light Type"
+
+#: libexif/olympus/mnote-olympus-tag.c:74
+msgid "Hue Adjustment"
+msgstr "Hue Adjustment"
+
+#: libexif/olympus/mnote-olympus-tag.c:76
+#: libexif/olympus/mnote-olympus-tag.c:163
+#: libexif/pentax/mnote-pentax-tag.c:108
+msgid "Noise Reduction"
+msgstr "Noise Reduction"
+
+#: libexif/olympus/mnote-olympus-tag.c:79
+msgid "Sensor Pixel Size"
+msgstr "Sensor Pixel Size"
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+#, fuzzy
+msgid "Image Data Size"
+msgstr "Image Datasize"
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Size of compressed image data in bytes."
+msgstr "Size of compressed image data in bytes."
+
+#: libexif/olympus/mnote-olympus-tag.c:84
+msgid "Total Number of Pictures Taken"
+msgstr "Total Number of Pictures Taken"
+
+#: libexif/olympus/mnote-olympus-tag.c:86
+msgid "Optimize Image"
+msgstr "Optimise Image"
+
+#: libexif/olympus/mnote-olympus-tag.c:88
+msgid "Vari Program"
+msgstr "Vari Program"
+
+#: libexif/olympus/mnote-olympus-tag.c:89
+msgid "Capture Editor Data"
+msgstr "Capture Editor Data"
+
+#: libexif/olympus/mnote-olympus-tag.c:90
+msgid "Capture Editor Version"
+msgstr "Capture Editor Version"
+
+#: libexif/olympus/mnote-olympus-tag.c:97
+#: libexif/olympus/mnote-olympus-tag.c:183
+msgid "CCD Sensitivity"
+msgstr "CCD Sensitivity"
+
+#: libexif/olympus/mnote-olympus-tag.c:99
+msgid "Focus"
+msgstr "Focus"
+
+#: libexif/olympus/mnote-olympus-tag.c:102
+msgid "Converter"
+msgstr "Converter"
+
+#: libexif/olympus/mnote-olympus-tag.c:105
+msgid "Thumbnail Image"
+msgstr "Thumbnail Image"
+
+#: libexif/olympus/mnote-olympus-tag.c:106
+msgid "Speed/Sequence/Panorama Direction"
+msgstr "Speed/Sequence/Panorama Direction"
+
+#: libexif/olympus/mnote-olympus-tag.c:109
+#, fuzzy
+msgid "Black & White Mode"
+msgstr "Black & White"
+
+#: libexif/olympus/mnote-olympus-tag.c:111
+msgid "Focal Plane Diagonal"
+msgstr "Focal Plane Diagonal"
+
+#: libexif/olympus/mnote-olympus-tag.c:112
+msgid "Lens Distortion Parameters"
+msgstr "Lens Distortion Parameters"
+
+#: libexif/olympus/mnote-olympus-tag.c:114
+msgid "Info"
+msgstr "Info"
+
+#: libexif/olympus/mnote-olympus-tag.c:115
+msgid "Camera ID"
+msgstr "Camera ID"
+
+#: libexif/olympus/mnote-olympus-tag.c:116
+msgid "Precapture Frames"
+msgstr "Precapture Frames"
+
+#: libexif/olympus/mnote-olympus-tag.c:117
+msgid "White Board"
+msgstr "White Board"
+
+#: libexif/olympus/mnote-olympus-tag.c:118
+msgid "One Touch White Balance"
+msgstr "One Touch White Balance"
+
+#: libexif/olympus/mnote-olympus-tag.c:119
+msgid "White Balance Bracket"
+msgstr "White Balance Bracket"
+
+#: libexif/olympus/mnote-olympus-tag.c:120
+#: libexif/pentax/mnote-pentax-tag.c:123
+msgid "White Balance Bias"
+msgstr "White Balance Bias"
+
+#: libexif/olympus/mnote-olympus-tag.c:121
+msgid "Data Dump"
+msgstr "Data Dump"
+
+#: libexif/olympus/mnote-olympus-tag.c:124
+msgid "ISO Value"
+msgstr "ISO Value"
+
+#: libexif/olympus/mnote-olympus-tag.c:125
+msgid "Aperture Value"
+msgstr "Aperture Value"
+
+#: libexif/olympus/mnote-olympus-tag.c:126
+msgid "Brightness Value"
+msgstr "Brightness Value"
+
+#: libexif/olympus/mnote-olympus-tag.c:128
+msgid "Flash Device"
+msgstr "Flash Device"
+
+#: libexif/olympus/mnote-olympus-tag.c:130
+msgid "Sensor Temperature"
+msgstr "Sensor Temperature"
+
+#: libexif/olympus/mnote-olympus-tag.c:131
+msgid "Lens Temperature"
+msgstr "Lens Temperature"
+
+#: libexif/olympus/mnote-olympus-tag.c:132
+msgid "Light Condition"
+msgstr "Light Condition"
+
+#: libexif/olympus/mnote-olympus-tag.c:136
+msgid "Zoom Step Count"
+msgstr "Zoom Step Count"
+
+#: libexif/olympus/mnote-olympus-tag.c:137
+msgid "Focus Step Count"
+msgstr "Focus Step Count"
+
+#: libexif/olympus/mnote-olympus-tag.c:138
+msgid "Sharpness Setting"
+msgstr "Sharpness Setting"
+
+#: libexif/olympus/mnote-olympus-tag.c:139
+msgid "Flash Charge Level"
+msgstr "Flash Charge Level"
+
+#: libexif/olympus/mnote-olympus-tag.c:140
+msgid "Color Matrix"
+msgstr "Colour Matrix"
+
+#: libexif/olympus/mnote-olympus-tag.c:141
+msgid "Black Level"
+msgstr "Black Level"
+
+#: libexif/olympus/mnote-olympus-tag.c:142
+msgid "White Balance Setting"
+msgstr "White Balance Setting"
+
+#: libexif/olympus/mnote-olympus-tag.c:143
+#: libexif/pentax/mnote-pentax-tag.c:87
+msgid "Red Balance"
+msgstr "Red Balance"
+
+#: libexif/olympus/mnote-olympus-tag.c:144
+#: libexif/pentax/mnote-pentax-tag.c:86
+msgid "Blue Balance"
+msgstr "Blue Balance"
+
+#: libexif/olympus/mnote-olympus-tag.c:145
+msgid "Color Matrix Number"
+msgstr "Colour Matrix Number"
+
+#: libexif/olympus/mnote-olympus-tag.c:147
+msgid "Flash Exposure Comp"
+msgstr "Flash Exposure Comp"
+
+#: libexif/olympus/mnote-olympus-tag.c:148
+msgid "Internal Flash Table"
+msgstr "Internal Flash Table"
+
+#: libexif/olympus/mnote-olympus-tag.c:149
+msgid "External Flash G Value"
+msgstr "External Flash G Value"
+
+#: libexif/olympus/mnote-olympus-tag.c:150
+msgid "External Flash Bounce"
+msgstr "External Flash Bounce"
+
+#: libexif/olympus/mnote-olympus-tag.c:151
+msgid "External Flash Zoom"
+msgstr "External Flash Zoom"
+
+#: libexif/olympus/mnote-olympus-tag.c:152
+msgid "External Flash Mode"
+msgstr "External Flash Mode"
+
+#: libexif/olympus/mnote-olympus-tag.c:153
+msgid "Contrast Setting"
+msgstr "Contrast Setting"
+
+#: libexif/olympus/mnote-olympus-tag.c:154
+msgid "Sharpness Factor"
+msgstr "Sharpness Factor"
+
+#: libexif/olympus/mnote-olympus-tag.c:155
+msgid "Color Control"
+msgstr "Colour Control"
+
+#: libexif/olympus/mnote-olympus-tag.c:156
+msgid "Olympus Image Width"
+msgstr "Olympus Image Width"
+
+#: libexif/olympus/mnote-olympus-tag.c:157
+msgid "Olympus Image Height"
+msgstr "Olympus Image Height"
+
+#: libexif/olympus/mnote-olympus-tag.c:158
+msgid "Scene Detect"
+msgstr "Scene Detect"
+
+#: libexif/olympus/mnote-olympus-tag.c:159
+msgid "Compression Ratio"
+msgstr "Compression Ratio"
+
+#: libexif/olympus/mnote-olympus-tag.c:160
+msgid "Preview Image Valid"
+msgstr "Preview Image Valid"
+
+#: libexif/olympus/mnote-olympus-tag.c:161
+msgid "AF Result"
+msgstr "AF Result"
+
+#: libexif/olympus/mnote-olympus-tag.c:162
+msgid "CCD Scan Mode"
+msgstr "CCD Scan Mode"
+
+#: libexif/olympus/mnote-olympus-tag.c:164
+msgid "Infinity Lens Step"
+msgstr "Infinity Lens Step"
+
+#: libexif/olympus/mnote-olympus-tag.c:165
+msgid "Near Lens Step"
+msgstr "Near Lens Step"
+
+#: libexif/olympus/mnote-olympus-tag.c:166
+msgid "Light Value Center"
+msgstr "Light Value Centre"
+
+#: libexif/olympus/mnote-olympus-tag.c:167
+msgid "Light Value Periphery"
+msgstr "Light Value Periphery"
+
+#: libexif/olympus/mnote-olympus-tag.c:170
+msgid "Sequential Shot"
+msgstr "Sequential Shot"
+
+#: libexif/olympus/mnote-olympus-tag.c:171
+msgid "Wide Range"
+msgstr "Wide Range"
+
+#: libexif/olympus/mnote-olympus-tag.c:172
+msgid "Color Adjustment Mode"
+msgstr "Colour Adjustment Mode"
+
+#: libexif/olympus/mnote-olympus-tag.c:174
+msgid "Quick Shot"
+msgstr "Quick Shot"
+
+#: libexif/olympus/mnote-olympus-tag.c:176
+msgid "Voice Memo"
+msgstr "Voice Memo"
+
+#: libexif/olympus/mnote-olympus-tag.c:177
+msgid "Record Shutter Release"
+msgstr "Record Shutter Release"
+
+#: libexif/olympus/mnote-olympus-tag.c:178
+msgid "Flicker Reduce"
+msgstr "Flicker Reduce"
+
+#: libexif/olympus/mnote-olympus-tag.c:179
+msgid "Optical Zoom"
+msgstr "Optical Zoom"
+
+#: libexif/olympus/mnote-olympus-tag.c:181
+msgid "Light Source Special"
+msgstr "Light Source Special"
+
+#: libexif/olympus/mnote-olympus-tag.c:182
+msgid "Resaved"
+msgstr "Resaved"
+
+#: libexif/olympus/mnote-olympus-tag.c:184
+msgid "Scene Select"
+msgstr "Scene Select"
+
+#: libexif/olympus/mnote-olympus-tag.c:186
+msgid "Sequence Shot Interval"
+msgstr "Sequence Shot Interval"
+
+#: libexif/olympus/mnote-olympus-tag.c:189
+msgid "Epson Image Width"
+msgstr "Epson Image Width"
+
+#: libexif/olympus/mnote-olympus-tag.c:190
+msgid "Epson Image Height"
+msgstr "Epson Image Height"
+
+#: libexif/olympus/mnote-olympus-tag.c:191
+msgid "Epson Software Version"
+msgstr "Epson Software Version"
+
+#: libexif/pentax/mnote-pentax-entry.c:80
+#: libexif/pentax/mnote-pentax-entry.c:134
+msgid "Multi-exposure"
+msgstr "Multi-exposure"
+
+#: libexif/pentax/mnote-pentax-entry.c:83
+#: libexif/pentax/mnote-pentax-entry.c:137
+msgid "Good"
+msgstr "Good"
+
+#: libexif/pentax/mnote-pentax-entry.c:84
+#: libexif/pentax/mnote-pentax-entry.c:138
+msgid "Better"
+msgstr "Better"
+
+#: libexif/pentax/mnote-pentax-entry.c:92
+msgid "Flash on"
+msgstr "Flash on"
+
+#: libexif/pentax/mnote-pentax-entry.c:140
+msgid "TIFF"
+msgstr "TIFF"
+
+#: libexif/pentax/mnote-pentax-entry.c:150
+msgid "2560x1920 or 2304x1728"
+msgstr "2560x1920 or 2304x1728"
+
+#: libexif/pentax/mnote-pentax-entry.c:156
+msgid "2304x1728 or 2592x1944"
+msgstr "2304x1728 or 2592x1944"
+
+#: libexif/pentax/mnote-pentax-entry.c:158
+msgid "2816x2212 or 2816x2112"
+msgstr "2816x2212 or 2816x2112"
+
+#: libexif/pentax/mnote-pentax-entry.c:171
+#, fuzzy
+msgid "Surf & snow"
+msgstr "Surf & Snow"
+
+#: libexif/pentax/mnote-pentax-entry.c:172
+#, fuzzy
+msgid "Sunset or candlelight"
+msgstr "Sunset or Candlelight"
+
+#: libexif/pentax/mnote-pentax-entry.c:173
+msgid "Autumn"
+msgstr "Autumn"
+
+#: libexif/pentax/mnote-pentax-entry.c:178
+#, fuzzy
+msgid "Self portrait"
+msgstr "Self Portrait"
+
+#: libexif/pentax/mnote-pentax-entry.c:179
+msgid "Illustrations"
+msgstr "Illustrations"
+
+#: libexif/pentax/mnote-pentax-entry.c:180
+#, fuzzy
+msgid "Digital filter"
+msgstr "Digital Filter"
+
+#: libexif/pentax/mnote-pentax-entry.c:182
+msgid "Food"
+msgstr "Food"
+
+#: libexif/pentax/mnote-pentax-entry.c:183
+#, fuzzy
+msgid "Green mode"
+msgstr "Green Mode"
+
+#: libexif/pentax/mnote-pentax-entry.c:184
+#, fuzzy
+msgid "Light pet"
+msgstr "Light Pet"
+
+#: libexif/pentax/mnote-pentax-entry.c:185
+#, fuzzy
+msgid "Dark pet"
+msgstr "Dark Pet"
+
+#: libexif/pentax/mnote-pentax-entry.c:186
+#, fuzzy
+msgid "Medium pet"
+msgstr "Medium Pet"
+
+#: libexif/pentax/mnote-pentax-entry.c:188
+#: libexif/pentax/mnote-pentax-entry.c:296
+msgid "Candlelight"
+msgstr "Candlelight"
+
+#: libexif/pentax/mnote-pentax-entry.c:189
+#, fuzzy
+msgid "Natural skin tone"
+msgstr "Natural Skin Tone"
+
+#: libexif/pentax/mnote-pentax-entry.c:190
+#, fuzzy
+msgid "Synchro sound record"
+msgstr "Synchro Sound Record"
+
+#: libexif/pentax/mnote-pentax-entry.c:191
+#, fuzzy
+msgid "Frame composite"
+msgstr "Frame Composite"
+
+#: libexif/pentax/mnote-pentax-entry.c:194
+#, fuzzy
+msgid "Auto, did not fire"
+msgstr "Auto, Did not fire"
+
+#: libexif/pentax/mnote-pentax-entry.c:196
+#, fuzzy
+msgid "Auto, did not fire, red-eye reduction"
+msgstr "Auto, Did not fire, Red-eye reduction"
+
+#: libexif/pentax/mnote-pentax-entry.c:197
+#, fuzzy
+msgid "Auto, fired"
+msgstr "Auto, Fired"
+
+#: libexif/pentax/mnote-pentax-entry.c:199
+#, fuzzy
+msgid "Auto, fired, red-eye reduction"
+msgstr "Auto, Fired, Red-eye reduction"
+
+#: libexif/pentax/mnote-pentax-entry.c:201
+#, fuzzy
+msgid "On, wireless"
+msgstr "On, Wireless"
+
+#: libexif/pentax/mnote-pentax-entry.c:202
+#, fuzzy
+msgid "On, soft"
+msgstr "On, Soft"
+
+#: libexif/pentax/mnote-pentax-entry.c:203
+#, fuzzy
+msgid "On, slow-sync"
+msgstr "On, Slow-sync"
+
+#: libexif/pentax/mnote-pentax-entry.c:204
+#, fuzzy
+msgid "On, slow-sync, red-eye reduction"
+msgstr "On, Slow-sync, Red-eye reduction"
+
+#: libexif/pentax/mnote-pentax-entry.c:205
+#, fuzzy
+msgid "On, trailing-curtain sync"
+msgstr "On, Trailing-curtain Sync"
+
+#: libexif/pentax/mnote-pentax-entry.c:213
+msgid "AF-S"
+msgstr "AF-S"
+
+#: libexif/pentax/mnote-pentax-entry.c:214
+msgid "AF-C"
+msgstr "AF-C"
+
+#: libexif/pentax/mnote-pentax-entry.c:217
+msgid "Upper-left"
+msgstr "Upper-left"
+
+#: libexif/pentax/mnote-pentax-entry.c:218
+msgid "Top"
+msgstr "Top"
+
+#: libexif/pentax/mnote-pentax-entry.c:219
+msgid "Upper-right"
+msgstr "Upper-right"
+
+#: libexif/pentax/mnote-pentax-entry.c:221
+msgid "Mid-left"
+msgstr "Mid-left"
+
+#: libexif/pentax/mnote-pentax-entry.c:223
+msgid "Mid-right"
+msgstr "Mid-right"
+
+#: libexif/pentax/mnote-pentax-entry.c:225
+msgid "Lower-left"
+msgstr "Lower-left"
+
+#: libexif/pentax/mnote-pentax-entry.c:226
+msgid "Bottom"
+msgstr "Bottom"
+
+#: libexif/pentax/mnote-pentax-entry.c:227
+msgid "Lower-right"
+msgstr "Lower-right"
+
+#: libexif/pentax/mnote-pentax-entry.c:228
+#, fuzzy
+msgid "Fixed center"
+msgstr "Fixed Centre"
+
+#: libexif/pentax/mnote-pentax-entry.c:232
+msgid "Multiple"
+msgstr "Multiple"
+
+#: libexif/pentax/mnote-pentax-entry.c:234
+msgid "Top-center"
+msgstr "Top-centre"
+
+#: libexif/pentax/mnote-pentax-entry.c:240
+msgid "Bottom-center"
+msgstr "Bottom-centre"
+
+#: libexif/pentax/mnote-pentax-entry.c:257
+#, fuzzy
+msgid "User selected"
+msgstr "User Selected"
+
+#: libexif/pentax/mnote-pentax-entry.c:282
+msgid "3008x2008 or 3040x2024"
+msgstr "3008x2008 or 3040x2024"
+
+#: libexif/pentax/mnote-pentax-entry.c:293
+#, fuzzy
+msgid "Digital filter?"
+msgstr "Digital Filter?"
+
+#: libexif/pentax/mnote-pentax-entry.c:374
+#: libexif/pentax/mnote-pentax-entry.c:383
+#, c-format
+msgid "Internal error (unknown value %i %i)"
+msgstr "Internal error (unknown value %i %i)"
+
+#: libexif/pentax/mnote-pentax-tag.c:35 libexif/pentax/mnote-pentax-tag.c:63
+msgid "Capture Mode"
+msgstr "Capture Mode"
+
+#: libexif/pentax/mnote-pentax-tag.c:36 libexif/pentax/mnote-pentax-tag.c:70
+#: libexif/pentax/mnote-pentax-tag.c:129
+msgid "Quality Level"
+msgstr "Quality Level"
+
+#: libexif/pentax/mnote-pentax-tag.c:54
+#, fuzzy
+msgid "ISO Speed"
+msgstr "ISOSpeed"
+
+#: libexif/pentax/mnote-pentax-tag.c:56
+msgid "Colors"
+msgstr "Colours"
+
+#: libexif/pentax/mnote-pentax-tag.c:59
+msgid "PrintIM Settings"
+msgstr "PrintIM Settings"
+
+#: libexif/pentax/mnote-pentax-tag.c:60 libexif/pentax/mnote-pentax-tag.c:131
+msgid "Time Zone"
+msgstr "Time Zone"
+
+#: libexif/pentax/mnote-pentax-tag.c:61
+msgid "Daylight Savings"
+msgstr "Daylight Savings"
+
+#: libexif/pentax/mnote-pentax-tag.c:64
+msgid "Preview Size"
+msgstr "Preview Size"
+
+#: libexif/pentax/mnote-pentax-tag.c:65
+msgid "Preview Length"
+msgstr "Preview Length"
+
+#: libexif/pentax/mnote-pentax-tag.c:66 libexif/pentax/mnote-pentax-tag.c:122
+msgid "Preview Start"
+msgstr "Preview Start"
+
+#: libexif/pentax/mnote-pentax-tag.c:67
+msgid "Model Identification"
+msgstr "Model Identification"
+
+#: libexif/pentax/mnote-pentax-tag.c:68
+msgid "Date"
+msgstr "Date"
+
+#: libexif/pentax/mnote-pentax-tag.c:69
+msgid "Time"
+msgstr "Time"
+
+#: libexif/pentax/mnote-pentax-tag.c:75
+msgid "AF Point Selected"
+msgstr "AF Point Selected"
+
+#: libexif/pentax/mnote-pentax-tag.c:76
+msgid "Auto AF Point"
+msgstr "Auto AF Point"
+
+#: libexif/pentax/mnote-pentax-tag.c:77
+msgid "Focus Position"
+msgstr "Focus Position"
+
+#: libexif/pentax/mnote-pentax-tag.c:80
+msgid "ISO Number"
+msgstr "ISO Number"
+
+#: libexif/pentax/mnote-pentax-tag.c:83
+msgid "Auto Bracketing"
+msgstr "Auto Bracketing"
+
+#: libexif/pentax/mnote-pentax-tag.c:85
+msgid "White Balance Mode"
+msgstr "White Balance Mode"
+
+#: libexif/pentax/mnote-pentax-tag.c:93
+msgid "World Time Location"
+msgstr "World Time Location"
+
+#: libexif/pentax/mnote-pentax-tag.c:94
+msgid "Hometown City"
+msgstr "Hometown City"
+
+#: libexif/pentax/mnote-pentax-tag.c:95
+msgid "Destination City"
+msgstr "Destination City"
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Hometown DST"
+msgstr "Hometown DST"
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Home Daylight Savings Time"
+msgstr "Home Daylight Savings Time"
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination DST"
+msgstr "Destination DST"
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination Daylight Savings Time"
+msgstr "Destination Daylight Savings Time"
+
+#: libexif/pentax/mnote-pentax-tag.c:99
+msgid "Image Processing"
+msgstr "Image Processing"
+
+#: libexif/pentax/mnote-pentax-tag.c:100
+msgid "Picture Mode (2)"
+msgstr "Picture Mode (2)"
+
+#: libexif/pentax/mnote-pentax-tag.c:103
+msgid "Image Area Offset"
+msgstr "Image Area Offset"
+
+#: libexif/pentax/mnote-pentax-tag.c:104
+msgid "Raw Image Size"
+msgstr "Raw Image Size"
+
+#: libexif/pentax/mnote-pentax-tag.c:105
+msgid "Autofocus Points Used"
+msgstr "Autofocus Points Used"
+
+#: libexif/pentax/mnote-pentax-tag.c:107
+msgid "Camera Temperature"
+msgstr "Camera Temperature"
+
+#: libexif/pentax/mnote-pentax-tag.c:110
+msgid "Image Tone"
+msgstr "Image Tone"
+
+#: libexif/pentax/mnote-pentax-tag.c:111
+msgid "Shake Reduction Info"
+msgstr "Shake Reduction Info"
+
+#: libexif/pentax/mnote-pentax-tag.c:112
+msgid "Black Point"
+msgstr "Black Point"
+
+#: libexif/pentax/mnote-pentax-tag.c:114
+msgid "AE Info"
+msgstr "AE Info"
+
+#: libexif/pentax/mnote-pentax-tag.c:115
+msgid "Lens Info"
+msgstr "Lens Info"
+
+#: libexif/pentax/mnote-pentax-tag.c:116
+msgid "Flash Info"
+msgstr "Flash Info"
+
+#: libexif/pentax/mnote-pentax-tag.c:117
+msgid "Camera Info"
+msgstr "Camera Info"
+
+#: libexif/pentax/mnote-pentax-tag.c:118
+msgid "Battery Info"
+msgstr "Battery Info"
+
+#: libexif/pentax/mnote-pentax-tag.c:119
+msgid "Hometown City Code"
+msgstr "Hometown City Code"
+
+#: libexif/pentax/mnote-pentax-tag.c:120
+msgid "Destination City Code"
+msgstr "Destination City Code"
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Object Distance"
+msgstr "Object Distance"
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Distance of photographed object in millimeters."
+msgstr "Distance of photographed object in millimeters."
+
+#: libexif/pentax/mnote-pentax-tag.c:126
+msgid "Flash Distance"
+msgstr "Flash Distance"
+
+#: libexif/pentax/mnote-pentax-tag.c:132
+msgid "Bestshot Mode"
+msgstr "Bestshot Mode"
+
+#: libexif/pentax/mnote-pentax-tag.c:133
+msgid "CCS ISO Sensitivity"
+msgstr "CCS ISO Sensitivity"
+
+#: libexif/pentax/mnote-pentax-tag.c:135
+msgid "Enhancement"
+msgstr "Enhancement"
+
+#: libexif/pentax/mnote-pentax-tag.c:136
+msgid "Finer"
+msgstr "Finer"
+
+#: test/nls/test-nls.c:20 test/nls/test-nls.c:23 test/nls/test-nls.c:24
+msgid "[DO_NOT_TRANSLATE_THIS_MARKER]"
+msgstr "[DO_NOT_TRANSLATE_THIS_MARKER]"
+
+#~ msgid "On + Red-eye reduction"
+#~ msgstr "On + Red-eye reduction"
+
+#~ msgid "Center + Right"
+#~ msgstr "Centre + Right"
+
+#~ msgid "Left + Right"
+#~ msgstr "Left + Right"
+
+#~ msgid "Manual Temperature (Kelvin)"
+#~ msgstr "Manual Temperature (Kelvin)"
+
+#~ msgid "PC Set1"
+#~ msgstr "PC Set1"
+
+#~ msgid "PC Set2"
+#~ msgstr "PC Set2"
+
+#~ msgid "PC Set3"
+#~ msgstr "PC Set3"
+
+#~ msgid "Daylight Fluorescent"
+#~ msgstr "Daylight Fluorescent"
+
+#~ msgid "top - left"
+#~ msgstr "top - left"
+
+#~ msgid "top - right"
+#~ msgstr "top - right"
+
+#~ msgid "bottom - right"
+#~ msgstr "bottom - right"
+
+#~ msgid "bottom - left"
+#~ msgstr "bottom - left"
+
+#~ msgid "Center-Weighted Average"
+#~ msgstr "Centre-Weighted Average"
+
+#~ msgid "flash"
+#~ msgstr "flash"
+
+#~ msgid "%.02lf EV"
+#~ msgstr "%.02lf EV"
+
+#~ msgid "GPS satellites used for measurement"
+#~ msgstr "GPS satellites used for measurement"
+
+#~ msgid "y-Resolution"
+#~ msgstr "y-Resolution"
+
+#~ msgid "OECF"
+#~ msgstr "OECF"
+
+#~ msgid "Shutter speed"
+#~ msgstr "Shutter speed"
+
+#~ msgid "Focal Plane y-Resolution"
+#~ msgstr "Focal Plane y-Resolution"
+
+#~ msgid "Daylight-color fluorescent"
+#~ msgstr "Daylight-colour fluorescent"
+
+#~ msgid "DayWhite-color fluorescent"
+#~ msgstr "DayWhite-colour fluorescent"
+
+#~ msgid "Macro mode"
+#~ msgstr "Macro mode"
+
+#~ msgid "Super Macro"
+#~ msgstr "Super Macro"
+
+#~ msgid "normal"
+#~ msgstr "normal"
+
+#~ msgid "unknown"
+#~ msgstr "unknown"
+
+#~ msgid "panorama"
+#~ msgstr "panorama"
+
+#~ msgid "left to right"
+#~ msgstr "left to right"
+
+#~ msgid "right to left"
+#~ msgstr "right to left"
+
+#~ msgid "bottom to top"
+#~ msgstr "bottom to top"
+
+#~ msgid "top to bottom"
+#~ msgstr "top to bottom"
+
+#~ msgid "Noisereduction"
+#~ msgstr "Noisereduction"
+
+#~ msgid "B&W Mode"
+#~ msgstr "B&W Mode"
+
+#~ msgid "Self Timer"
+#~ msgstr "Self Timer"
+
+#~ msgid "Night-scene"
+#~ msgstr "Night-scene"
+
+#~ msgid "Red-eye Reduction"
+#~ msgstr "Red-eye Reduction"
+
+#~ msgid "Night Scene"
+#~ msgstr "Night Scene"
+
+#~ msgid "Pan Focus"
+#~ msgstr "Pan Focus"
+
+#~ msgid "Daywhite Fluorescent"
+#~ msgstr "Daywhite Fluorescent"
+
+#~ msgid "White Fluorescent"
+#~ msgstr "White Fluorescent"
+
+#~ msgid "PictureMode"
+#~ msgstr "PictureMode"
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/es.gmo b/framework/modules/c_LibExifModule/libexif-0.6.20/po/es.gmo
new file mode 100644
index 0000000000000000000000000000000000000000..f951b1930d1d7cc3ad476727fcb76b8b0abaf83e
Binary files /dev/null and b/framework/modules/c_LibExifModule/libexif-0.6.20/po/es.gmo differ
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/es.po b/framework/modules/c_LibExifModule/libexif-0.6.20/po/es.po
new file mode 100644
index 0000000000000000000000000000000000000000..e7e42513f3ae14e891dde54b233b9ccfdc974472
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/es.po
@@ -0,0 +1,6460 @@
+# libexif Spanish Translation.
+# Copyright:
+#   Free Software Foundation, Inc., 2002
+#   Fabian Mandelbaum <fabman@mandrakesoft.com>, 2002
+# This file is distributed under the same license as the libexif package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: libexif\n"
+"Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-12-15 22:14-0800\n"
+"PO-Revision-Date: 2005-03-12 05:43+0100\n"
+"Last-Translator: Fabian Mandelbaum <fabman@mandrakesoft.com>\n"
+"Language-Team: Spanish <es@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: libexif/canon/mnote-canon-entry.c:40 libexif/fuji/mnote-fuji-entry.c:35
+#: libexif/olympus/mnote-olympus-entry.c:37
+#: libexif/pentax/mnote-pentax-entry.c:39
+#, c-format
+msgid "Invalid format '%s', expected '%s'."
+msgstr "Formato no válido '%s', se esperaba '%s'."
+
+#: libexif/canon/mnote-canon-entry.c:52 libexif/fuji/mnote-fuji-entry.c:47
+#: libexif/olympus/mnote-olympus-entry.c:62
+#: libexif/pentax/mnote-pentax-entry.c:51
+#, c-format
+msgid "Invalid number of components (%i, expected %i)."
+msgstr "Cantidad de componentes no válida (%i, se esperaba %i)."
+
+#: libexif/canon/mnote-canon-entry.c:61
+#: libexif/olympus/mnote-olympus-entry.c:72
+#: libexif/pentax/mnote-pentax-entry.c:61
+#, c-format
+msgid "Invalid number of components (%i, expected %i or %i)."
+msgstr "Cantidad de componentes no válida (%i, se esperaba %i o %i)."
+
+#: libexif/canon/mnote-canon-entry.c:76 libexif/canon/mnote-canon-entry.c:130
+#: libexif/canon/mnote-canon-entry.c:182 libexif/exif-entry.c:796
+#: libexif/olympus/mnote-olympus-entry.c:196
+#: libexif/olympus/mnote-olympus-tag.c:108
+#: libexif/pentax/mnote-pentax-entry.c:174
+#: libexif/pentax/mnote-pentax-entry.c:209
+#: libexif/pentax/mnote-pentax-entry.c:297
+msgid "Macro"
+msgstr "Macro"
+
+#: libexif/canon/mnote-canon-entry.c:77 libexif/canon/mnote-canon-entry.c:79
+#: libexif/canon/mnote-canon-entry.c:157 libexif/canon/mnote-canon-entry.c:160
+#: libexif/canon/mnote-canon-entry.c:163 libexif/exif-entry.c:674
+#: libexif/exif-entry.c:677 libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/exif-entry.c:745 libexif/fuji/mnote-fuji-entry.c:64
+#: libexif/olympus/mnote-olympus-entry.c:118
+#: libexif/olympus/mnote-olympus-entry.c:195
+#: libexif/olympus/mnote-olympus-entry.c:203
+#: libexif/olympus/mnote-olympus-entry.c:213
+#: libexif/olympus/mnote-olympus-entry.c:586
+#: libexif/pentax/mnote-pentax-entry.c:105
+#: libexif/pentax/mnote-pentax-entry.c:110
+#: libexif/pentax/mnote-pentax-entry.c:115
+#: libexif/pentax/mnote-pentax-entry.c:208
+msgid "Normal"
+msgstr "Normal"
+
+#: libexif/canon/mnote-canon-entry.c:78
+msgid "Economy"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:80
+#, fuzzy
+msgid "Fine"
+msgstr "pulg"
+
+#: libexif/canon/mnote-canon-entry.c:81 libexif/fuji/mnote-fuji-entry.c:178
+#: libexif/pentax/mnote-pentax-entry.c:141
+msgid "RAW"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:82
+msgid "Superfine"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:83 libexif/canon/mnote-canon-entry.c:301
+#: libexif/canon/mnote-canon-entry.c:304 libexif/canon/mnote-canon-entry.c:312
+#: libexif/canon/mnote-canon-entry.c:345 libexif/canon/mnote-canon-entry.c:357
+#: libexif/canon/mnote-canon-entry.c:370 libexif/canon/mnote-canon-entry.c:372
+#: libexif/canon/mnote-canon-entry.c:574 libexif/canon/mnote-canon-entry.c:671
+#: libexif/fuji/mnote-fuji-entry.c:70 libexif/fuji/mnote-fuji-entry.c:103
+#: libexif/fuji/mnote-fuji-entry.c:107 libexif/fuji/mnote-fuji-entry.c:115
+#: libexif/fuji/mnote-fuji-entry.c:142
+#: libexif/olympus/mnote-olympus-entry.c:178
+#: libexif/olympus/mnote-olympus-entry.c:186
+#: libexif/olympus/mnote-olympus-entry.c:251
+#: libexif/olympus/mnote-olympus-entry.c:530
+#: libexif/olympus/mnote-olympus-entry.c:547
+#: libexif/pentax/mnote-pentax-entry.c:195
+#: libexif/pentax/mnote-pentax-entry.c:260
+msgid "Off"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:84 libexif/canon/mnote-canon-entry.c:167
+#: libexif/canon/mnote-canon-entry.c:180 libexif/canon/mnote-canon-entry.c:328
+#: libexif/canon/mnote-canon-entry.c:400 libexif/fuji/mnote-fuji-entry.c:73
+#: libexif/fuji/mnote-fuji-entry.c:101 libexif/fuji/mnote-fuji-entry.c:111
+#: libexif/fuji/mnote-fuji-entry.c:119
+#: libexif/olympus/mnote-olympus-entry.c:131
+#: libexif/olympus/mnote-olympus-entry.c:183
+#: libexif/olympus/mnote-olympus-entry.c:199
+#: libexif/olympus/mnote-olympus-entry.c:244
+#: libexif/pentax/mnote-pentax-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:88
+#: libexif/pentax/mnote-pentax-entry.c:91
+#: libexif/pentax/mnote-pentax-entry.c:97
+#: libexif/pentax/mnote-pentax-entry.c:131
+#: libexif/pentax/mnote-pentax-entry.c:229
+#: libexif/pentax/mnote-pentax-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:290
+msgid "Auto"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:85 libexif/canon/mnote-canon-entry.c:302
+#: libexif/canon/mnote-canon-entry.c:347 libexif/canon/mnote-canon-entry.c:361
+#: libexif/canon/mnote-canon-entry.c:371 libexif/fuji/mnote-fuji-entry.c:102
+#: libexif/fuji/mnote-fuji-entry.c:108 libexif/fuji/mnote-fuji-entry.c:116
+#: libexif/fuji/mnote-fuji-entry.c:143
+#: libexif/olympus/mnote-olympus-entry.c:179
+#: libexif/olympus/mnote-olympus-entry.c:533
+#: libexif/olympus/mnote-olympus-entry.c:550
+#: libexif/pentax/mnote-pentax-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:261
+msgid "On"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:86 libexif/fuji/mnote-fuji-entry.c:104
+#: libexif/olympus/mnote-olympus-entry.c:184
+#: libexif/pentax/mnote-pentax-entry.c:94
+#, fuzzy
+msgid "Red-eye reduction"
+msgstr "El flash disparó, modo de reducción de ojos rojos."
+
+#: libexif/canon/mnote-canon-entry.c:87
+msgid "Slow synchro"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:88
+#, fuzzy
+msgid "Auto, red-eye reduction"
+msgstr "El flash disparó, modo de reducción de ojos rojos."
+
+#: libexif/canon/mnote-canon-entry.c:89
+#: libexif/pentax/mnote-pentax-entry.c:200
+#, fuzzy
+msgid "On, red-eye reduction"
+msgstr "El flash disparó, modo de reducción de ojos rojos."
+
+#: libexif/canon/mnote-canon-entry.c:90
+#, fuzzy
+msgid "External flash"
+msgstr "Flash"
+
+#: libexif/canon/mnote-canon-entry.c:91 libexif/canon/mnote-canon-entry.c:101
+#: libexif/canon/mnote-canon-entry.c:294
+msgid "Single"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:92 libexif/canon/mnote-canon-entry.c:102
+#: libexif/canon/mnote-canon-entry.c:295
+msgid "Continuous"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:93
+msgid "Movie"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:94
+msgid "Continuous, speed priority"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:95
+msgid "Continuous, low"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:96
+msgid "Continuous, high"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:97
+msgid "One-shot AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:98
+msgid "AI servo AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:99
+msgid "AI focus AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:100 libexif/canon/mnote-canon-entry.c:103
+#, fuzzy
+msgid "Manual focus"
+msgstr "Exposición manual"
+
+#: libexif/canon/mnote-canon-entry.c:104 libexif/canon/mnote-canon-entry.c:132
+#: libexif/canon/mnote-canon-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:212
+#, fuzzy
+msgid "Pan focus"
+msgstr "Exposición manual"
+
+#: libexif/canon/mnote-canon-entry.c:105
+msgid "JPEG"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:106
+msgid "CRW+THM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:107
+msgid "AVI+THM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:108
+msgid "TIF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:109
+msgid "TIF+JPEG"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:110
+msgid "CR2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:111
+msgid "CR2+JPEG"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:112
+#, fuzzy
+msgid "Large"
+msgstr "promedio"
+
+#: libexif/canon/mnote-canon-entry.c:113
+msgid "Medium"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:114
+msgid "Small"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:115
+msgid "Medium 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:116
+msgid "Medium 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:117
+msgid "Medium 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:118
+msgid "Postcard"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:119
+msgid "Widescreen"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:120
+#, fuzzy
+msgid "Full auto"
+msgstr "acción"
+
+#: libexif/canon/mnote-canon-entry.c:121 libexif/canon/mnote-canon-entry.c:179
+#: libexif/canon/mnote-canon-entry.c:201 libexif/canon/mnote-canon-entry.c:285
+#: libexif/canon/mnote-canon-entry.c:392 libexif/exif-entry.c:744
+#: libexif/fuji/mnote-fuji-entry.c:112
+#: libexif/olympus/mnote-olympus-entry.c:90
+#: libexif/olympus/mnote-olympus-entry.c:200
+#: libexif/pentax/mnote-pentax-entry.c:79
+#: libexif/pentax/mnote-pentax-entry.c:102
+#: libexif/pentax/mnote-pentax-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:165
+#: libexif/pentax/mnote-pentax-entry.c:211
+#: libexif/pentax/mnote-pentax-entry.c:250
+msgid "Manual"
+msgstr "Manual"
+
+#: libexif/canon/mnote-canon-entry.c:122 libexif/canon/mnote-canon-entry.c:430
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:755
+#: libexif/fuji/mnote-fuji-entry.c:121 libexif/pentax/mnote-pentax-entry.c:167
+#: libexif/pentax/mnote-pentax-entry.c:301
+msgid "Landscape"
+msgstr "Paisaje"
+
+#: libexif/canon/mnote-canon-entry.c:123
+#, fuzzy
+msgid "Fast shutter"
+msgstr "obturador"
+
+#: libexif/canon/mnote-canon-entry.c:124
+#, fuzzy
+msgid "Slow shutter"
+msgstr "obturador"
+
+#: libexif/canon/mnote-canon-entry.c:125 libexif/fuji/mnote-fuji-entry.c:123
+#: libexif/olympus/mnote-olympus-entry.c:254
+#, fuzzy
+msgid "Night"
+msgstr "Escena nocturna"
+
+#: libexif/canon/mnote-canon-entry.c:126
+msgid "Grayscale"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:127 libexif/canon/mnote-canon-entry.c:308
+#: libexif/pentax/mnote-pentax-entry.c:128
+msgid "Sepia"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:128 libexif/canon/mnote-canon-entry.c:429
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:753
+#: libexif/fuji/mnote-fuji-entry.c:120 libexif/pentax/mnote-pentax-entry.c:166
+#: libexif/pentax/mnote-pentax-entry.c:291
+#: libexif/pentax/mnote-pentax-entry.c:294
+#: libexif/pentax/mnote-pentax-entry.c:300
+msgid "Portrait"
+msgstr "Retrato"
+
+#: libexif/canon/mnote-canon-entry.c:129 libexif/fuji/mnote-fuji-entry.c:122
+#, fuzzy
+msgid "Sports"
+msgstr "Lugar"
+
+#: libexif/canon/mnote-canon-entry.c:131 libexif/canon/mnote-canon-entry.c:309
+#: libexif/canon/mnote-canon-entry.c:335 libexif/canon/mnote-canon-entry.c:407
+#: libexif/fuji/mnote-fuji-entry.c:89 libexif/pentax/mnote-pentax-entry.c:127
+msgid "Black & white"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:133 libexif/canon/mnote-canon-entry.c:305
+msgid "Vivid"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:134 libexif/canon/mnote-canon-entry.c:306
+#: libexif/canon/mnote-canon-entry.c:431
+#, fuzzy
+msgid "Neutral"
+msgstr "Normal"
+
+#: libexif/canon/mnote-canon-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:93
+#, fuzzy
+msgid "Flash off"
+msgstr "Flash"
+
+#: libexif/canon/mnote-canon-entry.c:136
+#, fuzzy
+msgid "Long shutter"
+msgstr "obturador"
+
+#: libexif/canon/mnote-canon-entry.c:137 libexif/canon/mnote-canon-entry.c:188
+#: libexif/olympus/mnote-olympus-entry.c:171
+msgid "Super macro"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:138
+msgid "Foliage"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:139
+msgid "Indoor"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:140 libexif/fuji/mnote-fuji-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:175
+msgid "Fireworks"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:141 libexif/fuji/mnote-fuji-entry.c:133
+msgid "Beach"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:142 libexif/canon/mnote-canon-entry.c:344
+#: libexif/canon/mnote-canon-entry.c:416 libexif/fuji/mnote-fuji-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:292
+#: libexif/pentax/mnote-pentax-entry.c:298
+#, fuzzy
+msgid "Underwater"
+msgstr "Tiempo bueno"
+
+#: libexif/canon/mnote-canon-entry.c:143 libexif/fuji/mnote-fuji-entry.c:134
+msgid "Snow"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:144
+msgid "Kids & pets"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:145
+#, fuzzy
+msgid "Night snapshot"
+msgstr "Escena nocturna"
+
+#: libexif/canon/mnote-canon-entry.c:146
+#, fuzzy
+msgid "Digital macro"
+msgstr "Relación de zoom digital"
+
+#: libexif/canon/mnote-canon-entry.c:147
+msgid "My colors"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:148
+msgid "Still image"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:149
+#, fuzzy
+msgid "Color accent"
+msgstr "Espacio de color"
+
+#: libexif/canon/mnote-canon-entry.c:150
+#, fuzzy
+msgid "Color swap"
+msgstr "Espacio de color"
+
+#: libexif/canon/mnote-canon-entry.c:151
+msgid "Aquarium"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:152
+msgid "ISO 3200"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:153 libexif/canon/mnote-canon-entry.c:348
+#: libexif/canon/mnote-canon-entry.c:365 libexif/canon/mnote-canon-entry.c:417
+#: libexif/olympus/mnote-olympus-entry.c:189
+#: libexif/olympus/mnote-olympus-entry.c:226
+#: libexif/olympus/mnote-olympus-entry.c:451
+#: libexif/pentax/mnote-pentax-entry.c:242
+msgid "None"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:154
+msgid "2x"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:155
+msgid "4x"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:156 libexif/exif-entry.c:702
+#: libexif/exif-entry.c:732
+msgid "Other"
+msgstr "Otro"
+
+#: libexif/canon/mnote-canon-entry.c:158 libexif/canon/mnote-canon-entry.c:161
+#: libexif/canon/mnote-canon-entry.c:164 libexif/canon/mnote-canon-entry.c:398
+#: libexif/fuji/mnote-fuji-entry.c:86 libexif/pentax/mnote-pentax-entry.c:112
+#: libexif/pentax/mnote-pentax-entry.c:117
+msgid "High"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:159 libexif/canon/mnote-canon-entry.c:162
+#: libexif/canon/mnote-canon-entry.c:165 libexif/canon/mnote-canon-entry.c:396
+#: libexif/pentax/mnote-pentax-entry.c:111
+#: libexif/pentax/mnote-pentax-entry.c:116
+msgid "Low"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:166
+msgid "Auto high"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:168
+msgid "50"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:120
+#: libexif/pentax/mnote-pentax-entry.c:122
+msgid "100"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:170
+#: libexif/pentax/mnote-pentax-entry.c:121
+#: libexif/pentax/mnote-pentax-entry.c:123
+msgid "200"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:171
+msgid "400"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:172
+msgid "800"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:173
+msgid "Default"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:174 libexif/exif-entry.c:698
+msgid "Spot"
+msgstr "Lugar"
+
+#: libexif/canon/mnote-canon-entry.c:175 libexif/exif-entry.c:696
+msgid "Average"
+msgstr "Promedio"
+
+#: libexif/canon/mnote-canon-entry.c:176
+msgid "Evaluative"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:177 libexif/exif-entry.c:701
+msgid "Partial"
+msgstr "Parcial"
+
+#: libexif/canon/mnote-canon-entry.c:178 libexif/exif-entry.c:697
+#, fuzzy
+msgid "Center-weighted average"
+msgstr "Promedio Ponderado en el Centro"
+
+#: libexif/canon/mnote-canon-entry.c:181
+#, fuzzy
+msgid "Not known"
+msgstr "Desconocido"
+
+#: libexif/canon/mnote-canon-entry.c:183
+#, fuzzy
+msgid "Very close"
+msgstr "co-situado"
+
+#: libexif/canon/mnote-canon-entry.c:184 libexif/exif-entry.c:797
+#, fuzzy
+msgid "Close"
+msgstr "co-situado"
+
+#: libexif/canon/mnote-canon-entry.c:185
+msgid "Middle range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:186
+#, fuzzy
+msgid "Far range"
+msgstr "Rango de transferencia"
+
+#: libexif/canon/mnote-canon-entry.c:189
+#: libexif/pentax/mnote-pentax-entry.c:210
+msgid "Infinity"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:190
+#, fuzzy
+msgid "Manual AF point selection"
+msgstr "Balance de blanco manual"
+
+#: libexif/canon/mnote-canon-entry.c:191 libexif/canon/mnote-canon-entry.c:349
+msgid "None (MF)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:192
+msgid "Auto-selected"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:193 libexif/canon/mnote-canon-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:224
+#: libexif/pentax/mnote-pentax-entry.c:238
+#, fuzzy
+msgid "Right"
+msgstr "Luz de día"
+
+#: libexif/canon/mnote-canon-entry.c:194 libexif/canon/mnote-canon-entry.c:351
+#: libexif/pentax/mnote-pentax-entry.c:222
+#: libexif/pentax/mnote-pentax-entry.c:237
+#, fuzzy
+msgid "Center"
+msgstr "Centrado"
+
+#: libexif/canon/mnote-canon-entry.c:195 libexif/canon/mnote-canon-entry.c:353
+#: libexif/pentax/mnote-pentax-entry.c:220
+#: libexif/pentax/mnote-pentax-entry.c:236
+msgid "Left"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:196
+msgid "Auto AF point selection"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:197
+msgid "Easy shooting"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:163
+msgid "Program"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:199
+msgid "Tv-priority"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:200
+#, fuzzy
+msgid "Av-priority"
+msgstr "Prioridad de apertura"
+
+#: libexif/canon/mnote-canon-entry.c:202
+msgid "A-DEP"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:203
+msgid "M-DEP"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:204
+msgid "Canon EF 50mm f/1.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:205
+msgid "Canon EF 28mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:206
+msgid "Sigma UC Zoom 35-135mm f/4-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:207
+msgid "Tokina AF193-2 19-35mm f/3.5-4.5"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:208
+msgid "Canon EF 100-300mm F5.6L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:209
+msgid "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:210
+msgid "Canon EF 35mm f/2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:211
+msgid "Canon EF 15mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:212
+msgid "Canon EF 80-200mm f/2.8L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:213
+msgid "Tokina AT-X280AF PRO 28-80mm F2.8 Aspherical"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:214
+msgid "Cosina 100mm f/3.5 Macro AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:215
+msgid "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:216
+msgid "Canon EF 50mm f/1.8 MkII"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:217
+msgid "Tamron SP AF 300mm f/2.8 LD IF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:218
+msgid "Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:219
+msgid "Canon EF 75-300mm f/4-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:220
+msgid "Canon EF 28-80mm f/3.5-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:221
+msgid "Canon EF 28-105mm f/4-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:222
+msgid "Canon EF-S 18-55mm f/3.5-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:223
+msgid "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:224
+msgid "Canon TS-E 24mm f/3.5L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:225
+msgid "Canon TS-E 45mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:226
+msgid "Canon TS-E 90mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:227
+msgid "Canon EF 50mm f/1.0L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:228
+msgid "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:229
+msgid "Canon EF 600mm f/4L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:230
+msgid "Canon EF 200mm f/1.8L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:231
+msgid "Canon EF 300mm f/2.8L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:232
+msgid "Canon EF 85mm f/1.2L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:233
+msgid "Canon EF 400mm f/2.8L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:234
+msgid "Canon EF 500mm f/4.5L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:235
+msgid "Canon EF 300mm f/2.8L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:236
+msgid "Canon EF 500mm f/4L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:237
+msgid "Canon EF 100mm f/2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:238
+msgid "Sigma 20mm EX f/1.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:239
+msgid "Canon EF 200mm f/2.8L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:240
+msgid "Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:241
+msgid "Canon EF 35-350mm f/3.5-5.6L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:242
+msgid "Canon EF 85mm f/1.8 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:243
+msgid "Canon EF 28-105mm f/3.5-4.5 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:244
+msgid "Canon EF 20-35mm f/3.5-4.5 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:245
+msgid "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:246
+msgid "Canon EF 70-200mm f/2.8 L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:247
+msgid "Canon EF 70-200mm f/2.8 L + x1.4"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:248
+msgid "Canon EF 70-200mm f/2.8 L + x2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:249
+msgid "Canon EF 28mm f/1.8 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:250
+msgid "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:251
+msgid "Canon EF 200mm f/2.8L II"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:252
+msgid "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:253
+msgid "Canon EF 135mm f/2L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:254
+msgid "Canon EF 24-85mm f/3.5-4.5 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:255
+msgid "Canon EF 300mm f/4L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:256
+msgid "Canon EF 28-135mm f/3.5-5.6 IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:257
+msgid "Canon EF 35mm f/1.4L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:258
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:259
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:260
+msgid "Canon EF 100-400mm f/4.5-5.6L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:261
+msgid "Canon EF 400mm f/2.8L + x2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:262
+msgid "Canon EF 70-200mm f/4L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:263
+msgid "Canon EF 100mm f/2.8 Macro"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:264
+msgid "Canon EF 400mm f/4 DO IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:265
+msgid "Canon EF 75-300mm f/4-5.6 IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:266
+msgid "Canon EF 50mm f/1.4"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:267
+msgid "Canon EF 28-80 f/3.5-5.6 USM IV"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:268
+msgid "Canon EF 28-200mm f/3.5-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:269
+msgid "Canon EF 90-300mm f/4.5-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:270
+msgid "Canon EF-S 18-55mm f/3.5-4.5 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:271
+msgid "Canon EF 70-200mm f/2.8L IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:272
+msgid "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:273
+msgid "Canon EF 70-200mm f/2.8L IS USM + x2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:274
+msgid "Canon EF 16-35mm f/2.8L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:275
+msgid "Canon EF 24-70mm f/2.8L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:276
+msgid "Canon EF 17-40mm f/4L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:277
+msgid "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:278
+msgid "Canon EF-S 17-85mm f4-5.6 IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:279
+msgid "Canon EF-S10-22mm F3.5-4.5 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:280
+msgid "Canon EF-S60mm F2.8 Macro USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:281
+msgid "Canon EF 24-105mm f/4L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:282
+msgid "Canon EF 70-300mm F4-5.6 IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:283
+msgid "Canon EF 50mm F1.2L USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:284
+msgid "Canon EF 70-200mm f/4L IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:286
+msgid "TTL"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:287
+msgid "A-TTL"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:288
+msgid "E-TTL"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:289
+msgid "FP sync enabled"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:290
+msgid "2nd-curtain sync used"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:291
+msgid "FP sync used"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:292
+#: libexif/olympus/mnote-olympus-entry.c:190
+msgid "Internal"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:293
+#: libexif/olympus/mnote-olympus-entry.c:191
+msgid "External"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:296
+#, fuzzy
+msgid "Normal AE"
+msgstr "Normal"
+
+#: libexif/canon/mnote-canon-entry.c:297
+#, fuzzy
+msgid "Exposure compensation"
+msgstr "Tiempo de exposición"
+
+#: libexif/canon/mnote-canon-entry.c:298
+msgid "AE lock"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:299
+#, fuzzy
+msgid "AE lock + exposure compensation"
+msgstr "Tiempo de exposición"
+
+#: libexif/canon/mnote-canon-entry.c:300
+msgid "No AE"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:303
+msgid "On, shot only"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:307
+msgid "Smooth"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:310 libexif/canon/mnote-canon-entry.c:334
+#: libexif/canon/mnote-canon-entry.c:393 libexif/canon/mnote-canon-entry.c:406
+#: libexif/fuji/mnote-fuji-entry.c:81 libexif/pentax/mnote-pentax-entry.c:87
+#, fuzzy
+msgid "Custom"
+msgstr "Proceso personalizado"
+
+#: libexif/canon/mnote-canon-entry.c:311
+msgid "My color data"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:313 libexif/canon/mnote-canon-entry.c:375
+#: libexif/pentax/mnote-pentax-entry.c:126
+#: libexif/pentax/mnote-pentax-entry.c:145
+msgid "Full"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:314 libexif/canon/mnote-canon-entry.c:374
+msgid "2/3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:315 libexif/canon/mnote-canon-entry.c:373
+msgid "1/3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:321
+msgid "Fixed"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:322 libexif/pentax/mnote-pentax-tag.c:44
+msgid "Zoom"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:329
+#, fuzzy
+msgid "Sunny"
+msgstr "soleado"
+
+#: libexif/canon/mnote-canon-entry.c:330 libexif/canon/mnote-canon-entry.c:402
+#: libexif/exif-entry.c:719 libexif/fuji/mnote-fuji-entry.c:75
+#: libexif/olympus/mnote-olympus-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:255
+#, fuzzy
+msgid "Cloudy"
+msgstr "nublado"
+
+#: libexif/canon/mnote-canon-entry.c:331 libexif/canon/mnote-canon-entry.c:403
+#: libexif/exif-entry.c:716 libexif/pentax/mnote-pentax-entry.c:100
+#: libexif/pentax/mnote-pentax-entry.c:249
+#, fuzzy
+msgid "Tungsten"
+msgstr "tungsteno"
+
+#: libexif/canon/mnote-canon-entry.c:332 libexif/canon/mnote-canon-entry.c:404
+#: libexif/exif-entry.c:715 libexif/pentax/mnote-pentax-entry.c:101
+#: libexif/pentax/mnote-pentax-entry.c:248
+msgid "Fluorescent"
+msgstr "Fluorescente"
+
+#: libexif/canon/mnote-canon-entry.c:333 libexif/canon/mnote-canon-entry.c:405
+#: libexif/exif-entry.c:717 libexif/exif-entry.c:759 libexif/exif-tag.c:577
+#: libexif/fuji/mnote-fuji-entry.c:80 libexif/pentax/mnote-pentax-entry.c:254
+msgid "Flash"
+msgstr "Flash"
+
+#: libexif/canon/mnote-canon-entry.c:336 libexif/canon/mnote-canon-entry.c:408
+#: libexif/exif-entry.c:720 libexif/pentax/mnote-pentax-entry.c:99
+#: libexif/pentax/mnote-pentax-entry.c:247
+msgid "Shade"
+msgstr "Sombra"
+
+#: libexif/canon/mnote-canon-entry.c:337 libexif/canon/mnote-canon-entry.c:409
+msgid "Manual temperature (Kelvin)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:338 libexif/canon/mnote-canon-entry.c:410
+msgid "PC set 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:339 libexif/canon/mnote-canon-entry.c:411
+msgid "PC set 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:340 libexif/canon/mnote-canon-entry.c:412
+msgid "PC set 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:341 libexif/canon/mnote-canon-entry.c:413
+#: libexif/exif-entry.c:721 libexif/fuji/mnote-fuji-entry.c:76
+#: libexif/pentax/mnote-pentax-entry.c:251
+msgid "Daylight fluorescent"
+msgstr "Luz de día fluorescente"
+
+#: libexif/canon/mnote-canon-entry.c:342 libexif/canon/mnote-canon-entry.c:414
+#, fuzzy
+msgid "Custom 1"
+msgstr "Proceso personalizado"
+
+#: libexif/canon/mnote-canon-entry.c:343 libexif/canon/mnote-canon-entry.c:415
+#, fuzzy
+msgid "Custom 2"
+msgstr "Proceso personalizado"
+
+#: libexif/canon/mnote-canon-entry.c:346 libexif/exif-entry.c:672
+#: libexif/pentax/mnote-pentax-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:132
+#: libexif/pentax/mnote-pentax-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:295
+msgid "Night scene"
+msgstr "Escena nocturna"
+
+#: libexif/canon/mnote-canon-entry.c:352
+#, fuzzy
+msgid "Center-right"
+msgstr "peso centrado"
+
+#: libexif/canon/mnote-canon-entry.c:354
+#, fuzzy
+msgid "Left-right"
+msgstr "abajo - derecha"
+
+#: libexif/canon/mnote-canon-entry.c:355
+#, fuzzy
+msgid "Left-center"
+msgstr "abajo centrado"
+
+#: libexif/canon/mnote-canon-entry.c:356
+msgid "All"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:358
+msgid "On (shot 1)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:359
+msgid "On (shot 2)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:360
+msgid "On (shot 3)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:362
+msgid "EOS high-end"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:363
+msgid "Compact"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:364
+msgid "EOS mid-range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:366
+msgid "Rotate 90 CW"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:367
+msgid "Rotate 180"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:368
+msgid "Rotate 270 CW"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:369
+msgid "Rotated by software"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:381
+#: libexif/olympus/mnote-olympus-entry.c:606
+#, fuzzy
+msgid "Left to right"
+msgstr "abajo - derecha"
+
+#: libexif/canon/mnote-canon-entry.c:382
+#: libexif/olympus/mnote-olympus-entry.c:609
+#, fuzzy
+msgid "Right to left"
+msgstr "derecha - arriba"
+
+#: libexif/canon/mnote-canon-entry.c:383
+#: libexif/olympus/mnote-olympus-entry.c:612
+#, fuzzy
+msgid "Bottom to top"
+msgstr "abajo - izquierda"
+
+#: libexif/canon/mnote-canon-entry.c:384
+#: libexif/olympus/mnote-olympus-entry.c:615
+#, fuzzy
+msgid "Top to bottom"
+msgstr "izquierda - abajo"
+
+#: libexif/canon/mnote-canon-entry.c:385
+msgid "2x2 matrix (clockwise)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:391 libexif/canon/mnote-canon-entry.c:397
+#: libexif/canon/mnote-canon-entry.c:418 libexif/canon/mnote-canon-entry.c:428
+#: libexif/exif-entry.c:671 libexif/fuji/mnote-fuji-entry.c:84
+#: libexif/fuji/mnote-fuji-entry.c:93 libexif/fuji/mnote-fuji-entry.c:163
+#: libexif/olympus/mnote-olympus-entry.c:227
+msgid "Standard"
+msgstr "Estándar"
+
+#: libexif/canon/mnote-canon-entry.c:394
+msgid "N/A"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:395
+#, fuzzy
+msgid "Lowest"
+msgstr "arriba - izquierda"
+
+#: libexif/canon/mnote-canon-entry.c:399
+#, fuzzy
+msgid "Highest"
+msgstr "Escena nocturna"
+
+#: libexif/canon/mnote-canon-entry.c:401 libexif/exif-entry.c:714
+#: libexif/fuji/mnote-fuji-entry.c:74
+#: libexif/olympus/mnote-olympus-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:98
+#: libexif/pentax/mnote-pentax-entry.c:246
+msgid "Daylight"
+msgstr "Luz de día"
+
+#: libexif/canon/mnote-canon-entry.c:419
+msgid "Set 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:420
+msgid "Set 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:421
+msgid "Set 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:422
+msgid "User def. 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:423
+msgid "User def. 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:424
+msgid "User def. 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:425
+#, fuzzy
+msgid "External 1"
+msgstr "Flash"
+
+#: libexif/canon/mnote-canon-entry.c:426
+#, fuzzy
+msgid "External 2"
+msgstr "Flash"
+
+#: libexif/canon/mnote-canon-entry.c:427
+#, fuzzy
+msgid "External 3"
+msgstr "Flash"
+
+#: libexif/canon/mnote-canon-entry.c:432
+msgid "Faithful"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:115
+msgid "Monochrome"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:491
+msgid ", "
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:577 libexif/canon/mnote-canon-entry.c:674
+#, c-format
+msgid "%i (ms)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:621
+#, c-format
+msgid "%.2f mm"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:645
+#, c-format
+msgid "%.2f EV"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:655 libexif/exif-entry.c:1064
+#, fuzzy, c-format
+msgid "1/%i"
+msgstr "1/%d"
+
+#: libexif/canon/mnote-canon-entry.c:667
+#, c-format
+msgid "%u mm"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:35
+msgid "Settings (First Part)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:36 libexif/canon/mnote-canon-tag.c:92
+#: libexif/exif-tag.c:581 libexif/pentax/mnote-pentax-tag.c:88
+msgid "Focal Length"
+msgstr "Distancia focal"
+
+#: libexif/canon/mnote-canon-tag.c:37
+msgid "Settings (Second Part)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:38
+#: libexif/olympus/mnote-olympus-entry.c:595
+#: libexif/pentax/mnote-pentax-entry.c:177
+msgid "Panorama"
+msgstr "Panorama"
+
+#: libexif/canon/mnote-canon-tag.c:39
+#, fuzzy
+msgid "Image Type"
+msgstr "Ancho de la imagen"
+
+#: libexif/canon/mnote-canon-tag.c:40 libexif/olympus/mnote-olympus-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:113
+msgid "Firmware Version"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:41
+#, fuzzy
+msgid "Image Number"
+msgstr "ID único de imagen"
+
+#: libexif/canon/mnote-canon-tag.c:42
+#, fuzzy
+msgid "Owner Name"
+msgstr "El número F."
+
+#: libexif/canon/mnote-canon-tag.c:43
+#, fuzzy
+msgid "Color Information"
+msgstr "Espacio de color"
+
+#: libexif/canon/mnote-canon-tag.c:44 libexif/fuji/mnote-fuji-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:81
+#: libexif/olympus/mnote-olympus-tag.c:146
+#, fuzzy
+msgid "Serial Number"
+msgstr "El número F."
+
+#: libexif/canon/mnote-canon-tag.c:45
+#, fuzzy
+msgid "Custom Functions"
+msgstr "Proceso personalizado"
+
+#: libexif/canon/mnote-canon-tag.c:56 libexif/fuji/mnote-fuji-tag.c:45
+#, fuzzy
+msgid "Macro Mode"
+msgstr "Macro"
+
+#: libexif/canon/mnote-canon-tag.c:57 libexif/canon/mnote-canon-tag.c:117
+#: libexif/olympus/mnote-olympus-tag.c:175
+#: libexif/pentax/mnote-pentax-tag.c:128
+msgid "Self-timer"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:58 libexif/fuji/mnote-fuji-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:94
+#: libexif/olympus/mnote-olympus-tag.c:107
+msgid "Quality"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:59 libexif/fuji/mnote-fuji-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:45
+#: libexif/olympus/mnote-olympus-tag.c:127
+#: libexif/pentax/mnote-pentax-tag.c:38 libexif/pentax/mnote-pentax-tag.c:73
+#, fuzzy
+msgid "Flash Mode"
+msgstr "Flash"
+
+#: libexif/canon/mnote-canon-tag.c:60 libexif/pentax/mnote-pentax-tag.c:101
+#, fuzzy
+msgid "Drive Mode"
+msgstr "Modo de métrica"
+
+#: libexif/canon/mnote-canon-tag.c:61 libexif/canon/mnote-canon-tag.c:82
+#: libexif/olympus/mnote-olympus-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:134
+#: libexif/olympus/mnote-olympus-tag.c:173
+#: libexif/pentax/mnote-pentax-tag.c:37 libexif/pentax/mnote-pentax-tag.c:74
+#: libexif/pentax/mnote-pentax-tag.c:130
+#, fuzzy
+msgid "Focus Mode"
+msgstr "Modo de exposición"
+
+#: libexif/canon/mnote-canon-tag.c:62 libexif/pentax/mnote-pentax-tag.c:127
+#, fuzzy
+msgid "Record Mode"
+msgstr "Macro"
+
+#: libexif/canon/mnote-canon-tag.c:63 libexif/pentax/mnote-pentax-tag.c:71
+#, fuzzy
+msgid "Image Size"
+msgstr "Ancho de la imagen"
+
+#: libexif/canon/mnote-canon-tag.c:64
+msgid "Easy Shooting Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:65 libexif/olympus/mnote-olympus-tag.c:64
+#: libexif/olympus/mnote-olympus-tag.c:101
+#: libexif/olympus/mnote-olympus-tag.c:110
+#: libexif/olympus/mnote-olympus-tag.c:180
+#: libexif/pentax/mnote-pentax-tag.c:89
+#, fuzzy
+msgid "Digital Zoom"
+msgstr "Relación de zoom digital"
+
+#: libexif/canon/mnote-canon-tag.c:66 libexif/exif-tag.c:828
+#: libexif/fuji/mnote-fuji-tag.c:42 libexif/pentax/mnote-pentax-tag.c:46
+#: libexif/pentax/mnote-pentax-tag.c:91
+msgid "Contrast"
+msgstr "Contraste"
+
+#: libexif/canon/mnote-canon-tag.c:67 libexif/exif-tag.c:832
+#: libexif/olympus/mnote-olympus-tag.c:75
+#: libexif/olympus/mnote-olympus-tag.c:87 libexif/pentax/mnote-pentax-tag.c:47
+#: libexif/pentax/mnote-pentax-tag.c:90
+msgid "Saturation"
+msgstr "Saturación"
+
+#: libexif/canon/mnote-canon-tag.c:68 libexif/exif-tag.c:836
+#: libexif/fuji/mnote-fuji-tag.c:39 libexif/pentax/mnote-pentax-tag.c:45
+#: libexif/pentax/mnote-pentax-tag.c:92
+msgid "Sharpness"
+msgstr "Nitidez"
+
+#: libexif/canon/mnote-canon-tag.c:69
+msgid "ISO"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:70 libexif/exif-tag.c:571
+#: libexif/pentax/mnote-pentax-tag.c:82
+msgid "Metering Mode"
+msgstr "Modo de métrica"
+
+#: libexif/canon/mnote-canon-tag.c:71 libexif/olympus/mnote-olympus-tag.c:133
+#, fuzzy
+msgid "Focus Range"
+msgstr "Modo de exposición"
+
+#: libexif/canon/mnote-canon-tag.c:72 libexif/canon/mnote-canon-tag.c:105
+#, fuzzy
+msgid "AF Point"
+msgstr "Modo de exposición"
+
+#: libexif/canon/mnote-canon-tag.c:73 libexif/exif-tag.c:795
+msgid "Exposure Mode"
+msgstr "Modo de exposición"
+
+#: libexif/canon/mnote-canon-tag.c:74 libexif/olympus/mnote-olympus-tag.c:61
+#: libexif/pentax/mnote-pentax-tag.c:106
+#, fuzzy
+msgid "Lens Type"
+msgstr "Tipo de escena"
+
+#: libexif/canon/mnote-canon-tag.c:75
+#, fuzzy
+msgid "Long Focal Length of Lens"
+msgstr "Distancia focal"
+
+#: libexif/canon/mnote-canon-tag.c:76
+#, fuzzy
+msgid "Short Focal Length of Lens"
+msgstr "Distancia focal"
+
+#: libexif/canon/mnote-canon-tag.c:77
+#, fuzzy
+msgid "Focal Units per mm"
+msgstr "Distancia focal"
+
+#: libexif/canon/mnote-canon-tag.c:78
+#, fuzzy
+msgid "Maximal Aperture"
+msgstr "apertura"
+
+#: libexif/canon/mnote-canon-tag.c:79
+#, fuzzy
+msgid "Minimal Aperture"
+msgstr "apertura"
+
+#: libexif/canon/mnote-canon-tag.c:80
+#, fuzzy
+msgid "Flash Activity"
+msgstr "El flash disparó."
+
+#: libexif/canon/mnote-canon-tag.c:81
+#, fuzzy
+msgid "Flash Details"
+msgstr "Flash"
+
+#: libexif/canon/mnote-canon-tag.c:83
+#, fuzzy
+msgid "AE Setting"
+msgstr "Velocidad ISO"
+
+#: libexif/canon/mnote-canon-tag.c:84
+#, fuzzy
+msgid "Image Stabilization"
+msgstr "Descripción de la imagen"
+
+#: libexif/canon/mnote-canon-tag.c:85
+#, fuzzy
+msgid "Display Aperture"
+msgstr "apertura"
+
+#: libexif/canon/mnote-canon-tag.c:86
+#, fuzzy
+msgid "Zoom Source Width"
+msgstr "Ancho de la imagen"
+
+#: libexif/canon/mnote-canon-tag.c:87
+#, fuzzy
+msgid "Zoom Target Width"
+msgstr "Ancho de la imagen"
+
+#: libexif/canon/mnote-canon-tag.c:88
+msgid "Photo Effect"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:89 libexif/canon/mnote-canon-tag.c:118
+msgid "Manual Flash Output"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:90
+#, fuzzy
+msgid "Color Tone"
+msgstr "Espacio de color"
+
+#: libexif/canon/mnote-canon-tag.c:91
+#, fuzzy
+msgid "Focal Type"
+msgstr "Distancia focal"
+
+#: libexif/canon/mnote-canon-tag.c:93
+#, fuzzy
+msgid "Focal Plane X Size"
+msgstr "Resolución X del plano focal"
+
+#: libexif/canon/mnote-canon-tag.c:94
+#, fuzzy
+msgid "Focal Plane Y Size"
+msgstr "Resolución X del plano focal"
+
+#: libexif/canon/mnote-canon-tag.c:95
+msgid "Auto ISO"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:96
+#, fuzzy
+msgid "Shot ISO"
+msgstr "Lugar"
+
+#: libexif/canon/mnote-canon-tag.c:97
+msgid "Measured EV"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:98
+#, fuzzy
+msgid "Target Aperture"
+msgstr "apertura"
+
+#: libexif/canon/mnote-canon-tag.c:99
+#, fuzzy
+msgid "Target Exposure Time"
+msgstr "Tiempo de exposición"
+
+#: libexif/canon/mnote-canon-tag.c:100 libexif/olympus/mnote-olympus-tag.c:129
+#: libexif/pentax/mnote-pentax-tag.c:81
+#, fuzzy
+msgid "Exposure Compensation"
+msgstr "Tiempo de exposición"
+
+#: libexif/canon/mnote-canon-tag.c:101 libexif/canon/mnote-canon-tag.c:123
+#: libexif/exif-tag.c:800 libexif/fuji/mnote-fuji-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:41
+#: libexif/olympus/mnote-olympus-tag.c:98 libexif/pentax/mnote-pentax-tag.c:41
+#: libexif/pentax/mnote-pentax-tag.c:84 libexif/pentax/mnote-pentax-tag.c:124
+msgid "White Balance"
+msgstr "Balance de blanco"
+
+#: libexif/canon/mnote-canon-tag.c:102
+#, fuzzy
+msgid "Slow Shutter"
+msgstr "obturador"
+
+#: libexif/canon/mnote-canon-tag.c:103
+#, fuzzy
+msgid "Sequence Number"
+msgstr "El número F."
+
+#: libexif/canon/mnote-canon-tag.c:104
+#, fuzzy
+msgid "Flash Guide Number"
+msgstr "El número F."
+
+#: libexif/canon/mnote-canon-tag.c:106 libexif/olympus/mnote-olympus-tag.c:52
+#: libexif/pentax/mnote-pentax-tag.c:109
+#, fuzzy
+msgid "Flash Exposure Compensation"
+msgstr "Tiempo de exposición"
+
+#: libexif/canon/mnote-canon-tag.c:107
+#, fuzzy
+msgid "AE Bracketing"
+msgstr "acción"
+
+#: libexif/canon/mnote-canon-tag.c:108
+#, fuzzy
+msgid "AE Bracket Value"
+msgstr "Auto bracket"
+
+#: libexif/canon/mnote-canon-tag.c:109
+#, fuzzy
+msgid "Focus Distance Upper"
+msgstr "Balance de blanco manual"
+
+#: libexif/canon/mnote-canon-tag.c:110
+#, fuzzy
+msgid "Focus Distance Lower"
+msgstr "Balance de blanco manual"
+
+#: libexif/canon/mnote-canon-tag.c:111
+msgid "FNumber"
+msgstr "El número F."
+
+#: libexif/canon/mnote-canon-tag.c:112 libexif/exif-tag.c:466
+#: libexif/pentax/mnote-pentax-tag.c:78
+msgid "Exposure Time"
+msgstr "Tiempo de exposición"
+
+#: libexif/canon/mnote-canon-tag.c:113
+#, fuzzy
+msgid "Bulb Duration"
+msgstr "Saturación"
+
+#: libexif/canon/mnote-canon-tag.c:114
+msgid "Camera Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:115
+#, fuzzy
+msgid "Auto Rotate"
+msgstr "Auto bracket"
+
+#: libexif/canon/mnote-canon-tag.c:116
+#, fuzzy
+msgid "ND Filter"
+msgstr "Relación de zoom digital"
+
+#: libexif/canon/mnote-canon-tag.c:119
+#, fuzzy
+msgid "Panorama Frame"
+msgstr "Panorama"
+
+#: libexif/canon/mnote-canon-tag.c:120
+#, fuzzy
+msgid "Panorama Direction"
+msgstr "Panorama"
+
+#: libexif/canon/mnote-canon-tag.c:121
+#, fuzzy
+msgid "Tone Curve"
+msgstr "Contraste"
+
+#: libexif/canon/mnote-canon-tag.c:122
+#, fuzzy
+msgid "Sharpness Frequency"
+msgstr "Nitidez"
+
+#: libexif/canon/mnote-canon-tag.c:124
+#, fuzzy
+msgid "Picture Style"
+msgstr "Modo de exposición"
+
+#: libexif/exif-byte-order.c:33
+msgid "Motorola"
+msgstr ""
+
+#: libexif/exif-byte-order.c:35
+msgid "Intel"
+msgstr ""
+
+#: libexif/exif-data.c:780
+msgid "Size of data too small to allow for EXIF data."
+msgstr ""
+
+#: libexif/exif-data.c:841
+msgid "EXIF marker not found."
+msgstr ""
+
+#: libexif/exif-data.c:868
+msgid "EXIF header not found."
+msgstr ""
+
+#: libexif/exif-data.c:884
+#, fuzzy
+msgid "Unknown encoding."
+msgstr "Desconocido"
+
+#: libexif/exif-data.c:1168
+msgid "Ignore unknown tags"
+msgstr ""
+
+#: libexif/exif-data.c:1169
+msgid "Ignore unknown tags when loading EXIF data."
+msgstr ""
+
+#: libexif/exif-data.c:1170
+msgid "Follow specification"
+msgstr ""
+
+#: libexif/exif-data.c:1171
+msgid ""
+"Add, correct and remove entries to get EXIF data that follows the "
+"specification."
+msgstr ""
+
+#: libexif/exif-data.c:1173
+msgid "Do not change maker note"
+msgstr ""
+
+#: libexif/exif-data.c:1174
+msgid ""
+"When loading and resaving Exif data, save the maker note unmodified. Be "
+"aware that the maker note can get corrupted."
+msgstr ""
+
+#: libexif/exif-entry.c:234 libexif/exif-entry.c:303 libexif/exif-entry.c:336
+#, c-format
+msgid ""
+"Tag '%s' was of format '%s' (which is against specification) and has been "
+"changed to format '%s'."
+msgstr ""
+
+#: libexif/exif-entry.c:271
+#, c-format
+msgid ""
+"Tag '%s' is of format '%s' (which is against specification) but cannot be "
+"changed to format '%s'."
+msgstr ""
+
+#: libexif/exif-entry.c:354
+#, c-format
+msgid ""
+"Tag 'UserComment' had invalid format '%s'. Format has been set to "
+"'undefined'."
+msgstr ""
+
+#: libexif/exif-entry.c:381
+msgid ""
+"Tag 'UserComment' has been expanded to at least 8 bytes in order to follow "
+"the specification."
+msgstr ""
+
+#: libexif/exif-entry.c:396
+msgid ""
+"Tag 'UserComment' is not empty but does not start with a format identifier. "
+"This has been fixed."
+msgstr ""
+
+#: libexif/exif-entry.c:424
+msgid ""
+"Tag 'UserComment' did not start with a format identifier. This has been "
+"fixed."
+msgstr ""
+
+#: libexif/exif-entry.c:462
+#, fuzzy, c-format
+msgid "%i bytes undefined data"
+msgstr "%i bytes de datos desconocidos"
+
+#: libexif/exif-entry.c:589
+#, fuzzy, c-format
+msgid "%i bytes unsupported data type"
+msgstr "%i bytes de datos desconocidos"
+
+#: libexif/exif-entry.c:622
+#, fuzzy, c-format
+msgid "The tag '%s' contains data of an invalid format ('%s', expected '%s')."
+msgstr "Formato no válido '%s', se esperaba '%s'."
+
+#: libexif/exif-entry.c:635
+#, fuzzy, c-format
+msgid ""
+"The tag '%s' contains an invalid number of components (%i, expected %i)."
+msgstr "Cantidad de componentes no válida (%i, se esperaba %i)."
+
+#: libexif/exif-entry.c:649
+#, fuzzy
+msgid "Chunky format"
+msgstr "formato por trozos"
+
+#: libexif/exif-entry.c:649
+#, fuzzy
+msgid "Planar format"
+msgstr "formato planar"
+
+#: libexif/exif-entry.c:651 libexif/exif-entry.c:743
+#: test/nls/test-codeset.c:54
+msgid "Not defined"
+msgstr "No definido"
+
+#: libexif/exif-entry.c:651
+msgid "One-chip color area sensor"
+msgstr "Sensor de área de color de un chip"
+
+#: libexif/exif-entry.c:652
+msgid "Two-chip color area sensor"
+msgstr "Sensor de área de color de dos chips"
+
+#: libexif/exif-entry.c:652
+msgid "Three-chip color area sensor"
+msgstr "Sensor de área de color de tres chips"
+
+#: libexif/exif-entry.c:653
+msgid "Color sequential area sensor"
+msgstr "Sensor de área de color secuencial"
+
+#: libexif/exif-entry.c:653
+msgid "Trilinear sensor"
+msgstr "Sensor tri-lineal"
+
+#: libexif/exif-entry.c:654
+msgid "Color sequential linear sensor"
+msgstr "Sensor lineal secuencial de color"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:233
+#, fuzzy
+msgid "Top-left"
+msgstr "arriba - izquierda"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:235
+#, fuzzy
+msgid "Top-right"
+msgstr "arriba - derecha"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:241
+#, fuzzy
+msgid "Bottom-right"
+msgstr "abajo - derecha"
+
+#: libexif/exif-entry.c:657 libexif/pentax/mnote-pentax-entry.c:239
+#, fuzzy
+msgid "Bottom-left"
+msgstr "abajo - izquierda"
+
+#: libexif/exif-entry.c:657
+#, fuzzy
+msgid "Left-top"
+msgstr "izquierda - arriba"
+
+#: libexif/exif-entry.c:657
+#, fuzzy
+msgid "Right-top"
+msgstr "derecha - arriba"
+
+#: libexif/exif-entry.c:658
+#, fuzzy
+msgid "Right-bottom"
+msgstr "derecha - abajo"
+
+#: libexif/exif-entry.c:658
+#, fuzzy
+msgid "Left-bottom"
+msgstr "izquierda - abajo"
+
+#: libexif/exif-entry.c:660
+#, fuzzy
+msgid "Centered"
+msgstr "centrado"
+
+#: libexif/exif-entry.c:660
+#, fuzzy
+msgid "Co-sited"
+msgstr "co-situado"
+
+#: libexif/exif-entry.c:662
+msgid "Reversed mono"
+msgstr ""
+
+#: libexif/exif-entry.c:662
+#, fuzzy
+msgid "Normal mono"
+msgstr "Normal"
+
+#: libexif/exif-entry.c:662
+msgid "RGB"
+msgstr "RVA"
+
+#: libexif/exif-entry.c:662
+#, fuzzy
+msgid "Palette"
+msgstr "Patrón"
+
+#: libexif/exif-entry.c:663
+msgid "CMYK"
+msgstr ""
+
+#: libexif/exif-entry.c:663
+msgid "YCbCr"
+msgstr "YCbCr"
+
+#: libexif/exif-entry.c:663
+msgid "CieLAB"
+msgstr ""
+
+#: libexif/exif-entry.c:665
+msgid "Normal process"
+msgstr "Proceso normal"
+
+#: libexif/exif-entry.c:665
+msgid "Custom process"
+msgstr "Proceso personalizado"
+
+#: libexif/exif-entry.c:667
+msgid "Auto exposure"
+msgstr "Exposición automática"
+
+#: libexif/exif-entry.c:667 libexif/fuji/mnote-fuji-entry.c:139
+msgid "Manual exposure"
+msgstr "Exposición manual"
+
+#: libexif/exif-entry.c:667
+msgid "Auto bracket"
+msgstr "Auto bracket"
+
+#: libexif/exif-entry.c:669
+msgid "Auto white balance"
+msgstr "Balance de blanco automático"
+
+#: libexif/exif-entry.c:669
+msgid "Manual white balance"
+msgstr "Balance de blanco manual"
+
+#: libexif/exif-entry.c:674
+msgid "Low gain up"
+msgstr "Ganancia baja alta"
+
+#: libexif/exif-entry.c:674
+msgid "High gain up"
+msgstr "Ganancia alta alta"
+
+#: libexif/exif-entry.c:675
+msgid "Low gain down"
+msgstr "Ganancia baja baja"
+
+#: libexif/exif-entry.c:675
+msgid "High gain down"
+msgstr "Ganancia alta baja"
+
+#: libexif/exif-entry.c:677
+msgid "Low saturation"
+msgstr "Baja saturación"
+
+#: libexif/exif-entry.c:677 test/nls/test-codeset.c:48
+#: test/nls/test-codeset.c:61
+msgid "High saturation"
+msgstr "Alta saturación"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:63
+#: libexif/olympus/mnote-olympus-entry.c:205
+#: libexif/olympus/mnote-olympus-entry.c:214
+#: libexif/pentax/mnote-pentax-entry.c:106
+#: libexif/pentax/mnote-pentax-entry.c:170
+msgid "Soft"
+msgstr "Suave"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:65 libexif/fuji/mnote-fuji-entry.c:95
+#: libexif/olympus/mnote-olympus-entry.c:204
+#: libexif/olympus/mnote-olympus-entry.c:212
+#: libexif/pentax/mnote-pentax-entry.c:107
+msgid "Hard"
+msgstr "Duro"
+
+#: libexif/exif-entry.c:695 libexif/exif-entry.c:713 libexif/exif-entry.c:795
+#: libexif/olympus/mnote-olympus-entry.c:589
+#: libexif/olympus/mnote-olympus-entry.c:683
+#: libexif/olympus/mnote-olympus-entry.c:738
+#: libexif/pentax/mnote-pentax-entry.c:256
+msgid "Unknown"
+msgstr "Desconocido"
+
+#: libexif/exif-entry.c:696
+#, fuzzy
+msgid "Avg"
+msgstr "promedio"
+
+#: libexif/exif-entry.c:697
+#, fuzzy
+msgid "Center-weight"
+msgstr "peso centrado"
+
+#: libexif/exif-entry.c:699
+#, fuzzy
+msgid "Multi spot"
+msgstr "Multi Lugar"
+
+#: libexif/exif-entry.c:700
+msgid "Pattern"
+msgstr "Patrón"
+
+#: libexif/exif-entry.c:705
+msgid "Uncompressed"
+msgstr "Descomprimido"
+
+#: libexif/exif-entry.c:706
+msgid "LZW compression"
+msgstr "compresión LZW"
+
+#: libexif/exif-entry.c:707 libexif/exif-entry.c:708
+msgid "JPEG compression"
+msgstr "compresión JPEG"
+
+#: libexif/exif-entry.c:709
+msgid "Deflate/ZIP compression"
+msgstr "compresión Deflate/ZIP"
+
+#: libexif/exif-entry.c:710
+msgid "PackBits compression"
+msgstr "compresión PackBits"
+
+#: libexif/exif-entry.c:716
+#, fuzzy
+msgid "Tungsten incandescent light"
+msgstr "Tungsteno (luz incandescente)"
+
+#: libexif/exif-entry.c:718
+msgid "Fine weather"
+msgstr "Tiempo bueno"
+
+#: libexif/exif-entry.c:719
+msgid "Cloudy weather"
+msgstr "Tiempo nublado"
+
+#: libexif/exif-entry.c:722 libexif/fuji/mnote-fuji-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:252
+msgid "Day white fluorescent"
+msgstr "Día blanco fluorescente"
+
+#: libexif/exif-entry.c:723
+msgid "Cool white fluorescent"
+msgstr "Blanco frío fluorescente"
+
+#: libexif/exif-entry.c:724 libexif/fuji/mnote-fuji-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:253
+msgid "White fluorescent"
+msgstr "Blanco fluorescente"
+
+#: libexif/exif-entry.c:725
+msgid "Standard light A"
+msgstr "Luz estándar A"
+
+#: libexif/exif-entry.c:726
+msgid "Standard light B"
+msgstr "Luz estándar B"
+
+#: libexif/exif-entry.c:727
+msgid "Standard light C"
+msgstr "Luz estándar C"
+
+#: libexif/exif-entry.c:728
+msgid "D55"
+msgstr "D55"
+
+#: libexif/exif-entry.c:729
+msgid "D65"
+msgstr "D65"
+
+#: libexif/exif-entry.c:730
+msgid "D75"
+msgstr "D75"
+
+#: libexif/exif-entry.c:731
+msgid "ISO studio tungsten"
+msgstr "tungsteno de estudio ISO"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "Inch"
+msgstr "Pulgada"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "in"
+msgstr "pulg"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "Centimeter"
+msgstr "Centímetro"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "cm"
+msgstr "cm"
+
+#: libexif/exif-entry.c:745
+msgid "Normal program"
+msgstr "Programa normal"
+
+#: libexif/exif-entry.c:746
+msgid "Aperture priority"
+msgstr "Prioridad de apertura"
+
+#: libexif/exif-entry.c:746 libexif/exif-tag.c:550
+msgid "Aperture"
+msgstr "Apertura"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter priority"
+msgstr "Prioridad del obturador"
+
+#: libexif/exif-entry.c:747
+#, fuzzy
+msgid "Shutter"
+msgstr "obturador"
+
+#: libexif/exif-entry.c:748
+msgid "Creative program (biased toward depth of field)"
+msgstr "Programa creativo (orientado a la profundidad del campo)"
+
+#: libexif/exif-entry.c:749
+#, fuzzy
+msgid "Creative"
+msgstr "creativo"
+
+#: libexif/exif-entry.c:750
+#, fuzzy
+msgid "Creative program (biased toward fast shutter speed)"
+msgstr "Programa de acción (orientado a velocidad rápida del obturador)"
+
+#: libexif/exif-entry.c:751
+#, fuzzy
+msgid "Action"
+msgstr "acción"
+
+#: libexif/exif-entry.c:752
+#, fuzzy
+msgid "Portrait mode (for closeup photos with the background out of focus)"
+msgstr "Modo retrato (para fotos de cerca con el fondo fuera de foco"
+
+#: libexif/exif-entry.c:754
+#, fuzzy
+msgid "Landscape mode (for landscape photos with the background in focus)"
+msgstr "Modo paisaje (para fotos de paisaje con el fondo en foco"
+
+#: libexif/exif-entry.c:758 libexif/exif-entry.c:763
+#: libexif/olympus/mnote-olympus-entry.c:97
+#, fuzzy
+msgid "Flash did not fire"
+msgstr "El flash no disparó."
+
+#: libexif/exif-entry.c:758
+#, fuzzy
+msgid "No flash"
+msgstr "Flash"
+
+#: libexif/exif-entry.c:759
+#, fuzzy
+msgid "Flash fired"
+msgstr "El flash disparó."
+
+#: libexif/exif-entry.c:759 libexif/olympus/mnote-olympus-entry.c:170
+#: libexif/olympus/mnote-olympus-entry.c:175
+#: libexif/olympus/mnote-olympus-entry.c:209
+#: libexif/olympus/mnote-olympus-entry.c:218
+#: libexif/olympus/mnote-olympus-entry.c:241
+msgid "Yes"
+msgstr "sí"
+
+#: libexif/exif-entry.c:760
+#, fuzzy
+msgid "Strobe return light not detected"
+msgstr "Luz de retorno estrosboscópica no detectada."
+
+#: libexif/exif-entry.c:760
+#, fuzzy
+msgid "Without strobe"
+msgstr "sin estrosboscópica"
+
+#: libexif/exif-entry.c:762
+#, fuzzy
+msgid "Strobe return light detected"
+msgstr "Luz de retorno estrosboscópica detectada."
+
+#: libexif/exif-entry.c:762
+#, fuzzy
+msgid "With strobe"
+msgstr "con estrosboscópica"
+
+#: libexif/exif-entry.c:764
+#, fuzzy
+msgid "Flash fired, compulsory flash mode"
+msgstr "El flash no disparó, modo compulsivo del flash."
+
+#: libexif/exif-entry.c:765
+#, fuzzy
+msgid "Flash fired, compulsory flash mode, return light not detected"
+msgstr ""
+"El flash disparó, modo compulsivo del flash, luz de retorno no detectada."
+
+#: libexif/exif-entry.c:767
+#, fuzzy
+msgid "Flash fired, compulsory flash mode, return light detected"
+msgstr "El flash disparó, modo compulsivo del flash, luz de retorno detectada."
+
+#: libexif/exif-entry.c:769
+#, fuzzy
+msgid "Flash did not fire, compulsory flash mode"
+msgstr "El flash no disparó, modo compulsivo del flash."
+
+#: libexif/exif-entry.c:770
+#, fuzzy
+msgid "Flash did not fire, auto mode"
+msgstr "El flash no disparó, modo automático."
+
+#: libexif/exif-entry.c:771
+#, fuzzy
+msgid "Flash fired, auto mode"
+msgstr "El flash disparó, modo automático."
+
+#: libexif/exif-entry.c:772
+#, fuzzy
+msgid "Flash fired, auto mode, return light not detected"
+msgstr "El flash disparó, modo automático, luz de retorno no detectada."
+
+#: libexif/exif-entry.c:774
+#, fuzzy
+msgid "Flash fired, auto mode, return light detected"
+msgstr "El flash disparó, modo automático, luz de retorno detectada."
+
+#: libexif/exif-entry.c:775
+#, fuzzy
+msgid "No flash function"
+msgstr "Sin función de flash."
+
+#: libexif/exif-entry.c:776
+#, fuzzy
+msgid "Flash fired, red-eye reduction mode"
+msgstr "El flash disparó, modo de reducción de ojos rojos."
+
+#: libexif/exif-entry.c:777
+#, fuzzy
+msgid "Flash fired, red-eye reduction mode, return light not detected"
+msgstr ""
+"El flash disparó, modo de reducción de ojos rojos, luz de retorno no "
+"detectada."
+
+#: libexif/exif-entry.c:779
+#, fuzzy
+msgid "Flash fired, red-eye reduction mode, return light detected"
+msgstr ""
+"El flash disparó, modo de reducción de ojos rojos, luz de retorno detectada."
+
+#: libexif/exif-entry.c:781
+#, fuzzy
+msgid "Flash fired, compulsory flash mode, red-eye reduction mode"
+msgstr ""
+"El flash disparó, modo compulsivo del flash, modo de reducción de ojos rojos."
+
+#: libexif/exif-entry.c:783
+#, fuzzy
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light not "
+"detected"
+msgstr ""
+"El flash disparó, modo compulsivo del flash, modo de reducción de ojos "
+"rojos, luz de retorno no detectada."
+
+#: libexif/exif-entry.c:785
+#, fuzzy
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light "
+"detected"
+msgstr ""
+"El flash disparó, modo compulsivo del flash, modo de reducción de ojos "
+"rojos, luz de retorno no detectada."
+
+#: libexif/exif-entry.c:787
+#, fuzzy
+msgid "Flash did not fire, auto mode, red-eye reduction mode"
+msgstr "El flash disparó, modo automático, modo de reducción de ojos rojos."
+
+#: libexif/exif-entry.c:788
+#, fuzzy
+msgid "Flash fired, auto mode, red-eye reduction mode"
+msgstr "El flash disparó, modo automático, modo de reducción de ojos rojos."
+
+#: libexif/exif-entry.c:789
+#, fuzzy
+msgid ""
+"Flash fired, auto mode, return light not detected, red-eye reduction mode"
+msgstr ""
+"El flash disparó, modo automático, modo de reducción de ojos rojos, luz de "
+"retorno no detectada."
+
+#: libexif/exif-entry.c:791
+#, fuzzy
+msgid "Flash fired, auto mode, return light detected, red-eye reduction mode"
+msgstr ""
+"El flash disparó, modo automático, modo de reducción de ojos rojos, luz de "
+"retorno detectada."
+
+#: libexif/exif-entry.c:795
+msgid "?"
+msgstr ""
+
+#: libexif/exif-entry.c:797
+msgid "Close view"
+msgstr "Vista cercana"
+
+#: libexif/exif-entry.c:798
+msgid "Distant view"
+msgstr "Vista distante"
+
+#: libexif/exif-entry.c:798
+#, fuzzy
+msgid "Distant"
+msgstr "Vista distante"
+
+#: libexif/exif-entry.c:801
+msgid "sRGB"
+msgstr "sRVA"
+
+#: libexif/exif-entry.c:802
+msgid "Adobe RGB"
+msgstr ""
+
+#: libexif/exif-entry.c:803
+msgid "Uncalibrated"
+msgstr "Descalibrado"
+
+#: libexif/exif-entry.c:857
+#, c-format
+msgid "Invalid size of entry (%i, expected %li x %i)."
+msgstr "Cantidad de componentes no válida (%i, se esperaba %li x %i)."
+
+#: libexif/exif-entry.c:890
+msgid "Unsupported UNICODE string"
+msgstr ""
+
+#: libexif/exif-entry.c:898
+msgid "Unsupported JIS string"
+msgstr ""
+
+#: libexif/exif-entry.c:914
+msgid "Tag UserComment does not comply with standard but contains data."
+msgstr ""
+
+#: libexif/exif-entry.c:918
+#, c-format
+msgid "Byte at position %i: 0x%02x"
+msgstr ""
+
+#: libexif/exif-entry.c:927
+#, fuzzy
+msgid "Unknown Exif Version"
+msgstr "Versión Exif"
+
+#: libexif/exif-entry.c:931
+#, c-format
+msgid "Exif Version %d.%d"
+msgstr "Versión Exif %d.%d"
+
+#: libexif/exif-entry.c:942
+msgid "FlashPix Version 1.0"
+msgstr ""
+
+#: libexif/exif-entry.c:944
+msgid "FlashPix Version 1.01"
+msgstr ""
+
+#: libexif/exif-entry.c:946
+msgid "Unknown FlashPix Version"
+msgstr ""
+
+#: libexif/exif-entry.c:959 libexif/exif-entry.c:972 libexif/exif-entry.c:1628
+#: libexif/exif-entry.c:1633 libexif/exif-entry.c:1637
+#: libexif/exif-entry.c:1642 libexif/exif-entry.c:1643
+msgid "[None]"
+msgstr ""
+
+#: libexif/exif-entry.c:961
+msgid "(Photographer)"
+msgstr ""
+
+#: libexif/exif-entry.c:975
+msgid "(Editor)"
+msgstr ""
+
+#: libexif/exif-entry.c:999 libexif/exif-entry.c:1079
+#: libexif/exif-entry.c:1096 libexif/exif-entry.c:1140
+#, c-format
+msgid "%.02f EV"
+msgstr ""
+
+#: libexif/exif-entry.c:1000
+#, c-format
+msgid " (f/%.01f)"
+msgstr ""
+
+#: libexif/exif-entry.c:1034
+#, c-format
+msgid " (35 equivalent: %d mm)"
+msgstr " (equivalente 35: %d mm)"
+
+#: libexif/exif-entry.c:1067 libexif/exif-entry.c:1068
+msgid " sec."
+msgstr " seg."
+
+#: libexif/exif-entry.c:1082
+#, fuzzy, c-format
+msgid " (1/%d sec.)"
+msgstr " 1/%d seg.)"
+
+#: libexif/exif-entry.c:1084
+#, fuzzy, c-format
+msgid " (%d sec.)"
+msgstr " %d seg.)"
+
+#: libexif/exif-entry.c:1097
+#, c-format
+msgid " (%.02f cd/m^2)"
+msgstr ""
+
+#: libexif/exif-entry.c:1107
+msgid "DSC"
+msgstr "DSC"
+
+#: libexif/exif-entry.c:1109 libexif/exif-entry.c:1149
+#: libexif/exif-entry.c:1236 libexif/exif-entry.c:1287
+#: libexif/exif-entry.c:1296 libexif/exif-entry.c:1332
+#: libexif/fuji/mnote-fuji-entry.c:236 libexif/fuji/mnote-fuji-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:359
+#, c-format
+msgid "Internal error (unknown value %i)"
+msgstr ""
+
+#: libexif/exif-entry.c:1117
+msgid "-"
+msgstr "-"
+
+#: libexif/exif-entry.c:1118
+msgid "Y"
+msgstr "Y"
+
+#: libexif/exif-entry.c:1119
+msgid "Cb"
+msgstr "Cb"
+
+#: libexif/exif-entry.c:1120
+msgid "Cr"
+msgstr "Cr"
+
+#: libexif/exif-entry.c:1121
+msgid "R"
+msgstr "R"
+
+#: libexif/exif-entry.c:1122
+msgid "G"
+msgstr "V"
+
+#: libexif/exif-entry.c:1123
+msgid "B"
+msgstr "A"
+
+#: libexif/exif-entry.c:1124
+#, fuzzy
+msgid "Reserved"
+msgstr "reservado"
+
+#: libexif/exif-entry.c:1147
+msgid "Directly photographed"
+msgstr ""
+
+#: libexif/exif-entry.c:1160
+msgid "YCbCr4:2:2"
+msgstr "YCbCr4:2:2"
+
+#: libexif/exif-entry.c:1162
+msgid "YCbCr4:2:0"
+msgstr "YCbCr4:2:0"
+
+#: libexif/exif-entry.c:1179
+#, c-format
+msgid "Within distance %i of (x,y) = (%i,%i)"
+msgstr "Dentro de la distancia %i de (x,y) = (%i,%i)"
+
+#: libexif/exif-entry.c:1188
+#, c-format
+msgid "Within rectangle (width %i, height %i) around (x,y) = (%i,%i)"
+msgstr "Dentro del rectángulo (ancho %i, alto %i) alrededor de (x,y) = (%i,%i)"
+
+#: libexif/exif-entry.c:1194
+#, c-format
+msgid "Unexpected number of components (%li, expected 2, 3, or 4)."
+msgstr "Cantidad de componentes inesperada (%li, esperados 2, 3, o 4)."
+
+#: libexif/exif-entry.c:1232
+#, fuzzy
+msgid "Sea level"
+msgstr "Nivel de la batería"
+
+#: libexif/exif-entry.c:1234
+msgid "Sea level reference"
+msgstr ""
+
+#: libexif/exif-entry.c:1342
+#, fuzzy, c-format
+msgid "Unknown value %i"
+msgstr "Desconocido"
+
+#: libexif/exif-format.c:37
+#, fuzzy
+msgid "Short"
+msgstr "Lugar"
+
+#: libexif/exif-format.c:38
+msgid "Rational"
+msgstr ""
+
+#: libexif/exif-format.c:39
+msgid "SRational"
+msgstr ""
+
+#: libexif/exif-format.c:40
+msgid "Undefined"
+msgstr "Indefinido"
+
+#: libexif/exif-format.c:41
+msgid "ASCII"
+msgstr ""
+
+#: libexif/exif-format.c:42
+msgid "Long"
+msgstr ""
+
+#: libexif/exif-format.c:43
+#, fuzzy
+msgid "Byte"
+msgstr "Centímetro"
+
+#: libexif/exif-format.c:44
+msgid "SByte"
+msgstr ""
+
+#: libexif/exif-format.c:45
+msgid "SShort"
+msgstr ""
+
+#: libexif/exif-format.c:46
+msgid "SLong"
+msgstr ""
+
+#: libexif/exif-format.c:47
+msgid "Float"
+msgstr ""
+
+#: libexif/exif-format.c:48
+msgid "Double"
+msgstr ""
+
+#: libexif/exif-loader.c:119
+#, c-format
+msgid "The file '%s' could not be opened."
+msgstr ""
+
+#: libexif/exif-loader.c:300
+msgid "The data supplied does not seem to contain EXIF data."
+msgstr ""
+
+#: libexif/exif-log.c:43
+msgid "Debugging information"
+msgstr ""
+
+#: libexif/exif-log.c:44
+msgid "Debugging information is available."
+msgstr ""
+
+#: libexif/exif-log.c:45
+msgid "Not enough memory"
+msgstr ""
+
+#: libexif/exif-log.c:46
+msgid "The system cannot provide enough memory."
+msgstr ""
+
+#: libexif/exif-log.c:47
+msgid "Corrupt data"
+msgstr ""
+
+#: libexif/exif-log.c:48
+msgid "The data provided does not follow the specification."
+msgstr ""
+
+#: libexif/exif-tag.c:62
+msgid "GPS Tag Version"
+msgstr ""
+
+#: libexif/exif-tag.c:63
+#, fuzzy
+msgid ""
+"Indicates the version of <GPSInfoIFD>. The version is given as 2.0.0.0. This "
+"tag is mandatory when <GPSInfo> tag is present. (Note: The <GPSVersionID> "
+"tag is given in bytes, unlike the <ExifVersion> tag. When the version is "
+"2.0.0.0, the tag value is 02000000.H)."
+msgstr ""
+"Indica la versión de <GPSInfoIFD>. La versión está dada como 2.0.0.0. Esta "
+"etiqueta es obligatoria cuando está presente la etiqueta <GPSInfo>. (Nota: "
+"La etiqueta <GPSVersion ID> está dada en bytes, a diferencia de la etiqueta "
+"<ExifVersion>. Cuando la versión es 2.0.0.0, el valor de la etiqueta es "
+"02000000.H)."
+
+#: libexif/exif-tag.c:69
+msgid "Interoperability Index"
+msgstr ""
+
+#: libexif/exif-tag.c:70
+msgid ""
+"Indicates the identification of the Interoperability rule. Use \"R98\" for "
+"stating ExifR98 Rules. Four bytes used including the termination code "
+"(NULL). see the separate volume of Recommended Exif Interoperability Rules "
+"(ExifR98) for other tags used for ExifR98."
+msgstr ""
+"Indica la identificación de la regla de inter-operatibilidad. Utilice \"R98"
+"\" para indicar reglas ExifR98. Se utilizan cuatro bytes incluyendo el "
+"código de terminación (NULL). Vea el volumen separado de Recommended Exif "
+"Interoperatibility Rules (ExifR98) para otras etiquetas usadas en ExifR98."
+
+#: libexif/exif-tag.c:76
+msgid "North or South Latitude"
+msgstr ""
+
+#: libexif/exif-tag.c:77
+msgid ""
+"Indicates whether the latitude is north or south latitude. The ASCII value "
+"'N' indicates north latitude, and 'S' is south latitude."
+msgstr ""
+"Indica si la latitud es Norte o Sur. El valor ASCII 'N' indica latitud "
+"Norte, y 'S' indica latitud Sur."
+
+#: libexif/exif-tag.c:81
+msgid "Interoperability Version"
+msgstr ""
+
+#: libexif/exif-tag.c:83
+msgid "Latitude"
+msgstr ""
+
+#: libexif/exif-tag.c:84
+#, fuzzy
+msgid ""
+"Indicates the latitude. The latitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is dd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is dd/1,mmmm/100,0/1."
+msgstr ""
+"Indica la latitud. La latitud se expresa como tres valores RACIONALES dando "
+"los grados, minutos y segundos, respectivamente. Cuando se expresan grados, "
+"minutos y segundos, el formato es gg/1,mm/1,ss/1. Cuando se utilizan grados "
+"y minutos y, por ejemplo, se dan fracciones de minutos hasta con dos "
+"posiciones decimales, el formato es gg/1,mmmm/100,0/1."
+
+#: libexif/exif-tag.c:91
+msgid "East or West Longitude"
+msgstr ""
+
+#: libexif/exif-tag.c:92
+msgid ""
+"Indicates whether the longitude is east or west longitude. ASCII 'E' "
+"indicates east longitude, and 'W' is west longitude."
+msgstr ""
+"Indica si la longitud es Este u Oeste. El valor ASCII 'E' indica longitud "
+"Este, y 'W' indica longitud Oeste."
+
+#: libexif/exif-tag.c:95
+msgid "Longitude"
+msgstr ""
+
+#: libexif/exif-tag.c:96
+msgid ""
+"Indicates the longitude. The longitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is ddd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is ddd/1,mmmm/100,0/1."
+msgstr ""
+"Indica la longitud. La longitud se expresa como tres valores RACIONALES "
+"dando los grados, minutos y segundos, respectivamente. Cuando se expresan "
+"grados, minutos y segundos, el formato es gg/1,mm/1,ss/1. Cuando se utilizan "
+"grados y minutos y, por ejemplo, se dan fracciones de minutos hasta con dos "
+"posiciones decimales, el formato es gg/1,mmmm/100,0/1."
+
+#: libexif/exif-tag.c:103
+msgid "Altitude Reference"
+msgstr ""
+
+#: libexif/exif-tag.c:104
+msgid ""
+"Indicates the altitude used as the reference altitude. If the reference is "
+"sea level and the altitude is above sea level, 0 is given. If the altitude "
+"is below sea level, a value of 1 is given and the altitude is indicated as "
+"an absolute value in the GSPAltitude tag. The reference unit is meters. Note "
+"that this tag is BYTE type, unlike other reference tags."
+msgstr ""
+
+#: libexif/exif-tag.c:110
+msgid "Altitude"
+msgstr ""
+
+#: libexif/exif-tag.c:111
+msgid ""
+"Indicates the altitude based on the reference in GPSAltitudeRef. Altitude is "
+"expressed as one RATIONAL value. The reference unit is meters."
+msgstr ""
+
+#: libexif/exif-tag.c:114
+msgid "GPS Time (Atomic Clock)"
+msgstr ""
+
+#: libexif/exif-tag.c:115
+msgid ""
+"Indicates the time as UTC (Coordinated Universal Time). TimeStamp is "
+"expressed as three RATIONAL values giving the hour, minute, and second."
+msgstr ""
+
+#: libexif/exif-tag.c:118
+msgid "GPS Satellites"
+msgstr ""
+
+#: libexif/exif-tag.c:119
+msgid ""
+"Indicates the GPS satellites used for measurements. This tag can be used to "
+"describe the number of satellites, their ID number, angle of elevation, "
+"azimuth, SNR and other information in ASCII notation. The format is not "
+"specified. If the GPS receiver is incapable of taking measurements, value of "
+"the tag shall be set to NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:125
+msgid "GPS Receiver Status"
+msgstr ""
+
+#: libexif/exif-tag.c:126
+msgid ""
+"Indicates the status of the GPS receiver when the image is recorded. 'A' "
+"means measurement is in progress, and 'V' means the measurement is "
+"Interoperability."
+msgstr ""
+
+#: libexif/exif-tag.c:129
+#, fuzzy
+msgid "GPS Measurement Mode"
+msgstr "Modo de métrica"
+
+#: libexif/exif-tag.c:130
+msgid ""
+"Indicates the GPS measurement mode. '2' means two-dimensional measurement "
+"and '3' means three-dimensional measurement is in progress."
+msgstr ""
+
+#: libexif/exif-tag.c:133
+msgid "Measurement Precision"
+msgstr ""
+
+#: libexif/exif-tag.c:134
+msgid ""
+"Indicates the GPS DOP (data degree of precision). An HDOP value is written "
+"during two-dimensional measurement, and PDOP during three-dimensional "
+"measurement."
+msgstr ""
+
+#: libexif/exif-tag.c:137
+msgid "Speed Unit"
+msgstr ""
+
+#: libexif/exif-tag.c:138
+msgid ""
+"Indicates the unit used to express the GPS receiver speed of movement. 'K', "
+"'M' and 'N' represent kilometers per hour, miles per hour, and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:141
+msgid "Speed of GPS Receiver"
+msgstr ""
+
+#: libexif/exif-tag.c:142
+msgid "Indicates the speed of GPS receiver movement."
+msgstr ""
+
+#: libexif/exif-tag.c:143
+msgid "Reference for direction of movement"
+msgstr ""
+
+#: libexif/exif-tag.c:144
+msgid ""
+"Indicates the reference for giving the direction of GPS receiver movement. "
+"'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:147
+msgid "Direction of Movement"
+msgstr ""
+
+#: libexif/exif-tag.c:148
+msgid ""
+"Indicates the direction of GPS receiver movement. The range of values is "
+"from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:150
+msgid "GPS Image Direction Reference"
+msgstr ""
+
+#: libexif/exif-tag.c:151
+msgid ""
+"Indicates the reference for giving the direction of the image when it is "
+"captured. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:153
+#, fuzzy
+msgid "GPS Image Direction"
+msgstr "Descripción de la imagen"
+
+#: libexif/exif-tag.c:154
+msgid ""
+"Indicates the direction of the image when it was captured. The range of "
+"values is from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:156
+msgid "Geodetic Survey Data Used"
+msgstr ""
+
+#: libexif/exif-tag.c:157
+msgid ""
+"Indicates the geodetic survey data used by the GPS receiver. If the survey "
+"data is restricted to Japan, the value of this tag is 'TOKYO' or 'WGS-84'. "
+"If a GPS Info tag is recorded, it is strongly recommended that this tag be "
+"recorded."
+msgstr ""
+
+#: libexif/exif-tag.c:161
+msgid "Reference For Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:162
+#, fuzzy
+msgid ""
+"Indicates whether the latitude of the destination point is north or south "
+"latitude. The ASCII value 'N' indicates north latitude, and 'S' is south "
+"latitude."
+msgstr ""
+"Indica si la latitud es Norte o Sur. El valor ASCII 'N' indica latitud "
+"Norte, y 'S' indica latitud Sur."
+
+#: libexif/exif-tag.c:165
+msgid "Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:166
+#, fuzzy
+msgid ""
+"Indicates the latitude of the destination point. The latitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If latitude is expressed as degrees, minutes and seconds, a "
+"typical format would be dd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be dd/1,mmmm/100,0/1."
+msgstr ""
+"Indica la latitud. La latitud se expresa como tres valores RACIONALES dando "
+"los grados, minutos y segundos, respectivamente. Cuando se expresan grados, "
+"minutos y segundos, el formato es gg/1,mm/1,ss/1. Cuando se utilizan grados "
+"y minutos y, por ejemplo, se dan fracciones de minutos hasta con dos "
+"posiciones decimales, el formato es gg/1,mmmm/100,0/1."
+
+#: libexif/exif-tag.c:173
+msgid "Reference for Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:174
+#, fuzzy
+msgid ""
+"Indicates whether the longitude of the destination point is east or west "
+"longitude. ASCII 'E' indicates east longitude, and 'W' is west longitude."
+msgstr ""
+"Indica si la longitud es Este u Oeste. El valor ASCII 'E' indica longitud "
+"Este, y 'W' indica longitud Oeste."
+
+#: libexif/exif-tag.c:177
+msgid "Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:178
+#, fuzzy
+msgid ""
+"Indicates the longitude of the destination point. The longitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If longitude is expressed as degrees, minutes and seconds, a "
+"typical format would be ddd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be ddd/1,mmmm/100,0/1."
+msgstr ""
+"Indica la longitud. La longitud se expresa como tres valores RACIONALES "
+"dando los grados, minutos y segundos, respectivamente. Cuando se expresan "
+"grados, minutos y segundos, el formato es gg/1,mm/1,ss/1. Cuando se utilizan "
+"grados y minutos y, por ejemplo, se dan fracciones de minutos hasta con dos "
+"posiciones decimales, el formato es gg/1,mmmm/100,0/1."
+
+#: libexif/exif-tag.c:186
+msgid "Reference for Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:187
+msgid ""
+"Indicates the reference used for giving the bearing to the destination "
+"point. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:190
+msgid "Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:191
+msgid ""
+"Indicates the bearing to the destination point. The range of values is from "
+"0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:193
+msgid "Reference for Distance to Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:194
+msgid ""
+"Indicates the unit used to express the distance to the destination point. "
+"'K', 'M' and 'N' represent kilometers, miles and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:197
+#, fuzzy
+msgid "Distance to Destination"
+msgstr "Descripción de ajuste del dispositivo"
+
+#: libexif/exif-tag.c:198
+#, fuzzy
+msgid "Indicates the distance to the destination point."
+msgstr "Esta etiqueta indica la distancia al sujeto."
+
+#: libexif/exif-tag.c:199
+#, fuzzy
+msgid "Name of GPS Processing Method"
+msgstr "Método de sensado"
+
+#: libexif/exif-tag.c:200
+msgid ""
+"A character string recording the name of the method used for location "
+"finding. The first byte indicates the character code used, and this is "
+"followed by the name of the method. Since the Type is not ASCII, NULL "
+"termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:205
+msgid "Name of GPS Area"
+msgstr ""
+
+#: libexif/exif-tag.c:206
+msgid ""
+"A character string recording the name of the GPS area. The first byte "
+"indicates the character code used, and this is followed by the name of the "
+"GPS area. Since the Type is not ASCII, NULL termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:210
+msgid "GPS Date"
+msgstr ""
+
+#: libexif/exif-tag.c:211
+msgid ""
+"A character string recording date and time information relative to UTC "
+"(Coordinated Universal Time). The format is \"YYYY:MM:DD\". The length of "
+"the string is 11 bytes including NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:215
+msgid "GPS Differential Correction"
+msgstr ""
+
+#: libexif/exif-tag.c:216
+msgid ""
+"Indicates whether differential correction is applied to the GPS receiver."
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "New Subfile Type"
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "A general indication of the kind of data contained in this subfile."
+msgstr ""
+
+#: libexif/exif-tag.c:222
+msgid "Image Width"
+msgstr "Ancho de la imagen"
+
+#: libexif/exif-tag.c:223
+#, fuzzy
+msgid ""
+"The number of columns of image data, equal to the number of pixels per row. "
+"In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+"La cantidad de columnas de los datos de la imagen, igual a la cantidad de "
+"pixels por fila. En datos comprimidos JPEG se utiliza un marcador JPEG en "
+"vez de esta etiqueta."
+
+#: libexif/exif-tag.c:227
+msgid "Image Length"
+msgstr "Longitud de la imagen"
+
+#: libexif/exif-tag.c:228
+msgid ""
+"The number of rows of image data. In JPEG compressed data a JPEG marker is "
+"used instead of this tag."
+msgstr ""
+"La cantidad de filas de datos de la imagen. En datos comprimidos JPEG se "
+"utiliza un marcador JPEG en vez de esta etiqueta."
+
+#: libexif/exif-tag.c:231
+msgid "Bits per Sample"
+msgstr "Bits por muestra"
+
+#: libexif/exif-tag.c:232
+#, fuzzy
+msgid ""
+"The number of bits per image component. In this standard each component of "
+"the image is 8 bits, so the value for this tag is 8. See also "
+"<SamplesPerPixel>. In JPEG compressed data a JPEG marker is used instead of "
+"this tag."
+msgstr ""
+"La cantidad de bits por componente de imagen. En este estándar cada "
+"componente de imagen es 8 bits, por lo que el valor de esta etiqueta es 9. "
+"Vea también <SamplesPerPixel>. En datos comprimidos JPEG se utliza un "
+"marcador JPEG en vez de esta etiqueta."
+
+#: libexif/exif-tag.c:237
+msgid "Compression"
+msgstr "Compresión"
+
+#: libexif/exif-tag.c:238
+msgid ""
+"The compression scheme used for the image data. When a primary image is JPEG "
+"compressed, this designation is not necessary and is omitted. When "
+"thumbnails use JPEG compression, this tag value is set to 6."
+msgstr ""
+"El esquema de compresión utilizado para los datos de la imagen. Cuando una "
+"imagen primaria está comprimida con JPEG, esto no es necesario y se omite. "
+"Cuando las diapositivas utilizan compresión JPEG, el valor de esta etiqueta "
+"es 6."
+
+#: libexif/exif-tag.c:244
+msgid "Photometric Interpretation"
+msgstr "Interpretación fotométrica"
+
+#: libexif/exif-tag.c:245
+msgid ""
+"The pixel composition. In JPEG compressed data a JPEG marker is used instead "
+"of this tag."
+msgstr ""
+"La composición del pixel. En datos comprimidos JPEG se utliza un marcador "
+"JPEG en vez de esta etiqueta."
+
+#: libexif/exif-tag.c:249
+msgid "Fill Order"
+msgstr "Orden de llenado"
+
+#: libexif/exif-tag.c:251
+msgid "Document Name"
+msgstr "Nombre del documento"
+
+#: libexif/exif-tag.c:253
+msgid "Image Description"
+msgstr "Descripción de la imagen"
+
+#: libexif/exif-tag.c:254
+msgid ""
+"A character string giving the title of the image. It may be a comment such "
+"as \"1988 company picnic\" or the like. Two-bytes character codes cannot be "
+"used. When a 2-bytes code is necessary, the Exif Private tag <UserComment> "
+"is to be used."
+msgstr ""
+"Una cadena de caracteres que da título a la imagen. Puede ser un comentario "
+"como \"picnic de 1988\" o algo por el estilo. No se pueden utilizar "
+"caracteres codificados con 2 bytes. Cuando se necesita un código de 2 bytes, "
+"se debe usar la etiqueta privada Exif <UserComment>."
+
+#: libexif/exif-tag.c:260
+msgid "Manufacturer"
+msgstr "Fabricante"
+
+#: libexif/exif-tag.c:261
+msgid ""
+"The manufacturer of the recording equipment. This is the manufacturer of the "
+"DSC, scanner, video digitizer or other equipment that generated the image. "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+"El fabricante del equipo. Este es el fabricante del DSC, escáner, "
+"digitalizador de vídeo u otro equipo que generó la imagen. Cuando el campo "
+"se deja en blanco, se trata como desconocido."
+
+#: libexif/exif-tag.c:267
+msgid "Model"
+msgstr "Modelo"
+
+#: libexif/exif-tag.c:268
+msgid ""
+"The model name or model number of the equipment. This is the model name or "
+"number of the DSC, scanner, video digitizer or other equipment that "
+"generated the image. When the field is left blank, it is treated as unknown."
+msgstr ""
+"El nombre o número de modelo del equipo. Este es el nombre del modelo o "
+"número del DSC, escáner, digitalizador de vídeo u otro equipo que generó la "
+"imagen. Cuando el campo se deja en blanco, se trata como desconocido."
+
+#: libexif/exif-tag.c:273
+msgid "Strip Offsets"
+msgstr "Desplazamiento de tira"
+
+#: libexif/exif-tag.c:274
+msgid ""
+"For each strip, the byte offset of that strip. It is recommended that this "
+"be selected so the number of strip bytes does not exceed 64 Kbytes. With "
+"JPEG compressed data this designation is not needed and is omitted. See also "
+"<RowsPerStrip> and <StripByteCounts>."
+msgstr ""
+"El desplazamiento en bytes de cada tira. Se recomienda que se seleccione de "
+"manera tal que la cantidad de bytes de la tira no exceda 64 Kbytes. Con "
+"datos comprimidos JPEG esto no es necesario y se omite. Vea también "
+"<RowsPerStrip> y <StripByteCounts>."
+
+#: libexif/exif-tag.c:280
+msgid "Orientation"
+msgstr "Orientación"
+
+#: libexif/exif-tag.c:281
+#, fuzzy
+msgid "The image orientation viewed in terms of rows and columns."
+msgstr "La orientación de la imagen vista en términos de filas y columnas."
+
+#: libexif/exif-tag.c:284
+msgid "Samples per Pixel"
+msgstr "Muestras por pixel"
+
+#: libexif/exif-tag.c:285
+msgid ""
+"The number of components per pixel. Since this standard applies to RGB and "
+"YCbCr images, the value set for this tag is 3. In JPEG compressed data a "
+"JPEG marker is used instead of this tag."
+msgstr ""
+"La cantidad de componentes por pixel. Debido a que este estándar se aplica a "
+"imágenes RGB e YCbCr, el valor para esta etiqueta es 3. En datos comprimidos "
+"JPEG se utliza un marcador JPEG en vez de esta etiqueta."
+
+#: libexif/exif-tag.c:290
+msgid "Rows per Strip"
+msgstr "Filas por tira"
+
+#: libexif/exif-tag.c:291
+#, fuzzy
+msgid ""
+"The number of rows per strip. This is the number of rows in the image of one "
+"strip when an image is divided into strips. With JPEG compressed data this "
+"designation is not needed and is omitted. See also <StripOffsets> and "
+"<StripByteCounts>."
+msgstr ""
+"La cantidad de filas por tira. Esta es la cantidad de filas en la imagen de "
+"una tira cuando se divide a la imagen en tiras. En datos comprimidos JPEG "
+"esto no es necesario y se omite. Vea también <RowsPerStrip> y "
+"<StripByteCounts>."
+
+#: libexif/exif-tag.c:297
+msgid "Strip Byte Count"
+msgstr "Cantidad de bytes por tira"
+
+#: libexif/exif-tag.c:298
+msgid ""
+"The total number of bytes in each strip. With JPEG compressed data this "
+"designation is not needed and is omitted."
+msgstr ""
+"La cantidad total de bytes en cada tira. En datos comprimidos JPEG esto no "
+"es necesario y se omite."
+
+#: libexif/exif-tag.c:301
+#, fuzzy
+msgid "X-Resolution"
+msgstr "Resolución X"
+
+#: libexif/exif-tag.c:302
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageWidth> direction. "
+"When the image resolution is unknown, 72 [dpi] is designated."
+msgstr ""
+"La cantidad de pixels por <ResolutionUnit> en la dirección <ImageWidth>. "
+"Cuando se desconoce la resolución de una imagen, se utilizan 72 [dpi]."
+
+#: libexif/exif-tag.c:306
+#, fuzzy
+msgid "Y-Resolution"
+msgstr "Resolución X"
+
+#: libexif/exif-tag.c:307
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageLength> direction. "
+"The same value as <XResolution> is designated."
+msgstr ""
+"La cantidad de pixels por <ResolutionUnit> en la dirección <ImageLength>. Se "
+"utiliza el mismo valor que <XResolution>."
+
+#: libexif/exif-tag.c:311
+msgid "Planar Configuration"
+msgstr "Configuración planar"
+
+#: libexif/exif-tag.c:312
+msgid ""
+"Indicates whether pixel components are recorded in a chunky or planar "
+"format. In JPEG compressed files a JPEG marker is used instead of this tag. "
+"If this field does not exist, the TIFF default of 1 (chunky) is assumed."
+msgstr ""
+"Indica si los componentes de pixel se graban en formato planar o por trozos. "
+"En datos comprimidos JPEG se utliza un marcador JPEG en vez de esta "
+"etiqueta. Si este campo no existe, se asume el predeterminado de TIFF, 1 "
+"(por trozos)."
+
+#: libexif/exif-tag.c:317
+msgid "Resolution Unit"
+msgstr "Unidad de resolución"
+
+#: libexif/exif-tag.c:318
+msgid ""
+"The unit for measuring <XResolution> and <YResolution>. The same unit is "
+"used for both <XResolution> and <YResolution>. If the image resolution is "
+"unknown, 2 (inches) is designated."
+msgstr ""
+"La unidad para medir <XResolution> e <YResolution>. Se utiliza la misma "
+"unidad para ambas. Si la resolución de la imagen se desconoce, se designa 2 "
+"(pulgadas)."
+
+#: libexif/exif-tag.c:323
+msgid "Transfer Function"
+msgstr "Función de transferencia"
+
+#: libexif/exif-tag.c:324
+msgid ""
+"A transfer function for the image, described in tabular style. Normally this "
+"tag is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+"Una función de transferencia para la imagen, descripta en forma tabular. "
+"Normalmente esta etiqueta no es necesaria, dado que el espacio de color se "
+"especifica en la etiqueta de información de espacio de color (<ColorSpace>)."
+
+#: libexif/exif-tag.c:328
+msgid "Software"
+msgstr "Software"
+
+#: libexif/exif-tag.c:329
+msgid ""
+"This tag records the name and version of the software or firmware of the "
+"camera or image input device used to generate the image. The detailed format "
+"is not specified, but it is recommended that the example shown below be "
+"followed. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Esta etiqueta registra el nombre y la versión del software o firmware de la "
+"cámara o dispositivo de entrada de imagen utilizado para generar la imágen. "
+"No se especifica el formato detallado, pero se recomienda que se siga el "
+"ejemplo mostrado debajo. Cuando el campo se deja en blanco, se trata como "
+"desconocido."
+
+#: libexif/exif-tag.c:336
+msgid "Date and Time"
+msgstr "Fecha y hora"
+
+#: libexif/exif-tag.c:337
+msgid ""
+"The date and time of image creation. In this standard (EXIF-2.1) it is the "
+"date and time the file was changed."
+msgstr ""
+"La fecha y hora de la creación de la imagen. En este estándar (EXIF-2.1) es "
+"la fecha y hora en la que cambió el archivo."
+
+#: libexif/exif-tag.c:340
+msgid "Artist"
+msgstr "Artista"
+
+#: libexif/exif-tag.c:341
+msgid ""
+"This tag records the name of the camera owner, photographer or image "
+"creator. The detailed format is not specified, but it is recommended that "
+"the information be written as in the example below for ease of "
+"Interoperability. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Esta etiqueta registra el nombre del dueño de la cámara, fotógrafo o creador "
+"de la imagen. No se especifica el formato detallado, pero se recomienda que "
+"se escriba la información en como en el ejemplo de abajo para facilitar la "
+"inter-operabilidad. Cuando el campo se deja en blanco, se trata como "
+"desconocido."
+
+#: libexif/exif-tag.c:347 libexif/pentax/mnote-pentax-tag.c:113
+msgid "White Point"
+msgstr "Punto blanco"
+
+#: libexif/exif-tag.c:348
+#, fuzzy
+msgid ""
+"The chromaticity of the white point of the image. Normally this tag is not "
+"necessary, since color space is specified in the color space information tag "
+"(<ColorSpace>)."
+msgstr ""
+"La cromaticidad del punto blanco de la imagen. Normalmente esta etiqueta no "
+"es necesaria ya que el espacio de color se especifica en la etiqueta de "
+"información del espacio de color (<ColorSpace>)."
+
+#: libexif/exif-tag.c:353
+msgid "Primary Chromaticities"
+msgstr "Cromaticidades primarias"
+
+#: libexif/exif-tag.c:354
+#, fuzzy
+msgid ""
+"The chromaticity of the three primary colors of the image. Normally this tag "
+"is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+"La cromaticidad de los tres colores primarios de la imagen. Normalmente esta "
+"etiqueta no es necesaria ya que el espacio de color se especifica en la "
+"etiqueta de información del espacio de color (<ColorSpace>)."
+
+#: libexif/exif-tag.c:359
+msgid "Defined by Adobe Corporation to enable TIFF Trees within a TIFF file."
+msgstr ""
+
+#: libexif/exif-tag.c:362
+msgid "Transfer Range"
+msgstr "Rango de transferencia"
+
+#: libexif/exif-tag.c:366
+msgid "JPEG Interchange Format"
+msgstr "Formato de intercambio de JPEG"
+
+#: libexif/exif-tag.c:367
+msgid ""
+"The offset to the start byte (SOI) of JPEG compressed thumbnail data. This "
+"is not used for primary image JPEG data."
+msgstr ""
+"El desplazamiento del byte de comienzo (SOI) de los datos comprimidos de la "
+"diapositiva JPEG. Esto no se utiliza para los datos primarios de imagen JPEG."
+
+#: libexif/exif-tag.c:372
+msgid "JPEG Interchange Format Length"
+msgstr "Longitud del formato de intercambio de JPEG"
+
+#: libexif/exif-tag.c:373
+msgid ""
+"The number of bytes of JPEG compressed thumbnail data. This is not used for "
+"primary image JPEG data. JPEG thumbnails are not divided but are recorded as "
+"a continuous JPEG bitstream from SOI to EOI. Appn and COM markers should not "
+"be recorded. Compressed thumbnails must be recorded in no more than 64 "
+"Kbytes, including all other data to be recorded in APP1."
+msgstr ""
+"La cantidad de bytes de datos comprimidos de diapositiva JPEG. Esto no se "
+"utiliza para los datos primarios JPEG. Las diapositivas JPEG no se dividen "
+"sino que se graban como un flujo de bits contínuo desde SOI hasta EOI. No se "
+"deberían registrar marcadores Appn y COM. Las diapositivas comprimidas "
+"deberían grabarse en no más de 64 Kbytes, incluyendo todos los otros datos a "
+"grabar en APP1."
+
+#: libexif/exif-tag.c:382
+msgid "YCbCr Coefficients"
+msgstr "Coeficientes YCbCr"
+
+#: libexif/exif-tag.c:383
+#, fuzzy
+msgid ""
+"The matrix coefficients for transformation from RGB to YCbCr image data. No "
+"default is given in TIFF; but here the value given in \"Color Space "
+"Guidelines\", is used as the default. The color space is declared in a color "
+"space information tag, with the default being the value that gives the "
+"optimal image characteristics Interoperability this condition."
+msgstr ""
+"Los coeficientes de la matriz para la transformación de RGB a datos de "
+"imagen YCbCr. No hay predeterminados en TIFF; pero aquí se utiliza el valor "
+"dado en el Apéndice E, \"Color Space Guidelines\" como predeterminado. El "
+"espacio de color se declara en una etiqueta de información del espacio de "
+"color, siendo el predeterminado el que da las características óptimas de "
+"inter-operabilidad para la imagen."
+
+#: libexif/exif-tag.c:392
+msgid "YCbCr Sub-Sampling"
+msgstr "Sub-muestreo YCbCr"
+
+#: libexif/exif-tag.c:393
+msgid ""
+"The sampling ratio of chrominance components in relation to the luminance "
+"component. In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+"La relación de muestreo de los componentes de crominancia en relación con el "
+"componente de luminancia. En datos comprimidos JPEG se utliza un marcador "
+"JPEG en vez de esta etiqueta."
+
+#: libexif/exif-tag.c:398
+msgid "YCbCr Positioning"
+msgstr "Posicionamiento YCbCr"
+
+#: libexif/exif-tag.c:399
+msgid ""
+"The position of chrominance components in relation to the luminance "
+"component. This field is designated only for JPEG compressed data or "
+"uncompressed YCbCr data. The TIFF default is 1 (centered); but when Y:Cb:Cr "
+"= 4:2:2 it is recommended in this standard that 2 (co-sited) be used to "
+"record data, in order to improve the image quality when viewed on TV "
+"systems. When this field does not exist, the reader shall assume the TIFF "
+"default. In the case of Y:Cb:Cr = 4:2:0, the TIFF default (centered) is "
+"recommended. If the reader does not have the capability of supporting both "
+"kinds of <YCbCrPositioning>, it shall follow the TIFF default regardless of "
+"the value in this field. It is preferable that readers be able to support "
+"both centered and co-sited positioning."
+msgstr ""
+"La posición de los componentes de crominancia en relación con el de "
+"luminancia. Este campo se designa sólo para datos comprimidos JPEG o datos "
+"no comprimidos YCbCr. El valor predeterminado TIFF es 1 (centrado); pero "
+"cuando Y:Cb:Cr = 4:2:2 se recomienda en este estándar que se utilice 2 (co-"
+"sitiado) para registrar los datos, para mejorar la calidad de la imagen "
+"cuando se ve en sistemas de TV. Cuando este campo no existe, el lector "
+"deberá asumir el predeterminado TIFF. En caso que Y:Cb:Cr = 4:2:0, se "
+"recomienda el predeterminado TIFF (centrado). Si el lector no tiene la "
+"capacidad de soportar ambos tipos de <YCbCrPositioning>, debería seguir el "
+"predeterminado TIFF sin importar el valor de este campo. Es preferible que "
+"los lectores puedan soportar el posicionamiento centrado y co-sitiado."
+
+#: libexif/exif-tag.c:414
+msgid "Reference Black/White"
+msgstr "Referencia Blanco/Negro"
+
+#: libexif/exif-tag.c:415
+msgid ""
+"The reference black point value and reference white point value. No defaults "
+"are given in TIFF, but the values below are given as defaults here. The "
+"color space is declared in a color space information tag, with the default "
+"being the value that gives the optimal image characteristics "
+"Interoperability these conditions."
+msgstr ""
+"El valor de referencia de los puntos blanco y negro. En TIFF no se dan "
+"predeterminados, pero los valores de abajo se dan como predeterminados aquí. "
+"El espacio de color se declara en una etiqueta de información de espacio de "
+"color, siendo el valor predeterminado aquel que da las características de "
+"inter-operabilidad óptimas para la imagen."
+
+#: libexif/exif-tag.c:423
+msgid "XML Packet"
+msgstr ""
+
+#: libexif/exif-tag.c:423
+msgid "XMP Metadata"
+msgstr ""
+
+#: libexif/exif-tag.c:438 libexif/exif-tag.c:784
+msgid "CFA Pattern"
+msgstr "Patrón CFA"
+
+#: libexif/exif-tag.c:439 libexif/exif-tag.c:785
+msgid ""
+"Indicates the color filter array (CFA) geometric pattern of the image sensor "
+"when a one-chip color area sensor is used. It does not apply to all sensing "
+"methods."
+msgstr ""
+"Indica el patrón geométrico de la matriz de filtro de color (CFA) del sensor "
+"de imagen cuando se utiliza un sensor de área color de un chip. No aplica a "
+"todos los métodos de sensado."
+
+#: libexif/exif-tag.c:443
+msgid "Battery Level"
+msgstr "Nivel de la batería"
+
+#: libexif/exif-tag.c:444
+msgid "Copyright"
+msgstr "Copyright"
+
+#: libexif/exif-tag.c:445
+msgid ""
+"Copyright information. In this standard the tag is used to indicate both the "
+"photographer and editor copyrights. It is the copyright notice of the person "
+"or organization claiming rights to the image. The Interoperability copyright "
+"statement including date and rights should be written in this field; e.g., "
+"\"Copyright, John Smith, 19xx. All rights reserved.\". In this standard the "
+"field records both the photographer and editor copyrights, with each "
+"recorded in a separate part of the statement. When there is a clear "
+"distinction between the photographer and editor copyrights, these are to be "
+"written in the order of photographer followed by editor copyright, separated "
+"by NULL (in this case, since the statement also ends with a NULL, there are "
+"two NULL codes) (see example 1). When only the photographer is given, it is "
+"terminated by one NULL code (see example 2). When only the editor copyright "
+"is given, the photographer copyright part consists of one space followed by "
+"a terminating NULL code, then the editor copyright is given (see example 3). "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+"Información del Copyright. En este estándar la etiqueta se utiliza para "
+"indicar tanto el copyright del fotógrafo como el del editor. Es la nota de "
+"copyright de la persona u Organización que reclama derechos sobre la imagen. "
+"En este campo debería escribirse la declaración de copyrtight de inter-"
+"operabilidad, incluyendo la fecha y los derechos; ej: \"Copyright, Juan "
+"Perez, 20xx. Todos los derechos reservados.\" En este estándar el campo "
+"registra tanto al copyright del fotógrafo como el del editor, con cada uno "
+"registrado en una parte separada de la declaración. Cuando hay una "
+"distinción clara entre ambos copyrights, primero debería escribirse el del "
+"fotógrafo seguido por el del editor, separados por NULL (en este caso, "
+"debido a que la declaración también termina con un NULL, hay dos códigos "
+"NULL) (vea el ejemplo 1). Cuando se da sólo el del fotógrafo, está terminado "
+"por un código NULL (vea el ejemplo 2). Cuando se da sólo el del editor, la "
+"parte del copyright del fotógrafo consiste de un espacio seguido de un "
+"código de terminación NULL, luego se da el copyright del editor (vea el "
+"ejemplo 3). Cuando el campo se deja en blanco, se trata como desconocido."
+
+#: libexif/exif-tag.c:467
+msgid "Exposure time, given in seconds (sec)."
+msgstr "Tiempo de exposición, dado en segundos (seg)."
+
+#: libexif/exif-tag.c:469 libexif/pentax/mnote-pentax-tag.c:79
+#, fuzzy
+msgid "F-Number"
+msgstr "El número F."
+
+#: libexif/exif-tag.c:470
+msgid "The F number."
+msgstr "El número F."
+
+#: libexif/exif-tag.c:475
+msgid "Image Resources Block"
+msgstr ""
+
+#: libexif/exif-tag.c:477
+msgid ""
+"A pointer to the Exif IFD. Interoperability, Exif IFD has the same structure "
+"as that of the IFD specified in TIFF. ordinarily, however, it does not "
+"contain image data as in the case of TIFF."
+msgstr ""
+"Un puntero al IFD Exif. Inter-operabilidad, el IFD Exif tiene la misma "
+"estructura que la del IFD especificado en TIFF. Sin embargo, por lo común, "
+"no contiene datos de imagen como en el caso de TIFF."
+
+#: libexif/exif-tag.c:485
+#, fuzzy
+msgid "Exposure Program"
+msgstr "Modo de exposición"
+
+#: libexif/exif-tag.c:486
+msgid ""
+"The class of the program used by the camera to set exposure when the picture "
+"is taken."
+msgstr ""
+"La clase de programa utilizado por la cámara para ajustar la exposición "
+"cuando se toma la foto."
+
+#: libexif/exif-tag.c:490
+msgid "Spectral Sensitivity"
+msgstr "Sensibilidad espectral"
+
+#: libexif/exif-tag.c:491
+#, fuzzy
+msgid ""
+"Indicates the spectral sensitivity of each channel of the camera used. The "
+"tag value is an ASCII string compatible with the standard developed by the "
+"ASTM Technical Committee."
+msgstr ""
+"Indica la sensibilidad espectral de cada canal de la cámara utilizada. El "
+"valor de la etiqueta es una cadena de caracteres ASCII compatible con el "
+"estándar desarrollado por el ASTM Tecnical committee."
+
+#: libexif/exif-tag.c:496
+msgid "GPS Info IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:497
+msgid ""
+"A pointer to the GPS Info IFD. The Interoperability structure of the GPS "
+"Info IFD, like that of Exif IFD, has no image data."
+msgstr ""
+"Un puntero al GPS Info IFD. La estructura de inter-operabilidad del GPS Info "
+"IFD, como la del IFD Exif, no tiene datos de imagen."
+
+#: libexif/exif-tag.c:503
+msgid "ISO Speed Ratings"
+msgstr "Velocidad ISO"
+
+#: libexif/exif-tag.c:504
+msgid ""
+"Indicates the ISO Speed and ISO Latitude of the camera or input device as "
+"specified in ISO 12232."
+msgstr ""
+"Indica la velocidad ISO y la latitud ISO de la cámara o dispositivo de "
+"entrada como se especifica en ISO 12232."
+
+#: libexif/exif-tag.c:507
+msgid "Opto-Electronic Conversion Function"
+msgstr ""
+
+#: libexif/exif-tag.c:508
+#, fuzzy
+msgid ""
+"Indicates the Opto-Electronic Conversion Function (OECF) specified in ISO "
+"14524. <OECF> is the relationship between the camera optical input and the "
+"image values."
+msgstr ""
+"Indica la Función de Conversión Opto-Electrónica (OECF) especificada en ISO "
+"14524. <OECF> es la relación entre la entrada óptica de la cámara y los "
+"valores de la imagen."
+
+#: libexif/exif-tag.c:513
+msgid "Time Zone Offset"
+msgstr ""
+
+#: libexif/exif-tag.c:514
+msgid "Encodes time zone of camera clock relative to GMT."
+msgstr ""
+
+#: libexif/exif-tag.c:515
+msgid "Exif Version"
+msgstr "Versión Exif"
+
+#: libexif/exif-tag.c:516
+msgid ""
+"The version of this standard supported. Nonexistence of this field is taken "
+"to mean nonconformance to the standard."
+msgstr ""
+"La versión soportada de este estándar. Si este campo no existe se toma como "
+"que significa que no se cumple con el estándar."
+
+#: libexif/exif-tag.c:520
+#, fuzzy
+msgid "Date and Time (Original)"
+msgstr "Fecha y Hora (original)"
+
+#: libexif/exif-tag.c:521
+msgid ""
+"The date and time when the original image data was generated. For a digital "
+"still camera the date and time the picture was taken are recorded."
+msgstr ""
+"La fecha y hora cuando se generaron los datos originales de la imagen. Para "
+"una cámara digital se registra la fecha y la hora en la que se tomó la foto."
+
+#: libexif/exif-tag.c:526
+#, fuzzy
+msgid "Date and Time (Digitized)"
+msgstr "Fecha y Hora (digitalizado)"
+
+#: libexif/exif-tag.c:527
+#, fuzzy
+msgid "The date and time when the image was stored as digital data."
+msgstr ""
+"La fehca y hora cuando se almacenó la imagen en forma de datos digitales."
+
+#: libexif/exif-tag.c:530
+#, fuzzy
+msgid "Components Configuration"
+msgstr "Configuración planar"
+
+#: libexif/exif-tag.c:531
+msgid ""
+"Information specific to compressed data. The channels of each component are "
+"arranged in order from the 1st component to the 4th. For uncompressed data "
+"the data arrangement is given in the <PhotometricInterpretation> tag. "
+"However, since <PhotometricInterpretation> can only express the order of Y, "
+"Cb and Cr, this tag is provided for cases when compressed data uses "
+"components other than Y, Cb, and Cr and to enable support of other sequences."
+msgstr ""
+"Información específica de los datos comprimidos. Los canales de cada "
+"componente se arreglan en orden desde el 1er componente al 4to. Para datos "
+"no comprimidos el arreglo de los datos se da en la etiqueta "
+"<PhometricInterpretation>. Sin embargo, debido a que dicha etiqueta sólo "
+"puede expresar el orden de Y, Cb y Cr, esta etiqueta se da para los casos en "
+"los que los datos comprimidos usan componentes que no son Y, Cb y Cr y para "
+"permitir el soporte de otras secuencias."
+
+#: libexif/exif-tag.c:541
+msgid "Compressed Bits per Pixel"
+msgstr "Bits comprimidos por pixel"
+
+#: libexif/exif-tag.c:542
+msgid ""
+"Information specific to compressed data. The compression mode used for a "
+"compressed image is indicated in unit bits per pixel."
+msgstr ""
+"Información específica sobre los datos comprimidos. El modo de compresión "
+"utilizado para una imagen comprimida está indicado en unidades de bits por "
+"pixel."
+
+#: libexif/exif-tag.c:546 libexif/olympus/mnote-olympus-tag.c:123
+#, fuzzy
+msgid "Shutter Speed"
+msgstr "Velocidad del obturador"
+
+#: libexif/exif-tag.c:547
+msgid ""
+"Shutter speed. The unit is the APEX (Additive System of Photographic "
+"Exposure) setting."
+msgstr ""
+"Velocidad del obturador. La unidad es el ajuste APEX (Sistema aditivo de "
+"exposición fotográfica)."
+
+#: libexif/exif-tag.c:551
+msgid "The lens aperture. The unit is the APEX value."
+msgstr "La apertura de la lente. La unidad es el valor APEX."
+
+#: libexif/exif-tag.c:553
+msgid "Brightness"
+msgstr "Brillo"
+
+#: libexif/exif-tag.c:554
+msgid ""
+"The value of brightness. The unit is the APEX value. Ordinarily it is given "
+"in the range of -99.99 to 99.99."
+msgstr ""
+"El valor del brillo. La unidad es el valor APEX. Por lo general, se da en el "
+"rango de -99,99 a 99,99."
+
+#: libexif/exif-tag.c:558
+msgid "Exposure Bias"
+msgstr "Ajuste de exposición"
+
+#: libexif/exif-tag.c:559
+msgid ""
+"The exposure bias. The units is the APEX value. Ordinarily it is given in "
+"the range of -99.99 to 99.99."
+msgstr ""
+"El ajuste de exposición. La unidad es el valor APEX. Por lo general, se da "
+"en el rango -99,99 a 99,99."
+
+#: libexif/exif-tag.c:562
+#, fuzzy
+msgid "Maximum Aperture Value"
+msgstr "Apertura"
+
+#: libexif/exif-tag.c:563
+msgid ""
+"The smallest F number of the lens. The unit is the APEX value. Ordinarily it "
+"is given in the range of 00.00 to 99.99, but it is not limited to this range."
+msgstr ""
+"El valor F más pequeño de la lente. La unidad es el valor APEX. Por lo "
+"general, se da en el rango de 00,00 a 99,99 pero no está limitado a dicho "
+"rango."
+
+#: libexif/exif-tag.c:568
+msgid "Subject Distance"
+msgstr "Distancia del sujeto"
+
+#: libexif/exif-tag.c:569
+msgid "The distance to the subject, given in meters."
+msgstr "La distancia al sujeto, dada en metros."
+
+#: libexif/exif-tag.c:572
+msgid "The metering mode."
+msgstr "El modo de la métrica."
+
+#: libexif/exif-tag.c:574
+msgid "Light Source"
+msgstr "Fuente de luz"
+
+#: libexif/exif-tag.c:575
+msgid "The kind of light source."
+msgstr "El tipo de fuente de luz."
+
+#: libexif/exif-tag.c:578
+msgid ""
+"This tag is recorded when an image is taken using a strobe light (flash)."
+msgstr ""
+"Esta etiqueta se registra cuando se toma una imagen usando una luz "
+"estrosboscópica (flash)."
+
+#: libexif/exif-tag.c:582
+msgid ""
+"The actual focal length of the lens, in mm. Conversion is not made to the "
+"focal length of a 35 mm film camera."
+msgstr ""
+"La distancia focal real de la lente, en mm. No se realiza la conversión a la "
+"distancia focal de una máquina de película de 35 mm."
+
+#: libexif/exif-tag.c:585
+msgid "Subject Area"
+msgstr "Área del sujeto"
+
+#: libexif/exif-tag.c:586
+msgid ""
+"This tag indicates the location and area of the main subject in the overall "
+"scene."
+msgstr ""
+"Esta etiqueta indica la ubicación y el área del sujeto principal en la "
+"escena general."
+
+#: libexif/exif-tag.c:590
+msgid "TIFF/EP Standard ID"
+msgstr ""
+
+#: libexif/exif-tag.c:591
+msgid "Maker Note"
+msgstr "Nota del fabricante"
+
+#: libexif/exif-tag.c:592
+msgid ""
+"A tag for manufacturers of Exif writers to record any desired information. "
+"The contents are up to the manufacturer."
+msgstr ""
+"Una etiqueta para que los fabricantes o escritores Exif registren cualquier "
+"información deseada. El contenido queda a cargo del fabricante."
+
+#: libexif/exif-tag.c:595
+msgid "User Comment"
+msgstr "Comentario del usuario"
+
+#: libexif/exif-tag.c:596
+#, fuzzy
+msgid ""
+"A tag for Exif users to write keywords or comments on the image besides "
+"those in <ImageDescription>, and without the character code limitations of "
+"the <ImageDescription> tag. The character code used in the <UserComment> tag "
+"is identified based on an ID code in a fixed 8-byte area at the start of the "
+"tag data area. The unused portion of the area is padded with NULL (\"00.h"
+"\"). ID codes are assigned by means of registration. The designation method "
+"and references for each character code are defined in the specification. The "
+"value of CountN is determined based on the 8 bytes in the character code "
+"area and the number of bytes in the user comment part. Since the TYPE is not "
+"ASCII, NULL termination is not necessary. The ID code for the <UserComment> "
+"area may be a Defined code such as JIS or ASCII, or may be Undefined. The "
+"Undefined name is UndefinedText, and the ID code is filled with 8 bytes of "
+"all \"NULL\" (\"00.H\"). An Exif reader that reads the <UserComment> tag "
+"must have a function for determining the ID code. This function is not "
+"required in Exif readers that do not use the <UserComment> tag. When a "
+"<UserComment> area is set aside, it is recommended that the ID code be ASCII "
+"and that the following user comment part be filled with blank characters [20."
+"H]."
+msgstr ""
+"Una etiqueta para que los usuarios de Exif escriban palabras clave o "
+"comentarios en la imagen además de los de <ImageDescription>, y sin "
+"limitaciones en la codificación de caracteres de dicha etiqueta. El código "
+"de caracteres utilizado en esta etiqueta se identifica basándose en un "
+"código ID en un área fija de 8 bytes al comienzo del área de datos de la "
+"etiqueta. La porción no utilizada del área se completa con NULL (\"00.h\"). "
+"Los códigos ID se asignan por medio de registro. En la tabla 6 se dan el "
+"método de designación y referencias para cada código de caracter. El valor "
+"de CountN está determinado basado en los 8 bytes en el área de código de "
+"caracter y la cantidad de bytes en la parte del comentario del usuario. Dado "
+"que TYPE no es ASCII, no es necesaria la terminación NULL (ver fig. 9). El "
+"código ID para el área <UserComment> puede ser un código definido como JIS o "
+"ASCII, o puede ser no definido. El nombre no definido es UndefinedText, y el "
+"código ID se completa con 8 bytes de todos \"NULL\" (\"00.H\"). Un lector "
+"Exif que lee la etiqueta <UserComment> debe tener una función para "
+"determinar el código ID. Esta función no se necesita en lectores Exif que no "
+"usan la etiqueta <UserComment> (ver tabla 7). Cuando se deja a un lado el "
+"área <UserComment>, se recomienda que el código ID sea ASCII y que se "
+"complete la parte de comentario de usuario siguiente con caracteres espacio "
+"[20.H]."
+
+#: libexif/exif-tag.c:619
+msgid "Sub-second Time"
+msgstr ""
+
+#: libexif/exif-tag.c:620
+msgid "A tag used to record fractions of seconds for the <DateTime> tag."
+msgstr ""
+"Una etiqueta utilizada para registrar fracciones de segundo para la etiqueta "
+"<DateTime>."
+
+#: libexif/exif-tag.c:624
+#, fuzzy
+msgid "Sub-second Time (Original)"
+msgstr "Fecha y Hora (original)"
+
+#: libexif/exif-tag.c:625
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeOriginal> tag."
+msgstr ""
+"Una etiqueta utilizada para registrar fracciones de segundo para la etiqueta "
+"<DateTimeOriginal>."
+
+#: libexif/exif-tag.c:629
+#, fuzzy
+msgid "Sub-second Time (Digitized)"
+msgstr "Fecha y Hora (digitalizado)"
+
+#: libexif/exif-tag.c:630
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeDigitized> tag."
+msgstr ""
+"Una etiqueta utilizada para registrar fracciones de segundo para la etiqueta "
+"<DateTimeDigitized>."
+
+#: libexif/exif-tag.c:634
+msgid "XP Title"
+msgstr ""
+
+#: libexif/exif-tag.c:635
+msgid "A character string giving the title of the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:639
+#, fuzzy
+msgid "XP Comment"
+msgstr "Comentario del usuario"
+
+#: libexif/exif-tag.c:640
+msgid ""
+"A character string containing a comment about the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:644
+msgid "XP Author"
+msgstr ""
+
+#: libexif/exif-tag.c:645
+msgid ""
+"A character string containing the name of the image creator, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:649
+msgid "XP Keywords"
+msgstr ""
+
+#: libexif/exif-tag.c:650
+msgid ""
+"A character string containing key words describing the image, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:654
+#, fuzzy
+msgid "XP Subject"
+msgstr "Área del sujeto"
+
+#: libexif/exif-tag.c:655
+msgid "A character string giving the image subject, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:659
+msgid "The FlashPix format version supported by a FPXR file."
+msgstr "La versión del formato FlashPix soportada por un archivo FPXR."
+
+#: libexif/exif-tag.c:661 libexif/pentax/mnote-pentax-tag.c:102
+msgid "Color Space"
+msgstr "Espacio de color"
+
+#: libexif/exif-tag.c:662
+#, fuzzy
+msgid ""
+"The color space information tag is always recorded as the color space "
+"specifier. Normally sRGB (=1) is used to define the color space based on the "
+"PC monitor conditions and environment. If a color space other than sRGB is "
+"used, Uncalibrated (=FFFF.H) is set. Image data recorded as Uncalibrated can "
+"be treated as sRGB when it is converted to FlashPix."
+msgstr ""
+"La etiqueta de información de espacio de color (<ColorSpace>) siempre se "
+"registra como el especificador de espacio de color. Normalmente se utiliza "
+"sRGB (=1) para definir el espacio de color basado en las condiciones "
+"ambientales y del monitor de la PC. Si se utiliza un espacio de color "
+"distinto a sRGB, se ajusta en Uncalibrated (=FFFF.H). Los datos de imagen "
+"registrados como no calibrados pueden tratarse como sRGB cuando se convierte "
+"a FlashPix."
+
+#: libexif/exif-tag.c:670
+msgid "Pixel X Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:671
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid width of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file."
+msgstr ""
+"Información específica a los datos comprimidos. Cuando se registra un "
+"archivo comprimido, el ancho válido de la imagen significativa se debe "
+"registrar en esta etiqueta, haya o no datos de colchón o una marca de "
+"reinicio. Esta etiqueta no debería existir en un archivo no comprimido. Vea "
+"la sección 2.8.1 y el Apéndice F para más detalles."
+
+#: libexif/exif-tag.c:677
+msgid "Pixel Y Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:678
+#, fuzzy
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid height of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file. Since data padding is unnecessary in the "
+"vertical direction, the number of lines recorded in this valid image height "
+"tag will in fact be the same as that recorded in the SOF."
+msgstr ""
+"Información específica a los datos comprimidos. Cuando se registra un "
+"archivo comprimido, la altura válida de la imagen significativa debería "
+"registrarse en esta etiqueta, haya o no datos de colchón o una marca de "
+"reinicio. Esta etiqueta no debería existir en un archivo no comprimido. Vea "
+"la sección 2.8.1 y el Apéndice F para más detalles. Dado que no es necesario "
+"el colchón de datos en la dirección vertical, la cantidad de líneas "
+"registradas en esta etiqueta válida de altura de imagen será, de hecho, la "
+"misma que la registrada en el SOF."
+
+#: libexif/exif-tag.c:688
+msgid "Related Sound File"
+msgstr ""
+
+#: libexif/exif-tag.c:689
+#, fuzzy
+msgid ""
+"This tag is used to record the name of an audio file related to the image "
+"data. The only relational information recorded here is the Exif audio file "
+"name and extension (an ASCII string consisting of 8 characters + '.' + 3 "
+"characters). The path is not recorded. Stipulations on audio and file naming "
+"conventions are defined in the specification. When using this tag, audio "
+"files must be recorded in conformance to the Exif audio format. Writers are "
+"also allowed to store the data such as Audio within APP2 as FlashPix "
+"extension stream data. The mapping of Exif image files and audio files is "
+"done in any of three ways, [1], [2] and [3]. If multiple files are mapped to "
+"one file as in [2] or [3], the above format is used to record just one audio "
+"file name. If there are multiple audio files, the first recorded file is "
+"given. In the case of [3], for example, for the Exif image file \"DSC00001."
+"JPG\" only  \"SND00001.WAV\" is given as the related Exif audio file. When "
+"there are three Exif audio files \"SND00001.WAV\", \"SND00002.WAV\" and "
+"\"SND00003.WAV\", the Exif image file name for each of them, \"DSC00001.JPG"
+"\", is indicated. By combining multiple relational information, a variety of "
+"playback possibilities can be supported. The method of using relational "
+"information is left to the implementation on the playback side. Since this "
+"information is an ASCII character string, it is terminated by NULL. When "
+"this tag is used to map audio files, the relation of the audio file to image "
+"data must also be indicated on the audio file end."
+msgstr ""
+"Esta etiqueta se utiliza para registrar el nombre de un archivo de audio "
+"relacionado a los datos de imagen. La única información relacional "
+"registrada aquí es el nombre y la extensión del archivo de audio Exif (una "
+"cadena de caracteres ASCII que consiste en 8 caracteres, un '.' y 3 "
+"caracteres más). No se registra la ruta. Las estipulaciones acerca del audio "
+"se dan en la sección 3.6.3. Las convenciones para los nombres de archivo se "
+"dan en la sección 3.7.1. Cuando se usa esta etiqueta, los archivos de audio "
+"se deben grabar en conformidad con el formato de audio Exif. También se "
+"permite a los escritores almacenar los datos tales como Audio dentro de APP2 "
+"como un flujo de datos de extensión de FlashPix. Los archivos de audio se "
+"deben grabar en conformidad con el formato de audio Exif. El mapeo de "
+"archivos de imagen y archivos de audio Exif se realiza en cualquiera de las "
+"tres maneras que se muestran en la Tabla 8. Si múltiples archivos mapean a "
+"uno solo como en [2] o [3] de la tabla, el formato anterior se usa para "
+"registrar sólo un nombre de archivo de audio. Si hay múltiples archivos de "
+"audio, se da el primero grabado. En el caso de [3] en la Tabla 8, por "
+"ejemplo, para el archivo de imagen Exif \"DSC00001.JPG\" sólo se da "
+"\"SND00001.WAV\" como el archivo de audio Exif relacionado. Cuando hay tres "
+"archivos de audio Exif, \"SND00001.WAV\", \"SND00002.WAV\" y \"SND00003.WAV"
+"\", se indica el nombre de archivo de imagen Exif para cada uno de ellos, "
+"\"DSC00001.JPG\". Al combinar información relacional múltiple, es posible "
+"soportar una variedad de posibilidades de reproducción. El método de "
+"utilizar información relacional se deja a la implementación del lado del "
+"reproductor. Dado que esta información es una cadena de caracteres ASCII, la "
+"misma está terminada por NULL. Cuando esta etiqueta se utiliza para mapear "
+"archivos de audio, también se debe indicar al final del archivo de audio la "
+"relación a los datos de la imagen."
+
+#: libexif/exif-tag.c:719
+msgid "Interoperability IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:720
+msgid ""
+"Interoperability IFD is composed of tags which stores the information to "
+"ensure the Interoperability and pointed by the following tag located in Exif "
+"IFD. The Interoperability structure of Interoperability IFD is the same as "
+"TIFF defined IFD structure but does not contain the image data "
+"characteristically compared with normal TIFF IFD."
+msgstr ""
+"El IFD de interoperabilidad está compuesto de etiquetas que almacenan la "
+"información para asegurar la interoperabilidad y apuntado por la etiqueta "
+"siguiente ubicada en el IFD Exif. La estructura de interoperabilidad de el "
+"IFD de interoperabilidad es la misma que la estructura IFD definida por "
+"TIFF, pero no contiene los datos de imagen característicos del IFD normal de "
+"TIFF."
+
+#: libexif/exif-tag.c:729
+msgid "Flash Energy"
+msgstr "Energía del flash"
+
+#: libexif/exif-tag.c:730
+msgid ""
+"Indicates the strobe energy at the time the image is captured, as measured "
+"in Beam Candle Power Seconds (BCPS)."
+msgstr ""
+"Indica la energía del flash en el momento que se captura la imagen, medida "
+"en Beam Candle Power Seconds (BCPS)."
+
+#: libexif/exif-tag.c:734
+msgid "Spatial Frequency Response"
+msgstr "Respuesta en frecuencia espacial"
+
+#: libexif/exif-tag.c:735
+msgid ""
+"This tag records the camera or input device spatial frequency table and SFR "
+"values in the direction of image width, image height, and diagonal "
+"direction, as specified in ISO 12233."
+msgstr ""
+"Este etiqueta registra la tabla de frecuencia espacial de la cámara o "
+"dispositivo de entrada y los valores SFR en las direcciones de ancho, alto y "
+"diagonal de la imagen, como se especifica en ISO 12233."
+
+#: libexif/exif-tag.c:741
+#, fuzzy
+msgid "Focal Plane X-Resolution"
+msgstr "Resolución X del plano focal"
+
+#: libexif/exif-tag.c:742
+msgid ""
+"Indicates the number of pixels in the image width (X) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+"Indica la cantidad de pixels en la dirección del ancho (X) de la imagen por "
+"<FocalPlaneResolutionUnit> del plano focal de la cámara."
+
+#: libexif/exif-tag.c:746
+#, fuzzy
+msgid "Focal Plane Y-Resolution"
+msgstr "Resolución X del plano focal"
+
+#: libexif/exif-tag.c:747
+msgid ""
+"Indicates the number of pixels in the image height (V) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+"Indica la cantidad de pixels en la dirección del alto (Y) de la imagen por "
+"<FocalPlaneResolutionUnit> del plano focal de la cámara."
+
+#: libexif/exif-tag.c:751
+msgid "Focal Plane Resolution Unit"
+msgstr "Unidad de resolución del plano focal"
+
+#: libexif/exif-tag.c:752
+msgid ""
+"Indicates the unit for measuring <FocalPlaneXResolution> and "
+"<FocalPlaneYResolution>. This value is the same as the <ResolutionUnit>."
+msgstr ""
+"Indica la unidad para medir <FocalPlaneXResolution> e "
+"<FocalPlaneYResolution>. Este valor es el mismo que <ResolutionUnit>."
+
+#: libexif/exif-tag.c:757
+msgid "Subject Location"
+msgstr "Ubicación del sujeto"
+
+#: libexif/exif-tag.c:758
+#, fuzzy
+msgid ""
+"Indicates the location of the main subject in the scene. The value of this "
+"tag represents the pixel at the center of the main subject relative to the "
+"left edge, prior to rotation processing as per the <Rotation> tag. The first "
+"value indicates the X column number and the second indicates the Y row "
+"number."
+msgstr ""
+"Indica la ubicación del sujeto principal de la escena. El valor de esta "
+"etiqueta representa el pixel en el centro del sujeto principal relativo al "
+"borde izquierdo, antes del proceso de rotación como lo indica la etiqueta "
+"<Rotation>. El primer valor indica el número de columna X y el segundo el "
+"número de fila Y."
+
+#: libexif/exif-tag.c:765
+#, fuzzy
+msgid "Exposure Index"
+msgstr "Índice de exposición"
+
+#: libexif/exif-tag.c:766
+msgid ""
+"Indicates the exposure index selected on the camera or input device at the "
+"time the image is captured."
+msgstr ""
+"Indica el índice de exposición seleccionado en la cámara o dispositivo de "
+"entrada en el momento que se captura la imagen."
+
+#: libexif/exif-tag.c:769
+msgid "Sensing Method"
+msgstr "Método de sensado"
+
+#: libexif/exif-tag.c:770
+msgid "Indicates the image sensor type on the camera or input device."
+msgstr ""
+"Indica el tipo de sensor de imagen en la cámara o dispositivo de entrada."
+
+#: libexif/exif-tag.c:773 libexif/fuji/mnote-fuji-tag.c:64
+msgid "File Source"
+msgstr "Fuente de archivo"
+
+#: libexif/exif-tag.c:774
+#, fuzzy
+msgid ""
+"Indicates the image source. If a DSC recorded the image, the tag value of "
+"this tag always be set to 3, indicating that the image was recorded on a DSC."
+msgstr ""
+"Indica la fuente de la imagen. Si la imagen se registró en un DSC, el valor "
+"de esta etiqueta siempre debe ser 3, indicando que la imagen se registró en "
+"un DSC."
+
+#: libexif/exif-tag.c:778
+msgid "Scene Type"
+msgstr "Tipo de escena"
+
+#: libexif/exif-tag.c:779
+msgid ""
+"Indicates the type of scene. If a DSC recorded the image, this tag value "
+"must always be set to 1, indicating that the image was directly photographed."
+msgstr ""
+"Indica el tipo de la escena. Si la imagen se registró en un DSC, el valor de "
+"esta etiqueta siempre debe ser 1, indicando que la imagen se registró en un "
+"DSC."
+
+#: libexif/exif-tag.c:789
+msgid "Custom Rendered"
+msgstr "Render personalizado"
+
+#: libexif/exif-tag.c:790
+msgid ""
+"This tag indicates the use of special processing on image data, such as "
+"rendering geared to output. When special processing is performed, the reader "
+"is expected to disable or minimize any further processing."
+msgstr ""
+"Esta etiqueta indica el uso de procesamiento especial en los datos de "
+"imagen, tal como el rendering de la salida. Cuando se realiza un "
+"procesamiento especial, se espera que el lector deshabilite o minimice el "
+"procesado siguiente."
+
+#: libexif/exif-tag.c:796
+msgid ""
+"This tag indicates the exposure mode set when the image was shot. In auto-"
+"bracketing mode, the camera shoots a series of frames of the same scene at "
+"different exposure settings."
+msgstr ""
+"Esta etiqueta indica el modo de exposición ajustado cuando se tomó la "
+"imagen. En el modo auto-bracketing, la cámara toma una serie de cuadros de "
+"la misma escena con ajustes de exposición diferentes."
+
+#: libexif/exif-tag.c:801
+msgid "This tag indicates the white balance mode set when the image was shot."
+msgstr ""
+"Esta etiqueta indica el modo de balance de blanco ajustado cuando se tomó la "
+"imagen."
+
+#: libexif/exif-tag.c:805
+msgid "Digital Zoom Ratio"
+msgstr "Relación de zoom digital"
+
+#: libexif/exif-tag.c:806
+msgid ""
+"This tag indicates the digital zoom ratio when the image was shot. If the "
+"numerator of the recorded value is 0, this indicates that digital zoom was "
+"not used."
+msgstr ""
+"Esta etiqueta indica la relación del zoom digital cuando se tomó la imagen. "
+"Si el numerador del valor registrado es 0, esto indica que no se utilizó el "
+"zoom digital."
+
+#: libexif/exif-tag.c:811
+#, fuzzy
+msgid "Focal Length in 35mm Film"
+msgstr "Distancia focal en película de 35mm"
+
+#: libexif/exif-tag.c:812
+msgid ""
+"This tag indicates the equivalent focal length assuming a 35mm film camera, "
+"in mm. A value of 0 means the focal length is unknown. Note that this tag "
+"differs from the FocalLength tag."
+msgstr ""
+"Esta etiqueta indica la distancia focal equivalente asumiendo una cámara de "
+"película de 35mm, en mm. Un valor de 0 significa que se desconoce la "
+"distancia focal. Note que esta etiqueta difiere de la etiqueta FocalLength."
+
+#: libexif/exif-tag.c:818
+msgid "Scene Capture Type"
+msgstr "Tipo de captura de escena"
+
+#: libexif/exif-tag.c:819
+msgid ""
+"This tag indicates the type of scene that was shot. It can also be used to "
+"record the mode in which the image was shot. Note that this differs from the "
+"scene type <SceneType> tag."
+msgstr ""
+"Esta etiqueta indica el tipo de escena que se tomó. También se puede "
+"utilizar para registrar el modo en el cual se tomó la imagen. Note que esto "
+"difiere de la etiqueta SceneType."
+
+#: libexif/exif-tag.c:824
+msgid "Gain Control"
+msgstr "Control de ganancia"
+
+#: libexif/exif-tag.c:825
+msgid "This tag indicates the degree of overall image gain adjustment."
+msgstr ""
+"Esta etiqueta indica el grado del ajuste de ganancia general de imagen."
+
+#: libexif/exif-tag.c:829
+msgid ""
+"This tag indicates the direction of contrast processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Esta etiqueta indica la dirección del procesamiento de contraste aplicado "
+"por la cámara cuando se tomó la imagen."
+
+#: libexif/exif-tag.c:833
+msgid ""
+"This tag indicates the direction of saturation processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Esta etiqueta indica la dirección del procesamiento de stauración aplicado "
+"por la cámara cuando se tomó la imagen."
+
+#: libexif/exif-tag.c:837
+msgid ""
+"This tag indicates the direction of sharpness processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Esta etiqueta indica la dirección del procesamiento de nitidez aplicado por "
+"la cámara cuando se tomó la imagen."
+
+#: libexif/exif-tag.c:841
+msgid "Device Setting Description"
+msgstr "Descripción de ajuste del dispositivo"
+
+#: libexif/exif-tag.c:842
+msgid ""
+"This tag indicates information on the picture-taking conditions of a "
+"particular camera model. The tag is used only to indicate the picture-taking "
+"conditions in the reader."
+msgstr ""
+"Esta etiqueta indica información sobre las condiciones de toma de la foto de "
+"un modelo de cámara en particular. La etiqueta sólo se usa para indicar las "
+"condiciones de toma de fotos en el lector."
+
+#: libexif/exif-tag.c:848
+msgid "Subject Distance Range"
+msgstr "Rango de distancia al sujeto."
+
+#: libexif/exif-tag.c:849
+msgid "This tag indicates the distance to the subject."
+msgstr "Esta etiqueta indica la distancia al sujeto."
+
+#: libexif/exif-tag.c:851
+msgid "Image Unique ID"
+msgstr "ID único de imagen"
+
+#: libexif/exif-tag.c:852
+msgid ""
+"This tag indicates an identifier assigned uniquely to each image. It is "
+"recorded as an ASCII string equivalent to hexadecimal notation and 128-bit "
+"fixed length."
+msgstr ""
+"Esta etiqueta indica un identificador asignado unívocamente a cada imagen. "
+"Se registra como una cadena de caracteres ASCII equivalente a notación "
+"hexadecimal y de una longitud fija de 128 bits."
+
+#: libexif/exif-tag.c:857
+msgid "Gamma"
+msgstr ""
+
+#: libexif/exif-tag.c:858
+msgid "Indicates the value of coefficient gamma."
+msgstr ""
+
+#: libexif/exif-tag.c:860
+msgid "PRINT Image Matching"
+msgstr ""
+
+#: libexif/exif-tag.c:861
+msgid "Related to Epson's PRINT Image Matching technology"
+msgstr ""
+
+#: libexif/exif-tag.c:863
+msgid "Padding"
+msgstr ""
+
+#: libexif/exif-tag.c:864
+msgid ""
+"This tag reserves space that can be reclaimed later when additional metadata "
+"are added. New metadata can be written in place by replacing this tag with a "
+"smaller data element and using the reclaimed space to store the new or "
+"expanded metadata tags."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:62
+#, fuzzy
+msgid "Softest"
+msgstr "Suave"
+
+#: libexif/fuji/mnote-fuji-entry.c:66
+#, fuzzy
+msgid "Hardest"
+msgstr "Duro"
+
+#: libexif/fuji/mnote-fuji-entry.c:67 libexif/fuji/mnote-fuji-entry.c:96
+msgid "Medium soft"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:68 libexif/fuji/mnote-fuji-entry.c:94
+msgid "Medium hard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:69 libexif/fuji/mnote-fuji-entry.c:90
+#: libexif/fuji/mnote-fuji-entry.c:98 libexif/fuji/mnote-fuji-entry.c:182
+msgid "Film simulation mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:79
+msgid "Incandescent"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:85
+msgid "Medium high"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:87
+msgid "Medium low"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:88 libexif/fuji/mnote-fuji-entry.c:97
+msgid "Original"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:124 libexif/pentax/mnote-pentax-entry.c:164
+#: libexif/pentax/mnote-pentax-entry.c:299
+#, fuzzy
+msgid "Program AE"
+msgstr "Programa normal"
+
+#: libexif/fuji/mnote-fuji-entry.c:125
+#, fuzzy
+msgid "Natural photo"
+msgstr "Saturación"
+
+#: libexif/fuji/mnote-fuji-entry.c:126
+#, fuzzy
+msgid "Vibration reduction"
+msgstr "El flash disparó, modo de reducción de ojos rojos."
+
+#: libexif/fuji/mnote-fuji-entry.c:127
+msgid "Sunset"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:128 libexif/pentax/mnote-pentax-entry.c:181
+msgid "Museum"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:129
+#, fuzzy
+msgid "Party"
+msgstr "Parcial"
+
+#: libexif/fuji/mnote-fuji-entry.c:130
+msgid "Flower"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:131 libexif/pentax/mnote-pentax-entry.c:176
+msgid "Text"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:132
+#, fuzzy
+msgid "NP & flash"
+msgstr "Flash"
+
+#: libexif/fuji/mnote-fuji-entry.c:137
+#, fuzzy
+msgid "Aperture priority AE"
+msgstr "Prioridad de apertura"
+
+#: libexif/fuji/mnote-fuji-entry.c:138
+#, fuzzy
+msgid "Shutter priority AE"
+msgstr "Prioridad del obturador"
+
+#: libexif/fuji/mnote-fuji-entry.c:146
+#, fuzzy
+msgid "F-Standard"
+msgstr "Estándar"
+
+#: libexif/fuji/mnote-fuji-entry.c:147
+msgid "F-Chrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:148
+msgid "F-B&W"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:151
+msgid "No blur"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:152
+msgid "Blur warning"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:155
+#, fuzzy
+msgid "Focus good"
+msgstr "Modo de exposición"
+
+#: libexif/fuji/mnote-fuji-entry.c:156
+msgid "Out of focus"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:159
+msgid "AE good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:160
+msgid "Over exposed"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:164
+msgid "Wide"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:167
+#, fuzzy
+msgid "F0/Standard"
+msgstr "Estándar"
+
+#: libexif/fuji/mnote-fuji-entry.c:168
+#, fuzzy
+msgid "F1/Studio portrait"
+msgstr "retrato"
+
+#: libexif/fuji/mnote-fuji-entry.c:169
+msgid "F1a/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:170
+msgid "F1b/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:171
+msgid "F1c/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:172
+msgid "F2/Fujichrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:173
+msgid "F3/Studio portrait Ex"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:174
+msgid "F4/Velvia"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:177
+msgid "Auto (100-400%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:179
+#, fuzzy
+msgid "Standard (100%)"
+msgstr "Estándar"
+
+#: libexif/fuji/mnote-fuji-entry.c:180
+msgid "Wide1 (230%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:181
+msgid "Wide2 (400%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:263
+#, c-format
+msgid "%2.2f mm"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:298 libexif/pentax/mnote-pentax-entry.c:399
+#: libexif/pentax/mnote-pentax-entry.c:451
+#, c-format
+msgid "%i bytes unknown data"
+msgstr "%i bytes de datos desconocidos"
+
+#: libexif/fuji/mnote-fuji-tag.c:36
+#, fuzzy
+msgid "Maker Note Version"
+msgstr "Nota del fabricante"
+
+#: libexif/fuji/mnote-fuji-tag.c:37
+msgid "This number is unique and based on the date of manufacture."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:41
+#, fuzzy
+msgid "Chromaticity Saturation"
+msgstr "Saturación"
+
+#: libexif/fuji/mnote-fuji-tag.c:44
+msgid "Flash Firing Strength Compensation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:46
+#, fuzzy
+msgid "Focusing Mode"
+msgstr "Modo de exposición"
+
+#: libexif/fuji/mnote-fuji-tag.c:47
+#, fuzzy
+msgid "Focus Point"
+msgstr "Modo de exposición"
+
+#: libexif/fuji/mnote-fuji-tag.c:48
+msgid "Slow Synchro Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:49 libexif/pentax/mnote-pentax-tag.c:72
+#, fuzzy
+msgid "Picture Mode"
+msgstr "Modo de exposición"
+
+#: libexif/fuji/mnote-fuji-tag.c:50
+msgid "Continuous Taking"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:51
+msgid "Continuous Sequence Number"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:52
+msgid "FinePix Color"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:53
+msgid "Blur Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:54
+msgid "Auto Focus Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:55
+#, fuzzy
+msgid "Auto Exposure Check"
+msgstr "Exposición automática"
+
+#: libexif/fuji/mnote-fuji-tag.c:56
+msgid "Dynamic Range"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:57
+msgid "Film Simulation Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:58
+msgid "Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:59
+msgid "Development Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:60
+#, fuzzy
+msgid "Minimum Focal Length"
+msgstr "Distancia focal"
+
+#: libexif/fuji/mnote-fuji-tag.c:61
+#, fuzzy
+msgid "Maximum Focal Length"
+msgstr "Distancia focal"
+
+#: libexif/fuji/mnote-fuji-tag.c:62
+msgid "Maximum Aperture at Minimum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:63
+msgid "Maximum Aperture at Maximum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:65
+#, fuzzy
+msgid "Order Number"
+msgstr "El número F."
+
+#: libexif/fuji/mnote-fuji-tag.c:66 libexif/pentax/mnote-pentax-tag.c:98
+#, fuzzy
+msgid "Frame Number"
+msgstr "El número F."
+
+#: libexif/olympus/mnote-olympus-entry.c:49
+#, fuzzy, c-format
+msgid "Invalid format '%s', expected '%s' or '%s'."
+msgstr "Formato no válido '%s', se esperaba '%s'."
+
+#: libexif/olympus/mnote-olympus-entry.c:89
+msgid "AF non D lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:91
+msgid "AF-D or AF-S lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:92
+msgid "AF-D G lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:93
+msgid "AF-D VR lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:94
+msgid "AF-D G VR lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:98
+msgid "Flash unit unknown"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:99
+msgid "Flash is external"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:100
+#, fuzzy
+msgid "Flash is on camera"
+msgstr "Energía del flash"
+
+#: libexif/olympus/mnote-olympus-entry.c:103
+msgid "VGA basic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:104
+#, fuzzy
+msgid "VGA normal"
+msgstr "normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:105
+msgid "VGA fine"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:106
+msgid "SXGA basic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:107
+#, fuzzy
+msgid "SXGA normal"
+msgstr "normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:108
+msgid "SXGA fine"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:109
+msgid "2 Mpixel basic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:110
+msgid "2 Mpixel normal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:111
+msgid "2 Mpixel fine"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:114
+#, fuzzy
+msgid "Color"
+msgstr "Espacio de color"
+
+#: libexif/olympus/mnote-olympus-entry.c:119
+msgid "Bright+"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:120
+msgid "Bright-"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:121
+#, fuzzy
+msgid "Contrast+"
+msgstr "Contraste"
+
+#: libexif/olympus/mnote-olympus-entry.c:122
+#, fuzzy
+msgid "Contrast-"
+msgstr "Contraste"
+
+#: libexif/olympus/mnote-olympus-entry.c:125
+msgid "ISO 80"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:126
+msgid "ISO 160"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:127
+msgid "ISO 320"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:128
+#: libexif/olympus/mnote-olympus-entry.c:246
+msgid "ISO 100"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:132
+msgid "Preset"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:134
+msgid "Incandescence"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:135
+#, fuzzy
+msgid "Fluorescence"
+msgstr "Fluorescente"
+
+#: libexif/olympus/mnote-olympus-entry.c:137
+msgid "SpeedLight"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:140
+msgid "No fisheye"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:141
+#, fuzzy
+msgid "Fisheye on"
+msgstr "Flash"
+
+#: libexif/olympus/mnote-olympus-entry.c:144
+#, fuzzy
+msgid "Normal, SQ"
+msgstr "Normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:145
+#, fuzzy
+msgid "Normal, HQ"
+msgstr "Normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:146
+#, fuzzy
+msgid "Normal, SHQ"
+msgstr "Normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:147
+#, fuzzy
+msgid "Normal, RAW"
+msgstr "Normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:148
+#, fuzzy
+msgid "Normal, SQ1"
+msgstr "Normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:149
+#, fuzzy
+msgid "Normal, SQ2"
+msgstr "Normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:150
+#, fuzzy
+msgid "Normal, super high"
+msgstr "Programa normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:151
+msgid "Normal, standard"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:152
+#, fuzzy
+msgid "Fine, SQ"
+msgstr "pulg"
+
+#: libexif/olympus/mnote-olympus-entry.c:153
+#, fuzzy
+msgid "Fine, HQ"
+msgstr "pulg"
+
+#: libexif/olympus/mnote-olympus-entry.c:154
+#, fuzzy
+msgid "Fine, SHQ"
+msgstr "pulg"
+
+#: libexif/olympus/mnote-olympus-entry.c:155
+#, fuzzy
+msgid "Fine, RAW"
+msgstr "pulg"
+
+#: libexif/olympus/mnote-olympus-entry.c:156
+#, fuzzy
+msgid "Fine, SQ1"
+msgstr "pulg"
+
+#: libexif/olympus/mnote-olympus-entry.c:157
+#, fuzzy
+msgid "Fine, SQ2"
+msgstr "pulg"
+
+#: libexif/olympus/mnote-olympus-entry.c:158
+msgid "Fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:159
+msgid "Super fine, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:160
+msgid "Super fine, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:161
+msgid "Super fine, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:162
+msgid "Super fine, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:163
+msgid "Super fine, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:164
+msgid "Super fine, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:165
+msgid "Super fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:166
+msgid "Super fine, high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:169
+#: libexif/olympus/mnote-olympus-entry.c:174
+#: libexif/olympus/mnote-olympus-entry.c:208
+#: libexif/olympus/mnote-olympus-entry.c:217
+#: libexif/olympus/mnote-olympus-entry.c:240
+msgid "No"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:180
+msgid "On (Preset)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:185
+msgid "Fill"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:192
+#, fuzzy
+msgid "Internal + external"
+msgstr "Flash"
+
+#: libexif/olympus/mnote-olympus-entry.c:221
+#, fuzzy
+msgid "Interlaced"
+msgstr "centrado"
+
+#: libexif/olympus/mnote-olympus-entry.c:222
+msgid "Progressive"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:228
+#: libexif/pentax/mnote-pentax-entry.c:85
+#: libexif/pentax/mnote-pentax-entry.c:139
+msgid "Best"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:229
+#, fuzzy
+msgid "Adjust exposure"
+msgstr "Exposición automática"
+
+#: libexif/olympus/mnote-olympus-entry.c:232
+#, fuzzy
+msgid "Spot focus"
+msgstr "Exposición manual"
+
+#: libexif/olympus/mnote-olympus-entry.c:233
+#, fuzzy
+msgid "Normal focus"
+msgstr "Proceso normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:236
+msgid "Record while down"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:237
+msgid "Press start, press stop"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:245
+msgid "ISO 50"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:247
+msgid "ISO 200"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:248
+msgid "ISO 400"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:252
+#: libexif/pentax/mnote-pentax-entry.c:168
+#, fuzzy
+msgid "Sport"
+msgstr "Lugar"
+
+#: libexif/olympus/mnote-olympus-entry.c:253
+msgid "TV"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:255
+msgid "User 1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:256
+msgid "User 2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:257
+msgid "Lamp"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:260
+msgid "5 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:261
+msgid "10 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:262
+msgid "15 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:263
+msgid "20 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:375
+#, c-format
+msgid "Red Correction %f, blue Correction %f"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:383
+#, c-format
+msgid "%2.2f meters"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:385
+#, fuzzy
+msgid "No manual focus selection"
+msgstr "Balance de blanco manual"
+
+#: libexif/olympus/mnote-olympus-entry.c:411
+msgid "AF position: center"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:412
+msgid "AF position: top"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:413
+#, fuzzy
+msgid "AF position: bottom"
+msgstr "izquierda - abajo"
+
+#: libexif/olympus/mnote-olympus-entry.c:414
+msgid "AF position: left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:415
+msgid "AF position: right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:416
+msgid "AF position: upper-left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:417
+msgid "AF position: upper-right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:418
+msgid "AF position: lower-left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:419
+msgid "AF position: lower-right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:420
+msgid "AF position: far left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:421
+msgid "AF position: far right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:422
+#, fuzzy
+msgid "Unknown AF position"
+msgstr "Versión Exif"
+
+#: libexif/olympus/mnote-olympus-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:503
+#, c-format
+msgid "Internal error (unknown value %hi)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:441
+#: libexif/olympus/mnote-olympus-entry.c:511
+#, c-format
+msgid "Unknown value %hi"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:536
+#: libexif/olympus/mnote-olympus-entry.c:556
+#, fuzzy, c-format
+msgid "Unknown %hu"
+msgstr "Desconocido"
+
+#: libexif/olympus/mnote-olympus-entry.c:553
+#, fuzzy
+msgid "2 sec."
+msgstr " seg."
+
+#: libexif/olympus/mnote-olympus-entry.c:592
+#, fuzzy
+msgid "Fast"
+msgstr "Flash"
+
+#: libexif/olympus/mnote-olympus-entry.c:696
+msgid "Automatic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:726
+#, fuzzy, c-format
+msgid "Manual: %liK"
+msgstr "Manual"
+
+#: libexif/olympus/mnote-olympus-entry.c:729
+#, fuzzy
+msgid "Manual: unknown"
+msgstr "desconocido"
+
+#: libexif/olympus/mnote-olympus-entry.c:735
+msgid "One-touch"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:791
+#: libexif/olympus/mnote-olympus-entry.c:801
+msgid "Infinite"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:809
+#, c-format
+msgid "%i bytes unknown data: "
+msgstr "%i bytes de datos desconocidos: "
+
+#: libexif/olympus/mnote-olympus-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:53
+#, fuzzy
+msgid "ISO Setting"
+msgstr "Velocidad ISO"
+
+#: libexif/olympus/mnote-olympus-tag.c:39
+#, fuzzy
+msgid "Color Mode (?)"
+msgstr "Espacio de color"
+
+#: libexif/olympus/mnote-olympus-tag.c:42
+#, fuzzy
+msgid "Image Sharpening"
+msgstr "Longitud de la imagen"
+
+#: libexif/olympus/mnote-olympus-tag.c:44
+#, fuzzy
+msgid "Flash Setting"
+msgstr "Contraste"
+
+#: libexif/olympus/mnote-olympus-tag.c:46
+#, fuzzy
+msgid "White Balance Fine Adjustment"
+msgstr "Balance de blanco"
+
+#: libexif/olympus/mnote-olympus-tag.c:47
+#, fuzzy
+msgid "White Balance RB"
+msgstr "Balance de blanco"
+
+#: libexif/olympus/mnote-olympus-tag.c:49
+#, fuzzy
+msgid "ISO Selection"
+msgstr "Velocidad ISO"
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Preview Image IFD"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Offset of the preview image directory (IFD) inside the file."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:51
+#, fuzzy
+msgid "Exposurediff ?"
+msgstr "Modo de exposición"
+
+#: libexif/olympus/mnote-olympus-tag.c:54
+msgid "Image Boundary"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:56
+#, fuzzy
+msgid "Flash Exposure Bracket Value"
+msgstr "Modo de exposición"
+
+#: libexif/olympus/mnote-olympus-tag.c:57
+#, fuzzy
+msgid "Exposure Bracket Value"
+msgstr "Auto bracket"
+
+#: libexif/olympus/mnote-olympus-tag.c:58
+#: libexif/olympus/mnote-olympus-tag.c:96
+msgid "Image Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:59
+#, fuzzy
+msgid "Tone Compensation"
+msgstr "Tiempo de exposición"
+
+#: libexif/olympus/mnote-olympus-tag.c:60
+msgid "Adapter"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:62
+msgid "Lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:63
+#: libexif/olympus/mnote-olympus-tag.c:135
+#: libexif/olympus/mnote-olympus-tag.c:185
+#, fuzzy
+msgid "Manual Focus Distance"
+msgstr "Balance de blanco manual"
+
+#: libexif/olympus/mnote-olympus-tag.c:65
+#, fuzzy
+msgid "Flash Used"
+msgstr "El flash disparó."
+
+#: libexif/olympus/mnote-olympus-tag.c:66
+#, fuzzy
+msgid "AF Focus Position"
+msgstr "Modo de exposición"
+
+#: libexif/olympus/mnote-olympus-tag.c:67
+msgid "Bracketing"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:69
+#, fuzzy
+msgid "Lens F Stops"
+msgstr "Tipo de escena"
+
+#: libexif/olympus/mnote-olympus-tag.c:70
+#, fuzzy
+msgid "Contrast Curve"
+msgstr "Contraste"
+
+#: libexif/olympus/mnote-olympus-tag.c:71
+#: libexif/olympus/mnote-olympus-tag.c:95
+#: libexif/pentax/mnote-pentax-tag.c:134
+#, fuzzy
+msgid "Color Mode"
+msgstr "Espacio de color"
+
+#: libexif/olympus/mnote-olympus-tag.c:72
+#, fuzzy
+msgid "Light Type"
+msgstr "Fuente de luz"
+
+#: libexif/olympus/mnote-olympus-tag.c:74
+msgid "Hue Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:76
+#: libexif/olympus/mnote-olympus-tag.c:163
+#: libexif/pentax/mnote-pentax-tag.c:108
+#, fuzzy
+msgid "Noise Reduction"
+msgstr "El flash disparó, modo de reducción de ojos rojos."
+
+#: libexif/olympus/mnote-olympus-tag.c:79
+msgid "Sensor Pixel Size"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+#, fuzzy
+msgid "Image Data Size"
+msgstr "Ancho de la imagen"
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Size of compressed image data in bytes."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:84
+msgid "Total Number of Pictures Taken"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:86
+msgid "Optimize Image"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:88
+#, fuzzy
+msgid "Vari Program"
+msgstr "Programa normal"
+
+#: libexif/olympus/mnote-olympus-tag.c:89
+msgid "Capture Editor Data"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:90
+msgid "Capture Editor Version"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:97
+#: libexif/olympus/mnote-olympus-tag.c:183
+#, fuzzy
+msgid "CCD Sensitivity"
+msgstr "Sensibilidad espectral"
+
+#: libexif/olympus/mnote-olympus-tag.c:99
+#, fuzzy
+msgid "Focus"
+msgstr "Modo de exposición"
+
+#: libexif/olympus/mnote-olympus-tag.c:102
+#, fuzzy
+msgid "Converter"
+msgstr "Centímetro"
+
+#: libexif/olympus/mnote-olympus-tag.c:105
+msgid "Thumbnail Image"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:106
+msgid "Speed/Sequence/Panorama Direction"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:109
+#, fuzzy
+msgid "Black & White Mode"
+msgstr "Modelo"
+
+#: libexif/olympus/mnote-olympus-tag.c:111
+#, fuzzy
+msgid "Focal Plane Diagonal"
+msgstr "Resolución X del plano focal"
+
+#: libexif/olympus/mnote-olympus-tag.c:112
+msgid "Lens Distortion Parameters"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:114
+msgid "Info"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:115
+msgid "Camera ID"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:116
+msgid "Precapture Frames"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:117
+#, fuzzy
+msgid "White Board"
+msgstr "Balance de blanco"
+
+#: libexif/olympus/mnote-olympus-tag.c:118
+#, fuzzy
+msgid "One Touch White Balance"
+msgstr "Balance de blanco"
+
+#: libexif/olympus/mnote-olympus-tag.c:119
+#, fuzzy
+msgid "White Balance Bracket"
+msgstr "Balance de blanco"
+
+#: libexif/olympus/mnote-olympus-tag.c:120
+#: libexif/pentax/mnote-pentax-tag.c:123
+#, fuzzy
+msgid "White Balance Bias"
+msgstr "Balance de blanco"
+
+#: libexif/olympus/mnote-olympus-tag.c:121
+msgid "Data Dump"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:124
+msgid "ISO Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:125
+#, fuzzy
+msgid "Aperture Value"
+msgstr "Apertura"
+
+#: libexif/olympus/mnote-olympus-tag.c:126
+#, fuzzy
+msgid "Brightness Value"
+msgstr "Brillo"
+
+#: libexif/olympus/mnote-olympus-tag.c:128
+#, fuzzy
+msgid "Flash Device"
+msgstr "El flash disparó."
+
+#: libexif/olympus/mnote-olympus-tag.c:130
+msgid "Sensor Temperature"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:131
+msgid "Lens Temperature"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:132
+msgid "Light Condition"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:136
+msgid "Zoom Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:137
+msgid "Focus Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:138
+#, fuzzy
+msgid "Sharpness Setting"
+msgstr "Nitidez"
+
+#: libexif/olympus/mnote-olympus-tag.c:139
+msgid "Flash Charge Level"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:140
+#, fuzzy
+msgid "Color Matrix"
+msgstr "Espacio de color"
+
+#: libexif/olympus/mnote-olympus-tag.c:141
+#, fuzzy
+msgid "Black Level"
+msgstr "Nivel de la batería"
+
+#: libexif/olympus/mnote-olympus-tag.c:142
+#, fuzzy
+msgid "White Balance Setting"
+msgstr "Balance de blanco"
+
+#: libexif/olympus/mnote-olympus-tag.c:143
+#: libexif/pentax/mnote-pentax-tag.c:87
+#, fuzzy
+msgid "Red Balance"
+msgstr "Balance de blanco"
+
+#: libexif/olympus/mnote-olympus-tag.c:144
+#: libexif/pentax/mnote-pentax-tag.c:86
+#, fuzzy
+msgid "Blue Balance"
+msgstr "Balance de blanco"
+
+#: libexif/olympus/mnote-olympus-tag.c:145
+msgid "Color Matrix Number"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:147
+#, fuzzy
+msgid "Flash Exposure Comp"
+msgstr "Modo de exposición"
+
+#: libexif/olympus/mnote-olympus-tag.c:148
+#, fuzzy
+msgid "Internal Flash Table"
+msgstr "Flash"
+
+#: libexif/olympus/mnote-olympus-tag.c:149
+#, fuzzy
+msgid "External Flash G Value"
+msgstr "Flash"
+
+#: libexif/olympus/mnote-olympus-tag.c:150
+#, fuzzy
+msgid "External Flash Bounce"
+msgstr "Flash"
+
+#: libexif/olympus/mnote-olympus-tag.c:151
+#, fuzzy
+msgid "External Flash Zoom"
+msgstr "Flash"
+
+#: libexif/olympus/mnote-olympus-tag.c:152
+#, fuzzy
+msgid "External Flash Mode"
+msgstr "Flash"
+
+#: libexif/olympus/mnote-olympus-tag.c:153
+#, fuzzy
+msgid "Contrast Setting"
+msgstr "Contraste"
+
+#: libexif/olympus/mnote-olympus-tag.c:154
+#, fuzzy
+msgid "Sharpness Factor"
+msgstr "Nitidez"
+
+#: libexif/olympus/mnote-olympus-tag.c:155
+#, fuzzy
+msgid "Color Control"
+msgstr "Espacio de color"
+
+#: libexif/olympus/mnote-olympus-tag.c:156
+#, fuzzy
+msgid "Olympus Image Width"
+msgstr "Ancho de la imagen"
+
+#: libexif/olympus/mnote-olympus-tag.c:157
+msgid "Olympus Image Height"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:158
+#, fuzzy
+msgid "Scene Detect"
+msgstr "Tipo de escena"
+
+#: libexif/olympus/mnote-olympus-tag.c:159
+#, fuzzy
+msgid "Compression Ratio"
+msgstr "Compresión"
+
+#: libexif/olympus/mnote-olympus-tag.c:160
+msgid "Preview Image Valid"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:161
+msgid "AF Result"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:162
+msgid "CCD Scan Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:164
+msgid "Infinity Lens Step"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:165
+#, fuzzy
+msgid "Near Lens Step"
+msgstr "Tipo de escena"
+
+#: libexif/olympus/mnote-olympus-tag.c:166
+#, fuzzy
+msgid "Light Value Center"
+msgstr "abajo centrado"
+
+#: libexif/olympus/mnote-olympus-tag.c:167
+msgid "Light Value Periphery"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:170
+msgid "Sequential Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:171
+#, fuzzy
+msgid "Wide Range"
+msgstr "Balance de blanco"
+
+#: libexif/olympus/mnote-olympus-tag.c:172
+#, fuzzy
+msgid "Color Adjustment Mode"
+msgstr "Espacio de color"
+
+#: libexif/olympus/mnote-olympus-tag.c:174
+#, fuzzy
+msgid "Quick Shot"
+msgstr "Multi Lugar"
+
+#: libexif/olympus/mnote-olympus-tag.c:176
+msgid "Voice Memo"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:177
+msgid "Record Shutter Release"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:178
+msgid "Flicker Reduce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:179
+#, fuzzy
+msgid "Optical Zoom"
+msgstr "Relación de zoom digital"
+
+#: libexif/olympus/mnote-olympus-tag.c:181
+#, fuzzy
+msgid "Light Source Special"
+msgstr "Fuente de luz"
+
+#: libexif/olympus/mnote-olympus-tag.c:182
+#, fuzzy
+msgid "Resaved"
+msgstr "reservado"
+
+#: libexif/olympus/mnote-olympus-tag.c:184
+#, fuzzy
+msgid "Scene Select"
+msgstr "Tipo de escena"
+
+#: libexif/olympus/mnote-olympus-tag.c:186
+msgid "Sequence Shot Interval"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:189
+#, fuzzy
+msgid "Epson Image Width"
+msgstr "Ancho de la imagen"
+
+#: libexif/olympus/mnote-olympus-tag.c:190
+#, fuzzy
+msgid "Epson Image Height"
+msgstr "Longitud de la imagen"
+
+#: libexif/olympus/mnote-olympus-tag.c:191
+#, fuzzy
+msgid "Epson Software Version"
+msgstr "Nota del fabricante"
+
+#: libexif/pentax/mnote-pentax-entry.c:80
+#: libexif/pentax/mnote-pentax-entry.c:134
+#, fuzzy
+msgid "Multi-exposure"
+msgstr "Exposición manual"
+
+#: libexif/pentax/mnote-pentax-entry.c:83
+#: libexif/pentax/mnote-pentax-entry.c:137
+msgid "Good"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:84
+#: libexif/pentax/mnote-pentax-entry.c:138
+#, fuzzy
+msgid "Better"
+msgstr "Centímetro"
+
+#: libexif/pentax/mnote-pentax-entry.c:92
+#, fuzzy
+msgid "Flash on"
+msgstr "Flash"
+
+#: libexif/pentax/mnote-pentax-entry.c:140
+msgid "TIFF"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:150
+msgid "2560x1920 or 2304x1728"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:156
+msgid "2304x1728 or 2592x1944"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:158
+msgid "2816x2212 or 2816x2112"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:171
+msgid "Surf & snow"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:172
+#, fuzzy
+msgid "Sunset or candlelight"
+msgstr "Tungsteno (luz incandescente)"
+
+#: libexif/pentax/mnote-pentax-entry.c:173
+msgid "Autumn"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:178
+#, fuzzy
+msgid "Self portrait"
+msgstr "Retrato"
+
+#: libexif/pentax/mnote-pentax-entry.c:179
+#, fuzzy
+msgid "Illustrations"
+msgstr "Saturación"
+
+#: libexif/pentax/mnote-pentax-entry.c:180
+#, fuzzy
+msgid "Digital filter"
+msgstr "Relación de zoom digital"
+
+#: libexif/pentax/mnote-pentax-entry.c:182
+msgid "Food"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:183
+#, fuzzy
+msgid "Green mode"
+msgstr "Modo de métrica"
+
+#: libexif/pentax/mnote-pentax-entry.c:184
+#, fuzzy
+msgid "Light pet"
+msgstr "Fuente de luz"
+
+#: libexif/pentax/mnote-pentax-entry.c:185
+msgid "Dark pet"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:186
+msgid "Medium pet"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:188
+#: libexif/pentax/mnote-pentax-entry.c:296
+#, fuzzy
+msgid "Candlelight"
+msgstr "Luz de día"
+
+#: libexif/pentax/mnote-pentax-entry.c:189
+#, fuzzy
+msgid "Natural skin tone"
+msgstr "Saturación"
+
+#: libexif/pentax/mnote-pentax-entry.c:190
+msgid "Synchro sound record"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:191
+msgid "Frame composite"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:194
+#, fuzzy
+msgid "Auto, did not fire"
+msgstr "El flash no disparó."
+
+#: libexif/pentax/mnote-pentax-entry.c:196
+#, fuzzy
+msgid "Auto, did not fire, red-eye reduction"
+msgstr "El flash disparó, modo de reducción de ojos rojos."
+
+#: libexif/pentax/mnote-pentax-entry.c:197
+#, fuzzy
+msgid "Auto, fired"
+msgstr "Auto bracket"
+
+#: libexif/pentax/mnote-pentax-entry.c:199
+#, fuzzy
+msgid "Auto, fired, red-eye reduction"
+msgstr "El flash disparó, modo de reducción de ojos rojos."
+
+#: libexif/pentax/mnote-pentax-entry.c:201
+msgid "On, wireless"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:202
+#, fuzzy
+msgid "On, soft"
+msgstr "Suave"
+
+#: libexif/pentax/mnote-pentax-entry.c:203
+msgid "On, slow-sync"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:204
+#, fuzzy
+msgid "On, slow-sync, red-eye reduction"
+msgstr "El flash disparó, modo de reducción de ojos rojos."
+
+#: libexif/pentax/mnote-pentax-entry.c:205
+msgid "On, trailing-curtain sync"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:213
+msgid "AF-S"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:214
+msgid "AF-C"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:217
+#, fuzzy
+msgid "Upper-left"
+msgstr "arriba - izquierda"
+
+#: libexif/pentax/mnote-pentax-entry.c:218
+msgid "Top"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:219
+#, fuzzy
+msgid "Upper-right"
+msgstr "arriba - derecha"
+
+#: libexif/pentax/mnote-pentax-entry.c:221
+msgid "Mid-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:223
+#, fuzzy
+msgid "Mid-right"
+msgstr "Copyright"
+
+#: libexif/pentax/mnote-pentax-entry.c:225
+#, fuzzy
+msgid "Lower-left"
+msgstr "arriba - izquierda"
+
+#: libexif/pentax/mnote-pentax-entry.c:226
+#, fuzzy
+msgid "Bottom"
+msgstr "abajo - izquierda"
+
+#: libexif/pentax/mnote-pentax-entry.c:227
+#, fuzzy
+msgid "Lower-right"
+msgstr "arriba - derecha"
+
+#: libexif/pentax/mnote-pentax-entry.c:228
+#, fuzzy
+msgid "Fixed center"
+msgstr "Tiempo bueno"
+
+#: libexif/pentax/mnote-pentax-entry.c:232
+#, fuzzy
+msgid "Multiple"
+msgstr "Multi Lugar"
+
+#: libexif/pentax/mnote-pentax-entry.c:234
+#, fuzzy
+msgid "Top-center"
+msgstr "centrado"
+
+#: libexif/pentax/mnote-pentax-entry.c:240
+#, fuzzy
+msgid "Bottom-center"
+msgstr "centrado"
+
+#: libexif/pentax/mnote-pentax-entry.c:257
+msgid "User selected"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:282
+msgid "3008x2008 or 3040x2024"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:293
+#, fuzzy
+msgid "Digital filter?"
+msgstr "Relación de zoom digital"
+
+#: libexif/pentax/mnote-pentax-entry.c:374
+#: libexif/pentax/mnote-pentax-entry.c:383
+#, c-format
+msgid "Internal error (unknown value %i %i)"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:35 libexif/pentax/mnote-pentax-tag.c:63
+#, fuzzy
+msgid "Capture Mode"
+msgstr "Modo de exposición"
+
+#: libexif/pentax/mnote-pentax-tag.c:36 libexif/pentax/mnote-pentax-tag.c:70
+#: libexif/pentax/mnote-pentax-tag.c:129
+msgid "Quality Level"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:54
+#, fuzzy
+msgid "ISO Speed"
+msgstr "Velocidad ISO"
+
+#: libexif/pentax/mnote-pentax-tag.c:56
+#, fuzzy
+msgid "Colors"
+msgstr "Espacio de color"
+
+#: libexif/pentax/mnote-pentax-tag.c:59
+msgid "PrintIM Settings"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:60 libexif/pentax/mnote-pentax-tag.c:131
+msgid "Time Zone"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:61
+#, fuzzy
+msgid "Daylight Savings"
+msgstr "Luz de día"
+
+#: libexif/pentax/mnote-pentax-tag.c:64
+msgid "Preview Size"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:65
+#, fuzzy
+msgid "Preview Length"
+msgstr "Longitud de la imagen"
+
+#: libexif/pentax/mnote-pentax-tag.c:66 libexif/pentax/mnote-pentax-tag.c:122
+msgid "Preview Start"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:67
+msgid "Model Identification"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:68
+msgid "Date"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:69
+msgid "Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:75
+#, fuzzy
+msgid "AF Point Selected"
+msgstr "Balance de blanco manual"
+
+#: libexif/pentax/mnote-pentax-tag.c:76
+msgid "Auto AF Point"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:77
+#, fuzzy
+msgid "Focus Position"
+msgstr "Modo de exposición"
+
+#: libexif/pentax/mnote-pentax-tag.c:80
+#, fuzzy
+msgid "ISO Number"
+msgstr "El número F."
+
+#: libexif/pentax/mnote-pentax-tag.c:83
+#, fuzzy
+msgid "Auto Bracketing"
+msgstr "Auto bracket"
+
+#: libexif/pentax/mnote-pentax-tag.c:85
+#, fuzzy
+msgid "White Balance Mode"
+msgstr "Balance de blanco"
+
+#: libexif/pentax/mnote-pentax-tag.c:93
+msgid "World Time Location"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:94
+msgid "Hometown City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:95
+msgid "Destination City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Hometown DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+#, fuzzy
+msgid "Home Daylight Savings Time"
+msgstr "Luz de día"
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+#, fuzzy
+msgid "Destination Daylight Savings Time"
+msgstr "Luz de día"
+
+#: libexif/pentax/mnote-pentax-tag.c:99
+#, fuzzy
+msgid "Image Processing"
+msgstr "Longitud de la imagen"
+
+#: libexif/pentax/mnote-pentax-tag.c:100
+#, fuzzy
+msgid "Picture Mode (2)"
+msgstr "Modo de exposición"
+
+#: libexif/pentax/mnote-pentax-tag.c:103
+msgid "Image Area Offset"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:104
+#, fuzzy
+msgid "Raw Image Size"
+msgstr "Ancho de la imagen"
+
+#: libexif/pentax/mnote-pentax-tag.c:105
+#, fuzzy
+msgid "Autofocus Points Used"
+msgstr "Modo de exposición"
+
+#: libexif/pentax/mnote-pentax-tag.c:107
+#, fuzzy
+msgid "Camera Temperature"
+msgstr "apertura"
+
+#: libexif/pentax/mnote-pentax-tag.c:110
+#, fuzzy
+msgid "Image Tone"
+msgstr "ID único de imagen"
+
+#: libexif/pentax/mnote-pentax-tag.c:111
+#, fuzzy
+msgid "Shake Reduction Info"
+msgstr "El flash disparó, modo de reducción de ojos rojos."
+
+#: libexif/pentax/mnote-pentax-tag.c:112
+#, fuzzy
+msgid "Black Point"
+msgstr "Modo de exposición"
+
+#: libexif/pentax/mnote-pentax-tag.c:114
+msgid "AE Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:115
+msgid "Lens Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:116
+#, fuzzy
+msgid "Flash Info"
+msgstr "Flash"
+
+#: libexif/pentax/mnote-pentax-tag.c:117
+msgid "Camera Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:118
+#, fuzzy
+msgid "Battery Info"
+msgstr "Nivel de la batería"
+
+#: libexif/pentax/mnote-pentax-tag.c:119
+msgid "Hometown City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:120
+msgid "Destination City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+#, fuzzy
+msgid "Object Distance"
+msgstr "Distancia del sujeto"
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+#, fuzzy
+msgid "Distance of photographed object in millimeters."
+msgstr "La distancia al sujeto, dada en metros."
+
+#: libexif/pentax/mnote-pentax-tag.c:126
+#, fuzzy
+msgid "Flash Distance"
+msgstr "El flash disparó."
+
+#: libexif/pentax/mnote-pentax-tag.c:132
+#, fuzzy
+msgid "Bestshot Mode"
+msgstr "Flash"
+
+#: libexif/pentax/mnote-pentax-tag.c:133
+#, fuzzy
+msgid "CCS ISO Sensitivity"
+msgstr "Sensibilidad espectral"
+
+#: libexif/pentax/mnote-pentax-tag.c:135
+msgid "Enhancement"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:136
+#, fuzzy
+msgid "Finer"
+msgstr "pulg"
+
+# This is a very special string. It is used for test purposes, and
+# we only test the de locale as a proof-of-concept example. There is
+# no need for anybody to translate it.
+#: test/nls/test-nls.c:20 test/nls/test-nls.c:23 test/nls/test-nls.c:24
+msgid "[DO_NOT_TRANSLATE_THIS_MARKER]"
+msgstr ""
+
+#, fuzzy
+#~ msgid "On + Red-eye reduction"
+#~ msgstr "El flash disparó, modo de reducción de ojos rojos."
+
+#, fuzzy
+#~ msgid "Center + Right"
+#~ msgstr "peso centrado"
+
+#, fuzzy
+#~ msgid "Left + Right"
+#~ msgstr "abajo - derecha"
+
+#, fuzzy
+#~ msgid "Daylight Fluorescent"
+#~ msgstr "Luz de día fluorescente"
+
+#, fuzzy
+#~ msgid "Focal length"
+#~ msgstr "Distancia focal"
+
+#, fuzzy
+#~ msgid "Flash mode"
+#~ msgstr "Flash"
+
+#, fuzzy
+#~ msgid "Focus mode"
+#~ msgstr "Modo de exposición"
+
+#, fuzzy
+#~ msgid "Image size"
+#~ msgstr "Ancho de la imagen"
+
+#, fuzzy
+#~ msgid "Digital zoom"
+#~ msgstr "Relación de zoom digital"
+
+#, fuzzy
+#~ msgid "Metering mode"
+#~ msgstr "Modo de métrica"
+
+#, fuzzy
+#~ msgid "Focus range"
+#~ msgstr "Modo de exposición"
+
+#, fuzzy
+#~ msgid "Focal plane y size"
+#~ msgstr "Resolución Y del plano focal"
+
+#, fuzzy
+#~ msgid "White balance"
+#~ msgstr "Balance de blanco"
+
+#~ msgid "Exposure time"
+#~ msgstr "Tiempo de exposición"
+
+#~ msgid "top - left"
+#~ msgstr "arriba - izquierda"
+
+#~ msgid "top - right"
+#~ msgstr "arriba - derecha"
+
+#~ msgid "bottom - right"
+#~ msgstr "abajo - derecha"
+
+#~ msgid "bottom - left"
+#~ msgstr "abajo - izquierda"
+
+#~ msgid "Center-Weighted Average"
+#~ msgstr "Promedio Ponderado en el Centro"
+
+#~ msgid "Flash did not fire."
+#~ msgstr "El flash no disparó."
+
+#, fuzzy
+#~ msgid "flash"
+#~ msgstr "Flash"
+
+#~ msgid "y-Resolution"
+#~ msgstr "Resolución Y"
+
+#~ msgid "Shutter speed"
+#~ msgstr "Velocidad del obturador"
+
+#~ msgid "Focal Plane y-Resolution"
+#~ msgstr "Resolución Y del plano focal"
+
+#, fuzzy
+#~ msgid "Daylight-color fluorescent"
+#~ msgstr "Luz de día fluorescente"
+
+#, fuzzy
+#~ msgid "DayWhite-color fluorescent"
+#~ msgstr "Día blanco fluorescente"
+
+#, fuzzy
+#~ msgid "Super Macro"
+#~ msgstr "Macro"
+
+#~ msgid "unknown"
+#~ msgstr "desconocido"
+
+#~ msgid "panorama"
+#~ msgstr "panorama"
+
+#, fuzzy
+#~ msgid "left to right"
+#~ msgstr "abajo - derecha"
+
+#, fuzzy
+#~ msgid "right to left"
+#~ msgstr "derecha - arriba"
+
+#, fuzzy
+#~ msgid "bottom to top"
+#~ msgstr "abajo - izquierda"
+
+#, fuzzy
+#~ msgid "top to bottom"
+#~ msgstr "izquierda - abajo"
+
+#, fuzzy
+#~ msgid "Whitebalance"
+#~ msgstr "Balance de blanco"
+
+#, fuzzy
+#~ msgid "Noisereduction"
+#~ msgstr "El flash disparó, modo de reducción de ojos rojos."
+
+#, fuzzy
+#~ msgid "Night-scene"
+#~ msgstr "Escena nocturna"
+
+#, fuzzy
+#~ msgid "Night Scene"
+#~ msgstr "Escena nocturna"
+
+#, fuzzy
+#~ msgid "Pan Focus"
+#~ msgstr "Exposición manual"
+
+#, fuzzy
+#~ msgid "Daywhite Fluorescent"
+#~ msgstr "Día blanco fluorescente"
+
+#, fuzzy
+#~ msgid "White Fluorescent"
+#~ msgstr "Blanco fluorescente"
+
+#, fuzzy
+#~ msgid "PictureMode"
+#~ msgstr "Modo de exposición"
+
+#, fuzzy
+#~ msgid "Manual Focus"
+#~ msgstr "Exposición manual"
+
+#, fuzzy
+#~ msgid ""
+#~ "Flash fired, compulsory flash mode, red-eye reduction, return light "
+#~ "detected."
+#~ msgstr ""
+#~ "El flash disparó, modo compulsivo del flash, modo de reducción de ojos "
+#~ "rojos, luz de retorno detectada."
+
+#, fuzzy
+#~ msgid "Flash not fired"
+#~ msgstr "El flash no disparó."
+
+#, fuzzy
+#~ msgid "red eyes reduction"
+#~ msgstr "El flash disparó, modo de reducción de ojos rojos."
+
+#, fuzzy
+#~ msgid "on + red eyes reduction"
+#~ msgstr "El flash disparó, modo de reducción de ojos rojos."
+
+#, fuzzy
+#~ msgid " / Contrast : "
+#~ msgstr "Contraste"
+
+#, fuzzy
+#~ msgid " / Saturation : "
+#~ msgstr "Saturación"
+
+#, fuzzy
+#~ msgid " / Sharpness : "
+#~ msgstr "Nitidez"
+
+#, fuzzy
+#~ msgid " / Metering mode : "
+#~ msgstr "Modo de métrica"
+
+#, fuzzy
+#~ msgid " / Exposure mode : "
+#~ msgstr "Modo de exposición"
+
+#, fuzzy
+#~ msgid " / Focus mode2 : "
+#~ msgstr "Modo de exposición"
+
+#, fuzzy
+#~ msgid "White balance : "
+#~ msgstr "Balance de blanco"
+
+#, fuzzy
+#~ msgid "Flourescent"
+#~ msgstr "Fluorescente"
+
+#, fuzzy
+#~ msgid " / Flash bias : %.2f EV"
+#~ msgstr "Flash"
+
+#, fuzzy
+#~ msgid " / Subject Distance (mm) : %u"
+#~ msgstr "Distancia del sujeto"
+
+#~ msgid "center-weight"
+#~ msgstr "peso centrado"
+
+#~ msgid "spot"
+#~ msgstr "lugar"
+
+#~ msgid "multi-spot"
+#~ msgstr "multi-lugar"
+
+#~ msgid "matrix"
+#~ msgstr "matriz"
+
+#~ msgid "partial"
+#~ msgstr "parcial"
+
+#~ msgid "other"
+#~ msgstr "otro"
+
+#~ msgid "sunny"
+#~ msgstr "soleado"
+
+#~ msgid "fluorescent"
+#~ msgstr "fluorescente"
+
+#~ msgid "tungsten"
+#~ msgstr "tungsteno"
+
+#~ msgid "manual"
+#~ msgstr "manual"
+
+#~ msgid "landscape"
+#~ msgstr "paisaje"
+
+#~ msgid "yes"
+#~ msgstr "sí"
+
+#, fuzzy
+#~ msgid "Unknown 2"
+#~ msgstr "Desconocido"
+
+#, fuzzy
+#~ msgid "Unknown 3"
+#~ msgstr "Desconocido"
+
+#, fuzzy
+#~ msgid "Unknown 4"
+#~ msgstr "Desconocido"
+
+#, fuzzy
+#~ msgid "Unknown 5"
+#~ msgstr "Desconocido"
+
+#, fuzzy
+#~ msgid "Unknown 6"
+#~ msgstr "Desconocido"
+
+#, fuzzy
+#~ msgid "Unknown 8"
+#~ msgstr "Desconocido"
+
+#, fuzzy
+#~ msgid "Unknown 9"
+#~ msgstr "Desconocido"
+
+#, fuzzy
+#~ msgid "Unknown 14"
+#~ msgstr "Desconocido"
+
+#, fuzzy
+#~ msgid "Unknown 15"
+#~ msgstr "Desconocido"
+
+#, fuzzy
+#~ msgid "Unknown 16"
+#~ msgstr "Desconocido"
+
+#, fuzzy
+#~ msgid "Unknown 17"
+#~ msgstr "Desconocido"
+
+#, fuzzy
+#~ msgid "Unknown 18"
+#~ msgstr "Desconocido"
+
+#, fuzzy
+#~ msgid "Unknown 19"
+#~ msgstr "Desconocido"
+
+#, fuzzy
+#~ msgid "Unknown 21"
+#~ msgstr "Desconocido"
+
+#, fuzzy
+#~ msgid "Unknown 24"
+#~ msgstr "Desconocido"
+
+#, fuzzy
+#~ msgid "Unknown 25"
+#~ msgstr "Desconocido"
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/fr.gmo b/framework/modules/c_LibExifModule/libexif-0.6.20/po/fr.gmo
new file mode 100644
index 0000000000000000000000000000000000000000..53557732bddde409e8aa8d539a583ed948ba0035
Binary files /dev/null and b/framework/modules/c_LibExifModule/libexif-0.6.20/po/fr.gmo differ
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/fr.po b/framework/modules/c_LibExifModule/libexif-0.6.20/po/fr.po
new file mode 100644
index 0000000000000000000000000000000000000000..7ee04cfeb3fc219a5cd639969eccb73641e047ff
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/fr.po
@@ -0,0 +1,6237 @@
+# LIBEXIF PO FILE
+# Copyright: 
+#   Free Software Foundation, Inc., 2002
+#   Arnaud Launay <asl@launay.org>, 2002
+# This file is distributed under the same license as the libexif package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: libexif\n"
+"Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-12-15 22:14-0800\n"
+"PO-Revision-Date: 2005-03-12 05:42+0100\n"
+"Last-Translator: Arnaud Launay <asl@launay.org>\n"
+"Language-Team: Français <traduc@traduc.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: libexif/canon/mnote-canon-entry.c:40 libexif/fuji/mnote-fuji-entry.c:35
+#: libexif/olympus/mnote-olympus-entry.c:37
+#: libexif/pentax/mnote-pentax-entry.c:39
+#, c-format
+msgid "Invalid format '%s', expected '%s'."
+msgstr "Format invalide '%s', attendait '%s'."
+
+#: libexif/canon/mnote-canon-entry.c:52 libexif/fuji/mnote-fuji-entry.c:47
+#: libexif/olympus/mnote-olympus-entry.c:62
+#: libexif/pentax/mnote-pentax-entry.c:51
+#, c-format
+msgid "Invalid number of components (%i, expected %i)."
+msgstr "Nombre invalide de composants (%i, attendait %i)."
+
+#: libexif/canon/mnote-canon-entry.c:61
+#: libexif/olympus/mnote-olympus-entry.c:72
+#: libexif/pentax/mnote-pentax-entry.c:61
+#, c-format
+msgid "Invalid number of components (%i, expected %i or %i)."
+msgstr "Nombre invalide de composants (%i, attendait %i ou %i)."
+
+#: libexif/canon/mnote-canon-entry.c:76 libexif/canon/mnote-canon-entry.c:130
+#: libexif/canon/mnote-canon-entry.c:182 libexif/exif-entry.c:796
+#: libexif/olympus/mnote-olympus-entry.c:196
+#: libexif/olympus/mnote-olympus-tag.c:108
+#: libexif/pentax/mnote-pentax-entry.c:174
+#: libexif/pentax/mnote-pentax-entry.c:209
+#: libexif/pentax/mnote-pentax-entry.c:297
+msgid "Macro"
+msgstr "Macro"
+
+#: libexif/canon/mnote-canon-entry.c:77 libexif/canon/mnote-canon-entry.c:79
+#: libexif/canon/mnote-canon-entry.c:157 libexif/canon/mnote-canon-entry.c:160
+#: libexif/canon/mnote-canon-entry.c:163 libexif/exif-entry.c:674
+#: libexif/exif-entry.c:677 libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/exif-entry.c:745 libexif/fuji/mnote-fuji-entry.c:64
+#: libexif/olympus/mnote-olympus-entry.c:118
+#: libexif/olympus/mnote-olympus-entry.c:195
+#: libexif/olympus/mnote-olympus-entry.c:203
+#: libexif/olympus/mnote-olympus-entry.c:213
+#: libexif/olympus/mnote-olympus-entry.c:586
+#: libexif/pentax/mnote-pentax-entry.c:105
+#: libexif/pentax/mnote-pentax-entry.c:110
+#: libexif/pentax/mnote-pentax-entry.c:115
+#: libexif/pentax/mnote-pentax-entry.c:208
+msgid "Normal"
+msgstr "Normal"
+
+#: libexif/canon/mnote-canon-entry.c:78
+msgid "Economy"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:80
+#, fuzzy
+msgid "Fine"
+msgstr "pouces"
+
+#: libexif/canon/mnote-canon-entry.c:81 libexif/fuji/mnote-fuji-entry.c:178
+#: libexif/pentax/mnote-pentax-entry.c:141
+msgid "RAW"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:82
+msgid "Superfine"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:83 libexif/canon/mnote-canon-entry.c:301
+#: libexif/canon/mnote-canon-entry.c:304 libexif/canon/mnote-canon-entry.c:312
+#: libexif/canon/mnote-canon-entry.c:345 libexif/canon/mnote-canon-entry.c:357
+#: libexif/canon/mnote-canon-entry.c:370 libexif/canon/mnote-canon-entry.c:372
+#: libexif/canon/mnote-canon-entry.c:574 libexif/canon/mnote-canon-entry.c:671
+#: libexif/fuji/mnote-fuji-entry.c:70 libexif/fuji/mnote-fuji-entry.c:103
+#: libexif/fuji/mnote-fuji-entry.c:107 libexif/fuji/mnote-fuji-entry.c:115
+#: libexif/fuji/mnote-fuji-entry.c:142
+#: libexif/olympus/mnote-olympus-entry.c:178
+#: libexif/olympus/mnote-olympus-entry.c:186
+#: libexif/olympus/mnote-olympus-entry.c:251
+#: libexif/olympus/mnote-olympus-entry.c:530
+#: libexif/olympus/mnote-olympus-entry.c:547
+#: libexif/pentax/mnote-pentax-entry.c:195
+#: libexif/pentax/mnote-pentax-entry.c:260
+msgid "Off"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:84 libexif/canon/mnote-canon-entry.c:167
+#: libexif/canon/mnote-canon-entry.c:180 libexif/canon/mnote-canon-entry.c:328
+#: libexif/canon/mnote-canon-entry.c:400 libexif/fuji/mnote-fuji-entry.c:73
+#: libexif/fuji/mnote-fuji-entry.c:101 libexif/fuji/mnote-fuji-entry.c:111
+#: libexif/fuji/mnote-fuji-entry.c:119
+#: libexif/olympus/mnote-olympus-entry.c:131
+#: libexif/olympus/mnote-olympus-entry.c:183
+#: libexif/olympus/mnote-olympus-entry.c:199
+#: libexif/olympus/mnote-olympus-entry.c:244
+#: libexif/pentax/mnote-pentax-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:88
+#: libexif/pentax/mnote-pentax-entry.c:91
+#: libexif/pentax/mnote-pentax-entry.c:97
+#: libexif/pentax/mnote-pentax-entry.c:131
+#: libexif/pentax/mnote-pentax-entry.c:229
+#: libexif/pentax/mnote-pentax-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:290
+msgid "Auto"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:85 libexif/canon/mnote-canon-entry.c:302
+#: libexif/canon/mnote-canon-entry.c:347 libexif/canon/mnote-canon-entry.c:361
+#: libexif/canon/mnote-canon-entry.c:371 libexif/fuji/mnote-fuji-entry.c:102
+#: libexif/fuji/mnote-fuji-entry.c:108 libexif/fuji/mnote-fuji-entry.c:116
+#: libexif/fuji/mnote-fuji-entry.c:143
+#: libexif/olympus/mnote-olympus-entry.c:179
+#: libexif/olympus/mnote-olympus-entry.c:533
+#: libexif/olympus/mnote-olympus-entry.c:550
+#: libexif/pentax/mnote-pentax-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:261
+msgid "On"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:86 libexif/fuji/mnote-fuji-entry.c:104
+#: libexif/olympus/mnote-olympus-entry.c:184
+#: libexif/pentax/mnote-pentax-entry.c:94
+#, fuzzy
+msgid "Red-eye reduction"
+msgstr "Flash déclenché, mode anti-yeux rouges."
+
+#: libexif/canon/mnote-canon-entry.c:87
+msgid "Slow synchro"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:88
+#, fuzzy
+msgid "Auto, red-eye reduction"
+msgstr "Flash déclenché, mode anti-yeux rouges."
+
+#: libexif/canon/mnote-canon-entry.c:89
+#: libexif/pentax/mnote-pentax-entry.c:200
+#, fuzzy
+msgid "On, red-eye reduction"
+msgstr "Flash déclenché, mode anti-yeux rouges."
+
+#: libexif/canon/mnote-canon-entry.c:90
+#, fuzzy
+msgid "External flash"
+msgstr "Flash"
+
+#: libexif/canon/mnote-canon-entry.c:91 libexif/canon/mnote-canon-entry.c:101
+#: libexif/canon/mnote-canon-entry.c:294
+msgid "Single"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:92 libexif/canon/mnote-canon-entry.c:102
+#: libexif/canon/mnote-canon-entry.c:295
+msgid "Continuous"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:93
+msgid "Movie"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:94
+msgid "Continuous, speed priority"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:95
+msgid "Continuous, low"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:96
+msgid "Continuous, high"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:97
+msgid "One-shot AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:98
+msgid "AI servo AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:99
+msgid "AI focus AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:100 libexif/canon/mnote-canon-entry.c:103
+#, fuzzy
+msgid "Manual focus"
+msgstr "Exposition manuel"
+
+#: libexif/canon/mnote-canon-entry.c:104 libexif/canon/mnote-canon-entry.c:132
+#: libexif/canon/mnote-canon-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:212
+#, fuzzy
+msgid "Pan focus"
+msgstr "Exposition manuel"
+
+#: libexif/canon/mnote-canon-entry.c:105
+msgid "JPEG"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:106
+msgid "CRW+THM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:107
+msgid "AVI+THM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:108
+msgid "TIF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:109
+msgid "TIF+JPEG"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:110
+msgid "CR2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:111
+msgid "CR2+JPEG"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:112
+#, fuzzy
+msgid "Large"
+msgstr "moyenne"
+
+#: libexif/canon/mnote-canon-entry.c:113
+msgid "Medium"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:114
+msgid "Small"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:115
+msgid "Medium 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:116
+msgid "Medium 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:117
+msgid "Medium 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:118
+msgid "Postcard"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:119
+msgid "Widescreen"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:120
+#, fuzzy
+msgid "Full auto"
+msgstr "action"
+
+#: libexif/canon/mnote-canon-entry.c:121 libexif/canon/mnote-canon-entry.c:179
+#: libexif/canon/mnote-canon-entry.c:201 libexif/canon/mnote-canon-entry.c:285
+#: libexif/canon/mnote-canon-entry.c:392 libexif/exif-entry.c:744
+#: libexif/fuji/mnote-fuji-entry.c:112
+#: libexif/olympus/mnote-olympus-entry.c:90
+#: libexif/olympus/mnote-olympus-entry.c:200
+#: libexif/pentax/mnote-pentax-entry.c:79
+#: libexif/pentax/mnote-pentax-entry.c:102
+#: libexif/pentax/mnote-pentax-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:165
+#: libexif/pentax/mnote-pentax-entry.c:211
+#: libexif/pentax/mnote-pentax-entry.c:250
+msgid "Manual"
+msgstr "Manuel"
+
+#: libexif/canon/mnote-canon-entry.c:122 libexif/canon/mnote-canon-entry.c:430
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:755
+#: libexif/fuji/mnote-fuji-entry.c:121 libexif/pentax/mnote-pentax-entry.c:167
+#: libexif/pentax/mnote-pentax-entry.c:301
+msgid "Landscape"
+msgstr "Paysage"
+
+#: libexif/canon/mnote-canon-entry.c:123
+#, fuzzy
+msgid "Fast shutter"
+msgstr "obturation"
+
+#: libexif/canon/mnote-canon-entry.c:124
+#, fuzzy
+msgid "Slow shutter"
+msgstr "obturation"
+
+#: libexif/canon/mnote-canon-entry.c:125 libexif/fuji/mnote-fuji-entry.c:123
+#: libexif/olympus/mnote-olympus-entry.c:254
+#, fuzzy
+msgid "Night"
+msgstr "Scène de nuit"
+
+#: libexif/canon/mnote-canon-entry.c:126
+msgid "Grayscale"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:127 libexif/canon/mnote-canon-entry.c:308
+#: libexif/pentax/mnote-pentax-entry.c:128
+msgid "Sepia"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:128 libexif/canon/mnote-canon-entry.c:429
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:753
+#: libexif/fuji/mnote-fuji-entry.c:120 libexif/pentax/mnote-pentax-entry.c:166
+#: libexif/pentax/mnote-pentax-entry.c:291
+#: libexif/pentax/mnote-pentax-entry.c:294
+#: libexif/pentax/mnote-pentax-entry.c:300
+msgid "Portrait"
+msgstr "Portrait"
+
+#: libexif/canon/mnote-canon-entry.c:129 libexif/fuji/mnote-fuji-entry.c:122
+#, fuzzy
+msgid "Sports"
+msgstr "Spot"
+
+#: libexif/canon/mnote-canon-entry.c:131 libexif/canon/mnote-canon-entry.c:309
+#: libexif/canon/mnote-canon-entry.c:335 libexif/canon/mnote-canon-entry.c:407
+#: libexif/fuji/mnote-fuji-entry.c:89 libexif/pentax/mnote-pentax-entry.c:127
+msgid "Black & white"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:133 libexif/canon/mnote-canon-entry.c:305
+msgid "Vivid"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:134 libexif/canon/mnote-canon-entry.c:306
+#: libexif/canon/mnote-canon-entry.c:431
+#, fuzzy
+msgid "Neutral"
+msgstr "Normal"
+
+#: libexif/canon/mnote-canon-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:93
+#, fuzzy
+msgid "Flash off"
+msgstr "Flash"
+
+#: libexif/canon/mnote-canon-entry.c:136
+#, fuzzy
+msgid "Long shutter"
+msgstr "obturation"
+
+#: libexif/canon/mnote-canon-entry.c:137 libexif/canon/mnote-canon-entry.c:188
+#: libexif/olympus/mnote-olympus-entry.c:171
+msgid "Super macro"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:138
+msgid "Foliage"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:139
+msgid "Indoor"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:140 libexif/fuji/mnote-fuji-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:175
+msgid "Fireworks"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:141 libexif/fuji/mnote-fuji-entry.c:133
+msgid "Beach"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:142 libexif/canon/mnote-canon-entry.c:344
+#: libexif/canon/mnote-canon-entry.c:416 libexif/fuji/mnote-fuji-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:292
+#: libexif/pentax/mnote-pentax-entry.c:298
+#, fuzzy
+msgid "Underwater"
+msgstr "Temps clair"
+
+#: libexif/canon/mnote-canon-entry.c:143 libexif/fuji/mnote-fuji-entry.c:134
+msgid "Snow"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:144
+msgid "Kids & pets"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:145
+#, fuzzy
+msgid "Night snapshot"
+msgstr "Scène de nuit"
+
+#: libexif/canon/mnote-canon-entry.c:146
+#, fuzzy
+msgid "Digital macro"
+msgstr "Valeur du zoom numérique"
+
+#: libexif/canon/mnote-canon-entry.c:147
+msgid "My colors"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:148
+msgid "Still image"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:149
+#, fuzzy
+msgid "Color accent"
+msgstr "Espace des couleurs"
+
+#: libexif/canon/mnote-canon-entry.c:150
+#, fuzzy
+msgid "Color swap"
+msgstr "Espace des couleurs"
+
+#: libexif/canon/mnote-canon-entry.c:151
+msgid "Aquarium"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:152
+msgid "ISO 3200"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:153 libexif/canon/mnote-canon-entry.c:348
+#: libexif/canon/mnote-canon-entry.c:365 libexif/canon/mnote-canon-entry.c:417
+#: libexif/olympus/mnote-olympus-entry.c:189
+#: libexif/olympus/mnote-olympus-entry.c:226
+#: libexif/olympus/mnote-olympus-entry.c:451
+#: libexif/pentax/mnote-pentax-entry.c:242
+msgid "None"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:154
+msgid "2x"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:155
+msgid "4x"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:156 libexif/exif-entry.c:702
+#: libexif/exif-entry.c:732
+msgid "Other"
+msgstr "Autre"
+
+#: libexif/canon/mnote-canon-entry.c:158 libexif/canon/mnote-canon-entry.c:161
+#: libexif/canon/mnote-canon-entry.c:164 libexif/canon/mnote-canon-entry.c:398
+#: libexif/fuji/mnote-fuji-entry.c:86 libexif/pentax/mnote-pentax-entry.c:112
+#: libexif/pentax/mnote-pentax-entry.c:117
+msgid "High"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:159 libexif/canon/mnote-canon-entry.c:162
+#: libexif/canon/mnote-canon-entry.c:165 libexif/canon/mnote-canon-entry.c:396
+#: libexif/pentax/mnote-pentax-entry.c:111
+#: libexif/pentax/mnote-pentax-entry.c:116
+msgid "Low"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:166
+msgid "Auto high"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:168
+msgid "50"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:120
+#: libexif/pentax/mnote-pentax-entry.c:122
+msgid "100"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:170
+#: libexif/pentax/mnote-pentax-entry.c:121
+#: libexif/pentax/mnote-pentax-entry.c:123
+msgid "200"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:171
+msgid "400"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:172
+msgid "800"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:173
+msgid "Default"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:174 libexif/exif-entry.c:698
+msgid "Spot"
+msgstr "Spot"
+
+#: libexif/canon/mnote-canon-entry.c:175 libexif/exif-entry.c:696
+msgid "Average"
+msgstr "Moyenne"
+
+#: libexif/canon/mnote-canon-entry.c:176
+msgid "Evaluative"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:177 libexif/exif-entry.c:701
+msgid "Partial"
+msgstr "Partiel"
+
+#: libexif/canon/mnote-canon-entry.c:178 libexif/exif-entry.c:697
+#, fuzzy
+msgid "Center-weighted average"
+msgstr "Mesure pondérée centrale"
+
+#: libexif/canon/mnote-canon-entry.c:181
+#, fuzzy
+msgid "Not known"
+msgstr "Inconnu"
+
+#: libexif/canon/mnote-canon-entry.c:183
+msgid "Very close"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:184 libexif/exif-entry.c:797
+#, fuzzy
+msgid "Close"
+msgstr "Vue de près"
+
+#: libexif/canon/mnote-canon-entry.c:185
+msgid "Middle range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:186
+#, fuzzy
+msgid "Far range"
+msgstr "Échelle de transfert"
+
+#: libexif/canon/mnote-canon-entry.c:189
+#: libexif/pentax/mnote-pentax-entry.c:210
+#, fuzzy
+msgid "Infinity"
+msgstr "Intel"
+
+#: libexif/canon/mnote-canon-entry.c:190
+#, fuzzy
+msgid "Manual AF point selection"
+msgstr "Balance des blancs manuelle"
+
+#: libexif/canon/mnote-canon-entry.c:191 libexif/canon/mnote-canon-entry.c:349
+msgid "None (MF)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:192
+msgid "Auto-selected"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:193 libexif/canon/mnote-canon-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:224
+#: libexif/pentax/mnote-pentax-entry.c:238
+#, fuzzy
+msgid "Right"
+msgstr "Lumière du jour"
+
+#: libexif/canon/mnote-canon-entry.c:194 libexif/canon/mnote-canon-entry.c:351
+#: libexif/pentax/mnote-pentax-entry.c:222
+#: libexif/pentax/mnote-pentax-entry.c:237
+#, fuzzy
+msgid "Center"
+msgstr "Centimère"
+
+#: libexif/canon/mnote-canon-entry.c:195 libexif/canon/mnote-canon-entry.c:353
+#: libexif/pentax/mnote-pentax-entry.c:220
+#: libexif/pentax/mnote-pentax-entry.c:236
+msgid "Left"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:196
+msgid "Auto AF point selection"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:197
+msgid "Easy shooting"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:163
+msgid "Program"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:199
+msgid "Tv-priority"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:200
+#, fuzzy
+msgid "Av-priority"
+msgstr "Priorité ouverture"
+
+#: libexif/canon/mnote-canon-entry.c:202
+msgid "A-DEP"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:203
+msgid "M-DEP"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:204
+msgid "Canon EF 50mm f/1.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:205
+msgid "Canon EF 28mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:206
+msgid "Sigma UC Zoom 35-135mm f/4-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:207
+msgid "Tokina AF193-2 19-35mm f/3.5-4.5"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:208
+msgid "Canon EF 100-300mm F5.6L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:209
+msgid "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:210
+msgid "Canon EF 35mm f/2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:211
+msgid "Canon EF 15mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:212
+msgid "Canon EF 80-200mm f/2.8L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:213
+msgid "Tokina AT-X280AF PRO 28-80mm F2.8 Aspherical"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:214
+msgid "Cosina 100mm f/3.5 Macro AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:215
+msgid "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:216
+msgid "Canon EF 50mm f/1.8 MkII"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:217
+msgid "Tamron SP AF 300mm f/2.8 LD IF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:218
+msgid "Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:219
+msgid "Canon EF 75-300mm f/4-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:220
+msgid "Canon EF 28-80mm f/3.5-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:221
+msgid "Canon EF 28-105mm f/4-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:222
+msgid "Canon EF-S 18-55mm f/3.5-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:223
+msgid "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:224
+msgid "Canon TS-E 24mm f/3.5L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:225
+msgid "Canon TS-E 45mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:226
+msgid "Canon TS-E 90mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:227
+msgid "Canon EF 50mm f/1.0L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:228
+msgid "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:229
+msgid "Canon EF 600mm f/4L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:230
+msgid "Canon EF 200mm f/1.8L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:231
+msgid "Canon EF 300mm f/2.8L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:232
+msgid "Canon EF 85mm f/1.2L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:233
+msgid "Canon EF 400mm f/2.8L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:234
+msgid "Canon EF 500mm f/4.5L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:235
+msgid "Canon EF 300mm f/2.8L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:236
+msgid "Canon EF 500mm f/4L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:237
+msgid "Canon EF 100mm f/2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:238
+msgid "Sigma 20mm EX f/1.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:239
+msgid "Canon EF 200mm f/2.8L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:240
+msgid "Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:241
+msgid "Canon EF 35-350mm f/3.5-5.6L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:242
+msgid "Canon EF 85mm f/1.8 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:243
+msgid "Canon EF 28-105mm f/3.5-4.5 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:244
+msgid "Canon EF 20-35mm f/3.5-4.5 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:245
+msgid "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:246
+msgid "Canon EF 70-200mm f/2.8 L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:247
+msgid "Canon EF 70-200mm f/2.8 L + x1.4"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:248
+msgid "Canon EF 70-200mm f/2.8 L + x2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:249
+msgid "Canon EF 28mm f/1.8 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:250
+msgid "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:251
+msgid "Canon EF 200mm f/2.8L II"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:252
+msgid "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:253
+msgid "Canon EF 135mm f/2L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:254
+msgid "Canon EF 24-85mm f/3.5-4.5 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:255
+msgid "Canon EF 300mm f/4L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:256
+msgid "Canon EF 28-135mm f/3.5-5.6 IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:257
+msgid "Canon EF 35mm f/1.4L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:258
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:259
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:260
+msgid "Canon EF 100-400mm f/4.5-5.6L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:261
+msgid "Canon EF 400mm f/2.8L + x2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:262
+msgid "Canon EF 70-200mm f/4L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:263
+msgid "Canon EF 100mm f/2.8 Macro"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:264
+msgid "Canon EF 400mm f/4 DO IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:265
+msgid "Canon EF 75-300mm f/4-5.6 IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:266
+msgid "Canon EF 50mm f/1.4"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:267
+msgid "Canon EF 28-80 f/3.5-5.6 USM IV"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:268
+msgid "Canon EF 28-200mm f/3.5-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:269
+msgid "Canon EF 90-300mm f/4.5-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:270
+msgid "Canon EF-S 18-55mm f/3.5-4.5 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:271
+msgid "Canon EF 70-200mm f/2.8L IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:272
+msgid "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:273
+msgid "Canon EF 70-200mm f/2.8L IS USM + x2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:274
+msgid "Canon EF 16-35mm f/2.8L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:275
+msgid "Canon EF 24-70mm f/2.8L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:276
+msgid "Canon EF 17-40mm f/4L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:277
+msgid "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:278
+msgid "Canon EF-S 17-85mm f4-5.6 IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:279
+msgid "Canon EF-S10-22mm F3.5-4.5 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:280
+msgid "Canon EF-S60mm F2.8 Macro USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:281
+msgid "Canon EF 24-105mm f/4L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:282
+msgid "Canon EF 70-300mm F4-5.6 IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:283
+msgid "Canon EF 50mm F1.2L USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:284
+msgid "Canon EF 70-200mm f/4L IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:286
+msgid "TTL"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:287
+msgid "A-TTL"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:288
+msgid "E-TTL"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:289
+msgid "FP sync enabled"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:290
+msgid "2nd-curtain sync used"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:291
+msgid "FP sync used"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:292
+#: libexif/olympus/mnote-olympus-entry.c:190
+#, fuzzy
+msgid "Internal"
+msgstr "Intel"
+
+#: libexif/canon/mnote-canon-entry.c:293
+#: libexif/olympus/mnote-olympus-entry.c:191
+msgid "External"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:296
+#, fuzzy
+msgid "Normal AE"
+msgstr "Normal"
+
+#: libexif/canon/mnote-canon-entry.c:297
+#, fuzzy
+msgid "Exposure compensation"
+msgstr "Temps d'exposition"
+
+#: libexif/canon/mnote-canon-entry.c:298
+msgid "AE lock"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:299
+#, fuzzy
+msgid "AE lock + exposure compensation"
+msgstr "Temps d'exposition"
+
+#: libexif/canon/mnote-canon-entry.c:300
+msgid "No AE"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:303
+msgid "On, shot only"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:307
+msgid "Smooth"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:310 libexif/canon/mnote-canon-entry.c:334
+#: libexif/canon/mnote-canon-entry.c:393 libexif/canon/mnote-canon-entry.c:406
+#: libexif/fuji/mnote-fuji-entry.c:81 libexif/pentax/mnote-pentax-entry.c:87
+#, fuzzy
+msgid "Custom"
+msgstr "Processus personnel"
+
+#: libexif/canon/mnote-canon-entry.c:311
+msgid "My color data"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:313 libexif/canon/mnote-canon-entry.c:375
+#: libexif/pentax/mnote-pentax-entry.c:126
+#: libexif/pentax/mnote-pentax-entry.c:145
+msgid "Full"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:314 libexif/canon/mnote-canon-entry.c:374
+msgid "2/3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:315 libexif/canon/mnote-canon-entry.c:373
+msgid "1/3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:321
+msgid "Fixed"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:322 libexif/pentax/mnote-pentax-tag.c:44
+msgid "Zoom"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:329
+#, fuzzy
+msgid "Sunny"
+msgstr "ensoleillé"
+
+#: libexif/canon/mnote-canon-entry.c:330 libexif/canon/mnote-canon-entry.c:402
+#: libexif/exif-entry.c:719 libexif/fuji/mnote-fuji-entry.c:75
+#: libexif/olympus/mnote-olympus-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:255
+#, fuzzy
+msgid "Cloudy"
+msgstr "nuageux"
+
+#: libexif/canon/mnote-canon-entry.c:331 libexif/canon/mnote-canon-entry.c:403
+#: libexif/exif-entry.c:716 libexif/pentax/mnote-pentax-entry.c:100
+#: libexif/pentax/mnote-pentax-entry.c:249
+#, fuzzy
+msgid "Tungsten"
+msgstr "tungsten"
+
+#: libexif/canon/mnote-canon-entry.c:332 libexif/canon/mnote-canon-entry.c:404
+#: libexif/exif-entry.c:715 libexif/pentax/mnote-pentax-entry.c:101
+#: libexif/pentax/mnote-pentax-entry.c:248
+msgid "Fluorescent"
+msgstr "Fluorescent"
+
+#: libexif/canon/mnote-canon-entry.c:333 libexif/canon/mnote-canon-entry.c:405
+#: libexif/exif-entry.c:717 libexif/exif-entry.c:759 libexif/exif-tag.c:577
+#: libexif/fuji/mnote-fuji-entry.c:80 libexif/pentax/mnote-pentax-entry.c:254
+msgid "Flash"
+msgstr "Flash"
+
+#: libexif/canon/mnote-canon-entry.c:336 libexif/canon/mnote-canon-entry.c:408
+#: libexif/exif-entry.c:720 libexif/pentax/mnote-pentax-entry.c:99
+#: libexif/pentax/mnote-pentax-entry.c:247
+msgid "Shade"
+msgstr "Ombragé"
+
+#: libexif/canon/mnote-canon-entry.c:337 libexif/canon/mnote-canon-entry.c:409
+msgid "Manual temperature (Kelvin)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:338 libexif/canon/mnote-canon-entry.c:410
+msgid "PC set 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:339 libexif/canon/mnote-canon-entry.c:411
+msgid "PC set 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:340 libexif/canon/mnote-canon-entry.c:412
+msgid "PC set 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:341 libexif/canon/mnote-canon-entry.c:413
+#: libexif/exif-entry.c:721 libexif/fuji/mnote-fuji-entry.c:76
+#: libexif/pentax/mnote-pentax-entry.c:251
+msgid "Daylight fluorescent"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:342 libexif/canon/mnote-canon-entry.c:414
+#, fuzzy
+msgid "Custom 1"
+msgstr "Processus personnel"
+
+#: libexif/canon/mnote-canon-entry.c:343 libexif/canon/mnote-canon-entry.c:415
+#, fuzzy
+msgid "Custom 2"
+msgstr "Processus personnel"
+
+#: libexif/canon/mnote-canon-entry.c:346 libexif/exif-entry.c:672
+#: libexif/pentax/mnote-pentax-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:132
+#: libexif/pentax/mnote-pentax-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:295
+msgid "Night scene"
+msgstr "Scène de nuit"
+
+#: libexif/canon/mnote-canon-entry.c:352
+#, fuzzy
+msgid "Center-right"
+msgstr "Centre pondéré"
+
+#: libexif/canon/mnote-canon-entry.c:354
+#, fuzzy
+msgid "Left-right"
+msgstr "bas - droit"
+
+#: libexif/canon/mnote-canon-entry.c:355
+#, fuzzy
+msgid "Left-center"
+msgstr "Centimère"
+
+#: libexif/canon/mnote-canon-entry.c:356
+msgid "All"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:358
+msgid "On (shot 1)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:359
+msgid "On (shot 2)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:360
+msgid "On (shot 3)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:362
+msgid "EOS high-end"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:363
+msgid "Compact"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:364
+msgid "EOS mid-range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:366
+msgid "Rotate 90 CW"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:367
+msgid "Rotate 180"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:368
+msgid "Rotate 270 CW"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:369
+msgid "Rotated by software"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:381
+#: libexif/olympus/mnote-olympus-entry.c:606
+#, fuzzy
+msgid "Left to right"
+msgstr "bas - droit"
+
+#: libexif/canon/mnote-canon-entry.c:382
+#: libexif/olympus/mnote-olympus-entry.c:609
+#, fuzzy
+msgid "Right to left"
+msgstr "droit - haut"
+
+#: libexif/canon/mnote-canon-entry.c:383
+#: libexif/olympus/mnote-olympus-entry.c:612
+#, fuzzy
+msgid "Bottom to top"
+msgstr "bas - gauche"
+
+#: libexif/canon/mnote-canon-entry.c:384
+#: libexif/olympus/mnote-olympus-entry.c:615
+#, fuzzy
+msgid "Top to bottom"
+msgstr "gauche - bas"
+
+#: libexif/canon/mnote-canon-entry.c:385
+msgid "2x2 matrix (clockwise)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:391 libexif/canon/mnote-canon-entry.c:397
+#: libexif/canon/mnote-canon-entry.c:418 libexif/canon/mnote-canon-entry.c:428
+#: libexif/exif-entry.c:671 libexif/fuji/mnote-fuji-entry.c:84
+#: libexif/fuji/mnote-fuji-entry.c:93 libexif/fuji/mnote-fuji-entry.c:163
+#: libexif/olympus/mnote-olympus-entry.c:227
+msgid "Standard"
+msgstr "Standard"
+
+#: libexif/canon/mnote-canon-entry.c:394
+msgid "N/A"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:395
+#, fuzzy
+msgid "Lowest"
+msgstr "haut - gauche"
+
+#: libexif/canon/mnote-canon-entry.c:399
+#, fuzzy
+msgid "Highest"
+msgstr "Scène de nuit"
+
+#: libexif/canon/mnote-canon-entry.c:401 libexif/exif-entry.c:714
+#: libexif/fuji/mnote-fuji-entry.c:74
+#: libexif/olympus/mnote-olympus-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:98
+#: libexif/pentax/mnote-pentax-entry.c:246
+msgid "Daylight"
+msgstr "Lumière du jour"
+
+#: libexif/canon/mnote-canon-entry.c:419
+msgid "Set 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:420
+msgid "Set 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:421
+msgid "Set 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:422
+msgid "User def. 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:423
+msgid "User def. 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:424
+msgid "User def. 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:425
+#, fuzzy
+msgid "External 1"
+msgstr "Flash"
+
+#: libexif/canon/mnote-canon-entry.c:426
+#, fuzzy
+msgid "External 2"
+msgstr "Flash"
+
+#: libexif/canon/mnote-canon-entry.c:427
+#, fuzzy
+msgid "External 3"
+msgstr "Flash"
+
+#: libexif/canon/mnote-canon-entry.c:432
+msgid "Faithful"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:115
+msgid "Monochrome"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:491
+msgid ", "
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:577 libexif/canon/mnote-canon-entry.c:674
+#, c-format
+msgid "%i (ms)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:621
+#, c-format
+msgid "%.2f mm"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:645
+#, c-format
+msgid "%.2f EV"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:655 libexif/exif-entry.c:1064
+#, fuzzy, c-format
+msgid "1/%i"
+msgstr "1/%d"
+
+#: libexif/canon/mnote-canon-entry.c:667
+#, c-format
+msgid "%u mm"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:35
+msgid "Settings (First Part)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:36 libexif/canon/mnote-canon-tag.c:92
+#: libexif/exif-tag.c:581 libexif/pentax/mnote-pentax-tag.c:88
+msgid "Focal Length"
+msgstr "Longueur focale"
+
+#: libexif/canon/mnote-canon-tag.c:37
+msgid "Settings (Second Part)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:38
+#: libexif/olympus/mnote-olympus-entry.c:595
+#: libexif/pentax/mnote-pentax-entry.c:177
+msgid "Panorama"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:39
+#, fuzzy
+msgid "Image Type"
+msgstr "Hauteur de l'image"
+
+#: libexif/canon/mnote-canon-tag.c:40 libexif/olympus/mnote-olympus-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:113
+#, fuzzy
+msgid "Firmware Version"
+msgstr "Version d'exif"
+
+#: libexif/canon/mnote-canon-tag.c:41
+#, fuzzy
+msgid "Image Number"
+msgstr "ID unique de l'image"
+
+#: libexif/canon/mnote-canon-tag.c:42
+#, fuzzy
+msgid "Owner Name"
+msgstr "Le nombre F."
+
+#: libexif/canon/mnote-canon-tag.c:43
+#, fuzzy
+msgid "Color Information"
+msgstr "Espace des couleurs"
+
+#: libexif/canon/mnote-canon-tag.c:44 libexif/fuji/mnote-fuji-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:81
+#: libexif/olympus/mnote-olympus-tag.c:146
+#, fuzzy
+msgid "Serial Number"
+msgstr "Le nombre F."
+
+#: libexif/canon/mnote-canon-tag.c:45
+#, fuzzy
+msgid "Custom Functions"
+msgstr "Processus personnel"
+
+#: libexif/canon/mnote-canon-tag.c:56 libexif/fuji/mnote-fuji-tag.c:45
+#, fuzzy
+msgid "Macro Mode"
+msgstr "Macro"
+
+#: libexif/canon/mnote-canon-tag.c:57 libexif/canon/mnote-canon-tag.c:117
+#: libexif/olympus/mnote-olympus-tag.c:175
+#: libexif/pentax/mnote-pentax-tag.c:128
+msgid "Self-timer"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:58 libexif/fuji/mnote-fuji-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:94
+#: libexif/olympus/mnote-olympus-tag.c:107
+msgid "Quality"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:59 libexif/fuji/mnote-fuji-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:45
+#: libexif/olympus/mnote-olympus-tag.c:127
+#: libexif/pentax/mnote-pentax-tag.c:38 libexif/pentax/mnote-pentax-tag.c:73
+#, fuzzy
+msgid "Flash Mode"
+msgstr "Flash"
+
+#: libexif/canon/mnote-canon-tag.c:60 libexif/pentax/mnote-pentax-tag.c:101
+#, fuzzy
+msgid "Drive Mode"
+msgstr "Mode de mesure"
+
+#: libexif/canon/mnote-canon-tag.c:61 libexif/canon/mnote-canon-tag.c:82
+#: libexif/olympus/mnote-olympus-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:134
+#: libexif/olympus/mnote-olympus-tag.c:173
+#: libexif/pentax/mnote-pentax-tag.c:37 libexif/pentax/mnote-pentax-tag.c:74
+#: libexif/pentax/mnote-pentax-tag.c:130
+#, fuzzy
+msgid "Focus Mode"
+msgstr "Mode d'exposition"
+
+#: libexif/canon/mnote-canon-tag.c:62 libexif/pentax/mnote-pentax-tag.c:127
+#, fuzzy
+msgid "Record Mode"
+msgstr "Macro"
+
+#: libexif/canon/mnote-canon-tag.c:63 libexif/pentax/mnote-pentax-tag.c:71
+#, fuzzy
+msgid "Image Size"
+msgstr "Hauteur de l'image"
+
+#: libexif/canon/mnote-canon-tag.c:64
+msgid "Easy Shooting Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:65 libexif/olympus/mnote-olympus-tag.c:64
+#: libexif/olympus/mnote-olympus-tag.c:101
+#: libexif/olympus/mnote-olympus-tag.c:110
+#: libexif/olympus/mnote-olympus-tag.c:180
+#: libexif/pentax/mnote-pentax-tag.c:89
+#, fuzzy
+msgid "Digital Zoom"
+msgstr "Valeur du zoom numérique"
+
+#: libexif/canon/mnote-canon-tag.c:66 libexif/exif-tag.c:828
+#: libexif/fuji/mnote-fuji-tag.c:42 libexif/pentax/mnote-pentax-tag.c:46
+#: libexif/pentax/mnote-pentax-tag.c:91
+msgid "Contrast"
+msgstr "Contraste"
+
+#: libexif/canon/mnote-canon-tag.c:67 libexif/exif-tag.c:832
+#: libexif/olympus/mnote-olympus-tag.c:75
+#: libexif/olympus/mnote-olympus-tag.c:87 libexif/pentax/mnote-pentax-tag.c:47
+#: libexif/pentax/mnote-pentax-tag.c:90
+msgid "Saturation"
+msgstr "Saturation"
+
+#: libexif/canon/mnote-canon-tag.c:68 libexif/exif-tag.c:836
+#: libexif/fuji/mnote-fuji-tag.c:39 libexif/pentax/mnote-pentax-tag.c:45
+#: libexif/pentax/mnote-pentax-tag.c:92
+msgid "Sharpness"
+msgstr "Netteté"
+
+#: libexif/canon/mnote-canon-tag.c:69
+msgid "ISO"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:70 libexif/exif-tag.c:571
+#: libexif/pentax/mnote-pentax-tag.c:82
+msgid "Metering Mode"
+msgstr "Mode de mesure"
+
+#: libexif/canon/mnote-canon-tag.c:71 libexif/olympus/mnote-olympus-tag.c:133
+#, fuzzy
+msgid "Focus Range"
+msgstr "Mode d'exposition"
+
+#: libexif/canon/mnote-canon-tag.c:72 libexif/canon/mnote-canon-tag.c:105
+#, fuzzy
+msgid "AF Point"
+msgstr "Mode d'exposition"
+
+#: libexif/canon/mnote-canon-tag.c:73 libexif/exif-tag.c:795
+msgid "Exposure Mode"
+msgstr "Mode d'exposition"
+
+#: libexif/canon/mnote-canon-tag.c:74 libexif/olympus/mnote-olympus-tag.c:61
+#: libexif/pentax/mnote-pentax-tag.c:106
+#, fuzzy
+msgid "Lens Type"
+msgstr "Type de scène"
+
+#: libexif/canon/mnote-canon-tag.c:75
+#, fuzzy
+msgid "Long Focal Length of Lens"
+msgstr "Longueur focale"
+
+#: libexif/canon/mnote-canon-tag.c:76
+#, fuzzy
+msgid "Short Focal Length of Lens"
+msgstr "Longueur focale"
+
+#: libexif/canon/mnote-canon-tag.c:77
+#, fuzzy
+msgid "Focal Units per mm"
+msgstr "Longueur focale"
+
+#: libexif/canon/mnote-canon-tag.c:78
+#, fuzzy
+msgid "Maximal Aperture"
+msgstr "ouverture"
+
+#: libexif/canon/mnote-canon-tag.c:79
+#, fuzzy
+msgid "Minimal Aperture"
+msgstr "ouverture"
+
+#: libexif/canon/mnote-canon-tag.c:80
+#, fuzzy
+msgid "Flash Activity"
+msgstr "Le flash s'est déclenché."
+
+#: libexif/canon/mnote-canon-tag.c:81
+#, fuzzy
+msgid "Flash Details"
+msgstr "Flash"
+
+#: libexif/canon/mnote-canon-tag.c:83
+#, fuzzy
+msgid "AE Setting"
+msgstr "Netteté"
+
+#: libexif/canon/mnote-canon-tag.c:84
+#, fuzzy
+msgid "Image Stabilization"
+msgstr "Description de l'image"
+
+#: libexif/canon/mnote-canon-tag.c:85
+#, fuzzy
+msgid "Display Aperture"
+msgstr "ouverture"
+
+#: libexif/canon/mnote-canon-tag.c:86
+msgid "Zoom Source Width"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:87
+#, fuzzy
+msgid "Zoom Target Width"
+msgstr "Hauteur de l'image"
+
+#: libexif/canon/mnote-canon-tag.c:88
+msgid "Photo Effect"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:89 libexif/canon/mnote-canon-tag.c:118
+msgid "Manual Flash Output"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:90
+#, fuzzy
+msgid "Color Tone"
+msgstr "Espace des couleurs"
+
+#: libexif/canon/mnote-canon-tag.c:91
+#, fuzzy
+msgid "Focal Type"
+msgstr "Longueur focale"
+
+#: libexif/canon/mnote-canon-tag.c:93
+#, fuzzy
+msgid "Focal Plane X Size"
+msgstr "x-Résolution du plan focal"
+
+#: libexif/canon/mnote-canon-tag.c:94
+#, fuzzy
+msgid "Focal Plane Y Size"
+msgstr "x-Résolution du plan focal"
+
+#: libexif/canon/mnote-canon-tag.c:95
+msgid "Auto ISO"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:96
+#, fuzzy
+msgid "Shot ISO"
+msgstr "Spot"
+
+#: libexif/canon/mnote-canon-tag.c:97
+msgid "Measured EV"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:98
+#, fuzzy
+msgid "Target Aperture"
+msgstr "ouverture"
+
+#: libexif/canon/mnote-canon-tag.c:99
+#, fuzzy
+msgid "Target Exposure Time"
+msgstr "Temps d'exposition"
+
+#: libexif/canon/mnote-canon-tag.c:100 libexif/olympus/mnote-olympus-tag.c:129
+#: libexif/pentax/mnote-pentax-tag.c:81
+#, fuzzy
+msgid "Exposure Compensation"
+msgstr "Temps d'exposition"
+
+#: libexif/canon/mnote-canon-tag.c:101 libexif/canon/mnote-canon-tag.c:123
+#: libexif/exif-tag.c:800 libexif/fuji/mnote-fuji-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:41
+#: libexif/olympus/mnote-olympus-tag.c:98 libexif/pentax/mnote-pentax-tag.c:41
+#: libexif/pentax/mnote-pentax-tag.c:84 libexif/pentax/mnote-pentax-tag.c:124
+msgid "White Balance"
+msgstr "Balance des blancs"
+
+#: libexif/canon/mnote-canon-tag.c:102
+#, fuzzy
+msgid "Slow Shutter"
+msgstr "obturation"
+
+#: libexif/canon/mnote-canon-tag.c:103
+#, fuzzy
+msgid "Sequence Number"
+msgstr "Le nombre F."
+
+#: libexif/canon/mnote-canon-tag.c:104
+#, fuzzy
+msgid "Flash Guide Number"
+msgstr "Le nombre F."
+
+#: libexif/canon/mnote-canon-tag.c:106 libexif/olympus/mnote-olympus-tag.c:52
+#: libexif/pentax/mnote-pentax-tag.c:109
+#, fuzzy
+msgid "Flash Exposure Compensation"
+msgstr "Temps d'exposition"
+
+#: libexif/canon/mnote-canon-tag.c:107
+#, fuzzy
+msgid "AE Bracketing"
+msgstr "action"
+
+#: libexif/canon/mnote-canon-tag.c:108
+#, fuzzy
+msgid "AE Bracket Value"
+msgstr "Ouverture"
+
+#: libexif/canon/mnote-canon-tag.c:109
+#, fuzzy
+msgid "Focus Distance Upper"
+msgstr "Balance des blancs manuelle"
+
+#: libexif/canon/mnote-canon-tag.c:110
+#, fuzzy
+msgid "Focus Distance Lower"
+msgstr "Balance des blancs manuelle"
+
+#: libexif/canon/mnote-canon-tag.c:111
+#, fuzzy
+msgid "FNumber"
+msgstr "Le nombre F."
+
+#: libexif/canon/mnote-canon-tag.c:112 libexif/exif-tag.c:466
+#: libexif/pentax/mnote-pentax-tag.c:78
+msgid "Exposure Time"
+msgstr "Temps d'exposition"
+
+#: libexif/canon/mnote-canon-tag.c:113
+#, fuzzy
+msgid "Bulb Duration"
+msgstr "Saturation"
+
+#: libexif/canon/mnote-canon-tag.c:114
+msgid "Camera Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:115
+#, fuzzy
+msgid "Auto Rotate"
+msgstr "Bracketing automatique"
+
+#: libexif/canon/mnote-canon-tag.c:116
+#, fuzzy
+msgid "ND Filter"
+msgstr "Valeur du zoom numérique"
+
+#: libexif/canon/mnote-canon-tag.c:119
+#, fuzzy
+msgid "Panorama Frame"
+msgstr "normal"
+
+#: libexif/canon/mnote-canon-tag.c:120
+msgid "Panorama Direction"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:121
+#, fuzzy
+msgid "Tone Curve"
+msgstr "Contraste"
+
+#: libexif/canon/mnote-canon-tag.c:122
+#, fuzzy
+msgid "Sharpness Frequency"
+msgstr "Netteté"
+
+#: libexif/canon/mnote-canon-tag.c:124
+#, fuzzy
+msgid "Picture Style"
+msgstr "Mode d'exposition"
+
+#: libexif/exif-byte-order.c:33
+msgid "Motorola"
+msgstr "Motorola"
+
+#: libexif/exif-byte-order.c:35
+msgid "Intel"
+msgstr "Intel"
+
+#: libexif/exif-data.c:780
+msgid "Size of data too small to allow for EXIF data."
+msgstr ""
+
+#: libexif/exif-data.c:841
+msgid "EXIF marker not found."
+msgstr ""
+
+#: libexif/exif-data.c:868
+msgid "EXIF header not found."
+msgstr ""
+
+#: libexif/exif-data.c:884
+#, fuzzy
+msgid "Unknown encoding."
+msgstr "Inconnu"
+
+#: libexif/exif-data.c:1168
+#, fuzzy
+msgid "Ignore unknown tags"
+msgstr "Inconnu"
+
+#: libexif/exif-data.c:1169
+msgid "Ignore unknown tags when loading EXIF data."
+msgstr ""
+
+#: libexif/exif-data.c:1170
+msgid "Follow specification"
+msgstr ""
+
+#: libexif/exif-data.c:1171
+msgid ""
+"Add, correct and remove entries to get EXIF data that follows the "
+"specification."
+msgstr ""
+
+#: libexif/exif-data.c:1173
+msgid "Do not change maker note"
+msgstr ""
+
+#: libexif/exif-data.c:1174
+msgid ""
+"When loading and resaving Exif data, save the maker note unmodified. Be "
+"aware that the maker note can get corrupted."
+msgstr ""
+
+#: libexif/exif-entry.c:234 libexif/exif-entry.c:303 libexif/exif-entry.c:336
+#, c-format
+msgid ""
+"Tag '%s' was of format '%s' (which is against specification) and has been "
+"changed to format '%s'."
+msgstr ""
+
+#: libexif/exif-entry.c:271
+#, c-format
+msgid ""
+"Tag '%s' is of format '%s' (which is against specification) but cannot be "
+"changed to format '%s'."
+msgstr ""
+
+#: libexif/exif-entry.c:354
+#, c-format
+msgid ""
+"Tag 'UserComment' had invalid format '%s'. Format has been set to "
+"'undefined'."
+msgstr ""
+
+#: libexif/exif-entry.c:381
+msgid ""
+"Tag 'UserComment' has been expanded to at least 8 bytes in order to follow "
+"the specification."
+msgstr ""
+
+#: libexif/exif-entry.c:396
+msgid ""
+"Tag 'UserComment' is not empty but does not start with a format identifier. "
+"This has been fixed."
+msgstr ""
+
+#: libexif/exif-entry.c:424
+msgid ""
+"Tag 'UserComment' did not start with a format identifier. This has been "
+"fixed."
+msgstr ""
+
+#: libexif/exif-entry.c:462
+#, fuzzy, c-format
+msgid "%i bytes undefined data"
+msgstr "%i de données inconnues"
+
+#: libexif/exif-entry.c:589
+#, fuzzy, c-format
+msgid "%i bytes unsupported data type"
+msgstr "%i de données inconnues"
+
+#: libexif/exif-entry.c:622
+#, fuzzy, c-format
+msgid "The tag '%s' contains data of an invalid format ('%s', expected '%s')."
+msgstr "Format invalide '%s', attendait '%s'."
+
+#: libexif/exif-entry.c:635
+#, c-format
+msgid ""
+"The tag '%s' contains an invalid number of components (%i, expected %i)."
+msgstr ""
+
+#: libexif/exif-entry.c:649
+msgid "Chunky format"
+msgstr ""
+
+#: libexif/exif-entry.c:649
+#, fuzzy
+msgid "Planar format"
+msgstr "Configuration du plan"
+
+#: libexif/exif-entry.c:651 libexif/exif-entry.c:743
+#: test/nls/test-codeset.c:54
+msgid "Not defined"
+msgstr "Non défini"
+
+#: libexif/exif-entry.c:651
+msgid "One-chip color area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:652
+msgid "Two-chip color area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:652
+msgid "Three-chip color area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:653
+msgid "Color sequential area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:653
+msgid "Trilinear sensor"
+msgstr "Capteur trilinéaire"
+
+#: libexif/exif-entry.c:654
+msgid "Color sequential linear sensor"
+msgstr "Capteur linéaire séquentiel de couleur"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:233
+#, fuzzy
+msgid "Top-left"
+msgstr "haut - gauche"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:235
+#, fuzzy
+msgid "Top-right"
+msgstr "haut - droit"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:241
+#, fuzzy
+msgid "Bottom-right"
+msgstr "bas - droit"
+
+#: libexif/exif-entry.c:657 libexif/pentax/mnote-pentax-entry.c:239
+#, fuzzy
+msgid "Bottom-left"
+msgstr "bas - gauche"
+
+#: libexif/exif-entry.c:657
+#, fuzzy
+msgid "Left-top"
+msgstr "gauche - haut"
+
+#: libexif/exif-entry.c:657
+#, fuzzy
+msgid "Right-top"
+msgstr "droit - haut"
+
+#: libexif/exif-entry.c:658
+#, fuzzy
+msgid "Right-bottom"
+msgstr "droit - bas"
+
+#: libexif/exif-entry.c:658
+#, fuzzy
+msgid "Left-bottom"
+msgstr "gauche - bas"
+
+#: libexif/exif-entry.c:660
+#, fuzzy
+msgid "Centered"
+msgstr "centré"
+
+#: libexif/exif-entry.c:660
+#, fuzzy
+msgid "Co-sited"
+msgstr "Vue de près"
+
+#: libexif/exif-entry.c:662
+msgid "Reversed mono"
+msgstr ""
+
+#: libexif/exif-entry.c:662
+#, fuzzy
+msgid "Normal mono"
+msgstr "Normal"
+
+#: libexif/exif-entry.c:662
+msgid "RGB"
+msgstr "RGB"
+
+#: libexif/exif-entry.c:662
+#, fuzzy
+msgid "Palette"
+msgstr "Motif"
+
+#: libexif/exif-entry.c:663
+msgid "CMYK"
+msgstr ""
+
+#: libexif/exif-entry.c:663
+msgid "YCbCr"
+msgstr "YCbCr"
+
+#: libexif/exif-entry.c:663
+msgid "CieLAB"
+msgstr ""
+
+#: libexif/exif-entry.c:665
+msgid "Normal process"
+msgstr "Processus normal"
+
+#: libexif/exif-entry.c:665
+msgid "Custom process"
+msgstr "Processus personnel"
+
+#: libexif/exif-entry.c:667
+msgid "Auto exposure"
+msgstr "Exposition automatique"
+
+#: libexif/exif-entry.c:667 libexif/fuji/mnote-fuji-entry.c:139
+msgid "Manual exposure"
+msgstr "Exposition manuel"
+
+#: libexif/exif-entry.c:667
+msgid "Auto bracket"
+msgstr "Bracketing automatique"
+
+#: libexif/exif-entry.c:669
+msgid "Auto white balance"
+msgstr "Balance des blancs automatique"
+
+#: libexif/exif-entry.c:669
+msgid "Manual white balance"
+msgstr "Balance des blancs manuelle"
+
+#: libexif/exif-entry.c:674
+msgid "Low gain up"
+msgstr ""
+
+#: libexif/exif-entry.c:674
+msgid "High gain up"
+msgstr ""
+
+#: libexif/exif-entry.c:675
+msgid "Low gain down"
+msgstr ""
+
+#: libexif/exif-entry.c:675
+msgid "High gain down"
+msgstr ""
+
+#: libexif/exif-entry.c:677
+msgid "Low saturation"
+msgstr "Saturation faible"
+
+#: libexif/exif-entry.c:677 test/nls/test-codeset.c:48
+#: test/nls/test-codeset.c:61
+msgid "High saturation"
+msgstr "Saturation forte"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:63
+#: libexif/olympus/mnote-olympus-entry.c:205
+#: libexif/olympus/mnote-olympus-entry.c:214
+#: libexif/pentax/mnote-pentax-entry.c:106
+#: libexif/pentax/mnote-pentax-entry.c:170
+msgid "Soft"
+msgstr "Doux"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:65 libexif/fuji/mnote-fuji-entry.c:95
+#: libexif/olympus/mnote-olympus-entry.c:204
+#: libexif/olympus/mnote-olympus-entry.c:212
+#: libexif/pentax/mnote-pentax-entry.c:107
+msgid "Hard"
+msgstr "Dur"
+
+#: libexif/exif-entry.c:695 libexif/exif-entry.c:713 libexif/exif-entry.c:795
+#: libexif/olympus/mnote-olympus-entry.c:589
+#: libexif/olympus/mnote-olympus-entry.c:683
+#: libexif/olympus/mnote-olympus-entry.c:738
+#: libexif/pentax/mnote-pentax-entry.c:256
+msgid "Unknown"
+msgstr "Inconnu"
+
+#: libexif/exif-entry.c:696
+#, fuzzy
+msgid "Avg"
+msgstr "moyenne"
+
+#: libexif/exif-entry.c:697
+#, fuzzy
+msgid "Center-weight"
+msgstr "Centre pondéré"
+
+#: libexif/exif-entry.c:699
+#, fuzzy
+msgid "Multi spot"
+msgstr "Multi spot"
+
+#: libexif/exif-entry.c:700
+msgid "Pattern"
+msgstr "Motif"
+
+#: libexif/exif-entry.c:705
+msgid "Uncompressed"
+msgstr "Non compressé"
+
+#: libexif/exif-entry.c:706
+msgid "LZW compression"
+msgstr "Compression LZW"
+
+#: libexif/exif-entry.c:707 libexif/exif-entry.c:708
+msgid "JPEG compression"
+msgstr "Compression JPEG"
+
+#: libexif/exif-entry.c:709
+msgid "Deflate/ZIP compression"
+msgstr "Compression Deflate/ZIP"
+
+#: libexif/exif-entry.c:710
+msgid "PackBits compression"
+msgstr "Compression PackBits"
+
+#: libexif/exif-entry.c:716
+#, fuzzy
+msgid "Tungsten incandescent light"
+msgstr "Tungstène (lumière incandescente)"
+
+#: libexif/exif-entry.c:718
+msgid "Fine weather"
+msgstr "Temps clair"
+
+#: libexif/exif-entry.c:719
+msgid "Cloudy weather"
+msgstr "Temps couvert"
+
+#: libexif/exif-entry.c:722 libexif/fuji/mnote-fuji-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:252
+msgid "Day white fluorescent"
+msgstr ""
+
+#: libexif/exif-entry.c:723
+msgid "Cool white fluorescent"
+msgstr ""
+
+#: libexif/exif-entry.c:724 libexif/fuji/mnote-fuji-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:253
+msgid "White fluorescent"
+msgstr ""
+
+#: libexif/exif-entry.c:725
+msgid "Standard light A"
+msgstr "Lumière standard A"
+
+#: libexif/exif-entry.c:726
+msgid "Standard light B"
+msgstr "Lumière standard B"
+
+#: libexif/exif-entry.c:727
+msgid "Standard light C"
+msgstr "Lumière standard C"
+
+#: libexif/exif-entry.c:728
+msgid "D55"
+msgstr "D55"
+
+#: libexif/exif-entry.c:729
+msgid "D65"
+msgstr "D65"
+
+#: libexif/exif-entry.c:730
+msgid "D75"
+msgstr "D75"
+
+#: libexif/exif-entry.c:731
+msgid "ISO studio tungsten"
+msgstr "Tungstène de studio ISO"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "Inch"
+msgstr "Pouce"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "in"
+msgstr "pouces"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "Centimeter"
+msgstr "Centimère"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "cm"
+msgstr "cm"
+
+#: libexif/exif-entry.c:745
+msgid "Normal program"
+msgstr "Programme normal"
+
+#: libexif/exif-entry.c:746
+msgid "Aperture priority"
+msgstr "Priorité ouverture"
+
+#: libexif/exif-entry.c:746 libexif/exif-tag.c:550
+msgid "Aperture"
+msgstr "Ouverture"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter priority"
+msgstr "Priorité obturation"
+
+#: libexif/exif-entry.c:747
+#, fuzzy
+msgid "Shutter"
+msgstr "obturation"
+
+#: libexif/exif-entry.c:748
+msgid "Creative program (biased toward depth of field)"
+msgstr "Programme créatif (grande profondeur de champ)"
+
+#: libexif/exif-entry.c:749
+#, fuzzy
+msgid "Creative"
+msgstr "créatif"
+
+#: libexif/exif-entry.c:750
+#, fuzzy
+msgid "Creative program (biased toward fast shutter speed)"
+msgstr "Programme action (vitesse d'obturation élevée)"
+
+#: libexif/exif-entry.c:751
+#, fuzzy
+msgid "Action"
+msgstr "action"
+
+#: libexif/exif-entry.c:752
+#, fuzzy
+msgid "Portrait mode (for closeup photos with the background out of focus)"
+msgstr "Mode portrait (photos en gros plan avec arrière-plan flou)"
+
+#: libexif/exif-entry.c:754
+#, fuzzy
+msgid "Landscape mode (for landscape photos with the background in focus)"
+msgstr "Mode paysage (paysages avec arrière-plan net)"
+
+#: libexif/exif-entry.c:758 libexif/exif-entry.c:763
+#: libexif/olympus/mnote-olympus-entry.c:97
+#, fuzzy
+msgid "Flash did not fire"
+msgstr "Le flash ne s'est pas déclenché."
+
+#: libexif/exif-entry.c:758
+#, fuzzy
+msgid "No flash"
+msgstr "Flash"
+
+#: libexif/exif-entry.c:759
+#, fuzzy
+msgid "Flash fired"
+msgstr "Le flash s'est déclenché."
+
+#: libexif/exif-entry.c:759 libexif/olympus/mnote-olympus-entry.c:170
+#: libexif/olympus/mnote-olympus-entry.c:175
+#: libexif/olympus/mnote-olympus-entry.c:209
+#: libexif/olympus/mnote-olympus-entry.c:218
+#: libexif/olympus/mnote-olympus-entry.c:241
+msgid "Yes"
+msgstr "oui"
+
+#: libexif/exif-entry.c:760
+#, fuzzy
+msgid "Strobe return light not detected"
+msgstr "Flash déclenché, mode auto, lumière de retour non détectée."
+
+#: libexif/exif-entry.c:760
+msgid "Without strobe"
+msgstr ""
+
+#: libexif/exif-entry.c:762
+#, fuzzy
+msgid "Strobe return light detected"
+msgstr "Flash déclenché, mode auto, lumière de retour détectée."
+
+#: libexif/exif-entry.c:762
+msgid "With strobe"
+msgstr ""
+
+#: libexif/exif-entry.c:764
+#, fuzzy
+msgid "Flash fired, compulsory flash mode"
+msgstr "Flash non déclenché, mode de flash obligatoire."
+
+#: libexif/exif-entry.c:765
+#, fuzzy
+msgid "Flash fired, compulsory flash mode, return light not detected"
+msgstr ""
+"Flash déclenché, mode de flash obligatoire, lumière de retour non détectée."
+
+#: libexif/exif-entry.c:767
+#, fuzzy
+msgid "Flash fired, compulsory flash mode, return light detected"
+msgstr ""
+"Flash déclenché, mode de flash obligatoire, lumière de retour détectée."
+
+#: libexif/exif-entry.c:769
+#, fuzzy
+msgid "Flash did not fire, compulsory flash mode"
+msgstr "Flash non déclenché, mode de flash obligatoire."
+
+#: libexif/exif-entry.c:770
+#, fuzzy
+msgid "Flash did not fire, auto mode"
+msgstr "Flash non déclenché, mode auto."
+
+#: libexif/exif-entry.c:771
+#, fuzzy
+msgid "Flash fired, auto mode"
+msgstr "Flash déclenché, mode auto."
+
+#: libexif/exif-entry.c:772
+#, fuzzy
+msgid "Flash fired, auto mode, return light not detected"
+msgstr "Flash déclenché, mode auto, lumière de retour non détectée."
+
+#: libexif/exif-entry.c:774
+#, fuzzy
+msgid "Flash fired, auto mode, return light detected"
+msgstr "Flash déclenché, mode auto, lumière de retour détectée."
+
+#: libexif/exif-entry.c:775
+#, fuzzy
+msgid "No flash function"
+msgstr "Pas de fonction flash."
+
+#: libexif/exif-entry.c:776
+#, fuzzy
+msgid "Flash fired, red-eye reduction mode"
+msgstr "Flash déclenché, mode anti-yeux rouges."
+
+#: libexif/exif-entry.c:777
+#, fuzzy
+msgid "Flash fired, red-eye reduction mode, return light not detected"
+msgstr ""
+"Flash déclenché, mode anti-yeux rouges, lumière de retour non détectée."
+
+#: libexif/exif-entry.c:779
+#, fuzzy
+msgid "Flash fired, red-eye reduction mode, return light detected"
+msgstr "Flash déclenché, mode anti-yeux rouges, lumière de retour détectée."
+
+#: libexif/exif-entry.c:781
+#, fuzzy
+msgid "Flash fired, compulsory flash mode, red-eye reduction mode"
+msgstr "Flash déclenché, mode de flash obligatoire, mode anti-yeux rouges."
+
+#: libexif/exif-entry.c:783
+#, fuzzy
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light not "
+"detected"
+msgstr ""
+"Flash déclenché, mode de flash obligatoire, mode anti-yeux rouges, lumière "
+"de retour non détectée."
+
+#: libexif/exif-entry.c:785
+#, fuzzy
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light "
+"detected"
+msgstr ""
+"Flash déclenché, mode de flash obligatoire, mode anti-yeux rouges, lumière "
+"de retour non détectée."
+
+#: libexif/exif-entry.c:787
+#, fuzzy
+msgid "Flash did not fire, auto mode, red-eye reduction mode"
+msgstr "Flash déclenché, mode auto, mode anti-yeux rouges."
+
+#: libexif/exif-entry.c:788
+#, fuzzy
+msgid "Flash fired, auto mode, red-eye reduction mode"
+msgstr "Flash déclenché, mode auto, mode anti-yeux rouges."
+
+#: libexif/exif-entry.c:789
+#, fuzzy
+msgid ""
+"Flash fired, auto mode, return light not detected, red-eye reduction mode"
+msgstr ""
+"Flash déclenché, mode auto, lumière de retour non détectée, mode anti-yeux "
+"rouges."
+
+#: libexif/exif-entry.c:791
+#, fuzzy
+msgid "Flash fired, auto mode, return light detected, red-eye reduction mode"
+msgstr ""
+"Flash déclenché, mode auto, lumière de retour détectée, mode anti-yeux "
+"rouges."
+
+#: libexif/exif-entry.c:795
+msgid "?"
+msgstr ""
+
+#: libexif/exif-entry.c:797
+msgid "Close view"
+msgstr "Vue de près"
+
+#: libexif/exif-entry.c:798
+msgid "Distant view"
+msgstr "Vue de loin"
+
+#: libexif/exif-entry.c:798
+#, fuzzy
+msgid "Distant"
+msgstr "Vue de loin"
+
+#: libexif/exif-entry.c:801
+msgid "sRGB"
+msgstr "sRGB"
+
+#: libexif/exif-entry.c:802
+msgid "Adobe RGB"
+msgstr ""
+
+#: libexif/exif-entry.c:803
+msgid "Uncalibrated"
+msgstr "Non calibré"
+
+#: libexif/exif-entry.c:857
+#, c-format
+msgid "Invalid size of entry (%i, expected %li x %i)."
+msgstr "Nombre invalide de composants (%i, attendait %li x %i)."
+
+#: libexif/exif-entry.c:890
+msgid "Unsupported UNICODE string"
+msgstr ""
+
+#: libexif/exif-entry.c:898
+msgid "Unsupported JIS string"
+msgstr ""
+
+#: libexif/exif-entry.c:914
+msgid "Tag UserComment does not comply with standard but contains data."
+msgstr ""
+
+#: libexif/exif-entry.c:918
+#, c-format
+msgid "Byte at position %i: 0x%02x"
+msgstr ""
+
+#: libexif/exif-entry.c:927
+msgid "Unknown Exif Version"
+msgstr "Version d'exif inconnu"
+
+#: libexif/exif-entry.c:931
+#, c-format
+msgid "Exif Version %d.%d"
+msgstr "Version d'exif %d.%d"
+
+#: libexif/exif-entry.c:942
+msgid "FlashPix Version 1.0"
+msgstr ""
+
+#: libexif/exif-entry.c:944
+msgid "FlashPix Version 1.01"
+msgstr ""
+
+#: libexif/exif-entry.c:946
+msgid "Unknown FlashPix Version"
+msgstr ""
+
+#: libexif/exif-entry.c:959 libexif/exif-entry.c:972 libexif/exif-entry.c:1628
+#: libexif/exif-entry.c:1633 libexif/exif-entry.c:1637
+#: libexif/exif-entry.c:1642 libexif/exif-entry.c:1643
+msgid "[None]"
+msgstr ""
+
+#: libexif/exif-entry.c:961
+msgid "(Photographer)"
+msgstr ""
+
+#: libexif/exif-entry.c:975
+msgid "(Editor)"
+msgstr ""
+
+#: libexif/exif-entry.c:999 libexif/exif-entry.c:1079
+#: libexif/exif-entry.c:1096 libexif/exif-entry.c:1140
+#, c-format
+msgid "%.02f EV"
+msgstr ""
+
+#: libexif/exif-entry.c:1000
+#, c-format
+msgid " (f/%.01f)"
+msgstr ""
+
+#: libexif/exif-entry.c:1034
+#, c-format
+msgid " (35 equivalent: %d mm)"
+msgstr " (équivalent 35mm: %d mm)"
+
+#: libexif/exif-entry.c:1067 libexif/exif-entry.c:1068
+#, fuzzy
+msgid " sec."
+msgstr " sec."
+
+#: libexif/exif-entry.c:1082
+#, fuzzy, c-format
+msgid " (1/%d sec.)"
+msgstr " 1/%d sec.)"
+
+#: libexif/exif-entry.c:1084
+#, fuzzy, c-format
+msgid " (%d sec.)"
+msgstr "%d sec.)"
+
+#: libexif/exif-entry.c:1097
+#, c-format
+msgid " (%.02f cd/m^2)"
+msgstr ""
+
+#: libexif/exif-entry.c:1107
+msgid "DSC"
+msgstr ""
+
+#: libexif/exif-entry.c:1109 libexif/exif-entry.c:1149
+#: libexif/exif-entry.c:1236 libexif/exif-entry.c:1287
+#: libexif/exif-entry.c:1296 libexif/exif-entry.c:1332
+#: libexif/fuji/mnote-fuji-entry.c:236 libexif/fuji/mnote-fuji-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:359
+#, c-format
+msgid "Internal error (unknown value %i)"
+msgstr ""
+
+#: libexif/exif-entry.c:1117
+msgid "-"
+msgstr "-"
+
+#: libexif/exif-entry.c:1118
+msgid "Y"
+msgstr "Y"
+
+#: libexif/exif-entry.c:1119
+msgid "Cb"
+msgstr "Cb"
+
+#: libexif/exif-entry.c:1120
+msgid "Cr"
+msgstr "Cr"
+
+#: libexif/exif-entry.c:1121
+msgid "R"
+msgstr "R"
+
+#: libexif/exif-entry.c:1122
+msgid "G"
+msgstr "G"
+
+#: libexif/exif-entry.c:1123
+msgid "B"
+msgstr "B"
+
+#: libexif/exif-entry.c:1124
+#, fuzzy
+msgid "Reserved"
+msgstr "réservé"
+
+#: libexif/exif-entry.c:1147
+msgid "Directly photographed"
+msgstr ""
+
+#: libexif/exif-entry.c:1160
+msgid "YCbCr4:2:2"
+msgstr "YCbCr4:2:2"
+
+#: libexif/exif-entry.c:1162
+msgid "YCbCr4:2:0"
+msgstr "YCbCr4:2:0"
+
+#: libexif/exif-entry.c:1179
+#, c-format
+msgid "Within distance %i of (x,y) = (%i,%i)"
+msgstr "Dans la distance %i de (x,y) = (%i,%i)"
+
+#: libexif/exif-entry.c:1188
+#, c-format
+msgid "Within rectangle (width %i, height %i) around (x,y) = (%i,%i)"
+msgstr "Dans le rectangle (largeur %i, hauteur %i) autour de (x,y) = (%i,%i)"
+
+#: libexif/exif-entry.c:1194
+#, c-format
+msgid "Unexpected number of components (%li, expected 2, 3, or 4)."
+msgstr "Nombre inattendu de composants (%li, attendait 2, 3, ou 4)."
+
+#: libexif/exif-entry.c:1232
+#, fuzzy
+msgid "Sea level"
+msgstr "Niveau de charge"
+
+#: libexif/exif-entry.c:1234
+msgid "Sea level reference"
+msgstr ""
+
+#: libexif/exif-entry.c:1342
+#, fuzzy, c-format
+msgid "Unknown value %i"
+msgstr "Inconnu"
+
+#: libexif/exif-format.c:37
+#, fuzzy
+msgid "Short"
+msgstr "Spot"
+
+#: libexif/exif-format.c:38
+#, fuzzy
+msgid "Rational"
+msgstr "action"
+
+#: libexif/exif-format.c:39
+#, fuzzy
+msgid "SRational"
+msgstr "action"
+
+#: libexif/exif-format.c:40
+msgid "Undefined"
+msgstr "Non défini"
+
+#: libexif/exif-format.c:41
+msgid "ASCII"
+msgstr ""
+
+#: libexif/exif-format.c:42
+msgid "Long"
+msgstr ""
+
+#: libexif/exif-format.c:43
+#, fuzzy
+msgid "Byte"
+msgstr "Centimère"
+
+#: libexif/exif-format.c:44
+msgid "SByte"
+msgstr ""
+
+#: libexif/exif-format.c:45
+#, fuzzy
+msgid "SShort"
+msgstr "Spot"
+
+#: libexif/exif-format.c:46
+msgid "SLong"
+msgstr ""
+
+#: libexif/exif-format.c:47
+#, fuzzy
+msgid "Float"
+msgstr "Flash"
+
+#: libexif/exif-format.c:48
+msgid "Double"
+msgstr ""
+
+#: libexif/exif-loader.c:119
+#, c-format
+msgid "The file '%s' could not be opened."
+msgstr ""
+
+#: libexif/exif-loader.c:300
+msgid "The data supplied does not seem to contain EXIF data."
+msgstr ""
+
+#: libexif/exif-log.c:43
+msgid "Debugging information"
+msgstr ""
+
+#: libexif/exif-log.c:44
+msgid "Debugging information is available."
+msgstr ""
+
+#: libexif/exif-log.c:45
+msgid "Not enough memory"
+msgstr ""
+
+#: libexif/exif-log.c:46
+msgid "The system cannot provide enough memory."
+msgstr ""
+
+#: libexif/exif-log.c:47
+msgid "Corrupt data"
+msgstr ""
+
+#: libexif/exif-log.c:48
+msgid "The data provided does not follow the specification."
+msgstr ""
+
+#: libexif/exif-tag.c:62
+msgid "GPS Tag Version"
+msgstr ""
+
+#: libexif/exif-tag.c:63
+msgid ""
+"Indicates the version of <GPSInfoIFD>. The version is given as 2.0.0.0. This "
+"tag is mandatory when <GPSInfo> tag is present. (Note: The <GPSVersionID> "
+"tag is given in bytes, unlike the <ExifVersion> tag. When the version is "
+"2.0.0.0, the tag value is 02000000.H)."
+msgstr ""
+
+#: libexif/exif-tag.c:69
+msgid "Interoperability Index"
+msgstr ""
+
+#: libexif/exif-tag.c:70
+msgid ""
+"Indicates the identification of the Interoperability rule. Use \"R98\" for "
+"stating ExifR98 Rules. Four bytes used including the termination code "
+"(NULL). see the separate volume of Recommended Exif Interoperability Rules "
+"(ExifR98) for other tags used for ExifR98."
+msgstr ""
+"Indique l'identification de la règle d'interopérabilité. Utilisez \"R98\" "
+"pour préciser des règles ExifR98. Quatre octets sont utilisés, incluant le "
+"code de terminaison (NULL). Voyez le volume séparé des règles "
+"d'interopérabilité recommandées pour exif (ExifR98) pour les autres "
+"marqueurs utilisés pour ExifR98."
+
+#: libexif/exif-tag.c:76
+msgid "North or South Latitude"
+msgstr ""
+
+#: libexif/exif-tag.c:77
+msgid ""
+"Indicates whether the latitude is north or south latitude. The ASCII value "
+"'N' indicates north latitude, and 'S' is south latitude."
+msgstr ""
+
+#: libexif/exif-tag.c:81
+msgid "Interoperability Version"
+msgstr ""
+
+#: libexif/exif-tag.c:83
+msgid "Latitude"
+msgstr ""
+
+#: libexif/exif-tag.c:84
+msgid ""
+"Indicates the latitude. The latitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is dd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is dd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:91
+msgid "East or West Longitude"
+msgstr ""
+
+#: libexif/exif-tag.c:92
+msgid ""
+"Indicates whether the longitude is east or west longitude. ASCII 'E' "
+"indicates east longitude, and 'W' is west longitude."
+msgstr ""
+
+#: libexif/exif-tag.c:95
+msgid "Longitude"
+msgstr ""
+
+#: libexif/exif-tag.c:96
+msgid ""
+"Indicates the longitude. The longitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is ddd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is ddd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:103
+msgid "Altitude Reference"
+msgstr ""
+
+#: libexif/exif-tag.c:104
+msgid ""
+"Indicates the altitude used as the reference altitude. If the reference is "
+"sea level and the altitude is above sea level, 0 is given. If the altitude "
+"is below sea level, a value of 1 is given and the altitude is indicated as "
+"an absolute value in the GSPAltitude tag. The reference unit is meters. Note "
+"that this tag is BYTE type, unlike other reference tags."
+msgstr ""
+
+#: libexif/exif-tag.c:110
+msgid "Altitude"
+msgstr ""
+
+#: libexif/exif-tag.c:111
+msgid ""
+"Indicates the altitude based on the reference in GPSAltitudeRef. Altitude is "
+"expressed as one RATIONAL value. The reference unit is meters."
+msgstr ""
+
+#: libexif/exif-tag.c:114
+msgid "GPS Time (Atomic Clock)"
+msgstr ""
+
+#: libexif/exif-tag.c:115
+msgid ""
+"Indicates the time as UTC (Coordinated Universal Time). TimeStamp is "
+"expressed as three RATIONAL values giving the hour, minute, and second."
+msgstr ""
+
+#: libexif/exif-tag.c:118
+msgid "GPS Satellites"
+msgstr ""
+
+#: libexif/exif-tag.c:119
+msgid ""
+"Indicates the GPS satellites used for measurements. This tag can be used to "
+"describe the number of satellites, their ID number, angle of elevation, "
+"azimuth, SNR and other information in ASCII notation. The format is not "
+"specified. If the GPS receiver is incapable of taking measurements, value of "
+"the tag shall be set to NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:125
+msgid "GPS Receiver Status"
+msgstr ""
+
+#: libexif/exif-tag.c:126
+msgid ""
+"Indicates the status of the GPS receiver when the image is recorded. 'A' "
+"means measurement is in progress, and 'V' means the measurement is "
+"Interoperability."
+msgstr ""
+
+#: libexif/exif-tag.c:129
+#, fuzzy
+msgid "GPS Measurement Mode"
+msgstr "Mode de mesure"
+
+#: libexif/exif-tag.c:130
+msgid ""
+"Indicates the GPS measurement mode. '2' means two-dimensional measurement "
+"and '3' means three-dimensional measurement is in progress."
+msgstr ""
+
+#: libexif/exif-tag.c:133
+msgid "Measurement Precision"
+msgstr ""
+
+#: libexif/exif-tag.c:134
+msgid ""
+"Indicates the GPS DOP (data degree of precision). An HDOP value is written "
+"during two-dimensional measurement, and PDOP during three-dimensional "
+"measurement."
+msgstr ""
+
+#: libexif/exif-tag.c:137
+msgid "Speed Unit"
+msgstr ""
+
+#: libexif/exif-tag.c:138
+msgid ""
+"Indicates the unit used to express the GPS receiver speed of movement. 'K', "
+"'M' and 'N' represent kilometers per hour, miles per hour, and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:141
+msgid "Speed of GPS Receiver"
+msgstr ""
+
+#: libexif/exif-tag.c:142
+msgid "Indicates the speed of GPS receiver movement."
+msgstr ""
+
+#: libexif/exif-tag.c:143
+msgid "Reference for direction of movement"
+msgstr ""
+
+#: libexif/exif-tag.c:144
+msgid ""
+"Indicates the reference for giving the direction of GPS receiver movement. "
+"'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:147
+msgid "Direction of Movement"
+msgstr ""
+
+#: libexif/exif-tag.c:148
+msgid ""
+"Indicates the direction of GPS receiver movement. The range of values is "
+"from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:150
+msgid "GPS Image Direction Reference"
+msgstr ""
+
+#: libexif/exif-tag.c:151
+msgid ""
+"Indicates the reference for giving the direction of the image when it is "
+"captured. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:153
+#, fuzzy
+msgid "GPS Image Direction"
+msgstr "Description de l'image"
+
+#: libexif/exif-tag.c:154
+msgid ""
+"Indicates the direction of the image when it was captured. The range of "
+"values is from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:156
+msgid "Geodetic Survey Data Used"
+msgstr ""
+
+#: libexif/exif-tag.c:157
+msgid ""
+"Indicates the geodetic survey data used by the GPS receiver. If the survey "
+"data is restricted to Japan, the value of this tag is 'TOKYO' or 'WGS-84'. "
+"If a GPS Info tag is recorded, it is strongly recommended that this tag be "
+"recorded."
+msgstr ""
+
+#: libexif/exif-tag.c:161
+msgid "Reference For Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:162
+msgid ""
+"Indicates whether the latitude of the destination point is north or south "
+"latitude. The ASCII value 'N' indicates north latitude, and 'S' is south "
+"latitude."
+msgstr ""
+
+#: libexif/exif-tag.c:165
+msgid "Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:166
+msgid ""
+"Indicates the latitude of the destination point. The latitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If latitude is expressed as degrees, minutes and seconds, a "
+"typical format would be dd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be dd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:173
+msgid "Reference for Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:174
+msgid ""
+"Indicates whether the longitude of the destination point is east or west "
+"longitude. ASCII 'E' indicates east longitude, and 'W' is west longitude."
+msgstr ""
+
+#: libexif/exif-tag.c:177
+msgid "Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:178
+msgid ""
+"Indicates the longitude of the destination point. The longitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If longitude is expressed as degrees, minutes and seconds, a "
+"typical format would be ddd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be ddd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:186
+msgid "Reference for Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:187
+msgid ""
+"Indicates the reference used for giving the bearing to the destination "
+"point. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:190
+msgid "Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:191
+msgid ""
+"Indicates the bearing to the destination point. The range of values is from "
+"0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:193
+msgid "Reference for Distance to Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:194
+msgid ""
+"Indicates the unit used to express the distance to the destination point. "
+"'K', 'M' and 'N' represent kilometers, miles and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:197
+#, fuzzy
+msgid "Distance to Destination"
+msgstr "Description des paramètres du périphérique"
+
+#: libexif/exif-tag.c:198
+#, fuzzy
+msgid "Indicates the distance to the destination point."
+msgstr "Ce marqueur indique la distance au sujet."
+
+#: libexif/exif-tag.c:199
+msgid "Name of GPS Processing Method"
+msgstr ""
+
+#: libexif/exif-tag.c:200
+msgid ""
+"A character string recording the name of the method used for location "
+"finding. The first byte indicates the character code used, and this is "
+"followed by the name of the method. Since the Type is not ASCII, NULL "
+"termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:205
+msgid "Name of GPS Area"
+msgstr ""
+
+#: libexif/exif-tag.c:206
+msgid ""
+"A character string recording the name of the GPS area. The first byte "
+"indicates the character code used, and this is followed by the name of the "
+"GPS area. Since the Type is not ASCII, NULL termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:210
+msgid "GPS Date"
+msgstr ""
+
+#: libexif/exif-tag.c:211
+msgid ""
+"A character string recording date and time information relative to UTC "
+"(Coordinated Universal Time). The format is \"YYYY:MM:DD\". The length of "
+"the string is 11 bytes including NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:215
+msgid "GPS Differential Correction"
+msgstr ""
+
+#: libexif/exif-tag.c:216
+msgid ""
+"Indicates whether differential correction is applied to the GPS receiver."
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "New Subfile Type"
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "A general indication of the kind of data contained in this subfile."
+msgstr ""
+
+#: libexif/exif-tag.c:222
+msgid "Image Width"
+msgstr "Hauteur de l'image"
+
+#: libexif/exif-tag.c:223
+#, fuzzy
+msgid ""
+"The number of columns of image data, equal to the number of pixels per row. "
+"In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+"Le nombre de colonnes des données de l'image, égal au nombre de pixels par "
+"ligne. Dans des données compressées en JPEG un marqueur JPEG est utilisé à "
+"la place de ce marqueur."
+
+#: libexif/exif-tag.c:227
+msgid "Image Length"
+msgstr "Longeur de l'image"
+
+#: libexif/exif-tag.c:228
+msgid ""
+"The number of rows of image data. In JPEG compressed data a JPEG marker is "
+"used instead of this tag."
+msgstr ""
+"Le nombre de lignes des données de l'image. Dans des données compressées en "
+"JPEG un marqueur JPEG est utilisé à la place de ce marqueur."
+
+#: libexif/exif-tag.c:231
+msgid "Bits per Sample"
+msgstr "Bits des échantillons"
+
+#: libexif/exif-tag.c:232
+#, fuzzy
+msgid ""
+"The number of bits per image component. In this standard each component of "
+"the image is 8 bits, so the value for this tag is 8. See also "
+"<SamplesPerPixel>. In JPEG compressed data a JPEG marker is used instead of "
+"this tag."
+msgstr ""
+"Le nombre de bits par composant d'image. Dans ce standard chaque composant "
+"de l'image fait 8 bits, donc la valeur de ce tag est 9. Voyez aussi "
+"<SamplesPerPixel>. Dans des données compressées en JPEG un marqueur JPEG est "
+"utilisé à la place de ce marqueur."
+
+#: libexif/exif-tag.c:237
+msgid "Compression"
+msgstr "Compression"
+
+#: libexif/exif-tag.c:238
+msgid ""
+"The compression scheme used for the image data. When a primary image is JPEG "
+"compressed, this designation is not necessary and is omitted. When "
+"thumbnails use JPEG compression, this tag value is set to 6."
+msgstr ""
+"Le schéma de compression utilisé par les données de l'image. Quand une image "
+"primaire est compressée en JPEG, cette désignation n'est pas nécessaire et "
+"est omise. Lorsque les vignettes utilisent la compression JPEG, la valeur de "
+"ce marqueur est de 6."
+
+#: libexif/exif-tag.c:244
+msgid "Photometric Interpretation"
+msgstr "Interprétation photométrique"
+
+#: libexif/exif-tag.c:245
+msgid ""
+"The pixel composition. In JPEG compressed data a JPEG marker is used instead "
+"of this tag."
+msgstr ""
+"La composition des pixels. Dans des données compressées en JPEG un marqueur "
+"JPEG est utilisé à la place de ce marqueur."
+
+#: libexif/exif-tag.c:249
+msgid "Fill Order"
+msgstr "Ordre de remplissage"
+
+#: libexif/exif-tag.c:251
+msgid "Document Name"
+msgstr "Nom du document"
+
+#: libexif/exif-tag.c:253
+msgid "Image Description"
+msgstr "Description de l'image"
+
+#: libexif/exif-tag.c:254
+msgid ""
+"A character string giving the title of the image. It may be a comment such "
+"as \"1988 company picnic\" or the like. Two-bytes character codes cannot be "
+"used. When a 2-bytes code is necessary, the Exif Private tag <UserComment> "
+"is to be used."
+msgstr ""
+"Une chaîne de caractères donnant le titre de l'image. Ce peut être un "
+"commentaire comme \"pique-nique société 1988\" ou approchant. Les codes de "
+"caractères sur deux octets ne peuvent être utilisés. Lorsqu'un code deux "
+"octets est nécessaire, le marqueur privé exif <UserComment> doit être "
+"utilisé."
+
+#: libexif/exif-tag.c:260
+msgid "Manufacturer"
+msgstr "Constructeur"
+
+#: libexif/exif-tag.c:261
+msgid ""
+"The manufacturer of the recording equipment. This is the manufacturer of the "
+"DSC, scanner, video digitizer or other equipment that generated the image. "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+"Le constructeur de l'équipement d'enregistrement. C'est le constructeur du "
+"DSC, scanner, enregistreur vidéo ou tout autre équipement ayant généré "
+"l'image. Quand ce champ est vide, il est traité en tant qu'inconnu."
+
+#: libexif/exif-tag.c:267
+msgid "Model"
+msgstr "Modèle"
+
+#: libexif/exif-tag.c:268
+msgid ""
+"The model name or model number of the equipment. This is the model name or "
+"number of the DSC, scanner, video digitizer or other equipment that "
+"generated the image. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Le nom du modèle ou le numéro du modèle de l'équipement. C'est le nom du "
+"modèlé ou le numéro du DSC, scanner, enregistreur vidéo ou tout autre "
+"équipement ayant généré l'image. Quand ce champ est vide, il est traité en "
+"tant qu'inconnu."
+
+#: libexif/exif-tag.c:273
+msgid "Strip Offsets"
+msgstr ""
+
+#: libexif/exif-tag.c:274
+msgid ""
+"For each strip, the byte offset of that strip. It is recommended that this "
+"be selected so the number of strip bytes does not exceed 64 Kbytes. With "
+"JPEG compressed data this designation is not needed and is omitted. See also "
+"<RowsPerStrip> and <StripByteCounts>."
+msgstr ""
+
+#: libexif/exif-tag.c:280
+msgid "Orientation"
+msgstr "Orientation"
+
+#: libexif/exif-tag.c:281
+#, fuzzy
+msgid "The image orientation viewed in terms of rows and columns."
+msgstr "L'orientation de l'image vue en terme de lignes et colonnes."
+
+#: libexif/exif-tag.c:284
+msgid "Samples per Pixel"
+msgstr "Échantillons par pixel"
+
+#: libexif/exif-tag.c:285
+msgid ""
+"The number of components per pixel. Since this standard applies to RGB and "
+"YCbCr images, the value set for this tag is 3. In JPEG compressed data a "
+"JPEG marker is used instead of this tag."
+msgstr ""
+"Le nombre de composants par pixel. Puisque le standard s'applique aux images "
+"RGB et YCbCr, la valeur de ce marqueur est 3. Dans des données compressées "
+"en JPEG un marqueur JPEG est utilisé à la place de ce marqueur."
+
+#: libexif/exif-tag.c:290
+msgid "Rows per Strip"
+msgstr ""
+
+#: libexif/exif-tag.c:291
+msgid ""
+"The number of rows per strip. This is the number of rows in the image of one "
+"strip when an image is divided into strips. With JPEG compressed data this "
+"designation is not needed and is omitted. See also <StripOffsets> and "
+"<StripByteCounts>."
+msgstr ""
+
+#: libexif/exif-tag.c:297
+msgid "Strip Byte Count"
+msgstr ""
+
+#: libexif/exif-tag.c:298
+msgid ""
+"The total number of bytes in each strip. With JPEG compressed data this "
+"designation is not needed and is omitted."
+msgstr ""
+
+#: libexif/exif-tag.c:301
+#, fuzzy
+msgid "X-Resolution"
+msgstr "x-résolution"
+
+#: libexif/exif-tag.c:302
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageWidth> direction. "
+"When the image resolution is unknown, 72 [dpi] is designated."
+msgstr ""
+"Le nombre de pixels par <ResolutionUnit> dans la direction <ImageWidth>."
+"Lorsque la résolution de l'image est inconnu, 72 [dpi] sont utilisés."
+
+#: libexif/exif-tag.c:306
+#, fuzzy
+msgid "Y-Resolution"
+msgstr "x-résolution"
+
+#: libexif/exif-tag.c:307
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageLength> direction. "
+"The same value as <XResolution> is designated."
+msgstr ""
+"Le nombre de pixels par <ResolutionUnit> dans la direction <ImageLength>.La "
+"même valeur que pour <XResolution> est utilisée."
+
+#: libexif/exif-tag.c:311
+msgid "Planar Configuration"
+msgstr "Configuration du plan"
+
+#: libexif/exif-tag.c:312
+msgid ""
+"Indicates whether pixel components are recorded in a chunky or planar "
+"format. In JPEG compressed files a JPEG marker is used instead of this tag. "
+"If this field does not exist, the TIFF default of 1 (chunky) is assumed."
+msgstr ""
+
+#: libexif/exif-tag.c:317
+msgid "Resolution Unit"
+msgstr "Unité de la résolution"
+
+#: libexif/exif-tag.c:318
+msgid ""
+"The unit for measuring <XResolution> and <YResolution>. The same unit is "
+"used for both <XResolution> and <YResolution>. If the image resolution is "
+"unknown, 2 (inches) is designated."
+msgstr ""
+"L'unité de mesure pour <XResolution> et <YResolution>. La même unité est "
+"utilisée pour <XResolution> et <YResolution>. Si la résolution de l'image "
+"est inconnue, 2 (pouces) sont utilisées."
+
+#: libexif/exif-tag.c:323
+msgid "Transfer Function"
+msgstr "Fonction de transfert"
+
+#: libexif/exif-tag.c:324
+msgid ""
+"A transfer function for the image, described in tabular style. Normally this "
+"tag is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+"Une fonction de transfert pour l'image, décrite en style tableau. "
+"Normalement, ce marqueur n'est pas nécessaire, puisque l'espace des couleurs "
+"est spécifié dans le marqueur d'information sur l'espace des couleurs "
+"(<ColorSpace>)."
+
+#: libexif/exif-tag.c:328
+msgid "Software"
+msgstr "Logiciel"
+
+#: libexif/exif-tag.c:329
+msgid ""
+"This tag records the name and version of the software or firmware of the "
+"camera or image input device used to generate the image. The detailed format "
+"is not specified, but it is recommended that the example shown below be "
+"followed. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Ce marqueur enregistre le nom et la version du logiciel ou du matériel de "
+"l'appareil ou du périphérique d'entrée utilisé pour générer l'image. Le "
+"format détaillé n'est pas spécifié, mais il est recommandé que l'exemple ci-"
+"dessous soit suivi. Lorsque le champ est vide, il est traité comme inconnu."
+
+#: libexif/exif-tag.c:336
+msgid "Date and Time"
+msgstr "Date et heure"
+
+#: libexif/exif-tag.c:337
+msgid ""
+"The date and time of image creation. In this standard (EXIF-2.1) it is the "
+"date and time the file was changed."
+msgstr ""
+"La date et l'heure de création de l'image. Dans ce standard (EXIF-2.1) il "
+"s'agit de la date et de l'heure de modification du fichier."
+
+#: libexif/exif-tag.c:340
+msgid "Artist"
+msgstr "Artiste"
+
+#: libexif/exif-tag.c:341
+msgid ""
+"This tag records the name of the camera owner, photographer or image "
+"creator. The detailed format is not specified, but it is recommended that "
+"the information be written as in the example below for ease of "
+"Interoperability. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Ce marqueur enregistre le nom du propriétaire de l'appareil, du photographe "
+"ou du créateur de l'image. Le format détaillé n'est pas spécifié, mais il "
+"est recommandé que cette information soit écrite comme dans l'exemple ci-"
+"dessous pour faciliter l'interopérabilité. Lorsque le champ est laissé "
+"blanc, il est considéré comme inconnu."
+
+#: libexif/exif-tag.c:347 libexif/pentax/mnote-pentax-tag.c:113
+msgid "White Point"
+msgstr "Point blanc"
+
+#: libexif/exif-tag.c:348
+#, fuzzy
+msgid ""
+"The chromaticity of the white point of the image. Normally this tag is not "
+"necessary, since color space is specified in the color space information tag "
+"(<ColorSpace>)."
+msgstr ""
+"Une fonction de transfert pour l'image, décrite en style tableau. "
+"Normalement, ce marqueur n'est pas nécessaire, puisque l'espace des couleurs "
+"est spécifié dans le marqueur d'information sur l'espace des couleurs "
+"(<ColorSpace>)."
+
+#: libexif/exif-tag.c:353
+msgid "Primary Chromaticities"
+msgstr ""
+
+#: libexif/exif-tag.c:354
+#, fuzzy
+msgid ""
+"The chromaticity of the three primary colors of the image. Normally this tag "
+"is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+"Une fonction de transfert pour l'image, décrite en style tableau. "
+"Normalement, ce marqueur n'est pas nécessaire, puisque l'espace des couleurs "
+"est spécifié dans le marqueur d'information sur l'espace des couleurs "
+"(<ColorSpace>)."
+
+#: libexif/exif-tag.c:359
+msgid "Defined by Adobe Corporation to enable TIFF Trees within a TIFF file."
+msgstr ""
+
+#: libexif/exif-tag.c:362
+msgid "Transfer Range"
+msgstr "Échelle de transfert"
+
+#: libexif/exif-tag.c:366
+msgid "JPEG Interchange Format"
+msgstr "Format d'échange JPEG"
+
+#: libexif/exif-tag.c:367
+msgid ""
+"The offset to the start byte (SOI) of JPEG compressed thumbnail data. This "
+"is not used for primary image JPEG data."
+msgstr ""
+
+#: libexif/exif-tag.c:372
+msgid "JPEG Interchange Format Length"
+msgstr "Longueur du format d'échange JPEG"
+
+#: libexif/exif-tag.c:373
+msgid ""
+"The number of bytes of JPEG compressed thumbnail data. This is not used for "
+"primary image JPEG data. JPEG thumbnails are not divided but are recorded as "
+"a continuous JPEG bitstream from SOI to EOI. Appn and COM markers should not "
+"be recorded. Compressed thumbnails must be recorded in no more than 64 "
+"Kbytes, including all other data to be recorded in APP1."
+msgstr ""
+"Le nombre d'octets de données des vignettes compressées JPEG. Ce n'est pas "
+"utilisé pour les données des images JPEG primaires. Les vignettes JPEG ne "
+"sont pas divisées mais sont enregistrées sous la forme d'un flux continu "
+"JPEG de SOI à EOI. Les marqueurs Appn et COM ne doivent pas être "
+"enregistrés. Les vignettes compressées doivent être enregistrées dans moins "
+"de 64 kilo-octets, incluant toutes les autres données devant être "
+"enregistrées dans APP1."
+
+#: libexif/exif-tag.c:382
+msgid "YCbCr Coefficients"
+msgstr "Coéfficients YCbCr"
+
+#: libexif/exif-tag.c:383
+#, fuzzy
+msgid ""
+"The matrix coefficients for transformation from RGB to YCbCr image data. No "
+"default is given in TIFF; but here the value given in \"Color Space "
+"Guidelines\", is used as the default. The color space is declared in a color "
+"space information tag, with the default being the value that gives the "
+"optimal image characteristics Interoperability this condition."
+msgstr ""
+"La valeur de référence des points noir et blanc. Nul défaut n'est donné en "
+"TIFF, mais les valeurs ci-dessous sont données comme défauts ici. L'espace "
+"des couleurs est déclaré dans le marqueur d'informations de l'espace des "
+"couleurs, avec la valeur par défaut étant celle donnant les caractéristiques "
+"optimales de l'image dans ces conditions."
+
+#: libexif/exif-tag.c:392
+msgid "YCbCr Sub-Sampling"
+msgstr ""
+
+#: libexif/exif-tag.c:393
+msgid ""
+"The sampling ratio of chrominance components in relation to the luminance "
+"component. In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:398
+msgid "YCbCr Positioning"
+msgstr "Positionnement YCbCr"
+
+#: libexif/exif-tag.c:399
+msgid ""
+"The position of chrominance components in relation to the luminance "
+"component. This field is designated only for JPEG compressed data or "
+"uncompressed YCbCr data. The TIFF default is 1 (centered); but when Y:Cb:Cr "
+"= 4:2:2 it is recommended in this standard that 2 (co-sited) be used to "
+"record data, in order to improve the image quality when viewed on TV "
+"systems. When this field does not exist, the reader shall assume the TIFF "
+"default. In the case of Y:Cb:Cr = 4:2:0, the TIFF default (centered) is "
+"recommended. If the reader does not have the capability of supporting both "
+"kinds of <YCbCrPositioning>, it shall follow the TIFF default regardless of "
+"the value in this field. It is preferable that readers be able to support "
+"both centered and co-sited positioning."
+msgstr ""
+
+#: libexif/exif-tag.c:414
+msgid "Reference Black/White"
+msgstr "Référence Noir/Blanc"
+
+#: libexif/exif-tag.c:415
+msgid ""
+"The reference black point value and reference white point value. No defaults "
+"are given in TIFF, but the values below are given as defaults here. The "
+"color space is declared in a color space information tag, with the default "
+"being the value that gives the optimal image characteristics "
+"Interoperability these conditions."
+msgstr ""
+"La valeur de référence des points noir et blanc. Nul défaut n'est donné en "
+"TIFF, mais les valeurs ci-dessous sont données comme défauts ici. L'espace "
+"des couleurs est déclaré dans le marqueur d'informations de l'espace des "
+"couleurs, avec la valeur par défaut étant celle donnant les caractéristiques "
+"optimales de l'image dans ces conditions."
+
+#: libexif/exif-tag.c:423
+msgid "XML Packet"
+msgstr ""
+
+#: libexif/exif-tag.c:423
+msgid "XMP Metadata"
+msgstr ""
+
+#: libexif/exif-tag.c:438 libexif/exif-tag.c:784
+msgid "CFA Pattern"
+msgstr "Motif CFA"
+
+#: libexif/exif-tag.c:439 libexif/exif-tag.c:785
+msgid ""
+"Indicates the color filter array (CFA) geometric pattern of the image sensor "
+"when a one-chip color area sensor is used. It does not apply to all sensing "
+"methods."
+msgstr ""
+
+#: libexif/exif-tag.c:443
+msgid "Battery Level"
+msgstr "Niveau de charge"
+
+#: libexif/exif-tag.c:444
+msgid "Copyright"
+msgstr "Copyright"
+
+#: libexif/exif-tag.c:445
+msgid ""
+"Copyright information. In this standard the tag is used to indicate both the "
+"photographer and editor copyrights. It is the copyright notice of the person "
+"or organization claiming rights to the image. The Interoperability copyright "
+"statement including date and rights should be written in this field; e.g., "
+"\"Copyright, John Smith, 19xx. All rights reserved.\". In this standard the "
+"field records both the photographer and editor copyrights, with each "
+"recorded in a separate part of the statement. When there is a clear "
+"distinction between the photographer and editor copyrights, these are to be "
+"written in the order of photographer followed by editor copyright, separated "
+"by NULL (in this case, since the statement also ends with a NULL, there are "
+"two NULL codes) (see example 1). When only the photographer is given, it is "
+"terminated by one NULL code (see example 2). When only the editor copyright "
+"is given, the photographer copyright part consists of one space followed by "
+"a terminating NULL code, then the editor copyright is given (see example 3). "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:467
+msgid "Exposure time, given in seconds (sec)."
+msgstr "Temps d'exposition, en secondes (sec)."
+
+#: libexif/exif-tag.c:469 libexif/pentax/mnote-pentax-tag.c:79
+#, fuzzy
+msgid "F-Number"
+msgstr "Le nombre F."
+
+#: libexif/exif-tag.c:470
+msgid "The F number."
+msgstr "Le nombre F."
+
+#: libexif/exif-tag.c:475
+msgid "Image Resources Block"
+msgstr ""
+
+#: libexif/exif-tag.c:477
+msgid ""
+"A pointer to the Exif IFD. Interoperability, Exif IFD has the same structure "
+"as that of the IFD specified in TIFF. ordinarily, however, it does not "
+"contain image data as in the case of TIFF."
+msgstr ""
+
+#: libexif/exif-tag.c:485
+#, fuzzy
+msgid "Exposure Program"
+msgstr "Mode d'exposition"
+
+#: libexif/exif-tag.c:486
+msgid ""
+"The class of the program used by the camera to set exposure when the picture "
+"is taken."
+msgstr ""
+"La classe du programme utilisé par l'appareil pour configurer l'exposition "
+"lorsque la photo a été prise."
+
+#: libexif/exif-tag.c:490
+msgid "Spectral Sensitivity"
+msgstr "Sensitivité spectrale"
+
+#: libexif/exif-tag.c:491
+msgid ""
+"Indicates the spectral sensitivity of each channel of the camera used. The "
+"tag value is an ASCII string compatible with the standard developed by the "
+"ASTM Technical Committee."
+msgstr ""
+
+#: libexif/exif-tag.c:496
+msgid "GPS Info IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:497
+msgid ""
+"A pointer to the GPS Info IFD. The Interoperability structure of the GPS "
+"Info IFD, like that of Exif IFD, has no image data."
+msgstr ""
+
+#: libexif/exif-tag.c:503
+msgid "ISO Speed Ratings"
+msgstr ""
+
+#: libexif/exif-tag.c:504
+msgid ""
+"Indicates the ISO Speed and ISO Latitude of the camera or input device as "
+"specified in ISO 12232."
+msgstr ""
+
+#: libexif/exif-tag.c:507
+msgid "Opto-Electronic Conversion Function"
+msgstr ""
+
+#: libexif/exif-tag.c:508
+msgid ""
+"Indicates the Opto-Electronic Conversion Function (OECF) specified in ISO "
+"14524. <OECF> is the relationship between the camera optical input and the "
+"image values."
+msgstr ""
+
+#: libexif/exif-tag.c:513
+msgid "Time Zone Offset"
+msgstr ""
+
+#: libexif/exif-tag.c:514
+msgid "Encodes time zone of camera clock relative to GMT."
+msgstr ""
+
+#: libexif/exif-tag.c:515
+msgid "Exif Version"
+msgstr "Version d'exif"
+
+#: libexif/exif-tag.c:516
+msgid ""
+"The version of this standard supported. Nonexistence of this field is taken "
+"to mean nonconformance to the standard."
+msgstr ""
+
+#: libexif/exif-tag.c:520
+#, fuzzy
+msgid "Date and Time (Original)"
+msgstr "Date et heure (originel)"
+
+#: libexif/exif-tag.c:521
+msgid ""
+"The date and time when the original image data was generated. For a digital "
+"still camera the date and time the picture was taken are recorded."
+msgstr ""
+
+#: libexif/exif-tag.c:526
+#, fuzzy
+msgid "Date and Time (Digitized)"
+msgstr "Date et heure (numérique)"
+
+#: libexif/exif-tag.c:527
+#, fuzzy
+msgid "The date and time when the image was stored as digital data."
+msgstr "La date et l'heure où l'image a été sauvée sous forme digitale."
+
+#: libexif/exif-tag.c:530
+#, fuzzy
+msgid "Components Configuration"
+msgstr "Configuration du plan"
+
+#: libexif/exif-tag.c:531
+msgid ""
+"Information specific to compressed data. The channels of each component are "
+"arranged in order from the 1st component to the 4th. For uncompressed data "
+"the data arrangement is given in the <PhotometricInterpretation> tag. "
+"However, since <PhotometricInterpretation> can only express the order of Y, "
+"Cb and Cr, this tag is provided for cases when compressed data uses "
+"components other than Y, Cb, and Cr and to enable support of other sequences."
+msgstr ""
+
+#: libexif/exif-tag.c:541
+msgid "Compressed Bits per Pixel"
+msgstr "Bits compressés par pixel"
+
+#: libexif/exif-tag.c:542
+msgid ""
+"Information specific to compressed data. The compression mode used for a "
+"compressed image is indicated in unit bits per pixel."
+msgstr ""
+
+#: libexif/exif-tag.c:546 libexif/olympus/mnote-olympus-tag.c:123
+#, fuzzy
+msgid "Shutter Speed"
+msgstr "Vitesse d'obturation"
+
+#: libexif/exif-tag.c:547
+msgid ""
+"Shutter speed. The unit is the APEX (Additive System of Photographic "
+"Exposure) setting."
+msgstr ""
+
+#: libexif/exif-tag.c:551
+msgid "The lens aperture. The unit is the APEX value."
+msgstr "Ouverture de la lentille. L'unité est la valeur APEX."
+
+#: libexif/exif-tag.c:553
+msgid "Brightness"
+msgstr "Luminosité"
+
+#: libexif/exif-tag.c:554
+msgid ""
+"The value of brightness. The unit is the APEX value. Ordinarily it is given "
+"in the range of -99.99 to 99.99."
+msgstr ""
+
+#: libexif/exif-tag.c:558
+msgid "Exposure Bias"
+msgstr ""
+
+#: libexif/exif-tag.c:559
+msgid ""
+"The exposure bias. The units is the APEX value. Ordinarily it is given in "
+"the range of -99.99 to 99.99."
+msgstr ""
+
+#: libexif/exif-tag.c:562
+#, fuzzy
+msgid "Maximum Aperture Value"
+msgstr "Ouverture"
+
+#: libexif/exif-tag.c:563
+msgid ""
+"The smallest F number of the lens. The unit is the APEX value. Ordinarily it "
+"is given in the range of 00.00 to 99.99, but it is not limited to this range."
+msgstr ""
+
+#: libexif/exif-tag.c:568
+msgid "Subject Distance"
+msgstr "Distance au sujet"
+
+#: libexif/exif-tag.c:569
+msgid "The distance to the subject, given in meters."
+msgstr "La distance au sujet, donnée en mètres."
+
+#: libexif/exif-tag.c:572
+msgid "The metering mode."
+msgstr "Le mode de mesure."
+
+#: libexif/exif-tag.c:574
+msgid "Light Source"
+msgstr "Source lumineuse"
+
+#: libexif/exif-tag.c:575
+msgid "The kind of light source."
+msgstr "Le type de source lumineuse."
+
+#: libexif/exif-tag.c:578
+msgid ""
+"This tag is recorded when an image is taken using a strobe light (flash)."
+msgstr ""
+
+#: libexif/exif-tag.c:582
+msgid ""
+"The actual focal length of the lens, in mm. Conversion is not made to the "
+"focal length of a 35 mm film camera."
+msgstr ""
+
+#: libexif/exif-tag.c:585
+msgid "Subject Area"
+msgstr "Aire du sujet"
+
+#: libexif/exif-tag.c:586
+msgid ""
+"This tag indicates the location and area of the main subject in the overall "
+"scene."
+msgstr ""
+"Ce marqueur indique l'emplacement et l'aire du sujet principal dans la scène "
+"générale."
+
+#: libexif/exif-tag.c:590
+msgid "TIFF/EP Standard ID"
+msgstr ""
+
+#: libexif/exif-tag.c:591
+msgid "Maker Note"
+msgstr "Note du créateur"
+
+#: libexif/exif-tag.c:592
+msgid ""
+"A tag for manufacturers of Exif writers to record any desired information. "
+"The contents are up to the manufacturer."
+msgstr ""
+"Un marqueur pour les constructeurs des logiciels d'écriture Exif pour noter "
+"une information désirée. Le contenu dépend du constructeur."
+
+#: libexif/exif-tag.c:595
+msgid "User Comment"
+msgstr "Commentaire de l'utilisateur"
+
+#: libexif/exif-tag.c:596
+msgid ""
+"A tag for Exif users to write keywords or comments on the image besides "
+"those in <ImageDescription>, and without the character code limitations of "
+"the <ImageDescription> tag. The character code used in the <UserComment> tag "
+"is identified based on an ID code in a fixed 8-byte area at the start of the "
+"tag data area. The unused portion of the area is padded with NULL (\"00.h"
+"\"). ID codes are assigned by means of registration. The designation method "
+"and references for each character code are defined in the specification. The "
+"value of CountN is determined based on the 8 bytes in the character code "
+"area and the number of bytes in the user comment part. Since the TYPE is not "
+"ASCII, NULL termination is not necessary. The ID code for the <UserComment> "
+"area may be a Defined code such as JIS or ASCII, or may be Undefined. The "
+"Undefined name is UndefinedText, and the ID code is filled with 8 bytes of "
+"all \"NULL\" (\"00.H\"). An Exif reader that reads the <UserComment> tag "
+"must have a function for determining the ID code. This function is not "
+"required in Exif readers that do not use the <UserComment> tag. When a "
+"<UserComment> area is set aside, it is recommended that the ID code be ASCII "
+"and that the following user comment part be filled with blank characters [20."
+"H]."
+msgstr ""
+
+#: libexif/exif-tag.c:619
+msgid "Sub-second Time"
+msgstr ""
+
+#: libexif/exif-tag.c:620
+msgid "A tag used to record fractions of seconds for the <DateTime> tag."
+msgstr ""
+"Marqueur utilisé pour enregistrer des fractions de secondes pour le marqueur "
+"<DateTime>."
+
+#: libexif/exif-tag.c:624
+#, fuzzy
+msgid "Sub-second Time (Original)"
+msgstr "Date et heure (originel)"
+
+#: libexif/exif-tag.c:625
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeOriginal> tag."
+msgstr ""
+"Marqueur utilisé pour enregistrer des fractions de secondes pour le marqueur "
+"<DateTimeOriginal>."
+
+#: libexif/exif-tag.c:629
+#, fuzzy
+msgid "Sub-second Time (Digitized)"
+msgstr "Date et heure (numérique)"
+
+#: libexif/exif-tag.c:630
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeDigitized> tag."
+msgstr ""
+"Marqueur utilisé pour enregistrer des fractions de secondes pour le marqueur "
+"<DateTimeDigitized>."
+
+#: libexif/exif-tag.c:634
+msgid "XP Title"
+msgstr ""
+
+#: libexif/exif-tag.c:635
+msgid "A character string giving the title of the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:639
+#, fuzzy
+msgid "XP Comment"
+msgstr "Commentaire de l'utilisateur"
+
+#: libexif/exif-tag.c:640
+msgid ""
+"A character string containing a comment about the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:644
+msgid "XP Author"
+msgstr ""
+
+#: libexif/exif-tag.c:645
+msgid ""
+"A character string containing the name of the image creator, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:649
+msgid "XP Keywords"
+msgstr ""
+
+#: libexif/exif-tag.c:650
+msgid ""
+"A character string containing key words describing the image, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:654
+#, fuzzy
+msgid "XP Subject"
+msgstr "Aire du sujet"
+
+#: libexif/exif-tag.c:655
+msgid "A character string giving the image subject, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:659
+msgid "The FlashPix format version supported by a FPXR file."
+msgstr ""
+
+#: libexif/exif-tag.c:661 libexif/pentax/mnote-pentax-tag.c:102
+msgid "Color Space"
+msgstr "Espace des couleurs"
+
+#: libexif/exif-tag.c:662
+msgid ""
+"The color space information tag is always recorded as the color space "
+"specifier. Normally sRGB (=1) is used to define the color space based on the "
+"PC monitor conditions and environment. If a color space other than sRGB is "
+"used, Uncalibrated (=FFFF.H) is set. Image data recorded as Uncalibrated can "
+"be treated as sRGB when it is converted to FlashPix."
+msgstr ""
+
+#: libexif/exif-tag.c:670
+msgid "Pixel X Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:671
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid width of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file."
+msgstr ""
+
+#: libexif/exif-tag.c:677
+msgid "Pixel Y Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:678
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid height of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file. Since data padding is unnecessary in the "
+"vertical direction, the number of lines recorded in this valid image height "
+"tag will in fact be the same as that recorded in the SOF."
+msgstr ""
+
+#: libexif/exif-tag.c:688
+msgid "Related Sound File"
+msgstr ""
+
+#: libexif/exif-tag.c:689
+msgid ""
+"This tag is used to record the name of an audio file related to the image "
+"data. The only relational information recorded here is the Exif audio file "
+"name and extension (an ASCII string consisting of 8 characters + '.' + 3 "
+"characters). The path is not recorded. Stipulations on audio and file naming "
+"conventions are defined in the specification. When using this tag, audio "
+"files must be recorded in conformance to the Exif audio format. Writers are "
+"also allowed to store the data such as Audio within APP2 as FlashPix "
+"extension stream data. The mapping of Exif image files and audio files is "
+"done in any of three ways, [1], [2] and [3]. If multiple files are mapped to "
+"one file as in [2] or [3], the above format is used to record just one audio "
+"file name. If there are multiple audio files, the first recorded file is "
+"given. In the case of [3], for example, for the Exif image file \"DSC00001."
+"JPG\" only  \"SND00001.WAV\" is given as the related Exif audio file. When "
+"there are three Exif audio files \"SND00001.WAV\", \"SND00002.WAV\" and "
+"\"SND00003.WAV\", the Exif image file name for each of them, \"DSC00001.JPG"
+"\", is indicated. By combining multiple relational information, a variety of "
+"playback possibilities can be supported. The method of using relational "
+"information is left to the implementation on the playback side. Since this "
+"information is an ASCII character string, it is terminated by NULL. When "
+"this tag is used to map audio files, the relation of the audio file to image "
+"data must also be indicated on the audio file end."
+msgstr ""
+
+#: libexif/exif-tag.c:719
+msgid "Interoperability IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:720
+msgid ""
+"Interoperability IFD is composed of tags which stores the information to "
+"ensure the Interoperability and pointed by the following tag located in Exif "
+"IFD. The Interoperability structure of Interoperability IFD is the same as "
+"TIFF defined IFD structure but does not contain the image data "
+"characteristically compared with normal TIFF IFD."
+msgstr ""
+
+#: libexif/exif-tag.c:729
+msgid "Flash Energy"
+msgstr ""
+
+#: libexif/exif-tag.c:730
+msgid ""
+"Indicates the strobe energy at the time the image is captured, as measured "
+"in Beam Candle Power Seconds (BCPS)."
+msgstr ""
+
+#: libexif/exif-tag.c:734
+msgid "Spatial Frequency Response"
+msgstr ""
+
+#: libexif/exif-tag.c:735
+msgid ""
+"This tag records the camera or input device spatial frequency table and SFR "
+"values in the direction of image width, image height, and diagonal "
+"direction, as specified in ISO 12233."
+msgstr ""
+
+#: libexif/exif-tag.c:741
+#, fuzzy
+msgid "Focal Plane X-Resolution"
+msgstr "x-Résolution du plan focal"
+
+#: libexif/exif-tag.c:742
+msgid ""
+"Indicates the number of pixels in the image width (X) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+"Indique le nombre de pixels de largeur (X) de l'image par "
+"<FocalPlaneResolutionUnit> sur le plan focal de l'appareil."
+
+#: libexif/exif-tag.c:746
+#, fuzzy
+msgid "Focal Plane Y-Resolution"
+msgstr "x-Résolution du plan focal"
+
+#: libexif/exif-tag.c:747
+msgid ""
+"Indicates the number of pixels in the image height (V) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+"Indique le nombre de pixels de hauteur (Y) de l'image par "
+"<FocalPlaneResolutionUnit> sur le plan focal de l'appareil."
+
+#: libexif/exif-tag.c:751
+msgid "Focal Plane Resolution Unit"
+msgstr "Unité de résolution du plan focal"
+
+#: libexif/exif-tag.c:752
+msgid ""
+"Indicates the unit for measuring <FocalPlaneXResolution> and "
+"<FocalPlaneYResolution>. This value is the same as the <ResolutionUnit>."
+msgstr ""
+"Indique l'unité de mesure de <FocalPlaneXResolution> et de "
+"<FocalPlaneYResolution>. Cette valeur est la même que <ResolutionUnit>."
+
+#: libexif/exif-tag.c:757
+msgid "Subject Location"
+msgstr "Emplacement du sujet"
+
+#: libexif/exif-tag.c:758
+msgid ""
+"Indicates the location of the main subject in the scene. The value of this "
+"tag represents the pixel at the center of the main subject relative to the "
+"left edge, prior to rotation processing as per the <Rotation> tag. The first "
+"value indicates the X column number and the second indicates the Y row "
+"number."
+msgstr ""
+
+#: libexif/exif-tag.c:765
+#, fuzzy
+msgid "Exposure Index"
+msgstr "Index d'exposition"
+
+#: libexif/exif-tag.c:766
+msgid ""
+"Indicates the exposure index selected on the camera or input device at the "
+"time the image is captured."
+msgstr ""
+
+#: libexif/exif-tag.c:769
+msgid "Sensing Method"
+msgstr ""
+
+#: libexif/exif-tag.c:770
+msgid "Indicates the image sensor type on the camera or input device."
+msgstr ""
+
+#: libexif/exif-tag.c:773 libexif/fuji/mnote-fuji-tag.c:64
+msgid "File Source"
+msgstr "Source du fichier"
+
+#: libexif/exif-tag.c:774
+#, fuzzy
+msgid ""
+"Indicates the image source. If a DSC recorded the image, the tag value of "
+"this tag always be set to 3, indicating that the image was recorded on a DSC."
+msgstr ""
+"Indique la source de l'image. Si un DSC a enregistré l'image, la valeur de "
+"ce marqueur doit toujours être de 3, indiquant que l'image a été directement "
+"photographiée."
+
+#: libexif/exif-tag.c:778
+msgid "Scene Type"
+msgstr "Type de scène"
+
+#: libexif/exif-tag.c:779
+msgid ""
+"Indicates the type of scene. If a DSC recorded the image, this tag value "
+"must always be set to 1, indicating that the image was directly photographed."
+msgstr ""
+"Indique le type de scène. Si un DSC a enregistré l'image, la valeur de ce "
+"marqueur doit toujours être de 1, indiquant que l'image a été directement "
+"photographiée."
+
+#: libexif/exif-tag.c:789
+msgid "Custom Rendered"
+msgstr "Rendu personnalisé"
+
+#: libexif/exif-tag.c:790
+msgid ""
+"This tag indicates the use of special processing on image data, such as "
+"rendering geared to output. When special processing is performed, the reader "
+"is expected to disable or minimize any further processing."
+msgstr ""
+
+#: libexif/exif-tag.c:796
+msgid ""
+"This tag indicates the exposure mode set when the image was shot. In auto-"
+"bracketing mode, the camera shoots a series of frames of the same scene at "
+"different exposure settings."
+msgstr ""
+
+#: libexif/exif-tag.c:801
+msgid "This tag indicates the white balance mode set when the image was shot."
+msgstr ""
+"Ce marqueur indique le mode de balance des blancs positionné lorsque l'image "
+"a été enregistrée."
+
+#: libexif/exif-tag.c:805
+msgid "Digital Zoom Ratio"
+msgstr "Valeur du zoom numérique"
+
+#: libexif/exif-tag.c:806
+msgid ""
+"This tag indicates the digital zoom ratio when the image was shot. If the "
+"numerator of the recorded value is 0, this indicates that digital zoom was "
+"not used."
+msgstr ""
+"Ce marqueur indique la valeur du zoom numérique lorsque l'image a été prise."
+"Si le numérateur de la valeur enregistrée est 0, celà signifie que le zoom "
+"numérique n'a pas été utilisé."
+
+#: libexif/exif-tag.c:811
+#, fuzzy
+msgid "Focal Length in 35mm Film"
+msgstr "Longueur focale dans un film de 35mm"
+
+#: libexif/exif-tag.c:812
+msgid ""
+"This tag indicates the equivalent focal length assuming a 35mm film camera, "
+"in mm. A value of 0 means the focal length is unknown. Note that this tag "
+"differs from the FocalLength tag."
+msgstr ""
+"Ce marqueur indique la longueur focale équivalente en assumant un appareil "
+"avec un film de 35mm, en mm. Une valeur de 0 indique que la longueur focale "
+"est inconnue. Notez que ce marqueur est différent du marqueur FocalLength."
+
+#: libexif/exif-tag.c:818
+msgid "Scene Capture Type"
+msgstr "Type de capture de la scène"
+
+#: libexif/exif-tag.c:819
+msgid ""
+"This tag indicates the type of scene that was shot. It can also be used to "
+"record the mode in which the image was shot. Note that this differs from the "
+"scene type <SceneType> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:824
+msgid "Gain Control"
+msgstr "Contrôle du gain"
+
+#: libexif/exif-tag.c:825
+msgid "This tag indicates the degree of overall image gain adjustment."
+msgstr "Ce marqueur indique le degré général d'ajustement du gain de l'image."
+
+#: libexif/exif-tag.c:829
+msgid ""
+"This tag indicates the direction of contrast processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:833
+msgid ""
+"This tag indicates the direction of saturation processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:837
+msgid ""
+"This tag indicates the direction of sharpness processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:841
+msgid "Device Setting Description"
+msgstr "Description des paramètres du périphérique"
+
+#: libexif/exif-tag.c:842
+msgid ""
+"This tag indicates information on the picture-taking conditions of a "
+"particular camera model. The tag is used only to indicate the picture-taking "
+"conditions in the reader."
+msgstr ""
+"Ce marqueur indique les informations sur les conditions lors de la prise de "
+"vue pour un modèle particulier d'appareil. Ce marqueur n'est utilisé que "
+"pour indiquer les paramètres de prise de vue au lecteur."
+
+#: libexif/exif-tag.c:848
+msgid "Subject Distance Range"
+msgstr "Échelle de distance au sujet"
+
+#: libexif/exif-tag.c:849
+msgid "This tag indicates the distance to the subject."
+msgstr "Ce marqueur indique la distance au sujet."
+
+#: libexif/exif-tag.c:851
+msgid "Image Unique ID"
+msgstr "ID unique de l'image"
+
+#: libexif/exif-tag.c:852
+msgid ""
+"This tag indicates an identifier assigned uniquely to each image. It is "
+"recorded as an ASCII string equivalent to hexadecimal notation and 128-bit "
+"fixed length."
+msgstr ""
+"Ce marqueur indique un identificateur unique assigné à chaque image. Il est "
+"enregistré sous la forme d'une chaîne ASCII équivalente à la notation "
+"hexadécimale et d'une longueur fixe de 128 bits."
+
+#: libexif/exif-tag.c:857
+msgid "Gamma"
+msgstr ""
+
+#: libexif/exif-tag.c:858
+msgid "Indicates the value of coefficient gamma."
+msgstr ""
+
+#: libexif/exif-tag.c:860
+msgid "PRINT Image Matching"
+msgstr ""
+
+#: libexif/exif-tag.c:861
+msgid "Related to Epson's PRINT Image Matching technology"
+msgstr ""
+
+#: libexif/exif-tag.c:863
+msgid "Padding"
+msgstr ""
+
+#: libexif/exif-tag.c:864
+msgid ""
+"This tag reserves space that can be reclaimed later when additional metadata "
+"are added. New metadata can be written in place by replacing this tag with a "
+"smaller data element and using the reclaimed space to store the new or "
+"expanded metadata tags."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:62
+#, fuzzy
+msgid "Softest"
+msgstr "Doux"
+
+#: libexif/fuji/mnote-fuji-entry.c:66
+#, fuzzy
+msgid "Hardest"
+msgstr "Dur"
+
+#: libexif/fuji/mnote-fuji-entry.c:67 libexif/fuji/mnote-fuji-entry.c:96
+msgid "Medium soft"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:68 libexif/fuji/mnote-fuji-entry.c:94
+msgid "Medium hard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:69 libexif/fuji/mnote-fuji-entry.c:90
+#: libexif/fuji/mnote-fuji-entry.c:98 libexif/fuji/mnote-fuji-entry.c:182
+msgid "Film simulation mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:79
+msgid "Incandescent"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:85
+msgid "Medium high"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:87
+msgid "Medium low"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:88 libexif/fuji/mnote-fuji-entry.c:97
+msgid "Original"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:124 libexif/pentax/mnote-pentax-entry.c:164
+#: libexif/pentax/mnote-pentax-entry.c:299
+#, fuzzy
+msgid "Program AE"
+msgstr "Programme normal"
+
+#: libexif/fuji/mnote-fuji-entry.c:125
+#, fuzzy
+msgid "Natural photo"
+msgstr "Saturation"
+
+#: libexif/fuji/mnote-fuji-entry.c:126
+#, fuzzy
+msgid "Vibration reduction"
+msgstr "Flash déclenché, mode anti-yeux rouges."
+
+#: libexif/fuji/mnote-fuji-entry.c:127
+msgid "Sunset"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:128 libexif/pentax/mnote-pentax-entry.c:181
+msgid "Museum"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:129
+#, fuzzy
+msgid "Party"
+msgstr "Partiel"
+
+#: libexif/fuji/mnote-fuji-entry.c:130
+msgid "Flower"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:131 libexif/pentax/mnote-pentax-entry.c:176
+msgid "Text"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:132
+#, fuzzy
+msgid "NP & flash"
+msgstr "Flash"
+
+#: libexif/fuji/mnote-fuji-entry.c:137
+#, fuzzy
+msgid "Aperture priority AE"
+msgstr "Priorité ouverture"
+
+#: libexif/fuji/mnote-fuji-entry.c:138
+#, fuzzy
+msgid "Shutter priority AE"
+msgstr "Priorité obturation"
+
+#: libexif/fuji/mnote-fuji-entry.c:146
+#, fuzzy
+msgid "F-Standard"
+msgstr "Standard"
+
+#: libexif/fuji/mnote-fuji-entry.c:147
+msgid "F-Chrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:148
+msgid "F-B&W"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:151
+msgid "No blur"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:152
+msgid "Blur warning"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:155
+#, fuzzy
+msgid "Focus good"
+msgstr "Mode d'exposition"
+
+#: libexif/fuji/mnote-fuji-entry.c:156
+msgid "Out of focus"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:159
+msgid "AE good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:160
+msgid "Over exposed"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:164
+msgid "Wide"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:167
+#, fuzzy
+msgid "F0/Standard"
+msgstr "Standard"
+
+#: libexif/fuji/mnote-fuji-entry.c:168
+#, fuzzy
+msgid "F1/Studio portrait"
+msgstr "portrait"
+
+#: libexif/fuji/mnote-fuji-entry.c:169
+msgid "F1a/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:170
+msgid "F1b/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:171
+msgid "F1c/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:172
+msgid "F2/Fujichrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:173
+msgid "F3/Studio portrait Ex"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:174
+msgid "F4/Velvia"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:177
+msgid "Auto (100-400%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:179
+#, fuzzy
+msgid "Standard (100%)"
+msgstr "Standard"
+
+#: libexif/fuji/mnote-fuji-entry.c:180
+msgid "Wide1 (230%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:181
+msgid "Wide2 (400%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:263
+#, c-format
+msgid "%2.2f mm"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:298 libexif/pentax/mnote-pentax-entry.c:399
+#: libexif/pentax/mnote-pentax-entry.c:451
+#, c-format
+msgid "%i bytes unknown data"
+msgstr "%i de données inconnues"
+
+#: libexif/fuji/mnote-fuji-tag.c:36
+#, fuzzy
+msgid "Maker Note Version"
+msgstr "Note du créateur"
+
+#: libexif/fuji/mnote-fuji-tag.c:37
+msgid "This number is unique and based on the date of manufacture."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:41
+#, fuzzy
+msgid "Chromaticity Saturation"
+msgstr "Saturation"
+
+#: libexif/fuji/mnote-fuji-tag.c:44
+msgid "Flash Firing Strength Compensation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:46
+#, fuzzy
+msgid "Focusing Mode"
+msgstr "Mode d'exposition"
+
+#: libexif/fuji/mnote-fuji-tag.c:47
+#, fuzzy
+msgid "Focus Point"
+msgstr "Mode d'exposition"
+
+#: libexif/fuji/mnote-fuji-tag.c:48
+msgid "Slow Synchro Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:49 libexif/pentax/mnote-pentax-tag.c:72
+#, fuzzy
+msgid "Picture Mode"
+msgstr "Mode d'exposition"
+
+#: libexif/fuji/mnote-fuji-tag.c:50
+msgid "Continuous Taking"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:51
+msgid "Continuous Sequence Number"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:52
+msgid "FinePix Color"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:53
+msgid "Blur Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:54
+msgid "Auto Focus Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:55
+#, fuzzy
+msgid "Auto Exposure Check"
+msgstr "Exposition automatique"
+
+#: libexif/fuji/mnote-fuji-tag.c:56
+msgid "Dynamic Range"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:57
+msgid "Film Simulation Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:58
+msgid "Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:59
+msgid "Development Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:60
+#, fuzzy
+msgid "Minimum Focal Length"
+msgstr "Longueur focale"
+
+#: libexif/fuji/mnote-fuji-tag.c:61
+#, fuzzy
+msgid "Maximum Focal Length"
+msgstr "Longueur focale"
+
+#: libexif/fuji/mnote-fuji-tag.c:62
+msgid "Maximum Aperture at Minimum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:63
+msgid "Maximum Aperture at Maximum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:65
+#, fuzzy
+msgid "Order Number"
+msgstr "Le nombre F."
+
+#: libexif/fuji/mnote-fuji-tag.c:66 libexif/pentax/mnote-pentax-tag.c:98
+#, fuzzy
+msgid "Frame Number"
+msgstr "Le nombre F."
+
+#: libexif/olympus/mnote-olympus-entry.c:49
+#, fuzzy, c-format
+msgid "Invalid format '%s', expected '%s' or '%s'."
+msgstr "Format invalide '%s', attendait '%s'."
+
+#: libexif/olympus/mnote-olympus-entry.c:89
+msgid "AF non D lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:91
+msgid "AF-D or AF-S lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:92
+msgid "AF-D G lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:93
+msgid "AF-D VR lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:94
+msgid "AF-D G VR lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:98
+msgid "Flash unit unknown"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:99
+msgid "Flash is external"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:100
+#, fuzzy
+msgid "Flash is on camera"
+msgstr "Flash"
+
+#: libexif/olympus/mnote-olympus-entry.c:103
+msgid "VGA basic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:104
+#, fuzzy
+msgid "VGA normal"
+msgstr "Normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:105
+msgid "VGA fine"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:106
+msgid "SXGA basic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:107
+#, fuzzy
+msgid "SXGA normal"
+msgstr "Normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:108
+msgid "SXGA fine"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:109
+msgid "2 Mpixel basic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:110
+msgid "2 Mpixel normal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:111
+msgid "2 Mpixel fine"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:114
+#, fuzzy
+msgid "Color"
+msgstr "Espace des couleurs"
+
+#: libexif/olympus/mnote-olympus-entry.c:119
+#, fuzzy
+msgid "Bright+"
+msgstr "Copyright"
+
+#: libexif/olympus/mnote-olympus-entry.c:120
+#, fuzzy
+msgid "Bright-"
+msgstr "Copyright"
+
+#: libexif/olympus/mnote-olympus-entry.c:121
+#, fuzzy
+msgid "Contrast+"
+msgstr "Contraste"
+
+#: libexif/olympus/mnote-olympus-entry.c:122
+#, fuzzy
+msgid "Contrast-"
+msgstr "Contraste"
+
+#: libexif/olympus/mnote-olympus-entry.c:125
+msgid "ISO 80"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:126
+msgid "ISO 160"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:127
+msgid "ISO 320"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:128
+#: libexif/olympus/mnote-olympus-entry.c:246
+msgid "ISO 100"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:132
+msgid "Preset"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:134
+msgid "Incandescence"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:135
+#, fuzzy
+msgid "Fluorescence"
+msgstr "Fluorescent"
+
+#: libexif/olympus/mnote-olympus-entry.c:137
+msgid "SpeedLight"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:140
+#, fuzzy
+msgid "No fisheye"
+msgstr "Flash"
+
+#: libexif/olympus/mnote-olympus-entry.c:141
+#, fuzzy
+msgid "Fisheye on"
+msgstr "Flash"
+
+#: libexif/olympus/mnote-olympus-entry.c:144
+#, fuzzy
+msgid "Normal, SQ"
+msgstr "Normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:145
+#, fuzzy
+msgid "Normal, HQ"
+msgstr "Normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:146
+#, fuzzy
+msgid "Normal, SHQ"
+msgstr "Normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:147
+#, fuzzy
+msgid "Normal, RAW"
+msgstr "Normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:148
+#, fuzzy
+msgid "Normal, SQ1"
+msgstr "Normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:149
+#, fuzzy
+msgid "Normal, SQ2"
+msgstr "Normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:150
+#, fuzzy
+msgid "Normal, super high"
+msgstr "Programme normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:151
+msgid "Normal, standard"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:152
+#, fuzzy
+msgid "Fine, SQ"
+msgstr "pouces"
+
+#: libexif/olympus/mnote-olympus-entry.c:153
+#, fuzzy
+msgid "Fine, HQ"
+msgstr "pouces"
+
+#: libexif/olympus/mnote-olympus-entry.c:154
+#, fuzzy
+msgid "Fine, SHQ"
+msgstr "pouces"
+
+#: libexif/olympus/mnote-olympus-entry.c:155
+#, fuzzy
+msgid "Fine, RAW"
+msgstr "pouces"
+
+#: libexif/olympus/mnote-olympus-entry.c:156
+#, fuzzy
+msgid "Fine, SQ1"
+msgstr "pouces"
+
+#: libexif/olympus/mnote-olympus-entry.c:157
+#, fuzzy
+msgid "Fine, SQ2"
+msgstr "pouces"
+
+#: libexif/olympus/mnote-olympus-entry.c:158
+msgid "Fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:159
+msgid "Super fine, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:160
+msgid "Super fine, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:161
+msgid "Super fine, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:162
+msgid "Super fine, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:163
+msgid "Super fine, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:164
+msgid "Super fine, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:165
+msgid "Super fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:166
+msgid "Super fine, high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:169
+#: libexif/olympus/mnote-olympus-entry.c:174
+#: libexif/olympus/mnote-olympus-entry.c:208
+#: libexif/olympus/mnote-olympus-entry.c:217
+#: libexif/olympus/mnote-olympus-entry.c:240
+msgid "No"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:180
+msgid "On (Preset)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:185
+msgid "Fill"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:192
+#, fuzzy
+msgid "Internal + external"
+msgstr "Flash"
+
+#: libexif/olympus/mnote-olympus-entry.c:221
+#, fuzzy
+msgid "Interlaced"
+msgstr "Intel"
+
+#: libexif/olympus/mnote-olympus-entry.c:222
+msgid "Progressive"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:228
+#: libexif/pentax/mnote-pentax-entry.c:85
+#: libexif/pentax/mnote-pentax-entry.c:139
+msgid "Best"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:229
+#, fuzzy
+msgid "Adjust exposure"
+msgstr "Exposition automatique"
+
+#: libexif/olympus/mnote-olympus-entry.c:232
+#, fuzzy
+msgid "Spot focus"
+msgstr "Exposition manuel"
+
+#: libexif/olympus/mnote-olympus-entry.c:233
+#, fuzzy
+msgid "Normal focus"
+msgstr "Processus normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:236
+msgid "Record while down"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:237
+msgid "Press start, press stop"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:245
+msgid "ISO 50"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:247
+msgid "ISO 200"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:248
+msgid "ISO 400"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:252
+#: libexif/pentax/mnote-pentax-entry.c:168
+#, fuzzy
+msgid "Sport"
+msgstr "Spot"
+
+#: libexif/olympus/mnote-olympus-entry.c:253
+msgid "TV"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:255
+msgid "User 1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:256
+msgid "User 2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:257
+msgid "Lamp"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:260
+msgid "5 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:261
+msgid "10 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:262
+msgid "15 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:263
+msgid "20 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:375
+#, c-format
+msgid "Red Correction %f, blue Correction %f"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:383
+#, c-format
+msgid "%2.2f meters"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:385
+#, fuzzy
+msgid "No manual focus selection"
+msgstr "Balance des blancs manuelle"
+
+#: libexif/olympus/mnote-olympus-entry.c:411
+#, fuzzy
+msgid "AF position: center"
+msgstr "Positionnement YCbCr"
+
+#: libexif/olympus/mnote-olympus-entry.c:412
+#, fuzzy
+msgid "AF position: top"
+msgstr "Positionnement YCbCr"
+
+#: libexif/olympus/mnote-olympus-entry.c:413
+#, fuzzy
+msgid "AF position: bottom"
+msgstr "Positionnement YCbCr"
+
+#: libexif/olympus/mnote-olympus-entry.c:414
+#, fuzzy
+msgid "AF position: left"
+msgstr "Positionnement YCbCr"
+
+#: libexif/olympus/mnote-olympus-entry.c:415
+#, fuzzy
+msgid "AF position: right"
+msgstr "Positionnement YCbCr"
+
+#: libexif/olympus/mnote-olympus-entry.c:416
+#, fuzzy
+msgid "AF position: upper-left"
+msgstr "Positionnement YCbCr"
+
+#: libexif/olympus/mnote-olympus-entry.c:417
+#, fuzzy
+msgid "AF position: upper-right"
+msgstr "Positionnement YCbCr"
+
+#: libexif/olympus/mnote-olympus-entry.c:418
+#, fuzzy
+msgid "AF position: lower-left"
+msgstr "Positionnement YCbCr"
+
+#: libexif/olympus/mnote-olympus-entry.c:419
+#, fuzzy
+msgid "AF position: lower-right"
+msgstr "Positionnement YCbCr"
+
+#: libexif/olympus/mnote-olympus-entry.c:420
+#, fuzzy
+msgid "AF position: far left"
+msgstr "Positionnement YCbCr"
+
+#: libexif/olympus/mnote-olympus-entry.c:421
+#, fuzzy
+msgid "AF position: far right"
+msgstr "Positionnement YCbCr"
+
+#: libexif/olympus/mnote-olympus-entry.c:422
+#, fuzzy
+msgid "Unknown AF position"
+msgstr "Version d'exif inconnu"
+
+#: libexif/olympus/mnote-olympus-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:503
+#, c-format
+msgid "Internal error (unknown value %hi)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:441
+#: libexif/olympus/mnote-olympus-entry.c:511
+#, c-format
+msgid "Unknown value %hi"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:536
+#: libexif/olympus/mnote-olympus-entry.c:556
+#, fuzzy, c-format
+msgid "Unknown %hu"
+msgstr "Inconnu"
+
+#: libexif/olympus/mnote-olympus-entry.c:553
+#, fuzzy
+msgid "2 sec."
+msgstr " sec."
+
+#: libexif/olympus/mnote-olympus-entry.c:592
+#, fuzzy
+msgid "Fast"
+msgstr "Flash"
+
+#: libexif/olympus/mnote-olympus-entry.c:696
+msgid "Automatic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:726
+#, fuzzy, c-format
+msgid "Manual: %liK"
+msgstr "Manuel"
+
+#: libexif/olympus/mnote-olympus-entry.c:729
+#, fuzzy
+msgid "Manual: unknown"
+msgstr "inconnu"
+
+#: libexif/olympus/mnote-olympus-entry.c:735
+msgid "One-touch"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:791
+#: libexif/olympus/mnote-olympus-entry.c:801
+msgid "Infinite"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:809
+#, c-format
+msgid "%i bytes unknown data: "
+msgstr "%i de données inconnues: "
+
+#: libexif/olympus/mnote-olympus-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:53
+#, fuzzy
+msgid "ISO Setting"
+msgstr "Netteté"
+
+#: libexif/olympus/mnote-olympus-tag.c:39
+#, fuzzy
+msgid "Color Mode (?)"
+msgstr "Espace des couleurs"
+
+#: libexif/olympus/mnote-olympus-tag.c:42
+#, fuzzy
+msgid "Image Sharpening"
+msgstr "Longeur de l'image"
+
+#: libexif/olympus/mnote-olympus-tag.c:44
+#, fuzzy
+msgid "Flash Setting"
+msgstr "Contraste"
+
+#: libexif/olympus/mnote-olympus-tag.c:46
+#, fuzzy
+msgid "White Balance Fine Adjustment"
+msgstr "Balance des blancs"
+
+#: libexif/olympus/mnote-olympus-tag.c:47
+#, fuzzy
+msgid "White Balance RB"
+msgstr "Balance des blancs"
+
+#: libexif/olympus/mnote-olympus-tag.c:49
+#, fuzzy
+msgid "ISO Selection"
+msgstr "Netteté"
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Preview Image IFD"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Offset of the preview image directory (IFD) inside the file."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:51
+#, fuzzy
+msgid "Exposurediff ?"
+msgstr "Mode d'exposition"
+
+#: libexif/olympus/mnote-olympus-tag.c:54
+#, fuzzy
+msgid "Image Boundary"
+msgstr "ID unique de l'image"
+
+#: libexif/olympus/mnote-olympus-tag.c:56
+#, fuzzy
+msgid "Flash Exposure Bracket Value"
+msgstr "Mode d'exposition"
+
+#: libexif/olympus/mnote-olympus-tag.c:57
+#, fuzzy
+msgid "Exposure Bracket Value"
+msgstr "Temps d'exposition"
+
+#: libexif/olympus/mnote-olympus-tag.c:58
+#: libexif/olympus/mnote-olympus-tag.c:96
+#, fuzzy
+msgid "Image Adjustment"
+msgstr "Longeur de l'image"
+
+#: libexif/olympus/mnote-olympus-tag.c:59
+#, fuzzy
+msgid "Tone Compensation"
+msgstr "Temps d'exposition"
+
+#: libexif/olympus/mnote-olympus-tag.c:60
+msgid "Adapter"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:62
+msgid "Lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:63
+#: libexif/olympus/mnote-olympus-tag.c:135
+#: libexif/olympus/mnote-olympus-tag.c:185
+#, fuzzy
+msgid "Manual Focus Distance"
+msgstr "Balance des blancs manuelle"
+
+#: libexif/olympus/mnote-olympus-tag.c:65
+#, fuzzy
+msgid "Flash Used"
+msgstr "Le flash s'est déclenché."
+
+#: libexif/olympus/mnote-olympus-tag.c:66
+#, fuzzy
+msgid "AF Focus Position"
+msgstr "Mode d'exposition"
+
+#: libexif/olympus/mnote-olympus-tag.c:67
+#, fuzzy
+msgid "Bracketing"
+msgstr "action"
+
+#: libexif/olympus/mnote-olympus-tag.c:69
+#, fuzzy
+msgid "Lens F Stops"
+msgstr "Type de scène"
+
+#: libexif/olympus/mnote-olympus-tag.c:70
+#, fuzzy
+msgid "Contrast Curve"
+msgstr "Contraste"
+
+#: libexif/olympus/mnote-olympus-tag.c:71
+#: libexif/olympus/mnote-olympus-tag.c:95
+#: libexif/pentax/mnote-pentax-tag.c:134
+#, fuzzy
+msgid "Color Mode"
+msgstr "Espace des couleurs"
+
+#: libexif/olympus/mnote-olympus-tag.c:72
+#, fuzzy
+msgid "Light Type"
+msgstr "Scène de nuit"
+
+#: libexif/olympus/mnote-olympus-tag.c:74
+msgid "Hue Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:76
+#: libexif/olympus/mnote-olympus-tag.c:163
+#: libexif/pentax/mnote-pentax-tag.c:108
+#, fuzzy
+msgid "Noise Reduction"
+msgstr "Flash déclenché, mode anti-yeux rouges."
+
+#: libexif/olympus/mnote-olympus-tag.c:79
+msgid "Sensor Pixel Size"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+#, fuzzy
+msgid "Image Data Size"
+msgstr "Hauteur de l'image"
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Size of compressed image data in bytes."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:84
+msgid "Total Number of Pictures Taken"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:86
+msgid "Optimize Image"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:88
+#, fuzzy
+msgid "Vari Program"
+msgstr "Programme normal"
+
+#: libexif/olympus/mnote-olympus-tag.c:89
+msgid "Capture Editor Data"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:90
+msgid "Capture Editor Version"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:97
+#: libexif/olympus/mnote-olympus-tag.c:183
+#, fuzzy
+msgid "CCD Sensitivity"
+msgstr "Sensitivité spectrale"
+
+#: libexif/olympus/mnote-olympus-tag.c:99
+#, fuzzy
+msgid "Focus"
+msgstr "Mode d'exposition"
+
+#: libexif/olympus/mnote-olympus-tag.c:102
+#, fuzzy
+msgid "Converter"
+msgstr "Centimère"
+
+#: libexif/olympus/mnote-olympus-tag.c:105
+msgid "Thumbnail Image"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:106
+msgid "Speed/Sequence/Panorama Direction"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:109
+#, fuzzy
+msgid "Black & White Mode"
+msgstr "Modèle"
+
+#: libexif/olympus/mnote-olympus-tag.c:111
+#, fuzzy
+msgid "Focal Plane Diagonal"
+msgstr "x-Résolution du plan focal"
+
+#: libexif/olympus/mnote-olympus-tag.c:112
+msgid "Lens Distortion Parameters"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:114
+msgid "Info"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:115
+msgid "Camera ID"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:116
+msgid "Precapture Frames"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:117
+#, fuzzy
+msgid "White Board"
+msgstr "Balance des blancs"
+
+#: libexif/olympus/mnote-olympus-tag.c:118
+#, fuzzy
+msgid "One Touch White Balance"
+msgstr "Balance des blancs"
+
+#: libexif/olympus/mnote-olympus-tag.c:119
+#, fuzzy
+msgid "White Balance Bracket"
+msgstr "Balance des blancs"
+
+#: libexif/olympus/mnote-olympus-tag.c:120
+#: libexif/pentax/mnote-pentax-tag.c:123
+#, fuzzy
+msgid "White Balance Bias"
+msgstr "Balance des blancs"
+
+#: libexif/olympus/mnote-olympus-tag.c:121
+msgid "Data Dump"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:124
+msgid "ISO Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:125
+#, fuzzy
+msgid "Aperture Value"
+msgstr "Ouverture"
+
+#: libexif/olympus/mnote-olympus-tag.c:126
+#, fuzzy
+msgid "Brightness Value"
+msgstr "Luminosité"
+
+#: libexif/olympus/mnote-olympus-tag.c:128
+#, fuzzy
+msgid "Flash Device"
+msgstr "Le flash s'est déclenché."
+
+#: libexif/olympus/mnote-olympus-tag.c:130
+msgid "Sensor Temperature"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:131
+msgid "Lens Temperature"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:132
+msgid "Light Condition"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:136
+msgid "Zoom Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:137
+msgid "Focus Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:138
+#, fuzzy
+msgid "Sharpness Setting"
+msgstr "Netteté"
+
+#: libexif/olympus/mnote-olympus-tag.c:139
+msgid "Flash Charge Level"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:140
+#, fuzzy
+msgid "Color Matrix"
+msgstr "Espace des couleurs"
+
+#: libexif/olympus/mnote-olympus-tag.c:141
+#, fuzzy
+msgid "Black Level"
+msgstr "Niveau de charge"
+
+#: libexif/olympus/mnote-olympus-tag.c:142
+#, fuzzy
+msgid "White Balance Setting"
+msgstr "Balance des blancs"
+
+#: libexif/olympus/mnote-olympus-tag.c:143
+#: libexif/pentax/mnote-pentax-tag.c:87
+#, fuzzy
+msgid "Red Balance"
+msgstr "Balance des blancs"
+
+#: libexif/olympus/mnote-olympus-tag.c:144
+#: libexif/pentax/mnote-pentax-tag.c:86
+#, fuzzy
+msgid "Blue Balance"
+msgstr "Balance des blancs"
+
+#: libexif/olympus/mnote-olympus-tag.c:145
+msgid "Color Matrix Number"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:147
+#, fuzzy
+msgid "Flash Exposure Comp"
+msgstr "Mode d'exposition"
+
+#: libexif/olympus/mnote-olympus-tag.c:148
+#, fuzzy
+msgid "Internal Flash Table"
+msgstr "Flash"
+
+#: libexif/olympus/mnote-olympus-tag.c:149
+#, fuzzy
+msgid "External Flash G Value"
+msgstr "Flash"
+
+#: libexif/olympus/mnote-olympus-tag.c:150
+#, fuzzy
+msgid "External Flash Bounce"
+msgstr "Flash"
+
+#: libexif/olympus/mnote-olympus-tag.c:151
+#, fuzzy
+msgid "External Flash Zoom"
+msgstr "Flash"
+
+#: libexif/olympus/mnote-olympus-tag.c:152
+#, fuzzy
+msgid "External Flash Mode"
+msgstr "Flash"
+
+#: libexif/olympus/mnote-olympus-tag.c:153
+#, fuzzy
+msgid "Contrast Setting"
+msgstr "Contraste"
+
+#: libexif/olympus/mnote-olympus-tag.c:154
+#, fuzzy
+msgid "Sharpness Factor"
+msgstr "Netteté"
+
+#: libexif/olympus/mnote-olympus-tag.c:155
+#, fuzzy
+msgid "Color Control"
+msgstr "Espace des couleurs"
+
+#: libexif/olympus/mnote-olympus-tag.c:156
+#, fuzzy
+msgid "Olympus Image Width"
+msgstr "Hauteur de l'image"
+
+#: libexif/olympus/mnote-olympus-tag.c:157
+msgid "Olympus Image Height"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:158
+#, fuzzy
+msgid "Scene Detect"
+msgstr "Type de scène"
+
+#: libexif/olympus/mnote-olympus-tag.c:159
+#, fuzzy
+msgid "Compression Ratio"
+msgstr "Compression"
+
+#: libexif/olympus/mnote-olympus-tag.c:160
+msgid "Preview Image Valid"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:161
+msgid "AF Result"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:162
+msgid "CCD Scan Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:164
+#, fuzzy
+msgid "Infinity Lens Step"
+msgstr "Intel"
+
+#: libexif/olympus/mnote-olympus-tag.c:165
+#, fuzzy
+msgid "Near Lens Step"
+msgstr "Type de scène"
+
+#: libexif/olympus/mnote-olympus-tag.c:166
+#, fuzzy
+msgid "Light Value Center"
+msgstr "Centimère"
+
+#: libexif/olympus/mnote-olympus-tag.c:167
+msgid "Light Value Periphery"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:170
+msgid "Sequential Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:171
+#, fuzzy
+msgid "Wide Range"
+msgstr "Balance des blancs"
+
+#: libexif/olympus/mnote-olympus-tag.c:172
+#, fuzzy
+msgid "Color Adjustment Mode"
+msgstr "Espace des couleurs"
+
+#: libexif/olympus/mnote-olympus-tag.c:174
+#, fuzzy
+msgid "Quick Shot"
+msgstr "Multi spot"
+
+#: libexif/olympus/mnote-olympus-tag.c:176
+msgid "Voice Memo"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:177
+msgid "Record Shutter Release"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:178
+msgid "Flicker Reduce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:179
+#, fuzzy
+msgid "Optical Zoom"
+msgstr "Valeur du zoom numérique"
+
+#: libexif/olympus/mnote-olympus-tag.c:181
+#, fuzzy
+msgid "Light Source Special"
+msgstr "Source lumineuse"
+
+#: libexif/olympus/mnote-olympus-tag.c:182
+#, fuzzy
+msgid "Resaved"
+msgstr "réservé"
+
+#: libexif/olympus/mnote-olympus-tag.c:184
+#, fuzzy
+msgid "Scene Select"
+msgstr "Type de scène"
+
+#: libexif/olympus/mnote-olympus-tag.c:186
+msgid "Sequence Shot Interval"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:189
+#, fuzzy
+msgid "Epson Image Width"
+msgstr "Hauteur de l'image"
+
+#: libexif/olympus/mnote-olympus-tag.c:190
+#, fuzzy
+msgid "Epson Image Height"
+msgstr "Longeur de l'image"
+
+#: libexif/olympus/mnote-olympus-tag.c:191
+#, fuzzy
+msgid "Epson Software Version"
+msgstr "Version d'exif"
+
+#: libexif/pentax/mnote-pentax-entry.c:80
+#: libexif/pentax/mnote-pentax-entry.c:134
+#, fuzzy
+msgid "Multi-exposure"
+msgstr "Exposition manuel"
+
+#: libexif/pentax/mnote-pentax-entry.c:83
+#: libexif/pentax/mnote-pentax-entry.c:137
+msgid "Good"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:84
+#: libexif/pentax/mnote-pentax-entry.c:138
+#, fuzzy
+msgid "Better"
+msgstr "Centimère"
+
+#: libexif/pentax/mnote-pentax-entry.c:92
+#, fuzzy
+msgid "Flash on"
+msgstr "Flash"
+
+#: libexif/pentax/mnote-pentax-entry.c:140
+msgid "TIFF"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:150
+msgid "2560x1920 or 2304x1728"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:156
+msgid "2304x1728 or 2592x1944"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:158
+msgid "2816x2212 or 2816x2112"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:171
+msgid "Surf & snow"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:172
+#, fuzzy
+msgid "Sunset or candlelight"
+msgstr "Tungstène (lumière incandescente)"
+
+#: libexif/pentax/mnote-pentax-entry.c:173
+msgid "Autumn"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:178
+#, fuzzy
+msgid "Self portrait"
+msgstr "Portrait"
+
+#: libexif/pentax/mnote-pentax-entry.c:179
+#, fuzzy
+msgid "Illustrations"
+msgstr "Saturation"
+
+#: libexif/pentax/mnote-pentax-entry.c:180
+#, fuzzy
+msgid "Digital filter"
+msgstr "Valeur du zoom numérique"
+
+#: libexif/pentax/mnote-pentax-entry.c:182
+msgid "Food"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:183
+#, fuzzy
+msgid "Green mode"
+msgstr "Mode de mesure"
+
+#: libexif/pentax/mnote-pentax-entry.c:184
+#, fuzzy
+msgid "Light pet"
+msgstr "Scène de nuit"
+
+#: libexif/pentax/mnote-pentax-entry.c:185
+msgid "Dark pet"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:186
+msgid "Medium pet"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:188
+#: libexif/pentax/mnote-pentax-entry.c:296
+#, fuzzy
+msgid "Candlelight"
+msgstr "Lumière du jour"
+
+#: libexif/pentax/mnote-pentax-entry.c:189
+#, fuzzy
+msgid "Natural skin tone"
+msgstr "Saturation"
+
+#: libexif/pentax/mnote-pentax-entry.c:190
+msgid "Synchro sound record"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:191
+msgid "Frame composite"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:194
+#, fuzzy
+msgid "Auto, did not fire"
+msgstr "Le flash ne s'est pas déclenché."
+
+#: libexif/pentax/mnote-pentax-entry.c:196
+#, fuzzy
+msgid "Auto, did not fire, red-eye reduction"
+msgstr "Flash déclenché, mode anti-yeux rouges."
+
+#: libexif/pentax/mnote-pentax-entry.c:197
+#, fuzzy
+msgid "Auto, fired"
+msgstr "Bracketing automatique"
+
+#: libexif/pentax/mnote-pentax-entry.c:199
+#, fuzzy
+msgid "Auto, fired, red-eye reduction"
+msgstr "Flash déclenché, mode anti-yeux rouges."
+
+#: libexif/pentax/mnote-pentax-entry.c:201
+msgid "On, wireless"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:202
+#, fuzzy
+msgid "On, soft"
+msgstr "Doux"
+
+#: libexif/pentax/mnote-pentax-entry.c:203
+msgid "On, slow-sync"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:204
+#, fuzzy
+msgid "On, slow-sync, red-eye reduction"
+msgstr "Flash déclenché, mode anti-yeux rouges."
+
+#: libexif/pentax/mnote-pentax-entry.c:205
+msgid "On, trailing-curtain sync"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:213
+msgid "AF-S"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:214
+msgid "AF-C"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:217
+#, fuzzy
+msgid "Upper-left"
+msgstr "haut - gauche"
+
+#: libexif/pentax/mnote-pentax-entry.c:218
+msgid "Top"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:219
+#, fuzzy
+msgid "Upper-right"
+msgstr "haut - droit"
+
+#: libexif/pentax/mnote-pentax-entry.c:221
+msgid "Mid-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:223
+#, fuzzy
+msgid "Mid-right"
+msgstr "Copyright"
+
+#: libexif/pentax/mnote-pentax-entry.c:225
+#, fuzzy
+msgid "Lower-left"
+msgstr "haut - gauche"
+
+#: libexif/pentax/mnote-pentax-entry.c:226
+#, fuzzy
+msgid "Bottom"
+msgstr "bas - gauche"
+
+#: libexif/pentax/mnote-pentax-entry.c:227
+#, fuzzy
+msgid "Lower-right"
+msgstr "haut - droit"
+
+#: libexif/pentax/mnote-pentax-entry.c:228
+#, fuzzy
+msgid "Fixed center"
+msgstr "Temps clair"
+
+#: libexif/pentax/mnote-pentax-entry.c:232
+#, fuzzy
+msgid "Multiple"
+msgstr "Multi spot"
+
+#: libexif/pentax/mnote-pentax-entry.c:234
+#, fuzzy
+msgid "Top-center"
+msgstr "centré"
+
+#: libexif/pentax/mnote-pentax-entry.c:240
+#, fuzzy
+msgid "Bottom-center"
+msgstr "centré"
+
+#: libexif/pentax/mnote-pentax-entry.c:257
+msgid "User selected"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:282
+msgid "3008x2008 or 3040x2024"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:293
+#, fuzzy
+msgid "Digital filter?"
+msgstr "Valeur du zoom numérique"
+
+#: libexif/pentax/mnote-pentax-entry.c:374
+#: libexif/pentax/mnote-pentax-entry.c:383
+#, c-format
+msgid "Internal error (unknown value %i %i)"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:35 libexif/pentax/mnote-pentax-tag.c:63
+#, fuzzy
+msgid "Capture Mode"
+msgstr "Mode d'exposition"
+
+#: libexif/pentax/mnote-pentax-tag.c:36 libexif/pentax/mnote-pentax-tag.c:70
+#: libexif/pentax/mnote-pentax-tag.c:129
+#, fuzzy
+msgid "Quality Level"
+msgstr "Niveau de charge"
+
+#: libexif/pentax/mnote-pentax-tag.c:54
+#, fuzzy
+msgid "ISO Speed"
+msgstr "Vitesse d'obturation"
+
+#: libexif/pentax/mnote-pentax-tag.c:56
+#, fuzzy
+msgid "Colors"
+msgstr "Espace des couleurs"
+
+#: libexif/pentax/mnote-pentax-tag.c:59
+msgid "PrintIM Settings"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:60 libexif/pentax/mnote-pentax-tag.c:131
+msgid "Time Zone"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:61
+#, fuzzy
+msgid "Daylight Savings"
+msgstr "Lumière du jour"
+
+#: libexif/pentax/mnote-pentax-tag.c:64
+msgid "Preview Size"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:65
+#, fuzzy
+msgid "Preview Length"
+msgstr "Longeur de l'image"
+
+#: libexif/pentax/mnote-pentax-tag.c:66 libexif/pentax/mnote-pentax-tag.c:122
+msgid "Preview Start"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:67
+msgid "Model Identification"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:68
+msgid "Date"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:69
+msgid "Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:75
+#, fuzzy
+msgid "AF Point Selected"
+msgstr "Balance des blancs manuelle"
+
+#: libexif/pentax/mnote-pentax-tag.c:76
+msgid "Auto AF Point"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:77
+#, fuzzy
+msgid "Focus Position"
+msgstr "Mode d'exposition"
+
+#: libexif/pentax/mnote-pentax-tag.c:80
+#, fuzzy
+msgid "ISO Number"
+msgstr "Le nombre F."
+
+#: libexif/pentax/mnote-pentax-tag.c:83
+#, fuzzy
+msgid "Auto Bracketing"
+msgstr "Bracketing automatique"
+
+#: libexif/pentax/mnote-pentax-tag.c:85
+#, fuzzy
+msgid "White Balance Mode"
+msgstr "Balance des blancs"
+
+#: libexif/pentax/mnote-pentax-tag.c:93
+msgid "World Time Location"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:94
+msgid "Hometown City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:95
+msgid "Destination City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Hometown DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+#, fuzzy
+msgid "Home Daylight Savings Time"
+msgstr "Lumière du jour"
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+#, fuzzy
+msgid "Destination Daylight Savings Time"
+msgstr "Lumière du jour"
+
+#: libexif/pentax/mnote-pentax-tag.c:99
+#, fuzzy
+msgid "Image Processing"
+msgstr "Longeur de l'image"
+
+#: libexif/pentax/mnote-pentax-tag.c:100
+#, fuzzy
+msgid "Picture Mode (2)"
+msgstr "Mode d'exposition"
+
+#: libexif/pentax/mnote-pentax-tag.c:103
+#, fuzzy
+msgid "Image Area Offset"
+msgstr "Longeur de l'image"
+
+#: libexif/pentax/mnote-pentax-tag.c:104
+#, fuzzy
+msgid "Raw Image Size"
+msgstr "Hauteur de l'image"
+
+#: libexif/pentax/mnote-pentax-tag.c:105
+#, fuzzy
+msgid "Autofocus Points Used"
+msgstr "Mode d'exposition"
+
+#: libexif/pentax/mnote-pentax-tag.c:107
+#, fuzzy
+msgid "Camera Temperature"
+msgstr "ouverture"
+
+#: libexif/pentax/mnote-pentax-tag.c:110
+#, fuzzy
+msgid "Image Tone"
+msgstr "ID unique de l'image"
+
+#: libexif/pentax/mnote-pentax-tag.c:111
+#, fuzzy
+msgid "Shake Reduction Info"
+msgstr "Flash déclenché, mode anti-yeux rouges."
+
+#: libexif/pentax/mnote-pentax-tag.c:112
+#, fuzzy
+msgid "Black Point"
+msgstr "Mode d'exposition"
+
+#: libexif/pentax/mnote-pentax-tag.c:114
+msgid "AE Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:115
+msgid "Lens Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:116
+#, fuzzy
+msgid "Flash Info"
+msgstr "Flash"
+
+#: libexif/pentax/mnote-pentax-tag.c:117
+msgid "Camera Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:118
+#, fuzzy
+msgid "Battery Info"
+msgstr "Niveau de charge"
+
+#: libexif/pentax/mnote-pentax-tag.c:119
+msgid "Hometown City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:120
+msgid "Destination City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+#, fuzzy
+msgid "Object Distance"
+msgstr "Distance au sujet"
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+#, fuzzy
+msgid "Distance of photographed object in millimeters."
+msgstr "La distance au sujet, donnée en mètres."
+
+#: libexif/pentax/mnote-pentax-tag.c:126
+#, fuzzy
+msgid "Flash Distance"
+msgstr "Le flash s'est déclenché."
+
+#: libexif/pentax/mnote-pentax-tag.c:132
+#, fuzzy
+msgid "Bestshot Mode"
+msgstr "Flash"
+
+#: libexif/pentax/mnote-pentax-tag.c:133
+#, fuzzy
+msgid "CCS ISO Sensitivity"
+msgstr "Sensitivité spectrale"
+
+#: libexif/pentax/mnote-pentax-tag.c:135
+msgid "Enhancement"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:136
+#, fuzzy
+msgid "Finer"
+msgstr "pouces"
+
+# This is a very special string. It is used for test purposes, and
+# we only test the de locale as a proof-of-concept example. There is
+# no need for anybody to translate it.
+#: test/nls/test-nls.c:20 test/nls/test-nls.c:23 test/nls/test-nls.c:24
+msgid "[DO_NOT_TRANSLATE_THIS_MARKER]"
+msgstr ""
+
+#, fuzzy
+#~ msgid "On + Red-eye reduction"
+#~ msgstr "Flash déclenché, mode anti-yeux rouges."
+
+#, fuzzy
+#~ msgid "Center + Right"
+#~ msgstr "Centre pondéré"
+
+#, fuzzy
+#~ msgid "Left + Right"
+#~ msgstr "bas - droit"
+
+#, fuzzy
+#~ msgid "Daylight Fluorescent"
+#~ msgstr "Fluorescent"
+
+#, fuzzy
+#~ msgid "Focal length"
+#~ msgstr "Longueur focale"
+
+#, fuzzy
+#~ msgid "Flash mode"
+#~ msgstr "Flash"
+
+#, fuzzy
+#~ msgid "Focus mode"
+#~ msgstr "Mode d'exposition"
+
+#, fuzzy
+#~ msgid "Digital zoom"
+#~ msgstr "Valeur du zoom numérique"
+
+#, fuzzy
+#~ msgid "Metering mode"
+#~ msgstr "Mode de mesure"
+
+#, fuzzy
+#~ msgid "Focus range"
+#~ msgstr "Mode d'exposition"
+
+#, fuzzy
+#~ msgid "Focal plane y size"
+#~ msgstr "y-Résolution du plan focal"
+
+#, fuzzy
+#~ msgid "White balance"
+#~ msgstr "Balance des blancs"
+
+#~ msgid "top - left"
+#~ msgstr "haut - gauche"
+
+#~ msgid "top - right"
+#~ msgstr "haut - droit"
+
+#~ msgid "bottom - right"
+#~ msgstr "bas - droit"
+
+#~ msgid "bottom - left"
+#~ msgstr "bas - gauche"
+
+#~ msgid "Center-Weighted Average"
+#~ msgstr "Mesure pondérée centrale"
+
+#~ msgid "Flash did not fire."
+#~ msgstr "Le flash ne s'est pas déclenché."
+
+#, fuzzy
+#~ msgid "flash"
+#~ msgstr "Flash"
+
+#~ msgid "y-Resolution"
+#~ msgstr "y-résolution"
+
+#~ msgid "Shutter speed"
+#~ msgstr "Vitesse d'obturation"
+
+#~ msgid "Focal Plane y-Resolution"
+#~ msgstr "y-Résolution du plan focal"
+
+#, fuzzy
+#~ msgid "Daylight-color fluorescent"
+#~ msgstr "Fluorescent"
+
+#, fuzzy
+#~ msgid "DayWhite-color fluorescent"
+#~ msgstr "Fluorescent"
+
+#, fuzzy
+#~ msgid "Super Macro"
+#~ msgstr "Macro"
+
+#~ msgid "normal"
+#~ msgstr "normal"
+
+#~ msgid "unknown"
+#~ msgstr "inconnu"
+
+#, fuzzy
+#~ msgid "left to right"
+#~ msgstr "bas - droit"
+
+#, fuzzy
+#~ msgid "right to left"
+#~ msgstr "droit - haut"
+
+#, fuzzy
+#~ msgid "bottom to top"
+#~ msgstr "bas - gauche"
+
+#, fuzzy
+#~ msgid "top to bottom"
+#~ msgstr "gauche - bas"
+
+#, fuzzy
+#~ msgid "Whitebalance"
+#~ msgstr "Balance des blancs"
+
+#, fuzzy
+#~ msgid "Noisereduction"
+#~ msgstr "Flash déclenché, mode anti-yeux rouges."
+
+#, fuzzy
+#~ msgid "Night-scene"
+#~ msgstr "Scène de nuit"
+
+#, fuzzy
+#~ msgid "Night Scene"
+#~ msgstr "Scène de nuit"
+
+#, fuzzy
+#~ msgid "Pan Focus"
+#~ msgstr "Exposition manuel"
+
+#, fuzzy
+#~ msgid "Daywhite Fluorescent"
+#~ msgstr "Fluorescent"
+
+#, fuzzy
+#~ msgid "White Fluorescent"
+#~ msgstr "Fluorescent"
+
+#, fuzzy
+#~ msgid "PictureMode"
+#~ msgstr "Mode d'exposition"
+
+#, fuzzy
+#~ msgid "Manual Focus"
+#~ msgstr "Exposition manuel"
+
+#, fuzzy
+#~ msgid ""
+#~ "Flash fired, compulsory flash mode, red-eye reduction, return light "
+#~ "detected."
+#~ msgstr ""
+#~ "Flash déclenché, mode de flash obligatoire, mode anti-yeux rouges, "
+#~ "lumière de retour détectée."
+
+#, fuzzy
+#~ msgid "Flash not fired"
+#~ msgstr "Le flash ne s'est pas déclenché."
+
+#, fuzzy
+#~ msgid "red eyes reduction"
+#~ msgstr "Flash déclenché, mode anti-yeux rouges."
+
+#, fuzzy
+#~ msgid "on + red eyes reduction"
+#~ msgstr "Flash déclenché, mode anti-yeux rouges."
+
+#, fuzzy
+#~ msgid " / Contrast : "
+#~ msgstr "Contraste"
+
+#, fuzzy
+#~ msgid " / Saturation : "
+#~ msgstr "Saturation"
+
+#, fuzzy
+#~ msgid " / Sharpness : "
+#~ msgstr "Netteté"
+
+#, fuzzy
+#~ msgid " / Metering mode : "
+#~ msgstr "Mode de mesure"
+
+#, fuzzy
+#~ msgid " / Exposure mode : "
+#~ msgstr "Mode d'exposition"
+
+#, fuzzy
+#~ msgid " / Focus mode2 : "
+#~ msgstr "Mode d'exposition"
+
+#, fuzzy
+#~ msgid "White balance : "
+#~ msgstr "Balance des blancs"
+
+#, fuzzy
+#~ msgid "Flourescent"
+#~ msgstr "Fluorescent"
+
+#, fuzzy
+#~ msgid " / Flash bias : %.2f EV"
+#~ msgstr "Flash"
+
+#, fuzzy
+#~ msgid " / Subject Distance (mm) : %u"
+#~ msgstr "Distance au sujet"
+
+#~ msgid "center-weight"
+#~ msgstr "Centre pondéré"
+
+#~ msgid "spot"
+#~ msgstr "spot"
+
+#~ msgid "multi-spot"
+#~ msgstr "multi-spots"
+
+#~ msgid "matrix"
+#~ msgstr "matrice"
+
+#~ msgid "partial"
+#~ msgstr "partiel"
+
+#~ msgid "other"
+#~ msgstr "autre"
+
+#~ msgid "sunny"
+#~ msgstr "ensoleillé"
+
+#~ msgid "fluorescent"
+#~ msgstr "fluorescent"
+
+#~ msgid "tungsten"
+#~ msgstr "tungsten"
+
+#~ msgid "manual"
+#~ msgstr "manuel"
+
+#~ msgid "landscape"
+#~ msgstr "paysage"
+
+#~ msgid "yes"
+#~ msgstr "oui"
+
+#, fuzzy
+#~ msgid "Unknown 2"
+#~ msgstr "Inconnu"
+
+#, fuzzy
+#~ msgid "Unknown 3"
+#~ msgstr "Inconnu"
+
+#, fuzzy
+#~ msgid "Unknown 4"
+#~ msgstr "Inconnu"
+
+#, fuzzy
+#~ msgid "Unknown 5"
+#~ msgstr "Inconnu"
+
+#, fuzzy
+#~ msgid "Unknown 6"
+#~ msgstr "Inconnu"
+
+#, fuzzy
+#~ msgid "Unknown 8"
+#~ msgstr "Inconnu"
+
+#, fuzzy
+#~ msgid "Unknown 9"
+#~ msgstr "Inconnu"
+
+#, fuzzy
+#~ msgid "Unknown 14"
+#~ msgstr "Inconnu"
+
+#, fuzzy
+#~ msgid "Unknown 15"
+#~ msgstr "Inconnu"
+
+#, fuzzy
+#~ msgid "Unknown 16"
+#~ msgstr "Inconnu"
+
+#, fuzzy
+#~ msgid "Unknown 17"
+#~ msgstr "Inconnu"
+
+#, fuzzy
+#~ msgid "Unknown 18"
+#~ msgstr "Inconnu"
+
+#, fuzzy
+#~ msgid "Unknown 19"
+#~ msgstr "Inconnu"
+
+#, fuzzy
+#~ msgid "Unknown 21"
+#~ msgstr "Inconnu"
+
+#, fuzzy
+#~ msgid "Unknown 24"
+#~ msgstr "Inconnu"
+
+#, fuzzy
+#~ msgid "Unknown 25"
+#~ msgstr "Inconnu"
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/insert-header.sin b/framework/modules/c_LibExifModule/libexif-0.6.20/po/insert-header.sin
new file mode 100644
index 0000000000000000000000000000000000000000..b26de01f6c88c7b15bb4815a8fcd5120d479300d
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/insert-header.sin
@@ -0,0 +1,23 @@
+# Sed script that inserts the file called HEADER before the header entry.
+#
+# At each occurrence of a line starting with "msgid ", we execute the following
+# commands. At the first occurrence, insert the file. At the following
+# occurrences, do nothing. The distinction between the first and the following
+# occurrences is achieved by looking at the hold space.
+/^msgid /{
+x
+# Test if the hold space is empty.
+s/m/m/
+ta
+# Yes it was empty. First occurrence. Read the file.
+r HEADER
+# Output the file's contents by reading the next line. But don't lose the
+# current line while doing this.
+g
+N
+bb
+:a
+# The hold space was nonempty. Following occurrences. Do nothing.
+x
+:b
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/it.gmo b/framework/modules/c_LibExifModule/libexif-0.6.20/po/it.gmo
new file mode 100644
index 0000000000000000000000000000000000000000..936ee05abc1cb331f7762eef32b13016172499be
Binary files /dev/null and b/framework/modules/c_LibExifModule/libexif-0.6.20/po/it.gmo differ
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/it.po b/framework/modules/c_LibExifModule/libexif-0.6.20/po/it.po
new file mode 100644
index 0000000000000000000000000000000000000000..c35024273fc9ac6b7dbca1930512a58934f92eb3
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/it.po
@@ -0,0 +1,5930 @@
+# Italian translation for libexif.
+# Copyright (C) 2010 Lutz Mueller and others
+# This file is distributed under the same license as the libexif package.
+# Sergio Zanchetta <primes2h@ubuntu.com>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: libexif-0.6.20-pre1\n"
+"Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-12-15 22:14-0800\n"
+"PO-Revision-Date: 2010-06-01 12:32+0200\n"
+"Last-Translator: Sergio Zanchetta <primes2h@ubuntu.com>\n"
+"Language-Team: Italian <tp@lists.linux.it>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: libexif/canon/mnote-canon-entry.c:40 libexif/fuji/mnote-fuji-entry.c:35
+#: libexif/olympus/mnote-olympus-entry.c:37
+#: libexif/pentax/mnote-pentax-entry.c:39
+#, c-format
+msgid "Invalid format '%s', expected '%s'."
+msgstr "Formato «%s» non valido, atteso «%s»."
+
+#: libexif/canon/mnote-canon-entry.c:52 libexif/fuji/mnote-fuji-entry.c:47
+#: libexif/olympus/mnote-olympus-entry.c:62
+#: libexif/pentax/mnote-pentax-entry.c:51
+#, c-format
+msgid "Invalid number of components (%i, expected %i)."
+msgstr "Numero di componenti non valido (%i, atteso %i)."
+
+#: libexif/canon/mnote-canon-entry.c:61
+#: libexif/olympus/mnote-olympus-entry.c:72
+#: libexif/pentax/mnote-pentax-entry.c:61
+#, c-format
+msgid "Invalid number of components (%i, expected %i or %i)."
+msgstr "Numero di componenti non valido (%i, atteso %i o %i)."
+
+#: libexif/canon/mnote-canon-entry.c:76 libexif/canon/mnote-canon-entry.c:130
+#: libexif/canon/mnote-canon-entry.c:182 libexif/exif-entry.c:796
+#: libexif/olympus/mnote-olympus-entry.c:196
+#: libexif/olympus/mnote-olympus-tag.c:108
+#: libexif/pentax/mnote-pentax-entry.c:174
+#: libexif/pentax/mnote-pentax-entry.c:209
+#: libexif/pentax/mnote-pentax-entry.c:297
+msgid "Macro"
+msgstr "Macro"
+
+#: libexif/canon/mnote-canon-entry.c:77 libexif/canon/mnote-canon-entry.c:79
+#: libexif/canon/mnote-canon-entry.c:157 libexif/canon/mnote-canon-entry.c:160
+#: libexif/canon/mnote-canon-entry.c:163 libexif/exif-entry.c:674
+#: libexif/exif-entry.c:677 libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/exif-entry.c:745 libexif/fuji/mnote-fuji-entry.c:64
+#: libexif/olympus/mnote-olympus-entry.c:118
+#: libexif/olympus/mnote-olympus-entry.c:195
+#: libexif/olympus/mnote-olympus-entry.c:203
+#: libexif/olympus/mnote-olympus-entry.c:213
+#: libexif/olympus/mnote-olympus-entry.c:586
+#: libexif/pentax/mnote-pentax-entry.c:105
+#: libexif/pentax/mnote-pentax-entry.c:110
+#: libexif/pentax/mnote-pentax-entry.c:115
+#: libexif/pentax/mnote-pentax-entry.c:208
+msgid "Normal"
+msgstr "Normal"
+
+#: libexif/canon/mnote-canon-entry.c:78
+msgid "Economy"
+msgstr "Economy"
+
+#: libexif/canon/mnote-canon-entry.c:80
+msgid "Fine"
+msgstr "Fine"
+
+#: libexif/canon/mnote-canon-entry.c:81 libexif/fuji/mnote-fuji-entry.c:178
+#: libexif/pentax/mnote-pentax-entry.c:141
+msgid "RAW"
+msgstr "RAW"
+
+#: libexif/canon/mnote-canon-entry.c:82
+msgid "Superfine"
+msgstr "Superfine"
+
+#: libexif/canon/mnote-canon-entry.c:83 libexif/canon/mnote-canon-entry.c:301
+#: libexif/canon/mnote-canon-entry.c:304 libexif/canon/mnote-canon-entry.c:312
+#: libexif/canon/mnote-canon-entry.c:345 libexif/canon/mnote-canon-entry.c:357
+#: libexif/canon/mnote-canon-entry.c:370 libexif/canon/mnote-canon-entry.c:372
+#: libexif/canon/mnote-canon-entry.c:574 libexif/canon/mnote-canon-entry.c:671
+#: libexif/fuji/mnote-fuji-entry.c:70 libexif/fuji/mnote-fuji-entry.c:103
+#: libexif/fuji/mnote-fuji-entry.c:107 libexif/fuji/mnote-fuji-entry.c:115
+#: libexif/fuji/mnote-fuji-entry.c:142
+#: libexif/olympus/mnote-olympus-entry.c:178
+#: libexif/olympus/mnote-olympus-entry.c:186
+#: libexif/olympus/mnote-olympus-entry.c:251
+#: libexif/olympus/mnote-olympus-entry.c:530
+#: libexif/olympus/mnote-olympus-entry.c:547
+#: libexif/pentax/mnote-pentax-entry.c:195
+#: libexif/pentax/mnote-pentax-entry.c:260
+msgid "Off"
+msgstr "Spento"
+
+#: libexif/canon/mnote-canon-entry.c:84 libexif/canon/mnote-canon-entry.c:167
+#: libexif/canon/mnote-canon-entry.c:180 libexif/canon/mnote-canon-entry.c:328
+#: libexif/canon/mnote-canon-entry.c:400 libexif/fuji/mnote-fuji-entry.c:73
+#: libexif/fuji/mnote-fuji-entry.c:101 libexif/fuji/mnote-fuji-entry.c:111
+#: libexif/fuji/mnote-fuji-entry.c:119
+#: libexif/olympus/mnote-olympus-entry.c:131
+#: libexif/olympus/mnote-olympus-entry.c:183
+#: libexif/olympus/mnote-olympus-entry.c:199
+#: libexif/olympus/mnote-olympus-entry.c:244
+#: libexif/pentax/mnote-pentax-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:88
+#: libexif/pentax/mnote-pentax-entry.c:91
+#: libexif/pentax/mnote-pentax-entry.c:97
+#: libexif/pentax/mnote-pentax-entry.c:131
+#: libexif/pentax/mnote-pentax-entry.c:229
+#: libexif/pentax/mnote-pentax-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:290
+msgid "Auto"
+msgstr "Automatico"
+
+#: libexif/canon/mnote-canon-entry.c:85 libexif/canon/mnote-canon-entry.c:302
+#: libexif/canon/mnote-canon-entry.c:347 libexif/canon/mnote-canon-entry.c:361
+#: libexif/canon/mnote-canon-entry.c:371 libexif/fuji/mnote-fuji-entry.c:102
+#: libexif/fuji/mnote-fuji-entry.c:108 libexif/fuji/mnote-fuji-entry.c:116
+#: libexif/fuji/mnote-fuji-entry.c:143
+#: libexif/olympus/mnote-olympus-entry.c:179
+#: libexif/olympus/mnote-olympus-entry.c:533
+#: libexif/olympus/mnote-olympus-entry.c:550
+#: libexif/pentax/mnote-pentax-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:261
+msgid "On"
+msgstr "Acceso"
+
+#: libexif/canon/mnote-canon-entry.c:86 libexif/fuji/mnote-fuji-entry.c:104
+#: libexif/olympus/mnote-olympus-entry.c:184
+#: libexif/pentax/mnote-pentax-entry.c:94
+msgid "Red-eye reduction"
+msgstr "Riduzione occhi rossi"
+
+#: libexif/canon/mnote-canon-entry.c:87
+msgid "Slow synchro"
+msgstr "Sincro lento"
+
+#: libexif/canon/mnote-canon-entry.c:88
+msgid "Auto, red-eye reduction"
+msgstr "Auto, riduzione occhi rossi"
+
+#: libexif/canon/mnote-canon-entry.c:89
+#: libexif/pentax/mnote-pentax-entry.c:200
+msgid "On, red-eye reduction"
+msgstr "Attivo, riduzione occhi rossi"
+
+#: libexif/canon/mnote-canon-entry.c:90
+msgid "External flash"
+msgstr "Flash esterno"
+
+#: libexif/canon/mnote-canon-entry.c:91 libexif/canon/mnote-canon-entry.c:101
+#: libexif/canon/mnote-canon-entry.c:294
+msgid "Single"
+msgstr "Singolo"
+
+#: libexif/canon/mnote-canon-entry.c:92 libexif/canon/mnote-canon-entry.c:102
+#: libexif/canon/mnote-canon-entry.c:295
+msgid "Continuous"
+msgstr "Continuo"
+
+#: libexif/canon/mnote-canon-entry.c:93
+msgid "Movie"
+msgstr "Filmato"
+
+#: libexif/canon/mnote-canon-entry.c:94
+msgid "Continuous, speed priority"
+msgstr "Continuo, priorità dei tempi"
+
+#: libexif/canon/mnote-canon-entry.c:95
+msgid "Continuous, low"
+msgstr "Continuo, basso"
+
+#: libexif/canon/mnote-canon-entry.c:96
+msgid "Continuous, high"
+msgstr "Continuo, alto"
+
+#: libexif/canon/mnote-canon-entry.c:97
+msgid "One-shot AF"
+msgstr "AF One Shot"
+
+#: libexif/canon/mnote-canon-entry.c:98
+msgid "AI servo AF"
+msgstr "AF AI Servo"
+
+#: libexif/canon/mnote-canon-entry.c:99
+msgid "AI focus AF"
+msgstr "AF AI Focus"
+
+#: libexif/canon/mnote-canon-entry.c:100 libexif/canon/mnote-canon-entry.c:103
+msgid "Manual focus"
+msgstr "Messa a fuoco manuale"
+
+#: libexif/canon/mnote-canon-entry.c:104 libexif/canon/mnote-canon-entry.c:132
+#: libexif/canon/mnote-canon-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:212
+msgid "Pan focus"
+msgstr "Messa a fuoco panoramica"
+
+#: libexif/canon/mnote-canon-entry.c:105
+msgid "JPEG"
+msgstr "JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:106
+msgid "CRW+THM"
+msgstr "CRW+THM"
+
+#: libexif/canon/mnote-canon-entry.c:107
+msgid "AVI+THM"
+msgstr "AVI+THM"
+
+#: libexif/canon/mnote-canon-entry.c:108
+msgid "TIF"
+msgstr "TIF"
+
+#: libexif/canon/mnote-canon-entry.c:109
+msgid "TIF+JPEG"
+msgstr "TIF+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:110
+msgid "CR2"
+msgstr "CR2"
+
+#: libexif/canon/mnote-canon-entry.c:111
+msgid "CR2+JPEG"
+msgstr "CR2+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:112
+msgid "Large"
+msgstr "Grande"
+
+#: libexif/canon/mnote-canon-entry.c:113
+msgid "Medium"
+msgstr "Media"
+
+#: libexif/canon/mnote-canon-entry.c:114
+msgid "Small"
+msgstr "Piccola"
+
+#: libexif/canon/mnote-canon-entry.c:115
+msgid "Medium 1"
+msgstr "Media 1"
+
+#: libexif/canon/mnote-canon-entry.c:116
+msgid "Medium 2"
+msgstr "Media 2"
+
+#: libexif/canon/mnote-canon-entry.c:117
+msgid "Medium 3"
+msgstr "Media 3"
+
+#: libexif/canon/mnote-canon-entry.c:118
+msgid "Postcard"
+msgstr "Cartolina"
+
+#: libexif/canon/mnote-canon-entry.c:119
+msgid "Widescreen"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:120
+msgid "Full auto"
+msgstr "Automatica"
+
+#: libexif/canon/mnote-canon-entry.c:121 libexif/canon/mnote-canon-entry.c:179
+#: libexif/canon/mnote-canon-entry.c:201 libexif/canon/mnote-canon-entry.c:285
+#: libexif/canon/mnote-canon-entry.c:392 libexif/exif-entry.c:744
+#: libexif/fuji/mnote-fuji-entry.c:112
+#: libexif/olympus/mnote-olympus-entry.c:90
+#: libexif/olympus/mnote-olympus-entry.c:200
+#: libexif/pentax/mnote-pentax-entry.c:79
+#: libexif/pentax/mnote-pentax-entry.c:102
+#: libexif/pentax/mnote-pentax-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:165
+#: libexif/pentax/mnote-pentax-entry.c:211
+#: libexif/pentax/mnote-pentax-entry.c:250
+msgid "Manual"
+msgstr "Manuale"
+
+#: libexif/canon/mnote-canon-entry.c:122 libexif/canon/mnote-canon-entry.c:430
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:755
+#: libexif/fuji/mnote-fuji-entry.c:121 libexif/pentax/mnote-pentax-entry.c:167
+#: libexif/pentax/mnote-pentax-entry.c:301
+msgid "Landscape"
+msgstr "Paesaggio"
+
+#: libexif/canon/mnote-canon-entry.c:123
+msgid "Fast shutter"
+msgstr "Otturatore veloce"
+
+#: libexif/canon/mnote-canon-entry.c:124
+msgid "Slow shutter"
+msgstr "Otturatore lento"
+
+#: libexif/canon/mnote-canon-entry.c:125 libexif/fuji/mnote-fuji-entry.c:123
+#: libexif/olympus/mnote-olympus-entry.c:254
+msgid "Night"
+msgstr "Notturno"
+
+#: libexif/canon/mnote-canon-entry.c:126
+msgid "Grayscale"
+msgstr "Scala di grigio"
+
+#: libexif/canon/mnote-canon-entry.c:127 libexif/canon/mnote-canon-entry.c:308
+#: libexif/pentax/mnote-pentax-entry.c:128
+msgid "Sepia"
+msgstr "Seppia"
+
+#: libexif/canon/mnote-canon-entry.c:128 libexif/canon/mnote-canon-entry.c:429
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:753
+#: libexif/fuji/mnote-fuji-entry.c:120 libexif/pentax/mnote-pentax-entry.c:166
+#: libexif/pentax/mnote-pentax-entry.c:291
+#: libexif/pentax/mnote-pentax-entry.c:294
+#: libexif/pentax/mnote-pentax-entry.c:300
+msgid "Portrait"
+msgstr "Ritratto"
+
+#: libexif/canon/mnote-canon-entry.c:129 libexif/fuji/mnote-fuji-entry.c:122
+msgid "Sports"
+msgstr "Sport"
+
+#: libexif/canon/mnote-canon-entry.c:131 libexif/canon/mnote-canon-entry.c:309
+#: libexif/canon/mnote-canon-entry.c:335 libexif/canon/mnote-canon-entry.c:407
+#: libexif/fuji/mnote-fuji-entry.c:89 libexif/pentax/mnote-pentax-entry.c:127
+msgid "Black & white"
+msgstr "Bianco e nero"
+
+#: libexif/canon/mnote-canon-entry.c:133 libexif/canon/mnote-canon-entry.c:305
+msgid "Vivid"
+msgstr "Vivace"
+
+#: libexif/canon/mnote-canon-entry.c:134 libexif/canon/mnote-canon-entry.c:306
+#: libexif/canon/mnote-canon-entry.c:431
+msgid "Neutral"
+msgstr "Neutro"
+
+#: libexif/canon/mnote-canon-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:93
+msgid "Flash off"
+msgstr "Flash disattivo"
+
+#: libexif/canon/mnote-canon-entry.c:136
+msgid "Long shutter"
+msgstr "Otturatore lungo"
+
+#: libexif/canon/mnote-canon-entry.c:137 libexif/canon/mnote-canon-entry.c:188
+#: libexif/olympus/mnote-olympus-entry.c:171
+msgid "Super macro"
+msgstr "Super macro"
+
+#: libexif/canon/mnote-canon-entry.c:138
+msgid "Foliage"
+msgstr "Fogliame"
+
+#: libexif/canon/mnote-canon-entry.c:139
+msgid "Indoor"
+msgstr "Interno"
+
+#: libexif/canon/mnote-canon-entry.c:140 libexif/fuji/mnote-fuji-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:175
+msgid "Fireworks"
+msgstr "Fuochi d'artificio"
+
+#: libexif/canon/mnote-canon-entry.c:141 libexif/fuji/mnote-fuji-entry.c:133
+msgid "Beach"
+msgstr "Spiaggia"
+
+#: libexif/canon/mnote-canon-entry.c:142 libexif/canon/mnote-canon-entry.c:344
+#: libexif/canon/mnote-canon-entry.c:416 libexif/fuji/mnote-fuji-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:292
+#: libexif/pentax/mnote-pentax-entry.c:298
+msgid "Underwater"
+msgstr "Subacqueo"
+
+#: libexif/canon/mnote-canon-entry.c:143 libexif/fuji/mnote-fuji-entry.c:134
+msgid "Snow"
+msgstr "Neve"
+
+#: libexif/canon/mnote-canon-entry.c:144
+msgid "Kids & pets"
+msgstr "Bambini & Animali"
+
+#: libexif/canon/mnote-canon-entry.c:145
+msgid "Night snapshot"
+msgstr "Fotografia notturna"
+
+#: libexif/canon/mnote-canon-entry.c:146
+msgid "Digital macro"
+msgstr "Macro digitale"
+
+#: libexif/canon/mnote-canon-entry.c:147
+msgid "My colors"
+msgstr "My colors"
+
+#: libexif/canon/mnote-canon-entry.c:148
+msgid "Still image"
+msgstr "Fermo immagine"
+
+#: libexif/canon/mnote-canon-entry.c:149
+msgid "Color accent"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:150
+msgid "Color swap"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:151
+msgid "Aquarium"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:152
+msgid "ISO 3200"
+msgstr "ISO 3200"
+
+#: libexif/canon/mnote-canon-entry.c:153 libexif/canon/mnote-canon-entry.c:348
+#: libexif/canon/mnote-canon-entry.c:365 libexif/canon/mnote-canon-entry.c:417
+#: libexif/olympus/mnote-olympus-entry.c:189
+#: libexif/olympus/mnote-olympus-entry.c:226
+#: libexif/olympus/mnote-olympus-entry.c:451
+#: libexif/pentax/mnote-pentax-entry.c:242
+msgid "None"
+msgstr "Disattivato"
+
+#: libexif/canon/mnote-canon-entry.c:154
+msgid "2x"
+msgstr "2x"
+
+#: libexif/canon/mnote-canon-entry.c:155
+msgid "4x"
+msgstr "4x"
+
+#: libexif/canon/mnote-canon-entry.c:156 libexif/exif-entry.c:702
+#: libexif/exif-entry.c:732
+msgid "Other"
+msgstr "Altro"
+
+#: libexif/canon/mnote-canon-entry.c:158 libexif/canon/mnote-canon-entry.c:161
+#: libexif/canon/mnote-canon-entry.c:164 libexif/canon/mnote-canon-entry.c:398
+#: libexif/fuji/mnote-fuji-entry.c:86 libexif/pentax/mnote-pentax-entry.c:112
+#: libexif/pentax/mnote-pentax-entry.c:117
+msgid "High"
+msgstr "Alta"
+
+#: libexif/canon/mnote-canon-entry.c:159 libexif/canon/mnote-canon-entry.c:162
+#: libexif/canon/mnote-canon-entry.c:165 libexif/canon/mnote-canon-entry.c:396
+#: libexif/pentax/mnote-pentax-entry.c:111
+#: libexif/pentax/mnote-pentax-entry.c:116
+msgid "Low"
+msgstr "Bassa"
+
+#: libexif/canon/mnote-canon-entry.c:166
+msgid "Auto high"
+msgstr "Auto alta"
+
+#: libexif/canon/mnote-canon-entry.c:168
+msgid "50"
+msgstr "50"
+
+#: libexif/canon/mnote-canon-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:120
+#: libexif/pentax/mnote-pentax-entry.c:122
+msgid "100"
+msgstr "100"
+
+#: libexif/canon/mnote-canon-entry.c:170
+#: libexif/pentax/mnote-pentax-entry.c:121
+#: libexif/pentax/mnote-pentax-entry.c:123
+msgid "200"
+msgstr "200"
+
+#: libexif/canon/mnote-canon-entry.c:171
+msgid "400"
+msgstr "400"
+
+#: libexif/canon/mnote-canon-entry.c:172
+msgid "800"
+msgstr "800"
+
+#: libexif/canon/mnote-canon-entry.c:173
+msgid "Default"
+msgstr "Predefinita"
+
+#: libexif/canon/mnote-canon-entry.c:174 libexif/exif-entry.c:698
+msgid "Spot"
+msgstr "Spot"
+
+#: libexif/canon/mnote-canon-entry.c:175 libexif/exif-entry.c:696
+msgid "Average"
+msgstr "Media"
+
+#: libexif/canon/mnote-canon-entry.c:176
+msgid "Evaluative"
+msgstr "Valutativa"
+
+#: libexif/canon/mnote-canon-entry.c:177 libexif/exif-entry.c:701
+msgid "Partial"
+msgstr "Parziale"
+
+#: libexif/canon/mnote-canon-entry.c:178 libexif/exif-entry.c:697
+msgid "Center-weighted average"
+msgstr "Media pesata al centro"
+
+#: libexif/canon/mnote-canon-entry.c:181
+msgid "Not known"
+msgstr "Sconosciuto"
+
+#: libexif/canon/mnote-canon-entry.c:183
+msgid "Very close"
+msgstr "Molto vicino"
+
+#: libexif/canon/mnote-canon-entry.c:184 libexif/exif-entry.c:797
+msgid "Close"
+msgstr "Vicino"
+
+#: libexif/canon/mnote-canon-entry.c:185
+msgid "Middle range"
+msgstr "Campo medio"
+
+#: libexif/canon/mnote-canon-entry.c:186
+msgid "Far range"
+msgstr "Campo lungo"
+
+#: libexif/canon/mnote-canon-entry.c:189
+#: libexif/pentax/mnote-pentax-entry.c:210
+msgid "Infinity"
+msgstr "Infinito"
+
+#: libexif/canon/mnote-canon-entry.c:190
+msgid "Manual AF point selection"
+msgstr "Selezione punto AF manuale"
+
+#: libexif/canon/mnote-canon-entry.c:191 libexif/canon/mnote-canon-entry.c:349
+msgid "None (MF)"
+msgstr "Nessuno (MF)"
+
+#: libexif/canon/mnote-canon-entry.c:192
+msgid "Auto-selected"
+msgstr "Selezione automatica"
+
+#: libexif/canon/mnote-canon-entry.c:193 libexif/canon/mnote-canon-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:224
+#: libexif/pentax/mnote-pentax-entry.c:238
+msgid "Right"
+msgstr "Destra"
+
+#: libexif/canon/mnote-canon-entry.c:194 libexif/canon/mnote-canon-entry.c:351
+#: libexif/pentax/mnote-pentax-entry.c:222
+#: libexif/pentax/mnote-pentax-entry.c:237
+msgid "Center"
+msgstr "Centro"
+
+#: libexif/canon/mnote-canon-entry.c:195 libexif/canon/mnote-canon-entry.c:353
+#: libexif/pentax/mnote-pentax-entry.c:220
+#: libexif/pentax/mnote-pentax-entry.c:236
+msgid "Left"
+msgstr "Sinistra"
+
+#: libexif/canon/mnote-canon-entry.c:196
+msgid "Auto AF point selection"
+msgstr "Selezione punto AF automatica"
+
+#: libexif/canon/mnote-canon-entry.c:197
+msgid "Easy shooting"
+msgstr "Easy shooting"
+
+#: libexif/canon/mnote-canon-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:163
+msgid "Program"
+msgstr "Programma"
+
+#: libexif/canon/mnote-canon-entry.c:199
+msgid "Tv-priority"
+msgstr "Priorità dei tempi"
+
+#: libexif/canon/mnote-canon-entry.c:200
+msgid "Av-priority"
+msgstr "Priorità del diaframma"
+
+#: libexif/canon/mnote-canon-entry.c:202
+msgid "A-DEP"
+msgstr "A-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:203
+msgid "M-DEP"
+msgstr "M-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:204
+msgid "Canon EF 50mm f/1.8"
+msgstr "Canon EF 50mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:205
+msgid "Canon EF 28mm f/2.8"
+msgstr "Canon EF 28mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:206
+msgid "Sigma UC Zoom 35-135mm f/4-5.6"
+msgstr "Sigma UC Zoom 35-135mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:207
+msgid "Tokina AF193-2 19-35mm f/3.5-4.5"
+msgstr "Tokina AF193-2 19-35mm f/3.5-4.5"
+
+#: libexif/canon/mnote-canon-entry.c:208
+msgid "Canon EF 100-300mm F5.6L"
+msgstr "Canon EF 100-300mm F5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:209
+msgid "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+msgstr "Sigma 50mm f/2.8 EX o 28mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:210
+msgid "Canon EF 35mm f/2"
+msgstr "Canon EF 35mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:211
+msgid "Canon EF 15mm f/2.8"
+msgstr "Canon EF 15mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:212
+msgid "Canon EF 80-200mm f/2.8L"
+msgstr "Canon EF 80-200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:213
+msgid "Tokina AT-X280AF PRO 28-80mm F2.8 Aspherical"
+msgstr "Tokina AT-X280AF PRO 28-80mm F2.8 asferico"
+
+#: libexif/canon/mnote-canon-entry.c:214
+msgid "Cosina 100mm f/3.5 Macro AF"
+msgstr "Cosina 100mm f/3.5 Macro AF"
+
+#: libexif/canon/mnote-canon-entry.c:215
+msgid "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+msgstr "Tamron AF asferico 28-200mm f/3.8-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:216
+msgid "Canon EF 50mm f/1.8 MkII"
+msgstr "Canon EF 50mm f/1.8 MkII"
+
+#: libexif/canon/mnote-canon-entry.c:217
+msgid "Tamron SP AF 300mm f/2.8 LD IF"
+msgstr "Tamron SP AF 300mm f/2.8 LD IF"
+
+#: libexif/canon/mnote-canon-entry.c:218
+msgid "Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+msgstr "Canon EF 24mm f/2.8 oppure Sigma 15mm f/2.8 EX fisheye"
+
+#: libexif/canon/mnote-canon-entry.c:219
+msgid "Canon EF 75-300mm f/4-5.6"
+msgstr "Canon EF 75-300mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:220
+msgid "Canon EF 28-80mm f/3.5-5.6"
+msgstr "Canon EF 28-80mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:221
+msgid "Canon EF 28-105mm f/4-5.6"
+msgstr "Canon EF 28-105mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:222
+msgid "Canon EF-S 18-55mm f/3.5-5.6"
+msgstr "Canon EF-S 18-55mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:223
+msgid "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+msgstr "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+
+#: libexif/canon/mnote-canon-entry.c:224
+msgid "Canon TS-E 24mm f/3.5L"
+msgstr "Canon TS-E 24mm f/3.5L"
+
+#: libexif/canon/mnote-canon-entry.c:225
+msgid "Canon TS-E 45mm f/2.8"
+msgstr "Canon TS-E 45mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:226
+msgid "Canon TS-E 90mm f/2.8"
+msgstr "Canon TS-E 90mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:227
+msgid "Canon EF 50mm f/1.0L"
+msgstr "Canon EF 50mm f/1.0L"
+
+#: libexif/canon/mnote-canon-entry.c:228
+msgid "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+msgstr "Sigma 17-35mm f2.8-4 EX asferico HSM"
+
+#: libexif/canon/mnote-canon-entry.c:229
+msgid "Canon EF 600mm f/4L IS"
+msgstr "Canon EF 600mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:230
+msgid "Canon EF 200mm f/1.8L"
+msgstr "Canon EF 200mm f/1.8L"
+
+#: libexif/canon/mnote-canon-entry.c:231
+msgid "Canon EF 300mm f/2.8L"
+msgstr "Canon EF 300mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:232
+msgid "Canon EF 85mm f/1.2L"
+msgstr "Canon EF 85mm f/1.2L"
+
+#: libexif/canon/mnote-canon-entry.c:233
+msgid "Canon EF 400mm f/2.8L"
+msgstr "Canon EF 400mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:234
+msgid "Canon EF 500mm f/4.5L"
+msgstr "Canon EF 500mm f/4.5L"
+
+#: libexif/canon/mnote-canon-entry.c:235
+msgid "Canon EF 300mm f/2.8L IS"
+msgstr "Canon EF 300mm f/2.8L IS"
+
+#: libexif/canon/mnote-canon-entry.c:236
+msgid "Canon EF 500mm f/4L IS"
+msgstr "Canon EF 500mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:237
+msgid "Canon EF 100mm f/2"
+msgstr "Canon EF 100mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:238
+msgid "Sigma 20mm EX f/1.8"
+msgstr "Sigma 20mm EX f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:239
+msgid "Canon EF 200mm f/2.8L"
+msgstr "Canon EF 200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:240
+msgid "Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+msgstr "Sigma 10-20mm F4-5.6 oppure 12-24mm f/4.5-5.6 oppure 14mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:241
+msgid "Canon EF 35-350mm f/3.5-5.6L"
+msgstr "Canon EF 35-350mm f/3.5-5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:242
+msgid "Canon EF 85mm f/1.8 USM"
+msgstr "Canon EF 85mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:243
+msgid "Canon EF 28-105mm f/3.5-4.5 USM"
+msgstr "Canon EF 28-105mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:244
+msgid "Canon EF 20-35mm f/3.5-4.5 USM"
+msgstr "Canon EF 20-35mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:245
+msgid "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+msgstr "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:246
+msgid "Canon EF 70-200mm f/2.8 L"
+msgstr "Canon EF 70-200mm f/2.8 L"
+
+#: libexif/canon/mnote-canon-entry.c:247
+msgid "Canon EF 70-200mm f/2.8 L + x1.4"
+msgstr "Canon EF 70-200mm f/2.8 L + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:248
+msgid "Canon EF 70-200mm f/2.8 L + x2"
+msgstr "Canon EF 70-200mm f/2.8 L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:249
+msgid "Canon EF 28mm f/1.8 USM"
+msgstr "Canon EF 28mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:250
+msgid "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+msgstr "Sigma 15-30mm f/3.5-4.5 EX DG Asferico"
+
+#: libexif/canon/mnote-canon-entry.c:251
+msgid "Canon EF 200mm f/2.8L II"
+msgstr "Canon EF 200mm f/2.8L II"
+
+#: libexif/canon/mnote-canon-entry.c:252
+msgid "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+msgstr "Canon EF 180mm Macro f/3.5L o Sigma 180mm EX HSM Macro f/3.5"
+
+#: libexif/canon/mnote-canon-entry.c:253
+msgid "Canon EF 135mm f/2L"
+msgstr "Canon EF 135mm f/2L"
+
+#: libexif/canon/mnote-canon-entry.c:254
+msgid "Canon EF 24-85mm f/3.5-4.5 USM"
+msgstr "Canon EF 24-85mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:255
+msgid "Canon EF 300mm f/4L IS"
+msgstr "Canon EF 300mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:256
+msgid "Canon EF 28-135mm f/3.5-5.6 IS"
+msgstr "Canon EF 28-135mm f/3.5-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:257
+msgid "Canon EF 35mm f/1.4L"
+msgstr "Canon EF 35mm f/1.4L"
+
+#: libexif/canon/mnote-canon-entry.c:258
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:259
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+
+#: libexif/canon/mnote-canon-entry.c:260
+msgid "Canon EF 100-400mm f/4.5-5.6L IS"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS"
+
+#: libexif/canon/mnote-canon-entry.c:261
+msgid "Canon EF 400mm f/2.8L + x2"
+msgstr "Canon EF 400mm f/2.8L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:262
+msgid "Canon EF 70-200mm f/4L"
+msgstr "Canon EF 70-200mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:263
+msgid "Canon EF 100mm f/2.8 Macro"
+msgstr "Canon EF 100mm f/2.8 Macro"
+
+#: libexif/canon/mnote-canon-entry.c:264
+msgid "Canon EF 400mm f/4 DO IS"
+msgstr "Canon EF 400mm f/4 DO IS"
+
+#: libexif/canon/mnote-canon-entry.c:265
+msgid "Canon EF 75-300mm f/4-5.6 IS"
+msgstr "Canon EF 75-300mm f/4-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:266
+msgid "Canon EF 50mm f/1.4"
+msgstr "Canon EF 50mm f/1.4"
+
+#: libexif/canon/mnote-canon-entry.c:267
+msgid "Canon EF 28-80 f/3.5-5.6 USM IV"
+msgstr "Canon EF 28-80 f/3.5-5.6 USM IV"
+
+#: libexif/canon/mnote-canon-entry.c:268
+msgid "Canon EF 28-200mm f/3.5-5.6"
+msgstr "Canon EF 28-200mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:269
+msgid "Canon EF 90-300mm f/4.5-5.6"
+msgstr "Canon EF 90-300mm f/4.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:270
+msgid "Canon EF-S 18-55mm f/3.5-4.5 USM"
+msgstr "Canon EF-S 18-55mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:271
+msgid "Canon EF 70-200mm f/2.8L IS USM"
+msgstr "Canon EF 70-200mm f/2.8L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:272
+msgid "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+msgstr "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:273
+msgid "Canon EF 70-200mm f/2.8L IS USM + x2"
+msgstr "Canon EF 70-200mm f/2.8L IS USM + x2"
+
+#: libexif/canon/mnote-canon-entry.c:274
+msgid "Canon EF 16-35mm f/2.8L"
+msgstr "Canon EF 16-35mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:275
+msgid "Canon EF 24-70mm f/2.8L"
+msgstr "Canon EF 24-70mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:276
+msgid "Canon EF 17-40mm f/4L"
+msgstr "Canon EF 17-40mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:277
+msgid "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+msgstr "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:278
+msgid "Canon EF-S 17-85mm f4-5.6 IS USM"
+msgstr "Canon EF-S 17-85mm f4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:279
+msgid "Canon EF-S10-22mm F3.5-4.5 USM"
+msgstr "Canon EF-S10-22mm F3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:280
+msgid "Canon EF-S60mm F2.8 Macro USM"
+msgstr "Canon EF-S60mm F2.8 Macro USM"
+
+#: libexif/canon/mnote-canon-entry.c:281
+msgid "Canon EF 24-105mm f/4L IS"
+msgstr "Canon EF 24-105mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:282
+msgid "Canon EF 70-300mm F4-5.6 IS USM"
+msgstr "Canon EF 70-300mm F4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:283
+msgid "Canon EF 50mm F1.2L USM"
+msgstr "Canon EF 50mm F1.2L USM"
+
+#: libexif/canon/mnote-canon-entry.c:284
+msgid "Canon EF 70-200mm f/4L IS USM"
+msgstr "Canon EF 70-200mm f/4L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:286
+msgid "TTL"
+msgstr "TTL"
+
+#: libexif/canon/mnote-canon-entry.c:287
+msgid "A-TTL"
+msgstr "A-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:288
+msgid "E-TTL"
+msgstr "E-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:289
+msgid "FP sync enabled"
+msgstr "Abilitata sincronizzazione FP"
+
+#: libexif/canon/mnote-canon-entry.c:290
+msgid "2nd-curtain sync used"
+msgstr "Usata sincronizzazione sulla seconda tendina"
+
+#: libexif/canon/mnote-canon-entry.c:291
+msgid "FP sync used"
+msgstr "Usata sincronizzazione FP"
+
+#: libexif/canon/mnote-canon-entry.c:292
+#: libexif/olympus/mnote-olympus-entry.c:190
+msgid "Internal"
+msgstr "Interno"
+
+#: libexif/canon/mnote-canon-entry.c:293
+#: libexif/olympus/mnote-olympus-entry.c:191
+msgid "External"
+msgstr "Esterno"
+
+#: libexif/canon/mnote-canon-entry.c:296
+msgid "Normal AE"
+msgstr "AE normale"
+
+#: libexif/canon/mnote-canon-entry.c:297
+msgid "Exposure compensation"
+msgstr "Compensazione dell'esposizione"
+
+#: libexif/canon/mnote-canon-entry.c:298
+msgid "AE lock"
+msgstr "Blocco AE"
+
+#: libexif/canon/mnote-canon-entry.c:299
+msgid "AE lock + exposure compensation"
+msgstr "Blocco AE + compensazione dell'esposizione"
+
+#: libexif/canon/mnote-canon-entry.c:300
+msgid "No AE"
+msgstr "Nessuna AE"
+
+#: libexif/canon/mnote-canon-entry.c:303
+msgid "On, shot only"
+msgstr "Acceso, solo scatto"
+
+#: libexif/canon/mnote-canon-entry.c:307
+msgid "Smooth"
+msgstr "Raffinato"
+
+#: libexif/canon/mnote-canon-entry.c:310 libexif/canon/mnote-canon-entry.c:334
+#: libexif/canon/mnote-canon-entry.c:393 libexif/canon/mnote-canon-entry.c:406
+#: libexif/fuji/mnote-fuji-entry.c:81 libexif/pentax/mnote-pentax-entry.c:87
+msgid "Custom"
+msgstr "Personalizzato"
+
+#: libexif/canon/mnote-canon-entry.c:311
+msgid "My color data"
+msgstr "Mio dato di colore"
+
+#: libexif/canon/mnote-canon-entry.c:313 libexif/canon/mnote-canon-entry.c:375
+#: libexif/pentax/mnote-pentax-entry.c:126
+#: libexif/pentax/mnote-pentax-entry.c:145
+msgid "Full"
+msgstr "Piena"
+
+#: libexif/canon/mnote-canon-entry.c:314 libexif/canon/mnote-canon-entry.c:374
+msgid "2/3"
+msgstr "2/3"
+
+#: libexif/canon/mnote-canon-entry.c:315 libexif/canon/mnote-canon-entry.c:373
+msgid "1/3"
+msgstr "1/3"
+
+#: libexif/canon/mnote-canon-entry.c:321
+msgid "Fixed"
+msgstr "Fissa"
+
+#: libexif/canon/mnote-canon-entry.c:322 libexif/pentax/mnote-pentax-tag.c:44
+msgid "Zoom"
+msgstr "Zoom"
+
+#: libexif/canon/mnote-canon-entry.c:329
+msgid "Sunny"
+msgstr "Soleggiato"
+
+#: libexif/canon/mnote-canon-entry.c:330 libexif/canon/mnote-canon-entry.c:402
+#: libexif/exif-entry.c:719 libexif/fuji/mnote-fuji-entry.c:75
+#: libexif/olympus/mnote-olympus-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:255
+msgid "Cloudy"
+msgstr "Nuvoloso"
+
+#: libexif/canon/mnote-canon-entry.c:331 libexif/canon/mnote-canon-entry.c:403
+#: libexif/exif-entry.c:716 libexif/pentax/mnote-pentax-entry.c:100
+#: libexif/pentax/mnote-pentax-entry.c:249
+msgid "Tungsten"
+msgstr "Tungsteno"
+
+#: libexif/canon/mnote-canon-entry.c:332 libexif/canon/mnote-canon-entry.c:404
+#: libexif/exif-entry.c:715 libexif/pentax/mnote-pentax-entry.c:101
+#: libexif/pentax/mnote-pentax-entry.c:248
+msgid "Fluorescent"
+msgstr "Fluorescente"
+
+#: libexif/canon/mnote-canon-entry.c:333 libexif/canon/mnote-canon-entry.c:405
+#: libexif/exif-entry.c:717 libexif/exif-entry.c:759 libexif/exif-tag.c:577
+#: libexif/fuji/mnote-fuji-entry.c:80 libexif/pentax/mnote-pentax-entry.c:254
+msgid "Flash"
+msgstr "Flash"
+
+#: libexif/canon/mnote-canon-entry.c:336 libexif/canon/mnote-canon-entry.c:408
+#: libexif/exif-entry.c:720 libexif/pentax/mnote-pentax-entry.c:99
+#: libexif/pentax/mnote-pentax-entry.c:247
+msgid "Shade"
+msgstr "Ombra"
+
+#: libexif/canon/mnote-canon-entry.c:337 libexif/canon/mnote-canon-entry.c:409
+msgid "Manual temperature (Kelvin)"
+msgstr "Temperatura manuale (Kelvin)"
+
+#: libexif/canon/mnote-canon-entry.c:338 libexif/canon/mnote-canon-entry.c:410
+msgid "PC set 1"
+msgstr "PC imposta 1"
+
+#: libexif/canon/mnote-canon-entry.c:339 libexif/canon/mnote-canon-entry.c:411
+msgid "PC set 2"
+msgstr "PC imposta 2"
+
+#: libexif/canon/mnote-canon-entry.c:340 libexif/canon/mnote-canon-entry.c:412
+msgid "PC set 3"
+msgstr "PC imposta 3"
+
+#: libexif/canon/mnote-canon-entry.c:341 libexif/canon/mnote-canon-entry.c:413
+#: libexif/exif-entry.c:721 libexif/fuji/mnote-fuji-entry.c:76
+#: libexif/pentax/mnote-pentax-entry.c:251
+msgid "Daylight fluorescent"
+msgstr "Illuminazione diurna fluorescente"
+
+#: libexif/canon/mnote-canon-entry.c:342 libexif/canon/mnote-canon-entry.c:414
+msgid "Custom 1"
+msgstr "Personalizzato 1"
+
+#: libexif/canon/mnote-canon-entry.c:343 libexif/canon/mnote-canon-entry.c:415
+msgid "Custom 2"
+msgstr "Personalizzato 2"
+
+#: libexif/canon/mnote-canon-entry.c:346 libexif/exif-entry.c:672
+#: libexif/pentax/mnote-pentax-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:132
+#: libexif/pentax/mnote-pentax-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:295
+msgid "Night scene"
+msgstr "Scena notturna"
+
+#: libexif/canon/mnote-canon-entry.c:352
+#, fuzzy
+msgid "Center-right"
+msgstr "Peso centrale"
+
+#: libexif/canon/mnote-canon-entry.c:354
+#, fuzzy
+msgid "Left-right"
+msgstr "Da sinistra a destra"
+
+#: libexif/canon/mnote-canon-entry.c:355
+#, fuzzy
+msgid "Left-center"
+msgstr "Sinistra + Centro"
+
+#: libexif/canon/mnote-canon-entry.c:356
+msgid "All"
+msgstr "Tutto"
+
+#: libexif/canon/mnote-canon-entry.c:358
+msgid "On (shot 1)"
+msgstr "Acceso (scatto 1)"
+
+#: libexif/canon/mnote-canon-entry.c:359
+msgid "On (shot 2)"
+msgstr "Acceso (scatto 2)"
+
+#: libexif/canon/mnote-canon-entry.c:360
+msgid "On (shot 3)"
+msgstr "Acceso (scatto 3)"
+
+#: libexif/canon/mnote-canon-entry.c:362
+msgid "EOS high-end"
+msgstr "EOS di fascia alta"
+
+#: libexif/canon/mnote-canon-entry.c:363
+msgid "Compact"
+msgstr "Compatta"
+
+#: libexif/canon/mnote-canon-entry.c:364
+msgid "EOS mid-range"
+msgstr "EOS di fascia media"
+
+#: libexif/canon/mnote-canon-entry.c:366
+msgid "Rotate 90 CW"
+msgstr "Ruota di 90° orario"
+
+#: libexif/canon/mnote-canon-entry.c:367
+msgid "Rotate 180"
+msgstr "Ruota di 180°"
+
+#: libexif/canon/mnote-canon-entry.c:368
+msgid "Rotate 270 CW"
+msgstr "Ruota di 270° orario"
+
+#: libexif/canon/mnote-canon-entry.c:369
+msgid "Rotated by software"
+msgstr "Ruotata via software"
+
+#: libexif/canon/mnote-canon-entry.c:381
+#: libexif/olympus/mnote-olympus-entry.c:606
+msgid "Left to right"
+msgstr "Da sinistra a destra"
+
+#: libexif/canon/mnote-canon-entry.c:382
+#: libexif/olympus/mnote-olympus-entry.c:609
+msgid "Right to left"
+msgstr "Da destra a sinistra"
+
+#: libexif/canon/mnote-canon-entry.c:383
+#: libexif/olympus/mnote-olympus-entry.c:612
+msgid "Bottom to top"
+msgstr "Dal basso verso l'alto"
+
+#: libexif/canon/mnote-canon-entry.c:384
+#: libexif/olympus/mnote-olympus-entry.c:615
+msgid "Top to bottom"
+msgstr "Dall'alto verso il basso"
+
+#: libexif/canon/mnote-canon-entry.c:385
+msgid "2x2 matrix (clockwise)"
+msgstr "Matrice 2x2 (oraria)"
+
+#: libexif/canon/mnote-canon-entry.c:391 libexif/canon/mnote-canon-entry.c:397
+#: libexif/canon/mnote-canon-entry.c:418 libexif/canon/mnote-canon-entry.c:428
+#: libexif/exif-entry.c:671 libexif/fuji/mnote-fuji-entry.c:84
+#: libexif/fuji/mnote-fuji-entry.c:93 libexif/fuji/mnote-fuji-entry.c:163
+#: libexif/olympus/mnote-olympus-entry.c:227
+msgid "Standard"
+msgstr "Normale"
+
+#: libexif/canon/mnote-canon-entry.c:394
+msgid "N/A"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:395
+msgid "Lowest"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:399
+msgid "Highest"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:401 libexif/exif-entry.c:714
+#: libexif/fuji/mnote-fuji-entry.c:74
+#: libexif/olympus/mnote-olympus-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:98
+#: libexif/pentax/mnote-pentax-entry.c:246
+msgid "Daylight"
+msgstr "Luce diurna"
+
+#: libexif/canon/mnote-canon-entry.c:419
+msgid "Set 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:420
+msgid "Set 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:421
+msgid "Set 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:422
+msgid "User def. 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:423
+msgid "User def. 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:424
+msgid "User def. 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:425
+msgid "External 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:426
+msgid "External 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:427
+msgid "External 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:432
+msgid "Faithful"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:115
+msgid "Monochrome"
+msgstr "Monocromatico"
+
+#: libexif/canon/mnote-canon-entry.c:491
+msgid ", "
+msgstr ", "
+
+#: libexif/canon/mnote-canon-entry.c:577 libexif/canon/mnote-canon-entry.c:674
+#, c-format
+msgid "%i (ms)"
+msgstr "%i (ms)"
+
+#: libexif/canon/mnote-canon-entry.c:621
+#, c-format
+msgid "%.2f mm"
+msgstr "%.2f mm"
+
+#: libexif/canon/mnote-canon-entry.c:645
+#, c-format
+msgid "%.2f EV"
+msgstr "%.2f EV"
+
+# TAG_EXPOSURE_TIME
+#: libexif/canon/mnote-canon-entry.c:655 libexif/exif-entry.c:1064
+#, c-format
+msgid "1/%i"
+msgstr "1/%i"
+
+#: libexif/canon/mnote-canon-entry.c:667
+#, c-format
+msgid "%u mm"
+msgstr "%u mm"
+
+# ####TAG PRIVATI DEI MANUFACTER####
+#
+# Sarebbe interessante sapere da chi possiede tali macchine fotografiche
+# se e come sono tradotti in italiano.
+#: libexif/canon/mnote-canon-tag.c:35
+msgid "Settings (First Part)"
+msgstr "Impostazioni (prima parte)"
+
+#: libexif/canon/mnote-canon-tag.c:36 libexif/canon/mnote-canon-tag.c:92
+#: libexif/exif-tag.c:581 libexif/pentax/mnote-pentax-tag.c:88
+msgid "Focal Length"
+msgstr "Lunghezza focale"
+
+#: libexif/canon/mnote-canon-tag.c:37
+msgid "Settings (Second Part)"
+msgstr "Impostazioni (seconda parte)"
+
+#: libexif/canon/mnote-canon-tag.c:38
+#: libexif/olympus/mnote-olympus-entry.c:595
+#: libexif/pentax/mnote-pentax-entry.c:177
+msgid "Panorama"
+msgstr "Panorama"
+
+#: libexif/canon/mnote-canon-tag.c:39
+msgid "Image Type"
+msgstr "Tipo immagine"
+
+#: libexif/canon/mnote-canon-tag.c:40 libexif/olympus/mnote-olympus-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:113
+msgid "Firmware Version"
+msgstr "Versione firmware"
+
+#: libexif/canon/mnote-canon-tag.c:41
+msgid "Image Number"
+msgstr "Numero immagine"
+
+#: libexif/canon/mnote-canon-tag.c:42
+msgid "Owner Name"
+msgstr "Nome proprietario"
+
+#: libexif/canon/mnote-canon-tag.c:43
+msgid "Color Information"
+msgstr "Informazioni colore"
+
+#: libexif/canon/mnote-canon-tag.c:44 libexif/fuji/mnote-fuji-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:81
+#: libexif/olympus/mnote-olympus-tag.c:146
+msgid "Serial Number"
+msgstr "Numero di serie"
+
+#: libexif/canon/mnote-canon-tag.c:45
+msgid "Custom Functions"
+msgstr "Funzioni personalizzate"
+
+#: libexif/canon/mnote-canon-tag.c:56 libexif/fuji/mnote-fuji-tag.c:45
+msgid "Macro Mode"
+msgstr "Modalità macro"
+
+#: libexif/canon/mnote-canon-tag.c:57 libexif/canon/mnote-canon-tag.c:117
+#: libexif/olympus/mnote-olympus-tag.c:175
+#: libexif/pentax/mnote-pentax-tag.c:128
+msgid "Self-timer"
+msgstr "Autoscatto"
+
+#: libexif/canon/mnote-canon-tag.c:58 libexif/fuji/mnote-fuji-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:94
+#: libexif/olympus/mnote-olympus-tag.c:107
+msgid "Quality"
+msgstr "Qualità"
+
+#: libexif/canon/mnote-canon-tag.c:59 libexif/fuji/mnote-fuji-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:45
+#: libexif/olympus/mnote-olympus-tag.c:127
+#: libexif/pentax/mnote-pentax-tag.c:38 libexif/pentax/mnote-pentax-tag.c:73
+msgid "Flash Mode"
+msgstr "Modalità flash"
+
+#: libexif/canon/mnote-canon-tag.c:60 libexif/pentax/mnote-pentax-tag.c:101
+msgid "Drive Mode"
+msgstr "Modo scatto"
+
+#: libexif/canon/mnote-canon-tag.c:61 libexif/canon/mnote-canon-tag.c:82
+#: libexif/olympus/mnote-olympus-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:134
+#: libexif/olympus/mnote-olympus-tag.c:173
+#: libexif/pentax/mnote-pentax-tag.c:37 libexif/pentax/mnote-pentax-tag.c:74
+#: libexif/pentax/mnote-pentax-tag.c:130
+msgid "Focus Mode"
+msgstr "Modalità fuoco"
+
+#: libexif/canon/mnote-canon-tag.c:62 libexif/pentax/mnote-pentax-tag.c:127
+msgid "Record Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:63 libexif/pentax/mnote-pentax-tag.c:71
+msgid "Image Size"
+msgstr "Dimensione immagine"
+
+#: libexif/canon/mnote-canon-tag.c:64
+msgid "Easy Shooting Mode"
+msgstr "Modalità \"Easy shooting\""
+
+#: libexif/canon/mnote-canon-tag.c:65 libexif/olympus/mnote-olympus-tag.c:64
+#: libexif/olympus/mnote-olympus-tag.c:101
+#: libexif/olympus/mnote-olympus-tag.c:110
+#: libexif/olympus/mnote-olympus-tag.c:180
+#: libexif/pentax/mnote-pentax-tag.c:89
+msgid "Digital Zoom"
+msgstr "Zoom digitale"
+
+#: libexif/canon/mnote-canon-tag.c:66 libexif/exif-tag.c:828
+#: libexif/fuji/mnote-fuji-tag.c:42 libexif/pentax/mnote-pentax-tag.c:46
+#: libexif/pentax/mnote-pentax-tag.c:91
+msgid "Contrast"
+msgstr "Contrasto"
+
+#: libexif/canon/mnote-canon-tag.c:67 libexif/exif-tag.c:832
+#: libexif/olympus/mnote-olympus-tag.c:75
+#: libexif/olympus/mnote-olympus-tag.c:87 libexif/pentax/mnote-pentax-tag.c:47
+#: libexif/pentax/mnote-pentax-tag.c:90
+msgid "Saturation"
+msgstr "Saturazione"
+
+#: libexif/canon/mnote-canon-tag.c:68 libexif/exif-tag.c:836
+#: libexif/fuji/mnote-fuji-tag.c:39 libexif/pentax/mnote-pentax-tag.c:45
+#: libexif/pentax/mnote-pentax-tag.c:92
+msgid "Sharpness"
+msgstr "Nitidezza"
+
+#: libexif/canon/mnote-canon-tag.c:69
+msgid "ISO"
+msgstr "ISO"
+
+#: libexif/canon/mnote-canon-tag.c:70 libexif/exif-tag.c:571
+#: libexif/pentax/mnote-pentax-tag.c:82
+msgid "Metering Mode"
+msgstr "Modalità di misurazione"
+
+#: libexif/canon/mnote-canon-tag.c:71 libexif/olympus/mnote-olympus-tag.c:133
+msgid "Focus Range"
+msgstr "Area di messa a fuoco"
+
+#: libexif/canon/mnote-canon-tag.c:72 libexif/canon/mnote-canon-tag.c:105
+msgid "AF Point"
+msgstr "Punto AF"
+
+#: libexif/canon/mnote-canon-tag.c:73 libexif/exif-tag.c:795
+msgid "Exposure Mode"
+msgstr "Modalità esposizione"
+
+#: libexif/canon/mnote-canon-tag.c:74 libexif/olympus/mnote-olympus-tag.c:61
+#: libexif/pentax/mnote-pentax-tag.c:106
+msgid "Lens Type"
+msgstr "Tipo di obiettivo"
+
+#: libexif/canon/mnote-canon-tag.c:75
+msgid "Long Focal Length of Lens"
+msgstr "Lunghezza focale lunga dell'obiettivo"
+
+#: libexif/canon/mnote-canon-tag.c:76
+msgid "Short Focal Length of Lens"
+msgstr "Lunghezza focale corta dell'obiettivo"
+
+#: libexif/canon/mnote-canon-tag.c:77
+msgid "Focal Units per mm"
+msgstr "Unità focali per mm"
+
+#: libexif/canon/mnote-canon-tag.c:78
+msgid "Maximal Aperture"
+msgstr "Apertura massima"
+
+#: libexif/canon/mnote-canon-tag.c:79
+msgid "Minimal Aperture"
+msgstr "Apertura minima"
+
+#: libexif/canon/mnote-canon-tag.c:80
+msgid "Flash Activity"
+msgstr "Attività flash"
+
+#: libexif/canon/mnote-canon-tag.c:81
+msgid "Flash Details"
+msgstr "Dettagli flash"
+
+#: libexif/canon/mnote-canon-tag.c:83
+msgid "AE Setting"
+msgstr "Impostazione AE"
+
+#: libexif/canon/mnote-canon-tag.c:84
+msgid "Image Stabilization"
+msgstr "Stabilizzazione immagine"
+
+#: libexif/canon/mnote-canon-tag.c:85
+msgid "Display Aperture"
+msgstr "Apertura schermo"
+
+#: libexif/canon/mnote-canon-tag.c:86
+msgid "Zoom Source Width"
+msgstr "Ampiezza zoom sorgente"
+
+#: libexif/canon/mnote-canon-tag.c:87
+msgid "Zoom Target Width"
+msgstr "Ampiezza zoom bersaglio"
+
+#: libexif/canon/mnote-canon-tag.c:88
+msgid "Photo Effect"
+msgstr "Effetto della foto"
+
+#: libexif/canon/mnote-canon-tag.c:89 libexif/canon/mnote-canon-tag.c:118
+msgid "Manual Flash Output"
+msgstr "Output flash manuale"
+
+#: libexif/canon/mnote-canon-tag.c:90
+msgid "Color Tone"
+msgstr "Tono del colore"
+
+#: libexif/canon/mnote-canon-tag.c:91
+msgid "Focal Type"
+msgstr "Tipo di focale"
+
+#: libexif/canon/mnote-canon-tag.c:93
+msgid "Focal Plane X Size"
+msgstr "Dimensione x del piano focale"
+
+#: libexif/canon/mnote-canon-tag.c:94
+msgid "Focal Plane Y Size"
+msgstr "Dimensione y del piano focale"
+
+#: libexif/canon/mnote-canon-tag.c:95
+msgid "Auto ISO"
+msgstr "Auto ISO"
+
+#: libexif/canon/mnote-canon-tag.c:96
+msgid "Shot ISO"
+msgstr "ISO dello scatto"
+
+#: libexif/canon/mnote-canon-tag.c:97
+msgid "Measured EV"
+msgstr "EV misurata"
+
+#: libexif/canon/mnote-canon-tag.c:98
+msgid "Target Aperture"
+msgstr "Apertura mirino"
+
+#: libexif/canon/mnote-canon-tag.c:99
+msgid "Target Exposure Time"
+msgstr "Tempo di esposizione mirino"
+
+#: libexif/canon/mnote-canon-tag.c:100 libexif/olympus/mnote-olympus-tag.c:129
+#: libexif/pentax/mnote-pentax-tag.c:81
+msgid "Exposure Compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:101 libexif/canon/mnote-canon-tag.c:123
+#: libexif/exif-tag.c:800 libexif/fuji/mnote-fuji-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:41
+#: libexif/olympus/mnote-olympus-tag.c:98 libexif/pentax/mnote-pentax-tag.c:41
+#: libexif/pentax/mnote-pentax-tag.c:84 libexif/pentax/mnote-pentax-tag.c:124
+msgid "White Balance"
+msgstr "Bilanciamento bianco"
+
+#: libexif/canon/mnote-canon-tag.c:102
+msgid "Slow Shutter"
+msgstr "Otturatore lento"
+
+#: libexif/canon/mnote-canon-tag.c:103
+msgid "Sequence Number"
+msgstr "Numero della sequenza"
+
+#: libexif/canon/mnote-canon-tag.c:104
+msgid "Flash Guide Number"
+msgstr "Numero guida del flash"
+
+#: libexif/canon/mnote-canon-tag.c:106 libexif/olympus/mnote-olympus-tag.c:52
+#: libexif/pentax/mnote-pentax-tag.c:109
+msgid "Flash Exposure Compensation"
+msgstr "Compensazione esposizione flash"
+
+#: libexif/canon/mnote-canon-tag.c:107
+msgid "AE Bracketing"
+msgstr "Bracketing AE"
+
+#: libexif/canon/mnote-canon-tag.c:108
+msgid "AE Bracket Value"
+msgstr "Valore del bracketing AE"
+
+#: libexif/canon/mnote-canon-tag.c:109
+msgid "Focus Distance Upper"
+msgstr "Distanza di messa a fuoco maggiore"
+
+#: libexif/canon/mnote-canon-tag.c:110
+msgid "Focus Distance Lower"
+msgstr "Distanza di messa a fuoco minore"
+
+#: libexif/canon/mnote-canon-tag.c:111
+msgid "FNumber"
+msgstr "Numero F"
+
+#: libexif/canon/mnote-canon-tag.c:112 libexif/exif-tag.c:466
+#: libexif/pentax/mnote-pentax-tag.c:78
+msgid "Exposure Time"
+msgstr "Tempo esposizione"
+
+#: libexif/canon/mnote-canon-tag.c:113
+msgid "Bulb Duration"
+msgstr "Durata posa"
+
+#: libexif/canon/mnote-canon-tag.c:114
+msgid "Camera Type"
+msgstr "Tipo di fotocamera"
+
+#: libexif/canon/mnote-canon-tag.c:115
+msgid "Auto Rotate"
+msgstr "Rotazione automatica"
+
+#: libexif/canon/mnote-canon-tag.c:116
+msgid "ND Filter"
+msgstr "Filtro ND"
+
+#: libexif/canon/mnote-canon-tag.c:119
+msgid "Panorama Frame"
+msgstr "Fotogramma panorama"
+
+#: libexif/canon/mnote-canon-tag.c:120
+msgid "Panorama Direction"
+msgstr "Direzione panorama"
+
+#: libexif/canon/mnote-canon-tag.c:121
+msgid "Tone Curve"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:122
+#, fuzzy
+msgid "Sharpness Frequency"
+msgstr "Impostazioni nitidezza"
+
+#: libexif/canon/mnote-canon-tag.c:124
+#, fuzzy
+msgid "Picture Style"
+msgstr "Modalità Picture"
+
+#: libexif/exif-byte-order.c:33
+msgid "Motorola"
+msgstr "Motorola"
+
+#: libexif/exif-byte-order.c:35
+msgid "Intel"
+msgstr "Intel"
+
+#: libexif/exif-data.c:780
+msgid "Size of data too small to allow for EXIF data."
+msgstr "Dimensione dati troppo piccola da consentire per i dati EXIF."
+
+#: libexif/exif-data.c:841
+msgid "EXIF marker not found."
+msgstr "Marcatore EXIF non trovato."
+
+#: libexif/exif-data.c:868
+msgid "EXIF header not found."
+msgstr "Intestazioni EXIF non trovate."
+
+#: libexif/exif-data.c:884
+msgid "Unknown encoding."
+msgstr "Codifica sconosciuta."
+
+#: libexif/exif-data.c:1168
+msgid "Ignore unknown tags"
+msgstr "Ignora etichette sconosciute"
+
+#: libexif/exif-data.c:1169
+msgid "Ignore unknown tags when loading EXIF data."
+msgstr "Ignora etichette sconosciute quando vengono caricati i dati EXIF."
+
+#: libexif/exif-data.c:1170
+msgid "Follow specification"
+msgstr "Segue la specifica"
+
+#: libexif/exif-data.c:1171
+msgid ""
+"Add, correct and remove entries to get EXIF data that follows the "
+"specification."
+msgstr ""
+"Aggiungi, correggi e rimuovi le voci per i dati EXIF che seguono la specifica"
+
+#: libexif/exif-data.c:1173
+msgid "Do not change maker note"
+msgstr ""
+
+#: libexif/exif-data.c:1174
+msgid ""
+"When loading and resaving Exif data, save the maker note unmodified. Be "
+"aware that the maker note can get corrupted."
+msgstr ""
+"Durante il caricamento e il risalvataggio dei dati EXIF, salvare le note del "
+"produttore senza modificarle. Essere consapevoli che le note del produttore "
+"possono corrompersi."
+
+#: libexif/exif-entry.c:234 libexif/exif-entry.c:303 libexif/exif-entry.c:336
+#, c-format
+msgid ""
+"Tag '%s' was of format '%s' (which is against specification) and has been "
+"changed to format '%s'."
+msgstr ""
+"L'etichetta «%s» era del formato «%s» (che non rispetta la specifica) ed è "
+"stata cambiata nel formato «%s»."
+
+#: libexif/exif-entry.c:271
+#, c-format
+msgid ""
+"Tag '%s' is of format '%s' (which is against specification) but cannot be "
+"changed to format '%s'."
+msgstr ""
+"L'etichetta «%s» è del formato «%s» (che non rispetta la specifica) ma non può "
+"essere cambiata nel formato «%s»."
+
+#: libexif/exif-entry.c:354
+#, c-format
+msgid ""
+"Tag 'UserComment' had invalid format '%s'. Format has been set to "
+"'undefined'."
+msgstr ""
+"L'etichetta «UserComment» aveva un formato non valido «%s». Il formato è stato "
+"impostato a «undefined»."
+
+#: libexif/exif-entry.c:381
+msgid ""
+"Tag 'UserComment' has been expanded to at least 8 bytes in order to follow "
+"the specification."
+msgstr ""
+"L'etichetta «UserComment» è stata espansa ad almeno 8 byte per seguire la "
+"specifica."
+
+#: libexif/exif-entry.c:396
+msgid ""
+"Tag 'UserComment' is not empty but does not start with a format identifier. "
+"This has been fixed."
+msgstr ""
+"L'etichetta «UserComment» non è vuota ma non inizia con l'identificatore di "
+"formato. Il problema è stato corretto."
+
+#: libexif/exif-entry.c:424
+msgid ""
+"Tag 'UserComment' did not start with a format identifier. This has been "
+"fixed."
+msgstr ""
+"L'etichetta «UserComment» non iniziava con un identificatore di formato. Il "
+"problema è stato corretto."
+
+#: libexif/exif-entry.c:462
+#, c-format
+msgid "%i bytes undefined data"
+msgstr ""
+
+#: libexif/exif-entry.c:589
+#, c-format
+msgid "%i bytes unsupported data type"
+msgstr "%i byte di dati di tipo non supportato "
+
+#: libexif/exif-entry.c:622
+#, c-format
+msgid "The tag '%s' contains data of an invalid format ('%s', expected '%s')."
+msgstr ""
+"L'etichetta «%s» contiene dati in formato non valido («%s», era atteso «%s»)."
+
+#: libexif/exif-entry.c:635
+#, c-format
+msgid ""
+"The tag '%s' contains an invalid number of components (%i, expected %i)."
+msgstr ""
+"L'etichetta «%s» contiene un numero di componenti non valido (%i, atteso %i)."
+
+#: libexif/exif-entry.c:649
+msgid "Chunky format"
+msgstr "Formato \"chunky\""
+
+#: libexif/exif-entry.c:649
+msgid "Planar format"
+msgstr "Formato \"planar\""
+
+#: libexif/exif-entry.c:651 libexif/exif-entry.c:743
+#: test/nls/test-codeset.c:54
+msgid "Not defined"
+msgstr "Non definito"
+
+#: libexif/exif-entry.c:651
+msgid "One-chip color area sensor"
+msgstr "Sensore area colore 1-chip"
+
+# TAG:SENSING_METHOD
+#: libexif/exif-entry.c:652
+msgid "Two-chip color area sensor"
+msgstr "Sensore area colore 2-chip"
+
+#: libexif/exif-entry.c:652
+msgid "Three-chip color area sensor"
+msgstr "Sensore area colore 3-chip"
+
+#: libexif/exif-entry.c:653
+msgid "Color sequential area sensor"
+msgstr "Sensore area colore sequenziale"
+
+#: libexif/exif-entry.c:653
+msgid "Trilinear sensor"
+msgstr "Sensore trilineare"
+
+#: libexif/exif-entry.c:654
+msgid "Color sequential linear sensor"
+msgstr "Sensore lineare colore sequenziale"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:233
+msgid "Top-left"
+msgstr "In alto a sinistra"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:235
+msgid "Top-right"
+msgstr "In alto a destra"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:241
+msgid "Bottom-right"
+msgstr "In basso a destra"
+
+#: libexif/exif-entry.c:657 libexif/pentax/mnote-pentax-entry.c:239
+msgid "Bottom-left"
+msgstr "In basso a sinistra"
+
+#: libexif/exif-entry.c:657
+msgid "Left-top"
+msgstr "Sinistra - alto"
+
+#: libexif/exif-entry.c:657
+msgid "Right-top"
+msgstr "Destra - alto"
+
+#: libexif/exif-entry.c:658
+msgid "Right-bottom"
+msgstr "Destra - basso"
+
+#: libexif/exif-entry.c:658
+msgid "Left-bottom"
+msgstr "Sinistra - basso"
+
+#: libexif/exif-entry.c:660
+msgid "Centered"
+msgstr "Centrato"
+
+#: libexif/exif-entry.c:660
+msgid "Co-sited"
+msgstr "Co-posizionato"
+
+#: libexif/exif-entry.c:662
+msgid "Reversed mono"
+msgstr "Mono invertito"
+
+#: libexif/exif-entry.c:662
+msgid "Normal mono"
+msgstr "Mono normale"
+
+#: libexif/exif-entry.c:662
+msgid "RGB"
+msgstr "RGB"
+
+#: libexif/exif-entry.c:662
+msgid "Palette"
+msgstr "Tavolozza"
+
+#: libexif/exif-entry.c:663
+msgid "CMYK"
+msgstr "CMYK"
+
+#: libexif/exif-entry.c:663
+msgid "YCbCr"
+msgstr "YCbCr"
+
+#: libexif/exif-entry.c:663
+msgid "CieLAB"
+msgstr "CieLAB"
+
+#: libexif/exif-entry.c:665
+msgid "Normal process"
+msgstr "Elaborazione normale"
+
+#: libexif/exif-entry.c:665
+msgid "Custom process"
+msgstr "Elaborazione personalizzata"
+
+#: libexif/exif-entry.c:667
+msgid "Auto exposure"
+msgstr "Esposizione automatica"
+
+#: libexif/exif-entry.c:667 libexif/fuji/mnote-fuji-entry.c:139
+msgid "Manual exposure"
+msgstr "Esposizione manuale"
+
+#: libexif/exif-entry.c:667
+msgid "Auto bracket"
+msgstr "Bracketing automatico"
+
+#: libexif/exif-entry.c:669
+msgid "Auto white balance"
+msgstr "Bilanciamento del bianco automatico"
+
+#: libexif/exif-entry.c:669
+msgid "Manual white balance"
+msgstr "Bilanciamento del bianco manuale"
+
+#: libexif/exif-entry.c:674
+msgid "Low gain up"
+msgstr "Leggero aumento del guadagno"
+
+#: libexif/exif-entry.c:674
+msgid "High gain up"
+msgstr "Forte aumento del guadagno"
+
+#: libexif/exif-entry.c:675
+msgid "Low gain down"
+msgstr "Leggera riduzione del guadagno"
+
+#: libexif/exif-entry.c:675
+msgid "High gain down"
+msgstr "Forte riduzione del guadagno"
+
+#: libexif/exif-entry.c:677
+msgid "Low saturation"
+msgstr "Saturazione bassa"
+
+#: libexif/exif-entry.c:677 test/nls/test-codeset.c:48
+#: test/nls/test-codeset.c:61
+msgid "High saturation"
+msgstr "Saturazione alta"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:63
+#: libexif/olympus/mnote-olympus-entry.c:205
+#: libexif/olympus/mnote-olympus-entry.c:214
+#: libexif/pentax/mnote-pentax-entry.c:106
+#: libexif/pentax/mnote-pentax-entry.c:170
+msgid "Soft"
+msgstr "Soft"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:65 libexif/fuji/mnote-fuji-entry.c:95
+#: libexif/olympus/mnote-olympus-entry.c:204
+#: libexif/olympus/mnote-olympus-entry.c:212
+#: libexif/pentax/mnote-pentax-entry.c:107
+msgid "Hard"
+msgstr "Hard"
+
+#: libexif/exif-entry.c:695 libexif/exif-entry.c:713 libexif/exif-entry.c:795
+#: libexif/olympus/mnote-olympus-entry.c:589
+#: libexif/olympus/mnote-olympus-entry.c:683
+#: libexif/olympus/mnote-olympus-entry.c:738
+#: libexif/pentax/mnote-pentax-entry.c:256
+msgid "Unknown"
+msgstr "Sconosciuto"
+
+#: libexif/exif-entry.c:696
+msgid "Avg"
+msgstr "Med"
+
+#: libexif/exif-entry.c:697
+msgid "Center-weight"
+msgstr "Peso centrale"
+
+#: libexif/exif-entry.c:699
+msgid "Multi spot"
+msgstr "Multispot"
+
+#: libexif/exif-entry.c:700
+msgid "Pattern"
+msgstr "Modello"
+
+#: libexif/exif-entry.c:705
+msgid "Uncompressed"
+msgstr "Non compressa"
+
+#: libexif/exif-entry.c:706
+msgid "LZW compression"
+msgstr "Compressione LZW"
+
+#: libexif/exif-entry.c:707 libexif/exif-entry.c:708
+msgid "JPEG compression"
+msgstr "Compressione JPG"
+
+#: libexif/exif-entry.c:709
+msgid "Deflate/ZIP compression"
+msgstr "Compressione ZIP/Deflate"
+
+#: libexif/exif-entry.c:710
+msgid "PackBits compression"
+msgstr "Compressione PackBits"
+
+#: libexif/exif-entry.c:716
+msgid "Tungsten incandescent light"
+msgstr "Luce incandescente al tungsteno"
+
+# TAG:LIGHT_SOURCE
+#
+#: libexif/exif-entry.c:718
+msgid "Fine weather"
+msgstr "Cielo limpido"
+
+# TAG:LIGHT_SOURCE
+#
+#: libexif/exif-entry.c:719
+msgid "Cloudy weather"
+msgstr "Cielo nuvoloso"
+
+#: libexif/exif-entry.c:722 libexif/fuji/mnote-fuji-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:252
+msgid "Day white fluorescent"
+msgstr "Fluorescente bianca diurna"
+
+#: libexif/exif-entry.c:723
+msgid "Cool white fluorescent"
+msgstr "Fluorescente bianca fredda"
+
+#: libexif/exif-entry.c:724 libexif/fuji/mnote-fuji-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:253
+msgid "White fluorescent"
+msgstr "Fluorescente bianca"
+
+#: libexif/exif-entry.c:725
+msgid "Standard light A"
+msgstr "Luce standard A"
+
+#: libexif/exif-entry.c:726
+msgid "Standard light B"
+msgstr "Luce standard B"
+
+#: libexif/exif-entry.c:727
+msgid "Standard light C"
+msgstr "Luce strandard C"
+
+#: libexif/exif-entry.c:728
+msgid "D55"
+msgstr "D55"
+
+#: libexif/exif-entry.c:729
+msgid "D65"
+msgstr "D65"
+
+#: libexif/exif-entry.c:730
+msgid "D75"
+msgstr "D75"
+
+#: libexif/exif-entry.c:731
+msgid "ISO studio tungsten"
+msgstr "Tungsteno ISO da studio"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "Inch"
+msgstr "Pollici"
+
+# TAG:LIGHT_SOURCE
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "in"
+msgstr "in"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "Centimeter"
+msgstr "Centimetri"
+
+# TAG:LIGHT_SOURCE
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "cm"
+msgstr "cm"
+
+#: libexif/exif-entry.c:745
+msgid "Normal program"
+msgstr "Programma normale"
+
+#: libexif/exif-entry.c:746
+msgid "Aperture priority"
+msgstr "Priorità apertura"
+
+#: libexif/exif-entry.c:746 libexif/exif-tag.c:550
+msgid "Aperture"
+msgstr "Apertura"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter priority"
+msgstr "Priorità otturatore"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter"
+msgstr "Otturatore"
+
+#: libexif/exif-entry.c:748
+msgid "Creative program (biased toward depth of field)"
+msgstr "Programma zona creativa (basato sulla profondità di campo)"
+
+#: libexif/exif-entry.c:749
+msgid "Creative"
+msgstr "Zona creativa"
+
+#: libexif/exif-entry.c:750
+msgid "Creative program (biased toward fast shutter speed)"
+msgstr ""
+"Programma zona creativa (basato sui tempi scatto con otturatore veloce)"
+
+#: libexif/exif-entry.c:751
+msgid "Action"
+msgstr "Azione"
+
+#: libexif/exif-entry.c:752
+msgid "Portrait mode (for closeup photos with the background out of focus)"
+msgstr "Modalità ritratto (per foto ravvicinate con lo sfondo fuori fuoco)"
+
+#: libexif/exif-entry.c:754
+msgid "Landscape mode (for landscape photos with the background in focus)"
+msgstr "Modalità paesaggio (per foto di paesaggi con lo sfondo messo a fuoco)"
+
+#: libexif/exif-entry.c:758 libexif/exif-entry.c:763
+#: libexif/olympus/mnote-olympus-entry.c:97
+msgid "Flash did not fire"
+msgstr "Il flash non ha illuminato"
+
+# TAG:FLASH
+#: libexif/exif-entry.c:758
+msgid "No flash"
+msgstr "Senza flash"
+
+# TAG:FLASH
+#: libexif/exif-entry.c:759
+msgid "Flash fired"
+msgstr "Il flash ha illuminato."
+
+# TAG:FLASH
+#: libexif/exif-entry.c:759 libexif/olympus/mnote-olympus-entry.c:170
+#: libexif/olympus/mnote-olympus-entry.c:175
+#: libexif/olympus/mnote-olympus-entry.c:209
+#: libexif/olympus/mnote-olympus-entry.c:218
+#: libexif/olympus/mnote-olympus-entry.c:241
+msgid "Yes"
+msgstr "Sì"
+
+#: libexif/exif-entry.c:760
+msgid "Strobe return light not detected"
+msgstr "Luce sonda di ritorno non rilevata"
+
+#: libexif/exif-entry.c:760
+msgid "Without strobe"
+msgstr "Senza sonda"
+
+#: libexif/exif-entry.c:762
+msgid "Strobe return light detected"
+msgstr "Luce sonda di ritorno rilevata"
+
+#: libexif/exif-entry.c:762
+msgid "With strobe"
+msgstr "Con sonda"
+
+#: libexif/exif-entry.c:764
+msgid "Flash fired, compulsory flash mode"
+msgstr "Il flash ha illuminato, modalità flash forzato."
+
+#: libexif/exif-entry.c:765
+msgid "Flash fired, compulsory flash mode, return light not detected"
+msgstr ""
+"Il flash ha illuminato, modalità flash forzato, luce di ritorno non rilevata"
+
+#: libexif/exif-entry.c:767
+msgid "Flash fired, compulsory flash mode, return light detected"
+msgstr ""
+"Il flash ha illuminato, modalità flash forzato, luce di ritorno rilevata"
+
+#: libexif/exif-entry.c:769
+msgid "Flash did not fire, compulsory flash mode"
+msgstr "Il flash non ha illuminato, modalità flash forzato"
+
+#: libexif/exif-entry.c:770
+msgid "Flash did not fire, auto mode"
+msgstr "Il flash non ha illuminato, modalità automatica"
+
+#: libexif/exif-entry.c:771
+msgid "Flash fired, auto mode"
+msgstr "Il flash ha illuminato, modalità automatica"
+
+#: libexif/exif-entry.c:772
+msgid "Flash fired, auto mode, return light not detected"
+msgstr ""
+"Il flash ha illuminato, modalità automatica, luce di ritorno non rilevata"
+
+#: libexif/exif-entry.c:774
+msgid "Flash fired, auto mode, return light detected"
+msgstr "Il flash ha illuminato, modalità automatica, luce di ritorno rilevata"
+
+#: libexif/exif-entry.c:775
+msgid "No flash function"
+msgstr "Funzione flash assente"
+
+#: libexif/exif-entry.c:776
+msgid "Flash fired, red-eye reduction mode"
+msgstr "Il flash ha illuminato, modalità riduzione occhi rossi"
+
+#: libexif/exif-entry.c:777
+msgid "Flash fired, red-eye reduction mode, return light not detected"
+msgstr ""
+"Il flash ha illuminato, modalità riduzione occhi rossi, luce di ritorno non "
+"rilevata"
+
+#: libexif/exif-entry.c:779
+msgid "Flash fired, red-eye reduction mode, return light detected"
+msgstr ""
+"Il flash ha illuminato, modalità riduzione occhi rossi, luce di ritorno "
+"rilevata"
+
+#: libexif/exif-entry.c:781
+msgid "Flash fired, compulsory flash mode, red-eye reduction mode"
+msgstr ""
+"Il flash ha illuminato, modalità flash forzato, modalità riduzione occhi "
+"rossi"
+
+#: libexif/exif-entry.c:783
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light not "
+"detected"
+msgstr ""
+"Il flash ha illuminato, modalità flash forzato, modalità riduzione occhi "
+"rossi, luce di ritorno non rilevata"
+
+#: libexif/exif-entry.c:785
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light "
+"detected"
+msgstr ""
+"Il flash ha illuminato, modalità flash forzato, modalità riduzione occhi "
+"rossi, luce di ritorno rilevata"
+
+#: libexif/exif-entry.c:787
+msgid "Flash did not fire, auto mode, red-eye reduction mode"
+msgstr ""
+"Il flash non ha illuminato, modalità automatica, modalità riduzione occhi "
+"rossi"
+
+#: libexif/exif-entry.c:788
+msgid "Flash fired, auto mode, red-eye reduction mode"
+msgstr ""
+"Il flash ha illuminato, modalità automatica, modalità riduzione occhi rossi"
+
+#: libexif/exif-entry.c:789
+msgid ""
+"Flash fired, auto mode, return light not detected, red-eye reduction mode"
+msgstr ""
+"Il flash ha illuminato, modalità automatica, luce di ritorno non rilevata, "
+"modalità riduzione occhi rossi"
+
+# TAG:FLASH
+#
+# ultimo della serie :-)
+#: libexif/exif-entry.c:791
+msgid "Flash fired, auto mode, return light detected, red-eye reduction mode"
+msgstr ""
+"Il flash ha illuminato, modalità automatica, luce di ritorno rilevata, "
+"modalità riduzione occhi rossi"
+
+# TAG:SUBJECT_DISTANCE_RANGE
+#: libexif/exif-entry.c:795
+msgid "?"
+msgstr "?"
+
+#: libexif/exif-entry.c:797
+msgid "Close view"
+msgstr "Vista ravvicinata"
+
+#: libexif/exif-entry.c:798
+msgid "Distant view"
+msgstr "Vista distanziata"
+
+#: libexif/exif-entry.c:798
+msgid "Distant"
+msgstr ""
+
+#: libexif/exif-entry.c:801
+msgid "sRGB"
+msgstr "sRBG"
+
+#: libexif/exif-entry.c:802
+msgid "Adobe RGB"
+msgstr "Adobe RGB"
+
+#: libexif/exif-entry.c:803
+msgid "Uncalibrated"
+msgstr "Non calibrato"
+
+#: libexif/exif-entry.c:857
+#, c-format
+msgid "Invalid size of entry (%i, expected %li x %i)."
+msgstr "Dimensione della voce non valida (%i, atteso %li x %i)."
+
+#: libexif/exif-entry.c:890
+msgid "Unsupported UNICODE string"
+msgstr "Stringa UNICODE non supportata"
+
+#: libexif/exif-entry.c:898
+msgid "Unsupported JIS string"
+msgstr "Stringa JIS non supportata"
+
+#: libexif/exif-entry.c:914
+msgid "Tag UserComment does not comply with standard but contains data."
+msgstr "L'etichetta UserComment non rispetta lo standard, ma contiene dati."
+
+#: libexif/exif-entry.c:918
+#, c-format
+msgid "Byte at position %i: 0x%02x"
+msgstr "Byte nella posizione %i: 0x%02x"
+
+#: libexif/exif-entry.c:927
+msgid "Unknown Exif Version"
+msgstr "Versione Exif sconosciuta"
+
+#: libexif/exif-entry.c:931
+#, c-format
+msgid "Exif Version %d.%d"
+msgstr "Exif versione %d.%d"
+
+#: libexif/exif-entry.c:942
+msgid "FlashPix Version 1.0"
+msgstr "FlashPix versione 1.0"
+
+#: libexif/exif-entry.c:944
+msgid "FlashPix Version 1.01"
+msgstr "FlashPix versione 1.01"
+
+#: libexif/exif-entry.c:946
+msgid "Unknown FlashPix Version"
+msgstr "Versione FlashPix sconosciuta"
+
+#: libexif/exif-entry.c:959 libexif/exif-entry.c:972 libexif/exif-entry.c:1628
+#: libexif/exif-entry.c:1633 libexif/exif-entry.c:1637
+#: libexif/exif-entry.c:1642 libexif/exif-entry.c:1643
+msgid "[None]"
+msgstr "[Nessuno]"
+
+#: libexif/exif-entry.c:961
+msgid "(Photographer)"
+msgstr "(Fotografo)"
+
+#: libexif/exif-entry.c:975
+msgid "(Editor)"
+msgstr "(Editor)"
+
+#: libexif/exif-entry.c:999 libexif/exif-entry.c:1079
+#: libexif/exif-entry.c:1096 libexif/exif-entry.c:1140
+#, c-format
+msgid "%.02f EV"
+msgstr "%.02f EV"
+
+#: libexif/exif-entry.c:1000
+#, c-format
+msgid " (f/%.01f)"
+msgstr " (f/%.01f)"
+
+# TAG:OCAL_LENGTH
+#
+#: libexif/exif-entry.c:1034
+#, c-format
+msgid " (35 equivalent: %d mm)"
+msgstr " (35 equivalente: %d mm)"
+
+#: libexif/exif-entry.c:1067 libexif/exif-entry.c:1068
+msgid " sec."
+msgstr " sec."
+
+#: libexif/exif-entry.c:1082
+#, c-format
+msgid " (1/%d sec.)"
+msgstr " (1/%d sec.)"
+
+#: libexif/exif-entry.c:1084
+#, c-format
+msgid " (%d sec.)"
+msgstr " (%d sec.)"
+
+#: libexif/exif-entry.c:1097
+#, c-format
+msgid " (%.02f cd/m^2)"
+msgstr " (%.02f cd/m^2)"
+
+#: libexif/exif-entry.c:1107
+msgid "DSC"
+msgstr "DSC"
+
+#: libexif/exif-entry.c:1109 libexif/exif-entry.c:1149
+#: libexif/exif-entry.c:1236 libexif/exif-entry.c:1287
+#: libexif/exif-entry.c:1296 libexif/exif-entry.c:1332
+#: libexif/fuji/mnote-fuji-entry.c:236 libexif/fuji/mnote-fuji-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:359
+#, c-format
+msgid "Internal error (unknown value %i)"
+msgstr "Errore interno (valore sconosciuto %i)"
+
+#: libexif/exif-entry.c:1117
+msgid "-"
+msgstr "-"
+
+#: libexif/exif-entry.c:1118
+msgid "Y"
+msgstr "Y"
+
+#: libexif/exif-entry.c:1119
+msgid "Cb"
+msgstr "Cb"
+
+#: libexif/exif-entry.c:1120
+msgid "Cr"
+msgstr "Cr"
+
+#: libexif/exif-entry.c:1121
+msgid "R"
+msgstr "R"
+
+#: libexif/exif-entry.c:1122
+msgid "G"
+msgstr "G"
+
+#: libexif/exif-entry.c:1123
+msgid "B"
+msgstr "B"
+
+#: libexif/exif-entry.c:1124
+msgid "Reserved"
+msgstr "Riservato"
+
+#: libexif/exif-entry.c:1147
+msgid "Directly photographed"
+msgstr ""
+
+#: libexif/exif-entry.c:1160
+msgid "YCbCr4:2:2"
+msgstr "YCbCr 4:2:2"
+
+#: libexif/exif-entry.c:1162
+msgid "YCbCr4:2:0"
+msgstr "YCbCr 4:2:0"
+
+# Credo indichi qualcosa che si trova all'interno di un cerchio con raggio
+#: libexif/exif-entry.c:1179
+#, c-format
+msgid "Within distance %i of (x,y) = (%i,%i)"
+msgstr "All'interno della distanza %i partendo da (x,y) = (%i,%i)"
+
+#: libexif/exif-entry.c:1188
+#, c-format
+msgid "Within rectangle (width %i, height %i) around (x,y) = (%i,%i)"
+msgstr ""
+"All'interno del rettangolo (larghezza %i, altezza %i) intorno a (x,y) = (%i,%"
+"i)"
+
+#: libexif/exif-entry.c:1194
+#, c-format
+msgid "Unexpected number of components (%li, expected 2, 3, or 4)."
+msgstr "Numero di componenti inatteso (%li, atteso 2, 3 o 4)."
+
+#: libexif/exif-entry.c:1232
+#, fuzzy
+msgid "Sea level"
+msgstr "Livello del mare"
+
+#: libexif/exif-entry.c:1234
+msgid "Sea level reference"
+msgstr "Riferimento di altitudine"
+
+#: libexif/exif-entry.c:1342
+#, c-format
+msgid "Unknown value %i"
+msgstr "Valore sconosciuto %i"
+
+#: libexif/exif-format.c:37
+msgid "Short"
+msgstr "Short"
+
+#: libexif/exif-format.c:38
+msgid "Rational"
+msgstr "Rational"
+
+#: libexif/exif-format.c:39
+msgid "SRational"
+msgstr "SRational"
+
+#: libexif/exif-format.c:40
+msgid "Undefined"
+msgstr "Non definito"
+
+#: libexif/exif-format.c:41
+msgid "ASCII"
+msgstr "ASCII"
+
+#: libexif/exif-format.c:42
+msgid "Long"
+msgstr "Long"
+
+#: libexif/exif-format.c:43
+msgid "Byte"
+msgstr "Byte"
+
+#: libexif/exif-format.c:44
+msgid "SByte"
+msgstr "SByte"
+
+#: libexif/exif-format.c:45
+msgid "SShort"
+msgstr "SShort"
+
+#: libexif/exif-format.c:46
+msgid "SLong"
+msgstr "SLong"
+
+#: libexif/exif-format.c:47
+msgid "Float"
+msgstr "Float"
+
+#: libexif/exif-format.c:48
+msgid "Double"
+msgstr "Double"
+
+#: libexif/exif-loader.c:119
+#, c-format
+msgid "The file '%s' could not be opened."
+msgstr "Il file «%s» non può essere aperto."
+
+#: libexif/exif-loader.c:300
+msgid "The data supplied does not seem to contain EXIF data."
+msgstr "I dati forniti non sembrano contenere dati EXIF."
+
+#: libexif/exif-log.c:43
+msgid "Debugging information"
+msgstr "Informazioni di debug"
+
+#: libexif/exif-log.c:44
+msgid "Debugging information is available."
+msgstr "Informazioni di debug disponibili."
+
+#: libexif/exif-log.c:45
+msgid "Not enough memory"
+msgstr "Memoria insufficiente"
+
+#: libexif/exif-log.c:46
+msgid "The system cannot provide enough memory."
+msgstr "Il sistema non può fornire memoria sufficiente."
+
+#: libexif/exif-log.c:47
+msgid "Corrupt data"
+msgstr "Dati corrotti"
+
+#: libexif/exif-log.c:48
+msgid "The data provided does not follow the specification."
+msgstr "I dati forniti non seguono la specifica."
+
+#: libexif/exif-tag.c:62
+msgid "GPS Tag Version"
+msgstr "GPS versione tag"
+
+#: libexif/exif-tag.c:63
+msgid ""
+"Indicates the version of <GPSInfoIFD>. The version is given as 2.0.0.0. This "
+"tag is mandatory when <GPSInfo> tag is present. (Note: The <GPSVersionID> "
+"tag is given in bytes, unlike the <ExifVersion> tag. When the version is "
+"2.0.0.0, the tag value is 02000000.H)."
+msgstr ""
+"Indica la versione del <GPSInfoIFD>. La versione è data come 2.0.0.0. Questa "
+"etichetta è obbligatorio quando l'etichetta <GPSInfo> è presente. (Nota: "
+"l'etichetta <GPSVersionID> è data in byte, a differenza dell'etichetta "
+"<ExifVersion>. Quando la versione è 2.0.0.0, il valore dell'etichetta è "
+"02000000.H)."
+
+#: libexif/exif-tag.c:69
+msgid "Interoperability Index"
+msgstr ""
+
+#: libexif/exif-tag.c:70
+msgid ""
+"Indicates the identification of the Interoperability rule. Use \"R98\" for "
+"stating ExifR98 Rules. Four bytes used including the termination code "
+"(NULL). see the separate volume of Recommended Exif Interoperability Rules "
+"(ExifR98) for other tags used for ExifR98."
+msgstr ""
+"Indica l'identificazione della regola di interoperabilità. Utilizzare \"R98"
+"\" per esprimere le regole ExifR98. Utilizzati 4 byte incluso il codice di "
+"terminazione (NULL). Vedere il volume separato delle regole raccomandate di "
+"interoperabilità Exif (ExifR98) per altre etichette utilizzate per ExifR98."
+
+#: libexif/exif-tag.c:76
+msgid "North or South Latitude"
+msgstr "Latitudine Nord o Sud"
+
+#: libexif/exif-tag.c:77
+msgid ""
+"Indicates whether the latitude is north or south latitude. The ASCII value "
+"'N' indicates north latitude, and 'S' is south latitude."
+msgstr ""
+"Indica se la latitudine è Nord oppure Sud. Il valore ASCII \"N\" indica "
+"latitudine Nord, \"S\" latitudine Sud."
+
+#: libexif/exif-tag.c:81
+msgid "Interoperability Version"
+msgstr ""
+
+#: libexif/exif-tag.c:83
+msgid "Latitude"
+msgstr "Latitudine"
+
+#: libexif/exif-tag.c:84
+msgid ""
+"Indicates the latitude. The latitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is dd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is dd/1,mmmm/100,0/1."
+msgstr ""
+"Indica la latitudine. La latitudine è espressa come tre valori RATIONAL che "
+"indicano rispettivamente i gradi, i minuti e i secondi. Quando sono indicati "
+"i gradi, i minuti e i secondi, il formato è gg/1,mm/1,ss/1. Quando sono "
+"utilizzati i gradi e i minuti e, ad esempio, le frazioni dei minuti sono "
+"date sino a due cifre decimali, il formato è gg/1,mmmm/100,0/1."
+
+#: libexif/exif-tag.c:91
+msgid "East or West Longitude"
+msgstr "Longitudine Est o Ovest"
+
+#: libexif/exif-tag.c:92
+msgid ""
+"Indicates whether the longitude is east or west longitude. ASCII 'E' "
+"indicates east longitude, and 'W' is west longitude."
+msgstr ""
+"Indica se la longitudine è Est oppure Ovest. Il valore ASCII \"E\" indica "
+"longitudine Est, \"W\" longitudine Ovest."
+
+#: libexif/exif-tag.c:95
+msgid "Longitude"
+msgstr "Longitudine"
+
+#: libexif/exif-tag.c:96
+msgid ""
+"Indicates the longitude. The longitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is ddd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is ddd/1,mmmm/100,0/1."
+msgstr ""
+"Indica la longitudine. La longitudine è espressa come tre valori RATIONAL "
+"che indicano rispettivamente i gradi, i minuti e i secondi. Quando sono "
+"espressi i gradi, i minuti e i secondi, il formato è ggg/1,mm/1,ss/1. Quando "
+"sono utilizzati i gradi e i minuti e, ad esempio, le frazioni dei minuti "
+"sono date sino a due cifre decimali, il formato è ggg/1,mmmm/100,0/1."
+
+#: libexif/exif-tag.c:103
+msgid "Altitude Reference"
+msgstr "Riferimento di altitudine"
+
+#: libexif/exif-tag.c:104
+msgid ""
+"Indicates the altitude used as the reference altitude. If the reference is "
+"sea level and the altitude is above sea level, 0 is given. If the altitude "
+"is below sea level, a value of 1 is given and the altitude is indicated as "
+"an absolute value in the GSPAltitude tag. The reference unit is meters. Note "
+"that this tag is BYTE type, unlike other reference tags."
+msgstr ""
+"Indica l'altitudine utilizzata come altitudine di riferimento. Se il "
+"riferimento è il livello del mare e l'altitudine è sopra il livello del "
+"mare, è indicato 0. Se l'altitudine è sotto il livello del mare, è indicato "
+"il valore 1 e l'altitudine è data come valore assoluto nell'etichetta "
+"GSPAltitude. L'unità di riferimento sono i metri. Notare che questa "
+"etichetta è di tipo BYTE, a differenza di altre etichette di riferimento."
+
+#: libexif/exif-tag.c:110
+msgid "Altitude"
+msgstr "Altitudine"
+
+#: libexif/exif-tag.c:111
+msgid ""
+"Indicates the altitude based on the reference in GPSAltitudeRef. Altitude is "
+"expressed as one RATIONAL value. The reference unit is meters."
+msgstr ""
+"Indica l'altitudine basata sul riferimento in GPSAltitudeRef. L'altitudine è "
+"espressa come un valore RATIONAL. L'unità di riferimento sono i metri."
+
+#: libexif/exif-tag.c:114
+msgid "GPS Time (Atomic Clock)"
+msgstr ""
+
+#: libexif/exif-tag.c:115
+msgid ""
+"Indicates the time as UTC (Coordinated Universal Time). TimeStamp is "
+"expressed as three RATIONAL values giving the hour, minute, and second."
+msgstr ""
+
+#: libexif/exif-tag.c:118
+msgid "GPS Satellites"
+msgstr "Satelliti GPS"
+
+#: libexif/exif-tag.c:119
+msgid ""
+"Indicates the GPS satellites used for measurements. This tag can be used to "
+"describe the number of satellites, their ID number, angle of elevation, "
+"azimuth, SNR and other information in ASCII notation. The format is not "
+"specified. If the GPS receiver is incapable of taking measurements, value of "
+"the tag shall be set to NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:125
+msgid "GPS Receiver Status"
+msgstr ""
+
+#: libexif/exif-tag.c:126
+msgid ""
+"Indicates the status of the GPS receiver when the image is recorded. 'A' "
+"means measurement is in progress, and 'V' means the measurement is "
+"Interoperability."
+msgstr ""
+
+#: libexif/exif-tag.c:129
+#, fuzzy
+msgid "GPS Measurement Mode"
+msgstr "Modalità Verde"
+
+#: libexif/exif-tag.c:130
+msgid ""
+"Indicates the GPS measurement mode. '2' means two-dimensional measurement "
+"and '3' means three-dimensional measurement is in progress."
+msgstr ""
+
+#: libexif/exif-tag.c:133
+msgid "Measurement Precision"
+msgstr ""
+
+#: libexif/exif-tag.c:134
+msgid ""
+"Indicates the GPS DOP (data degree of precision). An HDOP value is written "
+"during two-dimensional measurement, and PDOP during three-dimensional "
+"measurement."
+msgstr ""
+
+#: libexif/exif-tag.c:137
+#, fuzzy
+msgid "Speed Unit"
+msgstr "Speedlight"
+
+#: libexif/exif-tag.c:138
+msgid ""
+"Indicates the unit used to express the GPS receiver speed of movement. 'K', "
+"'M' and 'N' represent kilometers per hour, miles per hour, and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:141
+msgid "Speed of GPS Receiver"
+msgstr ""
+
+#: libexif/exif-tag.c:142
+#, fuzzy
+msgid "Indicates the speed of GPS receiver movement."
+msgstr "Indica il valore del coefficiente gamma."
+
+#: libexif/exif-tag.c:143
+msgid "Reference for direction of movement"
+msgstr ""
+
+#: libexif/exif-tag.c:144
+msgid ""
+"Indicates the reference for giving the direction of GPS receiver movement. "
+"'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:147
+msgid "Direction of Movement"
+msgstr ""
+
+#: libexif/exif-tag.c:148
+msgid ""
+"Indicates the direction of GPS receiver movement. The range of values is "
+"from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:150
+msgid "GPS Image Direction Reference"
+msgstr ""
+
+#: libexif/exif-tag.c:151
+msgid ""
+"Indicates the reference for giving the direction of the image when it is "
+"captured. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:153
+#, fuzzy
+msgid "GPS Image Direction"
+msgstr "Descrizione immagine"
+
+#: libexif/exif-tag.c:154
+msgid ""
+"Indicates the direction of the image when it was captured. The range of "
+"values is from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:156
+msgid "Geodetic Survey Data Used"
+msgstr ""
+
+#: libexif/exif-tag.c:157
+msgid ""
+"Indicates the geodetic survey data used by the GPS receiver. If the survey "
+"data is restricted to Japan, the value of this tag is 'TOKYO' or 'WGS-84'. "
+"If a GPS Info tag is recorded, it is strongly recommended that this tag be "
+"recorded."
+msgstr ""
+
+#: libexif/exif-tag.c:161
+msgid "Reference For Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:162
+msgid ""
+"Indicates whether the latitude of the destination point is north or south "
+"latitude. The ASCII value 'N' indicates north latitude, and 'S' is south "
+"latitude."
+msgstr ""
+"Indica se la latitudine del punto di destinazione è Nord oppure Sud. Il "
+"valore ASCII \"N\" indica latitudine Nord, \"S\" latitudine Sud."
+
+#: libexif/exif-tag.c:165
+msgid "Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:166
+msgid ""
+"Indicates the latitude of the destination point. The latitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If latitude is expressed as degrees, minutes and seconds, a "
+"typical format would be dd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be dd/1,mmmm/100,0/1."
+msgstr ""
+"Indica la latitudine del punto di destinazione. È espressa come tre valori "
+"RATIONAL che indicano rispettivamente i gradi, i minuti e i secondi. Se la "
+"latitudine è indicata in gradi, minuti e secondi, un formato tipico è gg/1,"
+"mm/1,ss/1. Quando sono utilizzati i gradi e i minuti e, ad esempio, le "
+"frazioni dei minuti sono date sino a due cifre decimali, il formato risulta "
+"gg/1,mmmm/100,0/1."
+
+#: libexif/exif-tag.c:173
+msgid "Reference for Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:174
+#, fuzzy
+msgid ""
+"Indicates whether the longitude of the destination point is east or west "
+"longitude. ASCII 'E' indicates east longitude, and 'W' is west longitude."
+msgstr ""
+"Indica se la longitudine è Est oppure Ovest. Il valore ASCII \"E\" indica "
+"longitudine Est, \"W\" longitudine Ovest."
+
+#: libexif/exif-tag.c:177
+msgid "Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:178
+#, fuzzy
+msgid ""
+"Indicates the longitude of the destination point. The longitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If longitude is expressed as degrees, minutes and seconds, a "
+"typical format would be ddd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be ddd/1,mmmm/100,0/1."
+msgstr ""
+"Indica la longitudine. La longitudine è espressa come tre valori RATIONAL "
+"che indicano rispettivamente i gradi, i minuti e i secondi. Quando sono "
+"espressi i gradi, i minuti e i secondi, il formato è ggg/1,mm/1,ss/1. Quando "
+"sono utilizzati i gradi e i minuti e, ad esempio, le frazioni dei minuti "
+"sono date sino a due cifre decimali, il formato è ggg/1,mmmm/100,0/1."
+
+#: libexif/exif-tag.c:186
+msgid "Reference for Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:187
+msgid ""
+"Indicates the reference used for giving the bearing to the destination "
+"point. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:190
+msgid "Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:191
+msgid ""
+"Indicates the bearing to the destination point. The range of values is from "
+"0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:193
+msgid "Reference for Distance to Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:194
+msgid ""
+"Indicates the unit used to express the distance to the destination point. "
+"'K', 'M' and 'N' represent kilometers, miles and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:197
+#, fuzzy
+msgid "Distance to Destination"
+msgstr "Descrizione dell'impostazione del dispositivo"
+
+#: libexif/exif-tag.c:198
+#, fuzzy
+msgid "Indicates the distance to the destination point."
+msgstr "Questa etichetta indica la distanza dal soggetto."
+
+#: libexif/exif-tag.c:199
+#, fuzzy
+msgid "Name of GPS Processing Method"
+msgstr "Metodo di rilevamento"
+
+#: libexif/exif-tag.c:200
+msgid ""
+"A character string recording the name of the method used for location "
+"finding. The first byte indicates the character code used, and this is "
+"followed by the name of the method. Since the Type is not ASCII, NULL "
+"termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:205
+msgid "Name of GPS Area"
+msgstr ""
+
+#: libexif/exif-tag.c:206
+msgid ""
+"A character string recording the name of the GPS area. The first byte "
+"indicates the character code used, and this is followed by the name of the "
+"GPS area. Since the Type is not ASCII, NULL termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:210
+msgid "GPS Date"
+msgstr ""
+
+#: libexif/exif-tag.c:211
+msgid ""
+"A character string recording date and time information relative to UTC "
+"(Coordinated Universal Time). The format is \"YYYY:MM:DD\". The length of "
+"the string is 11 bytes including NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:215
+msgid "GPS Differential Correction"
+msgstr ""
+
+#: libexif/exif-tag.c:216
+msgid ""
+"Indicates whether differential correction is applied to the GPS receiver."
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "New Subfile Type"
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "A general indication of the kind of data contained in this subfile."
+msgstr ""
+"Una indicazione generica del tipo di dati contenuti in questo sotto-file."
+
+#: libexif/exif-tag.c:222
+msgid "Image Width"
+msgstr "Larghezza immagine"
+
+#: libexif/exif-tag.c:223
+msgid ""
+"The number of columns of image data, equal to the number of pixels per row. "
+"In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+"Il numero di colonne di dati dell'immagine, uguale al numero di pixel per "
+"riga. Nei dati compressi come JPEG viene usato un marcatore JPEG al posto di "
+"questa etichetta."
+
+#: libexif/exif-tag.c:227
+msgid "Image Length"
+msgstr "Altezza immagine"
+
+#: libexif/exif-tag.c:228
+msgid ""
+"The number of rows of image data. In JPEG compressed data a JPEG marker is "
+"used instead of this tag."
+msgstr ""
+"Il numero di righe di dati dell'immagine. Nei dati compressi come JPEG viene "
+"usato un marcatore JPEG al posto di questa etichetta."
+
+#: libexif/exif-tag.c:231
+msgid "Bits per Sample"
+msgstr "Bit per campione"
+
+#: libexif/exif-tag.c:232
+msgid ""
+"The number of bits per image component. In this standard each component of "
+"the image is 8 bits, so the value for this tag is 8. See also "
+"<SamplesPerPixel>. In JPEG compressed data a JPEG marker is used instead of "
+"this tag."
+msgstr ""
+"Il numero di bit per componente dell'immagine. In questo standard ogni "
+"componente dell'immagine è di 8 bit, quindi il valore per questa etichetta è "
+"8. Vedere anche <SamplesPerPixel>. Nei dati compressi come JPEG è utilizzato "
+"un marcatore JPEG al posto di questa etichetta."
+
+#: libexif/exif-tag.c:237
+msgid "Compression"
+msgstr "Compressione"
+
+#: libexif/exif-tag.c:238
+msgid ""
+"The compression scheme used for the image data. When a primary image is JPEG "
+"compressed, this designation is not necessary and is omitted. When "
+"thumbnails use JPEG compression, this tag value is set to 6."
+msgstr ""
+"Lo schema di compressione usato per i dati dell'immagine. Quando un'immagine "
+"primaria è compressa come JPEG, questa designazione non è necessaria e viene "
+"omessa. Quando le miniature usano la compressione JPEG, il valore di questa "
+"etichetta è impostato a 6."
+
+#: libexif/exif-tag.c:244
+msgid "Photometric Interpretation"
+msgstr "Interpretazione fotometrica"
+
+#: libexif/exif-tag.c:245
+msgid ""
+"The pixel composition. In JPEG compressed data a JPEG marker is used instead "
+"of this tag."
+msgstr ""
+"La composizione dei pixel. Nei dati compressi come JPEG viene usato un "
+"marcatore JPEG al posto di questa etichetta."
+
+#: libexif/exif-tag.c:249
+msgid "Fill Order"
+msgstr "Ordine riempimento"
+
+#: libexif/exif-tag.c:251
+msgid "Document Name"
+msgstr "Nome documento"
+
+#: libexif/exif-tag.c:253
+msgid "Image Description"
+msgstr "Descrizione immagine"
+
+#: libexif/exif-tag.c:254
+msgid ""
+"A character string giving the title of the image. It may be a comment such "
+"as \"1988 company picnic\" or the like. Two-bytes character codes cannot be "
+"used. When a 2-bytes code is necessary, the Exif Private tag <UserComment> "
+"is to be used."
+msgstr ""
+"Una stringa di caratteri che fornisce il titolo dell'immagine. Potrebbe "
+"essere un commento, come \"Picnic in montagna, maggio 2004\". Non è "
+"possibile usare codici di carattere a 2 byte. Quando un codice a 2 byte è "
+"necessario, bisogna usare l'etichetta Exit privata <UserComment>."
+
+#: libexif/exif-tag.c:260
+msgid "Manufacturer"
+msgstr "Produttore"
+
+#: libexif/exif-tag.c:261
+msgid ""
+"The manufacturer of the recording equipment. This is the manufacturer of the "
+"DSC, scanner, video digitizer or other equipment that generated the image. "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+"Il produttore dell'apparecchiatura di ripresa; indica il produttore del DSC, "
+"scanner, digitalizzatore video ed altra apparecchiatura usata per generare "
+"l'immagine. Quando questo campo è lasciato in bianco, viene trattato come "
+"sconosciuto."
+
+#: libexif/exif-tag.c:267
+msgid "Model"
+msgstr "Modello"
+
+#: libexif/exif-tag.c:268
+msgid ""
+"The model name or model number of the equipment. This is the model name or "
+"number of the DSC, scanner, video digitizer or other equipment that "
+"generated the image. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Il nome o il codice di modello dell'equipaggiamento: indica il nome o codice "
+"di modello del DSC, scanner, digitalizzatore video ed altra apparecchiatura "
+"usata per generare l'immagine. Quando questo campo è lasciato in bianco, "
+"viene trattato come sconosciuto."
+
+#: libexif/exif-tag.c:273
+msgid "Strip Offsets"
+msgstr "Offset della striscia"
+
+#: libexif/exif-tag.c:274
+msgid ""
+"For each strip, the byte offset of that strip. It is recommended that this "
+"be selected so the number of strip bytes does not exceed 64 Kbytes. With "
+"JPEG compressed data this designation is not needed and is omitted. See also "
+"<RowsPerStrip> and <StripByteCounts>."
+msgstr ""
+"Per ciascuna striscia, l'offset in byte di quella striscia. Si raccomanda "
+"che sia selezionato in modo che il numero di byte della striscia non ecceda "
+"i 64 Kbyte. Nei dati compressi come JPEG questa designazione non è "
+"necessaria e si omette. Vedere anche <RowsPerStrip> e <StripByteCounts>."
+
+#: libexif/exif-tag.c:280
+msgid "Orientation"
+msgstr "Orientamento"
+
+#: libexif/exif-tag.c:281
+msgid "The image orientation viewed in terms of rows and columns."
+msgstr "L'orientazione dell'immagine vista in termini di righe e colonne."
+
+#: libexif/exif-tag.c:284
+msgid "Samples per Pixel"
+msgstr "Campioni per pixel"
+
+#: libexif/exif-tag.c:285
+msgid ""
+"The number of components per pixel. Since this standard applies to RGB and "
+"YCbCr images, the value set for this tag is 3. In JPEG compressed data a "
+"JPEG marker is used instead of this tag."
+msgstr ""
+"Il numero di componenti per ciascun pixel. Poiché questo standard si applica "
+"ad immagini RGB e YCbCr, il valore di questa etichetta è impostato a 3. Nei "
+"dati compressi come JPEG viene usato un marcatore JPEG al posto di questa "
+"etichetta."
+
+#: libexif/exif-tag.c:290
+msgid "Rows per Strip"
+msgstr "Righe per striscia"
+
+#: libexif/exif-tag.c:291
+msgid ""
+"The number of rows per strip. This is the number of rows in the image of one "
+"strip when an image is divided into strips. With JPEG compressed data this "
+"designation is not needed and is omitted. See also <StripOffsets> and "
+"<StripByteCounts>."
+msgstr ""
+"Il numero di righe per striscia. Questo è il numero di righe di una striscia "
+"nell'immagine quando si divide un'immagine in strisce. Nei dati compressi "
+"come JPEG questa designazione non è necessaria e viene omessa. Vedere anche "
+"<StripOffsets> e <StripByteCounts>."
+
+#: libexif/exif-tag.c:297
+msgid "Strip Byte Count"
+msgstr "Conteggio byte della striscia"
+
+#: libexif/exif-tag.c:298
+msgid ""
+"The total number of bytes in each strip. With JPEG compressed data this "
+"designation is not needed and is omitted."
+msgstr ""
+"Il numero totale di byte per ciascuna striscia. Nei dati compressi come JPEG "
+"questa designazione non è necessaria e viene omessa."
+
+#: libexif/exif-tag.c:301
+msgid "X-Resolution"
+msgstr "Risoluzione X"
+
+#: libexif/exif-tag.c:302
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageWidth> direction. "
+"When the image resolution is unknown, 72 [dpi] is designated."
+msgstr ""
+"Il numero di pixel per <ResolutionUnit> nella direzione <ImageWidth>. Quando "
+"la risoluzione dell'immagine è sconosciuta, è impostata a 72 [dpi]."
+
+#: libexif/exif-tag.c:306
+msgid "Y-Resolution"
+msgstr "Risoluzione Y"
+
+#: libexif/exif-tag.c:307
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageLength> direction. "
+"The same value as <XResolution> is designated."
+msgstr ""
+"Il numero di pixel per <ResolutionUnit> nella direzione <ImageLength>. È "
+"impostato allo stesso valore di <XResolution>."
+
+#: libexif/exif-tag.c:311
+msgid "Planar Configuration"
+msgstr "Configurazione planare"
+
+#: libexif/exif-tag.c:312
+msgid ""
+"Indicates whether pixel components are recorded in a chunky or planar "
+"format. In JPEG compressed files a JPEG marker is used instead of this tag. "
+"If this field does not exist, the TIFF default of 1 (chunky) is assumed."
+msgstr ""
+"Indica se le componenti dei pixel sono registrate in piani separati (formato "
+"\"planar\") o in maniera contigua (formato \"chunky\"). Nei file compressi "
+"come JPEG è utilizzato un marcatore JPEG al posto di questa etichetta. Se "
+"questo campo non esiste, viene assunto per le TIFF un valore predefinito di "
+"1 (contigue)."
+
+#: libexif/exif-tag.c:317
+msgid "Resolution Unit"
+msgstr "Unità di risoluzione"
+
+#: libexif/exif-tag.c:318
+msgid ""
+"The unit for measuring <XResolution> and <YResolution>. The same unit is "
+"used for both <XResolution> and <YResolution>. If the image resolution is "
+"unknown, 2 (inches) is designated."
+msgstr ""
+"L'unità di misura per <XResolution> e <YResolution>. La stessa unità è "
+"utilizzata sia per <XResolution> che per <YResolution>. Se la risoluzione "
+"dell'immagine è sconosciuta, è impostata a 2 (pollici)."
+
+#: libexif/exif-tag.c:323
+msgid "Transfer Function"
+msgstr "Funzione trasferimento"
+
+#: libexif/exif-tag.c:324
+msgid ""
+"A transfer function for the image, described in tabular style. Normally this "
+"tag is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+"Una funzione di trasferimento per l'immagine, descritta in formato "
+"tabellare. Normalmente questa etichetta non è necessaria, poiché lo spazio "
+"di colore è specificato nell'etichetta informativa dello spazio di colore "
+"(<ColorSpace>)."
+
+#: libexif/exif-tag.c:328
+msgid "Software"
+msgstr "Software"
+
+#: libexif/exif-tag.c:329
+msgid ""
+"This tag records the name and version of the software or firmware of the "
+"camera or image input device used to generate the image. The detailed format "
+"is not specified, but it is recommended that the example shown below be "
+"followed. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Questa etichetta registra nome e versione del software o del firmware della "
+"fotocamera o del dispositivo di acquisizione immagini usato per generare "
+"l'immagine. Il formato dettagliato non è specificato, ma si raccomanda di "
+"seguire l'esempio seguente. Quando questo campo è lasciato vuoto, viene "
+"trattato come sconosciuto."
+
+#: libexif/exif-tag.c:336
+msgid "Date and Time"
+msgstr "Data e ora"
+
+#: libexif/exif-tag.c:337
+msgid ""
+"The date and time of image creation. In this standard (EXIF-2.1) it is the "
+"date and time the file was changed."
+msgstr ""
+"la data e l'ora di creazione dell'immagine. In questo standard (EXIF-2.1) "
+"corrisponde alla data e all'ora in cui il file è stato modificato."
+
+#: libexif/exif-tag.c:340
+msgid "Artist"
+msgstr "Autore"
+
+#: libexif/exif-tag.c:341
+msgid ""
+"This tag records the name of the camera owner, photographer or image "
+"creator. The detailed format is not specified, but it is recommended that "
+"the information be written as in the example below for ease of "
+"Interoperability. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Questa etichetta registra il nome del proprietario della fotocamera, del "
+"fotografo o del creatore dell'immagine. Il formato dettagliato non è "
+"specificato, ma si raccomanda di scrivere l'informazione come nell'esempio "
+"seguente per una facile interoperabilità. Quando il campo è lasciato vuoto, "
+"è trattato come sconosciuto."
+
+#: libexif/exif-tag.c:347 libexif/pentax/mnote-pentax-tag.c:113
+msgid "White Point"
+msgstr "Punto di bianco"
+
+#: libexif/exif-tag.c:348
+msgid ""
+"The chromaticity of the white point of the image. Normally this tag is not "
+"necessary, since color space is specified in the color space information tag "
+"(<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:353
+msgid "Primary Chromaticities"
+msgstr "Cromaticità primarie"
+
+#: libexif/exif-tag.c:354
+msgid ""
+"The chromaticity of the three primary colors of the image. Normally this tag "
+"is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:359
+msgid "Defined by Adobe Corporation to enable TIFF Trees within a TIFF file."
+msgstr ""
+"Definito da Adobe Corporation per abilitare la struttura ad albero TIFF "
+"all'interno di un file TIFF."
+
+#: libexif/exif-tag.c:362
+msgid "Transfer Range"
+msgstr "Intervallo di trasferimento"
+
+#: libexif/exif-tag.c:366
+msgid "JPEG Interchange Format"
+msgstr "Formato di interscambio JPEG"
+
+#: libexif/exif-tag.c:367
+msgid ""
+"The offset to the start byte (SOI) of JPEG compressed thumbnail data. This "
+"is not used for primary image JPEG data."
+msgstr ""
+"L'offset del byte iniziale (SOI) dei dati compressi JPEG della miniatura. "
+"Questo non è usato per i dati primari JPEG di una immagine."
+
+#: libexif/exif-tag.c:372
+msgid "JPEG Interchange Format Length"
+msgstr "Lunghezza del formato di interscambio JPEG"
+
+#: libexif/exif-tag.c:373
+msgid ""
+"The number of bytes of JPEG compressed thumbnail data. This is not used for "
+"primary image JPEG data. JPEG thumbnails are not divided but are recorded as "
+"a continuous JPEG bitstream from SOI to EOI. Appn and COM markers should not "
+"be recorded. Compressed thumbnails must be recorded in no more than 64 "
+"Kbytes, including all other data to be recorded in APP1."
+msgstr ""
+"Il numero dei byte dei dati compressi JPEG della miniatura. Questo non è "
+"usato per i dati primari JPEG di una immagine. Le miniature JPEG non sono "
+"separate ma sono registrate come un flusso di bit JPEG continuo da SOI a "
+"EOI. I marcatori Appn e COM non dovrebbero essere registrati. Le miniature "
+"compresse devono essere registrate in non più di 64 Kbyte, inclusi tutti gli "
+"altri dati da registrare in APP1."
+
+#: libexif/exif-tag.c:382
+msgid "YCbCr Coefficients"
+msgstr "Coefficienti YCbCr"
+
+#: libexif/exif-tag.c:383
+msgid ""
+"The matrix coefficients for transformation from RGB to YCbCr image data. No "
+"default is given in TIFF; but here the value given in \"Color Space "
+"Guidelines\", is used as the default. The color space is declared in a color "
+"space information tag, with the default being the value that gives the "
+"optimal image characteristics Interoperability this condition."
+msgstr ""
+"I coefficienti della matrice per la trasformazione dei dati immagine da RGB "
+"a YCbCr. Non ci sono valori predefiniti in TIFF, ma qui è utilizzato come "
+"predefinito il valore dato in \"Color Space Guidelines\". Lo spazio colore è "
+"dichiarato in una etichetta informativa dello spazio colore, che ha come "
+"valore predefinito quello che dà le caratteristiche di interoperabilità "
+"dell'immagine ottimali in queste condizioni."
+
+#: libexif/exif-tag.c:392
+msgid "YCbCr Sub-Sampling"
+msgstr "Sottocampionamento YCbCr"
+
+#: libexif/exif-tag.c:393
+msgid ""
+"The sampling ratio of chrominance components in relation to the luminance "
+"component. In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+"Il rapporto di campionamento delle componenti di crominanza in relazione "
+"alla componente di luminanza. Nei dati compressi JPEG è utilizzato un "
+"marcatore JPEG al posto di questa etichetta."
+
+#: libexif/exif-tag.c:398
+msgid "YCbCr Positioning"
+msgstr "Posizionamento YCbCr"
+
+#: libexif/exif-tag.c:399
+msgid ""
+"The position of chrominance components in relation to the luminance "
+"component. This field is designated only for JPEG compressed data or "
+"uncompressed YCbCr data. The TIFF default is 1 (centered); but when Y:Cb:Cr "
+"= 4:2:2 it is recommended in this standard that 2 (co-sited) be used to "
+"record data, in order to improve the image quality when viewed on TV "
+"systems. When this field does not exist, the reader shall assume the TIFF "
+"default. In the case of Y:Cb:Cr = 4:2:0, the TIFF default (centered) is "
+"recommended. If the reader does not have the capability of supporting both "
+"kinds of <YCbCrPositioning>, it shall follow the TIFF default regardless of "
+"the value in this field. It is preferable that readers be able to support "
+"both centered and co-sited positioning."
+msgstr ""
+"La posizione delle componenti di crominanza in relazione alla componente di "
+"luminanza. Questo campo è designato solo per dati compressi JPEG o dati non "
+"compressi YCbCr. Il valore TIFF predefinito è 1 (centrato); ma quando Y:Cb:"
+"Cr = 4:2:2 si raccomanda di usare 2 (affiancato) in questo standard per "
+"registrare i dati, per migliorare la qualità dell'immagine quando "
+"visualizzata su apparecchi TV. Quando questo campo non esiste, il lettore "
+"assumerà il valore TIFF predefinito. Nel caso Y:Cb:Cr = 4:2:0, si raccomanda "
+"il valore TIFF predefinito (centrato). Se il lettore non ha la capacità di "
+"supportare entrambi i tipi di <YCbCrPositioning>, seguirà il valore TIFF "
+"predefinito indipendentemente dal valore in questo campo. E' preferibile che "
+"i lettori supportino sia il posizionamento centrato che quello affiancato."
+
+#: libexif/exif-tag.c:414
+msgid "Reference Black/White"
+msgstr "Riferimento nero/bianco"
+
+#: libexif/exif-tag.c:415
+msgid ""
+"The reference black point value and reference white point value. No defaults "
+"are given in TIFF, but the values below are given as defaults here. The "
+"color space is declared in a color space information tag, with the default "
+"being the value that gives the optimal image characteristics "
+"Interoperability these conditions."
+msgstr ""
+"Il valore di riferimento del punto nero e il valore di riferimento del punto "
+"bianco. Non ci sono valori predefiniti in TIFF, ma i valori sottostanti sono "
+"qui dati come predefiniti. Lo spazio colore è dichiarato in una etichetta "
+"informativa dello spazio colore, che ha come valore predefinito quello che "
+"dà le caratteristiche di interoperabilità dell'immagine ottimali in queste "
+"condizioni."
+
+#: libexif/exif-tag.c:423
+msgid "XML Packet"
+msgstr "Pacchetto XML"
+
+#: libexif/exif-tag.c:423
+msgid "XMP Metadata"
+msgstr "Metadato XMP"
+
+#: libexif/exif-tag.c:438 libexif/exif-tag.c:784
+msgid "CFA Pattern"
+msgstr "Trama CFA"
+
+#: libexif/exif-tag.c:439 libexif/exif-tag.c:785
+msgid ""
+"Indicates the color filter array (CFA) geometric pattern of the image sensor "
+"when a one-chip color area sensor is used. It does not apply to all sensing "
+"methods."
+msgstr ""
+"Indica la trama geometrica del color filter array (CFA) del sensore immagine "
+"quando è utilizzato un sensore di area colore 1-chip. Non si applica a tutti "
+"i metodi di rilevazione."
+
+#: libexif/exif-tag.c:443
+msgid "Battery Level"
+msgstr "Livello batteria"
+
+#: libexif/exif-tag.c:444
+msgid "Copyright"
+msgstr "Copyright"
+
+#: libexif/exif-tag.c:445
+msgid ""
+"Copyright information. In this standard the tag is used to indicate both the "
+"photographer and editor copyrights. It is the copyright notice of the person "
+"or organization claiming rights to the image. The Interoperability copyright "
+"statement including date and rights should be written in this field; e.g., "
+"\"Copyright, John Smith, 19xx. All rights reserved.\". In this standard the "
+"field records both the photographer and editor copyrights, with each "
+"recorded in a separate part of the statement. When there is a clear "
+"distinction between the photographer and editor copyrights, these are to be "
+"written in the order of photographer followed by editor copyright, separated "
+"by NULL (in this case, since the statement also ends with a NULL, there are "
+"two NULL codes) (see example 1). When only the photographer is given, it is "
+"terminated by one NULL code (see example 2). When only the editor copyright "
+"is given, the photographer copyright part consists of one space followed by "
+"a terminating NULL code, then the editor copyright is given (see example 3). "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+"Informazioni di copyright. In questo standard l'etichetta è utilizzata per "
+"indicare sia i diritti del fotografo che quelli dell'editor. Questo è "
+"l'avviso di copyright della persona o dell'organizzazione che reclama i "
+"diritti sull'immagine. In questo campo dovrebbe essere scritta la "
+"dichiarazione di interoperabilità dei diritti compresa la data i i diritti; "
+"es. \"Copyright, John Smith, 19xx. Tutti i diritti riservati.\". In questo "
+"standard il campo registra sia i diritti del fotografo che quelli "
+"dell'editor, ognuno scritto in una parte separata della dichiarazione. "
+"Quando esiste una chiara distinzione tra i diritti del fotografo e quelli "
+"dell'editor, questi devono essere scritti mettendo prima i diritti del "
+"fotografo seguiti da quelli dell'editor, separati da un NULL (in questo "
+"caso, dato che anche la dichiarazione termina con un NULL, ci sono due "
+"codici NULL) (vedere esempio 1). Se è dato solo il fotografo, è terminato da "
+"un codice NULL (vedere esempio 2). Quando sono dati solo i diritti "
+"dell'editor, la parte dei diritti del fotografo consiste in uno spazio "
+"seguito da un codice di terminazione NULL e a seguire i diritti dell'editor "
+"(vedere esempio3). Quando il campo è lasciato vuoto viene trattato come "
+"sconosciuto."
+
+#: libexif/exif-tag.c:467
+msgid "Exposure time, given in seconds (sec)."
+msgstr "Il tempo di esposizione, fornito in secondi (sec)."
+
+#: libexif/exif-tag.c:469 libexif/pentax/mnote-pentax-tag.c:79
+msgid "F-Number"
+msgstr "Numero F"
+
+#: libexif/exif-tag.c:470
+msgid "The F number."
+msgstr "Il numero F."
+
+#: libexif/exif-tag.c:475
+msgid "Image Resources Block"
+msgstr "Blocco delle risorse dell'immagine"
+
+#: libexif/exif-tag.c:477
+msgid ""
+"A pointer to the Exif IFD. Interoperability, Exif IFD has the same structure "
+"as that of the IFD specified in TIFF. ordinarily, however, it does not "
+"contain image data as in the case of TIFF."
+msgstr ""
+"Un puntatore all'Exif IFD. Interoperabilità, l'Exif IFD ha la stessa "
+"struttura dell'IFD specificato nelle TIFF. Di solito, comunque, non contiene "
+"dati immagine come nel caso delle TIFF."
+
+#: libexif/exif-tag.c:485
+msgid "Exposure Program"
+msgstr ""
+
+#: libexif/exif-tag.c:486
+msgid ""
+"The class of the program used by the camera to set exposure when the picture "
+"is taken."
+msgstr ""
+"La classe del programma utilizzato dalla fotocamera per impostare "
+"l'esposizione quando viene scattata la foto."
+
+#: libexif/exif-tag.c:490
+msgid "Spectral Sensitivity"
+msgstr "Sensitività spettrale"
+
+#: libexif/exif-tag.c:491
+msgid ""
+"Indicates the spectral sensitivity of each channel of the camera used. The "
+"tag value is an ASCII string compatible with the standard developed by the "
+"ASTM Technical Committee."
+msgstr ""
+"Indica la sensitività spettrale di ciascun canale utilizzato della "
+"fotocamera. Il valore dell'etichetta è una stringa ASCII compatibile con lo "
+"standard sviluppato dal comitato tecnico ASTM."
+
+#: libexif/exif-tag.c:496
+msgid "GPS Info IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:497
+msgid ""
+"A pointer to the GPS Info IFD. The Interoperability structure of the GPS "
+"Info IFD, like that of Exif IFD, has no image data."
+msgstr ""
+"Un puntatore al GPS Info IFD. La struttura di interoperabilità del GPS Info "
+"IFD, come quella del Exif IFD, non ha dati immagine."
+
+#: libexif/exif-tag.c:503
+msgid "ISO Speed Ratings"
+msgstr "Valori sensibilità ISO"
+
+#: libexif/exif-tag.c:504
+msgid ""
+"Indicates the ISO Speed and ISO Latitude of the camera or input device as "
+"specified in ISO 12232."
+msgstr ""
+"Indica la sensibilità ISO e la latitudine ISO della fotocamera o del "
+"dispositivo di input come specificato in ISO 12232."
+
+#: libexif/exif-tag.c:507
+msgid "Opto-Electronic Conversion Function"
+msgstr ""
+
+#: libexif/exif-tag.c:508
+msgid ""
+"Indicates the Opto-Electronic Conversion Function (OECF) specified in ISO "
+"14524. <OECF> is the relationship between the camera optical input and the "
+"image values."
+msgstr ""
+
+#: libexif/exif-tag.c:513
+#, fuzzy
+msgid "Time Zone Offset"
+msgstr "Fuso orario"
+
+#: libexif/exif-tag.c:514
+msgid "Encodes time zone of camera clock relative to GMT."
+msgstr ""
+
+#: libexif/exif-tag.c:515
+msgid "Exif Version"
+msgstr "Versione Exif"
+
+#: libexif/exif-tag.c:516
+msgid ""
+"The version of this standard supported. Nonexistence of this field is taken "
+"to mean nonconformance to the standard."
+msgstr ""
+"La versione supportata di questo standard. La mancanza di questo campo è "
+"intesa come una non conformità allo standard."
+
+#: libexif/exif-tag.c:520
+msgid "Date and Time (Original)"
+msgstr "Data e ora (dati originali)"
+
+#: libexif/exif-tag.c:521
+msgid ""
+"The date and time when the original image data was generated. For a digital "
+"still camera the date and time the picture was taken are recorded."
+msgstr ""
+"La data e l'ora di generazione dei dati dell'immagine originale. Per una "
+"fotocamera digitale, sono memorizzate la data e l'ora di scatto della foto."
+
+#: libexif/exif-tag.c:526
+msgid "Date and Time (Digitized)"
+msgstr "Data e ora (dati digitalizzati)"
+
+#: libexif/exif-tag.c:527
+msgid "The date and time when the image was stored as digital data."
+msgstr "La data e l'ora di memorizzazione dell'immagine come dati digitali. "
+
+#: libexif/exif-tag.c:530
+msgid "Components Configuration"
+msgstr ""
+
+#: libexif/exif-tag.c:531
+msgid ""
+"Information specific to compressed data. The channels of each component are "
+"arranged in order from the 1st component to the 4th. For uncompressed data "
+"the data arrangement is given in the <PhotometricInterpretation> tag. "
+"However, since <PhotometricInterpretation> can only express the order of Y, "
+"Cb and Cr, this tag is provided for cases when compressed data uses "
+"components other than Y, Cb, and Cr and to enable support of other sequences."
+msgstr ""
+"Informazione specifica di dati compressi. I canali di ciascuna componente "
+"sono organizzati in ordine dalla prima alla quarta componente. Per dati non "
+"compressi l'organizzazione dei dati è indicata nell'etichetta  "
+"<PhotometricInterpretation>. Comunque, dato che <PhotometricInterpretation> "
+"può soltanto esprimere l'ordine di Y, Cb e Cr, questa etichetta è fornita "
+"per i casi nei quali i dati compressi usano componenti diverse da Y, Cb e Cr "
+"e per abilitare il supporto di altre sequenze."
+
+#: libexif/exif-tag.c:541
+msgid "Compressed Bits per Pixel"
+msgstr "Bit per pixel compressi"
+
+#: libexif/exif-tag.c:542
+msgid ""
+"Information specific to compressed data. The compression mode used for a "
+"compressed image is indicated in unit bits per pixel."
+msgstr ""
+"Informazioni specifiche per i dati compressi. Il metodo di compressione "
+"usato per un'immagine compressa è indicato in unità di bit per pixel."
+
+#: libexif/exif-tag.c:546 libexif/olympus/mnote-olympus-tag.c:123
+msgid "Shutter Speed"
+msgstr ""
+
+#: libexif/exif-tag.c:547
+msgid ""
+"Shutter speed. The unit is the APEX (Additive System of Photographic "
+"Exposure) setting."
+msgstr ""
+"Velocità otturatore. L'unità è l'impostazione APEX (Additive System of "
+"Photographic Exposure)."
+
+#: libexif/exif-tag.c:551
+msgid "The lens aperture. The unit is the APEX value."
+msgstr "L'apertura dell'obiettivo. L'unità è il valore APEX."
+
+#: libexif/exif-tag.c:553
+msgid "Brightness"
+msgstr "Luminosità"
+
+#: libexif/exif-tag.c:554
+msgid ""
+"The value of brightness. The unit is the APEX value. Ordinarily it is given "
+"in the range of -99.99 to 99.99."
+msgstr ""
+"Il valore della luminosità. L'unità è il valore APEX. Solitamente è indicato "
+"nell'intervallo da -99.99 a 99.99."
+
+#: libexif/exif-tag.c:558
+msgid "Exposure Bias"
+msgstr "Compensazione esposizione"
+
+#: libexif/exif-tag.c:559
+msgid ""
+"The exposure bias. The units is the APEX value. Ordinarily it is given in "
+"the range of -99.99 to 99.99."
+msgstr ""
+"La compensazione dell'esposizione. L'unità è in valori APEX. Di solito è "
+"indicata nell'intervallo da -99.99 a 99.99."
+
+#: libexif/exif-tag.c:562
+#, fuzzy
+msgid "Maximum Aperture Value"
+msgstr "Apertura massima"
+
+#: libexif/exif-tag.c:563
+msgid ""
+"The smallest F number of the lens. The unit is the APEX value. Ordinarily it "
+"is given in the range of 00.00 to 99.99, but it is not limited to this range."
+msgstr ""
+"Il più piccolo numero F dell'obiettivo. L'unità è il valore APEX. "
+"Comunemente è assegnato nell'intervallo da -99.99 a 99.99, ma non è limitato "
+"a questo intervallo."
+
+#: libexif/exif-tag.c:568
+msgid "Subject Distance"
+msgstr "Distanza soggetto"
+
+#: libexif/exif-tag.c:569
+msgid "The distance to the subject, given in meters."
+msgstr "La distanza dal soggetto, espressa in metri."
+
+#: libexif/exif-tag.c:572
+msgid "The metering mode."
+msgstr "La modalità di misurazione."
+
+#: libexif/exif-tag.c:574
+msgid "Light Source"
+msgstr "Sorgente luminosa"
+
+#: libexif/exif-tag.c:575
+msgid "The kind of light source."
+msgstr "Il tipo di sorgente luminosa."
+
+#: libexif/exif-tag.c:578
+msgid ""
+"This tag is recorded when an image is taken using a strobe light (flash)."
+msgstr ""
+"Questa etichetta è registrata quando un'immagine è catturata utilizzando una "
+"luce stroboscopica (flash)."
+
+#: libexif/exif-tag.c:582
+msgid ""
+"The actual focal length of the lens, in mm. Conversion is not made to the "
+"focal length of a 35 mm film camera."
+msgstr ""
+"La lunghezza focale attuale della lente, in millimetri. Non è convertita "
+"nella lunghezza focale di una fotocamera con pellicola a 35 millimetri."
+
+#: libexif/exif-tag.c:585
+msgid "Subject Area"
+msgstr "Area soggetto"
+
+#: libexif/exif-tag.c:586
+msgid ""
+"This tag indicates the location and area of the main subject in the overall "
+"scene."
+msgstr ""
+"Questa etichetta indica la posizione e l'area del soggetto principale nella "
+"scena."
+
+#: libexif/exif-tag.c:590
+msgid "TIFF/EP Standard ID"
+msgstr "ID standard TIFF/EP"
+
+#: libexif/exif-tag.c:591
+msgid "Maker Note"
+msgstr "Note produttore"
+
+#: libexif/exif-tag.c:592
+msgid ""
+"A tag for manufacturers of Exif writers to record any desired information. "
+"The contents are up to the manufacturer."
+msgstr ""
+"Un etichetta per i produttori di \"Exif writer\" per registrare qualsiasi "
+"informazione desiderata. I contenuti sono definiti dai produttori."
+
+#: libexif/exif-tag.c:595
+msgid "User Comment"
+msgstr "Commenti utente"
+
+#: libexif/exif-tag.c:596
+msgid ""
+"A tag for Exif users to write keywords or comments on the image besides "
+"those in <ImageDescription>, and without the character code limitations of "
+"the <ImageDescription> tag. The character code used in the <UserComment> tag "
+"is identified based on an ID code in a fixed 8-byte area at the start of the "
+"tag data area. The unused portion of the area is padded with NULL (\"00.h"
+"\"). ID codes are assigned by means of registration. The designation method "
+"and references for each character code are defined in the specification. The "
+"value of CountN is determined based on the 8 bytes in the character code "
+"area and the number of bytes in the user comment part. Since the TYPE is not "
+"ASCII, NULL termination is not necessary. The ID code for the <UserComment> "
+"area may be a Defined code such as JIS or ASCII, or may be Undefined. The "
+"Undefined name is UndefinedText, and the ID code is filled with 8 bytes of "
+"all \"NULL\" (\"00.H\"). An Exif reader that reads the <UserComment> tag "
+"must have a function for determining the ID code. This function is not "
+"required in Exif readers that do not use the <UserComment> tag. When a "
+"<UserComment> area is set aside, it is recommended that the ID code be ASCII "
+"and that the following user comment part be filled with blank characters [20."
+"H]."
+msgstr ""
+
+#: libexif/exif-tag.c:619
+msgid "Sub-second Time"
+msgstr ""
+
+#: libexif/exif-tag.c:620
+msgid "A tag used to record fractions of seconds for the <DateTime> tag."
+msgstr ""
+"Una etichetta usata per registrare le frazioni di secondo per l'etichetta "
+"<DateTime>."
+
+#: libexif/exif-tag.c:624
+#, fuzzy
+msgid "Sub-second Time (Original)"
+msgstr "Data e ora (dati originali)"
+
+#: libexif/exif-tag.c:625
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeOriginal> tag."
+msgstr ""
+"Una etichetta usata per registrare le frazioni di secondo per l'etichetta "
+"<DateTimeOriginal>."
+
+#: libexif/exif-tag.c:629
+#, fuzzy
+msgid "Sub-second Time (Digitized)"
+msgstr "Data e ora (dati digitalizzati)"
+
+#: libexif/exif-tag.c:630
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeDigitized> tag."
+msgstr ""
+"Una etichetta usata per registrare le frazioni di secondo per l'etichetta "
+"<DateTimeDigitized>."
+
+#: libexif/exif-tag.c:634
+msgid "XP Title"
+msgstr "Titolo (XP)"
+
+#: libexif/exif-tag.c:635
+msgid "A character string giving the title of the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:639
+msgid "XP Comment"
+msgstr "Commento (XP)"
+
+#: libexif/exif-tag.c:640
+msgid ""
+"A character string containing a comment about the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:644
+msgid "XP Author"
+msgstr "Autore (XP)"
+
+#: libexif/exif-tag.c:645
+msgid ""
+"A character string containing the name of the image creator, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:649
+msgid "XP Keywords"
+msgstr "Parole chiave (XP)"
+
+#: libexif/exif-tag.c:650
+msgid ""
+"A character string containing key words describing the image, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:654
+msgid "XP Subject"
+msgstr "Soggetto (XP)"
+
+#: libexif/exif-tag.c:655
+msgid "A character string giving the image subject, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:659
+msgid "The FlashPix format version supported by a FPXR file."
+msgstr "La versione del formato Flashpix supportata da un file FPXR."
+
+#: libexif/exif-tag.c:661 libexif/pentax/mnote-pentax-tag.c:102
+msgid "Color Space"
+msgstr "Spazio colore"
+
+#: libexif/exif-tag.c:662
+msgid ""
+"The color space information tag is always recorded as the color space "
+"specifier. Normally sRGB (=1) is used to define the color space based on the "
+"PC monitor conditions and environment. If a color space other than sRGB is "
+"used, Uncalibrated (=FFFF.H) is set. Image data recorded as Uncalibrated can "
+"be treated as sRGB when it is converted to FlashPix."
+msgstr ""
+"L'etichetta delle informazioni dello spazio colore è sempre registrata come "
+"l'identificatore dello spazio colore. Normalmente si usa sRGB (=1) per "
+"definire lo spazio colore basato sulle condizioni del monitor del PC e "
+"l'ambiente. Se si usa uno spazio colore diverso da sRGB, è posta a \"non "
+"calibrato\" (=FFFF.H).  I dati dell'immagine registrati come \"non calibrato"
+"\" possono essere trattati come sRGB quando vengono convertiti in FlashPix."
+
+#: libexif/exif-tag.c:670
+msgid "Pixel X Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:671
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid width of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file."
+msgstr ""
+"Informazioni specifiche per dati compressi. Quando si memorizza un file "
+"compresso, la larghezza valida dell'immagine significativa deve essere "
+"registrata in questa etichetta, sia che ci siano o no dati di riempimento o "
+"marcatori di restart. Questa etichetta non deve esistere in un file non "
+"compresso."
+
+#: libexif/exif-tag.c:677
+msgid "Pixel Y Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:678
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid height of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file. Since data padding is unnecessary in the "
+"vertical direction, the number of lines recorded in this valid image height "
+"tag will in fact be the same as that recorded in the SOF."
+msgstr ""
+"Informazioni specifiche per dati compressi. Quando si memorizza un file "
+"compresso, l'altezza valida dell'immagine significativa deve essere "
+"registrata in questa etichetta, sia che ci siano o no dati di riempimento o "
+"marcatori di restart. Questa etichetta non dovrebbe esserci in un file non "
+"compresso. Dal momento che il riempimento dei dati di non è necessario per "
+"la direzione verticale, il numero di linee registrate in questa etichetta "
+"dell'altezza valida dell'immagine saranno le stesse di quelle registrate nel "
+"SOF."
+
+#: libexif/exif-tag.c:688
+msgid "Related Sound File"
+msgstr ""
+
+#: libexif/exif-tag.c:689
+#, fuzzy
+msgid ""
+"This tag is used to record the name of an audio file related to the image "
+"data. The only relational information recorded here is the Exif audio file "
+"name and extension (an ASCII string consisting of 8 characters + '.' + 3 "
+"characters). The path is not recorded. Stipulations on audio and file naming "
+"conventions are defined in the specification. When using this tag, audio "
+"files must be recorded in conformance to the Exif audio format. Writers are "
+"also allowed to store the data such as Audio within APP2 as FlashPix "
+"extension stream data. The mapping of Exif image files and audio files is "
+"done in any of three ways, [1], [2] and [3]. If multiple files are mapped to "
+"one file as in [2] or [3], the above format is used to record just one audio "
+"file name. If there are multiple audio files, the first recorded file is "
+"given. In the case of [3], for example, for the Exif image file \"DSC00001."
+"JPG\" only  \"SND00001.WAV\" is given as the related Exif audio file. When "
+"there are three Exif audio files \"SND00001.WAV\", \"SND00002.WAV\" and "
+"\"SND00003.WAV\", the Exif image file name for each of them, \"DSC00001.JPG"
+"\", is indicated. By combining multiple relational information, a variety of "
+"playback possibilities can be supported. The method of using relational "
+"information is left to the implementation on the playback side. Since this "
+"information is an ASCII character string, it is terminated by NULL. When "
+"this tag is used to map audio files, the relation of the audio file to image "
+"data must also be indicated on the audio file end."
+msgstr ""
+"Questa etichetta è usata per registrare il nome di un file audio relativo ai "
+"dati immagine. L'unica informazione relazionale registrata qui è il nome e "
+"l'estensione del file audio Exif (una stringa ASCII composta da 8 caratteri "
+"+ \".\" + 3 caratteri). Il percorso non è registrato. Le convenzioni "
+"sull'audio e sulla nomenclatura dei file sono definite nelle specifiche. "
+"Quando si utilizza questa etichetta, i file audio devono essere registrati "
+"in conformità al formato audio Exif. A chi scrive è permesso di memorizzare "
+"dati di tipo Audio dentro APP2 come estensione di flusso dati FlashPix. I "
+"file audio devono essere registrati in conformità al formato audio Exif. La "
+"mappatura dei file immagine e dei file audio Exif è eseguita in uno dei tre "
+"modi, [1], [2] e [3]. Se molteplici file sono mappati su un file come in [2] "
+"o in [3], il formato sopra descritto è usato per registrare solo un nome di "
+"file audio. Se ci sono più file audio, viene restituito il primo file "
+"registrato. Nel caso [3], per esempio, per il file immagine Exif \"DSC00001."
+"JPG\" soltanto \"SND00001.WAV\" è associato come relativo file audio Exif. "
+"Quando ci sono tre file audio Exif \"SND00001.WAV\", \"SND00002.WAV\" e "
+"\"SND00003.WAV\", per ciascuno di loro viene indicato il nome del file "
+"immagine Exif \"DSC00001.JPG\". Combinando informazioni relazionali "
+"multiple, può essere supportata una molteplicità di possibilità di "
+"riproduzione. Il modo di usare le informazioni relazionali è lasciato "
+"all'implementazione lato riproduzione. Dato che questa informazione è una "
+"stringa di caratteri ASCII, è terminata con NULL. Quando questa etichetta è "
+"usata per mappare file audio, la relazione tra il file audio ed i dati "
+"immagine deve anche essere indicata alla fine del file audio."
+
+#: libexif/exif-tag.c:719
+msgid "Interoperability IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:720
+msgid ""
+"Interoperability IFD is composed of tags which stores the information to "
+"ensure the Interoperability and pointed by the following tag located in Exif "
+"IFD. The Interoperability structure of Interoperability IFD is the same as "
+"TIFF defined IFD structure but does not contain the image data "
+"characteristically compared with normal TIFF IFD."
+msgstr ""
+"Interoperability IFD è composto da etichette che memorizzano le informazioni "
+"per assicurare l'interoperabilità ed è puntata dalle seguenti etichette "
+"situate nel Exif IFD. La struttura di interoperabilità del Interoperability "
+"IFD è la stessa della struttura IFD definita per le TIFF ma non contiene i "
+"dati immagine tipici di un normale TIFF IFD."
+
+#: libexif/exif-tag.c:729
+msgid "Flash Energy"
+msgstr "Energia flash"
+
+#: libexif/exif-tag.c:730
+msgid ""
+"Indicates the strobe energy at the time the image is captured, as measured "
+"in Beam Candle Power Seconds (BCPS)."
+msgstr ""
+"Indica l'energia del flash stroboscopico quando l'immagine è stata scattata, "
+"misurata in BCPS (Beam Candle Power Seconds)."
+
+#: libexif/exif-tag.c:734
+msgid "Spatial Frequency Response"
+msgstr "Risposta in frequenza spaziale"
+
+#: libexif/exif-tag.c:735
+msgid ""
+"This tag records the camera or input device spatial frequency table and SFR "
+"values in the direction of image width, image height, and diagonal "
+"direction, as specified in ISO 12233."
+msgstr ""
+"Questa etichetta registra la tabella delle frequenze spaziali della "
+"fotocamera o del dispositivo di input e i valori SFR nella direzione di "
+"larghezza dell'immagine, altezza dell'immagine e nella direzione diagonale, "
+"come specificato in ISO 12233."
+
+#: libexif/exif-tag.c:741
+msgid "Focal Plane X-Resolution"
+msgstr "Misura X del piano focale"
+
+#: libexif/exif-tag.c:742
+msgid ""
+"Indicates the number of pixels in the image width (X) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+"Indica il numero di pixel di larghezza (X) dell'immagine per "
+"<FocalPlaneResolutionUnit> sul piano focale della fotocamera."
+
+#: libexif/exif-tag.c:746
+msgid "Focal Plane Y-Resolution"
+msgstr "Misura Y del piano focale"
+
+#: libexif/exif-tag.c:747
+msgid ""
+"Indicates the number of pixels in the image height (V) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+"Indica il numero di pixel di altezza (V) dell'immagine per "
+"<FocalPlaneResolutionUnit> sul piano focale della fotocamera."
+
+#: libexif/exif-tag.c:751
+msgid "Focal Plane Resolution Unit"
+msgstr "Unità di misura piano focale"
+
+#: libexif/exif-tag.c:752
+msgid ""
+"Indicates the unit for measuring <FocalPlaneXResolution> and "
+"<FocalPlaneYResolution>. This value is the same as the <ResolutionUnit>."
+msgstr ""
+"Indica l'unità di misura per <FocalPlaneXResolution> e "
+"<FocalPlaneYResolution>. Questo valore è lo stesso di <ResolutionUnit>."
+
+#: libexif/exif-tag.c:757
+msgid "Subject Location"
+msgstr "Ubicazione soggetto"
+
+#: libexif/exif-tag.c:758
+msgid ""
+"Indicates the location of the main subject in the scene. The value of this "
+"tag represents the pixel at the center of the main subject relative to the "
+"left edge, prior to rotation processing as per the <Rotation> tag. The first "
+"value indicates the X column number and the second indicates the Y row "
+"number."
+msgstr ""
+"Indica la posizione del soggetto principale sulla scena. Il valore di questa "
+"etichetta rappresenta il pixel al centro del soggetto principale relativo al "
+"bordo sinistro, prima del processo di rotazione come risulta nell'etichetta "
+"<Rotation>. Il primo valore indica il numero della colonna X ed il secondo "
+"indica il numero della riga Y."
+
+#: libexif/exif-tag.c:765
+msgid "Exposure Index"
+msgstr ""
+
+#: libexif/exif-tag.c:766
+msgid ""
+"Indicates the exposure index selected on the camera or input device at the "
+"time the image is captured."
+msgstr ""
+"Indica l'indice di esposizione selezionato sulla fotocamera o sul "
+"dispositivo di input quando viene catturata l'immagine."
+
+#: libexif/exif-tag.c:769
+msgid "Sensing Method"
+msgstr "Metodo di rilevamento"
+
+#: libexif/exif-tag.c:770
+msgid "Indicates the image sensor type on the camera or input device."
+msgstr ""
+"Indica il tipo di sensore immagine sulla fotocamera o sul dispositivo di "
+"input."
+
+#: libexif/exif-tag.c:773 libexif/fuji/mnote-fuji-tag.c:64
+msgid "File Source"
+msgstr "Origine file"
+
+#: libexif/exif-tag.c:774
+msgid ""
+"Indicates the image source. If a DSC recorded the image, the tag value of "
+"this tag always be set to 3, indicating that the image was recorded on a DSC."
+msgstr ""
+"Indica la sorgente dell'immagine. Se un DSC ha registrato l'immagine, il "
+"valore di questa etichetta è sempre impostato a 3, indicando che l'immagine "
+"è stata registrata su un DSC."
+
+#: libexif/exif-tag.c:778
+msgid "Scene Type"
+msgstr "Tipo scena"
+
+#: libexif/exif-tag.c:779
+msgid ""
+"Indicates the type of scene. If a DSC recorded the image, this tag value "
+"must always be set to 1, indicating that the image was directly photographed."
+msgstr ""
+"Indica il tipo di scena. Se un DSC ha registrato l'immagine, il valore di "
+"questo tag deve sempre essere impostato ad 1, indicando che l'immagine è "
+"stata fotografata direttamente."
+
+#: libexif/exif-tag.c:789
+msgid "Custom Rendered"
+msgstr "Elaborazione immagine personalizzata"
+
+#: libexif/exif-tag.c:790
+msgid ""
+"This tag indicates the use of special processing on image data, such as "
+"rendering geared to output. When special processing is performed, the reader "
+"is expected to disable or minimize any further processing."
+msgstr ""
+"Questa etichetta indica l'uso di elaborazioni particolari sui dati "
+"dell'immagine, come un rendering inserito in uscita. Quando si compie "
+"un'elaborazione particolare, ci si aspetta che il lettore disabiliti o "
+"minimizzi ogni ulteriore elaborazione."
+
+#: libexif/exif-tag.c:796
+msgid ""
+"This tag indicates the exposure mode set when the image was shot. In auto-"
+"bracketing mode, the camera shoots a series of frames of the same scene at "
+"different exposure settings."
+msgstr ""
+"Questa etichetta indica la modalità di esposizione impostata quando "
+"l'immagine è stata scattata. In modalità auto-bracketing, la fotocamera "
+"scatta una serie di fotogrammi della stessa scena con differenti "
+"impostazioni di esposizione."
+
+#: libexif/exif-tag.c:801
+msgid "This tag indicates the white balance mode set when the image was shot."
+msgstr ""
+"Questa etichetta indica la modalità di bilanciamento del bianco impostata "
+"quando l'immagine è stata scattata."
+
+#: libexif/exif-tag.c:805
+msgid "Digital Zoom Ratio"
+msgstr "Indice zoom digitale"
+
+#: libexif/exif-tag.c:806
+msgid ""
+"This tag indicates the digital zoom ratio when the image was shot. If the "
+"numerator of the recorded value is 0, this indicates that digital zoom was "
+"not used."
+msgstr ""
+"Questa etichetta indica il fattore di zoom digitale quando l'immagine è "
+"stata scattata. Se il numeratore del valore memorizzato è 0, significa che "
+"lo zoom digitale non è stato usato."
+
+#: libexif/exif-tag.c:811
+msgid "Focal Length in 35mm Film"
+msgstr "Lunghezza focale in pellicola 35mm"
+
+#: libexif/exif-tag.c:812
+msgid ""
+"This tag indicates the equivalent focal length assuming a 35mm film camera, "
+"in mm. A value of 0 means the focal length is unknown. Note that this tag "
+"differs from the FocalLength tag."
+msgstr ""
+"Questa etichetta indica la lunghezza focale equivalente in mm, con "
+"riferimento ad una fotocamera con pellicola da 35mm. Un valore pari a 0 "
+"significa che la lunghezza focale è sconosciuta. Da notare che questa "
+"etichetta è differente dall'etichetta <FocalLength>."
+
+#: libexif/exif-tag.c:818
+msgid "Scene Capture Type"
+msgstr "Tipo cattura scena"
+
+#: libexif/exif-tag.c:819
+msgid ""
+"This tag indicates the type of scene that was shot. It can also be used to "
+"record the mode in which the image was shot. Note that this differs from the "
+"scene type <SceneType> tag."
+msgstr ""
+"Questa etichetta indica il tipo di scena che è stata scattata. Può anche "
+"essere usata per memorizzare il modo in cui l'immagine è stata scattata. Da "
+"notare che questa è differente dall'etichetta del tipo di scena <SceneType>."
+
+#: libexif/exif-tag.c:824
+msgid "Gain Control"
+msgstr "Controllo guadagno"
+
+#: libexif/exif-tag.c:825
+msgid "This tag indicates the degree of overall image gain adjustment."
+msgstr ""
+"Questa etichetta indica il grado di regolazione globale del guadagno "
+"dell'immagine."
+
+#: libexif/exif-tag.c:829
+msgid ""
+"This tag indicates the direction of contrast processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Questa etichetta indica la direzione di elaborazione del contrasto applicata "
+"dalla fotocamera quando l'immagine è stata scattata."
+
+#: libexif/exif-tag.c:833
+msgid ""
+"This tag indicates the direction of saturation processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Questa etichetta indica la direzione di elaborazione della saturazione "
+"applicata dalla fotocamera quando l'immagine è stata scattata."
+
+#: libexif/exif-tag.c:837
+msgid ""
+"This tag indicates the direction of sharpness processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Questa etichetta indica la direzione di elaborazione della nitidezza "
+"applicata dalla fotocamera quando l'immagine è stata scattata."
+
+#: libexif/exif-tag.c:841
+msgid "Device Setting Description"
+msgstr "Descrizione dell'impostazione del dispositivo"
+
+#: libexif/exif-tag.c:842
+msgid ""
+"This tag indicates information on the picture-taking conditions of a "
+"particular camera model. The tag is used only to indicate the picture-taking "
+"conditions in the reader."
+msgstr ""
+"Questa etichetta indica le informazioni sulle condizioni di acquisizione "
+"dell'immagine di un particolare modello di fotocamera. L'etichetta è usata "
+"soltanto per indicare le condizioni di acquisizione dell'immagine sul "
+"lettore."
+
+#: libexif/exif-tag.c:848
+msgid "Subject Distance Range"
+msgstr "Intervallo di distanza dal soggetto"
+
+#: libexif/exif-tag.c:849
+msgid "This tag indicates the distance to the subject."
+msgstr "Questa etichetta indica la distanza dal soggetto."
+
+#: libexif/exif-tag.c:851
+msgid "Image Unique ID"
+msgstr "ID univoco immagine"
+
+#: libexif/exif-tag.c:852
+msgid ""
+"This tag indicates an identifier assigned uniquely to each image. It is "
+"recorded as an ASCII string equivalent to hexadecimal notation and 128-bit "
+"fixed length."
+msgstr ""
+"Questa etichetta indica un identificativo assegnato univocamente a ciascuna "
+"immagine. È memorizzato come una stringa ASCII corrispondente alla notazione "
+"esadecimale e di lunghezza fissa di 128 bit."
+
+#: libexif/exif-tag.c:857
+msgid "Gamma"
+msgstr "Gamma"
+
+#: libexif/exif-tag.c:858
+msgid "Indicates the value of coefficient gamma."
+msgstr "Indica il valore del coefficiente gamma."
+
+#: libexif/exif-tag.c:860
+msgid "PRINT Image Matching"
+msgstr ""
+
+#: libexif/exif-tag.c:861
+msgid "Related to Epson's PRINT Image Matching technology"
+msgstr ""
+
+#: libexif/exif-tag.c:863
+msgid "Padding"
+msgstr ""
+
+#: libexif/exif-tag.c:864
+msgid ""
+"This tag reserves space that can be reclaimed later when additional metadata "
+"are added. New metadata can be written in place by replacing this tag with a "
+"smaller data element and using the reclaimed space to store the new or "
+"expanded metadata tags."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:62
+msgid "Softest"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:66
+msgid "Hardest"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:67 libexif/fuji/mnote-fuji-entry.c:96
+msgid "Medium soft"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:68 libexif/fuji/mnote-fuji-entry.c:94
+msgid "Medium hard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:69 libexif/fuji/mnote-fuji-entry.c:90
+#: libexif/fuji/mnote-fuji-entry.c:98 libexif/fuji/mnote-fuji-entry.c:182
+msgid "Film simulation mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:79
+msgid "Incandescent"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:85
+msgid "Medium high"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:87
+msgid "Medium low"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:88 libexif/fuji/mnote-fuji-entry.c:97
+msgid "Original"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:124 libexif/pentax/mnote-pentax-entry.c:164
+#: libexif/pentax/mnote-pentax-entry.c:299
+msgid "Program AE"
+msgstr "Esposizione AE"
+
+#: libexif/fuji/mnote-fuji-entry.c:125
+msgid "Natural photo"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:126
+msgid "Vibration reduction"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:127
+msgid "Sunset"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:128 libexif/pentax/mnote-pentax-entry.c:181
+msgid "Museum"
+msgstr "Museo"
+
+#: libexif/fuji/mnote-fuji-entry.c:129
+msgid "Party"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:130
+msgid "Flower"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:131 libexif/pentax/mnote-pentax-entry.c:176
+msgid "Text"
+msgstr "Testo"
+
+#: libexif/fuji/mnote-fuji-entry.c:132
+msgid "NP & flash"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:137
+msgid "Aperture priority AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:138
+msgid "Shutter priority AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:146
+msgid "F-Standard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:147
+msgid "F-Chrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:148
+msgid "F-B&W"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:151
+msgid "No blur"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:152
+msgid "Blur warning"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:155
+msgid "Focus good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:156
+msgid "Out of focus"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:159
+msgid "AE good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:160
+msgid "Over exposed"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:164
+msgid "Wide"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:167
+msgid "F0/Standard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:168
+msgid "F1/Studio portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:169
+msgid "F1a/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:170
+msgid "F1b/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:171
+msgid "F1c/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:172
+msgid "F2/Fujichrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:173
+msgid "F3/Studio portrait Ex"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:174
+msgid "F4/Velvia"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:177
+msgid "Auto (100-400%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:179
+msgid "Standard (100%)"
+msgstr "Standard (100%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:180
+msgid "Wide1 (230%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:181
+msgid "Wide2 (400%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:263
+#, c-format
+msgid "%2.2f mm"
+msgstr "%2.2f mm"
+
+#: libexif/fuji/mnote-fuji-entry.c:298 libexif/pentax/mnote-pentax-entry.c:399
+#: libexif/pentax/mnote-pentax-entry.c:451
+#, c-format
+msgid "%i bytes unknown data"
+msgstr "%i byte di dati sconosciuti"
+
+#: libexif/fuji/mnote-fuji-tag.c:36
+msgid "Maker Note Version"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:37
+msgid "This number is unique and based on the date of manufacture."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:41
+msgid "Chromaticity Saturation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:44
+msgid "Flash Firing Strength Compensation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:46
+msgid "Focusing Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:47
+msgid "Focus Point"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:48
+msgid "Slow Synchro Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:49 libexif/pentax/mnote-pentax-tag.c:72
+msgid "Picture Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:50
+msgid "Continuous Taking"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:51
+msgid "Continuous Sequence Number"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:52
+msgid "FinePix Color"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:53
+msgid "Blur Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:54
+msgid "Auto Focus Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:55
+msgid "Auto Exposure Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:56
+msgid "Dynamic Range"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:57
+msgid "Film Simulation Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:58
+msgid "Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:59
+msgid "Development Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:60
+msgid "Minimum Focal Length"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:61
+msgid "Maximum Focal Length"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:62
+msgid "Maximum Aperture at Minimum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:63
+msgid "Maximum Aperture at Maximum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:65
+msgid "Order Number"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:66 libexif/pentax/mnote-pentax-tag.c:98
+msgid "Frame Number"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:49
+#, c-format
+msgid "Invalid format '%s', expected '%s' or '%s'."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:89
+msgid "AF non D lens"
+msgstr "Obiettivo AF non D"
+
+#: libexif/olympus/mnote-olympus-entry.c:91
+msgid "AF-D or AF-S lens"
+msgstr "Obiettivo AF-D o AF-S"
+
+#: libexif/olympus/mnote-olympus-entry.c:92
+msgid "AF-D G lens"
+msgstr "Obiettivo AF-D G"
+
+#: libexif/olympus/mnote-olympus-entry.c:93
+msgid "AF-D VR lens"
+msgstr "Obiettivo AF-D VR"
+
+#: libexif/olympus/mnote-olympus-entry.c:94
+msgid "AF-D G VR lens"
+msgstr "Obiettivo AF-D VR"
+
+#: libexif/olympus/mnote-olympus-entry.c:98
+msgid "Flash unit unknown"
+msgstr "Unità flash sconosciuta"
+
+#: libexif/olympus/mnote-olympus-entry.c:99
+msgid "Flash is external"
+msgstr "Il flash è esterno"
+
+#: libexif/olympus/mnote-olympus-entry.c:100
+msgid "Flash is on camera"
+msgstr "Il flash è sulla fotocamera"
+
+#: libexif/olympus/mnote-olympus-entry.c:103
+msgid "VGA basic"
+msgstr "VGA base"
+
+#: libexif/olympus/mnote-olympus-entry.c:104
+msgid "VGA normal"
+msgstr "VGA normale"
+
+#: libexif/olympus/mnote-olympus-entry.c:105
+msgid "VGA fine"
+msgstr "VGA fine"
+
+#: libexif/olympus/mnote-olympus-entry.c:106
+msgid "SXGA basic"
+msgstr "SXGA base"
+
+#: libexif/olympus/mnote-olympus-entry.c:107
+msgid "SXGA normal"
+msgstr "SXGA normale"
+
+#: libexif/olympus/mnote-olympus-entry.c:108
+msgid "SXGA fine"
+msgstr "SXGA fine"
+
+#: libexif/olympus/mnote-olympus-entry.c:109
+msgid "2 Mpixel basic"
+msgstr "2 Megapixel base"
+
+#: libexif/olympus/mnote-olympus-entry.c:110
+msgid "2 Mpixel normal"
+msgstr "2 Megapizel normale"
+
+#: libexif/olympus/mnote-olympus-entry.c:111
+msgid "2 Mpixel fine"
+msgstr "2 Megapixel fine"
+
+#: libexif/olympus/mnote-olympus-entry.c:114
+msgid "Color"
+msgstr "Colore"
+
+#: libexif/olympus/mnote-olympus-entry.c:119
+msgid "Bright+"
+msgstr "Luminoso+"
+
+#: libexif/olympus/mnote-olympus-entry.c:120
+msgid "Bright-"
+msgstr "Luminoso-"
+
+#: libexif/olympus/mnote-olympus-entry.c:121
+msgid "Contrast+"
+msgstr "Contrasto+"
+
+#: libexif/olympus/mnote-olympus-entry.c:122
+msgid "Contrast-"
+msgstr "Contrasto-"
+
+#: libexif/olympus/mnote-olympus-entry.c:125
+msgid "ISO 80"
+msgstr "ISO 80"
+
+#: libexif/olympus/mnote-olympus-entry.c:126
+msgid "ISO 160"
+msgstr "ISO 160"
+
+#: libexif/olympus/mnote-olympus-entry.c:127
+msgid "ISO 320"
+msgstr "ISO 320"
+
+#: libexif/olympus/mnote-olympus-entry.c:128
+#: libexif/olympus/mnote-olympus-entry.c:246
+msgid "ISO 100"
+msgstr "ISO 100"
+
+#: libexif/olympus/mnote-olympus-entry.c:132
+msgid "Preset"
+msgstr "Preimpostazione"
+
+#: libexif/olympus/mnote-olympus-entry.c:134
+msgid "Incandescence"
+msgstr "Incandescenza"
+
+#: libexif/olympus/mnote-olympus-entry.c:135
+msgid "Fluorescence"
+msgstr "Fluorescenza"
+
+#: libexif/olympus/mnote-olympus-entry.c:137
+msgid "SpeedLight"
+msgstr "Speedlight"
+
+#: libexif/olympus/mnote-olympus-entry.c:140
+msgid "No fisheye"
+msgstr "No fisheye"
+
+#: libexif/olympus/mnote-olympus-entry.c:141
+msgid "Fisheye on"
+msgstr "Fisheye attivo"
+
+#: libexif/olympus/mnote-olympus-entry.c:144
+msgid "Normal, SQ"
+msgstr "Normale, SQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:145
+msgid "Normal, HQ"
+msgstr "Normale, HQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:146
+msgid "Normal, SHQ"
+msgstr "Normale, SHQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:147
+msgid "Normal, RAW"
+msgstr "Normale, RAW"
+
+#: libexif/olympus/mnote-olympus-entry.c:148
+msgid "Normal, SQ1"
+msgstr "Normale, SQ1"
+
+#: libexif/olympus/mnote-olympus-entry.c:149
+msgid "Normal, SQ2"
+msgstr "Normale, SQ2"
+
+#: libexif/olympus/mnote-olympus-entry.c:150
+#, fuzzy
+msgid "Normal, super high"
+msgstr "Programma normale"
+
+#: libexif/olympus/mnote-olympus-entry.c:151
+msgid "Normal, standard"
+msgstr "Normale, standard"
+
+#: libexif/olympus/mnote-olympus-entry.c:152
+msgid "Fine, SQ"
+msgstr "Fine, SQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:153
+msgid "Fine, HQ"
+msgstr "Fine, HQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:154
+msgid "Fine, SHQ"
+msgstr "Fine, SHQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:155
+msgid "Fine, RAW"
+msgstr "Fine, RAW"
+
+#: libexif/olympus/mnote-olympus-entry.c:156
+msgid "Fine, SQ1"
+msgstr "Fine, SQ1"
+
+#: libexif/olympus/mnote-olympus-entry.c:157
+msgid "Fine, SQ2"
+msgstr "Fine, SQ2"
+
+#: libexif/olympus/mnote-olympus-entry.c:158
+msgid "Fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:159
+msgid "Super fine, SQ"
+msgstr "Super fine, SQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:160
+msgid "Super fine, HQ"
+msgstr "Super fine, HQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:161
+msgid "Super fine, SHQ"
+msgstr "Super fine, SHQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:162
+msgid "Super fine, RAW"
+msgstr "Super fine, RAW"
+
+#: libexif/olympus/mnote-olympus-entry.c:163
+msgid "Super fine, SQ1"
+msgstr "Super fine, SQ1"
+
+#: libexif/olympus/mnote-olympus-entry.c:164
+msgid "Super fine, SQ2"
+msgstr "Super fine, SQ2"
+
+#: libexif/olympus/mnote-olympus-entry.c:165
+msgid "Super fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:166
+#, fuzzy
+msgid "Super fine, high"
+msgstr "Superfine"
+
+#: libexif/olympus/mnote-olympus-entry.c:169
+#: libexif/olympus/mnote-olympus-entry.c:174
+#: libexif/olympus/mnote-olympus-entry.c:208
+#: libexif/olympus/mnote-olympus-entry.c:217
+#: libexif/olympus/mnote-olympus-entry.c:240
+msgid "No"
+msgstr "No"
+
+#: libexif/olympus/mnote-olympus-entry.c:180
+msgid "On (Preset)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:185
+msgid "Fill"
+msgstr "Riempimento"
+
+#: libexif/olympus/mnote-olympus-entry.c:192
+msgid "Internal + external"
+msgstr "Interno + esterno"
+
+#: libexif/olympus/mnote-olympus-entry.c:221
+msgid "Interlaced"
+msgstr "Interlacciato"
+
+#: libexif/olympus/mnote-olympus-entry.c:222
+msgid "Progressive"
+msgstr "Progressivo"
+
+#: libexif/olympus/mnote-olympus-entry.c:228
+#: libexif/pentax/mnote-pentax-entry.c:85
+#: libexif/pentax/mnote-pentax-entry.c:139
+msgid "Best"
+msgstr "Ottimo"
+
+#: libexif/olympus/mnote-olympus-entry.c:229
+#, fuzzy
+msgid "Adjust exposure"
+msgstr "Esposizione automatica"
+
+#: libexif/olympus/mnote-olympus-entry.c:232
+#, fuzzy
+msgid "Spot focus"
+msgstr "Messa a fuoco panoramica"
+
+#: libexif/olympus/mnote-olympus-entry.c:233
+#, fuzzy
+msgid "Normal focus"
+msgstr "Elaborazione normale"
+
+#: libexif/olympus/mnote-olympus-entry.c:236
+msgid "Record while down"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:237
+msgid "Press start, press stop"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:245
+msgid "ISO 50"
+msgstr "ISO 50"
+
+#: libexif/olympus/mnote-olympus-entry.c:247
+msgid "ISO 200"
+msgstr "ISO 200"
+
+#: libexif/olympus/mnote-olympus-entry.c:248
+msgid "ISO 400"
+msgstr "ISO 400"
+
+#: libexif/olympus/mnote-olympus-entry.c:252
+#: libexif/pentax/mnote-pentax-entry.c:168
+msgid "Sport"
+msgstr "Sport"
+
+#: libexif/olympus/mnote-olympus-entry.c:253
+msgid "TV"
+msgstr "TV"
+
+#: libexif/olympus/mnote-olympus-entry.c:255
+msgid "User 1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:256
+msgid "User 2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:257
+msgid "Lamp"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:260
+msgid "5 frames/sec"
+msgstr "5 fotogrammi/sec"
+
+#: libexif/olympus/mnote-olympus-entry.c:261
+msgid "10 frames/sec"
+msgstr "10 fotogrammi/sec"
+
+#: libexif/olympus/mnote-olympus-entry.c:262
+msgid "15 frames/sec"
+msgstr "15 fotogrammi/sec"
+
+#: libexif/olympus/mnote-olympus-entry.c:263
+msgid "20 frames/sec"
+msgstr "20 fotogrammi/sec"
+
+#: libexif/olympus/mnote-olympus-entry.c:375
+#, c-format
+msgid "Red Correction %f, blue Correction %f"
+msgstr "Correzione rosso %f, correzione blu %f"
+
+#: libexif/olympus/mnote-olympus-entry.c:383
+#, c-format
+msgid "%2.2f meters"
+msgstr "%2.2f metri"
+
+#: libexif/olympus/mnote-olympus-entry.c:385
+msgid "No manual focus selection"
+msgstr "Nessuna seleziona manuale del fuoco"
+
+#: libexif/olympus/mnote-olympus-entry.c:411
+msgid "AF position: center"
+msgstr "Posizione AF: centro"
+
+#: libexif/olympus/mnote-olympus-entry.c:412
+msgid "AF position: top"
+msgstr "Posizione AF: alto"
+
+#: libexif/olympus/mnote-olympus-entry.c:413
+msgid "AF position: bottom"
+msgstr "Posizione AF: basso"
+
+#: libexif/olympus/mnote-olympus-entry.c:414
+msgid "AF position: left"
+msgstr "Posizione AF: sinistra"
+
+#: libexif/olympus/mnote-olympus-entry.c:415
+msgid "AF position: right"
+msgstr "Posizione AF: destra"
+
+#: libexif/olympus/mnote-olympus-entry.c:416
+msgid "AF position: upper-left"
+msgstr "Posizione AF: alto a sinistra"
+
+#: libexif/olympus/mnote-olympus-entry.c:417
+msgid "AF position: upper-right"
+msgstr "Posizione AF: alto a destra"
+
+#: libexif/olympus/mnote-olympus-entry.c:418
+msgid "AF position: lower-left"
+msgstr "Posizione AF: basso a sinistra"
+
+#: libexif/olympus/mnote-olympus-entry.c:419
+msgid "AF position: lower-right"
+msgstr "Posizione AF: basso a destra"
+
+#: libexif/olympus/mnote-olympus-entry.c:420
+msgid "AF position: far left"
+msgstr "Posizione AF: lontano a sinistra"
+
+#: libexif/olympus/mnote-olympus-entry.c:421
+msgid "AF position: far right"
+msgstr "Posizione AF: lontano a destra"
+
+#: libexif/olympus/mnote-olympus-entry.c:422
+msgid "Unknown AF position"
+msgstr "Posizione AF sconosciuta"
+
+#: libexif/olympus/mnote-olympus-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:503
+#, c-format
+msgid "Internal error (unknown value %hi)"
+msgstr "Errore interno (valore %hi sconosciuto)"
+
+#: libexif/olympus/mnote-olympus-entry.c:441
+#: libexif/olympus/mnote-olympus-entry.c:511
+#, c-format
+msgid "Unknown value %hi"
+msgstr "Valore sconosciuto %hi"
+
+#: libexif/olympus/mnote-olympus-entry.c:536
+#: libexif/olympus/mnote-olympus-entry.c:556
+#, fuzzy, c-format
+msgid "Unknown %hu"
+msgstr "Sconosciuto"
+
+#: libexif/olympus/mnote-olympus-entry.c:553
+msgid "2 sec."
+msgstr "2 sec."
+
+#: libexif/olympus/mnote-olympus-entry.c:592
+msgid "Fast"
+msgstr "Veloce"
+
+#: libexif/olympus/mnote-olympus-entry.c:696
+msgid "Automatic"
+msgstr "Automatico"
+
+#: libexif/olympus/mnote-olympus-entry.c:726
+#, c-format
+msgid "Manual: %liK"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:729
+msgid "Manual: unknown"
+msgstr "Manuale: sconosciuto"
+
+#: libexif/olympus/mnote-olympus-entry.c:735
+msgid "One-touch"
+msgstr "One-touch"
+
+#: libexif/olympus/mnote-olympus-entry.c:791
+#: libexif/olympus/mnote-olympus-entry.c:801
+msgid "Infinite"
+msgstr "Infinito"
+
+#: libexif/olympus/mnote-olympus-entry.c:809
+#, c-format
+msgid "%i bytes unknown data: "
+msgstr "%i byte di dati sconosciuti: "
+
+#: libexif/olympus/mnote-olympus-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:53
+msgid "ISO Setting"
+msgstr "Impostazioni ISO"
+
+#: libexif/olympus/mnote-olympus-tag.c:39
+msgid "Color Mode (?)"
+msgstr "Modo colore (?)"
+
+#: libexif/olympus/mnote-olympus-tag.c:42
+msgid "Image Sharpening"
+msgstr "Nitidezza immagine"
+
+#: libexif/olympus/mnote-olympus-tag.c:44
+msgid "Flash Setting"
+msgstr "Impostazioni flash"
+
+#: libexif/olympus/mnote-olympus-tag.c:46
+#, fuzzy
+msgid "White Balance Fine Adjustment"
+msgstr "Impostazioni bilanciamento del bianco"
+
+#: libexif/olympus/mnote-olympus-tag.c:47
+msgid "White Balance RB"
+msgstr "Bilanciamento del bianco RB"
+
+#: libexif/olympus/mnote-olympus-tag.c:49
+#, fuzzy
+msgid "ISO Selection"
+msgstr "Impostazioni ISO"
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Preview Image IFD"
+msgstr "Anteprima immagine IFD"
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Offset of the preview image directory (IFD) inside the file."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:51
+msgid "Exposurediff ?"
+msgstr "Differenza di esposizione?"
+
+#: libexif/olympus/mnote-olympus-tag.c:54
+msgid "Image Boundary"
+msgstr "Contorno immagine"
+
+#: libexif/olympus/mnote-olympus-tag.c:56
+msgid "Flash Exposure Bracket Value"
+msgstr "Valore di bracketing dell'esposizione del flash"
+
+#: libexif/olympus/mnote-olympus-tag.c:57
+msgid "Exposure Bracket Value"
+msgstr "Valore di bracketing dell'esposizione"
+
+#: libexif/olympus/mnote-olympus-tag.c:58
+#: libexif/olympus/mnote-olympus-tag.c:96
+msgid "Image Adjustment"
+msgstr "Regolazione immagine"
+
+#: libexif/olympus/mnote-olympus-tag.c:59
+msgid "Tone Compensation"
+msgstr "Compensazione del tono"
+
+#: libexif/olympus/mnote-olympus-tag.c:60
+msgid "Adapter"
+msgstr "Adattatore"
+
+#: libexif/olympus/mnote-olympus-tag.c:62
+msgid "Lens"
+msgstr "Obiettivo"
+
+#: libexif/olympus/mnote-olympus-tag.c:63
+#: libexif/olympus/mnote-olympus-tag.c:135
+#: libexif/olympus/mnote-olympus-tag.c:185
+msgid "Manual Focus Distance"
+msgstr "Distanza fuoco manuale"
+
+#: libexif/olympus/mnote-olympus-tag.c:65
+msgid "Flash Used"
+msgstr "Flash usato"
+
+#: libexif/olympus/mnote-olympus-tag.c:66
+msgid "AF Focus Position"
+msgstr "Posizione fuoco AF"
+
+#: libexif/olympus/mnote-olympus-tag.c:67
+msgid "Bracketing"
+msgstr "Bracketing"
+
+#: libexif/olympus/mnote-olympus-tag.c:69
+msgid "Lens F Stops"
+msgstr "F-stop dell'obiettivo"
+
+#: libexif/olympus/mnote-olympus-tag.c:70
+msgid "Contrast Curve"
+msgstr "Curva di contrasto"
+
+#: libexif/olympus/mnote-olympus-tag.c:71
+#: libexif/olympus/mnote-olympus-tag.c:95
+#: libexif/pentax/mnote-pentax-tag.c:134
+msgid "Color Mode"
+msgstr "Modo colore"
+
+#: libexif/olympus/mnote-olympus-tag.c:72
+msgid "Light Type"
+msgstr "Tipo di luce"
+
+#: libexif/olympus/mnote-olympus-tag.c:74
+msgid "Hue Adjustment"
+msgstr "Aggiustamento tonalità"
+
+#: libexif/olympus/mnote-olympus-tag.c:76
+#: libexif/olympus/mnote-olympus-tag.c:163
+#: libexif/pentax/mnote-pentax-tag.c:108
+msgid "Noise Reduction"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:79
+msgid "Sensor Pixel Size"
+msgstr "Dimensione pixel del sensore"
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+#, fuzzy
+msgid "Image Data Size"
+msgstr "Dimensione dati dell'immagine"
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Size of compressed image data in bytes."
+msgstr "Dimensione in byte dei dati dell'immagine compressa."
+
+#: libexif/olympus/mnote-olympus-tag.c:84
+msgid "Total Number of Pictures Taken"
+msgstr "Numero totale di immagini scattate"
+
+#: libexif/olympus/mnote-olympus-tag.c:86
+msgid "Optimize Image"
+msgstr "Ottimizza immagine"
+
+#: libexif/olympus/mnote-olympus-tag.c:88
+msgid "Vari Program"
+msgstr "Vari-program"
+
+#: libexif/olympus/mnote-olympus-tag.c:89
+msgid "Capture Editor Data"
+msgstr "Dati (Capture Editor)"
+
+#: libexif/olympus/mnote-olympus-tag.c:90
+msgid "Capture Editor Version"
+msgstr "Versione (Capture Editor)"
+
+#: libexif/olympus/mnote-olympus-tag.c:97
+#: libexif/olympus/mnote-olympus-tag.c:183
+msgid "CCD Sensitivity"
+msgstr "Sensibilità CCD"
+
+#: libexif/olympus/mnote-olympus-tag.c:99
+msgid "Focus"
+msgstr "Fuoco"
+
+#: libexif/olympus/mnote-olympus-tag.c:102
+msgid "Converter"
+msgstr "Convertitore"
+
+#: libexif/olympus/mnote-olympus-tag.c:105
+msgid "Thumbnail Image"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:106
+msgid "Speed/Sequence/Panorama Direction"
+msgstr "Direzione di velocità/sequenza/panorama"
+
+#: libexif/olympus/mnote-olympus-tag.c:109
+#, fuzzy
+msgid "Black & White Mode"
+msgstr "Bianco e nero"
+
+#: libexif/olympus/mnote-olympus-tag.c:111
+msgid "Focal Plane Diagonal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:112
+msgid "Lens Distortion Parameters"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:114
+msgid "Info"
+msgstr "Informazioni"
+
+#: libexif/olympus/mnote-olympus-tag.c:115
+msgid "Camera ID"
+msgstr "ID fotocamera"
+
+#: libexif/olympus/mnote-olympus-tag.c:116
+msgid "Precapture Frames"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:117
+msgid "White Board"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:118
+msgid "One Touch White Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:119
+msgid "White Balance Bracket"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:120
+#: libexif/pentax/mnote-pentax-tag.c:123
+msgid "White Balance Bias"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:121
+msgid "Data Dump"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:124
+msgid "ISO Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:125
+msgid "Aperture Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:126
+msgid "Brightness Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:128
+msgid "Flash Device"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:130
+msgid "Sensor Temperature"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:131
+msgid "Lens Temperature"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:132
+msgid "Light Condition"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:136
+msgid "Zoom Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:137
+msgid "Focus Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:138
+msgid "Sharpness Setting"
+msgstr "Impostazioni nitidezza"
+
+#: libexif/olympus/mnote-olympus-tag.c:139
+msgid "Flash Charge Level"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:140
+msgid "Color Matrix"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:141
+msgid "Black Level"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:142
+msgid "White Balance Setting"
+msgstr "Impostazioni bilanciamento del bianco"
+
+#: libexif/olympus/mnote-olympus-tag.c:143
+#: libexif/pentax/mnote-pentax-tag.c:87
+msgid "Red Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:144
+#: libexif/pentax/mnote-pentax-tag.c:86
+msgid "Blue Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:145
+msgid "Color Matrix Number"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:147
+msgid "Flash Exposure Comp"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:148
+msgid "Internal Flash Table"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:149
+msgid "External Flash G Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:150
+msgid "External Flash Bounce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:151
+msgid "External Flash Zoom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:152
+msgid "External Flash Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:153
+msgid "Contrast Setting"
+msgstr "Impostazioni contrasto"
+
+#: libexif/olympus/mnote-olympus-tag.c:154
+msgid "Sharpness Factor"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:155
+msgid "Color Control"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:156
+msgid "Olympus Image Width"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:157
+msgid "Olympus Image Height"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:158
+msgid "Scene Detect"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:159
+msgid "Compression Ratio"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:160
+msgid "Preview Image Valid"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:161
+msgid "AF Result"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:162
+msgid "CCD Scan Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:164
+msgid "Infinity Lens Step"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:165
+msgid "Near Lens Step"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:166
+msgid "Light Value Center"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:167
+msgid "Light Value Periphery"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:170
+msgid "Sequential Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:171
+msgid "Wide Range"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:172
+msgid "Color Adjustment Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:174
+msgid "Quick Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:176
+msgid "Voice Memo"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:177
+msgid "Record Shutter Release"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:178
+msgid "Flicker Reduce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:179
+msgid "Optical Zoom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:181
+msgid "Light Source Special"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:182
+msgid "Resaved"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:184
+msgid "Scene Select"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:186
+msgid "Sequence Shot Interval"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:189
+msgid "Epson Image Width"
+msgstr "Larghezza immagine Epson"
+
+#: libexif/olympus/mnote-olympus-tag.c:190
+msgid "Epson Image Height"
+msgstr "Altezza immagine Epson"
+
+#: libexif/olympus/mnote-olympus-tag.c:191
+msgid "Epson Software Version"
+msgstr "Versione software Epson"
+
+#: libexif/pentax/mnote-pentax-entry.c:80
+#: libexif/pentax/mnote-pentax-entry.c:134
+msgid "Multi-exposure"
+msgstr "Multi esposizione"
+
+#: libexif/pentax/mnote-pentax-entry.c:83
+#: libexif/pentax/mnote-pentax-entry.c:137
+msgid "Good"
+msgstr "Buono"
+
+#: libexif/pentax/mnote-pentax-entry.c:84
+#: libexif/pentax/mnote-pentax-entry.c:138
+msgid "Better"
+msgstr "Migliore"
+
+#: libexif/pentax/mnote-pentax-entry.c:92
+msgid "Flash on"
+msgstr "Flash attivo"
+
+#: libexif/pentax/mnote-pentax-entry.c:140
+msgid "TIFF"
+msgstr "TIFF"
+
+#: libexif/pentax/mnote-pentax-entry.c:150
+msgid "2560x1920 or 2304x1728"
+msgstr "2560x1920 oppure 2304x1728"
+
+#: libexif/pentax/mnote-pentax-entry.c:156
+msgid "2304x1728 or 2592x1944"
+msgstr "2304x1728 o 2592x1944"
+
+#: libexif/pentax/mnote-pentax-entry.c:158
+msgid "2816x2212 or 2816x2112"
+msgstr "2816x2212 o 2816x2112"
+
+#: libexif/pentax/mnote-pentax-entry.c:171
+msgid "Surf & snow"
+msgstr "Spiaggia/neve"
+
+#: libexif/pentax/mnote-pentax-entry.c:172
+msgid "Sunset or candlelight"
+msgstr "Tramonti o lume di candela"
+
+#: libexif/pentax/mnote-pentax-entry.c:173
+msgid "Autumn"
+msgstr "Autunno"
+
+#: libexif/pentax/mnote-pentax-entry.c:178
+msgid "Self portrait"
+msgstr "Autoritratti"
+
+#: libexif/pentax/mnote-pentax-entry.c:179
+msgid "Illustrations"
+msgstr "Illustrazioni"
+
+#: libexif/pentax/mnote-pentax-entry.c:180
+msgid "Digital filter"
+msgstr "Effetto digitale"
+
+#: libexif/pentax/mnote-pentax-entry.c:182
+msgid "Food"
+msgstr "Cibo"
+
+#: libexif/pentax/mnote-pentax-entry.c:183
+msgid "Green mode"
+msgstr "Modalità Verde"
+
+#: libexif/pentax/mnote-pentax-entry.c:184
+msgid "Light pet"
+msgstr "Animale domestico: chiaro"
+
+#: libexif/pentax/mnote-pentax-entry.c:185
+msgid "Dark pet"
+msgstr "Animale domestico: scuro"
+
+#: libexif/pentax/mnote-pentax-entry.c:186
+msgid "Medium pet"
+msgstr "Animale domestico: intermedio"
+
+#: libexif/pentax/mnote-pentax-entry.c:188
+#: libexif/pentax/mnote-pentax-entry.c:296
+msgid "Candlelight"
+msgstr "Luce di candela"
+
+#: libexif/pentax/mnote-pentax-entry.c:189
+msgid "Natural skin tone"
+msgstr "Incarnato naturale"
+
+#: libexif/pentax/mnote-pentax-entry.c:190
+msgid "Synchro sound record"
+msgstr "Registrazione suono sincrono"
+
+#: libexif/pentax/mnote-pentax-entry.c:191
+msgid "Frame composite"
+msgstr "Aggiungi cornice"
+
+#: libexif/pentax/mnote-pentax-entry.c:194
+msgid "Auto, did not fire"
+msgstr "Automatico, non ha illuminato"
+
+#: libexif/pentax/mnote-pentax-entry.c:196
+msgid "Auto, did not fire, red-eye reduction"
+msgstr "Automatico, non ha illuminato, riduzione occhi rossi"
+
+#: libexif/pentax/mnote-pentax-entry.c:197
+msgid "Auto, fired"
+msgstr "Automatico, ha illuminato"
+
+#: libexif/pentax/mnote-pentax-entry.c:199
+msgid "Auto, fired, red-eye reduction"
+msgstr "Automatico, ha illuminato, riduzione occhi rossi"
+
+#: libexif/pentax/mnote-pentax-entry.c:201
+msgid "On, wireless"
+msgstr "Attivo, wireless"
+
+#: libexif/pentax/mnote-pentax-entry.c:202
+msgid "On, soft"
+msgstr "Attivo, soft"
+
+#: libexif/pentax/mnote-pentax-entry.c:203
+msgid "On, slow-sync"
+msgstr "Attivo, sincro lento"
+
+#: libexif/pentax/mnote-pentax-entry.c:204
+msgid "On, slow-sync, red-eye reduction"
+msgstr "Attivo, sincro lento, riduz. occhi rossi"
+
+#: libexif/pentax/mnote-pentax-entry.c:205
+msgid "On, trailing-curtain sync"
+msgstr "Attivo, sincro sulla sec. tendina"
+
+#: libexif/pentax/mnote-pentax-entry.c:213
+msgid "AF-S"
+msgstr "AF-S"
+
+#: libexif/pentax/mnote-pentax-entry.c:214
+msgid "AF-C"
+msgstr "AF-C"
+
+#: libexif/pentax/mnote-pentax-entry.c:217
+msgid "Upper-left"
+msgstr "Più in alto a sinistra"
+
+#: libexif/pentax/mnote-pentax-entry.c:218
+msgid "Top"
+msgstr "In alto"
+
+#: libexif/pentax/mnote-pentax-entry.c:219
+msgid "Upper-right"
+msgstr "Più in alto a destra"
+
+#: libexif/pentax/mnote-pentax-entry.c:221
+msgid "Mid-left"
+msgstr "In centro a sinistra"
+
+#: libexif/pentax/mnote-pentax-entry.c:223
+msgid "Mid-right"
+msgstr "In centro a destra"
+
+#: libexif/pentax/mnote-pentax-entry.c:225
+msgid "Lower-left"
+msgstr "Più in basso a sinistra"
+
+#: libexif/pentax/mnote-pentax-entry.c:226
+msgid "Bottom"
+msgstr "In basso"
+
+#: libexif/pentax/mnote-pentax-entry.c:227
+msgid "Lower-right"
+msgstr "Più in basso a destra"
+
+#: libexif/pentax/mnote-pentax-entry.c:228
+msgid "Fixed center"
+msgstr "Fisso in centro"
+
+#: libexif/pentax/mnote-pentax-entry.c:232
+msgid "Multiple"
+msgstr "Multiplo"
+
+#: libexif/pentax/mnote-pentax-entry.c:234
+msgid "Top-center"
+msgstr "In alto al centro"
+
+#: libexif/pentax/mnote-pentax-entry.c:240
+msgid "Bottom-center"
+msgstr "In basso al centro"
+
+#: libexif/pentax/mnote-pentax-entry.c:257
+msgid "User selected"
+msgstr "Selezionato dall'utente"
+
+#: libexif/pentax/mnote-pentax-entry.c:282
+msgid "3008x2008 or 3040x2024"
+msgstr "3008x2008 o 3040x2024"
+
+#: libexif/pentax/mnote-pentax-entry.c:293
+msgid "Digital filter?"
+msgstr "Filtro digitale?"
+
+#: libexif/pentax/mnote-pentax-entry.c:374
+#: libexif/pentax/mnote-pentax-entry.c:383
+#, c-format
+msgid "Internal error (unknown value %i %i)"
+msgstr "Errore interno (valore sconosciuto %i %i)"
+
+#: libexif/pentax/mnote-pentax-tag.c:35 libexif/pentax/mnote-pentax-tag.c:63
+msgid "Capture Mode"
+msgstr "Modalità di cattura"
+
+#: libexif/pentax/mnote-pentax-tag.c:36 libexif/pentax/mnote-pentax-tag.c:70
+#: libexif/pentax/mnote-pentax-tag.c:129
+msgid "Quality Level"
+msgstr "Livello di qualità"
+
+#: libexif/pentax/mnote-pentax-tag.c:54
+msgid "ISO Speed"
+msgstr "Sensibilità ISO"
+
+#: libexif/pentax/mnote-pentax-tag.c:56
+msgid "Colors"
+msgstr "Colori"
+
+#: libexif/pentax/mnote-pentax-tag.c:59
+msgid "PrintIM Settings"
+msgstr "Impostazioni PrintIM"
+
+#: libexif/pentax/mnote-pentax-tag.c:60 libexif/pentax/mnote-pentax-tag.c:131
+msgid "Time Zone"
+msgstr "Fuso orario"
+
+#: libexif/pentax/mnote-pentax-tag.c:61
+msgid "Daylight Savings"
+msgstr "Ora legale"
+
+#: libexif/pentax/mnote-pentax-tag.c:64
+#, fuzzy
+msgid "Preview Size"
+msgstr "Anteprima immagine"
+
+#: libexif/pentax/mnote-pentax-tag.c:65
+#, fuzzy
+msgid "Preview Length"
+msgstr "Anteprima immagine"
+
+#: libexif/pentax/mnote-pentax-tag.c:66 libexif/pentax/mnote-pentax-tag.c:122
+#, fuzzy
+msgid "Preview Start"
+msgstr "Anteprima immagine"
+
+#: libexif/pentax/mnote-pentax-tag.c:67
+#, fuzzy
+msgid "Model Identification"
+msgstr "Segue la specifica"
+
+#: libexif/pentax/mnote-pentax-tag.c:68
+msgid "Date"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:69
+#, fuzzy
+msgid "Time"
+msgstr "Fuso orario"
+
+#: libexif/pentax/mnote-pentax-tag.c:75
+msgid "AF Point Selected"
+msgstr "Punto AF selezionato"
+
+#: libexif/pentax/mnote-pentax-tag.c:76
+msgid "Auto AF Point"
+msgstr "Punto AF automatico"
+
+#: libexif/pentax/mnote-pentax-tag.c:77
+msgid "Focus Position"
+msgstr "Posizione fuoco"
+
+#: libexif/pentax/mnote-pentax-tag.c:80
+#, fuzzy
+msgid "ISO Number"
+msgstr "Numero F"
+
+#: libexif/pentax/mnote-pentax-tag.c:83
+msgid "Auto Bracketing"
+msgstr "Bracketing automatico"
+
+#: libexif/pentax/mnote-pentax-tag.c:85
+#, fuzzy
+msgid "White Balance Mode"
+msgstr "Bilanciamento bianco"
+
+#: libexif/pentax/mnote-pentax-tag.c:93
+msgid "World Time Location"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:94
+msgid "Hometown City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:95
+msgid "Destination City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Hometown DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+#, fuzzy
+msgid "Home Daylight Savings Time"
+msgstr "Ora legale"
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+#, fuzzy
+msgid "Destination Daylight Savings Time"
+msgstr "Ora legale"
+
+#: libexif/pentax/mnote-pentax-tag.c:99
+#, fuzzy
+msgid "Image Processing"
+msgstr "Nitidezza immagine"
+
+#: libexif/pentax/mnote-pentax-tag.c:100
+msgid "Picture Mode (2)"
+msgstr "Modalità Picture (2)"
+
+#: libexif/pentax/mnote-pentax-tag.c:103
+#, fuzzy
+msgid "Image Area Offset"
+msgstr "Regolazione immagine"
+
+#: libexif/pentax/mnote-pentax-tag.c:104
+#, fuzzy
+msgid "Raw Image Size"
+msgstr "Dimensione immagine"
+
+#: libexif/pentax/mnote-pentax-tag.c:105
+msgid "Autofocus Points Used"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:107
+#, fuzzy
+msgid "Camera Temperature"
+msgstr "Apertura massima"
+
+#: libexif/pentax/mnote-pentax-tag.c:110
+#, fuzzy
+msgid "Image Tone"
+msgstr "Numero immagine"
+
+#: libexif/pentax/mnote-pentax-tag.c:111
+msgid "Shake Reduction Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:112
+#, fuzzy
+msgid "Black Point"
+msgstr "Bianco e nero"
+
+#: libexif/pentax/mnote-pentax-tag.c:114
+#, fuzzy
+msgid "AE Info"
+msgstr "Informazioni"
+
+#: libexif/pentax/mnote-pentax-tag.c:115
+#, fuzzy
+msgid "Lens Info"
+msgstr "Obiettivo"
+
+#: libexif/pentax/mnote-pentax-tag.c:116
+#, fuzzy
+msgid "Flash Info"
+msgstr "Flash attivo"
+
+#: libexif/pentax/mnote-pentax-tag.c:117
+#, fuzzy
+msgid "Camera Info"
+msgstr "ID fotocamera"
+
+#: libexif/pentax/mnote-pentax-tag.c:118
+#, fuzzy
+msgid "Battery Info"
+msgstr "Livello batteria"
+
+#: libexif/pentax/mnote-pentax-tag.c:119
+msgid "Hometown City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:120
+msgid "Destination City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Object Distance"
+msgstr "Distanza oggetto"
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Distance of photographed object in millimeters."
+msgstr "Distanza dell'oggetto fotografato in millimetri."
+
+#: libexif/pentax/mnote-pentax-tag.c:126
+#, fuzzy
+msgid "Flash Distance"
+msgstr "Flash usato"
+
+#: libexif/pentax/mnote-pentax-tag.c:132
+msgid "Bestshot Mode"
+msgstr "Modo Bestshot"
+
+#: libexif/pentax/mnote-pentax-tag.c:133
+#, fuzzy
+msgid "CCS ISO Sensitivity"
+msgstr "Sensibilità CCD"
+
+#: libexif/pentax/mnote-pentax-tag.c:135
+msgid "Enhancement"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:136
+#, fuzzy
+msgid "Finer"
+msgstr "Fine"
+
+#: test/nls/test-nls.c:20 test/nls/test-nls.c:23 test/nls/test-nls.c:24
+msgid "[DO_NOT_TRANSLATE_THIS_MARKER]"
+msgstr "[DO_NOT_TRANSLATE_THIS_MARKER]"
+
+#~ msgid "%.02lf EV"
+#~ msgstr "%.02lf EV"
+
+#~ msgid "On + Red-eye reduction"
+#~ msgstr "Acceso + riduzione occhi rossi"
+
+#~ msgid "Center + Right"
+#~ msgstr "Centro + Destra"
+
+#~ msgid "Left + Right"
+#~ msgstr "Sinistra + Destra"
+
+#~ msgid "Daylight Fluorescent"
+#~ msgstr "Fluorescente (luce diurna)"
+
+#~ msgid "%i"
+#~ msgstr "%i"
+
+#~ msgid "%d"
+#~ msgstr "%d"
+
+#~ msgid "Focal length"
+#~ msgstr "Lunghezza focale"
+
+#~ msgid "Firmware version"
+#~ msgstr "Versione firmware"
+
+#~ msgid "Serial number"
+#~ msgstr "Numero di serie"
+
+#~ msgid "Flash mode"
+#~ msgstr "Modalità flash"
+
+#~ msgid "Focus mode"
+#~ msgstr "Modalità messa a fuoco"
+
+#~ msgid "Image size"
+#~ msgstr "Dimensione immagine"
+
+#~ msgid "Digital zoom"
+#~ msgstr "Zoom digitale"
+
+#~ msgid "Metering mode"
+#~ msgstr "Modalità di misurazione"
+
+#~ msgid "Focus range"
+#~ msgstr "Area di messa a fuoco"
+
+#~ msgid "Exposure mode"
+#~ msgstr "Modalità di esposizione"
+
+#~ msgid "Focal plane y size"
+#~ msgstr "Dimensione y del piano focale"
+
+#~ msgid "White balance"
+#~ msgstr "Bilanciamento del bianco"
+
+#~ msgid "Exposure time"
+#~ msgstr "Tempo di esposizione"
+
+#~ msgid "top - left"
+#~ msgstr "alto - sinistra"
+
+#~ msgid "top - right"
+#~ msgstr "alto - destra"
+
+#~ msgid "bottom - right"
+#~ msgstr "basso - destra"
+
+#~ msgid "bottom - left"
+#~ msgstr "basso - sinistra"
+
+#~ msgid "Center-Weighted Average"
+#~ msgstr "Media pesata al centro"
+
+#~ msgid "Flash did not fire."
+#~ msgstr "Il flash non ha illuminato."
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/ja.gmo b/framework/modules/c_LibExifModule/libexif-0.6.20/po/ja.gmo
new file mode 100644
index 0000000000000000000000000000000000000000..4e9a64e9403e0c11b93e7368741ec9a17328da49
Binary files /dev/null and b/framework/modules/c_LibExifModule/libexif-0.6.20/po/ja.gmo differ
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/ja.po b/framework/modules/c_LibExifModule/libexif-0.6.20/po/ja.po
new file mode 100644
index 0000000000000000000000000000000000000000..fd323d26b188762b7fe9d9a1c28d05aac89564fa
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/ja.po
@@ -0,0 +1,5515 @@
+# Japanese translation for exif.
+# Copyright (C) 2009 Lutz Mueller and others
+# This file is distributed under the same license as the libexif package.
+# Tadashi Jokagi <elf2000@users.sourceforge.net>, 2009-2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: libexif 0.6.20-pre1\n"
+"Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-12-15 22:14-0800\n"
+"PO-Revision-Date: 2010-02-17 11:48+0900\n"
+"Last-Translator: Tadashi Jokagi <elf2000@users.sourceforge.net>\n"
+"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: libexif/canon/mnote-canon-entry.c:40 libexif/fuji/mnote-fuji-entry.c:35
+#: libexif/olympus/mnote-olympus-entry.c:37
+#: libexif/pentax/mnote-pentax-entry.c:39
+#, c-format
+msgid "Invalid format '%s', expected '%s'."
+msgstr "「%s」の形式が正しくありません。「%s」を期待しました。"
+
+#: libexif/canon/mnote-canon-entry.c:52 libexif/fuji/mnote-fuji-entry.c:47
+#: libexif/olympus/mnote-olympus-entry.c:62
+#: libexif/pentax/mnote-pentax-entry.c:51
+#, c-format
+msgid "Invalid number of components (%i, expected %i)."
+msgstr ""
+"コンポーネントの番号が正しくありません (%i ですが、%i を期待しました)。"
+
+#: libexif/canon/mnote-canon-entry.c:61
+#: libexif/olympus/mnote-olympus-entry.c:72
+#: libexif/pentax/mnote-pentax-entry.c:61
+#, c-format
+msgid "Invalid number of components (%i, expected %i or %i)."
+msgstr ""
+"コンポーネントの番号が正しくありません (%i ですが、%i か %i を期待しました)。"
+
+#: libexif/canon/mnote-canon-entry.c:76 libexif/canon/mnote-canon-entry.c:130
+#: libexif/canon/mnote-canon-entry.c:182 libexif/exif-entry.c:796
+#: libexif/olympus/mnote-olympus-entry.c:196
+#: libexif/olympus/mnote-olympus-tag.c:108
+#: libexif/pentax/mnote-pentax-entry.c:174
+#: libexif/pentax/mnote-pentax-entry.c:209
+#: libexif/pentax/mnote-pentax-entry.c:297
+msgid "Macro"
+msgstr "マクロ"
+
+#: libexif/canon/mnote-canon-entry.c:77 libexif/canon/mnote-canon-entry.c:79
+#: libexif/canon/mnote-canon-entry.c:157 libexif/canon/mnote-canon-entry.c:160
+#: libexif/canon/mnote-canon-entry.c:163 libexif/exif-entry.c:674
+#: libexif/exif-entry.c:677 libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/exif-entry.c:745 libexif/fuji/mnote-fuji-entry.c:64
+#: libexif/olympus/mnote-olympus-entry.c:118
+#: libexif/olympus/mnote-olympus-entry.c:195
+#: libexif/olympus/mnote-olympus-entry.c:203
+#: libexif/olympus/mnote-olympus-entry.c:213
+#: libexif/olympus/mnote-olympus-entry.c:586
+#: libexif/pentax/mnote-pentax-entry.c:105
+#: libexif/pentax/mnote-pentax-entry.c:110
+#: libexif/pentax/mnote-pentax-entry.c:115
+#: libexif/pentax/mnote-pentax-entry.c:208
+msgid "Normal"
+msgstr "通常"
+
+#: libexif/canon/mnote-canon-entry.c:78
+msgid "Economy"
+msgstr "エコノミー"
+
+#: libexif/canon/mnote-canon-entry.c:80
+msgid "Fine"
+msgstr "ファイン"
+
+#: libexif/canon/mnote-canon-entry.c:81 libexif/fuji/mnote-fuji-entry.c:178
+#: libexif/pentax/mnote-pentax-entry.c:141
+msgid "RAW"
+msgstr "RAW"
+
+#: libexif/canon/mnote-canon-entry.c:82
+msgid "Superfine"
+msgstr "スーパー ファイン"
+
+#: libexif/canon/mnote-canon-entry.c:83 libexif/canon/mnote-canon-entry.c:301
+#: libexif/canon/mnote-canon-entry.c:304 libexif/canon/mnote-canon-entry.c:312
+#: libexif/canon/mnote-canon-entry.c:345 libexif/canon/mnote-canon-entry.c:357
+#: libexif/canon/mnote-canon-entry.c:370 libexif/canon/mnote-canon-entry.c:372
+#: libexif/canon/mnote-canon-entry.c:574 libexif/canon/mnote-canon-entry.c:671
+#: libexif/fuji/mnote-fuji-entry.c:70 libexif/fuji/mnote-fuji-entry.c:103
+#: libexif/fuji/mnote-fuji-entry.c:107 libexif/fuji/mnote-fuji-entry.c:115
+#: libexif/fuji/mnote-fuji-entry.c:142
+#: libexif/olympus/mnote-olympus-entry.c:178
+#: libexif/olympus/mnote-olympus-entry.c:186
+#: libexif/olympus/mnote-olympus-entry.c:251
+#: libexif/olympus/mnote-olympus-entry.c:530
+#: libexif/olympus/mnote-olympus-entry.c:547
+#: libexif/pentax/mnote-pentax-entry.c:195
+#: libexif/pentax/mnote-pentax-entry.c:260
+msgid "Off"
+msgstr "オフ"
+
+#: libexif/canon/mnote-canon-entry.c:84 libexif/canon/mnote-canon-entry.c:167
+#: libexif/canon/mnote-canon-entry.c:180 libexif/canon/mnote-canon-entry.c:328
+#: libexif/canon/mnote-canon-entry.c:400 libexif/fuji/mnote-fuji-entry.c:73
+#: libexif/fuji/mnote-fuji-entry.c:101 libexif/fuji/mnote-fuji-entry.c:111
+#: libexif/fuji/mnote-fuji-entry.c:119
+#: libexif/olympus/mnote-olympus-entry.c:131
+#: libexif/olympus/mnote-olympus-entry.c:183
+#: libexif/olympus/mnote-olympus-entry.c:199
+#: libexif/olympus/mnote-olympus-entry.c:244
+#: libexif/pentax/mnote-pentax-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:88
+#: libexif/pentax/mnote-pentax-entry.c:91
+#: libexif/pentax/mnote-pentax-entry.c:97
+#: libexif/pentax/mnote-pentax-entry.c:131
+#: libexif/pentax/mnote-pentax-entry.c:229
+#: libexif/pentax/mnote-pentax-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:290
+msgid "Auto"
+msgstr "オート"
+
+#: libexif/canon/mnote-canon-entry.c:85 libexif/canon/mnote-canon-entry.c:302
+#: libexif/canon/mnote-canon-entry.c:347 libexif/canon/mnote-canon-entry.c:361
+#: libexif/canon/mnote-canon-entry.c:371 libexif/fuji/mnote-fuji-entry.c:102
+#: libexif/fuji/mnote-fuji-entry.c:108 libexif/fuji/mnote-fuji-entry.c:116
+#: libexif/fuji/mnote-fuji-entry.c:143
+#: libexif/olympus/mnote-olympus-entry.c:179
+#: libexif/olympus/mnote-olympus-entry.c:533
+#: libexif/olympus/mnote-olympus-entry.c:550
+#: libexif/pentax/mnote-pentax-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:261
+msgid "On"
+msgstr "オン"
+
+#: libexif/canon/mnote-canon-entry.c:86 libexif/fuji/mnote-fuji-entry.c:104
+#: libexif/olympus/mnote-olympus-entry.c:184
+#: libexif/pentax/mnote-pentax-entry.c:94
+msgid "Red-eye reduction"
+msgstr "赤目軽減"
+
+#: libexif/canon/mnote-canon-entry.c:87
+msgid "Slow synchro"
+msgstr "スロー シンクロ"
+
+#: libexif/canon/mnote-canon-entry.c:88
+msgid "Auto, red-eye reduction"
+msgstr "オート、赤目軽減"
+
+#: libexif/canon/mnote-canon-entry.c:89
+#: libexif/pentax/mnote-pentax-entry.c:200
+msgid "On, red-eye reduction"
+msgstr "オン、赤目軽減 "
+
+#: libexif/canon/mnote-canon-entry.c:90
+msgid "External flash"
+msgstr "外部フラッシュ"
+
+#: libexif/canon/mnote-canon-entry.c:91 libexif/canon/mnote-canon-entry.c:101
+#: libexif/canon/mnote-canon-entry.c:294
+msgid "Single"
+msgstr "シングル"
+
+#: libexif/canon/mnote-canon-entry.c:92 libexif/canon/mnote-canon-entry.c:102
+#: libexif/canon/mnote-canon-entry.c:295
+msgid "Continuous"
+msgstr "連射"
+
+#: libexif/canon/mnote-canon-entry.c:93
+msgid "Movie"
+msgstr "動画"
+
+#: libexif/canon/mnote-canon-entry.c:94
+msgid "Continuous, speed priority"
+msgstr "速度優先連射"
+
+#: libexif/canon/mnote-canon-entry.c:95
+msgid "Continuous, low"
+msgstr "低速連射"
+
+#: libexif/canon/mnote-canon-entry.c:96
+msgid "Continuous, high"
+msgstr "高速連射"
+
+#: libexif/canon/mnote-canon-entry.c:97
+msgid "One-shot AF"
+msgstr "ワン ショット AF"
+
+#: libexif/canon/mnote-canon-entry.c:98
+msgid "AI servo AF"
+msgstr "AI サーボ AF"
+
+#: libexif/canon/mnote-canon-entry.c:99
+msgid "AI focus AF"
+msgstr "AI フォーカス AF"
+
+#: libexif/canon/mnote-canon-entry.c:100 libexif/canon/mnote-canon-entry.c:103
+msgid "Manual focus"
+msgstr "マニュアル フォーカス"
+
+#: libexif/canon/mnote-canon-entry.c:104 libexif/canon/mnote-canon-entry.c:132
+#: libexif/canon/mnote-canon-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:212
+msgid "Pan focus"
+msgstr "パン フォーカス"
+
+#: libexif/canon/mnote-canon-entry.c:105
+msgid "JPEG"
+msgstr "JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:106
+msgid "CRW+THM"
+msgstr "CRW+THM"
+
+#: libexif/canon/mnote-canon-entry.c:107
+msgid "AVI+THM"
+msgstr "AVI+THM"
+
+#: libexif/canon/mnote-canon-entry.c:108
+msgid "TIF"
+msgstr "TIF"
+
+#: libexif/canon/mnote-canon-entry.c:109
+msgid "TIF+JPEG"
+msgstr "TIF+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:110
+msgid "CR2"
+msgstr "CR2"
+
+#: libexif/canon/mnote-canon-entry.c:111
+msgid "CR2+JPEG"
+msgstr "CR2+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:112
+msgid "Large"
+msgstr "大きい"
+
+#: libexif/canon/mnote-canon-entry.c:113
+msgid "Medium"
+msgstr "中位"
+
+#: libexif/canon/mnote-canon-entry.c:114
+msgid "Small"
+msgstr "小さい"
+
+#: libexif/canon/mnote-canon-entry.c:115
+msgid "Medium 1"
+msgstr "中位 1"
+
+#: libexif/canon/mnote-canon-entry.c:116
+msgid "Medium 2"
+msgstr "中位 2"
+
+#: libexif/canon/mnote-canon-entry.c:117
+msgid "Medium 3"
+msgstr "中位 3"
+
+#: libexif/canon/mnote-canon-entry.c:118
+msgid "Postcard"
+msgstr "ポストカード"
+
+#: libexif/canon/mnote-canon-entry.c:119
+msgid "Widescreen"
+msgstr "ワイド スクリーン"
+
+#: libexif/canon/mnote-canon-entry.c:120
+msgid "Full auto"
+msgstr "フル オート"
+
+#: libexif/canon/mnote-canon-entry.c:121 libexif/canon/mnote-canon-entry.c:179
+#: libexif/canon/mnote-canon-entry.c:201 libexif/canon/mnote-canon-entry.c:285
+#: libexif/canon/mnote-canon-entry.c:392 libexif/exif-entry.c:744
+#: libexif/fuji/mnote-fuji-entry.c:112
+#: libexif/olympus/mnote-olympus-entry.c:90
+#: libexif/olympus/mnote-olympus-entry.c:200
+#: libexif/pentax/mnote-pentax-entry.c:79
+#: libexif/pentax/mnote-pentax-entry.c:102
+#: libexif/pentax/mnote-pentax-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:165
+#: libexif/pentax/mnote-pentax-entry.c:211
+#: libexif/pentax/mnote-pentax-entry.c:250
+msgid "Manual"
+msgstr "マニュアル"
+
+#: libexif/canon/mnote-canon-entry.c:122 libexif/canon/mnote-canon-entry.c:430
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:755
+#: libexif/fuji/mnote-fuji-entry.c:121 libexif/pentax/mnote-pentax-entry.c:167
+#: libexif/pentax/mnote-pentax-entry.c:301
+msgid "Landscape"
+msgstr "縦"
+
+#: libexif/canon/mnote-canon-entry.c:123
+msgid "Fast shutter"
+msgstr "高速シャッター"
+
+#: libexif/canon/mnote-canon-entry.c:124
+msgid "Slow shutter"
+msgstr "低速シャッター"
+
+#: libexif/canon/mnote-canon-entry.c:125 libexif/fuji/mnote-fuji-entry.c:123
+#: libexif/olympus/mnote-olympus-entry.c:254
+msgid "Night"
+msgstr "夜"
+
+#: libexif/canon/mnote-canon-entry.c:126
+msgid "Grayscale"
+msgstr "グレイ スケール"
+
+#: libexif/canon/mnote-canon-entry.c:127 libexif/canon/mnote-canon-entry.c:308
+#: libexif/pentax/mnote-pentax-entry.c:128
+msgid "Sepia"
+msgstr "セピア"
+
+#: libexif/canon/mnote-canon-entry.c:128 libexif/canon/mnote-canon-entry.c:429
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:753
+#: libexif/fuji/mnote-fuji-entry.c:120 libexif/pentax/mnote-pentax-entry.c:166
+#: libexif/pentax/mnote-pentax-entry.c:291
+#: libexif/pentax/mnote-pentax-entry.c:294
+#: libexif/pentax/mnote-pentax-entry.c:300
+msgid "Portrait"
+msgstr "横"
+
+#: libexif/canon/mnote-canon-entry.c:129 libexif/fuji/mnote-fuji-entry.c:122
+msgid "Sports"
+msgstr "スポーツ"
+
+#: libexif/canon/mnote-canon-entry.c:131 libexif/canon/mnote-canon-entry.c:309
+#: libexif/canon/mnote-canon-entry.c:335 libexif/canon/mnote-canon-entry.c:407
+#: libexif/fuji/mnote-fuji-entry.c:89 libexif/pentax/mnote-pentax-entry.c:127
+msgid "Black & white"
+msgstr "白黒"
+
+#: libexif/canon/mnote-canon-entry.c:133 libexif/canon/mnote-canon-entry.c:305
+msgid "Vivid"
+msgstr "ビビッド"
+
+#: libexif/canon/mnote-canon-entry.c:134 libexif/canon/mnote-canon-entry.c:306
+#: libexif/canon/mnote-canon-entry.c:431
+msgid "Neutral"
+msgstr "ニュートラル"
+
+#: libexif/canon/mnote-canon-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:93
+msgid "Flash off"
+msgstr "フラッシュ オフ"
+
+#: libexif/canon/mnote-canon-entry.c:136
+msgid "Long shutter"
+msgstr "ロング シャッター"
+
+#: libexif/canon/mnote-canon-entry.c:137 libexif/canon/mnote-canon-entry.c:188
+#: libexif/olympus/mnote-olympus-entry.c:171
+msgid "Super macro"
+msgstr "スーパー マクロ"
+
+#: libexif/canon/mnote-canon-entry.c:138
+msgid "Foliage"
+msgstr "枝葉"
+
+#: libexif/canon/mnote-canon-entry.c:139
+msgid "Indoor"
+msgstr "インドア"
+
+#: libexif/canon/mnote-canon-entry.c:140 libexif/fuji/mnote-fuji-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:175
+msgid "Fireworks"
+msgstr "花火"
+
+#: libexif/canon/mnote-canon-entry.c:141 libexif/fuji/mnote-fuji-entry.c:133
+msgid "Beach"
+msgstr "海辺"
+
+#: libexif/canon/mnote-canon-entry.c:142 libexif/canon/mnote-canon-entry.c:344
+#: libexif/canon/mnote-canon-entry.c:416 libexif/fuji/mnote-fuji-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:292
+#: libexif/pentax/mnote-pentax-entry.c:298
+msgid "Underwater"
+msgstr "水面下"
+
+#: libexif/canon/mnote-canon-entry.c:143 libexif/fuji/mnote-fuji-entry.c:134
+msgid "Snow"
+msgstr "雪"
+
+#: libexif/canon/mnote-canon-entry.c:144
+msgid "Kids & pets"
+msgstr "子供とペット"
+
+#: libexif/canon/mnote-canon-entry.c:145
+msgid "Night snapshot"
+msgstr "ナイト ショット"
+
+#: libexif/canon/mnote-canon-entry.c:146
+msgid "Digital macro"
+msgstr "デジタル マクロ"
+
+#: libexif/canon/mnote-canon-entry.c:147
+msgid "My colors"
+msgstr "自分の色"
+
+#: libexif/canon/mnote-canon-entry.c:148
+msgid "Still image"
+msgstr "スティル画像"
+
+#: libexif/canon/mnote-canon-entry.c:149
+msgid "Color accent"
+msgstr "色のアクセント"
+
+#: libexif/canon/mnote-canon-entry.c:150
+msgid "Color swap"
+msgstr "色交換"
+
+#: libexif/canon/mnote-canon-entry.c:151
+msgid "Aquarium"
+msgstr "水族館"
+
+#: libexif/canon/mnote-canon-entry.c:152
+msgid "ISO 3200"
+msgstr "ISO 3200"
+
+#: libexif/canon/mnote-canon-entry.c:153 libexif/canon/mnote-canon-entry.c:348
+#: libexif/canon/mnote-canon-entry.c:365 libexif/canon/mnote-canon-entry.c:417
+#: libexif/olympus/mnote-olympus-entry.c:189
+#: libexif/olympus/mnote-olympus-entry.c:226
+#: libexif/olympus/mnote-olympus-entry.c:451
+#: libexif/pentax/mnote-pentax-entry.c:242
+msgid "None"
+msgstr "なし"
+
+#: libexif/canon/mnote-canon-entry.c:154
+msgid "2x"
+msgstr "2x"
+
+#: libexif/canon/mnote-canon-entry.c:155
+msgid "4x"
+msgstr "4x"
+
+#: libexif/canon/mnote-canon-entry.c:156 libexif/exif-entry.c:702
+#: libexif/exif-entry.c:732
+msgid "Other"
+msgstr "その他"
+
+#: libexif/canon/mnote-canon-entry.c:158 libexif/canon/mnote-canon-entry.c:161
+#: libexif/canon/mnote-canon-entry.c:164 libexif/canon/mnote-canon-entry.c:398
+#: libexif/fuji/mnote-fuji-entry.c:86 libexif/pentax/mnote-pentax-entry.c:112
+#: libexif/pentax/mnote-pentax-entry.c:117
+msgid "High"
+msgstr "高い"
+
+#: libexif/canon/mnote-canon-entry.c:159 libexif/canon/mnote-canon-entry.c:162
+#: libexif/canon/mnote-canon-entry.c:165 libexif/canon/mnote-canon-entry.c:396
+#: libexif/pentax/mnote-pentax-entry.c:111
+#: libexif/pentax/mnote-pentax-entry.c:116
+msgid "Low"
+msgstr "低い"
+
+#: libexif/canon/mnote-canon-entry.c:166
+msgid "Auto high"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:168
+msgid "50"
+msgstr "50"
+
+#: libexif/canon/mnote-canon-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:120
+#: libexif/pentax/mnote-pentax-entry.c:122
+msgid "100"
+msgstr "100"
+
+#: libexif/canon/mnote-canon-entry.c:170
+#: libexif/pentax/mnote-pentax-entry.c:121
+#: libexif/pentax/mnote-pentax-entry.c:123
+msgid "200"
+msgstr "200"
+
+#: libexif/canon/mnote-canon-entry.c:171
+msgid "400"
+msgstr "400"
+
+#: libexif/canon/mnote-canon-entry.c:172
+msgid "800"
+msgstr "800"
+
+#: libexif/canon/mnote-canon-entry.c:173
+msgid "Default"
+msgstr "初期値"
+
+#: libexif/canon/mnote-canon-entry.c:174 libexif/exif-entry.c:698
+msgid "Spot"
+msgstr "スポット"
+
+#: libexif/canon/mnote-canon-entry.c:175 libexif/exif-entry.c:696
+msgid "Average"
+msgstr "平均"
+
+#: libexif/canon/mnote-canon-entry.c:176
+msgid "Evaluative"
+msgstr "評価"
+
+#: libexif/canon/mnote-canon-entry.c:177 libexif/exif-entry.c:701
+msgid "Partial"
+msgstr "部分"
+
+#: libexif/canon/mnote-canon-entry.c:178 libexif/exif-entry.c:697
+msgid "Center-weighted average"
+msgstr "中央に重みのある平均"
+
+#: libexif/canon/mnote-canon-entry.c:181
+msgid "Not known"
+msgstr "不明"
+
+#: libexif/canon/mnote-canon-entry.c:183
+msgid "Very close"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:184 libexif/exif-entry.c:797
+msgid "Close"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:185
+msgid "Middle range"
+msgstr "ミドル レンジ"
+
+#: libexif/canon/mnote-canon-entry.c:186
+msgid "Far range"
+msgstr "ファー レンジ"
+
+#: libexif/canon/mnote-canon-entry.c:189
+#: libexif/pentax/mnote-pentax-entry.c:210
+msgid "Infinity"
+msgstr "無限"
+
+#: libexif/canon/mnote-canon-entry.c:190
+msgid "Manual AF point selection"
+msgstr "マニュアル AF ポイントの選択"
+
+#: libexif/canon/mnote-canon-entry.c:191 libexif/canon/mnote-canon-entry.c:349
+msgid "None (MF)"
+msgstr "なし (MF)"
+
+#: libexif/canon/mnote-canon-entry.c:192
+msgid "Auto-selected"
+msgstr "自動選択"
+
+#: libexif/canon/mnote-canon-entry.c:193 libexif/canon/mnote-canon-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:224
+#: libexif/pentax/mnote-pentax-entry.c:238
+msgid "Right"
+msgstr "右"
+
+#: libexif/canon/mnote-canon-entry.c:194 libexif/canon/mnote-canon-entry.c:351
+#: libexif/pentax/mnote-pentax-entry.c:222
+#: libexif/pentax/mnote-pentax-entry.c:237
+msgid "Center"
+msgstr "中央"
+
+#: libexif/canon/mnote-canon-entry.c:195 libexif/canon/mnote-canon-entry.c:353
+#: libexif/pentax/mnote-pentax-entry.c:220
+#: libexif/pentax/mnote-pentax-entry.c:236
+msgid "Left"
+msgstr "左"
+
+#: libexif/canon/mnote-canon-entry.c:196
+msgid "Auto AF point selection"
+msgstr "自動 AF ポイントの選択"
+
+#: libexif/canon/mnote-canon-entry.c:197
+msgid "Easy shooting"
+msgstr "お手軽撮影"
+
+#: libexif/canon/mnote-canon-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:163
+msgid "Program"
+msgstr "プログラム"
+
+#: libexif/canon/mnote-canon-entry.c:199
+msgid "Tv-priority"
+msgstr "TV 優先"
+
+#: libexif/canon/mnote-canon-entry.c:200
+msgid "Av-priority"
+msgstr "AV 優先"
+
+#: libexif/canon/mnote-canon-entry.c:202
+msgid "A-DEP"
+msgstr "A-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:203
+msgid "M-DEP"
+msgstr "M-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:204
+msgid "Canon EF 50mm f/1.8"
+msgstr "Canon EF 50mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:205
+msgid "Canon EF 28mm f/2.8"
+msgstr "Canon EF 28mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:206
+msgid "Sigma UC Zoom 35-135mm f/4-5.6"
+msgstr "シグマ UC Zoom 35-135mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:207
+msgid "Tokina AF193-2 19-35mm f/3.5-4.5"
+msgstr "トキナ AF193-2 19-35mm f/3.5-4.5"
+
+#: libexif/canon/mnote-canon-entry.c:208
+msgid "Canon EF 100-300mm F5.6L"
+msgstr "Canon EF 100-300mm F5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:209
+msgid "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+msgstr "シグマ 50mm f/2.8 EX または 28mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:210
+msgid "Canon EF 35mm f/2"
+msgstr "Canon EF 35mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:211
+msgid "Canon EF 15mm f/2.8"
+msgstr "Canon EF 15mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:212
+msgid "Canon EF 80-200mm f/2.8L"
+msgstr "Canon EF 80-200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:213
+msgid "Tokina AT-X280AF PRO 28-80mm F2.8 Aspherical"
+msgstr "トキナ AT-X280AF PRO 28-80mm F2.8 Aspherical"
+
+#: libexif/canon/mnote-canon-entry.c:214
+msgid "Cosina 100mm f/3.5 Macro AF"
+msgstr "コシナ 100mm f/3.5 Macro AF"
+
+#: libexif/canon/mnote-canon-entry.c:215
+msgid "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+msgstr "タムロン AF Aspherical 28-200mm f/3.8-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:216
+msgid "Canon EF 50mm f/1.8 MkII"
+msgstr "Canon EF 50mm f/1.8 MkII"
+
+#: libexif/canon/mnote-canon-entry.c:217
+msgid "Tamron SP AF 300mm f/2.8 LD IF"
+msgstr "タムロン SP AF 300mm f/2.8 LD IF"
+
+#: libexif/canon/mnote-canon-entry.c:218
+msgid "Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+msgstr "Canon EF 24mm f/2.8 または Sigma 15mm f/2.8 EX Fisheye"
+
+#: libexif/canon/mnote-canon-entry.c:219
+msgid "Canon EF 75-300mm f/4-5.6"
+msgstr "Canon EF 75-300mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:220
+msgid "Canon EF 28-80mm f/3.5-5.6"
+msgstr "Canon EF 28-80mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:221
+msgid "Canon EF 28-105mm f/4-5.6"
+msgstr "Canon EF 28-105mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:222
+msgid "Canon EF-S 18-55mm f/3.5-5.6"
+msgstr "Canon EF-S 18-55mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:223
+msgid "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+msgstr "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+
+#: libexif/canon/mnote-canon-entry.c:224
+msgid "Canon TS-E 24mm f/3.5L"
+msgstr "Canon TS-E 24mm f/3.5L"
+
+#: libexif/canon/mnote-canon-entry.c:225
+msgid "Canon TS-E 45mm f/2.8"
+msgstr "Canon TS-E 45mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:226
+msgid "Canon TS-E 90mm f/2.8"
+msgstr "Canon TS-E 90mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:227
+msgid "Canon EF 50mm f/1.0L"
+msgstr "Canon EF 50mm f/1.0L"
+
+#: libexif/canon/mnote-canon-entry.c:228
+msgid "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+msgstr "シグマ 17-35mm f2.8-4 EX Aspherical HSM"
+
+#: libexif/canon/mnote-canon-entry.c:229
+msgid "Canon EF 600mm f/4L IS"
+msgstr "Canon EF 600mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:230
+msgid "Canon EF 200mm f/1.8L"
+msgstr "Canon EF 200mm f/1.8L"
+
+#: libexif/canon/mnote-canon-entry.c:231
+msgid "Canon EF 300mm f/2.8L"
+msgstr "Canon EF 300mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:232
+msgid "Canon EF 85mm f/1.2L"
+msgstr "Canon EF 85mm f/1.2L"
+
+#: libexif/canon/mnote-canon-entry.c:233
+msgid "Canon EF 400mm f/2.8L"
+msgstr "Canon EF 400mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:234
+msgid "Canon EF 500mm f/4.5L"
+msgstr "Canon EF 500mm f/4.5L"
+
+#: libexif/canon/mnote-canon-entry.c:235
+msgid "Canon EF 300mm f/2.8L IS"
+msgstr "Canon EF 300mm f/2.8L IS"
+
+#: libexif/canon/mnote-canon-entry.c:236
+msgid "Canon EF 500mm f/4L IS"
+msgstr "Canon EF 500mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:237
+msgid "Canon EF 100mm f/2"
+msgstr "Canon EF 100mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:238
+msgid "Sigma 20mm EX f/1.8"
+msgstr "Sigma 20mm EX f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:239
+msgid "Canon EF 200mm f/2.8L"
+msgstr "Canon EF 200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:240
+msgid "Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+msgstr "Sigma 10-20mm F4-5.6 または 12-24mm f/4.5-5.6 または 14mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:241
+msgid "Canon EF 35-350mm f/3.5-5.6L"
+msgstr "Canon EF 35-350mm f/3.5-5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:242
+msgid "Canon EF 85mm f/1.8 USM"
+msgstr "Canon EF 85mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:243
+msgid "Canon EF 28-105mm f/3.5-4.5 USM"
+msgstr "Canon EF 28-105mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:244
+msgid "Canon EF 20-35mm f/3.5-4.5 USM"
+msgstr "Canon EF 20-35mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:245
+msgid "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+msgstr "Canon EF 28-70mm f/2.8L または Sigma 24-70mm EX f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:246
+msgid "Canon EF 70-200mm f/2.8 L"
+msgstr "Canon EF 70-200mm f/2.8 L"
+
+#: libexif/canon/mnote-canon-entry.c:247
+msgid "Canon EF 70-200mm f/2.8 L + x1.4"
+msgstr "Canon EF 70-200mm f/2.8 L + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:248
+msgid "Canon EF 70-200mm f/2.8 L + x2"
+msgstr "Canon EF 70-200mm f/2.8 L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:249
+msgid "Canon EF 28mm f/1.8 USM"
+msgstr "Canon EF 28mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:250
+msgid "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+msgstr "シグマ 15-30mm f/3.5-4.5 EX DG Aspherical"
+
+#: libexif/canon/mnote-canon-entry.c:251
+msgid "Canon EF 200mm f/2.8L II"
+msgstr "Canon EF 200mm f/2.8L II"
+
+#: libexif/canon/mnote-canon-entry.c:252
+msgid "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+msgstr "Canon EF 180mm Macro f/3.5L または Sigma 180mm EX HSM Macro f/3.5"
+
+#: libexif/canon/mnote-canon-entry.c:253
+msgid "Canon EF 135mm f/2L"
+msgstr "Canon EF 135mm f/2L"
+
+#: libexif/canon/mnote-canon-entry.c:254
+msgid "Canon EF 24-85mm f/3.5-4.5 USM"
+msgstr "Canon EF 24-85mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:255
+msgid "Canon EF 300mm f/4L IS"
+msgstr "Canon EF 300mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:256
+msgid "Canon EF 28-135mm f/3.5-5.6 IS"
+msgstr "Canon EF 28-135mm f/3.5-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:257
+msgid "Canon EF 35mm f/1.4L"
+msgstr "Canon EF 35mm f/1.4L"
+
+#: libexif/canon/mnote-canon-entry.c:258
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:259
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+
+#: libexif/canon/mnote-canon-entry.c:260
+msgid "Canon EF 100-400mm f/4.5-5.6L IS"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS"
+
+#: libexif/canon/mnote-canon-entry.c:261
+msgid "Canon EF 400mm f/2.8L + x2"
+msgstr "Canon EF 400mm f/2.8L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:262
+msgid "Canon EF 70-200mm f/4L"
+msgstr "Canon EF 70-200mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:263
+msgid "Canon EF 100mm f/2.8 Macro"
+msgstr "Canon EF 100mm f/2.8 Macro"
+
+#: libexif/canon/mnote-canon-entry.c:264
+msgid "Canon EF 400mm f/4 DO IS"
+msgstr "Canon EF 400mm f/4 DO IS"
+
+#: libexif/canon/mnote-canon-entry.c:265
+msgid "Canon EF 75-300mm f/4-5.6 IS"
+msgstr "Canon EF 75-300mm f/4-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:266
+msgid "Canon EF 50mm f/1.4"
+msgstr "Canon EF 50mm f/1.4"
+
+#: libexif/canon/mnote-canon-entry.c:267
+msgid "Canon EF 28-80 f/3.5-5.6 USM IV"
+msgstr "Canon EF 28-80 f/3.5-5.6 USM IV"
+
+#: libexif/canon/mnote-canon-entry.c:268
+msgid "Canon EF 28-200mm f/3.5-5.6"
+msgstr "Canon EF 28-200mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:269
+msgid "Canon EF 90-300mm f/4.5-5.6"
+msgstr "Canon EF 90-300mm f/4.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:270
+msgid "Canon EF-S 18-55mm f/3.5-4.5 USM"
+msgstr "Canon EF-S 18-55mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:271
+msgid "Canon EF 70-200mm f/2.8L IS USM"
+msgstr "Canon EF 70-200mm f/2.8L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:272
+msgid "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+msgstr "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:273
+msgid "Canon EF 70-200mm f/2.8L IS USM + x2"
+msgstr "Canon EF 70-200mm f/2.8L IS USM + x2"
+
+#: libexif/canon/mnote-canon-entry.c:274
+msgid "Canon EF 16-35mm f/2.8L"
+msgstr "Canon EF 16-35mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:275
+msgid "Canon EF 24-70mm f/2.8L"
+msgstr "Canon EF 24-70mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:276
+msgid "Canon EF 17-40mm f/4L"
+msgstr "Canon EF 17-40mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:277
+msgid "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+msgstr "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:278
+msgid "Canon EF-S 17-85mm f4-5.6 IS USM"
+msgstr "Canon EF-S 17-85mm f4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:279
+msgid "Canon EF-S10-22mm F3.5-4.5 USM"
+msgstr "Canon EF-S10-22mm F3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:280
+msgid "Canon EF-S60mm F2.8 Macro USM"
+msgstr "Canon EF-S60mm F2.8 Macro USM"
+
+#: libexif/canon/mnote-canon-entry.c:281
+msgid "Canon EF 24-105mm f/4L IS"
+msgstr "Canon EF 24-105mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:282
+msgid "Canon EF 70-300mm F4-5.6 IS USM"
+msgstr "Canon EF 70-300mm F4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:283
+msgid "Canon EF 50mm F1.2L USM"
+msgstr "Canon EF 50mm F1.2L USM"
+
+#: libexif/canon/mnote-canon-entry.c:284
+msgid "Canon EF 70-200mm f/4L IS USM"
+msgstr "Canon EF 70-200mm f/4L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:286
+msgid "TTL"
+msgstr "TTL"
+
+#: libexif/canon/mnote-canon-entry.c:287
+msgid "A-TTL"
+msgstr "A-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:288
+msgid "E-TTL"
+msgstr "E-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:289
+msgid "FP sync enabled"
+msgstr "FP 同期有効"
+
+#: libexif/canon/mnote-canon-entry.c:290
+msgid "2nd-curtain sync used"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:291
+msgid "FP sync used"
+msgstr "FP 同期使用"
+
+#: libexif/canon/mnote-canon-entry.c:292
+#: libexif/olympus/mnote-olympus-entry.c:190
+msgid "Internal"
+msgstr "内部"
+
+#: libexif/canon/mnote-canon-entry.c:293
+#: libexif/olympus/mnote-olympus-entry.c:191
+msgid "External"
+msgstr "外部"
+
+#: libexif/canon/mnote-canon-entry.c:296
+msgid "Normal AE"
+msgstr "通常 AE"
+
+#: libexif/canon/mnote-canon-entry.c:297
+msgid "Exposure compensation"
+msgstr "露出補正"
+
+#: libexif/canon/mnote-canon-entry.c:298
+msgid "AE lock"
+msgstr "AE ロック"
+
+#: libexif/canon/mnote-canon-entry.c:299
+msgid "AE lock + exposure compensation"
+msgstr "AE ロック + 露出補正"
+
+#: libexif/canon/mnote-canon-entry.c:300
+msgid "No AE"
+msgstr "AE なし"
+
+#: libexif/canon/mnote-canon-entry.c:303
+msgid "On, shot only"
+msgstr "オン、撮影のみ"
+
+#: libexif/canon/mnote-canon-entry.c:307
+msgid "Smooth"
+msgstr "スムーズ"
+
+#: libexif/canon/mnote-canon-entry.c:310 libexif/canon/mnote-canon-entry.c:334
+#: libexif/canon/mnote-canon-entry.c:393 libexif/canon/mnote-canon-entry.c:406
+#: libexif/fuji/mnote-fuji-entry.c:81 libexif/pentax/mnote-pentax-entry.c:87
+msgid "Custom"
+msgstr "カスタム"
+
+#: libexif/canon/mnote-canon-entry.c:311
+msgid "My color data"
+msgstr "自分の色データ"
+
+#: libexif/canon/mnote-canon-entry.c:313 libexif/canon/mnote-canon-entry.c:375
+#: libexif/pentax/mnote-pentax-entry.c:126
+#: libexif/pentax/mnote-pentax-entry.c:145
+msgid "Full"
+msgstr "フル"
+
+#: libexif/canon/mnote-canon-entry.c:314 libexif/canon/mnote-canon-entry.c:374
+msgid "2/3"
+msgstr "2/3"
+
+#: libexif/canon/mnote-canon-entry.c:315 libexif/canon/mnote-canon-entry.c:373
+msgid "1/3"
+msgstr "1/3"
+
+#: libexif/canon/mnote-canon-entry.c:321
+msgid "Fixed"
+msgstr "固定"
+
+#: libexif/canon/mnote-canon-entry.c:322 libexif/pentax/mnote-pentax-tag.c:44
+msgid "Zoom"
+msgstr "ズーム"
+
+#: libexif/canon/mnote-canon-entry.c:329
+msgid "Sunny"
+msgstr "晴天"
+
+#: libexif/canon/mnote-canon-entry.c:330 libexif/canon/mnote-canon-entry.c:402
+#: libexif/exif-entry.c:719 libexif/fuji/mnote-fuji-entry.c:75
+#: libexif/olympus/mnote-olympus-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:255
+msgid "Cloudy"
+msgstr "曇天"
+
+#: libexif/canon/mnote-canon-entry.c:331 libexif/canon/mnote-canon-entry.c:403
+#: libexif/exif-entry.c:716 libexif/pentax/mnote-pentax-entry.c:100
+#: libexif/pentax/mnote-pentax-entry.c:249
+msgid "Tungsten"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:332 libexif/canon/mnote-canon-entry.c:404
+#: libexif/exif-entry.c:715 libexif/pentax/mnote-pentax-entry.c:101
+#: libexif/pentax/mnote-pentax-entry.c:248
+msgid "Fluorescent"
+msgstr "蛍光灯"
+
+#: libexif/canon/mnote-canon-entry.c:333 libexif/canon/mnote-canon-entry.c:405
+#: libexif/exif-entry.c:717 libexif/exif-entry.c:759 libexif/exif-tag.c:577
+#: libexif/fuji/mnote-fuji-entry.c:80 libexif/pentax/mnote-pentax-entry.c:254
+msgid "Flash"
+msgstr "フラッシュ"
+
+#: libexif/canon/mnote-canon-entry.c:336 libexif/canon/mnote-canon-entry.c:408
+#: libexif/exif-entry.c:720 libexif/pentax/mnote-pentax-entry.c:99
+#: libexif/pentax/mnote-pentax-entry.c:247
+msgid "Shade"
+msgstr "影"
+
+#: libexif/canon/mnote-canon-entry.c:337 libexif/canon/mnote-canon-entry.c:409
+msgid "Manual temperature (Kelvin)"
+msgstr "マニュアル温度 (Kelvin)"
+
+#: libexif/canon/mnote-canon-entry.c:338 libexif/canon/mnote-canon-entry.c:410
+msgid "PC set 1"
+msgstr "PC 設定 1"
+
+#: libexif/canon/mnote-canon-entry.c:339 libexif/canon/mnote-canon-entry.c:411
+msgid "PC set 2"
+msgstr "PC 設定 2"
+
+#: libexif/canon/mnote-canon-entry.c:340 libexif/canon/mnote-canon-entry.c:412
+msgid "PC set 3"
+msgstr "PC 設定 3"
+
+#: libexif/canon/mnote-canon-entry.c:341 libexif/canon/mnote-canon-entry.c:413
+#: libexif/exif-entry.c:721 libexif/fuji/mnote-fuji-entry.c:76
+#: libexif/pentax/mnote-pentax-entry.c:251
+msgid "Daylight fluorescent"
+msgstr "日光と蛍光"
+
+#: libexif/canon/mnote-canon-entry.c:342 libexif/canon/mnote-canon-entry.c:414
+msgid "Custom 1"
+msgstr "カスタム 1"
+
+#: libexif/canon/mnote-canon-entry.c:343 libexif/canon/mnote-canon-entry.c:415
+msgid "Custom 2"
+msgstr "カスタム 2"
+
+#: libexif/canon/mnote-canon-entry.c:346 libexif/exif-entry.c:672
+#: libexif/pentax/mnote-pentax-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:132
+#: libexif/pentax/mnote-pentax-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:295
+msgid "Night scene"
+msgstr "ナイト シーン"
+
+#: libexif/canon/mnote-canon-entry.c:352
+msgid "Center-right"
+msgstr "中央-右"
+
+#: libexif/canon/mnote-canon-entry.c:354
+msgid "Left-right"
+msgstr "左-右"
+
+#: libexif/canon/mnote-canon-entry.c:355
+msgid "Left-center"
+msgstr "左-中央"
+
+#: libexif/canon/mnote-canon-entry.c:356
+msgid "All"
+msgstr "すべて"
+
+#: libexif/canon/mnote-canon-entry.c:358
+msgid "On (shot 1)"
+msgstr "オン (ショット 1)"
+
+#: libexif/canon/mnote-canon-entry.c:359
+msgid "On (shot 2)"
+msgstr "オン (ショット 2)"
+
+#: libexif/canon/mnote-canon-entry.c:360
+msgid "On (shot 3)"
+msgstr "オン (ショット 3)"
+
+#: libexif/canon/mnote-canon-entry.c:362
+msgid "EOS high-end"
+msgstr "EOS ハイエンド"
+
+#: libexif/canon/mnote-canon-entry.c:363
+msgid "Compact"
+msgstr "コンパクト"
+
+#: libexif/canon/mnote-canon-entry.c:364
+msgid "EOS mid-range"
+msgstr "EOS ミッドレンジ"
+
+#: libexif/canon/mnote-canon-entry.c:366
+msgid "Rotate 90 CW"
+msgstr "90 度回転 (時計回り)"
+
+#: libexif/canon/mnote-canon-entry.c:367
+msgid "Rotate 180"
+msgstr "180 度回転"
+
+#: libexif/canon/mnote-canon-entry.c:368
+msgid "Rotate 270 CW"
+msgstr "270 度回転 (時計回り)"
+
+#: libexif/canon/mnote-canon-entry.c:369
+msgid "Rotated by software"
+msgstr "ソフトウェアによる回転"
+
+#: libexif/canon/mnote-canon-entry.c:381
+#: libexif/olympus/mnote-olympus-entry.c:606
+msgid "Left to right"
+msgstr "左から右"
+
+#: libexif/canon/mnote-canon-entry.c:382
+#: libexif/olympus/mnote-olympus-entry.c:609
+msgid "Right to left"
+msgstr "右から左"
+
+#: libexif/canon/mnote-canon-entry.c:383
+#: libexif/olympus/mnote-olympus-entry.c:612
+msgid "Bottom to top"
+msgstr "下から上"
+
+#: libexif/canon/mnote-canon-entry.c:384
+#: libexif/olympus/mnote-olympus-entry.c:615
+msgid "Top to bottom"
+msgstr "上から下"
+
+#: libexif/canon/mnote-canon-entry.c:385
+msgid "2x2 matrix (clockwise)"
+msgstr "2×2 マトリクス (時計回り)"
+
+#: libexif/canon/mnote-canon-entry.c:391 libexif/canon/mnote-canon-entry.c:397
+#: libexif/canon/mnote-canon-entry.c:418 libexif/canon/mnote-canon-entry.c:428
+#: libexif/exif-entry.c:671 libexif/fuji/mnote-fuji-entry.c:84
+#: libexif/fuji/mnote-fuji-entry.c:93 libexif/fuji/mnote-fuji-entry.c:163
+#: libexif/olympus/mnote-olympus-entry.c:227
+msgid "Standard"
+msgstr "標準"
+
+#: libexif/canon/mnote-canon-entry.c:394
+msgid "N/A"
+msgstr "N/A"
+
+#: libexif/canon/mnote-canon-entry.c:395
+msgid "Lowest"
+msgstr "より低い"
+
+#: libexif/canon/mnote-canon-entry.c:399
+msgid "Highest"
+msgstr "より高い"
+
+#: libexif/canon/mnote-canon-entry.c:401 libexif/exif-entry.c:714
+#: libexif/fuji/mnote-fuji-entry.c:74
+#: libexif/olympus/mnote-olympus-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:98
+#: libexif/pentax/mnote-pentax-entry.c:246
+msgid "Daylight"
+msgstr "日光"
+
+#: libexif/canon/mnote-canon-entry.c:419
+msgid "Set 1"
+msgstr "設定 1"
+
+#: libexif/canon/mnote-canon-entry.c:420
+msgid "Set 2"
+msgstr "設定 2"
+
+#: libexif/canon/mnote-canon-entry.c:421
+msgid "Set 3"
+msgstr "設定 3"
+
+#: libexif/canon/mnote-canon-entry.c:422
+msgid "User def. 1"
+msgstr "ユーザー定義 1"
+
+#: libexif/canon/mnote-canon-entry.c:423
+msgid "User def. 2"
+msgstr "ユーザー定義 2"
+
+#: libexif/canon/mnote-canon-entry.c:424
+msgid "User def. 3"
+msgstr "ユーザー定義 3"
+
+#: libexif/canon/mnote-canon-entry.c:425
+msgid "External 1"
+msgstr "外部 1"
+
+#: libexif/canon/mnote-canon-entry.c:426
+msgid "External 2"
+msgstr "外部 2"
+
+#: libexif/canon/mnote-canon-entry.c:427
+msgid "External 3"
+msgstr "外部 3"
+
+#: libexif/canon/mnote-canon-entry.c:432
+msgid "Faithful"
+msgstr "正確"
+
+#: libexif/canon/mnote-canon-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:115
+msgid "Monochrome"
+msgstr "モノクロ"
+
+#: libexif/canon/mnote-canon-entry.c:491
+msgid ", "
+msgstr "、"
+
+#: libexif/canon/mnote-canon-entry.c:577 libexif/canon/mnote-canon-entry.c:674
+#, c-format
+msgid "%i (ms)"
+msgstr "%i (ミリ秒)"
+
+#: libexif/canon/mnote-canon-entry.c:621
+#, c-format
+msgid "%.2f mm"
+msgstr "%.2f mm"
+
+#: libexif/canon/mnote-canon-entry.c:645
+#, c-format
+msgid "%.2f EV"
+msgstr "%.2f EV"
+
+#: libexif/canon/mnote-canon-entry.c:655 libexif/exif-entry.c:1064
+#, c-format
+msgid "1/%i"
+msgstr "1/%i"
+
+#: libexif/canon/mnote-canon-entry.c:667
+#, c-format
+msgid "%u mm"
+msgstr "%u mm"
+
+#: libexif/canon/mnote-canon-tag.c:35
+msgid "Settings (First Part)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:36 libexif/canon/mnote-canon-tag.c:92
+#: libexif/exif-tag.c:581 libexif/pentax/mnote-pentax-tag.c:88
+msgid "Focal Length"
+msgstr "フォーカス長"
+
+#: libexif/canon/mnote-canon-tag.c:37
+msgid "Settings (Second Part)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:38
+#: libexif/olympus/mnote-olympus-entry.c:595
+#: libexif/pentax/mnote-pentax-entry.c:177
+msgid "Panorama"
+msgstr "パノラマ"
+
+#: libexif/canon/mnote-canon-tag.c:39
+msgid "Image Type"
+msgstr "画像の種類"
+
+#: libexif/canon/mnote-canon-tag.c:40 libexif/olympus/mnote-olympus-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:113
+msgid "Firmware Version"
+msgstr "ファームウェアのバージョン"
+
+#: libexif/canon/mnote-canon-tag.c:41
+msgid "Image Number"
+msgstr "画像番号"
+
+#: libexif/canon/mnote-canon-tag.c:42
+msgid "Owner Name"
+msgstr "所有社名"
+
+#: libexif/canon/mnote-canon-tag.c:43
+msgid "Color Information"
+msgstr "色情報"
+
+#: libexif/canon/mnote-canon-tag.c:44 libexif/fuji/mnote-fuji-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:81
+#: libexif/olympus/mnote-olympus-tag.c:146
+msgid "Serial Number"
+msgstr "シリアル番号"
+
+#: libexif/canon/mnote-canon-tag.c:45
+msgid "Custom Functions"
+msgstr "カスタム機能"
+
+#: libexif/canon/mnote-canon-tag.c:56 libexif/fuji/mnote-fuji-tag.c:45
+msgid "Macro Mode"
+msgstr "マクロモード"
+
+#: libexif/canon/mnote-canon-tag.c:57 libexif/canon/mnote-canon-tag.c:117
+#: libexif/olympus/mnote-olympus-tag.c:175
+#: libexif/pentax/mnote-pentax-tag.c:128
+msgid "Self-timer"
+msgstr "セルフ タイマー"
+
+#: libexif/canon/mnote-canon-tag.c:58 libexif/fuji/mnote-fuji-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:94
+#: libexif/olympus/mnote-olympus-tag.c:107
+msgid "Quality"
+msgstr "品質"
+
+#: libexif/canon/mnote-canon-tag.c:59 libexif/fuji/mnote-fuji-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:45
+#: libexif/olympus/mnote-olympus-tag.c:127
+#: libexif/pentax/mnote-pentax-tag.c:38 libexif/pentax/mnote-pentax-tag.c:73
+msgid "Flash Mode"
+msgstr "フラッシュのモード"
+
+#: libexif/canon/mnote-canon-tag.c:60 libexif/pentax/mnote-pentax-tag.c:101
+msgid "Drive Mode"
+msgstr "ドライブのモード"
+
+#: libexif/canon/mnote-canon-tag.c:61 libexif/canon/mnote-canon-tag.c:82
+#: libexif/olympus/mnote-olympus-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:134
+#: libexif/olympus/mnote-olympus-tag.c:173
+#: libexif/pentax/mnote-pentax-tag.c:37 libexif/pentax/mnote-pentax-tag.c:74
+#: libexif/pentax/mnote-pentax-tag.c:130
+msgid "Focus Mode"
+msgstr "フォーカスのモード"
+
+#: libexif/canon/mnote-canon-tag.c:62 libexif/pentax/mnote-pentax-tag.c:127
+msgid "Record Mode"
+msgstr "記録のモード"
+
+#: libexif/canon/mnote-canon-tag.c:63 libexif/pentax/mnote-pentax-tag.c:71
+msgid "Image Size"
+msgstr "画像の大きさ"
+
+#: libexif/canon/mnote-canon-tag.c:64
+msgid "Easy Shooting Mode"
+msgstr "簡単撮影のモード"
+
+#: libexif/canon/mnote-canon-tag.c:65 libexif/olympus/mnote-olympus-tag.c:64
+#: libexif/olympus/mnote-olympus-tag.c:101
+#: libexif/olympus/mnote-olympus-tag.c:110
+#: libexif/olympus/mnote-olympus-tag.c:180
+#: libexif/pentax/mnote-pentax-tag.c:89
+msgid "Digital Zoom"
+msgstr "デジタル ズーム"
+
+#: libexif/canon/mnote-canon-tag.c:66 libexif/exif-tag.c:828
+#: libexif/fuji/mnote-fuji-tag.c:42 libexif/pentax/mnote-pentax-tag.c:46
+#: libexif/pentax/mnote-pentax-tag.c:91
+msgid "Contrast"
+msgstr "コントラスト"
+
+#: libexif/canon/mnote-canon-tag.c:67 libexif/exif-tag.c:832
+#: libexif/olympus/mnote-olympus-tag.c:75
+#: libexif/olympus/mnote-olympus-tag.c:87 libexif/pentax/mnote-pentax-tag.c:47
+#: libexif/pentax/mnote-pentax-tag.c:90
+msgid "Saturation"
+msgstr "彩度"
+
+#: libexif/canon/mnote-canon-tag.c:68 libexif/exif-tag.c:836
+#: libexif/fuji/mnote-fuji-tag.c:39 libexif/pentax/mnote-pentax-tag.c:45
+#: libexif/pentax/mnote-pentax-tag.c:92
+msgid "Sharpness"
+msgstr "シャープネス"
+
+#: libexif/canon/mnote-canon-tag.c:69
+msgid "ISO"
+msgstr "ISO"
+
+#: libexif/canon/mnote-canon-tag.c:70 libexif/exif-tag.c:571
+#: libexif/pentax/mnote-pentax-tag.c:82
+msgid "Metering Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:71 libexif/olympus/mnote-olympus-tag.c:133
+msgid "Focus Range"
+msgstr "フォーカス レンジ"
+
+#: libexif/canon/mnote-canon-tag.c:72 libexif/canon/mnote-canon-tag.c:105
+msgid "AF Point"
+msgstr "AF ポイント"
+
+#: libexif/canon/mnote-canon-tag.c:73 libexif/exif-tag.c:795
+msgid "Exposure Mode"
+msgstr "露出のモード"
+
+#: libexif/canon/mnote-canon-tag.c:74 libexif/olympus/mnote-olympus-tag.c:61
+#: libexif/pentax/mnote-pentax-tag.c:106
+msgid "Lens Type"
+msgstr "レンズの種類"
+
+#: libexif/canon/mnote-canon-tag.c:75
+msgid "Long Focal Length of Lens"
+msgstr "レンズの最大焦点距離"
+
+#: libexif/canon/mnote-canon-tag.c:76
+msgid "Short Focal Length of Lens"
+msgstr "レンズの最小焦点距離"
+
+#: libexif/canon/mnote-canon-tag.c:77
+msgid "Focal Units per mm"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:78
+msgid "Maximal Aperture"
+msgstr "最大絞り"
+
+#: libexif/canon/mnote-canon-tag.c:79
+msgid "Minimal Aperture"
+msgstr "最小絞り"
+
+#: libexif/canon/mnote-canon-tag.c:80
+msgid "Flash Activity"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:81
+msgid "Flash Details"
+msgstr "フラッシュの詳細"
+
+#: libexif/canon/mnote-canon-tag.c:83
+msgid "AE Setting"
+msgstr "AE 設定"
+
+#: libexif/canon/mnote-canon-tag.c:84
+msgid "Image Stabilization"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:85
+msgid "Display Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:86
+msgid "Zoom Source Width"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:87
+msgid "Zoom Target Width"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:88
+msgid "Photo Effect"
+msgstr "写真エフェクト"
+
+#: libexif/canon/mnote-canon-tag.c:89 libexif/canon/mnote-canon-tag.c:118
+msgid "Manual Flash Output"
+msgstr "マニュアル フラッシュ出力"
+
+#: libexif/canon/mnote-canon-tag.c:90
+msgid "Color Tone"
+msgstr "色トーン"
+
+#: libexif/canon/mnote-canon-tag.c:91
+msgid "Focal Type"
+msgstr "焦点の種類"
+
+#: libexif/canon/mnote-canon-tag.c:93
+msgid "Focal Plane X Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:94
+msgid "Focal Plane Y Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:95
+msgid "Auto ISO"
+msgstr "自動 ISO"
+
+#: libexif/canon/mnote-canon-tag.c:96
+msgid "Shot ISO"
+msgstr "ショット ISO"
+
+#: libexif/canon/mnote-canon-tag.c:97
+msgid "Measured EV"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:98
+msgid "Target Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:99
+msgid "Target Exposure Time"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:100 libexif/olympus/mnote-olympus-tag.c:129
+#: libexif/pentax/mnote-pentax-tag.c:81
+msgid "Exposure Compensation"
+msgstr "露出補正"
+
+#: libexif/canon/mnote-canon-tag.c:101 libexif/canon/mnote-canon-tag.c:123
+#: libexif/exif-tag.c:800 libexif/fuji/mnote-fuji-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:41
+#: libexif/olympus/mnote-olympus-tag.c:98 libexif/pentax/mnote-pentax-tag.c:41
+#: libexif/pentax/mnote-pentax-tag.c:84 libexif/pentax/mnote-pentax-tag.c:124
+msgid "White Balance"
+msgstr "ホワイトバランス"
+
+#: libexif/canon/mnote-canon-tag.c:102
+msgid "Slow Shutter"
+msgstr "スロー シャッター"
+
+#: libexif/canon/mnote-canon-tag.c:103
+msgid "Sequence Number"
+msgstr "シーケンス番号"
+
+#: libexif/canon/mnote-canon-tag.c:104
+msgid "Flash Guide Number"
+msgstr "フラッシュ ガイド番号"
+
+#: libexif/canon/mnote-canon-tag.c:106 libexif/olympus/mnote-olympus-tag.c:52
+#: libexif/pentax/mnote-pentax-tag.c:109
+msgid "Flash Exposure Compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:107
+msgid "AE Bracketing"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:108
+msgid "AE Bracket Value"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:109
+msgid "Focus Distance Upper"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:110
+msgid "Focus Distance Lower"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:111
+msgid "FNumber"
+msgstr "F 値"
+
+#: libexif/canon/mnote-canon-tag.c:112 libexif/exif-tag.c:466
+#: libexif/pentax/mnote-pentax-tag.c:78
+msgid "Exposure Time"
+msgstr "露出時間"
+
+#: libexif/canon/mnote-canon-tag.c:113
+msgid "Bulb Duration"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:114
+msgid "Camera Type"
+msgstr "カメラの種類"
+
+#: libexif/canon/mnote-canon-tag.c:115
+msgid "Auto Rotate"
+msgstr "自動回転"
+
+#: libexif/canon/mnote-canon-tag.c:116
+msgid "ND Filter"
+msgstr "ND フィルター"
+
+#: libexif/canon/mnote-canon-tag.c:119
+msgid "Panorama Frame"
+msgstr "パノラマ フレーム"
+
+#: libexif/canon/mnote-canon-tag.c:120
+msgid "Panorama Direction"
+msgstr "パノラマ 方向"
+
+#: libexif/canon/mnote-canon-tag.c:121
+msgid "Tone Curve"
+msgstr "トーン カーブ"
+
+#: libexif/canon/mnote-canon-tag.c:122
+msgid "Sharpness Frequency"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:124
+msgid "Picture Style"
+msgstr "写真のスタイル"
+
+#: libexif/exif-byte-order.c:33
+msgid "Motorola"
+msgstr "モトローラ"
+
+#: libexif/exif-byte-order.c:35
+msgid "Intel"
+msgstr "インテル"
+
+#: libexif/exif-data.c:780
+msgid "Size of data too small to allow for EXIF data."
+msgstr "データの大きさが EXIF データの許容より小さすぎます。"
+
+#: libexif/exif-data.c:841
+msgid "EXIF marker not found."
+msgstr "EXIF マーカーが見つかりません。"
+
+#: libexif/exif-data.c:868
+msgid "EXIF header not found."
+msgstr "EXIF ヘッダーが見つかりません。"
+
+#: libexif/exif-data.c:884
+msgid "Unknown encoding."
+msgstr "不明なエンコーディングです。"
+
+#: libexif/exif-data.c:1168
+msgid "Ignore unknown tags"
+msgstr "不明なタグを無効にする"
+
+#: libexif/exif-data.c:1169
+msgid "Ignore unknown tags when loading EXIF data."
+msgstr "EXIF データ読み込み時に不明なタグを無効にする"
+
+#: libexif/exif-data.c:1170
+msgid "Follow specification"
+msgstr ""
+
+#: libexif/exif-data.c:1171
+msgid ""
+"Add, correct and remove entries to get EXIF data that follows the "
+"specification."
+msgstr ""
+
+#: libexif/exif-data.c:1173
+msgid "Do not change maker note"
+msgstr "マーカーの注釈を変更しない"
+
+#: libexif/exif-data.c:1174
+msgid ""
+"When loading and resaving Exif data, save the maker note unmodified. Be "
+"aware that the maker note can get corrupted."
+msgstr ""
+
+#: libexif/exif-entry.c:234 libexif/exif-entry.c:303 libexif/exif-entry.c:336
+#, c-format
+msgid ""
+"Tag '%s' was of format '%s' (which is against specification) and has been "
+"changed to format '%s'."
+msgstr ""
+
+#: libexif/exif-entry.c:271
+#, c-format
+msgid ""
+"Tag '%s' is of format '%s' (which is against specification) but cannot be "
+"changed to format '%s'."
+msgstr ""
+
+#: libexif/exif-entry.c:354
+#, c-format
+msgid ""
+"Tag 'UserComment' had invalid format '%s'. Format has been set to "
+"'undefined'."
+msgstr ""
+"タグ「UserComment」は不正な形式「%s」です。形式を「undefined」に設定しまし"
+"た。"
+
+#: libexif/exif-entry.c:381
+msgid ""
+"Tag 'UserComment' has been expanded to at least 8 bytes in order to follow "
+"the specification."
+msgstr ""
+
+#: libexif/exif-entry.c:396
+msgid ""
+"Tag 'UserComment' is not empty but does not start with a format identifier. "
+"This has been fixed."
+msgstr ""
+"タグ「UserComment」は空ではないものの、形式の識別子で開始していません。これを"
+"修正しました。"
+
+#: libexif/exif-entry.c:424
+msgid ""
+"Tag 'UserComment' did not start with a format identifier. This has been "
+"fixed."
+msgstr ""
+"タグ「UserComment」は形式の識別子で開始していません。これを修正しました。"
+
+#: libexif/exif-entry.c:462
+#, c-format
+msgid "%i bytes undefined data"
+msgstr "%i バイトの未定義データ"
+
+#: libexif/exif-entry.c:589
+#, c-format
+msgid "%i bytes unsupported data type"
+msgstr "%i バイトのサポートしないデータの種類"
+
+#: libexif/exif-entry.c:622
+#, c-format
+msgid "The tag '%s' contains data of an invalid format ('%s', expected '%s')."
+msgstr "タグ「%s」を含む不正な形式のデータ(「%s」は「%s」を期待しました)。"
+
+#: libexif/exif-entry.c:635
+#, c-format
+msgid ""
+"The tag '%s' contains an invalid number of components (%i, expected %i)."
+msgstr ""
+"タグ「%s」を含む不正なコンポーネント番号(「%i」は「%i」を期待しました)。"
+
+#: libexif/exif-entry.c:649
+msgid "Chunky format"
+msgstr ""
+
+#: libexif/exif-entry.c:649
+msgid "Planar format"
+msgstr "パノラマ形式"
+
+#: libexif/exif-entry.c:651 libexif/exif-entry.c:743
+#: test/nls/test-codeset.c:54
+msgid "Not defined"
+msgstr "未定義"
+
+#: libexif/exif-entry.c:651
+msgid "One-chip color area sensor"
+msgstr "1 チップの色エリア センサー"
+
+#: libexif/exif-entry.c:652
+msgid "Two-chip color area sensor"
+msgstr "2 チップの色エリア センサー"
+
+#: libexif/exif-entry.c:652
+msgid "Three-chip color area sensor"
+msgstr "3 チップの色エリア センサー"
+
+#: libexif/exif-entry.c:653
+msgid "Color sequential area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:653
+msgid "Trilinear sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:654
+msgid "Color sequential linear sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:233
+msgid "Top-left"
+msgstr "左上"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:235
+msgid "Top-right"
+msgstr "右上"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:241
+msgid "Bottom-right"
+msgstr "右下"
+
+#: libexif/exif-entry.c:657 libexif/pentax/mnote-pentax-entry.c:239
+msgid "Bottom-left"
+msgstr "左下"
+
+#: libexif/exif-entry.c:657
+msgid "Left-top"
+msgstr "左上"
+
+#: libexif/exif-entry.c:657
+msgid "Right-top"
+msgstr "右上"
+
+#: libexif/exif-entry.c:658
+msgid "Right-bottom"
+msgstr "右下"
+
+#: libexif/exif-entry.c:658
+msgid "Left-bottom"
+msgstr "左下"
+
+#: libexif/exif-entry.c:660
+msgid "Centered"
+msgstr "中央"
+
+#: libexif/exif-entry.c:660
+msgid "Co-sited"
+msgstr ""
+
+#: libexif/exif-entry.c:662
+msgid "Reversed mono"
+msgstr "反転白黒"
+
+#: libexif/exif-entry.c:662
+msgid "Normal mono"
+msgstr "通常の白黒"
+
+#: libexif/exif-entry.c:662
+msgid "RGB"
+msgstr "RGB"
+
+#: libexif/exif-entry.c:662
+msgid "Palette"
+msgstr "パレット"
+
+#: libexif/exif-entry.c:663
+msgid "CMYK"
+msgstr "CMYK"
+
+#: libexif/exif-entry.c:663
+msgid "YCbCr"
+msgstr "YCbCr"
+
+#: libexif/exif-entry.c:663
+msgid "CieLAB"
+msgstr "CieLAB"
+
+#: libexif/exif-entry.c:665
+msgid "Normal process"
+msgstr "通常処理"
+
+#: libexif/exif-entry.c:665
+msgid "Custom process"
+msgstr "カスタム処理"
+
+#: libexif/exif-entry.c:667
+msgid "Auto exposure"
+msgstr "自動露出"
+
+#: libexif/exif-entry.c:667 libexif/fuji/mnote-fuji-entry.c:139
+msgid "Manual exposure"
+msgstr "マニュアル露出"
+
+#: libexif/exif-entry.c:667
+msgid "Auto bracket"
+msgstr ""
+
+#: libexif/exif-entry.c:669
+msgid "Auto white balance"
+msgstr "自動ホワイト バランス"
+
+#: libexif/exif-entry.c:669
+msgid "Manual white balance"
+msgstr "マニュアルホワイト バランス"
+
+#: libexif/exif-entry.c:674
+msgid "Low gain up"
+msgstr "ロー ゲインを上げる"
+
+#: libexif/exif-entry.c:674
+msgid "High gain up"
+msgstr "ハイ ゲインを上げる"
+
+#: libexif/exif-entry.c:675
+msgid "Low gain down"
+msgstr "ロー ゲインを下げる"
+
+#: libexif/exif-entry.c:675
+msgid "High gain down"
+msgstr "ハイ ゲインを下げる"
+
+#: libexif/exif-entry.c:677
+msgid "Low saturation"
+msgstr "低彩度"
+
+#: libexif/exif-entry.c:677 test/nls/test-codeset.c:48
+#: test/nls/test-codeset.c:61
+msgid "High saturation"
+msgstr "高彩度"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:63
+#: libexif/olympus/mnote-olympus-entry.c:205
+#: libexif/olympus/mnote-olympus-entry.c:214
+#: libexif/pentax/mnote-pentax-entry.c:106
+#: libexif/pentax/mnote-pentax-entry.c:170
+msgid "Soft"
+msgstr "ソフト"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:65 libexif/fuji/mnote-fuji-entry.c:95
+#: libexif/olympus/mnote-olympus-entry.c:204
+#: libexif/olympus/mnote-olympus-entry.c:212
+#: libexif/pentax/mnote-pentax-entry.c:107
+msgid "Hard"
+msgstr "ハード"
+
+#: libexif/exif-entry.c:695 libexif/exif-entry.c:713 libexif/exif-entry.c:795
+#: libexif/olympus/mnote-olympus-entry.c:589
+#: libexif/olympus/mnote-olympus-entry.c:683
+#: libexif/olympus/mnote-olympus-entry.c:738
+#: libexif/pentax/mnote-pentax-entry.c:256
+msgid "Unknown"
+msgstr "不明"
+
+#: libexif/exif-entry.c:696
+msgid "Avg"
+msgstr "平均"
+
+#: libexif/exif-entry.c:697
+msgid "Center-weight"
+msgstr ""
+
+#: libexif/exif-entry.c:699
+msgid "Multi spot"
+msgstr "複数スポット"
+
+#: libexif/exif-entry.c:700
+msgid "Pattern"
+msgstr "パターン"
+
+#: libexif/exif-entry.c:705
+msgid "Uncompressed"
+msgstr "未圧縮"
+
+#: libexif/exif-entry.c:706
+msgid "LZW compression"
+msgstr "LZW 圧縮"
+
+#: libexif/exif-entry.c:707 libexif/exif-entry.c:708
+msgid "JPEG compression"
+msgstr "JPEG 圧縮"
+
+#: libexif/exif-entry.c:709
+msgid "Deflate/ZIP compression"
+msgstr "Deflate/ZIP 圧縮"
+
+#: libexif/exif-entry.c:710
+msgid "PackBits compression"
+msgstr "PackBits 圧縮"
+
+#: libexif/exif-entry.c:716
+msgid "Tungsten incandescent light"
+msgstr ""
+
+#: libexif/exif-entry.c:718
+msgid "Fine weather"
+msgstr "晴天"
+
+#: libexif/exif-entry.c:719
+msgid "Cloudy weather"
+msgstr "曇天"
+
+#: libexif/exif-entry.c:722 libexif/fuji/mnote-fuji-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:252
+msgid "Day white fluorescent"
+msgstr "昼白色蛍光灯"
+
+#: libexif/exif-entry.c:723
+msgid "Cool white fluorescent"
+msgstr "冷白色蛍光灯"
+
+#: libexif/exif-entry.c:724 libexif/fuji/mnote-fuji-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:253
+msgid "White fluorescent"
+msgstr "白色蛍光灯"
+
+#: libexif/exif-entry.c:725
+msgid "Standard light A"
+msgstr "標準ライト A"
+
+#: libexif/exif-entry.c:726
+msgid "Standard light B"
+msgstr "標準ライト B"
+
+#: libexif/exif-entry.c:727
+msgid "Standard light C"
+msgstr "標準ライト C"
+
+#: libexif/exif-entry.c:728
+msgid "D55"
+msgstr "D55"
+
+#: libexif/exif-entry.c:729
+msgid "D65"
+msgstr "D65"
+
+#: libexif/exif-entry.c:730
+msgid "D75"
+msgstr "D75"
+
+#: libexif/exif-entry.c:731
+msgid "ISO studio tungsten"
+msgstr ""
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "Inch"
+msgstr "インチ"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "in"
+msgstr ""
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "Centimeter"
+msgstr "センチ メートル"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "cm"
+msgstr "cm"
+
+#: libexif/exif-entry.c:745
+msgid "Normal program"
+msgstr "通常プログラム"
+
+#: libexif/exif-entry.c:746
+msgid "Aperture priority"
+msgstr "開口優先"
+
+#: libexif/exif-entry.c:746 libexif/exif-tag.c:550
+msgid "Aperture"
+msgstr "開口"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter priority"
+msgstr "シャッター優先"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter"
+msgstr "シャッター"
+
+#: libexif/exif-entry.c:748
+msgid "Creative program (biased toward depth of field)"
+msgstr ""
+
+#: libexif/exif-entry.c:749
+msgid "Creative"
+msgstr ""
+
+#: libexif/exif-entry.c:750
+msgid "Creative program (biased toward fast shutter speed)"
+msgstr ""
+
+#: libexif/exif-entry.c:751
+msgid "Action"
+msgstr "操作"
+
+#: libexif/exif-entry.c:752
+msgid "Portrait mode (for closeup photos with the background out of focus)"
+msgstr ""
+
+#: libexif/exif-entry.c:754
+msgid "Landscape mode (for landscape photos with the background in focus)"
+msgstr ""
+
+#: libexif/exif-entry.c:758 libexif/exif-entry.c:763
+#: libexif/olympus/mnote-olympus-entry.c:97
+msgid "Flash did not fire"
+msgstr "フラッシュを焚いていません"
+
+#: libexif/exif-entry.c:758
+msgid "No flash"
+msgstr "フラッシュなし"
+
+#: libexif/exif-entry.c:759
+msgid "Flash fired"
+msgstr "フラッシュを焚いた"
+
+#: libexif/exif-entry.c:759 libexif/olympus/mnote-olympus-entry.c:170
+#: libexif/olympus/mnote-olympus-entry.c:175
+#: libexif/olympus/mnote-olympus-entry.c:209
+#: libexif/olympus/mnote-olympus-entry.c:218
+#: libexif/olympus/mnote-olympus-entry.c:241
+msgid "Yes"
+msgstr "はい"
+
+#: libexif/exif-entry.c:760
+msgid "Strobe return light not detected"
+msgstr "ストロボの返光は未検出です"
+
+#: libexif/exif-entry.c:760
+msgid "Without strobe"
+msgstr "ストロボなし"
+
+#: libexif/exif-entry.c:762
+msgid "Strobe return light detected"
+msgstr "ストロボの返光検出しました"
+
+#: libexif/exif-entry.c:762
+msgid "With strobe"
+msgstr "ストロボあり"
+
+#: libexif/exif-entry.c:764
+msgid "Flash fired, compulsory flash mode"
+msgstr "フラッシュあり、強制フラッシュ モード"
+
+#: libexif/exif-entry.c:765
+msgid "Flash fired, compulsory flash mode, return light not detected"
+msgstr "フラッシュあり、強制フラッシュモード、光の返り検出なし"
+
+#: libexif/exif-entry.c:767
+msgid "Flash fired, compulsory flash mode, return light detected"
+msgstr "フラッシュあり、強制フラッシュモード、光の返り検出あり"
+
+#: libexif/exif-entry.c:769
+msgid "Flash did not fire, compulsory flash mode"
+msgstr "フラッシュなし、強制フラッシュ モード"
+
+#: libexif/exif-entry.c:770
+msgid "Flash did not fire, auto mode"
+msgstr "フラッシュなし、自動モード"
+
+#: libexif/exif-entry.c:771
+msgid "Flash fired, auto mode"
+msgstr "フラッシュあり、自動モード"
+
+#: libexif/exif-entry.c:772
+msgid "Flash fired, auto mode, return light not detected"
+msgstr "フラッシュあり、自動モード、光の返り検出なし"
+
+#: libexif/exif-entry.c:774
+msgid "Flash fired, auto mode, return light detected"
+msgstr "フラッシュあり、自動モード、光の返り検出あり"
+
+#: libexif/exif-entry.c:775
+msgid "No flash function"
+msgstr "フラッシュ機能なし"
+
+#: libexif/exif-entry.c:776
+msgid "Flash fired, red-eye reduction mode"
+msgstr "フラッシュあり、赤目軽減あり"
+
+#: libexif/exif-entry.c:777
+msgid "Flash fired, red-eye reduction mode, return light not detected"
+msgstr "フラッシュあり、赤目軽減あり、光の返り検出なし"
+
+#: libexif/exif-entry.c:779
+msgid "Flash fired, red-eye reduction mode, return light detected"
+msgstr "フラッシュあり、赤目軽減あり、光の返り検出あり"
+
+#: libexif/exif-entry.c:781
+msgid "Flash fired, compulsory flash mode, red-eye reduction mode"
+msgstr "フラッシュあり、強制フラッシュ モード、赤目軽減モード"
+
+#: libexif/exif-entry.c:783
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light not "
+"detected"
+msgstr ""
+"フラッシュあり、強制フラッシュ モード、赤目軽減モード、光の返り検出なし"
+
+#: libexif/exif-entry.c:785
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light "
+"detected"
+msgstr ""
+"フラッシュあり、強制フラッシュ モード、赤目軽減モード、光の返り検出あり"
+
+#: libexif/exif-entry.c:787
+msgid "Flash did not fire, auto mode, red-eye reduction mode"
+msgstr "フラッシュなし、自動モード、赤目軽減モード"
+
+#: libexif/exif-entry.c:788
+msgid "Flash fired, auto mode, red-eye reduction mode"
+msgstr "フラッシュモード、自動モード、赤目軽減モード"
+
+#: libexif/exif-entry.c:789
+msgid ""
+"Flash fired, auto mode, return light not detected, red-eye reduction mode"
+msgstr "フラッシュあり、自動モード、光の返り検出なし、赤目軽減モード"
+
+#: libexif/exif-entry.c:791
+msgid "Flash fired, auto mode, return light detected, red-eye reduction mode"
+msgstr "フラッシュあり、自動モード、光の返り検出あり、赤目軽減モード"
+
+#: libexif/exif-entry.c:795
+msgid "?"
+msgstr "?"
+
+#: libexif/exif-entry.c:797
+msgid "Close view"
+msgstr ""
+
+#: libexif/exif-entry.c:798
+msgid "Distant view"
+msgstr ""
+
+#: libexif/exif-entry.c:798
+msgid "Distant"
+msgstr ""
+
+#: libexif/exif-entry.c:801
+msgid "sRGB"
+msgstr "sRGB"
+
+#: libexif/exif-entry.c:802
+msgid "Adobe RGB"
+msgstr "Adobe RGB"
+
+#: libexif/exif-entry.c:803
+msgid "Uncalibrated"
+msgstr ""
+
+#: libexif/exif-entry.c:857
+#, c-format
+msgid "Invalid size of entry (%i, expected %li x %i)."
+msgstr ""
+
+#: libexif/exif-entry.c:890
+msgid "Unsupported UNICODE string"
+msgstr "サポートしない UNICODE 文字列"
+
+#: libexif/exif-entry.c:898
+msgid "Unsupported JIS string"
+msgstr "サポートしない JIS 文字列"
+
+#: libexif/exif-entry.c:914
+msgid "Tag UserComment does not comply with standard but contains data."
+msgstr ""
+
+#: libexif/exif-entry.c:918
+#, c-format
+msgid "Byte at position %i: 0x%02x"
+msgstr ""
+
+#: libexif/exif-entry.c:927
+msgid "Unknown Exif Version"
+msgstr "不明な EXIF バージョン"
+
+#: libexif/exif-entry.c:931
+#, c-format
+msgid "Exif Version %d.%d"
+msgstr "EXIF バージョン %d.%d"
+
+#: libexif/exif-entry.c:942
+msgid "FlashPix Version 1.0"
+msgstr "FlashPix バージョン 1.0"
+
+#: libexif/exif-entry.c:944
+msgid "FlashPix Version 1.01"
+msgstr "FlashPix バージョン 1.01"
+
+#: libexif/exif-entry.c:946
+msgid "Unknown FlashPix Version"
+msgstr "不明な FlashPix のバージョン"
+
+#: libexif/exif-entry.c:959 libexif/exif-entry.c:972 libexif/exif-entry.c:1628
+#: libexif/exif-entry.c:1633 libexif/exif-entry.c:1637
+#: libexif/exif-entry.c:1642 libexif/exif-entry.c:1643
+msgid "[None]"
+msgstr "[なし]"
+
+#: libexif/exif-entry.c:961
+msgid "(Photographer)"
+msgstr "[写真家]"
+
+#: libexif/exif-entry.c:975
+msgid "(Editor)"
+msgstr "[編集者]"
+
+#: libexif/exif-entry.c:999 libexif/exif-entry.c:1079
+#: libexif/exif-entry.c:1096 libexif/exif-entry.c:1140
+#, c-format
+msgid "%.02f EV"
+msgstr "%.02f EV"
+
+#: libexif/exif-entry.c:1000
+#, c-format
+msgid " (f/%.01f)"
+msgstr " (f/%.01f)"
+
+#: libexif/exif-entry.c:1034
+#, c-format
+msgid " (35 equivalent: %d mm)"
+msgstr ""
+
+#: libexif/exif-entry.c:1067 libexif/exif-entry.c:1068
+msgid " sec."
+msgstr " 秒"
+
+#: libexif/exif-entry.c:1082
+#, c-format
+msgid " (1/%d sec.)"
+msgstr " (1/%d 秒)"
+
+#: libexif/exif-entry.c:1084
+#, c-format
+msgid " (%d sec.)"
+msgstr " (%d 秒)"
+
+#: libexif/exif-entry.c:1097
+#, c-format
+msgid " (%.02f cd/m^2)"
+msgstr " (%.02f cd/m^2)"
+
+#: libexif/exif-entry.c:1107
+msgid "DSC"
+msgstr "DSC"
+
+#: libexif/exif-entry.c:1109 libexif/exif-entry.c:1149
+#: libexif/exif-entry.c:1236 libexif/exif-entry.c:1287
+#: libexif/exif-entry.c:1296 libexif/exif-entry.c:1332
+#: libexif/fuji/mnote-fuji-entry.c:236 libexif/fuji/mnote-fuji-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:359
+#, c-format
+msgid "Internal error (unknown value %i)"
+msgstr "内部エラー (不明な値 %i)"
+
+#: libexif/exif-entry.c:1117
+msgid "-"
+msgstr "-"
+
+#: libexif/exif-entry.c:1118
+msgid "Y"
+msgstr "Y"
+
+#: libexif/exif-entry.c:1119
+msgid "Cb"
+msgstr "Cb"
+
+#: libexif/exif-entry.c:1120
+msgid "Cr"
+msgstr "Cr"
+
+#: libexif/exif-entry.c:1121
+msgid "R"
+msgstr "R"
+
+#: libexif/exif-entry.c:1122
+msgid "G"
+msgstr "G"
+
+#: libexif/exif-entry.c:1123
+msgid "B"
+msgstr "B"
+
+#: libexif/exif-entry.c:1124
+msgid "Reserved"
+msgstr ""
+
+#: libexif/exif-entry.c:1147
+msgid "Directly photographed"
+msgstr ""
+
+#: libexif/exif-entry.c:1160
+msgid "YCbCr4:2:2"
+msgstr "YCbCr4:2:2"
+
+#: libexif/exif-entry.c:1162
+msgid "YCbCr4:2:0"
+msgstr "YCbCr4:2:0"
+
+#: libexif/exif-entry.c:1179
+#, c-format
+msgid "Within distance %i of (x,y) = (%i,%i)"
+msgstr ""
+
+#: libexif/exif-entry.c:1188
+#, c-format
+msgid "Within rectangle (width %i, height %i) around (x,y) = (%i,%i)"
+msgstr ""
+
+#: libexif/exif-entry.c:1194
+#, c-format
+msgid "Unexpected number of components (%li, expected 2, 3, or 4)."
+msgstr ""
+
+#: libexif/exif-entry.c:1232
+msgid "Sea level"
+msgstr ""
+
+#: libexif/exif-entry.c:1234
+msgid "Sea level reference"
+msgstr ""
+
+#: libexif/exif-entry.c:1342
+#, c-format
+msgid "Unknown value %i"
+msgstr "不明な値 %i"
+
+#: libexif/exif-format.c:37
+msgid "Short"
+msgstr ""
+
+#: libexif/exif-format.c:38
+msgid "Rational"
+msgstr ""
+
+#: libexif/exif-format.c:39
+msgid "SRational"
+msgstr ""
+
+#: libexif/exif-format.c:40
+msgid "Undefined"
+msgstr ""
+
+#: libexif/exif-format.c:41
+msgid "ASCII"
+msgstr "ASCII"
+
+#: libexif/exif-format.c:42
+msgid "Long"
+msgstr ""
+
+#: libexif/exif-format.c:43
+msgid "Byte"
+msgstr ""
+
+#: libexif/exif-format.c:44
+msgid "SByte"
+msgstr ""
+
+#: libexif/exif-format.c:45
+msgid "SShort"
+msgstr ""
+
+#: libexif/exif-format.c:46
+msgid "SLong"
+msgstr ""
+
+#: libexif/exif-format.c:47
+msgid "Float"
+msgstr ""
+
+#: libexif/exif-format.c:48
+msgid "Double"
+msgstr ""
+
+#: libexif/exif-loader.c:119
+#, c-format
+msgid "The file '%s' could not be opened."
+msgstr ""
+
+#: libexif/exif-loader.c:300
+msgid "The data supplied does not seem to contain EXIF data."
+msgstr ""
+
+#: libexif/exif-log.c:43
+msgid "Debugging information"
+msgstr ""
+
+#: libexif/exif-log.c:44
+msgid "Debugging information is available."
+msgstr "デバッグ情報が利用できます。"
+
+#: libexif/exif-log.c:45
+msgid "Not enough memory"
+msgstr "メモリーが足りません"
+
+#: libexif/exif-log.c:46
+msgid "The system cannot provide enough memory."
+msgstr ""
+
+#: libexif/exif-log.c:47
+msgid "Corrupt data"
+msgstr ""
+
+#: libexif/exif-log.c:48
+msgid "The data provided does not follow the specification."
+msgstr ""
+
+#: libexif/exif-tag.c:62
+msgid "GPS Tag Version"
+msgstr "GPS タグのバージョン"
+
+#: libexif/exif-tag.c:63
+msgid ""
+"Indicates the version of <GPSInfoIFD>. The version is given as 2.0.0.0. This "
+"tag is mandatory when <GPSInfo> tag is present. (Note: The <GPSVersionID> "
+"tag is given in bytes, unlike the <ExifVersion> tag. When the version is "
+"2.0.0.0, the tag value is 02000000.H)."
+msgstr ""
+
+#: libexif/exif-tag.c:69
+msgid "Interoperability Index"
+msgstr ""
+
+#: libexif/exif-tag.c:70
+msgid ""
+"Indicates the identification of the Interoperability rule. Use \"R98\" for "
+"stating ExifR98 Rules. Four bytes used including the termination code "
+"(NULL). see the separate volume of Recommended Exif Interoperability Rules "
+"(ExifR98) for other tags used for ExifR98."
+msgstr ""
+
+#: libexif/exif-tag.c:76
+msgid "North or South Latitude"
+msgstr ""
+
+#: libexif/exif-tag.c:77
+msgid ""
+"Indicates whether the latitude is north or south latitude. The ASCII value "
+"'N' indicates north latitude, and 'S' is south latitude."
+msgstr ""
+
+#: libexif/exif-tag.c:81
+msgid "Interoperability Version"
+msgstr ""
+
+#: libexif/exif-tag.c:83
+msgid "Latitude"
+msgstr ""
+
+#: libexif/exif-tag.c:84
+msgid ""
+"Indicates the latitude. The latitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is dd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is dd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:91
+msgid "East or West Longitude"
+msgstr ""
+
+#: libexif/exif-tag.c:92
+msgid ""
+"Indicates whether the longitude is east or west longitude. ASCII 'E' "
+"indicates east longitude, and 'W' is west longitude."
+msgstr ""
+
+#: libexif/exif-tag.c:95
+msgid "Longitude"
+msgstr ""
+
+#: libexif/exif-tag.c:96
+msgid ""
+"Indicates the longitude. The longitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is ddd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is ddd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:103
+msgid "Altitude Reference"
+msgstr ""
+
+#: libexif/exif-tag.c:104
+msgid ""
+"Indicates the altitude used as the reference altitude. If the reference is "
+"sea level and the altitude is above sea level, 0 is given. If the altitude "
+"is below sea level, a value of 1 is given and the altitude is indicated as "
+"an absolute value in the GSPAltitude tag. The reference unit is meters. Note "
+"that this tag is BYTE type, unlike other reference tags."
+msgstr ""
+
+#: libexif/exif-tag.c:110
+msgid "Altitude"
+msgstr ""
+
+#: libexif/exif-tag.c:111
+msgid ""
+"Indicates the altitude based on the reference in GPSAltitudeRef. Altitude is "
+"expressed as one RATIONAL value. The reference unit is meters."
+msgstr ""
+
+#: libexif/exif-tag.c:114
+msgid "GPS Time (Atomic Clock)"
+msgstr ""
+
+#: libexif/exif-tag.c:115
+msgid ""
+"Indicates the time as UTC (Coordinated Universal Time). TimeStamp is "
+"expressed as three RATIONAL values giving the hour, minute, and second."
+msgstr ""
+
+#: libexif/exif-tag.c:118
+#, fuzzy
+msgid "GPS Satellites"
+msgstr "GPS の日付"
+
+#: libexif/exif-tag.c:119
+msgid ""
+"Indicates the GPS satellites used for measurements. This tag can be used to "
+"describe the number of satellites, their ID number, angle of elevation, "
+"azimuth, SNR and other information in ASCII notation. The format is not "
+"specified. If the GPS receiver is incapable of taking measurements, value of "
+"the tag shall be set to NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:125
+msgid "GPS Receiver Status"
+msgstr "GPS レシーバーの状態"
+
+#: libexif/exif-tag.c:126
+msgid ""
+"Indicates the status of the GPS receiver when the image is recorded. 'A' "
+"means measurement is in progress, and 'V' means the measurement is "
+"Interoperability."
+msgstr ""
+
+#: libexif/exif-tag.c:129
+msgid "GPS Measurement Mode"
+msgstr "GPS 測定モード"
+
+#: libexif/exif-tag.c:130
+msgid ""
+"Indicates the GPS measurement mode. '2' means two-dimensional measurement "
+"and '3' means three-dimensional measurement is in progress."
+msgstr ""
+
+#: libexif/exif-tag.c:133
+msgid "Measurement Precision"
+msgstr ""
+
+#: libexif/exif-tag.c:134
+msgid ""
+"Indicates the GPS DOP (data degree of precision). An HDOP value is written "
+"during two-dimensional measurement, and PDOP during three-dimensional "
+"measurement."
+msgstr ""
+
+#: libexif/exif-tag.c:137
+msgid "Speed Unit"
+msgstr "速度の単位"
+
+#: libexif/exif-tag.c:138
+msgid ""
+"Indicates the unit used to express the GPS receiver speed of movement. 'K', "
+"'M' and 'N' represent kilometers per hour, miles per hour, and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:141
+msgid "Speed of GPS Receiver"
+msgstr "GPS 受信機の速度"
+
+#: libexif/exif-tag.c:142
+msgid "Indicates the speed of GPS receiver movement."
+msgstr ""
+
+#: libexif/exif-tag.c:143
+msgid "Reference for direction of movement"
+msgstr ""
+
+#: libexif/exif-tag.c:144
+msgid ""
+"Indicates the reference for giving the direction of GPS receiver movement. "
+"'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:147
+msgid "Direction of Movement"
+msgstr ""
+
+#: libexif/exif-tag.c:148
+msgid ""
+"Indicates the direction of GPS receiver movement. The range of values is "
+"from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:150
+msgid "GPS Image Direction Reference"
+msgstr ""
+
+#: libexif/exif-tag.c:151
+msgid ""
+"Indicates the reference for giving the direction of the image when it is "
+"captured. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:153
+msgid "GPS Image Direction"
+msgstr "GPS 画像の方向"
+
+#: libexif/exif-tag.c:154
+msgid ""
+"Indicates the direction of the image when it was captured. The range of "
+"values is from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:156
+msgid "Geodetic Survey Data Used"
+msgstr ""
+
+#: libexif/exif-tag.c:157
+msgid ""
+"Indicates the geodetic survey data used by the GPS receiver. If the survey "
+"data is restricted to Japan, the value of this tag is 'TOKYO' or 'WGS-84'. "
+"If a GPS Info tag is recorded, it is strongly recommended that this tag be "
+"recorded."
+msgstr ""
+
+#: libexif/exif-tag.c:161
+msgid "Reference For Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:162
+msgid ""
+"Indicates whether the latitude of the destination point is north or south "
+"latitude. The ASCII value 'N' indicates north latitude, and 'S' is south "
+"latitude."
+msgstr ""
+
+#: libexif/exif-tag.c:165
+msgid "Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:166
+msgid ""
+"Indicates the latitude of the destination point. The latitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If latitude is expressed as degrees, minutes and seconds, a "
+"typical format would be dd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be dd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:173
+msgid "Reference for Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:174
+msgid ""
+"Indicates whether the longitude of the destination point is east or west "
+"longitude. ASCII 'E' indicates east longitude, and 'W' is west longitude."
+msgstr ""
+
+#: libexif/exif-tag.c:177
+msgid "Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:178
+msgid ""
+"Indicates the longitude of the destination point. The longitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If longitude is expressed as degrees, minutes and seconds, a "
+"typical format would be ddd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be ddd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:186
+msgid "Reference for Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:187
+msgid ""
+"Indicates the reference used for giving the bearing to the destination "
+"point. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:190
+msgid "Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:191
+msgid ""
+"Indicates the bearing to the destination point. The range of values is from "
+"0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:193
+msgid "Reference for Distance to Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:194
+msgid ""
+"Indicates the unit used to express the distance to the destination point. "
+"'K', 'M' and 'N' represent kilometers, miles and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:197
+#, fuzzy
+msgid "Distance to Destination"
+msgstr "デバイス設定の説明"
+
+#: libexif/exif-tag.c:198
+msgid "Indicates the distance to the destination point."
+msgstr ""
+
+#: libexif/exif-tag.c:199
+msgid "Name of GPS Processing Method"
+msgstr "GPS 処理方法の名前"
+
+#: libexif/exif-tag.c:200
+msgid ""
+"A character string recording the name of the method used for location "
+"finding. The first byte indicates the character code used, and this is "
+"followed by the name of the method. Since the Type is not ASCII, NULL "
+"termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:205
+msgid "Name of GPS Area"
+msgstr "GPS エリアの名前"
+
+#: libexif/exif-tag.c:206
+msgid ""
+"A character string recording the name of the GPS area. The first byte "
+"indicates the character code used, and this is followed by the name of the "
+"GPS area. Since the Type is not ASCII, NULL termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:210
+msgid "GPS Date"
+msgstr "GPS の日付"
+
+#: libexif/exif-tag.c:211
+msgid ""
+"A character string recording date and time information relative to UTC "
+"(Coordinated Universal Time). The format is \"YYYY:MM:DD\". The length of "
+"the string is 11 bytes including NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:215
+msgid "GPS Differential Correction"
+msgstr ""
+
+#: libexif/exif-tag.c:216
+msgid ""
+"Indicates whether differential correction is applied to the GPS receiver."
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "New Subfile Type"
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "A general indication of the kind of data contained in this subfile."
+msgstr ""
+
+#: libexif/exif-tag.c:222
+msgid "Image Width"
+msgstr "画像幅"
+
+#: libexif/exif-tag.c:223
+msgid ""
+"The number of columns of image data, equal to the number of pixels per row. "
+"In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:227
+msgid "Image Length"
+msgstr "画像長"
+
+#: libexif/exif-tag.c:228
+msgid ""
+"The number of rows of image data. In JPEG compressed data a JPEG marker is "
+"used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:231
+msgid "Bits per Sample"
+msgstr "サンプル毎ビット"
+
+#: libexif/exif-tag.c:232
+msgid ""
+"The number of bits per image component. In this standard each component of "
+"the image is 8 bits, so the value for this tag is 8. See also "
+"<SamplesPerPixel>. In JPEG compressed data a JPEG marker is used instead of "
+"this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:237
+msgid "Compression"
+msgstr "圧縮"
+
+#: libexif/exif-tag.c:238
+msgid ""
+"The compression scheme used for the image data. When a primary image is JPEG "
+"compressed, this designation is not necessary and is omitted. When "
+"thumbnails use JPEG compression, this tag value is set to 6."
+msgstr ""
+
+#: libexif/exif-tag.c:244
+msgid "Photometric Interpretation"
+msgstr ""
+
+#: libexif/exif-tag.c:245
+msgid ""
+"The pixel composition. In JPEG compressed data a JPEG marker is used instead "
+"of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:249
+msgid "Fill Order"
+msgstr ""
+
+#: libexif/exif-tag.c:251
+msgid "Document Name"
+msgstr "ドキュメント名"
+
+#: libexif/exif-tag.c:253
+msgid "Image Description"
+msgstr "画像の説明"
+
+#: libexif/exif-tag.c:254
+msgid ""
+"A character string giving the title of the image. It may be a comment such "
+"as \"1988 company picnic\" or the like. Two-bytes character codes cannot be "
+"used. When a 2-bytes code is necessary, the Exif Private tag <UserComment> "
+"is to be used."
+msgstr ""
+
+#: libexif/exif-tag.c:260
+msgid "Manufacturer"
+msgstr "製造"
+
+#: libexif/exif-tag.c:261
+msgid ""
+"The manufacturer of the recording equipment. This is the manufacturer of the "
+"DSC, scanner, video digitizer or other equipment that generated the image. "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:267
+msgid "Model"
+msgstr "モデル"
+
+#: libexif/exif-tag.c:268
+msgid ""
+"The model name or model number of the equipment. This is the model name or "
+"number of the DSC, scanner, video digitizer or other equipment that "
+"generated the image. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:273
+msgid "Strip Offsets"
+msgstr ""
+
+#: libexif/exif-tag.c:274
+msgid ""
+"For each strip, the byte offset of that strip. It is recommended that this "
+"be selected so the number of strip bytes does not exceed 64 Kbytes. With "
+"JPEG compressed data this designation is not needed and is omitted. See also "
+"<RowsPerStrip> and <StripByteCounts>."
+msgstr ""
+
+#: libexif/exif-tag.c:280
+msgid "Orientation"
+msgstr ""
+
+#: libexif/exif-tag.c:281
+msgid "The image orientation viewed in terms of rows and columns."
+msgstr ""
+
+#: libexif/exif-tag.c:284
+msgid "Samples per Pixel"
+msgstr ""
+
+#: libexif/exif-tag.c:285
+msgid ""
+"The number of components per pixel. Since this standard applies to RGB and "
+"YCbCr images, the value set for this tag is 3. In JPEG compressed data a "
+"JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:290
+msgid "Rows per Strip"
+msgstr ""
+
+#: libexif/exif-tag.c:291
+msgid ""
+"The number of rows per strip. This is the number of rows in the image of one "
+"strip when an image is divided into strips. With JPEG compressed data this "
+"designation is not needed and is omitted. See also <StripOffsets> and "
+"<StripByteCounts>."
+msgstr ""
+
+#: libexif/exif-tag.c:297
+msgid "Strip Byte Count"
+msgstr ""
+
+#: libexif/exif-tag.c:298
+msgid ""
+"The total number of bytes in each strip. With JPEG compressed data this "
+"designation is not needed and is omitted."
+msgstr ""
+
+#: libexif/exif-tag.c:301
+msgid "X-Resolution"
+msgstr "X 解像度"
+
+#: libexif/exif-tag.c:302
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageWidth> direction. "
+"When the image resolution is unknown, 72 [dpi] is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:306
+msgid "Y-Resolution"
+msgstr "Y 解像度"
+
+#: libexif/exif-tag.c:307
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageLength> direction. "
+"The same value as <XResolution> is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:311
+msgid "Planar Configuration"
+msgstr "プランナー設定"
+
+#: libexif/exif-tag.c:312
+msgid ""
+"Indicates whether pixel components are recorded in a chunky or planar "
+"format. In JPEG compressed files a JPEG marker is used instead of this tag. "
+"If this field does not exist, the TIFF default of 1 (chunky) is assumed."
+msgstr ""
+
+#: libexif/exif-tag.c:317
+msgid "Resolution Unit"
+msgstr "解像度の単位"
+
+#: libexif/exif-tag.c:318
+msgid ""
+"The unit for measuring <XResolution> and <YResolution>. The same unit is "
+"used for both <XResolution> and <YResolution>. If the image resolution is "
+"unknown, 2 (inches) is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:323
+msgid "Transfer Function"
+msgstr ""
+
+#: libexif/exif-tag.c:324
+msgid ""
+"A transfer function for the image, described in tabular style. Normally this "
+"tag is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:328
+msgid "Software"
+msgstr "ソフトウェア"
+
+#: libexif/exif-tag.c:329
+msgid ""
+"This tag records the name and version of the software or firmware of the "
+"camera or image input device used to generate the image. The detailed format "
+"is not specified, but it is recommended that the example shown below be "
+"followed. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:336
+msgid "Date and Time"
+msgstr "日時"
+
+#: libexif/exif-tag.c:337
+msgid ""
+"The date and time of image creation. In this standard (EXIF-2.1) it is the "
+"date and time the file was changed."
+msgstr ""
+
+#: libexif/exif-tag.c:340
+msgid "Artist"
+msgstr "アーティスト"
+
+#: libexif/exif-tag.c:341
+msgid ""
+"This tag records the name of the camera owner, photographer or image "
+"creator. The detailed format is not specified, but it is recommended that "
+"the information be written as in the example below for ease of "
+"Interoperability. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:347 libexif/pentax/mnote-pentax-tag.c:113
+msgid "White Point"
+msgstr ""
+
+#: libexif/exif-tag.c:348
+msgid ""
+"The chromaticity of the white point of the image. Normally this tag is not "
+"necessary, since color space is specified in the color space information tag "
+"(<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:353
+msgid "Primary Chromaticities"
+msgstr ""
+
+#: libexif/exif-tag.c:354
+msgid ""
+"The chromaticity of the three primary colors of the image. Normally this tag "
+"is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:359
+msgid "Defined by Adobe Corporation to enable TIFF Trees within a TIFF file."
+msgstr ""
+
+#: libexif/exif-tag.c:362
+msgid "Transfer Range"
+msgstr ""
+
+#: libexif/exif-tag.c:366
+msgid "JPEG Interchange Format"
+msgstr ""
+
+#: libexif/exif-tag.c:367
+msgid ""
+"The offset to the start byte (SOI) of JPEG compressed thumbnail data. This "
+"is not used for primary image JPEG data."
+msgstr ""
+
+#: libexif/exif-tag.c:372
+msgid "JPEG Interchange Format Length"
+msgstr ""
+
+#: libexif/exif-tag.c:373
+msgid ""
+"The number of bytes of JPEG compressed thumbnail data. This is not used for "
+"primary image JPEG data. JPEG thumbnails are not divided but are recorded as "
+"a continuous JPEG bitstream from SOI to EOI. Appn and COM markers should not "
+"be recorded. Compressed thumbnails must be recorded in no more than 64 "
+"Kbytes, including all other data to be recorded in APP1."
+msgstr ""
+
+#: libexif/exif-tag.c:382
+msgid "YCbCr Coefficients"
+msgstr ""
+
+#: libexif/exif-tag.c:383
+msgid ""
+"The matrix coefficients for transformation from RGB to YCbCr image data. No "
+"default is given in TIFF; but here the value given in \"Color Space "
+"Guidelines\", is used as the default. The color space is declared in a color "
+"space information tag, with the default being the value that gives the "
+"optimal image characteristics Interoperability this condition."
+msgstr ""
+
+#: libexif/exif-tag.c:392
+msgid "YCbCr Sub-Sampling"
+msgstr ""
+
+#: libexif/exif-tag.c:393
+msgid ""
+"The sampling ratio of chrominance components in relation to the luminance "
+"component. In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:398
+msgid "YCbCr Positioning"
+msgstr ""
+
+#: libexif/exif-tag.c:399
+msgid ""
+"The position of chrominance components in relation to the luminance "
+"component. This field is designated only for JPEG compressed data or "
+"uncompressed YCbCr data. The TIFF default is 1 (centered); but when Y:Cb:Cr "
+"= 4:2:2 it is recommended in this standard that 2 (co-sited) be used to "
+"record data, in order to improve the image quality when viewed on TV "
+"systems. When this field does not exist, the reader shall assume the TIFF "
+"default. In the case of Y:Cb:Cr = 4:2:0, the TIFF default (centered) is "
+"recommended. If the reader does not have the capability of supporting both "
+"kinds of <YCbCrPositioning>, it shall follow the TIFF default regardless of "
+"the value in this field. It is preferable that readers be able to support "
+"both centered and co-sited positioning."
+msgstr ""
+
+#: libexif/exif-tag.c:414
+msgid "Reference Black/White"
+msgstr ""
+
+#: libexif/exif-tag.c:415
+msgid ""
+"The reference black point value and reference white point value. No defaults "
+"are given in TIFF, but the values below are given as defaults here. The "
+"color space is declared in a color space information tag, with the default "
+"being the value that gives the optimal image characteristics "
+"Interoperability these conditions."
+msgstr ""
+
+#: libexif/exif-tag.c:423
+msgid "XML Packet"
+msgstr "XML パケット"
+
+#: libexif/exif-tag.c:423
+msgid "XMP Metadata"
+msgstr "XMP メタデータ"
+
+#: libexif/exif-tag.c:438 libexif/exif-tag.c:784
+msgid "CFA Pattern"
+msgstr "CFA パターン"
+
+#: libexif/exif-tag.c:439 libexif/exif-tag.c:785
+msgid ""
+"Indicates the color filter array (CFA) geometric pattern of the image sensor "
+"when a one-chip color area sensor is used. It does not apply to all sensing "
+"methods."
+msgstr ""
+
+#: libexif/exif-tag.c:443
+msgid "Battery Level"
+msgstr "バッテリーレベル"
+
+#: libexif/exif-tag.c:444
+msgid "Copyright"
+msgstr "Copyright"
+
+#: libexif/exif-tag.c:445
+msgid ""
+"Copyright information. In this standard the tag is used to indicate both the "
+"photographer and editor copyrights. It is the copyright notice of the person "
+"or organization claiming rights to the image. The Interoperability copyright "
+"statement including date and rights should be written in this field; e.g., "
+"\"Copyright, John Smith, 19xx. All rights reserved.\". In this standard the "
+"field records both the photographer and editor copyrights, with each "
+"recorded in a separate part of the statement. When there is a clear "
+"distinction between the photographer and editor copyrights, these are to be "
+"written in the order of photographer followed by editor copyright, separated "
+"by NULL (in this case, since the statement also ends with a NULL, there are "
+"two NULL codes) (see example 1). When only the photographer is given, it is "
+"terminated by one NULL code (see example 2). When only the editor copyright "
+"is given, the photographer copyright part consists of one space followed by "
+"a terminating NULL code, then the editor copyright is given (see example 3). "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:467
+msgid "Exposure time, given in seconds (sec)."
+msgstr "露出時間を秒で指定します。"
+
+#: libexif/exif-tag.c:469 libexif/pentax/mnote-pentax-tag.c:79
+msgid "F-Number"
+msgstr "F 番号"
+
+#: libexif/exif-tag.c:470
+msgid "The F number."
+msgstr "F 値です。"
+
+#: libexif/exif-tag.c:475
+msgid "Image Resources Block"
+msgstr "画像リソースのブロック"
+
+#: libexif/exif-tag.c:477
+msgid ""
+"A pointer to the Exif IFD. Interoperability, Exif IFD has the same structure "
+"as that of the IFD specified in TIFF. ordinarily, however, it does not "
+"contain image data as in the case of TIFF."
+msgstr ""
+
+#: libexif/exif-tag.c:485
+msgid "Exposure Program"
+msgstr "露出プログラム"
+
+#: libexif/exif-tag.c:486
+msgid ""
+"The class of the program used by the camera to set exposure when the picture "
+"is taken."
+msgstr ""
+
+#: libexif/exif-tag.c:490
+msgid "Spectral Sensitivity"
+msgstr ""
+
+#: libexif/exif-tag.c:491
+msgid ""
+"Indicates the spectral sensitivity of each channel of the camera used. The "
+"tag value is an ASCII string compatible with the standard developed by the "
+"ASTM Technical Committee."
+msgstr ""
+
+#: libexif/exif-tag.c:496
+msgid "GPS Info IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:497
+msgid ""
+"A pointer to the GPS Info IFD. The Interoperability structure of the GPS "
+"Info IFD, like that of Exif IFD, has no image data."
+msgstr ""
+
+#: libexif/exif-tag.c:503
+msgid "ISO Speed Ratings"
+msgstr "ISO 速度評価"
+
+#: libexif/exif-tag.c:504
+msgid ""
+"Indicates the ISO Speed and ISO Latitude of the camera or input device as "
+"specified in ISO 12232."
+msgstr ""
+
+#: libexif/exif-tag.c:507
+msgid "Opto-Electronic Conversion Function"
+msgstr ""
+
+#: libexif/exif-tag.c:508
+msgid ""
+"Indicates the Opto-Electronic Conversion Function (OECF) specified in ISO "
+"14524. <OECF> is the relationship between the camera optical input and the "
+"image values."
+msgstr ""
+
+#: libexif/exif-tag.c:513
+msgid "Time Zone Offset"
+msgstr "タイムゾーンのオフセット"
+
+#: libexif/exif-tag.c:514
+msgid "Encodes time zone of camera clock relative to GMT."
+msgstr ""
+
+#: libexif/exif-tag.c:515
+msgid "Exif Version"
+msgstr "EXIF バージョン"
+
+#: libexif/exif-tag.c:516
+msgid ""
+"The version of this standard supported. Nonexistence of this field is taken "
+"to mean nonconformance to the standard."
+msgstr ""
+
+#: libexif/exif-tag.c:520
+msgid "Date and Time (Original)"
+msgstr "日時 (オリジナル)"
+
+#: libexif/exif-tag.c:521
+msgid ""
+"The date and time when the original image data was generated. For a digital "
+"still camera the date and time the picture was taken are recorded."
+msgstr ""
+
+#: libexif/exif-tag.c:526
+msgid "Date and Time (Digitized)"
+msgstr ""
+
+#: libexif/exif-tag.c:527
+msgid "The date and time when the image was stored as digital data."
+msgstr ""
+
+#: libexif/exif-tag.c:530
+msgid "Components Configuration"
+msgstr "コンポーネント設定"
+
+#: libexif/exif-tag.c:531
+msgid ""
+"Information specific to compressed data. The channels of each component are "
+"arranged in order from the 1st component to the 4th. For uncompressed data "
+"the data arrangement is given in the <PhotometricInterpretation> tag. "
+"However, since <PhotometricInterpretation> can only express the order of Y, "
+"Cb and Cr, this tag is provided for cases when compressed data uses "
+"components other than Y, Cb, and Cr and to enable support of other sequences."
+msgstr ""
+
+#: libexif/exif-tag.c:541
+msgid "Compressed Bits per Pixel"
+msgstr "ピクセル毎の圧縮ビット"
+
+#: libexif/exif-tag.c:542
+msgid ""
+"Information specific to compressed data. The compression mode used for a "
+"compressed image is indicated in unit bits per pixel."
+msgstr ""
+
+#: libexif/exif-tag.c:546 libexif/olympus/mnote-olympus-tag.c:123
+msgid "Shutter Speed"
+msgstr "シャッター スピード"
+
+#: libexif/exif-tag.c:547
+msgid ""
+"Shutter speed. The unit is the APEX (Additive System of Photographic "
+"Exposure) setting."
+msgstr ""
+
+#: libexif/exif-tag.c:551
+msgid "The lens aperture. The unit is the APEX value."
+msgstr ""
+
+#: libexif/exif-tag.c:553
+msgid "Brightness"
+msgstr "ブライトネス"
+
+#: libexif/exif-tag.c:554
+msgid ""
+"The value of brightness. The unit is the APEX value. Ordinarily it is given "
+"in the range of -99.99 to 99.99."
+msgstr ""
+
+#: libexif/exif-tag.c:558
+msgid "Exposure Bias"
+msgstr "露出バイアス"
+
+#: libexif/exif-tag.c:559
+msgid ""
+"The exposure bias. The units is the APEX value. Ordinarily it is given in "
+"the range of -99.99 to 99.99."
+msgstr ""
+
+#: libexif/exif-tag.c:562
+msgid "Maximum Aperture Value"
+msgstr ""
+
+#: libexif/exif-tag.c:563
+msgid ""
+"The smallest F number of the lens. The unit is the APEX value. Ordinarily it "
+"is given in the range of 00.00 to 99.99, but it is not limited to this range."
+msgstr ""
+
+#: libexif/exif-tag.c:568
+msgid "Subject Distance"
+msgstr ""
+
+#: libexif/exif-tag.c:569
+msgid "The distance to the subject, given in meters."
+msgstr ""
+
+#: libexif/exif-tag.c:572
+msgid "The metering mode."
+msgstr ""
+
+#: libexif/exif-tag.c:574
+msgid "Light Source"
+msgstr "光源"
+
+#: libexif/exif-tag.c:575
+msgid "The kind of light source."
+msgstr ""
+
+#: libexif/exif-tag.c:578
+msgid ""
+"This tag is recorded when an image is taken using a strobe light (flash)."
+msgstr ""
+
+#: libexif/exif-tag.c:582
+msgid ""
+"The actual focal length of the lens, in mm. Conversion is not made to the "
+"focal length of a 35 mm film camera."
+msgstr ""
+
+#: libexif/exif-tag.c:585
+msgid "Subject Area"
+msgstr ""
+
+#: libexif/exif-tag.c:586
+msgid ""
+"This tag indicates the location and area of the main subject in the overall "
+"scene."
+msgstr ""
+
+#: libexif/exif-tag.c:590
+msgid "TIFF/EP Standard ID"
+msgstr "TIFF/EP 標準 ID"
+
+#: libexif/exif-tag.c:591
+msgid "Maker Note"
+msgstr "メーカーの注釈"
+
+#: libexif/exif-tag.c:592
+msgid ""
+"A tag for manufacturers of Exif writers to record any desired information. "
+"The contents are up to the manufacturer."
+msgstr ""
+
+#: libexif/exif-tag.c:595
+msgid "User Comment"
+msgstr "ユーザーのコメント"
+
+#: libexif/exif-tag.c:596
+msgid ""
+"A tag for Exif users to write keywords or comments on the image besides "
+"those in <ImageDescription>, and without the character code limitations of "
+"the <ImageDescription> tag. The character code used in the <UserComment> tag "
+"is identified based on an ID code in a fixed 8-byte area at the start of the "
+"tag data area. The unused portion of the area is padded with NULL (\"00.h"
+"\"). ID codes are assigned by means of registration. The designation method "
+"and references for each character code are defined in the specification. The "
+"value of CountN is determined based on the 8 bytes in the character code "
+"area and the number of bytes in the user comment part. Since the TYPE is not "
+"ASCII, NULL termination is not necessary. The ID code for the <UserComment> "
+"area may be a Defined code such as JIS or ASCII, or may be Undefined. The "
+"Undefined name is UndefinedText, and the ID code is filled with 8 bytes of "
+"all \"NULL\" (\"00.H\"). An Exif reader that reads the <UserComment> tag "
+"must have a function for determining the ID code. This function is not "
+"required in Exif readers that do not use the <UserComment> tag. When a "
+"<UserComment> area is set aside, it is recommended that the ID code be ASCII "
+"and that the following user comment part be filled with blank characters [20."
+"H]."
+msgstr ""
+
+#: libexif/exif-tag.c:619
+msgid "Sub-second Time"
+msgstr ""
+
+#: libexif/exif-tag.c:620
+msgid "A tag used to record fractions of seconds for the <DateTime> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:624
+#, fuzzy
+msgid "Sub-second Time (Original)"
+msgstr "日時 (オリジナル)"
+
+#: libexif/exif-tag.c:625
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeOriginal> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:629
+msgid "Sub-second Time (Digitized)"
+msgstr ""
+
+#: libexif/exif-tag.c:630
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeDigitized> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:634
+msgid "XP Title"
+msgstr "XP の題名"
+
+#: libexif/exif-tag.c:635
+msgid "A character string giving the title of the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:639
+msgid "XP Comment"
+msgstr "XP のコメント"
+
+#: libexif/exif-tag.c:640
+msgid ""
+"A character string containing a comment about the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:644
+msgid "XP Author"
+msgstr "XP の著者"
+
+#: libexif/exif-tag.c:645
+msgid ""
+"A character string containing the name of the image creator, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:649
+msgid "XP Keywords"
+msgstr "XP のキーワード"
+
+#: libexif/exif-tag.c:650
+msgid ""
+"A character string containing key words describing the image, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:654
+msgid "XP Subject"
+msgstr "XP の題名"
+
+#: libexif/exif-tag.c:655
+msgid "A character string giving the image subject, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:659
+msgid "The FlashPix format version supported by a FPXR file."
+msgstr ""
+
+#: libexif/exif-tag.c:661 libexif/pentax/mnote-pentax-tag.c:102
+msgid "Color Space"
+msgstr "色空間"
+
+#: libexif/exif-tag.c:662
+msgid ""
+"The color space information tag is always recorded as the color space "
+"specifier. Normally sRGB (=1) is used to define the color space based on the "
+"PC monitor conditions and environment. If a color space other than sRGB is "
+"used, Uncalibrated (=FFFF.H) is set. Image data recorded as Uncalibrated can "
+"be treated as sRGB when it is converted to FlashPix."
+msgstr ""
+
+#: libexif/exif-tag.c:670
+msgid "Pixel X Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:671
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid width of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file."
+msgstr ""
+
+#: libexif/exif-tag.c:677
+msgid "Pixel Y Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:678
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid height of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file. Since data padding is unnecessary in the "
+"vertical direction, the number of lines recorded in this valid image height "
+"tag will in fact be the same as that recorded in the SOF."
+msgstr ""
+
+#: libexif/exif-tag.c:688
+msgid "Related Sound File"
+msgstr ""
+
+#: libexif/exif-tag.c:689
+msgid ""
+"This tag is used to record the name of an audio file related to the image "
+"data. The only relational information recorded here is the Exif audio file "
+"name and extension (an ASCII string consisting of 8 characters + '.' + 3 "
+"characters). The path is not recorded. Stipulations on audio and file naming "
+"conventions are defined in the specification. When using this tag, audio "
+"files must be recorded in conformance to the Exif audio format. Writers are "
+"also allowed to store the data such as Audio within APP2 as FlashPix "
+"extension stream data. The mapping of Exif image files and audio files is "
+"done in any of three ways, [1], [2] and [3]. If multiple files are mapped to "
+"one file as in [2] or [3], the above format is used to record just one audio "
+"file name. If there are multiple audio files, the first recorded file is "
+"given. In the case of [3], for example, for the Exif image file \"DSC00001."
+"JPG\" only  \"SND00001.WAV\" is given as the related Exif audio file. When "
+"there are three Exif audio files \"SND00001.WAV\", \"SND00002.WAV\" and "
+"\"SND00003.WAV\", the Exif image file name for each of them, \"DSC00001.JPG"
+"\", is indicated. By combining multiple relational information, a variety of "
+"playback possibilities can be supported. The method of using relational "
+"information is left to the implementation on the playback side. Since this "
+"information is an ASCII character string, it is terminated by NULL. When "
+"this tag is used to map audio files, the relation of the audio file to image "
+"data must also be indicated on the audio file end."
+msgstr ""
+
+#: libexif/exif-tag.c:719
+msgid "Interoperability IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:720
+msgid ""
+"Interoperability IFD is composed of tags which stores the information to "
+"ensure the Interoperability and pointed by the following tag located in Exif "
+"IFD. The Interoperability structure of Interoperability IFD is the same as "
+"TIFF defined IFD structure but does not contain the image data "
+"characteristically compared with normal TIFF IFD."
+msgstr ""
+
+#: libexif/exif-tag.c:729
+msgid "Flash Energy"
+msgstr "フラッシュ エネルギー"
+
+#: libexif/exif-tag.c:730
+msgid ""
+"Indicates the strobe energy at the time the image is captured, as measured "
+"in Beam Candle Power Seconds (BCPS)."
+msgstr ""
+
+#: libexif/exif-tag.c:734
+msgid "Spatial Frequency Response"
+msgstr ""
+
+#: libexif/exif-tag.c:735
+msgid ""
+"This tag records the camera or input device spatial frequency table and SFR "
+"values in the direction of image width, image height, and diagonal "
+"direction, as specified in ISO 12233."
+msgstr ""
+
+#: libexif/exif-tag.c:741
+#, fuzzy
+msgid "Focal Plane X-Resolution"
+msgstr "X 解像度"
+
+#: libexif/exif-tag.c:742
+msgid ""
+"Indicates the number of pixels in the image width (X) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+
+#: libexif/exif-tag.c:746
+#, fuzzy
+msgid "Focal Plane Y-Resolution"
+msgstr "X 解像度"
+
+#: libexif/exif-tag.c:747
+msgid ""
+"Indicates the number of pixels in the image height (V) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+
+#: libexif/exif-tag.c:751
+msgid "Focal Plane Resolution Unit"
+msgstr ""
+
+#: libexif/exif-tag.c:752
+msgid ""
+"Indicates the unit for measuring <FocalPlaneXResolution> and "
+"<FocalPlaneYResolution>. This value is the same as the <ResolutionUnit>."
+msgstr ""
+
+#: libexif/exif-tag.c:757
+msgid "Subject Location"
+msgstr ""
+
+#: libexif/exif-tag.c:758
+msgid ""
+"Indicates the location of the main subject in the scene. The value of this "
+"tag represents the pixel at the center of the main subject relative to the "
+"left edge, prior to rotation processing as per the <Rotation> tag. The first "
+"value indicates the X column number and the second indicates the Y row "
+"number."
+msgstr ""
+
+#: libexif/exif-tag.c:765
+msgid "Exposure Index"
+msgstr ""
+
+#: libexif/exif-tag.c:766
+msgid ""
+"Indicates the exposure index selected on the camera or input device at the "
+"time the image is captured."
+msgstr ""
+
+#: libexif/exif-tag.c:769
+msgid "Sensing Method"
+msgstr ""
+
+#: libexif/exif-tag.c:770
+msgid "Indicates the image sensor type on the camera or input device."
+msgstr ""
+
+#: libexif/exif-tag.c:773 libexif/fuji/mnote-fuji-tag.c:64
+msgid "File Source"
+msgstr ""
+
+#: libexif/exif-tag.c:774
+msgid ""
+"Indicates the image source. If a DSC recorded the image, the tag value of "
+"this tag always be set to 3, indicating that the image was recorded on a DSC."
+msgstr ""
+
+#: libexif/exif-tag.c:778
+msgid "Scene Type"
+msgstr "シーンの種類"
+
+#: libexif/exif-tag.c:779
+msgid ""
+"Indicates the type of scene. If a DSC recorded the image, this tag value "
+"must always be set to 1, indicating that the image was directly photographed."
+msgstr ""
+
+#: libexif/exif-tag.c:789
+msgid "Custom Rendered"
+msgstr ""
+
+#: libexif/exif-tag.c:790
+msgid ""
+"This tag indicates the use of special processing on image data, such as "
+"rendering geared to output. When special processing is performed, the reader "
+"is expected to disable or minimize any further processing."
+msgstr ""
+
+#: libexif/exif-tag.c:796
+msgid ""
+"This tag indicates the exposure mode set when the image was shot. In auto-"
+"bracketing mode, the camera shoots a series of frames of the same scene at "
+"different exposure settings."
+msgstr ""
+
+#: libexif/exif-tag.c:801
+msgid "This tag indicates the white balance mode set when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:805
+msgid "Digital Zoom Ratio"
+msgstr "デジタル ズーム率"
+
+#: libexif/exif-tag.c:806
+msgid ""
+"This tag indicates the digital zoom ratio when the image was shot. If the "
+"numerator of the recorded value is 0, this indicates that digital zoom was "
+"not used."
+msgstr ""
+
+#: libexif/exif-tag.c:811
+#, fuzzy
+msgid "Focal Length in 35mm Film"
+msgstr "フォーカス長"
+
+#: libexif/exif-tag.c:812
+msgid ""
+"This tag indicates the equivalent focal length assuming a 35mm film camera, "
+"in mm. A value of 0 means the focal length is unknown. Note that this tag "
+"differs from the FocalLength tag."
+msgstr ""
+
+#: libexif/exif-tag.c:818
+msgid "Scene Capture Type"
+msgstr ""
+
+#: libexif/exif-tag.c:819
+msgid ""
+"This tag indicates the type of scene that was shot. It can also be used to "
+"record the mode in which the image was shot. Note that this differs from the "
+"scene type <SceneType> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:824
+msgid "Gain Control"
+msgstr "ゲイン制御"
+
+#: libexif/exif-tag.c:825
+msgid "This tag indicates the degree of overall image gain adjustment."
+msgstr ""
+
+#: libexif/exif-tag.c:829
+msgid ""
+"This tag indicates the direction of contrast processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:833
+msgid ""
+"This tag indicates the direction of saturation processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:837
+msgid ""
+"This tag indicates the direction of sharpness processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:841
+msgid "Device Setting Description"
+msgstr "デバイス設定の説明"
+
+#: libexif/exif-tag.c:842
+msgid ""
+"This tag indicates information on the picture-taking conditions of a "
+"particular camera model. The tag is used only to indicate the picture-taking "
+"conditions in the reader."
+msgstr ""
+
+#: libexif/exif-tag.c:848
+msgid "Subject Distance Range"
+msgstr ""
+
+#: libexif/exif-tag.c:849
+msgid "This tag indicates the distance to the subject."
+msgstr ""
+
+#: libexif/exif-tag.c:851
+msgid "Image Unique ID"
+msgstr "画像の一意 ID"
+
+#: libexif/exif-tag.c:852
+msgid ""
+"This tag indicates an identifier assigned uniquely to each image. It is "
+"recorded as an ASCII string equivalent to hexadecimal notation and 128-bit "
+"fixed length."
+msgstr ""
+
+#: libexif/exif-tag.c:857
+msgid "Gamma"
+msgstr "ガンマ"
+
+#: libexif/exif-tag.c:858
+msgid "Indicates the value of coefficient gamma."
+msgstr ""
+
+#: libexif/exif-tag.c:860
+msgid "PRINT Image Matching"
+msgstr ""
+
+#: libexif/exif-tag.c:861
+msgid "Related to Epson's PRINT Image Matching technology"
+msgstr ""
+
+#: libexif/exif-tag.c:863
+msgid "Padding"
+msgstr ""
+
+#: libexif/exif-tag.c:864
+msgid ""
+"This tag reserves space that can be reclaimed later when additional metadata "
+"are added. New metadata can be written in place by replacing this tag with a "
+"smaller data element and using the reclaimed space to store the new or "
+"expanded metadata tags."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:62
+msgid "Softest"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:66
+msgid "Hardest"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:67 libexif/fuji/mnote-fuji-entry.c:96
+msgid "Medium soft"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:68 libexif/fuji/mnote-fuji-entry.c:94
+msgid "Medium hard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:69 libexif/fuji/mnote-fuji-entry.c:90
+#: libexif/fuji/mnote-fuji-entry.c:98 libexif/fuji/mnote-fuji-entry.c:182
+msgid "Film simulation mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:79
+msgid "Incandescent"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:85
+msgid "Medium high"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:87
+msgid "Medium low"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:88 libexif/fuji/mnote-fuji-entry.c:97
+msgid "Original"
+msgstr "オリジナル"
+
+#: libexif/fuji/mnote-fuji-entry.c:124 libexif/pentax/mnote-pentax-entry.c:164
+#: libexif/pentax/mnote-pentax-entry.c:299
+msgid "Program AE"
+msgstr "プログラム AE"
+
+#: libexif/fuji/mnote-fuji-entry.c:125
+msgid "Natural photo"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:126
+msgid "Vibration reduction"
+msgstr "手振れ軽減"
+
+#: libexif/fuji/mnote-fuji-entry.c:127
+msgid "Sunset"
+msgstr "夕焼け"
+
+#: libexif/fuji/mnote-fuji-entry.c:128 libexif/pentax/mnote-pentax-entry.c:181
+msgid "Museum"
+msgstr "ミュージアム"
+
+#: libexif/fuji/mnote-fuji-entry.c:129
+msgid "Party"
+msgstr "パーティ"
+
+#: libexif/fuji/mnote-fuji-entry.c:130
+msgid "Flower"
+msgstr "花"
+
+#: libexif/fuji/mnote-fuji-entry.c:131 libexif/pentax/mnote-pentax-entry.c:176
+msgid "Text"
+msgstr "テキスト"
+
+#: libexif/fuji/mnote-fuji-entry.c:132
+msgid "NP & flash"
+msgstr "NP とフラッシュ"
+
+#: libexif/fuji/mnote-fuji-entry.c:137
+msgid "Aperture priority AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:138
+msgid "Shutter priority AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:146
+msgid "F-Standard"
+msgstr "F 標準"
+
+#: libexif/fuji/mnote-fuji-entry.c:147
+msgid "F-Chrome"
+msgstr "F クロム"
+
+#: libexif/fuji/mnote-fuji-entry.c:148
+msgid "F-B&W"
+msgstr "F 白黒"
+
+#: libexif/fuji/mnote-fuji-entry.c:151
+msgid "No blur"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:152
+msgid "Blur warning"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:155
+msgid "Focus good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:156
+msgid "Out of focus"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:159
+msgid "AE good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:160
+msgid "Over exposed"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:164
+msgid "Wide"
+msgstr "ワイド"
+
+#: libexif/fuji/mnote-fuji-entry.c:167
+msgid "F0/Standard"
+msgstr "F0/標準"
+
+#: libexif/fuji/mnote-fuji-entry.c:168
+msgid "F1/Studio portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:169
+msgid "F1a/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:170
+msgid "F1b/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:171
+msgid "F1c/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:172
+msgid "F2/Fujichrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:173
+msgid "F3/Studio portrait Ex"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:174
+msgid "F4/Velvia"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:177
+msgid "Auto (100-400%)"
+msgstr "自動 (100~400%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:179
+msgid "Standard (100%)"
+msgstr "標準 (100%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:180
+msgid "Wide1 (230%)"
+msgstr "ワイド 1 (230%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:181
+msgid "Wide2 (400%)"
+msgstr "ワイド 2 (400%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:263
+#, c-format
+msgid "%2.2f mm"
+msgstr "%2.2f mm"
+
+#: libexif/fuji/mnote-fuji-entry.c:298 libexif/pentax/mnote-pentax-entry.c:399
+#: libexif/pentax/mnote-pentax-entry.c:451
+#, c-format
+msgid "%i bytes unknown data"
+msgstr "%i バイトの不明なデータ"
+
+#: libexif/fuji/mnote-fuji-tag.c:36
+msgid "Maker Note Version"
+msgstr "メーカーの注釈バージョン"
+
+#: libexif/fuji/mnote-fuji-tag.c:37
+msgid "This number is unique and based on the date of manufacture."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:41
+msgid "Chromaticity Saturation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:44
+msgid "Flash Firing Strength Compensation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:46
+msgid "Focusing Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:47
+msgid "Focus Point"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:48
+msgid "Slow Synchro Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:49 libexif/pentax/mnote-pentax-tag.c:72
+msgid "Picture Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:50
+msgid "Continuous Taking"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:51
+msgid "Continuous Sequence Number"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:52
+msgid "FinePix Color"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:53
+msgid "Blur Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:54
+msgid "Auto Focus Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:55
+msgid "Auto Exposure Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:56
+msgid "Dynamic Range"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:57
+msgid "Film Simulation Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:58
+msgid "Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:59
+msgid "Development Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:60
+msgid "Minimum Focal Length"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:61
+msgid "Maximum Focal Length"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:62
+msgid "Maximum Aperture at Minimum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:63
+msgid "Maximum Aperture at Maximum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:65
+msgid "Order Number"
+msgstr "オーダー番号"
+
+#: libexif/fuji/mnote-fuji-tag.c:66 libexif/pentax/mnote-pentax-tag.c:98
+msgid "Frame Number"
+msgstr "フレーム番号"
+
+#: libexif/olympus/mnote-olympus-entry.c:49
+#, c-format
+msgid "Invalid format '%s', expected '%s' or '%s'."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:89
+msgid "AF non D lens"
+msgstr "AF-D または AF-S レンズ"
+
+#: libexif/olympus/mnote-olympus-entry.c:91
+msgid "AF-D or AF-S lens"
+msgstr "AF-D または AF-S レンズ"
+
+#: libexif/olympus/mnote-olympus-entry.c:92
+msgid "AF-D G lens"
+msgstr "AF-D G レンズ"
+
+#: libexif/olympus/mnote-olympus-entry.c:93
+msgid "AF-D VR lens"
+msgstr "AF-D VR レンズ"
+
+#: libexif/olympus/mnote-olympus-entry.c:94
+#, fuzzy
+msgid "AF-D G VR lens"
+msgstr "AF-D VR レンズ"
+
+#: libexif/olympus/mnote-olympus-entry.c:98
+msgid "Flash unit unknown"
+msgstr "不明なフラッシュ ユニット"
+
+#: libexif/olympus/mnote-olympus-entry.c:99
+msgid "Flash is external"
+msgstr "外部フラッシュ"
+
+#: libexif/olympus/mnote-olympus-entry.c:100
+msgid "Flash is on camera"
+msgstr "カメラ内蔵フラッシュ"
+
+#: libexif/olympus/mnote-olympus-entry.c:103
+msgid "VGA basic"
+msgstr "VGA 基本"
+
+#: libexif/olympus/mnote-olympus-entry.c:104
+msgid "VGA normal"
+msgstr "VGA 通常"
+
+#: libexif/olympus/mnote-olympus-entry.c:105
+msgid "VGA fine"
+msgstr "VGA ファイン"
+
+#: libexif/olympus/mnote-olympus-entry.c:106
+msgid "SXGA basic"
+msgstr "SXGA 基本"
+
+#: libexif/olympus/mnote-olympus-entry.c:107
+msgid "SXGA normal"
+msgstr "SXGA 通常"
+
+#: libexif/olympus/mnote-olympus-entry.c:108
+msgid "SXGA fine"
+msgstr "SXGA ファイン"
+
+#: libexif/olympus/mnote-olympus-entry.c:109
+msgid "2 Mpixel basic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:110
+msgid "2 Mpixel normal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:111
+msgid "2 Mpixel fine"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:114
+msgid "Color"
+msgstr "色"
+
+#: libexif/olympus/mnote-olympus-entry.c:119
+msgid "Bright+"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:120
+msgid "Bright-"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:121
+msgid "Contrast+"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:122
+msgid "Contrast-"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:125
+msgid "ISO 80"
+msgstr "ISO 80"
+
+#: libexif/olympus/mnote-olympus-entry.c:126
+msgid "ISO 160"
+msgstr "ISO 160"
+
+#: libexif/olympus/mnote-olympus-entry.c:127
+msgid "ISO 320"
+msgstr "ISO 320"
+
+#: libexif/olympus/mnote-olympus-entry.c:128
+#: libexif/olympus/mnote-olympus-entry.c:246
+msgid "ISO 100"
+msgstr "ISO 100"
+
+#: libexif/olympus/mnote-olympus-entry.c:132
+msgid "Preset"
+msgstr "プリセット"
+
+#: libexif/olympus/mnote-olympus-entry.c:134
+msgid "Incandescence"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:135
+msgid "Fluorescence"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:137
+msgid "SpeedLight"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:140
+#, fuzzy
+msgid "No fisheye"
+msgstr "魚眼なし"
+
+#: libexif/olympus/mnote-olympus-entry.c:141
+#, fuzzy
+msgid "Fisheye on"
+msgstr "魚眼オン"
+
+#: libexif/olympus/mnote-olympus-entry.c:144
+msgid "Normal, SQ"
+msgstr "通常、SQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:145
+msgid "Normal, HQ"
+msgstr "通常、HQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:146
+msgid "Normal, SHQ"
+msgstr "通常、SHQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:147
+msgid "Normal, RAW"
+msgstr "通常、RAW"
+
+#: libexif/olympus/mnote-olympus-entry.c:148
+msgid "Normal, SQ1"
+msgstr "通常、SQ1"
+
+#: libexif/olympus/mnote-olympus-entry.c:149
+msgid "Normal, SQ2"
+msgstr "通常、SQ2"
+
+#: libexif/olympus/mnote-olympus-entry.c:150
+msgid "Normal, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:151
+msgid "Normal, standard"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:152
+msgid "Fine, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:153
+msgid "Fine, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:154
+msgid "Fine, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:155
+msgid "Fine, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:156
+msgid "Fine, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:157
+msgid "Fine, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:158
+msgid "Fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:159
+msgid "Super fine, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:160
+msgid "Super fine, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:161
+msgid "Super fine, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:162
+msgid "Super fine, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:163
+msgid "Super fine, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:164
+msgid "Super fine, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:165
+msgid "Super fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:166
+msgid "Super fine, high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:169
+#: libexif/olympus/mnote-olympus-entry.c:174
+#: libexif/olympus/mnote-olympus-entry.c:208
+#: libexif/olympus/mnote-olympus-entry.c:217
+#: libexif/olympus/mnote-olympus-entry.c:240
+msgid "No"
+msgstr "いいえ"
+
+#: libexif/olympus/mnote-olympus-entry.c:180
+msgid "On (Preset)"
+msgstr "オン (プリセット)"
+
+#: libexif/olympus/mnote-olympus-entry.c:185
+msgid "Fill"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:192
+msgid "Internal + external"
+msgstr "内部 + 外部"
+
+#: libexif/olympus/mnote-olympus-entry.c:221
+msgid "Interlaced"
+msgstr "インターレース"
+
+#: libexif/olympus/mnote-olympus-entry.c:222
+msgid "Progressive"
+msgstr "プログレッシブ"
+
+#: libexif/olympus/mnote-olympus-entry.c:228
+#: libexif/pentax/mnote-pentax-entry.c:85
+#: libexif/pentax/mnote-pentax-entry.c:139
+msgid "Best"
+msgstr "ベスト"
+
+#: libexif/olympus/mnote-olympus-entry.c:229
+msgid "Adjust exposure"
+msgstr "露出調整"
+
+#: libexif/olympus/mnote-olympus-entry.c:232
+#, fuzzy
+msgid "Spot focus"
+msgstr "スポット フォーカス"
+
+#: libexif/olympus/mnote-olympus-entry.c:233
+msgid "Normal focus"
+msgstr "通常フォーカス"
+
+#: libexif/olympus/mnote-olympus-entry.c:236
+msgid "Record while down"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:237
+msgid "Press start, press stop"
+msgstr "押して開始、押して停止"
+
+#: libexif/olympus/mnote-olympus-entry.c:245
+msgid "ISO 50"
+msgstr "ISO 50"
+
+#: libexif/olympus/mnote-olympus-entry.c:247
+msgid "ISO 200"
+msgstr "ISO 200"
+
+#: libexif/olympus/mnote-olympus-entry.c:248
+msgid "ISO 400"
+msgstr "ISO 400"
+
+#: libexif/olympus/mnote-olympus-entry.c:252
+#: libexif/pentax/mnote-pentax-entry.c:168
+msgid "Sport"
+msgstr "スポーツ"
+
+#: libexif/olympus/mnote-olympus-entry.c:253
+msgid "TV"
+msgstr "TV"
+
+#: libexif/olympus/mnote-olympus-entry.c:255
+msgid "User 1"
+msgstr "ユーザー 1"
+
+#: libexif/olympus/mnote-olympus-entry.c:256
+msgid "User 2"
+msgstr "ユーザー 2"
+
+#: libexif/olympus/mnote-olympus-entry.c:257
+msgid "Lamp"
+msgstr "ランプ"
+
+#: libexif/olympus/mnote-olympus-entry.c:260
+msgid "5 frames/sec"
+msgstr "5 フレーム/秒"
+
+#: libexif/olympus/mnote-olympus-entry.c:261
+msgid "10 frames/sec"
+msgstr "10 フレーム/秒"
+
+#: libexif/olympus/mnote-olympus-entry.c:262
+msgid "15 frames/sec"
+msgstr "15 フレーム/秒"
+
+#: libexif/olympus/mnote-olympus-entry.c:263
+msgid "20 frames/sec"
+msgstr "20 フレーム/秒"
+
+#: libexif/olympus/mnote-olympus-entry.c:375
+#, c-format
+msgid "Red Correction %f, blue Correction %f"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:383
+#, c-format
+msgid "%2.2f meters"
+msgstr "%2.2f メーター"
+
+#: libexif/olympus/mnote-olympus-entry.c:385
+msgid "No manual focus selection"
+msgstr "手動フォーカスの選択なし"
+
+#: libexif/olympus/mnote-olympus-entry.c:411
+msgid "AF position: center"
+msgstr "AF 位置: 中央"
+
+#: libexif/olympus/mnote-olympus-entry.c:412
+msgid "AF position: top"
+msgstr "AF 位置: 上"
+
+#: libexif/olympus/mnote-olympus-entry.c:413
+msgid "AF position: bottom"
+msgstr "AF 位置: 下"
+
+#: libexif/olympus/mnote-olympus-entry.c:414
+msgid "AF position: left"
+msgstr "AF 位置: 左"
+
+#: libexif/olympus/mnote-olympus-entry.c:415
+msgid "AF position: right"
+msgstr "AF 位置: 右"
+
+#: libexif/olympus/mnote-olympus-entry.c:416
+msgid "AF position: upper-left"
+msgstr "AF 位置: 左上"
+
+#: libexif/olympus/mnote-olympus-entry.c:417
+msgid "AF position: upper-right"
+msgstr "AF 位置: 右上"
+
+#: libexif/olympus/mnote-olympus-entry.c:418
+msgid "AF position: lower-left"
+msgstr "AF 位置: 左下"
+
+#: libexif/olympus/mnote-olympus-entry.c:419
+msgid "AF position: lower-right"
+msgstr "AF 位置: 右下"
+
+#: libexif/olympus/mnote-olympus-entry.c:420
+#, fuzzy
+msgid "AF position: far left"
+msgstr "AF 位置: 左"
+
+#: libexif/olympus/mnote-olympus-entry.c:421
+#, fuzzy
+msgid "AF position: far right"
+msgstr "AF 位置: 右"
+
+#: libexif/olympus/mnote-olympus-entry.c:422
+msgid "Unknown AF position"
+msgstr "不明な AF 位置"
+
+#: libexif/olympus/mnote-olympus-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:503
+#, c-format
+msgid "Internal error (unknown value %hi)"
+msgstr "内部エラー (不明な値 %hi)"
+
+#: libexif/olympus/mnote-olympus-entry.c:441
+#: libexif/olympus/mnote-olympus-entry.c:511
+#, c-format
+msgid "Unknown value %hi"
+msgstr "不明な値 %hi"
+
+#: libexif/olympus/mnote-olympus-entry.c:536
+#: libexif/olympus/mnote-olympus-entry.c:556
+#, c-format
+msgid "Unknown %hu"
+msgstr "不明な %hu"
+
+#: libexif/olympus/mnote-olympus-entry.c:553
+msgid "2 sec."
+msgstr "2 秒です。"
+
+#: libexif/olympus/mnote-olympus-entry.c:592
+msgid "Fast"
+msgstr "早い"
+
+#: libexif/olympus/mnote-olympus-entry.c:696
+msgid "Automatic"
+msgstr "自動"
+
+#: libexif/olympus/mnote-olympus-entry.c:726
+#, c-format
+msgid "Manual: %liK"
+msgstr "マニュアル: %liK"
+
+#: libexif/olympus/mnote-olympus-entry.c:729
+msgid "Manual: unknown"
+msgstr "マニュアル: 不明"
+
+#: libexif/olympus/mnote-olympus-entry.c:735
+msgid "One-touch"
+msgstr "ワンタッチ"
+
+#: libexif/olympus/mnote-olympus-entry.c:791
+#: libexif/olympus/mnote-olympus-entry.c:801
+msgid "Infinite"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:809
+#, c-format
+msgid "%i bytes unknown data: "
+msgstr "%i バイトの不明なデータ: "
+
+#: libexif/olympus/mnote-olympus-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:53
+msgid "ISO Setting"
+msgstr "ISO 設定"
+
+#: libexif/olympus/mnote-olympus-tag.c:39
+msgid "Color Mode (?)"
+msgstr "色モード (?)"
+
+#: libexif/olympus/mnote-olympus-tag.c:42
+msgid "Image Sharpening"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:44
+msgid "Flash Setting"
+msgstr "フラッシュ設定"
+
+#: libexif/olympus/mnote-olympus-tag.c:46
+msgid "White Balance Fine Adjustment"
+msgstr "ホワイト バランス微調整"
+
+#: libexif/olympus/mnote-olympus-tag.c:47
+msgid "White Balance RB"
+msgstr "ホワイト バランス RB"
+
+#: libexif/olympus/mnote-olympus-tag.c:49
+msgid "ISO Selection"
+msgstr "ISO 選択"
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Preview Image IFD"
+msgstr "プレビュー画像 IFD"
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Offset of the preview image directory (IFD) inside the file."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:51
+msgid "Exposurediff ?"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:54
+msgid "Image Boundary"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:56
+msgid "Flash Exposure Bracket Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:57
+msgid "Exposure Bracket Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:58
+#: libexif/olympus/mnote-olympus-tag.c:96
+msgid "Image Adjustment"
+msgstr "画像調整"
+
+#: libexif/olympus/mnote-olympus-tag.c:59
+msgid "Tone Compensation"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:60
+msgid "Adapter"
+msgstr "アダプター"
+
+#: libexif/olympus/mnote-olympus-tag.c:62
+msgid "Lens"
+msgstr "レンズ"
+
+#: libexif/olympus/mnote-olympus-tag.c:63
+#: libexif/olympus/mnote-olympus-tag.c:135
+#: libexif/olympus/mnote-olympus-tag.c:185
+msgid "Manual Focus Distance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:65
+msgid "Flash Used"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:66
+msgid "AF Focus Position"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:67
+msgid "Bracketing"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:69
+msgid "Lens F Stops"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:70
+msgid "Contrast Curve"
+msgstr "コントラスト カーブ"
+
+#: libexif/olympus/mnote-olympus-tag.c:71
+#: libexif/olympus/mnote-olympus-tag.c:95
+#: libexif/pentax/mnote-pentax-tag.c:134
+msgid "Color Mode"
+msgstr "色モード"
+
+#: libexif/olympus/mnote-olympus-tag.c:72
+msgid "Light Type"
+msgstr "光源の種類"
+
+#: libexif/olympus/mnote-olympus-tag.c:74
+msgid "Hue Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:76
+#: libexif/olympus/mnote-olympus-tag.c:163
+#: libexif/pentax/mnote-pentax-tag.c:108
+msgid "Noise Reduction"
+msgstr "ノイズ軽減"
+
+#: libexif/olympus/mnote-olympus-tag.c:79
+msgid "Sensor Pixel Size"
+msgstr "センサーピクセルの大きさ"
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Image Data Size"
+msgstr "画像データの大きさ"
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Size of compressed image data in bytes."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:84
+msgid "Total Number of Pictures Taken"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:86
+msgid "Optimize Image"
+msgstr "画像最適化"
+
+#: libexif/olympus/mnote-olympus-tag.c:88
+msgid "Vari Program"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:89
+msgid "Capture Editor Data"
+msgstr "エディター データの取り込み"
+
+#: libexif/olympus/mnote-olympus-tag.c:90
+msgid "Capture Editor Version"
+msgstr "エディター バージョンの取り込み"
+
+#: libexif/olympus/mnote-olympus-tag.c:97
+#: libexif/olympus/mnote-olympus-tag.c:183
+msgid "CCD Sensitivity"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:99
+msgid "Focus"
+msgstr "フォーカス"
+
+#: libexif/olympus/mnote-olympus-tag.c:102
+msgid "Converter"
+msgstr "コンバーター"
+
+#: libexif/olympus/mnote-olympus-tag.c:105
+msgid "Thumbnail Image"
+msgstr "サムネイル画像"
+
+#: libexif/olympus/mnote-olympus-tag.c:106
+msgid "Speed/Sequence/Panorama Direction"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:109
+msgid "Black & White Mode"
+msgstr "白黒モード"
+
+#: libexif/olympus/mnote-olympus-tag.c:111
+msgid "Focal Plane Diagonal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:112
+msgid "Lens Distortion Parameters"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:114
+msgid "Info"
+msgstr "情報"
+
+#: libexif/olympus/mnote-olympus-tag.c:115
+msgid "Camera ID"
+msgstr "カメラ ID"
+
+#: libexif/olympus/mnote-olympus-tag.c:116
+msgid "Precapture Frames"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:117
+msgid "White Board"
+msgstr "ホワイトボード"
+
+#: libexif/olympus/mnote-olympus-tag.c:118
+msgid "One Touch White Balance"
+msgstr "ワンタッチ ホワイト バランス"
+
+#: libexif/olympus/mnote-olympus-tag.c:119
+msgid "White Balance Bracket"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:120
+#: libexif/pentax/mnote-pentax-tag.c:123
+msgid "White Balance Bias"
+msgstr "ホワイト バランスのバイアス"
+
+#: libexif/olympus/mnote-olympus-tag.c:121
+msgid "Data Dump"
+msgstr "データのダンプ"
+
+#: libexif/olympus/mnote-olympus-tag.c:124
+msgid "ISO Value"
+msgstr "ISO 値"
+
+#: libexif/olympus/mnote-olympus-tag.c:125
+msgid "Aperture Value"
+msgstr "開放値"
+
+#: libexif/olympus/mnote-olympus-tag.c:126
+msgid "Brightness Value"
+msgstr "ブライトネス値"
+
+#: libexif/olympus/mnote-olympus-tag.c:128
+msgid "Flash Device"
+msgstr "フラッシュ デバイス"
+
+#: libexif/olympus/mnote-olympus-tag.c:130
+msgid "Sensor Temperature"
+msgstr "センサー温度"
+
+#: libexif/olympus/mnote-olympus-tag.c:131
+msgid "Lens Temperature"
+msgstr "レンズ温度"
+
+#: libexif/olympus/mnote-olympus-tag.c:132
+msgid "Light Condition"
+msgstr "ライト コンディション"
+
+#: libexif/olympus/mnote-olympus-tag.c:136
+msgid "Zoom Step Count"
+msgstr "ズームのステップ カウント"
+
+#: libexif/olympus/mnote-olympus-tag.c:137
+msgid "Focus Step Count"
+msgstr "フォーカスのステップカウント"
+
+#: libexif/olympus/mnote-olympus-tag.c:138
+msgid "Sharpness Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:139
+msgid "Flash Charge Level"
+msgstr "フラッシュ チャージ レベル"
+
+#: libexif/olympus/mnote-olympus-tag.c:140
+msgid "Color Matrix"
+msgstr "色マトリックス"
+
+#: libexif/olympus/mnote-olympus-tag.c:141
+msgid "Black Level"
+msgstr "黒レベル"
+
+#: libexif/olympus/mnote-olympus-tag.c:142
+msgid "White Balance Setting"
+msgstr "白バランス設定"
+
+#: libexif/olympus/mnote-olympus-tag.c:143
+#: libexif/pentax/mnote-pentax-tag.c:87
+msgid "Red Balance"
+msgstr "赤バランス"
+
+#: libexif/olympus/mnote-olympus-tag.c:144
+#: libexif/pentax/mnote-pentax-tag.c:86
+msgid "Blue Balance"
+msgstr "青バランス"
+
+#: libexif/olympus/mnote-olympus-tag.c:145
+msgid "Color Matrix Number"
+msgstr "色マトリックス数"
+
+#: libexif/olympus/mnote-olympus-tag.c:147
+msgid "Flash Exposure Comp"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:148
+msgid "Internal Flash Table"
+msgstr "内部フラッシュのテーブル"
+
+#: libexif/olympus/mnote-olympus-tag.c:149
+msgid "External Flash G Value"
+msgstr "外部フラッシュの G  値"
+
+#: libexif/olympus/mnote-olympus-tag.c:150
+msgid "External Flash Bounce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:151
+msgid "External Flash Zoom"
+msgstr "外部フラッシュ ズーム"
+
+#: libexif/olympus/mnote-olympus-tag.c:152
+msgid "External Flash Mode"
+msgstr "外部フラッシュのモード"
+
+#: libexif/olympus/mnote-olympus-tag.c:153
+msgid "Contrast Setting"
+msgstr "コントラスト設定"
+
+#: libexif/olympus/mnote-olympus-tag.c:154
+msgid "Sharpness Factor"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:155
+msgid "Color Control"
+msgstr "色制御"
+
+#: libexif/olympus/mnote-olympus-tag.c:156
+msgid "Olympus Image Width"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:157
+msgid "Olympus Image Height"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:158
+msgid "Scene Detect"
+msgstr "シーン検出"
+
+#: libexif/olympus/mnote-olympus-tag.c:159
+msgid "Compression Ratio"
+msgstr "圧縮率"
+
+#: libexif/olympus/mnote-olympus-tag.c:160
+msgid "Preview Image Valid"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:161
+msgid "AF Result"
+msgstr "AF の結果"
+
+#: libexif/olympus/mnote-olympus-tag.c:162
+msgid "CCD Scan Mode"
+msgstr "CCD スキャンのモード"
+
+#: libexif/olympus/mnote-olympus-tag.c:164
+msgid "Infinity Lens Step"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:165
+msgid "Near Lens Step"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:166
+msgid "Light Value Center"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:167
+msgid "Light Value Periphery"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:170
+msgid "Sequential Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:171
+msgid "Wide Range"
+msgstr "ワイド レンジ"
+
+#: libexif/olympus/mnote-olympus-tag.c:172
+msgid "Color Adjustment Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:174
+msgid "Quick Shot"
+msgstr "クイック ショット"
+
+#: libexif/olympus/mnote-olympus-tag.c:176
+msgid "Voice Memo"
+msgstr "音声メモ"
+
+#: libexif/olympus/mnote-olympus-tag.c:177
+msgid "Record Shutter Release"
+msgstr "シャッター リリースの記録"
+
+#: libexif/olympus/mnote-olympus-tag.c:178
+msgid "Flicker Reduce"
+msgstr "フリッカー軽減"
+
+#: libexif/olympus/mnote-olympus-tag.c:179
+msgid "Optical Zoom"
+msgstr "工学ズーム"
+
+#: libexif/olympus/mnote-olympus-tag.c:181
+msgid "Light Source Special"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:182
+msgid "Resaved"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:184
+msgid "Scene Select"
+msgstr "シーン選択"
+
+#: libexif/olympus/mnote-olympus-tag.c:186
+msgid "Sequence Shot Interval"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:189
+msgid "Epson Image Width"
+msgstr "エプソン画像幅"
+
+#: libexif/olympus/mnote-olympus-tag.c:190
+msgid "Epson Image Height"
+msgstr "エプソン画像高"
+
+#: libexif/olympus/mnote-olympus-tag.c:191
+msgid "Epson Software Version"
+msgstr "エプソン ソフトウェアのバージョン"
+
+#: libexif/pentax/mnote-pentax-entry.c:80
+#: libexif/pentax/mnote-pentax-entry.c:134
+msgid "Multi-exposure"
+msgstr "多重露光"
+
+#: libexif/pentax/mnote-pentax-entry.c:83
+#: libexif/pentax/mnote-pentax-entry.c:137
+msgid "Good"
+msgstr "いい"
+
+#: libexif/pentax/mnote-pentax-entry.c:84
+#: libexif/pentax/mnote-pentax-entry.c:138
+msgid "Better"
+msgstr "なかなか"
+
+#: libexif/pentax/mnote-pentax-entry.c:92
+msgid "Flash on"
+msgstr "フラッシュ オン"
+
+#: libexif/pentax/mnote-pentax-entry.c:140
+msgid "TIFF"
+msgstr "TIFF"
+
+#: libexif/pentax/mnote-pentax-entry.c:150
+msgid "2560x1920 or 2304x1728"
+msgstr "2560×1920 または 2304×1728"
+
+#: libexif/pentax/mnote-pentax-entry.c:156
+msgid "2304x1728 or 2592x1944"
+msgstr "2304×1728 または 2592×1944"
+
+#: libexif/pentax/mnote-pentax-entry.c:158
+msgid "2816x2212 or 2816x2112"
+msgstr "2816×2212 または 2816×2112"
+
+#: libexif/pentax/mnote-pentax-entry.c:171
+msgid "Surf & snow"
+msgstr "サーフ & スノー"
+
+#: libexif/pentax/mnote-pentax-entry.c:172
+msgid "Sunset or candlelight"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:173
+msgid "Autumn"
+msgstr "冬"
+
+#: libexif/pentax/mnote-pentax-entry.c:178
+msgid "Self portrait"
+msgstr "自画像"
+
+#: libexif/pentax/mnote-pentax-entry.c:179
+msgid "Illustrations"
+msgstr "イラスト"
+
+#: libexif/pentax/mnote-pentax-entry.c:180
+msgid "Digital filter"
+msgstr "デジタル フィルター"
+
+#: libexif/pentax/mnote-pentax-entry.c:182
+msgid "Food"
+msgstr "食品"
+
+#: libexif/pentax/mnote-pentax-entry.c:183
+msgid "Green mode"
+msgstr "緑モード"
+
+#: libexif/pentax/mnote-pentax-entry.c:184
+msgid "Light pet"
+msgstr "光源"
+
+#: libexif/pentax/mnote-pentax-entry.c:185
+msgid "Dark pet"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:186
+#, fuzzy
+msgid "Medium pet"
+msgstr "中位 1"
+
+#: libexif/pentax/mnote-pentax-entry.c:188
+#: libexif/pentax/mnote-pentax-entry.c:296
+msgid "Candlelight"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:189
+msgid "Natural skin tone"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:190
+msgid "Synchro sound record"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:191
+msgid "Frame composite"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:194
+msgid "Auto, did not fire"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:196
+#, fuzzy
+msgid "Auto, did not fire, red-eye reduction"
+msgstr "オート + 赤目軽減"
+
+#: libexif/pentax/mnote-pentax-entry.c:197
+msgid "Auto, fired"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:199
+#, fuzzy
+msgid "Auto, fired, red-eye reduction"
+msgstr "オート + 赤目軽減"
+
+#: libexif/pentax/mnote-pentax-entry.c:201
+msgid "On, wireless"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:202
+#, fuzzy
+msgid "On, soft"
+msgstr "オン (ショット 1)"
+
+#: libexif/pentax/mnote-pentax-entry.c:203
+msgid "On, slow-sync"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:204
+#, fuzzy
+msgid "On, slow-sync, red-eye reduction"
+msgstr "オン + 赤目軽減 "
+
+#: libexif/pentax/mnote-pentax-entry.c:205
+msgid "On, trailing-curtain sync"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:213
+msgid "AF-S"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:214
+msgid "AF-C"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:217
+msgid "Upper-left"
+msgstr "左上"
+
+#: libexif/pentax/mnote-pentax-entry.c:218
+msgid "Top"
+msgstr "上"
+
+#: libexif/pentax/mnote-pentax-entry.c:219
+msgid "Upper-right"
+msgstr "右上"
+
+#: libexif/pentax/mnote-pentax-entry.c:221
+msgid "Mid-left"
+msgstr "中央左"
+
+#: libexif/pentax/mnote-pentax-entry.c:223
+msgid "Mid-right"
+msgstr "中央右"
+
+#: libexif/pentax/mnote-pentax-entry.c:225
+msgid "Lower-left"
+msgstr "左下"
+
+#: libexif/pentax/mnote-pentax-entry.c:226
+msgid "Bottom"
+msgstr "下"
+
+#: libexif/pentax/mnote-pentax-entry.c:227
+msgid "Lower-right"
+msgstr "右下"
+
+#: libexif/pentax/mnote-pentax-entry.c:228
+#, fuzzy
+msgid "Fixed center"
+msgstr "中央固定"
+
+#: libexif/pentax/mnote-pentax-entry.c:232
+msgid "Multiple"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:234
+msgid "Top-center"
+msgstr "上中央"
+
+#: libexif/pentax/mnote-pentax-entry.c:240
+msgid "Bottom-center"
+msgstr "下中央"
+
+#: libexif/pentax/mnote-pentax-entry.c:257
+#, fuzzy
+msgid "User selected"
+msgstr "ユーザーの選択"
+
+#: libexif/pentax/mnote-pentax-entry.c:282
+msgid "3008x2008 or 3040x2024"
+msgstr "3008×2008 または 3040×2024"
+
+#: libexif/pentax/mnote-pentax-entry.c:293
+#, fuzzy
+msgid "Digital filter?"
+msgstr "デジタル フィルターですか?"
+
+#: libexif/pentax/mnote-pentax-entry.c:374
+#: libexif/pentax/mnote-pentax-entry.c:383
+#, c-format
+msgid "Internal error (unknown value %i %i)"
+msgstr "内部エラー (不明な値 %i %i)"
+
+#: libexif/pentax/mnote-pentax-tag.c:35 libexif/pentax/mnote-pentax-tag.c:63
+msgid "Capture Mode"
+msgstr "取り込みモード"
+
+#: libexif/pentax/mnote-pentax-tag.c:36 libexif/pentax/mnote-pentax-tag.c:70
+#: libexif/pentax/mnote-pentax-tag.c:129
+msgid "Quality Level"
+msgstr "品質レベル"
+
+#: libexif/pentax/mnote-pentax-tag.c:54
+#, fuzzy
+msgid "ISO Speed"
+msgstr "ISO 速度"
+
+#: libexif/pentax/mnote-pentax-tag.c:56
+msgid "Colors"
+msgstr "色"
+
+#: libexif/pentax/mnote-pentax-tag.c:59
+msgid "PrintIM Settings"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:60 libexif/pentax/mnote-pentax-tag.c:131
+msgid "Time Zone"
+msgstr "タイムゾーン"
+
+#: libexif/pentax/mnote-pentax-tag.c:61
+msgid "Daylight Savings"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:64
+msgid "Preview Size"
+msgstr "プレビューの大きさ"
+
+#: libexif/pentax/mnote-pentax-tag.c:65
+msgid "Preview Length"
+msgstr "プレビューの長さ"
+
+#: libexif/pentax/mnote-pentax-tag.c:66 libexif/pentax/mnote-pentax-tag.c:122
+msgid "Preview Start"
+msgstr "プレビュー開始"
+
+#: libexif/pentax/mnote-pentax-tag.c:67
+msgid "Model Identification"
+msgstr "モデル識別"
+
+#: libexif/pentax/mnote-pentax-tag.c:68
+msgid "Date"
+msgstr "日付"
+
+#: libexif/pentax/mnote-pentax-tag.c:69
+msgid "Time"
+msgstr "時間"
+
+#: libexif/pentax/mnote-pentax-tag.c:75
+msgid "AF Point Selected"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:76
+msgid "Auto AF Point"
+msgstr "オート AF ポイント"
+
+#: libexif/pentax/mnote-pentax-tag.c:77
+msgid "Focus Position"
+msgstr "フォーカス位置"
+
+#: libexif/pentax/mnote-pentax-tag.c:80
+msgid "ISO Number"
+msgstr "ISO 番号"
+
+#: libexif/pentax/mnote-pentax-tag.c:83
+msgid "Auto Bracketing"
+msgstr "自動ブランケット"
+
+#: libexif/pentax/mnote-pentax-tag.c:85
+msgid "White Balance Mode"
+msgstr "ホワイトバランス モード"
+
+#: libexif/pentax/mnote-pentax-tag.c:93
+msgid "World Time Location"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:94
+msgid "Hometown City"
+msgstr "自宅の市区町村"
+
+#: libexif/pentax/mnote-pentax-tag.c:95
+msgid "Destination City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Hometown DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Home Daylight Savings Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination Daylight Savings Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:99
+msgid "Image Processing"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:100
+msgid "Picture Mode (2)"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:103
+msgid "Image Area Offset"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:104
+msgid "Raw Image Size"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:105
+msgid "Autofocus Points Used"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:107
+msgid "Camera Temperature"
+msgstr "カメラの温度"
+
+#: libexif/pentax/mnote-pentax-tag.c:110
+msgid "Image Tone"
+msgstr "画像トーン"
+
+#: libexif/pentax/mnote-pentax-tag.c:111
+msgid "Shake Reduction Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:112
+msgid "Black Point"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:114
+msgid "AE Info"
+msgstr "AE 情報"
+
+#: libexif/pentax/mnote-pentax-tag.c:115
+msgid "Lens Info"
+msgstr "レンズ情報"
+
+#: libexif/pentax/mnote-pentax-tag.c:116
+msgid "Flash Info"
+msgstr "フラッシュ情報"
+
+#: libexif/pentax/mnote-pentax-tag.c:117
+msgid "Camera Info"
+msgstr "カメラ情報"
+
+#: libexif/pentax/mnote-pentax-tag.c:118
+msgid "Battery Info"
+msgstr "バッテリー情報"
+
+#: libexif/pentax/mnote-pentax-tag.c:119
+msgid "Hometown City Code"
+msgstr "自宅の市区町村コード"
+
+#: libexif/pentax/mnote-pentax-tag.c:120
+msgid "Destination City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Object Distance"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Distance of photographed object in millimeters."
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:126
+msgid "Flash Distance"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:132
+msgid "Bestshot Mode"
+msgstr "ベストショット モード"
+
+#: libexif/pentax/mnote-pentax-tag.c:133
+msgid "CCS ISO Sensitivity"
+msgstr "CCS ISO 感度"
+
+#: libexif/pentax/mnote-pentax-tag.c:135
+msgid "Enhancement"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:136
+msgid "Finer"
+msgstr ""
+
+#: test/nls/test-nls.c:20 test/nls/test-nls.c:23 test/nls/test-nls.c:24
+msgid "[DO_NOT_TRANSLATE_THIS_MARKER]"
+msgstr ""
+
+#~ msgid "%.02lf EV"
+#~ msgstr "%.02lf EV"
+
+#~ msgid "Left + Right"
+#~ msgstr "左 + 右"
+
+#~ msgid "Manual Temperature (Kelvin)"
+#~ msgstr "マニュアル温度 (Kelvin)"
+
+#~ msgid "PC Set1"
+#~ msgstr "PC 設定 1"
+
+#~ msgid "PC Set2"
+#~ msgstr "PC 設定 2"
+
+#~ msgid "PC Set3"
+#~ msgstr "PC 設定 3"
+
+#~ msgid "top - left"
+#~ msgstr "上 - 左"
+
+#~ msgid "top - right"
+#~ msgstr "上 - 右"
+
+#~ msgid "bottom - right"
+#~ msgstr "下 - 右"
+
+#~ msgid "bottom - left"
+#~ msgstr "下 - 左"
+
+#~ msgid "flash"
+#~ msgstr "フラッシュ"
+
+#~ msgid "y-Resolution"
+#~ msgstr "Y 解像度"
+
+#~ msgid "OECF"
+#~ msgstr "OECF"
+
+#~ msgid "Shutter speed"
+#~ msgstr "シャッター速度"
+
+#~ msgid "Super Macro"
+#~ msgstr "スーパー マクロ"
+
+#~ msgid "unknown"
+#~ msgstr "不明"
+
+#~ msgid "panorama"
+#~ msgstr "パノラマ"
+
+#~ msgid "left to right"
+#~ msgstr "左から右"
+
+#~ msgid "right to left"
+#~ msgstr "右から左"
+
+#~ msgid "bottom to top"
+#~ msgstr "下から上"
+
+#~ msgid "top to bottom"
+#~ msgstr "上から下"
+
+#~ msgid "B&W Mode"
+#~ msgstr "白黒モード"
+
+#~ msgid "Self Timer"
+#~ msgstr "セルフ タイマー"
+
+#~ msgid "Night-scene"
+#~ msgstr "ナイト シーン"
+
+#~ msgid "Red-eye Reduction"
+#~ msgstr "赤目軽減"
+
+#~ msgid "Night Scene"
+#~ msgstr "ナイト シーン"
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/libexif-12.pot b/framework/modules/c_LibExifModule/libexif-0.6.20/po/libexif-12.pot
new file mode 100644
index 0000000000000000000000000000000000000000..da7f3cb877093ffeddd152c8c9f3b76fcdcad99b
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/libexif-12.pot
@@ -0,0 +1,5407 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Lutz Mueller and others
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-12-15 22:14-0800\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: libexif/canon/mnote-canon-entry.c:40 libexif/fuji/mnote-fuji-entry.c:35
+#: libexif/olympus/mnote-olympus-entry.c:37
+#: libexif/pentax/mnote-pentax-entry.c:39
+#, c-format
+msgid "Invalid format '%s', expected '%s'."
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:52 libexif/fuji/mnote-fuji-entry.c:47
+#: libexif/olympus/mnote-olympus-entry.c:62
+#: libexif/pentax/mnote-pentax-entry.c:51
+#, c-format
+msgid "Invalid number of components (%i, expected %i)."
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:61
+#: libexif/olympus/mnote-olympus-entry.c:72
+#: libexif/pentax/mnote-pentax-entry.c:61
+#, c-format
+msgid "Invalid number of components (%i, expected %i or %i)."
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:76 libexif/canon/mnote-canon-entry.c:130
+#: libexif/canon/mnote-canon-entry.c:182 libexif/exif-entry.c:796
+#: libexif/olympus/mnote-olympus-entry.c:196
+#: libexif/olympus/mnote-olympus-tag.c:108
+#: libexif/pentax/mnote-pentax-entry.c:174
+#: libexif/pentax/mnote-pentax-entry.c:209
+#: libexif/pentax/mnote-pentax-entry.c:297
+msgid "Macro"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:77 libexif/canon/mnote-canon-entry.c:79
+#: libexif/canon/mnote-canon-entry.c:157 libexif/canon/mnote-canon-entry.c:160
+#: libexif/canon/mnote-canon-entry.c:163 libexif/exif-entry.c:674
+#: libexif/exif-entry.c:677 libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/exif-entry.c:745 libexif/fuji/mnote-fuji-entry.c:64
+#: libexif/olympus/mnote-olympus-entry.c:118
+#: libexif/olympus/mnote-olympus-entry.c:195
+#: libexif/olympus/mnote-olympus-entry.c:203
+#: libexif/olympus/mnote-olympus-entry.c:213
+#: libexif/olympus/mnote-olympus-entry.c:586
+#: libexif/pentax/mnote-pentax-entry.c:105
+#: libexif/pentax/mnote-pentax-entry.c:110
+#: libexif/pentax/mnote-pentax-entry.c:115
+#: libexif/pentax/mnote-pentax-entry.c:208
+msgid "Normal"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:78
+msgid "Economy"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:80
+msgid "Fine"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:81 libexif/fuji/mnote-fuji-entry.c:178
+#: libexif/pentax/mnote-pentax-entry.c:141
+msgid "RAW"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:82
+msgid "Superfine"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:83 libexif/canon/mnote-canon-entry.c:301
+#: libexif/canon/mnote-canon-entry.c:304 libexif/canon/mnote-canon-entry.c:312
+#: libexif/canon/mnote-canon-entry.c:345 libexif/canon/mnote-canon-entry.c:357
+#: libexif/canon/mnote-canon-entry.c:370 libexif/canon/mnote-canon-entry.c:372
+#: libexif/canon/mnote-canon-entry.c:574 libexif/canon/mnote-canon-entry.c:671
+#: libexif/fuji/mnote-fuji-entry.c:70 libexif/fuji/mnote-fuji-entry.c:103
+#: libexif/fuji/mnote-fuji-entry.c:107 libexif/fuji/mnote-fuji-entry.c:115
+#: libexif/fuji/mnote-fuji-entry.c:142
+#: libexif/olympus/mnote-olympus-entry.c:178
+#: libexif/olympus/mnote-olympus-entry.c:186
+#: libexif/olympus/mnote-olympus-entry.c:251
+#: libexif/olympus/mnote-olympus-entry.c:530
+#: libexif/olympus/mnote-olympus-entry.c:547
+#: libexif/pentax/mnote-pentax-entry.c:195
+#: libexif/pentax/mnote-pentax-entry.c:260
+msgid "Off"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:84 libexif/canon/mnote-canon-entry.c:167
+#: libexif/canon/mnote-canon-entry.c:180 libexif/canon/mnote-canon-entry.c:328
+#: libexif/canon/mnote-canon-entry.c:400 libexif/fuji/mnote-fuji-entry.c:73
+#: libexif/fuji/mnote-fuji-entry.c:101 libexif/fuji/mnote-fuji-entry.c:111
+#: libexif/fuji/mnote-fuji-entry.c:119
+#: libexif/olympus/mnote-olympus-entry.c:131
+#: libexif/olympus/mnote-olympus-entry.c:183
+#: libexif/olympus/mnote-olympus-entry.c:199
+#: libexif/olympus/mnote-olympus-entry.c:244
+#: libexif/pentax/mnote-pentax-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:88
+#: libexif/pentax/mnote-pentax-entry.c:91
+#: libexif/pentax/mnote-pentax-entry.c:97
+#: libexif/pentax/mnote-pentax-entry.c:131
+#: libexif/pentax/mnote-pentax-entry.c:229
+#: libexif/pentax/mnote-pentax-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:290
+msgid "Auto"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:85 libexif/canon/mnote-canon-entry.c:302
+#: libexif/canon/mnote-canon-entry.c:347 libexif/canon/mnote-canon-entry.c:361
+#: libexif/canon/mnote-canon-entry.c:371 libexif/fuji/mnote-fuji-entry.c:102
+#: libexif/fuji/mnote-fuji-entry.c:108 libexif/fuji/mnote-fuji-entry.c:116
+#: libexif/fuji/mnote-fuji-entry.c:143
+#: libexif/olympus/mnote-olympus-entry.c:179
+#: libexif/olympus/mnote-olympus-entry.c:533
+#: libexif/olympus/mnote-olympus-entry.c:550
+#: libexif/pentax/mnote-pentax-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:261
+msgid "On"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:86 libexif/fuji/mnote-fuji-entry.c:104
+#: libexif/olympus/mnote-olympus-entry.c:184
+#: libexif/pentax/mnote-pentax-entry.c:94
+msgid "Red-eye reduction"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:87
+msgid "Slow synchro"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:88
+msgid "Auto, red-eye reduction"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:89
+#: libexif/pentax/mnote-pentax-entry.c:200
+msgid "On, red-eye reduction"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:90
+msgid "External flash"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:91 libexif/canon/mnote-canon-entry.c:101
+#: libexif/canon/mnote-canon-entry.c:294
+msgid "Single"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:92 libexif/canon/mnote-canon-entry.c:102
+#: libexif/canon/mnote-canon-entry.c:295
+msgid "Continuous"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:93
+msgid "Movie"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:94
+msgid "Continuous, speed priority"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:95
+msgid "Continuous, low"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:96
+msgid "Continuous, high"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:97
+msgid "One-shot AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:98
+msgid "AI servo AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:99
+msgid "AI focus AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:100 libexif/canon/mnote-canon-entry.c:103
+msgid "Manual focus"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:104 libexif/canon/mnote-canon-entry.c:132
+#: libexif/canon/mnote-canon-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:212
+msgid "Pan focus"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:105
+msgid "JPEG"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:106
+msgid "CRW+THM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:107
+msgid "AVI+THM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:108
+msgid "TIF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:109
+msgid "TIF+JPEG"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:110
+msgid "CR2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:111
+msgid "CR2+JPEG"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:112
+msgid "Large"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:113
+msgid "Medium"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:114
+msgid "Small"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:115
+msgid "Medium 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:116
+msgid "Medium 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:117
+msgid "Medium 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:118
+msgid "Postcard"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:119
+msgid "Widescreen"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:120
+msgid "Full auto"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:121 libexif/canon/mnote-canon-entry.c:179
+#: libexif/canon/mnote-canon-entry.c:201 libexif/canon/mnote-canon-entry.c:285
+#: libexif/canon/mnote-canon-entry.c:392 libexif/exif-entry.c:744
+#: libexif/fuji/mnote-fuji-entry.c:112
+#: libexif/olympus/mnote-olympus-entry.c:90
+#: libexif/olympus/mnote-olympus-entry.c:200
+#: libexif/pentax/mnote-pentax-entry.c:79
+#: libexif/pentax/mnote-pentax-entry.c:102
+#: libexif/pentax/mnote-pentax-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:165
+#: libexif/pentax/mnote-pentax-entry.c:211
+#: libexif/pentax/mnote-pentax-entry.c:250
+msgid "Manual"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:122 libexif/canon/mnote-canon-entry.c:430
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:755
+#: libexif/fuji/mnote-fuji-entry.c:121 libexif/pentax/mnote-pentax-entry.c:167
+#: libexif/pentax/mnote-pentax-entry.c:301
+msgid "Landscape"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:123
+msgid "Fast shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:124
+msgid "Slow shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:125 libexif/fuji/mnote-fuji-entry.c:123
+#: libexif/olympus/mnote-olympus-entry.c:254
+msgid "Night"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:126
+msgid "Grayscale"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:127 libexif/canon/mnote-canon-entry.c:308
+#: libexif/pentax/mnote-pentax-entry.c:128
+msgid "Sepia"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:128 libexif/canon/mnote-canon-entry.c:429
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:753
+#: libexif/fuji/mnote-fuji-entry.c:120 libexif/pentax/mnote-pentax-entry.c:166
+#: libexif/pentax/mnote-pentax-entry.c:291
+#: libexif/pentax/mnote-pentax-entry.c:294
+#: libexif/pentax/mnote-pentax-entry.c:300
+msgid "Portrait"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:129 libexif/fuji/mnote-fuji-entry.c:122
+msgid "Sports"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:131 libexif/canon/mnote-canon-entry.c:309
+#: libexif/canon/mnote-canon-entry.c:335 libexif/canon/mnote-canon-entry.c:407
+#: libexif/fuji/mnote-fuji-entry.c:89 libexif/pentax/mnote-pentax-entry.c:127
+msgid "Black & white"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:133 libexif/canon/mnote-canon-entry.c:305
+msgid "Vivid"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:134 libexif/canon/mnote-canon-entry.c:306
+#: libexif/canon/mnote-canon-entry.c:431
+msgid "Neutral"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:93
+msgid "Flash off"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:136
+msgid "Long shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:137 libexif/canon/mnote-canon-entry.c:188
+#: libexif/olympus/mnote-olympus-entry.c:171
+msgid "Super macro"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:138
+msgid "Foliage"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:139
+msgid "Indoor"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:140 libexif/fuji/mnote-fuji-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:175
+msgid "Fireworks"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:141 libexif/fuji/mnote-fuji-entry.c:133
+msgid "Beach"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:142 libexif/canon/mnote-canon-entry.c:344
+#: libexif/canon/mnote-canon-entry.c:416 libexif/fuji/mnote-fuji-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:292
+#: libexif/pentax/mnote-pentax-entry.c:298
+msgid "Underwater"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:143 libexif/fuji/mnote-fuji-entry.c:134
+msgid "Snow"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:144
+msgid "Kids & pets"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:145
+msgid "Night snapshot"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:146
+msgid "Digital macro"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:147
+msgid "My colors"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:148
+msgid "Still image"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:149
+msgid "Color accent"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:150
+msgid "Color swap"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:151
+msgid "Aquarium"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:152
+msgid "ISO 3200"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:153 libexif/canon/mnote-canon-entry.c:348
+#: libexif/canon/mnote-canon-entry.c:365 libexif/canon/mnote-canon-entry.c:417
+#: libexif/olympus/mnote-olympus-entry.c:189
+#: libexif/olympus/mnote-olympus-entry.c:226
+#: libexif/olympus/mnote-olympus-entry.c:451
+#: libexif/pentax/mnote-pentax-entry.c:242
+msgid "None"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:154
+msgid "2x"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:155
+msgid "4x"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:156 libexif/exif-entry.c:702
+#: libexif/exif-entry.c:732
+msgid "Other"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:158 libexif/canon/mnote-canon-entry.c:161
+#: libexif/canon/mnote-canon-entry.c:164 libexif/canon/mnote-canon-entry.c:398
+#: libexif/fuji/mnote-fuji-entry.c:86 libexif/pentax/mnote-pentax-entry.c:112
+#: libexif/pentax/mnote-pentax-entry.c:117
+msgid "High"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:159 libexif/canon/mnote-canon-entry.c:162
+#: libexif/canon/mnote-canon-entry.c:165 libexif/canon/mnote-canon-entry.c:396
+#: libexif/pentax/mnote-pentax-entry.c:111
+#: libexif/pentax/mnote-pentax-entry.c:116
+msgid "Low"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:166
+msgid "Auto high"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:168
+msgid "50"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:120
+#: libexif/pentax/mnote-pentax-entry.c:122
+msgid "100"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:170
+#: libexif/pentax/mnote-pentax-entry.c:121
+#: libexif/pentax/mnote-pentax-entry.c:123
+msgid "200"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:171
+msgid "400"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:172
+msgid "800"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:173
+msgid "Default"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:174 libexif/exif-entry.c:698
+msgid "Spot"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:175 libexif/exif-entry.c:696
+msgid "Average"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:176
+msgid "Evaluative"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:177 libexif/exif-entry.c:701
+msgid "Partial"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:178 libexif/exif-entry.c:697
+msgid "Center-weighted average"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:181
+msgid "Not known"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:183
+msgid "Very close"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:184 libexif/exif-entry.c:797
+msgid "Close"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:185
+msgid "Middle range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:186
+msgid "Far range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:189
+#: libexif/pentax/mnote-pentax-entry.c:210
+msgid "Infinity"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:190
+msgid "Manual AF point selection"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:191 libexif/canon/mnote-canon-entry.c:349
+msgid "None (MF)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:192
+msgid "Auto-selected"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:193 libexif/canon/mnote-canon-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:224
+#: libexif/pentax/mnote-pentax-entry.c:238
+msgid "Right"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:194 libexif/canon/mnote-canon-entry.c:351
+#: libexif/pentax/mnote-pentax-entry.c:222
+#: libexif/pentax/mnote-pentax-entry.c:237
+msgid "Center"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:195 libexif/canon/mnote-canon-entry.c:353
+#: libexif/pentax/mnote-pentax-entry.c:220
+#: libexif/pentax/mnote-pentax-entry.c:236
+msgid "Left"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:196
+msgid "Auto AF point selection"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:197
+msgid "Easy shooting"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:163
+msgid "Program"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:199
+msgid "Tv-priority"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:200
+msgid "Av-priority"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:202
+msgid "A-DEP"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:203
+msgid "M-DEP"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:204
+msgid "Canon EF 50mm f/1.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:205
+msgid "Canon EF 28mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:206
+msgid "Sigma UC Zoom 35-135mm f/4-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:207
+msgid "Tokina AF193-2 19-35mm f/3.5-4.5"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:208
+msgid "Canon EF 100-300mm F5.6L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:209
+msgid "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:210
+msgid "Canon EF 35mm f/2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:211
+msgid "Canon EF 15mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:212
+msgid "Canon EF 80-200mm f/2.8L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:213
+msgid "Tokina AT-X280AF PRO 28-80mm F2.8 Aspherical"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:214
+msgid "Cosina 100mm f/3.5 Macro AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:215
+msgid "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:216
+msgid "Canon EF 50mm f/1.8 MkII"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:217
+msgid "Tamron SP AF 300mm f/2.8 LD IF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:218
+msgid "Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:219
+msgid "Canon EF 75-300mm f/4-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:220
+msgid "Canon EF 28-80mm f/3.5-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:221
+msgid "Canon EF 28-105mm f/4-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:222
+msgid "Canon EF-S 18-55mm f/3.5-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:223
+msgid "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:224
+msgid "Canon TS-E 24mm f/3.5L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:225
+msgid "Canon TS-E 45mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:226
+msgid "Canon TS-E 90mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:227
+msgid "Canon EF 50mm f/1.0L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:228
+msgid "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:229
+msgid "Canon EF 600mm f/4L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:230
+msgid "Canon EF 200mm f/1.8L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:231
+msgid "Canon EF 300mm f/2.8L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:232
+msgid "Canon EF 85mm f/1.2L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:233
+msgid "Canon EF 400mm f/2.8L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:234
+msgid "Canon EF 500mm f/4.5L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:235
+msgid "Canon EF 300mm f/2.8L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:236
+msgid "Canon EF 500mm f/4L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:237
+msgid "Canon EF 100mm f/2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:238
+msgid "Sigma 20mm EX f/1.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:239
+msgid "Canon EF 200mm f/2.8L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:240
+msgid "Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:241
+msgid "Canon EF 35-350mm f/3.5-5.6L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:242
+msgid "Canon EF 85mm f/1.8 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:243
+msgid "Canon EF 28-105mm f/3.5-4.5 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:244
+msgid "Canon EF 20-35mm f/3.5-4.5 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:245
+msgid "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:246
+msgid "Canon EF 70-200mm f/2.8 L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:247
+msgid "Canon EF 70-200mm f/2.8 L + x1.4"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:248
+msgid "Canon EF 70-200mm f/2.8 L + x2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:249
+msgid "Canon EF 28mm f/1.8 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:250
+msgid "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:251
+msgid "Canon EF 200mm f/2.8L II"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:252
+msgid "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:253
+msgid "Canon EF 135mm f/2L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:254
+msgid "Canon EF 24-85mm f/3.5-4.5 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:255
+msgid "Canon EF 300mm f/4L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:256
+msgid "Canon EF 28-135mm f/3.5-5.6 IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:257
+msgid "Canon EF 35mm f/1.4L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:258
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:259
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:260
+msgid "Canon EF 100-400mm f/4.5-5.6L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:261
+msgid "Canon EF 400mm f/2.8L + x2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:262
+msgid "Canon EF 70-200mm f/4L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:263
+msgid "Canon EF 100mm f/2.8 Macro"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:264
+msgid "Canon EF 400mm f/4 DO IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:265
+msgid "Canon EF 75-300mm f/4-5.6 IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:266
+msgid "Canon EF 50mm f/1.4"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:267
+msgid "Canon EF 28-80 f/3.5-5.6 USM IV"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:268
+msgid "Canon EF 28-200mm f/3.5-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:269
+msgid "Canon EF 90-300mm f/4.5-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:270
+msgid "Canon EF-S 18-55mm f/3.5-4.5 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:271
+msgid "Canon EF 70-200mm f/2.8L IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:272
+msgid "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:273
+msgid "Canon EF 70-200mm f/2.8L IS USM + x2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:274
+msgid "Canon EF 16-35mm f/2.8L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:275
+msgid "Canon EF 24-70mm f/2.8L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:276
+msgid "Canon EF 17-40mm f/4L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:277
+msgid "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:278
+msgid "Canon EF-S 17-85mm f4-5.6 IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:279
+msgid "Canon EF-S10-22mm F3.5-4.5 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:280
+msgid "Canon EF-S60mm F2.8 Macro USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:281
+msgid "Canon EF 24-105mm f/4L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:282
+msgid "Canon EF 70-300mm F4-5.6 IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:283
+msgid "Canon EF 50mm F1.2L USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:284
+msgid "Canon EF 70-200mm f/4L IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:286
+msgid "TTL"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:287
+msgid "A-TTL"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:288
+msgid "E-TTL"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:289
+msgid "FP sync enabled"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:290
+msgid "2nd-curtain sync used"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:291
+msgid "FP sync used"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:292
+#: libexif/olympus/mnote-olympus-entry.c:190
+msgid "Internal"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:293
+#: libexif/olympus/mnote-olympus-entry.c:191
+msgid "External"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:296
+msgid "Normal AE"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:297
+msgid "Exposure compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:298
+msgid "AE lock"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:299
+msgid "AE lock + exposure compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:300
+msgid "No AE"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:303
+msgid "On, shot only"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:307
+msgid "Smooth"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:310 libexif/canon/mnote-canon-entry.c:334
+#: libexif/canon/mnote-canon-entry.c:393 libexif/canon/mnote-canon-entry.c:406
+#: libexif/fuji/mnote-fuji-entry.c:81 libexif/pentax/mnote-pentax-entry.c:87
+msgid "Custom"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:311
+msgid "My color data"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:313 libexif/canon/mnote-canon-entry.c:375
+#: libexif/pentax/mnote-pentax-entry.c:126
+#: libexif/pentax/mnote-pentax-entry.c:145
+msgid "Full"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:314 libexif/canon/mnote-canon-entry.c:374
+msgid "2/3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:315 libexif/canon/mnote-canon-entry.c:373
+msgid "1/3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:321
+msgid "Fixed"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:322 libexif/pentax/mnote-pentax-tag.c:44
+msgid "Zoom"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:329
+msgid "Sunny"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:330 libexif/canon/mnote-canon-entry.c:402
+#: libexif/exif-entry.c:719 libexif/fuji/mnote-fuji-entry.c:75
+#: libexif/olympus/mnote-olympus-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:255
+msgid "Cloudy"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:331 libexif/canon/mnote-canon-entry.c:403
+#: libexif/exif-entry.c:716 libexif/pentax/mnote-pentax-entry.c:100
+#: libexif/pentax/mnote-pentax-entry.c:249
+msgid "Tungsten"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:332 libexif/canon/mnote-canon-entry.c:404
+#: libexif/exif-entry.c:715 libexif/pentax/mnote-pentax-entry.c:101
+#: libexif/pentax/mnote-pentax-entry.c:248
+msgid "Fluorescent"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:333 libexif/canon/mnote-canon-entry.c:405
+#: libexif/exif-entry.c:717 libexif/exif-entry.c:759 libexif/exif-tag.c:577
+#: libexif/fuji/mnote-fuji-entry.c:80 libexif/pentax/mnote-pentax-entry.c:254
+msgid "Flash"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:336 libexif/canon/mnote-canon-entry.c:408
+#: libexif/exif-entry.c:720 libexif/pentax/mnote-pentax-entry.c:99
+#: libexif/pentax/mnote-pentax-entry.c:247
+msgid "Shade"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:337 libexif/canon/mnote-canon-entry.c:409
+msgid "Manual temperature (Kelvin)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:338 libexif/canon/mnote-canon-entry.c:410
+msgid "PC set 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:339 libexif/canon/mnote-canon-entry.c:411
+msgid "PC set 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:340 libexif/canon/mnote-canon-entry.c:412
+msgid "PC set 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:341 libexif/canon/mnote-canon-entry.c:413
+#: libexif/exif-entry.c:721 libexif/fuji/mnote-fuji-entry.c:76
+#: libexif/pentax/mnote-pentax-entry.c:251
+msgid "Daylight fluorescent"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:342 libexif/canon/mnote-canon-entry.c:414
+msgid "Custom 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:343 libexif/canon/mnote-canon-entry.c:415
+msgid "Custom 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:346 libexif/exif-entry.c:672
+#: libexif/pentax/mnote-pentax-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:132
+#: libexif/pentax/mnote-pentax-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:295
+msgid "Night scene"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:352
+msgid "Center-right"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:354
+msgid "Left-right"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:355
+msgid "Left-center"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:356
+msgid "All"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:358
+msgid "On (shot 1)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:359
+msgid "On (shot 2)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:360
+msgid "On (shot 3)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:362
+msgid "EOS high-end"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:363
+msgid "Compact"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:364
+msgid "EOS mid-range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:366
+msgid "Rotate 90 CW"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:367
+msgid "Rotate 180"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:368
+msgid "Rotate 270 CW"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:369
+msgid "Rotated by software"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:381
+#: libexif/olympus/mnote-olympus-entry.c:606
+msgid "Left to right"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:382
+#: libexif/olympus/mnote-olympus-entry.c:609
+msgid "Right to left"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:383
+#: libexif/olympus/mnote-olympus-entry.c:612
+msgid "Bottom to top"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:384
+#: libexif/olympus/mnote-olympus-entry.c:615
+msgid "Top to bottom"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:385
+msgid "2x2 matrix (clockwise)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:391 libexif/canon/mnote-canon-entry.c:397
+#: libexif/canon/mnote-canon-entry.c:418 libexif/canon/mnote-canon-entry.c:428
+#: libexif/exif-entry.c:671 libexif/fuji/mnote-fuji-entry.c:84
+#: libexif/fuji/mnote-fuji-entry.c:93 libexif/fuji/mnote-fuji-entry.c:163
+#: libexif/olympus/mnote-olympus-entry.c:227
+msgid "Standard"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:394
+msgid "N/A"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:395
+msgid "Lowest"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:399
+msgid "Highest"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:401 libexif/exif-entry.c:714
+#: libexif/fuji/mnote-fuji-entry.c:74
+#: libexif/olympus/mnote-olympus-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:98
+#: libexif/pentax/mnote-pentax-entry.c:246
+msgid "Daylight"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:419
+msgid "Set 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:420
+msgid "Set 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:421
+msgid "Set 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:422
+msgid "User def. 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:423
+msgid "User def. 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:424
+msgid "User def. 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:425
+msgid "External 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:426
+msgid "External 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:427
+msgid "External 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:432
+msgid "Faithful"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:115
+msgid "Monochrome"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:491
+msgid ", "
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:577 libexif/canon/mnote-canon-entry.c:674
+#, c-format
+msgid "%i (ms)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:621
+#, c-format
+msgid "%.2f mm"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:645
+#, c-format
+msgid "%.2f EV"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:655 libexif/exif-entry.c:1064
+#, c-format
+msgid "1/%i"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:667
+#, c-format
+msgid "%u mm"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:35
+msgid "Settings (First Part)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:36 libexif/canon/mnote-canon-tag.c:92
+#: libexif/exif-tag.c:581 libexif/pentax/mnote-pentax-tag.c:88
+msgid "Focal Length"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:37
+msgid "Settings (Second Part)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:38
+#: libexif/olympus/mnote-olympus-entry.c:595
+#: libexif/pentax/mnote-pentax-entry.c:177
+msgid "Panorama"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:39
+msgid "Image Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:40 libexif/olympus/mnote-olympus-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:113
+msgid "Firmware Version"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:41
+msgid "Image Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:42
+msgid "Owner Name"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:43
+msgid "Color Information"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:44 libexif/fuji/mnote-fuji-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:81
+#: libexif/olympus/mnote-olympus-tag.c:146
+msgid "Serial Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:45
+msgid "Custom Functions"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:56 libexif/fuji/mnote-fuji-tag.c:45
+msgid "Macro Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:57 libexif/canon/mnote-canon-tag.c:117
+#: libexif/olympus/mnote-olympus-tag.c:175
+#: libexif/pentax/mnote-pentax-tag.c:128
+msgid "Self-timer"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:58 libexif/fuji/mnote-fuji-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:94
+#: libexif/olympus/mnote-olympus-tag.c:107
+msgid "Quality"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:59 libexif/fuji/mnote-fuji-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:45
+#: libexif/olympus/mnote-olympus-tag.c:127
+#: libexif/pentax/mnote-pentax-tag.c:38 libexif/pentax/mnote-pentax-tag.c:73
+msgid "Flash Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:60 libexif/pentax/mnote-pentax-tag.c:101
+msgid "Drive Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:61 libexif/canon/mnote-canon-tag.c:82
+#: libexif/olympus/mnote-olympus-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:134
+#: libexif/olympus/mnote-olympus-tag.c:173
+#: libexif/pentax/mnote-pentax-tag.c:37 libexif/pentax/mnote-pentax-tag.c:74
+#: libexif/pentax/mnote-pentax-tag.c:130
+msgid "Focus Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:62 libexif/pentax/mnote-pentax-tag.c:127
+msgid "Record Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:63 libexif/pentax/mnote-pentax-tag.c:71
+msgid "Image Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:64
+msgid "Easy Shooting Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:65 libexif/olympus/mnote-olympus-tag.c:64
+#: libexif/olympus/mnote-olympus-tag.c:101
+#: libexif/olympus/mnote-olympus-tag.c:110
+#: libexif/olympus/mnote-olympus-tag.c:180
+#: libexif/pentax/mnote-pentax-tag.c:89
+msgid "Digital Zoom"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:66 libexif/exif-tag.c:828
+#: libexif/fuji/mnote-fuji-tag.c:42 libexif/pentax/mnote-pentax-tag.c:46
+#: libexif/pentax/mnote-pentax-tag.c:91
+msgid "Contrast"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:67 libexif/exif-tag.c:832
+#: libexif/olympus/mnote-olympus-tag.c:75
+#: libexif/olympus/mnote-olympus-tag.c:87 libexif/pentax/mnote-pentax-tag.c:47
+#: libexif/pentax/mnote-pentax-tag.c:90
+msgid "Saturation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:68 libexif/exif-tag.c:836
+#: libexif/fuji/mnote-fuji-tag.c:39 libexif/pentax/mnote-pentax-tag.c:45
+#: libexif/pentax/mnote-pentax-tag.c:92
+msgid "Sharpness"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:69
+msgid "ISO"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:70 libexif/exif-tag.c:571
+#: libexif/pentax/mnote-pentax-tag.c:82
+msgid "Metering Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:71 libexif/olympus/mnote-olympus-tag.c:133
+msgid "Focus Range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:72 libexif/canon/mnote-canon-tag.c:105
+msgid "AF Point"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:73 libexif/exif-tag.c:795
+msgid "Exposure Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:74 libexif/olympus/mnote-olympus-tag.c:61
+#: libexif/pentax/mnote-pentax-tag.c:106
+msgid "Lens Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:75
+msgid "Long Focal Length of Lens"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:76
+msgid "Short Focal Length of Lens"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:77
+msgid "Focal Units per mm"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:78
+msgid "Maximal Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:79
+msgid "Minimal Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:80
+msgid "Flash Activity"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:81
+msgid "Flash Details"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:83
+msgid "AE Setting"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:84
+msgid "Image Stabilization"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:85
+msgid "Display Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:86
+msgid "Zoom Source Width"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:87
+msgid "Zoom Target Width"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:88
+msgid "Photo Effect"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:89 libexif/canon/mnote-canon-tag.c:118
+msgid "Manual Flash Output"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:90
+msgid "Color Tone"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:91
+msgid "Focal Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:93
+msgid "Focal Plane X Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:94
+msgid "Focal Plane Y Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:95
+msgid "Auto ISO"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:96
+msgid "Shot ISO"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:97
+msgid "Measured EV"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:98
+msgid "Target Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:99
+msgid "Target Exposure Time"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:100 libexif/olympus/mnote-olympus-tag.c:129
+#: libexif/pentax/mnote-pentax-tag.c:81
+msgid "Exposure Compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:101 libexif/canon/mnote-canon-tag.c:123
+#: libexif/exif-tag.c:800 libexif/fuji/mnote-fuji-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:41
+#: libexif/olympus/mnote-olympus-tag.c:98 libexif/pentax/mnote-pentax-tag.c:41
+#: libexif/pentax/mnote-pentax-tag.c:84 libexif/pentax/mnote-pentax-tag.c:124
+msgid "White Balance"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:102
+msgid "Slow Shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:103
+msgid "Sequence Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:104
+msgid "Flash Guide Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:106 libexif/olympus/mnote-olympus-tag.c:52
+#: libexif/pentax/mnote-pentax-tag.c:109
+msgid "Flash Exposure Compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:107
+msgid "AE Bracketing"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:108
+msgid "AE Bracket Value"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:109
+msgid "Focus Distance Upper"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:110
+msgid "Focus Distance Lower"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:111
+msgid "FNumber"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:112 libexif/exif-tag.c:466
+#: libexif/pentax/mnote-pentax-tag.c:78
+msgid "Exposure Time"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:113
+msgid "Bulb Duration"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:114
+msgid "Camera Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:115
+msgid "Auto Rotate"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:116
+msgid "ND Filter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:119
+msgid "Panorama Frame"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:120
+msgid "Panorama Direction"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:121
+msgid "Tone Curve"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:122
+msgid "Sharpness Frequency"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:124
+msgid "Picture Style"
+msgstr ""
+
+#: libexif/exif-byte-order.c:33
+msgid "Motorola"
+msgstr ""
+
+#: libexif/exif-byte-order.c:35
+msgid "Intel"
+msgstr ""
+
+#: libexif/exif-data.c:780
+msgid "Size of data too small to allow for EXIF data."
+msgstr ""
+
+#: libexif/exif-data.c:841
+msgid "EXIF marker not found."
+msgstr ""
+
+#: libexif/exif-data.c:868
+msgid "EXIF header not found."
+msgstr ""
+
+#: libexif/exif-data.c:884
+msgid "Unknown encoding."
+msgstr ""
+
+#: libexif/exif-data.c:1168
+msgid "Ignore unknown tags"
+msgstr ""
+
+#: libexif/exif-data.c:1169
+msgid "Ignore unknown tags when loading EXIF data."
+msgstr ""
+
+#: libexif/exif-data.c:1170
+msgid "Follow specification"
+msgstr ""
+
+#: libexif/exif-data.c:1171
+msgid ""
+"Add, correct and remove entries to get EXIF data that follows the "
+"specification."
+msgstr ""
+
+#: libexif/exif-data.c:1173
+msgid "Do not change maker note"
+msgstr ""
+
+#: libexif/exif-data.c:1174
+msgid ""
+"When loading and resaving Exif data, save the maker note unmodified. Be "
+"aware that the maker note can get corrupted."
+msgstr ""
+
+#: libexif/exif-entry.c:234 libexif/exif-entry.c:303 libexif/exif-entry.c:336
+#, c-format
+msgid ""
+"Tag '%s' was of format '%s' (which is against specification) and has been "
+"changed to format '%s'."
+msgstr ""
+
+#: libexif/exif-entry.c:271
+#, c-format
+msgid ""
+"Tag '%s' is of format '%s' (which is against specification) but cannot be "
+"changed to format '%s'."
+msgstr ""
+
+#: libexif/exif-entry.c:354
+#, c-format
+msgid ""
+"Tag 'UserComment' had invalid format '%s'. Format has been set to "
+"'undefined'."
+msgstr ""
+
+#: libexif/exif-entry.c:381
+msgid ""
+"Tag 'UserComment' has been expanded to at least 8 bytes in order to follow "
+"the specification."
+msgstr ""
+
+#: libexif/exif-entry.c:396
+msgid ""
+"Tag 'UserComment' is not empty but does not start with a format identifier. "
+"This has been fixed."
+msgstr ""
+
+#: libexif/exif-entry.c:424
+msgid ""
+"Tag 'UserComment' did not start with a format identifier. This has been "
+"fixed."
+msgstr ""
+
+#: libexif/exif-entry.c:462
+#, c-format
+msgid "%i bytes undefined data"
+msgstr ""
+
+#: libexif/exif-entry.c:589
+#, c-format
+msgid "%i bytes unsupported data type"
+msgstr ""
+
+#: libexif/exif-entry.c:622
+#, c-format
+msgid "The tag '%s' contains data of an invalid format ('%s', expected '%s')."
+msgstr ""
+
+#: libexif/exif-entry.c:635
+#, c-format
+msgid ""
+"The tag '%s' contains an invalid number of components (%i, expected %i)."
+msgstr ""
+
+#: libexif/exif-entry.c:649
+msgid "Chunky format"
+msgstr ""
+
+#: libexif/exif-entry.c:649
+msgid "Planar format"
+msgstr ""
+
+#: libexif/exif-entry.c:651 libexif/exif-entry.c:743
+#: test/nls/test-codeset.c:54
+msgid "Not defined"
+msgstr ""
+
+#: libexif/exif-entry.c:651
+msgid "One-chip color area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:652
+msgid "Two-chip color area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:652
+msgid "Three-chip color area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:653
+msgid "Color sequential area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:653
+msgid "Trilinear sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:654
+msgid "Color sequential linear sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:233
+msgid "Top-left"
+msgstr ""
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:235
+msgid "Top-right"
+msgstr ""
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:241
+msgid "Bottom-right"
+msgstr ""
+
+#: libexif/exif-entry.c:657 libexif/pentax/mnote-pentax-entry.c:239
+msgid "Bottom-left"
+msgstr ""
+
+#: libexif/exif-entry.c:657
+msgid "Left-top"
+msgstr ""
+
+#: libexif/exif-entry.c:657
+msgid "Right-top"
+msgstr ""
+
+#: libexif/exif-entry.c:658
+msgid "Right-bottom"
+msgstr ""
+
+#: libexif/exif-entry.c:658
+msgid "Left-bottom"
+msgstr ""
+
+#: libexif/exif-entry.c:660
+msgid "Centered"
+msgstr ""
+
+#: libexif/exif-entry.c:660
+msgid "Co-sited"
+msgstr ""
+
+#: libexif/exif-entry.c:662
+msgid "Reversed mono"
+msgstr ""
+
+#: libexif/exif-entry.c:662
+msgid "Normal mono"
+msgstr ""
+
+#: libexif/exif-entry.c:662
+msgid "RGB"
+msgstr ""
+
+#: libexif/exif-entry.c:662
+msgid "Palette"
+msgstr ""
+
+#: libexif/exif-entry.c:663
+msgid "CMYK"
+msgstr ""
+
+#: libexif/exif-entry.c:663
+msgid "YCbCr"
+msgstr ""
+
+#: libexif/exif-entry.c:663
+msgid "CieLAB"
+msgstr ""
+
+#: libexif/exif-entry.c:665
+msgid "Normal process"
+msgstr ""
+
+#: libexif/exif-entry.c:665
+msgid "Custom process"
+msgstr ""
+
+#: libexif/exif-entry.c:667
+msgid "Auto exposure"
+msgstr ""
+
+#: libexif/exif-entry.c:667 libexif/fuji/mnote-fuji-entry.c:139
+msgid "Manual exposure"
+msgstr ""
+
+#: libexif/exif-entry.c:667
+msgid "Auto bracket"
+msgstr ""
+
+#: libexif/exif-entry.c:669
+msgid "Auto white balance"
+msgstr ""
+
+#: libexif/exif-entry.c:669
+msgid "Manual white balance"
+msgstr ""
+
+#: libexif/exif-entry.c:674
+msgid "Low gain up"
+msgstr ""
+
+#: libexif/exif-entry.c:674
+msgid "High gain up"
+msgstr ""
+
+#: libexif/exif-entry.c:675
+msgid "Low gain down"
+msgstr ""
+
+#: libexif/exif-entry.c:675
+msgid "High gain down"
+msgstr ""
+
+#: libexif/exif-entry.c:677
+msgid "Low saturation"
+msgstr ""
+
+#: libexif/exif-entry.c:677 test/nls/test-codeset.c:48
+#: test/nls/test-codeset.c:61
+msgid "High saturation"
+msgstr ""
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:63
+#: libexif/olympus/mnote-olympus-entry.c:205
+#: libexif/olympus/mnote-olympus-entry.c:214
+#: libexif/pentax/mnote-pentax-entry.c:106
+#: libexif/pentax/mnote-pentax-entry.c:170
+msgid "Soft"
+msgstr ""
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:65 libexif/fuji/mnote-fuji-entry.c:95
+#: libexif/olympus/mnote-olympus-entry.c:204
+#: libexif/olympus/mnote-olympus-entry.c:212
+#: libexif/pentax/mnote-pentax-entry.c:107
+msgid "Hard"
+msgstr ""
+
+#: libexif/exif-entry.c:695 libexif/exif-entry.c:713 libexif/exif-entry.c:795
+#: libexif/olympus/mnote-olympus-entry.c:589
+#: libexif/olympus/mnote-olympus-entry.c:683
+#: libexif/olympus/mnote-olympus-entry.c:738
+#: libexif/pentax/mnote-pentax-entry.c:256
+msgid "Unknown"
+msgstr ""
+
+#: libexif/exif-entry.c:696
+msgid "Avg"
+msgstr ""
+
+#: libexif/exif-entry.c:697
+msgid "Center-weight"
+msgstr ""
+
+#: libexif/exif-entry.c:699
+msgid "Multi spot"
+msgstr ""
+
+#: libexif/exif-entry.c:700
+msgid "Pattern"
+msgstr ""
+
+#: libexif/exif-entry.c:705
+msgid "Uncompressed"
+msgstr ""
+
+#: libexif/exif-entry.c:706
+msgid "LZW compression"
+msgstr ""
+
+#: libexif/exif-entry.c:707 libexif/exif-entry.c:708
+msgid "JPEG compression"
+msgstr ""
+
+#: libexif/exif-entry.c:709
+msgid "Deflate/ZIP compression"
+msgstr ""
+
+#: libexif/exif-entry.c:710
+msgid "PackBits compression"
+msgstr ""
+
+#: libexif/exif-entry.c:716
+msgid "Tungsten incandescent light"
+msgstr ""
+
+#: libexif/exif-entry.c:718
+msgid "Fine weather"
+msgstr ""
+
+#: libexif/exif-entry.c:719
+msgid "Cloudy weather"
+msgstr ""
+
+#: libexif/exif-entry.c:722 libexif/fuji/mnote-fuji-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:252
+msgid "Day white fluorescent"
+msgstr ""
+
+#: libexif/exif-entry.c:723
+msgid "Cool white fluorescent"
+msgstr ""
+
+#: libexif/exif-entry.c:724 libexif/fuji/mnote-fuji-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:253
+msgid "White fluorescent"
+msgstr ""
+
+#: libexif/exif-entry.c:725
+msgid "Standard light A"
+msgstr ""
+
+#: libexif/exif-entry.c:726
+msgid "Standard light B"
+msgstr ""
+
+#: libexif/exif-entry.c:727
+msgid "Standard light C"
+msgstr ""
+
+#: libexif/exif-entry.c:728
+msgid "D55"
+msgstr ""
+
+#: libexif/exif-entry.c:729
+msgid "D65"
+msgstr ""
+
+#: libexif/exif-entry.c:730
+msgid "D75"
+msgstr ""
+
+#: libexif/exif-entry.c:731
+msgid "ISO studio tungsten"
+msgstr ""
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "Inch"
+msgstr ""
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "in"
+msgstr ""
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "Centimeter"
+msgstr ""
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "cm"
+msgstr ""
+
+#: libexif/exif-entry.c:745
+msgid "Normal program"
+msgstr ""
+
+#: libexif/exif-entry.c:746
+msgid "Aperture priority"
+msgstr ""
+
+#: libexif/exif-entry.c:746 libexif/exif-tag.c:550
+msgid "Aperture"
+msgstr ""
+
+#: libexif/exif-entry.c:747
+msgid "Shutter priority"
+msgstr ""
+
+#: libexif/exif-entry.c:747
+msgid "Shutter"
+msgstr ""
+
+#: libexif/exif-entry.c:748
+msgid "Creative program (biased toward depth of field)"
+msgstr ""
+
+#: libexif/exif-entry.c:749
+msgid "Creative"
+msgstr ""
+
+#: libexif/exif-entry.c:750
+msgid "Creative program (biased toward fast shutter speed)"
+msgstr ""
+
+#: libexif/exif-entry.c:751
+msgid "Action"
+msgstr ""
+
+#: libexif/exif-entry.c:752
+msgid "Portrait mode (for closeup photos with the background out of focus)"
+msgstr ""
+
+#: libexif/exif-entry.c:754
+msgid "Landscape mode (for landscape photos with the background in focus)"
+msgstr ""
+
+#: libexif/exif-entry.c:758 libexif/exif-entry.c:763
+#: libexif/olympus/mnote-olympus-entry.c:97
+msgid "Flash did not fire"
+msgstr ""
+
+#: libexif/exif-entry.c:758
+msgid "No flash"
+msgstr ""
+
+#: libexif/exif-entry.c:759
+msgid "Flash fired"
+msgstr ""
+
+#: libexif/exif-entry.c:759 libexif/olympus/mnote-olympus-entry.c:170
+#: libexif/olympus/mnote-olympus-entry.c:175
+#: libexif/olympus/mnote-olympus-entry.c:209
+#: libexif/olympus/mnote-olympus-entry.c:218
+#: libexif/olympus/mnote-olympus-entry.c:241
+msgid "Yes"
+msgstr ""
+
+#: libexif/exif-entry.c:760
+msgid "Strobe return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:760
+msgid "Without strobe"
+msgstr ""
+
+#: libexif/exif-entry.c:762
+msgid "Strobe return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:762
+msgid "With strobe"
+msgstr ""
+
+#: libexif/exif-entry.c:764
+msgid "Flash fired, compulsory flash mode"
+msgstr ""
+
+#: libexif/exif-entry.c:765
+msgid "Flash fired, compulsory flash mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:767
+msgid "Flash fired, compulsory flash mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:769
+msgid "Flash did not fire, compulsory flash mode"
+msgstr ""
+
+#: libexif/exif-entry.c:770
+msgid "Flash did not fire, auto mode"
+msgstr ""
+
+#: libexif/exif-entry.c:771
+msgid "Flash fired, auto mode"
+msgstr ""
+
+#: libexif/exif-entry.c:772
+msgid "Flash fired, auto mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:774
+msgid "Flash fired, auto mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:775
+msgid "No flash function"
+msgstr ""
+
+#: libexif/exif-entry.c:776
+msgid "Flash fired, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:777
+msgid "Flash fired, red-eye reduction mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:779
+msgid "Flash fired, red-eye reduction mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:781
+msgid "Flash fired, compulsory flash mode, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:783
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light not "
+"detected"
+msgstr ""
+
+#: libexif/exif-entry.c:785
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light "
+"detected"
+msgstr ""
+
+#: libexif/exif-entry.c:787
+msgid "Flash did not fire, auto mode, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:788
+msgid "Flash fired, auto mode, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:789
+msgid ""
+"Flash fired, auto mode, return light not detected, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:791
+msgid "Flash fired, auto mode, return light detected, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:795
+msgid "?"
+msgstr ""
+
+#: libexif/exif-entry.c:797
+msgid "Close view"
+msgstr ""
+
+#: libexif/exif-entry.c:798
+msgid "Distant view"
+msgstr ""
+
+#: libexif/exif-entry.c:798
+msgid "Distant"
+msgstr ""
+
+#: libexif/exif-entry.c:801
+msgid "sRGB"
+msgstr ""
+
+#: libexif/exif-entry.c:802
+msgid "Adobe RGB"
+msgstr ""
+
+#: libexif/exif-entry.c:803
+msgid "Uncalibrated"
+msgstr ""
+
+#: libexif/exif-entry.c:857
+#, c-format
+msgid "Invalid size of entry (%i, expected %li x %i)."
+msgstr ""
+
+#: libexif/exif-entry.c:890
+msgid "Unsupported UNICODE string"
+msgstr ""
+
+#: libexif/exif-entry.c:898
+msgid "Unsupported JIS string"
+msgstr ""
+
+#: libexif/exif-entry.c:914
+msgid "Tag UserComment does not comply with standard but contains data."
+msgstr ""
+
+#: libexif/exif-entry.c:918
+#, c-format
+msgid "Byte at position %i: 0x%02x"
+msgstr ""
+
+#: libexif/exif-entry.c:927
+msgid "Unknown Exif Version"
+msgstr ""
+
+#: libexif/exif-entry.c:931
+#, c-format
+msgid "Exif Version %d.%d"
+msgstr ""
+
+#: libexif/exif-entry.c:942
+msgid "FlashPix Version 1.0"
+msgstr ""
+
+#: libexif/exif-entry.c:944
+msgid "FlashPix Version 1.01"
+msgstr ""
+
+#: libexif/exif-entry.c:946
+msgid "Unknown FlashPix Version"
+msgstr ""
+
+#: libexif/exif-entry.c:959 libexif/exif-entry.c:972 libexif/exif-entry.c:1628
+#: libexif/exif-entry.c:1633 libexif/exif-entry.c:1637
+#: libexif/exif-entry.c:1642 libexif/exif-entry.c:1643
+msgid "[None]"
+msgstr ""
+
+#: libexif/exif-entry.c:961
+msgid "(Photographer)"
+msgstr ""
+
+#: libexif/exif-entry.c:975
+msgid "(Editor)"
+msgstr ""
+
+#: libexif/exif-entry.c:999 libexif/exif-entry.c:1079
+#: libexif/exif-entry.c:1096 libexif/exif-entry.c:1140
+#, c-format
+msgid "%.02f EV"
+msgstr ""
+
+#: libexif/exif-entry.c:1000
+#, c-format
+msgid " (f/%.01f)"
+msgstr ""
+
+#: libexif/exif-entry.c:1034
+#, c-format
+msgid " (35 equivalent: %d mm)"
+msgstr ""
+
+#: libexif/exif-entry.c:1067 libexif/exif-entry.c:1068
+msgid " sec."
+msgstr ""
+
+#: libexif/exif-entry.c:1082
+#, c-format
+msgid " (1/%d sec.)"
+msgstr ""
+
+#: libexif/exif-entry.c:1084
+#, c-format
+msgid " (%d sec.)"
+msgstr ""
+
+#: libexif/exif-entry.c:1097
+#, c-format
+msgid " (%.02f cd/m^2)"
+msgstr ""
+
+#: libexif/exif-entry.c:1107
+msgid "DSC"
+msgstr ""
+
+#: libexif/exif-entry.c:1109 libexif/exif-entry.c:1149
+#: libexif/exif-entry.c:1236 libexif/exif-entry.c:1287
+#: libexif/exif-entry.c:1296 libexif/exif-entry.c:1332
+#: libexif/fuji/mnote-fuji-entry.c:236 libexif/fuji/mnote-fuji-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:359
+#, c-format
+msgid "Internal error (unknown value %i)"
+msgstr ""
+
+#: libexif/exif-entry.c:1117
+msgid "-"
+msgstr ""
+
+#: libexif/exif-entry.c:1118
+msgid "Y"
+msgstr ""
+
+#: libexif/exif-entry.c:1119
+msgid "Cb"
+msgstr ""
+
+#: libexif/exif-entry.c:1120
+msgid "Cr"
+msgstr ""
+
+#: libexif/exif-entry.c:1121
+msgid "R"
+msgstr ""
+
+#: libexif/exif-entry.c:1122
+msgid "G"
+msgstr ""
+
+#: libexif/exif-entry.c:1123
+msgid "B"
+msgstr ""
+
+#: libexif/exif-entry.c:1124
+msgid "Reserved"
+msgstr ""
+
+#: libexif/exif-entry.c:1147
+msgid "Directly photographed"
+msgstr ""
+
+#: libexif/exif-entry.c:1160
+msgid "YCbCr4:2:2"
+msgstr ""
+
+#: libexif/exif-entry.c:1162
+msgid "YCbCr4:2:0"
+msgstr ""
+
+#: libexif/exif-entry.c:1179
+#, c-format
+msgid "Within distance %i of (x,y) = (%i,%i)"
+msgstr ""
+
+#: libexif/exif-entry.c:1188
+#, c-format
+msgid "Within rectangle (width %i, height %i) around (x,y) = (%i,%i)"
+msgstr ""
+
+#: libexif/exif-entry.c:1194
+#, c-format
+msgid "Unexpected number of components (%li, expected 2, 3, or 4)."
+msgstr ""
+
+#: libexif/exif-entry.c:1232
+msgid "Sea level"
+msgstr ""
+
+#: libexif/exif-entry.c:1234
+msgid "Sea level reference"
+msgstr ""
+
+#: libexif/exif-entry.c:1342
+#, c-format
+msgid "Unknown value %i"
+msgstr ""
+
+#: libexif/exif-format.c:37
+msgid "Short"
+msgstr ""
+
+#: libexif/exif-format.c:38
+msgid "Rational"
+msgstr ""
+
+#: libexif/exif-format.c:39
+msgid "SRational"
+msgstr ""
+
+#: libexif/exif-format.c:40
+msgid "Undefined"
+msgstr ""
+
+#: libexif/exif-format.c:41
+msgid "ASCII"
+msgstr ""
+
+#: libexif/exif-format.c:42
+msgid "Long"
+msgstr ""
+
+#: libexif/exif-format.c:43
+msgid "Byte"
+msgstr ""
+
+#: libexif/exif-format.c:44
+msgid "SByte"
+msgstr ""
+
+#: libexif/exif-format.c:45
+msgid "SShort"
+msgstr ""
+
+#: libexif/exif-format.c:46
+msgid "SLong"
+msgstr ""
+
+#: libexif/exif-format.c:47
+msgid "Float"
+msgstr ""
+
+#: libexif/exif-format.c:48
+msgid "Double"
+msgstr ""
+
+#: libexif/exif-loader.c:119
+#, c-format
+msgid "The file '%s' could not be opened."
+msgstr ""
+
+#: libexif/exif-loader.c:300
+msgid "The data supplied does not seem to contain EXIF data."
+msgstr ""
+
+#: libexif/exif-log.c:43
+msgid "Debugging information"
+msgstr ""
+
+#: libexif/exif-log.c:44
+msgid "Debugging information is available."
+msgstr ""
+
+#: libexif/exif-log.c:45
+msgid "Not enough memory"
+msgstr ""
+
+#: libexif/exif-log.c:46
+msgid "The system cannot provide enough memory."
+msgstr ""
+
+#: libexif/exif-log.c:47
+msgid "Corrupt data"
+msgstr ""
+
+#: libexif/exif-log.c:48
+msgid "The data provided does not follow the specification."
+msgstr ""
+
+#: libexif/exif-tag.c:62
+msgid "GPS Tag Version"
+msgstr ""
+
+#: libexif/exif-tag.c:63
+msgid ""
+"Indicates the version of <GPSInfoIFD>. The version is given as 2.0.0.0. This "
+"tag is mandatory when <GPSInfo> tag is present. (Note: The <GPSVersionID> "
+"tag is given in bytes, unlike the <ExifVersion> tag. When the version is "
+"2.0.0.0, the tag value is 02000000.H)."
+msgstr ""
+
+#: libexif/exif-tag.c:69
+msgid "Interoperability Index"
+msgstr ""
+
+#: libexif/exif-tag.c:70
+msgid ""
+"Indicates the identification of the Interoperability rule. Use \"R98\" for "
+"stating ExifR98 Rules. Four bytes used including the termination code "
+"(NULL). see the separate volume of Recommended Exif Interoperability Rules "
+"(ExifR98) for other tags used for ExifR98."
+msgstr ""
+
+#: libexif/exif-tag.c:76
+msgid "North or South Latitude"
+msgstr ""
+
+#: libexif/exif-tag.c:77
+msgid ""
+"Indicates whether the latitude is north or south latitude. The ASCII value "
+"'N' indicates north latitude, and 'S' is south latitude."
+msgstr ""
+
+#: libexif/exif-tag.c:81
+msgid "Interoperability Version"
+msgstr ""
+
+#: libexif/exif-tag.c:83
+msgid "Latitude"
+msgstr ""
+
+#: libexif/exif-tag.c:84
+msgid ""
+"Indicates the latitude. The latitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is dd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is dd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:91
+msgid "East or West Longitude"
+msgstr ""
+
+#: libexif/exif-tag.c:92
+msgid ""
+"Indicates whether the longitude is east or west longitude. ASCII 'E' "
+"indicates east longitude, and 'W' is west longitude."
+msgstr ""
+
+#: libexif/exif-tag.c:95
+msgid "Longitude"
+msgstr ""
+
+#: libexif/exif-tag.c:96
+msgid ""
+"Indicates the longitude. The longitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is ddd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is ddd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:103
+msgid "Altitude Reference"
+msgstr ""
+
+#: libexif/exif-tag.c:104
+msgid ""
+"Indicates the altitude used as the reference altitude. If the reference is "
+"sea level and the altitude is above sea level, 0 is given. If the altitude "
+"is below sea level, a value of 1 is given and the altitude is indicated as "
+"an absolute value in the GSPAltitude tag. The reference unit is meters. Note "
+"that this tag is BYTE type, unlike other reference tags."
+msgstr ""
+
+#: libexif/exif-tag.c:110
+msgid "Altitude"
+msgstr ""
+
+#: libexif/exif-tag.c:111
+msgid ""
+"Indicates the altitude based on the reference in GPSAltitudeRef. Altitude is "
+"expressed as one RATIONAL value. The reference unit is meters."
+msgstr ""
+
+#: libexif/exif-tag.c:114
+msgid "GPS Time (Atomic Clock)"
+msgstr ""
+
+#: libexif/exif-tag.c:115
+msgid ""
+"Indicates the time as UTC (Coordinated Universal Time). TimeStamp is "
+"expressed as three RATIONAL values giving the hour, minute, and second."
+msgstr ""
+
+#: libexif/exif-tag.c:118
+msgid "GPS Satellites"
+msgstr ""
+
+#: libexif/exif-tag.c:119
+msgid ""
+"Indicates the GPS satellites used for measurements. This tag can be used to "
+"describe the number of satellites, their ID number, angle of elevation, "
+"azimuth, SNR and other information in ASCII notation. The format is not "
+"specified. If the GPS receiver is incapable of taking measurements, value of "
+"the tag shall be set to NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:125
+msgid "GPS Receiver Status"
+msgstr ""
+
+#: libexif/exif-tag.c:126
+msgid ""
+"Indicates the status of the GPS receiver when the image is recorded. 'A' "
+"means measurement is in progress, and 'V' means the measurement is "
+"Interoperability."
+msgstr ""
+
+#: libexif/exif-tag.c:129
+msgid "GPS Measurement Mode"
+msgstr ""
+
+#: libexif/exif-tag.c:130
+msgid ""
+"Indicates the GPS measurement mode. '2' means two-dimensional measurement "
+"and '3' means three-dimensional measurement is in progress."
+msgstr ""
+
+#: libexif/exif-tag.c:133
+msgid "Measurement Precision"
+msgstr ""
+
+#: libexif/exif-tag.c:134
+msgid ""
+"Indicates the GPS DOP (data degree of precision). An HDOP value is written "
+"during two-dimensional measurement, and PDOP during three-dimensional "
+"measurement."
+msgstr ""
+
+#: libexif/exif-tag.c:137
+msgid "Speed Unit"
+msgstr ""
+
+#: libexif/exif-tag.c:138
+msgid ""
+"Indicates the unit used to express the GPS receiver speed of movement. 'K', "
+"'M' and 'N' represent kilometers per hour, miles per hour, and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:141
+msgid "Speed of GPS Receiver"
+msgstr ""
+
+#: libexif/exif-tag.c:142
+msgid "Indicates the speed of GPS receiver movement."
+msgstr ""
+
+#: libexif/exif-tag.c:143
+msgid "Reference for direction of movement"
+msgstr ""
+
+#: libexif/exif-tag.c:144
+msgid ""
+"Indicates the reference for giving the direction of GPS receiver movement. "
+"'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:147
+msgid "Direction of Movement"
+msgstr ""
+
+#: libexif/exif-tag.c:148
+msgid ""
+"Indicates the direction of GPS receiver movement. The range of values is "
+"from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:150
+msgid "GPS Image Direction Reference"
+msgstr ""
+
+#: libexif/exif-tag.c:151
+msgid ""
+"Indicates the reference for giving the direction of the image when it is "
+"captured. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:153
+msgid "GPS Image Direction"
+msgstr ""
+
+#: libexif/exif-tag.c:154
+msgid ""
+"Indicates the direction of the image when it was captured. The range of "
+"values is from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:156
+msgid "Geodetic Survey Data Used"
+msgstr ""
+
+#: libexif/exif-tag.c:157
+msgid ""
+"Indicates the geodetic survey data used by the GPS receiver. If the survey "
+"data is restricted to Japan, the value of this tag is 'TOKYO' or 'WGS-84'. "
+"If a GPS Info tag is recorded, it is strongly recommended that this tag be "
+"recorded."
+msgstr ""
+
+#: libexif/exif-tag.c:161
+msgid "Reference For Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:162
+msgid ""
+"Indicates whether the latitude of the destination point is north or south "
+"latitude. The ASCII value 'N' indicates north latitude, and 'S' is south "
+"latitude."
+msgstr ""
+
+#: libexif/exif-tag.c:165
+msgid "Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:166
+msgid ""
+"Indicates the latitude of the destination point. The latitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If latitude is expressed as degrees, minutes and seconds, a "
+"typical format would be dd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be dd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:173
+msgid "Reference for Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:174
+msgid ""
+"Indicates whether the longitude of the destination point is east or west "
+"longitude. ASCII 'E' indicates east longitude, and 'W' is west longitude."
+msgstr ""
+
+#: libexif/exif-tag.c:177
+msgid "Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:178
+msgid ""
+"Indicates the longitude of the destination point. The longitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If longitude is expressed as degrees, minutes and seconds, a "
+"typical format would be ddd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be ddd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:186
+msgid "Reference for Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:187
+msgid ""
+"Indicates the reference used for giving the bearing to the destination "
+"point. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:190
+msgid "Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:191
+msgid ""
+"Indicates the bearing to the destination point. The range of values is from "
+"0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:193
+msgid "Reference for Distance to Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:194
+msgid ""
+"Indicates the unit used to express the distance to the destination point. "
+"'K', 'M' and 'N' represent kilometers, miles and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:197
+msgid "Distance to Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:198
+msgid "Indicates the distance to the destination point."
+msgstr ""
+
+#: libexif/exif-tag.c:199
+msgid "Name of GPS Processing Method"
+msgstr ""
+
+#: libexif/exif-tag.c:200
+msgid ""
+"A character string recording the name of the method used for location "
+"finding. The first byte indicates the character code used, and this is "
+"followed by the name of the method. Since the Type is not ASCII, NULL "
+"termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:205
+msgid "Name of GPS Area"
+msgstr ""
+
+#: libexif/exif-tag.c:206
+msgid ""
+"A character string recording the name of the GPS area. The first byte "
+"indicates the character code used, and this is followed by the name of the "
+"GPS area. Since the Type is not ASCII, NULL termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:210
+msgid "GPS Date"
+msgstr ""
+
+#: libexif/exif-tag.c:211
+msgid ""
+"A character string recording date and time information relative to UTC "
+"(Coordinated Universal Time). The format is \"YYYY:MM:DD\". The length of "
+"the string is 11 bytes including NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:215
+msgid "GPS Differential Correction"
+msgstr ""
+
+#: libexif/exif-tag.c:216
+msgid ""
+"Indicates whether differential correction is applied to the GPS receiver."
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "New Subfile Type"
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "A general indication of the kind of data contained in this subfile."
+msgstr ""
+
+#: libexif/exif-tag.c:222
+msgid "Image Width"
+msgstr ""
+
+#: libexif/exif-tag.c:223
+msgid ""
+"The number of columns of image data, equal to the number of pixels per row. "
+"In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:227
+msgid "Image Length"
+msgstr ""
+
+#: libexif/exif-tag.c:228
+msgid ""
+"The number of rows of image data. In JPEG compressed data a JPEG marker is "
+"used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:231
+msgid "Bits per Sample"
+msgstr ""
+
+#: libexif/exif-tag.c:232
+msgid ""
+"The number of bits per image component. In this standard each component of "
+"the image is 8 bits, so the value for this tag is 8. See also "
+"<SamplesPerPixel>. In JPEG compressed data a JPEG marker is used instead of "
+"this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:237
+msgid "Compression"
+msgstr ""
+
+#: libexif/exif-tag.c:238
+msgid ""
+"The compression scheme used for the image data. When a primary image is JPEG "
+"compressed, this designation is not necessary and is omitted. When "
+"thumbnails use JPEG compression, this tag value is set to 6."
+msgstr ""
+
+#: libexif/exif-tag.c:244
+msgid "Photometric Interpretation"
+msgstr ""
+
+#: libexif/exif-tag.c:245
+msgid ""
+"The pixel composition. In JPEG compressed data a JPEG marker is used instead "
+"of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:249
+msgid "Fill Order"
+msgstr ""
+
+#: libexif/exif-tag.c:251
+msgid "Document Name"
+msgstr ""
+
+#: libexif/exif-tag.c:253
+msgid "Image Description"
+msgstr ""
+
+#: libexif/exif-tag.c:254
+msgid ""
+"A character string giving the title of the image. It may be a comment such "
+"as \"1988 company picnic\" or the like. Two-bytes character codes cannot be "
+"used. When a 2-bytes code is necessary, the Exif Private tag <UserComment> "
+"is to be used."
+msgstr ""
+
+#: libexif/exif-tag.c:260
+msgid "Manufacturer"
+msgstr ""
+
+#: libexif/exif-tag.c:261
+msgid ""
+"The manufacturer of the recording equipment. This is the manufacturer of the "
+"DSC, scanner, video digitizer or other equipment that generated the image. "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:267
+msgid "Model"
+msgstr ""
+
+#: libexif/exif-tag.c:268
+msgid ""
+"The model name or model number of the equipment. This is the model name or "
+"number of the DSC, scanner, video digitizer or other equipment that "
+"generated the image. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:273
+msgid "Strip Offsets"
+msgstr ""
+
+#: libexif/exif-tag.c:274
+msgid ""
+"For each strip, the byte offset of that strip. It is recommended that this "
+"be selected so the number of strip bytes does not exceed 64 Kbytes. With "
+"JPEG compressed data this designation is not needed and is omitted. See also "
+"<RowsPerStrip> and <StripByteCounts>."
+msgstr ""
+
+#: libexif/exif-tag.c:280
+msgid "Orientation"
+msgstr ""
+
+#: libexif/exif-tag.c:281
+msgid "The image orientation viewed in terms of rows and columns."
+msgstr ""
+
+#: libexif/exif-tag.c:284
+msgid "Samples per Pixel"
+msgstr ""
+
+#: libexif/exif-tag.c:285
+msgid ""
+"The number of components per pixel. Since this standard applies to RGB and "
+"YCbCr images, the value set for this tag is 3. In JPEG compressed data a "
+"JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:290
+msgid "Rows per Strip"
+msgstr ""
+
+#: libexif/exif-tag.c:291
+msgid ""
+"The number of rows per strip. This is the number of rows in the image of one "
+"strip when an image is divided into strips. With JPEG compressed data this "
+"designation is not needed and is omitted. See also <StripOffsets> and "
+"<StripByteCounts>."
+msgstr ""
+
+#: libexif/exif-tag.c:297
+msgid "Strip Byte Count"
+msgstr ""
+
+#: libexif/exif-tag.c:298
+msgid ""
+"The total number of bytes in each strip. With JPEG compressed data this "
+"designation is not needed and is omitted."
+msgstr ""
+
+#: libexif/exif-tag.c:301
+msgid "X-Resolution"
+msgstr ""
+
+#: libexif/exif-tag.c:302
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageWidth> direction. "
+"When the image resolution is unknown, 72 [dpi] is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:306
+msgid "Y-Resolution"
+msgstr ""
+
+#: libexif/exif-tag.c:307
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageLength> direction. "
+"The same value as <XResolution> is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:311
+msgid "Planar Configuration"
+msgstr ""
+
+#: libexif/exif-tag.c:312
+msgid ""
+"Indicates whether pixel components are recorded in a chunky or planar "
+"format. In JPEG compressed files a JPEG marker is used instead of this tag. "
+"If this field does not exist, the TIFF default of 1 (chunky) is assumed."
+msgstr ""
+
+#: libexif/exif-tag.c:317
+msgid "Resolution Unit"
+msgstr ""
+
+#: libexif/exif-tag.c:318
+msgid ""
+"The unit for measuring <XResolution> and <YResolution>. The same unit is "
+"used for both <XResolution> and <YResolution>. If the image resolution is "
+"unknown, 2 (inches) is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:323
+msgid "Transfer Function"
+msgstr ""
+
+#: libexif/exif-tag.c:324
+msgid ""
+"A transfer function for the image, described in tabular style. Normally this "
+"tag is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:328
+msgid "Software"
+msgstr ""
+
+#: libexif/exif-tag.c:329
+msgid ""
+"This tag records the name and version of the software or firmware of the "
+"camera or image input device used to generate the image. The detailed format "
+"is not specified, but it is recommended that the example shown below be "
+"followed. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:336
+msgid "Date and Time"
+msgstr ""
+
+#: libexif/exif-tag.c:337
+msgid ""
+"The date and time of image creation. In this standard (EXIF-2.1) it is the "
+"date and time the file was changed."
+msgstr ""
+
+#: libexif/exif-tag.c:340
+msgid "Artist"
+msgstr ""
+
+#: libexif/exif-tag.c:341
+msgid ""
+"This tag records the name of the camera owner, photographer or image "
+"creator. The detailed format is not specified, but it is recommended that "
+"the information be written as in the example below for ease of "
+"Interoperability. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:347 libexif/pentax/mnote-pentax-tag.c:113
+msgid "White Point"
+msgstr ""
+
+#: libexif/exif-tag.c:348
+msgid ""
+"The chromaticity of the white point of the image. Normally this tag is not "
+"necessary, since color space is specified in the color space information tag "
+"(<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:353
+msgid "Primary Chromaticities"
+msgstr ""
+
+#: libexif/exif-tag.c:354
+msgid ""
+"The chromaticity of the three primary colors of the image. Normally this tag "
+"is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:359
+msgid "Defined by Adobe Corporation to enable TIFF Trees within a TIFF file."
+msgstr ""
+
+#: libexif/exif-tag.c:362
+msgid "Transfer Range"
+msgstr ""
+
+#: libexif/exif-tag.c:366
+msgid "JPEG Interchange Format"
+msgstr ""
+
+#: libexif/exif-tag.c:367
+msgid ""
+"The offset to the start byte (SOI) of JPEG compressed thumbnail data. This "
+"is not used for primary image JPEG data."
+msgstr ""
+
+#: libexif/exif-tag.c:372
+msgid "JPEG Interchange Format Length"
+msgstr ""
+
+#: libexif/exif-tag.c:373
+msgid ""
+"The number of bytes of JPEG compressed thumbnail data. This is not used for "
+"primary image JPEG data. JPEG thumbnails are not divided but are recorded as "
+"a continuous JPEG bitstream from SOI to EOI. Appn and COM markers should not "
+"be recorded. Compressed thumbnails must be recorded in no more than 64 "
+"Kbytes, including all other data to be recorded in APP1."
+msgstr ""
+
+#: libexif/exif-tag.c:382
+msgid "YCbCr Coefficients"
+msgstr ""
+
+#: libexif/exif-tag.c:383
+msgid ""
+"The matrix coefficients for transformation from RGB to YCbCr image data. No "
+"default is given in TIFF; but here the value given in \"Color Space "
+"Guidelines\", is used as the default. The color space is declared in a color "
+"space information tag, with the default being the value that gives the "
+"optimal image characteristics Interoperability this condition."
+msgstr ""
+
+#: libexif/exif-tag.c:392
+msgid "YCbCr Sub-Sampling"
+msgstr ""
+
+#: libexif/exif-tag.c:393
+msgid ""
+"The sampling ratio of chrominance components in relation to the luminance "
+"component. In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:398
+msgid "YCbCr Positioning"
+msgstr ""
+
+#: libexif/exif-tag.c:399
+msgid ""
+"The position of chrominance components in relation to the luminance "
+"component. This field is designated only for JPEG compressed data or "
+"uncompressed YCbCr data. The TIFF default is 1 (centered); but when Y:Cb:Cr "
+"= 4:2:2 it is recommended in this standard that 2 (co-sited) be used to "
+"record data, in order to improve the image quality when viewed on TV "
+"systems. When this field does not exist, the reader shall assume the TIFF "
+"default. In the case of Y:Cb:Cr = 4:2:0, the TIFF default (centered) is "
+"recommended. If the reader does not have the capability of supporting both "
+"kinds of <YCbCrPositioning>, it shall follow the TIFF default regardless of "
+"the value in this field. It is preferable that readers be able to support "
+"both centered and co-sited positioning."
+msgstr ""
+
+#: libexif/exif-tag.c:414
+msgid "Reference Black/White"
+msgstr ""
+
+#: libexif/exif-tag.c:415
+msgid ""
+"The reference black point value and reference white point value. No defaults "
+"are given in TIFF, but the values below are given as defaults here. The "
+"color space is declared in a color space information tag, with the default "
+"being the value that gives the optimal image characteristics "
+"Interoperability these conditions."
+msgstr ""
+
+#: libexif/exif-tag.c:423
+msgid "XML Packet"
+msgstr ""
+
+#: libexif/exif-tag.c:423
+msgid "XMP Metadata"
+msgstr ""
+
+#: libexif/exif-tag.c:438 libexif/exif-tag.c:784
+msgid "CFA Pattern"
+msgstr ""
+
+#: libexif/exif-tag.c:439 libexif/exif-tag.c:785
+msgid ""
+"Indicates the color filter array (CFA) geometric pattern of the image sensor "
+"when a one-chip color area sensor is used. It does not apply to all sensing "
+"methods."
+msgstr ""
+
+#: libexif/exif-tag.c:443
+msgid "Battery Level"
+msgstr ""
+
+#: libexif/exif-tag.c:444
+msgid "Copyright"
+msgstr ""
+
+#: libexif/exif-tag.c:445
+msgid ""
+"Copyright information. In this standard the tag is used to indicate both the "
+"photographer and editor copyrights. It is the copyright notice of the person "
+"or organization claiming rights to the image. The Interoperability copyright "
+"statement including date and rights should be written in this field; e.g., "
+"\"Copyright, John Smith, 19xx. All rights reserved.\". In this standard the "
+"field records both the photographer and editor copyrights, with each "
+"recorded in a separate part of the statement. When there is a clear "
+"distinction between the photographer and editor copyrights, these are to be "
+"written in the order of photographer followed by editor copyright, separated "
+"by NULL (in this case, since the statement also ends with a NULL, there are "
+"two NULL codes) (see example 1). When only the photographer is given, it is "
+"terminated by one NULL code (see example 2). When only the editor copyright "
+"is given, the photographer copyright part consists of one space followed by "
+"a terminating NULL code, then the editor copyright is given (see example 3). "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:467
+msgid "Exposure time, given in seconds (sec)."
+msgstr ""
+
+#: libexif/exif-tag.c:469 libexif/pentax/mnote-pentax-tag.c:79
+msgid "F-Number"
+msgstr ""
+
+#: libexif/exif-tag.c:470
+msgid "The F number."
+msgstr ""
+
+#: libexif/exif-tag.c:475
+msgid "Image Resources Block"
+msgstr ""
+
+#: libexif/exif-tag.c:477
+msgid ""
+"A pointer to the Exif IFD. Interoperability, Exif IFD has the same structure "
+"as that of the IFD specified in TIFF. ordinarily, however, it does not "
+"contain image data as in the case of TIFF."
+msgstr ""
+
+#: libexif/exif-tag.c:485
+msgid "Exposure Program"
+msgstr ""
+
+#: libexif/exif-tag.c:486
+msgid ""
+"The class of the program used by the camera to set exposure when the picture "
+"is taken."
+msgstr ""
+
+#: libexif/exif-tag.c:490
+msgid "Spectral Sensitivity"
+msgstr ""
+
+#: libexif/exif-tag.c:491
+msgid ""
+"Indicates the spectral sensitivity of each channel of the camera used. The "
+"tag value is an ASCII string compatible with the standard developed by the "
+"ASTM Technical Committee."
+msgstr ""
+
+#: libexif/exif-tag.c:496
+msgid "GPS Info IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:497
+msgid ""
+"A pointer to the GPS Info IFD. The Interoperability structure of the GPS "
+"Info IFD, like that of Exif IFD, has no image data."
+msgstr ""
+
+#: libexif/exif-tag.c:503
+msgid "ISO Speed Ratings"
+msgstr ""
+
+#: libexif/exif-tag.c:504
+msgid ""
+"Indicates the ISO Speed and ISO Latitude of the camera or input device as "
+"specified in ISO 12232."
+msgstr ""
+
+#: libexif/exif-tag.c:507
+msgid "Opto-Electronic Conversion Function"
+msgstr ""
+
+#: libexif/exif-tag.c:508
+msgid ""
+"Indicates the Opto-Electronic Conversion Function (OECF) specified in ISO "
+"14524. <OECF> is the relationship between the camera optical input and the "
+"image values."
+msgstr ""
+
+#: libexif/exif-tag.c:513
+msgid "Time Zone Offset"
+msgstr ""
+
+#: libexif/exif-tag.c:514
+msgid "Encodes time zone of camera clock relative to GMT."
+msgstr ""
+
+#: libexif/exif-tag.c:515
+msgid "Exif Version"
+msgstr ""
+
+#: libexif/exif-tag.c:516
+msgid ""
+"The version of this standard supported. Nonexistence of this field is taken "
+"to mean nonconformance to the standard."
+msgstr ""
+
+#: libexif/exif-tag.c:520
+msgid "Date and Time (Original)"
+msgstr ""
+
+#: libexif/exif-tag.c:521
+msgid ""
+"The date and time when the original image data was generated. For a digital "
+"still camera the date and time the picture was taken are recorded."
+msgstr ""
+
+#: libexif/exif-tag.c:526
+msgid "Date and Time (Digitized)"
+msgstr ""
+
+#: libexif/exif-tag.c:527
+msgid "The date and time when the image was stored as digital data."
+msgstr ""
+
+#: libexif/exif-tag.c:530
+msgid "Components Configuration"
+msgstr ""
+
+#: libexif/exif-tag.c:531
+msgid ""
+"Information specific to compressed data. The channels of each component are "
+"arranged in order from the 1st component to the 4th. For uncompressed data "
+"the data arrangement is given in the <PhotometricInterpretation> tag. "
+"However, since <PhotometricInterpretation> can only express the order of Y, "
+"Cb and Cr, this tag is provided for cases when compressed data uses "
+"components other than Y, Cb, and Cr and to enable support of other sequences."
+msgstr ""
+
+#: libexif/exif-tag.c:541
+msgid "Compressed Bits per Pixel"
+msgstr ""
+
+#: libexif/exif-tag.c:542
+msgid ""
+"Information specific to compressed data. The compression mode used for a "
+"compressed image is indicated in unit bits per pixel."
+msgstr ""
+
+#: libexif/exif-tag.c:546 libexif/olympus/mnote-olympus-tag.c:123
+msgid "Shutter Speed"
+msgstr ""
+
+#: libexif/exif-tag.c:547
+msgid ""
+"Shutter speed. The unit is the APEX (Additive System of Photographic "
+"Exposure) setting."
+msgstr ""
+
+#: libexif/exif-tag.c:551
+msgid "The lens aperture. The unit is the APEX value."
+msgstr ""
+
+#: libexif/exif-tag.c:553
+msgid "Brightness"
+msgstr ""
+
+#: libexif/exif-tag.c:554
+msgid ""
+"The value of brightness. The unit is the APEX value. Ordinarily it is given "
+"in the range of -99.99 to 99.99."
+msgstr ""
+
+#: libexif/exif-tag.c:558
+msgid "Exposure Bias"
+msgstr ""
+
+#: libexif/exif-tag.c:559
+msgid ""
+"The exposure bias. The units is the APEX value. Ordinarily it is given in "
+"the range of -99.99 to 99.99."
+msgstr ""
+
+#: libexif/exif-tag.c:562
+msgid "Maximum Aperture Value"
+msgstr ""
+
+#: libexif/exif-tag.c:563
+msgid ""
+"The smallest F number of the lens. The unit is the APEX value. Ordinarily it "
+"is given in the range of 00.00 to 99.99, but it is not limited to this range."
+msgstr ""
+
+#: libexif/exif-tag.c:568
+msgid "Subject Distance"
+msgstr ""
+
+#: libexif/exif-tag.c:569
+msgid "The distance to the subject, given in meters."
+msgstr ""
+
+#: libexif/exif-tag.c:572
+msgid "The metering mode."
+msgstr ""
+
+#: libexif/exif-tag.c:574
+msgid "Light Source"
+msgstr ""
+
+#: libexif/exif-tag.c:575
+msgid "The kind of light source."
+msgstr ""
+
+#: libexif/exif-tag.c:578
+msgid ""
+"This tag is recorded when an image is taken using a strobe light (flash)."
+msgstr ""
+
+#: libexif/exif-tag.c:582
+msgid ""
+"The actual focal length of the lens, in mm. Conversion is not made to the "
+"focal length of a 35 mm film camera."
+msgstr ""
+
+#: libexif/exif-tag.c:585
+msgid "Subject Area"
+msgstr ""
+
+#: libexif/exif-tag.c:586
+msgid ""
+"This tag indicates the location and area of the main subject in the overall "
+"scene."
+msgstr ""
+
+#: libexif/exif-tag.c:590
+msgid "TIFF/EP Standard ID"
+msgstr ""
+
+#: libexif/exif-tag.c:591
+msgid "Maker Note"
+msgstr ""
+
+#: libexif/exif-tag.c:592
+msgid ""
+"A tag for manufacturers of Exif writers to record any desired information. "
+"The contents are up to the manufacturer."
+msgstr ""
+
+#: libexif/exif-tag.c:595
+msgid "User Comment"
+msgstr ""
+
+#: libexif/exif-tag.c:596
+msgid ""
+"A tag for Exif users to write keywords or comments on the image besides "
+"those in <ImageDescription>, and without the character code limitations of "
+"the <ImageDescription> tag. The character code used in the <UserComment> tag "
+"is identified based on an ID code in a fixed 8-byte area at the start of the "
+"tag data area. The unused portion of the area is padded with NULL (\"00.h"
+"\"). ID codes are assigned by means of registration. The designation method "
+"and references for each character code are defined in the specification. The "
+"value of CountN is determined based on the 8 bytes in the character code "
+"area and the number of bytes in the user comment part. Since the TYPE is not "
+"ASCII, NULL termination is not necessary. The ID code for the <UserComment> "
+"area may be a Defined code such as JIS or ASCII, or may be Undefined. The "
+"Undefined name is UndefinedText, and the ID code is filled with 8 bytes of "
+"all \"NULL\" (\"00.H\"). An Exif reader that reads the <UserComment> tag "
+"must have a function for determining the ID code. This function is not "
+"required in Exif readers that do not use the <UserComment> tag. When a "
+"<UserComment> area is set aside, it is recommended that the ID code be ASCII "
+"and that the following user comment part be filled with blank characters [20."
+"H]."
+msgstr ""
+
+#: libexif/exif-tag.c:619
+msgid "Sub-second Time"
+msgstr ""
+
+#: libexif/exif-tag.c:620
+msgid "A tag used to record fractions of seconds for the <DateTime> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:624
+msgid "Sub-second Time (Original)"
+msgstr ""
+
+#: libexif/exif-tag.c:625
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeOriginal> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:629
+msgid "Sub-second Time (Digitized)"
+msgstr ""
+
+#: libexif/exif-tag.c:630
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeDigitized> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:634
+msgid "XP Title"
+msgstr ""
+
+#: libexif/exif-tag.c:635
+msgid "A character string giving the title of the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:639
+msgid "XP Comment"
+msgstr ""
+
+#: libexif/exif-tag.c:640
+msgid ""
+"A character string containing a comment about the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:644
+msgid "XP Author"
+msgstr ""
+
+#: libexif/exif-tag.c:645
+msgid ""
+"A character string containing the name of the image creator, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:649
+msgid "XP Keywords"
+msgstr ""
+
+#: libexif/exif-tag.c:650
+msgid ""
+"A character string containing key words describing the image, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:654
+msgid "XP Subject"
+msgstr ""
+
+#: libexif/exif-tag.c:655
+msgid "A character string giving the image subject, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:659
+msgid "The FlashPix format version supported by a FPXR file."
+msgstr ""
+
+#: libexif/exif-tag.c:661 libexif/pentax/mnote-pentax-tag.c:102
+msgid "Color Space"
+msgstr ""
+
+#: libexif/exif-tag.c:662
+msgid ""
+"The color space information tag is always recorded as the color space "
+"specifier. Normally sRGB (=1) is used to define the color space based on the "
+"PC monitor conditions and environment. If a color space other than sRGB is "
+"used, Uncalibrated (=FFFF.H) is set. Image data recorded as Uncalibrated can "
+"be treated as sRGB when it is converted to FlashPix."
+msgstr ""
+
+#: libexif/exif-tag.c:670
+msgid "Pixel X Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:671
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid width of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file."
+msgstr ""
+
+#: libexif/exif-tag.c:677
+msgid "Pixel Y Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:678
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid height of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file. Since data padding is unnecessary in the "
+"vertical direction, the number of lines recorded in this valid image height "
+"tag will in fact be the same as that recorded in the SOF."
+msgstr ""
+
+#: libexif/exif-tag.c:688
+msgid "Related Sound File"
+msgstr ""
+
+#: libexif/exif-tag.c:689
+msgid ""
+"This tag is used to record the name of an audio file related to the image "
+"data. The only relational information recorded here is the Exif audio file "
+"name and extension (an ASCII string consisting of 8 characters + '.' + 3 "
+"characters). The path is not recorded. Stipulations on audio and file naming "
+"conventions are defined in the specification. When using this tag, audio "
+"files must be recorded in conformance to the Exif audio format. Writers are "
+"also allowed to store the data such as Audio within APP2 as FlashPix "
+"extension stream data. The mapping of Exif image files and audio files is "
+"done in any of three ways, [1], [2] and [3]. If multiple files are mapped to "
+"one file as in [2] or [3], the above format is used to record just one audio "
+"file name. If there are multiple audio files, the first recorded file is "
+"given. In the case of [3], for example, for the Exif image file \"DSC00001."
+"JPG\" only  \"SND00001.WAV\" is given as the related Exif audio file. When "
+"there are three Exif audio files \"SND00001.WAV\", \"SND00002.WAV\" and "
+"\"SND00003.WAV\", the Exif image file name for each of them, \"DSC00001.JPG"
+"\", is indicated. By combining multiple relational information, a variety of "
+"playback possibilities can be supported. The method of using relational "
+"information is left to the implementation on the playback side. Since this "
+"information is an ASCII character string, it is terminated by NULL. When "
+"this tag is used to map audio files, the relation of the audio file to image "
+"data must also be indicated on the audio file end."
+msgstr ""
+
+#: libexif/exif-tag.c:719
+msgid "Interoperability IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:720
+msgid ""
+"Interoperability IFD is composed of tags which stores the information to "
+"ensure the Interoperability and pointed by the following tag located in Exif "
+"IFD. The Interoperability structure of Interoperability IFD is the same as "
+"TIFF defined IFD structure but does not contain the image data "
+"characteristically compared with normal TIFF IFD."
+msgstr ""
+
+#: libexif/exif-tag.c:729
+msgid "Flash Energy"
+msgstr ""
+
+#: libexif/exif-tag.c:730
+msgid ""
+"Indicates the strobe energy at the time the image is captured, as measured "
+"in Beam Candle Power Seconds (BCPS)."
+msgstr ""
+
+#: libexif/exif-tag.c:734
+msgid "Spatial Frequency Response"
+msgstr ""
+
+#: libexif/exif-tag.c:735
+msgid ""
+"This tag records the camera or input device spatial frequency table and SFR "
+"values in the direction of image width, image height, and diagonal "
+"direction, as specified in ISO 12233."
+msgstr ""
+
+#: libexif/exif-tag.c:741
+msgid "Focal Plane X-Resolution"
+msgstr ""
+
+#: libexif/exif-tag.c:742
+msgid ""
+"Indicates the number of pixels in the image width (X) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+
+#: libexif/exif-tag.c:746
+msgid "Focal Plane Y-Resolution"
+msgstr ""
+
+#: libexif/exif-tag.c:747
+msgid ""
+"Indicates the number of pixels in the image height (V) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+
+#: libexif/exif-tag.c:751
+msgid "Focal Plane Resolution Unit"
+msgstr ""
+
+#: libexif/exif-tag.c:752
+msgid ""
+"Indicates the unit for measuring <FocalPlaneXResolution> and "
+"<FocalPlaneYResolution>. This value is the same as the <ResolutionUnit>."
+msgstr ""
+
+#: libexif/exif-tag.c:757
+msgid "Subject Location"
+msgstr ""
+
+#: libexif/exif-tag.c:758
+msgid ""
+"Indicates the location of the main subject in the scene. The value of this "
+"tag represents the pixel at the center of the main subject relative to the "
+"left edge, prior to rotation processing as per the <Rotation> tag. The first "
+"value indicates the X column number and the second indicates the Y row "
+"number."
+msgstr ""
+
+#: libexif/exif-tag.c:765
+msgid "Exposure Index"
+msgstr ""
+
+#: libexif/exif-tag.c:766
+msgid ""
+"Indicates the exposure index selected on the camera or input device at the "
+"time the image is captured."
+msgstr ""
+
+#: libexif/exif-tag.c:769
+msgid "Sensing Method"
+msgstr ""
+
+#: libexif/exif-tag.c:770
+msgid "Indicates the image sensor type on the camera or input device."
+msgstr ""
+
+#: libexif/exif-tag.c:773 libexif/fuji/mnote-fuji-tag.c:64
+msgid "File Source"
+msgstr ""
+
+#: libexif/exif-tag.c:774
+msgid ""
+"Indicates the image source. If a DSC recorded the image, the tag value of "
+"this tag always be set to 3, indicating that the image was recorded on a DSC."
+msgstr ""
+
+#: libexif/exif-tag.c:778
+msgid "Scene Type"
+msgstr ""
+
+#: libexif/exif-tag.c:779
+msgid ""
+"Indicates the type of scene. If a DSC recorded the image, this tag value "
+"must always be set to 1, indicating that the image was directly photographed."
+msgstr ""
+
+#: libexif/exif-tag.c:789
+msgid "Custom Rendered"
+msgstr ""
+
+#: libexif/exif-tag.c:790
+msgid ""
+"This tag indicates the use of special processing on image data, such as "
+"rendering geared to output. When special processing is performed, the reader "
+"is expected to disable or minimize any further processing."
+msgstr ""
+
+#: libexif/exif-tag.c:796
+msgid ""
+"This tag indicates the exposure mode set when the image was shot. In auto-"
+"bracketing mode, the camera shoots a series of frames of the same scene at "
+"different exposure settings."
+msgstr ""
+
+#: libexif/exif-tag.c:801
+msgid "This tag indicates the white balance mode set when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:805
+msgid "Digital Zoom Ratio"
+msgstr ""
+
+#: libexif/exif-tag.c:806
+msgid ""
+"This tag indicates the digital zoom ratio when the image was shot. If the "
+"numerator of the recorded value is 0, this indicates that digital zoom was "
+"not used."
+msgstr ""
+
+#: libexif/exif-tag.c:811
+msgid "Focal Length in 35mm Film"
+msgstr ""
+
+#: libexif/exif-tag.c:812
+msgid ""
+"This tag indicates the equivalent focal length assuming a 35mm film camera, "
+"in mm. A value of 0 means the focal length is unknown. Note that this tag "
+"differs from the FocalLength tag."
+msgstr ""
+
+#: libexif/exif-tag.c:818
+msgid "Scene Capture Type"
+msgstr ""
+
+#: libexif/exif-tag.c:819
+msgid ""
+"This tag indicates the type of scene that was shot. It can also be used to "
+"record the mode in which the image was shot. Note that this differs from the "
+"scene type <SceneType> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:824
+msgid "Gain Control"
+msgstr ""
+
+#: libexif/exif-tag.c:825
+msgid "This tag indicates the degree of overall image gain adjustment."
+msgstr ""
+
+#: libexif/exif-tag.c:829
+msgid ""
+"This tag indicates the direction of contrast processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:833
+msgid ""
+"This tag indicates the direction of saturation processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:837
+msgid ""
+"This tag indicates the direction of sharpness processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:841
+msgid "Device Setting Description"
+msgstr ""
+
+#: libexif/exif-tag.c:842
+msgid ""
+"This tag indicates information on the picture-taking conditions of a "
+"particular camera model. The tag is used only to indicate the picture-taking "
+"conditions in the reader."
+msgstr ""
+
+#: libexif/exif-tag.c:848
+msgid "Subject Distance Range"
+msgstr ""
+
+#: libexif/exif-tag.c:849
+msgid "This tag indicates the distance to the subject."
+msgstr ""
+
+#: libexif/exif-tag.c:851
+msgid "Image Unique ID"
+msgstr ""
+
+#: libexif/exif-tag.c:852
+msgid ""
+"This tag indicates an identifier assigned uniquely to each image. It is "
+"recorded as an ASCII string equivalent to hexadecimal notation and 128-bit "
+"fixed length."
+msgstr ""
+
+#: libexif/exif-tag.c:857
+msgid "Gamma"
+msgstr ""
+
+#: libexif/exif-tag.c:858
+msgid "Indicates the value of coefficient gamma."
+msgstr ""
+
+#: libexif/exif-tag.c:860
+msgid "PRINT Image Matching"
+msgstr ""
+
+#: libexif/exif-tag.c:861
+msgid "Related to Epson's PRINT Image Matching technology"
+msgstr ""
+
+#: libexif/exif-tag.c:863
+msgid "Padding"
+msgstr ""
+
+#: libexif/exif-tag.c:864
+msgid ""
+"This tag reserves space that can be reclaimed later when additional metadata "
+"are added. New metadata can be written in place by replacing this tag with a "
+"smaller data element and using the reclaimed space to store the new or "
+"expanded metadata tags."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:62
+msgid "Softest"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:66
+msgid "Hardest"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:67 libexif/fuji/mnote-fuji-entry.c:96
+msgid "Medium soft"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:68 libexif/fuji/mnote-fuji-entry.c:94
+msgid "Medium hard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:69 libexif/fuji/mnote-fuji-entry.c:90
+#: libexif/fuji/mnote-fuji-entry.c:98 libexif/fuji/mnote-fuji-entry.c:182
+msgid "Film simulation mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:79
+msgid "Incandescent"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:85
+msgid "Medium high"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:87
+msgid "Medium low"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:88 libexif/fuji/mnote-fuji-entry.c:97
+msgid "Original"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:124 libexif/pentax/mnote-pentax-entry.c:164
+#: libexif/pentax/mnote-pentax-entry.c:299
+msgid "Program AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:125
+msgid "Natural photo"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:126
+msgid "Vibration reduction"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:127
+msgid "Sunset"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:128 libexif/pentax/mnote-pentax-entry.c:181
+msgid "Museum"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:129
+msgid "Party"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:130
+msgid "Flower"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:131 libexif/pentax/mnote-pentax-entry.c:176
+msgid "Text"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:132
+msgid "NP & flash"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:137
+msgid "Aperture priority AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:138
+msgid "Shutter priority AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:146
+msgid "F-Standard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:147
+msgid "F-Chrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:148
+msgid "F-B&W"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:151
+msgid "No blur"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:152
+msgid "Blur warning"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:155
+msgid "Focus good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:156
+msgid "Out of focus"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:159
+msgid "AE good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:160
+msgid "Over exposed"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:164
+msgid "Wide"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:167
+msgid "F0/Standard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:168
+msgid "F1/Studio portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:169
+msgid "F1a/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:170
+msgid "F1b/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:171
+msgid "F1c/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:172
+msgid "F2/Fujichrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:173
+msgid "F3/Studio portrait Ex"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:174
+msgid "F4/Velvia"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:177
+msgid "Auto (100-400%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:179
+msgid "Standard (100%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:180
+msgid "Wide1 (230%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:181
+msgid "Wide2 (400%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:263
+#, c-format
+msgid "%2.2f mm"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:298 libexif/pentax/mnote-pentax-entry.c:399
+#: libexif/pentax/mnote-pentax-entry.c:451
+#, c-format
+msgid "%i bytes unknown data"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:36
+msgid "Maker Note Version"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:37
+msgid "This number is unique and based on the date of manufacture."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:41
+msgid "Chromaticity Saturation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:44
+msgid "Flash Firing Strength Compensation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:46
+msgid "Focusing Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:47
+msgid "Focus Point"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:48
+msgid "Slow Synchro Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:49 libexif/pentax/mnote-pentax-tag.c:72
+msgid "Picture Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:50
+msgid "Continuous Taking"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:51
+msgid "Continuous Sequence Number"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:52
+msgid "FinePix Color"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:53
+msgid "Blur Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:54
+msgid "Auto Focus Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:55
+msgid "Auto Exposure Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:56
+msgid "Dynamic Range"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:57
+msgid "Film Simulation Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:58
+msgid "Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:59
+msgid "Development Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:60
+msgid "Minimum Focal Length"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:61
+msgid "Maximum Focal Length"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:62
+msgid "Maximum Aperture at Minimum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:63
+msgid "Maximum Aperture at Maximum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:65
+msgid "Order Number"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:66 libexif/pentax/mnote-pentax-tag.c:98
+msgid "Frame Number"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:49
+#, c-format
+msgid "Invalid format '%s', expected '%s' or '%s'."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:89
+msgid "AF non D lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:91
+msgid "AF-D or AF-S lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:92
+msgid "AF-D G lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:93
+msgid "AF-D VR lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:94
+msgid "AF-D G VR lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:98
+msgid "Flash unit unknown"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:99
+msgid "Flash is external"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:100
+msgid "Flash is on camera"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:103
+msgid "VGA basic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:104
+msgid "VGA normal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:105
+msgid "VGA fine"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:106
+msgid "SXGA basic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:107
+msgid "SXGA normal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:108
+msgid "SXGA fine"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:109
+msgid "2 Mpixel basic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:110
+msgid "2 Mpixel normal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:111
+msgid "2 Mpixel fine"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:114
+msgid "Color"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:119
+msgid "Bright+"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:120
+msgid "Bright-"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:121
+msgid "Contrast+"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:122
+msgid "Contrast-"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:125
+msgid "ISO 80"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:126
+msgid "ISO 160"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:127
+msgid "ISO 320"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:128
+#: libexif/olympus/mnote-olympus-entry.c:246
+msgid "ISO 100"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:132
+msgid "Preset"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:134
+msgid "Incandescence"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:135
+msgid "Fluorescence"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:137
+msgid "SpeedLight"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:140
+msgid "No fisheye"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:141
+msgid "Fisheye on"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:144
+msgid "Normal, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:145
+msgid "Normal, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:146
+msgid "Normal, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:147
+msgid "Normal, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:148
+msgid "Normal, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:149
+msgid "Normal, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:150
+msgid "Normal, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:151
+msgid "Normal, standard"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:152
+msgid "Fine, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:153
+msgid "Fine, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:154
+msgid "Fine, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:155
+msgid "Fine, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:156
+msgid "Fine, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:157
+msgid "Fine, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:158
+msgid "Fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:159
+msgid "Super fine, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:160
+msgid "Super fine, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:161
+msgid "Super fine, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:162
+msgid "Super fine, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:163
+msgid "Super fine, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:164
+msgid "Super fine, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:165
+msgid "Super fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:166
+msgid "Super fine, high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:169
+#: libexif/olympus/mnote-olympus-entry.c:174
+#: libexif/olympus/mnote-olympus-entry.c:208
+#: libexif/olympus/mnote-olympus-entry.c:217
+#: libexif/olympus/mnote-olympus-entry.c:240
+msgid "No"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:180
+msgid "On (Preset)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:185
+msgid "Fill"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:192
+msgid "Internal + external"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:221
+msgid "Interlaced"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:222
+msgid "Progressive"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:228
+#: libexif/pentax/mnote-pentax-entry.c:85
+#: libexif/pentax/mnote-pentax-entry.c:139
+msgid "Best"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:229
+msgid "Adjust exposure"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:232
+msgid "Spot focus"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:233
+msgid "Normal focus"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:236
+msgid "Record while down"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:237
+msgid "Press start, press stop"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:245
+msgid "ISO 50"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:247
+msgid "ISO 200"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:248
+msgid "ISO 400"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:252
+#: libexif/pentax/mnote-pentax-entry.c:168
+msgid "Sport"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:253
+msgid "TV"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:255
+msgid "User 1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:256
+msgid "User 2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:257
+msgid "Lamp"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:260
+msgid "5 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:261
+msgid "10 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:262
+msgid "15 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:263
+msgid "20 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:375
+#, c-format
+msgid "Red Correction %f, blue Correction %f"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:383
+#, c-format
+msgid "%2.2f meters"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:385
+msgid "No manual focus selection"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:411
+msgid "AF position: center"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:412
+msgid "AF position: top"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:413
+msgid "AF position: bottom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:414
+msgid "AF position: left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:415
+msgid "AF position: right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:416
+msgid "AF position: upper-left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:417
+msgid "AF position: upper-right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:418
+msgid "AF position: lower-left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:419
+msgid "AF position: lower-right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:420
+msgid "AF position: far left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:421
+msgid "AF position: far right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:422
+msgid "Unknown AF position"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:503
+#, c-format
+msgid "Internal error (unknown value %hi)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:441
+#: libexif/olympus/mnote-olympus-entry.c:511
+#, c-format
+msgid "Unknown value %hi"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:536
+#: libexif/olympus/mnote-olympus-entry.c:556
+#, c-format
+msgid "Unknown %hu"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:553
+msgid "2 sec."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:592
+msgid "Fast"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:696
+msgid "Automatic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:726
+#, c-format
+msgid "Manual: %liK"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:729
+msgid "Manual: unknown"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:735
+msgid "One-touch"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:791
+#: libexif/olympus/mnote-olympus-entry.c:801
+msgid "Infinite"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:809
+#, c-format
+msgid "%i bytes unknown data: "
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:53
+msgid "ISO Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:39
+msgid "Color Mode (?)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:42
+msgid "Image Sharpening"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:44
+msgid "Flash Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:46
+msgid "White Balance Fine Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:47
+msgid "White Balance RB"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:49
+msgid "ISO Selection"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Preview Image IFD"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Offset of the preview image directory (IFD) inside the file."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:51
+msgid "Exposurediff ?"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:54
+msgid "Image Boundary"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:56
+msgid "Flash Exposure Bracket Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:57
+msgid "Exposure Bracket Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:58
+#: libexif/olympus/mnote-olympus-tag.c:96
+msgid "Image Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:59
+msgid "Tone Compensation"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:60
+msgid "Adapter"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:62
+msgid "Lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:63
+#: libexif/olympus/mnote-olympus-tag.c:135
+#: libexif/olympus/mnote-olympus-tag.c:185
+msgid "Manual Focus Distance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:65
+msgid "Flash Used"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:66
+msgid "AF Focus Position"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:67
+msgid "Bracketing"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:69
+msgid "Lens F Stops"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:70
+msgid "Contrast Curve"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:71
+#: libexif/olympus/mnote-olympus-tag.c:95
+#: libexif/pentax/mnote-pentax-tag.c:134
+msgid "Color Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:72
+msgid "Light Type"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:74
+msgid "Hue Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:76
+#: libexif/olympus/mnote-olympus-tag.c:163
+#: libexif/pentax/mnote-pentax-tag.c:108
+msgid "Noise Reduction"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:79
+msgid "Sensor Pixel Size"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Image Data Size"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Size of compressed image data in bytes."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:84
+msgid "Total Number of Pictures Taken"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:86
+msgid "Optimize Image"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:88
+msgid "Vari Program"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:89
+msgid "Capture Editor Data"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:90
+msgid "Capture Editor Version"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:97
+#: libexif/olympus/mnote-olympus-tag.c:183
+msgid "CCD Sensitivity"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:99
+msgid "Focus"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:102
+msgid "Converter"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:105
+msgid "Thumbnail Image"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:106
+msgid "Speed/Sequence/Panorama Direction"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:109
+msgid "Black & White Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:111
+msgid "Focal Plane Diagonal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:112
+msgid "Lens Distortion Parameters"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:114
+msgid "Info"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:115
+msgid "Camera ID"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:116
+msgid "Precapture Frames"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:117
+msgid "White Board"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:118
+msgid "One Touch White Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:119
+msgid "White Balance Bracket"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:120
+#: libexif/pentax/mnote-pentax-tag.c:123
+msgid "White Balance Bias"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:121
+msgid "Data Dump"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:124
+msgid "ISO Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:125
+msgid "Aperture Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:126
+msgid "Brightness Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:128
+msgid "Flash Device"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:130
+msgid "Sensor Temperature"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:131
+msgid "Lens Temperature"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:132
+msgid "Light Condition"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:136
+msgid "Zoom Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:137
+msgid "Focus Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:138
+msgid "Sharpness Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:139
+msgid "Flash Charge Level"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:140
+msgid "Color Matrix"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:141
+msgid "Black Level"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:142
+msgid "White Balance Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:143
+#: libexif/pentax/mnote-pentax-tag.c:87
+msgid "Red Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:144
+#: libexif/pentax/mnote-pentax-tag.c:86
+msgid "Blue Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:145
+msgid "Color Matrix Number"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:147
+msgid "Flash Exposure Comp"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:148
+msgid "Internal Flash Table"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:149
+msgid "External Flash G Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:150
+msgid "External Flash Bounce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:151
+msgid "External Flash Zoom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:152
+msgid "External Flash Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:153
+msgid "Contrast Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:154
+msgid "Sharpness Factor"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:155
+msgid "Color Control"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:156
+msgid "Olympus Image Width"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:157
+msgid "Olympus Image Height"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:158
+msgid "Scene Detect"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:159
+msgid "Compression Ratio"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:160
+msgid "Preview Image Valid"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:161
+msgid "AF Result"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:162
+msgid "CCD Scan Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:164
+msgid "Infinity Lens Step"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:165
+msgid "Near Lens Step"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:166
+msgid "Light Value Center"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:167
+msgid "Light Value Periphery"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:170
+msgid "Sequential Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:171
+msgid "Wide Range"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:172
+msgid "Color Adjustment Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:174
+msgid "Quick Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:176
+msgid "Voice Memo"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:177
+msgid "Record Shutter Release"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:178
+msgid "Flicker Reduce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:179
+msgid "Optical Zoom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:181
+msgid "Light Source Special"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:182
+msgid "Resaved"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:184
+msgid "Scene Select"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:186
+msgid "Sequence Shot Interval"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:189
+msgid "Epson Image Width"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:190
+msgid "Epson Image Height"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:191
+msgid "Epson Software Version"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:80
+#: libexif/pentax/mnote-pentax-entry.c:134
+msgid "Multi-exposure"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:83
+#: libexif/pentax/mnote-pentax-entry.c:137
+msgid "Good"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:84
+#: libexif/pentax/mnote-pentax-entry.c:138
+msgid "Better"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:92
+msgid "Flash on"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:140
+msgid "TIFF"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:150
+msgid "2560x1920 or 2304x1728"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:156
+msgid "2304x1728 or 2592x1944"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:158
+msgid "2816x2212 or 2816x2112"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:171
+msgid "Surf & snow"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:172
+msgid "Sunset or candlelight"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:173
+msgid "Autumn"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:178
+msgid "Self portrait"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:179
+msgid "Illustrations"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:180
+msgid "Digital filter"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:182
+msgid "Food"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:183
+msgid "Green mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:184
+msgid "Light pet"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:185
+msgid "Dark pet"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:186
+msgid "Medium pet"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:188
+#: libexif/pentax/mnote-pentax-entry.c:296
+msgid "Candlelight"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:189
+msgid "Natural skin tone"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:190
+msgid "Synchro sound record"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:191
+msgid "Frame composite"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:194
+msgid "Auto, did not fire"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:196
+msgid "Auto, did not fire, red-eye reduction"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:197
+msgid "Auto, fired"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:199
+msgid "Auto, fired, red-eye reduction"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:201
+msgid "On, wireless"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:202
+msgid "On, soft"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:203
+msgid "On, slow-sync"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:204
+msgid "On, slow-sync, red-eye reduction"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:205
+msgid "On, trailing-curtain sync"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:213
+msgid "AF-S"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:214
+msgid "AF-C"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:217
+msgid "Upper-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:218
+msgid "Top"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:219
+msgid "Upper-right"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:221
+msgid "Mid-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:223
+msgid "Mid-right"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:225
+msgid "Lower-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:226
+msgid "Bottom"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:227
+msgid "Lower-right"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:228
+msgid "Fixed center"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:232
+msgid "Multiple"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:234
+msgid "Top-center"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:240
+msgid "Bottom-center"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:257
+msgid "User selected"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:282
+msgid "3008x2008 or 3040x2024"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:293
+msgid "Digital filter?"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:374
+#: libexif/pentax/mnote-pentax-entry.c:383
+#, c-format
+msgid "Internal error (unknown value %i %i)"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:35 libexif/pentax/mnote-pentax-tag.c:63
+msgid "Capture Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:36 libexif/pentax/mnote-pentax-tag.c:70
+#: libexif/pentax/mnote-pentax-tag.c:129
+msgid "Quality Level"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:54
+msgid "ISO Speed"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:56
+msgid "Colors"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:59
+msgid "PrintIM Settings"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:60 libexif/pentax/mnote-pentax-tag.c:131
+msgid "Time Zone"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:61
+msgid "Daylight Savings"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:64
+msgid "Preview Size"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:65
+msgid "Preview Length"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:66 libexif/pentax/mnote-pentax-tag.c:122
+msgid "Preview Start"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:67
+msgid "Model Identification"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:68
+msgid "Date"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:69
+msgid "Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:75
+msgid "AF Point Selected"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:76
+msgid "Auto AF Point"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:77
+msgid "Focus Position"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:80
+msgid "ISO Number"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:83
+msgid "Auto Bracketing"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:85
+msgid "White Balance Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:93
+msgid "World Time Location"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:94
+msgid "Hometown City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:95
+msgid "Destination City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Hometown DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Home Daylight Savings Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination Daylight Savings Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:99
+msgid "Image Processing"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:100
+msgid "Picture Mode (2)"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:103
+msgid "Image Area Offset"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:104
+msgid "Raw Image Size"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:105
+msgid "Autofocus Points Used"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:107
+msgid "Camera Temperature"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:110
+msgid "Image Tone"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:111
+msgid "Shake Reduction Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:112
+msgid "Black Point"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:114
+msgid "AE Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:115
+msgid "Lens Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:116
+msgid "Flash Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:117
+msgid "Camera Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:118
+msgid "Battery Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:119
+msgid "Hometown City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:120
+msgid "Destination City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Object Distance"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Distance of photographed object in millimeters."
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:126
+msgid "Flash Distance"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:132
+msgid "Bestshot Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:133
+msgid "CCS ISO Sensitivity"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:135
+msgid "Enhancement"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:136
+msgid "Finer"
+msgstr ""
+
+#: test/nls/test-nls.c:20 test/nls/test-nls.c:23 test/nls/test-nls.c:24
+msgid "[DO_NOT_TRANSLATE_THIS_MARKER]"
+msgstr ""
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/nl.gmo b/framework/modules/c_LibExifModule/libexif-0.6.20/po/nl.gmo
new file mode 100644
index 0000000000000000000000000000000000000000..2b5e3c0efd81fe034792deab986acd2953cab8ca
Binary files /dev/null and b/framework/modules/c_LibExifModule/libexif-0.6.20/po/nl.gmo differ
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/nl.po b/framework/modules/c_LibExifModule/libexif-0.6.20/po/nl.po
new file mode 100644
index 0000000000000000000000000000000000000000..319cacee3f12880a04af4155ef0fabc39c98481e
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/nl.po
@@ -0,0 +1,6055 @@
+# translation of nl.po to Dutch
+# Copyright (C) 2009, 2010 Lutz Mueller and others
+# This file is distributed under the same license as the libexif package.
+#
+# Freek de Kruijf <f.de.kruijf@hetnet.nl>, 2007, 2008.
+# Erwin Poeze <erwin.poeze@gmail.com>, 2008, 2009, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: libexif-0.6.20-pre1\n"
+"Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-12-15 22:14-0800\n"
+"PO-Revision-Date: 2010-03-25 11:32+0100\n"
+"Last-Translator: Erwin Poeze <erwin.poeze@gmail.com>\n"
+"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.4.1\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: libexif/canon/mnote-canon-entry.c:40 libexif/fuji/mnote-fuji-entry.c:35
+#: libexif/olympus/mnote-olympus-entry.c:37
+#: libexif/pentax/mnote-pentax-entry.c:39
+#, c-format
+msgid "Invalid format '%s', expected '%s'."
+msgstr "Ongeldige structuur '%s', verwacht '%s'."
+
+#: libexif/canon/mnote-canon-entry.c:52 libexif/fuji/mnote-fuji-entry.c:47
+#: libexif/olympus/mnote-olympus-entry.c:62
+#: libexif/pentax/mnote-pentax-entry.c:51
+#, c-format
+msgid "Invalid number of components (%i, expected %i)."
+msgstr "Ongeldig aantal componenten (%i, verwacht %i)."
+
+#: libexif/canon/mnote-canon-entry.c:61
+#: libexif/olympus/mnote-olympus-entry.c:72
+#: libexif/pentax/mnote-pentax-entry.c:61
+#, c-format
+msgid "Invalid number of components (%i, expected %i or %i)."
+msgstr "Ongeldig aantal componenten (%i, verwacht %i of %i)."
+
+#: libexif/canon/mnote-canon-entry.c:76 libexif/canon/mnote-canon-entry.c:130
+#: libexif/canon/mnote-canon-entry.c:182 libexif/exif-entry.c:796
+#: libexif/olympus/mnote-olympus-entry.c:196
+#: libexif/olympus/mnote-olympus-tag.c:108
+#: libexif/pentax/mnote-pentax-entry.c:174
+#: libexif/pentax/mnote-pentax-entry.c:209
+#: libexif/pentax/mnote-pentax-entry.c:297
+msgid "Macro"
+msgstr "Macro"
+
+#: libexif/canon/mnote-canon-entry.c:77 libexif/canon/mnote-canon-entry.c:79
+#: libexif/canon/mnote-canon-entry.c:157 libexif/canon/mnote-canon-entry.c:160
+#: libexif/canon/mnote-canon-entry.c:163 libexif/exif-entry.c:674
+#: libexif/exif-entry.c:677 libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/exif-entry.c:745 libexif/fuji/mnote-fuji-entry.c:64
+#: libexif/olympus/mnote-olympus-entry.c:118
+#: libexif/olympus/mnote-olympus-entry.c:195
+#: libexif/olympus/mnote-olympus-entry.c:203
+#: libexif/olympus/mnote-olympus-entry.c:213
+#: libexif/olympus/mnote-olympus-entry.c:586
+#: libexif/pentax/mnote-pentax-entry.c:105
+#: libexif/pentax/mnote-pentax-entry.c:110
+#: libexif/pentax/mnote-pentax-entry.c:115
+#: libexif/pentax/mnote-pentax-entry.c:208
+msgid "Normal"
+msgstr "Normaal"
+
+#: libexif/canon/mnote-canon-entry.c:78
+msgid "Economy"
+msgstr "Zuinig"
+
+#: libexif/canon/mnote-canon-entry.c:80
+msgid "Fine"
+msgstr "Fijn"
+
+#: libexif/canon/mnote-canon-entry.c:81 libexif/fuji/mnote-fuji-entry.c:178
+#: libexif/pentax/mnote-pentax-entry.c:141
+msgid "RAW"
+msgstr "RAW"
+
+#: libexif/canon/mnote-canon-entry.c:82
+msgid "Superfine"
+msgstr "Zeer fijn"
+
+#: libexif/canon/mnote-canon-entry.c:83 libexif/canon/mnote-canon-entry.c:301
+#: libexif/canon/mnote-canon-entry.c:304 libexif/canon/mnote-canon-entry.c:312
+#: libexif/canon/mnote-canon-entry.c:345 libexif/canon/mnote-canon-entry.c:357
+#: libexif/canon/mnote-canon-entry.c:370 libexif/canon/mnote-canon-entry.c:372
+#: libexif/canon/mnote-canon-entry.c:574 libexif/canon/mnote-canon-entry.c:671
+#: libexif/fuji/mnote-fuji-entry.c:70 libexif/fuji/mnote-fuji-entry.c:103
+#: libexif/fuji/mnote-fuji-entry.c:107 libexif/fuji/mnote-fuji-entry.c:115
+#: libexif/fuji/mnote-fuji-entry.c:142
+#: libexif/olympus/mnote-olympus-entry.c:178
+#: libexif/olympus/mnote-olympus-entry.c:186
+#: libexif/olympus/mnote-olympus-entry.c:251
+#: libexif/olympus/mnote-olympus-entry.c:530
+#: libexif/olympus/mnote-olympus-entry.c:547
+#: libexif/pentax/mnote-pentax-entry.c:195
+#: libexif/pentax/mnote-pentax-entry.c:260
+msgid "Off"
+msgstr "Uitgeschakeld"
+
+#: libexif/canon/mnote-canon-entry.c:84 libexif/canon/mnote-canon-entry.c:167
+#: libexif/canon/mnote-canon-entry.c:180 libexif/canon/mnote-canon-entry.c:328
+#: libexif/canon/mnote-canon-entry.c:400 libexif/fuji/mnote-fuji-entry.c:73
+#: libexif/fuji/mnote-fuji-entry.c:101 libexif/fuji/mnote-fuji-entry.c:111
+#: libexif/fuji/mnote-fuji-entry.c:119
+#: libexif/olympus/mnote-olympus-entry.c:131
+#: libexif/olympus/mnote-olympus-entry.c:183
+#: libexif/olympus/mnote-olympus-entry.c:199
+#: libexif/olympus/mnote-olympus-entry.c:244
+#: libexif/pentax/mnote-pentax-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:88
+#: libexif/pentax/mnote-pentax-entry.c:91
+#: libexif/pentax/mnote-pentax-entry.c:97
+#: libexif/pentax/mnote-pentax-entry.c:131
+#: libexif/pentax/mnote-pentax-entry.c:229
+#: libexif/pentax/mnote-pentax-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:290
+msgid "Auto"
+msgstr "Automatisch"
+
+#: libexif/canon/mnote-canon-entry.c:85 libexif/canon/mnote-canon-entry.c:302
+#: libexif/canon/mnote-canon-entry.c:347 libexif/canon/mnote-canon-entry.c:361
+#: libexif/canon/mnote-canon-entry.c:371 libexif/fuji/mnote-fuji-entry.c:102
+#: libexif/fuji/mnote-fuji-entry.c:108 libexif/fuji/mnote-fuji-entry.c:116
+#: libexif/fuji/mnote-fuji-entry.c:143
+#: libexif/olympus/mnote-olympus-entry.c:179
+#: libexif/olympus/mnote-olympus-entry.c:533
+#: libexif/olympus/mnote-olympus-entry.c:550
+#: libexif/pentax/mnote-pentax-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:261
+msgid "On"
+msgstr "Ingeschakeld"
+
+#: libexif/canon/mnote-canon-entry.c:86 libexif/fuji/mnote-fuji-entry.c:104
+#: libexif/olympus/mnote-olympus-entry.c:184
+#: libexif/pentax/mnote-pentax-entry.c:94
+msgid "Red-eye reduction"
+msgstr "Rode-ogenreductie"
+
+#: libexif/canon/mnote-canon-entry.c:87
+msgid "Slow synchro"
+msgstr "Langzame synchronisatie"
+
+#: libexif/canon/mnote-canon-entry.c:88
+msgid "Auto, red-eye reduction"
+msgstr "Automatisch + rode-ogenreductie"
+
+#: libexif/canon/mnote-canon-entry.c:89
+#: libexif/pentax/mnote-pentax-entry.c:200
+msgid "On, red-eye reduction"
+msgstr "Ingeschakeld, rode-ogenreductie"
+
+#: libexif/canon/mnote-canon-entry.c:90
+msgid "External flash"
+msgstr "Externe flitser"
+
+#: libexif/canon/mnote-canon-entry.c:91 libexif/canon/mnote-canon-entry.c:101
+#: libexif/canon/mnote-canon-entry.c:294
+msgid "Single"
+msgstr "Enkel"
+
+#: libexif/canon/mnote-canon-entry.c:92 libexif/canon/mnote-canon-entry.c:102
+#: libexif/canon/mnote-canon-entry.c:295
+msgid "Continuous"
+msgstr "Continu"
+
+#: libexif/canon/mnote-canon-entry.c:93
+msgid "Movie"
+msgstr "Film"
+
+#: libexif/canon/mnote-canon-entry.c:94
+msgid "Continuous, speed priority"
+msgstr "Continu, prioriteit voor sluitersnelheid"
+
+#: libexif/canon/mnote-canon-entry.c:95
+msgid "Continuous, low"
+msgstr "Continu, laag"
+
+#: libexif/canon/mnote-canon-entry.c:96
+msgid "Continuous, high"
+msgstr "Continu, hoog"
+
+#: libexif/canon/mnote-canon-entry.c:97
+msgid "One-shot AF"
+msgstr "Directe AF"
+
+#: libexif/canon/mnote-canon-entry.c:98
+msgid "AI servo AF"
+msgstr "AI servo AF"
+
+#: libexif/canon/mnote-canon-entry.c:99
+msgid "AI focus AF"
+msgstr "AI focus AF"
+
+#: libexif/canon/mnote-canon-entry.c:100 libexif/canon/mnote-canon-entry.c:103
+msgid "Manual focus"
+msgstr "Handmatige scherpsteling"
+
+#: libexif/canon/mnote-canon-entry.c:104 libexif/canon/mnote-canon-entry.c:132
+#: libexif/canon/mnote-canon-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:212
+msgid "Pan focus"
+msgstr "Pan focus"
+
+#: libexif/canon/mnote-canon-entry.c:105
+msgid "JPEG"
+msgstr "JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:106
+msgid "CRW+THM"
+msgstr "CRW+THM"
+
+#: libexif/canon/mnote-canon-entry.c:107
+msgid "AVI+THM"
+msgstr "AVI+THM"
+
+#: libexif/canon/mnote-canon-entry.c:108
+msgid "TIF"
+msgstr "TIF"
+
+#: libexif/canon/mnote-canon-entry.c:109
+msgid "TIF+JPEG"
+msgstr "TIF+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:110
+msgid "CR2"
+msgstr "CR2"
+
+#: libexif/canon/mnote-canon-entry.c:111
+msgid "CR2+JPEG"
+msgstr "CR2+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:112
+msgid "Large"
+msgstr "Groot"
+
+#: libexif/canon/mnote-canon-entry.c:113
+msgid "Medium"
+msgstr "Middel"
+
+#: libexif/canon/mnote-canon-entry.c:114
+msgid "Small"
+msgstr "Klein"
+
+#: libexif/canon/mnote-canon-entry.c:115
+msgid "Medium 1"
+msgstr "Middel 1"
+
+#: libexif/canon/mnote-canon-entry.c:116
+msgid "Medium 2"
+msgstr "Middel 2 "
+
+#: libexif/canon/mnote-canon-entry.c:117
+msgid "Medium 3"
+msgstr "Middel 3"
+
+#: libexif/canon/mnote-canon-entry.c:118
+msgid "Postcard"
+msgstr "Briefkaart"
+
+#: libexif/canon/mnote-canon-entry.c:119
+msgid "Widescreen"
+msgstr "Breedbeeld"
+
+#: libexif/canon/mnote-canon-entry.c:120
+msgid "Full auto"
+msgstr "Volledig automatisch"
+
+#: libexif/canon/mnote-canon-entry.c:121 libexif/canon/mnote-canon-entry.c:179
+#: libexif/canon/mnote-canon-entry.c:201 libexif/canon/mnote-canon-entry.c:285
+#: libexif/canon/mnote-canon-entry.c:392 libexif/exif-entry.c:744
+#: libexif/fuji/mnote-fuji-entry.c:112
+#: libexif/olympus/mnote-olympus-entry.c:90
+#: libexif/olympus/mnote-olympus-entry.c:200
+#: libexif/pentax/mnote-pentax-entry.c:79
+#: libexif/pentax/mnote-pentax-entry.c:102
+#: libexif/pentax/mnote-pentax-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:165
+#: libexif/pentax/mnote-pentax-entry.c:211
+#: libexif/pentax/mnote-pentax-entry.c:250
+msgid "Manual"
+msgstr "Handmatig"
+
+#: libexif/canon/mnote-canon-entry.c:122 libexif/canon/mnote-canon-entry.c:430
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:755
+#: libexif/fuji/mnote-fuji-entry.c:121 libexif/pentax/mnote-pentax-entry.c:167
+#: libexif/pentax/mnote-pentax-entry.c:301
+msgid "Landscape"
+msgstr "Landschap"
+
+#: libexif/canon/mnote-canon-entry.c:123
+msgid "Fast shutter"
+msgstr "Snelle sluitertijd"
+
+#: libexif/canon/mnote-canon-entry.c:124
+msgid "Slow shutter"
+msgstr "Langzame sluitertijd"
+
+#: libexif/canon/mnote-canon-entry.c:125 libexif/fuji/mnote-fuji-entry.c:123
+#: libexif/olympus/mnote-olympus-entry.c:254
+msgid "Night"
+msgstr "Nacht"
+
+#: libexif/canon/mnote-canon-entry.c:126
+msgid "Grayscale"
+msgstr "Grijsschaal"
+
+#: libexif/canon/mnote-canon-entry.c:127 libexif/canon/mnote-canon-entry.c:308
+#: libexif/pentax/mnote-pentax-entry.c:128
+msgid "Sepia"
+msgstr "Sepia"
+
+#: libexif/canon/mnote-canon-entry.c:128 libexif/canon/mnote-canon-entry.c:429
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:753
+#: libexif/fuji/mnote-fuji-entry.c:120 libexif/pentax/mnote-pentax-entry.c:166
+#: libexif/pentax/mnote-pentax-entry.c:291
+#: libexif/pentax/mnote-pentax-entry.c:294
+#: libexif/pentax/mnote-pentax-entry.c:300
+msgid "Portrait"
+msgstr "Portret"
+
+#: libexif/canon/mnote-canon-entry.c:129 libexif/fuji/mnote-fuji-entry.c:122
+msgid "Sports"
+msgstr "Sport"
+
+#: libexif/canon/mnote-canon-entry.c:131 libexif/canon/mnote-canon-entry.c:309
+#: libexif/canon/mnote-canon-entry.c:335 libexif/canon/mnote-canon-entry.c:407
+#: libexif/fuji/mnote-fuji-entry.c:89 libexif/pentax/mnote-pentax-entry.c:127
+msgid "Black & white"
+msgstr "Zwart-wit"
+
+#: libexif/canon/mnote-canon-entry.c:133 libexif/canon/mnote-canon-entry.c:305
+msgid "Vivid"
+msgstr "Levendig"
+
+#: libexif/canon/mnote-canon-entry.c:134 libexif/canon/mnote-canon-entry.c:306
+#: libexif/canon/mnote-canon-entry.c:431
+msgid "Neutral"
+msgstr "Neutraal"
+
+#: libexif/canon/mnote-canon-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:93
+msgid "Flash off"
+msgstr "Flitser uitgeschakeld"
+
+#: libexif/canon/mnote-canon-entry.c:136
+msgid "Long shutter"
+msgstr "Lange sluitertijd"
+
+#: libexif/canon/mnote-canon-entry.c:137 libexif/canon/mnote-canon-entry.c:188
+#: libexif/olympus/mnote-olympus-entry.c:171
+msgid "Super macro"
+msgstr "Supermacro"
+
+#: libexif/canon/mnote-canon-entry.c:138
+msgid "Foliage"
+msgstr "Bebladering"
+
+#: libexif/canon/mnote-canon-entry.c:139
+msgid "Indoor"
+msgstr "Binnenshuis"
+
+#: libexif/canon/mnote-canon-entry.c:140 libexif/fuji/mnote-fuji-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:175
+msgid "Fireworks"
+msgstr "Vuurwerk"
+
+#: libexif/canon/mnote-canon-entry.c:141 libexif/fuji/mnote-fuji-entry.c:133
+msgid "Beach"
+msgstr "Strand"
+
+#: libexif/canon/mnote-canon-entry.c:142 libexif/canon/mnote-canon-entry.c:344
+#: libexif/canon/mnote-canon-entry.c:416 libexif/fuji/mnote-fuji-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:292
+#: libexif/pentax/mnote-pentax-entry.c:298
+msgid "Underwater"
+msgstr "Onderwater"
+
+#: libexif/canon/mnote-canon-entry.c:143 libexif/fuji/mnote-fuji-entry.c:134
+msgid "Snow"
+msgstr "Sneeuw"
+
+#: libexif/canon/mnote-canon-entry.c:144
+msgid "Kids & pets"
+msgstr "Kinderen & huisdieren"
+
+#: libexif/canon/mnote-canon-entry.c:145
+msgid "Night snapshot"
+msgstr "Nachtopname"
+
+#: libexif/canon/mnote-canon-entry.c:146
+msgid "Digital macro"
+msgstr "Digitale macro"
+
+#: libexif/canon/mnote-canon-entry.c:147
+msgid "My colors"
+msgstr "Mijn kleuren"
+
+#: libexif/canon/mnote-canon-entry.c:148
+msgid "Still image"
+msgstr "Stilstaand beeld"
+
+#: libexif/canon/mnote-canon-entry.c:149
+msgid "Color accent"
+msgstr "Kleuraccent"
+
+#: libexif/canon/mnote-canon-entry.c:150
+msgid "Color swap"
+msgstr "Kleuren omwisselen"
+
+#: libexif/canon/mnote-canon-entry.c:151
+msgid "Aquarium"
+msgstr "Aquarium"
+
+#: libexif/canon/mnote-canon-entry.c:152
+msgid "ISO 3200"
+msgstr "ISO 3200"
+
+#: libexif/canon/mnote-canon-entry.c:153 libexif/canon/mnote-canon-entry.c:348
+#: libexif/canon/mnote-canon-entry.c:365 libexif/canon/mnote-canon-entry.c:417
+#: libexif/olympus/mnote-olympus-entry.c:189
+#: libexif/olympus/mnote-olympus-entry.c:226
+#: libexif/olympus/mnote-olympus-entry.c:451
+#: libexif/pentax/mnote-pentax-entry.c:242
+msgid "None"
+msgstr "Geen"
+
+#: libexif/canon/mnote-canon-entry.c:154
+msgid "2x"
+msgstr "2x"
+
+#: libexif/canon/mnote-canon-entry.c:155
+msgid "4x"
+msgstr "4x"
+
+#: libexif/canon/mnote-canon-entry.c:156 libexif/exif-entry.c:702
+#: libexif/exif-entry.c:732
+msgid "Other"
+msgstr "Overige"
+
+#: libexif/canon/mnote-canon-entry.c:158 libexif/canon/mnote-canon-entry.c:161
+#: libexif/canon/mnote-canon-entry.c:164 libexif/canon/mnote-canon-entry.c:398
+#: libexif/fuji/mnote-fuji-entry.c:86 libexif/pentax/mnote-pentax-entry.c:112
+#: libexif/pentax/mnote-pentax-entry.c:117
+msgid "High"
+msgstr "Hoog"
+
+#: libexif/canon/mnote-canon-entry.c:159 libexif/canon/mnote-canon-entry.c:162
+#: libexif/canon/mnote-canon-entry.c:165 libexif/canon/mnote-canon-entry.c:396
+#: libexif/pentax/mnote-pentax-entry.c:111
+#: libexif/pentax/mnote-pentax-entry.c:116
+msgid "Low"
+msgstr "Laag"
+
+#: libexif/canon/mnote-canon-entry.c:166
+msgid "Auto high"
+msgstr "Automatisch hoog"
+
+#: libexif/canon/mnote-canon-entry.c:168
+msgid "50"
+msgstr "50"
+
+#: libexif/canon/mnote-canon-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:120
+#: libexif/pentax/mnote-pentax-entry.c:122
+msgid "100"
+msgstr "100"
+
+#: libexif/canon/mnote-canon-entry.c:170
+#: libexif/pentax/mnote-pentax-entry.c:121
+#: libexif/pentax/mnote-pentax-entry.c:123
+msgid "200"
+msgstr "200"
+
+#: libexif/canon/mnote-canon-entry.c:171
+msgid "400"
+msgstr "400"
+
+#: libexif/canon/mnote-canon-entry.c:172
+msgid "800"
+msgstr "800"
+
+#: libexif/canon/mnote-canon-entry.c:173
+msgid "Default"
+msgstr "Standaard"
+
+#: libexif/canon/mnote-canon-entry.c:174 libexif/exif-entry.c:698
+msgid "Spot"
+msgstr "Punt"
+
+#: libexif/canon/mnote-canon-entry.c:175 libexif/exif-entry.c:696
+msgid "Average"
+msgstr "Gemiddelde"
+
+#: libexif/canon/mnote-canon-entry.c:176
+msgid "Evaluative"
+msgstr "Met beoordeling"
+
+#: libexif/canon/mnote-canon-entry.c:177 libexif/exif-entry.c:701
+msgid "Partial"
+msgstr "Gedeeltelijk"
+
+#: libexif/canon/mnote-canon-entry.c:178 libexif/exif-entry.c:697
+msgid "Center-weighted average"
+msgstr "Middelpunt-gewogen gemiddelde"
+
+#: libexif/canon/mnote-canon-entry.c:181
+msgid "Not known"
+msgstr "Onbekend"
+
+#: libexif/canon/mnote-canon-entry.c:183
+msgid "Very close"
+msgstr "Zeer dichtbij"
+
+#: libexif/canon/mnote-canon-entry.c:184 libexif/exif-entry.c:797
+msgid "Close"
+msgstr "Dichtbij"
+
+#: libexif/canon/mnote-canon-entry.c:185
+msgid "Middle range"
+msgstr "Middenafstand"
+
+#: libexif/canon/mnote-canon-entry.c:186
+msgid "Far range"
+msgstr "Langeafstand"
+
+#: libexif/canon/mnote-canon-entry.c:189
+#: libexif/pentax/mnote-pentax-entry.c:210
+msgid "Infinity"
+msgstr "Oneindig"
+
+#: libexif/canon/mnote-canon-entry.c:190
+msgid "Manual AF point selection"
+msgstr "Handmatige keuze AF-punt"
+
+#: libexif/canon/mnote-canon-entry.c:191 libexif/canon/mnote-canon-entry.c:349
+msgid "None (MF)"
+msgstr "Geen (MF)"
+
+#: libexif/canon/mnote-canon-entry.c:192
+msgid "Auto-selected"
+msgstr "Auto-keuze"
+
+#: libexif/canon/mnote-canon-entry.c:193 libexif/canon/mnote-canon-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:224
+#: libexif/pentax/mnote-pentax-entry.c:238
+msgid "Right"
+msgstr "Rechts"
+
+#: libexif/canon/mnote-canon-entry.c:194 libexif/canon/mnote-canon-entry.c:351
+#: libexif/pentax/mnote-pentax-entry.c:222
+#: libexif/pentax/mnote-pentax-entry.c:237
+msgid "Center"
+msgstr "Midden"
+
+#: libexif/canon/mnote-canon-entry.c:195 libexif/canon/mnote-canon-entry.c:353
+#: libexif/pentax/mnote-pentax-entry.c:220
+#: libexif/pentax/mnote-pentax-entry.c:236
+msgid "Left"
+msgstr "Links"
+
+#: libexif/canon/mnote-canon-entry.c:196
+msgid "Auto AF point selection"
+msgstr "Automatische keuze AF-punt"
+
+#: libexif/canon/mnote-canon-entry.c:197
+msgid "Easy shooting"
+msgstr "Direct fotograferen"
+
+#: libexif/canon/mnote-canon-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:163
+msgid "Program"
+msgstr "Programma"
+
+#: libexif/canon/mnote-canon-entry.c:199
+msgid "Tv-priority"
+msgstr "Prioriteit bij tijdwaarde"
+
+#: libexif/canon/mnote-canon-entry.c:200
+msgid "Av-priority"
+msgstr "Prioriteit bij diafragmawaarde"
+
+#: libexif/canon/mnote-canon-entry.c:202
+msgid "A-DEP"
+msgstr "A-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:203
+msgid "M-DEP"
+msgstr "M-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:204
+msgid "Canon EF 50mm f/1.8"
+msgstr "Canon EF 50mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:205
+msgid "Canon EF 28mm f/2.8"
+msgstr "Canon EF 28mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:206
+msgid "Sigma UC Zoom 35-135mm f/4-5.6"
+msgstr "Sigma UC Zoom 35-135mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:207
+msgid "Tokina AF193-2 19-35mm f/3.5-4.5"
+msgstr "Tokina AF193-2 19-35mm f/3.5-4.5"
+
+#: libexif/canon/mnote-canon-entry.c:208
+msgid "Canon EF 100-300mm F5.6L"
+msgstr "Canon EF 100-300mm F5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:209
+msgid "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+msgstr "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:210
+msgid "Canon EF 35mm f/2"
+msgstr "Canon EF 35mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:211
+msgid "Canon EF 15mm f/2.8"
+msgstr "Canon EF 15mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:212
+msgid "Canon EF 80-200mm f/2.8L"
+msgstr "Canon EF 80-200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:213
+msgid "Tokina AT-X280AF PRO 28-80mm F2.8 Aspherical"
+msgstr "Tokina AT-X280AF PRO 28-80mm F2.8 ASPHERISCH"
+
+#: libexif/canon/mnote-canon-entry.c:214
+msgid "Cosina 100mm f/3.5 Macro AF"
+msgstr "Cosina 100mm f/3.5 Macro AF"
+
+#: libexif/canon/mnote-canon-entry.c:215
+msgid "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+msgstr "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:216
+msgid "Canon EF 50mm f/1.8 MkII"
+msgstr "Canon EF 50mm f/1.8 MkII"
+
+#: libexif/canon/mnote-canon-entry.c:217
+msgid "Tamron SP AF 300mm f/2.8 LD IF"
+msgstr "Tamron SP AF 300mm f/2.8 LD IF"
+
+#: libexif/canon/mnote-canon-entry.c:218
+msgid "Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+msgstr "Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+
+#: libexif/canon/mnote-canon-entry.c:219
+msgid "Canon EF 75-300mm f/4-5.6"
+msgstr "Canon EF 75-300mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:220
+msgid "Canon EF 28-80mm f/3.5-5.6"
+msgstr "Canon EF 28-80mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:221
+msgid "Canon EF 28-105mm f/4-5.6"
+msgstr "Canon EF 28-105mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:222
+msgid "Canon EF-S 18-55mm f/3.5-5.6"
+msgstr "Canon EF-S 18-55mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:223
+msgid "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+msgstr "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+
+#: libexif/canon/mnote-canon-entry.c:224
+msgid "Canon TS-E 24mm f/3.5L"
+msgstr "Canon TS-E 24mm f/3.5L"
+
+#: libexif/canon/mnote-canon-entry.c:225
+msgid "Canon TS-E 45mm f/2.8"
+msgstr "Canon TS-E 45mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:226
+msgid "Canon TS-E 90mm f/2.8"
+msgstr "Canon TS-E 90mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:227
+msgid "Canon EF 50mm f/1.0L"
+msgstr "Canon EF 50mm f/1.0L"
+
+#: libexif/canon/mnote-canon-entry.c:228
+msgid "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+msgstr "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+
+#: libexif/canon/mnote-canon-entry.c:229
+msgid "Canon EF 600mm f/4L IS"
+msgstr "Canon EF 600mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:230
+msgid "Canon EF 200mm f/1.8L"
+msgstr "Canon EF 200mm f/1.8L"
+
+#: libexif/canon/mnote-canon-entry.c:231
+msgid "Canon EF 300mm f/2.8L"
+msgstr "Canon EF 300mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:232
+msgid "Canon EF 85mm f/1.2L"
+msgstr "Canon EF 85mm f/1.2L"
+
+#: libexif/canon/mnote-canon-entry.c:233
+msgid "Canon EF 400mm f/2.8L"
+msgstr "Canon EF 400mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:234
+msgid "Canon EF 500mm f/4.5L"
+msgstr "Canon EF 500mm f/4.5L"
+
+#: libexif/canon/mnote-canon-entry.c:235
+msgid "Canon EF 300mm f/2.8L IS"
+msgstr "Canon EF 300mm f/2.8L IS"
+
+#: libexif/canon/mnote-canon-entry.c:236
+msgid "Canon EF 500mm f/4L IS"
+msgstr "Canon EF 500mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:237
+msgid "Canon EF 100mm f/2"
+msgstr "Canon EF 100mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:238
+msgid "Sigma 20mm EX f/1.8"
+msgstr "Sigma 20mm EX f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:239
+msgid "Canon EF 200mm f/2.8L"
+msgstr "Canon EF 200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:240
+msgid "Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+msgstr "Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:241
+msgid "Canon EF 35-350mm f/3.5-5.6L"
+msgstr "Canon EF 35-350mm f/3.5-5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:242
+msgid "Canon EF 85mm f/1.8 USM"
+msgstr "Canon EF 85mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:243
+msgid "Canon EF 28-105mm f/3.5-4.5 USM"
+msgstr "Canon EF 28-105mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:244
+msgid "Canon EF 20-35mm f/3.5-4.5 USM"
+msgstr "Canon EF 20-35mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:245
+msgid "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+msgstr "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:246
+msgid "Canon EF 70-200mm f/2.8 L"
+msgstr "Canon EF 70-200mm f/2.8 L"
+
+#: libexif/canon/mnote-canon-entry.c:247
+msgid "Canon EF 70-200mm f/2.8 L + x1.4"
+msgstr "Canon EF 70-200mm f/2.8 L + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:248
+msgid "Canon EF 70-200mm f/2.8 L + x2"
+msgstr "Canon EF 70-200mm f/2.8 L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:249
+msgid "Canon EF 28mm f/1.8 USM"
+msgstr "Canon EF 28mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:250
+msgid "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+msgstr "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+
+#: libexif/canon/mnote-canon-entry.c:251
+msgid "Canon EF 200mm f/2.8L II"
+msgstr "Canon EF 200mm f/2.8L II"
+
+#: libexif/canon/mnote-canon-entry.c:252
+msgid "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+msgstr "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+
+#: libexif/canon/mnote-canon-entry.c:253
+msgid "Canon EF 135mm f/2L"
+msgstr "Canon EF 135mm f/2L"
+
+#: libexif/canon/mnote-canon-entry.c:254
+msgid "Canon EF 24-85mm f/3.5-4.5 USM"
+msgstr "Canon EF 24-85mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:255
+msgid "Canon EF 300mm f/4L IS"
+msgstr "Canon EF 300mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:256
+msgid "Canon EF 28-135mm f/3.5-5.6 IS"
+msgstr "Canon EF 28-135mm f/3.5-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:257
+msgid "Canon EF 35mm f/1.4L"
+msgstr "Canon EF 35mm f/1.4L"
+
+#: libexif/canon/mnote-canon-entry.c:258
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:259
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+
+#: libexif/canon/mnote-canon-entry.c:260
+msgid "Canon EF 100-400mm f/4.5-5.6L IS"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS"
+
+#: libexif/canon/mnote-canon-entry.c:261
+msgid "Canon EF 400mm f/2.8L + x2"
+msgstr "Canon EF 400mm f/2.8L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:262
+msgid "Canon EF 70-200mm f/4L"
+msgstr "Canon EF 70-200mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:263
+msgid "Canon EF 100mm f/2.8 Macro"
+msgstr "Canon EF 100mm f/2.8 Macro"
+
+#: libexif/canon/mnote-canon-entry.c:264
+msgid "Canon EF 400mm f/4 DO IS"
+msgstr "Canon EF 400mm f/4 DO IS"
+
+#: libexif/canon/mnote-canon-entry.c:265
+msgid "Canon EF 75-300mm f/4-5.6 IS"
+msgstr "Canon EF 75-300mm f/4-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:266
+msgid "Canon EF 50mm f/1.4"
+msgstr "Canon EF 50mm f/1.4"
+
+#: libexif/canon/mnote-canon-entry.c:267
+msgid "Canon EF 28-80 f/3.5-5.6 USM IV"
+msgstr "Canon EF 28-80 f/3.5-5.6 USM IV"
+
+#: libexif/canon/mnote-canon-entry.c:268
+msgid "Canon EF 28-200mm f/3.5-5.6"
+msgstr "Canon EF 28-200mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:269
+msgid "Canon EF 90-300mm f/4.5-5.6"
+msgstr "Canon EF 90-300mm f/4.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:270
+msgid "Canon EF-S 18-55mm f/3.5-4.5 USM"
+msgstr "Canon EF-S 18-55mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:271
+msgid "Canon EF 70-200mm f/2.8L IS USM"
+msgstr "Canon EF 70-200mm f/2.8L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:272
+msgid "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+msgstr "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:273
+msgid "Canon EF 70-200mm f/2.8L IS USM + x2"
+msgstr "Canon EF 70-200mm f/2.8L IS USM + x2"
+
+#: libexif/canon/mnote-canon-entry.c:274
+msgid "Canon EF 16-35mm f/2.8L"
+msgstr "Canon EF 16-35mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:275
+msgid "Canon EF 24-70mm f/2.8L"
+msgstr "Canon EF 24-70mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:276
+msgid "Canon EF 17-40mm f/4L"
+msgstr "Canon EF 17-40mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:277
+msgid "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+msgstr "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:278
+msgid "Canon EF-S 17-85mm f4-5.6 IS USM"
+msgstr "Canon EF-S 17-85mm f4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:279
+msgid "Canon EF-S10-22mm F3.5-4.5 USM"
+msgstr "Canon EF-S10-22mm F3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:280
+msgid "Canon EF-S60mm F2.8 Macro USM"
+msgstr "Canon EF-S60mm F2.8 Macro USM"
+
+#: libexif/canon/mnote-canon-entry.c:281
+msgid "Canon EF 24-105mm f/4L IS"
+msgstr "Canon EF 24-105mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:282
+msgid "Canon EF 70-300mm F4-5.6 IS USM"
+msgstr "Canon EF 70-300mm F4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:283
+msgid "Canon EF 50mm F1.2L USM"
+msgstr "Canon EF 50mm F1.2L USM"
+
+#: libexif/canon/mnote-canon-entry.c:284
+msgid "Canon EF 70-200mm f/4L IS USM"
+msgstr "Canon EF 70-200mm f/4L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:286
+msgid "TTL"
+msgstr "TTL"
+
+#: libexif/canon/mnote-canon-entry.c:287
+msgid "A-TTL"
+msgstr "A-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:288
+msgid "E-TTL"
+msgstr "E-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:289
+msgid "FP sync enabled"
+msgstr "FP-synchronisatie ingesteld"
+
+#: libexif/canon/mnote-canon-entry.c:290
+msgid "2nd-curtain sync used"
+msgstr "2de gordijn synchronisatie gebruikt"
+
+#: libexif/canon/mnote-canon-entry.c:291
+msgid "FP sync used"
+msgstr "FP-synchronisatie gebruikt"
+
+#: libexif/canon/mnote-canon-entry.c:292
+#: libexif/olympus/mnote-olympus-entry.c:190
+msgid "Internal"
+msgstr "Intern"
+
+#: libexif/canon/mnote-canon-entry.c:293
+#: libexif/olympus/mnote-olympus-entry.c:191
+msgid "External"
+msgstr "Extern"
+
+#: libexif/canon/mnote-canon-entry.c:296
+msgid "Normal AE"
+msgstr "Normale AE"
+
+#: libexif/canon/mnote-canon-entry.c:297
+msgid "Exposure compensation"
+msgstr "Belichtingscompensatie"
+
+#: libexif/canon/mnote-canon-entry.c:298
+msgid "AE lock"
+msgstr "AE-blokkering"
+
+#: libexif/canon/mnote-canon-entry.c:299
+msgid "AE lock + exposure compensation"
+msgstr "AE-blokkering + belichtingscompensatie"
+
+#: libexif/canon/mnote-canon-entry.c:300
+msgid "No AE"
+msgstr "Geen AE"
+
+#: libexif/canon/mnote-canon-entry.c:303
+msgid "On, shot only"
+msgstr "Ingeschakeld, alleen opname"
+
+#: libexif/canon/mnote-canon-entry.c:307
+msgid "Smooth"
+msgstr "Geleidelijk"
+
+#: libexif/canon/mnote-canon-entry.c:310 libexif/canon/mnote-canon-entry.c:334
+#: libexif/canon/mnote-canon-entry.c:393 libexif/canon/mnote-canon-entry.c:406
+#: libexif/fuji/mnote-fuji-entry.c:81 libexif/pentax/mnote-pentax-entry.c:87
+msgid "Custom"
+msgstr "Aangepast"
+
+#: libexif/canon/mnote-canon-entry.c:311
+msgid "My color data"
+msgstr "Mijn kleurgegevens"
+
+#: libexif/canon/mnote-canon-entry.c:313 libexif/canon/mnote-canon-entry.c:375
+#: libexif/pentax/mnote-pentax-entry.c:126
+#: libexif/pentax/mnote-pentax-entry.c:145
+msgid "Full"
+msgstr "Volledig"
+
+#: libexif/canon/mnote-canon-entry.c:314 libexif/canon/mnote-canon-entry.c:374
+msgid "2/3"
+msgstr "2/3"
+
+#: libexif/canon/mnote-canon-entry.c:315 libexif/canon/mnote-canon-entry.c:373
+msgid "1/3"
+msgstr "1/3"
+
+#: libexif/canon/mnote-canon-entry.c:321
+msgid "Fixed"
+msgstr "Vast"
+
+#: libexif/canon/mnote-canon-entry.c:322 libexif/pentax/mnote-pentax-tag.c:44
+msgid "Zoom"
+msgstr "Zoom"
+
+#: libexif/canon/mnote-canon-entry.c:329
+msgid "Sunny"
+msgstr "Zonnig"
+
+#: libexif/canon/mnote-canon-entry.c:330 libexif/canon/mnote-canon-entry.c:402
+#: libexif/exif-entry.c:719 libexif/fuji/mnote-fuji-entry.c:75
+#: libexif/olympus/mnote-olympus-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:255
+msgid "Cloudy"
+msgstr "Bewolkt"
+
+#: libexif/canon/mnote-canon-entry.c:331 libexif/canon/mnote-canon-entry.c:403
+#: libexif/exif-entry.c:716 libexif/pentax/mnote-pentax-entry.c:100
+#: libexif/pentax/mnote-pentax-entry.c:249
+msgid "Tungsten"
+msgstr "Wolfram"
+
+#: libexif/canon/mnote-canon-entry.c:332 libexif/canon/mnote-canon-entry.c:404
+#: libexif/exif-entry.c:715 libexif/pentax/mnote-pentax-entry.c:101
+#: libexif/pentax/mnote-pentax-entry.c:248
+msgid "Fluorescent"
+msgstr "TL-licht"
+
+#: libexif/canon/mnote-canon-entry.c:333 libexif/canon/mnote-canon-entry.c:405
+#: libexif/exif-entry.c:717 libexif/exif-entry.c:759 libexif/exif-tag.c:577
+#: libexif/fuji/mnote-fuji-entry.c:80 libexif/pentax/mnote-pentax-entry.c:254
+msgid "Flash"
+msgstr "Flits"
+
+#: libexif/canon/mnote-canon-entry.c:336 libexif/canon/mnote-canon-entry.c:408
+#: libexif/exif-entry.c:720 libexif/pentax/mnote-pentax-entry.c:99
+#: libexif/pentax/mnote-pentax-entry.c:247
+msgid "Shade"
+msgstr "Schaduw"
+
+#: libexif/canon/mnote-canon-entry.c:337 libexif/canon/mnote-canon-entry.c:409
+msgid "Manual temperature (Kelvin)"
+msgstr "Handmatige temperatuur (Kelvin)"
+
+#: libexif/canon/mnote-canon-entry.c:338 libexif/canon/mnote-canon-entry.c:410
+msgid "PC set 1"
+msgstr "PC set 1"
+
+#: libexif/canon/mnote-canon-entry.c:339 libexif/canon/mnote-canon-entry.c:411
+msgid "PC set 2"
+msgstr "PC set 2"
+
+#: libexif/canon/mnote-canon-entry.c:340 libexif/canon/mnote-canon-entry.c:412
+msgid "PC set 3"
+msgstr "PC set 3"
+
+#: libexif/canon/mnote-canon-entry.c:341 libexif/canon/mnote-canon-entry.c:413
+#: libexif/exif-entry.c:721 libexif/fuji/mnote-fuji-entry.c:76
+#: libexif/pentax/mnote-pentax-entry.c:251
+msgid "Daylight fluorescent"
+msgstr "Daglicht TL"
+
+#: libexif/canon/mnote-canon-entry.c:342 libexif/canon/mnote-canon-entry.c:414
+msgid "Custom 1"
+msgstr "Aangepast 1"
+
+#: libexif/canon/mnote-canon-entry.c:343 libexif/canon/mnote-canon-entry.c:415
+msgid "Custom 2"
+msgstr "Aangepast 2"
+
+#: libexif/canon/mnote-canon-entry.c:346 libexif/exif-entry.c:672
+#: libexif/pentax/mnote-pentax-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:132
+#: libexif/pentax/mnote-pentax-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:295
+msgid "Night scene"
+msgstr "Nachtscène"
+
+#: libexif/canon/mnote-canon-entry.c:352
+msgid "Center-right"
+msgstr "Centraalgewogen"
+
+#: libexif/canon/mnote-canon-entry.c:354
+msgid "Left-right"
+msgstr "Links naar rechts"
+
+#: libexif/canon/mnote-canon-entry.c:355
+msgid "Left-center"
+msgstr "Links + Midden"
+
+#: libexif/canon/mnote-canon-entry.c:356
+msgid "All"
+msgstr "Alles"
+
+#: libexif/canon/mnote-canon-entry.c:358
+msgid "On (shot 1)"
+msgstr "Ingeschakeld (foto 1)"
+
+#: libexif/canon/mnote-canon-entry.c:359
+msgid "On (shot 2)"
+msgstr "Ingeschakeld (foto 2)"
+
+#: libexif/canon/mnote-canon-entry.c:360
+msgid "On (shot 3)"
+msgstr "Ingeschakeld (foto 3)"
+
+#: libexif/canon/mnote-canon-entry.c:362
+msgid "EOS high-end"
+msgstr "EOS high-end"
+
+#: libexif/canon/mnote-canon-entry.c:363
+msgid "Compact"
+msgstr "Compact"
+
+#: libexif/canon/mnote-canon-entry.c:364
+msgid "EOS mid-range"
+msgstr "EOS middengebied"
+
+#: libexif/canon/mnote-canon-entry.c:366
+msgid "Rotate 90 CW"
+msgstr "Draai 90 rechtsom"
+
+#: libexif/canon/mnote-canon-entry.c:367
+msgid "Rotate 180"
+msgstr "Draai 180"
+
+#: libexif/canon/mnote-canon-entry.c:368
+msgid "Rotate 270 CW"
+msgstr "Draai 270 rechtsom"
+
+#: libexif/canon/mnote-canon-entry.c:369
+msgid "Rotated by software"
+msgstr "Gedraaid door programma"
+
+#: libexif/canon/mnote-canon-entry.c:381
+#: libexif/olympus/mnote-olympus-entry.c:606
+msgid "Left to right"
+msgstr "Links naar rechts"
+
+#: libexif/canon/mnote-canon-entry.c:382
+#: libexif/olympus/mnote-olympus-entry.c:609
+msgid "Right to left"
+msgstr "Rechts naar links"
+
+#: libexif/canon/mnote-canon-entry.c:383
+#: libexif/olympus/mnote-olympus-entry.c:612
+msgid "Bottom to top"
+msgstr "Onderkant naar bovenkant"
+
+#: libexif/canon/mnote-canon-entry.c:384
+#: libexif/olympus/mnote-olympus-entry.c:615
+msgid "Top to bottom"
+msgstr "Bovenkant naar onderkant"
+
+#: libexif/canon/mnote-canon-entry.c:385
+msgid "2x2 matrix (clockwise)"
+msgstr "2x2 matrix (rechtsom)"
+
+#: libexif/canon/mnote-canon-entry.c:391 libexif/canon/mnote-canon-entry.c:397
+#: libexif/canon/mnote-canon-entry.c:418 libexif/canon/mnote-canon-entry.c:428
+#: libexif/exif-entry.c:671 libexif/fuji/mnote-fuji-entry.c:84
+#: libexif/fuji/mnote-fuji-entry.c:93 libexif/fuji/mnote-fuji-entry.c:163
+#: libexif/olympus/mnote-olympus-entry.c:227
+msgid "Standard"
+msgstr "Standaard"
+
+#: libexif/canon/mnote-canon-entry.c:394
+msgid "N/A"
+msgstr "N.v.t."
+
+#: libexif/canon/mnote-canon-entry.c:395
+msgid "Lowest"
+msgstr "Laagst"
+
+#: libexif/canon/mnote-canon-entry.c:399
+msgid "Highest"
+msgstr "Hoogst"
+
+#: libexif/canon/mnote-canon-entry.c:401 libexif/exif-entry.c:714
+#: libexif/fuji/mnote-fuji-entry.c:74
+#: libexif/olympus/mnote-olympus-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:98
+#: libexif/pentax/mnote-pentax-entry.c:246
+msgid "Daylight"
+msgstr "Daglicht"
+
+#: libexif/canon/mnote-canon-entry.c:419
+msgid "Set 1"
+msgstr "Set 1"
+
+#: libexif/canon/mnote-canon-entry.c:420
+msgid "Set 2"
+msgstr "Set 2"
+
+#: libexif/canon/mnote-canon-entry.c:421
+msgid "Set 3"
+msgstr "Set 3"
+
+#: libexif/canon/mnote-canon-entry.c:422
+msgid "User def. 1"
+msgstr "Gebr. gedef. 1"
+
+#: libexif/canon/mnote-canon-entry.c:423
+msgid "User def. 2"
+msgstr "Gebr. gedef. 2"
+
+#: libexif/canon/mnote-canon-entry.c:424
+msgid "User def. 3"
+msgstr "Gebr. gedef. 3"
+
+#: libexif/canon/mnote-canon-entry.c:425
+msgid "External 1"
+msgstr "Extern 1"
+
+#: libexif/canon/mnote-canon-entry.c:426
+msgid "External 2"
+msgstr "Extern 2"
+
+#: libexif/canon/mnote-canon-entry.c:427
+msgid "External 3"
+msgstr "Extern 3"
+
+#: libexif/canon/mnote-canon-entry.c:432
+msgid "Faithful"
+msgstr "Vol vertrouwen"
+
+#: libexif/canon/mnote-canon-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:115
+msgid "Monochrome"
+msgstr "Monochroom"
+
+#: libexif/canon/mnote-canon-entry.c:491
+msgid ", "
+msgstr ", "
+
+#: libexif/canon/mnote-canon-entry.c:577 libexif/canon/mnote-canon-entry.c:674
+#, c-format
+msgid "%i (ms)"
+msgstr "%i (ms)"
+
+#: libexif/canon/mnote-canon-entry.c:621
+#, c-format
+msgid "%.2f mm"
+msgstr "%.2f mm"
+
+#: libexif/canon/mnote-canon-entry.c:645
+#, c-format
+msgid "%.2f EV"
+msgstr "%.2f EV"
+
+#: libexif/canon/mnote-canon-entry.c:655 libexif/exif-entry.c:1064
+#, c-format
+msgid "1/%i"
+msgstr "1/%i"
+
+#: libexif/canon/mnote-canon-entry.c:667
+#, c-format
+msgid "%u mm"
+msgstr "%u mm"
+
+#: libexif/canon/mnote-canon-tag.c:35
+msgid "Settings (First Part)"
+msgstr "Instellingen (eerste deel)"
+
+#: libexif/canon/mnote-canon-tag.c:36 libexif/canon/mnote-canon-tag.c:92
+#: libexif/exif-tag.c:581 libexif/pentax/mnote-pentax-tag.c:88
+msgid "Focal Length"
+msgstr "Brandpuntsafstand"
+
+#: libexif/canon/mnote-canon-tag.c:37
+msgid "Settings (Second Part)"
+msgstr "Instellingen (tweede deel)"
+
+#: libexif/canon/mnote-canon-tag.c:38
+#: libexif/olympus/mnote-olympus-entry.c:595
+#: libexif/pentax/mnote-pentax-entry.c:177
+msgid "Panorama"
+msgstr "Panorama"
+
+#: libexif/canon/mnote-canon-tag.c:39
+msgid "Image Type"
+msgstr "Soort afbeelding"
+
+#: libexif/canon/mnote-canon-tag.c:40 libexif/olympus/mnote-olympus-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:113
+msgid "Firmware Version"
+msgstr "Firmware-versie"
+
+#: libexif/canon/mnote-canon-tag.c:41
+msgid "Image Number"
+msgstr "Afbeeldingsnummer"
+
+#: libexif/canon/mnote-canon-tag.c:42
+msgid "Owner Name"
+msgstr "Naam van eigenaar"
+
+#: libexif/canon/mnote-canon-tag.c:43
+msgid "Color Information"
+msgstr "Kleurinformatie"
+
+#: libexif/canon/mnote-canon-tag.c:44 libexif/fuji/mnote-fuji-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:81
+#: libexif/olympus/mnote-olympus-tag.c:146
+msgid "Serial Number"
+msgstr "Serienummer"
+
+#: libexif/canon/mnote-canon-tag.c:45
+msgid "Custom Functions"
+msgstr "Zelfgemaakte functies"
+
+#: libexif/canon/mnote-canon-tag.c:56 libexif/fuji/mnote-fuji-tag.c:45
+msgid "Macro Mode"
+msgstr "Macromodus"
+
+#: libexif/canon/mnote-canon-tag.c:57 libexif/canon/mnote-canon-tag.c:117
+#: libexif/olympus/mnote-olympus-tag.c:175
+#: libexif/pentax/mnote-pentax-tag.c:128
+msgid "Self-timer"
+msgstr "Zelfontspanner"
+
+#: libexif/canon/mnote-canon-tag.c:58 libexif/fuji/mnote-fuji-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:94
+#: libexif/olympus/mnote-olympus-tag.c:107
+msgid "Quality"
+msgstr "Kwaliteit"
+
+#: libexif/canon/mnote-canon-tag.c:59 libexif/fuji/mnote-fuji-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:45
+#: libexif/olympus/mnote-olympus-tag.c:127
+#: libexif/pentax/mnote-pentax-tag.c:38 libexif/pentax/mnote-pentax-tag.c:73
+msgid "Flash Mode"
+msgstr "Flitsmodus"
+
+#: libexif/canon/mnote-canon-tag.c:60 libexif/pentax/mnote-pentax-tag.c:101
+msgid "Drive Mode"
+msgstr "Drive-modus"
+
+#: libexif/canon/mnote-canon-tag.c:61 libexif/canon/mnote-canon-tag.c:82
+#: libexif/olympus/mnote-olympus-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:134
+#: libexif/olympus/mnote-olympus-tag.c:173
+#: libexif/pentax/mnote-pentax-tag.c:37 libexif/pentax/mnote-pentax-tag.c:74
+#: libexif/pentax/mnote-pentax-tag.c:130
+msgid "Focus Mode"
+msgstr "Scherpstellingsmodus"
+
+#: libexif/canon/mnote-canon-tag.c:62 libexif/pentax/mnote-pentax-tag.c:127
+msgid "Record Mode"
+msgstr "Opnamemodus"
+
+#: libexif/canon/mnote-canon-tag.c:63 libexif/pentax/mnote-pentax-tag.c:71
+msgid "Image Size"
+msgstr "Afbeeldingsgrootte"
+
+#: libexif/canon/mnote-canon-tag.c:64
+msgid "Easy Shooting Mode"
+msgstr "Direct fotograferen"
+
+#: libexif/canon/mnote-canon-tag.c:65 libexif/olympus/mnote-olympus-tag.c:64
+#: libexif/olympus/mnote-olympus-tag.c:101
+#: libexif/olympus/mnote-olympus-tag.c:110
+#: libexif/olympus/mnote-olympus-tag.c:180
+#: libexif/pentax/mnote-pentax-tag.c:89
+msgid "Digital Zoom"
+msgstr "Digitale zoom"
+
+#: libexif/canon/mnote-canon-tag.c:66 libexif/exif-tag.c:828
+#: libexif/fuji/mnote-fuji-tag.c:42 libexif/pentax/mnote-pentax-tag.c:46
+#: libexif/pentax/mnote-pentax-tag.c:91
+msgid "Contrast"
+msgstr "Contrast"
+
+#: libexif/canon/mnote-canon-tag.c:67 libexif/exif-tag.c:832
+#: libexif/olympus/mnote-olympus-tag.c:75
+#: libexif/olympus/mnote-olympus-tag.c:87 libexif/pentax/mnote-pentax-tag.c:47
+#: libexif/pentax/mnote-pentax-tag.c:90
+msgid "Saturation"
+msgstr "Verzadiging"
+
+#: libexif/canon/mnote-canon-tag.c:68 libexif/exif-tag.c:836
+#: libexif/fuji/mnote-fuji-tag.c:39 libexif/pentax/mnote-pentax-tag.c:45
+#: libexif/pentax/mnote-pentax-tag.c:92
+msgid "Sharpness"
+msgstr "Scherpte"
+
+#: libexif/canon/mnote-canon-tag.c:69
+msgid "ISO"
+msgstr "ISO"
+
+#: libexif/canon/mnote-canon-tag.c:70 libexif/exif-tag.c:571
+#: libexif/pentax/mnote-pentax-tag.c:82
+msgid "Metering Mode"
+msgstr "Meetwijze"
+
+#: libexif/canon/mnote-canon-tag.c:71 libexif/olympus/mnote-olympus-tag.c:133
+msgid "Focus Range"
+msgstr "Bereik scherpstelling"
+
+#: libexif/canon/mnote-canon-tag.c:72 libexif/canon/mnote-canon-tag.c:105
+msgid "AF Point"
+msgstr "AF-punt"
+
+#: libexif/canon/mnote-canon-tag.c:73 libexif/exif-tag.c:795
+msgid "Exposure Mode"
+msgstr "Belichtingsmodus"
+
+#: libexif/canon/mnote-canon-tag.c:74 libexif/olympus/mnote-olympus-tag.c:61
+#: libexif/pentax/mnote-pentax-tag.c:106
+msgid "Lens Type"
+msgstr "Soort lens"
+
+#: libexif/canon/mnote-canon-tag.c:75
+msgid "Long Focal Length of Lens"
+msgstr "Lange brandpuntsafstand van lens"
+
+#: libexif/canon/mnote-canon-tag.c:76
+msgid "Short Focal Length of Lens"
+msgstr "Korte brandpuntsafstand van lens"
+
+#: libexif/canon/mnote-canon-tag.c:77
+msgid "Focal Units per mm"
+msgstr "Brandpuntseenheden per mm"
+
+#: libexif/canon/mnote-canon-tag.c:78
+msgid "Maximal Aperture"
+msgstr "Grootste diafragmagetal"
+
+#: libexif/canon/mnote-canon-tag.c:79
+msgid "Minimal Aperture"
+msgstr "Kleinste diafragmagetal"
+
+#: libexif/canon/mnote-canon-tag.c:80
+msgid "Flash Activity"
+msgstr "Flitsactiviteit"
+
+#: libexif/canon/mnote-canon-tag.c:81
+msgid "Flash Details"
+msgstr "Flitsdetails"
+
+#: libexif/canon/mnote-canon-tag.c:83
+msgid "AE Setting"
+msgstr "AE-instellingen"
+
+#: libexif/canon/mnote-canon-tag.c:84
+msgid "Image Stabilization"
+msgstr "Beeldstabilisatie"
+
+#: libexif/canon/mnote-canon-tag.c:85
+msgid "Display Aperture"
+msgstr "Diafragmagetal tonen"
+
+#: libexif/canon/mnote-canon-tag.c:86
+msgid "Zoom Source Width"
+msgstr "Zoomen op bronbreedte"
+
+#: libexif/canon/mnote-canon-tag.c:87
+msgid "Zoom Target Width"
+msgstr "Zoomen op doelbreedte"
+
+#: libexif/canon/mnote-canon-tag.c:88
+msgid "Photo Effect"
+msgstr "Foto-effect"
+
+#: libexif/canon/mnote-canon-tag.c:89 libexif/canon/mnote-canon-tag.c:118
+msgid "Manual Flash Output"
+msgstr "Handmatige flitsinstelling"
+
+#: libexif/canon/mnote-canon-tag.c:90
+msgid "Color Tone"
+msgstr "Kleurtoon"
+
+#: libexif/canon/mnote-canon-tag.c:91
+msgid "Focal Type"
+msgstr "Soort scherpstelling"
+
+#: libexif/canon/mnote-canon-tag.c:93
+msgid "Focal Plane X Size"
+msgstr "Scherpstellingvlak x-afmeting"
+
+#: libexif/canon/mnote-canon-tag.c:94
+msgid "Focal Plane Y Size"
+msgstr "Scherpstellingvlak y-afmeting"
+
+#: libexif/canon/mnote-canon-tag.c:95
+msgid "Auto ISO"
+msgstr "Auto-ISO"
+
+#: libexif/canon/mnote-canon-tag.c:96
+msgid "Shot ISO"
+msgstr "Opname-ISO"
+
+#: libexif/canon/mnote-canon-tag.c:97
+msgid "Measured EV"
+msgstr "Gemeten EV"
+
+#: libexif/canon/mnote-canon-tag.c:98
+msgid "Target Aperture"
+msgstr "Diafragmastreefgetal"
+
+#: libexif/canon/mnote-canon-tag.c:99
+msgid "Target Exposure Time"
+msgstr "Streefwaarde sluitertijd"
+
+#: libexif/canon/mnote-canon-tag.c:100 libexif/olympus/mnote-olympus-tag.c:129
+#: libexif/pentax/mnote-pentax-tag.c:81
+msgid "Exposure Compensation"
+msgstr "Belichtingscompensatie"
+
+#: libexif/canon/mnote-canon-tag.c:101 libexif/canon/mnote-canon-tag.c:123
+#: libexif/exif-tag.c:800 libexif/fuji/mnote-fuji-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:41
+#: libexif/olympus/mnote-olympus-tag.c:98 libexif/pentax/mnote-pentax-tag.c:41
+#: libexif/pentax/mnote-pentax-tag.c:84 libexif/pentax/mnote-pentax-tag.c:124
+msgid "White Balance"
+msgstr "Witbalans"
+
+#: libexif/canon/mnote-canon-tag.c:102
+msgid "Slow Shutter"
+msgstr "Langzame sluitertijd"
+
+#: libexif/canon/mnote-canon-tag.c:103
+msgid "Sequence Number"
+msgstr "Volgnummer"
+
+#: libexif/canon/mnote-canon-tag.c:104
+msgid "Flash Guide Number"
+msgstr "Flitsrichtgetal"
+
+#: libexif/canon/mnote-canon-tag.c:106 libexif/olympus/mnote-olympus-tag.c:52
+#: libexif/pentax/mnote-pentax-tag.c:109
+msgid "Flash Exposure Compensation"
+msgstr "Flitsbelichtingcompensatie"
+
+#: libexif/canon/mnote-canon-tag.c:107
+msgid "AE Bracketing"
+msgstr "AE-bracketing"
+
+#: libexif/canon/mnote-canon-tag.c:108
+msgid "AE Bracket Value"
+msgstr "AE-bracketwaarde"
+
+#: libexif/canon/mnote-canon-tag.c:109
+msgid "Focus Distance Upper"
+msgstr "Bovengrens brandpuntsafstand"
+
+#: libexif/canon/mnote-canon-tag.c:110
+msgid "Focus Distance Lower"
+msgstr "Ondergrens brandpuntsafstand"
+
+#: libexif/canon/mnote-canon-tag.c:111
+msgid "FNumber"
+msgstr "F-getal"
+
+#: libexif/canon/mnote-canon-tag.c:112 libexif/exif-tag.c:466
+#: libexif/pentax/mnote-pentax-tag.c:78
+msgid "Exposure Time"
+msgstr "Belichtingstijd"
+
+#: libexif/canon/mnote-canon-tag.c:113
+msgid "Bulb Duration"
+msgstr "Lamp-flitsduur"
+
+#: libexif/canon/mnote-canon-tag.c:114
+msgid "Camera Type"
+msgstr "Soort camera"
+
+#: libexif/canon/mnote-canon-tag.c:115
+msgid "Auto Rotate"
+msgstr "Automatisch draaien"
+
+#: libexif/canon/mnote-canon-tag.c:116
+msgid "ND Filter"
+msgstr "ND-filter"
+
+#: libexif/canon/mnote-canon-tag.c:119
+msgid "Panorama Frame"
+msgstr "Panorama-kader"
+
+#: libexif/canon/mnote-canon-tag.c:120
+msgid "Panorama Direction"
+msgstr "Panorama-richting"
+
+#: libexif/canon/mnote-canon-tag.c:121
+msgid "Tone Curve"
+msgstr "Kleurtoonkromme"
+
+#: libexif/canon/mnote-canon-tag.c:122
+msgid "Sharpness Frequency"
+msgstr "Scherptefrequentie"
+
+#: libexif/canon/mnote-canon-tag.c:124
+msgid "Picture Style"
+msgstr "Afbeeldingsstijl"
+
+#: libexif/exif-byte-order.c:33
+msgid "Motorola"
+msgstr "Motorola"
+
+#: libexif/exif-byte-order.c:35
+msgid "Intel"
+msgstr "Intel"
+
+#: libexif/exif-data.c:780
+msgid "Size of data too small to allow for EXIF data."
+msgstr "Grootte van gegevens is te klein om EXIF-gegevens toe te staan."
+
+#: libexif/exif-data.c:841
+msgid "EXIF marker not found."
+msgstr "EXIF-markering niet gevonden."
+
+#: libexif/exif-data.c:868
+msgid "EXIF header not found."
+msgstr "EXIF-kop niet gevonden."
+
+#: libexif/exif-data.c:884
+msgid "Unknown encoding."
+msgstr "Onbekende codering."
+
+#: libexif/exif-data.c:1168
+msgid "Ignore unknown tags"
+msgstr "Negeer onbekende tags"
+
+#: libexif/exif-data.c:1169
+msgid "Ignore unknown tags when loading EXIF data."
+msgstr "Negeer onbekende tags bij het laden van EXIF-gegevens."
+
+#: libexif/exif-data.c:1170
+msgid "Follow specification"
+msgstr "Volg de specificatie"
+
+#: libexif/exif-data.c:1171
+msgid ""
+"Add, correct and remove entries to get EXIF data that follows the "
+"specification."
+msgstr ""
+"Voeg toe, corrigeer en verwijder items om EXIF-gegevens te verkrijgen "
+"volgens de specificatie."
+
+#: libexif/exif-data.c:1173
+msgid "Do not change maker note"
+msgstr "Laat de fabrikantennotitie ongewijzigd"
+
+#: libexif/exif-data.c:1174
+msgid ""
+"When loading and resaving Exif data, save the maker note unmodified. Be "
+"aware that the maker note can get corrupted."
+msgstr ""
+"Laat bij het laden en opnieuw opslaan van EXIF-gegevens de "
+"fabrikantennotitie ongewijzigd. Wees u er van bewust dat de "
+"fabrikantennotitie beschadigd kan raken."
+
+#: libexif/exif-entry.c:234 libexif/exif-entry.c:303 libexif/exif-entry.c:336
+#, c-format
+msgid ""
+"Tag '%s' was of format '%s' (which is against specification) and has been "
+"changed to format '%s'."
+msgstr ""
+"Het label '%s' had de structuur '%s' (hetgeen niet volgens de specificaties "
+"is) en is gewijzigd naar de structuur '%s'."
+
+#: libexif/exif-entry.c:271
+#, c-format
+msgid ""
+"Tag '%s' is of format '%s' (which is against specification) but cannot be "
+"changed to format '%s'."
+msgstr ""
+"Het label '%s' had structuur '%s' (hetgeen niet volgens de specificaties is) "
+"maar kan niet worden gewijzigd naar structuur '%s'."
+
+#: libexif/exif-entry.c:354
+#, c-format
+msgid ""
+"Tag 'UserComment' had invalid format '%s'. Format has been set to "
+"'undefined'."
+msgstr ""
+"Het label 'UserComment' heeft een ongeldige structuur '%s'. De structuur is "
+"op 'undefined' ingesteld."
+
+#: libexif/exif-entry.c:381
+msgid ""
+"Tag 'UserComment' has been expanded to at least 8 bytes in order to follow "
+"the specification."
+msgstr ""
+"Het label 'UserComment' is vergroot naar ten minste 8 bytes om te voldoen "
+"aan de specificatie."
+
+#: libexif/exif-entry.c:396
+msgid ""
+"Tag 'UserComment' is not empty but does not start with a format identifier. "
+"This has been fixed."
+msgstr ""
+"Het label 'UserComment' is niet leeg, maar begint niet met een "
+"structuuridentificatie. Dit is verbeterd."
+
+#: libexif/exif-entry.c:424
+msgid ""
+"Tag 'UserComment' did not start with a format identifier. This has been "
+"fixed."
+msgstr ""
+"Het label 'UserComment' begon niet met een structuuridentificatie. Dit is "
+"verbeterd."
+
+#: libexif/exif-entry.c:462
+#, c-format
+msgid "%i bytes undefined data"
+msgstr "%i bytes onbekende gegevens"
+
+#: libexif/exif-entry.c:589
+#, c-format
+msgid "%i bytes unsupported data type"
+msgstr "%i bytes met niet-ondersteund gegevenstype"
+
+#: libexif/exif-entry.c:622
+#, c-format
+msgid "The tag '%s' contains data of an invalid format ('%s', expected '%s')."
+msgstr ""
+"Het label '%s' bevat gegevens met een ongeldige structuur ('%s', verwacht '%"
+"s')."
+
+#: libexif/exif-entry.c:635
+#, c-format
+msgid ""
+"The tag '%s' contains an invalid number of components (%i, expected %i)."
+msgstr ""
+"Het label '%s' bevat een ongeldig aantal componenten (%i, verwacht %i)."
+
+#: libexif/exif-entry.c:649
+msgid "Chunky format"
+msgstr "chunky-structuur"
+
+#: libexif/exif-entry.c:649
+msgid "Planar format"
+msgstr "planar-structuur"
+
+#: libexif/exif-entry.c:651 libexif/exif-entry.c:743
+#: test/nls/test-codeset.c:54
+msgid "Not defined"
+msgstr "Niet gedefiniëerd"
+
+#: libexif/exif-entry.c:651
+msgid "One-chip color area sensor"
+msgstr "Eén-chip kleurgebiedsensor"
+
+#: libexif/exif-entry.c:652
+msgid "Two-chip color area sensor"
+msgstr "Twee-chips kleurgebiedsensor"
+
+#: libexif/exif-entry.c:652
+msgid "Three-chip color area sensor"
+msgstr "Drie-chips kleurgebiedsensor"
+
+#: libexif/exif-entry.c:653
+msgid "Color sequential area sensor"
+msgstr "Gebiedssensor voor kleurvolgorde"
+
+#: libexif/exif-entry.c:653
+msgid "Trilinear sensor"
+msgstr "Tri-lineaire sensor"
+
+#: libexif/exif-entry.c:654
+msgid "Color sequential linear sensor"
+msgstr "Lineaire sensor voor kleurvolgorde"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:233
+msgid "Top-left"
+msgstr "Linksboven"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:235
+msgid "Top-right"
+msgstr "Rechtsboven"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:241
+msgid "Bottom-right"
+msgstr "Rechtsonder"
+
+#: libexif/exif-entry.c:657 libexif/pentax/mnote-pentax-entry.c:239
+msgid "Bottom-left"
+msgstr "Linksonder"
+
+#: libexif/exif-entry.c:657
+msgid "Left-top"
+msgstr "linksboven"
+
+#: libexif/exif-entry.c:657
+msgid "Right-top"
+msgstr "rechtsboven"
+
+#: libexif/exif-entry.c:658
+msgid "Right-bottom"
+msgstr "rechtsonder"
+
+#: libexif/exif-entry.c:658
+msgid "Left-bottom"
+msgstr "linksonder"
+
+#: libexif/exif-entry.c:660
+msgid "Centered"
+msgstr "gecentreerd"
+
+#: libexif/exif-entry.c:660
+msgid "Co-sited"
+msgstr "naast elkaar"
+
+#: libexif/exif-entry.c:662
+msgid "Reversed mono"
+msgstr "Inverse mono"
+
+#: libexif/exif-entry.c:662
+msgid "Normal mono"
+msgstr "Normaal mono"
+
+#: libexif/exif-entry.c:662
+msgid "RGB"
+msgstr "RGB"
+
+#: libexif/exif-entry.c:662
+msgid "Palette"
+msgstr "Palet"
+
+#: libexif/exif-entry.c:663
+msgid "CMYK"
+msgstr "CMYK"
+
+#: libexif/exif-entry.c:663
+msgid "YCbCr"
+msgstr "YCbCr"
+
+#: libexif/exif-entry.c:663
+msgid "CieLAB"
+msgstr "CieLAB"
+
+#: libexif/exif-entry.c:665
+msgid "Normal process"
+msgstr "Normaal proces"
+
+#: libexif/exif-entry.c:665
+msgid "Custom process"
+msgstr "Aangepast proces"
+
+#: libexif/exif-entry.c:667
+msgid "Auto exposure"
+msgstr "Automatische belichting"
+
+#: libexif/exif-entry.c:667 libexif/fuji/mnote-fuji-entry.c:139
+msgid "Manual exposure"
+msgstr "Handmatige belichting"
+
+#: libexif/exif-entry.c:667
+msgid "Auto bracket"
+msgstr "Auto-bracket"
+
+#: libexif/exif-entry.c:669
+msgid "Auto white balance"
+msgstr "Automatische witbalans"
+
+#: libexif/exif-entry.c:669
+msgid "Manual white balance"
+msgstr "Handmatige witbalans"
+
+#: libexif/exif-entry.c:674
+msgid "Low gain up"
+msgstr "Lage versterking"
+
+#: libexif/exif-entry.c:674
+msgid "High gain up"
+msgstr "Hoge versterking"
+
+#: libexif/exif-entry.c:675
+msgid "Low gain down"
+msgstr "Lage verzwakking"
+
+#: libexif/exif-entry.c:675
+msgid "High gain down"
+msgstr "Hoge verzwakking"
+
+#: libexif/exif-entry.c:677
+msgid "Low saturation"
+msgstr "Lage verzadiging"
+
+#: libexif/exif-entry.c:677 test/nls/test-codeset.c:48
+#: test/nls/test-codeset.c:61
+msgid "High saturation"
+msgstr "Hoge verzadiging"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:63
+#: libexif/olympus/mnote-olympus-entry.c:205
+#: libexif/olympus/mnote-olympus-entry.c:214
+#: libexif/pentax/mnote-pentax-entry.c:106
+#: libexif/pentax/mnote-pentax-entry.c:170
+msgid "Soft"
+msgstr "Zacht"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:65 libexif/fuji/mnote-fuji-entry.c:95
+#: libexif/olympus/mnote-olympus-entry.c:204
+#: libexif/olympus/mnote-olympus-entry.c:212
+#: libexif/pentax/mnote-pentax-entry.c:107
+msgid "Hard"
+msgstr "Hard"
+
+#: libexif/exif-entry.c:695 libexif/exif-entry.c:713 libexif/exif-entry.c:795
+#: libexif/olympus/mnote-olympus-entry.c:589
+#: libexif/olympus/mnote-olympus-entry.c:683
+#: libexif/olympus/mnote-olympus-entry.c:738
+#: libexif/pentax/mnote-pentax-entry.c:256
+msgid "Unknown"
+msgstr "Onbekend"
+
+#: libexif/exif-entry.c:696
+msgid "Avg"
+msgstr "gem"
+
+#: libexif/exif-entry.c:697
+msgid "Center-weight"
+msgstr "Centraalgewogen"
+
+#: libexif/exif-entry.c:699
+msgid "Multi spot"
+msgstr "Meerpunts"
+
+#: libexif/exif-entry.c:700
+msgid "Pattern"
+msgstr "Patroon"
+
+#: libexif/exif-entry.c:705
+msgid "Uncompressed"
+msgstr "Niet gecomprimeerd"
+
+#: libexif/exif-entry.c:706
+msgid "LZW compression"
+msgstr "LZW-compressie"
+
+#: libexif/exif-entry.c:707 libexif/exif-entry.c:708
+msgid "JPEG compression"
+msgstr "JPEG-compressie"
+
+#: libexif/exif-entry.c:709
+msgid "Deflate/ZIP compression"
+msgstr "Deflate/ZIP-compressie"
+
+#: libexif/exif-entry.c:710
+msgid "PackBits compression"
+msgstr "PackBits-compressie"
+
+#: libexif/exif-entry.c:716
+msgid "Tungsten incandescent light"
+msgstr "Licht van een wolframlamp"
+
+#: libexif/exif-entry.c:718
+msgid "Fine weather"
+msgstr "Mooi weer"
+
+#: libexif/exif-entry.c:719
+msgid "Cloudy weather"
+msgstr "Bewolkt weer"
+
+#: libexif/exif-entry.c:722 libexif/fuji/mnote-fuji-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:252
+msgid "Day white fluorescent"
+msgstr "Daglichtwit TL"
+
+#: libexif/exif-entry.c:723
+msgid "Cool white fluorescent"
+msgstr "Koelwit TL-licht"
+
+#: libexif/exif-entry.c:724 libexif/fuji/mnote-fuji-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:253
+msgid "White fluorescent"
+msgstr "Wit TL-licht"
+
+#: libexif/exif-entry.c:725
+msgid "Standard light A"
+msgstr "Standaard licht A"
+
+#: libexif/exif-entry.c:726
+msgid "Standard light B"
+msgstr "Standaard licht B"
+
+#: libexif/exif-entry.c:727
+msgid "Standard light C"
+msgstr "Standaard licht C"
+
+#: libexif/exif-entry.c:728
+msgid "D55"
+msgstr "D55"
+
+#: libexif/exif-entry.c:729
+msgid "D65"
+msgstr "D65"
+
+#: libexif/exif-entry.c:730
+msgid "D75"
+msgstr "D75"
+
+#: libexif/exif-entry.c:731
+msgid "ISO studio tungsten"
+msgstr "ISO studio-wolfram"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "Inch"
+msgstr "Inch"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "in"
+msgstr "in"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "Centimeter"
+msgstr "Centimeter"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "cm"
+msgstr "cm"
+
+#: libexif/exif-entry.c:745
+msgid "Normal program"
+msgstr "Normaal programma"
+
+#: libexif/exif-entry.c:746
+msgid "Aperture priority"
+msgstr "Diafragmagetal heeft prioriteit"
+
+#: libexif/exif-entry.c:746 libexif/exif-tag.c:550
+msgid "Aperture"
+msgstr "Diafragmagetal"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter priority"
+msgstr "Sluitertijd heeft prioriteit"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter"
+msgstr "Sluitertijd"
+
+#: libexif/exif-entry.c:748
+msgid "Creative program (biased toward depth of field)"
+msgstr "Creatief programma (neigend naar scherptediepte)"
+
+#: libexif/exif-entry.c:749
+msgid "Creative"
+msgstr "Creatief"
+
+#: libexif/exif-entry.c:750
+msgid "Creative program (biased toward fast shutter speed)"
+msgstr "Creatief programma (neigend naar een snelle sluitertijd)"
+
+#: libexif/exif-entry.c:751
+msgid "Action"
+msgstr "Actie"
+
+#: libexif/exif-entry.c:752
+msgid "Portrait mode (for closeup photos with the background out of focus)"
+msgstr "Portretmodus (voor closeupfoto's met een onscherpe achtergrond)"
+
+#: libexif/exif-entry.c:754
+msgid "Landscape mode (for landscape photos with the background in focus)"
+msgstr "Landschapmodus (voor landschapfoto's met een scherpe achtergrond)"
+
+#: libexif/exif-entry.c:758 libexif/exif-entry.c:763
+#: libexif/olympus/mnote-olympus-entry.c:97
+msgid "Flash did not fire"
+msgstr "Flitser deed het niet"
+
+#: libexif/exif-entry.c:758
+msgid "No flash"
+msgstr "geen flits"
+
+#: libexif/exif-entry.c:759
+msgid "Flash fired"
+msgstr "Geflitst"
+
+#: libexif/exif-entry.c:759 libexif/olympus/mnote-olympus-entry.c:170
+#: libexif/olympus/mnote-olympus-entry.c:175
+#: libexif/olympus/mnote-olympus-entry.c:209
+#: libexif/olympus/mnote-olympus-entry.c:218
+#: libexif/olympus/mnote-olympus-entry.c:241
+msgid "Yes"
+msgstr "Ja"
+
+#: libexif/exif-entry.c:760
+msgid "Strobe return light not detected"
+msgstr "Teruggekaatst flitslicht niet gedetecteerd"
+
+#: libexif/exif-entry.c:760
+msgid "Without strobe"
+msgstr "Zonder flits"
+
+#: libexif/exif-entry.c:762
+msgid "Strobe return light detected"
+msgstr "Teruggekaatst flitslicht gedetecteerd"
+
+#: libexif/exif-entry.c:762
+msgid "With strobe"
+msgstr "Met flits"
+
+#: libexif/exif-entry.c:764
+msgid "Flash fired, compulsory flash mode"
+msgstr "Geflitst, altijd-flitsen-modus."
+
+#: libexif/exif-entry.c:765
+msgid "Flash fired, compulsory flash mode, return light not detected"
+msgstr "Geflitst, altijd-flitsen-modus, teruggekaatst licht niet gedetecteerd"
+
+#: libexif/exif-entry.c:767
+msgid "Flash fired, compulsory flash mode, return light detected"
+msgstr "Geflitst, altijd-flitsen-modus, teruggekaatst licht gedetecteerd"
+
+#: libexif/exif-entry.c:769
+msgid "Flash did not fire, compulsory flash mode"
+msgstr "Niet geflitst, altijd-flitsen-modus"
+
+#: libexif/exif-entry.c:770
+msgid "Flash did not fire, auto mode"
+msgstr "Niet geflitst, automatische modus"
+
+#: libexif/exif-entry.c:771
+msgid "Flash fired, auto mode"
+msgstr "Geflitst, automatische modus"
+
+#: libexif/exif-entry.c:772
+msgid "Flash fired, auto mode, return light not detected"
+msgstr "Geflitst, automatische modus, teruggekaatst licht niet gedetecteerd"
+
+#: libexif/exif-entry.c:774
+msgid "Flash fired, auto mode, return light detected"
+msgstr "Geflitst, automatische modus, teruggekaatst licht gedetecteerd"
+
+#: libexif/exif-entry.c:775
+msgid "No flash function"
+msgstr "Geen flitsfunctie"
+
+#: libexif/exif-entry.c:776
+msgid "Flash fired, red-eye reduction mode"
+msgstr "Geflits, rode-ogenreductie"
+
+#: libexif/exif-entry.c:777
+msgid "Flash fired, red-eye reduction mode, return light not detected"
+msgstr "Geflitst, rode-ogenreductie, teruggekaatst licht niet gedetecteerd"
+
+#: libexif/exif-entry.c:779
+msgid "Flash fired, red-eye reduction mode, return light detected"
+msgstr "Geflitst, rode-ogenreductie, teruggekaatst licht gedetecteerd"
+
+#: libexif/exif-entry.c:781
+msgid "Flash fired, compulsory flash mode, red-eye reduction mode"
+msgstr "Geflitst, altijd-flitsen-modus, rode-ogenreductie"
+
+#: libexif/exif-entry.c:783
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light not "
+"detected"
+msgstr ""
+"Geflitst, altijd-flitsen-modus, rode-ogenreductie, teruggekaatst licht niet "
+"gedetecteerd"
+
+#: libexif/exif-entry.c:785
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light "
+"detected"
+msgstr ""
+"Geflitst, altijd-flitsen-modus, rode-ogenreductie, teruggekaatst licht "
+"gedetecteerd"
+
+#: libexif/exif-entry.c:787
+msgid "Flash did not fire, auto mode, red-eye reduction mode"
+msgstr "Niet geflitst, automatische modus, rode-ogenreductie"
+
+#: libexif/exif-entry.c:788
+msgid "Flash fired, auto mode, red-eye reduction mode"
+msgstr "Geflitst, automatische modus, rode-ogenreductie"
+
+#: libexif/exif-entry.c:789
+msgid ""
+"Flash fired, auto mode, return light not detected, red-eye reduction mode"
+msgstr ""
+"Niet geflitst, automatische modus, teruggekaatst licht niet gedetecteerd, "
+"rode-ogenreductie"
+
+#: libexif/exif-entry.c:791
+msgid "Flash fired, auto mode, return light detected, red-eye reduction mode"
+msgstr ""
+"Geflitst, automatische modus, teruggekaatst licht gedetecteerd, rode-"
+"ogenreductie"
+
+#: libexif/exif-entry.c:795
+msgid "?"
+msgstr "?"
+
+#: libexif/exif-entry.c:797
+msgid "Close view"
+msgstr "Dichtbij bekijken"
+
+#: libexif/exif-entry.c:798
+msgid "Distant view"
+msgstr "Op afstand bekijken"
+
+#: libexif/exif-entry.c:798
+msgid "Distant"
+msgstr "Op afstand"
+
+#: libexif/exif-entry.c:801
+msgid "sRGB"
+msgstr "sRGB"
+
+#: libexif/exif-entry.c:802
+msgid "Adobe RGB"
+msgstr "Adobe RGB"
+
+#: libexif/exif-entry.c:803
+msgid "Uncalibrated"
+msgstr "Niet gecalibreerd"
+
+#: libexif/exif-entry.c:857
+#, c-format
+msgid "Invalid size of entry (%i, expected %li x %i)."
+msgstr "Invoer heeft ongeldige grootte (%i, verwacht was %li x %i)."
+
+#: libexif/exif-entry.c:890
+msgid "Unsupported UNICODE string"
+msgstr "Niet-ondersteunde UNICODE tekst"
+
+#: libexif/exif-entry.c:898
+msgid "Unsupported JIS string"
+msgstr "Niet-ondersteunde JIS tekst"
+
+#: libexif/exif-entry.c:914
+msgid "Tag UserComment does not comply with standard but contains data."
+msgstr ""
+"Label Gebruikersopmerking voldoet niet aan de standaard maar bevat wel "
+"gegevens."
+
+#: libexif/exif-entry.c:918
+#, c-format
+msgid "Byte at position %i: 0x%02x"
+msgstr "Byte op positie %i: 0x%02x"
+
+#: libexif/exif-entry.c:927
+msgid "Unknown Exif Version"
+msgstr "Onbekende Exif-versie"
+
+#: libexif/exif-entry.c:931
+#, c-format
+msgid "Exif Version %d.%d"
+msgstr "Exif-versie %d.%d"
+
+#: libexif/exif-entry.c:942
+msgid "FlashPix Version 1.0"
+msgstr "FlashPix versie 1.0"
+
+#: libexif/exif-entry.c:944
+msgid "FlashPix Version 1.01"
+msgstr "FlashPix versie 1.01"
+
+#: libexif/exif-entry.c:946
+msgid "Unknown FlashPix Version"
+msgstr "Onbekende FlashPix versie"
+
+#: libexif/exif-entry.c:959 libexif/exif-entry.c:972 libexif/exif-entry.c:1628
+#: libexif/exif-entry.c:1633 libexif/exif-entry.c:1637
+#: libexif/exif-entry.c:1642 libexif/exif-entry.c:1643
+msgid "[None]"
+msgstr "[Geen]"
+
+#: libexif/exif-entry.c:961
+msgid "(Photographer)"
+msgstr "(Fotograaf)"
+
+#: libexif/exif-entry.c:975
+msgid "(Editor)"
+msgstr "(Bewerker)"
+
+#: libexif/exif-entry.c:999 libexif/exif-entry.c:1079
+#: libexif/exif-entry.c:1096 libexif/exif-entry.c:1140
+#, c-format
+msgid "%.02f EV"
+msgstr "%.02f EV"
+
+#: libexif/exif-entry.c:1000
+#, c-format
+msgid " (f/%.01f)"
+msgstr " (f/%.01f)"
+
+#: libexif/exif-entry.c:1034
+#, c-format
+msgid " (35 equivalent: %d mm)"
+msgstr " (35-equivalent: %d mm)"
+
+#: libexif/exif-entry.c:1067 libexif/exif-entry.c:1068
+msgid " sec."
+msgstr " sec."
+
+#: libexif/exif-entry.c:1082
+#, c-format
+msgid " (1/%d sec.)"
+msgstr " (1/%d sec.)"
+
+#: libexif/exif-entry.c:1084
+#, c-format
+msgid " (%d sec.)"
+msgstr " (%d sec.)"
+
+#: libexif/exif-entry.c:1097
+#, c-format
+msgid " (%.02f cd/m^2)"
+msgstr " (%.02f cd/m^2)"
+
+#: libexif/exif-entry.c:1107
+msgid "DSC"
+msgstr "DSC"
+
+#: libexif/exif-entry.c:1109 libexif/exif-entry.c:1149
+#: libexif/exif-entry.c:1236 libexif/exif-entry.c:1287
+#: libexif/exif-entry.c:1296 libexif/exif-entry.c:1332
+#: libexif/fuji/mnote-fuji-entry.c:236 libexif/fuji/mnote-fuji-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:359
+#, c-format
+msgid "Internal error (unknown value %i)"
+msgstr "Interne fout (onbekende waarde %i)"
+
+#: libexif/exif-entry.c:1117
+msgid "-"
+msgstr "-"
+
+#: libexif/exif-entry.c:1118
+msgid "Y"
+msgstr "Y"
+
+#: libexif/exif-entry.c:1119
+msgid "Cb"
+msgstr "Cb"
+
+#: libexif/exif-entry.c:1120
+msgid "Cr"
+msgstr "Cr"
+
+#: libexif/exif-entry.c:1121
+msgid "R"
+msgstr "R"
+
+#: libexif/exif-entry.c:1122
+msgid "G"
+msgstr "G"
+
+#: libexif/exif-entry.c:1123
+msgid "B"
+msgstr "B"
+
+#: libexif/exif-entry.c:1124
+msgid "Reserved"
+msgstr "gereserveerd"
+
+#: libexif/exif-entry.c:1147
+msgid "Directly photographed"
+msgstr "Direct gefotografeerd"
+
+#: libexif/exif-entry.c:1160
+msgid "YCbCr4:2:2"
+msgstr "YCbCr4:2:2"
+
+#: libexif/exif-entry.c:1162
+msgid "YCbCr4:2:0"
+msgstr "YCbCr4:2:0"
+
+#: libexif/exif-entry.c:1179
+#, c-format
+msgid "Within distance %i of (x,y) = (%i,%i)"
+msgstr "Binnen afstand %i van (x,y) = (%i,%i)"
+
+#: libexif/exif-entry.c:1188
+#, c-format
+msgid "Within rectangle (width %i, height %i) around (x,y) = (%i,%i)"
+msgstr "Binnen rechthoek (breedte %i, hoogte %i) rondom (x,y) = (%i,%i)"
+
+#: libexif/exif-entry.c:1194
+#, c-format
+msgid "Unexpected number of components (%li, expected 2, 3, or 4)."
+msgstr "Onverwacht aantal componenten (%li, verwacht was 2, 3 of 4)"
+
+#: libexif/exif-entry.c:1232
+msgid "Sea level"
+msgstr "Zeeniveau"
+
+#: libexif/exif-entry.c:1234
+msgid "Sea level reference"
+msgstr "Referentie zeeniveau"
+
+#: libexif/exif-entry.c:1342
+#, c-format
+msgid "Unknown value %i"
+msgstr "Onbekende waarde %i"
+
+#: libexif/exif-format.c:37
+msgid "Short"
+msgstr "Kort"
+
+#: libexif/exif-format.c:38
+msgid "Rational"
+msgstr "Rationeel"
+
+#: libexif/exif-format.c:39
+msgid "SRational"
+msgstr "SRationeel"
+
+#: libexif/exif-format.c:40
+msgid "Undefined"
+msgstr "Ongedefinieerd"
+
+#: libexif/exif-format.c:41
+msgid "ASCII"
+msgstr "ASCII"
+
+#: libexif/exif-format.c:42
+msgid "Long"
+msgstr "Lang"
+
+#: libexif/exif-format.c:43
+msgid "Byte"
+msgstr "Byte"
+
+#: libexif/exif-format.c:44
+msgid "SByte"
+msgstr "SByte"
+
+#: libexif/exif-format.c:45
+msgid "SShort"
+msgstr "SKort"
+
+#: libexif/exif-format.c:46
+msgid "SLong"
+msgstr "SLang"
+
+#: libexif/exif-format.c:47
+msgid "Float"
+msgstr "Drijvendekommagetal"
+
+#: libexif/exif-format.c:48
+msgid "Double"
+msgstr "Drijvendekommagetal met dubbele precisie"
+
+#: libexif/exif-loader.c:119
+#, c-format
+msgid "The file '%s' could not be opened."
+msgstr "Het bestand '%s' kan niet geopend worden."
+
+#: libexif/exif-loader.c:300
+msgid "The data supplied does not seem to contain EXIF data."
+msgstr "De ingevoerde gegevens bevatten geen EXIF-gegevens."
+
+#: libexif/exif-log.c:43
+msgid "Debugging information"
+msgstr "Debugging informatie"
+
+#: libexif/exif-log.c:44
+msgid "Debugging information is available."
+msgstr "Debug-informatie is beschikbaar."
+
+#: libexif/exif-log.c:45
+msgid "Not enough memory"
+msgstr "Onvoldoende geheugen"
+
+#: libexif/exif-log.c:46
+msgid "The system cannot provide enough memory."
+msgstr "Het systeem kan niet in genoeg geheugen voorzien."
+
+#: libexif/exif-log.c:47
+msgid "Corrupt data"
+msgstr "Beschadigde gegevens"
+
+#: libexif/exif-log.c:48
+msgid "The data provided does not follow the specification."
+msgstr "De verstrekte gegevens zijn niet volgens de specificatie."
+
+#: libexif/exif-tag.c:62
+msgid "GPS Tag Version"
+msgstr "GPS-labelversie"
+
+#: libexif/exif-tag.c:63
+msgid ""
+"Indicates the version of <GPSInfoIFD>. The version is given as 2.0.0.0. This "
+"tag is mandatory when <GPSInfo> tag is present. (Note: The <GPSVersionID> "
+"tag is given in bytes, unlike the <ExifVersion> tag. When the version is "
+"2.0.0.0, the tag value is 02000000.H)."
+msgstr ""
+"Geeft de versie van <GPSInfoIFD> weer. De versie wordt gegevens als 2.0.0.0. "
+"Dit label is verplicht als het <GPSInfo>-label aanwezig is. (Merk op: het "
+"<GPSVersionID>-label wordt uitgedrukt in bytes, in tegenstelling tot het "
+"<ExifVersion>-label. Als de versie 2.0.0.0 is, dan heeft het label de waarde "
+"02000000.H)."
+
+#: libexif/exif-tag.c:69
+msgid "Interoperability Index"
+msgstr "Interoperabiliteitsindex"
+
+#: libexif/exif-tag.c:70
+msgid ""
+"Indicates the identification of the Interoperability rule. Use \"R98\" for "
+"stating ExifR98 Rules. Four bytes used including the termination code "
+"(NULL). see the separate volume of Recommended Exif Interoperability Rules "
+"(ExifR98) for other tags used for ExifR98."
+msgstr ""
+"Geeft de identificatie van de interoperabiltiteitsregel weer. Gebruik \"R98"
+"\" als afkorting van ExifR98-regels. Gebruikt vier bytes, inclusief het "
+"afbreekteken (NUL). Zie het aparte deel van Aanbevolen Exif-"
+"interoperabiliteitsregels (ExifR98) voor andere labels in het gebruik van "
+"ExifR98."
+
+#: libexif/exif-tag.c:76
+msgid "North or South Latitude"
+msgstr "Noorder- of zuiderbreedte"
+
+#: libexif/exif-tag.c:77
+msgid ""
+"Indicates whether the latitude is north or south latitude. The ASCII value "
+"'N' indicates north latitude, and 'S' is south latitude."
+msgstr ""
+"Geeft aan of de breedtegraad de noorder- of zuiderbreedte betreft. De ASCII-"
+"waarde 'N' verwijst naar noorderbreedte en 'S' naar zuiderbreedte."
+
+#: libexif/exif-tag.c:81
+msgid "Interoperability Version"
+msgstr "Interoperabiliteitsversie"
+
+#: libexif/exif-tag.c:83
+msgid "Latitude"
+msgstr "Breedtegraad"
+
+#: libexif/exif-tag.c:84
+msgid ""
+"Indicates the latitude. The latitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is dd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is dd/1,mmmm/100,0/1."
+msgstr ""
+"Geeft de breedtegraad aan. De breedtegraad wordt uitgedrukt als drie reële "
+"waarden in respectievelijk graden, minuten en seconden. Als graden, minuten "
+"en seconden worden weergegeven, dan is de opmaak dd/1,mm/1,ss/1. Als graden "
+"en minuten worden gebruikt en, bijvoorbeeld, delen van minuten worden "
+"weergegeven tot twee decimale posities, dan is de opmaak dd/1,mmmm/100,0/1"
+
+#: libexif/exif-tag.c:91
+msgid "East or West Longitude"
+msgstr "Oosterlijke of westerlijke lengtegraad"
+
+#: libexif/exif-tag.c:92
+msgid ""
+"Indicates whether the longitude is east or west longitude. ASCII 'E' "
+"indicates east longitude, and 'W' is west longitude."
+msgstr ""
+"Geeft aan of de lengtegraad de oosterlijke of de westerlijke betreft. ASCII "
+"'E' betekent oosterlengte en 'W' is westerlengte."
+
+#: libexif/exif-tag.c:95
+msgid "Longitude"
+msgstr "Lengtegraad"
+
+#: libexif/exif-tag.c:96
+msgid ""
+"Indicates the longitude. The longitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is ddd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is ddd/1,mmmm/100,0/1."
+msgstr ""
+"Geeft de lengtegraad aan. De lengtegraad wordt uitgedrukt als drie reële "
+"waarden in respectievelijk graden, minuten en seconden. Als graden, minuten "
+"en seconden worden weergegeven, dan is de opmaak dd/1,mm/1,ss/1. Als graden "
+"en minuten worden gebruikt en, bijvoorbeeld, delen van minuten worden "
+"weergegeven tot twee decimale posities, dan is de opmaak dd/1,mmmm/100,0/1"
+
+#: libexif/exif-tag.c:103
+msgid "Altitude Reference"
+msgstr "Hoogtereferentie"
+
+#: libexif/exif-tag.c:104
+msgid ""
+"Indicates the altitude used as the reference altitude. If the reference is "
+"sea level and the altitude is above sea level, 0 is given. If the altitude "
+"is below sea level, a value of 1 is given and the altitude is indicated as "
+"an absolute value in the GSPAltitude tag. The reference unit is meters. Note "
+"that this tag is BYTE type, unlike other reference tags."
+msgstr ""
+"Geeft de hoogte aan die gebruikt wordt als referentiehoogte. Als de "
+"referentie het zeeniveau is de hoogte is boven zeeniveau, dan wordt 0 "
+"gegeven. Als de hoogte onder zeeniveau is, wordt een waarde van 1 gegeven en "
+"de hoogte is weergegeven als een absolute waarde in het GPSAltitude-label. "
+"De referentieeenheid is meters. Merk op dat dit label van het BYTE-soort is, "
+"dit in tegenstelling tot andere referentielabels."
+
+#: libexif/exif-tag.c:110
+msgid "Altitude"
+msgstr "Hoogte"
+
+#: libexif/exif-tag.c:111
+msgid ""
+"Indicates the altitude based on the reference in GPSAltitudeRef. Altitude is "
+"expressed as one RATIONAL value. The reference unit is meters."
+msgstr ""
+"Geeft de hoogte aan ten opzichte van de referentie in GPSAltitudeRef. Hoogte "
+"is uitgedrukt als één rationele waarde. De referentieeenheid is in meters."
+
+#: libexif/exif-tag.c:114
+msgid "GPS Time (Atomic Clock)"
+msgstr "GPS-tijd (atoomklok)"
+
+#: libexif/exif-tag.c:115
+msgid ""
+"Indicates the time as UTC (Coordinated Universal Time). TimeStamp is "
+"expressed as three RATIONAL values giving the hour, minute, and second."
+msgstr ""
+"Geeft de tijd als UTC (Coordinated Universal Time). Tijdcode is uitgedrukt "
+"als drie reële waarden voor uur, minuut en seconde."
+
+#: libexif/exif-tag.c:118
+msgid "GPS Satellites"
+msgstr "GPS-satallieten"
+
+#: libexif/exif-tag.c:119
+msgid ""
+"Indicates the GPS satellites used for measurements. This tag can be used to "
+"describe the number of satellites, their ID number, angle of elevation, "
+"azimuth, SNR and other information in ASCII notation. The format is not "
+"specified. If the GPS receiver is incapable of taking measurements, value of "
+"the tag shall be set to NULL."
+msgstr ""
+"Geeft de GPS-satallieten gebruikt bij metingen. Dit label kan benut worden "
+"om het aantal satallieten, hun ID-nummer, elivatie, azimut, SNR en andere "
+"informatie in ASCII-notatie te beschrijven. De wijze waarop is niet "
+"vastgelegd. Als de GPS-ontvanger niet in staat is metingen vast te leggen, "
+"dan moet de waarde van het label op NUL gezet worden."
+
+#: libexif/exif-tag.c:125
+msgid "GPS Receiver Status"
+msgstr "Status GPS-ontvanger"
+
+#: libexif/exif-tag.c:126
+msgid ""
+"Indicates the status of the GPS receiver when the image is recorded. 'A' "
+"means measurement is in progress, and 'V' means the measurement is "
+"Interoperability."
+msgstr ""
+"Geeft de status van de GPS-ontvanger als de opname is vastgelegd. 'A' "
+"betekent dat de meting gaande is en 'V' zegt dat de meting interoperabel is."
+
+#: libexif/exif-tag.c:129
+msgid "GPS Measurement Mode"
+msgstr "GPS-meetmodus"
+
+#: libexif/exif-tag.c:130
+msgid ""
+"Indicates the GPS measurement mode. '2' means two-dimensional measurement "
+"and '3' means three-dimensional measurement is in progress."
+msgstr ""
+"Geeft de GPS-meetmodus. '2' staat voor tweedimensionale meting en '3' voor "
+"driedimensionaal."
+
+#: libexif/exif-tag.c:133
+msgid "Measurement Precision"
+msgstr "Meetprecisie"
+
+#: libexif/exif-tag.c:134
+msgid ""
+"Indicates the GPS DOP (data degree of precision). An HDOP value is written "
+"during two-dimensional measurement, and PDOP during three-dimensional "
+"measurement."
+msgstr ""
+"Geeft de GPS-DOP (Degree Of Precision, mate van nauwkeurigheid). Een HDOP-"
+"waarde wordt weggeschreven tijdens tweedimensionale metingen en PDOP tijdens "
+"driedimensionale metingen."
+
+#: libexif/exif-tag.c:137
+msgid "Speed Unit"
+msgstr "Snelheidseenheid"
+
+#: libexif/exif-tag.c:138
+msgid ""
+"Indicates the unit used to express the GPS receiver speed of movement. 'K', "
+"'M' and 'N' represent kilometers per hour, miles per hour, and knots."
+msgstr ""
+"Geeft de eenheid waarin de snelheid of beweging van de GPS-ontvanger wordt "
+"uitgedrukt. 'K', 'M' en 'N' staan respectievelijk voor kilometers per uur, "
+"mijlen per uur en knopen."
+
+#: libexif/exif-tag.c:141
+msgid "Speed of GPS Receiver"
+msgstr "Snelheid GPS-ontvanger"
+
+#: libexif/exif-tag.c:142
+msgid "Indicates the speed of GPS receiver movement."
+msgstr "Geeft indicatie van de snelheid waarmee de GPS-ontvanger beweegt."
+
+#: libexif/exif-tag.c:143
+msgid "Reference for direction of movement"
+msgstr "Referentie voor bewegingsrichting"
+
+#: libexif/exif-tag.c:144
+msgid ""
+"Indicates the reference for giving the direction of GPS receiver movement. "
+"'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+"De referentie waarmee de beweegrichting van de GPS-ontvanger tijdens de "
+"opname wordt aangegeven. 'T' betekent het ware noorden en 'M' is het "
+"magnetische noorden."
+
+#: libexif/exif-tag.c:147
+msgid "Direction of Movement"
+msgstr "Bewegingsrichting"
+
+#: libexif/exif-tag.c:148
+msgid ""
+"Indicates the direction of GPS receiver movement. The range of values is "
+"from 0.00 to 359.99."
+msgstr ""
+"Geeft de beweegrichting van de GPS-ontvanger. Het bereik ligt tussen de 0.00 "
+"en 359.99."
+
+#: libexif/exif-tag.c:150
+msgid "GPS Image Direction Reference"
+msgstr "GPS-referentie voor afbeeldingsrichting"
+
+#: libexif/exif-tag.c:151
+msgid ""
+"Indicates the reference for giving the direction of the image when it is "
+"captured. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+"De referentie waarmee de richting van de afbeelding tijdens de opname wordt "
+"aangegeven. 'T' betekent het ware noorden en 'M' is het magnetische noorden."
+
+#: libexif/exif-tag.c:153
+msgid "GPS Image Direction"
+msgstr "GPS-afbeeldingsrichting"
+
+#: libexif/exif-tag.c:154
+msgid ""
+"Indicates the direction of the image when it was captured. The range of "
+"values is from 0.00 to 359.99."
+msgstr ""
+"Geeft de richting van de afbeelding tijdens de opname. Het bereik ligt "
+"tussen de 0.00 en 359.99."
+
+#: libexif/exif-tag.c:156
+msgid "Geodetic Survey Data Used"
+msgstr "Geodetische onderzoeksgegevens gebruikt"
+
+#: libexif/exif-tag.c:157
+msgid ""
+"Indicates the geodetic survey data used by the GPS receiver. If the survey "
+"data is restricted to Japan, the value of this tag is 'TOKYO' or 'WGS-84'. "
+"If a GPS Info tag is recorded, it is strongly recommended that this tag be "
+"recorded."
+msgstr ""
+"Geeft de geodetische onderzoeksgegevens zoals door de GPS-ontvanger wordt "
+"gebruikt. Als de onderzoeksgegevens zich beperken tot Japan, dan is de "
+"waarde van dit label 'TOKYO' of 'WGS-84'. Als een GPS-informatielabel wordt "
+"geregistreerd is het sterk aanbevolen dit label op te slaan."
+
+#: libexif/exif-tag.c:161
+msgid "Reference For Latitude of Destination"
+msgstr "Referentie voor lengtegraad van bestemming"
+
+#: libexif/exif-tag.c:162
+msgid ""
+"Indicates whether the latitude of the destination point is north or south "
+"latitude. The ASCII value 'N' indicates north latitude, and 'S' is south "
+"latitude."
+msgstr ""
+"Geeft aan of de breedtegraad de noorder- of zuiderbreedte betreft. De ASCII-"
+"waarde 'N' verwijst naar noorderbreedte en 'S' naar zuiderbreedte."
+
+#: libexif/exif-tag.c:165
+msgid "Latitude of Destination"
+msgstr "Breedtegraad van bestemming"
+
+#: libexif/exif-tag.c:166
+msgid ""
+"Indicates the latitude of the destination point. The latitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If latitude is expressed as degrees, minutes and seconds, a "
+"typical format would be dd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be dd/1,mmmm/100,0/1."
+msgstr ""
+"Geeft de breedtegraad van de bestemming aan. De breedtegraad wordt "
+"uitgedrukt als drie reële waarden in respectievelijk graden, minuten en "
+"seconden. Als graden, minuten en seconden worden weergegeven, dan is de "
+"opmaak dd/1,mm/1,ss/1. Als graden en minuten worden gebruikt en, "
+"bijvoorbeeld, delen van minuten worden weergegeven tot in twee decimale "
+"posities, dan is de opmaak dd/1,mmmm/100,0/1"
+
+#: libexif/exif-tag.c:173
+msgid "Reference for Longitude of Destination"
+msgstr "Referentie voor lengtegraad van bestemming"
+
+#: libexif/exif-tag.c:174
+msgid ""
+"Indicates whether the longitude of the destination point is east or west "
+"longitude. ASCII 'E' indicates east longitude, and 'W' is west longitude."
+msgstr ""
+"Geeft aan of de lengtegraad de oosterlijke of de westerlijke betreft. ASCII "
+"'E' betekent oosterlengte en 'W' is westerlengte."
+
+#: libexif/exif-tag.c:177
+msgid "Longitude of Destination"
+msgstr "Lengtegraad van bestemming"
+
+#: libexif/exif-tag.c:178
+msgid ""
+"Indicates the longitude of the destination point. The longitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If longitude is expressed as degrees, minutes and seconds, a "
+"typical format would be ddd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be ddd/1,mmmm/100,0/1."
+msgstr ""
+"Geeft de lengtegraad van de bestemming aan. De lengtegraad wordt uitgedrukt "
+"als drie reële waarden in respectievelijk graden, minuten en seconden. Als "
+"graden, minuten en seconden worden weergegeven, dan is de opmaak dd/1,mm/1,"
+"ss/1. Als graden en minuten worden gebruikt en, bijvoorbeeld, delen van "
+"minuten worden weergegeven in twee decimale posities, dan is de opmaak dd/1,"
+"mmmm/100,0/1"
+
+#: libexif/exif-tag.c:186
+msgid "Reference for Bearing of Destination"
+msgstr "Referentie voor richting van bestemming"
+
+#: libexif/exif-tag.c:187
+msgid ""
+"Indicates the reference used for giving the bearing to the destination "
+"point. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+"De referentie waarmee de richting van de afbeelding tijdens de opname wordt "
+"aangegeven. 'T' betekent het ware noorden en 'M' is het magnetische noorden."
+
+#: libexif/exif-tag.c:190
+msgid "Bearing of Destination"
+msgstr "Richting van bestemming"
+
+#: libexif/exif-tag.c:191
+msgid ""
+"Indicates the bearing to the destination point. The range of values is from "
+"0.00 to 359.99."
+msgstr ""
+"Geeft de richting naar de bestemming. Het bereik ligt tussen de 0.00 en "
+"359.99."
+
+#: libexif/exif-tag.c:193
+msgid "Reference for Distance to Destination"
+msgstr "Referentie voor afstand tot bestemming"
+
+#: libexif/exif-tag.c:194
+msgid ""
+"Indicates the unit used to express the distance to the destination point. "
+"'K', 'M' and 'N' represent kilometers, miles and knots."
+msgstr ""
+"Geeft de eenheid waarin de afstand tot de bestemming wordt uitgedrukt. 'K', "
+"'M' en 'N' staan voor respectievelijk kilometers, mijlen en zeemijlen."
+
+#: libexif/exif-tag.c:197
+msgid "Distance to Destination"
+msgstr "Afstand tot bestemming"
+
+#: libexif/exif-tag.c:198
+msgid "Indicates the distance to the destination point."
+msgstr "Geeft de afstand tot de bestemming."
+
+#: libexif/exif-tag.c:199
+msgid "Name of GPS Processing Method"
+msgstr "Naam van GPS-verwerkingsmethode"
+
+#: libexif/exif-tag.c:200
+msgid ""
+"A character string recording the name of the method used for location "
+"finding. The first byte indicates the character code used, and this is "
+"followed by the name of the method. Since the Type is not ASCII, NULL "
+"termination is not necessary."
+msgstr ""
+"Een tekenreeks waarin de naam van de methode staat waarmee de locatie wordt "
+"bepaald. De eerste byte geeft de gebruikte tekencode, en dit wordt gevolgd "
+"door de naam van de methode. Omdat het geen ASCII betreft, is afsluiten met "
+"een NUL niet noodzakelijk. "
+
+#: libexif/exif-tag.c:205
+msgid "Name of GPS Area"
+msgstr "Naam van GPS-gebied"
+
+#: libexif/exif-tag.c:206
+msgid ""
+"A character string recording the name of the GPS area. The first byte "
+"indicates the character code used, and this is followed by the name of the "
+"GPS area. Since the Type is not ASCII, NULL termination is not necessary."
+msgstr ""
+"Een tekenreeks waarin de naam van het GPS-gebied is opgeslagen. De eerste "
+"byte geeft de gebruikte tekencode, en dit wordt gevolgd door de naam van het "
+"GPS-gebied. Omdat het geen ASCII betreft, is afsluiten met een NUL niet "
+"noodzakelijk. "
+
+#: libexif/exif-tag.c:210
+msgid "GPS Date"
+msgstr "GPS-datum"
+
+#: libexif/exif-tag.c:211
+msgid ""
+"A character string recording date and time information relative to UTC "
+"(Coordinated Universal Time). The format is \"YYYY:MM:DD\". The length of "
+"the string is 11 bytes including NULL."
+msgstr ""
+"Een tekenreeks waarin de datum- en tijdinformatie relatief tot UTC "
+"(Coordinated Universal Time) is opgeslagen in de vorm \"YYYY:MM:DD\". De "
+"lengte van de tekenreeks is 11 byte, inclusief NUL."
+
+#: libexif/exif-tag.c:215
+msgid "GPS Differential Correction"
+msgstr "GPS-differentiaalcorrectie (DGPS)"
+
+#: libexif/exif-tag.c:216
+msgid ""
+"Indicates whether differential correction is applied to the GPS receiver."
+msgstr "Geeft aan of differentiaalcorrectie op de GPS-ontvanger is toegepast."
+
+#: libexif/exif-tag.c:220
+msgid "New Subfile Type"
+msgstr "Nieuw soort nevenbestand"
+
+#: libexif/exif-tag.c:220
+msgid "A general indication of the kind of data contained in this subfile."
+msgstr "Een algemene indicatie van het soort gegevens in dit nevenbestand"
+
+#: libexif/exif-tag.c:222
+msgid "Image Width"
+msgstr "Afbeeldingsbreedte"
+
+#: libexif/exif-tag.c:223
+msgid ""
+"The number of columns of image data, equal to the number of pixels per row. "
+"In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+"Het aantal kolommen afbeeldingsgegevens, gelijk aan het aantal pixels per "
+"rij. In JPEG-gecomprimeerde gegevens wordt een JPEG-aanduiding gebruikt in "
+"plaats van dit label."
+
+#: libexif/exif-tag.c:227
+msgid "Image Length"
+msgstr "Afbeeldingslengte"
+
+#: libexif/exif-tag.c:228
+msgid ""
+"The number of rows of image data. In JPEG compressed data a JPEG marker is "
+"used instead of this tag."
+msgstr ""
+"Het aantal rijen afbeeldingsgegevens. In JPEG-gecomprimeerde gegevens wordt "
+"een JPEG-aanduiding gebruikt in plaats van dit label."
+
+#: libexif/exif-tag.c:231
+msgid "Bits per Sample"
+msgstr "Bits per monster"
+
+#: libexif/exif-tag.c:232
+msgid ""
+"The number of bits per image component. In this standard each component of "
+"the image is 8 bits, so the value for this tag is 8. See also "
+"<SamplesPerPixel>. In JPEG compressed data a JPEG marker is used instead of "
+"this tag."
+msgstr ""
+"Het aantal bits per afbeeldingscomponent. In deze standaard bestaat iedere "
+"afbeeldingscomponent uit 8 bits, dus de waarde van deze label is 8. Zie ook "
+"<SamplesPerPixel>. In JPEG-gecomprimeerde gegevens wordt een JPEG-aanduiding "
+"gebruikt in plaats van dit label."
+
+#: libexif/exif-tag.c:237
+msgid "Compression"
+msgstr "Compressie"
+
+#: libexif/exif-tag.c:238
+msgid ""
+"The compression scheme used for the image data. When a primary image is JPEG "
+"compressed, this designation is not necessary and is omitted. When "
+"thumbnails use JPEG compression, this tag value is set to 6."
+msgstr ""
+"De comprimeerregels voor de afbeeldingsgegevens. Als een hoofdafbeelding "
+"JPEG-gecomprimeerd is, dan is deze aanduiding niet nodig en wordt het "
+"weggelaten. Als miniaturen JPEG-compressie gebruiken, dan wordt deze "
+"labelwaarde ingesteld op 6."
+
+#: libexif/exif-tag.c:244
+msgid "Photometric Interpretation"
+msgstr "Fotometrieke interpretatie"
+
+#: libexif/exif-tag.c:245
+msgid ""
+"The pixel composition. In JPEG compressed data a JPEG marker is used instead "
+"of this tag."
+msgstr ""
+"De pixelcompositie. In JPEG-gecomprimeerde gegevens wordt een JPEG-"
+"aanduiding gebruikt in plaats van dit label."
+
+#: libexif/exif-tag.c:249
+msgid "Fill Order"
+msgstr "Invulvolgorde"
+
+#: libexif/exif-tag.c:251
+msgid "Document Name"
+msgstr "Naam van document"
+
+#: libexif/exif-tag.c:253
+msgid "Image Description"
+msgstr "Beschrijving van afbeelding"
+
+#: libexif/exif-tag.c:254
+msgid ""
+"A character string giving the title of the image. It may be a comment such "
+"as \"1988 company picnic\" or the like. Two-bytes character codes cannot be "
+"used. When a 2-bytes code is necessary, the Exif Private tag <UserComment> "
+"is to be used."
+msgstr ""
+"Een tekenreeks met de afbeeldingstitel. Dit kan bestaan uit een opmerkingen "
+"zoals \"2008 bedrijfsuitje\" of iets dergelijks. Twee-byte tekencodes kunnen "
+"niet gebruikt worden. Als deze codering nodig is, gebruik dan het Exif-"
+"gebonden label <UserComment>."
+
+#: libexif/exif-tag.c:260
+msgid "Manufacturer"
+msgstr "Fabrikant"
+
+#: libexif/exif-tag.c:261
+msgid ""
+"The manufacturer of the recording equipment. This is the manufacturer of the "
+"DSC, scanner, video digitizer or other equipment that generated the image. "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+"De fabrikant van de opnameapparatuur. Dit is de fabrikant van de DSC, de "
+"scanner, de video-digitaalomzetter of andere apparatuur die de afbeelding "
+"genereert. Als het veld leeg blijft, dan wordt dit als onbekend beschouwd."
+
+#: libexif/exif-tag.c:267
+msgid "Model"
+msgstr "Model"
+
+#: libexif/exif-tag.c:268
+msgid ""
+"The model name or model number of the equipment. This is the model name or "
+"number of the DSC, scanner, video digitizer or other equipment that "
+"generated the image. When the field is left blank, it is treated as unknown."
+msgstr ""
+"De modelnaam of het modelnummer van de apparatuur. Dit is de modelnaam of "
+"nummer van de DSC, de scanner, de video-digitaalomzetter of andere "
+"apparatuur die de afbeelding genereert. Als het veld leeg blijft, dan wordt "
+"dit als onbekend beschouwd."
+
+#: libexif/exif-tag.c:273
+msgid "Strip Offsets"
+msgstr "Strookverschuiving"
+
+#: libexif/exif-tag.c:274
+msgid ""
+"For each strip, the byte offset of that strip. It is recommended that this "
+"be selected so the number of strip bytes does not exceed 64 Kbytes. With "
+"JPEG compressed data this designation is not needed and is omitted. See also "
+"<RowsPerStrip> and <StripByteCounts>."
+msgstr ""
+"Voor iedere strook, de byteverschuiving daarvan. Het wordt aanbevolen om dit "
+"zo te selecteren dat het aantal strookbytes de 64 Kbytes niet overschrijdt. "
+"Met JPEG-gecomprimeerde gegevens is deze aanduiding niet nodig en wordt "
+"weggelaten. Zie ook <RowsPerStrip> en <StripByteCounts>."
+
+#: libexif/exif-tag.c:280
+msgid "Orientation"
+msgstr "Oriëntatie"
+
+#: libexif/exif-tag.c:281
+msgid "The image orientation viewed in terms of rows and columns."
+msgstr "De bekeken afbeeldingsoriëntatie, uitgedrukt in rijen en kolommen."
+
+#: libexif/exif-tag.c:284
+msgid "Samples per Pixel"
+msgstr "Monsters per pixel"
+
+#: libexif/exif-tag.c:285
+msgid ""
+"The number of components per pixel. Since this standard applies to RGB and "
+"YCbCr images, the value set for this tag is 3. In JPEG compressed data a "
+"JPEG marker is used instead of this tag."
+msgstr ""
+"Het aantal componenten per pixel. Omdat deze standaard geldt voor RGB- en "
+"YCbCr-afbeeldingen, wordt de waarde van dit label ingesteld op 3. In JPEG-"
+"gecomprimeerde gegevens wordt een JPEG-aanduiding gebruikt in plaats van dit "
+"label."
+
+#: libexif/exif-tag.c:290
+msgid "Rows per Strip"
+msgstr "Rijen per strook"
+
+#: libexif/exif-tag.c:291
+msgid ""
+"The number of rows per strip. This is the number of rows in the image of one "
+"strip when an image is divided into strips. With JPEG compressed data this "
+"designation is not needed and is omitted. See also <StripOffsets> and "
+"<StripByteCounts>."
+msgstr ""
+"Het aantal rijen per strook. Dit is het aantal rijen in de afbeelding van "
+"een strook als de afbeelding in stroken verdeeld is. Met JPEG-gecomprimeerde "
+"gegevens is deze aanduiding niet nodig en wordt weggelaten. Zie ook "
+"<StripOffsets> en <StripByteCounts>."
+
+#: libexif/exif-tag.c:297
+msgid "Strip Byte Count"
+msgstr "Aantal strookbytes"
+
+#: libexif/exif-tag.c:298
+msgid ""
+"The total number of bytes in each strip. With JPEG compressed data this "
+"designation is not needed and is omitted."
+msgstr ""
+"Het aantal bytes in iedere strook. Met JPEG-gecomprimeerde gegevens is deze "
+"aanduiding niet nodig en wordt weggelaten."
+
+#: libexif/exif-tag.c:301
+msgid "X-Resolution"
+msgstr "x-resolutie"
+
+#: libexif/exif-tag.c:302
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageWidth> direction. "
+"When the image resolution is unknown, 72 [dpi] is designated."
+msgstr ""
+"Het aantal pixels per <ResolutionUnit> in de <ImageWidth>-richting. Als de "
+"afbeeldingsresolutie niet bekend is, wordt 72 [dpi] toegewezen."
+
+#: libexif/exif-tag.c:306
+msgid "Y-Resolution"
+msgstr "x-resolutie"
+
+#: libexif/exif-tag.c:307
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageLength> direction. "
+"The same value as <XResolution> is designated."
+msgstr ""
+"Het aantal pixels per <ResolutionUnit> in de <ImageLength>-richting. "
+"Dezelfde waarde als <XResolution> wordt toegewezen."
+
+#: libexif/exif-tag.c:311
+msgid "Planar Configuration"
+msgstr "Planaire configuratie"
+
+#: libexif/exif-tag.c:312
+msgid ""
+"Indicates whether pixel components are recorded in a chunky or planar "
+"format. In JPEG compressed files a JPEG marker is used instead of this tag. "
+"If this field does not exist, the TIFF default of 1 (chunky) is assumed."
+msgstr ""
+"Geeft aan of pixelcomponenten opgeslagen worden in chunky-structuur (1 pixel "
+"= 1 byte) of planar-structuur (1 pixel = 1 bit). In JPEG-gecomprimeerde "
+"bestanden wordt een JPEG-aanduiding gebruikt in plaats van dit label. Als "
+"dit veld niet bestaat, dan wordt de TIFF-standaard van 1 (chunky) "
+"aangehouden."
+
+#: libexif/exif-tag.c:317
+msgid "Resolution Unit"
+msgstr "Resolutieeenheid"
+
+#: libexif/exif-tag.c:318
+msgid ""
+"The unit for measuring <XResolution> and <YResolution>. The same unit is "
+"used for both <XResolution> and <YResolution>. If the image resolution is "
+"unknown, 2 (inches) is designated."
+msgstr ""
+"De eenheid van <XResolution> en <YResolution>. Voor <XResolution> en "
+"<YResolution> wordt dezelfde eenheid gebruikt. Als de afbeeldingsresolutie "
+"onbekend is, wordt 2 (inches) toegewezen."
+
+#: libexif/exif-tag.c:323
+msgid "Transfer Function"
+msgstr "Uitwisselingsfunctie"
+
+#: libexif/exif-tag.c:324
+msgid ""
+"A transfer function for the image, described in tabular style. Normally this "
+"tag is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+"Een uitwisselingsfunctie voor de afbeelding, uitgedrukt in tabelvorm. "
+"Normaal is dit label niet nodig, omdat de kleurruimte opgegeven wordt in het "
+"informatielabel (<ColorSpace>)."
+
+#: libexif/exif-tag.c:328
+msgid "Software"
+msgstr "Programmatuur"
+
+#: libexif/exif-tag.c:329
+msgid ""
+"This tag records the name and version of the software or firmware of the "
+"camera or image input device used to generate the image. The detailed format "
+"is not specified, but it is recommended that the example shown below be "
+"followed. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Dit label bevat de naam en versie van de programmatuur of firmware van de "
+"camera of het apparaat waarmee de afbeelding gegenereerd is. De "
+"gedetailleerde structuur is niet gespecificeerd, maar het wordt aanbevolen "
+"het onderstaande voorbeeld te volgen. Als het veld leeg is, wordt het als "
+"onbekend behandeld."
+
+#: libexif/exif-tag.c:336
+msgid "Date and Time"
+msgstr "Datum en tijd"
+
+#: libexif/exif-tag.c:337
+msgid ""
+"The date and time of image creation. In this standard (EXIF-2.1) it is the "
+"date and time the file was changed."
+msgstr ""
+"De datum en het tijdstip waarop de afbeelding gemaakt is. In deze standaard "
+"(EXIF-2.1) betreft het de datum en het tijdstip waarop het bestand veranderd "
+"is."
+
+#: libexif/exif-tag.c:340
+msgid "Artist"
+msgstr "Artiest"
+
+#: libexif/exif-tag.c:341
+msgid ""
+"This tag records the name of the camera owner, photographer or image "
+"creator. The detailed format is not specified, but it is recommended that "
+"the information be written as in the example below for ease of "
+"Interoperability. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Dit label bevat de naam van cameraeigenaar, de fotograaf of de "
+"afbeeldingsmaker. De gedetailleerde structuur is niet gespecificeerd, maar "
+"het wordt aanbevolen om de informatie te schrijven zoals in het onderstaande "
+"voorbeeld in verband met de uitwisselbaarheid. Als het veld leeg is, wordt "
+"het als onbekend behandeld."
+
+#: libexif/exif-tag.c:347 libexif/pentax/mnote-pentax-tag.c:113
+msgid "White Point"
+msgstr "Witpunt"
+
+#: libexif/exif-tag.c:348
+msgid ""
+"The chromaticity of the white point of the image. Normally this tag is not "
+"necessary, since color space is specified in the color space information tag "
+"(<ColorSpace>)."
+msgstr ""
+"De chromaticiteit van het afbeeldingswitpunt. Normaal is dit label niet "
+"nodig, omdat de kleurruimte opgegeven wordt in het informatielabel "
+"(<ColorSpace>)."
+
+#: libexif/exif-tag.c:353
+msgid "Primary Chromaticities"
+msgstr "Primaire chromaticiteit"
+
+#: libexif/exif-tag.c:354
+msgid ""
+"The chromaticity of the three primary colors of the image. Normally this tag "
+"is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+"De chromaticiteit van de drie primaire afbeeldingskleuren. Normaal is dit "
+"label niet nodig, omdat de kleurruimte opgegeven wordt in het "
+"informatielabel (<ColorSpace>)."
+
+#: libexif/exif-tag.c:359
+msgid "Defined by Adobe Corporation to enable TIFF Trees within a TIFF file."
+msgstr ""
+"Gedefinieerd door Adobe Corporation om TIFF-bomen binnen een TIFF-bestand "
+"mogelijk te maken."
+
+#: libexif/exif-tag.c:362
+msgid "Transfer Range"
+msgstr "Uitwisselingsbereik"
+
+#: libexif/exif-tag.c:366
+msgid "JPEG Interchange Format"
+msgstr "JPEG uitwisselingsstructuur"
+
+#: libexif/exif-tag.c:367
+msgid ""
+"The offset to the start byte (SOI) of JPEG compressed thumbnail data. This "
+"is not used for primary image JPEG data."
+msgstr ""
+"De verschuiving ten opzichte van de beginbyte (SOI) van JPEG-gecomprimeerde "
+"miniatuurgegevens. Dit wordt niet gebruikt voor primaire JPEG-"
+"afbeeldingsgegevens."
+
+#: libexif/exif-tag.c:372
+msgid "JPEG Interchange Format Length"
+msgstr "Lengte JPEG uitwisselingsstructuur"
+
+#: libexif/exif-tag.c:373
+msgid ""
+"The number of bytes of JPEG compressed thumbnail data. This is not used for "
+"primary image JPEG data. JPEG thumbnails are not divided but are recorded as "
+"a continuous JPEG bitstream from SOI to EOI. Appn and COM markers should not "
+"be recorded. Compressed thumbnails must be recorded in no more than 64 "
+"Kbytes, including all other data to be recorded in APP1."
+msgstr ""
+"Het aantal bytes aan JPEG-gecomprimeerde miniatuurgegevens. Dit wordt niet "
+"gebruikt voor primaire JPEG-afbeeldingsgegevens. JPEG-miniaturen worden niet "
+"opgedeeld, maar als een continue JPEG-bitstroom van SOI tot EOI vastgelegd. "
+"Appn- en COM-aanduidingen mogen niet vastgelegd worden. Gecomprimeerde "
+"miniaturen moeten passen in maximaal 64 KBytes, inclusief alle andere "
+"gegevens die in APP1 opgenomen moeten worden."
+
+#: libexif/exif-tag.c:382
+msgid "YCbCr Coefficients"
+msgstr "YCbCr-coefficiënten"
+
+#: libexif/exif-tag.c:383
+msgid ""
+"The matrix coefficients for transformation from RGB to YCbCr image data. No "
+"default is given in TIFF; but here the value given in \"Color Space "
+"Guidelines\", is used as the default. The color space is declared in a color "
+"space information tag, with the default being the value that gives the "
+"optimal image characteristics Interoperability this condition."
+msgstr ""
+"De matrixcoefficiënten voor de transformatie van RGB- naar YCbCr-"
+"afbeeldingsinformatie. Voor TIFF is geen standaard gegeven, maar hier wordt "
+"als standaard de waarde gebruikt uit \"Richtlijnen voor kleurruimte\". De "
+"kleurruimte is aangekondigd in een kleurruimteinformatielabel, waarbij als "
+"standaardwaarde de optimale afbeeldingskarakterstieken voor uitwisseling "
+"wordt genomen."
+
+#: libexif/exif-tag.c:392
+msgid "YCbCr Sub-Sampling"
+msgstr "YCbCr-submonster"
+
+#: libexif/exif-tag.c:393
+msgid ""
+"The sampling ratio of chrominance components in relation to the luminance "
+"component. In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+"De monsterverhouding van chromatische componenten in relatie tot de "
+"belichtingscomponent. In JPEG-gecomprimeerde gegevens wordt een JPEG-"
+"aanduiding gebruikt in plaats van dit label."
+
+#: libexif/exif-tag.c:398
+msgid "YCbCr Positioning"
+msgstr "YCbCr-positionering"
+
+#: libexif/exif-tag.c:399
+msgid ""
+"The position of chrominance components in relation to the luminance "
+"component. This field is designated only for JPEG compressed data or "
+"uncompressed YCbCr data. The TIFF default is 1 (centered); but when Y:Cb:Cr "
+"= 4:2:2 it is recommended in this standard that 2 (co-sited) be used to "
+"record data, in order to improve the image quality when viewed on TV "
+"systems. When this field does not exist, the reader shall assume the TIFF "
+"default. In the case of Y:Cb:Cr = 4:2:0, the TIFF default (centered) is "
+"recommended. If the reader does not have the capability of supporting both "
+"kinds of <YCbCrPositioning>, it shall follow the TIFF default regardless of "
+"the value in this field. It is preferable that readers be able to support "
+"both centered and co-sited positioning."
+msgstr ""
+"De positie van chromatische componenten in relatie tot de "
+"belichtingscomponent. Dit veld wordt alleen toegekend aan JPEG-"
+"gecomprimeerde gegevens of ongecomprimeerde YCrCb-gegevens. De TIFF-"
+"standaard bedraagt 1 (gecentreerd), maar indien Y:Cb:Cr = 4:2:2 wordt in "
+"deze standaard aanbevolen om 2 (tweezijdig) bij de vastlegging van gegevens "
+"te gebruiken om de beeldkwaliteit te verbeteren bij vertoning op TV-"
+"systemen. Als dit veld niet bestaat, dan gaat de lezer uit van de TIFF-"
+"standaard. In het geval van Y:Cb:Cr = 4:2:0 wordt de TIFF-standaard "
+"(gecentreerd) aanbevolen. Als het de lezer ontbreekt aan ondersteuning van "
+"beide soorten <YCbCrPositioning>, dan moet het de TIFF-standaard volgen, "
+"onafhankelijk van de waarde in dit veld. Het heeft de voorkeur dat lezers "
+"zowel gecentreerd als tweezijdig positioneren ondersteunen."
+
+#: libexif/exif-tag.c:414
+msgid "Reference Black/White"
+msgstr "Referentie zwart-wit"
+
+#: libexif/exif-tag.c:415
+msgid ""
+"The reference black point value and reference white point value. No defaults "
+"are given in TIFF, but the values below are given as defaults here. The "
+"color space is declared in a color space information tag, with the default "
+"being the value that gives the optimal image characteristics "
+"Interoperability these conditions."
+msgstr ""
+"De referentie zwartpunt- en witpuntwaarde. In TIFF worden geen standaarden "
+"gegeven, maar de onderstaande waarden gelden hier als standaard. De "
+"kleurruimte wordt aangekondigd in het kleurruimteinformatielabel, waarbij "
+"als standaard de waarde van de optimale afbeeldingskarakterstieken voor "
+"uitwisseling wordt genomen."
+
+#: libexif/exif-tag.c:423
+msgid "XML Packet"
+msgstr "XML-pakket"
+
+#: libexif/exif-tag.c:423
+msgid "XMP Metadata"
+msgstr "XMP-metagegevens"
+
+#: libexif/exif-tag.c:438 libexif/exif-tag.c:784
+msgid "CFA Pattern"
+msgstr "CFA-patroon"
+
+#: libexif/exif-tag.c:439 libexif/exif-tag.c:785
+msgid ""
+"Indicates the color filter array (CFA) geometric pattern of the image sensor "
+"when a one-chip color area sensor is used. It does not apply to all sensing "
+"methods."
+msgstr ""
+"Geeft het geometrische patroon aan van de kleurfilterreeks (CFA = Color "
+"Filter Array) van de beeldsensor indien een enkele-chip kleurgebiedsensor "
+"wordt gebruikt. Het is niet toepasbaar voor alle opnamemethoden."
+
+#: libexif/exif-tag.c:443
+msgid "Battery Level"
+msgstr "Batterijniveau"
+
+#: libexif/exif-tag.c:444
+msgid "Copyright"
+msgstr "Copyright"
+
+#: libexif/exif-tag.c:445
+msgid ""
+"Copyright information. In this standard the tag is used to indicate both the "
+"photographer and editor copyrights. It is the copyright notice of the person "
+"or organization claiming rights to the image. The Interoperability copyright "
+"statement including date and rights should be written in this field; e.g., "
+"\"Copyright, John Smith, 19xx. All rights reserved.\". In this standard the "
+"field records both the photographer and editor copyrights, with each "
+"recorded in a separate part of the statement. When there is a clear "
+"distinction between the photographer and editor copyrights, these are to be "
+"written in the order of photographer followed by editor copyright, separated "
+"by NULL (in this case, since the statement also ends with a NULL, there are "
+"two NULL codes) (see example 1). When only the photographer is given, it is "
+"terminated by one NULL code (see example 2). When only the editor copyright "
+"is given, the photographer copyright part consists of one space followed by "
+"a terminating NULL code, then the editor copyright is given (see example 3). "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+"Copyright-informatie. In deze standaard wordt het label gebruikt voor de "
+"copyrights van zowel de fotograaf als de bewerker. Het betreft de copyright-"
+"kennisgeving van de persoon of organisatie die het recht op de afbeelding "
+"claimt. De copyrightverklaring van interoperabiliteit inclusief datum en "
+"rechten moeten in dit veld worden opgenomen, bijvoorbeeld: \"Copyright, "
+"Klaas Bourtange, 2008. Alle rechten voorbehouden.\". In deze standaard "
+"worden zowel de fotograaf- als de bewerkerrechten vastgelegd, ieder in een "
+"apart deel van de verklaring. Als er een duidelijk onderscheid is tussen de "
+"rechten van de fotograaf en de bewerker, dan moeten deze in de volgorde "
+"fotograaf, bewerker worden geschreven, gescheiden door NUL (in dit geval "
+"zijn er twee NUL-codes, omdat de verklaring ook eindigt met een NUL-code), "
+"(zie voorbeeld 1). Als alleen de fotograaf genoemd wordt, dan wordt dit "
+"afgesloten met één NUL-code (zie voorbeeld 2). Bij slechts de "
+"bewerkerverklaring bestaat het deel van de fotograaf uit een spatie gevolgd "
+"door de afsluitende NUL-code waarna het bewerker-copyright volgt (zie "
+"voorbeeld 3). Als het veld leeg is, wordt het als onbekend beschouwd."
+
+#: libexif/exif-tag.c:467
+msgid "Exposure time, given in seconds (sec)."
+msgstr "Belichtingstijd in seconden (s)."
+
+#: libexif/exif-tag.c:469 libexif/pentax/mnote-pentax-tag.c:79
+msgid "F-Number"
+msgstr "F-getal"
+
+#: libexif/exif-tag.c:470
+msgid "The F number."
+msgstr "Het F-getal."
+
+#: libexif/exif-tag.c:475
+msgid "Image Resources Block"
+msgstr "Blok met afbeeldingsbronnen"
+
+#: libexif/exif-tag.c:477
+msgid ""
+"A pointer to the Exif IFD. Interoperability, Exif IFD has the same structure "
+"as that of the IFD specified in TIFF. ordinarily, however, it does not "
+"contain image data as in the case of TIFF."
+msgstr ""
+"Een verwijzer naar de Exif IFD. Interoperabiliteit, Exif IFD heeft dezelfde "
+"structuur als die van de IFD opgegeven in TIFF. Normaal gesproken bevat het "
+"echter geen afbeeldingsgegevens, zoals in het geval van TIFF."
+
+#: libexif/exif-tag.c:485
+msgid "Exposure Program"
+msgstr "Belichtingsprogramma"
+
+#: libexif/exif-tag.c:486
+msgid ""
+"The class of the program used by the camera to set exposure when the picture "
+"is taken."
+msgstr ""
+"De programmaklasse die gebruikt wordt door de camera om de belichting in te "
+"stellen bij het nemen van de foto."
+
+#: libexif/exif-tag.c:490
+msgid "Spectral Sensitivity"
+msgstr "Spectrale gevoeligheid"
+
+#: libexif/exif-tag.c:491
+msgid ""
+"Indicates the spectral sensitivity of each channel of the camera used. The "
+"tag value is an ASCII string compatible with the standard developed by the "
+"ASTM Technical Committee."
+msgstr ""
+"Geeft de spectrale gevoeligheid van ieder kanaal van de gebruikte camera "
+"aan. De labelwaarde is een ASCII-tekenreeks compatibel met de standaard "
+"zoals die ontwikkeld is door de ASTM Technical Committee."
+
+#: libexif/exif-tag.c:496
+msgid "GPS Info IFD Pointer"
+msgstr "GPS-informatie IFD Pointer"
+
+#: libexif/exif-tag.c:497
+msgid ""
+"A pointer to the GPS Info IFD. The Interoperability structure of the GPS "
+"Info IFD, like that of Exif IFD, has no image data."
+msgstr ""
+"Een verwijzer naar de GPS-informatie IFD. De interoperabiliteitsstructuur "
+"van de GPS-informatie IFD, net zoals bij de Exif IFD, bevat geen "
+"afbeeldingsgegevens."
+
+#: libexif/exif-tag.c:503
+msgid "ISO Speed Ratings"
+msgstr "ISO-snelheidsgetal"
+
+#: libexif/exif-tag.c:504
+msgid ""
+"Indicates the ISO Speed and ISO Latitude of the camera or input device as "
+"specified in ISO 12232."
+msgstr ""
+"Geeft de ISO-snelheid en ISO-lengtegraad van de camera of het apparaat aan "
+"zoals deze gespecificeerd is in ISO 12232."
+
+#: libexif/exif-tag.c:507
+msgid "Opto-Electronic Conversion Function"
+msgstr "Opto-electronische conversiefuntie"
+
+#: libexif/exif-tag.c:508
+msgid ""
+"Indicates the Opto-Electronic Conversion Function (OECF) specified in ISO "
+"14524. <OECF> is the relationship between the camera optical input and the "
+"image values."
+msgstr ""
+"Geeft de opto-electronische conversiefunctie (OECF) aan gespecificeerd in "
+"ISO 14525. <OECF> betreft de relatie tussen de optische invoer van de camera "
+"en de afbeeldingswaarden."
+
+#: libexif/exif-tag.c:513
+msgid "Time Zone Offset"
+msgstr "Tijdzoneverschuiving"
+
+#: libexif/exif-tag.c:514
+msgid "Encodes time zone of camera clock relative to GMT."
+msgstr "Codeert de tijdzone van de cameraklok in relatie tot GMT."
+
+#: libexif/exif-tag.c:515
+msgid "Exif Version"
+msgstr "Exif-versie"
+
+#: libexif/exif-tag.c:516
+msgid ""
+"The version of this standard supported. Nonexistence of this field is taken "
+"to mean nonconformance to the standard."
+msgstr ""
+"De versie van deze ondersteunde standaard. Ontbreken van dit veld wordt "
+"geïnterpreteerd als het niet voldoen aan de standaard."
+
+#: libexif/exif-tag.c:520
+msgid "Date and Time (Original)"
+msgstr "Datum en tijdstip (oorspronkelijk)"
+
+#: libexif/exif-tag.c:521
+msgid ""
+"The date and time when the original image data was generated. For a digital "
+"still camera the date and time the picture was taken are recorded."
+msgstr ""
+"De datum en het tijdstip waarop de oorspronkelijke afbeeldingsgegevens zijn "
+"gegenereerd. Voor een digitaal fototoestel wordt de datum en het tijdstip "
+"genomen waarop de foto genomen is."
+
+#: libexif/exif-tag.c:526
+msgid "Date and Time (Digitized)"
+msgstr "Datum en tijdstip (van digitalisatie)"
+
+#: libexif/exif-tag.c:527
+msgid "The date and time when the image was stored as digital data."
+msgstr ""
+"De datum en het tijdstip waarop de opname als digitale gegevens is "
+"opgeslagen. "
+
+#: libexif/exif-tag.c:530
+msgid "Components Configuration"
+msgstr "Configuratie van componenten"
+
+#: libexif/exif-tag.c:531
+msgid ""
+"Information specific to compressed data. The channels of each component are "
+"arranged in order from the 1st component to the 4th. For uncompressed data "
+"the data arrangement is given in the <PhotometricInterpretation> tag. "
+"However, since <PhotometricInterpretation> can only express the order of Y, "
+"Cb and Cr, this tag is provided for cases when compressed data uses "
+"components other than Y, Cb, and Cr and to enable support of other sequences."
+msgstr ""
+"Informatie specifiek voor gecomprimeerde gegevens. De kanalen van iedere "
+"component zijn geordend in de volgorde van de eerste tot de vierde component."
+"Voor niet-gecomprimeerde informatie is de gegevensordening beschreven in het "
+"<PhotometricInterpretation>-label. Echter, omdat <PhotometricInterpretation> "
+"alleen uitgedrukt kan worden in de volgorde van Y, Cb en Cr, wordt dit label "
+"gebruikt voor die gevallen waarin gecomprimeerde gegevens componenten "
+"gebruikt afwijkend van Y, Cb en Cr, en om andere ordeningen te ondersteunen."
+
+#: libexif/exif-tag.c:541
+msgid "Compressed Bits per Pixel"
+msgstr "Gecomprimeerde bits per pixel"
+
+#: libexif/exif-tag.c:542
+msgid ""
+"Information specific to compressed data. The compression mode used for a "
+"compressed image is indicated in unit bits per pixel."
+msgstr ""
+"Informatie specifiek voor gecomprimeerde gegevens. De compressiemodus die "
+"voor de gecomprimeerde afbeelding wordt gebruikt, heeft de eenheid bits per "
+"pixel."
+
+#: libexif/exif-tag.c:546 libexif/olympus/mnote-olympus-tag.c:123
+msgid "Shutter Speed"
+msgstr "Sluitertijd"
+
+#: libexif/exif-tag.c:547
+msgid ""
+"Shutter speed. The unit is the APEX (Additive System of Photographic "
+"Exposure) setting."
+msgstr ""
+"Sluitersnelheid. De eenheid is de APEX-instelling (Additive System of "
+"Photographic Exposure)."
+
+#: libexif/exif-tag.c:551
+msgid "The lens aperture. The unit is the APEX value."
+msgstr "Het diafragmagetal. De eenheid is de APEX-waarde."
+
+#: libexif/exif-tag.c:553
+msgid "Brightness"
+msgstr "Helderheid"
+
+#: libexif/exif-tag.c:554
+msgid ""
+"The value of brightness. The unit is the APEX value. Ordinarily it is given "
+"in the range of -99.99 to 99.99."
+msgstr ""
+"De helderheidswaarde. De eenheid is de APEX-waarde. Normaal gesproken valt "
+"dit binnen het bereik van -99.99 tot 99.99."
+
+#: libexif/exif-tag.c:558
+msgid "Exposure Bias"
+msgstr "Belichtingscompensatie"
+
+#: libexif/exif-tag.c:559
+msgid ""
+"The exposure bias. The units is the APEX value. Ordinarily it is given in "
+"the range of -99.99 to 99.99."
+msgstr ""
+"De belichtingscompensatie. De eenheid is de APEX-waarde. Normaal gesproken "
+"ligt dit in het bereik van -99.99 tot 99.99."
+
+#: libexif/exif-tag.c:562
+msgid "Maximum Aperture Value"
+msgstr "Maximale diafragmawaarde"
+
+#: libexif/exif-tag.c:563
+msgid ""
+"The smallest F number of the lens. The unit is the APEX value. Ordinarily it "
+"is given in the range of 00.00 to 99.99, but it is not limited to this range."
+msgstr ""
+"Het kleinste F-getal van de lens. De eenheid is de APEX-waarde. Normaal "
+"gesproken valt dit in het bereik van 00.00 tot 99.99, maar het is niet tot "
+"dit bereik beperkt."
+
+#: libexif/exif-tag.c:568
+msgid "Subject Distance"
+msgstr "Afstand tot onderwerp"
+
+#: libexif/exif-tag.c:569
+msgid "The distance to the subject, given in meters."
+msgstr "De afstand tot het onderwerp, uitgedrukt in meters."
+
+#: libexif/exif-tag.c:572
+msgid "The metering mode."
+msgstr "De meetwijze"
+
+#: libexif/exif-tag.c:574
+msgid "Light Source"
+msgstr "Lichtbron"
+
+#: libexif/exif-tag.c:575
+msgid "The kind of light source."
+msgstr "Het soort lichtbron."
+
+#: libexif/exif-tag.c:578
+msgid ""
+"This tag is recorded when an image is taken using a strobe light (flash)."
+msgstr ""
+"Dit label is vastgelegd als de afbeelding is genomen met een flitslicht "
+"(flitser)."
+
+#: libexif/exif-tag.c:582
+msgid ""
+"The actual focal length of the lens, in mm. Conversion is not made to the "
+"focal length of a 35 mm film camera."
+msgstr ""
+"De werkelijke brandpuntsafstand van de lens in mm. Conversie naar de "
+"brandpuntsafstand van een 35 mm filmcamera wordt niet gemaakt."
+
+#: libexif/exif-tag.c:585
+msgid "Subject Area"
+msgstr "Locatie van het onderwerp"
+
+#: libexif/exif-tag.c:586
+msgid ""
+"This tag indicates the location and area of the main subject in the overall "
+"scene."
+msgstr ""
+"Dit label geeft de locatie en de gebied van het hoofdonderwerp in de "
+"algehele scene."
+
+#: libexif/exif-tag.c:590
+msgid "TIFF/EP Standard ID"
+msgstr "TIFF/ER Standaard-ID"
+
+#: libexif/exif-tag.c:591
+msgid "Maker Note"
+msgstr "Fabrikantennotitie"
+
+#: libexif/exif-tag.c:592
+msgid ""
+"A tag for manufacturers of Exif writers to record any desired information. "
+"The contents are up to the manufacturer."
+msgstr ""
+"Een label voor de fabrikanten van Exif-schrijvers om iedere gewenste "
+"informatie in op te nemen. De inhoud is de verantwoordelijkheid van de "
+"fabrikant."
+
+#: libexif/exif-tag.c:595
+msgid "User Comment"
+msgstr "Gebruikerscommentaar"
+
+#: libexif/exif-tag.c:596
+msgid ""
+"A tag for Exif users to write keywords or comments on the image besides "
+"those in <ImageDescription>, and without the character code limitations of "
+"the <ImageDescription> tag. The character code used in the <UserComment> tag "
+"is identified based on an ID code in a fixed 8-byte area at the start of the "
+"tag data area. The unused portion of the area is padded with NULL (\"00.h"
+"\"). ID codes are assigned by means of registration. The designation method "
+"and references for each character code are defined in the specification. The "
+"value of CountN is determined based on the 8 bytes in the character code "
+"area and the number of bytes in the user comment part. Since the TYPE is not "
+"ASCII, NULL termination is not necessary. The ID code for the <UserComment> "
+"area may be a Defined code such as JIS or ASCII, or may be Undefined. The "
+"Undefined name is UndefinedText, and the ID code is filled with 8 bytes of "
+"all \"NULL\" (\"00.H\"). An Exif reader that reads the <UserComment> tag "
+"must have a function for determining the ID code. This function is not "
+"required in Exif readers that do not use the <UserComment> tag. When a "
+"<UserComment> area is set aside, it is recommended that the ID code be ASCII "
+"and that the following user comment part be filled with blank characters [20."
+"H]."
+msgstr ""
+"Een label voor Exif-gebruikers om sleutelwoorden of commentaar over de "
+"afbeelding vast te leggen, naast die in <ImageDescription> en zonder de "
+"beperkingen van de tekencode van het <ImageDescription>-label. De tekencode "
+"die in de <UserComment> wordt gebruikt, wordt vastgesteld gebaseerd op een "
+"ID-code in een vast 8-byte gebied aan het begin van het labelgegevensruimte. "
+"Het ongebruikte deel van deze ruimte wordt gevuld met NUL (\"00.H\"). ID-"
+"codes worden toegekend via registratie. De toewijzingsmethode en refenties "
+"voor iedere tekencode zijn gegeven in de specificatie. De waarde van CountN "
+"is bepaald gebaseerd op de 8 bytes in de tekencoderuimte en het aantal bytes "
+"in het deel van het gebruikerscommentaar. Omdat het TYPE geen ASCII is, is "
+"beëindiging met een NUL niet noodzakelijk. De ID-code voor het <UserComment>-"
+"begied kan een 'Gedefinieerde code' zijn zoals JIS of ASCII, of mag "
+"ongedefinieerd zijn. De ongedefinieerde naam is UndefinedText en de ID-code "
+"is gevuld met 8 bytes van \"NUL\" (\"00.H\"). Een Exif-lezer die het "
+"<UserComment>-label leest moet een functie hebben om de ID-code te bepalen. "
+"Deze functie is niet vereist in Exif-lezers die het <UserComment>-label niet "
+"gebruiken. Als een <UserComment>-ruimte terzijde worden geschoven wordt "
+"aanbevolen dat de ID-code ASCII is en dat het volgende "
+"gebruikerscommentaardeel wordt gevuld met lege tekens [20.H]."
+
+#: libexif/exif-tag.c:619
+msgid "Sub-second Time"
+msgstr "Deelsecondetijd"
+
+#: libexif/exif-tag.c:620
+msgid "A tag used to record fractions of seconds for the <DateTime> tag."
+msgstr ""
+"Een label voor het vastleggen van fracties van seconden voor het <DateTime>-"
+"label."
+
+#: libexif/exif-tag.c:624
+msgid "Sub-second Time (Original)"
+msgstr "Datum en tijdstip (oorspronkelijk)"
+
+#: libexif/exif-tag.c:625
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeOriginal> tag."
+msgstr ""
+"Een label voor het vastleggen van fracties van seconden voor het "
+"<DateTimeOriginal>-label."
+
+#: libexif/exif-tag.c:629
+msgid "Sub-second Time (Digitized)"
+msgstr "Datum en tijdstip (van digitalisatie)"
+
+#: libexif/exif-tag.c:630
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeDigitized> tag."
+msgstr ""
+"Een label voor het vastleggen van fracties van seconden voor het "
+"<DateTimeDigitized>-label."
+
+#: libexif/exif-tag.c:634
+msgid "XP Title"
+msgstr "XP-titel"
+
+#: libexif/exif-tag.c:635
+msgid "A character string giving the title of the image, encoded in UTF-16LE."
+msgstr "Een tekenreeks met de titel van de afbeelding, in UTF-16LE gecodeerd."
+
+#: libexif/exif-tag.c:639
+msgid "XP Comment"
+msgstr "XP-commentaar"
+
+#: libexif/exif-tag.c:640
+msgid ""
+"A character string containing a comment about the image, encoded in UTF-16LE."
+msgstr ""
+"Een tekenreeks met een opmerking over de afbeelding, in UTF-16LE gecodeerd."
+
+#: libexif/exif-tag.c:644
+msgid "XP Author"
+msgstr "XP-auteur"
+
+#: libexif/exif-tag.c:645
+msgid ""
+"A character string containing the name of the image creator, encoded in UTF-"
+"16LE."
+msgstr ""
+"Een tekenreeks met de naam van de maker van de afbeelding, in UTF-16LE "
+"gecodeerd."
+
+#: libexif/exif-tag.c:649
+msgid "XP Keywords"
+msgstr "XP-sleutelwoorden"
+
+#: libexif/exif-tag.c:650
+msgid ""
+"A character string containing key words describing the image, encoded in UTF-"
+"16LE."
+msgstr ""
+"Een tekenreeks met sleutelwoorden die de afbeelding beschrijven, in UTF-16LE "
+"gecodeerd."
+
+#: libexif/exif-tag.c:654
+msgid "XP Subject"
+msgstr "XP-onderwerp"
+
+#: libexif/exif-tag.c:655
+msgid "A character string giving the image subject, encoded in UTF-16LE."
+msgstr ""
+"Een tekenreeks met het onderwerp van de afbeelding, in UTF-16LE gecodeerd."
+
+#: libexif/exif-tag.c:659
+msgid "The FlashPix format version supported by a FPXR file."
+msgstr "De versie van het FlashPix-patroon ondersteund door een FPXR-bestand."
+
+#: libexif/exif-tag.c:661 libexif/pentax/mnote-pentax-tag.c:102
+msgid "Color Space"
+msgstr "Kleurruimte"
+
+#: libexif/exif-tag.c:662
+msgid ""
+"The color space information tag is always recorded as the color space "
+"specifier. Normally sRGB (=1) is used to define the color space based on the "
+"PC monitor conditions and environment. If a color space other than sRGB is "
+"used, Uncalibrated (=FFFF.H) is set. Image data recorded as Uncalibrated can "
+"be treated as sRGB when it is converted to FlashPix."
+msgstr ""
+"De kleurruimte-informatielabel is altijd vastgelegd als de "
+"kleurruimtespecificatie. Normaal wordt sRGB (=1) gebruikt om de kleurruimte "
+"te definiëren gebaseerd op de condities van het PC-beeldscherm en de "
+"omgeving. Als een andere kleurruimte dan sRGB wordt gebruikt, wordt "
+"ongecalibreerd (=FFFF.H) ingesteld. Afbeeldingsgegevens vastgelegd als "
+"ongecalibreerd kunnen worden behandeld als sRGB als deze is geconverteerd "
+"naar FlashPix."
+
+#: libexif/exif-tag.c:670
+msgid "Pixel X Dimension"
+msgstr "X-afmeting pixel"
+
+#: libexif/exif-tag.c:671
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid width of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file."
+msgstr ""
+"Informatie specifiek voor gecomprimeerde gegevens. Als een gecomprimeerd "
+"bestand is vastgelegd, moet de geldige breedte van de betekenisvolle "
+"afbeelding opgenomen worden in dit label, onafhankelijk of er opvulgegevens "
+"zijn of een herstart-aanduiding. Dit label moet niet bestaan in een "
+"ongecomprimeerd bestand."
+
+#: libexif/exif-tag.c:677
+msgid "Pixel Y Dimension"
+msgstr "Y-afmeting pixel"
+
+#: libexif/exif-tag.c:678
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid height of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file. Since data padding is unnecessary in the "
+"vertical direction, the number of lines recorded in this valid image height "
+"tag will in fact be the same as that recorded in the SOF."
+msgstr ""
+"Informatie specifiek voor gecomprimeerde gegevens. Als een gecomprimeerd "
+"bestand is vastgelegd, moet de geldige hoogte van de betekenisvolle "
+"afbeelding opgenomen worden in dit label, onafhankelijk of er opvulgegevens "
+"zijn of een herstart-aanduiding. Dit label moet niet bestaan in een "
+"ongecomprimeerd bestand. Omdat opvulgegevens niet nodig zijn in de vertikale "
+"richting, is het aantal regels in dit label van geldige afbeeldingshoogte "
+"gelijk aan die vastgelegd in de SOF."
+
+#: libexif/exif-tag.c:688
+msgid "Related Sound File"
+msgstr "Bijbehorend geluidsbestand"
+
+#: libexif/exif-tag.c:689
+#, fuzzy
+msgid ""
+"This tag is used to record the name of an audio file related to the image "
+"data. The only relational information recorded here is the Exif audio file "
+"name and extension (an ASCII string consisting of 8 characters + '.' + 3 "
+"characters). The path is not recorded. Stipulations on audio and file naming "
+"conventions are defined in the specification. When using this tag, audio "
+"files must be recorded in conformance to the Exif audio format. Writers are "
+"also allowed to store the data such as Audio within APP2 as FlashPix "
+"extension stream data. The mapping of Exif image files and audio files is "
+"done in any of three ways, [1], [2] and [3]. If multiple files are mapped to "
+"one file as in [2] or [3], the above format is used to record just one audio "
+"file name. If there are multiple audio files, the first recorded file is "
+"given. In the case of [3], for example, for the Exif image file \"DSC00001."
+"JPG\" only  \"SND00001.WAV\" is given as the related Exif audio file. When "
+"there are three Exif audio files \"SND00001.WAV\", \"SND00002.WAV\" and "
+"\"SND00003.WAV\", the Exif image file name for each of them, \"DSC00001.JPG"
+"\", is indicated. By combining multiple relational information, a variety of "
+"playback possibilities can be supported. The method of using relational "
+"information is left to the implementation on the playback side. Since this "
+"information is an ASCII character string, it is terminated by NULL. When "
+"this tag is used to map audio files, the relation of the audio file to image "
+"data must also be indicated on the audio file end."
+msgstr ""
+"Dit label is gebruikt om de naam van een geluidsbestand vast te leggen die "
+"gerelateerd is aan de afbeeldingsgegevens. De enige relationele informatie "
+"die hier wordt vastgelegd is de naam en extentie van het Exif-geluidsbestand "
+"(een ASCII-tekenreeks bestaande uit 8 tekens + '.' + 3 tekens). Het pad is "
+"niet opgeslagen. Voorwaarden voor geluid worden gegeven in paragraaf 3.6.3. "
+"Conventies van bestandsnamen staan in paragraaf 3.7.1. Als dit label wordt "
+"gebruikt, dan moeten geluidsbestanden opgenomen worden in overeenstemming "
+"met het Exif-geluidspatroon. Het afbeelden van Exif-afbeeldingsbestanden en "
+"geluidsbestanden is uitgevoerd op ieder van de drie wijzen zoals aangeduid "
+"in tabel 8. Als meerdere bestanden afgebeeld worden op een bestand zoals in "
+"[2] of [3] van deze tabel, dan wordt het bovenstaande patroon gebruikt om "
+"slechts één Exif-geluidsbestand op te nemen. Als er drie Exif-"
+"geluidsbestanden zijn \"SND00001.WAV\", \"SND00002.WAV\" en \"SND00003.WAV\" "
+"dan wordt de Exif-afbeeldingsnaam voor eenieder \"DSC00001.JPG\", zoals "
+"aangegeven. Door het combineren van meerdere, relationele informatie kan een "
+"variëteit aan afspeelmogelijkheiden worden ondersteund. De methode om "
+"relationele informatie te gebruiken wordt overgelaten aan de implementatie "
+"aan de afspeelzijde. Omdat deze informatie uit ASCII-tekenreeksen bestaat, "
+"wordt deze beëndigd door NUL. Als dit label gebruikt wordt om "
+"geluidsbestanden af te beelden, dan moet de relatie tussen het "
+"geluidsbestand en de afbeeldingsgegevens ook aangegeven worden op het einde "
+"van het geluidsbestand."
+
+#: libexif/exif-tag.c:719
+msgid "Interoperability IFD Pointer"
+msgstr "Interoperabiliteit IFD Pointer"
+
+#: libexif/exif-tag.c:720
+msgid ""
+"Interoperability IFD is composed of tags which stores the information to "
+"ensure the Interoperability and pointed by the following tag located in Exif "
+"IFD. The Interoperability structure of Interoperability IFD is the same as "
+"TIFF defined IFD structure but does not contain the image data "
+"characteristically compared with normal TIFF IFD."
+msgstr ""
+"Interoperabiliteit IFD is samengesteld door labels die informatie bevatten "
+"om deze interoperabiliteit te waarborgen en verwijst naar de volgende label "
+"opgeslagen in Exif IFD. De structuur van interoperabiliteit van "
+"Interoperabiliteit IFD is gelijk aan TIFF-gedefinieerde IFD-structuur, maar "
+"bevat geen afbeeldingsgegevens karakteristiek vergeleken met normale TIFF "
+"IFD. "
+
+#: libexif/exif-tag.c:729
+msgid "Flash Energy"
+msgstr "Flitsenergie"
+
+#: libexif/exif-tag.c:730
+msgid ""
+"Indicates the strobe energy at the time the image is captured, as measured "
+"in Beam Candle Power Seconds (BCPS)."
+msgstr ""
+"Geeft de flitsenergie aan op het moment dat de afbeelding is geschoten, "
+"gemeten in Bean Candle Power Seconds (BCPS)"
+
+#: libexif/exif-tag.c:734
+msgid "Spatial Frequency Response"
+msgstr "Ruimtelijke frequentierespons"
+
+#: libexif/exif-tag.c:735
+msgid ""
+"This tag records the camera or input device spatial frequency table and SFR "
+"values in the direction of image width, image height, and diagonal "
+"direction, as specified in ISO 12233."
+msgstr ""
+"Dit label legt de ruimtelijke frequentietabel van de camera of "
+"invoerapparaat vast en de SFR-waarden in de richting van de "
+"afbeeldingsbreedte, afbeeldingshoogte en de diagonale richting, zoals "
+"beschreven in ISO 12233."
+
+#: libexif/exif-tag.c:741
+msgid "Focal Plane X-Resolution"
+msgstr "Brandpuntsvlak x-resolutie"
+
+#: libexif/exif-tag.c:742
+msgid ""
+"Indicates the number of pixels in the image width (X) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+"Geeft het aantal pixels in de richting van de afbeeldingsbreedte (X) per "
+"<FocalPlaneResolutionUnit> op het camera brandpuntsvlak"
+
+#: libexif/exif-tag.c:746
+msgid "Focal Plane Y-Resolution"
+msgstr "Brandpuntsvlak x-resolutie"
+
+#: libexif/exif-tag.c:747
+msgid ""
+"Indicates the number of pixels in the image height (V) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+"Geeft het aantal pixels in de richting van de afbeeldingshoogte (V) per "
+"<FocalPlaneResolutionUnit> op het camera brandpuntsvlak"
+
+#: libexif/exif-tag.c:751
+msgid "Focal Plane Resolution Unit"
+msgstr "Resolutieeenheid brandpuntsvlak"
+
+#: libexif/exif-tag.c:752
+msgid ""
+"Indicates the unit for measuring <FocalPlaneXResolution> and "
+"<FocalPlaneYResolution>. This value is the same as the <ResolutionUnit>."
+msgstr ""
+"Geeft een meeteenheid van <FocalPlaneXResolution> en "
+"<FocalPlaneYResolution>. Deze waarde is gelijk aan de <ResolutionUnit>."
+
+#: libexif/exif-tag.c:757
+msgid "Subject Location"
+msgstr "Locatie van het onderwerp"
+
+#: libexif/exif-tag.c:758
+msgid ""
+"Indicates the location of the main subject in the scene. The value of this "
+"tag represents the pixel at the center of the main subject relative to the "
+"left edge, prior to rotation processing as per the <Rotation> tag. The first "
+"value indicates the X column number and the second indicates the Y row "
+"number."
+msgstr ""
+"Geeft de locatie van het hoofdonderwerp in de scene. De waarde van dit label "
+"representeert de pixel in het midden van het hoofdonderwerp relatief tot de "
+"linker rand, voordat een rotatie volgens het <Rotation>-label wordt "
+"uitgevoerd. De eerste waarde staat voor het X-kolomnummer en de tweede voor "
+"het Y-kolomnummer."
+
+#: libexif/exif-tag.c:765
+msgid "Exposure Index"
+msgstr "Belichtingsgetal"
+
+#: libexif/exif-tag.c:766
+msgid ""
+"Indicates the exposure index selected on the camera or input device at the "
+"time the image is captured."
+msgstr ""
+"Geeft het belichtingsgetal aan zoals dat geselecteerd is op de camera of "
+"apparaat op het moment dat de afbeelding genomen is."
+
+#: libexif/exif-tag.c:769
+msgid "Sensing Method"
+msgstr "Waarnemingsmethode"
+
+#: libexif/exif-tag.c:770
+msgid "Indicates the image sensor type on the camera or input device."
+msgstr ""
+"Geeft het soort afbeeldingssensor weer op de camera of het invoerapparaat"
+
+#: libexif/exif-tag.c:773 libexif/fuji/mnote-fuji-tag.c:64
+msgid "File Source"
+msgstr "Bestandsbron"
+
+#: libexif/exif-tag.c:774
+msgid ""
+"Indicates the image source. If a DSC recorded the image, the tag value of "
+"this tag always be set to 3, indicating that the image was recorded on a DSC."
+msgstr ""
+"Geeft de afbeeldingsbron aan. Als de afbeelding met een DSC genomen is, "
+"heeft dit label altijd de waarde 3."
+
+#: libexif/exif-tag.c:778
+msgid "Scene Type"
+msgstr "Soort scène"
+
+#: libexif/exif-tag.c:779
+msgid ""
+"Indicates the type of scene. If a DSC recorded the image, this tag value "
+"must always be set to 1, indicating that the image was directly photographed."
+msgstr ""
+"Geeft het soort scene aan. Als de afbeelding met een DSC genomen is, moet de "
+"waarde van dit label altijd 1 bedragen, wat betekent dat de afbeelding "
+"direct gefotografeerd is."
+
+#: libexif/exif-tag.c:789
+msgid "Custom Rendered"
+msgstr "Handmatig gerenderd"
+
+#: libexif/exif-tag.c:790
+msgid ""
+"This tag indicates the use of special processing on image data, such as "
+"rendering geared to output. When special processing is performed, the reader "
+"is expected to disable or minimize any further processing."
+msgstr ""
+"Dit label toont het gebruik van speciale bewerkingen op afbeeldingsgegevens, "
+"zoals verzadiging van de weergave. Bij het uitvoeren van speciale "
+"bewerkingen wordt ervan uitgegaan dat de lezer geen of minimale nabewerking "
+"uitvoert."
+
+#: libexif/exif-tag.c:796
+msgid ""
+"This tag indicates the exposure mode set when the image was shot. In auto-"
+"bracketing mode, the camera shoots a series of frames of the same scene at "
+"different exposure settings."
+msgstr ""
+"Dit label toont de belichtingsmodus op het moment van opname. In auto-"
+"bracketing modus neemt de camera een aantal opnamen van dezelfde scene met "
+"verschillende belichtingsinstellingen."
+
+#: libexif/exif-tag.c:801
+msgid "This tag indicates the white balance mode set when the image was shot."
+msgstr "Dit label toont de witbalansmodus op het moment van opname"
+
+#: libexif/exif-tag.c:805
+msgid "Digital Zoom Ratio"
+msgstr "Digitale zoomverhouding"
+
+#: libexif/exif-tag.c:806
+msgid ""
+"This tag indicates the digital zoom ratio when the image was shot. If the "
+"numerator of the recorded value is 0, this indicates that digital zoom was "
+"not used."
+msgstr ""
+"Dit label toont de digitale zoom op het moment van opname. Als de noemer van "
+"de vastgelegde waarde 0 is, dan is deze functie niet gebruikt."
+
+#: libexif/exif-tag.c:811
+msgid "Focal Length in 35mm Film"
+msgstr "Brandpuntsafstand bij 35mm-film "
+
+#: libexif/exif-tag.c:812
+msgid ""
+"This tag indicates the equivalent focal length assuming a 35mm film camera, "
+"in mm. A value of 0 means the focal length is unknown. Note that this tag "
+"differs from the FocalLength tag."
+msgstr ""
+"Dit label toont de brandpuntsafstand vergelijkbaar met een 35mm-filmcamera, "
+"uitgedrukt in mm. De waarde 0 betekent dat deze onbekend is. Let op het "
+"verschil met het label Brandpuntsafstand."
+
+#: libexif/exif-tag.c:818
+msgid "Scene Capture Type"
+msgstr "Opnametype van scène"
+
+#: libexif/exif-tag.c:819
+msgid ""
+"This tag indicates the type of scene that was shot. It can also be used to "
+"record the mode in which the image was shot. Note that this differs from the "
+"scene type <SceneType> tag."
+msgstr ""
+"Dit label toont het soort scene van de opname. Het kan ook gebruikt worden "
+"voor de modus waarin de opname is gemaakt. Let op het verschil met het label "
+"scenetype <SceneType>."
+
+#: libexif/exif-tag.c:824
+msgid "Gain Control"
+msgstr "Versterkingsregeling"
+
+#: libexif/exif-tag.c:825
+msgid "This tag indicates the degree of overall image gain adjustment."
+msgstr "Dit label toont de algemene versterkingsinstelling voor afbeeldingen."
+
+#: libexif/exif-tag.c:829
+msgid ""
+"This tag indicates the direction of contrast processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Dit label toont de richting van contrastbewerking door de camera tijdens de "
+"opname."
+
+#: libexif/exif-tag.c:833
+msgid ""
+"This tag indicates the direction of saturation processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Dit label toont de richting van verzadigingsbewerking door de camera tijdens "
+"de opname."
+
+#: libexif/exif-tag.c:837
+msgid ""
+"This tag indicates the direction of sharpness processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Dit label toont de richting van scherptebewerking door de camera tijdens de "
+"opname."
+
+#: libexif/exif-tag.c:841
+msgid "Device Setting Description"
+msgstr "Beschrijving van apparaatinstellingen"
+
+#: libexif/exif-tag.c:842
+msgid ""
+"This tag indicates information on the picture-taking conditions of a "
+"particular camera model. The tag is used only to indicate the picture-taking "
+"conditions in the reader."
+msgstr ""
+"Dit label toont informatie over de opnamecondities van een bepaald "
+"cameramodel. Het label wordt alleen gebruikt voor de weergave van de "
+"opnamecondities in de lezer."
+
+#: libexif/exif-tag.c:848
+msgid "Subject Distance Range"
+msgstr "Bereik onderwerpsafstand"
+
+#: libexif/exif-tag.c:849
+msgid "This tag indicates the distance to the subject."
+msgstr "Dit label toont de afstand tot het onderwerp."
+
+#: libexif/exif-tag.c:851
+msgid "Image Unique ID"
+msgstr "Unieke afbeeldings-ID"
+
+#: libexif/exif-tag.c:852
+msgid ""
+"This tag indicates an identifier assigned uniquely to each image. It is "
+"recorded as an ASCII string equivalent to hexadecimal notation and 128-bit "
+"fixed length."
+msgstr ""
+"Dit label toont een unieke code toegewezen aan iedere afbeelding. Het wordt "
+"opgeslagen als een ASCII-tekenreeks vergelijkbaar met hexidecimale notatie "
+"en met een vaste lengte van 128-bit."
+
+#: libexif/exif-tag.c:857
+msgid "Gamma"
+msgstr "Gamma"
+
+#: libexif/exif-tag.c:858
+msgid "Indicates the value of coefficient gamma."
+msgstr "Toont de waarde van de gamma-coëfficient."
+
+#: libexif/exif-tag.c:860
+msgid "PRINT Image Matching"
+msgstr "PRINT-afbeeldingsvergelijking"
+
+#: libexif/exif-tag.c:861
+msgid "Related to Epson's PRINT Image Matching technology"
+msgstr "Verwant aan Epson's PRINT Image Matching technologie"
+
+#: libexif/exif-tag.c:863
+msgid "Padding"
+msgstr "Padding"
+
+#: libexif/exif-tag.c:864
+msgid ""
+"This tag reserves space that can be reclaimed later when additional metadata "
+"are added. New metadata can be written in place by replacing this tag with a "
+"smaller data element and using the reclaimed space to store the new or "
+"expanded metadata tags."
+msgstr ""
+"Dit label reserveert ruimte waar later aanspraak op gemaakt kan worden voor "
+"aanvullende metagegevens. Nieuwe metagegevens kunnen worden opgeslagen door "
+"dit label te vervangen door een kleiner gegevenselement en door de "
+"gereserveerde ruimte te gebruiken voor de opslag van nieuwe of uitgebreide "
+"metagegevenslabels."
+
+#: libexif/fuji/mnote-fuji-entry.c:62
+msgid "Softest"
+msgstr "Zachtst"
+
+#: libexif/fuji/mnote-fuji-entry.c:66
+msgid "Hardest"
+msgstr "Hardst"
+
+#: libexif/fuji/mnote-fuji-entry.c:67 libexif/fuji/mnote-fuji-entry.c:96
+msgid "Medium soft"
+msgstr "Half zacht"
+
+#: libexif/fuji/mnote-fuji-entry.c:68 libexif/fuji/mnote-fuji-entry.c:94
+msgid "Medium hard"
+msgstr "Half hard"
+
+#: libexif/fuji/mnote-fuji-entry.c:69 libexif/fuji/mnote-fuji-entry.c:90
+#: libexif/fuji/mnote-fuji-entry.c:98 libexif/fuji/mnote-fuji-entry.c:182
+msgid "Film simulation mode"
+msgstr "Filmsimulatiemodus"
+
+#: libexif/fuji/mnote-fuji-entry.c:79
+msgid "Incandescent"
+msgstr "Gloeien"
+
+#: libexif/fuji/mnote-fuji-entry.c:85
+msgid "Medium high"
+msgstr "Half hoog"
+
+#: libexif/fuji/mnote-fuji-entry.c:87
+msgid "Medium low"
+msgstr "Half laag"
+
+#: libexif/fuji/mnote-fuji-entry.c:88 libexif/fuji/mnote-fuji-entry.c:97
+msgid "Original"
+msgstr "Oorspronkelijk"
+
+#: libexif/fuji/mnote-fuji-entry.c:124 libexif/pentax/mnote-pentax-entry.c:164
+#: libexif/pentax/mnote-pentax-entry.c:299
+msgid "Program AE"
+msgstr "Programma AE"
+
+#: libexif/fuji/mnote-fuji-entry.c:125
+msgid "Natural photo"
+msgstr "Natuurgetrouwe opname"
+
+#: libexif/fuji/mnote-fuji-entry.c:126
+msgid "Vibration reduction"
+msgstr "Trillingsreductie"
+
+#: libexif/fuji/mnote-fuji-entry.c:127
+msgid "Sunset"
+msgstr "Zonsondergang"
+
+#: libexif/fuji/mnote-fuji-entry.c:128 libexif/pentax/mnote-pentax-entry.c:181
+msgid "Museum"
+msgstr "Museum"
+
+#: libexif/fuji/mnote-fuji-entry.c:129
+msgid "Party"
+msgstr "Feest"
+
+#: libexif/fuji/mnote-fuji-entry.c:130
+msgid "Flower"
+msgstr "Bloem"
+
+#: libexif/fuji/mnote-fuji-entry.c:131 libexif/pentax/mnote-pentax-entry.c:176
+msgid "Text"
+msgstr "Tekst"
+
+#: libexif/fuji/mnote-fuji-entry.c:132
+msgid "NP & flash"
+msgstr "NP & flits"
+
+#: libexif/fuji/mnote-fuji-entry.c:137
+msgid "Aperture priority AE"
+msgstr "AE met prioriteit voor diafragmagetal"
+
+#: libexif/fuji/mnote-fuji-entry.c:138
+msgid "Shutter priority AE"
+msgstr "AE met prioriteit voor sluitertijd"
+
+#: libexif/fuji/mnote-fuji-entry.c:146
+msgid "F-Standard"
+msgstr "F-standaard"
+
+#: libexif/fuji/mnote-fuji-entry.c:147
+msgid "F-Chrome"
+msgstr "F-chroom"
+
+#: libexif/fuji/mnote-fuji-entry.c:148
+msgid "F-B&W"
+msgstr "F-zwart/wit"
+
+#: libexif/fuji/mnote-fuji-entry.c:151
+msgid "No blur"
+msgstr "Geen onscherpte"
+
+#: libexif/fuji/mnote-fuji-entry.c:152
+msgid "Blur warning"
+msgstr "Onscherptewaarschuwing"
+
+#: libexif/fuji/mnote-fuji-entry.c:155
+msgid "Focus good"
+msgstr "Juiste scherpstelling"
+
+#: libexif/fuji/mnote-fuji-entry.c:156
+msgid "Out of focus"
+msgstr "Onscherp"
+
+#: libexif/fuji/mnote-fuji-entry.c:159
+msgid "AE good"
+msgstr "AE correct"
+
+#: libexif/fuji/mnote-fuji-entry.c:160
+msgid "Over exposed"
+msgstr "Overbelicht"
+
+#: libexif/fuji/mnote-fuji-entry.c:164
+msgid "Wide"
+msgstr "Breedte"
+
+#: libexif/fuji/mnote-fuji-entry.c:167
+msgid "F0/Standard"
+msgstr "F0/Standaard"
+
+#: libexif/fuji/mnote-fuji-entry.c:168
+msgid "F1/Studio portrait"
+msgstr "F1/Studioportret"
+
+#: libexif/fuji/mnote-fuji-entry.c:169
+msgid "F1a/Professional portrait"
+msgstr "F1a/Professioneel potret"
+
+#: libexif/fuji/mnote-fuji-entry.c:170
+msgid "F1b/Professional portrait"
+msgstr "F1b/Professioneel portret"
+
+#: libexif/fuji/mnote-fuji-entry.c:171
+msgid "F1c/Professional portrait"
+msgstr "F1c/Professioneel portret"
+
+#: libexif/fuji/mnote-fuji-entry.c:172
+msgid "F2/Fujichrome"
+msgstr "F2/Fujichrome"
+
+#: libexif/fuji/mnote-fuji-entry.c:173
+msgid "F3/Studio portrait Ex"
+msgstr "F3/Studioportret Ex"
+
+#: libexif/fuji/mnote-fuji-entry.c:174
+msgid "F4/Velvia"
+msgstr "F4/Velvia"
+
+#: libexif/fuji/mnote-fuji-entry.c:177
+msgid "Auto (100-400%)"
+msgstr "Auto (100-400%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:179
+msgid "Standard (100%)"
+msgstr "Standaard (100%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:180
+msgid "Wide1 (230%)"
+msgstr "Breedte1 (230%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:181
+msgid "Wide2 (400%)"
+msgstr "Breedte2 (400%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:263
+#, c-format
+msgid "%2.2f mm"
+msgstr "%2.2f mm"
+
+#: libexif/fuji/mnote-fuji-entry.c:298 libexif/pentax/mnote-pentax-entry.c:399
+#: libexif/pentax/mnote-pentax-entry.c:451
+#, c-format
+msgid "%i bytes unknown data"
+msgstr "%i bytes onbekende gegevens"
+
+#: libexif/fuji/mnote-fuji-tag.c:36
+msgid "Maker Note Version"
+msgstr "Versie van de fabrikantennotitie"
+
+#: libexif/fuji/mnote-fuji-tag.c:37
+msgid "This number is unique and based on the date of manufacture."
+msgstr "Dit is een uniek nummer en is gebaseerd op de productiedatum."
+
+#: libexif/fuji/mnote-fuji-tag.c:41
+msgid "Chromaticity Saturation"
+msgstr "Chromatische verzadiging"
+
+#: libexif/fuji/mnote-fuji-tag.c:44
+msgid "Flash Firing Strength Compensation"
+msgstr "Flits-belichtingcompensatie"
+
+#: libexif/fuji/mnote-fuji-tag.c:46
+msgid "Focusing Mode"
+msgstr "Scherpstelmodus"
+
+#: libexif/fuji/mnote-fuji-tag.c:47
+msgid "Focus Point"
+msgstr "Brandpunt"
+
+#: libexif/fuji/mnote-fuji-tag.c:48
+msgid "Slow Synchro Mode"
+msgstr "Langzame synchronisatie"
+
+#: libexif/fuji/mnote-fuji-tag.c:49 libexif/pentax/mnote-pentax-tag.c:72
+msgid "Picture Mode"
+msgstr "Afbeeldingsmodus"
+
+#: libexif/fuji/mnote-fuji-tag.c:50
+msgid "Continuous Taking"
+msgstr "Continu opname"
+
+#: libexif/fuji/mnote-fuji-tag.c:51
+msgid "Continuous Sequence Number"
+msgstr "Volgnummer continue opname"
+
+#: libexif/fuji/mnote-fuji-tag.c:52
+msgid "FinePix Color"
+msgstr "FinePix kleur"
+
+#: libexif/fuji/mnote-fuji-tag.c:53
+msgid "Blur Check"
+msgstr "Controle op onscherpte"
+
+#: libexif/fuji/mnote-fuji-tag.c:54
+msgid "Auto Focus Check"
+msgstr "Controle op auto-focus"
+
+#: libexif/fuji/mnote-fuji-tag.c:55
+msgid "Auto Exposure Check"
+msgstr "Automatische belichtingcontrole"
+
+#: libexif/fuji/mnote-fuji-tag.c:56
+msgid "Dynamic Range"
+msgstr "Dynamisch bereik"
+
+#: libexif/fuji/mnote-fuji-tag.c:57
+msgid "Film Simulation Mode"
+msgstr "Filmsimulatiemodus"
+
+#: libexif/fuji/mnote-fuji-tag.c:58
+msgid "Dynamic Range Wide Mode"
+msgstr "Breed dynamische bereik"
+
+#: libexif/fuji/mnote-fuji-tag.c:59
+msgid "Development Dynamic Range Wide Mode"
+msgstr "Ontwikkeling breed dynamische bereik"
+
+#: libexif/fuji/mnote-fuji-tag.c:60
+msgid "Minimum Focal Length"
+msgstr "Minimale brandpuntsafstand"
+
+#: libexif/fuji/mnote-fuji-tag.c:61
+msgid "Maximum Focal Length"
+msgstr "Maximale brandpuntsafstand"
+
+#: libexif/fuji/mnote-fuji-tag.c:62
+msgid "Maximum Aperture at Minimum Focal"
+msgstr "Maximaal diafragmagetal bij minimale brandpuntsafstand"
+
+#: libexif/fuji/mnote-fuji-tag.c:63
+msgid "Maximum Aperture at Maximum Focal"
+msgstr "Maximaal diafragmagetal bij maximale brandpuntsafstand"
+
+#: libexif/fuji/mnote-fuji-tag.c:65
+msgid "Order Number"
+msgstr "Bestelnummer"
+
+#: libexif/fuji/mnote-fuji-tag.c:66 libexif/pentax/mnote-pentax-tag.c:98
+msgid "Frame Number"
+msgstr "Beeldnummer"
+
+#: libexif/olympus/mnote-olympus-entry.c:49
+#, c-format
+msgid "Invalid format '%s', expected '%s' or '%s'."
+msgstr "Ongeldige structuur '%s', verwacht '%s' of '%s'."
+
+#: libexif/olympus/mnote-olympus-entry.c:89
+msgid "AF non D lens"
+msgstr "AF-non-D lens"
+
+#: libexif/olympus/mnote-olympus-entry.c:91
+msgid "AF-D or AF-S lens"
+msgstr "AF-D of AF-S lens"
+
+#: libexif/olympus/mnote-olympus-entry.c:92
+msgid "AF-D G lens"
+msgstr "AF-D G lens"
+
+#: libexif/olympus/mnote-olympus-entry.c:93
+msgid "AF-D VR lens"
+msgstr "AF-D VR lens"
+
+#: libexif/olympus/mnote-olympus-entry.c:94
+msgid "AF-D G VR lens"
+msgstr "AF-D VR lens"
+
+#: libexif/olympus/mnote-olympus-entry.c:98
+msgid "Flash unit unknown"
+msgstr "Flitser onbekend"
+
+#: libexif/olympus/mnote-olympus-entry.c:99
+msgid "Flash is external"
+msgstr "Externe flitser"
+
+#: libexif/olympus/mnote-olympus-entry.c:100
+msgid "Flash is on camera"
+msgstr "Interne flitser"
+
+#: libexif/olympus/mnote-olympus-entry.c:103
+msgid "VGA basic"
+msgstr "VGA-basis"
+
+#: libexif/olympus/mnote-olympus-entry.c:104
+msgid "VGA normal"
+msgstr "VGA-normaal"
+
+#: libexif/olympus/mnote-olympus-entry.c:105
+msgid "VGA fine"
+msgstr "VGA-fijn"
+
+#: libexif/olympus/mnote-olympus-entry.c:106
+msgid "SXGA basic"
+msgstr "SXGA-basis"
+
+#: libexif/olympus/mnote-olympus-entry.c:107
+msgid "SXGA normal"
+msgstr "SXGA-normaal"
+
+#: libexif/olympus/mnote-olympus-entry.c:108
+msgid "SXGA fine"
+msgstr "SXGA-fijn"
+
+#: libexif/olympus/mnote-olympus-entry.c:109
+msgid "2 Mpixel basic"
+msgstr "2 MPixel-basis"
+
+#: libexif/olympus/mnote-olympus-entry.c:110
+msgid "2 Mpixel normal"
+msgstr "2 MPixel-normaal"
+
+#: libexif/olympus/mnote-olympus-entry.c:111
+msgid "2 Mpixel fine"
+msgstr "2 MPixel-fijn"
+
+#: libexif/olympus/mnote-olympus-entry.c:114
+msgid "Color"
+msgstr "Kleur"
+
+#: libexif/olympus/mnote-olympus-entry.c:119
+msgid "Bright+"
+msgstr "Helderheid+"
+
+#: libexif/olympus/mnote-olympus-entry.c:120
+msgid "Bright-"
+msgstr "Helderheid-"
+
+#: libexif/olympus/mnote-olympus-entry.c:121
+msgid "Contrast+"
+msgstr "Contrast+"
+
+#: libexif/olympus/mnote-olympus-entry.c:122
+msgid "Contrast-"
+msgstr "Contrast-"
+
+#: libexif/olympus/mnote-olympus-entry.c:125
+msgid "ISO 80"
+msgstr "ISO 80"
+
+#: libexif/olympus/mnote-olympus-entry.c:126
+msgid "ISO 160"
+msgstr "ISO 160"
+
+#: libexif/olympus/mnote-olympus-entry.c:127
+msgid "ISO 320"
+msgstr "ISO 320"
+
+#: libexif/olympus/mnote-olympus-entry.c:128
+#: libexif/olympus/mnote-olympus-entry.c:246
+msgid "ISO 100"
+msgstr "ISO 100"
+
+#: libexif/olympus/mnote-olympus-entry.c:132
+msgid "Preset"
+msgstr "Voorinstelling"
+
+#: libexif/olympus/mnote-olympus-entry.c:134
+msgid "Incandescence"
+msgstr "Gloeien"
+
+#: libexif/olympus/mnote-olympus-entry.c:135
+msgid "Fluorescence"
+msgstr "TL-licht"
+
+#: libexif/olympus/mnote-olympus-entry.c:137
+msgid "SpeedLight"
+msgstr "SpeedLight"
+
+#: libexif/olympus/mnote-olympus-entry.c:140
+msgid "No fisheye"
+msgstr "Geen vissenoog"
+
+#: libexif/olympus/mnote-olympus-entry.c:141
+msgid "Fisheye on"
+msgstr "Vissenoog ingeschakeld"
+
+#: libexif/olympus/mnote-olympus-entry.c:144
+msgid "Normal, SQ"
+msgstr "Normaal, SQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:145
+msgid "Normal, HQ"
+msgstr "Normaal, HQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:146
+msgid "Normal, SHQ"
+msgstr "Normaal, SHQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:147
+msgid "Normal, RAW"
+msgstr "Normaal, RAW"
+
+#: libexif/olympus/mnote-olympus-entry.c:148
+msgid "Normal, SQ1"
+msgstr "Normaal, SQ1"
+
+#: libexif/olympus/mnote-olympus-entry.c:149
+msgid "Normal, SQ2"
+msgstr "Normaal, SQ2"
+
+#: libexif/olympus/mnote-olympus-entry.c:150
+msgid "Normal, super high"
+msgstr "Normaal, super hoog"
+
+#: libexif/olympus/mnote-olympus-entry.c:151
+msgid "Normal, standard"
+msgstr "Normaal, standaard"
+
+#: libexif/olympus/mnote-olympus-entry.c:152
+msgid "Fine, SQ"
+msgstr "Fijn, SQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:153
+msgid "Fine, HQ"
+msgstr "Fijn, HQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:154
+msgid "Fine, SHQ"
+msgstr "Fijn, SHQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:155
+msgid "Fine, RAW"
+msgstr "Fijn, RAW"
+
+#: libexif/olympus/mnote-olympus-entry.c:156
+msgid "Fine, SQ1"
+msgstr "Fijn, SQ1"
+
+#: libexif/olympus/mnote-olympus-entry.c:157
+msgid "Fine, SQ2"
+msgstr "Fijn, SQ2"
+
+#: libexif/olympus/mnote-olympus-entry.c:158
+msgid "Fine, super high"
+msgstr "Fijn, super hoog"
+
+#: libexif/olympus/mnote-olympus-entry.c:159
+msgid "Super fine, SQ"
+msgstr "Zeer fijn, SQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:160
+msgid "Super fine, HQ"
+msgstr "Zeer fijn, HQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:161
+msgid "Super fine, SHQ"
+msgstr "Zeer fijn, SHQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:162
+msgid "Super fine, RAW"
+msgstr "Zeer fijn, RAW"
+
+#: libexif/olympus/mnote-olympus-entry.c:163
+msgid "Super fine, SQ1"
+msgstr "Zeer fijn, SQ1"
+
+#: libexif/olympus/mnote-olympus-entry.c:164
+msgid "Super fine, SQ2"
+msgstr "Zeer fijn, SQ2"
+
+#: libexif/olympus/mnote-olympus-entry.c:165
+msgid "Super fine, super high"
+msgstr "Super fijn, super hoog"
+
+#: libexif/olympus/mnote-olympus-entry.c:166
+msgid "Super fine, high"
+msgstr "Zeer fijn, hoog"
+
+#: libexif/olympus/mnote-olympus-entry.c:169
+#: libexif/olympus/mnote-olympus-entry.c:174
+#: libexif/olympus/mnote-olympus-entry.c:208
+#: libexif/olympus/mnote-olympus-entry.c:217
+#: libexif/olympus/mnote-olympus-entry.c:240
+msgid "No"
+msgstr "Nee"
+
+#: libexif/olympus/mnote-olympus-entry.c:180
+msgid "On (Preset)"
+msgstr "Ingeschakeld (Voorinstelling)"
+
+#: libexif/olympus/mnote-olympus-entry.c:185
+msgid "Fill"
+msgstr "Vullen"
+
+#: libexif/olympus/mnote-olympus-entry.c:192
+msgid "Internal + external"
+msgstr "Intern + extern"
+
+#: libexif/olympus/mnote-olympus-entry.c:221
+msgid "Interlaced"
+msgstr "Interlaced"
+
+#: libexif/olympus/mnote-olympus-entry.c:222
+msgid "Progressive"
+msgstr "Progressief"
+
+#: libexif/olympus/mnote-olympus-entry.c:228
+#: libexif/pentax/mnote-pentax-entry.c:85
+#: libexif/pentax/mnote-pentax-entry.c:139
+msgid "Best"
+msgstr "Best"
+
+#: libexif/olympus/mnote-olympus-entry.c:229
+msgid "Adjust exposure"
+msgstr "Belichting instellen"
+
+#: libexif/olympus/mnote-olympus-entry.c:232
+msgid "Spot focus"
+msgstr "Puntscherpstelling"
+
+#: libexif/olympus/mnote-olympus-entry.c:233
+msgid "Normal focus"
+msgstr "Normale scherpstelling"
+
+#: libexif/olympus/mnote-olympus-entry.c:236
+msgid "Record while down"
+msgstr "Opname tijdens neergang"
+
+#: libexif/olympus/mnote-olympus-entry.c:237
+msgid "Press start, press stop"
+msgstr "Druk op start, druk op stop"
+
+#: libexif/olympus/mnote-olympus-entry.c:245
+msgid "ISO 50"
+msgstr "ISO 50"
+
+#: libexif/olympus/mnote-olympus-entry.c:247
+msgid "ISO 200"
+msgstr "ISO 200"
+
+#: libexif/olympus/mnote-olympus-entry.c:248
+msgid "ISO 400"
+msgstr "ISO 400"
+
+#: libexif/olympus/mnote-olympus-entry.c:252
+#: libexif/pentax/mnote-pentax-entry.c:168
+msgid "Sport"
+msgstr "Sport"
+
+#: libexif/olympus/mnote-olympus-entry.c:253
+msgid "TV"
+msgstr "Tijdwaarde"
+
+#: libexif/olympus/mnote-olympus-entry.c:255
+msgid "User 1"
+msgstr "Gebruiker 1"
+
+#: libexif/olympus/mnote-olympus-entry.c:256
+msgid "User 2"
+msgstr "Gebruiker 2"
+
+#: libexif/olympus/mnote-olympus-entry.c:257
+msgid "Lamp"
+msgstr "Lamp"
+
+#: libexif/olympus/mnote-olympus-entry.c:260
+msgid "5 frames/sec"
+msgstr "5 beelden/sec"
+
+#: libexif/olympus/mnote-olympus-entry.c:261
+msgid "10 frames/sec"
+msgstr "10 beelden/sec"
+
+#: libexif/olympus/mnote-olympus-entry.c:262
+msgid "15 frames/sec"
+msgstr "15 beelden/sec"
+
+#: libexif/olympus/mnote-olympus-entry.c:263
+msgid "20 frames/sec"
+msgstr "20 beelden/sec"
+
+#: libexif/olympus/mnote-olympus-entry.c:375
+#, c-format
+msgid "Red Correction %f, blue Correction %f"
+msgstr "Roodcorrectie %f, blauwcorrectie %f"
+
+#: libexif/olympus/mnote-olympus-entry.c:383
+#, c-format
+msgid "%2.2f meters"
+msgstr "%2.2f meters"
+
+#: libexif/olympus/mnote-olympus-entry.c:385
+msgid "No manual focus selection"
+msgstr "Geen handmatige scherpstelling mogelijk"
+
+#: libexif/olympus/mnote-olympus-entry.c:411
+msgid "AF position: center"
+msgstr "AF-positie: centrum"
+
+#: libexif/olympus/mnote-olympus-entry.c:412
+msgid "AF position: top"
+msgstr "AF-positie: bovenzijde"
+
+#: libexif/olympus/mnote-olympus-entry.c:413
+msgid "AF position: bottom"
+msgstr "AF-positie: onderzijde"
+
+#: libexif/olympus/mnote-olympus-entry.c:414
+msgid "AF position: left"
+msgstr "AF-positie: links"
+
+#: libexif/olympus/mnote-olympus-entry.c:415
+msgid "AF position: right"
+msgstr "AF-positie: rechts"
+
+#: libexif/olympus/mnote-olympus-entry.c:416
+msgid "AF position: upper-left"
+msgstr "AF-positie: linksboven"
+
+#: libexif/olympus/mnote-olympus-entry.c:417
+msgid "AF position: upper-right"
+msgstr "AF-positie: rechtsboven"
+
+#: libexif/olympus/mnote-olympus-entry.c:418
+msgid "AF position: lower-left"
+msgstr "AF-positie: linksonder"
+
+#: libexif/olympus/mnote-olympus-entry.c:419
+msgid "AF position: lower-right"
+msgstr "AF-positie: rechtsonder"
+
+#: libexif/olympus/mnote-olympus-entry.c:420
+msgid "AF position: far left"
+msgstr "AF-positie: uiterst links"
+
+#: libexif/olympus/mnote-olympus-entry.c:421
+msgid "AF position: far right"
+msgstr "AF-positie: uiterst rechts"
+
+#: libexif/olympus/mnote-olympus-entry.c:422
+msgid "Unknown AF position"
+msgstr "Onbekende AF-positie"
+
+#: libexif/olympus/mnote-olympus-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:503
+#, c-format
+msgid "Internal error (unknown value %hi)"
+msgstr "Interne fout (onbekende waarde %hi)."
+
+#: libexif/olympus/mnote-olympus-entry.c:441
+#: libexif/olympus/mnote-olympus-entry.c:511
+#, c-format
+msgid "Unknown value %hi"
+msgstr "Onbekende waarde %hi"
+
+#: libexif/olympus/mnote-olympus-entry.c:536
+#: libexif/olympus/mnote-olympus-entry.c:556
+#, c-format
+msgid "Unknown %hu"
+msgstr "Onbekend %hu"
+
+#: libexif/olympus/mnote-olympus-entry.c:553
+msgid "2 sec."
+msgstr "2 sec."
+
+#: libexif/olympus/mnote-olympus-entry.c:592
+msgid "Fast"
+msgstr "snel"
+
+#: libexif/olympus/mnote-olympus-entry.c:696
+msgid "Automatic"
+msgstr "Automatisch"
+
+#: libexif/olympus/mnote-olympus-entry.c:726
+#, c-format
+msgid "Manual: %liK"
+msgstr "Handmatig: %liK"
+
+#: libexif/olympus/mnote-olympus-entry.c:729
+msgid "Manual: unknown"
+msgstr "Handmatig: onbekend"
+
+#: libexif/olympus/mnote-olympus-entry.c:735
+msgid "One-touch"
+msgstr "Direct"
+
+#: libexif/olympus/mnote-olympus-entry.c:791
+#: libexif/olympus/mnote-olympus-entry.c:801
+msgid "Infinite"
+msgstr "Oneindig"
+
+#: libexif/olympus/mnote-olympus-entry.c:809
+#, c-format
+msgid "%i bytes unknown data: "
+msgstr "%i bytes onbekende gegevens: "
+
+#: libexif/olympus/mnote-olympus-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:53
+msgid "ISO Setting"
+msgstr "ISO-instelling"
+
+#: libexif/olympus/mnote-olympus-tag.c:39
+msgid "Color Mode (?)"
+msgstr "Kleurmodus (?)"
+
+#: libexif/olympus/mnote-olympus-tag.c:42
+msgid "Image Sharpening"
+msgstr "Verscherpen van een afbeelding"
+
+#: libexif/olympus/mnote-olympus-tag.c:44
+msgid "Flash Setting"
+msgstr "Flitsinstelling"
+
+#: libexif/olympus/mnote-olympus-tag.c:46
+msgid "White Balance Fine Adjustment"
+msgstr "Fijnafstelling witbalans"
+
+#: libexif/olympus/mnote-olympus-tag.c:47
+msgid "White Balance RB"
+msgstr "Witbalans RB"
+
+#: libexif/olympus/mnote-olympus-tag.c:49
+msgid "ISO Selection"
+msgstr "ISO-instelling"
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Preview Image IFD"
+msgstr "Voorvertoning IFD-opname"
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Offset of the preview image directory (IFD) inside the file."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:51
+msgid "Exposurediff ?"
+msgstr "Verschil in belichting?"
+
+#: libexif/olympus/mnote-olympus-tag.c:54
+msgid "Image Boundary"
+msgstr "Afbeeldingsgrenzen"
+
+#: libexif/olympus/mnote-olympus-tag.c:56
+msgid "Flash Exposure Bracket Value"
+msgstr "Waarde flistbelichtingsbracket"
+
+#: libexif/olympus/mnote-olympus-tag.c:57
+msgid "Exposure Bracket Value"
+msgstr "Waarde belichtingsbracket"
+
+#: libexif/olympus/mnote-olympus-tag.c:58
+#: libexif/olympus/mnote-olympus-tag.c:96
+msgid "Image Adjustment"
+msgstr "Afbeelding aanpassen"
+
+#: libexif/olympus/mnote-olympus-tag.c:59
+msgid "Tone Compensation"
+msgstr "Tintcompensatie"
+
+#: libexif/olympus/mnote-olympus-tag.c:60
+msgid "Adapter"
+msgstr "Adapter"
+
+#: libexif/olympus/mnote-olympus-tag.c:62
+msgid "Lens"
+msgstr "Lens"
+
+#: libexif/olympus/mnote-olympus-tag.c:63
+#: libexif/olympus/mnote-olympus-tag.c:135
+#: libexif/olympus/mnote-olympus-tag.c:185
+msgid "Manual Focus Distance"
+msgstr "Handmatige scherpstellingsafstand"
+
+#: libexif/olympus/mnote-olympus-tag.c:65
+msgid "Flash Used"
+msgstr "Flitser gebruikt"
+
+#: libexif/olympus/mnote-olympus-tag.c:66
+msgid "AF Focus Position"
+msgstr "AF scherpstellingspunt"
+
+#: libexif/olympus/mnote-olympus-tag.c:67
+msgid "Bracketing"
+msgstr "Bracketing"
+
+#: libexif/olympus/mnote-olympus-tag.c:69
+msgid "Lens F Stops"
+msgstr "F-stops lens"
+
+#: libexif/olympus/mnote-olympus-tag.c:70
+msgid "Contrast Curve"
+msgstr "Contrastkromme"
+
+#: libexif/olympus/mnote-olympus-tag.c:71
+#: libexif/olympus/mnote-olympus-tag.c:95
+#: libexif/pentax/mnote-pentax-tag.c:134
+msgid "Color Mode"
+msgstr "Kleurmodus"
+
+#: libexif/olympus/mnote-olympus-tag.c:72
+msgid "Light Type"
+msgstr "Soort licht"
+
+#: libexif/olympus/mnote-olympus-tag.c:74
+msgid "Hue Adjustment"
+msgstr "Tintverstelling"
+
+#: libexif/olympus/mnote-olympus-tag.c:76
+#: libexif/olympus/mnote-olympus-tag.c:163
+#: libexif/pentax/mnote-pentax-tag.c:108
+msgid "Noise Reduction"
+msgstr "Ruisonderdrukking"
+
+#: libexif/olympus/mnote-olympus-tag.c:79
+msgid "Sensor Pixel Size"
+msgstr "Grootte sensorpixel"
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Image Data Size"
+msgstr "Grootte afbeeldingsgegevens"
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Size of compressed image data in bytes."
+msgstr "Grootte van gecomprimeerde afbeeldingsgegevens in bytes."
+
+#: libexif/olympus/mnote-olympus-tag.c:84
+msgid "Total Number of Pictures Taken"
+msgstr "Totaal aantal opnamen"
+
+#: libexif/olympus/mnote-olympus-tag.c:86
+msgid "Optimize Image"
+msgstr "Optimaliseren van een afbeelding"
+
+#: libexif/olympus/mnote-olympus-tag.c:88
+msgid "Vari Program"
+msgstr "Variabel programma"
+
+#: libexif/olympus/mnote-olympus-tag.c:89
+msgid "Capture Editor Data"
+msgstr "Gegevens beeldbewerker"
+
+#: libexif/olympus/mnote-olympus-tag.c:90
+msgid "Capture Editor Version"
+msgstr "Versie beeldbewerker"
+
+#: libexif/olympus/mnote-olympus-tag.c:97
+#: libexif/olympus/mnote-olympus-tag.c:183
+msgid "CCD Sensitivity"
+msgstr "CCD-gevoeligheid"
+
+#: libexif/olympus/mnote-olympus-tag.c:99
+msgid "Focus"
+msgstr "Scherpstelling"
+
+#: libexif/olympus/mnote-olympus-tag.c:102
+msgid "Converter"
+msgstr "Omzetter"
+
+#: libexif/olympus/mnote-olympus-tag.c:105
+msgid "Thumbnail Image"
+msgstr "Minituurafbeelding"
+
+#: libexif/olympus/mnote-olympus-tag.c:106
+msgid "Speed/Sequence/Panorama Direction"
+msgstr "Snelheid/volgorder/panoramarichting"
+
+#: libexif/olympus/mnote-olympus-tag.c:109
+msgid "Black & White Mode"
+msgstr "Zwart-wit modus"
+
+#: libexif/olympus/mnote-olympus-tag.c:111
+msgid "Focal Plane Diagonal"
+msgstr "Scherpstellingvlak diagonaal"
+
+#: libexif/olympus/mnote-olympus-tag.c:112
+msgid "Lens Distortion Parameters"
+msgstr "Lensvervormingsparameters"
+
+#: libexif/olympus/mnote-olympus-tag.c:114
+msgid "Info"
+msgstr "Informatie"
+
+#: libexif/olympus/mnote-olympus-tag.c:115
+msgid "Camera ID"
+msgstr "Camera-ID"
+
+#: libexif/olympus/mnote-olympus-tag.c:116
+msgid "Precapture Frames"
+msgstr "Vooropgenomen beelden"
+
+#: libexif/olympus/mnote-olympus-tag.c:117
+msgid "White Board"
+msgstr "Whiteboard"
+
+#: libexif/olympus/mnote-olympus-tag.c:118
+msgid "One Touch White Balance"
+msgstr "Eénklikswitbalans"
+
+#: libexif/olympus/mnote-olympus-tag.c:119
+msgid "White Balance Bracket"
+msgstr "Witbalans-bracket"
+
+#: libexif/olympus/mnote-olympus-tag.c:120
+#: libexif/pentax/mnote-pentax-tag.c:123
+msgid "White Balance Bias"
+msgstr "Witbalansafwijking"
+
+#: libexif/olympus/mnote-olympus-tag.c:121
+msgid "Data Dump"
+msgstr "Weggeschreven gegevens"
+
+#: libexif/olympus/mnote-olympus-tag.c:124
+msgid "ISO Value"
+msgstr "ISO-waarde"
+
+#: libexif/olympus/mnote-olympus-tag.c:125
+msgid "Aperture Value"
+msgstr "Diafragmawaarde"
+
+#: libexif/olympus/mnote-olympus-tag.c:126
+msgid "Brightness Value"
+msgstr "Helderheidswaarde"
+
+#: libexif/olympus/mnote-olympus-tag.c:128
+msgid "Flash Device"
+msgstr "Flitser"
+
+#: libexif/olympus/mnote-olympus-tag.c:130
+msgid "Sensor Temperature"
+msgstr "Sensortemperatuur"
+
+#: libexif/olympus/mnote-olympus-tag.c:131
+msgid "Lens Temperature"
+msgstr "Lenstemperatuur"
+
+#: libexif/olympus/mnote-olympus-tag.c:132
+msgid "Light Condition"
+msgstr "Lichtcondities"
+
+#: libexif/olympus/mnote-olympus-tag.c:136
+msgid "Zoom Step Count"
+msgstr "Stappenteller zoom"
+
+#: libexif/olympus/mnote-olympus-tag.c:137
+msgid "Focus Step Count"
+msgstr "Stappenteller scherpstelling"
+
+#: libexif/olympus/mnote-olympus-tag.c:138
+msgid "Sharpness Setting"
+msgstr "Scherpteinstelling"
+
+#: libexif/olympus/mnote-olympus-tag.c:139
+msgid "Flash Charge Level"
+msgstr "Oplaadniveau flitser"
+
+#: libexif/olympus/mnote-olympus-tag.c:140
+msgid "Color Matrix"
+msgstr "Kleurmatrix"
+
+#: libexif/olympus/mnote-olympus-tag.c:141
+msgid "Black Level"
+msgstr "Zwartniveau"
+
+#: libexif/olympus/mnote-olympus-tag.c:142
+msgid "White Balance Setting"
+msgstr "Instelling witbalans"
+
+#: libexif/olympus/mnote-olympus-tag.c:143
+#: libexif/pentax/mnote-pentax-tag.c:87
+msgid "Red Balance"
+msgstr "Roodbalans"
+
+#: libexif/olympus/mnote-olympus-tag.c:144
+#: libexif/pentax/mnote-pentax-tag.c:86
+msgid "Blue Balance"
+msgstr "Blauwbalans"
+
+#: libexif/olympus/mnote-olympus-tag.c:145
+msgid "Color Matrix Number"
+msgstr "Nummer kleurenmatrix"
+
+#: libexif/olympus/mnote-olympus-tag.c:147
+msgid "Flash Exposure Comp"
+msgstr "Flits-belichtingcompensatie"
+
+#: libexif/olympus/mnote-olympus-tag.c:148
+msgid "Internal Flash Table"
+msgstr "Interne flitstabel"
+
+#: libexif/olympus/mnote-olympus-tag.c:149
+msgid "External Flash G Value"
+msgstr "G-waarde externe flitser"
+
+#: libexif/olympus/mnote-olympus-tag.c:150
+msgid "External Flash Bounce"
+msgstr "Weerkaatsing externe flitser"
+
+#: libexif/olympus/mnote-olympus-tag.c:151
+msgid "External Flash Zoom"
+msgstr "Zoom externe flitser"
+
+#: libexif/olympus/mnote-olympus-tag.c:152
+msgid "External Flash Mode"
+msgstr "Externe flitser"
+
+#: libexif/olympus/mnote-olympus-tag.c:153
+msgid "Contrast Setting"
+msgstr "Contrastinstelling"
+
+#: libexif/olympus/mnote-olympus-tag.c:154
+msgid "Sharpness Factor"
+msgstr "Scherptefactor"
+
+#: libexif/olympus/mnote-olympus-tag.c:155
+msgid "Color Control"
+msgstr "Kleurregeling"
+
+#: libexif/olympus/mnote-olympus-tag.c:156
+msgid "Olympus Image Width"
+msgstr "Olympus afbeeldingsbreedte"
+
+#: libexif/olympus/mnote-olympus-tag.c:157
+msgid "Olympus Image Height"
+msgstr "Olympus afbeeldingshoogte"
+
+#: libexif/olympus/mnote-olympus-tag.c:158
+msgid "Scene Detect"
+msgstr "Soort scène"
+
+#: libexif/olympus/mnote-olympus-tag.c:159
+msgid "Compression Ratio"
+msgstr "Compressieverhouding"
+
+#: libexif/olympus/mnote-olympus-tag.c:160
+msgid "Preview Image Valid"
+msgstr "Geldige voorvertoning"
+
+#: libexif/olympus/mnote-olympus-tag.c:161
+msgid "AF Result"
+msgstr "AF-resultaat"
+
+#: libexif/olympus/mnote-olympus-tag.c:162
+msgid "CCD Scan Mode"
+msgstr "CCD-scan"
+
+#: libexif/olympus/mnote-olympus-tag.c:164
+msgid "Infinity Lens Step"
+msgstr "Lensinstelling oneindig"
+
+#: libexif/olympus/mnote-olympus-tag.c:165
+msgid "Near Lens Step"
+msgstr "Lensinstelling dichtbij"
+
+#: libexif/olympus/mnote-olympus-tag.c:166
+msgid "Light Value Center"
+msgstr "Lichtwaarde centraal"
+
+#: libexif/olympus/mnote-olympus-tag.c:167
+msgid "Light Value Periphery"
+msgstr "Lichtwaarde randen"
+
+#: libexif/olympus/mnote-olympus-tag.c:170
+msgid "Sequential Shot"
+msgstr "Opeenvolgende opname"
+
+#: libexif/olympus/mnote-olympus-tag.c:171
+msgid "Wide Range"
+msgstr "Groot bereik"
+
+#: libexif/olympus/mnote-olympus-tag.c:172
+msgid "Color Adjustment Mode"
+msgstr "Kleureninstellingsmodus"
+
+#: libexif/olympus/mnote-olympus-tag.c:174
+msgid "Quick Shot"
+msgstr "Snelopname"
+
+#: libexif/olympus/mnote-olympus-tag.c:176
+msgid "Voice Memo"
+msgstr "Spraakopname"
+
+#: libexif/olympus/mnote-olympus-tag.c:177
+msgid "Record Shutter Release"
+msgstr "Opnameontspanknop"
+
+#: libexif/olympus/mnote-olympus-tag.c:178
+msgid "Flicker Reduce"
+msgstr "Glinsterreductie"
+
+#: libexif/olympus/mnote-olympus-tag.c:179
+msgid "Optical Zoom"
+msgstr "Optische zoom"
+
+#: libexif/olympus/mnote-olympus-tag.c:181
+msgid "Light Source Special"
+msgstr "Bijzondere lichtbron"
+
+#: libexif/olympus/mnote-olympus-tag.c:182
+msgid "Resaved"
+msgstr "Opnieuw opgeslagen"
+
+#: libexif/olympus/mnote-olympus-tag.c:184
+msgid "Scene Select"
+msgstr "Scèneselectie"
+
+#: libexif/olympus/mnote-olympus-tag.c:186
+msgid "Sequence Shot Interval"
+msgstr "Interval opvolgingsopnamen"
+
+#: libexif/olympus/mnote-olympus-tag.c:189
+msgid "Epson Image Width"
+msgstr "Afbeeldingsbreedte Epson"
+
+#: libexif/olympus/mnote-olympus-tag.c:190
+msgid "Epson Image Height"
+msgstr "Afbeeldingshoogte Epson"
+
+#: libexif/olympus/mnote-olympus-tag.c:191
+msgid "Epson Software Version"
+msgstr "Epson softwareversie"
+
+#: libexif/pentax/mnote-pentax-entry.c:80
+#: libexif/pentax/mnote-pentax-entry.c:134
+msgid "Multi-exposure"
+msgstr "Meervoudige belichting"
+
+#: libexif/pentax/mnote-pentax-entry.c:83
+#: libexif/pentax/mnote-pentax-entry.c:137
+msgid "Good"
+msgstr "Goed"
+
+#: libexif/pentax/mnote-pentax-entry.c:84
+#: libexif/pentax/mnote-pentax-entry.c:138
+msgid "Better"
+msgstr "Beter"
+
+#: libexif/pentax/mnote-pentax-entry.c:92
+msgid "Flash on"
+msgstr "Flitser ingeschakeld"
+
+#: libexif/pentax/mnote-pentax-entry.c:140
+msgid "TIFF"
+msgstr "TIFF"
+
+#: libexif/pentax/mnote-pentax-entry.c:150
+msgid "2560x1920 or 2304x1728"
+msgstr "2560x1920 of 2304x1728"
+
+#: libexif/pentax/mnote-pentax-entry.c:156
+msgid "2304x1728 or 2592x1944"
+msgstr "2304x1728 of 2592x1944"
+
+#: libexif/pentax/mnote-pentax-entry.c:158
+msgid "2816x2212 or 2816x2112"
+msgstr "2816x2212 of 2816x2112"
+
+#: libexif/pentax/mnote-pentax-entry.c:171
+msgid "Surf & snow"
+msgstr "Surf & sneeuw"
+
+#: libexif/pentax/mnote-pentax-entry.c:172
+msgid "Sunset or candlelight"
+msgstr "Zonsondergang of kaarslicht"
+
+#: libexif/pentax/mnote-pentax-entry.c:173
+msgid "Autumn"
+msgstr "Herfst"
+
+#: libexif/pentax/mnote-pentax-entry.c:178
+msgid "Self portrait"
+msgstr "Zelfportret"
+
+#: libexif/pentax/mnote-pentax-entry.c:179
+msgid "Illustrations"
+msgstr "Illustraties"
+
+#: libexif/pentax/mnote-pentax-entry.c:180
+msgid "Digital filter"
+msgstr "Digitaal filter"
+
+#: libexif/pentax/mnote-pentax-entry.c:182
+msgid "Food"
+msgstr "Voedsel"
+
+#: libexif/pentax/mnote-pentax-entry.c:183
+msgid "Green mode"
+msgstr "Groenmodus"
+
+#: libexif/pentax/mnote-pentax-entry.c:184
+msgid "Light pet"
+msgstr "Licht huisdier"
+
+#: libexif/pentax/mnote-pentax-entry.c:185
+msgid "Dark pet"
+msgstr "Donker huisdier"
+
+#: libexif/pentax/mnote-pentax-entry.c:186
+msgid "Medium pet"
+msgstr "Halfdonker huisdier"
+
+#: libexif/pentax/mnote-pentax-entry.c:188
+#: libexif/pentax/mnote-pentax-entry.c:296
+msgid "Candlelight"
+msgstr "Kaarslicht"
+
+#: libexif/pentax/mnote-pentax-entry.c:189
+msgid "Natural skin tone"
+msgstr "Natuurlijke huidtint"
+
+#: libexif/pentax/mnote-pentax-entry.c:190
+msgid "Synchro sound record"
+msgstr "Synchronisatie geluidsopname"
+
+#: libexif/pentax/mnote-pentax-entry.c:191
+msgid "Frame composite"
+msgstr "Beeldcompositie"
+
+#: libexif/pentax/mnote-pentax-entry.c:194
+msgid "Auto, did not fire"
+msgstr "Automatisch, niet geflitst"
+
+#: libexif/pentax/mnote-pentax-entry.c:196
+msgid "Auto, did not fire, red-eye reduction"
+msgstr "Automatisch, niet geflitst, rode-ogenreductie"
+
+#: libexif/pentax/mnote-pentax-entry.c:197
+msgid "Auto, fired"
+msgstr "Automatisch, geflitst"
+
+#: libexif/pentax/mnote-pentax-entry.c:199
+msgid "Auto, fired, red-eye reduction"
+msgstr "Ingeschakeld, geflitst, rode-ogenreductie"
+
+#: libexif/pentax/mnote-pentax-entry.c:201
+msgid "On, wireless"
+msgstr "Ingeschakeld, draadloos"
+
+#: libexif/pentax/mnote-pentax-entry.c:202
+msgid "On, soft"
+msgstr "Ingeschakeld, zacht"
+
+#: libexif/pentax/mnote-pentax-entry.c:203
+msgid "On, slow-sync"
+msgstr "Ingeschakeld, trage synchronisatie"
+
+#: libexif/pentax/mnote-pentax-entry.c:204
+msgid "On, slow-sync, red-eye reduction"
+msgstr "Ingeschakeld, trage synchronisatie, rode-ogenreductie"
+
+#: libexif/pentax/mnote-pentax-entry.c:205
+msgid "On, trailing-curtain sync"
+msgstr "Ingeschakeld, achterlopendgordijn synchronisatie"
+
+#: libexif/pentax/mnote-pentax-entry.c:213
+msgid "AF-S"
+msgstr "AF-S"
+
+#: libexif/pentax/mnote-pentax-entry.c:214
+msgid "AF-C"
+msgstr "AF-C"
+
+#: libexif/pentax/mnote-pentax-entry.c:217
+msgid "Upper-left"
+msgstr "Hoger links"
+
+#: libexif/pentax/mnote-pentax-entry.c:218
+msgid "Top"
+msgstr "Boven"
+
+#: libexif/pentax/mnote-pentax-entry.c:219
+msgid "Upper-right"
+msgstr "Hoger rechts"
+
+#: libexif/pentax/mnote-pentax-entry.c:221
+msgid "Mid-left"
+msgstr "Linksmidden"
+
+#: libexif/pentax/mnote-pentax-entry.c:223
+msgid "Mid-right"
+msgstr "Rechtsmidden"
+
+#: libexif/pentax/mnote-pentax-entry.c:225
+msgid "Lower-left"
+msgstr "Lager links"
+
+#: libexif/pentax/mnote-pentax-entry.c:226
+msgid "Bottom"
+msgstr "Onder"
+
+#: libexif/pentax/mnote-pentax-entry.c:227
+msgid "Lower-right"
+msgstr "Lager rechts"
+
+#: libexif/pentax/mnote-pentax-entry.c:228
+msgid "Fixed center"
+msgstr "Vast middelpunt"
+
+#: libexif/pentax/mnote-pentax-entry.c:232
+msgid "Multiple"
+msgstr "Meerdere"
+
+#: libexif/pentax/mnote-pentax-entry.c:234
+msgid "Top-center"
+msgstr "Middenboven"
+
+#: libexif/pentax/mnote-pentax-entry.c:240
+msgid "Bottom-center"
+msgstr "Middenonder"
+
+#: libexif/pentax/mnote-pentax-entry.c:257
+msgid "User selected"
+msgstr "Gebruikergeselecteerd"
+
+#: libexif/pentax/mnote-pentax-entry.c:282
+msgid "3008x2008 or 3040x2024"
+msgstr "3008x2008 of 3040x2024"
+
+#: libexif/pentax/mnote-pentax-entry.c:293
+msgid "Digital filter?"
+msgstr "Digitaal filter?"
+
+#: libexif/pentax/mnote-pentax-entry.c:374
+#: libexif/pentax/mnote-pentax-entry.c:383
+#, c-format
+msgid "Internal error (unknown value %i %i)"
+msgstr "Interne fout (onbekende waarde %i %i)"
+
+#: libexif/pentax/mnote-pentax-tag.c:35 libexif/pentax/mnote-pentax-tag.c:63
+msgid "Capture Mode"
+msgstr "Vastleggingsmodus"
+
+#: libexif/pentax/mnote-pentax-tag.c:36 libexif/pentax/mnote-pentax-tag.c:70
+#: libexif/pentax/mnote-pentax-tag.c:129
+msgid "Quality Level"
+msgstr "Kwaliteitsniveau"
+
+#: libexif/pentax/mnote-pentax-tag.c:54
+msgid "ISO Speed"
+msgstr "ISO-snelheid"
+
+#: libexif/pentax/mnote-pentax-tag.c:56
+msgid "Colors"
+msgstr "Kleuren"
+
+#: libexif/pentax/mnote-pentax-tag.c:59
+msgid "PrintIM Settings"
+msgstr "Instellingen van PrintIM"
+
+#: libexif/pentax/mnote-pentax-tag.c:60 libexif/pentax/mnote-pentax-tag.c:131
+msgid "Time Zone"
+msgstr "Tijdzone"
+
+#: libexif/pentax/mnote-pentax-tag.c:61
+msgid "Daylight Savings"
+msgstr "Zomertijd"
+
+#: libexif/pentax/mnote-pentax-tag.c:64
+msgid "Preview Size"
+msgstr "Grootte voorvertoning"
+
+#: libexif/pentax/mnote-pentax-tag.c:65
+msgid "Preview Length"
+msgstr "Lengte voorvertoning"
+
+#: libexif/pentax/mnote-pentax-tag.c:66 libexif/pentax/mnote-pentax-tag.c:122
+msgid "Preview Start"
+msgstr "Begin voorvertoning "
+
+#: libexif/pentax/mnote-pentax-tag.c:67
+msgid "Model Identification"
+msgstr "Modelidentificatie"
+
+#: libexif/pentax/mnote-pentax-tag.c:68
+msgid "Date"
+msgstr "Datum"
+
+#: libexif/pentax/mnote-pentax-tag.c:69
+msgid "Time"
+msgstr "Tijd"
+
+#: libexif/pentax/mnote-pentax-tag.c:75
+msgid "AF Point Selected"
+msgstr "AF-punt geselecteerd"
+
+#: libexif/pentax/mnote-pentax-tag.c:76
+msgid "Auto AF Point"
+msgstr "Automatisch AF-punt"
+
+#: libexif/pentax/mnote-pentax-tag.c:77
+msgid "Focus Position"
+msgstr "Scherpstellingspunt"
+
+#: libexif/pentax/mnote-pentax-tag.c:80
+msgid "ISO Number"
+msgstr "ISO-nummer"
+
+#: libexif/pentax/mnote-pentax-tag.c:83
+msgid "Auto Bracketing"
+msgstr "Auto-bracket"
+
+#: libexif/pentax/mnote-pentax-tag.c:85
+msgid "White Balance Mode"
+msgstr "Witbalansmodus"
+
+#: libexif/pentax/mnote-pentax-tag.c:93
+msgid "World Time Location"
+msgstr "Wereldtijdlocatie"
+
+#: libexif/pentax/mnote-pentax-tag.c:94
+msgid "Hometown City"
+msgstr "Woonplaats"
+
+#: libexif/pentax/mnote-pentax-tag.c:95
+msgid "Destination City"
+msgstr "Stad van bestemming"
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Hometown DST"
+msgstr "Woonplaats DST"
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Home Daylight Savings Time"
+msgstr "Zomertijd"
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination DST"
+msgstr "Bestemmings DST"
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination Daylight Savings Time"
+msgstr "Zomertijd bestemming"
+
+#: libexif/pentax/mnote-pentax-tag.c:99
+msgid "Image Processing"
+msgstr "Verwerking afbeelding"
+
+#: libexif/pentax/mnote-pentax-tag.c:100
+msgid "Picture Mode (2)"
+msgstr "Afbeeldingsmodus (2)"
+
+#: libexif/pentax/mnote-pentax-tag.c:103
+msgid "Image Area Offset"
+msgstr "Afbeeldingsvlak verschuiving"
+
+#: libexif/pentax/mnote-pentax-tag.c:104
+msgid "Raw Image Size"
+msgstr "RAW-afbeeldingsgrootte"
+
+#: libexif/pentax/mnote-pentax-tag.c:105
+msgid "Autofocus Points Used"
+msgstr "AF-punten gebruikt"
+
+#: libexif/pentax/mnote-pentax-tag.c:107
+msgid "Camera Temperature"
+msgstr "Cameratemperatuur"
+
+#: libexif/pentax/mnote-pentax-tag.c:110
+msgid "Image Tone"
+msgstr "Afbeeldingstint"
+
+#: libexif/pentax/mnote-pentax-tag.c:111
+msgid "Shake Reduction Info"
+msgstr "Informatie bewegingsonderdrukking"
+
+#: libexif/pentax/mnote-pentax-tag.c:112
+msgid "Black Point"
+msgstr "Zwartpunt"
+
+#: libexif/pentax/mnote-pentax-tag.c:114
+msgid "AE Info"
+msgstr "AE-informatie"
+
+#: libexif/pentax/mnote-pentax-tag.c:115
+msgid "Lens Info"
+msgstr "Lensinformatie"
+
+#: libexif/pentax/mnote-pentax-tag.c:116
+msgid "Flash Info"
+msgstr "Flitserinformatie"
+
+#: libexif/pentax/mnote-pentax-tag.c:117
+msgid "Camera Info"
+msgstr "Camerainformatie"
+
+#: libexif/pentax/mnote-pentax-tag.c:118
+msgid "Battery Info"
+msgstr "Batterijinformatie"
+
+#: libexif/pentax/mnote-pentax-tag.c:119
+msgid "Hometown City Code"
+msgstr "Afkorting woonplaats"
+
+#: libexif/pentax/mnote-pentax-tag.c:120
+msgid "Destination City Code"
+msgstr "Afkorting stad van bestemming"
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Object Distance"
+msgstr "Objectafstand"
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Distance of photographed object in millimeters."
+msgstr "Afstand tot gefotografeerd object in milimeters."
+
+#: libexif/pentax/mnote-pentax-tag.c:126
+msgid "Flash Distance"
+msgstr "Flitsafstand"
+
+#: libexif/pentax/mnote-pentax-tag.c:132
+msgid "Bestshot Mode"
+msgstr "Beste poging-modus"
+
+#: libexif/pentax/mnote-pentax-tag.c:133
+msgid "CCS ISO Sensitivity"
+msgstr "CCD-ISO-gevoeligheid"
+
+#: libexif/pentax/mnote-pentax-tag.c:135
+msgid "Enhancement"
+msgstr "Verbetering"
+
+#: libexif/pentax/mnote-pentax-tag.c:136
+msgid "Finer"
+msgstr "Fijner"
+
+#: test/nls/test-nls.c:20 test/nls/test-nls.c:23 test/nls/test-nls.c:24
+msgid "[DO_NOT_TRANSLATE_THIS_MARKER]"
+msgstr "[DO_NOT_TRANSLATE_THIS_MARKER]"
+
+#~ msgid "%.02lf EV"
+#~ msgstr "%.02lf EV"
+
+#~ msgid "On + Red-eye reduction"
+#~ msgstr "Ingeschakeld + rode-ogenreductie"
+
+#~ msgid "Center + Right"
+#~ msgstr "Centraal + Rechts"
+
+#~ msgid "Left + Right"
+#~ msgstr "Links + Rechts"
+
+#~ msgid "Manual Temperature (Kelvin)"
+#~ msgstr "Handmatige temperatuur (Kelvin)"
+
+#~ msgid "PC Set1"
+#~ msgstr "PC set 1"
+
+#~ msgid "PC Set2"
+#~ msgstr "PC set 2"
+
+#~ msgid "PC Set3"
+#~ msgstr "PC set 3"
+
+#~ msgid "Daylight Fluorescent"
+#~ msgstr "Daglicht TL"
+
+#~ msgid "top - left"
+#~ msgstr "linksboven"
+
+#~ msgid "top - right"
+#~ msgstr "rechtsboven"
+
+#~ msgid "bottom - right"
+#~ msgstr "rechtsonder"
+
+#~ msgid "bottom - left"
+#~ msgstr "linksonder"
+
+#~ msgid "Center-Weighted Average"
+#~ msgstr "Centraalgewogen gemiddelde"
+
+#~ msgid "flash"
+#~ msgstr "geflitst"
+
+#~ msgid "y-Resolution"
+#~ msgstr "y-resolutie"
+
+#~ msgid "GPS satellites used for measurement"
+#~ msgstr "GPS-satallieten gebruikt voor meting"
+
+#~ msgid "OECF"
+#~ msgstr "OECF"
+
+#~ msgid "Shutter speed"
+#~ msgstr "Sluitersnelheid"
+
+#~ msgid "Focal Plane y-Resolution"
+#~ msgstr "Brandpuntsvlak y-resolutie"
+
+#~ msgid "Daylight-color fluorescent"
+#~ msgstr "Daglicht TL"
+
+#~ msgid "DayWhite-color fluorescent"
+#~ msgstr "Daglicht wit TL"
+
+#~ msgid "Macro mode"
+#~ msgstr "Macromodus"
+
+#~ msgid "Super Macro"
+#~ msgstr "Supermacro"
+
+#~ msgid "normal"
+#~ msgstr "normaal"
+
+#~ msgid "unknown"
+#~ msgstr "onbekend"
+
+#~ msgid "panorama"
+#~ msgstr "panorama"
+
+#~ msgid "left to right"
+#~ msgstr "van links naar rechts"
+
+#~ msgid "right to left"
+#~ msgstr "van rechts naar links"
+
+#~ msgid "bottom to top"
+#~ msgstr "van beneden naar boven"
+
+#~ msgid "top to bottom"
+#~ msgstr "van boven naar beneden"
+
+#~ msgid "Noisereduction"
+#~ msgstr "Ruisonderdrukking"
+
+#~ msgid "B&W Mode"
+#~ msgstr "Zwart-witmodus"
+
+#~ msgid "Self Timer"
+#~ msgstr "Zelfontspanner"
+
+#~ msgid "Night-scene"
+#~ msgstr "Nachtscene"
+
+#~ msgid "Red-eye Reduction"
+#~ msgstr "Rode-ogenreductie"
+
+#~ msgid "Night Scene"
+#~ msgstr "Nachtscene"
+
+#~ msgid "Pan Focus"
+#~ msgstr "Pan Focus"
+
+#~ msgid "Daywhite Fluorescent"
+#~ msgstr "Daglicht TL"
+
+#~ msgid "White Fluorescent"
+#~ msgstr "Wit TL-licht"
+
+#~ msgid "PictureMode"
+#~ msgstr "Afbeeldingsmodus"
+
+#~ msgid "%i"
+#~ msgstr "%i"
+
+#~ msgid "%d"
+#~ msgstr "%d"
+
+#~ msgid "Ascii"
+#~ msgstr "Ascii"
+
+#~ msgid "%li"
+#~ msgstr "%li"
+
+#~ msgid "Focal length"
+#~ msgstr "Brandpuntsafstand"
+
+#~ msgid "Firmware version"
+#~ msgstr "Firmware-versie"
+
+#~ msgid "Serial number"
+#~ msgstr "Serienummer"
+
+#~ msgid "Flash mode"
+#~ msgstr "Flitsmodus"
+
+#~ msgid "Focus mode"
+#~ msgstr "Scherpstelmodus"
+
+#~ msgid "Image size"
+#~ msgstr "Afmetingen afbeelding"
+
+#~ msgid "Digital zoom"
+#~ msgstr "Digitale zoom"
+
+#~ msgid "Metering mode"
+#~ msgstr "Meet-modus"
+
+#~ msgid "Focus range"
+#~ msgstr "Scherptebereik"
+
+#~ msgid "Exposure mode"
+#~ msgstr "Belichtingsmodus"
+
+#~ msgid "Focal plane y size"
+#~ msgstr "Scherpstellingvlak y-afmeting"
+
+#~ msgid "White balance"
+#~ msgstr "Witbalans"
+
+#~ msgid "Exposure time"
+#~ msgstr "Belichtingstijd"
+
+#~ msgid "Flash did not fire."
+#~ msgstr "Flitser niet afgegaan."
+
+#~ msgid "ISO320"
+#~ msgstr "ISO320"
+
+#~ msgid "SQ"
+#~ msgstr "SQ"
+
+#~ msgid "HQ"
+#~ msgstr "HQ"
+
+#~ msgid "SHQ"
+#~ msgstr "SHQ"
+
+#~ msgid "SQ1"
+#~ msgstr "SQ1"
+
+#~ msgid "SQ2"
+#~ msgstr "SQ2"
+
+#~ msgid "Whitebalance"
+#~ msgstr "Witbalans"
+
+#~ msgid "Isoselection"
+#~ msgstr "ISO-selectie"
+
+#~ msgid "Lenstype"
+#~ msgstr "Lenssoort"
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/pl.gmo b/framework/modules/c_LibExifModule/libexif-0.6.20/po/pl.gmo
new file mode 100644
index 0000000000000000000000000000000000000000..d6f9da7fa3004a74f5dc021dc6f2477315609d36
Binary files /dev/null and b/framework/modules/c_LibExifModule/libexif-0.6.20/po/pl.gmo differ
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/pl.po b/framework/modules/c_LibExifModule/libexif-0.6.20/po/pl.po
new file mode 100644
index 0000000000000000000000000000000000000000..d1d3eba9269ed5c07b9f2a1fac7ce33673ca318b
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/pl.po
@@ -0,0 +1,5826 @@
+# Polish translation for libexif.
+# Copyright (C) 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# This file is distributed under the same license as the libexif package.
+# Jakub Bogusz <qboosh@pld-linux.org>, 2005-2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: libexif 0.6.20-pre1\n"
+"Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-12-15 22:14-0800\n"
+"PO-Revision-Date: 2010-02-08 17:07+0100\n"
+"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
+"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: libexif/canon/mnote-canon-entry.c:40 libexif/fuji/mnote-fuji-entry.c:35
+#: libexif/olympus/mnote-olympus-entry.c:37
+#: libexif/pentax/mnote-pentax-entry.c:39
+#, c-format
+msgid "Invalid format '%s', expected '%s'."
+msgstr "Błędny format '%s', oczekiwano '%s'."
+
+#: libexif/canon/mnote-canon-entry.c:52 libexif/fuji/mnote-fuji-entry.c:47
+#: libexif/olympus/mnote-olympus-entry.c:62
+#: libexif/pentax/mnote-pentax-entry.c:51
+#, c-format
+msgid "Invalid number of components (%i, expected %i)."
+msgstr "Błędna liczba składowych (%i, a oczekiwano %i)."
+
+#: libexif/canon/mnote-canon-entry.c:61
+#: libexif/olympus/mnote-olympus-entry.c:72
+#: libexif/pentax/mnote-pentax-entry.c:61
+#, c-format
+msgid "Invalid number of components (%i, expected %i or %i)."
+msgstr "Błędna liczba składowych (%i, a oczekiwano %i lub %i)."
+
+#: libexif/canon/mnote-canon-entry.c:76 libexif/canon/mnote-canon-entry.c:130
+#: libexif/canon/mnote-canon-entry.c:182 libexif/exif-entry.c:796
+#: libexif/olympus/mnote-olympus-entry.c:196
+#: libexif/olympus/mnote-olympus-tag.c:108
+#: libexif/pentax/mnote-pentax-entry.c:174
+#: libexif/pentax/mnote-pentax-entry.c:209
+#: libexif/pentax/mnote-pentax-entry.c:297
+msgid "Macro"
+msgstr "Makro"
+
+#: libexif/canon/mnote-canon-entry.c:77 libexif/canon/mnote-canon-entry.c:79
+#: libexif/canon/mnote-canon-entry.c:157 libexif/canon/mnote-canon-entry.c:160
+#: libexif/canon/mnote-canon-entry.c:163 libexif/exif-entry.c:674
+#: libexif/exif-entry.c:677 libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/exif-entry.c:745 libexif/fuji/mnote-fuji-entry.c:64
+#: libexif/olympus/mnote-olympus-entry.c:118
+#: libexif/olympus/mnote-olympus-entry.c:195
+#: libexif/olympus/mnote-olympus-entry.c:203
+#: libexif/olympus/mnote-olympus-entry.c:213
+#: libexif/olympus/mnote-olympus-entry.c:586
+#: libexif/pentax/mnote-pentax-entry.c:105
+#: libexif/pentax/mnote-pentax-entry.c:110
+#: libexif/pentax/mnote-pentax-entry.c:115
+#: libexif/pentax/mnote-pentax-entry.c:208
+msgid "Normal"
+msgstr "Standard"
+
+#: libexif/canon/mnote-canon-entry.c:78
+msgid "Economy"
+msgstr "Ekonomiczna"
+
+#: libexif/canon/mnote-canon-entry.c:80
+msgid "Fine"
+msgstr "Dobra"
+
+#: libexif/canon/mnote-canon-entry.c:81 libexif/fuji/mnote-fuji-entry.c:178
+#: libexif/pentax/mnote-pentax-entry.c:141
+msgid "RAW"
+msgstr "RAW"
+
+#: libexif/canon/mnote-canon-entry.c:82
+msgid "Superfine"
+msgstr "Bardzo dobra"
+
+#: libexif/canon/mnote-canon-entry.c:83 libexif/canon/mnote-canon-entry.c:301
+#: libexif/canon/mnote-canon-entry.c:304 libexif/canon/mnote-canon-entry.c:312
+#: libexif/canon/mnote-canon-entry.c:345 libexif/canon/mnote-canon-entry.c:357
+#: libexif/canon/mnote-canon-entry.c:370 libexif/canon/mnote-canon-entry.c:372
+#: libexif/canon/mnote-canon-entry.c:574 libexif/canon/mnote-canon-entry.c:671
+#: libexif/fuji/mnote-fuji-entry.c:70 libexif/fuji/mnote-fuji-entry.c:103
+#: libexif/fuji/mnote-fuji-entry.c:107 libexif/fuji/mnote-fuji-entry.c:115
+#: libexif/fuji/mnote-fuji-entry.c:142
+#: libexif/olympus/mnote-olympus-entry.c:178
+#: libexif/olympus/mnote-olympus-entry.c:186
+#: libexif/olympus/mnote-olympus-entry.c:251
+#: libexif/olympus/mnote-olympus-entry.c:530
+#: libexif/olympus/mnote-olympus-entry.c:547
+#: libexif/pentax/mnote-pentax-entry.c:195
+#: libexif/pentax/mnote-pentax-entry.c:260
+msgid "Off"
+msgstr "Wyłączony"
+
+#: libexif/canon/mnote-canon-entry.c:84 libexif/canon/mnote-canon-entry.c:167
+#: libexif/canon/mnote-canon-entry.c:180 libexif/canon/mnote-canon-entry.c:328
+#: libexif/canon/mnote-canon-entry.c:400 libexif/fuji/mnote-fuji-entry.c:73
+#: libexif/fuji/mnote-fuji-entry.c:101 libexif/fuji/mnote-fuji-entry.c:111
+#: libexif/fuji/mnote-fuji-entry.c:119
+#: libexif/olympus/mnote-olympus-entry.c:131
+#: libexif/olympus/mnote-olympus-entry.c:183
+#: libexif/olympus/mnote-olympus-entry.c:199
+#: libexif/olympus/mnote-olympus-entry.c:244
+#: libexif/pentax/mnote-pentax-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:88
+#: libexif/pentax/mnote-pentax-entry.c:91
+#: libexif/pentax/mnote-pentax-entry.c:97
+#: libexif/pentax/mnote-pentax-entry.c:131
+#: libexif/pentax/mnote-pentax-entry.c:229
+#: libexif/pentax/mnote-pentax-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:290
+msgid "Auto"
+msgstr "Auto"
+
+#: libexif/canon/mnote-canon-entry.c:85 libexif/canon/mnote-canon-entry.c:302
+#: libexif/canon/mnote-canon-entry.c:347 libexif/canon/mnote-canon-entry.c:361
+#: libexif/canon/mnote-canon-entry.c:371 libexif/fuji/mnote-fuji-entry.c:102
+#: libexif/fuji/mnote-fuji-entry.c:108 libexif/fuji/mnote-fuji-entry.c:116
+#: libexif/fuji/mnote-fuji-entry.c:143
+#: libexif/olympus/mnote-olympus-entry.c:179
+#: libexif/olympus/mnote-olympus-entry.c:533
+#: libexif/olympus/mnote-olympus-entry.c:550
+#: libexif/pentax/mnote-pentax-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:261
+msgid "On"
+msgstr "Włączony"
+
+#: libexif/canon/mnote-canon-entry.c:86 libexif/fuji/mnote-fuji-entry.c:104
+#: libexif/olympus/mnote-olympus-entry.c:184
+#: libexif/pentax/mnote-pentax-entry.c:94
+msgid "Red-eye reduction"
+msgstr "Redukcja czerwonych oczu"
+
+#: libexif/canon/mnote-canon-entry.c:87
+msgid "Slow synchro"
+msgstr "Powolna synchronizacja"
+
+#: libexif/canon/mnote-canon-entry.c:88
+msgid "Auto, red-eye reduction"
+msgstr "Automatyczny, redukcja czerwonych oczu"
+
+#: libexif/canon/mnote-canon-entry.c:89
+#: libexif/pentax/mnote-pentax-entry.c:200
+msgid "On, red-eye reduction"
+msgstr "Włączony, redukcja czerwonych oczu"
+
+#: libexif/canon/mnote-canon-entry.c:90
+msgid "External flash"
+msgstr "Zewnętrzny flesz"
+
+#: libexif/canon/mnote-canon-entry.c:91 libexif/canon/mnote-canon-entry.c:101
+#: libexif/canon/mnote-canon-entry.c:294
+msgid "Single"
+msgstr "Pojedynczy"
+
+#: libexif/canon/mnote-canon-entry.c:92 libexif/canon/mnote-canon-entry.c:102
+#: libexif/canon/mnote-canon-entry.c:295
+msgid "Continuous"
+msgstr "Ciągły"
+
+#: libexif/canon/mnote-canon-entry.c:93
+msgid "Movie"
+msgstr "Film"
+
+#: libexif/canon/mnote-canon-entry.c:94
+msgid "Continuous, speed priority"
+msgstr "Ciągły, priorytet szybkości"
+
+#: libexif/canon/mnote-canon-entry.c:95
+msgid "Continuous, low"
+msgstr "Ciągły, niska"
+
+#: libexif/canon/mnote-canon-entry.c:96
+msgid "Continuous, high"
+msgstr "Ciągły, wysoka"
+
+#: libexif/canon/mnote-canon-entry.c:97
+msgid "One-shot AF"
+msgstr "AF One-Shot"
+
+#: libexif/canon/mnote-canon-entry.c:98
+msgid "AI servo AF"
+msgstr "AF AI servo"
+
+#: libexif/canon/mnote-canon-entry.c:99
+msgid "AI focus AF"
+msgstr "AF AI Focus"
+
+#: libexif/canon/mnote-canon-entry.c:100 libexif/canon/mnote-canon-entry.c:103
+msgid "Manual focus"
+msgstr "Ręczna ogniskowa"
+
+#: libexif/canon/mnote-canon-entry.c:104 libexif/canon/mnote-canon-entry.c:132
+#: libexif/canon/mnote-canon-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:212
+msgid "Pan focus"
+msgstr "Pan focus"
+
+#: libexif/canon/mnote-canon-entry.c:105
+msgid "JPEG"
+msgstr "JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:106
+msgid "CRW+THM"
+msgstr "CRW+THM"
+
+#: libexif/canon/mnote-canon-entry.c:107
+msgid "AVI+THM"
+msgstr "AVI+THM"
+
+#: libexif/canon/mnote-canon-entry.c:108
+msgid "TIF"
+msgstr "TIF"
+
+#: libexif/canon/mnote-canon-entry.c:109
+msgid "TIF+JPEG"
+msgstr "TIF+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:110
+msgid "CR2"
+msgstr "CR2"
+
+#: libexif/canon/mnote-canon-entry.c:111
+msgid "CR2+JPEG"
+msgstr "CR2+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:112
+msgid "Large"
+msgstr "Duży"
+
+#: libexif/canon/mnote-canon-entry.c:113
+msgid "Medium"
+msgstr "Średni"
+
+#: libexif/canon/mnote-canon-entry.c:114
+msgid "Small"
+msgstr "Mały"
+
+#: libexif/canon/mnote-canon-entry.c:115
+msgid "Medium 1"
+msgstr "Średni 1"
+
+#: libexif/canon/mnote-canon-entry.c:116
+msgid "Medium 2"
+msgstr "Średni 2"
+
+#: libexif/canon/mnote-canon-entry.c:117
+msgid "Medium 3"
+msgstr "Średni 3"
+
+#: libexif/canon/mnote-canon-entry.c:118
+msgid "Postcard"
+msgstr "Pocztówka"
+
+#: libexif/canon/mnote-canon-entry.c:119
+msgid "Widescreen"
+msgstr "Szeroki ekran"
+
+#: libexif/canon/mnote-canon-entry.c:120
+msgid "Full auto"
+msgstr "Pełny automat"
+
+#: libexif/canon/mnote-canon-entry.c:121 libexif/canon/mnote-canon-entry.c:179
+#: libexif/canon/mnote-canon-entry.c:201 libexif/canon/mnote-canon-entry.c:285
+#: libexif/canon/mnote-canon-entry.c:392 libexif/exif-entry.c:744
+#: libexif/fuji/mnote-fuji-entry.c:112
+#: libexif/olympus/mnote-olympus-entry.c:90
+#: libexif/olympus/mnote-olympus-entry.c:200
+#: libexif/pentax/mnote-pentax-entry.c:79
+#: libexif/pentax/mnote-pentax-entry.c:102
+#: libexif/pentax/mnote-pentax-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:165
+#: libexif/pentax/mnote-pentax-entry.c:211
+#: libexif/pentax/mnote-pentax-entry.c:250
+msgid "Manual"
+msgstr "Ręczny"
+
+#: libexif/canon/mnote-canon-entry.c:122 libexif/canon/mnote-canon-entry.c:430
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:755
+#: libexif/fuji/mnote-fuji-entry.c:121 libexif/pentax/mnote-pentax-entry.c:167
+#: libexif/pentax/mnote-pentax-entry.c:301
+msgid "Landscape"
+msgstr "Pejzaż"
+
+#: libexif/canon/mnote-canon-entry.c:123
+msgid "Fast shutter"
+msgstr "Szybka migawka"
+
+#: libexif/canon/mnote-canon-entry.c:124
+msgid "Slow shutter"
+msgstr "Wolna migawka"
+
+#: libexif/canon/mnote-canon-entry.c:125 libexif/fuji/mnote-fuji-entry.c:123
+#: libexif/olympus/mnote-olympus-entry.c:254
+msgid "Night"
+msgstr "Noc"
+
+#: libexif/canon/mnote-canon-entry.c:126
+msgid "Grayscale"
+msgstr "Odcienie szarości"
+
+#: libexif/canon/mnote-canon-entry.c:127 libexif/canon/mnote-canon-entry.c:308
+#: libexif/pentax/mnote-pentax-entry.c:128
+msgid "Sepia"
+msgstr "Sepia"
+
+#: libexif/canon/mnote-canon-entry.c:128 libexif/canon/mnote-canon-entry.c:429
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:753
+#: libexif/fuji/mnote-fuji-entry.c:120 libexif/pentax/mnote-pentax-entry.c:166
+#: libexif/pentax/mnote-pentax-entry.c:291
+#: libexif/pentax/mnote-pentax-entry.c:294
+#: libexif/pentax/mnote-pentax-entry.c:300
+msgid "Portrait"
+msgstr "Portret"
+
+#: libexif/canon/mnote-canon-entry.c:129 libexif/fuji/mnote-fuji-entry.c:122
+msgid "Sports"
+msgstr "Sport"
+
+#: libexif/canon/mnote-canon-entry.c:131 libexif/canon/mnote-canon-entry.c:309
+#: libexif/canon/mnote-canon-entry.c:335 libexif/canon/mnote-canon-entry.c:407
+#: libexif/fuji/mnote-fuji-entry.c:89 libexif/pentax/mnote-pentax-entry.c:127
+msgid "Black & white"
+msgstr "Czarno-białe"
+
+#: libexif/canon/mnote-canon-entry.c:133 libexif/canon/mnote-canon-entry.c:305
+msgid "Vivid"
+msgstr "Ostre światło"
+
+#: libexif/canon/mnote-canon-entry.c:134 libexif/canon/mnote-canon-entry.c:306
+#: libexif/canon/mnote-canon-entry.c:431
+msgid "Neutral"
+msgstr "Neutralne"
+
+#: libexif/canon/mnote-canon-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:93
+msgid "Flash off"
+msgstr "Flesz wyłączony"
+
+#: libexif/canon/mnote-canon-entry.c:136
+msgid "Long shutter"
+msgstr "Długa migawka"
+
+#: libexif/canon/mnote-canon-entry.c:137 libexif/canon/mnote-canon-entry.c:188
+#: libexif/olympus/mnote-olympus-entry.c:171
+msgid "Super macro"
+msgstr "Super makro"
+
+#: libexif/canon/mnote-canon-entry.c:138
+msgid "Foliage"
+msgstr "Liście"
+
+#: libexif/canon/mnote-canon-entry.c:139
+msgid "Indoor"
+msgstr "Pomieszczenie"
+
+#: libexif/canon/mnote-canon-entry.c:140 libexif/fuji/mnote-fuji-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:175
+msgid "Fireworks"
+msgstr "Fajerwerki"
+
+#: libexif/canon/mnote-canon-entry.c:141 libexif/fuji/mnote-fuji-entry.c:133
+msgid "Beach"
+msgstr "Plaża"
+
+#: libexif/canon/mnote-canon-entry.c:142 libexif/canon/mnote-canon-entry.c:344
+#: libexif/canon/mnote-canon-entry.c:416 libexif/fuji/mnote-fuji-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:292
+#: libexif/pentax/mnote-pentax-entry.c:298
+msgid "Underwater"
+msgstr "Podwodne"
+
+#: libexif/canon/mnote-canon-entry.c:143 libexif/fuji/mnote-fuji-entry.c:134
+msgid "Snow"
+msgstr "Śnieg"
+
+#: libexif/canon/mnote-canon-entry.c:144
+msgid "Kids & pets"
+msgstr "Dzieci i zwierzęta"
+
+#: libexif/canon/mnote-canon-entry.c:145
+msgid "Night snapshot"
+msgstr "Nocna migawka"
+
+#: libexif/canon/mnote-canon-entry.c:146
+msgid "Digital macro"
+msgstr "Makro cyfrowe"
+
+#: libexif/canon/mnote-canon-entry.c:147
+msgid "My colors"
+msgstr "Moje kolory"
+
+#: libexif/canon/mnote-canon-entry.c:148
+msgid "Still image"
+msgstr "Obraz nieruchomy"
+
+#: libexif/canon/mnote-canon-entry.c:149
+msgid "Color accent"
+msgstr "Kolorowy akcent"
+
+#: libexif/canon/mnote-canon-entry.c:150
+msgid "Color swap"
+msgstr "Zamiana kolorów"
+
+#: libexif/canon/mnote-canon-entry.c:151
+msgid "Aquarium"
+msgstr "Akwarium"
+
+#: libexif/canon/mnote-canon-entry.c:152
+msgid "ISO 3200"
+msgstr "ISO 3200"
+
+#: libexif/canon/mnote-canon-entry.c:153 libexif/canon/mnote-canon-entry.c:348
+#: libexif/canon/mnote-canon-entry.c:365 libexif/canon/mnote-canon-entry.c:417
+#: libexif/olympus/mnote-olympus-entry.c:189
+#: libexif/olympus/mnote-olympus-entry.c:226
+#: libexif/olympus/mnote-olympus-entry.c:451
+#: libexif/pentax/mnote-pentax-entry.c:242
+msgid "None"
+msgstr "Brak"
+
+#: libexif/canon/mnote-canon-entry.c:154
+msgid "2x"
+msgstr "2x"
+
+#: libexif/canon/mnote-canon-entry.c:155
+msgid "4x"
+msgstr "4x"
+
+#: libexif/canon/mnote-canon-entry.c:156 libexif/exif-entry.c:702
+#: libexif/exif-entry.c:732
+msgid "Other"
+msgstr "Inny"
+
+#: libexif/canon/mnote-canon-entry.c:158 libexif/canon/mnote-canon-entry.c:161
+#: libexif/canon/mnote-canon-entry.c:164 libexif/canon/mnote-canon-entry.c:398
+#: libexif/fuji/mnote-fuji-entry.c:86 libexif/pentax/mnote-pentax-entry.c:112
+#: libexif/pentax/mnote-pentax-entry.c:117
+msgid "High"
+msgstr "Dużo"
+
+#: libexif/canon/mnote-canon-entry.c:159 libexif/canon/mnote-canon-entry.c:162
+#: libexif/canon/mnote-canon-entry.c:165 libexif/canon/mnote-canon-entry.c:396
+#: libexif/pentax/mnote-pentax-entry.c:111
+#: libexif/pentax/mnote-pentax-entry.c:116
+msgid "Low"
+msgstr "Mało"
+
+#: libexif/canon/mnote-canon-entry.c:166
+msgid "Auto high"
+msgstr "Dużo auto"
+
+#: libexif/canon/mnote-canon-entry.c:168
+msgid "50"
+msgstr "50"
+
+#: libexif/canon/mnote-canon-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:120
+#: libexif/pentax/mnote-pentax-entry.c:122
+msgid "100"
+msgstr "100"
+
+#: libexif/canon/mnote-canon-entry.c:170
+#: libexif/pentax/mnote-pentax-entry.c:121
+#: libexif/pentax/mnote-pentax-entry.c:123
+msgid "200"
+msgstr "200"
+
+#: libexif/canon/mnote-canon-entry.c:171
+msgid "400"
+msgstr "400"
+
+#: libexif/canon/mnote-canon-entry.c:172
+msgid "800"
+msgstr "800"
+
+#: libexif/canon/mnote-canon-entry.c:173
+msgid "Default"
+msgstr "Domyślny"
+
+#: libexif/canon/mnote-canon-entry.c:174 libexif/exif-entry.c:698
+msgid "Spot"
+msgstr "Punktowy"
+
+#: libexif/canon/mnote-canon-entry.c:175 libexif/exif-entry.c:696
+msgid "Average"
+msgstr "Średnia"
+
+#: libexif/canon/mnote-canon-entry.c:176
+msgid "Evaluative"
+msgstr "Szacowany"
+
+#: libexif/canon/mnote-canon-entry.c:177 libexif/exif-entry.c:701
+msgid "Partial"
+msgstr "Częściowy"
+
+#: libexif/canon/mnote-canon-entry.c:178 libexif/exif-entry.c:697
+msgid "Center-weighted average"
+msgstr "Średnia centralnie ważona"
+
+#: libexif/canon/mnote-canon-entry.c:181
+msgid "Not known"
+msgstr "Brak informacji"
+
+#: libexif/canon/mnote-canon-entry.c:183
+msgid "Very close"
+msgstr "Bardzo blisko"
+
+#: libexif/canon/mnote-canon-entry.c:184 libexif/exif-entry.c:797
+msgid "Close"
+msgstr "Blisko"
+
+#: libexif/canon/mnote-canon-entry.c:185
+msgid "Middle range"
+msgstr "Średnio blisko"
+
+#: libexif/canon/mnote-canon-entry.c:186
+msgid "Far range"
+msgstr "Daleko"
+
+#: libexif/canon/mnote-canon-entry.c:189
+#: libexif/pentax/mnote-pentax-entry.c:210
+msgid "Infinity"
+msgstr "Nieskończoność"
+
+#: libexif/canon/mnote-canon-entry.c:190
+msgid "Manual AF point selection"
+msgstr "Ręczny wybór punktu AF"
+
+#: libexif/canon/mnote-canon-entry.c:191 libexif/canon/mnote-canon-entry.c:349
+msgid "None (MF)"
+msgstr "Brak (MF)"
+
+#: libexif/canon/mnote-canon-entry.c:192
+msgid "Auto-selected"
+msgstr "Automatycznie wybrany"
+
+#: libexif/canon/mnote-canon-entry.c:193 libexif/canon/mnote-canon-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:224
+#: libexif/pentax/mnote-pentax-entry.c:238
+msgid "Right"
+msgstr "Prawy"
+
+#: libexif/canon/mnote-canon-entry.c:194 libexif/canon/mnote-canon-entry.c:351
+#: libexif/pentax/mnote-pentax-entry.c:222
+#: libexif/pentax/mnote-pentax-entry.c:237
+msgid "Center"
+msgstr "Środek"
+
+#: libexif/canon/mnote-canon-entry.c:195 libexif/canon/mnote-canon-entry.c:353
+#: libexif/pentax/mnote-pentax-entry.c:220
+#: libexif/pentax/mnote-pentax-entry.c:236
+msgid "Left"
+msgstr "Lewy"
+
+#: libexif/canon/mnote-canon-entry.c:196
+msgid "Auto AF point selection"
+msgstr "Automatyczny wybór punktu AF"
+
+#: libexif/canon/mnote-canon-entry.c:197
+msgid "Easy shooting"
+msgstr "Łatwe robienie zdjęć"
+
+#: libexif/canon/mnote-canon-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:163
+msgid "Program"
+msgstr "Program"
+
+#: libexif/canon/mnote-canon-entry.c:199
+msgid "Tv-priority"
+msgstr "Priorytet Tv"
+
+#: libexif/canon/mnote-canon-entry.c:200
+msgid "Av-priority"
+msgstr "Priorytet Av"
+
+#: libexif/canon/mnote-canon-entry.c:202
+msgid "A-DEP"
+msgstr "A-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:203
+msgid "M-DEP"
+msgstr "M-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:204
+msgid "Canon EF 50mm f/1.8"
+msgstr "Canon EF 50mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:205
+msgid "Canon EF 28mm f/2.8"
+msgstr "Canon EF 28mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:206
+msgid "Sigma UC Zoom 35-135mm f/4-5.6"
+msgstr "Sigma UC Zoom 35-135mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:207
+msgid "Tokina AF193-2 19-35mm f/3.5-4.5"
+msgstr "Tokina AF193-2 19-35mm f/3.5-4.5"
+
+#: libexif/canon/mnote-canon-entry.c:208
+msgid "Canon EF 100-300mm F5.6L"
+msgstr "Canon EF 100-300mm F5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:209
+msgid "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+msgstr "Sigma 50mm f/2.8 EX lub 28mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:210
+msgid "Canon EF 35mm f/2"
+msgstr "Canon EF 35mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:211
+msgid "Canon EF 15mm f/2.8"
+msgstr "Canon EF 15mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:212
+msgid "Canon EF 80-200mm f/2.8L"
+msgstr "Canon EF 80-200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:213
+msgid "Tokina AT-X280AF PRO 28-80mm F2.8 Aspherical"
+msgstr "Tokina AT-X280AF PRO 28-80mm F2.8 Aspherical"
+
+#: libexif/canon/mnote-canon-entry.c:214
+msgid "Cosina 100mm f/3.5 Macro AF"
+msgstr "Cosina 100mm f/3.5 Macro AF"
+
+#: libexif/canon/mnote-canon-entry.c:215
+msgid "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+msgstr "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:216
+msgid "Canon EF 50mm f/1.8 MkII"
+msgstr "Canon EF 50mm f/1.8 MkII"
+
+#: libexif/canon/mnote-canon-entry.c:217
+msgid "Tamron SP AF 300mm f/2.8 LD IF"
+msgstr "Tamron SP AF 300mm f/2.8 LD IF"
+
+#: libexif/canon/mnote-canon-entry.c:218
+msgid "Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+msgstr "Canon EF 24mm f/2.8 lub Sigma 15mm f/2.8 EX Fisheye"
+
+#: libexif/canon/mnote-canon-entry.c:219
+msgid "Canon EF 75-300mm f/4-5.6"
+msgstr "Canon EF 75-300mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:220
+msgid "Canon EF 28-80mm f/3.5-5.6"
+msgstr "Canon EF 28-80mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:221
+msgid "Canon EF 28-105mm f/4-5.6"
+msgstr "Canon EF 28-105mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:222
+msgid "Canon EF-S 18-55mm f/3.5-5.6"
+msgstr "Canon EF-S 18-55mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:223
+msgid "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+msgstr "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+
+#: libexif/canon/mnote-canon-entry.c:224
+msgid "Canon TS-E 24mm f/3.5L"
+msgstr "Canon TS-E 24mm f/3.5L"
+
+#: libexif/canon/mnote-canon-entry.c:225
+msgid "Canon TS-E 45mm f/2.8"
+msgstr "Canon TS-E 45mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:226
+msgid "Canon TS-E 90mm f/2.8"
+msgstr "Canon TS-E 90mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:227
+msgid "Canon EF 50mm f/1.0L"
+msgstr "Canon EF 50mm f/1.0L"
+
+#: libexif/canon/mnote-canon-entry.c:228
+msgid "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+msgstr "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+
+#: libexif/canon/mnote-canon-entry.c:229
+msgid "Canon EF 600mm f/4L IS"
+msgstr "Canon EF 600mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:230
+msgid "Canon EF 200mm f/1.8L"
+msgstr "Canon EF 200mm f/1.8L"
+
+#: libexif/canon/mnote-canon-entry.c:231
+msgid "Canon EF 300mm f/2.8L"
+msgstr "Canon EF 300mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:232
+msgid "Canon EF 85mm f/1.2L"
+msgstr "Canon EF 85mm f/1.2L"
+
+#: libexif/canon/mnote-canon-entry.c:233
+msgid "Canon EF 400mm f/2.8L"
+msgstr "Canon EF 400mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:234
+msgid "Canon EF 500mm f/4.5L"
+msgstr "Canon EF 500mm f/4.5L"
+
+#: libexif/canon/mnote-canon-entry.c:235
+msgid "Canon EF 300mm f/2.8L IS"
+msgstr "Canon EF 300mm f/2.8L IS"
+
+#: libexif/canon/mnote-canon-entry.c:236
+msgid "Canon EF 500mm f/4L IS"
+msgstr "Canon EF 500mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:237
+msgid "Canon EF 100mm f/2"
+msgstr "Canon EF 100mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:238
+msgid "Sigma 20mm EX f/1.8"
+msgstr "Sigma 20mm EX f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:239
+msgid "Canon EF 200mm f/2.8L"
+msgstr "Canon EF 200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:240
+msgid "Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+msgstr "Sigma 10-20mm F4-5.6 lub 12-24mm f/4.5-5.6 lub 14mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:241
+msgid "Canon EF 35-350mm f/3.5-5.6L"
+msgstr "Canon EF 35-350mm f/3.5-5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:242
+msgid "Canon EF 85mm f/1.8 USM"
+msgstr "Canon EF 85mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:243
+msgid "Canon EF 28-105mm f/3.5-4.5 USM"
+msgstr "Canon EF 28-105mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:244
+msgid "Canon EF 20-35mm f/3.5-4.5 USM"
+msgstr "Canon EF 20-35mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:245
+msgid "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+msgstr "Canon EF 28-70mm f/2.8L lub Sigma 24-70mm EX f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:246
+msgid "Canon EF 70-200mm f/2.8 L"
+msgstr "Canon EF 70-200mm f/2.8 L"
+
+#: libexif/canon/mnote-canon-entry.c:247
+msgid "Canon EF 70-200mm f/2.8 L + x1.4"
+msgstr "Canon EF 70-200mm f/2.8 L + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:248
+msgid "Canon EF 70-200mm f/2.8 L + x2"
+msgstr "Canon EF 70-200mm f/2.8 L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:249
+msgid "Canon EF 28mm f/1.8 USM"
+msgstr "Canon EF 28mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:250
+msgid "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+msgstr "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+
+#: libexif/canon/mnote-canon-entry.c:251
+msgid "Canon EF 200mm f/2.8L II"
+msgstr "Canon EF 200mm f/2.8L II"
+
+#: libexif/canon/mnote-canon-entry.c:252
+msgid "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+msgstr "Canon EF 180mm Macro f/3.5L lub Sigma 180mm EX HSM Macro f/3.5"
+
+#: libexif/canon/mnote-canon-entry.c:253
+msgid "Canon EF 135mm f/2L"
+msgstr "Canon EF 135mm f/2L"
+
+#: libexif/canon/mnote-canon-entry.c:254
+msgid "Canon EF 24-85mm f/3.5-4.5 USM"
+msgstr "Canon EF 24-85mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:255
+msgid "Canon EF 300mm f/4L IS"
+msgstr "Canon EF 300mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:256
+msgid "Canon EF 28-135mm f/3.5-5.6 IS"
+msgstr "Canon EF 28-135mm f/3.5-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:257
+msgid "Canon EF 35mm f/1.4L"
+msgstr "Canon EF 35mm f/1.4L"
+
+#: libexif/canon/mnote-canon-entry.c:258
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:259
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+
+#: libexif/canon/mnote-canon-entry.c:260
+msgid "Canon EF 100-400mm f/4.5-5.6L IS"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS"
+
+#: libexif/canon/mnote-canon-entry.c:261
+msgid "Canon EF 400mm f/2.8L + x2"
+msgstr "Canon EF 400mm f/2.8L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:262
+msgid "Canon EF 70-200mm f/4L"
+msgstr "Canon EF 70-200mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:263
+msgid "Canon EF 100mm f/2.8 Macro"
+msgstr "Canon EF 100mm f/2.8 Macro"
+
+#: libexif/canon/mnote-canon-entry.c:264
+msgid "Canon EF 400mm f/4 DO IS"
+msgstr "Canon EF 400mm f/4 DO IS"
+
+#: libexif/canon/mnote-canon-entry.c:265
+msgid "Canon EF 75-300mm f/4-5.6 IS"
+msgstr "Canon EF 75-300mm f/4-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:266
+msgid "Canon EF 50mm f/1.4"
+msgstr "Canon EF 50mm f/1.4"
+
+#: libexif/canon/mnote-canon-entry.c:267
+msgid "Canon EF 28-80 f/3.5-5.6 USM IV"
+msgstr "Canon EF 28-80 f/3.5-5.6 USM IV"
+
+#: libexif/canon/mnote-canon-entry.c:268
+msgid "Canon EF 28-200mm f/3.5-5.6"
+msgstr "Canon EF 28-200mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:269
+msgid "Canon EF 90-300mm f/4.5-5.6"
+msgstr "Canon EF 90-300mm f/4.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:270
+msgid "Canon EF-S 18-55mm f/3.5-4.5 USM"
+msgstr "Canon EF-S 18-55mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:271
+msgid "Canon EF 70-200mm f/2.8L IS USM"
+msgstr "Canon EF 70-200mm f/2.8L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:272
+msgid "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+msgstr "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:273
+msgid "Canon EF 70-200mm f/2.8L IS USM + x2"
+msgstr "Canon EF 70-200mm f/2.8L IS USM + x2"
+
+#: libexif/canon/mnote-canon-entry.c:274
+msgid "Canon EF 16-35mm f/2.8L"
+msgstr "Canon EF 16-35mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:275
+msgid "Canon EF 24-70mm f/2.8L"
+msgstr "Canon EF 24-70mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:276
+msgid "Canon EF 17-40mm f/4L"
+msgstr "Canon EF 17-40mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:277
+msgid "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+msgstr "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:278
+msgid "Canon EF-S 17-85mm f4-5.6 IS USM"
+msgstr "Canon EF-S 17-85mm f4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:279
+msgid "Canon EF-S10-22mm F3.5-4.5 USM"
+msgstr "Canon EF-S10-22mm F3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:280
+msgid "Canon EF-S60mm F2.8 Macro USM"
+msgstr "Canon EF-S60mm F2.8 Macro USM"
+
+#: libexif/canon/mnote-canon-entry.c:281
+msgid "Canon EF 24-105mm f/4L IS"
+msgstr "Canon EF 24-105mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:282
+msgid "Canon EF 70-300mm F4-5.6 IS USM"
+msgstr "Canon EF 70-300mm F4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:283
+msgid "Canon EF 50mm F1.2L USM"
+msgstr "Canon EF 50mm F1.2L USM"
+
+#: libexif/canon/mnote-canon-entry.c:284
+msgid "Canon EF 70-200mm f/4L IS USM"
+msgstr "Canon EF 70-200mm f/4L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:286
+msgid "TTL"
+msgstr "TTL"
+
+#: libexif/canon/mnote-canon-entry.c:287
+msgid "A-TTL"
+msgstr "A-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:288
+msgid "E-TTL"
+msgstr "E-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:289
+msgid "FP sync enabled"
+msgstr "Włączono FP sync"
+
+#: libexif/canon/mnote-canon-entry.c:290
+msgid "2nd-curtain sync used"
+msgstr "Użyto 2nd-curtain sync"
+
+#: libexif/canon/mnote-canon-entry.c:291
+msgid "FP sync used"
+msgstr "Użyto FP sync"
+
+#: libexif/canon/mnote-canon-entry.c:292
+#: libexif/olympus/mnote-olympus-entry.c:190
+msgid "Internal"
+msgstr "Wewnętrzny"
+
+#: libexif/canon/mnote-canon-entry.c:293
+#: libexif/olympus/mnote-olympus-entry.c:191
+msgid "External"
+msgstr "Zewnętrzny"
+
+#: libexif/canon/mnote-canon-entry.c:296
+msgid "Normal AE"
+msgstr "Normalna AE"
+
+#: libexif/canon/mnote-canon-entry.c:297
+msgid "Exposure compensation"
+msgstr "Kompensacja ekspozycji"
+
+#: libexif/canon/mnote-canon-entry.c:298
+msgid "AE lock"
+msgstr "Blokada AE"
+
+#: libexif/canon/mnote-canon-entry.c:299
+msgid "AE lock + exposure compensation"
+msgstr "Blokada AE + kompensacja ekspozycji"
+
+#: libexif/canon/mnote-canon-entry.c:300
+msgid "No AE"
+msgstr "Brak AE"
+
+#: libexif/canon/mnote-canon-entry.c:303
+msgid "On, shot only"
+msgstr "Włączona, tylko zdjęcie"
+
+#: libexif/canon/mnote-canon-entry.c:307
+msgid "Smooth"
+msgstr "Płynny"
+
+#: libexif/canon/mnote-canon-entry.c:310 libexif/canon/mnote-canon-entry.c:334
+#: libexif/canon/mnote-canon-entry.c:393 libexif/canon/mnote-canon-entry.c:406
+#: libexif/fuji/mnote-fuji-entry.c:81 libexif/pentax/mnote-pentax-entry.c:87
+msgid "Custom"
+msgstr "Własny"
+
+#: libexif/canon/mnote-canon-entry.c:311
+msgid "My color data"
+msgstr "Moje dane kolorów"
+
+#: libexif/canon/mnote-canon-entry.c:313 libexif/canon/mnote-canon-entry.c:375
+#: libexif/pentax/mnote-pentax-entry.c:126
+#: libexif/pentax/mnote-pentax-entry.c:145
+msgid "Full"
+msgstr "Pełny"
+
+#: libexif/canon/mnote-canon-entry.c:314 libexif/canon/mnote-canon-entry.c:374
+msgid "2/3"
+msgstr "2/3"
+
+#: libexif/canon/mnote-canon-entry.c:315 libexif/canon/mnote-canon-entry.c:373
+msgid "1/3"
+msgstr "1/3"
+
+#: libexif/canon/mnote-canon-entry.c:321
+msgid "Fixed"
+msgstr "Stała"
+
+#: libexif/canon/mnote-canon-entry.c:322 libexif/pentax/mnote-pentax-tag.c:44
+msgid "Zoom"
+msgstr "Powiększenie"
+
+#: libexif/canon/mnote-canon-entry.c:329
+msgid "Sunny"
+msgstr "Słonecznie"
+
+#: libexif/canon/mnote-canon-entry.c:330 libexif/canon/mnote-canon-entry.c:402
+#: libexif/exif-entry.c:719 libexif/fuji/mnote-fuji-entry.c:75
+#: libexif/olympus/mnote-olympus-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:255
+msgid "Cloudy"
+msgstr "Pochmurno"
+
+#: libexif/canon/mnote-canon-entry.c:331 libexif/canon/mnote-canon-entry.c:403
+#: libexif/exif-entry.c:716 libexif/pentax/mnote-pentax-entry.c:100
+#: libexif/pentax/mnote-pentax-entry.c:249
+msgid "Tungsten"
+msgstr "Wolfram"
+
+#: libexif/canon/mnote-canon-entry.c:332 libexif/canon/mnote-canon-entry.c:404
+#: libexif/exif-entry.c:715 libexif/pentax/mnote-pentax-entry.c:101
+#: libexif/pentax/mnote-pentax-entry.c:248
+msgid "Fluorescent"
+msgstr "Fluorescencja"
+
+#: libexif/canon/mnote-canon-entry.c:333 libexif/canon/mnote-canon-entry.c:405
+#: libexif/exif-entry.c:717 libexif/exif-entry.c:759 libexif/exif-tag.c:577
+#: libexif/fuji/mnote-fuji-entry.c:80 libexif/pentax/mnote-pentax-entry.c:254
+msgid "Flash"
+msgstr "Flesz"
+
+#: libexif/canon/mnote-canon-entry.c:336 libexif/canon/mnote-canon-entry.c:408
+#: libexif/exif-entry.c:720 libexif/pentax/mnote-pentax-entry.c:99
+#: libexif/pentax/mnote-pentax-entry.c:247
+msgid "Shade"
+msgstr "Cień"
+
+#: libexif/canon/mnote-canon-entry.c:337 libexif/canon/mnote-canon-entry.c:409
+msgid "Manual temperature (Kelvin)"
+msgstr "Temperatura ręczna (w kelwinach)"
+
+#: libexif/canon/mnote-canon-entry.c:338 libexif/canon/mnote-canon-entry.c:410
+msgid "PC set 1"
+msgstr "Ustawienie PC 1"
+
+#: libexif/canon/mnote-canon-entry.c:339 libexif/canon/mnote-canon-entry.c:411
+msgid "PC set 2"
+msgstr "Ustawienie PC 2"
+
+#: libexif/canon/mnote-canon-entry.c:340 libexif/canon/mnote-canon-entry.c:412
+msgid "PC set 3"
+msgstr "Ustawienie PC 3"
+
+#: libexif/canon/mnote-canon-entry.c:341 libexif/canon/mnote-canon-entry.c:413
+#: libexif/exif-entry.c:721 libexif/fuji/mnote-fuji-entry.c:76
+#: libexif/pentax/mnote-pentax-entry.c:251
+msgid "Daylight fluorescent"
+msgstr "Fluorescencyjne światło dzienne"
+
+#: libexif/canon/mnote-canon-entry.c:342 libexif/canon/mnote-canon-entry.c:414
+msgid "Custom 1"
+msgstr "Własne 1"
+
+#: libexif/canon/mnote-canon-entry.c:343 libexif/canon/mnote-canon-entry.c:415
+msgid "Custom 2"
+msgstr "Własne 2"
+
+#: libexif/canon/mnote-canon-entry.c:346 libexif/exif-entry.c:672
+#: libexif/pentax/mnote-pentax-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:132
+#: libexif/pentax/mnote-pentax-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:295
+msgid "Night scene"
+msgstr "Scena nocna"
+
+#: libexif/canon/mnote-canon-entry.c:352
+msgid "Center-right"
+msgstr "Środkowy i prawy"
+
+#: libexif/canon/mnote-canon-entry.c:354
+msgid "Left-right"
+msgstr "Lewy i prawy"
+
+#: libexif/canon/mnote-canon-entry.c:355
+msgid "Left-center"
+msgstr "Lewy i środkowy"
+
+#: libexif/canon/mnote-canon-entry.c:356
+msgid "All"
+msgstr "Wszystkie"
+
+#: libexif/canon/mnote-canon-entry.c:358
+msgid "On (shot 1)"
+msgstr "Włączony (zdjęcie 1)"
+
+#: libexif/canon/mnote-canon-entry.c:359
+msgid "On (shot 2)"
+msgstr "Włączony (zdjęcie 2)"
+
+#: libexif/canon/mnote-canon-entry.c:360
+msgid "On (shot 3)"
+msgstr "Włączony (zdjęcie 3)"
+
+#: libexif/canon/mnote-canon-entry.c:362
+msgid "EOS high-end"
+msgstr "EOS wysokiej klasy"
+
+#: libexif/canon/mnote-canon-entry.c:363
+msgid "Compact"
+msgstr "Kompakt"
+
+#: libexif/canon/mnote-canon-entry.c:364
+msgid "EOS mid-range"
+msgstr "EOS średniej klasy"
+
+#: libexif/canon/mnote-canon-entry.c:366
+msgid "Rotate 90 CW"
+msgstr "Obrót o 90 (zg.ze wsk.)"
+
+#: libexif/canon/mnote-canon-entry.c:367
+msgid "Rotate 180"
+msgstr "Obrót o 180 stopni"
+
+#: libexif/canon/mnote-canon-entry.c:368
+msgid "Rotate 270 CW"
+msgstr "Obrót o 270 (zg.ze wsk.)"
+
+#: libexif/canon/mnote-canon-entry.c:369
+msgid "Rotated by software"
+msgstr "Obrót programowy"
+
+#: libexif/canon/mnote-canon-entry.c:381
+#: libexif/olympus/mnote-olympus-entry.c:606
+msgid "Left to right"
+msgstr "Od lewej do prawej"
+
+#: libexif/canon/mnote-canon-entry.c:382
+#: libexif/olympus/mnote-olympus-entry.c:609
+msgid "Right to left"
+msgstr "Od prawej do lewej"
+
+#: libexif/canon/mnote-canon-entry.c:383
+#: libexif/olympus/mnote-olympus-entry.c:612
+msgid "Bottom to top"
+msgstr "Od dołu do góry"
+
+#: libexif/canon/mnote-canon-entry.c:384
+#: libexif/olympus/mnote-olympus-entry.c:615
+msgid "Top to bottom"
+msgstr "Od góry do dołu"
+
+#: libexif/canon/mnote-canon-entry.c:385
+msgid "2x2 matrix (clockwise)"
+msgstr "Macierz 2x2 (zgodnie ze wskazówkami)"
+
+#: libexif/canon/mnote-canon-entry.c:391 libexif/canon/mnote-canon-entry.c:397
+#: libexif/canon/mnote-canon-entry.c:418 libexif/canon/mnote-canon-entry.c:428
+#: libexif/exif-entry.c:671 libexif/fuji/mnote-fuji-entry.c:84
+#: libexif/fuji/mnote-fuji-entry.c:93 libexif/fuji/mnote-fuji-entry.c:163
+#: libexif/olympus/mnote-olympus-entry.c:227
+msgid "Standard"
+msgstr "Standardowy"
+
+#: libexif/canon/mnote-canon-entry.c:394
+msgid "N/A"
+msgstr "nd."
+
+#: libexif/canon/mnote-canon-entry.c:395
+msgid "Lowest"
+msgstr "Najniższa"
+
+#: libexif/canon/mnote-canon-entry.c:399
+msgid "Highest"
+msgstr "Najwyższa"
+
+#: libexif/canon/mnote-canon-entry.c:401 libexif/exif-entry.c:714
+#: libexif/fuji/mnote-fuji-entry.c:74
+#: libexif/olympus/mnote-olympus-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:98
+#: libexif/pentax/mnote-pentax-entry.c:246
+msgid "Daylight"
+msgstr "Światło dzienne"
+
+#: libexif/canon/mnote-canon-entry.c:419
+msgid "Set 1"
+msgstr "Ustawienie 1"
+
+#: libexif/canon/mnote-canon-entry.c:420
+msgid "Set 2"
+msgstr "Ustawienie 2"
+
+#: libexif/canon/mnote-canon-entry.c:421
+msgid "Set 3"
+msgstr "Ustawienie 3"
+
+#: libexif/canon/mnote-canon-entry.c:422
+msgid "User def. 1"
+msgstr "Użytkownika 1"
+
+#: libexif/canon/mnote-canon-entry.c:423
+msgid "User def. 2"
+msgstr "Użytkownika 2"
+
+#: libexif/canon/mnote-canon-entry.c:424
+msgid "User def. 3"
+msgstr "Użytkownika 3"
+
+#: libexif/canon/mnote-canon-entry.c:425
+msgid "External 1"
+msgstr "Zewnętrzny 1"
+
+#: libexif/canon/mnote-canon-entry.c:426
+msgid "External 2"
+msgstr "Zewnętrzny 2"
+
+#: libexif/canon/mnote-canon-entry.c:427
+msgid "External 3"
+msgstr "Zewnętrzny 3"
+
+#: libexif/canon/mnote-canon-entry.c:432
+msgid "Faithful"
+msgstr "Wierny"
+
+#: libexif/canon/mnote-canon-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:115
+msgid "Monochrome"
+msgstr "Monochromatyczny"
+
+#: libexif/canon/mnote-canon-entry.c:491
+msgid ", "
+msgstr ", "
+
+#: libexif/canon/mnote-canon-entry.c:577 libexif/canon/mnote-canon-entry.c:674
+#, c-format
+msgid "%i (ms)"
+msgstr "%i (ms)"
+
+#: libexif/canon/mnote-canon-entry.c:621
+#, c-format
+msgid "%.2f mm"
+msgstr "%.2f mm"
+
+#: libexif/canon/mnote-canon-entry.c:645
+#, c-format
+msgid "%.2f EV"
+msgstr "%.2f EV"
+
+#: libexif/canon/mnote-canon-entry.c:655 libexif/exif-entry.c:1064
+#, c-format
+msgid "1/%i"
+msgstr "1/%i"
+
+#: libexif/canon/mnote-canon-entry.c:667
+#, c-format
+msgid "%u mm"
+msgstr "%u mm"
+
+#: libexif/canon/mnote-canon-tag.c:35
+msgid "Settings (First Part)"
+msgstr "Ustawienia (część pierwsza)"
+
+#: libexif/canon/mnote-canon-tag.c:36 libexif/canon/mnote-canon-tag.c:92
+#: libexif/exif-tag.c:581 libexif/pentax/mnote-pentax-tag.c:88
+msgid "Focal Length"
+msgstr "Ogniskowa"
+
+#: libexif/canon/mnote-canon-tag.c:37
+msgid "Settings (Second Part)"
+msgstr "Ustawienia (część druga)"
+
+#: libexif/canon/mnote-canon-tag.c:38
+#: libexif/olympus/mnote-olympus-entry.c:595
+#: libexif/pentax/mnote-pentax-entry.c:177
+msgid "Panorama"
+msgstr "Panorama"
+
+#: libexif/canon/mnote-canon-tag.c:39
+msgid "Image Type"
+msgstr "Rodzaj obrazu"
+
+#: libexif/canon/mnote-canon-tag.c:40 libexif/olympus/mnote-olympus-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:113
+msgid "Firmware Version"
+msgstr "Wersja firmware"
+
+#: libexif/canon/mnote-canon-tag.c:41
+msgid "Image Number"
+msgstr "Numer zdjęcia"
+
+#: libexif/canon/mnote-canon-tag.c:42
+msgid "Owner Name"
+msgstr "Nazwa właściciela"
+
+#: libexif/canon/mnote-canon-tag.c:43
+msgid "Color Information"
+msgstr "Informacja o kolorach"
+
+#: libexif/canon/mnote-canon-tag.c:44 libexif/fuji/mnote-fuji-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:81
+#: libexif/olympus/mnote-olympus-tag.c:146
+msgid "Serial Number"
+msgstr "Numer seryjny"
+
+#: libexif/canon/mnote-canon-tag.c:45
+msgid "Custom Functions"
+msgstr "Funkcje własne"
+
+#: libexif/canon/mnote-canon-tag.c:56 libexif/fuji/mnote-fuji-tag.c:45
+msgid "Macro Mode"
+msgstr "Tryb makro"
+
+#: libexif/canon/mnote-canon-tag.c:57 libexif/canon/mnote-canon-tag.c:117
+#: libexif/olympus/mnote-olympus-tag.c:175
+#: libexif/pentax/mnote-pentax-tag.c:128
+msgid "Self-timer"
+msgstr "Samowyzwalacz"
+
+#: libexif/canon/mnote-canon-tag.c:58 libexif/fuji/mnote-fuji-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:94
+#: libexif/olympus/mnote-olympus-tag.c:107
+msgid "Quality"
+msgstr "Jakość"
+
+#: libexif/canon/mnote-canon-tag.c:59 libexif/fuji/mnote-fuji-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:45
+#: libexif/olympus/mnote-olympus-tag.c:127
+#: libexif/pentax/mnote-pentax-tag.c:38 libexif/pentax/mnote-pentax-tag.c:73
+msgid "Flash Mode"
+msgstr "Tryb flesza"
+
+#: libexif/canon/mnote-canon-tag.c:60 libexif/pentax/mnote-pentax-tag.c:101
+msgid "Drive Mode"
+msgstr "Tryb działania"
+
+#: libexif/canon/mnote-canon-tag.c:61 libexif/canon/mnote-canon-tag.c:82
+#: libexif/olympus/mnote-olympus-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:134
+#: libexif/olympus/mnote-olympus-tag.c:173
+#: libexif/pentax/mnote-pentax-tag.c:37 libexif/pentax/mnote-pentax-tag.c:74
+#: libexif/pentax/mnote-pentax-tag.c:130
+msgid "Focus Mode"
+msgstr "Tryb ogniskowania"
+
+#: libexif/canon/mnote-canon-tag.c:62 libexif/pentax/mnote-pentax-tag.c:127
+msgid "Record Mode"
+msgstr "Tryb nagrywania"
+
+#: libexif/canon/mnote-canon-tag.c:63 libexif/pentax/mnote-pentax-tag.c:71
+msgid "Image Size"
+msgstr "Rozmiar obrazu"
+
+#: libexif/canon/mnote-canon-tag.c:64
+msgid "Easy Shooting Mode"
+msgstr "Tryb łatwego robienia zdjęć"
+
+#: libexif/canon/mnote-canon-tag.c:65 libexif/olympus/mnote-olympus-tag.c:64
+#: libexif/olympus/mnote-olympus-tag.c:101
+#: libexif/olympus/mnote-olympus-tag.c:110
+#: libexif/olympus/mnote-olympus-tag.c:180
+#: libexif/pentax/mnote-pentax-tag.c:89
+msgid "Digital Zoom"
+msgstr "Powiększenie cyfrowe"
+
+#: libexif/canon/mnote-canon-tag.c:66 libexif/exif-tag.c:828
+#: libexif/fuji/mnote-fuji-tag.c:42 libexif/pentax/mnote-pentax-tag.c:46
+#: libexif/pentax/mnote-pentax-tag.c:91
+msgid "Contrast"
+msgstr "Kontrastowość"
+
+#: libexif/canon/mnote-canon-tag.c:67 libexif/exif-tag.c:832
+#: libexif/olympus/mnote-olympus-tag.c:75
+#: libexif/olympus/mnote-olympus-tag.c:87 libexif/pentax/mnote-pentax-tag.c:47
+#: libexif/pentax/mnote-pentax-tag.c:90
+msgid "Saturation"
+msgstr "Nasycenie"
+
+#: libexif/canon/mnote-canon-tag.c:68 libexif/exif-tag.c:836
+#: libexif/fuji/mnote-fuji-tag.c:39 libexif/pentax/mnote-pentax-tag.c:45
+#: libexif/pentax/mnote-pentax-tag.c:92
+msgid "Sharpness"
+msgstr "Ostrość"
+
+#: libexif/canon/mnote-canon-tag.c:69
+msgid "ISO"
+msgstr "ISO"
+
+#: libexif/canon/mnote-canon-tag.c:70 libexif/exif-tag.c:571
+#: libexif/pentax/mnote-pentax-tag.c:82
+msgid "Metering Mode"
+msgstr "Tryb pomiaru"
+
+#: libexif/canon/mnote-canon-tag.c:71 libexif/olympus/mnote-olympus-tag.c:133
+msgid "Focus Range"
+msgstr "Zakres ogniskowej"
+
+#: libexif/canon/mnote-canon-tag.c:72 libexif/canon/mnote-canon-tag.c:105
+msgid "AF Point"
+msgstr "Punkt AF"
+
+#: libexif/canon/mnote-canon-tag.c:73 libexif/exif-tag.c:795
+msgid "Exposure Mode"
+msgstr "Tryb ekspozycji"
+
+#: libexif/canon/mnote-canon-tag.c:74 libexif/olympus/mnote-olympus-tag.c:61
+#: libexif/pentax/mnote-pentax-tag.c:106
+msgid "Lens Type"
+msgstr "Rodzaj obiektywu"
+
+#: libexif/canon/mnote-canon-tag.c:75
+msgid "Long Focal Length of Lens"
+msgstr "Długa ogniskowa obiektywu"
+
+#: libexif/canon/mnote-canon-tag.c:76
+msgid "Short Focal Length of Lens"
+msgstr "Krótka ogniskowa obiektywu"
+
+#: libexif/canon/mnote-canon-tag.c:77
+msgid "Focal Units per mm"
+msgstr "Jednostki ogniskowe na mm"
+
+#: libexif/canon/mnote-canon-tag.c:78
+msgid "Maximal Aperture"
+msgstr "Maksymalna jasność"
+
+#: libexif/canon/mnote-canon-tag.c:79
+msgid "Minimal Aperture"
+msgstr "Minimalna jasność"
+
+#: libexif/canon/mnote-canon-tag.c:80
+msgid "Flash Activity"
+msgstr "Działanie flesza"
+
+#: libexif/canon/mnote-canon-tag.c:81
+msgid "Flash Details"
+msgstr "Opis flesza"
+
+#: libexif/canon/mnote-canon-tag.c:83
+msgid "AE Setting"
+msgstr "Ustawienie AE"
+
+#: libexif/canon/mnote-canon-tag.c:84
+msgid "Image Stabilization"
+msgstr "Stabilizacja obrazu"
+
+#: libexif/canon/mnote-canon-tag.c:85
+msgid "Display Aperture"
+msgstr "Jasność wyświetlacza"
+
+#: libexif/canon/mnote-canon-tag.c:86
+msgid "Zoom Source Width"
+msgstr "Szerokość źródłowa powiększenia"
+
+#: libexif/canon/mnote-canon-tag.c:87
+msgid "Zoom Target Width"
+msgstr "Szerokość docelowa powiększenia"
+
+#: libexif/canon/mnote-canon-tag.c:88
+msgid "Photo Effect"
+msgstr "Efekt fotograficzny"
+
+#: libexif/canon/mnote-canon-tag.c:89 libexif/canon/mnote-canon-tag.c:118
+msgid "Manual Flash Output"
+msgstr "Ręczne wyjście flesza"
+
+#: libexif/canon/mnote-canon-tag.c:90
+msgid "Color Tone"
+msgstr "Tonacja kolorów"
+
+#: libexif/canon/mnote-canon-tag.c:91
+msgid "Focal Type"
+msgstr "Rodzaj ogniskowania"
+
+#: libexif/canon/mnote-canon-tag.c:93
+msgid "Focal Plane X Size"
+msgstr "Rozmiar płaszczyzny ogniskowej X"
+
+#: libexif/canon/mnote-canon-tag.c:94
+msgid "Focal Plane Y Size"
+msgstr "Rozmiar płaszczyzny ogniskowej Y"
+
+#: libexif/canon/mnote-canon-tag.c:95
+msgid "Auto ISO"
+msgstr "ISO auto"
+
+#: libexif/canon/mnote-canon-tag.c:96
+msgid "Shot ISO"
+msgstr "ISO zdjęcia"
+
+#: libexif/canon/mnote-canon-tag.c:97
+msgid "Measured EV"
+msgstr "Zmierzone EV"
+
+#: libexif/canon/mnote-canon-tag.c:98
+msgid "Target Aperture"
+msgstr "Przysłona docelowa"
+
+#: libexif/canon/mnote-canon-tag.c:99
+msgid "Target Exposure Time"
+msgstr "Docelowy czas ekspozycji"
+
+#: libexif/canon/mnote-canon-tag.c:100 libexif/olympus/mnote-olympus-tag.c:129
+#: libexif/pentax/mnote-pentax-tag.c:81
+msgid "Exposure Compensation"
+msgstr "Kompensacja ekspozycji"
+
+#: libexif/canon/mnote-canon-tag.c:101 libexif/canon/mnote-canon-tag.c:123
+#: libexif/exif-tag.c:800 libexif/fuji/mnote-fuji-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:41
+#: libexif/olympus/mnote-olympus-tag.c:98 libexif/pentax/mnote-pentax-tag.c:41
+#: libexif/pentax/mnote-pentax-tag.c:84 libexif/pentax/mnote-pentax-tag.c:124
+msgid "White Balance"
+msgstr "Balans bieli"
+
+#: libexif/canon/mnote-canon-tag.c:102
+msgid "Slow Shutter"
+msgstr "Wolna migawka"
+
+#: libexif/canon/mnote-canon-tag.c:103
+msgid "Sequence Number"
+msgstr "Numer sekwencyjny"
+
+#: libexif/canon/mnote-canon-tag.c:104
+msgid "Flash Guide Number"
+msgstr "Liczba poprzedzających fleszy"
+
+#: libexif/canon/mnote-canon-tag.c:106 libexif/olympus/mnote-olympus-tag.c:52
+#: libexif/pentax/mnote-pentax-tag.c:109
+msgid "Flash Exposure Compensation"
+msgstr "Kompensacja ekspozycji flesza"
+
+#: libexif/canon/mnote-canon-tag.c:107
+msgid "AE Bracketing"
+msgstr "Bracketing AE"
+
+#: libexif/canon/mnote-canon-tag.c:108
+msgid "AE Bracket Value"
+msgstr "Wartość bracketingu AE"
+
+#: libexif/canon/mnote-canon-tag.c:109
+msgid "Focus Distance Upper"
+msgstr "Górna odległość ogniska"
+
+#: libexif/canon/mnote-canon-tag.c:110
+msgid "Focus Distance Lower"
+msgstr "Dolna odległość ogniska"
+
+#: libexif/canon/mnote-canon-tag.c:111
+msgid "FNumber"
+msgstr "Liczba F"
+
+#: libexif/canon/mnote-canon-tag.c:112 libexif/exif-tag.c:466
+#: libexif/pentax/mnote-pentax-tag.c:78
+msgid "Exposure Time"
+msgstr "Czas ekspozycji"
+
+#: libexif/canon/mnote-canon-tag.c:113
+msgid "Bulb Duration"
+msgstr "Okres żarówki"
+
+#: libexif/canon/mnote-canon-tag.c:114
+msgid "Camera Type"
+msgstr "Rodzaj aparatu"
+
+#: libexif/canon/mnote-canon-tag.c:115
+msgid "Auto Rotate"
+msgstr "Obrót automatyczny"
+
+#: libexif/canon/mnote-canon-tag.c:116
+msgid "ND Filter"
+msgstr "Filtr ND"
+
+#: libexif/canon/mnote-canon-tag.c:119
+msgid "Panorama Frame"
+msgstr "Ramka panoramy"
+
+#: libexif/canon/mnote-canon-tag.c:120
+msgid "Panorama Direction"
+msgstr "Kierunek panoramy"
+
+#: libexif/canon/mnote-canon-tag.c:121
+msgid "Tone Curve"
+msgstr "Krzywa tonalna"
+
+#: libexif/canon/mnote-canon-tag.c:122
+msgid "Sharpness Frequency"
+msgstr "Częstotliwość ostrości"
+
+#: libexif/canon/mnote-canon-tag.c:124
+msgid "Picture Style"
+msgstr "Styl zdjęcia"
+
+#: libexif/exif-byte-order.c:33
+msgid "Motorola"
+msgstr "Motorola"
+
+#: libexif/exif-byte-order.c:35
+msgid "Intel"
+msgstr "Intel"
+
+#: libexif/exif-data.c:780
+msgid "Size of data too small to allow for EXIF data."
+msgstr "Rozmiar danych zbyt mały aby pozwalał na dane EXIF."
+
+#: libexif/exif-data.c:841
+msgid "EXIF marker not found."
+msgstr "Nie znaleziono znacznika EXIF."
+
+#: libexif/exif-data.c:868
+msgid "EXIF header not found."
+msgstr "Nie znaleziono nagłówka EXIF."
+
+#: libexif/exif-data.c:884
+msgid "Unknown encoding."
+msgstr "Nieznane kodowanie."
+
+#: libexif/exif-data.c:1168
+msgid "Ignore unknown tags"
+msgstr "Ignorowanie nieznanych znaczników"
+
+#: libexif/exif-data.c:1169
+msgid "Ignore unknown tags when loading EXIF data."
+msgstr "Ignorowanie nieznanych znaczników przy wczytywaniu danych EXIF."
+
+#: libexif/exif-data.c:1170
+msgid "Follow specification"
+msgstr "Zgodność ze specyfikacją"
+
+#: libexif/exif-data.c:1171
+msgid ""
+"Add, correct and remove entries to get EXIF data that follows the "
+"specification."
+msgstr ""
+"Dodawanie, poprawianie i usuwanie wpisów aby uzyskać dane EXIF zgodne ze "
+"specyfikacją."
+
+#: libexif/exif-data.c:1173
+msgid "Do not change maker note"
+msgstr "Nie zmieniaj oznaczenia twórcy"
+
+#: libexif/exif-data.c:1174
+msgid ""
+"When loading and resaving Exif data, save the maker note unmodified. Be "
+"aware that the maker note can get corrupted."
+msgstr ""
+"Przy wczytywaniu i zapisywaniu danych Exif pozostaw oznaczenie twórcy "
+"niezmienione. Należy mieć świadomość, że oznaczenie twórcy może zostać "
+"uszkodzone."
+
+#: libexif/exif-entry.c:234 libexif/exif-entry.c:303 libexif/exif-entry.c:336
+#, c-format
+msgid ""
+"Tag '%s' was of format '%s' (which is against specification) and has been "
+"changed to format '%s'."
+msgstr ""
+"Znacznik '%s' był w formacie '%s' (co jest niezgodne ze specyfikacją) i "
+"został zmieniony na format '%s'."
+
+#: libexif/exif-entry.c:271
+#, c-format
+msgid ""
+"Tag '%s' is of format '%s' (which is against specification) but cannot be "
+"changed to format '%s'."
+msgstr ""
+"Znacznik '%s' jest w formacie '%s' (co jest niezgodne ze specyfikacją), ale "
+"nie może być zmieniony na format '%s'."
+
+#: libexif/exif-entry.c:354
+#, c-format
+msgid ""
+"Tag 'UserComment' had invalid format '%s'. Format has been set to "
+"'undefined'."
+msgstr ""
+"Znacznik 'UserComment' ma nieprawidłowy format '%s'. Format został ustawiony "
+"na 'undefined'."
+
+#: libexif/exif-entry.c:381
+msgid ""
+"Tag 'UserComment' has been expanded to at least 8 bytes in order to follow "
+"the specification."
+msgstr ""
+"Znacznik 'UserComment' został rozszerzony do co najmniej 8 bajtów dla "
+"zgodności ze specyfikacją."
+
+#: libexif/exif-entry.c:396
+msgid ""
+"Tag 'UserComment' is not empty but does not start with a format identifier. "
+"This has been fixed."
+msgstr ""
+"Znacznik 'UserComment' nie jest pusty, ale nie zaczynał się od "
+"identyfikatora formatu. Poprawiono."
+
+#: libexif/exif-entry.c:424
+msgid ""
+"Tag 'UserComment' did not start with a format identifier. This has been "
+"fixed."
+msgstr ""
+"Znacznik 'UserComment' nie zaczynał się od identyfikatora formatu. "
+"Poprawiono."
+
+#: libexif/exif-entry.c:462
+#, c-format
+msgid "%i bytes undefined data"
+msgstr "%i bajtów niezdefiniowanych danych"
+
+#: libexif/exif-entry.c:589
+#, c-format
+msgid "%i bytes unsupported data type"
+msgstr "%i bajtów nie obsługiwanego rodzaju danych"
+
+#: libexif/exif-entry.c:622
+#, c-format
+msgid "The tag '%s' contains data of an invalid format ('%s', expected '%s')."
+msgstr ""
+"Znacznik '%s' zawiera dane w błędnym formacie ('%s', a oczekiwano '%s')."
+
+#: libexif/exif-entry.c:635
+#, c-format
+msgid ""
+"The tag '%s' contains an invalid number of components (%i, expected %i)."
+msgstr "Znacznik '%s' zawiera błędną liczbę składników (%i, a oczekiwano %i)."
+
+#: libexif/exif-entry.c:649
+msgid "Chunky format"
+msgstr "Format blokowy"
+
+#: libexif/exif-entry.c:649
+msgid "Planar format"
+msgstr "Format płaski"
+
+#: libexif/exif-entry.c:651 libexif/exif-entry.c:743
+#: test/nls/test-codeset.c:54
+msgid "Not defined"
+msgstr "Nieokreślony"
+
+#: libexif/exif-entry.c:651
+msgid "One-chip color area sensor"
+msgstr "Jednoukładowy czujnik obszaru koloru"
+
+#: libexif/exif-entry.c:652
+msgid "Two-chip color area sensor"
+msgstr "Dwuukładowy czujnik obszaru koloru"
+
+#: libexif/exif-entry.c:652
+msgid "Three-chip color area sensor"
+msgstr "Trzyukładowy czujnik obszaru koloru"
+
+#: libexif/exif-entry.c:653
+msgid "Color sequential area sensor"
+msgstr "Czujnik sekwencyjny obszaru koloru"
+
+#: libexif/exif-entry.c:653
+msgid "Trilinear sensor"
+msgstr "Czujnik trzyliniowy"
+
+#: libexif/exif-entry.c:654
+msgid "Color sequential linear sensor"
+msgstr "Czujnik sekwencyjny liniowy koloru"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:233
+msgid "Top-left"
+msgstr "Lewy górny róg"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:235
+msgid "Top-right"
+msgstr "Prawy górny róg"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:241
+msgid "Bottom-right"
+msgstr "Prawy dolny róg"
+
+#: libexif/exif-entry.c:657 libexif/pentax/mnote-pentax-entry.c:239
+msgid "Bottom-left"
+msgstr "Lewy dolny róg"
+
+#: libexif/exif-entry.c:657
+msgid "Left-top"
+msgstr "Lewo - góra"
+
+#: libexif/exif-entry.c:657
+msgid "Right-top"
+msgstr "Prawo - góra"
+
+#: libexif/exif-entry.c:658
+msgid "Right-bottom"
+msgstr "Prawo - dół"
+
+#: libexif/exif-entry.c:658
+msgid "Left-bottom"
+msgstr "Lewo - dół"
+
+#: libexif/exif-entry.c:660
+msgid "Centered"
+msgstr "Wyśrodkowane"
+
+#: libexif/exif-entry.c:660
+msgid "Co-sited"
+msgstr "Położone razem"
+
+#: libexif/exif-entry.c:662
+msgid "Reversed mono"
+msgstr "Odwrócone mono"
+
+#: libexif/exif-entry.c:662
+msgid "Normal mono"
+msgstr "Normalne mono"
+
+#: libexif/exif-entry.c:662
+msgid "RGB"
+msgstr "RGB"
+
+#: libexif/exif-entry.c:662
+msgid "Palette"
+msgstr "Paleta"
+
+#: libexif/exif-entry.c:663
+msgid "CMYK"
+msgstr "CMYK"
+
+#: libexif/exif-entry.c:663
+msgid "YCbCr"
+msgstr "YCbCr"
+
+#: libexif/exif-entry.c:663
+msgid "CieLAB"
+msgstr "CieLAB"
+
+#: libexif/exif-entry.c:665
+msgid "Normal process"
+msgstr "Przebieg zwykły"
+
+#: libexif/exif-entry.c:665
+msgid "Custom process"
+msgstr "Przebieg własny"
+
+#: libexif/exif-entry.c:667
+msgid "Auto exposure"
+msgstr "Ekspozycja automatyczna"
+
+#: libexif/exif-entry.c:667 libexif/fuji/mnote-fuji-entry.c:139
+msgid "Manual exposure"
+msgstr "Ekspozycja ręczna"
+
+#: libexif/exif-entry.c:667
+msgid "Auto bracket"
+msgstr "Auto bracket"
+
+#: libexif/exif-entry.c:669
+msgid "Auto white balance"
+msgstr "Automatyczny balans bieli"
+
+#: libexif/exif-entry.c:669
+msgid "Manual white balance"
+msgstr "Ręczny balans bieli"
+
+#: libexif/exif-entry.c:674
+msgid "Low gain up"
+msgstr "Niskie wzmocnienie na górze"
+
+#: libexif/exif-entry.c:674
+msgid "High gain up"
+msgstr "Wysokie wzmocnienie na górze"
+
+#: libexif/exif-entry.c:675
+msgid "Low gain down"
+msgstr "Niskie wzmocnienie na dole"
+
+#: libexif/exif-entry.c:675
+msgid "High gain down"
+msgstr "Wysokie wzmocnienie na dole"
+
+#: libexif/exif-entry.c:677
+msgid "Low saturation"
+msgstr "Małe nasycenie"
+
+#: libexif/exif-entry.c:677 test/nls/test-codeset.c:48
+#: test/nls/test-codeset.c:61
+msgid "High saturation"
+msgstr "Duże nasycenie"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:63
+#: libexif/olympus/mnote-olympus-entry.c:205
+#: libexif/olympus/mnote-olympus-entry.c:214
+#: libexif/pentax/mnote-pentax-entry.c:106
+#: libexif/pentax/mnote-pentax-entry.c:170
+msgid "Soft"
+msgstr "Mała"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:65 libexif/fuji/mnote-fuji-entry.c:95
+#: libexif/olympus/mnote-olympus-entry.c:204
+#: libexif/olympus/mnote-olympus-entry.c:212
+#: libexif/pentax/mnote-pentax-entry.c:107
+msgid "Hard"
+msgstr "Duża"
+
+#: libexif/exif-entry.c:695 libexif/exif-entry.c:713 libexif/exif-entry.c:795
+#: libexif/olympus/mnote-olympus-entry.c:589
+#: libexif/olympus/mnote-olympus-entry.c:683
+#: libexif/olympus/mnote-olympus-entry.c:738
+#: libexif/pentax/mnote-pentax-entry.c:256
+msgid "Unknown"
+msgstr "Brak informacji"
+
+#: libexif/exif-entry.c:696
+msgid "Avg"
+msgstr "Śr."
+
+#: libexif/exif-entry.c:697
+msgid "Center-weight"
+msgstr "Centralnie ważony"
+
+#: libexif/exif-entry.c:699
+msgid "Multi spot"
+msgstr "Wielopunktowy"
+
+#: libexif/exif-entry.c:700
+msgid "Pattern"
+msgstr "Wzorzec"
+
+#: libexif/exif-entry.c:705
+msgid "Uncompressed"
+msgstr "Bez kompresji"
+
+#: libexif/exif-entry.c:706
+msgid "LZW compression"
+msgstr "Kompresja LZW"
+
+#: libexif/exif-entry.c:707 libexif/exif-entry.c:708
+msgid "JPEG compression"
+msgstr "Kompresja JPEG"
+
+#: libexif/exif-entry.c:709
+msgid "Deflate/ZIP compression"
+msgstr "Kompresja Deflate/ZIP"
+
+#: libexif/exif-entry.c:710
+msgid "PackBits compression"
+msgstr "Kompresja PackBits"
+
+#: libexif/exif-entry.c:716
+msgid "Tungsten incandescent light"
+msgstr "Żarówka wolframowa"
+
+#: libexif/exif-entry.c:718
+msgid "Fine weather"
+msgstr "Dobra pogoda"
+
+#: libexif/exif-entry.c:719
+msgid "Cloudy weather"
+msgstr "Pochmurna pogoda"
+
+#: libexif/exif-entry.c:722 libexif/fuji/mnote-fuji-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:252
+msgid "Day white fluorescent"
+msgstr "Białe fluorescencyjne światło dzienne"
+
+#: libexif/exif-entry.c:723
+msgid "Cool white fluorescent"
+msgstr "Zimne białe światło fluorescencyjne"
+
+#: libexif/exif-entry.c:724 libexif/fuji/mnote-fuji-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:253
+msgid "White fluorescent"
+msgstr "Białe światło fluorescencyjne"
+
+#: libexif/exif-entry.c:725
+msgid "Standard light A"
+msgstr "Światło standardowe A"
+
+#: libexif/exif-entry.c:726
+msgid "Standard light B"
+msgstr "Światło standardowe B"
+
+#: libexif/exif-entry.c:727
+msgid "Standard light C"
+msgstr "Światło standardowe C"
+
+#: libexif/exif-entry.c:728
+msgid "D55"
+msgstr "D55"
+
+#: libexif/exif-entry.c:729
+msgid "D65"
+msgstr "D65"
+
+#: libexif/exif-entry.c:730
+msgid "D75"
+msgstr "D75"
+
+#: libexif/exif-entry.c:731
+msgid "ISO studio tungsten"
+msgstr "Wolframowe oświetlenie studyjne ISO"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "Inch"
+msgstr "Cal"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "in"
+msgstr "in"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "Centimeter"
+msgstr "Centymetr"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "cm"
+msgstr "cm"
+
+#: libexif/exif-entry.c:745
+msgid "Normal program"
+msgstr "Program zwykły"
+
+#: libexif/exif-entry.c:746
+msgid "Aperture priority"
+msgstr "Priorytet przysłony"
+
+#: libexif/exif-entry.c:746 libexif/exif-tag.c:550
+msgid "Aperture"
+msgstr "Przysłona"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter priority"
+msgstr "Priorytet migawki"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter"
+msgstr "Migawka"
+
+#: libexif/exif-entry.c:748
+msgid "Creative program (biased toward depth of field)"
+msgstr "Program twórczy (nakierowany na głębię obrazu)"
+
+#: libexif/exif-entry.c:749
+msgid "Creative"
+msgstr "Twórczy"
+
+#: libexif/exif-entry.c:750
+msgid "Creative program (biased toward fast shutter speed)"
+msgstr "Program twórczy (nakierowany na szybką migawkę)"
+
+#: libexif/exif-entry.c:751
+msgid "Action"
+msgstr "Akcja"
+
+#: libexif/exif-entry.c:752
+msgid "Portrait mode (for closeup photos with the background out of focus)"
+msgstr "Tryb portretowy (do zbliżeń z tłem poza ogniskiem)"
+
+#: libexif/exif-entry.c:754
+msgid "Landscape mode (for landscape photos with the background in focus)"
+msgstr "Tryb pejzażowy (do krajobrazów z tłem w ognisku)"
+
+#: libexif/exif-entry.c:758 libexif/exif-entry.c:763
+#: libexif/olympus/mnote-olympus-entry.c:97
+msgid "Flash did not fire"
+msgstr "Flesz się nie uruchomił"
+
+#: libexif/exif-entry.c:758
+msgid "No flash"
+msgstr "Bez flesza"
+
+#: libexif/exif-entry.c:759
+msgid "Flash fired"
+msgstr "Flesz się uruchomił"
+
+#: libexif/exif-entry.c:759 libexif/olympus/mnote-olympus-entry.c:170
+#: libexif/olympus/mnote-olympus-entry.c:175
+#: libexif/olympus/mnote-olympus-entry.c:209
+#: libexif/olympus/mnote-olympus-entry.c:218
+#: libexif/olympus/mnote-olympus-entry.c:241
+msgid "Yes"
+msgstr "Tak"
+
+#: libexif/exif-entry.c:760
+msgid "Strobe return light not detected"
+msgstr "Zwrotne światło stroboskopowe nie wykryte"
+
+#: libexif/exif-entry.c:760
+msgid "Without strobe"
+msgstr "Bez światła stroboskopowego"
+
+#: libexif/exif-entry.c:762
+msgid "Strobe return light detected"
+msgstr "Zwrotne światło stroboskopowe wykryte"
+
+#: libexif/exif-entry.c:762
+msgid "With strobe"
+msgstr "Ze światłem stroboskopowym"
+
+#: libexif/exif-entry.c:764
+msgid "Flash fired, compulsory flash mode"
+msgstr "Flesz się uruchomił w trybie pulsującym"
+
+#: libexif/exif-entry.c:765
+msgid "Flash fired, compulsory flash mode, return light not detected"
+msgstr "Flesz się uruchomił w trybie pulsującym, światło zwrotne nie wykryte"
+
+#: libexif/exif-entry.c:767
+msgid "Flash fired, compulsory flash mode, return light detected"
+msgstr "Flesz się uruchomił w trybie pulsującym, światło zwrotne wykryte"
+
+#: libexif/exif-entry.c:769
+msgid "Flash did not fire, compulsory flash mode"
+msgstr "Flesz się nie uruchomił w trybie pulsującym"
+
+#: libexif/exif-entry.c:770
+msgid "Flash did not fire, auto mode"
+msgstr "Flesz się nie uruchomił w trybie automatycznym"
+
+#: libexif/exif-entry.c:771
+msgid "Flash fired, auto mode"
+msgstr "Flesz się uruchomił w trybie automatycznym"
+
+#: libexif/exif-entry.c:772
+msgid "Flash fired, auto mode, return light not detected"
+msgstr ""
+"Flesz się uruchomił w trybie automatycznym, światło zwrotne nie wykryte"
+
+#: libexif/exif-entry.c:774
+msgid "Flash fired, auto mode, return light detected"
+msgstr "Flesz się uruchomił w trybie automatycznym, światło zwrotne wykryte"
+
+#: libexif/exif-entry.c:775
+msgid "No flash function"
+msgstr "Brak flesza"
+
+#: libexif/exif-entry.c:776
+msgid "Flash fired, red-eye reduction mode"
+msgstr "Flesz się uruchomił w trybie redukcji czerwonych oczu"
+
+#: libexif/exif-entry.c:777
+msgid "Flash fired, red-eye reduction mode, return light not detected"
+msgstr ""
+"Flesz się uruchomił w trybie redukcji czerwonych oczu, światło zwrotne nie "
+"wykryte"
+
+#: libexif/exif-entry.c:779
+msgid "Flash fired, red-eye reduction mode, return light detected"
+msgstr ""
+"Flesz się uruchomił w trybie redukcji czerwonych oczu, światło zwrotne "
+"wykryte"
+
+#: libexif/exif-entry.c:781
+msgid "Flash fired, compulsory flash mode, red-eye reduction mode"
+msgstr "Flesz się uruchomił w trybie pulsującym z redukcją czerwonych oczu"
+
+#: libexif/exif-entry.c:783
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light not "
+"detected"
+msgstr ""
+"Flesz się uruchomił w trybie pulsującym z redukcją czerwonych oczu, światło "
+"zwrotne nie wykryte"
+
+#: libexif/exif-entry.c:785
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light "
+"detected"
+msgstr ""
+"Flesz się uruchomił w trybie pulsującym z redukcją czerwonych oczu, światło "
+"zwrotne wykryte"
+
+#: libexif/exif-entry.c:787
+msgid "Flash did not fire, auto mode, red-eye reduction mode"
+msgstr ""
+"Flesz się nie uruchomił w trybie automatycznym z redukcją czerwonych oczu"
+
+#: libexif/exif-entry.c:788
+msgid "Flash fired, auto mode, red-eye reduction mode"
+msgstr "Flesz się uruchomił w trybie automatycznym z redukcją czerwonych oczu"
+
+#: libexif/exif-entry.c:789
+msgid ""
+"Flash fired, auto mode, return light not detected, red-eye reduction mode"
+msgstr ""
+"Flesz się uruchomił w trybie automatycznym z redukcją czerwonych oczu, "
+"światło zwrotne nie wykryte"
+
+#: libexif/exif-entry.c:791
+msgid "Flash fired, auto mode, return light detected, red-eye reduction mode"
+msgstr ""
+"Flesz się uruchomił w trybie automatycznym z redukcją czerwonych oczu, "
+"światło zwrotne wykryte"
+
+#: libexif/exif-entry.c:795
+msgid "?"
+msgstr "?"
+
+#: libexif/exif-entry.c:797
+msgid "Close view"
+msgstr "Widok bliski"
+
+#: libexif/exif-entry.c:798
+msgid "Distant view"
+msgstr "Widok daleki"
+
+#: libexif/exif-entry.c:798
+msgid "Distant"
+msgstr "Daleko"
+
+#: libexif/exif-entry.c:801
+msgid "sRGB"
+msgstr "sRGB"
+
+#: libexif/exif-entry.c:802
+msgid "Adobe RGB"
+msgstr "RGB Adobe"
+
+#: libexif/exif-entry.c:803
+msgid "Uncalibrated"
+msgstr "Nieskalibrowana"
+
+#: libexif/exif-entry.c:857
+#, c-format
+msgid "Invalid size of entry (%i, expected %li x %i)."
+msgstr "Błędny rozmiar wpisu (%i, a oczekiwano %li x %i)."
+
+#: libexif/exif-entry.c:890
+msgid "Unsupported UNICODE string"
+msgstr "Nieobsługiwany łańcuch UNICODE"
+
+#: libexif/exif-entry.c:898
+msgid "Unsupported JIS string"
+msgstr "Nieobsługiwany łańcuch JIS"
+
+#: libexif/exif-entry.c:914
+msgid "Tag UserComment does not comply with standard but contains data."
+msgstr "Znacznik UserComment nie jest zgodny ze standardem, ale zawiera dane."
+
+#: libexif/exif-entry.c:918
+#, c-format
+msgid "Byte at position %i: 0x%02x"
+msgstr "Bajt na pozycji %i: 0x%02x"
+
+#: libexif/exif-entry.c:927
+msgid "Unknown Exif Version"
+msgstr "Nieznana wersja Exif"
+
+#: libexif/exif-entry.c:931
+#, c-format
+msgid "Exif Version %d.%d"
+msgstr "Exif w wersji %d.%d"
+
+#: libexif/exif-entry.c:942
+msgid "FlashPix Version 1.0"
+msgstr "FlashPix w wersji 1.0"
+
+#: libexif/exif-entry.c:944
+msgid "FlashPix Version 1.01"
+msgstr "FlashPIx w wersji 1.01"
+
+#: libexif/exif-entry.c:946
+msgid "Unknown FlashPix Version"
+msgstr "Nieznana wersja FlashPix"
+
+#: libexif/exif-entry.c:959 libexif/exif-entry.c:972 libexif/exif-entry.c:1628
+#: libexif/exif-entry.c:1633 libexif/exif-entry.c:1637
+#: libexif/exif-entry.c:1642 libexif/exif-entry.c:1643
+msgid "[None]"
+msgstr "[Brak]"
+
+#: libexif/exif-entry.c:961
+msgid "(Photographer)"
+msgstr "(Fotograf)"
+
+#: libexif/exif-entry.c:975
+msgid "(Editor)"
+msgstr "(Redaktor)"
+
+#: libexif/exif-entry.c:999 libexif/exif-entry.c:1079
+#: libexif/exif-entry.c:1096 libexif/exif-entry.c:1140
+#, c-format
+msgid "%.02f EV"
+msgstr "%.02f EV"
+
+#: libexif/exif-entry.c:1000
+#, c-format
+msgid " (f/%.01f)"
+msgstr " (f/%.01f)"
+
+#: libexif/exif-entry.c:1034
+#, c-format
+msgid " (35 equivalent: %d mm)"
+msgstr " (odpowiednik 35: %d mm)"
+
+#: libexif/exif-entry.c:1067 libexif/exif-entry.c:1068
+msgid " sec."
+msgstr " sek."
+
+#: libexif/exif-entry.c:1082
+#, c-format
+msgid " (1/%d sec.)"
+msgstr " (1/%d sek.)"
+
+#: libexif/exif-entry.c:1084
+#, c-format
+msgid " (%d sec.)"
+msgstr " (%d sek.)"
+
+#: libexif/exif-entry.c:1097
+#, c-format
+msgid " (%.02f cd/m^2)"
+msgstr " (%.02f cd/m^2)"
+
+#: libexif/exif-entry.c:1107
+msgid "DSC"
+msgstr "DSC"
+
+#: libexif/exif-entry.c:1109 libexif/exif-entry.c:1149
+#: libexif/exif-entry.c:1236 libexif/exif-entry.c:1287
+#: libexif/exif-entry.c:1296 libexif/exif-entry.c:1332
+#: libexif/fuji/mnote-fuji-entry.c:236 libexif/fuji/mnote-fuji-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:359
+#, c-format
+msgid "Internal error (unknown value %i)"
+msgstr "Błąd wewnętrzny (nieznana wartość %i)"
+
+#: libexif/exif-entry.c:1117
+msgid "-"
+msgstr "-"
+
+#: libexif/exif-entry.c:1118
+msgid "Y"
+msgstr "Y"
+
+#: libexif/exif-entry.c:1119
+msgid "Cb"
+msgstr "Cb"
+
+#: libexif/exif-entry.c:1120
+msgid "Cr"
+msgstr "Cr"
+
+#: libexif/exif-entry.c:1121
+msgid "R"
+msgstr "R"
+
+#: libexif/exif-entry.c:1122
+msgid "G"
+msgstr "G"
+
+#: libexif/exif-entry.c:1123
+msgid "B"
+msgstr "B"
+
+#: libexif/exif-entry.c:1124
+msgid "Reserved"
+msgstr "Zarezerwowany"
+
+#: libexif/exif-entry.c:1147
+msgid "Directly photographed"
+msgstr "Fotografowany bezpośrednio"
+
+#: libexif/exif-entry.c:1160
+msgid "YCbCr4:2:2"
+msgstr "YCbCr4:2:2"
+
+#: libexif/exif-entry.c:1162
+msgid "YCbCr4:2:0"
+msgstr "YCbCr4:2:0"
+
+#: libexif/exif-entry.c:1179
+#, c-format
+msgid "Within distance %i of (x,y) = (%i,%i)"
+msgstr "W odległości %i w (x,y) = (%i,%i)"
+
+#: libexif/exif-entry.c:1188
+#, c-format
+msgid "Within rectangle (width %i, height %i) around (x,y) = (%i,%i)"
+msgstr ""
+"Wewnątrz prostokąta (szerokość %i, wysokość %i) w okolicy (x,y) = (%i,%i)"
+
+#: libexif/exif-entry.c:1194
+#, c-format
+msgid "Unexpected number of components (%li, expected 2, 3, or 4)."
+msgstr "Nieoczekiwana liczba składowych (%li, a oczekiwano 2, 3 lub 4)."
+
+#: libexif/exif-entry.c:1232
+msgid "Sea level"
+msgstr "Poziom morza"
+
+#: libexif/exif-entry.c:1234
+msgid "Sea level reference"
+msgstr "Odniesienie poziomu morza"
+
+#: libexif/exif-entry.c:1342
+#, c-format
+msgid "Unknown value %i"
+msgstr "Nieznana wartość %i"
+
+#: libexif/exif-format.c:37
+msgid "Short"
+msgstr "Short"
+
+#: libexif/exif-format.c:38
+msgid "Rational"
+msgstr "Rational"
+
+#: libexif/exif-format.c:39
+msgid "SRational"
+msgstr "SRational"
+
+#: libexif/exif-format.c:40
+msgid "Undefined"
+msgstr "Nieokreślony"
+
+#: libexif/exif-format.c:41
+msgid "ASCII"
+msgstr "ASCII"
+
+#: libexif/exif-format.c:42
+msgid "Long"
+msgstr "Long"
+
+#: libexif/exif-format.c:43
+msgid "Byte"
+msgstr "Byte"
+
+#: libexif/exif-format.c:44
+msgid "SByte"
+msgstr "SByte"
+
+#: libexif/exif-format.c:45
+msgid "SShort"
+msgstr "SShort"
+
+#: libexif/exif-format.c:46
+msgid "SLong"
+msgstr "SLong"
+
+#: libexif/exif-format.c:47
+msgid "Float"
+msgstr "Float"
+
+#: libexif/exif-format.c:48
+msgid "Double"
+msgstr "Double"
+
+#: libexif/exif-loader.c:119
+#, c-format
+msgid "The file '%s' could not be opened."
+msgstr "Nie udało się otworzyć pliku '%s'."
+
+#: libexif/exif-loader.c:300
+msgid "The data supplied does not seem to contain EXIF data."
+msgstr "Podane dane nie wyglądają na zawierające dane EXIF."
+
+#: libexif/exif-log.c:43
+msgid "Debugging information"
+msgstr "Informacje diagnostyczne"
+
+#: libexif/exif-log.c:44
+msgid "Debugging information is available."
+msgstr "Dostępne są informacje diagnostyczne."
+
+#: libexif/exif-log.c:45
+msgid "Not enough memory"
+msgstr "Zbyt mało pamięci"
+
+#: libexif/exif-log.c:46
+msgid "The system cannot provide enough memory."
+msgstr "System nie może zapewnić wystarczająco dużo pamięci."
+
+#: libexif/exif-log.c:47
+msgid "Corrupt data"
+msgstr "Uszkodzone dane"
+
+#: libexif/exif-log.c:48
+msgid "The data provided does not follow the specification."
+msgstr "Dostarczone dane nie są zgodne ze specyfikacją."
+
+#: libexif/exif-tag.c:62
+msgid "GPS Tag Version"
+msgstr "Wersja znacznika GPS"
+
+#: libexif/exif-tag.c:63
+msgid ""
+"Indicates the version of <GPSInfoIFD>. The version is given as 2.0.0.0. This "
+"tag is mandatory when <GPSInfo> tag is present. (Note: The <GPSVersionID> "
+"tag is given in bytes, unlike the <ExifVersion> tag. When the version is "
+"2.0.0.0, the tag value is 02000000.H)."
+msgstr ""
+"Oznaczenie wersji <GPSInfoIFD>. Wersja jest podawana jako 2.0.0.0. Ten "
+"znacznik jest obowiązkowy, jeśli obecny jest znacznik <GPSInfo>. (Uwaga: "
+"znacznik <GPSVersionID> jest podawany w bajtach, w przeciwieństwie do "
+"znacznika <ExifVersion>. Kiedy wersja to 2.0.0.0, znacznik ma wartość "
+"02000000.H)."
+
+#: libexif/exif-tag.c:69
+msgid "Interoperability Index"
+msgstr "Indeks Interoperability"
+
+#: libexif/exif-tag.c:70
+msgid ""
+"Indicates the identification of the Interoperability rule. Use \"R98\" for "
+"stating ExifR98 Rules. Four bytes used including the termination code "
+"(NULL). see the separate volume of Recommended Exif Interoperability Rules "
+"(ExifR98) for other tags used for ExifR98."
+msgstr ""
+"Oznaczenie identyfikacji reguły współpracy. Należy użyć \"R98\" dla "
+"oznaczenia reguł ExifR98. Używane są cztery bajty wraz ze znacznikiem końca "
+"(NULL). Inne znaczniki ExifR98 są opisane w pozycji Recommended Exif "
+"Interoperability Rules (ExifR98)."
+
+#: libexif/exif-tag.c:76
+msgid "North or South Latitude"
+msgstr "Szerokość północna lub południowa"
+
+#: libexif/exif-tag.c:77
+msgid ""
+"Indicates whether the latitude is north or south latitude. The ASCII value "
+"'N' indicates north latitude, and 'S' is south latitude."
+msgstr ""
+"Oznaczenie, czy szerokość geograficzna jest północna, czy południowa. "
+"Wartość ASCII 'N' oznacza szerokość północną, a 'S' południową."
+
+#: libexif/exif-tag.c:81
+msgid "Interoperability Version"
+msgstr "Wersja Interoperability"
+
+#: libexif/exif-tag.c:83
+msgid "Latitude"
+msgstr "Szerokość geograficzna"
+
+#: libexif/exif-tag.c:84
+msgid ""
+"Indicates the latitude. The latitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is dd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is dd/1,mmmm/100,0/1."
+msgstr ""
+"Określenie szerokości geograficznej. Szerokość jest wyrażona jako trzy "
+"wartości RATIONAL (wymierne) podające odpowiednio stopnie, minuty i sekundy. "
+"Kiedy są wyrażone stopnie, minuty i sekundy, format to dd/1,mm/1,ss/1. Kiedy "
+"są wyrażone stopnie i minuty oraz np. ułamki minut są podane z dokładnością "
+"do dwóch miejsc po przecinku, format to dd/1,mmmm/100,0/1."
+
+#: libexif/exif-tag.c:91
+msgid "East or West Longitude"
+msgstr "Długość wschodnia lub zachodnia"
+
+#: libexif/exif-tag.c:92
+msgid ""
+"Indicates whether the longitude is east or west longitude. ASCII 'E' "
+"indicates east longitude, and 'W' is west longitude."
+msgstr ""
+"Określenie, czy długość geograficzna jest wschodnia, czy zachodnia. Wartość "
+"ASCII 'E' oznacza długość wschodnią, a 'W' zachodnią."
+
+#: libexif/exif-tag.c:95
+msgid "Longitude"
+msgstr "Długość geograficzna"
+
+#: libexif/exif-tag.c:96
+msgid ""
+"Indicates the longitude. The longitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is ddd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is ddd/1,mmmm/100,0/1."
+msgstr ""
+"Określenie długości geograficznej. Szerokość jest wyrażona jako trzy "
+"wartości RATIONAL (wymierne) podające odpowiednio stopnie, minuty i sekundy. "
+"Kiedy są wyrażone stopnie, minuty i sekundy, format to dd/1,mm/1,ss/1. Kiedy "
+"są wyrażone stopnie i minuty oraz np. ułamki minut są podane z dokładnością "
+"do dwóch miejsc po przecinku, format to dd/1,mmmm/100,0/1."
+
+#: libexif/exif-tag.c:103
+msgid "Altitude Reference"
+msgstr "Odniesienie wysokości"
+
+#: libexif/exif-tag.c:104
+msgid ""
+"Indicates the altitude used as the reference altitude. If the reference is "
+"sea level and the altitude is above sea level, 0 is given. If the altitude "
+"is below sea level, a value of 1 is given and the altitude is indicated as "
+"an absolute value in the GSPAltitude tag. The reference unit is meters. Note "
+"that this tag is BYTE type, unlike other reference tags."
+msgstr ""
+"Określenie wysokości użytej jako wysokość odniesienia. Jeśli odniesienie "
+"jest poziomem morza i wysokość jest nad poziomem morza, podaje się 0. Jeśli "
+"wysokość jest poniżej poziomu morza, podaje się wartość 1 i wysokość oznacza "
+"się jako wartość bezwzględną w znaczniku GPSAltitude. Jednostką odniesienia "
+"są metry. Ten znacznik jest typu BYTE w przeciwieństwie do innych znaczników "
+"odniesienia."
+
+#: libexif/exif-tag.c:110
+msgid "Altitude"
+msgstr "Wysokość"
+
+#: libexif/exif-tag.c:111
+msgid ""
+"Indicates the altitude based on the reference in GPSAltitudeRef. Altitude is "
+"expressed as one RATIONAL value. The reference unit is meters."
+msgstr ""
+"Określenie wysokości w oparciu o odniesienie w GPSAltitudeRef. Wysokość jest "
+"wyrażona jako jedna wartość RATIONAL (wymierna). Jednostką odniesienia są "
+"metry."
+
+#: libexif/exif-tag.c:114
+msgid "GPS Time (Atomic Clock)"
+msgstr "Czas GPS (zegar atomowy)"
+
+#: libexif/exif-tag.c:115
+msgid ""
+"Indicates the time as UTC (Coordinated Universal Time). TimeStamp is "
+"expressed as three RATIONAL values giving the hour, minute, and second."
+msgstr ""
+"Określenie czasu jako UTC (Coordinated Universal Time). Znacznik jest "
+"wyrażony jako trzy wartości RATIONAL (wymierne) określające godzinę, minuty "
+"i sekundy."
+
+#: libexif/exif-tag.c:118
+msgid "GPS Satellites"
+msgstr "Satelity GPS"
+
+#: libexif/exif-tag.c:119
+msgid ""
+"Indicates the GPS satellites used for measurements. This tag can be used to "
+"describe the number of satellites, their ID number, angle of elevation, "
+"azimuth, SNR and other information in ASCII notation. The format is not "
+"specified. If the GPS receiver is incapable of taking measurements, value of "
+"the tag shall be set to NULL."
+msgstr ""
+"Określenie satelitów GPS użytych do pomiaru. Znacznik ten może opisywać "
+"liczbę satelitów, ich numery identyfikacyjne, ich kąt podniesienia, azymut, "
+"SNR i inne informacje w zapisie ASCII. Format nie jest w pełni określony. "
+"Jeśli odbiornik GPS nie jest w stanie wykonać pomiaru, wartość tego "
+"znacznika powinna wynosić NULL."
+
+#: libexif/exif-tag.c:125
+msgid "GPS Receiver Status"
+msgstr "Stan odbiornika GPS"
+
+#: libexif/exif-tag.c:126
+msgid ""
+"Indicates the status of the GPS receiver when the image is recorded. 'A' "
+"means measurement is in progress, and 'V' means the measurement is "
+"Interoperability."
+msgstr ""
+"Określenie stanu odbiornika GPS podczas zapisu zdjęcia. 'A' oznacza pomiar w "
+"trakcie, 'V' oznacza pomiar współpracujący."
+
+#: libexif/exif-tag.c:129
+msgid "GPS Measurement Mode"
+msgstr "Tryb pomiaru GPS"
+
+#: libexif/exif-tag.c:130
+msgid ""
+"Indicates the GPS measurement mode. '2' means two-dimensional measurement "
+"and '3' means three-dimensional measurement is in progress."
+msgstr ""
+"Określenie trybu pomiaru GPS. '2' oznacza wykonywanie pomiaru "
+"dwuwymiarowego, '3' - pomiar trójwymiarowego."
+
+#: libexif/exif-tag.c:133
+msgid "Measurement Precision"
+msgstr "Dokładność pomiaru"
+
+#: libexif/exif-tag.c:134
+msgid ""
+"Indicates the GPS DOP (data degree of precision). An HDOP value is written "
+"during two-dimensional measurement, and PDOP during three-dimensional "
+"measurement."
+msgstr ""
+"Określenie GPS DOP (stopnia precyzji danych). W trakcie pomiaru "
+"dwuwymiarowego zapisywana jest wartość HDOP, w trakcie trójwymiarowego - "
+"PDOP."
+
+#: libexif/exif-tag.c:137
+msgid "Speed Unit"
+msgstr "Jednostka prędkości"
+
+#: libexif/exif-tag.c:138
+msgid ""
+"Indicates the unit used to express the GPS receiver speed of movement. 'K', "
+"'M' and 'N' represent kilometers per hour, miles per hour, and knots."
+msgstr ""
+"Określenie jednostki używanej do wyrażenia prędkości ruchu odbiornika GPS. "
+"'K', 'M' i 'N' oznaczają odpowiednio kilometry na godzinę, mile na godzinę i "
+"węzły."
+
+#: libexif/exif-tag.c:141
+msgid "Speed of GPS Receiver"
+msgstr "Prędkość odbiornika GPS"
+
+#: libexif/exif-tag.c:142
+msgid "Indicates the speed of GPS receiver movement."
+msgstr "Określenie prędkości ruchu odbiornika GPS."
+
+#: libexif/exif-tag.c:143
+msgid "Reference for direction of movement"
+msgstr "Odniesienie kierunku ruchu"
+
+#: libexif/exif-tag.c:144
+msgid ""
+"Indicates the reference for giving the direction of GPS receiver movement. "
+"'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+"Określenie odniesienia wskazania kierunku ruchu odbiornika GPS. 'T' oznacza "
+"kierunek prawdziwy, a 'M' - magnetyczny."
+
+#: libexif/exif-tag.c:147
+msgid "Direction of Movement"
+msgstr "Kierunek ruchu"
+
+#: libexif/exif-tag.c:148
+msgid ""
+"Indicates the direction of GPS receiver movement. The range of values is "
+"from 0.00 to 359.99."
+msgstr ""
+"Określenie kierunku ruchu odbiornika GPS. Zakres wartości od 0.00 do 359.99."
+
+#: libexif/exif-tag.c:150
+msgid "GPS Image Direction Reference"
+msgstr "Odniesienie kierunku wg GPS"
+
+#: libexif/exif-tag.c:151
+msgid ""
+"Indicates the reference for giving the direction of the image when it is "
+"captured. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+"Określenie odniesienia wskazania kierunku zdjęcia w czasie jego robienia. "
+"'T' oznacza kierunek prawdziwy, a 'M' - magnetyczny."
+
+#: libexif/exif-tag.c:153
+msgid "GPS Image Direction"
+msgstr "Kierunek wg GPS"
+
+#: libexif/exif-tag.c:154
+msgid ""
+"Indicates the direction of the image when it was captured. The range of "
+"values is from 0.00 to 359.99."
+msgstr ""
+"Określenie kierunku zdjęcia w czasie jego robienia. Zakres wartości od 0.00 "
+"do 359.99."
+
+#: libexif/exif-tag.c:156
+msgid "Geodetic Survey Data Used"
+msgstr "Geodezyjny układ odniesienia"
+
+#: libexif/exif-tag.c:157
+msgid ""
+"Indicates the geodetic survey data used by the GPS receiver. If the survey "
+"data is restricted to Japan, the value of this tag is 'TOKYO' or 'WGS-84'. "
+"If a GPS Info tag is recorded, it is strongly recommended that this tag be "
+"recorded."
+msgstr ""
+"Określenie geodezyjnego układu odniesienia używanego przez odbiornik GPS. "
+"Jeśli dane są ograniczone do Japonii, znacznik ten może mieć wartość 'TOKYO' "
+"lub 'WGS-84'. Jeśli zapisany jest znacznik GPS Info, zdecydowanie zalecany "
+"jest zapis tego znacznika."
+
+#: libexif/exif-tag.c:161
+msgid "Reference For Latitude of Destination"
+msgstr "Odniesienie szerokości geograficznej obiektu"
+
+#: libexif/exif-tag.c:162
+msgid ""
+"Indicates whether the latitude of the destination point is north or south "
+"latitude. The ASCII value 'N' indicates north latitude, and 'S' is south "
+"latitude."
+msgstr ""
+"Oznaczenie, czy szerokość geograficzna punktu docelowego jest północna, czy "
+"południowa. Wartość ASCII 'N' oznacza szerokość północną, a 'S' południową."
+
+#: libexif/exif-tag.c:165
+msgid "Latitude of Destination"
+msgstr "Szerokość geograficzna obiektu"
+
+#: libexif/exif-tag.c:166
+msgid ""
+"Indicates the latitude of the destination point. The latitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If latitude is expressed as degrees, minutes and seconds, a "
+"typical format would be dd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be dd/1,mmmm/100,0/1."
+msgstr ""
+"Określenie szerokości geograficznej punktu docelowego. Szerokość jest "
+"wyrażona jako trzy wartości RATIONAL (wymierne) podające odpowiednio "
+"stopnie, minuty i sekundy. Kiedy są wyrażone stopnie, minuty i sekundy, "
+"format to dd/1,mm/1,ss/1. Kiedy są wyrażone stopnie i minuty oraz np. ułamki "
+"minut są podane z dokładnością do dwóch miejsc po przecinku, format to dd/1,"
+"mmmm/100,0/1."
+
+#: libexif/exif-tag.c:173
+msgid "Reference for Longitude of Destination"
+msgstr "Odniesienie długości geograficznej obiektu"
+
+#: libexif/exif-tag.c:174
+msgid ""
+"Indicates whether the longitude of the destination point is east or west "
+"longitude. ASCII 'E' indicates east longitude, and 'W' is west longitude."
+msgstr ""
+"Określenie, czy długość geograficzna punktu docelowego jest wschodnia, czy "
+"zachodnia. Wartość ASCII 'E' oznacza długość wschodnią, a 'W' zachodnią."
+
+#: libexif/exif-tag.c:177
+msgid "Longitude of Destination"
+msgstr "Długość geograficzna obiektu"
+
+#: libexif/exif-tag.c:178
+msgid ""
+"Indicates the longitude of the destination point. The longitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If longitude is expressed as degrees, minutes and seconds, a "
+"typical format would be ddd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be ddd/1,mmmm/100,0/1."
+msgstr ""
+"Określenie długości geograficznej punktu docelowego. Szerokość jest wyrażona "
+"jako trzy wartości RATIONAL (wymierne) podające odpowiednio stopnie, minuty "
+"i sekundy. Kiedy są wyrażone stopnie, minuty i sekundy, format to dd/1,mm/1,"
+"ss/1. Kiedy są wyrażone stopnie i minuty oraz np. ułamki minut są podane z "
+"dokładnością do dwóch miejsc po przecinku, format to dd/1,mmmm/100,0/1."
+
+#: libexif/exif-tag.c:186
+msgid "Reference for Bearing of Destination"
+msgstr "Odniesienie kierunku celu"
+
+#: libexif/exif-tag.c:187
+msgid ""
+"Indicates the reference used for giving the bearing to the destination "
+"point. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+"Określenie odniesienia wskazania kierunku punktu docelowego. 'T' oznacza "
+"kierunek prawdziwy, a 'M' - magnetyczny."
+
+#: libexif/exif-tag.c:190
+msgid "Bearing of Destination"
+msgstr "Kierunek celu"
+
+#: libexif/exif-tag.c:191
+msgid ""
+"Indicates the bearing to the destination point. The range of values is from "
+"0.00 to 359.99."
+msgstr ""
+"Określenie kierunku punktu docelowego. Zakres wartości od 0.00 do 359.99."
+
+#: libexif/exif-tag.c:193
+msgid "Reference for Distance to Destination"
+msgstr "Odniesienie odległości od celu"
+
+#: libexif/exif-tag.c:194
+msgid ""
+"Indicates the unit used to express the distance to the destination point. "
+"'K', 'M' and 'N' represent kilometers, miles and knots."
+msgstr ""
+"Określenie jednostki użytej do wyrażenia odległości od punktu docelowego. "
+"'K', 'M' i 'N' określają odpowiednio kilometry, mile i węzły."
+
+#: libexif/exif-tag.c:197
+msgid "Distance to Destination"
+msgstr "Odległość od celu"
+
+#: libexif/exif-tag.c:198
+msgid "Indicates the distance to the destination point."
+msgstr "Określenie odległości od punktu docelowego."
+
+#: libexif/exif-tag.c:199
+msgid "Name of GPS Processing Method"
+msgstr "Nazwa metody przetwarzania GPS"
+
+#: libexif/exif-tag.c:200
+msgid ""
+"A character string recording the name of the method used for location "
+"finding. The first byte indicates the character code used, and this is "
+"followed by the name of the method. Since the Type is not ASCII, NULL "
+"termination is not necessary."
+msgstr ""
+"Łańcuch znaków zapisujący nazwę metody użytej do określenia lokalizacji. "
+"Pierwszy bajt określa użyty kod znaków, następne - nazwę metody. Ponieważ "
+"typ znacznika nie jest ASCII, zakończenie NULL nie jest wymagane."
+
+#: libexif/exif-tag.c:205
+msgid "Name of GPS Area"
+msgstr "Nazwa obszaru GPS"
+
+#: libexif/exif-tag.c:206
+msgid ""
+"A character string recording the name of the GPS area. The first byte "
+"indicates the character code used, and this is followed by the name of the "
+"GPS area. Since the Type is not ASCII, NULL termination is not necessary."
+msgstr ""
+"Łańcuch znaków zapisujący nazwę obszaru GPS. Pierwszy bajt określa użyty kod "
+"znaków, następne - nazwę metody. Ponieważ typ znacznika nie jest ASCII, "
+"zakończenie NULL nie jest wymagane."
+
+#: libexif/exif-tag.c:210
+msgid "GPS Date"
+msgstr "Data GPS"
+
+#: libexif/exif-tag.c:211
+msgid ""
+"A character string recording date and time information relative to UTC "
+"(Coordinated Universal Time). The format is \"YYYY:MM:DD\". The length of "
+"the string is 11 bytes including NULL."
+msgstr ""
+"Łańcuch znaków zapisujący informacje o dacie i czasie względem UTC "
+"(Coordinated Universal Time). Format to \"RRRR:MM:DD\". Długość łańcucha to "
+"11 bajtów wraz ze znakiem NULL."
+
+#: libexif/exif-tag.c:215
+msgid "GPS Differential Correction"
+msgstr "Poprawka różnicowa GPS"
+
+#: libexif/exif-tag.c:216
+msgid ""
+"Indicates whether differential correction is applied to the GPS receiver."
+msgstr ""
+"Określenie, czy do pomiaru odbiornika GPS została zastosowana poprawka "
+"różnicowa."
+
+#: libexif/exif-tag.c:220
+msgid "New Subfile Type"
+msgstr "Typ nowego podpliku"
+
+#: libexif/exif-tag.c:220
+msgid "A general indication of the kind of data contained in this subfile."
+msgstr "Ogólne oznaczenie rodzaju danych zawartych w tym podpliku."
+
+#: libexif/exif-tag.c:222
+msgid "Image Width"
+msgstr "Szerokość obrazu"
+
+#: libexif/exif-tag.c:223
+msgid ""
+"The number of columns of image data, equal to the number of pixels per row. "
+"In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+"Liczba kolumn danych obrazu, różna liczbie pikseli w wierszu. W danych "
+"skompresowanych algorytmem JPEG zamiast tego znacznika używany jest znacznik "
+"JPEG."
+
+#: libexif/exif-tag.c:227
+msgid "Image Length"
+msgstr "Długość obrazu"
+
+#: libexif/exif-tag.c:228
+msgid ""
+"The number of rows of image data. In JPEG compressed data a JPEG marker is "
+"used instead of this tag."
+msgstr ""
+"Liczba wierszy danych obrazu. W danych skompresowanych algorytmem JPEG "
+"zamiast tego znacznika używany jest znacznik JPEG."
+
+#: libexif/exif-tag.c:231
+msgid "Bits per Sample"
+msgstr "Bitów na próbkę"
+
+#: libexif/exif-tag.c:232
+msgid ""
+"The number of bits per image component. In this standard each component of "
+"the image is 8 bits, so the value for this tag is 8. See also "
+"<SamplesPerPixel>. In JPEG compressed data a JPEG marker is used instead of "
+"this tag."
+msgstr ""
+"Liczba bitów na składową obrazu. W tym standardzie każda składowa obrazu ma "
+"8 bitów, więc wartość tego znacznika to 8. Patrz także <SamplesPerPixel>. W "
+"danych skompresowanych algorytmem JPEG zamiast tego znacznika używany jest "
+"znacznik JPEG."
+
+#: libexif/exif-tag.c:237
+msgid "Compression"
+msgstr "Kompresja"
+
+#: libexif/exif-tag.c:238
+msgid ""
+"The compression scheme used for the image data. When a primary image is JPEG "
+"compressed, this designation is not necessary and is omitted. When "
+"thumbnails use JPEG compression, this tag value is set to 6."
+msgstr ""
+"Algorytm kompresji użyty dla danych obrazu. Jeśli główny obraz jest "
+"skompresowany algorytmem JPEG, to oznaczenie nie jest potrzebne i jest "
+"pomijane. Jeśli miniaturki używają kompresji JPEG, ten znacznik ma wartość 6."
+
+#: libexif/exif-tag.c:244
+msgid "Photometric Interpretation"
+msgstr "Interpretacja fotometryczna"
+
+#: libexif/exif-tag.c:245
+msgid ""
+"The pixel composition. In JPEG compressed data a JPEG marker is used instead "
+"of this tag."
+msgstr ""
+"Składowe pikseli. W danych skompresowanych algorytmem JPEG zamiast tego "
+"znacznika używany jest znacznik JPEG."
+
+#: libexif/exif-tag.c:249
+msgid "Fill Order"
+msgstr "Kolejność wypełniania"
+
+#: libexif/exif-tag.c:251
+msgid "Document Name"
+msgstr "Nazwa dokumentu"
+
+#: libexif/exif-tag.c:253
+msgid "Image Description"
+msgstr "Opis obrazu"
+
+#: libexif/exif-tag.c:254
+msgid ""
+"A character string giving the title of the image. It may be a comment such "
+"as \"1988 company picnic\" or the like. Two-bytes character codes cannot be "
+"used. When a 2-bytes code is necessary, the Exif Private tag <UserComment> "
+"is to be used."
+msgstr ""
+"Łańcuch znaków nadający obrazowi tytuł. Może być komentarzem takim jak "
+"\"piknik firmowy 1988\" lub podobnym. Nie można używać dwubajtowych kodów "
+"znaków. Jeśli dwubajtowe kody znaków są potrzebne, należy użyć znacznika "
+"Exif Private <UserComment>."
+
+#: libexif/exif-tag.c:260
+msgid "Manufacturer"
+msgstr "Producent"
+
+#: libexif/exif-tag.c:261
+msgid ""
+"The manufacturer of the recording equipment. This is the manufacturer of the "
+"DSC, scanner, video digitizer or other equipment that generated the image. "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+"Producent urządzenia nagrywającego. Jest to producent DSC, skanera, "
+"digitalizera albo innego urządzenia, które wygenerowało obraz. Jeśli to pole "
+"jest puste, jest traktowane jako nieznane."
+
+#: libexif/exif-tag.c:267
+msgid "Model"
+msgstr "Model"
+
+#: libexif/exif-tag.c:268
+msgid ""
+"The model name or model number of the equipment. This is the model name or "
+"number of the DSC, scanner, video digitizer or other equipment that "
+"generated the image. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Nazwa lub numer modelu urządzenia. Jest to nazwa modelu lub numer DSC, "
+"skanera, digitalizera albo innego urządzenia, które wygenerowało obraz. "
+"Jeśli to pole jest puste, jest traktowane jako nieznane."
+
+#: libexif/exif-tag.c:273
+msgid "Strip Offsets"
+msgstr "Przesunięcia pasów"
+
+#: libexif/exif-tag.c:274
+msgid ""
+"For each strip, the byte offset of that strip. It is recommended that this "
+"be selected so the number of strip bytes does not exceed 64 Kbytes. With "
+"JPEG compressed data this designation is not needed and is omitted. See also "
+"<RowsPerStrip> and <StripByteCounts>."
+msgstr ""
+"Bajtowe przesunięcie pasa dla każdego pasa. Zaleca się takie dobranie tej "
+"wartości, by liczba bajtów pasa nie przekraczała 64kB. W danych "
+"skompresowanych algorytmem JPEG to oznaczenie nie jest potrzebne i jest "
+"pomijane. Patrz także <RowsPerStrip> i <StripByteCount>."
+
+#: libexif/exif-tag.c:280
+msgid "Orientation"
+msgstr "Orientacja"
+
+#: libexif/exif-tag.c:281
+msgid "The image orientation viewed in terms of rows and columns."
+msgstr "Orientacja obrazu widziana w kategoriach wierszy i kolumn."
+
+#: libexif/exif-tag.c:284
+msgid "Samples per Pixel"
+msgstr "Próbek na piksel"
+
+#: libexif/exif-tag.c:285
+msgid ""
+"The number of components per pixel. Since this standard applies to RGB and "
+"YCbCr images, the value set for this tag is 3. In JPEG compressed data a "
+"JPEG marker is used instead of this tag."
+msgstr ""
+"Liczba składowych na piksel. Ponieważ ten standard odnosi się do obrazów RGB "
+"i YCbCr, wartość tego znacznika wynosi 3. W danych skompresowanych "
+"algorytmem JPEG zamiast tego znacznika używany jest znacznik JPEG."
+
+#: libexif/exif-tag.c:290
+msgid "Rows per Strip"
+msgstr "Wierszy na pas"
+
+#: libexif/exif-tag.c:291
+msgid ""
+"The number of rows per strip. This is the number of rows in the image of one "
+"strip when an image is divided into strips. With JPEG compressed data this "
+"designation is not needed and is omitted. See also <StripOffsets> and "
+"<StripByteCounts>."
+msgstr ""
+"Liczba wierszy na pas. Jest to liczba wierszy w obrazie jednego pasa kiedy "
+"obraz jest podzielony na pasy. W danych skompresowanych algorytmem JPEG to "
+"oznaczenie nie jest potrzebne i jest pomijane. Patrz także <StripOffsets> i "
+"<StripByteCounts>."
+
+#: libexif/exif-tag.c:297
+msgid "Strip Byte Count"
+msgstr "Liczba bajtów na pas"
+
+#: libexif/exif-tag.c:298
+msgid ""
+"The total number of bytes in each strip. With JPEG compressed data this "
+"designation is not needed and is omitted."
+msgstr ""
+"Całkowita liczba bajtów w każdym pasie. W danych skompresowanych algorytmem "
+"JPEG to oznaczenie nie jest potrzebne i jest pomijane."
+
+#: libexif/exif-tag.c:301
+msgid "X-Resolution"
+msgstr "Rozdzielczość X"
+
+#: libexif/exif-tag.c:302
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageWidth> direction. "
+"When the image resolution is unknown, 72 [dpi] is designated."
+msgstr ""
+"Liczba pikseli na jednostkę rozdzielczości (<ResolutionUnit>) w kierunku "
+"szerokości (<ImageWidth>). Kiedy rozdzielczość obrazu jest nieznana, "
+"przyjmuje się 72 [dpi]."
+
+#: libexif/exif-tag.c:306
+msgid "Y-Resolution"
+msgstr "Rozdzielczość Y"
+
+#: libexif/exif-tag.c:307
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageLength> direction. "
+"The same value as <XResolution> is designated."
+msgstr ""
+"Liczba pikseli na jednostkę rozdzielczości (<ResolutionUnit>) w kierunku "
+"długości (<ImageLength>). Zakładana jest taka sama wartość jak <XResolution>."
+
+#: libexif/exif-tag.c:311
+msgid "Planar Configuration"
+msgstr "Konfiguracja powierzchni"
+
+#: libexif/exif-tag.c:312
+msgid ""
+"Indicates whether pixel components are recorded in a chunky or planar "
+"format. In JPEG compressed files a JPEG marker is used instead of this tag. "
+"If this field does not exist, the TIFF default of 1 (chunky) is assumed."
+msgstr ""
+"Oznaczenie, czy składowe pikseli są zapisane w formacie blokowym czy "
+"płaskim. W plikach skompresowanych algorytmem JPEG zamiast tego znacznika "
+"używany jest znacznik JPEG. Jeśli to pole nie istnieje, domyślne dla TIFF "
+"jest 1 (blokowy)."
+
+#: libexif/exif-tag.c:317
+msgid "Resolution Unit"
+msgstr "Jednostka rozdzielczości"
+
+#: libexif/exif-tag.c:318
+msgid ""
+"The unit for measuring <XResolution> and <YResolution>. The same unit is "
+"used for both <XResolution> and <YResolution>. If the image resolution is "
+"unknown, 2 (inches) is designated."
+msgstr ""
+"Jednostka do wyrażania <XResolution> i <YResolution>. Dla obu wielkości "
+"używana jest ta sama jednostka. Jeśli rozdzielczość jest nieznana, "
+"przyjmowane jest 2 (cale)."
+
+#: libexif/exif-tag.c:323
+msgid "Transfer Function"
+msgstr "Funkcja przejścia"
+
+#: libexif/exif-tag.c:324
+msgid ""
+"A transfer function for the image, described in tabular style. Normally this "
+"tag is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+"Funkcja przejścia dla obrazu, opisana w postaci tabeli. Zwykle ten znacznik "
+"nie jest potrzebny, ponieważ przestrzeń kolorów podana jest w znaczniku "
+"informacji o przestrzeni kolorów (<ColorSpace>)."
+
+#: libexif/exif-tag.c:328
+msgid "Software"
+msgstr "Oprogramowanie"
+
+#: libexif/exif-tag.c:329
+msgid ""
+"This tag records the name and version of the software or firmware of the "
+"camera or image input device used to generate the image. The detailed format "
+"is not specified, but it is recommended that the example shown below be "
+"followed. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Ten znacznik przechowuje nazwę i wersję oprogramowania lub firmware kamery "
+"albo innego urządzenia wejściowego obrazu użytego do wygenerowania obrazu. "
+"Szczegółowy format nie jest określony, ale zaleca się naśladowanie "
+"poniższego przykładu. Jeśli pole jest puste, jest traktowane jako nieznane."
+
+#: libexif/exif-tag.c:336
+msgid "Date and Time"
+msgstr "Data i czas"
+
+#: libexif/exif-tag.c:337
+msgid ""
+"The date and time of image creation. In this standard (EXIF-2.1) it is the "
+"date and time the file was changed."
+msgstr ""
+"Data i czas stworzenia obrazu. W tym standardzie (EXIF-2.1) jest to data i "
+"czas zmiany pliku."
+
+#: libexif/exif-tag.c:340
+msgid "Artist"
+msgstr "Autor"
+
+#: libexif/exif-tag.c:341
+msgid ""
+"This tag records the name of the camera owner, photographer or image "
+"creator. The detailed format is not specified, but it is recommended that "
+"the information be written as in the example below for ease of "
+"Interoperability. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Ten znacznik przechowuje nazwę właściciela aparatu, fotografa lub twórcy "
+"obrazu. Szczegółowy format nie jest określony, ale zaleca się naśladowanie "
+"poniższego przykładu dla ułatwienia współpracy. Jeśli pole jest puste, jest "
+"traktowane jako nieznane."
+
+#: libexif/exif-tag.c:347 libexif/pentax/mnote-pentax-tag.c:113
+msgid "White Point"
+msgstr "Biały punkt"
+
+#: libexif/exif-tag.c:348
+msgid ""
+"The chromaticity of the white point of the image. Normally this tag is not "
+"necessary, since color space is specified in the color space information tag "
+"(<ColorSpace>)."
+msgstr ""
+"Barwa białego punktu obrazu. Zwykle ten znacznik nie jest potrzebny, "
+"ponieważ przestrzeń kolorów podana jest w znaczniku informacji o przestrzeni "
+"kolorów (<ColorSpace>)."
+
+#: libexif/exif-tag.c:353
+msgid "Primary Chromaticities"
+msgstr "Barwy główne"
+
+#: libexif/exif-tag.c:354
+msgid ""
+"The chromaticity of the three primary colors of the image. Normally this tag "
+"is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+"Barwa trzech głównych kolorów obrazu. Zwykle ten znacznik nie jest "
+"potrzebny, ponieważ przestrzeń kolorów podana jest w znaczniku informacji o "
+"przestrzeni kolorów (<ColorSpace>)."
+
+#: libexif/exif-tag.c:359
+msgid "Defined by Adobe Corporation to enable TIFF Trees within a TIFF file."
+msgstr ""
+"Zdefiniowane przez Adobe Corporation, aby pozwolić na drzewa TIFF w plikach "
+"TIFF."
+
+#: libexif/exif-tag.c:362
+msgid "Transfer Range"
+msgstr "Zakres przejścia"
+
+#: libexif/exif-tag.c:366
+msgid "JPEG Interchange Format"
+msgstr "Format JPEG"
+
+#: libexif/exif-tag.c:367
+msgid ""
+"The offset to the start byte (SOI) of JPEG compressed thumbnail data. This "
+"is not used for primary image JPEG data."
+msgstr ""
+"Położenie początkowego bajtu (SOI) danych miniaturki skompresowanej JPEG. "
+"Nie jest używane dla danych JPEG głównego obrazu."
+
+#: libexif/exif-tag.c:372
+msgid "JPEG Interchange Format Length"
+msgstr "Długość formatu JPEG"
+
+#: libexif/exif-tag.c:373
+msgid ""
+"The number of bytes of JPEG compressed thumbnail data. This is not used for "
+"primary image JPEG data. JPEG thumbnails are not divided but are recorded as "
+"a continuous JPEG bitstream from SOI to EOI. Appn and COM markers should not "
+"be recorded. Compressed thumbnails must be recorded in no more than 64 "
+"Kbytes, including all other data to be recorded in APP1."
+msgstr ""
+"Liczba bajtów danych miniaturki skompresowanej JPEG. Nie jest używana dla "
+"danych JPEG głównego obrazu. Miniaturki JPEG nie są dzielone, ale zapisywane "
+"jako ciągły strumień JPEG od SOI do EOI. Znaczniki Appn i COM nie powinny "
+"być używane. Skompresowane miniaturki muszą być zapisane w najwyżej 64kB, "
+"włącznie ze wszystkimi innymi danymi zapisanymi w APP1."
+
+#: libexif/exif-tag.c:382
+msgid "YCbCr Coefficients"
+msgstr "Współczynniki YCbCr"
+
+#: libexif/exif-tag.c:383
+msgid ""
+"The matrix coefficients for transformation from RGB to YCbCr image data. No "
+"default is given in TIFF; but here the value given in \"Color Space "
+"Guidelines\", is used as the default. The color space is declared in a color "
+"space information tag, with the default being the value that gives the "
+"optimal image characteristics Interoperability this condition."
+msgstr ""
+"Macierz współczynników przekształcenia danych obrazu z RGB do YCbCr. Dla "
+"TIFF nie ma wartości domyślnych, ale wartości podane w \"Color Space "
+"Guidelines\" są używane jako domyślne. Przestrzeń kolorów jest określona w "
+"znaczniku informacji o przestrzeni kolorów z wartością domyślną będącą tą, "
+"która daje optymalną współpracę charakterystyki obrazu w danym przypadku."
+
+#: libexif/exif-tag.c:392
+msgid "YCbCr Sub-Sampling"
+msgstr "Podpróbkowanie YCbCr"
+
+#: libexif/exif-tag.c:393
+msgid ""
+"The sampling ratio of chrominance components in relation to the luminance "
+"component. In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+"Współczynnik próbkowania składowych chrominancji w stosunku do składowej "
+"luminancji. W danych skompresowanych algorytmem JPEG zamiast tego znacznika "
+"używany jest znacznik JPEG."
+
+#: libexif/exif-tag.c:398
+msgid "YCbCr Positioning"
+msgstr "Rozmieszczenie YCbCr"
+
+#: libexif/exif-tag.c:399
+msgid ""
+"The position of chrominance components in relation to the luminance "
+"component. This field is designated only for JPEG compressed data or "
+"uncompressed YCbCr data. The TIFF default is 1 (centered); but when Y:Cb:Cr "
+"= 4:2:2 it is recommended in this standard that 2 (co-sited) be used to "
+"record data, in order to improve the image quality when viewed on TV "
+"systems. When this field does not exist, the reader shall assume the TIFF "
+"default. In the case of Y:Cb:Cr = 4:2:0, the TIFF default (centered) is "
+"recommended. If the reader does not have the capability of supporting both "
+"kinds of <YCbCrPositioning>, it shall follow the TIFF default regardless of "
+"the value in this field. It is preferable that readers be able to support "
+"both centered and co-sited positioning."
+msgstr ""
+"Rozmieszczenie składowych chrominancji w stosunku do składowej luminancji. "
+"To pole ma znaczenie tylko dla danych skompresowanych algorytmem JPEG lub "
+"nieskompresowanych danych YCbCr. Domyślne dla TIFF jest 1 (wyśrodkowane); "
+"ale kiedy Y:Cb:Cr = 4:2:2, zaleca się w tym standardzie 2 (położone razem) w "
+"celu poprawienia jakości obrazu w przypadku oglądania na telewizorze. Kiedy "
+"to pole nie istnieje, czytający powinien założyć wartość domyślną dla TIFF. "
+"W przypadku Y:Cb:Cr = 4:2:0, zalecana jest wartość domyślna dla TIFF "
+"(wyśrodkowane). Jeśli czytający nie ma możliwości obsługi obu rodzajów "
+"rozmieszczenia, powinien używać domyślnej wartości TIFF niezależnie od "
+"wartości tego pola. Zaleca się, żeby czytający byli w stanie obsłużyć oba "
+"rodzaje rozmieszczenia."
+
+#: libexif/exif-tag.c:414
+msgid "Reference Black/White"
+msgstr "Czerń/biel odniesienia"
+
+#: libexif/exif-tag.c:415
+msgid ""
+"The reference black point value and reference white point value. No defaults "
+"are given in TIFF, but the values below are given as defaults here. The "
+"color space is declared in a color space information tag, with the default "
+"being the value that gives the optimal image characteristics "
+"Interoperability these conditions."
+msgstr ""
+"Wartości czarnego i białego punktu odniesienia. W formacie TIFF nie ma "
+"wartości domyślnych, ale poniższe są podane tutaj jako domyślne. Przestrzeń "
+"kolorów jest określona w znaczniku informacji o przestrzeni kolorów, z "
+"wartością domyślną dającą optymalną charakterystykę obrazu w danych "
+"warunkach."
+
+#: libexif/exif-tag.c:423
+msgid "XML Packet"
+msgstr "Pakiet XML"
+
+#: libexif/exif-tag.c:423
+msgid "XMP Metadata"
+msgstr "Metadane XML"
+
+#: libexif/exif-tag.c:438 libexif/exif-tag.c:784
+msgid "CFA Pattern"
+msgstr "Wzór CFA"
+
+#: libexif/exif-tag.c:439 libexif/exif-tag.c:785
+msgid ""
+"Indicates the color filter array (CFA) geometric pattern of the image sensor "
+"when a one-chip color area sensor is used. It does not apply to all sensing "
+"methods."
+msgstr ""
+"Oznaczenie wzoru geometrycznego CFA (color filter array - tablicy filtrów "
+"kolorów) czujnika obrazu w przypadku użycia jednoukładowego czujnika obszaru "
+"koloru. Nie odnosi się to do wszystkich metod próbkowania."
+
+#: libexif/exif-tag.c:443
+msgid "Battery Level"
+msgstr "Poziom baterii"
+
+#: libexif/exif-tag.c:444
+msgid "Copyright"
+msgstr "Prawa autorskie"
+
+#: libexif/exif-tag.c:445
+msgid ""
+"Copyright information. In this standard the tag is used to indicate both the "
+"photographer and editor copyrights. It is the copyright notice of the person "
+"or organization claiming rights to the image. The Interoperability copyright "
+"statement including date and rights should be written in this field; e.g., "
+"\"Copyright, John Smith, 19xx. All rights reserved.\". In this standard the "
+"field records both the photographer and editor copyrights, with each "
+"recorded in a separate part of the statement. When there is a clear "
+"distinction between the photographer and editor copyrights, these are to be "
+"written in the order of photographer followed by editor copyright, separated "
+"by NULL (in this case, since the statement also ends with a NULL, there are "
+"two NULL codes) (see example 1). When only the photographer is given, it is "
+"terminated by one NULL code (see example 2). When only the editor copyright "
+"is given, the photographer copyright part consists of one space followed by "
+"a terminating NULL code, then the editor copyright is given (see example 3). "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+"Informacje o prawach autorskich. Jest to standardowy znacznik używany do "
+"określenia praw autorskich zarówno fotografa, jak i redaktora. Jest to "
+"informacja o osobie lub organizacji mającej prawa do obrazu. Standardowe "
+"oświadczenie o prawach autorskich wraz z datą i prawami powinno być zapisane "
+"w tym polu, np. \"Copyright, John Smith, 19xx. All rights reserved.\". W tym "
+"standardzie pola opisują prawa zarówno fotografa, jak i redaktora, z których "
+"każdy jest opisywany w oddzielnej części oświadczenia. Jeśli jest jasne "
+"rozróżnienie między prawami fotografa i redaktora, powinny być zapisane w "
+"kolejności najpierw fotograf, a następnie redaktor, oddzielone znakiem NULL "
+"(w tym przypadku, jeśli oświadczenie także kończy się znakiem NULL, powinny "
+"być dwa kody NULL; p. przykład 1). Jeśli podano tylko fotografa, jest on "
+"kończony kodem NULL (p. przykład 2). Jeśli podano tylko prawa redaktora, "
+"część przeznaczona dla fotografa składa się z jednej spacji i następującego "
+"po niej kodu NULL, a następnie podane są prawa redaktora (p. przykład 3). "
+"Jeśli pole jest puste, jest traktowane jako nieznane."
+
+#: libexif/exif-tag.c:467
+msgid "Exposure time, given in seconds (sec)."
+msgstr "Czas ekspozycji podany w sekundach (sek)."
+
+#: libexif/exif-tag.c:469 libexif/pentax/mnote-pentax-tag.c:79
+msgid "F-Number"
+msgstr "Liczba F"
+
+#: libexif/exif-tag.c:470
+msgid "The F number."
+msgstr "Liczba F."
+
+#: libexif/exif-tag.c:475
+msgid "Image Resources Block"
+msgstr "Blok zasobów obrazu"
+
+#: libexif/exif-tag.c:477
+msgid ""
+"A pointer to the Exif IFD. Interoperability, Exif IFD has the same structure "
+"as that of the IFD specified in TIFF. ordinarily, however, it does not "
+"contain image data as in the case of TIFF."
+msgstr ""
+"Wskaźnik na Exif IFD. Exif IFD ma tę samą strukturę co IFD określone w TIFF, "
+"oczywiście nie zawiera jednak danych obrazu jak w przypadku pliku TIFF."
+
+#: libexif/exif-tag.c:485
+msgid "Exposure Program"
+msgstr "Program ekspozycji"
+
+#: libexif/exif-tag.c:486
+msgid ""
+"The class of the program used by the camera to set exposure when the picture "
+"is taken."
+msgstr ""
+"Klasa programu użytego przez aparat do ustawienia ekspozycji przy robieniu "
+"zdjęcia."
+
+#: libexif/exif-tag.c:490
+msgid "Spectral Sensitivity"
+msgstr "Czułość widmowa"
+
+#: libexif/exif-tag.c:491
+msgid ""
+"Indicates the spectral sensitivity of each channel of the camera used. The "
+"tag value is an ASCII string compatible with the standard developed by the "
+"ASTM Technical Committee."
+msgstr ""
+"Oznaczenie czułości widmowej każdego kanału używanego przez aparat. Wartość "
+"znacznika to łańcuch znaków ASCII kompatybilny ze standardem stworzonym "
+"przez ASTM Technical Committee."
+
+#: libexif/exif-tag.c:496
+msgid "GPS Info IFD Pointer"
+msgstr "Wkaźnik IFD informacji GPS"
+
+#: libexif/exif-tag.c:497
+msgid ""
+"A pointer to the GPS Info IFD. The Interoperability structure of the GPS "
+"Info IFD, like that of Exif IFD, has no image data."
+msgstr ""
+"Wskaźnik na GPS Info IFD. Struktura GPS Info IFD jest taka, jak Exif IFD, "
+"ale bez danych obrazu."
+
+#: libexif/exif-tag.c:503
+msgid "ISO Speed Ratings"
+msgstr "Oszacowania szybkości ISO"
+
+#: libexif/exif-tag.c:504
+msgid ""
+"Indicates the ISO Speed and ISO Latitude of the camera or input device as "
+"specified in ISO 12232."
+msgstr ""
+"Określenie szybkości ISO i szerokości ISO aparatu lub urządzenia wejściowego "
+"zgodne ze specyfikacją ISO 12232."
+
+#: libexif/exif-tag.c:507
+msgid "Opto-Electronic Conversion Function"
+msgstr "Funkcja przekształcenia optoelektronicznego"
+
+#: libexif/exif-tag.c:508
+msgid ""
+"Indicates the Opto-Electronic Conversion Function (OECF) specified in ISO "
+"14524. <OECF> is the relationship between the camera optical input and the "
+"image values."
+msgstr ""
+"Określenie funkcji konwersji optoelektrycznej (OECF - Opto-Electric "
+"Conversion Function) opisanej w ISO 14524. <OECF> to powiązanie między "
+"wejściem optycznym aparatu a wartościami obrazu."
+
+#: libexif/exif-tag.c:513
+msgid "Time Zone Offset"
+msgstr "Przesunięcie strefy czasowej"
+
+#: libexif/exif-tag.c:514
+msgid "Encodes time zone of camera clock relative to GMT."
+msgstr "Zapis strefy czasowej zegara aparatu względem GMT."
+
+#: libexif/exif-tag.c:515
+msgid "Exif Version"
+msgstr "Wersja Exif"
+
+#: libexif/exif-tag.c:516
+msgid ""
+"The version of this standard supported. Nonexistence of this field is taken "
+"to mean nonconformance to the standard."
+msgstr ""
+"Obsługiwana wersja tego standardu. Brak tego pola jest uznawany za "
+"niezgodność ze standardem."
+
+#: libexif/exif-tag.c:520
+msgid "Date and Time (Original)"
+msgstr "Data i czas (oryginału)"
+
+#: libexif/exif-tag.c:521
+msgid ""
+"The date and time when the original image data was generated. For a digital "
+"still camera the date and time the picture was taken are recorded."
+msgstr ""
+"Data i czas wygenerowania oryginalnych danych obrazu. Dla aparatu cyfrowego "
+"zapisywana jest data i czas zrobienia zdjęcia."
+
+#: libexif/exif-tag.c:526
+msgid "Date and Time (Digitized)"
+msgstr "Data i czas (obrazu cyfrowego)"
+
+#: libexif/exif-tag.c:527
+msgid "The date and time when the image was stored as digital data."
+msgstr "Data i czas zapisania obrazu jako danych cyfrowych. "
+
+#: libexif/exif-tag.c:530
+msgid "Components Configuration"
+msgstr "Konfiguracja składowych"
+
+#: libexif/exif-tag.c:531
+msgid ""
+"Information specific to compressed data. The channels of each component are "
+"arranged in order from the 1st component to the 4th. For uncompressed data "
+"the data arrangement is given in the <PhotometricInterpretation> tag. "
+"However, since <PhotometricInterpretation> can only express the order of Y, "
+"Cb and Cr, this tag is provided for cases when compressed data uses "
+"components other than Y, Cb, and Cr and to enable support of other sequences."
+msgstr ""
+"Informacje specyficzne dla skompresowanych danych. Kanały każdej składowej "
+"są układane w kolejności od 1. do 4. Dla danych nieskompresowanych ułożenie "
+"danych jest podane w znaczniku <PhotometricInterpretation>. Jednak ponieważ "
+"<PhotometricInterpretation> może wyrazić jedynie kolejność Y, Cb i Cr, ten "
+"znacznik został dodany dla przypadków, kiedy skompresowane dane używają "
+"składowych innych niż Y, Cb i Cr oraz aby umożliwić obsługę innych sekwencji."
+
+#: libexif/exif-tag.c:541
+msgid "Compressed Bits per Pixel"
+msgstr "Skompresowane bity na piksel"
+
+#: libexif/exif-tag.c:542
+msgid ""
+"Information specific to compressed data. The compression mode used for a "
+"compressed image is indicated in unit bits per pixel."
+msgstr ""
+"Informacja specyficzna dla skompresowanych danych. Rodzaj kompresji użyty "
+"dla skompresowanego obrazu jest określony w jednostkach bitów na piksel."
+
+#: libexif/exif-tag.c:546 libexif/olympus/mnote-olympus-tag.c:123
+msgid "Shutter Speed"
+msgstr "Szybkość migawki"
+
+#: libexif/exif-tag.c:547
+msgid ""
+"Shutter speed. The unit is the APEX (Additive System of Photographic "
+"Exposure) setting."
+msgstr ""
+"Szybkość migawki. Jednostką jest ustawienie APEX (Additive System of "
+"Photographic Exposure)."
+
+#: libexif/exif-tag.c:551
+msgid "The lens aperture. The unit is the APEX value."
+msgstr "Przysłona obiektywu. Jednostką jest wartość APEX."
+
+#: libexif/exif-tag.c:553
+msgid "Brightness"
+msgstr "Jasność"
+
+#: libexif/exif-tag.c:554
+msgid ""
+"The value of brightness. The unit is the APEX value. Ordinarily it is given "
+"in the range of -99.99 to 99.99."
+msgstr ""
+"Wartość jasności. Jednostką jest wartość APEX. Zwykle jest podana w "
+"przedziale od -99.99 do 99.99."
+
+#: libexif/exif-tag.c:558
+msgid "Exposure Bias"
+msgstr "Odchylenie ekspozycji"
+
+#: libexif/exif-tag.c:559
+msgid ""
+"The exposure bias. The units is the APEX value. Ordinarily it is given in "
+"the range of -99.99 to 99.99."
+msgstr ""
+"Odchylenie ekspozycji. Jednostką jest wartość APEX. Zwykle jest podana w "
+"przedziale od -99.99 do 99.99."
+
+#: libexif/exif-tag.c:562
+msgid "Maximum Aperture Value"
+msgstr "Maksymalna wartość przysłony"
+
+#: libexif/exif-tag.c:563
+msgid ""
+"The smallest F number of the lens. The unit is the APEX value. Ordinarily it "
+"is given in the range of 00.00 to 99.99, but it is not limited to this range."
+msgstr ""
+"Najmniejsza liczba F obiektywu. Jednostką jest wartość APEX. Zwykle jest "
+"podana w przedziale od 00.00 do 99.99, ale nie ma ograniczenia do tego "
+"zakresu."
+
+#: libexif/exif-tag.c:568
+msgid "Subject Distance"
+msgstr "Odległość obiektu"
+
+#: libexif/exif-tag.c:569
+msgid "The distance to the subject, given in meters."
+msgstr "Odległość obiektu podana w metrach"
+
+#: libexif/exif-tag.c:572
+msgid "The metering mode."
+msgstr "Tryb pomiaru."
+
+#: libexif/exif-tag.c:574
+msgid "Light Source"
+msgstr "Źródło światła"
+
+#: libexif/exif-tag.c:575
+msgid "The kind of light source."
+msgstr "Rodzaj źródła światła."
+
+#: libexif/exif-tag.c:578
+msgid ""
+"This tag is recorded when an image is taken using a strobe light (flash)."
+msgstr ""
+"Ten znacznik jest zapisywany kiedy zdjęcie było robione z użyciem światła "
+"stroboskopowego (flesza)."
+
+#: libexif/exif-tag.c:582
+msgid ""
+"The actual focal length of the lens, in mm. Conversion is not made to the "
+"focal length of a 35 mm film camera."
+msgstr ""
+"Rzeczywista ogniskowa obiektywu w mm, bez przekształcenia do ogniskowej dla "
+"aparatu na film 35 mm."
+
+#: libexif/exif-tag.c:585
+msgid "Subject Area"
+msgstr "Obszar obiektu"
+
+#: libexif/exif-tag.c:586
+msgid ""
+"This tag indicates the location and area of the main subject in the overall "
+"scene."
+msgstr ""
+"Ten znacznik określa położenie i obszar głównego obiektu na całej scenie."
+
+#: libexif/exif-tag.c:590
+msgid "TIFF/EP Standard ID"
+msgstr "Standardowy ID TIFF/EP"
+
+#: libexif/exif-tag.c:591
+msgid "Maker Note"
+msgstr "Uwaga producenta"
+
+#: libexif/exif-tag.c:592
+msgid ""
+"A tag for manufacturers of Exif writers to record any desired information. "
+"The contents are up to the manufacturer."
+msgstr ""
+"Znacznik dla producentów urządzeń zapisujących Exif do zapisywania dowolnie "
+"wybranych informacji. Zawartość zależy od producenta."
+
+#: libexif/exif-tag.c:595
+msgid "User Comment"
+msgstr "Komentarz użytkownika"
+
+#: libexif/exif-tag.c:596
+msgid ""
+"A tag for Exif users to write keywords or comments on the image besides "
+"those in <ImageDescription>, and without the character code limitations of "
+"the <ImageDescription> tag. The character code used in the <UserComment> tag "
+"is identified based on an ID code in a fixed 8-byte area at the start of the "
+"tag data area. The unused portion of the area is padded with NULL (\"00.h"
+"\"). ID codes are assigned by means of registration. The designation method "
+"and references for each character code are defined in the specification. The "
+"value of CountN is determined based on the 8 bytes in the character code "
+"area and the number of bytes in the user comment part. Since the TYPE is not "
+"ASCII, NULL termination is not necessary. The ID code for the <UserComment> "
+"area may be a Defined code such as JIS or ASCII, or may be Undefined. The "
+"Undefined name is UndefinedText, and the ID code is filled with 8 bytes of "
+"all \"NULL\" (\"00.H\"). An Exif reader that reads the <UserComment> tag "
+"must have a function for determining the ID code. This function is not "
+"required in Exif readers that do not use the <UserComment> tag. When a "
+"<UserComment> area is set aside, it is recommended that the ID code be ASCII "
+"and that the following user comment part be filled with blank characters [20."
+"H]."
+msgstr ""
+"Znacznik dla użytkowników formatu Exif do zapisywania słów kluczowych lub "
+"komentarzy do obrazu poza tymi w <ImageDescription> i bez ograniczeń co do "
+"kodów znaków w znaczniku <ImageDescription>. Kody znaków używane w znaczniku "
+"<UserComment> są określane w oparciu o kod ID w stałym polu 8-bajtowym na "
+"początku obszaru danych znacznika. Nieużywana część tego obszaru jest "
+"wypełniana znakami NULL (\"00.h\"). Kody ID są przypisywane poprzez "
+"rejestrację. Metody określania i odniesienia dla każdego zestawu znaków są "
+"podane w specyfikacji. Wartość CountN jest określana w oparciu o 8 bajtów z "
+"obszaru kodowania znaków i liczbę bajtów w części zawierającej komentarz "
+"użytkownika. Ponieważ typ pola nie jest ASCII, nie jest potrzebne kończenie "
+"łańcucha znakiem NULL. Kod ID dla obszaru <UserComment> może być "
+"zdefiniowanym kodem takim jak JIS lub ASCII, albo może być nieokreślony. "
+"Nazwa pola nieokreślonego (Undefined) to UndefinedText, a jego kod ID jest "
+"wypełniany 8 bajtami znaków NULL (\"00.H\"). Czytający Exif, który ma czytać "
+"znacznik <UserComment>, musi mieć funkcję określania kodu ID. Funkcja ta nie "
+"jest wymagana dla czytających Exif nie używających znacznika <UserComment>. "
+"Kiedy znacznik <UserComment> jest pozostawiony nie używany, zaleca się żeby "
+"kod ID był ASCII, a następująca po nim część z komentarzem użytkownika była "
+"wypełniona pustymi znakami [20.H]."
+
+#: libexif/exif-tag.c:619
+msgid "Sub-second Time"
+msgstr "Czas - ułamki sekund"
+
+#: libexif/exif-tag.c:620
+msgid "A tag used to record fractions of seconds for the <DateTime> tag."
+msgstr ""
+"Znacznik używany do zapisywania ułamków sekund dla znacznika <DateTime>."
+
+#: libexif/exif-tag.c:624
+msgid "Sub-second Time (Original)"
+msgstr "Czas - ułamki sekund (oryginału)"
+
+#: libexif/exif-tag.c:625
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeOriginal> tag."
+msgstr ""
+"Znacznik używany do zapisywania ułamków sekund dla znacznika "
+"<DateTimeOriginal>."
+
+#: libexif/exif-tag.c:629
+msgid "Sub-second Time (Digitized)"
+msgstr "Czas - ułamki sekund (obrazu cyfrowego)"
+
+#: libexif/exif-tag.c:630
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeDigitized> tag."
+msgstr ""
+"Znacznik używany do zapisywania ułamków sekund dla znacznika "
+"<DateTimeDigitized>."
+
+#: libexif/exif-tag.c:634
+msgid "XP Title"
+msgstr "Tytuł XP"
+
+#: libexif/exif-tag.c:635
+msgid "A character string giving the title of the image, encoded in UTF-16LE."
+msgstr "Łańcuch znaków zawierający tytuł obrazu, zapisany w UTF-16LE."
+
+#: libexif/exif-tag.c:639
+msgid "XP Comment"
+msgstr "Komentarz XP"
+
+#: libexif/exif-tag.c:640
+msgid ""
+"A character string containing a comment about the image, encoded in UTF-16LE."
+msgstr "Łańcuch znaków zawierający komentarz do obrazu, zapisany w UTF-16LE."
+
+#: libexif/exif-tag.c:644
+msgid "XP Author"
+msgstr "Autor XP"
+
+#: libexif/exif-tag.c:645
+msgid ""
+"A character string containing the name of the image creator, encoded in UTF-"
+"16LE."
+msgstr "Łańcuch znaków zawierający nazwę twórcy obrazu, zapisany w UTF-16LE."
+
+#: libexif/exif-tag.c:649
+msgid "XP Keywords"
+msgstr "Słowa kluczowe XP"
+
+#: libexif/exif-tag.c:650
+msgid ""
+"A character string containing key words describing the image, encoded in UTF-"
+"16LE."
+msgstr ""
+"Łańcuch znaków zawierający słowa kluczowe opisujące obraz, zapisane w UTF-"
+"16LE."
+
+#: libexif/exif-tag.c:654
+msgid "XP Subject"
+msgstr "Temat XP"
+
+#: libexif/exif-tag.c:655
+msgid "A character string giving the image subject, encoded in UTF-16LE."
+msgstr "Łańcuch znaków zawierający temat obrazu, zakodowany w UTF-16LE."
+
+#: libexif/exif-tag.c:659
+msgid "The FlashPix format version supported by a FPXR file."
+msgstr "Wersja formatu FlashPix obsługiwana przez plik FPXR."
+
+#: libexif/exif-tag.c:661 libexif/pentax/mnote-pentax-tag.c:102
+msgid "Color Space"
+msgstr "Przestrzeń kolorów"
+
+#: libexif/exif-tag.c:662
+msgid ""
+"The color space information tag is always recorded as the color space "
+"specifier. Normally sRGB (=1) is used to define the color space based on the "
+"PC monitor conditions and environment. If a color space other than sRGB is "
+"used, Uncalibrated (=FFFF.H) is set. Image data recorded as Uncalibrated can "
+"be treated as sRGB when it is converted to FlashPix."
+msgstr ""
+"Znacznik informacji o przestrzeni kolorów jest zawsze zapisywany w celu "
+"określenia przestrzeni kolorów. Zwykle używane jest sRGB (=1) do określenia "
+"przestrzeni kolorów w oparciu o warunki i środowisko monitora PC. Jeśli "
+"użyta jest inna przestrzeń kolorów niż sRGB, ustawiona jest wartość "
+"\"nieskalibrowana\" (Uncalibrated, =FFFF.H). Dane obrazu zapisane jako "
+"nieskalibrowane mogą być traktowane jako sRGB przy konwersji do FlashPix."
+
+#: libexif/exif-tag.c:670
+msgid "Pixel X Dimension"
+msgstr "Wymiar X w pikselach"
+
+#: libexif/exif-tag.c:671
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid width of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file."
+msgstr ""
+"Informacje specyficzne dla skompresowanych danych. Kiedy zapisywany jest "
+"skompresowany plik, w tym znaczniku musi być zapisana poprawna szerokość "
+"znaczącego obrazu, niezależnie od istnienia danych dopełniających czy "
+"znacznika restartu. Ten znacznik nie powinien istnieć w pliku "
+"nieskompresowanym."
+
+#: libexif/exif-tag.c:677
+msgid "Pixel Y Dimension"
+msgstr "Wymiar Y w pikselach"
+
+#: libexif/exif-tag.c:678
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid height of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file. Since data padding is unnecessary in the "
+"vertical direction, the number of lines recorded in this valid image height "
+"tag will in fact be the same as that recorded in the SOF."
+msgstr ""
+"Informacje specyficzne dla skompresowanych danych. Kiedy zapisywany jest "
+"skompresowany plik, w tym znaczniku musi być zapisana poprawna wysokość "
+"znaczącego obrazu, niezależnie od istnienia danych dopełniających czy "
+"znacznika restartu. Ten znacznik nie powinien istnieć w pliku "
+"nieskompresowanym. Ponieważ dopełnianie danych w kierunku pionowym nie jest "
+"potrzebne, liczba linii zapisana w tym polu będzie w praktyce równa tej "
+"zapisanej w SOF."
+
+#: libexif/exif-tag.c:688
+msgid "Related Sound File"
+msgstr "Powiązany plik dźwiękowy"
+
+#: libexif/exif-tag.c:689
+#, fuzzy
+msgid ""
+"This tag is used to record the name of an audio file related to the image "
+"data. The only relational information recorded here is the Exif audio file "
+"name and extension (an ASCII string consisting of 8 characters + '.' + 3 "
+"characters). The path is not recorded. Stipulations on audio and file naming "
+"conventions are defined in the specification. When using this tag, audio "
+"files must be recorded in conformance to the Exif audio format. Writers are "
+"also allowed to store the data such as Audio within APP2 as FlashPix "
+"extension stream data. The mapping of Exif image files and audio files is "
+"done in any of three ways, [1], [2] and [3]. If multiple files are mapped to "
+"one file as in [2] or [3], the above format is used to record just one audio "
+"file name. If there are multiple audio files, the first recorded file is "
+"given. In the case of [3], for example, for the Exif image file \"DSC00001."
+"JPG\" only  \"SND00001.WAV\" is given as the related Exif audio file. When "
+"there are three Exif audio files \"SND00001.WAV\", \"SND00002.WAV\" and "
+"\"SND00003.WAV\", the Exif image file name for each of them, \"DSC00001.JPG"
+"\", is indicated. By combining multiple relational information, a variety of "
+"playback possibilities can be supported. The method of using relational "
+"information is left to the implementation on the playback side. Since this "
+"information is an ASCII character string, it is terminated by NULL. When "
+"this tag is used to map audio files, the relation of the audio file to image "
+"data must also be indicated on the audio file end."
+msgstr ""
+"Ten znacznik służy do zapisywania nazwy pliku dźwiękowego związanego z "
+"danymi obrazu. Jedyną informacją relacyjną zapisywaną tutaj jest nazwa pliku "
+"dźwiękowego Exif i rozszerzenie (łańcuch ASCII składający się z 8 znaków + "
+"'.' + 3 znaków). Ścieżka nie jest zapisywana. Zastrzeżenia odnośnie dźwięku "
+"i konwencje nazywania plików są podane w specyfikacji. Kiedy używany jest "
+"ten znacznik, pliki dźwiękowe muszą być zapisane zgodnie z formatem dźwięku "
+"Exif. Zapisujący mogą także zapisywać dane takie jak dźwięk wewnątrz danych "
+"strumieni rozszerzeń APP2 lub FlashPix. Pliki dźwiękowe muszą być zapisane "
+"zgodnie z formatem dźwięku Exif. Odwzorowanie między plikami obrazów Exif a "
+"plikami dźwiękowymi Exif jest wykonywane na trzy sposoby: [1], [2] i [3]. "
+"Jeśli wiele plików jest odwzorowywanych na jeden plik, jak w przypadku [2] "
+"lub [3], powyższy format służy do zapisywania tylko jednej nazwy pliku "
+"dźwiękowego. Jeśli jest wiele plików dźwiękowych, podawany jest pierwszy "
+"plik. W przypadku [3] na przykład dla pliku obrazu Exif \"DSC00001.JPG\" "
+"jako powiązany plik dźwiękowy Exif podany jest jedynie \"SND00001.WAV\". "
+"Kiedy są trzy pliki dźwiękowe \"SND00001.WAV\", \"SND00002.WAV\" i "
+"\"SND00003.WAV\", dla każdego z nich podawana jest nazwa pliku obrazu Exif "
+"\"DSC00001.JPG\". Poprzez łączenie wielu informacji relacyjnych obsługiwane "
+"jest wiele możliwości odtwarzania. Sposób używania informacji relacyjnych "
+"jest pozostawiony implementacji po stronie odtwarzania. Ponieważ ta "
+"informacja jest łańcuchem ASCII, jest zakończona znakiem NULL. Kiedy ten "
+"znacznik jest używany do przypisywania plików dźwiękowych do plików obrazu, "
+"relacja pliku dźwiękowego do danych obrazu musi być określona także po "
+"stronie pliku dźwiękowego."
+
+#: libexif/exif-tag.c:719
+msgid "Interoperability IFD Pointer"
+msgstr "Wskaźnik IFD Interoperability"
+
+#: libexif/exif-tag.c:720
+msgid ""
+"Interoperability IFD is composed of tags which stores the information to "
+"ensure the Interoperability and pointed by the following tag located in Exif "
+"IFD. The Interoperability structure of Interoperability IFD is the same as "
+"TIFF defined IFD structure but does not contain the image data "
+"characteristically compared with normal TIFF IFD."
+msgstr ""
+"Interoperability IFD jest złożony ze znaczników przechowujących informacje "
+"zapewniające współpracę i wskazywane przez ten znacznik umieszczony w Exif "
+"IFD. Struktura Interoperability w Interoperability IFD jest taka sama jak "
+"struktra IFD zdefiniowana w TIFF, ale w porównaniu do normalnego TIFF IFD "
+"nie zawiera danych obrazu."
+
+#: libexif/exif-tag.c:729
+msgid "Flash Energy"
+msgstr "Energia Flesza"
+
+#: libexif/exif-tag.c:730
+msgid ""
+"Indicates the strobe energy at the time the image is captured, as measured "
+"in Beam Candle Power Seconds (BCPS)."
+msgstr ""
+"Określenie energii błysku w czasie robienia zdjęcia mierzonej w jednostkach "
+"BCPS (Beam Candle Power Seconds)."
+
+#: libexif/exif-tag.c:734
+msgid "Spatial Frequency Response"
+msgstr "Odpowiedź częstotliwości przestrzennej"
+
+#: libexif/exif-tag.c:735
+msgid ""
+"This tag records the camera or input device spatial frequency table and SFR "
+"values in the direction of image width, image height, and diagonal "
+"direction, as specified in ISO 12233."
+msgstr ""
+"Ten znacznik zapisuje tabelę częstotliwości przestrzennych aparatu lub "
+"urządzenia wejściowego oraz wartości SFR w kierunku szerokości obrazu, "
+"wysokości obrazu i przekątnej zgodnie ze specyfikacją ISO 12233."
+
+#: libexif/exif-tag.c:741
+msgid "Focal Plane X-Resolution"
+msgstr "Rozdzielczość X płaszczyzny ogniskowej"
+
+#: libexif/exif-tag.c:742
+msgid ""
+"Indicates the number of pixels in the image width (X) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+"Określenie liczby pikseli w kierunku szerokości obrazu (X) na "
+"<FocalPlaneResolutionUnit> w płaszczyźnie ogniskowej aparatu."
+
+#: libexif/exif-tag.c:746
+msgid "Focal Plane Y-Resolution"
+msgstr "Rozdzielczość Y płaszczyzny ogniskowej"
+
+#: libexif/exif-tag.c:747
+msgid ""
+"Indicates the number of pixels in the image height (V) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+"Określenie liczby pikseli w kierunku wysokości obrazu (Y) na "
+"<FocalPlaneResolutionUnit> w płaszczyźnie ogniskowej aparatu."
+
+#: libexif/exif-tag.c:751
+msgid "Focal Plane Resolution Unit"
+msgstr "Jednostka rozdzielczości płaszczyzny ogniskowej"
+
+#: libexif/exif-tag.c:752
+msgid ""
+"Indicates the unit for measuring <FocalPlaneXResolution> and "
+"<FocalPlaneYResolution>. This value is the same as the <ResolutionUnit>."
+msgstr ""
+"Określenie jednostki miary <FocalPlaneXResolution> i "
+"<FocalPlaneYResolution>. Ta wartość jest taka sama jak <ResolutionUnit>."
+
+#: libexif/exif-tag.c:757
+msgid "Subject Location"
+msgstr "Położenie obiektu"
+
+#: libexif/exif-tag.c:758
+msgid ""
+"Indicates the location of the main subject in the scene. The value of this "
+"tag represents the pixel at the center of the main subject relative to the "
+"left edge, prior to rotation processing as per the <Rotation> tag. The first "
+"value indicates the X column number and the second indicates the Y row "
+"number."
+msgstr ""
+"Określenie położenia głównego obiektu na scenie. Wartość tego znacznika "
+"reprezentuje piksel w środku głównego obiektu względem lewej krawędzi, przed "
+"wykonaniem obrotu opisanego znacznikiem <Rotation>. Pierwsza wartość określa "
+"numer kolumny X, a druga numer wiersza Y."
+
+#: libexif/exif-tag.c:765
+msgid "Exposure Index"
+msgstr "Indeks ekspozycji"
+
+#: libexif/exif-tag.c:766
+msgid ""
+"Indicates the exposure index selected on the camera or input device at the "
+"time the image is captured."
+msgstr ""
+"Określenie indeksu ekspozycji wybranego przez aparat lub urządzenie "
+"wejściowe w czasie robienia zdjęcia."
+
+#: libexif/exif-tag.c:769
+msgid "Sensing Method"
+msgstr "Rodzaj czujnika"
+
+#: libexif/exif-tag.c:770
+msgid "Indicates the image sensor type on the camera or input device."
+msgstr ""
+"Określenie rodzaju czujnika obrazu w aparacie lub urządzeniu wejściowym."
+
+#: libexif/exif-tag.c:773 libexif/fuji/mnote-fuji-tag.c:64
+msgid "File Source"
+msgstr "Źródło pliku"
+
+#: libexif/exif-tag.c:774
+msgid ""
+"Indicates the image source. If a DSC recorded the image, the tag value of "
+"this tag always be set to 3, indicating that the image was recorded on a DSC."
+msgstr ""
+"Określenie źródła obrazu. Jeśli obraz był zapisany przez DSC, wartość tego "
+"znacznika zawsze wynosi 3, oznaczając, że obraz był zapisany na DSC."
+
+#: libexif/exif-tag.c:778
+msgid "Scene Type"
+msgstr "Rodzaj sceny"
+
+#: libexif/exif-tag.c:779
+msgid ""
+"Indicates the type of scene. If a DSC recorded the image, this tag value "
+"must always be set to 1, indicating that the image was directly photographed."
+msgstr ""
+"Określenie rodzaju sceny. Jeśli obraz był zapisany przez DSC, wartość tego "
+"znacznika zawsze musi być ustawiona na 1, oznaczając, że obraz był "
+"bezpośrednio sfotografowany."
+
+#: libexif/exif-tag.c:789
+msgid "Custom Rendered"
+msgstr "Własny rendering"
+
+#: libexif/exif-tag.c:790
+msgid ""
+"This tag indicates the use of special processing on image data, such as "
+"rendering geared to output. When special processing is performed, the reader "
+"is expected to disable or minimize any further processing."
+msgstr ""
+"Ten znacznik określa użycie specjalnego przetwarzania danych obrazu, takiego "
+"jak rendering zastosowany na wyjściu. Jeśli jest wykonane specjalne "
+"przetwarzanie, czytający powinien wyłączyć albo zminimalizować dalsze "
+"przetwarzanie."
+
+#: libexif/exif-tag.c:796
+msgid ""
+"This tag indicates the exposure mode set when the image was shot. In auto-"
+"bracketing mode, the camera shoots a series of frames of the same scene at "
+"different exposure settings."
+msgstr ""
+"Ten znacznik określa tryb ekspozycji ustawiony przy robieniu zdjęcia. W "
+"trybie auto bracket aparat pstryka serię klatek tej samej sceny z różnymi "
+"ustawieniami ekspozycji."
+
+#: libexif/exif-tag.c:801
+msgid "This tag indicates the white balance mode set when the image was shot."
+msgstr ""
+"Ten znacznik określa tryb balansu bieli ustawiony przy robieniu zdjęcia."
+
+#: libexif/exif-tag.c:805
+msgid "Digital Zoom Ratio"
+msgstr "Współczynnik powiększenia cyfrowego"
+
+#: libexif/exif-tag.c:806
+msgid ""
+"This tag indicates the digital zoom ratio when the image was shot. If the "
+"numerator of the recorded value is 0, this indicates that digital zoom was "
+"not used."
+msgstr ""
+"Ten znacznik określa współczynnik powiększenia cyfrowego w czasie robienia "
+"zdjęcia. Jeśli licznik wartości znacznika jest równy 0, oznacza to, że nie "
+"użyto cyfrowego powiększenia."
+
+#: libexif/exif-tag.c:811
+msgid "Focal Length in 35mm Film"
+msgstr "Ogniskowa dla filmu 35mm"
+
+#: libexif/exif-tag.c:812
+msgid ""
+"This tag indicates the equivalent focal length assuming a 35mm film camera, "
+"in mm. A value of 0 means the focal length is unknown. Note that this tag "
+"differs from the FocalLength tag."
+msgstr ""
+"Ten znacznik określa odpowiednik ogniskowej w mm przy założeniu aparatu na "
+"film 35 mm. Wartość 0 oznacza, że ogniskowa jest nieznana. Należy zauważyć, "
+"że ten znacznik różni się od znacznika FocalLength."
+
+#: libexif/exif-tag.c:818
+msgid "Scene Capture Type"
+msgstr "Rodzaj uchwycenia sceny"
+
+#: libexif/exif-tag.c:819
+msgid ""
+"This tag indicates the type of scene that was shot. It can also be used to "
+"record the mode in which the image was shot. Note that this differs from the "
+"scene type <SceneType> tag."
+msgstr ""
+"Ten znacznik określa rodzaj sceny na zdjęciu. Może być także wykorzystany do "
+"zapisania trybu w którym było robione zdjęcie. Należy zauważyć, że ten "
+"znacznik różni się od znacznika rodzaju sceny <SceneType>."
+
+#: libexif/exif-tag.c:824
+msgid "Gain Control"
+msgstr "Regulacja wzmocnienia"
+
+#: libexif/exif-tag.c:825
+msgid "This tag indicates the degree of overall image gain adjustment."
+msgstr "Ten znacznik określa stopień wzmocnienia całego obrazu."
+
+#: libexif/exif-tag.c:829
+msgid ""
+"This tag indicates the direction of contrast processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Ten znacznik określa kierunek przetwarzania kontrastu wykonanego przez "
+"aparat przy robieniu zdjęcia."
+
+#: libexif/exif-tag.c:833
+msgid ""
+"This tag indicates the direction of saturation processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Ten znacznik określa kierunek przetwarzania nasycenia wykonanego przez "
+"aparat przy robieniu zdjęcia."
+
+#: libexif/exif-tag.c:837
+msgid ""
+"This tag indicates the direction of sharpness processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Ten znacznik określa kierunek przetwarzania ostrości wykonanego przez aparat "
+"przy robieniu zdjęcia."
+
+#: libexif/exif-tag.c:841
+msgid "Device Setting Description"
+msgstr "Opis ustawień urządzenia"
+
+#: libexif/exif-tag.c:842
+msgid ""
+"This tag indicates information on the picture-taking conditions of a "
+"particular camera model. The tag is used only to indicate the picture-taking "
+"conditions in the reader."
+msgstr ""
+"Ten znacznik określa informacje o warunkach robienia zdjęcia dla konkretnego "
+"modelu aparatu. Jest on używany tylko do określenia warunków robienia "
+"zdjęcia przy odczycie."
+
+#: libexif/exif-tag.c:848
+msgid "Subject Distance Range"
+msgstr "Zakres odległości obiektu"
+
+#: libexif/exif-tag.c:849
+msgid "This tag indicates the distance to the subject."
+msgstr "Ten znacznik określa odległość od obiektu."
+
+#: libexif/exif-tag.c:851
+msgid "Image Unique ID"
+msgstr "Unikalny identyfikator obrazu"
+
+#: libexif/exif-tag.c:852
+msgid ""
+"This tag indicates an identifier assigned uniquely to each image. It is "
+"recorded as an ASCII string equivalent to hexadecimal notation and 128-bit "
+"fixed length."
+msgstr ""
+"Ten znacznik określa unikalny identyfikator przypisany każdemu zdjęciu. Jest "
+"on zapisany jako łańcuch ASCII odpowiadający notacji szesnastkowej o stałej "
+"długości 128 bitów."
+
+#: libexif/exif-tag.c:857
+msgid "Gamma"
+msgstr "Gamma"
+
+#: libexif/exif-tag.c:858
+msgid "Indicates the value of coefficient gamma."
+msgstr "Określenie wartości współczynnika gamma."
+
+#: libexif/exif-tag.c:860
+msgid "PRINT Image Matching"
+msgstr "Dopasowywanie obrazu PRINT"
+
+#: libexif/exif-tag.c:861
+msgid "Related to Epson's PRINT Image Matching technology"
+msgstr "Nieznany (związany z technologią Epsona PRINT Image Matching)"
+
+#: libexif/exif-tag.c:863
+msgid "Padding"
+msgstr "Wyrównanie"
+
+#: libexif/exif-tag.c:864
+msgid ""
+"This tag reserves space that can be reclaimed later when additional metadata "
+"are added. New metadata can be written in place by replacing this tag with a "
+"smaller data element and using the reclaimed space to store the new or "
+"expanded metadata tags."
+msgstr ""
+"Ten znacznik rezerwuje miejsce, które może być później użyte przy dodawaniu "
+"dodatkowych metadanych. Nowe metadane mogą być zapisane w tym miejscu "
+"poprzez zastąpienie tego znacznika mniejszym elementem danych i użycie "
+"odzyskanego miejsca w celu zapisania nowych lub powiększonych znaczników "
+"metadanych."
+
+#: libexif/fuji/mnote-fuji-entry.c:62
+msgid "Softest"
+msgstr "Najmniejsza"
+
+#: libexif/fuji/mnote-fuji-entry.c:66
+msgid "Hardest"
+msgstr "Największa"
+
+#: libexif/fuji/mnote-fuji-entry.c:67 libexif/fuji/mnote-fuji-entry.c:96
+msgid "Medium soft"
+msgstr "Średnio mała"
+
+#: libexif/fuji/mnote-fuji-entry.c:68 libexif/fuji/mnote-fuji-entry.c:94
+msgid "Medium hard"
+msgstr "Średnio duża"
+
+#: libexif/fuji/mnote-fuji-entry.c:69 libexif/fuji/mnote-fuji-entry.c:90
+#: libexif/fuji/mnote-fuji-entry.c:98 libexif/fuji/mnote-fuji-entry.c:182
+msgid "Film simulation mode"
+msgstr "Tryb symulacji filmu"
+
+#: libexif/fuji/mnote-fuji-entry.c:79
+msgid "Incandescent"
+msgstr "Żarówka"
+
+#: libexif/fuji/mnote-fuji-entry.c:85
+msgid "Medium high"
+msgstr "Średnio duże"
+
+#: libexif/fuji/mnote-fuji-entry.c:87
+msgid "Medium low"
+msgstr "Średnio małe"
+
+#: libexif/fuji/mnote-fuji-entry.c:88 libexif/fuji/mnote-fuji-entry.c:97
+msgid "Original"
+msgstr "Oryginalne"
+
+#: libexif/fuji/mnote-fuji-entry.c:124 libexif/pentax/mnote-pentax-entry.c:164
+#: libexif/pentax/mnote-pentax-entry.c:299
+msgid "Program AE"
+msgstr "Program AE"
+
+#: libexif/fuji/mnote-fuji-entry.c:125
+msgid "Natural photo"
+msgstr "Zdjęcie naturalne"
+
+#: libexif/fuji/mnote-fuji-entry.c:126
+msgid "Vibration reduction"
+msgstr "Redukcja drgań"
+
+#: libexif/fuji/mnote-fuji-entry.c:127
+msgid "Sunset"
+msgstr "Wschód"
+
+#: libexif/fuji/mnote-fuji-entry.c:128 libexif/pentax/mnote-pentax-entry.c:181
+msgid "Museum"
+msgstr "Muzeum"
+
+#: libexif/fuji/mnote-fuji-entry.c:129
+msgid "Party"
+msgstr "Impreza"
+
+#: libexif/fuji/mnote-fuji-entry.c:130
+msgid "Flower"
+msgstr "Kwiaty"
+
+#: libexif/fuji/mnote-fuji-entry.c:131 libexif/pentax/mnote-pentax-entry.c:176
+msgid "Text"
+msgstr "Tekst"
+
+#: libexif/fuji/mnote-fuji-entry.c:132
+msgid "NP & flash"
+msgstr "Zdjęcie naturalne z fleszem"
+
+#: libexif/fuji/mnote-fuji-entry.c:137
+msgid "Aperture priority AE"
+msgstr "AE z priorytetem przysłony"
+
+#: libexif/fuji/mnote-fuji-entry.c:138
+msgid "Shutter priority AE"
+msgstr "AE z priorytetem migawki"
+
+#: libexif/fuji/mnote-fuji-entry.c:146
+msgid "F-Standard"
+msgstr "F-Standardowy"
+
+#: libexif/fuji/mnote-fuji-entry.c:147
+msgid "F-Chrome"
+msgstr "F-Klor"
+
+#: libexif/fuji/mnote-fuji-entry.c:148
+msgid "F-B&W"
+msgstr "F-Cz-b"
+
+#: libexif/fuji/mnote-fuji-entry.c:151
+msgid "No blur"
+msgstr "Bez rozmycia"
+
+#: libexif/fuji/mnote-fuji-entry.c:152
+msgid "Blur warning"
+msgstr "Ostrzeżenie o rozmyciu"
+
+#: libexif/fuji/mnote-fuji-entry.c:155
+msgid "Focus good"
+msgstr "Dobra ogniskowa"
+
+#: libexif/fuji/mnote-fuji-entry.c:156
+msgid "Out of focus"
+msgstr "Poza ogniskową"
+
+#: libexif/fuji/mnote-fuji-entry.c:159
+msgid "AE good"
+msgstr "Dobra AE"
+
+#: libexif/fuji/mnote-fuji-entry.c:160
+msgid "Over exposed"
+msgstr "Prześwietlone"
+
+#: libexif/fuji/mnote-fuji-entry.c:164
+msgid "Wide"
+msgstr "Szeroki"
+
+#: libexif/fuji/mnote-fuji-entry.c:167
+msgid "F0/Standard"
+msgstr "F0/Standardowy"
+
+#: libexif/fuji/mnote-fuji-entry.c:168
+msgid "F1/Studio portrait"
+msgstr "F1/Portret studyjny"
+
+#: libexif/fuji/mnote-fuji-entry.c:169
+msgid "F1a/Professional portrait"
+msgstr "F1a/Portret profesjonalny"
+
+#: libexif/fuji/mnote-fuji-entry.c:170
+msgid "F1b/Professional portrait"
+msgstr "F1b/Portret profesjonalny"
+
+#: libexif/fuji/mnote-fuji-entry.c:171
+msgid "F1c/Professional portrait"
+msgstr "F1c/Portret profesjonalny"
+
+#: libexif/fuji/mnote-fuji-entry.c:172
+msgid "F2/Fujichrome"
+msgstr "F2/Fujichrome"
+
+#: libexif/fuji/mnote-fuji-entry.c:173
+msgid "F3/Studio portrait Ex"
+msgstr "F3/Portret studyjny Ex"
+
+#: libexif/fuji/mnote-fuji-entry.c:174
+msgid "F4/Velvia"
+msgstr "F4/Velvia"
+
+#: libexif/fuji/mnote-fuji-entry.c:177
+msgid "Auto (100-400%)"
+msgstr "Auto (100-400%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:179
+msgid "Standard (100%)"
+msgstr "Standardowy (100%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:180
+msgid "Wide1 (230%)"
+msgstr "Szeroki 1 (230%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:181
+msgid "Wide2 (400%)"
+msgstr "Szeroki 2 (400%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:263
+#, c-format
+msgid "%2.2f mm"
+msgstr "%2.2f mm"
+
+#: libexif/fuji/mnote-fuji-entry.c:298 libexif/pentax/mnote-pentax-entry.c:399
+#: libexif/pentax/mnote-pentax-entry.c:451
+#, c-format
+msgid "%i bytes unknown data"
+msgstr "%i bajtów nieznanych danych"
+
+#: libexif/fuji/mnote-fuji-tag.c:36
+msgid "Maker Note Version"
+msgstr "Wersja oznaczenia twórcy"
+
+#: libexif/fuji/mnote-fuji-tag.c:37
+msgid "This number is unique and based on the date of manufacture."
+msgstr "Ten numer jest unikalny i oparty na dacie wykonania."
+
+#: libexif/fuji/mnote-fuji-tag.c:41
+msgid "Chromaticity Saturation"
+msgstr "Nasycenie kolorów"
+
+#: libexif/fuji/mnote-fuji-tag.c:44
+msgid "Flash Firing Strength Compensation"
+msgstr "Kompensacja siły flesza"
+
+#: libexif/fuji/mnote-fuji-tag.c:46
+msgid "Focusing Mode"
+msgstr "Tryb ogniskowania"
+
+#: libexif/fuji/mnote-fuji-tag.c:47
+msgid "Focus Point"
+msgstr "Punkt ogniskowania"
+
+#: libexif/fuji/mnote-fuji-tag.c:48
+msgid "Slow Synchro Mode"
+msgstr "Tryb powolnej synchronizacji"
+
+#: libexif/fuji/mnote-fuji-tag.c:49 libexif/pentax/mnote-pentax-tag.c:72
+msgid "Picture Mode"
+msgstr "Tryb zdjęcia"
+
+#: libexif/fuji/mnote-fuji-tag.c:50
+msgid "Continuous Taking"
+msgstr "Ciągłe zdjęcia"
+
+#: libexif/fuji/mnote-fuji-tag.c:51
+msgid "Continuous Sequence Number"
+msgstr "Numer sekwencji ciągłej"
+
+#: libexif/fuji/mnote-fuji-tag.c:52
+msgid "FinePix Color"
+msgstr "Kolor FinePix"
+
+#: libexif/fuji/mnote-fuji-tag.c:53
+msgid "Blur Check"
+msgstr "Kontrola rozmycia"
+
+#: libexif/fuji/mnote-fuji-tag.c:54
+msgid "Auto Focus Check"
+msgstr "Kontrola ogniskowania"
+
+#: libexif/fuji/mnote-fuji-tag.c:55
+msgid "Auto Exposure Check"
+msgstr "Kontrola automatycznej ekspozycji"
+
+#: libexif/fuji/mnote-fuji-tag.c:56
+msgid "Dynamic Range"
+msgstr "Zakres dynamiczny"
+
+#: libexif/fuji/mnote-fuji-tag.c:57
+msgid "Film Simulation Mode"
+msgstr "Tryb symulacji filmu"
+
+#: libexif/fuji/mnote-fuji-tag.c:58
+msgid "Dynamic Range Wide Mode"
+msgstr "Tryb szerokiego zakresu dynamicznego"
+
+#: libexif/fuji/mnote-fuji-tag.c:59
+msgid "Development Dynamic Range Wide Mode"
+msgstr "Rozwojowy tryb szerokiego zakresu dynamicznego"
+
+#: libexif/fuji/mnote-fuji-tag.c:60
+msgid "Minimum Focal Length"
+msgstr "Minimalna ogniskowa"
+
+#: libexif/fuji/mnote-fuji-tag.c:61
+msgid "Maximum Focal Length"
+msgstr "Maksymalna ogniskowa"
+
+#: libexif/fuji/mnote-fuji-tag.c:62
+msgid "Maximum Aperture at Minimum Focal"
+msgstr "Maksymalna przysłona przy minimalnej ogniskowej"
+
+#: libexif/fuji/mnote-fuji-tag.c:63
+msgid "Maximum Aperture at Maximum Focal"
+msgstr "Maksymalna przysłona przy maksymalnej ogniskowej"
+
+#: libexif/fuji/mnote-fuji-tag.c:65
+msgid "Order Number"
+msgstr "Numer kolejny"
+
+#: libexif/fuji/mnote-fuji-tag.c:66 libexif/pentax/mnote-pentax-tag.c:98
+msgid "Frame Number"
+msgstr "Numer ramki"
+
+#: libexif/olympus/mnote-olympus-entry.c:49
+#, c-format
+msgid "Invalid format '%s', expected '%s' or '%s'."
+msgstr "Błędny format '%s', oczekiwano '%s' lub '%s'."
+
+#: libexif/olympus/mnote-olympus-entry.c:89
+msgid "AF non D lens"
+msgstr "Obiektyw AF nie D"
+
+#: libexif/olympus/mnote-olympus-entry.c:91
+msgid "AF-D or AF-S lens"
+msgstr "Obiektyw AF-D lub AF-S"
+
+#: libexif/olympus/mnote-olympus-entry.c:92
+msgid "AF-D G lens"
+msgstr "Obiektyw AF-D G"
+
+#: libexif/olympus/mnote-olympus-entry.c:93
+msgid "AF-D VR lens"
+msgstr "Obiektyw AF-D VR"
+
+#: libexif/olympus/mnote-olympus-entry.c:94
+msgid "AF-D G VR lens"
+msgstr "Obiektyw AF-D G VR"
+
+#: libexif/olympus/mnote-olympus-entry.c:98
+msgid "Flash unit unknown"
+msgstr "Nieznany flesz"
+
+#: libexif/olympus/mnote-olympus-entry.c:99
+msgid "Flash is external"
+msgstr "Flesz zewnętrzny"
+
+#: libexif/olympus/mnote-olympus-entry.c:100
+msgid "Flash is on camera"
+msgstr "Flesz na aparacie"
+
+#: libexif/olympus/mnote-olympus-entry.c:103
+msgid "VGA basic"
+msgstr "Podstawowa VGA"
+
+#: libexif/olympus/mnote-olympus-entry.c:104
+msgid "VGA normal"
+msgstr "Normalna VGA"
+
+#: libexif/olympus/mnote-olympus-entry.c:105
+msgid "VGA fine"
+msgstr "Dobra VGA"
+
+#: libexif/olympus/mnote-olympus-entry.c:106
+msgid "SXGA basic"
+msgstr "Podstawowa SXGA"
+
+#: libexif/olympus/mnote-olympus-entry.c:107
+msgid "SXGA normal"
+msgstr "Normalna SXGA"
+
+#: libexif/olympus/mnote-olympus-entry.c:108
+msgid "SXGA fine"
+msgstr "Dobra SXGA"
+
+#: libexif/olympus/mnote-olympus-entry.c:109
+msgid "2 Mpixel basic"
+msgstr "Podstawowa 2 MPiksele"
+
+#: libexif/olympus/mnote-olympus-entry.c:110
+msgid "2 Mpixel normal"
+msgstr "Normalna 2 MPiksele"
+
+#: libexif/olympus/mnote-olympus-entry.c:111
+msgid "2 Mpixel fine"
+msgstr "Dobra 2 MPiksele"
+
+#: libexif/olympus/mnote-olympus-entry.c:114
+msgid "Color"
+msgstr "Kolorowy"
+
+#: libexif/olympus/mnote-olympus-entry.c:119
+msgid "Bright+"
+msgstr "Jasność+"
+
+#: libexif/olympus/mnote-olympus-entry.c:120
+msgid "Bright-"
+msgstr "Jasność-"
+
+#: libexif/olympus/mnote-olympus-entry.c:121
+msgid "Contrast+"
+msgstr "Kontrast+"
+
+#: libexif/olympus/mnote-olympus-entry.c:122
+msgid "Contrast-"
+msgstr "Kontrast-"
+
+#: libexif/olympus/mnote-olympus-entry.c:125
+msgid "ISO 80"
+msgstr "ISO 80"
+
+#: libexif/olympus/mnote-olympus-entry.c:126
+msgid "ISO 160"
+msgstr "ISO 160"
+
+#: libexif/olympus/mnote-olympus-entry.c:127
+msgid "ISO 320"
+msgstr "ISO 320"
+
+#: libexif/olympus/mnote-olympus-entry.c:128
+#: libexif/olympus/mnote-olympus-entry.c:246
+msgid "ISO 100"
+msgstr "ISO 100"
+
+#: libexif/olympus/mnote-olympus-entry.c:132
+msgid "Preset"
+msgstr "Predefiniowany"
+
+#: libexif/olympus/mnote-olympus-entry.c:134
+msgid "Incandescence"
+msgstr "Żarówka"
+
+#: libexif/olympus/mnote-olympus-entry.c:135
+msgid "Fluorescence"
+msgstr "Świetlówka"
+
+#: libexif/olympus/mnote-olympus-entry.c:137
+msgid "SpeedLight"
+msgstr "SpeedLight"
+
+#: libexif/olympus/mnote-olympus-entry.c:140
+msgid "No fisheye"
+msgstr "Bez rybiego oka"
+
+#: libexif/olympus/mnote-olympus-entry.c:141
+msgid "Fisheye on"
+msgstr "Z rybim okiem"
+
+#: libexif/olympus/mnote-olympus-entry.c:144
+msgid "Normal, SQ"
+msgstr "Normalna, SQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:145
+msgid "Normal, HQ"
+msgstr "Normalna, HQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:146
+msgid "Normal, SHQ"
+msgstr "Normalna, SHQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:147
+msgid "Normal, RAW"
+msgstr "Normalna, RAW"
+
+#: libexif/olympus/mnote-olympus-entry.c:148
+msgid "Normal, SQ1"
+msgstr "Normalna, SQ1"
+
+#: libexif/olympus/mnote-olympus-entry.c:149
+msgid "Normal, SQ2"
+msgstr "Normalna, SQ2"
+
+#: libexif/olympus/mnote-olympus-entry.c:150
+msgid "Normal, super high"
+msgstr "Normalna, bardzo wysoka"
+
+#: libexif/olympus/mnote-olympus-entry.c:151
+msgid "Normal, standard"
+msgstr "Normalna, standardowa"
+
+#: libexif/olympus/mnote-olympus-entry.c:152
+msgid "Fine, SQ"
+msgstr "Dobra, SQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:153
+msgid "Fine, HQ"
+msgstr "Dobra, HQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:154
+msgid "Fine, SHQ"
+msgstr "Dobra, SHQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:155
+msgid "Fine, RAW"
+msgstr "Dobra, RAW"
+
+#: libexif/olympus/mnote-olympus-entry.c:156
+msgid "Fine, SQ1"
+msgstr "Dobra, SQ1"
+
+#: libexif/olympus/mnote-olympus-entry.c:157
+msgid "Fine, SQ2"
+msgstr "Dobra, SQ2"
+
+#: libexif/olympus/mnote-olympus-entry.c:158
+msgid "Fine, super high"
+msgstr "Dobra, bardzo wysoka"
+
+#: libexif/olympus/mnote-olympus-entry.c:159
+msgid "Super fine, SQ"
+msgstr "Bardzo dobra, SQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:160
+msgid "Super fine, HQ"
+msgstr "Bardzo dobra, HQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:161
+msgid "Super fine, SHQ"
+msgstr "Bardzo dobra, SHQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:162
+msgid "Super fine, RAW"
+msgstr "Bardzo dobra, RAW"
+
+#: libexif/olympus/mnote-olympus-entry.c:163
+msgid "Super fine, SQ1"
+msgstr "Bardzo dobra, SQ1"
+
+#: libexif/olympus/mnote-olympus-entry.c:164
+msgid "Super fine, SQ2"
+msgstr "Bardzo dobra, SQ2"
+
+#: libexif/olympus/mnote-olympus-entry.c:165
+msgid "Super fine, super high"
+msgstr "Bardzo dobra, bardzo wysoka"
+
+#: libexif/olympus/mnote-olympus-entry.c:166
+msgid "Super fine, high"
+msgstr "Bardzo dobra, wysoka"
+
+#: libexif/olympus/mnote-olympus-entry.c:169
+#: libexif/olympus/mnote-olympus-entry.c:174
+#: libexif/olympus/mnote-olympus-entry.c:208
+#: libexif/olympus/mnote-olympus-entry.c:217
+#: libexif/olympus/mnote-olympus-entry.c:240
+msgid "No"
+msgstr "Nie"
+
+#: libexif/olympus/mnote-olympus-entry.c:180
+msgid "On (Preset)"
+msgstr "Włączony (predefiniowany)"
+
+#: libexif/olympus/mnote-olympus-entry.c:185
+msgid "Fill"
+msgstr "Pełny"
+
+#: libexif/olympus/mnote-olympus-entry.c:192
+msgid "Internal + external"
+msgstr "Wewnętrzny i zewnętrzny"
+
+#: libexif/olympus/mnote-olympus-entry.c:221
+msgid "Interlaced"
+msgstr "Przeplatany"
+
+#: libexif/olympus/mnote-olympus-entry.c:222
+msgid "Progressive"
+msgstr "Progresywny"
+
+#: libexif/olympus/mnote-olympus-entry.c:228
+#: libexif/pentax/mnote-pentax-entry.c:85
+#: libexif/pentax/mnote-pentax-entry.c:139
+msgid "Best"
+msgstr "Najlepsza"
+
+#: libexif/olympus/mnote-olympus-entry.c:229
+msgid "Adjust exposure"
+msgstr "Poprawka ekspozycji"
+
+#: libexif/olympus/mnote-olympus-entry.c:232
+msgid "Spot focus"
+msgstr "Ogniskowanie punktowe"
+
+#: libexif/olympus/mnote-olympus-entry.c:233
+msgid "Normal focus"
+msgstr "Ogniskowanie zwykłe"
+
+#: libexif/olympus/mnote-olympus-entry.c:236
+msgid "Record while down"
+msgstr "Nagrywanie przy naciśnięciu"
+
+#: libexif/olympus/mnote-olympus-entry.c:237
+msgid "Press start, press stop"
+msgstr "Naciśnięcie start, potem stop"
+
+#: libexif/olympus/mnote-olympus-entry.c:245
+msgid "ISO 50"
+msgstr "ISO 50"
+
+#: libexif/olympus/mnote-olympus-entry.c:247
+msgid "ISO 200"
+msgstr "ISO 200"
+
+#: libexif/olympus/mnote-olympus-entry.c:248
+msgid "ISO 400"
+msgstr "ISO 400"
+
+#: libexif/olympus/mnote-olympus-entry.c:252
+#: libexif/pentax/mnote-pentax-entry.c:168
+msgid "Sport"
+msgstr "Sport"
+
+#: libexif/olympus/mnote-olympus-entry.c:253
+msgid "TV"
+msgstr "TV"
+
+#: libexif/olympus/mnote-olympus-entry.c:255
+msgid "User 1"
+msgstr "Użytkownika 1"
+
+#: libexif/olympus/mnote-olympus-entry.c:256
+msgid "User 2"
+msgstr "Użytkownika 2"
+
+#: libexif/olympus/mnote-olympus-entry.c:257
+msgid "Lamp"
+msgstr "Lampa"
+
+#: libexif/olympus/mnote-olympus-entry.c:260
+msgid "5 frames/sec"
+msgstr "5 klatek/sek"
+
+#: libexif/olympus/mnote-olympus-entry.c:261
+msgid "10 frames/sec"
+msgstr "10 klatek/sek"
+
+#: libexif/olympus/mnote-olympus-entry.c:262
+msgid "15 frames/sec"
+msgstr "15 klatek/sek"
+
+#: libexif/olympus/mnote-olympus-entry.c:263
+msgid "20 frames/sec"
+msgstr "20 klatek/sek"
+
+#: libexif/olympus/mnote-olympus-entry.c:375
+#, c-format
+msgid "Red Correction %f, blue Correction %f"
+msgstr "Korekcja czerwieni %f, korekcja błękitu %f"
+
+#: libexif/olympus/mnote-olympus-entry.c:383
+#, c-format
+msgid "%2.2f meters"
+msgstr "%2.2f metrów"
+
+#: libexif/olympus/mnote-olympus-entry.c:385
+msgid "No manual focus selection"
+msgstr "Brak ręcznego wyboru ogniska"
+
+#: libexif/olympus/mnote-olympus-entry.c:411
+msgid "AF position: center"
+msgstr "Położenie AF: środek"
+
+#: libexif/olympus/mnote-olympus-entry.c:412
+msgid "AF position: top"
+msgstr "Położenie AF: góra"
+
+#: libexif/olympus/mnote-olympus-entry.c:413
+msgid "AF position: bottom"
+msgstr "Położenie AF: dół"
+
+#: libexif/olympus/mnote-olympus-entry.c:414
+msgid "AF position: left"
+msgstr "Położenie AF: lewo"
+
+#: libexif/olympus/mnote-olympus-entry.c:415
+msgid "AF position: right"
+msgstr "Położenie AF: prawo"
+
+#: libexif/olympus/mnote-olympus-entry.c:416
+msgid "AF position: upper-left"
+msgstr "Położenie AF: lewa góra"
+
+#: libexif/olympus/mnote-olympus-entry.c:417
+msgid "AF position: upper-right"
+msgstr "Położenie AF: prawa góra"
+
+#: libexif/olympus/mnote-olympus-entry.c:418
+msgid "AF position: lower-left"
+msgstr "Położenie AF: lewy dół"
+
+#: libexif/olympus/mnote-olympus-entry.c:419
+msgid "AF position: lower-right"
+msgstr "Położenie AF: prawy dół"
+
+#: libexif/olympus/mnote-olympus-entry.c:420
+msgid "AF position: far left"
+msgstr "Położenie AF: dalekie lewo"
+
+#: libexif/olympus/mnote-olympus-entry.c:421
+msgid "AF position: far right"
+msgstr "Położenie AF: dalekie prawo"
+
+#: libexif/olympus/mnote-olympus-entry.c:422
+msgid "Unknown AF position"
+msgstr "Nieznane położenie AF"
+
+#: libexif/olympus/mnote-olympus-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:503
+#, c-format
+msgid "Internal error (unknown value %hi)"
+msgstr "Błąd wewnętrzny (nieznana wartość %hi)"
+
+#: libexif/olympus/mnote-olympus-entry.c:441
+#: libexif/olympus/mnote-olympus-entry.c:511
+#, c-format
+msgid "Unknown value %hi"
+msgstr "Nieznana wartość %hi"
+
+#: libexif/olympus/mnote-olympus-entry.c:536
+#: libexif/olympus/mnote-olympus-entry.c:556
+#, c-format
+msgid "Unknown %hu"
+msgstr "Nieznany %hu"
+
+#: libexif/olympus/mnote-olympus-entry.c:553
+msgid "2 sec."
+msgstr "2 sek."
+
+#: libexif/olympus/mnote-olympus-entry.c:592
+msgid "Fast"
+msgstr "Szybki"
+
+#: libexif/olympus/mnote-olympus-entry.c:696
+msgid "Automatic"
+msgstr "Automatyczny"
+
+#: libexif/olympus/mnote-olympus-entry.c:726
+#, c-format
+msgid "Manual: %liK"
+msgstr "Ręczny: %liK"
+
+#: libexif/olympus/mnote-olympus-entry.c:729
+msgid "Manual: unknown"
+msgstr "Ręczny: nieznany"
+
+#: libexif/olympus/mnote-olympus-entry.c:735
+msgid "One-touch"
+msgstr "One-touch"
+
+#: libexif/olympus/mnote-olympus-entry.c:791
+#: libexif/olympus/mnote-olympus-entry.c:801
+msgid "Infinite"
+msgstr "Nieskończoność"
+
+#: libexif/olympus/mnote-olympus-entry.c:809
+#, c-format
+msgid "%i bytes unknown data: "
+msgstr "%i bajtów nieznanych danych: "
+
+#: libexif/olympus/mnote-olympus-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:53
+msgid "ISO Setting"
+msgstr "Ustawienie ISO"
+
+#: libexif/olympus/mnote-olympus-tag.c:39
+msgid "Color Mode (?)"
+msgstr "Tryb koloru (?)"
+
+#: libexif/olympus/mnote-olympus-tag.c:42
+msgid "Image Sharpening"
+msgstr "Wyostrzanie obrazu"
+
+#: libexif/olympus/mnote-olympus-tag.c:44
+msgid "Flash Setting"
+msgstr "Ustawienie flesza"
+
+#: libexif/olympus/mnote-olympus-tag.c:46
+msgid "White Balance Fine Adjustment"
+msgstr "Dokładne ustawienie balansu bieli"
+
+#: libexif/olympus/mnote-olympus-tag.c:47
+msgid "White Balance RB"
+msgstr "Balans bieli RB"
+
+#: libexif/olympus/mnote-olympus-tag.c:49
+msgid "ISO Selection"
+msgstr "Ustawienie ISO"
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Preview Image IFD"
+msgstr "Podgląd IFD zdjęcia"
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Offset of the preview image directory (IFD) inside the file."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:51
+msgid "Exposurediff ?"
+msgstr "Różnica ekspozycji ?"
+
+#: libexif/olympus/mnote-olympus-tag.c:54
+msgid "Image Boundary"
+msgstr "Obramowanie zdjęcia"
+
+#: libexif/olympus/mnote-olympus-tag.c:56
+msgid "Flash Exposure Bracket Value"
+msgstr "Wartość bracketingu ekspozycji flesza"
+
+#: libexif/olympus/mnote-olympus-tag.c:57
+msgid "Exposure Bracket Value"
+msgstr "Wartość bracketingu ekspozycji"
+
+#: libexif/olympus/mnote-olympus-tag.c:58
+#: libexif/olympus/mnote-olympus-tag.c:96
+msgid "Image Adjustment"
+msgstr "Regulacja obrazu"
+
+#: libexif/olympus/mnote-olympus-tag.c:59
+msgid "Tone Compensation"
+msgstr "Kompensacja tonów"
+
+#: libexif/olympus/mnote-olympus-tag.c:60
+msgid "Adapter"
+msgstr "Przetwornik"
+
+#: libexif/olympus/mnote-olympus-tag.c:62
+msgid "Lens"
+msgstr "Obiektyw"
+
+#: libexif/olympus/mnote-olympus-tag.c:63
+#: libexif/olympus/mnote-olympus-tag.c:135
+#: libexif/olympus/mnote-olympus-tag.c:185
+msgid "Manual Focus Distance"
+msgstr "Ręczna odległość ogniska"
+
+#: libexif/olympus/mnote-olympus-tag.c:65
+msgid "Flash Used"
+msgstr "Użyto flesza"
+
+#: libexif/olympus/mnote-olympus-tag.c:66
+msgid "AF Focus Position"
+msgstr "Położenie ogniska AF"
+
+#: libexif/olympus/mnote-olympus-tag.c:67
+msgid "Bracketing"
+msgstr "Bracketing"
+
+#: libexif/olympus/mnote-olympus-tag.c:69
+msgid "Lens F Stops"
+msgstr "Przesłony F obiektywu"
+
+#: libexif/olympus/mnote-olympus-tag.c:70
+msgid "Contrast Curve"
+msgstr "Krzywa kontrastu"
+
+#: libexif/olympus/mnote-olympus-tag.c:71
+#: libexif/olympus/mnote-olympus-tag.c:95
+#: libexif/pentax/mnote-pentax-tag.c:134
+msgid "Color Mode"
+msgstr "Tryb koloru"
+
+#: libexif/olympus/mnote-olympus-tag.c:72
+msgid "Light Type"
+msgstr "Rodzaj oświetlenia"
+
+#: libexif/olympus/mnote-olympus-tag.c:74
+msgid "Hue Adjustment"
+msgstr "Regulacja barwy"
+
+#: libexif/olympus/mnote-olympus-tag.c:76
+#: libexif/olympus/mnote-olympus-tag.c:163
+#: libexif/pentax/mnote-pentax-tag.c:108
+msgid "Noise Reduction"
+msgstr "Redukcja szumów"
+
+#: libexif/olympus/mnote-olympus-tag.c:79
+msgid "Sensor Pixel Size"
+msgstr "Rozmiar piksela sensora"
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Image Data Size"
+msgstr "Rozmiar danych obrazu"
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Size of compressed image data in bytes."
+msgstr "Rozmiar danych skompresowanego obrazu w bajtach."
+
+#: libexif/olympus/mnote-olympus-tag.c:84
+msgid "Total Number of Pictures Taken"
+msgstr "Całkowita liczba zrobionych zdjęć"
+
+#: libexif/olympus/mnote-olympus-tag.c:86
+msgid "Optimize Image"
+msgstr "Optymalizacja obrazu"
+
+#: libexif/olympus/mnote-olympus-tag.c:88
+msgid "Vari Program"
+msgstr "Program Vari"
+
+#: libexif/olympus/mnote-olympus-tag.c:89
+msgid "Capture Editor Data"
+msgstr "Dane edytora zdjęć"
+
+#: libexif/olympus/mnote-olympus-tag.c:90
+msgid "Capture Editor Version"
+msgstr "Wersja edytora zdjęć"
+
+#: libexif/olympus/mnote-olympus-tag.c:97
+#: libexif/olympus/mnote-olympus-tag.c:183
+msgid "CCD Sensitivity"
+msgstr "Czułość CCD"
+
+#: libexif/olympus/mnote-olympus-tag.c:99
+msgid "Focus"
+msgstr "Ogniskowa"
+
+#: libexif/olympus/mnote-olympus-tag.c:102
+msgid "Converter"
+msgstr "Konwerter"
+
+#: libexif/olympus/mnote-olympus-tag.c:105
+msgid "Thumbnail Image"
+msgstr "Miniaturka"
+
+#: libexif/olympus/mnote-olympus-tag.c:106
+msgid "Speed/Sequence/Panorama Direction"
+msgstr "Kierunek szybkość/sekwencja/panorama"
+
+#: libexif/olympus/mnote-olympus-tag.c:109
+msgid "Black & White Mode"
+msgstr "Tryb czarno-biały"
+
+#: libexif/olympus/mnote-olympus-tag.c:111
+msgid "Focal Plane Diagonal"
+msgstr "Przekątna płaszczyzny ogniskowej"
+
+#: libexif/olympus/mnote-olympus-tag.c:112
+msgid "Lens Distortion Parameters"
+msgstr "Parametry zniekształcenia obiektywu"
+
+#: libexif/olympus/mnote-olympus-tag.c:114
+msgid "Info"
+msgstr "Informacje"
+
+#: libexif/olympus/mnote-olympus-tag.c:115
+msgid "Camera ID"
+msgstr "ID aparatu"
+
+#: libexif/olympus/mnote-olympus-tag.c:116
+msgid "Precapture Frames"
+msgstr "Początkowe klatki"
+
+#: libexif/olympus/mnote-olympus-tag.c:117
+msgid "White Board"
+msgstr "Balans bieli"
+
+#: libexif/olympus/mnote-olympus-tag.c:118
+msgid "One Touch White Balance"
+msgstr "Jednorazowy balans bieli"
+
+#: libexif/olympus/mnote-olympus-tag.c:119
+msgid "White Balance Bracket"
+msgstr "Bracketing balansu bieli"
+
+#: libexif/olympus/mnote-olympus-tag.c:120
+#: libexif/pentax/mnote-pentax-tag.c:123
+msgid "White Balance Bias"
+msgstr "Nakierowanie balansu bieli"
+
+#: libexif/olympus/mnote-olympus-tag.c:121
+msgid "Data Dump"
+msgstr "Zrzut danych"
+
+#: libexif/olympus/mnote-olympus-tag.c:124
+msgid "ISO Value"
+msgstr "Wartość ISO"
+
+#: libexif/olympus/mnote-olympus-tag.c:125
+msgid "Aperture Value"
+msgstr "Wartość przysłony"
+
+#: libexif/olympus/mnote-olympus-tag.c:126
+msgid "Brightness Value"
+msgstr "Wartość jasności"
+
+#: libexif/olympus/mnote-olympus-tag.c:128
+msgid "Flash Device"
+msgstr "Flesz"
+
+#: libexif/olympus/mnote-olympus-tag.c:130
+msgid "Sensor Temperature"
+msgstr "Temperatura matrycy"
+
+#: libexif/olympus/mnote-olympus-tag.c:131
+msgid "Lens Temperature"
+msgstr "Temperatura obiektywu"
+
+#: libexif/olympus/mnote-olympus-tag.c:132
+msgid "Light Condition"
+msgstr "Warunki oświetlenia"
+
+#: libexif/olympus/mnote-olympus-tag.c:136
+msgid "Zoom Step Count"
+msgstr "Liczba stopni powiększenia"
+
+#: libexif/olympus/mnote-olympus-tag.c:137
+msgid "Focus Step Count"
+msgstr "Liczba stopni ogniskowej"
+
+#: libexif/olympus/mnote-olympus-tag.c:138
+msgid "Sharpness Setting"
+msgstr "Ustawienie ostrości"
+
+#: libexif/olympus/mnote-olympus-tag.c:139
+msgid "Flash Charge Level"
+msgstr "Poziom ładowania flesza"
+
+#: libexif/olympus/mnote-olympus-tag.c:140
+msgid "Color Matrix"
+msgstr "Macierz kolorów"
+
+#: libexif/olympus/mnote-olympus-tag.c:141
+msgid "Black Level"
+msgstr "Poziom czerni"
+
+#: libexif/olympus/mnote-olympus-tag.c:142
+msgid "White Balance Setting"
+msgstr "Ustawienie balansu bieli"
+
+#: libexif/olympus/mnote-olympus-tag.c:143
+#: libexif/pentax/mnote-pentax-tag.c:87
+msgid "Red Balance"
+msgstr "Balans czerwieni"
+
+#: libexif/olympus/mnote-olympus-tag.c:144
+#: libexif/pentax/mnote-pentax-tag.c:86
+msgid "Blue Balance"
+msgstr "Balans błękitu"
+
+#: libexif/olympus/mnote-olympus-tag.c:145
+msgid "Color Matrix Number"
+msgstr "Numer macierzy kolorów"
+
+#: libexif/olympus/mnote-olympus-tag.c:147
+msgid "Flash Exposure Comp"
+msgstr "Kompensacja ekspozycji flesza"
+
+#: libexif/olympus/mnote-olympus-tag.c:148
+msgid "Internal Flash Table"
+msgstr "Tablica wewnętrznego flesza"
+
+#: libexif/olympus/mnote-olympus-tag.c:149
+msgid "External Flash G Value"
+msgstr "Wartość G zewnętrznego flesza"
+
+#: libexif/olympus/mnote-olympus-tag.c:150
+msgid "External Flash Bounce"
+msgstr "Odbicie zewnętrznego flesza"
+
+#: libexif/olympus/mnote-olympus-tag.c:151
+msgid "External Flash Zoom"
+msgstr "Powiększenie zewnętrznego flesza"
+
+#: libexif/olympus/mnote-olympus-tag.c:152
+msgid "External Flash Mode"
+msgstr "Tryb zewnętrznego flesza"
+
+#: libexif/olympus/mnote-olympus-tag.c:153
+msgid "Contrast Setting"
+msgstr "Ustawienie kontrastu"
+
+#: libexif/olympus/mnote-olympus-tag.c:154
+msgid "Sharpness Factor"
+msgstr "Wskaźnik ostrości"
+
+#: libexif/olympus/mnote-olympus-tag.c:155
+msgid "Color Control"
+msgstr "Kontrola kolorów"
+
+#: libexif/olympus/mnote-olympus-tag.c:156
+msgid "Olympus Image Width"
+msgstr "Szerokość obrazu (Olympus)"
+
+#: libexif/olympus/mnote-olympus-tag.c:157
+msgid "Olympus Image Height"
+msgstr "Wysokość obrazu (Olympus)"
+
+#: libexif/olympus/mnote-olympus-tag.c:158
+msgid "Scene Detect"
+msgstr "Wykrywanie sceny"
+
+#: libexif/olympus/mnote-olympus-tag.c:159
+msgid "Compression Ratio"
+msgstr "Stopień kompresji"
+
+#: libexif/olympus/mnote-olympus-tag.c:160
+msgid "Preview Image Valid"
+msgstr "Poprawność podglądu zdjęcia"
+
+#: libexif/olympus/mnote-olympus-tag.c:161
+msgid "AF Result"
+msgstr "Wynik AF"
+
+#: libexif/olympus/mnote-olympus-tag.c:162
+msgid "CCD Scan Mode"
+msgstr "Tryb skanowania CCD"
+
+#: libexif/olympus/mnote-olympus-tag.c:164
+msgid "Infinity Lens Step"
+msgstr "Krok obiektywu w nieskończoności"
+
+#: libexif/olympus/mnote-olympus-tag.c:165
+msgid "Near Lens Step"
+msgstr "Krok obiektywu w bliży"
+
+#: libexif/olympus/mnote-olympus-tag.c:166
+msgid "Light Value Center"
+msgstr "Środek wartości światła"
+
+#: libexif/olympus/mnote-olympus-tag.c:167
+msgid "Light Value Periphery"
+msgstr "Granica wartości światła"
+
+#: libexif/olympus/mnote-olympus-tag.c:170
+msgid "Sequential Shot"
+msgstr "Zdjęcia sekwencyjne"
+
+#: libexif/olympus/mnote-olympus-tag.c:171
+msgid "Wide Range"
+msgstr "Zakres szeroki"
+
+#: libexif/olympus/mnote-olympus-tag.c:172
+msgid "Color Adjustment Mode"
+msgstr "Tryb regulacji koloru"
+
+#: libexif/olympus/mnote-olympus-tag.c:174
+msgid "Quick Shot"
+msgstr "Szybkie zdjęcie"
+
+#: libexif/olympus/mnote-olympus-tag.c:176
+msgid "Voice Memo"
+msgstr "Notatka głosowa"
+
+#: libexif/olympus/mnote-olympus-tag.c:177
+msgid "Record Shutter Release"
+msgstr "Migawka dla nagrywania"
+
+#: libexif/olympus/mnote-olympus-tag.c:178
+msgid "Flicker Reduce"
+msgstr "Redukcja migotania"
+
+#: libexif/olympus/mnote-olympus-tag.c:179
+msgid "Optical Zoom"
+msgstr "Powiększenie optyczne"
+
+#: libexif/olympus/mnote-olympus-tag.c:181
+msgid "Light Source Special"
+msgstr "Specjalne źródło światła"
+
+#: libexif/olympus/mnote-olympus-tag.c:182
+msgid "Resaved"
+msgstr "Ponownie zapisane"
+
+#: libexif/olympus/mnote-olympus-tag.c:184
+msgid "Scene Select"
+msgstr "Wybór sceny"
+
+#: libexif/olympus/mnote-olympus-tag.c:186
+msgid "Sequence Shot Interval"
+msgstr "Odstęp zdjęć sekwencyjnych"
+
+#: libexif/olympus/mnote-olympus-tag.c:189
+msgid "Epson Image Width"
+msgstr "Szerokość obrazu (Epson)"
+
+#: libexif/olympus/mnote-olympus-tag.c:190
+msgid "Epson Image Height"
+msgstr "Wysokość obrazu (Epson)"
+
+#: libexif/olympus/mnote-olympus-tag.c:191
+msgid "Epson Software Version"
+msgstr "Wersja oprogramowania Epsona"
+
+#: libexif/pentax/mnote-pentax-entry.c:80
+#: libexif/pentax/mnote-pentax-entry.c:134
+msgid "Multi-exposure"
+msgstr "Ekspozycja wielokrotna"
+
+#: libexif/pentax/mnote-pentax-entry.c:83
+#: libexif/pentax/mnote-pentax-entry.c:137
+msgid "Good"
+msgstr "Dobra"
+
+#: libexif/pentax/mnote-pentax-entry.c:84
+#: libexif/pentax/mnote-pentax-entry.c:138
+msgid "Better"
+msgstr "Lepsza"
+
+#: libexif/pentax/mnote-pentax-entry.c:92
+msgid "Flash on"
+msgstr "Flesz włączony"
+
+#: libexif/pentax/mnote-pentax-entry.c:140
+msgid "TIFF"
+msgstr "TIFF"
+
+#: libexif/pentax/mnote-pentax-entry.c:150
+msgid "2560x1920 or 2304x1728"
+msgstr "2560x1920 lub 2304x1728"
+
+#: libexif/pentax/mnote-pentax-entry.c:156
+msgid "2304x1728 or 2592x1944"
+msgstr "2304x1728 lub 2592x1944"
+
+#: libexif/pentax/mnote-pentax-entry.c:158
+msgid "2816x2212 or 2816x2112"
+msgstr "2816x2212 lub 2816x2112"
+
+#: libexif/pentax/mnote-pentax-entry.c:171
+msgid "Surf & snow"
+msgstr "Surfing i śnieg"
+
+#: libexif/pentax/mnote-pentax-entry.c:172
+msgid "Sunset or candlelight"
+msgstr "Wschód słońca lub światło świecy"
+
+#: libexif/pentax/mnote-pentax-entry.c:173
+msgid "Autumn"
+msgstr "Jesień"
+
+#: libexif/pentax/mnote-pentax-entry.c:178
+msgid "Self portrait"
+msgstr "Autoportret"
+
+#: libexif/pentax/mnote-pentax-entry.c:179
+msgid "Illustrations"
+msgstr "Ilustracje"
+
+#: libexif/pentax/mnote-pentax-entry.c:180
+msgid "Digital filter"
+msgstr "Filtr cyfrowy"
+
+#: libexif/pentax/mnote-pentax-entry.c:182
+msgid "Food"
+msgstr "Jedzenie"
+
+#: libexif/pentax/mnote-pentax-entry.c:183
+msgid "Green mode"
+msgstr "Tryb zieleni"
+
+#: libexif/pentax/mnote-pentax-entry.c:184
+msgid "Light pet"
+msgstr "Jasne zwierzę"
+
+#: libexif/pentax/mnote-pentax-entry.c:185
+msgid "Dark pet"
+msgstr "Ciemne zwierzę"
+
+#: libexif/pentax/mnote-pentax-entry.c:186
+msgid "Medium pet"
+msgstr "Pośrednie zwierzę"
+
+#: libexif/pentax/mnote-pentax-entry.c:188
+#: libexif/pentax/mnote-pentax-entry.c:296
+msgid "Candlelight"
+msgstr "Światło świecy"
+
+#: libexif/pentax/mnote-pentax-entry.c:189
+msgid "Natural skin tone"
+msgstr "Naturalna tonacja skóry"
+
+#: libexif/pentax/mnote-pentax-entry.c:190
+msgid "Synchro sound record"
+msgstr "Synchroniczny zapis dźwięku"
+
+#: libexif/pentax/mnote-pentax-entry.c:191
+msgid "Frame composite"
+msgstr "Złożenie klatek"
+
+#: libexif/pentax/mnote-pentax-entry.c:194
+msgid "Auto, did not fire"
+msgstr "Automatyczny, nie uruchomił się"
+
+#: libexif/pentax/mnote-pentax-entry.c:196
+msgid "Auto, did not fire, red-eye reduction"
+msgstr "Automatyczny, nie uruchomił się, redukcja czerwonych oczu"
+
+#: libexif/pentax/mnote-pentax-entry.c:197
+msgid "Auto, fired"
+msgstr "Automatyczny, uruchomił się"
+
+#: libexif/pentax/mnote-pentax-entry.c:199
+msgid "Auto, fired, red-eye reduction"
+msgstr "Automatyczny, uruchomił się, redukcja czerwonych oczu"
+
+#: libexif/pentax/mnote-pentax-entry.c:201
+msgid "On, wireless"
+msgstr "Włączony, bezprzewodowy"
+
+#: libexif/pentax/mnote-pentax-entry.c:202
+msgid "On, soft"
+msgstr "Włączony, miękki"
+
+#: libexif/pentax/mnote-pentax-entry.c:203
+msgid "On, slow-sync"
+msgstr "Włączony, powolna synchronizacja"
+
+#: libexif/pentax/mnote-pentax-entry.c:204
+msgid "On, slow-sync, red-eye reduction"
+msgstr "Włączony, powolna synchronizacja, redukcja czerwonych oczu"
+
+#: libexif/pentax/mnote-pentax-entry.c:205
+msgid "On, trailing-curtain sync"
+msgstr "Włączony, synchronizacja z końcem migawki"
+
+#: libexif/pentax/mnote-pentax-entry.c:213
+msgid "AF-S"
+msgstr "AF-S"
+
+#: libexif/pentax/mnote-pentax-entry.c:214
+msgid "AF-C"
+msgstr "AF-C"
+
+#: libexif/pentax/mnote-pentax-entry.c:217
+msgid "Upper-left"
+msgstr "Lewy górny róg"
+
+#: libexif/pentax/mnote-pentax-entry.c:218
+msgid "Top"
+msgstr "Góra"
+
+#: libexif/pentax/mnote-pentax-entry.c:219
+msgid "Upper-right"
+msgstr "Prawy górny róg"
+
+#: libexif/pentax/mnote-pentax-entry.c:221
+msgid "Mid-left"
+msgstr "Lewy środek"
+
+#: libexif/pentax/mnote-pentax-entry.c:223
+msgid "Mid-right"
+msgstr "Prawy środek"
+
+#: libexif/pentax/mnote-pentax-entry.c:225
+msgid "Lower-left"
+msgstr "Lewy dolny róg"
+
+#: libexif/pentax/mnote-pentax-entry.c:226
+msgid "Bottom"
+msgstr "Dół"
+
+#: libexif/pentax/mnote-pentax-entry.c:227
+msgid "Lower-right"
+msgstr "Prawy dolny róg"
+
+#: libexif/pentax/mnote-pentax-entry.c:228
+msgid "Fixed center"
+msgstr "Sztywny środek"
+
+#: libexif/pentax/mnote-pentax-entry.c:232
+msgid "Multiple"
+msgstr "Wielopunktowy"
+
+#: libexif/pentax/mnote-pentax-entry.c:234
+msgid "Top-center"
+msgstr "Górny środek"
+
+#: libexif/pentax/mnote-pentax-entry.c:240
+msgid "Bottom-center"
+msgstr "Dolny środek"
+
+#: libexif/pentax/mnote-pentax-entry.c:257
+msgid "User selected"
+msgstr "Wybrane przez użytkownika"
+
+#: libexif/pentax/mnote-pentax-entry.c:282
+msgid "3008x2008 or 3040x2024"
+msgstr "3008x2008 lub 3040x2024"
+
+#: libexif/pentax/mnote-pentax-entry.c:293
+msgid "Digital filter?"
+msgstr "Filtr cyfrowy?"
+
+#: libexif/pentax/mnote-pentax-entry.c:374
+#: libexif/pentax/mnote-pentax-entry.c:383
+#, c-format
+msgid "Internal error (unknown value %i %i)"
+msgstr "Błąd wewnętrzny (nieznana wartość %i %i)"
+
+#: libexif/pentax/mnote-pentax-tag.c:35 libexif/pentax/mnote-pentax-tag.c:63
+msgid "Capture Mode"
+msgstr "Tryb zdjęcia"
+
+#: libexif/pentax/mnote-pentax-tag.c:36 libexif/pentax/mnote-pentax-tag.c:70
+#: libexif/pentax/mnote-pentax-tag.c:129
+msgid "Quality Level"
+msgstr "Jakość"
+
+#: libexif/pentax/mnote-pentax-tag.c:54
+msgid "ISO Speed"
+msgstr "Szybkość ISO"
+
+#: libexif/pentax/mnote-pentax-tag.c:56
+msgid "Colors"
+msgstr "Kolory"
+
+#: libexif/pentax/mnote-pentax-tag.c:59
+msgid "PrintIM Settings"
+msgstr "Ustawienia PrintIM"
+
+#: libexif/pentax/mnote-pentax-tag.c:60 libexif/pentax/mnote-pentax-tag.c:131
+msgid "Time Zone"
+msgstr "Strefa czasowa"
+
+#: libexif/pentax/mnote-pentax-tag.c:61
+msgid "Daylight Savings"
+msgstr "Zmiana czasu"
+
+#: libexif/pentax/mnote-pentax-tag.c:64
+msgid "Preview Size"
+msgstr "Rozmiar podglądu"
+
+#: libexif/pentax/mnote-pentax-tag.c:65
+msgid "Preview Length"
+msgstr "Długość podglądu"
+
+#: libexif/pentax/mnote-pentax-tag.c:66 libexif/pentax/mnote-pentax-tag.c:122
+msgid "Preview Start"
+msgstr "Start podglądu"
+
+#: libexif/pentax/mnote-pentax-tag.c:67
+msgid "Model Identification"
+msgstr "Identyfikacja modelu"
+
+#: libexif/pentax/mnote-pentax-tag.c:68
+msgid "Date"
+msgstr "Data"
+
+#: libexif/pentax/mnote-pentax-tag.c:69
+msgid "Time"
+msgstr "Czas"
+
+#: libexif/pentax/mnote-pentax-tag.c:75
+msgid "AF Point Selected"
+msgstr "Wybrany punkt AF"
+
+#: libexif/pentax/mnote-pentax-tag.c:76
+msgid "Auto AF Point"
+msgstr "Automatyczny wybór punktu AF"
+
+#: libexif/pentax/mnote-pentax-tag.c:77
+msgid "Focus Position"
+msgstr "Położenie ogniska"
+
+#: libexif/pentax/mnote-pentax-tag.c:80
+msgid "ISO Number"
+msgstr "Liczba ISO"
+
+#: libexif/pentax/mnote-pentax-tag.c:83
+msgid "Auto Bracketing"
+msgstr "Auto bracketing"
+
+#: libexif/pentax/mnote-pentax-tag.c:85
+msgid "White Balance Mode"
+msgstr "Tryb balansu bieli"
+
+#: libexif/pentax/mnote-pentax-tag.c:93
+msgid "World Time Location"
+msgstr "Strefa czasowa"
+
+#: libexif/pentax/mnote-pentax-tag.c:94
+msgid "Hometown City"
+msgstr "Miasto zamieszkania"
+
+#: libexif/pentax/mnote-pentax-tag.c:95
+msgid "Destination City"
+msgstr "Miasto docelowe"
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Hometown DST"
+msgstr "Zmiana czasu w miejscu zamieszkania"
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Home Daylight Savings Time"
+msgstr "Rodzaj czasu w miejscu zamieszkania"
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination DST"
+msgstr "Zmiana czasu w miejscu docelowym"
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination Daylight Savings Time"
+msgstr "Rodzaj czasu w miejscu docelowym"
+
+#: libexif/pentax/mnote-pentax-tag.c:99
+msgid "Image Processing"
+msgstr "Przetwarzanie obrazu"
+
+#: libexif/pentax/mnote-pentax-tag.c:100
+msgid "Picture Mode (2)"
+msgstr "Tryb zdjęć (2)"
+
+#: libexif/pentax/mnote-pentax-tag.c:103
+msgid "Image Area Offset"
+msgstr "Przesunięcie obszaru zdjęcia"
+
+#: libexif/pentax/mnote-pentax-tag.c:104
+msgid "Raw Image Size"
+msgstr "Rozmiar surowego zdjęcia"
+
+#: libexif/pentax/mnote-pentax-tag.c:105
+msgid "Autofocus Points Used"
+msgstr "Liczba punktów AF"
+
+#: libexif/pentax/mnote-pentax-tag.c:107
+msgid "Camera Temperature"
+msgstr "Temperatura aparatu"
+
+#: libexif/pentax/mnote-pentax-tag.c:110
+msgid "Image Tone"
+msgstr "Tonacja zdjęcia"
+
+#: libexif/pentax/mnote-pentax-tag.c:111
+msgid "Shake Reduction Info"
+msgstr "Informacja o redukcji wstrząsów"
+
+#: libexif/pentax/mnote-pentax-tag.c:112
+msgid "Black Point"
+msgstr "Czarny punkt"
+
+#: libexif/pentax/mnote-pentax-tag.c:114
+msgid "AE Info"
+msgstr "Informacje o AE"
+
+#: libexif/pentax/mnote-pentax-tag.c:115
+msgid "Lens Info"
+msgstr "Informacje o obiektywie"
+
+#: libexif/pentax/mnote-pentax-tag.c:116
+msgid "Flash Info"
+msgstr "Informacje o fleszu"
+
+#: libexif/pentax/mnote-pentax-tag.c:117
+msgid "Camera Info"
+msgstr "Informacje o aparacie"
+
+#: libexif/pentax/mnote-pentax-tag.c:118
+msgid "Battery Info"
+msgstr "Informacje o baterii"
+
+#: libexif/pentax/mnote-pentax-tag.c:119
+msgid "Hometown City Code"
+msgstr "Kod miejsca zamieszkania"
+
+#: libexif/pentax/mnote-pentax-tag.c:120
+msgid "Destination City Code"
+msgstr "Kod miejsca docelowego"
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Object Distance"
+msgstr "Odległość obiektu"
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Distance of photographed object in millimeters."
+msgstr "Odległość fotografowanego obiektu w milimetrach."
+
+#: libexif/pentax/mnote-pentax-tag.c:126
+msgid "Flash Distance"
+msgstr "Odległość flesza"
+
+#: libexif/pentax/mnote-pentax-tag.c:132
+msgid "Bestshot Mode"
+msgstr "Tryb Bestshot"
+
+#: libexif/pentax/mnote-pentax-tag.c:133
+msgid "CCS ISO Sensitivity"
+msgstr "Czułość ISO CCD"
+
+#: libexif/pentax/mnote-pentax-tag.c:135
+msgid "Enhancement"
+msgstr "Rozszerzona"
+
+#: libexif/pentax/mnote-pentax-tag.c:136
+msgid "Finer"
+msgstr "Lepsza"
+
+#: test/nls/test-nls.c:20 test/nls/test-nls.c:23 test/nls/test-nls.c:24
+msgid "[DO_NOT_TRANSLATE_THIS_MARKER]"
+msgstr "[DO_NOT_TRANSLATE_THIS_MARKER]"
+
+#~ msgid "%.02lf EV"
+#~ msgstr "%.02lf EV"
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/pt.gmo b/framework/modules/c_LibExifModule/libexif-0.6.20/po/pt.gmo
new file mode 100644
index 0000000000000000000000000000000000000000..ed8713f3be3eecfdddbbe79f779e8136cea9bf3a
Binary files /dev/null and b/framework/modules/c_LibExifModule/libexif-0.6.20/po/pt.gmo differ
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/pt.po b/framework/modules/c_LibExifModule/libexif-0.6.20/po/pt.po
new file mode 100644
index 0000000000000000000000000000000000000000..19eda80dfac4b291943f38214f77bcc61883a703
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/pt.po
@@ -0,0 +1,5430 @@
+# Portuguese translation for libexif
+# Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007
+# This file is distributed under the same license as the libexif package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: libexif\n"
+"Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-12-15 22:14-0800\n"
+"PO-Revision-Date: 2009-11-25 15:19+0000\n"
+"Last-Translator: Ubuntu Archive Auto-Sync <archive@ubuntu.com>\n"
+"Language-Team: Portuguese <pt@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-12-14 00:36+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: libexif/canon/mnote-canon-entry.c:40 libexif/fuji/mnote-fuji-entry.c:35
+#: libexif/olympus/mnote-olympus-entry.c:37
+#: libexif/pentax/mnote-pentax-entry.c:39
+#, c-format
+msgid "Invalid format '%s', expected '%s'."
+msgstr "formato inválido '%s', esperado '%s'."
+
+#: libexif/canon/mnote-canon-entry.c:52 libexif/fuji/mnote-fuji-entry.c:47
+#: libexif/olympus/mnote-olympus-entry.c:62
+#: libexif/pentax/mnote-pentax-entry.c:51
+#, c-format
+msgid "Invalid number of components (%i, expected %i)."
+msgstr "Número inválido de componentes (%i, esperados %i)."
+
+#: libexif/canon/mnote-canon-entry.c:61
+#: libexif/olympus/mnote-olympus-entry.c:72
+#: libexif/pentax/mnote-pentax-entry.c:61
+#, c-format
+msgid "Invalid number of components (%i, expected %i or %i)."
+msgstr "Número inválido de componentes (%i, esperados %i ou %i)."
+
+#: libexif/canon/mnote-canon-entry.c:76 libexif/canon/mnote-canon-entry.c:130
+#: libexif/canon/mnote-canon-entry.c:182 libexif/exif-entry.c:796
+#: libexif/olympus/mnote-olympus-entry.c:196
+#: libexif/olympus/mnote-olympus-tag.c:108
+#: libexif/pentax/mnote-pentax-entry.c:174
+#: libexif/pentax/mnote-pentax-entry.c:209
+#: libexif/pentax/mnote-pentax-entry.c:297
+msgid "Macro"
+msgstr "Macro"
+
+#: libexif/canon/mnote-canon-entry.c:77 libexif/canon/mnote-canon-entry.c:79
+#: libexif/canon/mnote-canon-entry.c:157 libexif/canon/mnote-canon-entry.c:160
+#: libexif/canon/mnote-canon-entry.c:163 libexif/exif-entry.c:674
+#: libexif/exif-entry.c:677 libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/exif-entry.c:745 libexif/fuji/mnote-fuji-entry.c:64
+#: libexif/olympus/mnote-olympus-entry.c:118
+#: libexif/olympus/mnote-olympus-entry.c:195
+#: libexif/olympus/mnote-olympus-entry.c:203
+#: libexif/olympus/mnote-olympus-entry.c:213
+#: libexif/olympus/mnote-olympus-entry.c:586
+#: libexif/pentax/mnote-pentax-entry.c:105
+#: libexif/pentax/mnote-pentax-entry.c:110
+#: libexif/pentax/mnote-pentax-entry.c:115
+#: libexif/pentax/mnote-pentax-entry.c:208
+msgid "Normal"
+msgstr "Normal"
+
+#: libexif/canon/mnote-canon-entry.c:78
+msgid "Economy"
+msgstr "Economia"
+
+#: libexif/canon/mnote-canon-entry.c:80
+msgid "Fine"
+msgstr "Fino"
+
+#: libexif/canon/mnote-canon-entry.c:81 libexif/fuji/mnote-fuji-entry.c:178
+#: libexif/pentax/mnote-pentax-entry.c:141
+msgid "RAW"
+msgstr "RAW"
+
+#: libexif/canon/mnote-canon-entry.c:82
+msgid "Superfine"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:83 libexif/canon/mnote-canon-entry.c:301
+#: libexif/canon/mnote-canon-entry.c:304 libexif/canon/mnote-canon-entry.c:312
+#: libexif/canon/mnote-canon-entry.c:345 libexif/canon/mnote-canon-entry.c:357
+#: libexif/canon/mnote-canon-entry.c:370 libexif/canon/mnote-canon-entry.c:372
+#: libexif/canon/mnote-canon-entry.c:574 libexif/canon/mnote-canon-entry.c:671
+#: libexif/fuji/mnote-fuji-entry.c:70 libexif/fuji/mnote-fuji-entry.c:103
+#: libexif/fuji/mnote-fuji-entry.c:107 libexif/fuji/mnote-fuji-entry.c:115
+#: libexif/fuji/mnote-fuji-entry.c:142
+#: libexif/olympus/mnote-olympus-entry.c:178
+#: libexif/olympus/mnote-olympus-entry.c:186
+#: libexif/olympus/mnote-olympus-entry.c:251
+#: libexif/olympus/mnote-olympus-entry.c:530
+#: libexif/olympus/mnote-olympus-entry.c:547
+#: libexif/pentax/mnote-pentax-entry.c:195
+#: libexif/pentax/mnote-pentax-entry.c:260
+msgid "Off"
+msgstr "Desligar"
+
+#: libexif/canon/mnote-canon-entry.c:84 libexif/canon/mnote-canon-entry.c:167
+#: libexif/canon/mnote-canon-entry.c:180 libexif/canon/mnote-canon-entry.c:328
+#: libexif/canon/mnote-canon-entry.c:400 libexif/fuji/mnote-fuji-entry.c:73
+#: libexif/fuji/mnote-fuji-entry.c:101 libexif/fuji/mnote-fuji-entry.c:111
+#: libexif/fuji/mnote-fuji-entry.c:119
+#: libexif/olympus/mnote-olympus-entry.c:131
+#: libexif/olympus/mnote-olympus-entry.c:183
+#: libexif/olympus/mnote-olympus-entry.c:199
+#: libexif/olympus/mnote-olympus-entry.c:244
+#: libexif/pentax/mnote-pentax-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:88
+#: libexif/pentax/mnote-pentax-entry.c:91
+#: libexif/pentax/mnote-pentax-entry.c:97
+#: libexif/pentax/mnote-pentax-entry.c:131
+#: libexif/pentax/mnote-pentax-entry.c:229
+#: libexif/pentax/mnote-pentax-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:290
+msgid "Auto"
+msgstr "Automático"
+
+#: libexif/canon/mnote-canon-entry.c:85 libexif/canon/mnote-canon-entry.c:302
+#: libexif/canon/mnote-canon-entry.c:347 libexif/canon/mnote-canon-entry.c:361
+#: libexif/canon/mnote-canon-entry.c:371 libexif/fuji/mnote-fuji-entry.c:102
+#: libexif/fuji/mnote-fuji-entry.c:108 libexif/fuji/mnote-fuji-entry.c:116
+#: libexif/fuji/mnote-fuji-entry.c:143
+#: libexif/olympus/mnote-olympus-entry.c:179
+#: libexif/olympus/mnote-olympus-entry.c:533
+#: libexif/olympus/mnote-olympus-entry.c:550
+#: libexif/pentax/mnote-pentax-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:261
+msgid "On"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:86 libexif/fuji/mnote-fuji-entry.c:104
+#: libexif/olympus/mnote-olympus-entry.c:184
+#: libexif/pentax/mnote-pentax-entry.c:94
+msgid "Red-eye reduction"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:87
+msgid "Slow synchro"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:88
+msgid "Auto, red-eye reduction"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:89
+#: libexif/pentax/mnote-pentax-entry.c:200
+msgid "On, red-eye reduction"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:90
+msgid "External flash"
+msgstr "Flash externo"
+
+#: libexif/canon/mnote-canon-entry.c:91 libexif/canon/mnote-canon-entry.c:101
+#: libexif/canon/mnote-canon-entry.c:294
+msgid "Single"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:92 libexif/canon/mnote-canon-entry.c:102
+#: libexif/canon/mnote-canon-entry.c:295
+msgid "Continuous"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:93
+msgid "Movie"
+msgstr "Filme"
+
+#: libexif/canon/mnote-canon-entry.c:94
+msgid "Continuous, speed priority"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:95
+msgid "Continuous, low"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:96
+msgid "Continuous, high"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:97
+msgid "One-shot AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:98
+msgid "AI servo AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:99
+msgid "AI focus AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:100 libexif/canon/mnote-canon-entry.c:103
+msgid "Manual focus"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:104 libexif/canon/mnote-canon-entry.c:132
+#: libexif/canon/mnote-canon-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:212
+msgid "Pan focus"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:105
+msgid "JPEG"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:106
+msgid "CRW+THM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:107
+msgid "AVI+THM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:108
+msgid "TIF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:109
+msgid "TIF+JPEG"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:110
+msgid "CR2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:111
+msgid "CR2+JPEG"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:112
+msgid "Large"
+msgstr "Grande"
+
+#: libexif/canon/mnote-canon-entry.c:113
+msgid "Medium"
+msgstr "Médio"
+
+#: libexif/canon/mnote-canon-entry.c:114
+msgid "Small"
+msgstr "Pequeno"
+
+#: libexif/canon/mnote-canon-entry.c:115
+msgid "Medium 1"
+msgstr "Médio 1"
+
+#: libexif/canon/mnote-canon-entry.c:116
+msgid "Medium 2"
+msgstr "Médio 2"
+
+#: libexif/canon/mnote-canon-entry.c:117
+msgid "Medium 3"
+msgstr "Médio 3"
+
+#: libexif/canon/mnote-canon-entry.c:118
+msgid "Postcard"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:119
+msgid "Widescreen"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:120
+msgid "Full auto"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:121 libexif/canon/mnote-canon-entry.c:179
+#: libexif/canon/mnote-canon-entry.c:201 libexif/canon/mnote-canon-entry.c:285
+#: libexif/canon/mnote-canon-entry.c:392 libexif/exif-entry.c:744
+#: libexif/fuji/mnote-fuji-entry.c:112
+#: libexif/olympus/mnote-olympus-entry.c:90
+#: libexif/olympus/mnote-olympus-entry.c:200
+#: libexif/pentax/mnote-pentax-entry.c:79
+#: libexif/pentax/mnote-pentax-entry.c:102
+#: libexif/pentax/mnote-pentax-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:165
+#: libexif/pentax/mnote-pentax-entry.c:211
+#: libexif/pentax/mnote-pentax-entry.c:250
+msgid "Manual"
+msgstr "Manual"
+
+#: libexif/canon/mnote-canon-entry.c:122 libexif/canon/mnote-canon-entry.c:430
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:755
+#: libexif/fuji/mnote-fuji-entry.c:121 libexif/pentax/mnote-pentax-entry.c:167
+#: libexif/pentax/mnote-pentax-entry.c:301
+msgid "Landscape"
+msgstr "Paisagem"
+
+#: libexif/canon/mnote-canon-entry.c:123
+msgid "Fast shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:124
+msgid "Slow shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:125 libexif/fuji/mnote-fuji-entry.c:123
+#: libexif/olympus/mnote-olympus-entry.c:254
+msgid "Night"
+msgstr "Noite"
+
+#: libexif/canon/mnote-canon-entry.c:126
+msgid "Grayscale"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:127 libexif/canon/mnote-canon-entry.c:308
+#: libexif/pentax/mnote-pentax-entry.c:128
+msgid "Sepia"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:128 libexif/canon/mnote-canon-entry.c:429
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:753
+#: libexif/fuji/mnote-fuji-entry.c:120 libexif/pentax/mnote-pentax-entry.c:166
+#: libexif/pentax/mnote-pentax-entry.c:291
+#: libexif/pentax/mnote-pentax-entry.c:294
+#: libexif/pentax/mnote-pentax-entry.c:300
+msgid "Portrait"
+msgstr "Retrato"
+
+#: libexif/canon/mnote-canon-entry.c:129 libexif/fuji/mnote-fuji-entry.c:122
+msgid "Sports"
+msgstr "Desportos"
+
+#: libexif/canon/mnote-canon-entry.c:131 libexif/canon/mnote-canon-entry.c:309
+#: libexif/canon/mnote-canon-entry.c:335 libexif/canon/mnote-canon-entry.c:407
+#: libexif/fuji/mnote-fuji-entry.c:89 libexif/pentax/mnote-pentax-entry.c:127
+msgid "Black & white"
+msgstr "Preto & branco"
+
+#: libexif/canon/mnote-canon-entry.c:133 libexif/canon/mnote-canon-entry.c:305
+msgid "Vivid"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:134 libexif/canon/mnote-canon-entry.c:306
+#: libexif/canon/mnote-canon-entry.c:431
+msgid "Neutral"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:93
+msgid "Flash off"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:136
+msgid "Long shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:137 libexif/canon/mnote-canon-entry.c:188
+#: libexif/olympus/mnote-olympus-entry.c:171
+msgid "Super macro"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:138
+msgid "Foliage"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:139
+msgid "Indoor"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:140 libexif/fuji/mnote-fuji-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:175
+msgid "Fireworks"
+msgstr "Foguetes"
+
+#: libexif/canon/mnote-canon-entry.c:141 libexif/fuji/mnote-fuji-entry.c:133
+msgid "Beach"
+msgstr "Praia"
+
+#: libexif/canon/mnote-canon-entry.c:142 libexif/canon/mnote-canon-entry.c:344
+#: libexif/canon/mnote-canon-entry.c:416 libexif/fuji/mnote-fuji-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:292
+#: libexif/pentax/mnote-pentax-entry.c:298
+msgid "Underwater"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:143 libexif/fuji/mnote-fuji-entry.c:134
+msgid "Snow"
+msgstr "Neve"
+
+#: libexif/canon/mnote-canon-entry.c:144
+msgid "Kids & pets"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:145
+msgid "Night snapshot"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:146
+msgid "Digital macro"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:147
+msgid "My colors"
+msgstr "As minhas cores"
+
+#: libexif/canon/mnote-canon-entry.c:148
+msgid "Still image"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:149
+msgid "Color accent"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:150
+msgid "Color swap"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:151
+msgid "Aquarium"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:152
+msgid "ISO 3200"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:153 libexif/canon/mnote-canon-entry.c:348
+#: libexif/canon/mnote-canon-entry.c:365 libexif/canon/mnote-canon-entry.c:417
+#: libexif/olympus/mnote-olympus-entry.c:189
+#: libexif/olympus/mnote-olympus-entry.c:226
+#: libexif/olympus/mnote-olympus-entry.c:451
+#: libexif/pentax/mnote-pentax-entry.c:242
+msgid "None"
+msgstr "Nenhum"
+
+#: libexif/canon/mnote-canon-entry.c:154
+msgid "2x"
+msgstr "2x"
+
+#: libexif/canon/mnote-canon-entry.c:155
+msgid "4x"
+msgstr "4x"
+
+#: libexif/canon/mnote-canon-entry.c:156 libexif/exif-entry.c:702
+#: libexif/exif-entry.c:732
+msgid "Other"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:158 libexif/canon/mnote-canon-entry.c:161
+#: libexif/canon/mnote-canon-entry.c:164 libexif/canon/mnote-canon-entry.c:398
+#: libexif/fuji/mnote-fuji-entry.c:86 libexif/pentax/mnote-pentax-entry.c:112
+#: libexif/pentax/mnote-pentax-entry.c:117
+msgid "High"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:159 libexif/canon/mnote-canon-entry.c:162
+#: libexif/canon/mnote-canon-entry.c:165 libexif/canon/mnote-canon-entry.c:396
+#: libexif/pentax/mnote-pentax-entry.c:111
+#: libexif/pentax/mnote-pentax-entry.c:116
+msgid "Low"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:166
+msgid "Auto high"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:168
+msgid "50"
+msgstr "50"
+
+#: libexif/canon/mnote-canon-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:120
+#: libexif/pentax/mnote-pentax-entry.c:122
+msgid "100"
+msgstr "100"
+
+#: libexif/canon/mnote-canon-entry.c:170
+#: libexif/pentax/mnote-pentax-entry.c:121
+#: libexif/pentax/mnote-pentax-entry.c:123
+msgid "200"
+msgstr "200"
+
+#: libexif/canon/mnote-canon-entry.c:171
+msgid "400"
+msgstr "400"
+
+#: libexif/canon/mnote-canon-entry.c:172
+msgid "800"
+msgstr "800"
+
+#: libexif/canon/mnote-canon-entry.c:173
+msgid "Default"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:174 libexif/exif-entry.c:698
+msgid "Spot"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:175 libexif/exif-entry.c:696
+msgid "Average"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:176
+msgid "Evaluative"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:177 libexif/exif-entry.c:701
+msgid "Partial"
+msgstr "Parcial"
+
+#: libexif/canon/mnote-canon-entry.c:178 libexif/exif-entry.c:697
+msgid "Center-weighted average"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:181
+msgid "Not known"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:183
+msgid "Very close"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:184 libexif/exif-entry.c:797
+msgid "Close"
+msgstr "Fechar"
+
+#: libexif/canon/mnote-canon-entry.c:185
+msgid "Middle range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:186
+msgid "Far range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:189
+#: libexif/pentax/mnote-pentax-entry.c:210
+msgid "Infinity"
+msgstr "Infinito"
+
+#: libexif/canon/mnote-canon-entry.c:190
+msgid "Manual AF point selection"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:191 libexif/canon/mnote-canon-entry.c:349
+msgid "None (MF)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:192
+msgid "Auto-selected"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:193 libexif/canon/mnote-canon-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:224
+#: libexif/pentax/mnote-pentax-entry.c:238
+msgid "Right"
+msgstr "Direita"
+
+#: libexif/canon/mnote-canon-entry.c:194 libexif/canon/mnote-canon-entry.c:351
+#: libexif/pentax/mnote-pentax-entry.c:222
+#: libexif/pentax/mnote-pentax-entry.c:237
+msgid "Center"
+msgstr "Centro"
+
+#: libexif/canon/mnote-canon-entry.c:195 libexif/canon/mnote-canon-entry.c:353
+#: libexif/pentax/mnote-pentax-entry.c:220
+#: libexif/pentax/mnote-pentax-entry.c:236
+msgid "Left"
+msgstr "Esquerda"
+
+#: libexif/canon/mnote-canon-entry.c:196
+msgid "Auto AF point selection"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:197
+msgid "Easy shooting"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:163
+msgid "Program"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:199
+msgid "Tv-priority"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:200
+msgid "Av-priority"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:202
+msgid "A-DEP"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:203
+msgid "M-DEP"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:204
+msgid "Canon EF 50mm f/1.8"
+msgstr "Canon EF 50mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:205
+msgid "Canon EF 28mm f/2.8"
+msgstr "Canon EF 28mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:206
+msgid "Sigma UC Zoom 35-135mm f/4-5.6"
+msgstr "Sigma UC Zoom 35-135mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:207
+msgid "Tokina AF193-2 19-35mm f/3.5-4.5"
+msgstr "Tokina AF193-2 19-35mm f/3.5-4.5"
+
+#: libexif/canon/mnote-canon-entry.c:208
+msgid "Canon EF 100-300mm F5.6L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:209
+msgid "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+msgstr "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:210
+msgid "Canon EF 35mm f/2"
+msgstr "Canon EF 35mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:211
+msgid "Canon EF 15mm f/2.8"
+msgstr "Canon EF 15mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:212
+msgid "Canon EF 80-200mm f/2.8L"
+msgstr "Canon EF 80-200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:213
+msgid "Tokina AT-X280AF PRO 28-80mm F2.8 Aspherical"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:214
+msgid "Cosina 100mm f/3.5 Macro AF"
+msgstr "Cosina 100mm f/3.5 Macro AF"
+
+#: libexif/canon/mnote-canon-entry.c:215
+msgid "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+msgstr "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:216
+msgid "Canon EF 50mm f/1.8 MkII"
+msgstr "Canon EF 50mm f/1.8 MkII"
+
+#: libexif/canon/mnote-canon-entry.c:217
+msgid "Tamron SP AF 300mm f/2.8 LD IF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:218
+msgid "Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:219
+msgid "Canon EF 75-300mm f/4-5.6"
+msgstr "Canon EF 75-300mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:220
+msgid "Canon EF 28-80mm f/3.5-5.6"
+msgstr "Canon EF 28-80mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:221
+msgid "Canon EF 28-105mm f/4-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:222
+msgid "Canon EF-S 18-55mm f/3.5-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:223
+msgid "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+msgstr "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+
+#: libexif/canon/mnote-canon-entry.c:224
+msgid "Canon TS-E 24mm f/3.5L"
+msgstr "Canon TS-E 24mm f/3.5L"
+
+#: libexif/canon/mnote-canon-entry.c:225
+msgid "Canon TS-E 45mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:226
+msgid "Canon TS-E 90mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:227
+msgid "Canon EF 50mm f/1.0L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:228
+msgid "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+msgstr "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+
+#: libexif/canon/mnote-canon-entry.c:229
+msgid "Canon EF 600mm f/4L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:230
+msgid "Canon EF 200mm f/1.8L"
+msgstr "Canon EF 200mm f/1.8L"
+
+#: libexif/canon/mnote-canon-entry.c:231
+msgid "Canon EF 300mm f/2.8L"
+msgstr "Canon EF 300mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:232
+msgid "Canon EF 85mm f/1.2L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:233
+msgid "Canon EF 400mm f/2.8L"
+msgstr "Canon EF 400mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:234
+msgid "Canon EF 500mm f/4.5L"
+msgstr "Canon EF 500mm f/4.5L"
+
+#: libexif/canon/mnote-canon-entry.c:235
+msgid "Canon EF 300mm f/2.8L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:236
+msgid "Canon EF 500mm f/4L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:237
+msgid "Canon EF 100mm f/2"
+msgstr "Canon EF 100mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:238
+msgid "Sigma 20mm EX f/1.8"
+msgstr "Sigma 20mm EX f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:239
+msgid "Canon EF 200mm f/2.8L"
+msgstr "Canon EF 200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:240
+msgid "Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:241
+msgid "Canon EF 35-350mm f/3.5-5.6L"
+msgstr "Canon EF 35-350mm f/3.5-5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:242
+msgid "Canon EF 85mm f/1.8 USM"
+msgstr "Canon EF 85mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:243
+msgid "Canon EF 28-105mm f/3.5-4.5 USM"
+msgstr "Canon EF 28-105mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:244
+msgid "Canon EF 20-35mm f/3.5-4.5 USM"
+msgstr "Canon EF 20-35mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:245
+msgid "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+msgstr "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:246
+msgid "Canon EF 70-200mm f/2.8 L"
+msgstr "Canon EF 70-200mm f/2.8 L"
+
+#: libexif/canon/mnote-canon-entry.c:247
+msgid "Canon EF 70-200mm f/2.8 L + x1.4"
+msgstr "Canon EF 70-200mm f/2.8 L + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:248
+msgid "Canon EF 70-200mm f/2.8 L + x2"
+msgstr "Canon EF 70-200mm f/2.8 L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:249
+msgid "Canon EF 28mm f/1.8 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:250
+msgid "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+msgstr "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+
+#: libexif/canon/mnote-canon-entry.c:251
+msgid "Canon EF 200mm f/2.8L II"
+msgstr "Canon EF 200mm f/2.8L II"
+
+#: libexif/canon/mnote-canon-entry.c:252
+msgid "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+msgstr "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+
+#: libexif/canon/mnote-canon-entry.c:253
+msgid "Canon EF 135mm f/2L"
+msgstr "Canon EF 135mm f/2L"
+
+#: libexif/canon/mnote-canon-entry.c:254
+msgid "Canon EF 24-85mm f/3.5-4.5 USM"
+msgstr "Canon EF 24-85mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:255
+msgid "Canon EF 300mm f/4L IS"
+msgstr "Canon EF 300mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:256
+msgid "Canon EF 28-135mm f/3.5-5.6 IS"
+msgstr "Canon EF 28-135mm f/3.5-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:257
+msgid "Canon EF 35mm f/1.4L"
+msgstr "Canon EF 35mm f/1.4L"
+
+#: libexif/canon/mnote-canon-entry.c:258
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:259
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+
+#: libexif/canon/mnote-canon-entry.c:260
+msgid "Canon EF 100-400mm f/4.5-5.6L IS"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS"
+
+#: libexif/canon/mnote-canon-entry.c:261
+msgid "Canon EF 400mm f/2.8L + x2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:262
+msgid "Canon EF 70-200mm f/4L"
+msgstr "Canon EF 70-200mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:263
+msgid "Canon EF 100mm f/2.8 Macro"
+msgstr "Canon EF 100mm f/2.8 Macro"
+
+#: libexif/canon/mnote-canon-entry.c:264
+msgid "Canon EF 400mm f/4 DO IS"
+msgstr "Canon EF 400mm f/4 DO IS"
+
+#: libexif/canon/mnote-canon-entry.c:265
+msgid "Canon EF 75-300mm f/4-5.6 IS"
+msgstr "Canon EF 75-300mm f/4-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:266
+msgid "Canon EF 50mm f/1.4"
+msgstr "Canon EF 50mm f/1.4"
+
+#: libexif/canon/mnote-canon-entry.c:267
+msgid "Canon EF 28-80 f/3.5-5.6 USM IV"
+msgstr "Canon EF 28-80 f/3.5-5.6 USM IV"
+
+#: libexif/canon/mnote-canon-entry.c:268
+msgid "Canon EF 28-200mm f/3.5-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:269
+msgid "Canon EF 90-300mm f/4.5-5.6"
+msgstr "Canon EF 90-300mm f/4.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:270
+msgid "Canon EF-S 18-55mm f/3.5-4.5 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:271
+msgid "Canon EF 70-200mm f/2.8L IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:272
+msgid "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:273
+msgid "Canon EF 70-200mm f/2.8L IS USM + x2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:274
+msgid "Canon EF 16-35mm f/2.8L"
+msgstr "Canon EF 16-35mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:275
+msgid "Canon EF 24-70mm f/2.8L"
+msgstr "Canon EF 24-70mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:276
+msgid "Canon EF 17-40mm f/4L"
+msgstr "Canon EF 17-40mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:277
+msgid "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:278
+msgid "Canon EF-S 17-85mm f4-5.6 IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:279
+msgid "Canon EF-S10-22mm F3.5-4.5 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:280
+msgid "Canon EF-S60mm F2.8 Macro USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:281
+msgid "Canon EF 24-105mm f/4L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:282
+msgid "Canon EF 70-300mm F4-5.6 IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:283
+msgid "Canon EF 50mm F1.2L USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:284
+msgid "Canon EF 70-200mm f/4L IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:286
+msgid "TTL"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:287
+msgid "A-TTL"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:288
+msgid "E-TTL"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:289
+msgid "FP sync enabled"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:290
+msgid "2nd-curtain sync used"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:291
+msgid "FP sync used"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:292
+#: libexif/olympus/mnote-olympus-entry.c:190
+msgid "Internal"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:293
+#: libexif/olympus/mnote-olympus-entry.c:191
+msgid "External"
+msgstr "Externo"
+
+#: libexif/canon/mnote-canon-entry.c:296
+msgid "Normal AE"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:297
+msgid "Exposure compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:298
+msgid "AE lock"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:299
+msgid "AE lock + exposure compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:300
+msgid "No AE"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:303
+msgid "On, shot only"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:307
+msgid "Smooth"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:310 libexif/canon/mnote-canon-entry.c:334
+#: libexif/canon/mnote-canon-entry.c:393 libexif/canon/mnote-canon-entry.c:406
+#: libexif/fuji/mnote-fuji-entry.c:81 libexif/pentax/mnote-pentax-entry.c:87
+msgid "Custom"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:311
+msgid "My color data"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:313 libexif/canon/mnote-canon-entry.c:375
+#: libexif/pentax/mnote-pentax-entry.c:126
+#: libexif/pentax/mnote-pentax-entry.c:145
+msgid "Full"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:314 libexif/canon/mnote-canon-entry.c:374
+msgid "2/3"
+msgstr "2/3"
+
+#: libexif/canon/mnote-canon-entry.c:315 libexif/canon/mnote-canon-entry.c:373
+msgid "1/3"
+msgstr "1/3"
+
+#: libexif/canon/mnote-canon-entry.c:321
+msgid "Fixed"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:322 libexif/pentax/mnote-pentax-tag.c:44
+msgid "Zoom"
+msgstr "Zoom"
+
+#: libexif/canon/mnote-canon-entry.c:329
+msgid "Sunny"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:330 libexif/canon/mnote-canon-entry.c:402
+#: libexif/exif-entry.c:719 libexif/fuji/mnote-fuji-entry.c:75
+#: libexif/olympus/mnote-olympus-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:255
+msgid "Cloudy"
+msgstr "Nublado"
+
+#: libexif/canon/mnote-canon-entry.c:331 libexif/canon/mnote-canon-entry.c:403
+#: libexif/exif-entry.c:716 libexif/pentax/mnote-pentax-entry.c:100
+#: libexif/pentax/mnote-pentax-entry.c:249
+msgid "Tungsten"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:332 libexif/canon/mnote-canon-entry.c:404
+#: libexif/exif-entry.c:715 libexif/pentax/mnote-pentax-entry.c:101
+#: libexif/pentax/mnote-pentax-entry.c:248
+msgid "Fluorescent"
+msgstr "Fluorescente"
+
+#: libexif/canon/mnote-canon-entry.c:333 libexif/canon/mnote-canon-entry.c:405
+#: libexif/exif-entry.c:717 libexif/exif-entry.c:759 libexif/exif-tag.c:577
+#: libexif/fuji/mnote-fuji-entry.c:80 libexif/pentax/mnote-pentax-entry.c:254
+msgid "Flash"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:336 libexif/canon/mnote-canon-entry.c:408
+#: libexif/exif-entry.c:720 libexif/pentax/mnote-pentax-entry.c:99
+#: libexif/pentax/mnote-pentax-entry.c:247
+msgid "Shade"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:337 libexif/canon/mnote-canon-entry.c:409
+msgid "Manual temperature (Kelvin)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:338 libexif/canon/mnote-canon-entry.c:410
+msgid "PC set 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:339 libexif/canon/mnote-canon-entry.c:411
+msgid "PC set 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:340 libexif/canon/mnote-canon-entry.c:412
+msgid "PC set 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:341 libexif/canon/mnote-canon-entry.c:413
+#: libexif/exif-entry.c:721 libexif/fuji/mnote-fuji-entry.c:76
+#: libexif/pentax/mnote-pentax-entry.c:251
+msgid "Daylight fluorescent"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:342 libexif/canon/mnote-canon-entry.c:414
+msgid "Custom 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:343 libexif/canon/mnote-canon-entry.c:415
+msgid "Custom 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:346 libexif/exif-entry.c:672
+#: libexif/pentax/mnote-pentax-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:132
+#: libexif/pentax/mnote-pentax-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:295
+msgid "Night scene"
+msgstr "Cena nocturna"
+
+#: libexif/canon/mnote-canon-entry.c:352
+#, fuzzy
+msgid "Center-right"
+msgstr "Centro"
+
+#: libexif/canon/mnote-canon-entry.c:354
+msgid "Left-right"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:355
+#, fuzzy
+msgid "Left-center"
+msgstr "centrado"
+
+#: libexif/canon/mnote-canon-entry.c:356
+msgid "All"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:358
+msgid "On (shot 1)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:359
+msgid "On (shot 2)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:360
+msgid "On (shot 3)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:362
+msgid "EOS high-end"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:363
+msgid "Compact"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:364
+msgid "EOS mid-range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:366
+msgid "Rotate 90 CW"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:367
+msgid "Rotate 180"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:368
+msgid "Rotate 270 CW"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:369
+msgid "Rotated by software"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:381
+#: libexif/olympus/mnote-olympus-entry.c:606
+msgid "Left to right"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:382
+#: libexif/olympus/mnote-olympus-entry.c:609
+msgid "Right to left"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:383
+#: libexif/olympus/mnote-olympus-entry.c:612
+msgid "Bottom to top"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:384
+#: libexif/olympus/mnote-olympus-entry.c:615
+msgid "Top to bottom"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:385
+msgid "2x2 matrix (clockwise)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:391 libexif/canon/mnote-canon-entry.c:397
+#: libexif/canon/mnote-canon-entry.c:418 libexif/canon/mnote-canon-entry.c:428
+#: libexif/exif-entry.c:671 libexif/fuji/mnote-fuji-entry.c:84
+#: libexif/fuji/mnote-fuji-entry.c:93 libexif/fuji/mnote-fuji-entry.c:163
+#: libexif/olympus/mnote-olympus-entry.c:227
+msgid "Standard"
+msgstr "Padrão"
+
+#: libexif/canon/mnote-canon-entry.c:394
+msgid "N/A"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:395
+msgid "Lowest"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:399
+msgid "Highest"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:401 libexif/exif-entry.c:714
+#: libexif/fuji/mnote-fuji-entry.c:74
+#: libexif/olympus/mnote-olympus-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:98
+#: libexif/pentax/mnote-pentax-entry.c:246
+msgid "Daylight"
+msgstr "Luz do dia"
+
+#: libexif/canon/mnote-canon-entry.c:419
+msgid "Set 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:420
+msgid "Set 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:421
+msgid "Set 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:422
+msgid "User def. 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:423
+msgid "User def. 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:424
+msgid "User def. 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:425
+msgid "External 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:426
+msgid "External 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:427
+msgid "External 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:432
+msgid "Faithful"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:115
+msgid "Monochrome"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:491
+msgid ", "
+msgstr ", "
+
+#: libexif/canon/mnote-canon-entry.c:577 libexif/canon/mnote-canon-entry.c:674
+#, c-format
+msgid "%i (ms)"
+msgstr "%i (ms)"
+
+#: libexif/canon/mnote-canon-entry.c:621
+#, c-format
+msgid "%.2f mm"
+msgstr "%.2f mm"
+
+#: libexif/canon/mnote-canon-entry.c:645
+#, c-format
+msgid "%.2f EV"
+msgstr "%.2f EV"
+
+#: libexif/canon/mnote-canon-entry.c:655 libexif/exif-entry.c:1064
+#, c-format
+msgid "1/%i"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:667
+#, c-format
+msgid "%u mm"
+msgstr "%u mm"
+
+#: libexif/canon/mnote-canon-tag.c:35
+msgid "Settings (First Part)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:36 libexif/canon/mnote-canon-tag.c:92
+#: libexif/exif-tag.c:581 libexif/pentax/mnote-pentax-tag.c:88
+msgid "Focal Length"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:37
+msgid "Settings (Second Part)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:38
+#: libexif/olympus/mnote-olympus-entry.c:595
+#: libexif/pentax/mnote-pentax-entry.c:177
+msgid "Panorama"
+msgstr "Panorama"
+
+#: libexif/canon/mnote-canon-tag.c:39
+msgid "Image Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:40 libexif/olympus/mnote-olympus-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:113
+msgid "Firmware Version"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:41
+msgid "Image Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:42
+msgid "Owner Name"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:43
+msgid "Color Information"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:44 libexif/fuji/mnote-fuji-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:81
+#: libexif/olympus/mnote-olympus-tag.c:146
+msgid "Serial Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:45
+msgid "Custom Functions"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:56 libexif/fuji/mnote-fuji-tag.c:45
+msgid "Macro Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:57 libexif/canon/mnote-canon-tag.c:117
+#: libexif/olympus/mnote-olympus-tag.c:175
+#: libexif/pentax/mnote-pentax-tag.c:128
+msgid "Self-timer"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:58 libexif/fuji/mnote-fuji-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:94
+#: libexif/olympus/mnote-olympus-tag.c:107
+msgid "Quality"
+msgstr "Qualidade"
+
+#: libexif/canon/mnote-canon-tag.c:59 libexif/fuji/mnote-fuji-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:45
+#: libexif/olympus/mnote-olympus-tag.c:127
+#: libexif/pentax/mnote-pentax-tag.c:38 libexif/pentax/mnote-pentax-tag.c:73
+msgid "Flash Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:60 libexif/pentax/mnote-pentax-tag.c:101
+msgid "Drive Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:61 libexif/canon/mnote-canon-tag.c:82
+#: libexif/olympus/mnote-olympus-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:134
+#: libexif/olympus/mnote-olympus-tag.c:173
+#: libexif/pentax/mnote-pentax-tag.c:37 libexif/pentax/mnote-pentax-tag.c:74
+#: libexif/pentax/mnote-pentax-tag.c:130
+msgid "Focus Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:62 libexif/pentax/mnote-pentax-tag.c:127
+msgid "Record Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:63 libexif/pentax/mnote-pentax-tag.c:71
+msgid "Image Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:64
+msgid "Easy Shooting Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:65 libexif/olympus/mnote-olympus-tag.c:64
+#: libexif/olympus/mnote-olympus-tag.c:101
+#: libexif/olympus/mnote-olympus-tag.c:110
+#: libexif/olympus/mnote-olympus-tag.c:180
+#: libexif/pentax/mnote-pentax-tag.c:89
+msgid "Digital Zoom"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:66 libexif/exif-tag.c:828
+#: libexif/fuji/mnote-fuji-tag.c:42 libexif/pentax/mnote-pentax-tag.c:46
+#: libexif/pentax/mnote-pentax-tag.c:91
+msgid "Contrast"
+msgstr "Contraste"
+
+#: libexif/canon/mnote-canon-tag.c:67 libexif/exif-tag.c:832
+#: libexif/olympus/mnote-olympus-tag.c:75
+#: libexif/olympus/mnote-olympus-tag.c:87 libexif/pentax/mnote-pentax-tag.c:47
+#: libexif/pentax/mnote-pentax-tag.c:90
+msgid "Saturation"
+msgstr "Saturação"
+
+#: libexif/canon/mnote-canon-tag.c:68 libexif/exif-tag.c:836
+#: libexif/fuji/mnote-fuji-tag.c:39 libexif/pentax/mnote-pentax-tag.c:45
+#: libexif/pentax/mnote-pentax-tag.c:92
+msgid "Sharpness"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:69
+msgid "ISO"
+msgstr "ISO"
+
+#: libexif/canon/mnote-canon-tag.c:70 libexif/exif-tag.c:571
+#: libexif/pentax/mnote-pentax-tag.c:82
+msgid "Metering Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:71 libexif/olympus/mnote-olympus-tag.c:133
+msgid "Focus Range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:72 libexif/canon/mnote-canon-tag.c:105
+msgid "AF Point"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:73 libexif/exif-tag.c:795
+msgid "Exposure Mode"
+msgstr "Modo de Exposição"
+
+#: libexif/canon/mnote-canon-tag.c:74 libexif/olympus/mnote-olympus-tag.c:61
+#: libexif/pentax/mnote-pentax-tag.c:106
+msgid "Lens Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:75
+msgid "Long Focal Length of Lens"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:76
+msgid "Short Focal Length of Lens"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:77
+msgid "Focal Units per mm"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:78
+msgid "Maximal Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:79
+msgid "Minimal Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:80
+msgid "Flash Activity"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:81
+msgid "Flash Details"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:83
+msgid "AE Setting"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:84
+msgid "Image Stabilization"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:85
+msgid "Display Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:86
+msgid "Zoom Source Width"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:87
+msgid "Zoom Target Width"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:88
+msgid "Photo Effect"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:89 libexif/canon/mnote-canon-tag.c:118
+msgid "Manual Flash Output"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:90
+msgid "Color Tone"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:91
+msgid "Focal Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:93
+msgid "Focal Plane X Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:94
+msgid "Focal Plane Y Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:95
+msgid "Auto ISO"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:96
+msgid "Shot ISO"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:97
+msgid "Measured EV"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:98
+msgid "Target Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:99
+msgid "Target Exposure Time"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:100 libexif/olympus/mnote-olympus-tag.c:129
+#: libexif/pentax/mnote-pentax-tag.c:81
+msgid "Exposure Compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:101 libexif/canon/mnote-canon-tag.c:123
+#: libexif/exif-tag.c:800 libexif/fuji/mnote-fuji-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:41
+#: libexif/olympus/mnote-olympus-tag.c:98 libexif/pentax/mnote-pentax-tag.c:41
+#: libexif/pentax/mnote-pentax-tag.c:84 libexif/pentax/mnote-pentax-tag.c:124
+msgid "White Balance"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:102
+msgid "Slow Shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:103
+msgid "Sequence Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:104
+msgid "Flash Guide Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:106 libexif/olympus/mnote-olympus-tag.c:52
+#: libexif/pentax/mnote-pentax-tag.c:109
+msgid "Flash Exposure Compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:107
+msgid "AE Bracketing"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:108
+msgid "AE Bracket Value"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:109
+msgid "Focus Distance Upper"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:110
+msgid "Focus Distance Lower"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:111
+msgid "FNumber"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:112 libexif/exif-tag.c:466
+#: libexif/pentax/mnote-pentax-tag.c:78
+msgid "Exposure Time"
+msgstr "Tempo de Exposição"
+
+#: libexif/canon/mnote-canon-tag.c:113
+msgid "Bulb Duration"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:114
+msgid "Camera Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:115
+msgid "Auto Rotate"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:116
+msgid "ND Filter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:119
+msgid "Panorama Frame"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:120
+msgid "Panorama Direction"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:121
+msgid "Tone Curve"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:122
+msgid "Sharpness Frequency"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:124
+msgid "Picture Style"
+msgstr ""
+
+#: libexif/exif-byte-order.c:33
+msgid "Motorola"
+msgstr "Motorola"
+
+#: libexif/exif-byte-order.c:35
+msgid "Intel"
+msgstr "Intel"
+
+#: libexif/exif-data.c:780
+msgid "Size of data too small to allow for EXIF data."
+msgstr ""
+
+#: libexif/exif-data.c:841
+msgid "EXIF marker not found."
+msgstr ""
+
+#: libexif/exif-data.c:868
+msgid "EXIF header not found."
+msgstr ""
+
+#: libexif/exif-data.c:884
+msgid "Unknown encoding."
+msgstr ""
+
+#: libexif/exif-data.c:1168
+msgid "Ignore unknown tags"
+msgstr ""
+
+#: libexif/exif-data.c:1169
+msgid "Ignore unknown tags when loading EXIF data."
+msgstr ""
+
+#: libexif/exif-data.c:1170
+msgid "Follow specification"
+msgstr ""
+
+#: libexif/exif-data.c:1171
+msgid ""
+"Add, correct and remove entries to get EXIF data that follows the "
+"specification."
+msgstr ""
+
+#: libexif/exif-data.c:1173
+msgid "Do not change maker note"
+msgstr ""
+
+#: libexif/exif-data.c:1174
+msgid ""
+"When loading and resaving Exif data, save the maker note unmodified. Be "
+"aware that the maker note can get corrupted."
+msgstr ""
+
+#: libexif/exif-entry.c:234 libexif/exif-entry.c:303 libexif/exif-entry.c:336
+#, c-format
+msgid ""
+"Tag '%s' was of format '%s' (which is against specification) and has been "
+"changed to format '%s'."
+msgstr ""
+
+#: libexif/exif-entry.c:271
+#, c-format
+msgid ""
+"Tag '%s' is of format '%s' (which is against specification) but cannot be "
+"changed to format '%s'."
+msgstr ""
+
+#: libexif/exif-entry.c:354
+#, c-format
+msgid ""
+"Tag 'UserComment' had invalid format '%s'. Format has been set to "
+"'undefined'."
+msgstr ""
+
+#: libexif/exif-entry.c:381
+msgid ""
+"Tag 'UserComment' has been expanded to at least 8 bytes in order to follow "
+"the specification."
+msgstr ""
+
+#: libexif/exif-entry.c:396
+msgid ""
+"Tag 'UserComment' is not empty but does not start with a format identifier. "
+"This has been fixed."
+msgstr ""
+
+#: libexif/exif-entry.c:424
+msgid ""
+"Tag 'UserComment' did not start with a format identifier. This has been "
+"fixed."
+msgstr ""
+
+#: libexif/exif-entry.c:462
+#, c-format
+msgid "%i bytes undefined data"
+msgstr ""
+
+#: libexif/exif-entry.c:589
+#, c-format
+msgid "%i bytes unsupported data type"
+msgstr ""
+
+#: libexif/exif-entry.c:622
+#, c-format
+msgid "The tag '%s' contains data of an invalid format ('%s', expected '%s')."
+msgstr ""
+
+#: libexif/exif-entry.c:635
+#, c-format
+msgid ""
+"The tag '%s' contains an invalid number of components (%i, expected %i)."
+msgstr ""
+
+#: libexif/exif-entry.c:649
+msgid "Chunky format"
+msgstr ""
+
+#: libexif/exif-entry.c:649
+#, fuzzy
+msgid "Planar format"
+msgstr "Panorama"
+
+#: libexif/exif-entry.c:651 libexif/exif-entry.c:743
+#: test/nls/test-codeset.c:54
+msgid "Not defined"
+msgstr "Não definido"
+
+#: libexif/exif-entry.c:651
+msgid "One-chip color area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:652
+msgid "Two-chip color area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:652
+msgid "Three-chip color area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:653
+msgid "Color sequential area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:653
+msgid "Trilinear sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:654
+msgid "Color sequential linear sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:233
+msgid "Top-left"
+msgstr ""
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:235
+msgid "Top-right"
+msgstr ""
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:241
+msgid "Bottom-right"
+msgstr ""
+
+#: libexif/exif-entry.c:657 libexif/pentax/mnote-pentax-entry.c:239
+msgid "Bottom-left"
+msgstr ""
+
+#: libexif/exif-entry.c:657
+#, fuzzy
+msgid "Left-top"
+msgstr "Esquerda"
+
+#: libexif/exif-entry.c:657
+#, fuzzy
+msgid "Right-top"
+msgstr "Direita"
+
+#: libexif/exif-entry.c:658
+msgid "Right-bottom"
+msgstr ""
+
+#: libexif/exif-entry.c:658
+msgid "Left-bottom"
+msgstr ""
+
+#: libexif/exif-entry.c:660
+#, fuzzy
+msgid "Centered"
+msgstr "centrado"
+
+#: libexif/exif-entry.c:660
+#, fuzzy
+msgid "Co-sited"
+msgstr "Fechar"
+
+#: libexif/exif-entry.c:662
+msgid "Reversed mono"
+msgstr ""
+
+#: libexif/exif-entry.c:662
+msgid "Normal mono"
+msgstr ""
+
+#: libexif/exif-entry.c:662
+msgid "RGB"
+msgstr "RGB"
+
+#: libexif/exif-entry.c:662
+msgid "Palette"
+msgstr "Paleta"
+
+#: libexif/exif-entry.c:663
+msgid "CMYK"
+msgstr ""
+
+#: libexif/exif-entry.c:663
+msgid "YCbCr"
+msgstr ""
+
+#: libexif/exif-entry.c:663
+msgid "CieLAB"
+msgstr ""
+
+#: libexif/exif-entry.c:665
+msgid "Normal process"
+msgstr "Processo normal"
+
+#: libexif/exif-entry.c:665
+msgid "Custom process"
+msgstr "Processo personalizado"
+
+#: libexif/exif-entry.c:667
+msgid "Auto exposure"
+msgstr ""
+
+#: libexif/exif-entry.c:667 libexif/fuji/mnote-fuji-entry.c:139
+msgid "Manual exposure"
+msgstr ""
+
+#: libexif/exif-entry.c:667
+msgid "Auto bracket"
+msgstr ""
+
+#: libexif/exif-entry.c:669
+msgid "Auto white balance"
+msgstr ""
+
+#: libexif/exif-entry.c:669
+msgid "Manual white balance"
+msgstr ""
+
+#: libexif/exif-entry.c:674
+msgid "Low gain up"
+msgstr ""
+
+#: libexif/exif-entry.c:674
+msgid "High gain up"
+msgstr ""
+
+#: libexif/exif-entry.c:675
+msgid "Low gain down"
+msgstr ""
+
+#: libexif/exif-entry.c:675
+msgid "High gain down"
+msgstr ""
+
+#: libexif/exif-entry.c:677
+msgid "Low saturation"
+msgstr ""
+
+#: libexif/exif-entry.c:677 test/nls/test-codeset.c:48
+#: test/nls/test-codeset.c:61
+msgid "High saturation"
+msgstr ""
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:63
+#: libexif/olympus/mnote-olympus-entry.c:205
+#: libexif/olympus/mnote-olympus-entry.c:214
+#: libexif/pentax/mnote-pentax-entry.c:106
+#: libexif/pentax/mnote-pentax-entry.c:170
+msgid "Soft"
+msgstr ""
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:65 libexif/fuji/mnote-fuji-entry.c:95
+#: libexif/olympus/mnote-olympus-entry.c:204
+#: libexif/olympus/mnote-olympus-entry.c:212
+#: libexif/pentax/mnote-pentax-entry.c:107
+msgid "Hard"
+msgstr ""
+
+#: libexif/exif-entry.c:695 libexif/exif-entry.c:713 libexif/exif-entry.c:795
+#: libexif/olympus/mnote-olympus-entry.c:589
+#: libexif/olympus/mnote-olympus-entry.c:683
+#: libexif/olympus/mnote-olympus-entry.c:738
+#: libexif/pentax/mnote-pentax-entry.c:256
+msgid "Unknown"
+msgstr "Desconhecido"
+
+#: libexif/exif-entry.c:696
+msgid "Avg"
+msgstr ""
+
+#: libexif/exif-entry.c:697
+#, fuzzy
+msgid "Center-weight"
+msgstr "Centro"
+
+#: libexif/exif-entry.c:699
+msgid "Multi spot"
+msgstr ""
+
+#: libexif/exif-entry.c:700
+msgid "Pattern"
+msgstr "Padrão"
+
+#: libexif/exif-entry.c:705
+msgid "Uncompressed"
+msgstr "Não comprimido"
+
+#: libexif/exif-entry.c:706
+msgid "LZW compression"
+msgstr "Compressão LZW"
+
+#: libexif/exif-entry.c:707 libexif/exif-entry.c:708
+msgid "JPEG compression"
+msgstr "Compressão JPEG"
+
+#: libexif/exif-entry.c:709
+msgid "Deflate/ZIP compression"
+msgstr ""
+
+#: libexif/exif-entry.c:710
+msgid "PackBits compression"
+msgstr ""
+
+#: libexif/exif-entry.c:716
+msgid "Tungsten incandescent light"
+msgstr ""
+
+#: libexif/exif-entry.c:718
+msgid "Fine weather"
+msgstr "Bom tempo"
+
+#: libexif/exif-entry.c:719
+msgid "Cloudy weather"
+msgstr "Tempo nublado"
+
+#: libexif/exif-entry.c:722 libexif/fuji/mnote-fuji-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:252
+msgid "Day white fluorescent"
+msgstr ""
+
+#: libexif/exif-entry.c:723
+msgid "Cool white fluorescent"
+msgstr ""
+
+#: libexif/exif-entry.c:724 libexif/fuji/mnote-fuji-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:253
+msgid "White fluorescent"
+msgstr ""
+
+#: libexif/exif-entry.c:725
+msgid "Standard light A"
+msgstr ""
+
+#: libexif/exif-entry.c:726
+msgid "Standard light B"
+msgstr ""
+
+#: libexif/exif-entry.c:727
+msgid "Standard light C"
+msgstr ""
+
+#: libexif/exif-entry.c:728
+msgid "D55"
+msgstr "D55"
+
+#: libexif/exif-entry.c:729
+msgid "D65"
+msgstr "D65"
+
+#: libexif/exif-entry.c:730
+msgid "D75"
+msgstr "D75"
+
+#: libexif/exif-entry.c:731
+msgid "ISO studio tungsten"
+msgstr ""
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "Inch"
+msgstr "Polegada"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "in"
+msgstr "in"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "Centimeter"
+msgstr "Centímetro"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "cm"
+msgstr "cm"
+
+#: libexif/exif-entry.c:745
+msgid "Normal program"
+msgstr "Programa normal"
+
+#: libexif/exif-entry.c:746
+msgid "Aperture priority"
+msgstr ""
+
+#: libexif/exif-entry.c:746 libexif/exif-tag.c:550
+msgid "Aperture"
+msgstr ""
+
+#: libexif/exif-entry.c:747
+msgid "Shutter priority"
+msgstr ""
+
+#: libexif/exif-entry.c:747
+msgid "Shutter"
+msgstr ""
+
+#: libexif/exif-entry.c:748
+msgid "Creative program (biased toward depth of field)"
+msgstr ""
+
+#: libexif/exif-entry.c:749
+msgid "Creative"
+msgstr ""
+
+#: libexif/exif-entry.c:750
+msgid "Creative program (biased toward fast shutter speed)"
+msgstr ""
+
+#: libexif/exif-entry.c:751
+msgid "Action"
+msgstr "Acção"
+
+#: libexif/exif-entry.c:752
+msgid "Portrait mode (for closeup photos with the background out of focus)"
+msgstr ""
+
+#: libexif/exif-entry.c:754
+msgid "Landscape mode (for landscape photos with the background in focus)"
+msgstr ""
+
+#: libexif/exif-entry.c:758 libexif/exif-entry.c:763
+#: libexif/olympus/mnote-olympus-entry.c:97
+msgid "Flash did not fire"
+msgstr ""
+
+#: libexif/exif-entry.c:758
+msgid "No flash"
+msgstr ""
+
+#: libexif/exif-entry.c:759
+msgid "Flash fired"
+msgstr ""
+
+#: libexif/exif-entry.c:759 libexif/olympus/mnote-olympus-entry.c:170
+#: libexif/olympus/mnote-olympus-entry.c:175
+#: libexif/olympus/mnote-olympus-entry.c:209
+#: libexif/olympus/mnote-olympus-entry.c:218
+#: libexif/olympus/mnote-olympus-entry.c:241
+msgid "Yes"
+msgstr "Sim"
+
+#: libexif/exif-entry.c:760
+msgid "Strobe return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:760
+msgid "Without strobe"
+msgstr ""
+
+#: libexif/exif-entry.c:762
+msgid "Strobe return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:762
+msgid "With strobe"
+msgstr ""
+
+#: libexif/exif-entry.c:764
+msgid "Flash fired, compulsory flash mode"
+msgstr ""
+
+#: libexif/exif-entry.c:765
+msgid "Flash fired, compulsory flash mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:767
+msgid "Flash fired, compulsory flash mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:769
+msgid "Flash did not fire, compulsory flash mode"
+msgstr ""
+
+#: libexif/exif-entry.c:770
+msgid "Flash did not fire, auto mode"
+msgstr ""
+
+#: libexif/exif-entry.c:771
+msgid "Flash fired, auto mode"
+msgstr ""
+
+#: libexif/exif-entry.c:772
+msgid "Flash fired, auto mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:774
+msgid "Flash fired, auto mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:775
+msgid "No flash function"
+msgstr ""
+
+#: libexif/exif-entry.c:776
+msgid "Flash fired, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:777
+msgid "Flash fired, red-eye reduction mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:779
+msgid "Flash fired, red-eye reduction mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:781
+msgid "Flash fired, compulsory flash mode, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:783
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light not "
+"detected"
+msgstr ""
+
+#: libexif/exif-entry.c:785
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light "
+"detected"
+msgstr ""
+
+#: libexif/exif-entry.c:787
+msgid "Flash did not fire, auto mode, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:788
+msgid "Flash fired, auto mode, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:789
+msgid ""
+"Flash fired, auto mode, return light not detected, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:791
+msgid "Flash fired, auto mode, return light detected, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:795
+msgid "?"
+msgstr "?"
+
+#: libexif/exif-entry.c:797
+msgid "Close view"
+msgstr ""
+
+#: libexif/exif-entry.c:798
+msgid "Distant view"
+msgstr ""
+
+#: libexif/exif-entry.c:798
+msgid "Distant"
+msgstr ""
+
+#: libexif/exif-entry.c:801
+msgid "sRGB"
+msgstr "sRGB"
+
+#: libexif/exif-entry.c:802
+msgid "Adobe RGB"
+msgstr ""
+
+#: libexif/exif-entry.c:803
+msgid "Uncalibrated"
+msgstr ""
+
+#: libexif/exif-entry.c:857
+#, c-format
+msgid "Invalid size of entry (%i, expected %li x %i)."
+msgstr ""
+
+#: libexif/exif-entry.c:890
+msgid "Unsupported UNICODE string"
+msgstr ""
+
+#: libexif/exif-entry.c:898
+msgid "Unsupported JIS string"
+msgstr ""
+
+#: libexif/exif-entry.c:914
+msgid "Tag UserComment does not comply with standard but contains data."
+msgstr ""
+
+#: libexif/exif-entry.c:918
+#, c-format
+msgid "Byte at position %i: 0x%02x"
+msgstr ""
+
+#: libexif/exif-entry.c:927
+msgid "Unknown Exif Version"
+msgstr ""
+
+#: libexif/exif-entry.c:931
+#, c-format
+msgid "Exif Version %d.%d"
+msgstr ""
+
+#: libexif/exif-entry.c:942
+msgid "FlashPix Version 1.0"
+msgstr ""
+
+#: libexif/exif-entry.c:944
+msgid "FlashPix Version 1.01"
+msgstr ""
+
+#: libexif/exif-entry.c:946
+msgid "Unknown FlashPix Version"
+msgstr ""
+
+#: libexif/exif-entry.c:959 libexif/exif-entry.c:972 libexif/exif-entry.c:1628
+#: libexif/exif-entry.c:1633 libexif/exif-entry.c:1637
+#: libexif/exif-entry.c:1642 libexif/exif-entry.c:1643
+msgid "[None]"
+msgstr "[Nenhum]"
+
+#: libexif/exif-entry.c:961
+msgid "(Photographer)"
+msgstr ""
+
+#: libexif/exif-entry.c:975
+msgid "(Editor)"
+msgstr "(Editor)"
+
+#: libexif/exif-entry.c:999 libexif/exif-entry.c:1079
+#: libexif/exif-entry.c:1096 libexif/exif-entry.c:1140
+#, c-format
+msgid "%.02f EV"
+msgstr "%.02f EV"
+
+#: libexif/exif-entry.c:1000
+#, c-format
+msgid " (f/%.01f)"
+msgstr " (f/%.01f)"
+
+#: libexif/exif-entry.c:1034
+#, c-format
+msgid " (35 equivalent: %d mm)"
+msgstr ""
+
+#: libexif/exif-entry.c:1067 libexif/exif-entry.c:1068
+msgid " sec."
+msgstr " seg."
+
+#: libexif/exif-entry.c:1082
+#, c-format
+msgid " (1/%d sec.)"
+msgstr ""
+
+#: libexif/exif-entry.c:1084
+#, c-format
+msgid " (%d sec.)"
+msgstr ""
+
+#: libexif/exif-entry.c:1097
+#, c-format
+msgid " (%.02f cd/m^2)"
+msgstr " (%.02f cd/m^2)"
+
+#: libexif/exif-entry.c:1107
+msgid "DSC"
+msgstr "DSC"
+
+#: libexif/exif-entry.c:1109 libexif/exif-entry.c:1149
+#: libexif/exif-entry.c:1236 libexif/exif-entry.c:1287
+#: libexif/exif-entry.c:1296 libexif/exif-entry.c:1332
+#: libexif/fuji/mnote-fuji-entry.c:236 libexif/fuji/mnote-fuji-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:359
+#, c-format
+msgid "Internal error (unknown value %i)"
+msgstr ""
+
+#: libexif/exif-entry.c:1117
+msgid "-"
+msgstr "-"
+
+#: libexif/exif-entry.c:1118
+msgid "Y"
+msgstr ""
+
+#: libexif/exif-entry.c:1119
+msgid "Cb"
+msgstr ""
+
+#: libexif/exif-entry.c:1120
+msgid "Cr"
+msgstr ""
+
+#: libexif/exif-entry.c:1121
+msgid "R"
+msgstr "R"
+
+#: libexif/exif-entry.c:1122
+msgid "G"
+msgstr "G"
+
+#: libexif/exif-entry.c:1123
+msgid "B"
+msgstr "B"
+
+#: libexif/exif-entry.c:1124
+#, fuzzy
+msgid "Reserved"
+msgstr "centrado"
+
+#: libexif/exif-entry.c:1147
+msgid "Directly photographed"
+msgstr ""
+
+#: libexif/exif-entry.c:1160
+msgid "YCbCr4:2:2"
+msgstr "YCbCr4:2:2"
+
+#: libexif/exif-entry.c:1162
+msgid "YCbCr4:2:0"
+msgstr "YCbCr4:2:0"
+
+#: libexif/exif-entry.c:1179
+#, c-format
+msgid "Within distance %i of (x,y) = (%i,%i)"
+msgstr ""
+
+#: libexif/exif-entry.c:1188
+#, c-format
+msgid "Within rectangle (width %i, height %i) around (x,y) = (%i,%i)"
+msgstr ""
+
+#: libexif/exif-entry.c:1194
+#, c-format
+msgid "Unexpected number of components (%li, expected 2, 3, or 4)."
+msgstr ""
+
+#: libexif/exif-entry.c:1232
+msgid "Sea level"
+msgstr ""
+
+#: libexif/exif-entry.c:1234
+msgid "Sea level reference"
+msgstr ""
+
+#: libexif/exif-entry.c:1342
+#, c-format
+msgid "Unknown value %i"
+msgstr ""
+
+#: libexif/exif-format.c:37
+msgid "Short"
+msgstr ""
+
+#: libexif/exif-format.c:38
+msgid "Rational"
+msgstr ""
+
+#: libexif/exif-format.c:39
+msgid "SRational"
+msgstr ""
+
+#: libexif/exif-format.c:40
+msgid "Undefined"
+msgstr ""
+
+#: libexif/exif-format.c:41
+msgid "ASCII"
+msgstr ""
+
+#: libexif/exif-format.c:42
+msgid "Long"
+msgstr ""
+
+#: libexif/exif-format.c:43
+msgid "Byte"
+msgstr "Byte"
+
+#: libexif/exif-format.c:44
+msgid "SByte"
+msgstr ""
+
+#: libexif/exif-format.c:45
+msgid "SShort"
+msgstr ""
+
+#: libexif/exif-format.c:46
+msgid "SLong"
+msgstr ""
+
+#: libexif/exif-format.c:47
+msgid "Float"
+msgstr ""
+
+#: libexif/exif-format.c:48
+msgid "Double"
+msgstr ""
+
+#: libexif/exif-loader.c:119
+#, c-format
+msgid "The file '%s' could not be opened."
+msgstr ""
+
+#: libexif/exif-loader.c:300
+msgid "The data supplied does not seem to contain EXIF data."
+msgstr ""
+
+#: libexif/exif-log.c:43
+msgid "Debugging information"
+msgstr ""
+
+#: libexif/exif-log.c:44
+msgid "Debugging information is available."
+msgstr ""
+
+#: libexif/exif-log.c:45
+msgid "Not enough memory"
+msgstr "Memória insuficiente"
+
+#: libexif/exif-log.c:46
+msgid "The system cannot provide enough memory."
+msgstr ""
+
+#: libexif/exif-log.c:47
+msgid "Corrupt data"
+msgstr ""
+
+#: libexif/exif-log.c:48
+msgid "The data provided does not follow the specification."
+msgstr ""
+
+#: libexif/exif-tag.c:62
+msgid "GPS Tag Version"
+msgstr ""
+
+#: libexif/exif-tag.c:63
+msgid ""
+"Indicates the version of <GPSInfoIFD>. The version is given as 2.0.0.0. This "
+"tag is mandatory when <GPSInfo> tag is present. (Note: The <GPSVersionID> "
+"tag is given in bytes, unlike the <ExifVersion> tag. When the version is "
+"2.0.0.0, the tag value is 02000000.H)."
+msgstr ""
+
+#: libexif/exif-tag.c:69
+msgid "Interoperability Index"
+msgstr ""
+
+#: libexif/exif-tag.c:70
+msgid ""
+"Indicates the identification of the Interoperability rule. Use \"R98\" for "
+"stating ExifR98 Rules. Four bytes used including the termination code "
+"(NULL). see the separate volume of Recommended Exif Interoperability Rules "
+"(ExifR98) for other tags used for ExifR98."
+msgstr ""
+
+#: libexif/exif-tag.c:76
+msgid "North or South Latitude"
+msgstr ""
+
+#: libexif/exif-tag.c:77
+msgid ""
+"Indicates whether the latitude is north or south latitude. The ASCII value "
+"'N' indicates north latitude, and 'S' is south latitude."
+msgstr ""
+
+#: libexif/exif-tag.c:81
+msgid "Interoperability Version"
+msgstr ""
+
+#: libexif/exif-tag.c:83
+msgid "Latitude"
+msgstr "Latitude"
+
+#: libexif/exif-tag.c:84
+msgid ""
+"Indicates the latitude. The latitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is dd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is dd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:91
+msgid "East or West Longitude"
+msgstr ""
+
+#: libexif/exif-tag.c:92
+msgid ""
+"Indicates whether the longitude is east or west longitude. ASCII 'E' "
+"indicates east longitude, and 'W' is west longitude."
+msgstr ""
+
+#: libexif/exif-tag.c:95
+msgid "Longitude"
+msgstr "Longitude"
+
+#: libexif/exif-tag.c:96
+msgid ""
+"Indicates the longitude. The longitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is ddd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is ddd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:103
+#, fuzzy
+msgid "Altitude Reference"
+msgstr "Altitude"
+
+#: libexif/exif-tag.c:104
+msgid ""
+"Indicates the altitude used as the reference altitude. If the reference is "
+"sea level and the altitude is above sea level, 0 is given. If the altitude "
+"is below sea level, a value of 1 is given and the altitude is indicated as "
+"an absolute value in the GSPAltitude tag. The reference unit is meters. Note "
+"that this tag is BYTE type, unlike other reference tags."
+msgstr ""
+
+#: libexif/exif-tag.c:110
+msgid "Altitude"
+msgstr "Altitude"
+
+#: libexif/exif-tag.c:111
+msgid ""
+"Indicates the altitude based on the reference in GPSAltitudeRef. Altitude is "
+"expressed as one RATIONAL value. The reference unit is meters."
+msgstr ""
+
+#: libexif/exif-tag.c:114
+msgid "GPS Time (Atomic Clock)"
+msgstr ""
+
+#: libexif/exif-tag.c:115
+msgid ""
+"Indicates the time as UTC (Coordinated Universal Time). TimeStamp is "
+"expressed as three RATIONAL values giving the hour, minute, and second."
+msgstr ""
+
+#: libexif/exif-tag.c:118
+msgid "GPS Satellites"
+msgstr ""
+
+#: libexif/exif-tag.c:119
+msgid ""
+"Indicates the GPS satellites used for measurements. This tag can be used to "
+"describe the number of satellites, their ID number, angle of elevation, "
+"azimuth, SNR and other information in ASCII notation. The format is not "
+"specified. If the GPS receiver is incapable of taking measurements, value of "
+"the tag shall be set to NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:125
+msgid "GPS Receiver Status"
+msgstr ""
+
+#: libexif/exif-tag.c:126
+msgid ""
+"Indicates the status of the GPS receiver when the image is recorded. 'A' "
+"means measurement is in progress, and 'V' means the measurement is "
+"Interoperability."
+msgstr ""
+
+#: libexif/exif-tag.c:129
+msgid "GPS Measurement Mode"
+msgstr ""
+
+#: libexif/exif-tag.c:130
+msgid ""
+"Indicates the GPS measurement mode. '2' means two-dimensional measurement "
+"and '3' means three-dimensional measurement is in progress."
+msgstr ""
+
+#: libexif/exif-tag.c:133
+msgid "Measurement Precision"
+msgstr ""
+
+#: libexif/exif-tag.c:134
+msgid ""
+"Indicates the GPS DOP (data degree of precision). An HDOP value is written "
+"during two-dimensional measurement, and PDOP during three-dimensional "
+"measurement."
+msgstr ""
+
+#: libexif/exif-tag.c:137
+msgid "Speed Unit"
+msgstr ""
+
+#: libexif/exif-tag.c:138
+msgid ""
+"Indicates the unit used to express the GPS receiver speed of movement. 'K', "
+"'M' and 'N' represent kilometers per hour, miles per hour, and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:141
+msgid "Speed of GPS Receiver"
+msgstr ""
+
+#: libexif/exif-tag.c:142
+msgid "Indicates the speed of GPS receiver movement."
+msgstr ""
+
+#: libexif/exif-tag.c:143
+msgid "Reference for direction of movement"
+msgstr ""
+
+#: libexif/exif-tag.c:144
+msgid ""
+"Indicates the reference for giving the direction of GPS receiver movement. "
+"'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:147
+msgid "Direction of Movement"
+msgstr ""
+
+#: libexif/exif-tag.c:148
+msgid ""
+"Indicates the direction of GPS receiver movement. The range of values is "
+"from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:150
+msgid "GPS Image Direction Reference"
+msgstr ""
+
+#: libexif/exif-tag.c:151
+msgid ""
+"Indicates the reference for giving the direction of the image when it is "
+"captured. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:153
+#, fuzzy
+msgid "GPS Image Direction"
+msgstr "Descrição da Imagem"
+
+#: libexif/exif-tag.c:154
+msgid ""
+"Indicates the direction of the image when it was captured. The range of "
+"values is from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:156
+msgid "Geodetic Survey Data Used"
+msgstr ""
+
+#: libexif/exif-tag.c:157
+msgid ""
+"Indicates the geodetic survey data used by the GPS receiver. If the survey "
+"data is restricted to Japan, the value of this tag is 'TOKYO' or 'WGS-84'. "
+"If a GPS Info tag is recorded, it is strongly recommended that this tag be "
+"recorded."
+msgstr ""
+
+#: libexif/exif-tag.c:161
+msgid "Reference For Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:162
+msgid ""
+"Indicates whether the latitude of the destination point is north or south "
+"latitude. The ASCII value 'N' indicates north latitude, and 'S' is south "
+"latitude."
+msgstr ""
+
+#: libexif/exif-tag.c:165
+msgid "Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:166
+msgid ""
+"Indicates the latitude of the destination point. The latitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If latitude is expressed as degrees, minutes and seconds, a "
+"typical format would be dd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be dd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:173
+msgid "Reference for Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:174
+msgid ""
+"Indicates whether the longitude of the destination point is east or west "
+"longitude. ASCII 'E' indicates east longitude, and 'W' is west longitude."
+msgstr ""
+
+#: libexif/exif-tag.c:177
+msgid "Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:178
+msgid ""
+"Indicates the longitude of the destination point. The longitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If longitude is expressed as degrees, minutes and seconds, a "
+"typical format would be ddd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be ddd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:186
+msgid "Reference for Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:187
+msgid ""
+"Indicates the reference used for giving the bearing to the destination "
+"point. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:190
+msgid "Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:191
+msgid ""
+"Indicates the bearing to the destination point. The range of values is from "
+"0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:193
+msgid "Reference for Distance to Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:194
+msgid ""
+"Indicates the unit used to express the distance to the destination point. "
+"'K', 'M' and 'N' represent kilometers, miles and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:197
+msgid "Distance to Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:198
+msgid "Indicates the distance to the destination point."
+msgstr ""
+
+#: libexif/exif-tag.c:199
+msgid "Name of GPS Processing Method"
+msgstr ""
+
+#: libexif/exif-tag.c:200
+msgid ""
+"A character string recording the name of the method used for location "
+"finding. The first byte indicates the character code used, and this is "
+"followed by the name of the method. Since the Type is not ASCII, NULL "
+"termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:205
+msgid "Name of GPS Area"
+msgstr ""
+
+#: libexif/exif-tag.c:206
+msgid ""
+"A character string recording the name of the GPS area. The first byte "
+"indicates the character code used, and this is followed by the name of the "
+"GPS area. Since the Type is not ASCII, NULL termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:210
+msgid "GPS Date"
+msgstr ""
+
+#: libexif/exif-tag.c:211
+msgid ""
+"A character string recording date and time information relative to UTC "
+"(Coordinated Universal Time). The format is \"YYYY:MM:DD\". The length of "
+"the string is 11 bytes including NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:215
+msgid "GPS Differential Correction"
+msgstr ""
+
+#: libexif/exif-tag.c:216
+msgid ""
+"Indicates whether differential correction is applied to the GPS receiver."
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "New Subfile Type"
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "A general indication of the kind of data contained in this subfile."
+msgstr ""
+
+#: libexif/exif-tag.c:222
+msgid "Image Width"
+msgstr "Largura da Imagem"
+
+#: libexif/exif-tag.c:223
+msgid ""
+"The number of columns of image data, equal to the number of pixels per row. "
+"In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:227
+msgid "Image Length"
+msgstr ""
+
+#: libexif/exif-tag.c:228
+msgid ""
+"The number of rows of image data. In JPEG compressed data a JPEG marker is "
+"used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:231
+msgid "Bits per Sample"
+msgstr ""
+
+#: libexif/exif-tag.c:232
+msgid ""
+"The number of bits per image component. In this standard each component of "
+"the image is 8 bits, so the value for this tag is 8. See also "
+"<SamplesPerPixel>. In JPEG compressed data a JPEG marker is used instead of "
+"this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:237
+msgid "Compression"
+msgstr "Compressão"
+
+#: libexif/exif-tag.c:238
+msgid ""
+"The compression scheme used for the image data. When a primary image is JPEG "
+"compressed, this designation is not necessary and is omitted. When "
+"thumbnails use JPEG compression, this tag value is set to 6."
+msgstr ""
+
+#: libexif/exif-tag.c:244
+msgid "Photometric Interpretation"
+msgstr ""
+
+#: libexif/exif-tag.c:245
+msgid ""
+"The pixel composition. In JPEG compressed data a JPEG marker is used instead "
+"of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:249
+msgid "Fill Order"
+msgstr ""
+
+#: libexif/exif-tag.c:251
+msgid "Document Name"
+msgstr "Nome do Documento"
+
+#: libexif/exif-tag.c:253
+msgid "Image Description"
+msgstr "Descrição da Imagem"
+
+#: libexif/exif-tag.c:254
+msgid ""
+"A character string giving the title of the image. It may be a comment such "
+"as \"1988 company picnic\" or the like. Two-bytes character codes cannot be "
+"used. When a 2-bytes code is necessary, the Exif Private tag <UserComment> "
+"is to be used."
+msgstr ""
+
+#: libexif/exif-tag.c:260
+msgid "Manufacturer"
+msgstr "Fabricante"
+
+#: libexif/exif-tag.c:261
+msgid ""
+"The manufacturer of the recording equipment. This is the manufacturer of the "
+"DSC, scanner, video digitizer or other equipment that generated the image. "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:267
+msgid "Model"
+msgstr "Modelo"
+
+#: libexif/exif-tag.c:268
+msgid ""
+"The model name or model number of the equipment. This is the model name or "
+"number of the DSC, scanner, video digitizer or other equipment that "
+"generated the image. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:273
+msgid "Strip Offsets"
+msgstr ""
+
+#: libexif/exif-tag.c:274
+msgid ""
+"For each strip, the byte offset of that strip. It is recommended that this "
+"be selected so the number of strip bytes does not exceed 64 Kbytes. With "
+"JPEG compressed data this designation is not needed and is omitted. See also "
+"<RowsPerStrip> and <StripByteCounts>."
+msgstr ""
+
+#: libexif/exif-tag.c:280
+msgid "Orientation"
+msgstr "Orientação"
+
+#: libexif/exif-tag.c:281
+msgid "The image orientation viewed in terms of rows and columns."
+msgstr ""
+
+#: libexif/exif-tag.c:284
+msgid "Samples per Pixel"
+msgstr ""
+
+#: libexif/exif-tag.c:285
+msgid ""
+"The number of components per pixel. Since this standard applies to RGB and "
+"YCbCr images, the value set for this tag is 3. In JPEG compressed data a "
+"JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:290
+msgid "Rows per Strip"
+msgstr ""
+
+#: libexif/exif-tag.c:291
+msgid ""
+"The number of rows per strip. This is the number of rows in the image of one "
+"strip when an image is divided into strips. With JPEG compressed data this "
+"designation is not needed and is omitted. See also <StripOffsets> and "
+"<StripByteCounts>."
+msgstr ""
+
+#: libexif/exif-tag.c:297
+msgid "Strip Byte Count"
+msgstr ""
+
+#: libexif/exif-tag.c:298
+msgid ""
+"The total number of bytes in each strip. With JPEG compressed data this "
+"designation is not needed and is omitted."
+msgstr ""
+
+#: libexif/exif-tag.c:301
+msgid "X-Resolution"
+msgstr ""
+
+#: libexif/exif-tag.c:302
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageWidth> direction. "
+"When the image resolution is unknown, 72 [dpi] is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:306
+msgid "Y-Resolution"
+msgstr ""
+
+#: libexif/exif-tag.c:307
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageLength> direction. "
+"The same value as <XResolution> is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:311
+msgid "Planar Configuration"
+msgstr ""
+
+#: libexif/exif-tag.c:312
+msgid ""
+"Indicates whether pixel components are recorded in a chunky or planar "
+"format. In JPEG compressed files a JPEG marker is used instead of this tag. "
+"If this field does not exist, the TIFF default of 1 (chunky) is assumed."
+msgstr ""
+
+#: libexif/exif-tag.c:317
+msgid "Resolution Unit"
+msgstr ""
+
+#: libexif/exif-tag.c:318
+msgid ""
+"The unit for measuring <XResolution> and <YResolution>. The same unit is "
+"used for both <XResolution> and <YResolution>. If the image resolution is "
+"unknown, 2 (inches) is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:323
+msgid "Transfer Function"
+msgstr ""
+
+#: libexif/exif-tag.c:324
+msgid ""
+"A transfer function for the image, described in tabular style. Normally this "
+"tag is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:328
+msgid "Software"
+msgstr "Software"
+
+#: libexif/exif-tag.c:329
+msgid ""
+"This tag records the name and version of the software or firmware of the "
+"camera or image input device used to generate the image. The detailed format "
+"is not specified, but it is recommended that the example shown below be "
+"followed. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:336
+msgid "Date and Time"
+msgstr "Data e Hora"
+
+#: libexif/exif-tag.c:337
+msgid ""
+"The date and time of image creation. In this standard (EXIF-2.1) it is the "
+"date and time the file was changed."
+msgstr ""
+
+#: libexif/exif-tag.c:340
+msgid "Artist"
+msgstr "Artista"
+
+#: libexif/exif-tag.c:341
+msgid ""
+"This tag records the name of the camera owner, photographer or image "
+"creator. The detailed format is not specified, but it is recommended that "
+"the information be written as in the example below for ease of "
+"Interoperability. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:347 libexif/pentax/mnote-pentax-tag.c:113
+msgid "White Point"
+msgstr ""
+
+#: libexif/exif-tag.c:348
+msgid ""
+"The chromaticity of the white point of the image. Normally this tag is not "
+"necessary, since color space is specified in the color space information tag "
+"(<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:353
+msgid "Primary Chromaticities"
+msgstr ""
+
+#: libexif/exif-tag.c:354
+msgid ""
+"The chromaticity of the three primary colors of the image. Normally this tag "
+"is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:359
+msgid "Defined by Adobe Corporation to enable TIFF Trees within a TIFF file."
+msgstr ""
+
+#: libexif/exif-tag.c:362
+msgid "Transfer Range"
+msgstr ""
+
+#: libexif/exif-tag.c:366
+msgid "JPEG Interchange Format"
+msgstr ""
+
+#: libexif/exif-tag.c:367
+msgid ""
+"The offset to the start byte (SOI) of JPEG compressed thumbnail data. This "
+"is not used for primary image JPEG data."
+msgstr ""
+
+#: libexif/exif-tag.c:372
+msgid "JPEG Interchange Format Length"
+msgstr ""
+
+#: libexif/exif-tag.c:373
+msgid ""
+"The number of bytes of JPEG compressed thumbnail data. This is not used for "
+"primary image JPEG data. JPEG thumbnails are not divided but are recorded as "
+"a continuous JPEG bitstream from SOI to EOI. Appn and COM markers should not "
+"be recorded. Compressed thumbnails must be recorded in no more than 64 "
+"Kbytes, including all other data to be recorded in APP1."
+msgstr ""
+
+#: libexif/exif-tag.c:382
+msgid "YCbCr Coefficients"
+msgstr ""
+
+#: libexif/exif-tag.c:383
+msgid ""
+"The matrix coefficients for transformation from RGB to YCbCr image data. No "
+"default is given in TIFF; but here the value given in \"Color Space "
+"Guidelines\", is used as the default. The color space is declared in a color "
+"space information tag, with the default being the value that gives the "
+"optimal image characteristics Interoperability this condition."
+msgstr ""
+
+#: libexif/exif-tag.c:392
+msgid "YCbCr Sub-Sampling"
+msgstr ""
+
+#: libexif/exif-tag.c:393
+msgid ""
+"The sampling ratio of chrominance components in relation to the luminance "
+"component. In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:398
+msgid "YCbCr Positioning"
+msgstr ""
+
+#: libexif/exif-tag.c:399
+msgid ""
+"The position of chrominance components in relation to the luminance "
+"component. This field is designated only for JPEG compressed data or "
+"uncompressed YCbCr data. The TIFF default is 1 (centered); but when Y:Cb:Cr "
+"= 4:2:2 it is recommended in this standard that 2 (co-sited) be used to "
+"record data, in order to improve the image quality when viewed on TV "
+"systems. When this field does not exist, the reader shall assume the TIFF "
+"default. In the case of Y:Cb:Cr = 4:2:0, the TIFF default (centered) is "
+"recommended. If the reader does not have the capability of supporting both "
+"kinds of <YCbCrPositioning>, it shall follow the TIFF default regardless of "
+"the value in this field. It is preferable that readers be able to support "
+"both centered and co-sited positioning."
+msgstr ""
+
+#: libexif/exif-tag.c:414
+msgid "Reference Black/White"
+msgstr ""
+
+#: libexif/exif-tag.c:415
+msgid ""
+"The reference black point value and reference white point value. No defaults "
+"are given in TIFF, but the values below are given as defaults here. The "
+"color space is declared in a color space information tag, with the default "
+"being the value that gives the optimal image characteristics "
+"Interoperability these conditions."
+msgstr ""
+
+#: libexif/exif-tag.c:423
+msgid "XML Packet"
+msgstr ""
+
+#: libexif/exif-tag.c:423
+msgid "XMP Metadata"
+msgstr ""
+
+#: libexif/exif-tag.c:438 libexif/exif-tag.c:784
+msgid "CFA Pattern"
+msgstr ""
+
+#: libexif/exif-tag.c:439 libexif/exif-tag.c:785
+msgid ""
+"Indicates the color filter array (CFA) geometric pattern of the image sensor "
+"when a one-chip color area sensor is used. It does not apply to all sensing "
+"methods."
+msgstr ""
+
+#: libexif/exif-tag.c:443
+msgid "Battery Level"
+msgstr ""
+
+#: libexif/exif-tag.c:444
+msgid "Copyright"
+msgstr "Copyright"
+
+#: libexif/exif-tag.c:445
+msgid ""
+"Copyright information. In this standard the tag is used to indicate both the "
+"photographer and editor copyrights. It is the copyright notice of the person "
+"or organization claiming rights to the image. The Interoperability copyright "
+"statement including date and rights should be written in this field; e.g., "
+"\"Copyright, John Smith, 19xx. All rights reserved.\". In this standard the "
+"field records both the photographer and editor copyrights, with each "
+"recorded in a separate part of the statement. When there is a clear "
+"distinction between the photographer and editor copyrights, these are to be "
+"written in the order of photographer followed by editor copyright, separated "
+"by NULL (in this case, since the statement also ends with a NULL, there are "
+"two NULL codes) (see example 1). When only the photographer is given, it is "
+"terminated by one NULL code (see example 2). When only the editor copyright "
+"is given, the photographer copyright part consists of one space followed by "
+"a terminating NULL code, then the editor copyright is given (see example 3). "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:467
+msgid "Exposure time, given in seconds (sec)."
+msgstr ""
+
+#: libexif/exif-tag.c:469 libexif/pentax/mnote-pentax-tag.c:79
+msgid "F-Number"
+msgstr ""
+
+#: libexif/exif-tag.c:470
+msgid "The F number."
+msgstr ""
+
+#: libexif/exif-tag.c:475
+msgid "Image Resources Block"
+msgstr ""
+
+#: libexif/exif-tag.c:477
+msgid ""
+"A pointer to the Exif IFD. Interoperability, Exif IFD has the same structure "
+"as that of the IFD specified in TIFF. ordinarily, however, it does not "
+"contain image data as in the case of TIFF."
+msgstr ""
+
+#: libexif/exif-tag.c:485
+msgid "Exposure Program"
+msgstr ""
+
+#: libexif/exif-tag.c:486
+msgid ""
+"The class of the program used by the camera to set exposure when the picture "
+"is taken."
+msgstr ""
+
+#: libexif/exif-tag.c:490
+msgid "Spectral Sensitivity"
+msgstr ""
+
+#: libexif/exif-tag.c:491
+msgid ""
+"Indicates the spectral sensitivity of each channel of the camera used. The "
+"tag value is an ASCII string compatible with the standard developed by the "
+"ASTM Technical Committee."
+msgstr ""
+
+#: libexif/exif-tag.c:496
+msgid "GPS Info IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:497
+msgid ""
+"A pointer to the GPS Info IFD. The Interoperability structure of the GPS "
+"Info IFD, like that of Exif IFD, has no image data."
+msgstr ""
+
+#: libexif/exif-tag.c:503
+msgid "ISO Speed Ratings"
+msgstr ""
+
+#: libexif/exif-tag.c:504
+msgid ""
+"Indicates the ISO Speed and ISO Latitude of the camera or input device as "
+"specified in ISO 12232."
+msgstr ""
+
+#: libexif/exif-tag.c:507
+msgid "Opto-Electronic Conversion Function"
+msgstr ""
+
+#: libexif/exif-tag.c:508
+msgid ""
+"Indicates the Opto-Electronic Conversion Function (OECF) specified in ISO "
+"14524. <OECF> is the relationship between the camera optical input and the "
+"image values."
+msgstr ""
+
+#: libexif/exif-tag.c:513
+msgid "Time Zone Offset"
+msgstr ""
+
+#: libexif/exif-tag.c:514
+msgid "Encodes time zone of camera clock relative to GMT."
+msgstr ""
+
+#: libexif/exif-tag.c:515
+msgid "Exif Version"
+msgstr ""
+
+#: libexif/exif-tag.c:516
+msgid ""
+"The version of this standard supported. Nonexistence of this field is taken "
+"to mean nonconformance to the standard."
+msgstr ""
+
+#: libexif/exif-tag.c:520
+#, fuzzy
+msgid "Date and Time (Original)"
+msgstr "Data e Hora"
+
+#: libexif/exif-tag.c:521
+msgid ""
+"The date and time when the original image data was generated. For a digital "
+"still camera the date and time the picture was taken are recorded."
+msgstr ""
+
+#: libexif/exif-tag.c:526
+#, fuzzy
+msgid "Date and Time (Digitized)"
+msgstr "Data e Hora"
+
+#: libexif/exif-tag.c:527
+msgid "The date and time when the image was stored as digital data."
+msgstr ""
+
+#: libexif/exif-tag.c:530
+msgid "Components Configuration"
+msgstr ""
+
+#: libexif/exif-tag.c:531
+msgid ""
+"Information specific to compressed data. The channels of each component are "
+"arranged in order from the 1st component to the 4th. For uncompressed data "
+"the data arrangement is given in the <PhotometricInterpretation> tag. "
+"However, since <PhotometricInterpretation> can only express the order of Y, "
+"Cb and Cr, this tag is provided for cases when compressed data uses "
+"components other than Y, Cb, and Cr and to enable support of other sequences."
+msgstr ""
+
+#: libexif/exif-tag.c:541
+msgid "Compressed Bits per Pixel"
+msgstr ""
+
+#: libexif/exif-tag.c:542
+msgid ""
+"Information specific to compressed data. The compression mode used for a "
+"compressed image is indicated in unit bits per pixel."
+msgstr ""
+
+#: libexif/exif-tag.c:546 libexif/olympus/mnote-olympus-tag.c:123
+msgid "Shutter Speed"
+msgstr ""
+
+#: libexif/exif-tag.c:547
+msgid ""
+"Shutter speed. The unit is the APEX (Additive System of Photographic "
+"Exposure) setting."
+msgstr ""
+
+#: libexif/exif-tag.c:551
+msgid "The lens aperture. The unit is the APEX value."
+msgstr ""
+
+#: libexif/exif-tag.c:553
+msgid "Brightness"
+msgstr "Brilho"
+
+#: libexif/exif-tag.c:554
+msgid ""
+"The value of brightness. The unit is the APEX value. Ordinarily it is given "
+"in the range of -99.99 to 99.99."
+msgstr ""
+
+#: libexif/exif-tag.c:558
+msgid "Exposure Bias"
+msgstr ""
+
+#: libexif/exif-tag.c:559
+msgid ""
+"The exposure bias. The units is the APEX value. Ordinarily it is given in "
+"the range of -99.99 to 99.99."
+msgstr ""
+
+#: libexif/exif-tag.c:562
+msgid "Maximum Aperture Value"
+msgstr ""
+
+#: libexif/exif-tag.c:563
+msgid ""
+"The smallest F number of the lens. The unit is the APEX value. Ordinarily it "
+"is given in the range of 00.00 to 99.99, but it is not limited to this range."
+msgstr ""
+
+#: libexif/exif-tag.c:568
+msgid "Subject Distance"
+msgstr ""
+
+#: libexif/exif-tag.c:569
+msgid "The distance to the subject, given in meters."
+msgstr ""
+
+#: libexif/exif-tag.c:572
+msgid "The metering mode."
+msgstr ""
+
+#: libexif/exif-tag.c:574
+msgid "Light Source"
+msgstr ""
+
+#: libexif/exif-tag.c:575
+msgid "The kind of light source."
+msgstr ""
+
+#: libexif/exif-tag.c:578
+msgid ""
+"This tag is recorded when an image is taken using a strobe light (flash)."
+msgstr ""
+
+#: libexif/exif-tag.c:582
+msgid ""
+"The actual focal length of the lens, in mm. Conversion is not made to the "
+"focal length of a 35 mm film camera."
+msgstr ""
+
+#: libexif/exif-tag.c:585
+msgid "Subject Area"
+msgstr ""
+
+#: libexif/exif-tag.c:586
+msgid ""
+"This tag indicates the location and area of the main subject in the overall "
+"scene."
+msgstr ""
+
+#: libexif/exif-tag.c:590
+msgid "TIFF/EP Standard ID"
+msgstr ""
+
+#: libexif/exif-tag.c:591
+msgid "Maker Note"
+msgstr ""
+
+#: libexif/exif-tag.c:592
+msgid ""
+"A tag for manufacturers of Exif writers to record any desired information. "
+"The contents are up to the manufacturer."
+msgstr ""
+
+#: libexif/exif-tag.c:595
+msgid "User Comment"
+msgstr ""
+
+#: libexif/exif-tag.c:596
+msgid ""
+"A tag for Exif users to write keywords or comments on the image besides "
+"those in <ImageDescription>, and without the character code limitations of "
+"the <ImageDescription> tag. The character code used in the <UserComment> tag "
+"is identified based on an ID code in a fixed 8-byte area at the start of the "
+"tag data area. The unused portion of the area is padded with NULL (\"00.h"
+"\"). ID codes are assigned by means of registration. The designation method "
+"and references for each character code are defined in the specification. The "
+"value of CountN is determined based on the 8 bytes in the character code "
+"area and the number of bytes in the user comment part. Since the TYPE is not "
+"ASCII, NULL termination is not necessary. The ID code for the <UserComment> "
+"area may be a Defined code such as JIS or ASCII, or may be Undefined. The "
+"Undefined name is UndefinedText, and the ID code is filled with 8 bytes of "
+"all \"NULL\" (\"00.H\"). An Exif reader that reads the <UserComment> tag "
+"must have a function for determining the ID code. This function is not "
+"required in Exif readers that do not use the <UserComment> tag. When a "
+"<UserComment> area is set aside, it is recommended that the ID code be ASCII "
+"and that the following user comment part be filled with blank characters [20."
+"H]."
+msgstr ""
+
+#: libexif/exif-tag.c:619
+msgid "Sub-second Time"
+msgstr ""
+
+#: libexif/exif-tag.c:620
+msgid "A tag used to record fractions of seconds for the <DateTime> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:624
+msgid "Sub-second Time (Original)"
+msgstr ""
+
+#: libexif/exif-tag.c:625
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeOriginal> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:629
+msgid "Sub-second Time (Digitized)"
+msgstr ""
+
+#: libexif/exif-tag.c:630
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeDigitized> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:634
+msgid "XP Title"
+msgstr ""
+
+#: libexif/exif-tag.c:635
+msgid "A character string giving the title of the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:639
+msgid "XP Comment"
+msgstr ""
+
+#: libexif/exif-tag.c:640
+msgid ""
+"A character string containing a comment about the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:644
+msgid "XP Author"
+msgstr ""
+
+#: libexif/exif-tag.c:645
+msgid ""
+"A character string containing the name of the image creator, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:649
+msgid "XP Keywords"
+msgstr ""
+
+#: libexif/exif-tag.c:650
+msgid ""
+"A character string containing key words describing the image, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:654
+msgid "XP Subject"
+msgstr ""
+
+#: libexif/exif-tag.c:655
+msgid "A character string giving the image subject, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:659
+msgid "The FlashPix format version supported by a FPXR file."
+msgstr ""
+
+#: libexif/exif-tag.c:661 libexif/pentax/mnote-pentax-tag.c:102
+msgid "Color Space"
+msgstr ""
+
+#: libexif/exif-tag.c:662
+msgid ""
+"The color space information tag is always recorded as the color space "
+"specifier. Normally sRGB (=1) is used to define the color space based on the "
+"PC monitor conditions and environment. If a color space other than sRGB is "
+"used, Uncalibrated (=FFFF.H) is set. Image data recorded as Uncalibrated can "
+"be treated as sRGB when it is converted to FlashPix."
+msgstr ""
+
+#: libexif/exif-tag.c:670
+msgid "Pixel X Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:671
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid width of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file."
+msgstr ""
+
+#: libexif/exif-tag.c:677
+msgid "Pixel Y Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:678
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid height of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file. Since data padding is unnecessary in the "
+"vertical direction, the number of lines recorded in this valid image height "
+"tag will in fact be the same as that recorded in the SOF."
+msgstr ""
+
+#: libexif/exif-tag.c:688
+msgid "Related Sound File"
+msgstr ""
+
+#: libexif/exif-tag.c:689
+msgid ""
+"This tag is used to record the name of an audio file related to the image "
+"data. The only relational information recorded here is the Exif audio file "
+"name and extension (an ASCII string consisting of 8 characters + '.' + 3 "
+"characters). The path is not recorded. Stipulations on audio and file naming "
+"conventions are defined in the specification. When using this tag, audio "
+"files must be recorded in conformance to the Exif audio format. Writers are "
+"also allowed to store the data such as Audio within APP2 as FlashPix "
+"extension stream data. The mapping of Exif image files and audio files is "
+"done in any of three ways, [1], [2] and [3]. If multiple files are mapped to "
+"one file as in [2] or [3], the above format is used to record just one audio "
+"file name. If there are multiple audio files, the first recorded file is "
+"given. In the case of [3], for example, for the Exif image file \"DSC00001."
+"JPG\" only  \"SND00001.WAV\" is given as the related Exif audio file. When "
+"there are three Exif audio files \"SND00001.WAV\", \"SND00002.WAV\" and "
+"\"SND00003.WAV\", the Exif image file name for each of them, \"DSC00001.JPG"
+"\", is indicated. By combining multiple relational information, a variety of "
+"playback possibilities can be supported. The method of using relational "
+"information is left to the implementation on the playback side. Since this "
+"information is an ASCII character string, it is terminated by NULL. When "
+"this tag is used to map audio files, the relation of the audio file to image "
+"data must also be indicated on the audio file end."
+msgstr ""
+
+#: libexif/exif-tag.c:719
+msgid "Interoperability IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:720
+msgid ""
+"Interoperability IFD is composed of tags which stores the information to "
+"ensure the Interoperability and pointed by the following tag located in Exif "
+"IFD. The Interoperability structure of Interoperability IFD is the same as "
+"TIFF defined IFD structure but does not contain the image data "
+"characteristically compared with normal TIFF IFD."
+msgstr ""
+
+#: libexif/exif-tag.c:729
+msgid "Flash Energy"
+msgstr ""
+
+#: libexif/exif-tag.c:730
+msgid ""
+"Indicates the strobe energy at the time the image is captured, as measured "
+"in Beam Candle Power Seconds (BCPS)."
+msgstr ""
+
+#: libexif/exif-tag.c:734
+msgid "Spatial Frequency Response"
+msgstr ""
+
+#: libexif/exif-tag.c:735
+msgid ""
+"This tag records the camera or input device spatial frequency table and SFR "
+"values in the direction of image width, image height, and diagonal "
+"direction, as specified in ISO 12233."
+msgstr ""
+
+#: libexif/exif-tag.c:741
+msgid "Focal Plane X-Resolution"
+msgstr ""
+
+#: libexif/exif-tag.c:742
+msgid ""
+"Indicates the number of pixels in the image width (X) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+
+#: libexif/exif-tag.c:746
+msgid "Focal Plane Y-Resolution"
+msgstr ""
+
+#: libexif/exif-tag.c:747
+msgid ""
+"Indicates the number of pixels in the image height (V) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+
+#: libexif/exif-tag.c:751
+msgid "Focal Plane Resolution Unit"
+msgstr ""
+
+#: libexif/exif-tag.c:752
+msgid ""
+"Indicates the unit for measuring <FocalPlaneXResolution> and "
+"<FocalPlaneYResolution>. This value is the same as the <ResolutionUnit>."
+msgstr ""
+
+#: libexif/exif-tag.c:757
+msgid "Subject Location"
+msgstr ""
+
+#: libexif/exif-tag.c:758
+msgid ""
+"Indicates the location of the main subject in the scene. The value of this "
+"tag represents the pixel at the center of the main subject relative to the "
+"left edge, prior to rotation processing as per the <Rotation> tag. The first "
+"value indicates the X column number and the second indicates the Y row "
+"number."
+msgstr ""
+
+#: libexif/exif-tag.c:765
+msgid "Exposure Index"
+msgstr ""
+
+#: libexif/exif-tag.c:766
+msgid ""
+"Indicates the exposure index selected on the camera or input device at the "
+"time the image is captured."
+msgstr ""
+
+#: libexif/exif-tag.c:769
+msgid "Sensing Method"
+msgstr ""
+
+#: libexif/exif-tag.c:770
+msgid "Indicates the image sensor type on the camera or input device."
+msgstr ""
+
+#: libexif/exif-tag.c:773 libexif/fuji/mnote-fuji-tag.c:64
+msgid "File Source"
+msgstr ""
+
+#: libexif/exif-tag.c:774
+msgid ""
+"Indicates the image source. If a DSC recorded the image, the tag value of "
+"this tag always be set to 3, indicating that the image was recorded on a DSC."
+msgstr ""
+
+#: libexif/exif-tag.c:778
+msgid "Scene Type"
+msgstr ""
+
+#: libexif/exif-tag.c:779
+msgid ""
+"Indicates the type of scene. If a DSC recorded the image, this tag value "
+"must always be set to 1, indicating that the image was directly photographed."
+msgstr ""
+
+#: libexif/exif-tag.c:789
+msgid "Custom Rendered"
+msgstr ""
+
+#: libexif/exif-tag.c:790
+msgid ""
+"This tag indicates the use of special processing on image data, such as "
+"rendering geared to output. When special processing is performed, the reader "
+"is expected to disable or minimize any further processing."
+msgstr ""
+
+#: libexif/exif-tag.c:796
+msgid ""
+"This tag indicates the exposure mode set when the image was shot. In auto-"
+"bracketing mode, the camera shoots a series of frames of the same scene at "
+"different exposure settings."
+msgstr ""
+
+#: libexif/exif-tag.c:801
+msgid "This tag indicates the white balance mode set when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:805
+msgid "Digital Zoom Ratio"
+msgstr ""
+
+#: libexif/exif-tag.c:806
+msgid ""
+"This tag indicates the digital zoom ratio when the image was shot. If the "
+"numerator of the recorded value is 0, this indicates that digital zoom was "
+"not used."
+msgstr ""
+
+#: libexif/exif-tag.c:811
+msgid "Focal Length in 35mm Film"
+msgstr ""
+
+#: libexif/exif-tag.c:812
+msgid ""
+"This tag indicates the equivalent focal length assuming a 35mm film camera, "
+"in mm. A value of 0 means the focal length is unknown. Note that this tag "
+"differs from the FocalLength tag."
+msgstr ""
+
+#: libexif/exif-tag.c:818
+msgid "Scene Capture Type"
+msgstr ""
+
+#: libexif/exif-tag.c:819
+msgid ""
+"This tag indicates the type of scene that was shot. It can also be used to "
+"record the mode in which the image was shot. Note that this differs from the "
+"scene type <SceneType> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:824
+msgid "Gain Control"
+msgstr ""
+
+#: libexif/exif-tag.c:825
+msgid "This tag indicates the degree of overall image gain adjustment."
+msgstr ""
+
+#: libexif/exif-tag.c:829
+msgid ""
+"This tag indicates the direction of contrast processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:833
+msgid ""
+"This tag indicates the direction of saturation processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:837
+msgid ""
+"This tag indicates the direction of sharpness processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:841
+msgid "Device Setting Description"
+msgstr ""
+
+#: libexif/exif-tag.c:842
+msgid ""
+"This tag indicates information on the picture-taking conditions of a "
+"particular camera model. The tag is used only to indicate the picture-taking "
+"conditions in the reader."
+msgstr ""
+
+#: libexif/exif-tag.c:848
+msgid "Subject Distance Range"
+msgstr ""
+
+#: libexif/exif-tag.c:849
+msgid "This tag indicates the distance to the subject."
+msgstr ""
+
+#: libexif/exif-tag.c:851
+msgid "Image Unique ID"
+msgstr ""
+
+#: libexif/exif-tag.c:852
+msgid ""
+"This tag indicates an identifier assigned uniquely to each image. It is "
+"recorded as an ASCII string equivalent to hexadecimal notation and 128-bit "
+"fixed length."
+msgstr ""
+
+#: libexif/exif-tag.c:857
+msgid "Gamma"
+msgstr ""
+
+#: libexif/exif-tag.c:858
+msgid "Indicates the value of coefficient gamma."
+msgstr ""
+
+#: libexif/exif-tag.c:860
+msgid "PRINT Image Matching"
+msgstr ""
+
+#: libexif/exif-tag.c:861
+msgid "Related to Epson's PRINT Image Matching technology"
+msgstr ""
+
+#: libexif/exif-tag.c:863
+msgid "Padding"
+msgstr ""
+
+#: libexif/exif-tag.c:864
+msgid ""
+"This tag reserves space that can be reclaimed later when additional metadata "
+"are added. New metadata can be written in place by replacing this tag with a "
+"smaller data element and using the reclaimed space to store the new or "
+"expanded metadata tags."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:62
+msgid "Softest"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:66
+msgid "Hardest"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:67 libexif/fuji/mnote-fuji-entry.c:96
+msgid "Medium soft"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:68 libexif/fuji/mnote-fuji-entry.c:94
+msgid "Medium hard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:69 libexif/fuji/mnote-fuji-entry.c:90
+#: libexif/fuji/mnote-fuji-entry.c:98 libexif/fuji/mnote-fuji-entry.c:182
+msgid "Film simulation mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:79
+msgid "Incandescent"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:85
+msgid "Medium high"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:87
+msgid "Medium low"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:88 libexif/fuji/mnote-fuji-entry.c:97
+msgid "Original"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:124 libexif/pentax/mnote-pentax-entry.c:164
+#: libexif/pentax/mnote-pentax-entry.c:299
+msgid "Program AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:125
+msgid "Natural photo"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:126
+msgid "Vibration reduction"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:127
+msgid "Sunset"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:128 libexif/pentax/mnote-pentax-entry.c:181
+msgid "Museum"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:129
+msgid "Party"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:130
+msgid "Flower"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:131 libexif/pentax/mnote-pentax-entry.c:176
+msgid "Text"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:132
+msgid "NP & flash"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:137
+msgid "Aperture priority AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:138
+msgid "Shutter priority AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:146
+msgid "F-Standard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:147
+msgid "F-Chrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:148
+msgid "F-B&W"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:151
+msgid "No blur"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:152
+msgid "Blur warning"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:155
+msgid "Focus good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:156
+msgid "Out of focus"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:159
+msgid "AE good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:160
+msgid "Over exposed"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:164
+msgid "Wide"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:167
+msgid "F0/Standard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:168
+msgid "F1/Studio portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:169
+msgid "F1a/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:170
+msgid "F1b/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:171
+msgid "F1c/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:172
+msgid "F2/Fujichrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:173
+msgid "F3/Studio portrait Ex"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:174
+msgid "F4/Velvia"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:177
+msgid "Auto (100-400%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:179
+msgid "Standard (100%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:180
+msgid "Wide1 (230%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:181
+msgid "Wide2 (400%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:263
+#, c-format
+msgid "%2.2f mm"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:298 libexif/pentax/mnote-pentax-entry.c:399
+#: libexif/pentax/mnote-pentax-entry.c:451
+#, c-format
+msgid "%i bytes unknown data"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:36
+msgid "Maker Note Version"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:37
+msgid "This number is unique and based on the date of manufacture."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:41
+msgid "Chromaticity Saturation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:44
+msgid "Flash Firing Strength Compensation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:46
+msgid "Focusing Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:47
+msgid "Focus Point"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:48
+msgid "Slow Synchro Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:49 libexif/pentax/mnote-pentax-tag.c:72
+msgid "Picture Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:50
+msgid "Continuous Taking"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:51
+msgid "Continuous Sequence Number"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:52
+msgid "FinePix Color"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:53
+msgid "Blur Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:54
+msgid "Auto Focus Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:55
+msgid "Auto Exposure Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:56
+msgid "Dynamic Range"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:57
+msgid "Film Simulation Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:58
+msgid "Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:59
+msgid "Development Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:60
+msgid "Minimum Focal Length"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:61
+msgid "Maximum Focal Length"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:62
+msgid "Maximum Aperture at Minimum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:63
+msgid "Maximum Aperture at Maximum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:65
+msgid "Order Number"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:66 libexif/pentax/mnote-pentax-tag.c:98
+msgid "Frame Number"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:49
+#, c-format
+msgid "Invalid format '%s', expected '%s' or '%s'."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:89
+msgid "AF non D lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:91
+msgid "AF-D or AF-S lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:92
+msgid "AF-D G lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:93
+msgid "AF-D VR lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:94
+msgid "AF-D G VR lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:98
+msgid "Flash unit unknown"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:99
+msgid "Flash is external"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:100
+msgid "Flash is on camera"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:103
+msgid "VGA basic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:104
+#, fuzzy
+msgid "VGA normal"
+msgstr "normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:105
+msgid "VGA fine"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:106
+msgid "SXGA basic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:107
+#, fuzzy
+msgid "SXGA normal"
+msgstr "normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:108
+msgid "SXGA fine"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:109
+msgid "2 Mpixel basic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:110
+msgid "2 Mpixel normal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:111
+msgid "2 Mpixel fine"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:114
+msgid "Color"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:119
+msgid "Bright+"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:120
+msgid "Bright-"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:121
+msgid "Contrast+"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:122
+msgid "Contrast-"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:125
+msgid "ISO 80"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:126
+msgid "ISO 160"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:127
+msgid "ISO 320"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:128
+#: libexif/olympus/mnote-olympus-entry.c:246
+msgid "ISO 100"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:132
+msgid "Preset"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:134
+msgid "Incandescence"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:135
+msgid "Fluorescence"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:137
+msgid "SpeedLight"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:140
+msgid "No fisheye"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:141
+msgid "Fisheye on"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:144
+msgid "Normal, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:145
+msgid "Normal, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:146
+msgid "Normal, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:147
+msgid "Normal, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:148
+msgid "Normal, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:149
+msgid "Normal, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:150
+msgid "Normal, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:151
+msgid "Normal, standard"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:152
+msgid "Fine, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:153
+msgid "Fine, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:154
+msgid "Fine, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:155
+msgid "Fine, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:156
+msgid "Fine, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:157
+msgid "Fine, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:158
+msgid "Fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:159
+msgid "Super fine, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:160
+msgid "Super fine, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:161
+msgid "Super fine, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:162
+msgid "Super fine, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:163
+msgid "Super fine, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:164
+msgid "Super fine, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:165
+msgid "Super fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:166
+msgid "Super fine, high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:169
+#: libexif/olympus/mnote-olympus-entry.c:174
+#: libexif/olympus/mnote-olympus-entry.c:208
+#: libexif/olympus/mnote-olympus-entry.c:217
+#: libexif/olympus/mnote-olympus-entry.c:240
+msgid "No"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:180
+msgid "On (Preset)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:185
+msgid "Fill"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:192
+msgid "Internal + external"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:221
+msgid "Interlaced"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:222
+msgid "Progressive"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:228
+#: libexif/pentax/mnote-pentax-entry.c:85
+#: libexif/pentax/mnote-pentax-entry.c:139
+msgid "Best"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:229
+msgid "Adjust exposure"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:232
+#, fuzzy
+msgid "Spot focus"
+msgstr "Desportos"
+
+#: libexif/olympus/mnote-olympus-entry.c:233
+#, fuzzy
+msgid "Normal focus"
+msgstr "Processo normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:236
+msgid "Record while down"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:237
+msgid "Press start, press stop"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:245
+msgid "ISO 50"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:247
+msgid "ISO 200"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:248
+msgid "ISO 400"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:252
+#: libexif/pentax/mnote-pentax-entry.c:168
+msgid "Sport"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:253
+msgid "TV"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:255
+msgid "User 1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:256
+msgid "User 2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:257
+msgid "Lamp"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:260
+msgid "5 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:261
+msgid "10 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:262
+msgid "15 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:263
+msgid "20 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:375
+#, c-format
+msgid "Red Correction %f, blue Correction %f"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:383
+#, c-format
+msgid "%2.2f meters"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:385
+msgid "No manual focus selection"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:411
+msgid "AF position: center"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:412
+msgid "AF position: top"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:413
+msgid "AF position: bottom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:414
+msgid "AF position: left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:415
+msgid "AF position: right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:416
+msgid "AF position: upper-left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:417
+msgid "AF position: upper-right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:418
+msgid "AF position: lower-left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:419
+msgid "AF position: lower-right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:420
+msgid "AF position: far left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:421
+msgid "AF position: far right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:422
+msgid "Unknown AF position"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:503
+#, c-format
+msgid "Internal error (unknown value %hi)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:441
+#: libexif/olympus/mnote-olympus-entry.c:511
+#, c-format
+msgid "Unknown value %hi"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:536
+#: libexif/olympus/mnote-olympus-entry.c:556
+#, c-format
+msgid "Unknown %hu"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:553
+msgid "2 sec."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:592
+msgid "Fast"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:696
+msgid "Automatic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:726
+#, c-format
+msgid "Manual: %liK"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:729
+msgid "Manual: unknown"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:735
+msgid "One-touch"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:791
+#: libexif/olympus/mnote-olympus-entry.c:801
+msgid "Infinite"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:809
+#, c-format
+msgid "%i bytes unknown data: "
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:53
+msgid "ISO Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:39
+msgid "Color Mode (?)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:42
+msgid "Image Sharpening"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:44
+msgid "Flash Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:46
+msgid "White Balance Fine Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:47
+msgid "White Balance RB"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:49
+msgid "ISO Selection"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Preview Image IFD"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Offset of the preview image directory (IFD) inside the file."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:51
+msgid "Exposurediff ?"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:54
+msgid "Image Boundary"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:56
+msgid "Flash Exposure Bracket Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:57
+msgid "Exposure Bracket Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:58
+#: libexif/olympus/mnote-olympus-tag.c:96
+msgid "Image Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:59
+msgid "Tone Compensation"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:60
+msgid "Adapter"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:62
+msgid "Lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:63
+#: libexif/olympus/mnote-olympus-tag.c:135
+#: libexif/olympus/mnote-olympus-tag.c:185
+msgid "Manual Focus Distance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:65
+msgid "Flash Used"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:66
+msgid "AF Focus Position"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:67
+msgid "Bracketing"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:69
+msgid "Lens F Stops"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:70
+msgid "Contrast Curve"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:71
+#: libexif/olympus/mnote-olympus-tag.c:95
+#: libexif/pentax/mnote-pentax-tag.c:134
+msgid "Color Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:72
+msgid "Light Type"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:74
+msgid "Hue Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:76
+#: libexif/olympus/mnote-olympus-tag.c:163
+#: libexif/pentax/mnote-pentax-tag.c:108
+msgid "Noise Reduction"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:79
+msgid "Sensor Pixel Size"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Image Data Size"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Size of compressed image data in bytes."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:84
+msgid "Total Number of Pictures Taken"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:86
+msgid "Optimize Image"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:88
+msgid "Vari Program"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:89
+msgid "Capture Editor Data"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:90
+msgid "Capture Editor Version"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:97
+#: libexif/olympus/mnote-olympus-tag.c:183
+msgid "CCD Sensitivity"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:99
+msgid "Focus"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:102
+msgid "Converter"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:105
+msgid "Thumbnail Image"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:106
+msgid "Speed/Sequence/Panorama Direction"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:109
+#, fuzzy
+msgid "Black & White Mode"
+msgstr "Preto & branco"
+
+#: libexif/olympus/mnote-olympus-tag.c:111
+msgid "Focal Plane Diagonal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:112
+msgid "Lens Distortion Parameters"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:114
+msgid "Info"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:115
+msgid "Camera ID"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:116
+msgid "Precapture Frames"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:117
+msgid "White Board"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:118
+msgid "One Touch White Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:119
+msgid "White Balance Bracket"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:120
+#: libexif/pentax/mnote-pentax-tag.c:123
+msgid "White Balance Bias"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:121
+msgid "Data Dump"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:124
+msgid "ISO Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:125
+msgid "Aperture Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:126
+msgid "Brightness Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:128
+msgid "Flash Device"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:130
+msgid "Sensor Temperature"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:131
+msgid "Lens Temperature"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:132
+msgid "Light Condition"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:136
+msgid "Zoom Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:137
+msgid "Focus Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:138
+msgid "Sharpness Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:139
+msgid "Flash Charge Level"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:140
+msgid "Color Matrix"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:141
+msgid "Black Level"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:142
+msgid "White Balance Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:143
+#: libexif/pentax/mnote-pentax-tag.c:87
+msgid "Red Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:144
+#: libexif/pentax/mnote-pentax-tag.c:86
+msgid "Blue Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:145
+msgid "Color Matrix Number"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:147
+msgid "Flash Exposure Comp"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:148
+msgid "Internal Flash Table"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:149
+msgid "External Flash G Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:150
+msgid "External Flash Bounce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:151
+msgid "External Flash Zoom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:152
+msgid "External Flash Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:153
+msgid "Contrast Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:154
+msgid "Sharpness Factor"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:155
+msgid "Color Control"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:156
+msgid "Olympus Image Width"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:157
+msgid "Olympus Image Height"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:158
+msgid "Scene Detect"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:159
+msgid "Compression Ratio"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:160
+msgid "Preview Image Valid"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:161
+msgid "AF Result"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:162
+msgid "CCD Scan Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:164
+msgid "Infinity Lens Step"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:165
+msgid "Near Lens Step"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:166
+msgid "Light Value Center"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:167
+msgid "Light Value Periphery"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:170
+msgid "Sequential Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:171
+msgid "Wide Range"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:172
+msgid "Color Adjustment Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:174
+msgid "Quick Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:176
+msgid "Voice Memo"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:177
+msgid "Record Shutter Release"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:178
+msgid "Flicker Reduce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:179
+msgid "Optical Zoom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:181
+msgid "Light Source Special"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:182
+msgid "Resaved"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:184
+msgid "Scene Select"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:186
+msgid "Sequence Shot Interval"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:189
+msgid "Epson Image Width"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:190
+msgid "Epson Image Height"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:191
+msgid "Epson Software Version"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:80
+#: libexif/pentax/mnote-pentax-entry.c:134
+msgid "Multi-exposure"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:83
+#: libexif/pentax/mnote-pentax-entry.c:137
+msgid "Good"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:84
+#: libexif/pentax/mnote-pentax-entry.c:138
+msgid "Better"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:92
+msgid "Flash on"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:140
+msgid "TIFF"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:150
+msgid "2560x1920 or 2304x1728"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:156
+msgid "2304x1728 or 2592x1944"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:158
+msgid "2816x2212 or 2816x2112"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:171
+msgid "Surf & snow"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:172
+msgid "Sunset or candlelight"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:173
+msgid "Autumn"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:178
+#, fuzzy
+msgid "Self portrait"
+msgstr "Retrato"
+
+#: libexif/pentax/mnote-pentax-entry.c:179
+msgid "Illustrations"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:180
+msgid "Digital filter"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:182
+msgid "Food"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:183
+msgid "Green mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:184
+#, fuzzy
+msgid "Light pet"
+msgstr "Cena nocturna"
+
+#: libexif/pentax/mnote-pentax-entry.c:185
+msgid "Dark pet"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:186
+#, fuzzy
+msgid "Medium pet"
+msgstr "Médio 1"
+
+#: libexif/pentax/mnote-pentax-entry.c:188
+#: libexif/pentax/mnote-pentax-entry.c:296
+msgid "Candlelight"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:189
+msgid "Natural skin tone"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:190
+msgid "Synchro sound record"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:191
+msgid "Frame composite"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:194
+msgid "Auto, did not fire"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:196
+msgid "Auto, did not fire, red-eye reduction"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:197
+msgid "Auto, fired"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:199
+msgid "Auto, fired, red-eye reduction"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:201
+msgid "On, wireless"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:202
+msgid "On, soft"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:203
+msgid "On, slow-sync"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:204
+msgid "On, slow-sync, red-eye reduction"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:205
+msgid "On, trailing-curtain sync"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:213
+msgid "AF-S"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:214
+msgid "AF-C"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:217
+msgid "Upper-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:218
+msgid "Top"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:219
+msgid "Upper-right"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:221
+msgid "Mid-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:223
+msgid "Mid-right"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:225
+msgid "Lower-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:226
+msgid "Bottom"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:227
+msgid "Lower-right"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:228
+#, fuzzy
+msgid "Fixed center"
+msgstr "Bom tempo"
+
+#: libexif/pentax/mnote-pentax-entry.c:232
+msgid "Multiple"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:234
+msgid "Top-center"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:240
+msgid "Bottom-center"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:257
+msgid "User selected"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:282
+msgid "3008x2008 or 3040x2024"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:293
+msgid "Digital filter?"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:374
+#: libexif/pentax/mnote-pentax-entry.c:383
+#, c-format
+msgid "Internal error (unknown value %i %i)"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:35 libexif/pentax/mnote-pentax-tag.c:63
+msgid "Capture Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:36 libexif/pentax/mnote-pentax-tag.c:70
+#: libexif/pentax/mnote-pentax-tag.c:129
+msgid "Quality Level"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:54
+msgid "ISO Speed"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:56
+msgid "Colors"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:59
+msgid "PrintIM Settings"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:60 libexif/pentax/mnote-pentax-tag.c:131
+msgid "Time Zone"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:61
+msgid "Daylight Savings"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:64
+msgid "Preview Size"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:65
+msgid "Preview Length"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:66 libexif/pentax/mnote-pentax-tag.c:122
+msgid "Preview Start"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:67
+msgid "Model Identification"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:68
+msgid "Date"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:69
+msgid "Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:75
+msgid "AF Point Selected"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:76
+msgid "Auto AF Point"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:77
+msgid "Focus Position"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:80
+msgid "ISO Number"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:83
+msgid "Auto Bracketing"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:85
+msgid "White Balance Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:93
+msgid "World Time Location"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:94
+msgid "Hometown City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:95
+msgid "Destination City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Hometown DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Home Daylight Savings Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination Daylight Savings Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:99
+msgid "Image Processing"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:100
+msgid "Picture Mode (2)"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:103
+msgid "Image Area Offset"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:104
+msgid "Raw Image Size"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:105
+msgid "Autofocus Points Used"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:107
+msgid "Camera Temperature"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:110
+msgid "Image Tone"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:111
+msgid "Shake Reduction Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:112
+msgid "Black Point"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:114
+msgid "AE Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:115
+msgid "Lens Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:116
+msgid "Flash Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:117
+msgid "Camera Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:118
+msgid "Battery Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:119
+msgid "Hometown City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:120
+msgid "Destination City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Object Distance"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Distance of photographed object in millimeters."
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:126
+msgid "Flash Distance"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:132
+msgid "Bestshot Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:133
+msgid "CCS ISO Sensitivity"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:135
+msgid "Enhancement"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:136
+msgid "Finer"
+msgstr ""
+
+#: test/nls/test-nls.c:20 test/nls/test-nls.c:23 test/nls/test-nls.c:24
+msgid "[DO_NOT_TRANSLATE_THIS_MARKER]"
+msgstr ""
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/pt_BR.gmo b/framework/modules/c_LibExifModule/libexif-0.6.20/po/pt_BR.gmo
new file mode 100644
index 0000000000000000000000000000000000000000..8fde86e571698097413f4c28652bff3220925954
Binary files /dev/null and b/framework/modules/c_LibExifModule/libexif-0.6.20/po/pt_BR.gmo differ
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/pt_BR.po b/framework/modules/c_LibExifModule/libexif-0.6.20/po/pt_BR.po
new file mode 100644
index 0000000000000000000000000000000000000000..9c49a17ee8da47394d0ba7ace6e3c847333869eb
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/pt_BR.po
@@ -0,0 +1,5579 @@
+# Brazilian Portuguese translation of libexif
+# Copyright (C) 2007 Lutz Mueller and others
+#
+# These translations are licensed under a BSD-style license
+# They were extracted from the BigLinux distribution for import into the
+# libexif repository.
+msgid ""
+msgstr ""
+"Project-Id-Version: libexif\n"
+"Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-12-15 22:14-0800\n"
+"PO-Revision-Date: 2010-04-24 08:59+0000\n"
+"Last-Translator: André Gondim <andregondim@ubuntu.com>\n"
+"Language-Team: Portuguese (Brazil) <pt_BR@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-12-14 00:37+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: libexif/canon/mnote-canon-entry.c:40 libexif/fuji/mnote-fuji-entry.c:35
+#: libexif/olympus/mnote-olympus-entry.c:37
+#: libexif/pentax/mnote-pentax-entry.c:39
+#, c-format
+msgid "Invalid format '%s', expected '%s'."
+msgstr "Formato '%s' inválido, '%s' esperado."
+
+#: libexif/canon/mnote-canon-entry.c:52 libexif/fuji/mnote-fuji-entry.c:47
+#: libexif/olympus/mnote-olympus-entry.c:62
+#: libexif/pentax/mnote-pentax-entry.c:51
+#, c-format
+msgid "Invalid number of components (%i, expected %i)."
+msgstr "Número inválido de componentes (%i, %i esperado)."
+
+#: libexif/canon/mnote-canon-entry.c:61
+#: libexif/olympus/mnote-olympus-entry.c:72
+#: libexif/pentax/mnote-pentax-entry.c:61
+#, c-format
+msgid "Invalid number of components (%i, expected %i or %i)."
+msgstr "Número inválido de componentes (%i, esperados %i ou %i)."
+
+#: libexif/canon/mnote-canon-entry.c:76 libexif/canon/mnote-canon-entry.c:130
+#: libexif/canon/mnote-canon-entry.c:182 libexif/exif-entry.c:796
+#: libexif/olympus/mnote-olympus-entry.c:196
+#: libexif/olympus/mnote-olympus-tag.c:108
+#: libexif/pentax/mnote-pentax-entry.c:174
+#: libexif/pentax/mnote-pentax-entry.c:209
+#: libexif/pentax/mnote-pentax-entry.c:297
+msgid "Macro"
+msgstr "Macro"
+
+#: libexif/canon/mnote-canon-entry.c:77 libexif/canon/mnote-canon-entry.c:79
+#: libexif/canon/mnote-canon-entry.c:157 libexif/canon/mnote-canon-entry.c:160
+#: libexif/canon/mnote-canon-entry.c:163 libexif/exif-entry.c:674
+#: libexif/exif-entry.c:677 libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/exif-entry.c:745 libexif/fuji/mnote-fuji-entry.c:64
+#: libexif/olympus/mnote-olympus-entry.c:118
+#: libexif/olympus/mnote-olympus-entry.c:195
+#: libexif/olympus/mnote-olympus-entry.c:203
+#: libexif/olympus/mnote-olympus-entry.c:213
+#: libexif/olympus/mnote-olympus-entry.c:586
+#: libexif/pentax/mnote-pentax-entry.c:105
+#: libexif/pentax/mnote-pentax-entry.c:110
+#: libexif/pentax/mnote-pentax-entry.c:115
+#: libexif/pentax/mnote-pentax-entry.c:208
+msgid "Normal"
+msgstr "Normal"
+
+#: libexif/canon/mnote-canon-entry.c:78
+msgid "Economy"
+msgstr "Econômica"
+
+#: libexif/canon/mnote-canon-entry.c:80
+msgid "Fine"
+msgstr "Fino"
+
+#: libexif/canon/mnote-canon-entry.c:81 libexif/fuji/mnote-fuji-entry.c:178
+#: libexif/pentax/mnote-pentax-entry.c:141
+msgid "RAW"
+msgstr "RAW"
+
+#: libexif/canon/mnote-canon-entry.c:82
+msgid "Superfine"
+msgstr "Superfino"
+
+#: libexif/canon/mnote-canon-entry.c:83 libexif/canon/mnote-canon-entry.c:301
+#: libexif/canon/mnote-canon-entry.c:304 libexif/canon/mnote-canon-entry.c:312
+#: libexif/canon/mnote-canon-entry.c:345 libexif/canon/mnote-canon-entry.c:357
+#: libexif/canon/mnote-canon-entry.c:370 libexif/canon/mnote-canon-entry.c:372
+#: libexif/canon/mnote-canon-entry.c:574 libexif/canon/mnote-canon-entry.c:671
+#: libexif/fuji/mnote-fuji-entry.c:70 libexif/fuji/mnote-fuji-entry.c:103
+#: libexif/fuji/mnote-fuji-entry.c:107 libexif/fuji/mnote-fuji-entry.c:115
+#: libexif/fuji/mnote-fuji-entry.c:142
+#: libexif/olympus/mnote-olympus-entry.c:178
+#: libexif/olympus/mnote-olympus-entry.c:186
+#: libexif/olympus/mnote-olympus-entry.c:251
+#: libexif/olympus/mnote-olympus-entry.c:530
+#: libexif/olympus/mnote-olympus-entry.c:547
+#: libexif/pentax/mnote-pentax-entry.c:195
+#: libexif/pentax/mnote-pentax-entry.c:260
+msgid "Off"
+msgstr "Desligado"
+
+#: libexif/canon/mnote-canon-entry.c:84 libexif/canon/mnote-canon-entry.c:167
+#: libexif/canon/mnote-canon-entry.c:180 libexif/canon/mnote-canon-entry.c:328
+#: libexif/canon/mnote-canon-entry.c:400 libexif/fuji/mnote-fuji-entry.c:73
+#: libexif/fuji/mnote-fuji-entry.c:101 libexif/fuji/mnote-fuji-entry.c:111
+#: libexif/fuji/mnote-fuji-entry.c:119
+#: libexif/olympus/mnote-olympus-entry.c:131
+#: libexif/olympus/mnote-olympus-entry.c:183
+#: libexif/olympus/mnote-olympus-entry.c:199
+#: libexif/olympus/mnote-olympus-entry.c:244
+#: libexif/pentax/mnote-pentax-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:88
+#: libexif/pentax/mnote-pentax-entry.c:91
+#: libexif/pentax/mnote-pentax-entry.c:97
+#: libexif/pentax/mnote-pentax-entry.c:131
+#: libexif/pentax/mnote-pentax-entry.c:229
+#: libexif/pentax/mnote-pentax-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:290
+msgid "Auto"
+msgstr "Automático"
+
+#: libexif/canon/mnote-canon-entry.c:85 libexif/canon/mnote-canon-entry.c:302
+#: libexif/canon/mnote-canon-entry.c:347 libexif/canon/mnote-canon-entry.c:361
+#: libexif/canon/mnote-canon-entry.c:371 libexif/fuji/mnote-fuji-entry.c:102
+#: libexif/fuji/mnote-fuji-entry.c:108 libexif/fuji/mnote-fuji-entry.c:116
+#: libexif/fuji/mnote-fuji-entry.c:143
+#: libexif/olympus/mnote-olympus-entry.c:179
+#: libexif/olympus/mnote-olympus-entry.c:533
+#: libexif/olympus/mnote-olympus-entry.c:550
+#: libexif/pentax/mnote-pentax-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:261
+msgid "On"
+msgstr "Ligado"
+
+#: libexif/canon/mnote-canon-entry.c:86 libexif/fuji/mnote-fuji-entry.c:104
+#: libexif/olympus/mnote-olympus-entry.c:184
+#: libexif/pentax/mnote-pentax-entry.c:94
+msgid "Red-eye reduction"
+msgstr "Redução de olhos-vermelhos"
+
+#: libexif/canon/mnote-canon-entry.c:87
+msgid "Slow synchro"
+msgstr "Sincronização lenta"
+
+#: libexif/canon/mnote-canon-entry.c:88
+#, fuzzy
+msgid "Auto, red-eye reduction"
+msgstr "Automático + Redução de olhos vermelhos"
+
+#: libexif/canon/mnote-canon-entry.c:89
+#: libexif/pentax/mnote-pentax-entry.c:200
+#, fuzzy
+msgid "On, red-eye reduction"
+msgstr "Redução de olhos vermelhos, ativado"
+
+#: libexif/canon/mnote-canon-entry.c:90
+msgid "External flash"
+msgstr "Flash externo"
+
+#: libexif/canon/mnote-canon-entry.c:91 libexif/canon/mnote-canon-entry.c:101
+#: libexif/canon/mnote-canon-entry.c:294
+msgid "Single"
+msgstr "Simples"
+
+#: libexif/canon/mnote-canon-entry.c:92 libexif/canon/mnote-canon-entry.c:102
+#: libexif/canon/mnote-canon-entry.c:295
+msgid "Continuous"
+msgstr "Contínuo"
+
+#: libexif/canon/mnote-canon-entry.c:93
+msgid "Movie"
+msgstr "Filme"
+
+#: libexif/canon/mnote-canon-entry.c:94
+msgid "Continuous, speed priority"
+msgstr "Continuo, priorizando velocidade"
+
+#: libexif/canon/mnote-canon-entry.c:95
+msgid "Continuous, low"
+msgstr "Contínuo, baixo"
+
+#: libexif/canon/mnote-canon-entry.c:96
+msgid "Continuous, high"
+msgstr "Contínuo, alto"
+
+#: libexif/canon/mnote-canon-entry.c:97
+msgid "One-shot AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:98
+msgid "AI servo AF"
+msgstr "AI servo AF"
+
+#: libexif/canon/mnote-canon-entry.c:99
+msgid "AI focus AF"
+msgstr "AI foco AF"
+
+#: libexif/canon/mnote-canon-entry.c:100 libexif/canon/mnote-canon-entry.c:103
+msgid "Manual focus"
+msgstr "Foco manual"
+
+#: libexif/canon/mnote-canon-entry.c:104 libexif/canon/mnote-canon-entry.c:132
+#: libexif/canon/mnote-canon-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:212
+msgid "Pan focus"
+msgstr "Pan foco"
+
+#: libexif/canon/mnote-canon-entry.c:105
+msgid "JPEG"
+msgstr "JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:106
+msgid "CRW+THM"
+msgstr "CRW+THM"
+
+#: libexif/canon/mnote-canon-entry.c:107
+msgid "AVI+THM"
+msgstr "AVI+THM"
+
+#: libexif/canon/mnote-canon-entry.c:108
+msgid "TIF"
+msgstr "TIF"
+
+#: libexif/canon/mnote-canon-entry.c:109
+msgid "TIF+JPEG"
+msgstr "TIF+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:110
+msgid "CR2"
+msgstr "CR2"
+
+#: libexif/canon/mnote-canon-entry.c:111
+msgid "CR2+JPEG"
+msgstr "CR2+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:112
+msgid "Large"
+msgstr "Grande"
+
+#: libexif/canon/mnote-canon-entry.c:113
+msgid "Medium"
+msgstr "Médio"
+
+#: libexif/canon/mnote-canon-entry.c:114
+msgid "Small"
+msgstr "Pequeno"
+
+#: libexif/canon/mnote-canon-entry.c:115
+msgid "Medium 1"
+msgstr "Médio 1"
+
+#: libexif/canon/mnote-canon-entry.c:116
+msgid "Medium 2"
+msgstr "Médio 2"
+
+#: libexif/canon/mnote-canon-entry.c:117
+msgid "Medium 3"
+msgstr "Médio 3"
+
+#: libexif/canon/mnote-canon-entry.c:118
+msgid "Postcard"
+msgstr "Cartão postal"
+
+#: libexif/canon/mnote-canon-entry.c:119
+msgid "Widescreen"
+msgstr "Widescreen"
+
+#: libexif/canon/mnote-canon-entry.c:120
+msgid "Full auto"
+msgstr "Automático"
+
+#: libexif/canon/mnote-canon-entry.c:121 libexif/canon/mnote-canon-entry.c:179
+#: libexif/canon/mnote-canon-entry.c:201 libexif/canon/mnote-canon-entry.c:285
+#: libexif/canon/mnote-canon-entry.c:392 libexif/exif-entry.c:744
+#: libexif/fuji/mnote-fuji-entry.c:112
+#: libexif/olympus/mnote-olympus-entry.c:90
+#: libexif/olympus/mnote-olympus-entry.c:200
+#: libexif/pentax/mnote-pentax-entry.c:79
+#: libexif/pentax/mnote-pentax-entry.c:102
+#: libexif/pentax/mnote-pentax-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:165
+#: libexif/pentax/mnote-pentax-entry.c:211
+#: libexif/pentax/mnote-pentax-entry.c:250
+msgid "Manual"
+msgstr "Manual"
+
+#: libexif/canon/mnote-canon-entry.c:122 libexif/canon/mnote-canon-entry.c:430
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:755
+#: libexif/fuji/mnote-fuji-entry.c:121 libexif/pentax/mnote-pentax-entry.c:167
+#: libexif/pentax/mnote-pentax-entry.c:301
+msgid "Landscape"
+msgstr "Paisagem"
+
+#: libexif/canon/mnote-canon-entry.c:123
+msgid "Fast shutter"
+msgstr "Obturador rápido"
+
+#: libexif/canon/mnote-canon-entry.c:124
+msgid "Slow shutter"
+msgstr "Obturador Lento"
+
+#: libexif/canon/mnote-canon-entry.c:125 libexif/fuji/mnote-fuji-entry.c:123
+#: libexif/olympus/mnote-olympus-entry.c:254
+msgid "Night"
+msgstr "Noite"
+
+#: libexif/canon/mnote-canon-entry.c:126
+msgid "Grayscale"
+msgstr "Escala de cinza"
+
+#: libexif/canon/mnote-canon-entry.c:127 libexif/canon/mnote-canon-entry.c:308
+#: libexif/pentax/mnote-pentax-entry.c:128
+msgid "Sepia"
+msgstr "Sépia"
+
+#: libexif/canon/mnote-canon-entry.c:128 libexif/canon/mnote-canon-entry.c:429
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:753
+#: libexif/fuji/mnote-fuji-entry.c:120 libexif/pentax/mnote-pentax-entry.c:166
+#: libexif/pentax/mnote-pentax-entry.c:291
+#: libexif/pentax/mnote-pentax-entry.c:294
+#: libexif/pentax/mnote-pentax-entry.c:300
+msgid "Portrait"
+msgstr "Retrato"
+
+#: libexif/canon/mnote-canon-entry.c:129 libexif/fuji/mnote-fuji-entry.c:122
+msgid "Sports"
+msgstr "Esportes"
+
+#: libexif/canon/mnote-canon-entry.c:131 libexif/canon/mnote-canon-entry.c:309
+#: libexif/canon/mnote-canon-entry.c:335 libexif/canon/mnote-canon-entry.c:407
+#: libexif/fuji/mnote-fuji-entry.c:89 libexif/pentax/mnote-pentax-entry.c:127
+msgid "Black & white"
+msgstr "Preto & branco"
+
+#: libexif/canon/mnote-canon-entry.c:133 libexif/canon/mnote-canon-entry.c:305
+msgid "Vivid"
+msgstr "Vivo"
+
+#: libexif/canon/mnote-canon-entry.c:134 libexif/canon/mnote-canon-entry.c:306
+#: libexif/canon/mnote-canon-entry.c:431
+msgid "Neutral"
+msgstr "Neutro"
+
+#: libexif/canon/mnote-canon-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:93
+msgid "Flash off"
+msgstr "Flash desligado"
+
+#: libexif/canon/mnote-canon-entry.c:136
+msgid "Long shutter"
+msgstr "Obturador longo"
+
+#: libexif/canon/mnote-canon-entry.c:137 libexif/canon/mnote-canon-entry.c:188
+#: libexif/olympus/mnote-olympus-entry.c:171
+msgid "Super macro"
+msgstr "Super macro"
+
+#: libexif/canon/mnote-canon-entry.c:138
+msgid "Foliage"
+msgstr "Folhagem"
+
+#: libexif/canon/mnote-canon-entry.c:139
+msgid "Indoor"
+msgstr "Interno"
+
+#: libexif/canon/mnote-canon-entry.c:140 libexif/fuji/mnote-fuji-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:175
+msgid "Fireworks"
+msgstr "Fogos de artifício"
+
+#: libexif/canon/mnote-canon-entry.c:141 libexif/fuji/mnote-fuji-entry.c:133
+msgid "Beach"
+msgstr "Praia"
+
+#: libexif/canon/mnote-canon-entry.c:142 libexif/canon/mnote-canon-entry.c:344
+#: libexif/canon/mnote-canon-entry.c:416 libexif/fuji/mnote-fuji-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:292
+#: libexif/pentax/mnote-pentax-entry.c:298
+msgid "Underwater"
+msgstr "Subaquático"
+
+#: libexif/canon/mnote-canon-entry.c:143 libexif/fuji/mnote-fuji-entry.c:134
+msgid "Snow"
+msgstr "Neve"
+
+#: libexif/canon/mnote-canon-entry.c:144
+msgid "Kids & pets"
+msgstr "Crianças e animais de estimação"
+
+#: libexif/canon/mnote-canon-entry.c:145
+msgid "Night snapshot"
+msgstr "Captura noturna"
+
+#: libexif/canon/mnote-canon-entry.c:146
+msgid "Digital macro"
+msgstr "Macro digital"
+
+#: libexif/canon/mnote-canon-entry.c:147
+msgid "My colors"
+msgstr "Minhas cores"
+
+#: libexif/canon/mnote-canon-entry.c:148
+msgid "Still image"
+msgstr "Imagem fotografada"
+
+#: libexif/canon/mnote-canon-entry.c:149
+msgid "Color accent"
+msgstr "Tom de cor"
+
+#: libexif/canon/mnote-canon-entry.c:150
+msgid "Color swap"
+msgstr "Troca de cores"
+
+#: libexif/canon/mnote-canon-entry.c:151
+msgid "Aquarium"
+msgstr "Aquário"
+
+#: libexif/canon/mnote-canon-entry.c:152
+msgid "ISO 3200"
+msgstr "ISO 3200"
+
+#: libexif/canon/mnote-canon-entry.c:153 libexif/canon/mnote-canon-entry.c:348
+#: libexif/canon/mnote-canon-entry.c:365 libexif/canon/mnote-canon-entry.c:417
+#: libexif/olympus/mnote-olympus-entry.c:189
+#: libexif/olympus/mnote-olympus-entry.c:226
+#: libexif/olympus/mnote-olympus-entry.c:451
+#: libexif/pentax/mnote-pentax-entry.c:242
+msgid "None"
+msgstr "Nenhum"
+
+#: libexif/canon/mnote-canon-entry.c:154
+msgid "2x"
+msgstr "2x"
+
+#: libexif/canon/mnote-canon-entry.c:155
+msgid "4x"
+msgstr "4x"
+
+#: libexif/canon/mnote-canon-entry.c:156 libexif/exif-entry.c:702
+#: libexif/exif-entry.c:732
+msgid "Other"
+msgstr "Outro"
+
+#: libexif/canon/mnote-canon-entry.c:158 libexif/canon/mnote-canon-entry.c:161
+#: libexif/canon/mnote-canon-entry.c:164 libexif/canon/mnote-canon-entry.c:398
+#: libexif/fuji/mnote-fuji-entry.c:86 libexif/pentax/mnote-pentax-entry.c:112
+#: libexif/pentax/mnote-pentax-entry.c:117
+msgid "High"
+msgstr "Alto"
+
+#: libexif/canon/mnote-canon-entry.c:159 libexif/canon/mnote-canon-entry.c:162
+#: libexif/canon/mnote-canon-entry.c:165 libexif/canon/mnote-canon-entry.c:396
+#: libexif/pentax/mnote-pentax-entry.c:111
+#: libexif/pentax/mnote-pentax-entry.c:116
+msgid "Low"
+msgstr "Baixo"
+
+#: libexif/canon/mnote-canon-entry.c:166
+msgid "Auto high"
+msgstr "Alto Automático"
+
+#: libexif/canon/mnote-canon-entry.c:168
+msgid "50"
+msgstr "50"
+
+#: libexif/canon/mnote-canon-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:120
+#: libexif/pentax/mnote-pentax-entry.c:122
+msgid "100"
+msgstr "100"
+
+#: libexif/canon/mnote-canon-entry.c:170
+#: libexif/pentax/mnote-pentax-entry.c:121
+#: libexif/pentax/mnote-pentax-entry.c:123
+msgid "200"
+msgstr "200"
+
+#: libexif/canon/mnote-canon-entry.c:171
+msgid "400"
+msgstr "400"
+
+#: libexif/canon/mnote-canon-entry.c:172
+msgid "800"
+msgstr "800"
+
+#: libexif/canon/mnote-canon-entry.c:173
+msgid "Default"
+msgstr "Padrão"
+
+#: libexif/canon/mnote-canon-entry.c:174 libexif/exif-entry.c:698
+msgid "Spot"
+msgstr "Local"
+
+#: libexif/canon/mnote-canon-entry.c:175 libexif/exif-entry.c:696
+msgid "Average"
+msgstr "Média"
+
+#: libexif/canon/mnote-canon-entry.c:176
+msgid "Evaluative"
+msgstr "Avaliativa"
+
+#: libexif/canon/mnote-canon-entry.c:177 libexif/exif-entry.c:701
+msgid "Partial"
+msgstr "Parcial"
+
+#: libexif/canon/mnote-canon-entry.c:178 libexif/exif-entry.c:697
+msgid "Center-weighted average"
+msgstr "Balaceamento central médio"
+
+#: libexif/canon/mnote-canon-entry.c:181
+msgid "Not known"
+msgstr "Desconhecido"
+
+#: libexif/canon/mnote-canon-entry.c:183
+msgid "Very close"
+msgstr "Fechamento alto"
+
+#: libexif/canon/mnote-canon-entry.c:184 libexif/exif-entry.c:797
+msgid "Close"
+msgstr "Fechar"
+
+#: libexif/canon/mnote-canon-entry.c:185
+msgid "Middle range"
+msgstr "Faixa média"
+
+#: libexif/canon/mnote-canon-entry.c:186
+msgid "Far range"
+msgstr "Faixa distante"
+
+#: libexif/canon/mnote-canon-entry.c:189
+#: libexif/pentax/mnote-pentax-entry.c:210
+msgid "Infinity"
+msgstr "Infinito"
+
+#: libexif/canon/mnote-canon-entry.c:190
+msgid "Manual AF point selection"
+msgstr "Seleção manual do ponto AF"
+
+#: libexif/canon/mnote-canon-entry.c:191 libexif/canon/mnote-canon-entry.c:349
+msgid "None (MF)"
+msgstr "Nenhum (MF)"
+
+#: libexif/canon/mnote-canon-entry.c:192
+msgid "Auto-selected"
+msgstr "Auto-seleção"
+
+#: libexif/canon/mnote-canon-entry.c:193 libexif/canon/mnote-canon-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:224
+#: libexif/pentax/mnote-pentax-entry.c:238
+msgid "Right"
+msgstr "Direita"
+
+#: libexif/canon/mnote-canon-entry.c:194 libexif/canon/mnote-canon-entry.c:351
+#: libexif/pentax/mnote-pentax-entry.c:222
+#: libexif/pentax/mnote-pentax-entry.c:237
+msgid "Center"
+msgstr "Centro"
+
+#: libexif/canon/mnote-canon-entry.c:195 libexif/canon/mnote-canon-entry.c:353
+#: libexif/pentax/mnote-pentax-entry.c:220
+#: libexif/pentax/mnote-pentax-entry.c:236
+msgid "Left"
+msgstr "Esquerda"
+
+#: libexif/canon/mnote-canon-entry.c:196
+msgid "Auto AF point selection"
+msgstr "Selação automática do ponto AF"
+
+#: libexif/canon/mnote-canon-entry.c:197
+msgid "Easy shooting"
+msgstr "Disparo suave"
+
+#: libexif/canon/mnote-canon-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:163
+msgid "Program"
+msgstr "Programa"
+
+#: libexif/canon/mnote-canon-entry.c:199
+msgid "Tv-priority"
+msgstr "Prioridade TV"
+
+#: libexif/canon/mnote-canon-entry.c:200
+msgid "Av-priority"
+msgstr "Prioridade AV"
+
+#: libexif/canon/mnote-canon-entry.c:202
+msgid "A-DEP"
+msgstr "A-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:203
+msgid "M-DEP"
+msgstr "M-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:204
+msgid "Canon EF 50mm f/1.8"
+msgstr "Canon EF 50mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:205
+msgid "Canon EF 28mm f/2.8"
+msgstr "Canon EF 28mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:206
+msgid "Sigma UC Zoom 35-135mm f/4-5.6"
+msgstr "Sigma UC Zoom 35-135mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:207
+msgid "Tokina AF193-2 19-35mm f/3.5-4.5"
+msgstr "Tokina AF193-2 19-35mm f/3.5-4.5"
+
+#: libexif/canon/mnote-canon-entry.c:208
+msgid "Canon EF 100-300mm F5.6L"
+msgstr "Canon EF 100-300mm F5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:209
+msgid "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+msgstr "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:210
+msgid "Canon EF 35mm f/2"
+msgstr "Canon EF 35mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:211
+msgid "Canon EF 15mm f/2.8"
+msgstr "Canon EF 15mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:212
+msgid "Canon EF 80-200mm f/2.8L"
+msgstr "Canon EF 80-200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:213
+#, fuzzy
+msgid "Tokina AT-X280AF PRO 28-80mm F2.8 Aspherical"
+msgstr "Tokina AT-X280AF PRO 28-80mm F2.8 ASPHERICAL"
+
+#: libexif/canon/mnote-canon-entry.c:214
+msgid "Cosina 100mm f/3.5 Macro AF"
+msgstr "Cosina 100mm f/3.5 Macro AF"
+
+#: libexif/canon/mnote-canon-entry.c:215
+msgid "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+msgstr "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:216
+msgid "Canon EF 50mm f/1.8 MkII"
+msgstr "Canon EF 50mm f/1.8 MkII"
+
+#: libexif/canon/mnote-canon-entry.c:217
+msgid "Tamron SP AF 300mm f/2.8 LD IF"
+msgstr "Tamron SP AF 300mm f/2.8 LD IF"
+
+#: libexif/canon/mnote-canon-entry.c:218
+msgid "Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+msgstr "Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+
+#: libexif/canon/mnote-canon-entry.c:219
+msgid "Canon EF 75-300mm f/4-5.6"
+msgstr "Canon EF 75-300mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:220
+msgid "Canon EF 28-80mm f/3.5-5.6"
+msgstr "Canon EF 28-80mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:221
+msgid "Canon EF 28-105mm f/4-5.6"
+msgstr "Canon EF 28-105mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:222
+msgid "Canon EF-S 18-55mm f/3.5-5.6"
+msgstr "Canon EF-S 18-55mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:223
+msgid "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+msgstr "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+
+#: libexif/canon/mnote-canon-entry.c:224
+msgid "Canon TS-E 24mm f/3.5L"
+msgstr "Canon TS-E 24mm f/3.5L"
+
+#: libexif/canon/mnote-canon-entry.c:225
+msgid "Canon TS-E 45mm f/2.8"
+msgstr "Canon TS-E 45mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:226
+msgid "Canon TS-E 90mm f/2.8"
+msgstr "Canon TS-E 90mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:227
+msgid "Canon EF 50mm f/1.0L"
+msgstr "Canon EF 50mm f/1.0L"
+
+#: libexif/canon/mnote-canon-entry.c:228
+msgid "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+msgstr "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+
+#: libexif/canon/mnote-canon-entry.c:229
+msgid "Canon EF 600mm f/4L IS"
+msgstr "Canon EF 600mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:230
+msgid "Canon EF 200mm f/1.8L"
+msgstr "Canon EF 200mm f/1.8L"
+
+#: libexif/canon/mnote-canon-entry.c:231
+msgid "Canon EF 300mm f/2.8L"
+msgstr "Canon EF 300mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:232
+msgid "Canon EF 85mm f/1.2L"
+msgstr "Canon EF 85mm f/1.2L"
+
+#: libexif/canon/mnote-canon-entry.c:233
+msgid "Canon EF 400mm f/2.8L"
+msgstr "Canon EF 400mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:234
+msgid "Canon EF 500mm f/4.5L"
+msgstr "Canon EF 500mm f/4.5L"
+
+#: libexif/canon/mnote-canon-entry.c:235
+msgid "Canon EF 300mm f/2.8L IS"
+msgstr "Canon EF 300mm f/2.8L IS"
+
+#: libexif/canon/mnote-canon-entry.c:236
+msgid "Canon EF 500mm f/4L IS"
+msgstr "Canon EF 500mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:237
+msgid "Canon EF 100mm f/2"
+msgstr "Canon EF 100mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:238
+msgid "Sigma 20mm EX f/1.8"
+msgstr "Sigma 20mm EX f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:239
+msgid "Canon EF 200mm f/2.8L"
+msgstr "Canon EF 200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:240
+msgid "Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+msgstr "Sigma 10-20mm F4-5.6 ou 12-24mm f/4.5-5.6 ou 14mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:241
+msgid "Canon EF 35-350mm f/3.5-5.6L"
+msgstr "Canon EF 35-350mm f/3.5-5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:242
+msgid "Canon EF 85mm f/1.8 USM"
+msgstr "Canon EF 85mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:243
+msgid "Canon EF 28-105mm f/3.5-4.5 USM"
+msgstr "Canon EF 28-105mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:244
+msgid "Canon EF 20-35mm f/3.5-4.5 USM"
+msgstr "Canon EF 20-35mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:245
+msgid "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+msgstr "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:246
+msgid "Canon EF 70-200mm f/2.8 L"
+msgstr "Canon EF 70-200mm f/2.8 L"
+
+#: libexif/canon/mnote-canon-entry.c:247
+msgid "Canon EF 70-200mm f/2.8 L + x1.4"
+msgstr "Canon EF 70-200mm f/2.8 L + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:248
+msgid "Canon EF 70-200mm f/2.8 L + x2"
+msgstr "Canon EF 70-200mm f/2.8 L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:249
+msgid "Canon EF 28mm f/1.8 USM"
+msgstr "Canon EF 28mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:250
+msgid "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+msgstr "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+
+#: libexif/canon/mnote-canon-entry.c:251
+msgid "Canon EF 200mm f/2.8L II"
+msgstr "Canon EF 200mm f/2.8L II"
+
+#: libexif/canon/mnote-canon-entry.c:252
+msgid "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+msgstr "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+
+#: libexif/canon/mnote-canon-entry.c:253
+msgid "Canon EF 135mm f/2L"
+msgstr "Canon EF 135mm f/2L"
+
+#: libexif/canon/mnote-canon-entry.c:254
+msgid "Canon EF 24-85mm f/3.5-4.5 USM"
+msgstr "Canon EF 24-85mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:255
+msgid "Canon EF 300mm f/4L IS"
+msgstr "Canon EF 300mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:256
+msgid "Canon EF 28-135mm f/3.5-5.6 IS"
+msgstr "Canon EF 28-135mm f/3.5-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:257
+msgid "Canon EF 35mm f/1.4L"
+msgstr "Canon EF 35mm f/1.4L"
+
+#: libexif/canon/mnote-canon-entry.c:258
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:259
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+
+#: libexif/canon/mnote-canon-entry.c:260
+msgid "Canon EF 100-400mm f/4.5-5.6L IS"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS"
+
+#: libexif/canon/mnote-canon-entry.c:261
+msgid "Canon EF 400mm f/2.8L + x2"
+msgstr "Canon EF 400mm f/2.8L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:262
+msgid "Canon EF 70-200mm f/4L"
+msgstr "Canon EF 70-200mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:263
+msgid "Canon EF 100mm f/2.8 Macro"
+msgstr "Canon EF 100mm f/2.8 Macro"
+
+#: libexif/canon/mnote-canon-entry.c:264
+msgid "Canon EF 400mm f/4 DO IS"
+msgstr "Canon EF 400mm f/4 DO IS"
+
+#: libexif/canon/mnote-canon-entry.c:265
+msgid "Canon EF 75-300mm f/4-5.6 IS"
+msgstr "Canon EF 75-300mm f/4-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:266
+msgid "Canon EF 50mm f/1.4"
+msgstr "Canon EF 50mm f/1.4"
+
+#: libexif/canon/mnote-canon-entry.c:267
+msgid "Canon EF 28-80 f/3.5-5.6 USM IV"
+msgstr "Canon EF 28-80 f/3.5-5.6 USM IV"
+
+#: libexif/canon/mnote-canon-entry.c:268
+msgid "Canon EF 28-200mm f/3.5-5.6"
+msgstr "Canon EF 28-200mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:269
+msgid "Canon EF 90-300mm f/4.5-5.6"
+msgstr "Canon EF 90-300mm f/4.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:270
+msgid "Canon EF-S 18-55mm f/3.5-4.5 USM"
+msgstr "Canon EF-S 18-55mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:271
+msgid "Canon EF 70-200mm f/2.8L IS USM"
+msgstr "Canon EF 70-200mm f/2.8L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:272
+msgid "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+msgstr "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:273
+msgid "Canon EF 70-200mm f/2.8L IS USM + x2"
+msgstr "Canon EF 70-200mm f/2.8L IS USM + x2"
+
+#: libexif/canon/mnote-canon-entry.c:274
+msgid "Canon EF 16-35mm f/2.8L"
+msgstr "Canon EF 16-35mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:275
+msgid "Canon EF 24-70mm f/2.8L"
+msgstr "Canon EF 24-70mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:276
+msgid "Canon EF 17-40mm f/4L"
+msgstr "Canon EF 17-40mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:277
+msgid "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+msgstr "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:278
+msgid "Canon EF-S 17-85mm f4-5.6 IS USM"
+msgstr "Canon EF-S 17-85mm f4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:279
+msgid "Canon EF-S10-22mm F3.5-4.5 USM"
+msgstr "Canon EF-S10-22mm F3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:280
+msgid "Canon EF-S60mm F2.8 Macro USM"
+msgstr "Canon EF-S60mm F2.8 Macro USM"
+
+#: libexif/canon/mnote-canon-entry.c:281
+msgid "Canon EF 24-105mm f/4L IS"
+msgstr "Canon EF 24-105mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:282
+msgid "Canon EF 70-300mm F4-5.6 IS USM"
+msgstr "Canon EF 70-300mm F4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:283
+msgid "Canon EF 50mm F1.2L USM"
+msgstr "Canon EF 50mm F1.2L USM"
+
+#: libexif/canon/mnote-canon-entry.c:284
+msgid "Canon EF 70-200mm f/4L IS USM"
+msgstr "Canon EF 70-200mm f/4L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:286
+msgid "TTL"
+msgstr "TTL"
+
+#: libexif/canon/mnote-canon-entry.c:287
+msgid "A-TTL"
+msgstr "A-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:288
+msgid "E-TTL"
+msgstr "E-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:289
+msgid "FP sync enabled"
+msgstr "Sincronização FP habilitada"
+
+#: libexif/canon/mnote-canon-entry.c:290
+msgid "2nd-curtain sync used"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:291
+msgid "FP sync used"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:292
+#: libexif/olympus/mnote-olympus-entry.c:190
+msgid "Internal"
+msgstr "Interno"
+
+#: libexif/canon/mnote-canon-entry.c:293
+#: libexif/olympus/mnote-olympus-entry.c:191
+msgid "External"
+msgstr "Externo"
+
+#: libexif/canon/mnote-canon-entry.c:296
+msgid "Normal AE"
+msgstr "Normal AE"
+
+#: libexif/canon/mnote-canon-entry.c:297
+msgid "Exposure compensation"
+msgstr "Compensação de exposição"
+
+#: libexif/canon/mnote-canon-entry.c:298
+msgid "AE lock"
+msgstr "Bloqueio AE"
+
+#: libexif/canon/mnote-canon-entry.c:299
+#, fuzzy
+msgid "AE lock + exposure compensation"
+msgstr "Bloqueio AE + Compensação de exposição"
+
+#: libexif/canon/mnote-canon-entry.c:300
+msgid "No AE"
+msgstr "Nenhum AE"
+
+#: libexif/canon/mnote-canon-entry.c:303
+msgid "On, shot only"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:307
+msgid "Smooth"
+msgstr "Suave"
+
+#: libexif/canon/mnote-canon-entry.c:310 libexif/canon/mnote-canon-entry.c:334
+#: libexif/canon/mnote-canon-entry.c:393 libexif/canon/mnote-canon-entry.c:406
+#: libexif/fuji/mnote-fuji-entry.c:81 libexif/pentax/mnote-pentax-entry.c:87
+msgid "Custom"
+msgstr "Personalizado"
+
+#: libexif/canon/mnote-canon-entry.c:311
+msgid "My color data"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:313 libexif/canon/mnote-canon-entry.c:375
+#: libexif/pentax/mnote-pentax-entry.c:126
+#: libexif/pentax/mnote-pentax-entry.c:145
+msgid "Full"
+msgstr "Completo"
+
+#: libexif/canon/mnote-canon-entry.c:314 libexif/canon/mnote-canon-entry.c:374
+msgid "2/3"
+msgstr "2/3"
+
+#: libexif/canon/mnote-canon-entry.c:315 libexif/canon/mnote-canon-entry.c:373
+msgid "1/3"
+msgstr "1/3"
+
+#: libexif/canon/mnote-canon-entry.c:321
+msgid "Fixed"
+msgstr "Fixo"
+
+#: libexif/canon/mnote-canon-entry.c:322 libexif/pentax/mnote-pentax-tag.c:44
+msgid "Zoom"
+msgstr "Zoom"
+
+#: libexif/canon/mnote-canon-entry.c:329
+msgid "Sunny"
+msgstr "Ensolarado"
+
+#: libexif/canon/mnote-canon-entry.c:330 libexif/canon/mnote-canon-entry.c:402
+#: libexif/exif-entry.c:719 libexif/fuji/mnote-fuji-entry.c:75
+#: libexif/olympus/mnote-olympus-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:255
+msgid "Cloudy"
+msgstr "Nublado"
+
+#: libexif/canon/mnote-canon-entry.c:331 libexif/canon/mnote-canon-entry.c:403
+#: libexif/exif-entry.c:716 libexif/pentax/mnote-pentax-entry.c:100
+#: libexif/pentax/mnote-pentax-entry.c:249
+msgid "Tungsten"
+msgstr "Tungstênio"
+
+#: libexif/canon/mnote-canon-entry.c:332 libexif/canon/mnote-canon-entry.c:404
+#: libexif/exif-entry.c:715 libexif/pentax/mnote-pentax-entry.c:101
+#: libexif/pentax/mnote-pentax-entry.c:248
+msgid "Fluorescent"
+msgstr "Fluorescente"
+
+#: libexif/canon/mnote-canon-entry.c:333 libexif/canon/mnote-canon-entry.c:405
+#: libexif/exif-entry.c:717 libexif/exif-entry.c:759 libexif/exif-tag.c:577
+#: libexif/fuji/mnote-fuji-entry.c:80 libexif/pentax/mnote-pentax-entry.c:254
+msgid "Flash"
+msgstr "Flash"
+
+#: libexif/canon/mnote-canon-entry.c:336 libexif/canon/mnote-canon-entry.c:408
+#: libexif/exif-entry.c:720 libexif/pentax/mnote-pentax-entry.c:99
+#: libexif/pentax/mnote-pentax-entry.c:247
+msgid "Shade"
+msgstr "Sombra"
+
+#: libexif/canon/mnote-canon-entry.c:337 libexif/canon/mnote-canon-entry.c:409
+msgid "Manual temperature (Kelvin)"
+msgstr "Temperatura manual (Kelvin)"
+
+#: libexif/canon/mnote-canon-entry.c:338 libexif/canon/mnote-canon-entry.c:410
+msgid "PC set 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:339 libexif/canon/mnote-canon-entry.c:411
+msgid "PC set 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:340 libexif/canon/mnote-canon-entry.c:412
+msgid "PC set 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:341 libexif/canon/mnote-canon-entry.c:413
+#: libexif/exif-entry.c:721 libexif/fuji/mnote-fuji-entry.c:76
+#: libexif/pentax/mnote-pentax-entry.c:251
+msgid "Daylight fluorescent"
+msgstr "Luz fluorescente"
+
+#: libexif/canon/mnote-canon-entry.c:342 libexif/canon/mnote-canon-entry.c:414
+msgid "Custom 1"
+msgstr "Personalizado 1"
+
+#: libexif/canon/mnote-canon-entry.c:343 libexif/canon/mnote-canon-entry.c:415
+msgid "Custom 2"
+msgstr "Personalizado 2"
+
+#: libexif/canon/mnote-canon-entry.c:346 libexif/exif-entry.c:672
+#: libexif/pentax/mnote-pentax-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:132
+#: libexif/pentax/mnote-pentax-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:295
+msgid "Night scene"
+msgstr "Cena noturna"
+
+#: libexif/canon/mnote-canon-entry.c:352
+#, fuzzy
+msgid "Center-right"
+msgstr "Centro + Direita"
+
+#: libexif/canon/mnote-canon-entry.c:354
+#, fuzzy
+msgid "Left-right"
+msgstr "Esquerda para direita"
+
+#: libexif/canon/mnote-canon-entry.c:355
+#, fuzzy
+msgid "Left-center"
+msgstr "Esquerda + Centro"
+
+#: libexif/canon/mnote-canon-entry.c:356
+msgid "All"
+msgstr "Todas"
+
+#: libexif/canon/mnote-canon-entry.c:358
+msgid "On (shot 1)"
+msgstr "Ligar (shot 1)"
+
+#: libexif/canon/mnote-canon-entry.c:359
+msgid "On (shot 2)"
+msgstr "Ligar (shot 2)"
+
+#: libexif/canon/mnote-canon-entry.c:360
+msgid "On (shot 3)"
+msgstr "Ligar (shot 3)"
+
+#: libexif/canon/mnote-canon-entry.c:362
+msgid "EOS high-end"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:363
+msgid "Compact"
+msgstr "Compacto"
+
+#: libexif/canon/mnote-canon-entry.c:364
+msgid "EOS mid-range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:366
+msgid "Rotate 90 CW"
+msgstr "Rotacionar 90 CW"
+
+#: libexif/canon/mnote-canon-entry.c:367
+msgid "Rotate 180"
+msgstr "Rotacionar 180"
+
+#: libexif/canon/mnote-canon-entry.c:368
+msgid "Rotate 270 CW"
+msgstr "Rotacionar 270 CW"
+
+#: libexif/canon/mnote-canon-entry.c:369
+msgid "Rotated by software"
+msgstr "Rotacionar pelo software"
+
+#: libexif/canon/mnote-canon-entry.c:381
+#: libexif/olympus/mnote-olympus-entry.c:606
+msgid "Left to right"
+msgstr "Esquerda para direita"
+
+#: libexif/canon/mnote-canon-entry.c:382
+#: libexif/olympus/mnote-olympus-entry.c:609
+msgid "Right to left"
+msgstr "Direita para esquerda"
+
+#: libexif/canon/mnote-canon-entry.c:383
+#: libexif/olympus/mnote-olympus-entry.c:612
+msgid "Bottom to top"
+msgstr "Baixo para cima"
+
+#: libexif/canon/mnote-canon-entry.c:384
+#: libexif/olympus/mnote-olympus-entry.c:615
+msgid "Top to bottom"
+msgstr "Cima para baixo"
+
+#: libexif/canon/mnote-canon-entry.c:385
+msgid "2x2 matrix (clockwise)"
+msgstr "matriz 2x2 (horário)"
+
+#: libexif/canon/mnote-canon-entry.c:391 libexif/canon/mnote-canon-entry.c:397
+#: libexif/canon/mnote-canon-entry.c:418 libexif/canon/mnote-canon-entry.c:428
+#: libexif/exif-entry.c:671 libexif/fuji/mnote-fuji-entry.c:84
+#: libexif/fuji/mnote-fuji-entry.c:93 libexif/fuji/mnote-fuji-entry.c:163
+#: libexif/olympus/mnote-olympus-entry.c:227
+msgid "Standard"
+msgstr "Padrão"
+
+#: libexif/canon/mnote-canon-entry.c:394
+msgid "N/A"
+msgstr "N/D"
+
+#: libexif/canon/mnote-canon-entry.c:395
+msgid "Lowest"
+msgstr "Mais baixa"
+
+#: libexif/canon/mnote-canon-entry.c:399
+msgid "Highest"
+msgstr "Mais alta"
+
+#: libexif/canon/mnote-canon-entry.c:401 libexif/exif-entry.c:714
+#: libexif/fuji/mnote-fuji-entry.c:74
+#: libexif/olympus/mnote-olympus-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:98
+#: libexif/pentax/mnote-pentax-entry.c:246
+msgid "Daylight"
+msgstr "Luz do dia"
+
+#: libexif/canon/mnote-canon-entry.c:419
+msgid "Set 1"
+msgstr "Conjunto 1"
+
+#: libexif/canon/mnote-canon-entry.c:420
+msgid "Set 2"
+msgstr "Conjunto 2"
+
+#: libexif/canon/mnote-canon-entry.c:421
+msgid "Set 3"
+msgstr "Conjunto 3"
+
+#: libexif/canon/mnote-canon-entry.c:422
+#, fuzzy
+msgid "User def. 1"
+msgstr "Usuário 1"
+
+#: libexif/canon/mnote-canon-entry.c:423
+#, fuzzy
+msgid "User def. 2"
+msgstr "Usuário 2"
+
+#: libexif/canon/mnote-canon-entry.c:424
+msgid "User def. 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:425
+msgid "External 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:426
+msgid "External 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:427
+msgid "External 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:432
+msgid "Faithful"
+msgstr "Fiel"
+
+#: libexif/canon/mnote-canon-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:115
+msgid "Monochrome"
+msgstr "Monocromático"
+
+#: libexif/canon/mnote-canon-entry.c:491
+msgid ", "
+msgstr ", "
+
+#: libexif/canon/mnote-canon-entry.c:577 libexif/canon/mnote-canon-entry.c:674
+#, c-format
+msgid "%i (ms)"
+msgstr "%i (ms)"
+
+#: libexif/canon/mnote-canon-entry.c:621
+#, c-format
+msgid "%.2f mm"
+msgstr "%.2f mm"
+
+#: libexif/canon/mnote-canon-entry.c:645
+#, c-format
+msgid "%.2f EV"
+msgstr "%.2f EV"
+
+#: libexif/canon/mnote-canon-entry.c:655 libexif/exif-entry.c:1064
+#, c-format
+msgid "1/%i"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:667
+#, c-format
+msgid "%u mm"
+msgstr "%u mm"
+
+#: libexif/canon/mnote-canon-tag.c:35
+msgid "Settings (First Part)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:36 libexif/canon/mnote-canon-tag.c:92
+#: libexif/exif-tag.c:581 libexif/pentax/mnote-pentax-tag.c:88
+msgid "Focal Length"
+msgstr "Comprimento focal"
+
+#: libexif/canon/mnote-canon-tag.c:37
+msgid "Settings (Second Part)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:38
+#: libexif/olympus/mnote-olympus-entry.c:595
+#: libexif/pentax/mnote-pentax-entry.c:177
+msgid "Panorama"
+msgstr "Panorama"
+
+#: libexif/canon/mnote-canon-tag.c:39
+msgid "Image Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:40 libexif/olympus/mnote-olympus-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:113
+msgid "Firmware Version"
+msgstr "Versão do firmware"
+
+#: libexif/canon/mnote-canon-tag.c:41
+msgid "Image Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:42
+msgid "Owner Name"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:43
+msgid "Color Information"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:44 libexif/fuji/mnote-fuji-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:81
+#: libexif/olympus/mnote-olympus-tag.c:146
+msgid "Serial Number"
+msgstr "Número de série"
+
+#: libexif/canon/mnote-canon-tag.c:45
+msgid "Custom Functions"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:56 libexif/fuji/mnote-fuji-tag.c:45
+msgid "Macro Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:57 libexif/canon/mnote-canon-tag.c:117
+#: libexif/olympus/mnote-olympus-tag.c:175
+#: libexif/pentax/mnote-pentax-tag.c:128
+msgid "Self-timer"
+msgstr "Auto-Timer"
+
+#: libexif/canon/mnote-canon-tag.c:58 libexif/fuji/mnote-fuji-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:94
+#: libexif/olympus/mnote-olympus-tag.c:107
+msgid "Quality"
+msgstr "Qualidade"
+
+#: libexif/canon/mnote-canon-tag.c:59 libexif/fuji/mnote-fuji-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:45
+#: libexif/olympus/mnote-olympus-tag.c:127
+#: libexif/pentax/mnote-pentax-tag.c:38 libexif/pentax/mnote-pentax-tag.c:73
+msgid "Flash Mode"
+msgstr "Modo flash"
+
+#: libexif/canon/mnote-canon-tag.c:60 libexif/pentax/mnote-pentax-tag.c:101
+msgid "Drive Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:61 libexif/canon/mnote-canon-tag.c:82
+#: libexif/olympus/mnote-olympus-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:134
+#: libexif/olympus/mnote-olympus-tag.c:173
+#: libexif/pentax/mnote-pentax-tag.c:37 libexif/pentax/mnote-pentax-tag.c:74
+#: libexif/pentax/mnote-pentax-tag.c:130
+msgid "Focus Mode"
+msgstr "Modo foco"
+
+#: libexif/canon/mnote-canon-tag.c:62 libexif/pentax/mnote-pentax-tag.c:127
+msgid "Record Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:63 libexif/pentax/mnote-pentax-tag.c:71
+msgid "Image Size"
+msgstr "Tamanho da imagem"
+
+#: libexif/canon/mnote-canon-tag.c:64
+msgid "Easy Shooting Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:65 libexif/olympus/mnote-olympus-tag.c:64
+#: libexif/olympus/mnote-olympus-tag.c:101
+#: libexif/olympus/mnote-olympus-tag.c:110
+#: libexif/olympus/mnote-olympus-tag.c:180
+#: libexif/pentax/mnote-pentax-tag.c:89
+msgid "Digital Zoom"
+msgstr "Zoom digital"
+
+#: libexif/canon/mnote-canon-tag.c:66 libexif/exif-tag.c:828
+#: libexif/fuji/mnote-fuji-tag.c:42 libexif/pentax/mnote-pentax-tag.c:46
+#: libexif/pentax/mnote-pentax-tag.c:91
+msgid "Contrast"
+msgstr "Contraste"
+
+#: libexif/canon/mnote-canon-tag.c:67 libexif/exif-tag.c:832
+#: libexif/olympus/mnote-olympus-tag.c:75
+#: libexif/olympus/mnote-olympus-tag.c:87 libexif/pentax/mnote-pentax-tag.c:47
+#: libexif/pentax/mnote-pentax-tag.c:90
+msgid "Saturation"
+msgstr "Saturação"
+
+#: libexif/canon/mnote-canon-tag.c:68 libexif/exif-tag.c:836
+#: libexif/fuji/mnote-fuji-tag.c:39 libexif/pentax/mnote-pentax-tag.c:45
+#: libexif/pentax/mnote-pentax-tag.c:92
+msgid "Sharpness"
+msgstr "Nitidez"
+
+#: libexif/canon/mnote-canon-tag.c:69
+msgid "ISO"
+msgstr "ISO"
+
+#: libexif/canon/mnote-canon-tag.c:70 libexif/exif-tag.c:571
+#: libexif/pentax/mnote-pentax-tag.c:82
+msgid "Metering Mode"
+msgstr "Modo de medida"
+
+#: libexif/canon/mnote-canon-tag.c:71 libexif/olympus/mnote-olympus-tag.c:133
+msgid "Focus Range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:72 libexif/canon/mnote-canon-tag.c:105
+msgid "AF Point"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:73 libexif/exif-tag.c:795
+msgid "Exposure Mode"
+msgstr "Modo de exposição"
+
+#: libexif/canon/mnote-canon-tag.c:74 libexif/olympus/mnote-olympus-tag.c:61
+#: libexif/pentax/mnote-pentax-tag.c:106
+msgid "Lens Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:75
+msgid "Long Focal Length of Lens"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:76
+msgid "Short Focal Length of Lens"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:77
+msgid "Focal Units per mm"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:78
+msgid "Maximal Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:79
+msgid "Minimal Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:80
+msgid "Flash Activity"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:81
+msgid "Flash Details"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:83
+msgid "AE Setting"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:84
+msgid "Image Stabilization"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:85
+msgid "Display Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:86
+msgid "Zoom Source Width"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:87
+msgid "Zoom Target Width"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:88
+msgid "Photo Effect"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:89 libexif/canon/mnote-canon-tag.c:118
+msgid "Manual Flash Output"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:90
+msgid "Color Tone"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:91
+msgid "Focal Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:93
+msgid "Focal Plane X Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:94
+msgid "Focal Plane Y Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:95
+msgid "Auto ISO"
+msgstr "Auto ISO"
+
+#: libexif/canon/mnote-canon-tag.c:96
+msgid "Shot ISO"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:97
+msgid "Measured EV"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:98
+msgid "Target Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:99
+msgid "Target Exposure Time"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:100 libexif/olympus/mnote-olympus-tag.c:129
+#: libexif/pentax/mnote-pentax-tag.c:81
+msgid "Exposure Compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:101 libexif/canon/mnote-canon-tag.c:123
+#: libexif/exif-tag.c:800 libexif/fuji/mnote-fuji-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:41
+#: libexif/olympus/mnote-olympus-tag.c:98 libexif/pentax/mnote-pentax-tag.c:41
+#: libexif/pentax/mnote-pentax-tag.c:84 libexif/pentax/mnote-pentax-tag.c:124
+msgid "White Balance"
+msgstr "Balanceamento de branco"
+
+#: libexif/canon/mnote-canon-tag.c:102
+msgid "Slow Shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:103
+msgid "Sequence Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:104
+msgid "Flash Guide Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:106 libexif/olympus/mnote-olympus-tag.c:52
+#: libexif/pentax/mnote-pentax-tag.c:109
+msgid "Flash Exposure Compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:107
+msgid "AE Bracketing"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:108
+msgid "AE Bracket Value"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:109
+msgid "Focus Distance Upper"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:110
+msgid "Focus Distance Lower"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:111
+msgid "FNumber"
+msgstr "FNumber"
+
+#: libexif/canon/mnote-canon-tag.c:112 libexif/exif-tag.c:466
+#: libexif/pentax/mnote-pentax-tag.c:78
+msgid "Exposure Time"
+msgstr "Tempo de Exposição"
+
+#: libexif/canon/mnote-canon-tag.c:113
+msgid "Bulb Duration"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:114
+msgid "Camera Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:115
+msgid "Auto Rotate"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:116
+msgid "ND Filter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:119
+msgid "Panorama Frame"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:120
+msgid "Panorama Direction"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:121
+msgid "Tone Curve"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:122
+msgid "Sharpness Frequency"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:124
+msgid "Picture Style"
+msgstr ""
+
+#: libexif/exif-byte-order.c:33
+msgid "Motorola"
+msgstr "Motorola"
+
+#: libexif/exif-byte-order.c:35
+msgid "Intel"
+msgstr "Intel"
+
+#: libexif/exif-data.c:780
+msgid "Size of data too small to allow for EXIF data."
+msgstr ""
+
+#: libexif/exif-data.c:841
+msgid "EXIF marker not found."
+msgstr "Marcador EXIF não encontrado."
+
+#: libexif/exif-data.c:868
+msgid "EXIF header not found."
+msgstr "Cabeçalho EXIF não encontrado."
+
+#: libexif/exif-data.c:884
+msgid "Unknown encoding."
+msgstr "Codificação desconhecida."
+
+#: libexif/exif-data.c:1168
+msgid "Ignore unknown tags"
+msgstr "Ignorar marcações desconhecidas"
+
+#: libexif/exif-data.c:1169
+msgid "Ignore unknown tags when loading EXIF data."
+msgstr "Ignorar marcações desconhecidas enquanto carrega os dados do EXIF."
+
+#: libexif/exif-data.c:1170
+msgid "Follow specification"
+msgstr "Seguinte especificação"
+
+#: libexif/exif-data.c:1171
+msgid ""
+"Add, correct and remove entries to get EXIF data that follows the "
+"specification."
+msgstr ""
+"Adicionar, corrigir e excluir entradas para pegar os dados do EXIF que segue "
+"as especificações."
+
+#: libexif/exif-data.c:1173
+msgid "Do not change maker note"
+msgstr ""
+
+#: libexif/exif-data.c:1174
+msgid ""
+"When loading and resaving Exif data, save the maker note unmodified. Be "
+"aware that the maker note can get corrupted."
+msgstr ""
+
+#: libexif/exif-entry.c:234 libexif/exif-entry.c:303 libexif/exif-entry.c:336
+#, c-format
+msgid ""
+"Tag '%s' was of format '%s' (which is against specification) and has been "
+"changed to format '%s'."
+msgstr ""
+
+#: libexif/exif-entry.c:271
+#, c-format
+msgid ""
+"Tag '%s' is of format '%s' (which is against specification) but cannot be "
+"changed to format '%s'."
+msgstr ""
+
+#: libexif/exif-entry.c:354
+#, c-format
+msgid ""
+"Tag 'UserComment' had invalid format '%s'. Format has been set to "
+"'undefined'."
+msgstr ""
+
+#: libexif/exif-entry.c:381
+msgid ""
+"Tag 'UserComment' has been expanded to at least 8 bytes in order to follow "
+"the specification."
+msgstr ""
+
+#: libexif/exif-entry.c:396
+msgid ""
+"Tag 'UserComment' is not empty but does not start with a format identifier. "
+"This has been fixed."
+msgstr ""
+
+#: libexif/exif-entry.c:424
+msgid ""
+"Tag 'UserComment' did not start with a format identifier. This has been "
+"fixed."
+msgstr ""
+
+#: libexif/exif-entry.c:462
+#, c-format
+msgid "%i bytes undefined data"
+msgstr ""
+
+#: libexif/exif-entry.c:589
+#, c-format
+msgid "%i bytes unsupported data type"
+msgstr ""
+
+#: libexif/exif-entry.c:622
+#, c-format
+msgid "The tag '%s' contains data of an invalid format ('%s', expected '%s')."
+msgstr ""
+"A marcação '%s' contem dados ou formato inválido ('%s', esperado '%s')."
+
+#: libexif/exif-entry.c:635
+#, c-format
+msgid ""
+"The tag '%s' contains an invalid number of components (%i, expected %i)."
+msgstr ""
+"A marcação '%s' contém um número inválido de componentes (%i, esperado %i)."
+
+#: libexif/exif-entry.c:649
+#, fuzzy
+msgid "Chunky format"
+msgstr "formato plano"
+
+#: libexif/exif-entry.c:649
+#, fuzzy
+msgid "Planar format"
+msgstr "formato plano"
+
+#: libexif/exif-entry.c:651 libexif/exif-entry.c:743
+#: test/nls/test-codeset.c:54
+msgid "Not defined"
+msgstr "Não definido"
+
+#: libexif/exif-entry.c:651
+msgid "One-chip color area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:652
+msgid "Two-chip color area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:652
+msgid "Three-chip color area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:653
+msgid "Color sequential area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:653
+msgid "Trilinear sensor"
+msgstr "Sensor trilinear"
+
+#: libexif/exif-entry.c:654
+msgid "Color sequential linear sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:233
+msgid "Top-left"
+msgstr "Esquerda superior"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:235
+msgid "Top-right"
+msgstr "Canto superior-direito"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:241
+msgid "Bottom-right"
+msgstr "Canto inferior-direito"
+
+#: libexif/exif-entry.c:657 libexif/pentax/mnote-pentax-entry.c:239
+msgid "Bottom-left"
+msgstr "Canto inferior-esquerdo"
+
+#: libexif/exif-entry.c:657
+#, fuzzy
+msgid "Left-top"
+msgstr "esquerda - acima"
+
+#: libexif/exif-entry.c:657
+#, fuzzy
+msgid "Right-top"
+msgstr "direita - acima"
+
+#: libexif/exif-entry.c:658
+#, fuzzy
+msgid "Right-bottom"
+msgstr "direita - abaixo"
+
+#: libexif/exif-entry.c:658
+#, fuzzy
+msgid "Left-bottom"
+msgstr "esquerda - abaixo"
+
+#: libexif/exif-entry.c:660
+#, fuzzy
+msgid "Centered"
+msgstr "centralizado"
+
+#: libexif/exif-entry.c:660
+#, fuzzy
+msgid "Co-sited"
+msgstr "Fechar"
+
+#: libexif/exif-entry.c:662
+msgid "Reversed mono"
+msgstr ""
+
+#: libexif/exif-entry.c:662
+msgid "Normal mono"
+msgstr "Normal mono"
+
+#: libexif/exif-entry.c:662
+msgid "RGB"
+msgstr "RGB"
+
+#: libexif/exif-entry.c:662
+msgid "Palette"
+msgstr "Paleta"
+
+#: libexif/exif-entry.c:663
+msgid "CMYK"
+msgstr "CMYK"
+
+#: libexif/exif-entry.c:663
+msgid "YCbCr"
+msgstr "YCbCr"
+
+#: libexif/exif-entry.c:663
+msgid "CieLAB"
+msgstr "CieLAB"
+
+#: libexif/exif-entry.c:665
+msgid "Normal process"
+msgstr "Processo normal"
+
+#: libexif/exif-entry.c:665
+msgid "Custom process"
+msgstr "Processo padrão"
+
+#: libexif/exif-entry.c:667
+msgid "Auto exposure"
+msgstr "Exposição automática"
+
+#: libexif/exif-entry.c:667 libexif/fuji/mnote-fuji-entry.c:139
+msgid "Manual exposure"
+msgstr "Exposição Manual"
+
+#: libexif/exif-entry.c:667
+msgid "Auto bracket"
+msgstr "Colchete automático"
+
+#: libexif/exif-entry.c:669
+msgid "Auto white balance"
+msgstr "Balanceamento automático de branco"
+
+#: libexif/exif-entry.c:669
+msgid "Manual white balance"
+msgstr "Balanceamento manual de branco"
+
+#: libexif/exif-entry.c:674
+msgid "Low gain up"
+msgstr "Subida do ganho baixo"
+
+#: libexif/exif-entry.c:674
+msgid "High gain up"
+msgstr "Subida do ganho alto"
+
+#: libexif/exif-entry.c:675
+msgid "Low gain down"
+msgstr "Descida do ganho baixo"
+
+#: libexif/exif-entry.c:675
+msgid "High gain down"
+msgstr "Descida do ganho alto"
+
+#: libexif/exif-entry.c:677
+msgid "Low saturation"
+msgstr "Baixa saturação"
+
+#: libexif/exif-entry.c:677 test/nls/test-codeset.c:48
+#: test/nls/test-codeset.c:61
+msgid "High saturation"
+msgstr "Alta saturação"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:63
+#: libexif/olympus/mnote-olympus-entry.c:205
+#: libexif/olympus/mnote-olympus-entry.c:214
+#: libexif/pentax/mnote-pentax-entry.c:106
+#: libexif/pentax/mnote-pentax-entry.c:170
+msgid "Soft"
+msgstr "Suave"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:65 libexif/fuji/mnote-fuji-entry.c:95
+#: libexif/olympus/mnote-olympus-entry.c:204
+#: libexif/olympus/mnote-olympus-entry.c:212
+#: libexif/pentax/mnote-pentax-entry.c:107
+msgid "Hard"
+msgstr "Difícil"
+
+#: libexif/exif-entry.c:695 libexif/exif-entry.c:713 libexif/exif-entry.c:795
+#: libexif/olympus/mnote-olympus-entry.c:589
+#: libexif/olympus/mnote-olympus-entry.c:683
+#: libexif/olympus/mnote-olympus-entry.c:738
+#: libexif/pentax/mnote-pentax-entry.c:256
+msgid "Unknown"
+msgstr "Desconhecido"
+
+#: libexif/exif-entry.c:696
+#, fuzzy
+msgid "Avg"
+msgstr "Média"
+
+#: libexif/exif-entry.c:697
+#, fuzzy
+msgid "Center-weight"
+msgstr "Centro + Direita"
+
+#: libexif/exif-entry.c:699
+#, fuzzy
+msgid "Multi spot"
+msgstr "Luz Múltipla"
+
+#: libexif/exif-entry.c:700
+msgid "Pattern"
+msgstr "Padrão"
+
+#: libexif/exif-entry.c:705
+msgid "Uncompressed"
+msgstr "Sem compressão"
+
+#: libexif/exif-entry.c:706
+msgid "LZW compression"
+msgstr "Compressão LZQ"
+
+#: libexif/exif-entry.c:707 libexif/exif-entry.c:708
+msgid "JPEG compression"
+msgstr "Compressão JPEG"
+
+#: libexif/exif-entry.c:709
+msgid "Deflate/ZIP compression"
+msgstr ""
+
+#: libexif/exif-entry.c:710
+msgid "PackBits compression"
+msgstr ""
+
+#: libexif/exif-entry.c:716
+msgid "Tungsten incandescent light"
+msgstr "Luz de tungstênio incandescente"
+
+#: libexif/exif-entry.c:718
+msgid "Fine weather"
+msgstr "Tempo bom"
+
+#: libexif/exif-entry.c:719
+msgid "Cloudy weather"
+msgstr "Tempo nublado"
+
+#: libexif/exif-entry.c:722 libexif/fuji/mnote-fuji-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:252
+msgid "Day white fluorescent"
+msgstr "Fluorescente branco"
+
+#: libexif/exif-entry.c:723
+msgid "Cool white fluorescent"
+msgstr "Fluorescente branco \"frio\""
+
+#: libexif/exif-entry.c:724 libexif/fuji/mnote-fuji-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:253
+msgid "White fluorescent"
+msgstr "Fluorescente branco"
+
+#: libexif/exif-entry.c:725
+msgid "Standard light A"
+msgstr "Luz Padrão A"
+
+#: libexif/exif-entry.c:726
+msgid "Standard light B"
+msgstr "Luz Padrão B"
+
+#: libexif/exif-entry.c:727
+msgid "Standard light C"
+msgstr "Luz Padrão C"
+
+#: libexif/exif-entry.c:728
+msgid "D55"
+msgstr "D55"
+
+#: libexif/exif-entry.c:729
+msgid "D65"
+msgstr "D65"
+
+#: libexif/exif-entry.c:730
+msgid "D75"
+msgstr "D75"
+
+#: libexif/exif-entry.c:731
+msgid "ISO studio tungsten"
+msgstr "Tungstênio de estúdio ISO"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "Inch"
+msgstr "Polegada"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "in"
+msgstr "pol"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "Centimeter"
+msgstr "Centímetro"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "cm"
+msgstr "cm"
+
+#: libexif/exif-entry.c:745
+msgid "Normal program"
+msgstr "Programa normal"
+
+#: libexif/exif-entry.c:746
+msgid "Aperture priority"
+msgstr "Prioridade de Abertura"
+
+#: libexif/exif-entry.c:746 libexif/exif-tag.c:550
+msgid "Aperture"
+msgstr "Abertura"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter priority"
+msgstr "Prioridade de fechamento"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter"
+msgstr ""
+
+#: libexif/exif-entry.c:748
+msgid "Creative program (biased toward depth of field)"
+msgstr ""
+
+#: libexif/exif-entry.c:749
+msgid "Creative"
+msgstr "Criativo"
+
+#: libexif/exif-entry.c:750
+msgid "Creative program (biased toward fast shutter speed)"
+msgstr ""
+
+#: libexif/exif-entry.c:751
+msgid "Action"
+msgstr "Ação"
+
+#: libexif/exif-entry.c:752
+msgid "Portrait mode (for closeup photos with the background out of focus)"
+msgstr ""
+
+#: libexif/exif-entry.c:754
+msgid "Landscape mode (for landscape photos with the background in focus)"
+msgstr "Modo paisagem (para fotos de paisagens com o fundo em foco)"
+
+#: libexif/exif-entry.c:758 libexif/exif-entry.c:763
+#: libexif/olympus/mnote-olympus-entry.c:97
+msgid "Flash did not fire"
+msgstr "Flash não ativado"
+
+#: libexif/exif-entry.c:758
+#, fuzzy
+msgid "No flash"
+msgstr "sem flash"
+
+#: libexif/exif-entry.c:759
+msgid "Flash fired"
+msgstr ""
+
+#: libexif/exif-entry.c:759 libexif/olympus/mnote-olympus-entry.c:170
+#: libexif/olympus/mnote-olympus-entry.c:175
+#: libexif/olympus/mnote-olympus-entry.c:209
+#: libexif/olympus/mnote-olympus-entry.c:218
+#: libexif/olympus/mnote-olympus-entry.c:241
+msgid "Yes"
+msgstr "Sim"
+
+#: libexif/exif-entry.c:760
+msgid "Strobe return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:760
+msgid "Without strobe"
+msgstr ""
+
+#: libexif/exif-entry.c:762
+msgid "Strobe return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:762
+msgid "With strobe"
+msgstr ""
+
+#: libexif/exif-entry.c:764
+msgid "Flash fired, compulsory flash mode"
+msgstr ""
+
+#: libexif/exif-entry.c:765
+msgid "Flash fired, compulsory flash mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:767
+msgid "Flash fired, compulsory flash mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:769
+msgid "Flash did not fire, compulsory flash mode"
+msgstr ""
+
+#: libexif/exif-entry.c:770
+msgid "Flash did not fire, auto mode"
+msgstr ""
+
+#: libexif/exif-entry.c:771
+msgid "Flash fired, auto mode"
+msgstr ""
+
+#: libexif/exif-entry.c:772
+msgid "Flash fired, auto mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:774
+msgid "Flash fired, auto mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:775
+msgid "No flash function"
+msgstr ""
+
+#: libexif/exif-entry.c:776
+msgid "Flash fired, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:777
+msgid "Flash fired, red-eye reduction mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:779
+msgid "Flash fired, red-eye reduction mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:781
+msgid "Flash fired, compulsory flash mode, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:783
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light not "
+"detected"
+msgstr ""
+
+#: libexif/exif-entry.c:785
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light "
+"detected"
+msgstr ""
+
+#: libexif/exif-entry.c:787
+msgid "Flash did not fire, auto mode, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:788
+msgid "Flash fired, auto mode, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:789
+msgid ""
+"Flash fired, auto mode, return light not detected, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:791
+msgid "Flash fired, auto mode, return light detected, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:795
+msgid "?"
+msgstr "?"
+
+#: libexif/exif-entry.c:797
+msgid "Close view"
+msgstr "Visualização próxima"
+
+#: libexif/exif-entry.c:798
+msgid "Distant view"
+msgstr "Visualização distante"
+
+#: libexif/exif-entry.c:798
+msgid "Distant"
+msgstr "Distante"
+
+#: libexif/exif-entry.c:801
+msgid "sRGB"
+msgstr "sRGB"
+
+#: libexif/exif-entry.c:802
+msgid "Adobe RGB"
+msgstr "Adobe RGB"
+
+#: libexif/exif-entry.c:803
+msgid "Uncalibrated"
+msgstr "Descalibrado"
+
+#: libexif/exif-entry.c:857
+#, c-format
+msgid "Invalid size of entry (%i, expected %li x %i)."
+msgstr "Tamanho de entrada inválido (%i, esperado %li x %i )"
+
+#: libexif/exif-entry.c:890
+msgid "Unsupported UNICODE string"
+msgstr "String UNICODE não suportada"
+
+#: libexif/exif-entry.c:898
+msgid "Unsupported JIS string"
+msgstr "String JIS não suportada"
+
+#: libexif/exif-entry.c:914
+msgid "Tag UserComment does not comply with standard but contains data."
+msgstr ""
+
+#: libexif/exif-entry.c:918
+#, c-format
+msgid "Byte at position %i: 0x%02x"
+msgstr "Byte na posição %i: 0x%02x"
+
+#: libexif/exif-entry.c:927
+msgid "Unknown Exif Version"
+msgstr "Vesão Exif desconhecida"
+
+#: libexif/exif-entry.c:931
+#, c-format
+msgid "Exif Version %d.%d"
+msgstr "Versão do Exif %d.%d"
+
+#: libexif/exif-entry.c:942
+msgid "FlashPix Version 1.0"
+msgstr "Versão do FlashPix 1.0"
+
+#: libexif/exif-entry.c:944
+msgid "FlashPix Version 1.01"
+msgstr "Versão do FlashPix 1.01"
+
+#: libexif/exif-entry.c:946
+msgid "Unknown FlashPix Version"
+msgstr "Versão desconhecida do FlashPix"
+
+#: libexif/exif-entry.c:959 libexif/exif-entry.c:972 libexif/exif-entry.c:1628
+#: libexif/exif-entry.c:1633 libexif/exif-entry.c:1637
+#: libexif/exif-entry.c:1642 libexif/exif-entry.c:1643
+msgid "[None]"
+msgstr "[Vazio]"
+
+#: libexif/exif-entry.c:961
+msgid "(Photographer)"
+msgstr "(Fotógrafo)"
+
+#: libexif/exif-entry.c:975
+msgid "(Editor)"
+msgstr "(Editor)"
+
+#: libexif/exif-entry.c:999 libexif/exif-entry.c:1079
+#: libexif/exif-entry.c:1096 libexif/exif-entry.c:1140
+#, c-format
+msgid "%.02f EV"
+msgstr "%.02f EV"
+
+#: libexif/exif-entry.c:1000
+#, c-format
+msgid " (f/%.01f)"
+msgstr " (f/%.01f)"
+
+#: libexif/exif-entry.c:1034
+#, c-format
+msgid " (35 equivalent: %d mm)"
+msgstr " (35 equivalente: %d mm)"
+
+#: libexif/exif-entry.c:1067 libexif/exif-entry.c:1068
+msgid " sec."
+msgstr " seg."
+
+#: libexif/exif-entry.c:1082
+#, c-format
+msgid " (1/%d sec.)"
+msgstr ""
+
+#: libexif/exif-entry.c:1084
+#, c-format
+msgid " (%d sec.)"
+msgstr ""
+
+#: libexif/exif-entry.c:1097
+#, c-format
+msgid " (%.02f cd/m^2)"
+msgstr " (%.02f cd/m^2)"
+
+#: libexif/exif-entry.c:1107
+msgid "DSC"
+msgstr "DSC"
+
+#: libexif/exif-entry.c:1109 libexif/exif-entry.c:1149
+#: libexif/exif-entry.c:1236 libexif/exif-entry.c:1287
+#: libexif/exif-entry.c:1296 libexif/exif-entry.c:1332
+#: libexif/fuji/mnote-fuji-entry.c:236 libexif/fuji/mnote-fuji-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:359
+#, c-format
+msgid "Internal error (unknown value %i)"
+msgstr "Erro interto (valor %i desconhecido)"
+
+#: libexif/exif-entry.c:1117
+msgid "-"
+msgstr "-"
+
+#: libexif/exif-entry.c:1118
+msgid "Y"
+msgstr "Y"
+
+#: libexif/exif-entry.c:1119
+msgid "Cb"
+msgstr "Cb"
+
+#: libexif/exif-entry.c:1120
+msgid "Cr"
+msgstr "Cr"
+
+#: libexif/exif-entry.c:1121
+msgid "R"
+msgstr "D"
+
+#: libexif/exif-entry.c:1122
+msgid "G"
+msgstr "G"
+
+#: libexif/exif-entry.c:1123
+msgid "B"
+msgstr "B"
+
+#: libexif/exif-entry.c:1124
+#, fuzzy
+msgid "Reserved"
+msgstr "reservado"
+
+#: libexif/exif-entry.c:1147
+msgid "Directly photographed"
+msgstr ""
+
+#: libexif/exif-entry.c:1160
+msgid "YCbCr4:2:2"
+msgstr "YCbCr4:2:2"
+
+#: libexif/exif-entry.c:1162
+msgid "YCbCr4:2:0"
+msgstr "YCbCr4:2:0"
+
+#: libexif/exif-entry.c:1179
+#, c-format
+msgid "Within distance %i of (x,y) = (%i,%i)"
+msgstr "Curta distância %i de (x,y) = (%i,%i)"
+
+#: libexif/exif-entry.c:1188
+#, c-format
+msgid "Within rectangle (width %i, height %i) around (x,y) = (%i,%i)"
+msgstr ""
+
+#: libexif/exif-entry.c:1194
+#, c-format
+msgid "Unexpected number of components (%li, expected 2, 3, or 4)."
+msgstr "Número de componentes inesperados (%li, esperado 2, 3 ou 4)"
+
+#: libexif/exif-entry.c:1232
+msgid "Sea level"
+msgstr ""
+
+#: libexif/exif-entry.c:1234
+msgid "Sea level reference"
+msgstr ""
+
+#: libexif/exif-entry.c:1342
+#, c-format
+msgid "Unknown value %i"
+msgstr ""
+
+#: libexif/exif-format.c:37
+msgid "Short"
+msgstr "Curto"
+
+#: libexif/exif-format.c:38
+msgid "Rational"
+msgstr "Racional"
+
+#: libexif/exif-format.c:39
+msgid "SRational"
+msgstr "SRational"
+
+#: libexif/exif-format.c:40
+msgid "Undefined"
+msgstr "Indefinido"
+
+#: libexif/exif-format.c:41
+msgid "ASCII"
+msgstr ""
+
+#: libexif/exif-format.c:42
+msgid "Long"
+msgstr "Longo"
+
+#: libexif/exif-format.c:43
+msgid "Byte"
+msgstr "Byte"
+
+#: libexif/exif-format.c:44
+msgid "SByte"
+msgstr "SByte"
+
+#: libexif/exif-format.c:45
+msgid "SShort"
+msgstr "SShort"
+
+#: libexif/exif-format.c:46
+msgid "SLong"
+msgstr "SLong"
+
+#: libexif/exif-format.c:47
+msgid "Float"
+msgstr "Float"
+
+#: libexif/exif-format.c:48
+msgid "Double"
+msgstr "Duplo"
+
+#: libexif/exif-loader.c:119
+#, c-format
+msgid "The file '%s' could not be opened."
+msgstr "O arquivo '%s' não pode ser aberto."
+
+#: libexif/exif-loader.c:300
+msgid "The data supplied does not seem to contain EXIF data."
+msgstr ""
+
+#: libexif/exif-log.c:43
+msgid "Debugging information"
+msgstr "Informação de depuração"
+
+#: libexif/exif-log.c:44
+msgid "Debugging information is available."
+msgstr "Informação de depuração está disponível."
+
+#: libexif/exif-log.c:45
+msgid "Not enough memory"
+msgstr "Memória insuficiente"
+
+#: libexif/exif-log.c:46
+msgid "The system cannot provide enough memory."
+msgstr "O sistema não pode fornecer memória suficiente."
+
+#: libexif/exif-log.c:47
+msgid "Corrupt data"
+msgstr "Dados corrompidos"
+
+#: libexif/exif-log.c:48
+msgid "The data provided does not follow the specification."
+msgstr "Os dados fornecidos não seguem a especificação."
+
+#: libexif/exif-tag.c:62
+msgid "GPS Tag Version"
+msgstr ""
+
+#: libexif/exif-tag.c:63
+msgid ""
+"Indicates the version of <GPSInfoIFD>. The version is given as 2.0.0.0. This "
+"tag is mandatory when <GPSInfo> tag is present. (Note: The <GPSVersionID> "
+"tag is given in bytes, unlike the <ExifVersion> tag. When the version is "
+"2.0.0.0, the tag value is 02000000.H)."
+msgstr ""
+
+#: libexif/exif-tag.c:69
+msgid "Interoperability Index"
+msgstr ""
+
+#: libexif/exif-tag.c:70
+msgid ""
+"Indicates the identification of the Interoperability rule. Use \"R98\" for "
+"stating ExifR98 Rules. Four bytes used including the termination code "
+"(NULL). see the separate volume of Recommended Exif Interoperability Rules "
+"(ExifR98) for other tags used for ExifR98."
+msgstr ""
+
+#: libexif/exif-tag.c:76
+msgid "North or South Latitude"
+msgstr "Latitude Norte ou Sul"
+
+#: libexif/exif-tag.c:77
+msgid ""
+"Indicates whether the latitude is north or south latitude. The ASCII value "
+"'N' indicates north latitude, and 'S' is south latitude."
+msgstr ""
+
+#: libexif/exif-tag.c:81
+msgid "Interoperability Version"
+msgstr ""
+
+#: libexif/exif-tag.c:83
+msgid "Latitude"
+msgstr "Latitude"
+
+#: libexif/exif-tag.c:84
+msgid ""
+"Indicates the latitude. The latitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is dd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is dd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:91
+msgid "East or West Longitude"
+msgstr "Longitude Leste ou Oeste"
+
+#: libexif/exif-tag.c:92
+msgid ""
+"Indicates whether the longitude is east or west longitude. ASCII 'E' "
+"indicates east longitude, and 'W' is west longitude."
+msgstr ""
+
+#: libexif/exif-tag.c:95
+msgid "Longitude"
+msgstr "Longitude"
+
+#: libexif/exif-tag.c:96
+msgid ""
+"Indicates the longitude. The longitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is ddd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is ddd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:103
+#, fuzzy
+msgid "Altitude Reference"
+msgstr "Referência de altitude"
+
+#: libexif/exif-tag.c:104
+msgid ""
+"Indicates the altitude used as the reference altitude. If the reference is "
+"sea level and the altitude is above sea level, 0 is given. If the altitude "
+"is below sea level, a value of 1 is given and the altitude is indicated as "
+"an absolute value in the GSPAltitude tag. The reference unit is meters. Note "
+"that this tag is BYTE type, unlike other reference tags."
+msgstr ""
+
+#: libexif/exif-tag.c:110
+msgid "Altitude"
+msgstr "Altitude"
+
+#: libexif/exif-tag.c:111
+msgid ""
+"Indicates the altitude based on the reference in GPSAltitudeRef. Altitude is "
+"expressed as one RATIONAL value. The reference unit is meters."
+msgstr ""
+
+#: libexif/exif-tag.c:114
+msgid "GPS Time (Atomic Clock)"
+msgstr ""
+
+#: libexif/exif-tag.c:115
+msgid ""
+"Indicates the time as UTC (Coordinated Universal Time). TimeStamp is "
+"expressed as three RATIONAL values giving the hour, minute, and second."
+msgstr ""
+
+#: libexif/exif-tag.c:118
+msgid "GPS Satellites"
+msgstr ""
+
+#: libexif/exif-tag.c:119
+msgid ""
+"Indicates the GPS satellites used for measurements. This tag can be used to "
+"describe the number of satellites, their ID number, angle of elevation, "
+"azimuth, SNR and other information in ASCII notation. The format is not "
+"specified. If the GPS receiver is incapable of taking measurements, value of "
+"the tag shall be set to NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:125
+msgid "GPS Receiver Status"
+msgstr ""
+
+#: libexif/exif-tag.c:126
+msgid ""
+"Indicates the status of the GPS receiver when the image is recorded. 'A' "
+"means measurement is in progress, and 'V' means the measurement is "
+"Interoperability."
+msgstr ""
+
+#: libexif/exif-tag.c:129
+#, fuzzy
+msgid "GPS Measurement Mode"
+msgstr "Modo verde"
+
+#: libexif/exif-tag.c:130
+msgid ""
+"Indicates the GPS measurement mode. '2' means two-dimensional measurement "
+"and '3' means three-dimensional measurement is in progress."
+msgstr ""
+
+#: libexif/exif-tag.c:133
+msgid "Measurement Precision"
+msgstr ""
+
+#: libexif/exif-tag.c:134
+msgid ""
+"Indicates the GPS DOP (data degree of precision). An HDOP value is written "
+"during two-dimensional measurement, and PDOP during three-dimensional "
+"measurement."
+msgstr ""
+
+#: libexif/exif-tag.c:137
+msgid "Speed Unit"
+msgstr ""
+
+#: libexif/exif-tag.c:138
+msgid ""
+"Indicates the unit used to express the GPS receiver speed of movement. 'K', "
+"'M' and 'N' represent kilometers per hour, miles per hour, and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:141
+msgid "Speed of GPS Receiver"
+msgstr ""
+
+#: libexif/exif-tag.c:142
+msgid "Indicates the speed of GPS receiver movement."
+msgstr ""
+
+#: libexif/exif-tag.c:143
+msgid "Reference for direction of movement"
+msgstr ""
+
+#: libexif/exif-tag.c:144
+msgid ""
+"Indicates the reference for giving the direction of GPS receiver movement. "
+"'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:147
+msgid "Direction of Movement"
+msgstr ""
+
+#: libexif/exif-tag.c:148
+msgid ""
+"Indicates the direction of GPS receiver movement. The range of values is "
+"from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:150
+msgid "GPS Image Direction Reference"
+msgstr ""
+
+#: libexif/exif-tag.c:151
+msgid ""
+"Indicates the reference for giving the direction of the image when it is "
+"captured. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:153
+#, fuzzy
+msgid "GPS Image Direction"
+msgstr "Descrição de Imagem"
+
+#: libexif/exif-tag.c:154
+msgid ""
+"Indicates the direction of the image when it was captured. The range of "
+"values is from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:156
+msgid "Geodetic Survey Data Used"
+msgstr ""
+
+#: libexif/exif-tag.c:157
+msgid ""
+"Indicates the geodetic survey data used by the GPS receiver. If the survey "
+"data is restricted to Japan, the value of this tag is 'TOKYO' or 'WGS-84'. "
+"If a GPS Info tag is recorded, it is strongly recommended that this tag be "
+"recorded."
+msgstr ""
+
+#: libexif/exif-tag.c:161
+msgid "Reference For Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:162
+msgid ""
+"Indicates whether the latitude of the destination point is north or south "
+"latitude. The ASCII value 'N' indicates north latitude, and 'S' is south "
+"latitude."
+msgstr ""
+
+#: libexif/exif-tag.c:165
+msgid "Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:166
+msgid ""
+"Indicates the latitude of the destination point. The latitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If latitude is expressed as degrees, minutes and seconds, a "
+"typical format would be dd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be dd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:173
+msgid "Reference for Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:174
+msgid ""
+"Indicates whether the longitude of the destination point is east or west "
+"longitude. ASCII 'E' indicates east longitude, and 'W' is west longitude."
+msgstr ""
+
+#: libexif/exif-tag.c:177
+msgid "Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:178
+msgid ""
+"Indicates the longitude of the destination point. The longitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If longitude is expressed as degrees, minutes and seconds, a "
+"typical format would be ddd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be ddd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:186
+msgid "Reference for Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:187
+msgid ""
+"Indicates the reference used for giving the bearing to the destination "
+"point. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:190
+msgid "Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:191
+msgid ""
+"Indicates the bearing to the destination point. The range of values is from "
+"0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:193
+msgid "Reference for Distance to Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:194
+msgid ""
+"Indicates the unit used to express the distance to the destination point. "
+"'K', 'M' and 'N' represent kilometers, miles and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:197
+#, fuzzy
+msgid "Distance to Destination"
+msgstr "Descrição da configuração do dispositivo"
+
+#: libexif/exif-tag.c:198
+msgid "Indicates the distance to the destination point."
+msgstr ""
+
+#: libexif/exif-tag.c:199
+#, fuzzy
+msgid "Name of GPS Processing Method"
+msgstr "Modo de sensibilidade"
+
+#: libexif/exif-tag.c:200
+msgid ""
+"A character string recording the name of the method used for location "
+"finding. The first byte indicates the character code used, and this is "
+"followed by the name of the method. Since the Type is not ASCII, NULL "
+"termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:205
+msgid "Name of GPS Area"
+msgstr ""
+
+#: libexif/exif-tag.c:206
+msgid ""
+"A character string recording the name of the GPS area. The first byte "
+"indicates the character code used, and this is followed by the name of the "
+"GPS area. Since the Type is not ASCII, NULL termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:210
+msgid "GPS Date"
+msgstr ""
+
+#: libexif/exif-tag.c:211
+msgid ""
+"A character string recording date and time information relative to UTC "
+"(Coordinated Universal Time). The format is \"YYYY:MM:DD\". The length of "
+"the string is 11 bytes including NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:215
+msgid "GPS Differential Correction"
+msgstr ""
+
+#: libexif/exif-tag.c:216
+msgid ""
+"Indicates whether differential correction is applied to the GPS receiver."
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "New Subfile Type"
+msgstr "Novo tipo de subarquivo"
+
+#: libexif/exif-tag.c:220
+msgid "A general indication of the kind of data contained in this subfile."
+msgstr ""
+
+#: libexif/exif-tag.c:222
+msgid "Image Width"
+msgstr "Lagura de imagem"
+
+#: libexif/exif-tag.c:223
+msgid ""
+"The number of columns of image data, equal to the number of pixels per row. "
+"In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:227
+msgid "Image Length"
+msgstr "Altura da Imagem"
+
+#: libexif/exif-tag.c:228
+msgid ""
+"The number of rows of image data. In JPEG compressed data a JPEG marker is "
+"used instead of this tag."
+msgstr ""
+"O número de linhas dos dados da imagem. Em dados comprimidos em JPEG, um "
+"marcador JPEG é usado ao invés desta etiqueta."
+
+#: libexif/exif-tag.c:231
+msgid "Bits per Sample"
+msgstr "Bits por Amostra"
+
+#: libexif/exif-tag.c:232
+msgid ""
+"The number of bits per image component. In this standard each component of "
+"the image is 8 bits, so the value for this tag is 8. See also "
+"<SamplesPerPixel>. In JPEG compressed data a JPEG marker is used instead of "
+"this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:237
+msgid "Compression"
+msgstr "Compressão"
+
+#: libexif/exif-tag.c:238
+msgid ""
+"The compression scheme used for the image data. When a primary image is JPEG "
+"compressed, this designation is not necessary and is omitted. When "
+"thumbnails use JPEG compression, this tag value is set to 6."
+msgstr ""
+
+#: libexif/exif-tag.c:244
+msgid "Photometric Interpretation"
+msgstr "Interpretação fotométrica"
+
+#: libexif/exif-tag.c:245
+msgid ""
+"The pixel composition. In JPEG compressed data a JPEG marker is used instead "
+"of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:249
+msgid "Fill Order"
+msgstr "Ordem de preenchimento"
+
+#: libexif/exif-tag.c:251
+msgid "Document Name"
+msgstr "Nome do Documento"
+
+#: libexif/exif-tag.c:253
+msgid "Image Description"
+msgstr "Descrição de Imagem"
+
+#: libexif/exif-tag.c:254
+msgid ""
+"A character string giving the title of the image. It may be a comment such "
+"as \"1988 company picnic\" or the like. Two-bytes character codes cannot be "
+"used. When a 2-bytes code is necessary, the Exif Private tag <UserComment> "
+"is to be used."
+msgstr ""
+
+#: libexif/exif-tag.c:260
+msgid "Manufacturer"
+msgstr "Fabricante"
+
+#: libexif/exif-tag.c:261
+msgid ""
+"The manufacturer of the recording equipment. This is the manufacturer of the "
+"DSC, scanner, video digitizer or other equipment that generated the image. "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+"O fabricante do equipamento de gravação. Este é o fabricante do DSC, "
+"scanner, digitalizador de vídeo ou outro equipamento que gera a imagem. "
+"Quando este campo é deixado em branco, ele é tratado como desconhecido."
+
+#: libexif/exif-tag.c:267
+msgid "Model"
+msgstr "Modelo"
+
+#: libexif/exif-tag.c:268
+msgid ""
+"The model name or model number of the equipment. This is the model name or "
+"number of the DSC, scanner, video digitizer or other equipment that "
+"generated the image. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:273
+msgid "Strip Offsets"
+msgstr ""
+
+#: libexif/exif-tag.c:274
+msgid ""
+"For each strip, the byte offset of that strip. It is recommended that this "
+"be selected so the number of strip bytes does not exceed 64 Kbytes. With "
+"JPEG compressed data this designation is not needed and is omitted. See also "
+"<RowsPerStrip> and <StripByteCounts>."
+msgstr ""
+
+#: libexif/exif-tag.c:280
+msgid "Orientation"
+msgstr "Orientação"
+
+#: libexif/exif-tag.c:281
+msgid "The image orientation viewed in terms of rows and columns."
+msgstr "A orientação da imagem é vista em termos de linhas e colunas"
+
+#: libexif/exif-tag.c:284
+msgid "Samples per Pixel"
+msgstr "Modelos por Pixel"
+
+#: libexif/exif-tag.c:285
+msgid ""
+"The number of components per pixel. Since this standard applies to RGB and "
+"YCbCr images, the value set for this tag is 3. In JPEG compressed data a "
+"JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:290
+msgid "Rows per Strip"
+msgstr ""
+
+#: libexif/exif-tag.c:291
+msgid ""
+"The number of rows per strip. This is the number of rows in the image of one "
+"strip when an image is divided into strips. With JPEG compressed data this "
+"designation is not needed and is omitted. See also <StripOffsets> and "
+"<StripByteCounts>."
+msgstr ""
+
+#: libexif/exif-tag.c:297
+msgid "Strip Byte Count"
+msgstr ""
+
+#: libexif/exif-tag.c:298
+msgid ""
+"The total number of bytes in each strip. With JPEG compressed data this "
+"designation is not needed and is omitted."
+msgstr ""
+
+#: libexif/exif-tag.c:301
+#, fuzzy
+msgid "X-Resolution"
+msgstr "Resolução-x"
+
+#: libexif/exif-tag.c:302
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageWidth> direction. "
+"When the image resolution is unknown, 72 [dpi] is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:306
+#, fuzzy
+msgid "Y-Resolution"
+msgstr "Resolução-x"
+
+#: libexif/exif-tag.c:307
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageLength> direction. "
+"The same value as <XResolution> is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:311
+msgid "Planar Configuration"
+msgstr "Configuração Plana"
+
+#: libexif/exif-tag.c:312
+msgid ""
+"Indicates whether pixel components are recorded in a chunky or planar "
+"format. In JPEG compressed files a JPEG marker is used instead of this tag. "
+"If this field does not exist, the TIFF default of 1 (chunky) is assumed."
+msgstr ""
+
+#: libexif/exif-tag.c:317
+msgid "Resolution Unit"
+msgstr "Unidade de Resolução"
+
+#: libexif/exif-tag.c:318
+msgid ""
+"The unit for measuring <XResolution> and <YResolution>. The same unit is "
+"used for both <XResolution> and <YResolution>. If the image resolution is "
+"unknown, 2 (inches) is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:323
+msgid "Transfer Function"
+msgstr "Função de Tranferência"
+
+#: libexif/exif-tag.c:324
+msgid ""
+"A transfer function for the image, described in tabular style. Normally this "
+"tag is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:328
+msgid "Software"
+msgstr "Software"
+
+#: libexif/exif-tag.c:329
+msgid ""
+"This tag records the name and version of the software or firmware of the "
+"camera or image input device used to generate the image. The detailed format "
+"is not specified, but it is recommended that the example shown below be "
+"followed. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:336
+msgid "Date and Time"
+msgstr "Data e hora"
+
+#: libexif/exif-tag.c:337
+msgid ""
+"The date and time of image creation. In this standard (EXIF-2.1) it is the "
+"date and time the file was changed."
+msgstr ""
+"A data e o tempo da criação da imagem. Neste padrão (EXIF-2.1) é a data e o "
+"tempo de quando o arquivo foi alterado."
+
+#: libexif/exif-tag.c:340
+msgid "Artist"
+msgstr "Artista"
+
+#: libexif/exif-tag.c:341
+msgid ""
+"This tag records the name of the camera owner, photographer or image "
+"creator. The detailed format is not specified, but it is recommended that "
+"the information be written as in the example below for ease of "
+"Interoperability. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:347 libexif/pentax/mnote-pentax-tag.c:113
+msgid "White Point"
+msgstr "Ponto Branco"
+
+#: libexif/exif-tag.c:348
+msgid ""
+"The chromaticity of the white point of the image. Normally this tag is not "
+"necessary, since color space is specified in the color space information tag "
+"(<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:353
+msgid "Primary Chromaticities"
+msgstr ""
+
+#: libexif/exif-tag.c:354
+msgid ""
+"The chromaticity of the three primary colors of the image. Normally this tag "
+"is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:359
+msgid "Defined by Adobe Corporation to enable TIFF Trees within a TIFF file."
+msgstr ""
+
+#: libexif/exif-tag.c:362
+msgid "Transfer Range"
+msgstr "Faixa de Transferência"
+
+#: libexif/exif-tag.c:366
+msgid "JPEG Interchange Format"
+msgstr ""
+
+#: libexif/exif-tag.c:367
+msgid ""
+"The offset to the start byte (SOI) of JPEG compressed thumbnail data. This "
+"is not used for primary image JPEG data."
+msgstr ""
+
+#: libexif/exif-tag.c:372
+msgid "JPEG Interchange Format Length"
+msgstr ""
+
+#: libexif/exif-tag.c:373
+msgid ""
+"The number of bytes of JPEG compressed thumbnail data. This is not used for "
+"primary image JPEG data. JPEG thumbnails are not divided but are recorded as "
+"a continuous JPEG bitstream from SOI to EOI. Appn and COM markers should not "
+"be recorded. Compressed thumbnails must be recorded in no more than 64 "
+"Kbytes, including all other data to be recorded in APP1."
+msgstr ""
+
+#: libexif/exif-tag.c:382
+msgid "YCbCr Coefficients"
+msgstr "Coeficientes YCbCr"
+
+#: libexif/exif-tag.c:383
+msgid ""
+"The matrix coefficients for transformation from RGB to YCbCr image data. No "
+"default is given in TIFF; but here the value given in \"Color Space "
+"Guidelines\", is used as the default. The color space is declared in a color "
+"space information tag, with the default being the value that gives the "
+"optimal image characteristics Interoperability this condition."
+msgstr ""
+
+#: libexif/exif-tag.c:392
+msgid "YCbCr Sub-Sampling"
+msgstr ""
+
+#: libexif/exif-tag.c:393
+msgid ""
+"The sampling ratio of chrominance components in relation to the luminance "
+"component. In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:398
+msgid "YCbCr Positioning"
+msgstr "Posicionamento YCbCr"
+
+#: libexif/exif-tag.c:399
+msgid ""
+"The position of chrominance components in relation to the luminance "
+"component. This field is designated only for JPEG compressed data or "
+"uncompressed YCbCr data. The TIFF default is 1 (centered); but when Y:Cb:Cr "
+"= 4:2:2 it is recommended in this standard that 2 (co-sited) be used to "
+"record data, in order to improve the image quality when viewed on TV "
+"systems. When this field does not exist, the reader shall assume the TIFF "
+"default. In the case of Y:Cb:Cr = 4:2:0, the TIFF default (centered) is "
+"recommended. If the reader does not have the capability of supporting both "
+"kinds of <YCbCrPositioning>, it shall follow the TIFF default regardless of "
+"the value in this field. It is preferable that readers be able to support "
+"both centered and co-sited positioning."
+msgstr ""
+
+#: libexif/exif-tag.c:414
+msgid "Reference Black/White"
+msgstr "Referência preta/bBranca"
+
+#: libexif/exif-tag.c:415
+msgid ""
+"The reference black point value and reference white point value. No defaults "
+"are given in TIFF, but the values below are given as defaults here. The "
+"color space is declared in a color space information tag, with the default "
+"being the value that gives the optimal image characteristics "
+"Interoperability these conditions."
+msgstr ""
+
+#: libexif/exif-tag.c:423
+msgid "XML Packet"
+msgstr "Pacote XML"
+
+#: libexif/exif-tag.c:423
+msgid "XMP Metadata"
+msgstr "Metadado XMP"
+
+#: libexif/exif-tag.c:438 libexif/exif-tag.c:784
+msgid "CFA Pattern"
+msgstr "Padrão CFA"
+
+#: libexif/exif-tag.c:439 libexif/exif-tag.c:785
+msgid ""
+"Indicates the color filter array (CFA) geometric pattern of the image sensor "
+"when a one-chip color area sensor is used. It does not apply to all sensing "
+"methods."
+msgstr ""
+
+#: libexif/exif-tag.c:443
+msgid "Battery Level"
+msgstr "Nível de Bateria"
+
+#: libexif/exif-tag.c:444
+msgid "Copyright"
+msgstr "Direitos Autorais"
+
+#: libexif/exif-tag.c:445
+msgid ""
+"Copyright information. In this standard the tag is used to indicate both the "
+"photographer and editor copyrights. It is the copyright notice of the person "
+"or organization claiming rights to the image. The Interoperability copyright "
+"statement including date and rights should be written in this field; e.g., "
+"\"Copyright, John Smith, 19xx. All rights reserved.\". In this standard the "
+"field records both the photographer and editor copyrights, with each "
+"recorded in a separate part of the statement. When there is a clear "
+"distinction between the photographer and editor copyrights, these are to be "
+"written in the order of photographer followed by editor copyright, separated "
+"by NULL (in this case, since the statement also ends with a NULL, there are "
+"two NULL codes) (see example 1). When only the photographer is given, it is "
+"terminated by one NULL code (see example 2). When only the editor copyright "
+"is given, the photographer copyright part consists of one space followed by "
+"a terminating NULL code, then the editor copyright is given (see example 3). "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:467
+msgid "Exposure time, given in seconds (sec)."
+msgstr "Tempo de exposição, em segundos (seg.)"
+
+#: libexif/exif-tag.c:469 libexif/pentax/mnote-pentax-tag.c:79
+msgid "F-Number"
+msgstr ""
+
+#: libexif/exif-tag.c:470
+msgid "The F number."
+msgstr "O número F."
+
+#: libexif/exif-tag.c:475
+msgid "Image Resources Block"
+msgstr ""
+
+#: libexif/exif-tag.c:477
+msgid ""
+"A pointer to the Exif IFD. Interoperability, Exif IFD has the same structure "
+"as that of the IFD specified in TIFF. ordinarily, however, it does not "
+"contain image data as in the case of TIFF."
+msgstr ""
+
+#: libexif/exif-tag.c:485
+msgid "Exposure Program"
+msgstr "Programa de exposição"
+
+#: libexif/exif-tag.c:486
+msgid ""
+"The class of the program used by the camera to set exposure when the picture "
+"is taken."
+msgstr ""
+
+#: libexif/exif-tag.c:490
+msgid "Spectral Sensitivity"
+msgstr "Sensibilidade espectral"
+
+#: libexif/exif-tag.c:491
+msgid ""
+"Indicates the spectral sensitivity of each channel of the camera used. The "
+"tag value is an ASCII string compatible with the standard developed by the "
+"ASTM Technical Committee."
+msgstr ""
+
+#: libexif/exif-tag.c:496
+msgid "GPS Info IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:497
+msgid ""
+"A pointer to the GPS Info IFD. The Interoperability structure of the GPS "
+"Info IFD, like that of Exif IFD, has no image data."
+msgstr ""
+
+#: libexif/exif-tag.c:503
+msgid "ISO Speed Ratings"
+msgstr ""
+
+#: libexif/exif-tag.c:504
+msgid ""
+"Indicates the ISO Speed and ISO Latitude of the camera or input device as "
+"specified in ISO 12232."
+msgstr ""
+
+#: libexif/exif-tag.c:507
+msgid "Opto-Electronic Conversion Function"
+msgstr ""
+
+#: libexif/exif-tag.c:508
+msgid ""
+"Indicates the Opto-Electronic Conversion Function (OECF) specified in ISO "
+"14524. <OECF> is the relationship between the camera optical input and the "
+"image values."
+msgstr ""
+
+#: libexif/exif-tag.c:513
+msgid "Time Zone Offset"
+msgstr ""
+
+#: libexif/exif-tag.c:514
+msgid "Encodes time zone of camera clock relative to GMT."
+msgstr ""
+
+#: libexif/exif-tag.c:515
+msgid "Exif Version"
+msgstr "Versão Exif"
+
+#: libexif/exif-tag.c:516
+msgid ""
+"The version of this standard supported. Nonexistence of this field is taken "
+"to mean nonconformance to the standard."
+msgstr ""
+
+#: libexif/exif-tag.c:520
+#, fuzzy
+msgid "Date and Time (Original)"
+msgstr "Data e Hora (original)"
+
+#: libexif/exif-tag.c:521
+msgid ""
+"The date and time when the original image data was generated. For a digital "
+"still camera the date and time the picture was taken are recorded."
+msgstr ""
+
+#: libexif/exif-tag.c:526
+#, fuzzy
+msgid "Date and Time (Digitized)"
+msgstr "Data e Hora (digitalizada)"
+
+#: libexif/exif-tag.c:527
+msgid "The date and time when the image was stored as digital data."
+msgstr ""
+
+#: libexif/exif-tag.c:530
+msgid "Components Configuration"
+msgstr "Configuração de componentes"
+
+#: libexif/exif-tag.c:531
+msgid ""
+"Information specific to compressed data. The channels of each component are "
+"arranged in order from the 1st component to the 4th. For uncompressed data "
+"the data arrangement is given in the <PhotometricInterpretation> tag. "
+"However, since <PhotometricInterpretation> can only express the order of Y, "
+"Cb and Cr, this tag is provided for cases when compressed data uses "
+"components other than Y, Cb, and Cr and to enable support of other sequences."
+msgstr ""
+
+#: libexif/exif-tag.c:541
+msgid "Compressed Bits per Pixel"
+msgstr "Bits comprimidos por pixel"
+
+#: libexif/exif-tag.c:542
+msgid ""
+"Information specific to compressed data. The compression mode used for a "
+"compressed image is indicated in unit bits per pixel."
+msgstr ""
+"Informação específica para dados comprimidos. O modo de compressão usado "
+"para comprimir a imagem é indicado em um bit por pixel."
+
+#: libexif/exif-tag.c:546 libexif/olympus/mnote-olympus-tag.c:123
+msgid "Shutter Speed"
+msgstr "Velocidade da veneziana"
+
+#: libexif/exif-tag.c:547
+msgid ""
+"Shutter speed. The unit is the APEX (Additive System of Photographic "
+"Exposure) setting."
+msgstr ""
+
+#: libexif/exif-tag.c:551
+msgid "The lens aperture. The unit is the APEX value."
+msgstr ""
+
+#: libexif/exif-tag.c:553
+msgid "Brightness"
+msgstr "Brilho"
+
+#: libexif/exif-tag.c:554
+msgid ""
+"The value of brightness. The unit is the APEX value. Ordinarily it is given "
+"in the range of -99.99 to 99.99."
+msgstr ""
+
+#: libexif/exif-tag.c:558
+msgid "Exposure Bias"
+msgstr "Linha de exibição"
+
+#: libexif/exif-tag.c:559
+msgid ""
+"The exposure bias. The units is the APEX value. Ordinarily it is given in "
+"the range of -99.99 to 99.99."
+msgstr ""
+
+#: libexif/exif-tag.c:562
+msgid "Maximum Aperture Value"
+msgstr ""
+
+#: libexif/exif-tag.c:563
+msgid ""
+"The smallest F number of the lens. The unit is the APEX value. Ordinarily it "
+"is given in the range of 00.00 to 99.99, but it is not limited to this range."
+msgstr ""
+
+#: libexif/exif-tag.c:568
+msgid "Subject Distance"
+msgstr "Distância do assunto"
+
+#: libexif/exif-tag.c:569
+msgid "The distance to the subject, given in meters."
+msgstr ""
+
+#: libexif/exif-tag.c:572
+msgid "The metering mode."
+msgstr ""
+
+#: libexif/exif-tag.c:574
+msgid "Light Source"
+msgstr "Fonte de luz"
+
+#: libexif/exif-tag.c:575
+msgid "The kind of light source."
+msgstr "O tipo de fonte de luz"
+
+#: libexif/exif-tag.c:578
+msgid ""
+"This tag is recorded when an image is taken using a strobe light (flash)."
+msgstr ""
+
+#: libexif/exif-tag.c:582
+msgid ""
+"The actual focal length of the lens, in mm. Conversion is not made to the "
+"focal length of a 35 mm film camera."
+msgstr ""
+
+#: libexif/exif-tag.c:585
+msgid "Subject Area"
+msgstr ""
+
+#: libexif/exif-tag.c:586
+msgid ""
+"This tag indicates the location and area of the main subject in the overall "
+"scene."
+msgstr ""
+
+#: libexif/exif-tag.c:590
+msgid "TIFF/EP Standard ID"
+msgstr ""
+
+#: libexif/exif-tag.c:591
+msgid "Maker Note"
+msgstr "Fazer Nota"
+
+#: libexif/exif-tag.c:592
+msgid ""
+"A tag for manufacturers of Exif writers to record any desired information. "
+"The contents are up to the manufacturer."
+msgstr ""
+
+#: libexif/exif-tag.c:595
+msgid "User Comment"
+msgstr "Comentário do Usuário"
+
+#: libexif/exif-tag.c:596
+msgid ""
+"A tag for Exif users to write keywords or comments on the image besides "
+"those in <ImageDescription>, and without the character code limitations of "
+"the <ImageDescription> tag. The character code used in the <UserComment> tag "
+"is identified based on an ID code in a fixed 8-byte area at the start of the "
+"tag data area. The unused portion of the area is padded with NULL (\"00.h"
+"\"). ID codes are assigned by means of registration. The designation method "
+"and references for each character code are defined in the specification. The "
+"value of CountN is determined based on the 8 bytes in the character code "
+"area and the number of bytes in the user comment part. Since the TYPE is not "
+"ASCII, NULL termination is not necessary. The ID code for the <UserComment> "
+"area may be a Defined code such as JIS or ASCII, or may be Undefined. The "
+"Undefined name is UndefinedText, and the ID code is filled with 8 bytes of "
+"all \"NULL\" (\"00.H\"). An Exif reader that reads the <UserComment> tag "
+"must have a function for determining the ID code. This function is not "
+"required in Exif readers that do not use the <UserComment> tag. When a "
+"<UserComment> area is set aside, it is recommended that the ID code be ASCII "
+"and that the following user comment part be filled with blank characters [20."
+"H]."
+msgstr ""
+
+#: libexif/exif-tag.c:619
+msgid "Sub-second Time"
+msgstr ""
+
+#: libexif/exif-tag.c:620
+msgid "A tag used to record fractions of seconds for the <DateTime> tag."
+msgstr ""
+"Uma etiqueta usada para gravar frações de segundos para a etiqueta "
+"<DateTime>."
+
+#: libexif/exif-tag.c:624
+#, fuzzy
+msgid "Sub-second Time (Original)"
+msgstr "Data e Hora (original)"
+
+#: libexif/exif-tag.c:625
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeOriginal> tag."
+msgstr ""
+"Uma etiqueta usada para gravar frações de segundos para a etiqueta "
+"<DateTimeOriginal>."
+
+#: libexif/exif-tag.c:629
+#, fuzzy
+msgid "Sub-second Time (Digitized)"
+msgstr "Data e Hora (digitalizada)"
+
+#: libexif/exif-tag.c:630
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeDigitized> tag."
+msgstr ""
+"Uma etiqueta usada para gravar frações de segundos para a etiqueta "
+"<DateTimeDigitized>."
+
+#: libexif/exif-tag.c:634
+msgid "XP Title"
+msgstr "XP Título"
+
+#: libexif/exif-tag.c:635
+msgid "A character string giving the title of the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:639
+msgid "XP Comment"
+msgstr "XP Comentário"
+
+#: libexif/exif-tag.c:640
+msgid ""
+"A character string containing a comment about the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:644
+msgid "XP Author"
+msgstr "XP Autor"
+
+#: libexif/exif-tag.c:645
+msgid ""
+"A character string containing the name of the image creator, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:649
+msgid "XP Keywords"
+msgstr "XP Palavras-chave"
+
+#: libexif/exif-tag.c:650
+msgid ""
+"A character string containing key words describing the image, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:654
+msgid "XP Subject"
+msgstr "XP Assunto"
+
+#: libexif/exif-tag.c:655
+msgid "A character string giving the image subject, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:659
+msgid "The FlashPix format version supported by a FPXR file."
+msgstr ""
+
+#: libexif/exif-tag.c:661 libexif/pentax/mnote-pentax-tag.c:102
+msgid "Color Space"
+msgstr "Espaço de Cores"
+
+#: libexif/exif-tag.c:662
+msgid ""
+"The color space information tag is always recorded as the color space "
+"specifier. Normally sRGB (=1) is used to define the color space based on the "
+"PC monitor conditions and environment. If a color space other than sRGB is "
+"used, Uncalibrated (=FFFF.H) is set. Image data recorded as Uncalibrated can "
+"be treated as sRGB when it is converted to FlashPix."
+msgstr ""
+
+#: libexif/exif-tag.c:670
+msgid "Pixel X Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:671
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid width of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file."
+msgstr ""
+
+#: libexif/exif-tag.c:677
+msgid "Pixel Y Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:678
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid height of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file. Since data padding is unnecessary in the "
+"vertical direction, the number of lines recorded in this valid image height "
+"tag will in fact be the same as that recorded in the SOF."
+msgstr ""
+
+#: libexif/exif-tag.c:688
+msgid "Related Sound File"
+msgstr ""
+
+#: libexif/exif-tag.c:689
+msgid ""
+"This tag is used to record the name of an audio file related to the image "
+"data. The only relational information recorded here is the Exif audio file "
+"name and extension (an ASCII string consisting of 8 characters + '.' + 3 "
+"characters). The path is not recorded. Stipulations on audio and file naming "
+"conventions are defined in the specification. When using this tag, audio "
+"files must be recorded in conformance to the Exif audio format. Writers are "
+"also allowed to store the data such as Audio within APP2 as FlashPix "
+"extension stream data. The mapping of Exif image files and audio files is "
+"done in any of three ways, [1], [2] and [3]. If multiple files are mapped to "
+"one file as in [2] or [3], the above format is used to record just one audio "
+"file name. If there are multiple audio files, the first recorded file is "
+"given. In the case of [3], for example, for the Exif image file \"DSC00001."
+"JPG\" only  \"SND00001.WAV\" is given as the related Exif audio file. When "
+"there are three Exif audio files \"SND00001.WAV\", \"SND00002.WAV\" and "
+"\"SND00003.WAV\", the Exif image file name for each of them, \"DSC00001.JPG"
+"\", is indicated. By combining multiple relational information, a variety of "
+"playback possibilities can be supported. The method of using relational "
+"information is left to the implementation on the playback side. Since this "
+"information is an ASCII character string, it is terminated by NULL. When "
+"this tag is used to map audio files, the relation of the audio file to image "
+"data must also be indicated on the audio file end."
+msgstr ""
+
+#: libexif/exif-tag.c:719
+msgid "Interoperability IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:720
+msgid ""
+"Interoperability IFD is composed of tags which stores the information to "
+"ensure the Interoperability and pointed by the following tag located in Exif "
+"IFD. The Interoperability structure of Interoperability IFD is the same as "
+"TIFF defined IFD structure but does not contain the image data "
+"characteristically compared with normal TIFF IFD."
+msgstr ""
+
+#: libexif/exif-tag.c:729
+msgid "Flash Energy"
+msgstr "Energia do Flash"
+
+#: libexif/exif-tag.c:730
+msgid ""
+"Indicates the strobe energy at the time the image is captured, as measured "
+"in Beam Candle Power Seconds (BCPS)."
+msgstr ""
+
+#: libexif/exif-tag.c:734
+msgid "Spatial Frequency Response"
+msgstr ""
+
+#: libexif/exif-tag.c:735
+msgid ""
+"This tag records the camera or input device spatial frequency table and SFR "
+"values in the direction of image width, image height, and diagonal "
+"direction, as specified in ISO 12233."
+msgstr ""
+
+#: libexif/exif-tag.c:741
+#, fuzzy
+msgid "Focal Plane X-Resolution"
+msgstr "Unidade de resolução plana focal"
+
+#: libexif/exif-tag.c:742
+msgid ""
+"Indicates the number of pixels in the image width (X) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+
+#: libexif/exif-tag.c:746
+#, fuzzy
+msgid "Focal Plane Y-Resolution"
+msgstr "Unidade de resolução plana focal"
+
+#: libexif/exif-tag.c:747
+msgid ""
+"Indicates the number of pixels in the image height (V) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+
+#: libexif/exif-tag.c:751
+msgid "Focal Plane Resolution Unit"
+msgstr "Unidade de resolução plana focal"
+
+#: libexif/exif-tag.c:752
+msgid ""
+"Indicates the unit for measuring <FocalPlaneXResolution> and "
+"<FocalPlaneYResolution>. This value is the same as the <ResolutionUnit>."
+msgstr ""
+
+#: libexif/exif-tag.c:757
+msgid "Subject Location"
+msgstr ""
+
+#: libexif/exif-tag.c:758
+msgid ""
+"Indicates the location of the main subject in the scene. The value of this "
+"tag represents the pixel at the center of the main subject relative to the "
+"left edge, prior to rotation processing as per the <Rotation> tag. The first "
+"value indicates the X column number and the second indicates the Y row "
+"number."
+msgstr ""
+
+#: libexif/exif-tag.c:765
+msgid "Exposure Index"
+msgstr ""
+
+#: libexif/exif-tag.c:766
+msgid ""
+"Indicates the exposure index selected on the camera or input device at the "
+"time the image is captured."
+msgstr ""
+
+#: libexif/exif-tag.c:769
+msgid "Sensing Method"
+msgstr "Modo de sensibilidade"
+
+#: libexif/exif-tag.c:770
+msgid "Indicates the image sensor type on the camera or input device."
+msgstr ""
+
+#: libexif/exif-tag.c:773 libexif/fuji/mnote-fuji-tag.c:64
+msgid "File Source"
+msgstr "Arquivo de origem"
+
+#: libexif/exif-tag.c:774
+msgid ""
+"Indicates the image source. If a DSC recorded the image, the tag value of "
+"this tag always be set to 3, indicating that the image was recorded on a DSC."
+msgstr ""
+
+#: libexif/exif-tag.c:778
+msgid "Scene Type"
+msgstr "Tipo da cena"
+
+#: libexif/exif-tag.c:779
+msgid ""
+"Indicates the type of scene. If a DSC recorded the image, this tag value "
+"must always be set to 1, indicating that the image was directly photographed."
+msgstr ""
+
+#: libexif/exif-tag.c:789
+msgid "Custom Rendered"
+msgstr "Processamento personalizado"
+
+#: libexif/exif-tag.c:790
+msgid ""
+"This tag indicates the use of special processing on image data, such as "
+"rendering geared to output. When special processing is performed, the reader "
+"is expected to disable or minimize any further processing."
+msgstr ""
+
+#: libexif/exif-tag.c:796
+msgid ""
+"This tag indicates the exposure mode set when the image was shot. In auto-"
+"bracketing mode, the camera shoots a series of frames of the same scene at "
+"different exposure settings."
+msgstr ""
+
+#: libexif/exif-tag.c:801
+msgid "This tag indicates the white balance mode set when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:805
+msgid "Digital Zoom Ratio"
+msgstr ""
+
+#: libexif/exif-tag.c:806
+msgid ""
+"This tag indicates the digital zoom ratio when the image was shot. If the "
+"numerator of the recorded value is 0, this indicates that digital zoom was "
+"not used."
+msgstr ""
+
+#: libexif/exif-tag.c:811
+#, fuzzy
+msgid "Focal Length in 35mm Film"
+msgstr "Comprimento focal"
+
+#: libexif/exif-tag.c:812
+msgid ""
+"This tag indicates the equivalent focal length assuming a 35mm film camera, "
+"in mm. A value of 0 means the focal length is unknown. Note that this tag "
+"differs from the FocalLength tag."
+msgstr ""
+
+#: libexif/exif-tag.c:818
+msgid "Scene Capture Type"
+msgstr "Tipo de captura de cena"
+
+#: libexif/exif-tag.c:819
+msgid ""
+"This tag indicates the type of scene that was shot. It can also be used to "
+"record the mode in which the image was shot. Note that this differs from the "
+"scene type <SceneType> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:824
+msgid "Gain Control"
+msgstr "Controle de ganho"
+
+#: libexif/exif-tag.c:825
+msgid "This tag indicates the degree of overall image gain adjustment."
+msgstr ""
+
+#: libexif/exif-tag.c:829
+msgid ""
+"This tag indicates the direction of contrast processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:833
+msgid ""
+"This tag indicates the direction of saturation processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:837
+msgid ""
+"This tag indicates the direction of sharpness processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:841
+msgid "Device Setting Description"
+msgstr "Descrição da configuração do dispositivo"
+
+#: libexif/exif-tag.c:842
+msgid ""
+"This tag indicates information on the picture-taking conditions of a "
+"particular camera model. The tag is used only to indicate the picture-taking "
+"conditions in the reader."
+msgstr ""
+
+#: libexif/exif-tag.c:848
+msgid "Subject Distance Range"
+msgstr ""
+
+#: libexif/exif-tag.c:849
+msgid "This tag indicates the distance to the subject."
+msgstr ""
+
+#: libexif/exif-tag.c:851
+msgid "Image Unique ID"
+msgstr "ID Único de imagem"
+
+#: libexif/exif-tag.c:852
+msgid ""
+"This tag indicates an identifier assigned uniquely to each image. It is "
+"recorded as an ASCII string equivalent to hexadecimal notation and 128-bit "
+"fixed length."
+msgstr ""
+
+#: libexif/exif-tag.c:857
+msgid "Gamma"
+msgstr "Gama"
+
+#: libexif/exif-tag.c:858
+msgid "Indicates the value of coefficient gamma."
+msgstr ""
+
+#: libexif/exif-tag.c:860
+msgid "PRINT Image Matching"
+msgstr ""
+
+#: libexif/exif-tag.c:861
+msgid "Related to Epson's PRINT Image Matching technology"
+msgstr ""
+
+#: libexif/exif-tag.c:863
+msgid "Padding"
+msgstr ""
+
+#: libexif/exif-tag.c:864
+msgid ""
+"This tag reserves space that can be reclaimed later when additional metadata "
+"are added. New metadata can be written in place by replacing this tag with a "
+"smaller data element and using the reclaimed space to store the new or "
+"expanded metadata tags."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:62
+msgid "Softest"
+msgstr "Mais suave"
+
+#: libexif/fuji/mnote-fuji-entry.c:66
+msgid "Hardest"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:67 libexif/fuji/mnote-fuji-entry.c:96
+msgid "Medium soft"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:68 libexif/fuji/mnote-fuji-entry.c:94
+msgid "Medium hard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:69 libexif/fuji/mnote-fuji-entry.c:90
+#: libexif/fuji/mnote-fuji-entry.c:98 libexif/fuji/mnote-fuji-entry.c:182
+msgid "Film simulation mode"
+msgstr "Modo de simulação de vídeo"
+
+#: libexif/fuji/mnote-fuji-entry.c:79
+msgid "Incandescent"
+msgstr "Incandescente"
+
+#: libexif/fuji/mnote-fuji-entry.c:85
+msgid "Medium high"
+msgstr "Médio alto"
+
+#: libexif/fuji/mnote-fuji-entry.c:87
+msgid "Medium low"
+msgstr "Médio baixo"
+
+#: libexif/fuji/mnote-fuji-entry.c:88 libexif/fuji/mnote-fuji-entry.c:97
+msgid "Original"
+msgstr "Original"
+
+#: libexif/fuji/mnote-fuji-entry.c:124 libexif/pentax/mnote-pentax-entry.c:164
+#: libexif/pentax/mnote-pentax-entry.c:299
+msgid "Program AE"
+msgstr "Programa AE"
+
+#: libexif/fuji/mnote-fuji-entry.c:125
+msgid "Natural photo"
+msgstr "Foto natural"
+
+#: libexif/fuji/mnote-fuji-entry.c:126
+msgid "Vibration reduction"
+msgstr "Redução da vibração"
+
+#: libexif/fuji/mnote-fuji-entry.c:127
+msgid "Sunset"
+msgstr "Pôr-do-sol"
+
+#: libexif/fuji/mnote-fuji-entry.c:128 libexif/pentax/mnote-pentax-entry.c:181
+msgid "Museum"
+msgstr "Museu"
+
+#: libexif/fuji/mnote-fuji-entry.c:129
+msgid "Party"
+msgstr "Festa"
+
+#: libexif/fuji/mnote-fuji-entry.c:130
+msgid "Flower"
+msgstr "Flor"
+
+#: libexif/fuji/mnote-fuji-entry.c:131 libexif/pentax/mnote-pentax-entry.c:176
+msgid "Text"
+msgstr "Texto"
+
+#: libexif/fuji/mnote-fuji-entry.c:132
+msgid "NP & flash"
+msgstr "NP & flash"
+
+#: libexif/fuji/mnote-fuji-entry.c:137
+msgid "Aperture priority AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:138
+msgid "Shutter priority AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:146
+msgid "F-Standard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:147
+msgid "F-Chrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:148
+msgid "F-B&W"
+msgstr "F-B&W"
+
+#: libexif/fuji/mnote-fuji-entry.c:151
+msgid "No blur"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:152
+msgid "Blur warning"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:155
+msgid "Focus good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:156
+msgid "Out of focus"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:159
+msgid "AE good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:160
+msgid "Over exposed"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:164
+msgid "Wide"
+msgstr "Amplo"
+
+#: libexif/fuji/mnote-fuji-entry.c:167
+msgid "F0/Standard"
+msgstr "F0/Padrão"
+
+#: libexif/fuji/mnote-fuji-entry.c:168
+msgid "F1/Studio portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:169
+msgid "F1a/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:170
+msgid "F1b/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:171
+msgid "F1c/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:172
+msgid "F2/Fujichrome"
+msgstr "F2/Fujichrome"
+
+#: libexif/fuji/mnote-fuji-entry.c:173
+msgid "F3/Studio portrait Ex"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:174
+msgid "F4/Velvia"
+msgstr "F4/Velvia"
+
+#: libexif/fuji/mnote-fuji-entry.c:177
+msgid "Auto (100-400%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:179
+msgid "Standard (100%)"
+msgstr "Padrão (100%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:180
+msgid "Wide1 (230%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:181
+msgid "Wide2 (400%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:263
+#, c-format
+msgid "%2.2f mm"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:298 libexif/pentax/mnote-pentax-entry.c:399
+#: libexif/pentax/mnote-pentax-entry.c:451
+#, c-format
+msgid "%i bytes unknown data"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:36
+msgid "Maker Note Version"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:37
+msgid "This number is unique and based on the date of manufacture."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:41
+msgid "Chromaticity Saturation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:44
+msgid "Flash Firing Strength Compensation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:46
+msgid "Focusing Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:47
+msgid "Focus Point"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:48
+msgid "Slow Synchro Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:49 libexif/pentax/mnote-pentax-tag.c:72
+msgid "Picture Mode"
+msgstr "Modo imagem"
+
+#: libexif/fuji/mnote-fuji-tag.c:50
+msgid "Continuous Taking"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:51
+msgid "Continuous Sequence Number"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:52
+msgid "FinePix Color"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:53
+msgid "Blur Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:54
+msgid "Auto Focus Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:55
+msgid "Auto Exposure Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:56
+msgid "Dynamic Range"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:57
+msgid "Film Simulation Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:58
+msgid "Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:59
+msgid "Development Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:60
+msgid "Minimum Focal Length"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:61
+msgid "Maximum Focal Length"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:62
+msgid "Maximum Aperture at Minimum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:63
+msgid "Maximum Aperture at Maximum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:65
+msgid "Order Number"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:66 libexif/pentax/mnote-pentax-tag.c:98
+msgid "Frame Number"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:49
+#, c-format
+msgid "Invalid format '%s', expected '%s' or '%s'."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:89
+msgid "AF non D lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:91
+msgid "AF-D or AF-S lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:92
+msgid "AF-D G lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:93
+msgid "AF-D VR lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:94
+msgid "AF-D G VR lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:98
+msgid "Flash unit unknown"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:99
+msgid "Flash is external"
+msgstr "Flash externo"
+
+#: libexif/olympus/mnote-olympus-entry.c:100
+#, fuzzy
+msgid "Flash is on camera"
+msgstr "Flash embutido na Câmera"
+
+#: libexif/olympus/mnote-olympus-entry.c:103
+#, fuzzy
+msgid "VGA basic"
+msgstr "VGA básico"
+
+#: libexif/olympus/mnote-olympus-entry.c:104
+#, fuzzy
+msgid "VGA normal"
+msgstr "VGA normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:105
+#, fuzzy
+msgid "VGA fine"
+msgstr "VGA fino"
+
+#: libexif/olympus/mnote-olympus-entry.c:106
+#, fuzzy
+msgid "SXGA basic"
+msgstr "SXGA Básico"
+
+#: libexif/olympus/mnote-olympus-entry.c:107
+#, fuzzy
+msgid "SXGA normal"
+msgstr "SXGA Normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:108
+#, fuzzy
+msgid "SXGA fine"
+msgstr "SXGA Agradável"
+
+#: libexif/olympus/mnote-olympus-entry.c:109
+#, fuzzy
+msgid "2 Mpixel basic"
+msgstr "2 Mega Pixel básico"
+
+#: libexif/olympus/mnote-olympus-entry.c:110
+#, fuzzy
+msgid "2 Mpixel normal"
+msgstr "2 Mega Pixel normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:111
+#, fuzzy
+msgid "2 Mpixel fine"
+msgstr "2 Mega Pixel fino"
+
+#: libexif/olympus/mnote-olympus-entry.c:114
+msgid "Color"
+msgstr "Cor"
+
+#: libexif/olympus/mnote-olympus-entry.c:119
+msgid "Bright+"
+msgstr "Brilho+"
+
+#: libexif/olympus/mnote-olympus-entry.c:120
+msgid "Bright-"
+msgstr "Brilho-"
+
+#: libexif/olympus/mnote-olympus-entry.c:121
+msgid "Contrast+"
+msgstr "Contraste+"
+
+#: libexif/olympus/mnote-olympus-entry.c:122
+msgid "Contrast-"
+msgstr "Contraste-"
+
+#: libexif/olympus/mnote-olympus-entry.c:125
+msgid "ISO 80"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:126
+msgid "ISO 160"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:127
+msgid "ISO 320"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:128
+#: libexif/olympus/mnote-olympus-entry.c:246
+msgid "ISO 100"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:132
+msgid "Preset"
+msgstr "Predefinido"
+
+#: libexif/olympus/mnote-olympus-entry.c:134
+msgid "Incandescence"
+msgstr "Incandescente"
+
+#: libexif/olympus/mnote-olympus-entry.c:135
+msgid "Fluorescence"
+msgstr "Fluorescente"
+
+#: libexif/olympus/mnote-olympus-entry.c:137
+msgid "SpeedLight"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:140
+msgid "No fisheye"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:141
+#, fuzzy
+msgid "Fisheye on"
+msgstr "Flash ligado"
+
+#: libexif/olympus/mnote-olympus-entry.c:144
+msgid "Normal, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:145
+msgid "Normal, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:146
+msgid "Normal, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:147
+msgid "Normal, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:148
+msgid "Normal, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:149
+msgid "Normal, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:150
+msgid "Normal, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:151
+msgid "Normal, standard"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:152
+msgid "Fine, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:153
+msgid "Fine, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:154
+msgid "Fine, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:155
+msgid "Fine, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:156
+msgid "Fine, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:157
+msgid "Fine, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:158
+msgid "Fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:159
+msgid "Super fine, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:160
+msgid "Super fine, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:161
+msgid "Super fine, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:162
+msgid "Super fine, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:163
+msgid "Super fine, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:164
+msgid "Super fine, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:165
+msgid "Super fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:166
+msgid "Super fine, high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:169
+#: libexif/olympus/mnote-olympus-entry.c:174
+#: libexif/olympus/mnote-olympus-entry.c:208
+#: libexif/olympus/mnote-olympus-entry.c:217
+#: libexif/olympus/mnote-olympus-entry.c:240
+msgid "No"
+msgstr "Não"
+
+#: libexif/olympus/mnote-olympus-entry.c:180
+msgid "On (Preset)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:185
+msgid "Fill"
+msgstr "Preencher"
+
+#: libexif/olympus/mnote-olympus-entry.c:192
+#, fuzzy
+msgid "Internal + external"
+msgstr "Interno + Externo"
+
+#: libexif/olympus/mnote-olympus-entry.c:221
+msgid "Interlaced"
+msgstr "Entrelaçado"
+
+#: libexif/olympus/mnote-olympus-entry.c:222
+msgid "Progressive"
+msgstr "Progressivo"
+
+#: libexif/olympus/mnote-olympus-entry.c:228
+#: libexif/pentax/mnote-pentax-entry.c:85
+#: libexif/pentax/mnote-pentax-entry.c:139
+msgid "Best"
+msgstr "Bom"
+
+#: libexif/olympus/mnote-olympus-entry.c:229
+#, fuzzy
+msgid "Adjust exposure"
+msgstr "Exposição automática"
+
+#: libexif/olympus/mnote-olympus-entry.c:232
+#, fuzzy
+msgid "Spot focus"
+msgstr "Pan foco"
+
+#: libexif/olympus/mnote-olympus-entry.c:233
+#, fuzzy
+msgid "Normal focus"
+msgstr "Processo normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:236
+msgid "Record while down"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:237
+msgid "Press start, press stop"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:245
+msgid "ISO 50"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:247
+msgid "ISO 200"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:248
+msgid "ISO 400"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:252
+#: libexif/pentax/mnote-pentax-entry.c:168
+msgid "Sport"
+msgstr "Esporte"
+
+#: libexif/olympus/mnote-olympus-entry.c:253
+msgid "TV"
+msgstr "TV"
+
+#: libexif/olympus/mnote-olympus-entry.c:255
+msgid "User 1"
+msgstr "Usuário 1"
+
+#: libexif/olympus/mnote-olympus-entry.c:256
+msgid "User 2"
+msgstr "Usuário 2"
+
+#: libexif/olympus/mnote-olympus-entry.c:257
+msgid "Lamp"
+msgstr "Lâmpada"
+
+#: libexif/olympus/mnote-olympus-entry.c:260
+msgid "5 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:261
+msgid "10 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:262
+msgid "15 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:263
+msgid "20 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:375
+#, fuzzy, c-format
+msgid "Red Correction %f, blue Correction %f"
+msgstr "Correção Vermelha %f, Correção Azul %f"
+
+#: libexif/olympus/mnote-olympus-entry.c:383
+#, c-format
+msgid "%2.2f meters"
+msgstr "%2.2f metros"
+
+#: libexif/olympus/mnote-olympus-entry.c:385
+msgid "No manual focus selection"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:411
+msgid "AF position: center"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:412
+msgid "AF position: top"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:413
+#, fuzzy
+msgid "AF position: bottom"
+msgstr "Cima para baixo"
+
+#: libexif/olympus/mnote-olympus-entry.c:414
+msgid "AF position: left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:415
+msgid "AF position: right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:416
+msgid "AF position: upper-left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:417
+msgid "AF position: upper-right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:418
+msgid "AF position: lower-left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:419
+msgid "AF position: lower-right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:420
+msgid "AF position: far left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:421
+msgid "AF position: far right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:422
+#, fuzzy
+msgid "Unknown AF position"
+msgstr "Vesão Exif desconhecida"
+
+#: libexif/olympus/mnote-olympus-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:503
+#, c-format
+msgid "Internal error (unknown value %hi)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:441
+#: libexif/olympus/mnote-olympus-entry.c:511
+#, c-format
+msgid "Unknown value %hi"
+msgstr "Valor %hi desconhecido"
+
+#: libexif/olympus/mnote-olympus-entry.c:536
+#: libexif/olympus/mnote-olympus-entry.c:556
+#, c-format
+msgid "Unknown %hu"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:553
+msgid "2 sec."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:592
+#, fuzzy
+msgid "Fast"
+msgstr "rápido"
+
+#: libexif/olympus/mnote-olympus-entry.c:696
+msgid "Automatic"
+msgstr "Automático"
+
+#: libexif/olympus/mnote-olympus-entry.c:726
+#, c-format
+msgid "Manual: %liK"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:729
+#, fuzzy
+msgid "Manual: unknown"
+msgstr "Manual: Desconhecido"
+
+#: libexif/olympus/mnote-olympus-entry.c:735
+msgid "One-touch"
+msgstr "Um-toque"
+
+#: libexif/olympus/mnote-olympus-entry.c:791
+#: libexif/olympus/mnote-olympus-entry.c:801
+msgid "Infinite"
+msgstr "Infinito"
+
+#: libexif/olympus/mnote-olympus-entry.c:809
+#, c-format
+msgid "%i bytes unknown data: "
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:53
+msgid "ISO Setting"
+msgstr "Configuração ISO"
+
+#: libexif/olympus/mnote-olympus-tag.c:39
+msgid "Color Mode (?)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:42
+msgid "Image Sharpening"
+msgstr "Modelação de imagem"
+
+#: libexif/olympus/mnote-olympus-tag.c:44
+msgid "Flash Setting"
+msgstr "Configuração do flash"
+
+#: libexif/olympus/mnote-olympus-tag.c:46
+msgid "White Balance Fine Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:47
+msgid "White Balance RB"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:49
+msgid "ISO Selection"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Preview Image IFD"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Offset of the preview image directory (IFD) inside the file."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:51
+msgid "Exposurediff ?"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:54
+msgid "Image Boundary"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:56
+msgid "Flash Exposure Bracket Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:57
+msgid "Exposure Bracket Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:58
+#: libexif/olympus/mnote-olympus-tag.c:96
+msgid "Image Adjustment"
+msgstr "Ajuste de imagem"
+
+#: libexif/olympus/mnote-olympus-tag.c:59
+msgid "Tone Compensation"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:60
+msgid "Adapter"
+msgstr "Adaptador"
+
+#: libexif/olympus/mnote-olympus-tag.c:62
+msgid "Lens"
+msgstr "Lentes"
+
+#: libexif/olympus/mnote-olympus-tag.c:63
+#: libexif/olympus/mnote-olympus-tag.c:135
+#: libexif/olympus/mnote-olympus-tag.c:185
+msgid "Manual Focus Distance"
+msgstr "Distância do foco manual"
+
+#: libexif/olympus/mnote-olympus-tag.c:65
+msgid "Flash Used"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:66
+msgid "AF Focus Position"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:67
+msgid "Bracketing"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:69
+msgid "Lens F Stops"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:70
+msgid "Contrast Curve"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:71
+#: libexif/olympus/mnote-olympus-tag.c:95
+#: libexif/pentax/mnote-pentax-tag.c:134
+msgid "Color Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:72
+msgid "Light Type"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:74
+msgid "Hue Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:76
+#: libexif/olympus/mnote-olympus-tag.c:163
+#: libexif/pentax/mnote-pentax-tag.c:108
+msgid "Noise Reduction"
+msgstr "Redução de ruído"
+
+#: libexif/olympus/mnote-olympus-tag.c:79
+msgid "Sensor Pixel Size"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+#, fuzzy
+msgid "Image Data Size"
+msgstr "Tamanho da imagem"
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Size of compressed image data in bytes."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:84
+msgid "Total Number of Pictures Taken"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:86
+msgid "Optimize Image"
+msgstr "Otimizar imagem"
+
+#: libexif/olympus/mnote-olympus-tag.c:88
+msgid "Vari Program"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:89
+msgid "Capture Editor Data"
+msgstr "Editor de dados capturados"
+
+#: libexif/olympus/mnote-olympus-tag.c:90
+msgid "Capture Editor Version"
+msgstr "Versão do editor de captura"
+
+#: libexif/olympus/mnote-olympus-tag.c:97
+#: libexif/olympus/mnote-olympus-tag.c:183
+msgid "CCD Sensitivity"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:99
+msgid "Focus"
+msgstr "Foco"
+
+#: libexif/olympus/mnote-olympus-tag.c:102
+msgid "Converter"
+msgstr "Conversor"
+
+#: libexif/olympus/mnote-olympus-tag.c:105
+msgid "Thumbnail Image"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:106
+msgid "Speed/Sequence/Panorama Direction"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:109
+#, fuzzy
+msgid "Black & White Mode"
+msgstr "Preto e branco"
+
+#: libexif/olympus/mnote-olympus-tag.c:111
+msgid "Focal Plane Diagonal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:112
+msgid "Lens Distortion Parameters"
+msgstr "Parâmetros de distorção das lentes"
+
+#: libexif/olympus/mnote-olympus-tag.c:114
+msgid "Info"
+msgstr "Informação"
+
+#: libexif/olympus/mnote-olympus-tag.c:115
+msgid "Camera ID"
+msgstr "ID da câmera"
+
+#: libexif/olympus/mnote-olympus-tag.c:116
+msgid "Precapture Frames"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:117
+msgid "White Board"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:118
+msgid "One Touch White Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:119
+msgid "White Balance Bracket"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:120
+#: libexif/pentax/mnote-pentax-tag.c:123
+msgid "White Balance Bias"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:121
+msgid "Data Dump"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:124
+msgid "ISO Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:125
+msgid "Aperture Value"
+msgstr "Valor da abertura"
+
+#: libexif/olympus/mnote-olympus-tag.c:126
+msgid "Brightness Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:128
+msgid "Flash Device"
+msgstr "Dispositivo de luz"
+
+#: libexif/olympus/mnote-olympus-tag.c:130
+msgid "Sensor Temperature"
+msgstr "Temperatura do sensor"
+
+#: libexif/olympus/mnote-olympus-tag.c:131
+msgid "Lens Temperature"
+msgstr "Temperatura das lentes"
+
+#: libexif/olympus/mnote-olympus-tag.c:132
+msgid "Light Condition"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:136
+msgid "Zoom Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:137
+msgid "Focus Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:138
+msgid "Sharpness Setting"
+msgstr "Configuração de nitidez"
+
+#: libexif/olympus/mnote-olympus-tag.c:139
+msgid "Flash Charge Level"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:140
+msgid "Color Matrix"
+msgstr "Matriz de cores"
+
+#: libexif/olympus/mnote-olympus-tag.c:141
+msgid "Black Level"
+msgstr "Níveis de preto"
+
+#: libexif/olympus/mnote-olympus-tag.c:142
+msgid "White Balance Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:143
+#: libexif/pentax/mnote-pentax-tag.c:87
+msgid "Red Balance"
+msgstr "Balanço do vermelho"
+
+#: libexif/olympus/mnote-olympus-tag.c:144
+#: libexif/pentax/mnote-pentax-tag.c:86
+msgid "Blue Balance"
+msgstr "Balanço do azul"
+
+#: libexif/olympus/mnote-olympus-tag.c:145
+msgid "Color Matrix Number"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:147
+msgid "Flash Exposure Comp"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:148
+msgid "Internal Flash Table"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:149
+msgid "External Flash G Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:150
+msgid "External Flash Bounce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:151
+msgid "External Flash Zoom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:152
+msgid "External Flash Mode"
+msgstr "Modo de luz externa"
+
+#: libexif/olympus/mnote-olympus-tag.c:153
+msgid "Contrast Setting"
+msgstr "Configuração de contraste"
+
+#: libexif/olympus/mnote-olympus-tag.c:154
+msgid "Sharpness Factor"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:155
+msgid "Color Control"
+msgstr "Controle de cor"
+
+#: libexif/olympus/mnote-olympus-tag.c:156
+msgid "Olympus Image Width"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:157
+msgid "Olympus Image Height"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:158
+msgid "Scene Detect"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:159
+msgid "Compression Ratio"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:160
+msgid "Preview Image Valid"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:161
+msgid "AF Result"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:162
+msgid "CCD Scan Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:164
+msgid "Infinity Lens Step"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:165
+msgid "Near Lens Step"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:166
+msgid "Light Value Center"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:167
+msgid "Light Value Periphery"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:170
+msgid "Sequential Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:171
+msgid "Wide Range"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:172
+msgid "Color Adjustment Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:174
+msgid "Quick Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:176
+msgid "Voice Memo"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:177
+msgid "Record Shutter Release"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:178
+msgid "Flicker Reduce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:179
+msgid "Optical Zoom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:181
+msgid "Light Source Special"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:182
+msgid "Resaved"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:184
+msgid "Scene Select"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:186
+msgid "Sequence Shot Interval"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:189
+msgid "Epson Image Width"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:190
+msgid "Epson Image Height"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:191
+msgid "Epson Software Version"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:80
+#: libexif/pentax/mnote-pentax-entry.c:134
+msgid "Multi-exposure"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:83
+#: libexif/pentax/mnote-pentax-entry.c:137
+msgid "Good"
+msgstr "Bom"
+
+#: libexif/pentax/mnote-pentax-entry.c:84
+#: libexif/pentax/mnote-pentax-entry.c:138
+msgid "Better"
+msgstr "Melhor"
+
+#: libexif/pentax/mnote-pentax-entry.c:92
+msgid "Flash on"
+msgstr "Flash ligado"
+
+#: libexif/pentax/mnote-pentax-entry.c:140
+msgid "TIFF"
+msgstr "TIFF"
+
+#: libexif/pentax/mnote-pentax-entry.c:150
+msgid "2560x1920 or 2304x1728"
+msgstr "2560x1920 ou 2304x1728"
+
+#: libexif/pentax/mnote-pentax-entry.c:156
+msgid "2304x1728 or 2592x1944"
+msgstr "2304x1728 ou 2592x1944"
+
+#: libexif/pentax/mnote-pentax-entry.c:158
+msgid "2816x2212 or 2816x2112"
+msgstr "2816x2212 ou 2816x2112"
+
+#: libexif/pentax/mnote-pentax-entry.c:171
+msgid "Surf & snow"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:172
+#, fuzzy
+msgid "Sunset or candlelight"
+msgstr "Pôr-do-sol ou vela"
+
+#: libexif/pentax/mnote-pentax-entry.c:173
+msgid "Autumn"
+msgstr "Outono"
+
+#: libexif/pentax/mnote-pentax-entry.c:178
+#, fuzzy
+msgid "Self portrait"
+msgstr "Porta retrato"
+
+#: libexif/pentax/mnote-pentax-entry.c:179
+msgid "Illustrations"
+msgstr "Ilustrações"
+
+#: libexif/pentax/mnote-pentax-entry.c:180
+#, fuzzy
+msgid "Digital filter"
+msgstr "Filtro digital"
+
+#: libexif/pentax/mnote-pentax-entry.c:182
+msgid "Food"
+msgstr "Comida"
+
+#: libexif/pentax/mnote-pentax-entry.c:183
+#, fuzzy
+msgid "Green mode"
+msgstr "Modo verde"
+
+#: libexif/pentax/mnote-pentax-entry.c:184
+#, fuzzy
+msgid "Light pet"
+msgstr "Fonte de luz"
+
+#: libexif/pentax/mnote-pentax-entry.c:185
+msgid "Dark pet"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:186
+#, fuzzy
+msgid "Medium pet"
+msgstr "Médio 1"
+
+#: libexif/pentax/mnote-pentax-entry.c:188
+#: libexif/pentax/mnote-pentax-entry.c:296
+msgid "Candlelight"
+msgstr "Vela"
+
+#: libexif/pentax/mnote-pentax-entry.c:189
+#, fuzzy
+msgid "Natural skin tone"
+msgstr "Tonalidade natural da pele"
+
+#: libexif/pentax/mnote-pentax-entry.c:190
+msgid "Synchro sound record"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:191
+#, fuzzy
+msgid "Frame composite"
+msgstr "Composição dos quadros"
+
+#: libexif/pentax/mnote-pentax-entry.c:194
+#, fuzzy
+msgid "Auto, did not fire"
+msgstr "Flash não ativado"
+
+#: libexif/pentax/mnote-pentax-entry.c:196
+#, fuzzy
+msgid "Auto, did not fire, red-eye reduction"
+msgstr "Automático + Redução de olhos vermelhos"
+
+#: libexif/pentax/mnote-pentax-entry.c:197
+#, fuzzy
+msgid "Auto, fired"
+msgstr "Colchete automático"
+
+#: libexif/pentax/mnote-pentax-entry.c:199
+#, fuzzy
+msgid "Auto, fired, red-eye reduction"
+msgstr "Automático + Redução de olhos vermelhos"
+
+#: libexif/pentax/mnote-pentax-entry.c:201
+#, fuzzy
+msgid "On, wireless"
+msgstr "Rede sem fio, Ativado"
+
+#: libexif/pentax/mnote-pentax-entry.c:202
+#, fuzzy
+msgid "On, soft"
+msgstr "Ligar (shot 1)"
+
+#: libexif/pentax/mnote-pentax-entry.c:203
+msgid "On, slow-sync"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:204
+#, fuzzy
+msgid "On, slow-sync, red-eye reduction"
+msgstr "Redução de olhos vermelhos, ativado"
+
+#: libexif/pentax/mnote-pentax-entry.c:205
+msgid "On, trailing-curtain sync"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:213
+msgid "AF-S"
+msgstr "AF-S"
+
+#: libexif/pentax/mnote-pentax-entry.c:214
+msgid "AF-C"
+msgstr "AF-C"
+
+#: libexif/pentax/mnote-pentax-entry.c:217
+msgid "Upper-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:218
+msgid "Top"
+msgstr "Superior"
+
+#: libexif/pentax/mnote-pentax-entry.c:219
+msgid "Upper-right"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:221
+msgid "Mid-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:223
+msgid "Mid-right"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:225
+msgid "Lower-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:226
+msgid "Bottom"
+msgstr "Inferior"
+
+#: libexif/pentax/mnote-pentax-entry.c:227
+msgid "Lower-right"
+msgstr "Direita inferior"
+
+#: libexif/pentax/mnote-pentax-entry.c:228
+#, fuzzy
+msgid "Fixed center"
+msgstr "Tempo bom"
+
+#: libexif/pentax/mnote-pentax-entry.c:232
+msgid "Multiple"
+msgstr "Múltiplo"
+
+#: libexif/pentax/mnote-pentax-entry.c:234
+msgid "Top-center"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:240
+msgid "Bottom-center"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:257
+#, fuzzy
+msgid "User selected"
+msgstr "Usuário selecionado"
+
+#: libexif/pentax/mnote-pentax-entry.c:282
+msgid "3008x2008 or 3040x2024"
+msgstr "3008x2008 ou 3040x2024"
+
+#: libexif/pentax/mnote-pentax-entry.c:293
+#, fuzzy
+msgid "Digital filter?"
+msgstr "Filtro digital?"
+
+#: libexif/pentax/mnote-pentax-entry.c:374
+#: libexif/pentax/mnote-pentax-entry.c:383
+#, c-format
+msgid "Internal error (unknown value %i %i)"
+msgstr "Erro interno (valor %i %i desconhecido)"
+
+#: libexif/pentax/mnote-pentax-tag.c:35 libexif/pentax/mnote-pentax-tag.c:63
+msgid "Capture Mode"
+msgstr "Modo de captura"
+
+#: libexif/pentax/mnote-pentax-tag.c:36 libexif/pentax/mnote-pentax-tag.c:70
+#: libexif/pentax/mnote-pentax-tag.c:129
+msgid "Quality Level"
+msgstr "Nível da qualidade"
+
+#: libexif/pentax/mnote-pentax-tag.c:54
+#, fuzzy
+msgid "ISO Speed"
+msgstr "Velocidade da veneziana"
+
+#: libexif/pentax/mnote-pentax-tag.c:56
+msgid "Colors"
+msgstr "Cores"
+
+#: libexif/pentax/mnote-pentax-tag.c:59
+msgid "PrintIM Settings"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:60 libexif/pentax/mnote-pentax-tag.c:131
+msgid "Time Zone"
+msgstr "Fuso horário"
+
+#: libexif/pentax/mnote-pentax-tag.c:61
+msgid "Daylight Savings"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:64
+msgid "Preview Size"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:65
+msgid "Preview Length"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:66 libexif/pentax/mnote-pentax-tag.c:122
+msgid "Preview Start"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:67
+msgid "Model Identification"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:68
+msgid "Date"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:69
+msgid "Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:75
+msgid "AF Point Selected"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:76
+msgid "Auto AF Point"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:77
+msgid "Focus Position"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:80
+msgid "ISO Number"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:83
+msgid "Auto Bracketing"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:85
+msgid "White Balance Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:93
+msgid "World Time Location"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:94
+msgid "Hometown City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:95
+msgid "Destination City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Hometown DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Home Daylight Savings Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination Daylight Savings Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:99
+msgid "Image Processing"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:100
+msgid "Picture Mode (2)"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:103
+msgid "Image Area Offset"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:104
+msgid "Raw Image Size"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:105
+msgid "Autofocus Points Used"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:107
+msgid "Camera Temperature"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:110
+msgid "Image Tone"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:111
+msgid "Shake Reduction Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:112
+msgid "Black Point"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:114
+msgid "AE Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:115
+msgid "Lens Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:116
+msgid "Flash Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:117
+msgid "Camera Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:118
+msgid "Battery Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:119
+msgid "Hometown City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:120
+msgid "Destination City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Object Distance"
+msgstr "Distância do objeto"
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Distance of photographed object in millimeters."
+msgstr "Distância do objeto fotografado em milímetros."
+
+#: libexif/pentax/mnote-pentax-tag.c:126
+msgid "Flash Distance"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:132
+msgid "Bestshot Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:133
+msgid "CCS ISO Sensitivity"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:135
+msgid "Enhancement"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:136
+msgid "Finer"
+msgstr ""
+
+#: test/nls/test-nls.c:20 test/nls/test-nls.c:23 test/nls/test-nls.c:24
+msgid "[DO_NOT_TRANSLATE_THIS_MARKER]"
+msgstr "[DO_NOT_TRANSLATE_THIS_MARKER]"
+
+#~ msgid "On + Red-eye reduction"
+#~ msgstr "Ativar + Redução de olhos vermelhos"
+
+#~ msgid "Left + Right"
+#~ msgstr "Esquerda + Direita"
+
+#~ msgid "Manual Temperature (Kelvin)"
+#~ msgstr "Temperatura manual (Kelvin)"
+
+#~ msgid "Daylight Fluorescent"
+#~ msgstr "Luz do dia fluorescente"
+
+#~ msgid "top - left"
+#~ msgstr "acima - esquerda"
+
+#~ msgid "top - right"
+#~ msgstr "acima - direita"
+
+#~ msgid "bottom - right"
+#~ msgstr "abaixo - direita"
+
+#~ msgid "bottom - left"
+#~ msgstr "abaixo - esquerda"
+
+#~ msgid "flash"
+#~ msgstr "flash"
+
+#~ msgid "%.02lf EV"
+#~ msgstr "%.02lf EV"
+
+#~ msgid "y-Resolution"
+#~ msgstr "Resolução-y"
+
+#~ msgid "Shutter speed"
+#~ msgstr "Velocidade do obturador"
+
+#~ msgid "Macro mode"
+#~ msgstr "Modo Macro"
+
+#~ msgid "normal"
+#~ msgstr "normal"
+
+#~ msgid "unknown"
+#~ msgstr "desconhecido"
+
+#~ msgid "panorama"
+#~ msgstr "panorama"
+
+#~ msgid "left to right"
+#~ msgstr "esquerda para direita"
+
+#~ msgid "right to left"
+#~ msgstr "direita para esquerda"
+
+#~ msgid "bottom to top"
+#~ msgstr "baixo para cima"
+
+#~ msgid "top to bottom"
+#~ msgstr "cima para baixo"
+
+#~ msgid "Self Timer"
+#~ msgstr "Tempo restante"
+
+#~ msgid "Night-scene"
+#~ msgstr "Ambiente noturno"
+
+#~ msgid "Red-eye Reduction"
+#~ msgstr "Redução de olhos vermelhos"
+
+#~ msgid "Night Scene"
+#~ msgstr "Ambiente noturno"
+
+#~ msgid "PictureMode"
+#~ msgstr "Modo de imagem"
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/quot.sed b/framework/modules/c_LibExifModule/libexif-0.6.20/po/quot.sed
new file mode 100644
index 0000000000000000000000000000000000000000..0122c46318dc8bc115167fa2c259f8456668f861
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/quot.sed
@@ -0,0 +1,6 @@
+s/"\([^"]*\)"/“\1”/g
+s/`\([^`']*\)'/‘\1’/g
+s/ '\([^`']*\)' / ‘\1’ /g
+s/ '\([^`']*\)'$/ ‘\1’/g
+s/^'\([^`']*\)' /‘\1’ /g
+s/“”/""/g
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/remove-potcdate.sin b/framework/modules/c_LibExifModule/libexif-0.6.20/po/remove-potcdate.sin
new file mode 100644
index 0000000000000000000000000000000000000000..2436c49e786dea6c9b4a8f87803288496ed38164
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/remove-potcdate.sin
@@ -0,0 +1,19 @@
+# Sed script that remove the POT-Creation-Date line in the header entry
+# from a POT file.
+#
+# The distinction between the first and the following occurrences of the
+# pattern is achieved by looking at the hold space.
+/^"POT-Creation-Date: .*"$/{
+x
+# Test if the hold space is empty.
+s/P/P/
+ta
+# Yes it was empty. First occurrence. Remove the line.
+g
+d
+bb
+:a
+# The hold space was nonempty. Following occurrences. Do nothing.
+x
+:b
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/ru.gmo b/framework/modules/c_LibExifModule/libexif-0.6.20/po/ru.gmo
new file mode 100644
index 0000000000000000000000000000000000000000..fc5a5e610089f750d2a39330e6c7ca1fc91c7880
Binary files /dev/null and b/framework/modules/c_LibExifModule/libexif-0.6.20/po/ru.gmo differ
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/ru.po b/framework/modules/c_LibExifModule/libexif-0.6.20/po/ru.po
new file mode 100644
index 0000000000000000000000000000000000000000..2edcab4b0104b803f79ba093856d51fe5eb6f160
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/ru.po
@@ -0,0 +1,5666 @@
+# translation of ru.po to Russian
+# translation of libexif-12.po to Russian
+# This file is distributed under the same license as the PACKAGE package.
+# Copyright (C) YEAR Lutz Müller and others.
+# Alexandre Prokoudine <alexandre.prokoudine@gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ru\n"
+"Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-12-15 22:14-0800\n"
+"PO-Revision-Date: 2010-12-08 00:53+0000\n"
+"Last-Translator: Alexey Ivanov <alexey.ivanes@gmail.com>\n"
+"Language-Team: Russian <ru@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-12-14 00:37+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: libexif/canon/mnote-canon-entry.c:40 libexif/fuji/mnote-fuji-entry.c:35
+#: libexif/olympus/mnote-olympus-entry.c:37
+#: libexif/pentax/mnote-pentax-entry.c:39
+#, c-format
+msgid "Invalid format '%s', expected '%s'."
+msgstr "Некорректный формат '%s', ожидалось '%s'."
+
+#: libexif/canon/mnote-canon-entry.c:52 libexif/fuji/mnote-fuji-entry.c:47
+#: libexif/olympus/mnote-olympus-entry.c:62
+#: libexif/pentax/mnote-pentax-entry.c:51
+#, c-format
+msgid "Invalid number of components (%i, expected %i)."
+msgstr "Некорректное число компонентов (%i, ожидалось %i)."
+
+#: libexif/canon/mnote-canon-entry.c:61
+#: libexif/olympus/mnote-olympus-entry.c:72
+#: libexif/pentax/mnote-pentax-entry.c:61
+#, c-format
+msgid "Invalid number of components (%i, expected %i or %i)."
+msgstr "Некорректное число компонентов (%i, ожидалось %i или %i)."
+
+#: libexif/canon/mnote-canon-entry.c:76 libexif/canon/mnote-canon-entry.c:130
+#: libexif/canon/mnote-canon-entry.c:182 libexif/exif-entry.c:796
+#: libexif/olympus/mnote-olympus-entry.c:196
+#: libexif/olympus/mnote-olympus-tag.c:108
+#: libexif/pentax/mnote-pentax-entry.c:174
+#: libexif/pentax/mnote-pentax-entry.c:209
+#: libexif/pentax/mnote-pentax-entry.c:297
+msgid "Macro"
+msgstr "Макро"
+
+#: libexif/canon/mnote-canon-entry.c:77 libexif/canon/mnote-canon-entry.c:79
+#: libexif/canon/mnote-canon-entry.c:157 libexif/canon/mnote-canon-entry.c:160
+#: libexif/canon/mnote-canon-entry.c:163 libexif/exif-entry.c:674
+#: libexif/exif-entry.c:677 libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/exif-entry.c:745 libexif/fuji/mnote-fuji-entry.c:64
+#: libexif/olympus/mnote-olympus-entry.c:118
+#: libexif/olympus/mnote-olympus-entry.c:195
+#: libexif/olympus/mnote-olympus-entry.c:203
+#: libexif/olympus/mnote-olympus-entry.c:213
+#: libexif/olympus/mnote-olympus-entry.c:586
+#: libexif/pentax/mnote-pentax-entry.c:105
+#: libexif/pentax/mnote-pentax-entry.c:110
+#: libexif/pentax/mnote-pentax-entry.c:115
+#: libexif/pentax/mnote-pentax-entry.c:208
+msgid "Normal"
+msgstr "Обычное"
+
+#: libexif/canon/mnote-canon-entry.c:78
+msgid "Economy"
+msgstr "Экономное"
+
+#: libexif/canon/mnote-canon-entry.c:80
+msgid "Fine"
+msgstr "Отличное"
+
+#: libexif/canon/mnote-canon-entry.c:81 libexif/fuji/mnote-fuji-entry.c:178
+#: libexif/pentax/mnote-pentax-entry.c:141
+msgid "RAW"
+msgstr "RAW"
+
+#: libexif/canon/mnote-canon-entry.c:82
+msgid "Superfine"
+msgstr "Превосходное"
+
+#: libexif/canon/mnote-canon-entry.c:83 libexif/canon/mnote-canon-entry.c:301
+#: libexif/canon/mnote-canon-entry.c:304 libexif/canon/mnote-canon-entry.c:312
+#: libexif/canon/mnote-canon-entry.c:345 libexif/canon/mnote-canon-entry.c:357
+#: libexif/canon/mnote-canon-entry.c:370 libexif/canon/mnote-canon-entry.c:372
+#: libexif/canon/mnote-canon-entry.c:574 libexif/canon/mnote-canon-entry.c:671
+#: libexif/fuji/mnote-fuji-entry.c:70 libexif/fuji/mnote-fuji-entry.c:103
+#: libexif/fuji/mnote-fuji-entry.c:107 libexif/fuji/mnote-fuji-entry.c:115
+#: libexif/fuji/mnote-fuji-entry.c:142
+#: libexif/olympus/mnote-olympus-entry.c:178
+#: libexif/olympus/mnote-olympus-entry.c:186
+#: libexif/olympus/mnote-olympus-entry.c:251
+#: libexif/olympus/mnote-olympus-entry.c:530
+#: libexif/olympus/mnote-olympus-entry.c:547
+#: libexif/pentax/mnote-pentax-entry.c:195
+#: libexif/pentax/mnote-pentax-entry.c:260
+msgid "Off"
+msgstr "Выкл"
+
+#: libexif/canon/mnote-canon-entry.c:84 libexif/canon/mnote-canon-entry.c:167
+#: libexif/canon/mnote-canon-entry.c:180 libexif/canon/mnote-canon-entry.c:328
+#: libexif/canon/mnote-canon-entry.c:400 libexif/fuji/mnote-fuji-entry.c:73
+#: libexif/fuji/mnote-fuji-entry.c:101 libexif/fuji/mnote-fuji-entry.c:111
+#: libexif/fuji/mnote-fuji-entry.c:119
+#: libexif/olympus/mnote-olympus-entry.c:131
+#: libexif/olympus/mnote-olympus-entry.c:183
+#: libexif/olympus/mnote-olympus-entry.c:199
+#: libexif/olympus/mnote-olympus-entry.c:244
+#: libexif/pentax/mnote-pentax-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:88
+#: libexif/pentax/mnote-pentax-entry.c:91
+#: libexif/pentax/mnote-pentax-entry.c:97
+#: libexif/pentax/mnote-pentax-entry.c:131
+#: libexif/pentax/mnote-pentax-entry.c:229
+#: libexif/pentax/mnote-pentax-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:290
+msgid "Auto"
+msgstr "Авто"
+
+#: libexif/canon/mnote-canon-entry.c:85 libexif/canon/mnote-canon-entry.c:302
+#: libexif/canon/mnote-canon-entry.c:347 libexif/canon/mnote-canon-entry.c:361
+#: libexif/canon/mnote-canon-entry.c:371 libexif/fuji/mnote-fuji-entry.c:102
+#: libexif/fuji/mnote-fuji-entry.c:108 libexif/fuji/mnote-fuji-entry.c:116
+#: libexif/fuji/mnote-fuji-entry.c:143
+#: libexif/olympus/mnote-olympus-entry.c:179
+#: libexif/olympus/mnote-olympus-entry.c:533
+#: libexif/olympus/mnote-olympus-entry.c:550
+#: libexif/pentax/mnote-pentax-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:261
+msgid "On"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:86 libexif/fuji/mnote-fuji-entry.c:104
+#: libexif/olympus/mnote-olympus-entry.c:184
+#: libexif/pentax/mnote-pentax-entry.c:94
+msgid "Red-eye reduction"
+msgstr "Подавление эффекта красных глаз"
+
+#: libexif/canon/mnote-canon-entry.c:87
+msgid "Slow synchro"
+msgstr "Медленная синхронизация"
+
+#: libexif/canon/mnote-canon-entry.c:88
+#, fuzzy
+msgid "Auto, red-eye reduction"
+msgstr "Авто + подавление эффекта красных глаз"
+
+#: libexif/canon/mnote-canon-entry.c:89
+#: libexif/pentax/mnote-pentax-entry.c:200
+#, fuzzy
+msgid "On, red-eye reduction"
+msgstr "Вкл + подавление эффекта красных глаз"
+
+#: libexif/canon/mnote-canon-entry.c:90
+msgid "External flash"
+msgstr "Внешняя вспышка"
+
+#: libexif/canon/mnote-canon-entry.c:91 libexif/canon/mnote-canon-entry.c:101
+#: libexif/canon/mnote-canon-entry.c:294
+msgid "Single"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:92 libexif/canon/mnote-canon-entry.c:102
+#: libexif/canon/mnote-canon-entry.c:295
+msgid "Continuous"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:93
+msgid "Movie"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:94
+msgid "Continuous, speed priority"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:95
+msgid "Continuous, low"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:96
+msgid "Continuous, high"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:97
+msgid "One-shot AF"
+msgstr "Покадровая автофокусировка (One-shot AF)"
+
+#: libexif/canon/mnote-canon-entry.c:98
+msgid "AI servo AF"
+msgstr "Автофокусировка с сервоприводом (AI servo AF)"
+
+#: libexif/canon/mnote-canon-entry.c:99
+msgid "AI focus AF"
+msgstr "\"Интелектуальный\" автофокус (AI focus AF)"
+
+#: libexif/canon/mnote-canon-entry.c:100 libexif/canon/mnote-canon-entry.c:103
+msgid "Manual focus"
+msgstr "Ручная фокусировка"
+
+#: libexif/canon/mnote-canon-entry.c:104 libexif/canon/mnote-canon-entry.c:132
+#: libexif/canon/mnote-canon-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:212
+msgid "Pan focus"
+msgstr "Панорамный фокус"
+
+#: libexif/canon/mnote-canon-entry.c:105
+msgid "JPEG"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:106
+msgid "CRW+THM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:107
+msgid "AVI+THM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:108
+msgid "TIF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:109
+msgid "TIF+JPEG"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:110
+msgid "CR2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:111
+msgid "CR2+JPEG"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:112
+msgid "Large"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:113
+msgid "Medium"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:114
+msgid "Small"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:115
+msgid "Medium 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:116
+msgid "Medium 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:117
+msgid "Medium 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:118
+msgid "Postcard"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:119
+msgid "Widescreen"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:120
+msgid "Full auto"
+msgstr "Полная автоматика"
+
+#: libexif/canon/mnote-canon-entry.c:121 libexif/canon/mnote-canon-entry.c:179
+#: libexif/canon/mnote-canon-entry.c:201 libexif/canon/mnote-canon-entry.c:285
+#: libexif/canon/mnote-canon-entry.c:392 libexif/exif-entry.c:744
+#: libexif/fuji/mnote-fuji-entry.c:112
+#: libexif/olympus/mnote-olympus-entry.c:90
+#: libexif/olympus/mnote-olympus-entry.c:200
+#: libexif/pentax/mnote-pentax-entry.c:79
+#: libexif/pentax/mnote-pentax-entry.c:102
+#: libexif/pentax/mnote-pentax-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:165
+#: libexif/pentax/mnote-pentax-entry.c:211
+#: libexif/pentax/mnote-pentax-entry.c:250
+msgid "Manual"
+msgstr "Ручная"
+
+#: libexif/canon/mnote-canon-entry.c:122 libexif/canon/mnote-canon-entry.c:430
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:755
+#: libexif/fuji/mnote-fuji-entry.c:121 libexif/pentax/mnote-pentax-entry.c:167
+#: libexif/pentax/mnote-pentax-entry.c:301
+msgid "Landscape"
+msgstr "Альбом"
+
+#: libexif/canon/mnote-canon-entry.c:123
+msgid "Fast shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:124
+msgid "Slow shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:125 libexif/fuji/mnote-fuji-entry.c:123
+#: libexif/olympus/mnote-olympus-entry.c:254
+msgid "Night"
+msgstr "Ночь"
+
+#: libexif/canon/mnote-canon-entry.c:126
+msgid "Grayscale"
+msgstr "Оттенки серого"
+
+#: libexif/canon/mnote-canon-entry.c:127 libexif/canon/mnote-canon-entry.c:308
+#: libexif/pentax/mnote-pentax-entry.c:128
+msgid "Sepia"
+msgstr "Сепия"
+
+#: libexif/canon/mnote-canon-entry.c:128 libexif/canon/mnote-canon-entry.c:429
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:753
+#: libexif/fuji/mnote-fuji-entry.c:120 libexif/pentax/mnote-pentax-entry.c:166
+#: libexif/pentax/mnote-pentax-entry.c:291
+#: libexif/pentax/mnote-pentax-entry.c:294
+#: libexif/pentax/mnote-pentax-entry.c:300
+msgid "Portrait"
+msgstr "Портрет"
+
+#: libexif/canon/mnote-canon-entry.c:129 libexif/fuji/mnote-fuji-entry.c:122
+msgid "Sports"
+msgstr "Спорт"
+
+#: libexif/canon/mnote-canon-entry.c:131 libexif/canon/mnote-canon-entry.c:309
+#: libexif/canon/mnote-canon-entry.c:335 libexif/canon/mnote-canon-entry.c:407
+#: libexif/fuji/mnote-fuji-entry.c:89 libexif/pentax/mnote-pentax-entry.c:127
+msgid "Black & white"
+msgstr "Черно-белый"
+
+#: libexif/canon/mnote-canon-entry.c:133 libexif/canon/mnote-canon-entry.c:305
+msgid "Vivid"
+msgstr "Простая графика"
+
+#: libexif/canon/mnote-canon-entry.c:134 libexif/canon/mnote-canon-entry.c:306
+#: libexif/canon/mnote-canon-entry.c:431
+msgid "Neutral"
+msgstr "Нейтральный"
+
+#: libexif/canon/mnote-canon-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:93
+msgid "Flash off"
+msgstr "Без вспышки"
+
+#: libexif/canon/mnote-canon-entry.c:136
+msgid "Long shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:137 libexif/canon/mnote-canon-entry.c:188
+#: libexif/olympus/mnote-olympus-entry.c:171
+msgid "Super macro"
+msgstr "Супер макро"
+
+#: libexif/canon/mnote-canon-entry.c:138
+msgid "Foliage"
+msgstr "Листва"
+
+#: libexif/canon/mnote-canon-entry.c:139
+msgid "Indoor"
+msgstr "В помещении"
+
+#: libexif/canon/mnote-canon-entry.c:140 libexif/fuji/mnote-fuji-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:175
+msgid "Fireworks"
+msgstr "Фейерверк"
+
+#: libexif/canon/mnote-canon-entry.c:141 libexif/fuji/mnote-fuji-entry.c:133
+msgid "Beach"
+msgstr "Пляж"
+
+#: libexif/canon/mnote-canon-entry.c:142 libexif/canon/mnote-canon-entry.c:344
+#: libexif/canon/mnote-canon-entry.c:416 libexif/fuji/mnote-fuji-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:292
+#: libexif/pentax/mnote-pentax-entry.c:298
+msgid "Underwater"
+msgstr "Подводная съемка"
+
+#: libexif/canon/mnote-canon-entry.c:143 libexif/fuji/mnote-fuji-entry.c:134
+msgid "Snow"
+msgstr "Снег"
+
+#: libexif/canon/mnote-canon-entry.c:144
+msgid "Kids & pets"
+msgstr "Дети и домашние животные"
+
+#: libexif/canon/mnote-canon-entry.c:145
+msgid "Night snapshot"
+msgstr "Ночная фотография"
+
+#: libexif/canon/mnote-canon-entry.c:146
+msgid "Digital macro"
+msgstr "Цифровой макрорежим"
+
+#: libexif/canon/mnote-canon-entry.c:147
+msgid "My colors"
+msgstr "Мои цвета"
+
+#: libexif/canon/mnote-canon-entry.c:148
+msgid "Still image"
+msgstr "Неподвижное изображение"
+
+#: libexif/canon/mnote-canon-entry.c:149
+msgid "Color accent"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:150
+msgid "Color swap"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:151
+msgid "Aquarium"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:152
+msgid "ISO 3200"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:153 libexif/canon/mnote-canon-entry.c:348
+#: libexif/canon/mnote-canon-entry.c:365 libexif/canon/mnote-canon-entry.c:417
+#: libexif/olympus/mnote-olympus-entry.c:189
+#: libexif/olympus/mnote-olympus-entry.c:226
+#: libexif/olympus/mnote-olympus-entry.c:451
+#: libexif/pentax/mnote-pentax-entry.c:242
+msgid "None"
+msgstr "Ничего"
+
+#: libexif/canon/mnote-canon-entry.c:154
+msgid "2x"
+msgstr "2x"
+
+#: libexif/canon/mnote-canon-entry.c:155
+msgid "4x"
+msgstr "4x"
+
+#: libexif/canon/mnote-canon-entry.c:156 libexif/exif-entry.c:702
+#: libexif/exif-entry.c:732
+msgid "Other"
+msgstr "Другое"
+
+#: libexif/canon/mnote-canon-entry.c:158 libexif/canon/mnote-canon-entry.c:161
+#: libexif/canon/mnote-canon-entry.c:164 libexif/canon/mnote-canon-entry.c:398
+#: libexif/fuji/mnote-fuji-entry.c:86 libexif/pentax/mnote-pentax-entry.c:112
+#: libexif/pentax/mnote-pentax-entry.c:117
+msgid "High"
+msgstr "Высокий"
+
+#: libexif/canon/mnote-canon-entry.c:159 libexif/canon/mnote-canon-entry.c:162
+#: libexif/canon/mnote-canon-entry.c:165 libexif/canon/mnote-canon-entry.c:396
+#: libexif/pentax/mnote-pentax-entry.c:111
+#: libexif/pentax/mnote-pentax-entry.c:116
+msgid "Low"
+msgstr "Низкий"
+
+#: libexif/canon/mnote-canon-entry.c:166
+msgid "Auto high"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:168
+msgid "50"
+msgstr "50"
+
+#: libexif/canon/mnote-canon-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:120
+#: libexif/pentax/mnote-pentax-entry.c:122
+msgid "100"
+msgstr "100"
+
+#: libexif/canon/mnote-canon-entry.c:170
+#: libexif/pentax/mnote-pentax-entry.c:121
+#: libexif/pentax/mnote-pentax-entry.c:123
+msgid "200"
+msgstr "200"
+
+#: libexif/canon/mnote-canon-entry.c:171
+msgid "400"
+msgstr "400"
+
+#: libexif/canon/mnote-canon-entry.c:172
+msgid "800"
+msgstr "800"
+
+#: libexif/canon/mnote-canon-entry.c:173
+msgid "Default"
+msgstr "По умолчанию"
+
+#: libexif/canon/mnote-canon-entry.c:174 libexif/exif-entry.c:698
+msgid "Spot"
+msgstr "Точечный замер"
+
+#: libexif/canon/mnote-canon-entry.c:175 libexif/exif-entry.c:696
+msgid "Average"
+msgstr "Средний"
+
+#: libexif/canon/mnote-canon-entry.c:176
+msgid "Evaluative"
+msgstr "Оценочный"
+
+#: libexif/canon/mnote-canon-entry.c:177 libexif/exif-entry.c:701
+msgid "Partial"
+msgstr "Частичный замер"
+
+#: libexif/canon/mnote-canon-entry.c:178 libexif/exif-entry.c:697
+msgid "Center-weighted average"
+msgstr "Центрально-взвешенный средний"
+
+#: libexif/canon/mnote-canon-entry.c:181
+msgid "Not known"
+msgstr "Неизвестно"
+
+#: libexif/canon/mnote-canon-entry.c:183
+msgid "Very close"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:184 libexif/exif-entry.c:797
+msgid "Close"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:185
+msgid "Middle range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:186
+msgid "Far range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:189
+#: libexif/pentax/mnote-pentax-entry.c:210
+msgid "Infinity"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:190
+msgid "Manual AF point selection"
+msgstr "Ручной выбор точки автофокусировки"
+
+#: libexif/canon/mnote-canon-entry.c:191 libexif/canon/mnote-canon-entry.c:349
+msgid "None (MF)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:192
+msgid "Auto-selected"
+msgstr "Выбранная автоматически"
+
+#: libexif/canon/mnote-canon-entry.c:193 libexif/canon/mnote-canon-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:224
+#: libexif/pentax/mnote-pentax-entry.c:238
+msgid "Right"
+msgstr "Правая"
+
+#: libexif/canon/mnote-canon-entry.c:194 libexif/canon/mnote-canon-entry.c:351
+#: libexif/pentax/mnote-pentax-entry.c:222
+#: libexif/pentax/mnote-pentax-entry.c:237
+msgid "Center"
+msgstr "Центральная"
+
+#: libexif/canon/mnote-canon-entry.c:195 libexif/canon/mnote-canon-entry.c:353
+#: libexif/pentax/mnote-pentax-entry.c:220
+#: libexif/pentax/mnote-pentax-entry.c:236
+msgid "Left"
+msgstr "Левая"
+
+#: libexif/canon/mnote-canon-entry.c:196
+msgid "Auto AF point selection"
+msgstr "Автоматический выбор точки автофокусировки"
+
+#: libexif/canon/mnote-canon-entry.c:197
+msgid "Easy shooting"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:163
+msgid "Program"
+msgstr "Программа"
+
+#: libexif/canon/mnote-canon-entry.c:199
+msgid "Tv-priority"
+msgstr "Приоритет выдержки (Tv)"
+
+#: libexif/canon/mnote-canon-entry.c:200
+msgid "Av-priority"
+msgstr "Приоритет диафрагмы (Av)"
+
+#: libexif/canon/mnote-canon-entry.c:202
+msgid "A-DEP"
+msgstr "A-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:203
+msgid "M-DEP"
+msgstr "M-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:204
+msgid "Canon EF 50mm f/1.8"
+msgstr "Canon EF 50mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:205
+msgid "Canon EF 28mm f/2.8"
+msgstr "Canon EF 28mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:206
+msgid "Sigma UC Zoom 35-135mm f/4-5.6"
+msgstr "Sigma UC Zoom 35-135mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:207
+msgid "Tokina AF193-2 19-35mm f/3.5-4.5"
+msgstr "Tokina AF193-2 19-35mm f/3.5-4.5"
+
+#: libexif/canon/mnote-canon-entry.c:208
+msgid "Canon EF 100-300mm F5.6L"
+msgstr "Canon EF 100-300mm F5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:209
+msgid "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+msgstr "Sigma 50mm f/2.8 EX или 28mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:210
+msgid "Canon EF 35mm f/2"
+msgstr "Canon EF 35mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:211
+msgid "Canon EF 15mm f/2.8"
+msgstr "Canon EF 15mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:212
+msgid "Canon EF 80-200mm f/2.8L"
+msgstr "Canon EF 80-200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:213
+msgid "Tokina AT-X280AF PRO 28-80mm F2.8 Aspherical"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:214
+msgid "Cosina 100mm f/3.5 Macro AF"
+msgstr "Cosina 100mm f/3.5 Macro AF"
+
+#: libexif/canon/mnote-canon-entry.c:215
+msgid "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+msgstr "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:216
+msgid "Canon EF 50mm f/1.8 MkII"
+msgstr "Canon EF 50mm f/1.8 MkII"
+
+#: libexif/canon/mnote-canon-entry.c:217
+msgid "Tamron SP AF 300mm f/2.8 LD IF"
+msgstr "Tamron SP AF 300mm f/2.8 LD IF"
+
+#: libexif/canon/mnote-canon-entry.c:218
+msgid "Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:219
+msgid "Canon EF 75-300mm f/4-5.6"
+msgstr "Canon EF 75-300mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:220
+msgid "Canon EF 28-80mm f/3.5-5.6"
+msgstr "Canon EF 28-80mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:221
+msgid "Canon EF 28-105mm f/4-5.6"
+msgstr "Canon EF 28-105mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:222
+msgid "Canon EF-S 18-55mm f/3.5-5.6"
+msgstr "Canon EF-S 18-55mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:223
+msgid "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+msgstr "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+
+#: libexif/canon/mnote-canon-entry.c:224
+msgid "Canon TS-E 24mm f/3.5L"
+msgstr "Canon TS-E 24mm f/3.5L"
+
+#: libexif/canon/mnote-canon-entry.c:225
+msgid "Canon TS-E 45mm f/2.8"
+msgstr "Canon TS-E 45mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:226
+msgid "Canon TS-E 90mm f/2.8"
+msgstr "Canon TS-E 90mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:227
+msgid "Canon EF 50mm f/1.0L"
+msgstr "Canon EF 50mm f/1.0L"
+
+#: libexif/canon/mnote-canon-entry.c:228
+msgid "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+msgstr "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+
+#: libexif/canon/mnote-canon-entry.c:229
+msgid "Canon EF 600mm f/4L IS"
+msgstr "Canon EF 600mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:230
+msgid "Canon EF 200mm f/1.8L"
+msgstr "Canon EF 200mm f/1.8L"
+
+#: libexif/canon/mnote-canon-entry.c:231
+msgid "Canon EF 300mm f/2.8L"
+msgstr "Canon EF 300mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:232
+msgid "Canon EF 85mm f/1.2L"
+msgstr "Canon EF 85mm f/1.2L"
+
+#: libexif/canon/mnote-canon-entry.c:233
+msgid "Canon EF 400mm f/2.8L"
+msgstr "Canon EF 400mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:234
+msgid "Canon EF 500mm f/4.5L"
+msgstr "Canon EF 500mm f/4.5L"
+
+#: libexif/canon/mnote-canon-entry.c:235
+msgid "Canon EF 300mm f/2.8L IS"
+msgstr "Canon EF 300mm f/2.8L IS"
+
+#: libexif/canon/mnote-canon-entry.c:236
+msgid "Canon EF 500mm f/4L IS"
+msgstr "Canon EF 500mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:237
+msgid "Canon EF 100mm f/2"
+msgstr "Canon EF 100mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:238
+msgid "Sigma 20mm EX f/1.8"
+msgstr "Sigma 20mm EX f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:239
+msgid "Canon EF 200mm f/2.8L"
+msgstr "Canon EF 200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:240
+msgid "Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:241
+msgid "Canon EF 35-350mm f/3.5-5.6L"
+msgstr "Canon EF 35-350mm f/3.5-5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:242
+msgid "Canon EF 85mm f/1.8 USM"
+msgstr "Canon EF 85mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:243
+msgid "Canon EF 28-105mm f/3.5-4.5 USM"
+msgstr "Canon EF 28-105mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:244
+msgid "Canon EF 20-35mm f/3.5-4.5 USM"
+msgstr "Canon EF 20-35mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:245
+msgid "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+msgstr "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:246
+msgid "Canon EF 70-200mm f/2.8 L"
+msgstr "Canon EF 70-200mm f/2.8 L"
+
+#: libexif/canon/mnote-canon-entry.c:247
+msgid "Canon EF 70-200mm f/2.8 L + x1.4"
+msgstr "Canon EF 70-200mm f/2.8 L + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:248
+msgid "Canon EF 70-200mm f/2.8 L + x2"
+msgstr "Canon EF 70-200mm f/2.8 L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:249
+msgid "Canon EF 28mm f/1.8 USM"
+msgstr "Canon EF 28mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:250
+msgid "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+msgstr "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+
+#: libexif/canon/mnote-canon-entry.c:251
+msgid "Canon EF 200mm f/2.8L II"
+msgstr "Canon EF 200mm f/2.8L II"
+
+#: libexif/canon/mnote-canon-entry.c:252
+msgid "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+msgstr "Canon EF 180mm Macro f/3.5L или Sigma 180mm EX HSM Macro f/3.5"
+
+#: libexif/canon/mnote-canon-entry.c:253
+msgid "Canon EF 135mm f/2L"
+msgstr "Canon EF 135mm f/2L"
+
+#: libexif/canon/mnote-canon-entry.c:254
+msgid "Canon EF 24-85mm f/3.5-4.5 USM"
+msgstr "Canon EF 24-85mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:255
+msgid "Canon EF 300mm f/4L IS"
+msgstr "Canon EF 300mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:256
+msgid "Canon EF 28-135mm f/3.5-5.6 IS"
+msgstr "Canon EF 28-135mm f/3.5-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:257
+msgid "Canon EF 35mm f/1.4L"
+msgstr "Canon EF 35mm f/1.4L"
+
+#: libexif/canon/mnote-canon-entry.c:258
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:259
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+
+#: libexif/canon/mnote-canon-entry.c:260
+msgid "Canon EF 100-400mm f/4.5-5.6L IS"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS"
+
+#: libexif/canon/mnote-canon-entry.c:261
+msgid "Canon EF 400mm f/2.8L + x2"
+msgstr "Canon EF 400mm f/2.8L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:262
+msgid "Canon EF 70-200mm f/4L"
+msgstr "Canon EF 70-200mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:263
+msgid "Canon EF 100mm f/2.8 Macro"
+msgstr "Canon EF 100mm f/2.8 Macro"
+
+#: libexif/canon/mnote-canon-entry.c:264
+msgid "Canon EF 400mm f/4 DO IS"
+msgstr "Canon EF 400mm f/4 DO IS"
+
+#: libexif/canon/mnote-canon-entry.c:265
+msgid "Canon EF 75-300mm f/4-5.6 IS"
+msgstr "Canon EF 75-300mm f/4-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:266
+msgid "Canon EF 50mm f/1.4"
+msgstr "Canon EF 50mm f/1.4"
+
+#: libexif/canon/mnote-canon-entry.c:267
+msgid "Canon EF 28-80 f/3.5-5.6 USM IV"
+msgstr "Canon EF 28-80 f/3.5-5.6 USM IV"
+
+#: libexif/canon/mnote-canon-entry.c:268
+msgid "Canon EF 28-200mm f/3.5-5.6"
+msgstr "Canon EF 28-200mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:269
+msgid "Canon EF 90-300mm f/4.5-5.6"
+msgstr "Canon EF 90-300mm f/4.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:270
+msgid "Canon EF-S 18-55mm f/3.5-4.5 USM"
+msgstr "Canon EF-S 18-55mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:271
+msgid "Canon EF 70-200mm f/2.8L IS USM"
+msgstr "Canon EF 70-200mm f/2.8L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:272
+msgid "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+msgstr "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:273
+msgid "Canon EF 70-200mm f/2.8L IS USM + x2"
+msgstr "Canon EF 70-200mm f/2.8L IS USM + x2"
+
+#: libexif/canon/mnote-canon-entry.c:274
+msgid "Canon EF 16-35mm f/2.8L"
+msgstr "Canon EF 16-35mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:275
+msgid "Canon EF 24-70mm f/2.8L"
+msgstr "Canon EF 24-70mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:276
+msgid "Canon EF 17-40mm f/4L"
+msgstr "Canon EF 17-40mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:277
+msgid "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+msgstr "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:278
+msgid "Canon EF-S 17-85mm f4-5.6 IS USM"
+msgstr "Canon EF-S 17-85mm f4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:279
+msgid "Canon EF-S10-22mm F3.5-4.5 USM"
+msgstr "Canon EF-S10-22mm F3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:280
+msgid "Canon EF-S60mm F2.8 Macro USM"
+msgstr "Canon EF-S60mm F2.8 Macro USM"
+
+#: libexif/canon/mnote-canon-entry.c:281
+msgid "Canon EF 24-105mm f/4L IS"
+msgstr "Canon EF 24-105mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:282
+msgid "Canon EF 70-300mm F4-5.6 IS USM"
+msgstr "Canon EF 70-300mm F4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:283
+msgid "Canon EF 50mm F1.2L USM"
+msgstr "Canon EF 50mm F1.2L USM"
+
+#: libexif/canon/mnote-canon-entry.c:284
+msgid "Canon EF 70-200mm f/4L IS USM"
+msgstr "Canon EF 70-200mm f/4L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:286
+msgid "TTL"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:287
+msgid "A-TTL"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:288
+msgid "E-TTL"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:289
+msgid "FP sync enabled"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:290
+msgid "2nd-curtain sync used"
+msgstr "Синхронизация по второй шторке"
+
+#: libexif/canon/mnote-canon-entry.c:291
+msgid "FP sync used"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:292
+#: libexif/olympus/mnote-olympus-entry.c:190
+msgid "Internal"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:293
+#: libexif/olympus/mnote-olympus-entry.c:191
+msgid "External"
+msgstr "Внешняя"
+
+#: libexif/canon/mnote-canon-entry.c:296
+msgid "Normal AE"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:297
+msgid "Exposure compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:298
+msgid "AE lock"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:299
+msgid "AE lock + exposure compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:300
+msgid "No AE"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:303
+msgid "On, shot only"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:307
+msgid "Smooth"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:310 libexif/canon/mnote-canon-entry.c:334
+#: libexif/canon/mnote-canon-entry.c:393 libexif/canon/mnote-canon-entry.c:406
+#: libexif/fuji/mnote-fuji-entry.c:81 libexif/pentax/mnote-pentax-entry.c:87
+msgid "Custom"
+msgstr "Свой"
+
+#: libexif/canon/mnote-canon-entry.c:311
+msgid "My color data"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:313 libexif/canon/mnote-canon-entry.c:375
+#: libexif/pentax/mnote-pentax-entry.c:126
+#: libexif/pentax/mnote-pentax-entry.c:145
+msgid "Full"
+msgstr "Полный"
+
+#: libexif/canon/mnote-canon-entry.c:314 libexif/canon/mnote-canon-entry.c:374
+msgid "2/3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:315 libexif/canon/mnote-canon-entry.c:373
+msgid "1/3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:321
+msgid "Fixed"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:322 libexif/pentax/mnote-pentax-tag.c:44
+msgid "Zoom"
+msgstr "Трансфокатор"
+
+#: libexif/canon/mnote-canon-entry.c:329
+msgid "Sunny"
+msgstr "Солнечно"
+
+#: libexif/canon/mnote-canon-entry.c:330 libexif/canon/mnote-canon-entry.c:402
+#: libexif/exif-entry.c:719 libexif/fuji/mnote-fuji-entry.c:75
+#: libexif/olympus/mnote-olympus-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:255
+msgid "Cloudy"
+msgstr "Облачно"
+
+#: libexif/canon/mnote-canon-entry.c:331 libexif/canon/mnote-canon-entry.c:403
+#: libexif/exif-entry.c:716 libexif/pentax/mnote-pentax-entry.c:100
+#: libexif/pentax/mnote-pentax-entry.c:249
+msgid "Tungsten"
+msgstr "Лампа накаливания"
+
+#: libexif/canon/mnote-canon-entry.c:332 libexif/canon/mnote-canon-entry.c:404
+#: libexif/exif-entry.c:715 libexif/pentax/mnote-pentax-entry.c:101
+#: libexif/pentax/mnote-pentax-entry.c:248
+msgid "Fluorescent"
+msgstr "Флуоресцентная лампа"
+
+#: libexif/canon/mnote-canon-entry.c:333 libexif/canon/mnote-canon-entry.c:405
+#: libexif/exif-entry.c:717 libexif/exif-entry.c:759 libexif/exif-tag.c:577
+#: libexif/fuji/mnote-fuji-entry.c:80 libexif/pentax/mnote-pentax-entry.c:254
+msgid "Flash"
+msgstr "Вспышка"
+
+#: libexif/canon/mnote-canon-entry.c:336 libexif/canon/mnote-canon-entry.c:408
+#: libexif/exif-entry.c:720 libexif/pentax/mnote-pentax-entry.c:99
+#: libexif/pentax/mnote-pentax-entry.c:247
+msgid "Shade"
+msgstr "Тень"
+
+#: libexif/canon/mnote-canon-entry.c:337 libexif/canon/mnote-canon-entry.c:409
+msgid "Manual temperature (Kelvin)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:338 libexif/canon/mnote-canon-entry.c:410
+msgid "PC set 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:339 libexif/canon/mnote-canon-entry.c:411
+msgid "PC set 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:340 libexif/canon/mnote-canon-entry.c:412
+msgid "PC set 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:341 libexif/canon/mnote-canon-entry.c:413
+#: libexif/exif-entry.c:721 libexif/fuji/mnote-fuji-entry.c:76
+#: libexif/pentax/mnote-pentax-entry.c:251
+msgid "Daylight fluorescent"
+msgstr "Флуоресцентная лампа дневного света"
+
+#: libexif/canon/mnote-canon-entry.c:342 libexif/canon/mnote-canon-entry.c:414
+msgid "Custom 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:343 libexif/canon/mnote-canon-entry.c:415
+msgid "Custom 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:346 libexif/exif-entry.c:672
+#: libexif/pentax/mnote-pentax-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:132
+#: libexif/pentax/mnote-pentax-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:295
+msgid "Night scene"
+msgstr "Ночная съёмка"
+
+#: libexif/canon/mnote-canon-entry.c:352
+#, fuzzy
+msgid "Center-right"
+msgstr "Центрально-взвешенный"
+
+#: libexif/canon/mnote-canon-entry.c:354
+#, fuzzy
+msgid "Left-right"
+msgstr "Слева направо"
+
+#: libexif/canon/mnote-canon-entry.c:355
+msgid "Left-center"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:356
+msgid "All"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:358
+msgid "On (shot 1)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:359
+msgid "On (shot 2)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:360
+msgid "On (shot 3)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:362
+msgid "EOS high-end"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:363
+msgid "Compact"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:364
+msgid "EOS mid-range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:366
+msgid "Rotate 90 CW"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:367
+msgid "Rotate 180"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:368
+msgid "Rotate 270 CW"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:369
+msgid "Rotated by software"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:381
+#: libexif/olympus/mnote-olympus-entry.c:606
+msgid "Left to right"
+msgstr "Слева направо"
+
+#: libexif/canon/mnote-canon-entry.c:382
+#: libexif/olympus/mnote-olympus-entry.c:609
+msgid "Right to left"
+msgstr "Справа налево"
+
+#: libexif/canon/mnote-canon-entry.c:383
+#: libexif/olympus/mnote-olympus-entry.c:612
+msgid "Bottom to top"
+msgstr "Снизу вверх"
+
+#: libexif/canon/mnote-canon-entry.c:384
+#: libexif/olympus/mnote-olympus-entry.c:615
+msgid "Top to bottom"
+msgstr "Сверху вниз"
+
+#: libexif/canon/mnote-canon-entry.c:385
+msgid "2x2 matrix (clockwise)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:391 libexif/canon/mnote-canon-entry.c:397
+#: libexif/canon/mnote-canon-entry.c:418 libexif/canon/mnote-canon-entry.c:428
+#: libexif/exif-entry.c:671 libexif/fuji/mnote-fuji-entry.c:84
+#: libexif/fuji/mnote-fuji-entry.c:93 libexif/fuji/mnote-fuji-entry.c:163
+#: libexif/olympus/mnote-olympus-entry.c:227
+msgid "Standard"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:394
+msgid "N/A"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:395
+msgid "Lowest"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:399
+msgid "Highest"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:401 libexif/exif-entry.c:714
+#: libexif/fuji/mnote-fuji-entry.c:74
+#: libexif/olympus/mnote-olympus-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:98
+#: libexif/pentax/mnote-pentax-entry.c:246
+msgid "Daylight"
+msgstr "Дневной свет"
+
+#: libexif/canon/mnote-canon-entry.c:419
+msgid "Set 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:420
+msgid "Set 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:421
+msgid "Set 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:422
+msgid "User def. 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:423
+msgid "User def. 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:424
+msgid "User def. 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:425
+msgid "External 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:426
+msgid "External 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:427
+msgid "External 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:432
+msgid "Faithful"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:115
+msgid "Monochrome"
+msgstr "Монохромный"
+
+#: libexif/canon/mnote-canon-entry.c:491
+msgid ", "
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:577 libexif/canon/mnote-canon-entry.c:674
+#, c-format
+msgid "%i (ms)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:621
+#, c-format
+msgid "%.2f mm"
+msgstr "%.2f mm"
+
+#: libexif/canon/mnote-canon-entry.c:645
+#, c-format
+msgid "%.2f EV"
+msgstr "%.2f EV"
+
+#: libexif/canon/mnote-canon-entry.c:655 libexif/exif-entry.c:1064
+#, c-format
+msgid "1/%i"
+msgstr "1/%i"
+
+#: libexif/canon/mnote-canon-entry.c:667
+#, c-format
+msgid "%u mm"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:35
+msgid "Settings (First Part)"
+msgstr "Настройки (первая половина)"
+
+#: libexif/canon/mnote-canon-tag.c:36 libexif/canon/mnote-canon-tag.c:92
+#: libexif/exif-tag.c:581 libexif/pentax/mnote-pentax-tag.c:88
+msgid "Focal Length"
+msgstr "Фокусное расстояние"
+
+#: libexif/canon/mnote-canon-tag.c:37
+msgid "Settings (Second Part)"
+msgstr "Настройки (вторая половина)"
+
+#: libexif/canon/mnote-canon-tag.c:38
+#: libexif/olympus/mnote-olympus-entry.c:595
+#: libexif/pentax/mnote-pentax-entry.c:177
+msgid "Panorama"
+msgstr "Панорама"
+
+#: libexif/canon/mnote-canon-tag.c:39
+msgid "Image Type"
+msgstr "Тип изображения"
+
+#: libexif/canon/mnote-canon-tag.c:40 libexif/olympus/mnote-olympus-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:113
+msgid "Firmware Version"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:41
+msgid "Image Number"
+msgstr "Номер изображения"
+
+#: libexif/canon/mnote-canon-tag.c:42
+msgid "Owner Name"
+msgstr "Имя владельца"
+
+#: libexif/canon/mnote-canon-tag.c:43
+msgid "Color Information"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:44 libexif/fuji/mnote-fuji-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:81
+#: libexif/olympus/mnote-olympus-tag.c:146
+msgid "Serial Number"
+msgstr "Серийный номер"
+
+#: libexif/canon/mnote-canon-tag.c:45
+msgid "Custom Functions"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:56 libexif/fuji/mnote-fuji-tag.c:45
+msgid "Macro Mode"
+msgstr "Режим макросъёмки"
+
+#: libexif/canon/mnote-canon-tag.c:57 libexif/canon/mnote-canon-tag.c:117
+#: libexif/olympus/mnote-olympus-tag.c:175
+#: libexif/pentax/mnote-pentax-tag.c:128
+msgid "Self-timer"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:58 libexif/fuji/mnote-fuji-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:94
+#: libexif/olympus/mnote-olympus-tag.c:107
+msgid "Quality"
+msgstr "Качество"
+
+#: libexif/canon/mnote-canon-tag.c:59 libexif/fuji/mnote-fuji-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:45
+#: libexif/olympus/mnote-olympus-tag.c:127
+#: libexif/pentax/mnote-pentax-tag.c:38 libexif/pentax/mnote-pentax-tag.c:73
+msgid "Flash Mode"
+msgstr "Режим вспышки"
+
+#: libexif/canon/mnote-canon-tag.c:60 libexif/pentax/mnote-pentax-tag.c:101
+msgid "Drive Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:61 libexif/canon/mnote-canon-tag.c:82
+#: libexif/olympus/mnote-olympus-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:134
+#: libexif/olympus/mnote-olympus-tag.c:173
+#: libexif/pentax/mnote-pentax-tag.c:37 libexif/pentax/mnote-pentax-tag.c:74
+#: libexif/pentax/mnote-pentax-tag.c:130
+msgid "Focus Mode"
+msgstr "Способ фокусировки"
+
+#: libexif/canon/mnote-canon-tag.c:62 libexif/pentax/mnote-pentax-tag.c:127
+msgid "Record Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:63 libexif/pentax/mnote-pentax-tag.c:71
+msgid "Image Size"
+msgstr "Размер изображения"
+
+#: libexif/canon/mnote-canon-tag.c:64
+msgid "Easy Shooting Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:65 libexif/olympus/mnote-olympus-tag.c:64
+#: libexif/olympus/mnote-olympus-tag.c:101
+#: libexif/olympus/mnote-olympus-tag.c:110
+#: libexif/olympus/mnote-olympus-tag.c:180
+#: libexif/pentax/mnote-pentax-tag.c:89
+msgid "Digital Zoom"
+msgstr "Цифровой трансфокатор"
+
+#: libexif/canon/mnote-canon-tag.c:66 libexif/exif-tag.c:828
+#: libexif/fuji/mnote-fuji-tag.c:42 libexif/pentax/mnote-pentax-tag.c:46
+#: libexif/pentax/mnote-pentax-tag.c:91
+msgid "Contrast"
+msgstr "Контраст"
+
+#: libexif/canon/mnote-canon-tag.c:67 libexif/exif-tag.c:832
+#: libexif/olympus/mnote-olympus-tag.c:75
+#: libexif/olympus/mnote-olympus-tag.c:87 libexif/pentax/mnote-pentax-tag.c:47
+#: libexif/pentax/mnote-pentax-tag.c:90
+msgid "Saturation"
+msgstr "Насыщенность"
+
+#: libexif/canon/mnote-canon-tag.c:68 libexif/exif-tag.c:836
+#: libexif/fuji/mnote-fuji-tag.c:39 libexif/pentax/mnote-pentax-tag.c:45
+#: libexif/pentax/mnote-pentax-tag.c:92
+msgid "Sharpness"
+msgstr "Резкость"
+
+#: libexif/canon/mnote-canon-tag.c:69
+msgid "ISO"
+msgstr "ISO"
+
+#: libexif/canon/mnote-canon-tag.c:70 libexif/exif-tag.c:571
+#: libexif/pentax/mnote-pentax-tag.c:82
+msgid "Metering Mode"
+msgstr "Режим замера"
+
+#: libexif/canon/mnote-canon-tag.c:71 libexif/olympus/mnote-olympus-tag.c:133
+msgid "Focus Range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:72 libexif/canon/mnote-canon-tag.c:105
+msgid "AF Point"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:73 libexif/exif-tag.c:795
+msgid "Exposure Mode"
+msgstr "Режим экспозиции"
+
+#: libexif/canon/mnote-canon-tag.c:74 libexif/olympus/mnote-olympus-tag.c:61
+#: libexif/pentax/mnote-pentax-tag.c:106
+msgid "Lens Type"
+msgstr "Тип объектива"
+
+#: libexif/canon/mnote-canon-tag.c:75
+msgid "Long Focal Length of Lens"
+msgstr "Длиннофокусный объектив"
+
+#: libexif/canon/mnote-canon-tag.c:76
+msgid "Short Focal Length of Lens"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:77
+msgid "Focal Units per mm"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:78
+msgid "Maximal Aperture"
+msgstr "Максимально открытая диафрагма"
+
+#: libexif/canon/mnote-canon-tag.c:79
+msgid "Minimal Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:80
+msgid "Flash Activity"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:81
+msgid "Flash Details"
+msgstr "Подробности о вспышке"
+
+#: libexif/canon/mnote-canon-tag.c:83
+msgid "AE Setting"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:84
+msgid "Image Stabilization"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:85
+msgid "Display Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:86
+msgid "Zoom Source Width"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:87
+msgid "Zoom Target Width"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:88
+msgid "Photo Effect"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:89 libexif/canon/mnote-canon-tag.c:118
+msgid "Manual Flash Output"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:90
+msgid "Color Tone"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:91
+msgid "Focal Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:93
+msgid "Focal Plane X Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:94
+msgid "Focal Plane Y Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:95
+msgid "Auto ISO"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:96
+msgid "Shot ISO"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:97
+msgid "Measured EV"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:98
+msgid "Target Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:99
+msgid "Target Exposure Time"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:100 libexif/olympus/mnote-olympus-tag.c:129
+#: libexif/pentax/mnote-pentax-tag.c:81
+msgid "Exposure Compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:101 libexif/canon/mnote-canon-tag.c:123
+#: libexif/exif-tag.c:800 libexif/fuji/mnote-fuji-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:41
+#: libexif/olympus/mnote-olympus-tag.c:98 libexif/pentax/mnote-pentax-tag.c:41
+#: libexif/pentax/mnote-pentax-tag.c:84 libexif/pentax/mnote-pentax-tag.c:124
+msgid "White Balance"
+msgstr "Баланс белого"
+
+#: libexif/canon/mnote-canon-tag.c:102
+msgid "Slow Shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:103
+msgid "Sequence Number"
+msgstr "Номер последовательности"
+
+#: libexif/canon/mnote-canon-tag.c:104
+msgid "Flash Guide Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:106 libexif/olympus/mnote-olympus-tag.c:52
+#: libexif/pentax/mnote-pentax-tag.c:109
+msgid "Flash Exposure Compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:107
+msgid "AE Bracketing"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:108
+msgid "AE Bracket Value"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:109
+msgid "Focus Distance Upper"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:110
+msgid "Focus Distance Lower"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:111
+msgid "FNumber"
+msgstr "Число F"
+
+#: libexif/canon/mnote-canon-tag.c:112 libexif/exif-tag.c:466
+#: libexif/pentax/mnote-pentax-tag.c:78
+msgid "Exposure Time"
+msgstr "Время экспозиции"
+
+#: libexif/canon/mnote-canon-tag.c:113
+msgid "Bulb Duration"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:114
+msgid "Camera Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:115
+msgid "Auto Rotate"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:116
+msgid "ND Filter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:119
+msgid "Panorama Frame"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:120
+msgid "Panorama Direction"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:121
+msgid "Tone Curve"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:122
+msgid "Sharpness Frequency"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:124
+msgid "Picture Style"
+msgstr ""
+
+#: libexif/exif-byte-order.c:33
+msgid "Motorola"
+msgstr "Motorola"
+
+#: libexif/exif-byte-order.c:35
+msgid "Intel"
+msgstr "Intel"
+
+#: libexif/exif-data.c:780
+msgid "Size of data too small to allow for EXIF data."
+msgstr ""
+
+#: libexif/exif-data.c:841
+msgid "EXIF marker not found."
+msgstr "Маркер EXIF не найден"
+
+#: libexif/exif-data.c:868
+msgid "EXIF header not found."
+msgstr "Заголовок EXIF не найден"
+
+#: libexif/exif-data.c:884
+msgid "Unknown encoding."
+msgstr "Неизвестная кодировка"
+
+#: libexif/exif-data.c:1168
+msgid "Ignore unknown tags"
+msgstr "Игнорировать неизвестные тэги"
+
+#: libexif/exif-data.c:1169
+msgid "Ignore unknown tags when loading EXIF data."
+msgstr "Игнорировать неизвестные тэги при загрузке данных EXIF"
+
+#: libexif/exif-data.c:1170
+msgid "Follow specification"
+msgstr "Следовать спецификации"
+
+#: libexif/exif-data.c:1171
+msgid ""
+"Add, correct and remove entries to get EXIF data that follows the "
+"specification."
+msgstr ""
+
+#: libexif/exif-data.c:1173
+msgid "Do not change maker note"
+msgstr ""
+
+#: libexif/exif-data.c:1174
+msgid ""
+"When loading and resaving Exif data, save the maker note unmodified. Be "
+"aware that the maker note can get corrupted."
+msgstr ""
+
+#: libexif/exif-entry.c:234 libexif/exif-entry.c:303 libexif/exif-entry.c:336
+#, c-format
+msgid ""
+"Tag '%s' was of format '%s' (which is against specification) and has been "
+"changed to format '%s'."
+msgstr ""
+
+#: libexif/exif-entry.c:271
+#, c-format
+msgid ""
+"Tag '%s' is of format '%s' (which is against specification) but cannot be "
+"changed to format '%s'."
+msgstr ""
+
+#: libexif/exif-entry.c:354
+#, c-format
+msgid ""
+"Tag 'UserComment' had invalid format '%s'. Format has been set to "
+"'undefined'."
+msgstr ""
+
+#: libexif/exif-entry.c:381
+msgid ""
+"Tag 'UserComment' has been expanded to at least 8 bytes in order to follow "
+"the specification."
+msgstr ""
+
+#: libexif/exif-entry.c:396
+msgid ""
+"Tag 'UserComment' is not empty but does not start with a format identifier. "
+"This has been fixed."
+msgstr ""
+
+#: libexif/exif-entry.c:424
+msgid ""
+"Tag 'UserComment' did not start with a format identifier. This has been "
+"fixed."
+msgstr ""
+
+#: libexif/exif-entry.c:462
+#, c-format
+msgid "%i bytes undefined data"
+msgstr ""
+
+#: libexif/exif-entry.c:589
+#, c-format
+msgid "%i bytes unsupported data type"
+msgstr ""
+
+#: libexif/exif-entry.c:622
+#, c-format
+msgid "The tag '%s' contains data of an invalid format ('%s', expected '%s')."
+msgstr ""
+"Тэг '%s' содержит данные в некорректном формате ('%s', ожидалось '%s')."
+
+#: libexif/exif-entry.c:635
+#, c-format
+msgid ""
+"The tag '%s' contains an invalid number of components (%i, expected %i)."
+msgstr "Тэг '%s' содержит некорректное число компонентов (%i, ожидалось %i)."
+
+#: libexif/exif-entry.c:649
+msgid "Chunky format"
+msgstr ""
+
+#: libexif/exif-entry.c:649
+#, fuzzy
+msgid "Planar format"
+msgstr "Панорама"
+
+#: libexif/exif-entry.c:651 libexif/exif-entry.c:743
+#: test/nls/test-codeset.c:54
+msgid "Not defined"
+msgstr "Не определено"
+
+#: libexif/exif-entry.c:651
+msgid "One-chip color area sensor"
+msgstr "Одночиповый датчик цветовой области"
+
+#: libexif/exif-entry.c:652
+msgid "Two-chip color area sensor"
+msgstr "Двухчиповый датчик цветовой области"
+
+#: libexif/exif-entry.c:652
+msgid "Three-chip color area sensor"
+msgstr "Трехчиповый датчик цветовой области"
+
+#: libexif/exif-entry.c:653
+msgid "Color sequential area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:653
+msgid "Trilinear sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:654
+msgid "Color sequential linear sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:233
+msgid "Top-left"
+msgstr ""
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:235
+msgid "Top-right"
+msgstr ""
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:241
+msgid "Bottom-right"
+msgstr ""
+
+#: libexif/exif-entry.c:657 libexif/pentax/mnote-pentax-entry.c:239
+msgid "Bottom-left"
+msgstr ""
+
+#: libexif/exif-entry.c:657
+#, fuzzy
+msgid "Left-top"
+msgstr "Левая"
+
+#: libexif/exif-entry.c:657
+#, fuzzy
+msgid "Right-top"
+msgstr "Правая"
+
+#: libexif/exif-entry.c:658
+msgid "Right-bottom"
+msgstr ""
+
+#: libexif/exif-entry.c:658
+msgid "Left-bottom"
+msgstr ""
+
+#: libexif/exif-entry.c:660
+#, fuzzy
+msgid "Centered"
+msgstr "Центральная"
+
+#: libexif/exif-entry.c:660
+msgid "Co-sited"
+msgstr ""
+
+#: libexif/exif-entry.c:662
+msgid "Reversed mono"
+msgstr ""
+
+#: libexif/exif-entry.c:662
+msgid "Normal mono"
+msgstr ""
+
+#: libexif/exif-entry.c:662
+msgid "RGB"
+msgstr "RGB"
+
+#: libexif/exif-entry.c:662
+msgid "Palette"
+msgstr ""
+
+#: libexif/exif-entry.c:663
+msgid "CMYK"
+msgstr ""
+
+#: libexif/exif-entry.c:663
+msgid "YCbCr"
+msgstr "YCbCr"
+
+#: libexif/exif-entry.c:663
+msgid "CieLAB"
+msgstr ""
+
+#: libexif/exif-entry.c:665
+msgid "Normal process"
+msgstr "Обычная обработка"
+
+#: libexif/exif-entry.c:665
+msgid "Custom process"
+msgstr "Настроить обработку"
+
+#: libexif/exif-entry.c:667
+msgid "Auto exposure"
+msgstr "Автоэкспозиция"
+
+#: libexif/exif-entry.c:667 libexif/fuji/mnote-fuji-entry.c:139
+msgid "Manual exposure"
+msgstr "Ручная экспозиция"
+
+#: libexif/exif-entry.c:667
+msgid "Auto bracket"
+msgstr "Автобрекетирование"
+
+#: libexif/exif-entry.c:669
+msgid "Auto white balance"
+msgstr "Автомат. баланс белого"
+
+#: libexif/exif-entry.c:669
+msgid "Manual white balance"
+msgstr "Ручной баланс белого"
+
+#: libexif/exif-entry.c:674
+msgid "Low gain up"
+msgstr ""
+
+#: libexif/exif-entry.c:674
+msgid "High gain up"
+msgstr ""
+
+#: libexif/exif-entry.c:675
+msgid "Low gain down"
+msgstr ""
+
+#: libexif/exif-entry.c:675
+msgid "High gain down"
+msgstr ""
+
+#: libexif/exif-entry.c:677
+msgid "Low saturation"
+msgstr "Низкая насыщенность"
+
+#: libexif/exif-entry.c:677 test/nls/test-codeset.c:48
+#: test/nls/test-codeset.c:61
+msgid "High saturation"
+msgstr "Высокая насыщенность"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:63
+#: libexif/olympus/mnote-olympus-entry.c:205
+#: libexif/olympus/mnote-olympus-entry.c:214
+#: libexif/pentax/mnote-pentax-entry.c:106
+#: libexif/pentax/mnote-pentax-entry.c:170
+msgid "Soft"
+msgstr "Мягко"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:65 libexif/fuji/mnote-fuji-entry.c:95
+#: libexif/olympus/mnote-olympus-entry.c:204
+#: libexif/olympus/mnote-olympus-entry.c:212
+#: libexif/pentax/mnote-pentax-entry.c:107
+msgid "Hard"
+msgstr "Жестко"
+
+#: libexif/exif-entry.c:695 libexif/exif-entry.c:713 libexif/exif-entry.c:795
+#: libexif/olympus/mnote-olympus-entry.c:589
+#: libexif/olympus/mnote-olympus-entry.c:683
+#: libexif/olympus/mnote-olympus-entry.c:738
+#: libexif/pentax/mnote-pentax-entry.c:256
+msgid "Unknown"
+msgstr "Неизвестно"
+
+#: libexif/exif-entry.c:696
+#, fuzzy
+msgid "Avg"
+msgstr "средн."
+
+#: libexif/exif-entry.c:697
+#, fuzzy
+msgid "Center-weight"
+msgstr "Центрально-взвешенный"
+
+#: libexif/exif-entry.c:699
+#, fuzzy
+msgid "Multi spot"
+msgstr "По многим точкам"
+
+#: libexif/exif-entry.c:700
+msgid "Pattern"
+msgstr "Шаблон"
+
+#: libexif/exif-entry.c:705
+msgid "Uncompressed"
+msgstr "Несжатый"
+
+#: libexif/exif-entry.c:706
+msgid "LZW compression"
+msgstr "Сжатие LZW"
+
+#: libexif/exif-entry.c:707 libexif/exif-entry.c:708
+msgid "JPEG compression"
+msgstr "Сжатие JPEG"
+
+#: libexif/exif-entry.c:709
+msgid "Deflate/ZIP compression"
+msgstr "Сжатие Deflate/ZIP"
+
+#: libexif/exif-entry.c:710
+msgid "PackBits compression"
+msgstr "Сжатие PackBits"
+
+#: libexif/exif-entry.c:716
+msgid "Tungsten incandescent light"
+msgstr "Яркая лампа накаливания"
+
+#: libexif/exif-entry.c:718
+msgid "Fine weather"
+msgstr "Ясная погода"
+
+#: libexif/exif-entry.c:719
+msgid "Cloudy weather"
+msgstr "Облачность"
+
+#: libexif/exif-entry.c:722 libexif/fuji/mnote-fuji-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:252
+msgid "Day white fluorescent"
+msgstr "Белая лампа дневного света"
+
+#: libexif/exif-entry.c:723
+msgid "Cool white fluorescent"
+msgstr ""
+
+#: libexif/exif-entry.c:724 libexif/fuji/mnote-fuji-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:253
+msgid "White fluorescent"
+msgstr "Белая газоразрядная лампа"
+
+#: libexif/exif-entry.c:725
+msgid "Standard light A"
+msgstr "Стандартный свет A"
+
+#: libexif/exif-entry.c:726
+msgid "Standard light B"
+msgstr "Стандартный свет B"
+
+#: libexif/exif-entry.c:727
+msgid "Standard light C"
+msgstr "Стандартный свет C"
+
+#: libexif/exif-entry.c:728
+msgid "D55"
+msgstr "D55"
+
+#: libexif/exif-entry.c:729
+msgid "D65"
+msgstr "D65"
+
+#: libexif/exif-entry.c:730
+msgid "D75"
+msgstr "D75"
+
+#: libexif/exif-entry.c:731
+msgid "ISO studio tungsten"
+msgstr "Студийное вольфрамовое освещение ISO"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "Inch"
+msgstr "Дюйм"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "in"
+msgstr "in"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "Centimeter"
+msgstr "Сантиметр"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "cm"
+msgstr "cm"
+
+#: libexif/exif-entry.c:745
+msgid "Normal program"
+msgstr "Нормальная программа"
+
+#: libexif/exif-entry.c:746
+msgid "Aperture priority"
+msgstr "Приоритет диафрагмы"
+
+#: libexif/exif-entry.c:746 libexif/exif-tag.c:550
+msgid "Aperture"
+msgstr "Диафрагма"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter priority"
+msgstr "Приоритет выдержки"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter"
+msgstr "Выдержка"
+
+#: libexif/exif-entry.c:748
+msgid "Creative program (biased toward depth of field)"
+msgstr "Творческая программа (с приоритетом глубины резкости)"
+
+#: libexif/exif-entry.c:749
+msgid "Creative"
+msgstr "Творческая"
+
+#: libexif/exif-entry.c:750
+msgid "Creative program (biased toward fast shutter speed)"
+msgstr "Творческая программа (с приоритетом скорости затвора)"
+
+#: libexif/exif-entry.c:751
+msgid "Action"
+msgstr "Действие"
+
+#: libexif/exif-entry.c:752
+msgid "Portrait mode (for closeup photos with the background out of focus)"
+msgstr ""
+"Портретный режим (съёмка с близкого расстояния с передним планом вне фокуса)"
+
+#: libexif/exif-entry.c:754
+msgid "Landscape mode (for landscape photos with the background in focus)"
+msgstr "Альбомный режим (для альбомных фото с передним планом в фокусе)"
+
+#: libexif/exif-entry.c:758 libexif/exif-entry.c:763
+#: libexif/olympus/mnote-olympus-entry.c:97
+msgid "Flash did not fire"
+msgstr "Вспышка не сработала"
+
+#: libexif/exif-entry.c:758
+#, fuzzy
+msgid "No flash"
+msgstr "без вспышки"
+
+#: libexif/exif-entry.c:759
+msgid "Flash fired"
+msgstr "Вспышка сработала"
+
+#: libexif/exif-entry.c:759 libexif/olympus/mnote-olympus-entry.c:170
+#: libexif/olympus/mnote-olympus-entry.c:175
+#: libexif/olympus/mnote-olympus-entry.c:209
+#: libexif/olympus/mnote-olympus-entry.c:218
+#: libexif/olympus/mnote-olympus-entry.c:241
+msgid "Yes"
+msgstr "Да"
+
+#: libexif/exif-entry.c:760
+msgid "Strobe return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:760
+#, fuzzy
+msgid "Without strobe"
+msgstr "Без стробоскопа"
+
+#: libexif/exif-entry.c:762
+msgid "Strobe return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:762
+#, fuzzy
+msgid "With strobe"
+msgstr "Со стробоскопом"
+
+#: libexif/exif-entry.c:764
+msgid "Flash fired, compulsory flash mode"
+msgstr "Вспышка сработала, режим компенсации вспышки"
+
+#: libexif/exif-entry.c:765
+msgid "Flash fired, compulsory flash mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:767
+msgid "Flash fired, compulsory flash mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:769
+msgid "Flash did not fire, compulsory flash mode"
+msgstr "Вспышка не сработала, режим компенсации вспышки"
+
+#: libexif/exif-entry.c:770
+msgid "Flash did not fire, auto mode"
+msgstr "Вспышка не сработала, автоматический режим"
+
+#: libexif/exif-entry.c:771
+msgid "Flash fired, auto mode"
+msgstr "Вспышка сработала, автоматический режим"
+
+#: libexif/exif-entry.c:772
+msgid "Flash fired, auto mode, return light not detected"
+msgstr "Вспышка сработала, автоматический режим, возвратный свет не найден"
+
+#: libexif/exif-entry.c:774
+msgid "Flash fired, auto mode, return light detected"
+msgstr "Вспышка сработала, автоматический режим, возвратный свет найден"
+
+#: libexif/exif-entry.c:775
+msgid "No flash function"
+msgstr ""
+
+#: libexif/exif-entry.c:776
+msgid "Flash fired, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:777
+msgid "Flash fired, red-eye reduction mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:779
+msgid "Flash fired, red-eye reduction mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:781
+msgid "Flash fired, compulsory flash mode, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:783
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light not "
+"detected"
+msgstr ""
+
+#: libexif/exif-entry.c:785
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light "
+"detected"
+msgstr ""
+
+#: libexif/exif-entry.c:787
+msgid "Flash did not fire, auto mode, red-eye reduction mode"
+msgstr ""
+"Вспышка не сработала, автоматический режим, режим снятия эффекта красных глаз"
+
+#: libexif/exif-entry.c:788
+msgid "Flash fired, auto mode, red-eye reduction mode"
+msgstr ""
+"Вспышка сработала, автоматический режим, режим снятия эффекта красных глаз"
+
+#: libexif/exif-entry.c:789
+msgid ""
+"Flash fired, auto mode, return light not detected, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:791
+msgid "Flash fired, auto mode, return light detected, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:795
+msgid "?"
+msgstr "?"
+
+#: libexif/exif-entry.c:797
+msgid "Close view"
+msgstr "Крупный план"
+
+#: libexif/exif-entry.c:798
+msgid "Distant view"
+msgstr "Обзор с расстояния"
+
+#: libexif/exif-entry.c:798
+msgid "Distant"
+msgstr ""
+
+#: libexif/exif-entry.c:801
+msgid "sRGB"
+msgstr "sRGB"
+
+#: libexif/exif-entry.c:802
+msgid "Adobe RGB"
+msgstr "Adobe RGB"
+
+#: libexif/exif-entry.c:803
+msgid "Uncalibrated"
+msgstr "Не откалибровано"
+
+#: libexif/exif-entry.c:857
+#, c-format
+msgid "Invalid size of entry (%i, expected %li x %i)."
+msgstr "Некорректный размер записи (%i, ожидалось %li x %i)."
+
+#: libexif/exif-entry.c:890
+msgid "Unsupported UNICODE string"
+msgstr "Неподдерживаемая строка Unicode"
+
+#: libexif/exif-entry.c:898
+msgid "Unsupported JIS string"
+msgstr "Неподдерживаемая строка JIS"
+
+#: libexif/exif-entry.c:914
+msgid "Tag UserComment does not comply with standard but contains data."
+msgstr "Тэг UserComment не соответствует стандарту, но содержит данные"
+
+#: libexif/exif-entry.c:918
+#, c-format
+msgid "Byte at position %i: 0x%02x"
+msgstr "Байт в позиции %i: 0x%02x"
+
+#: libexif/exif-entry.c:927
+msgid "Unknown Exif Version"
+msgstr "Неизвестная версия EXIF"
+
+#: libexif/exif-entry.c:931
+#, c-format
+msgid "Exif Version %d.%d"
+msgstr "EXIF версии %d.%d"
+
+#: libexif/exif-entry.c:942
+msgid "FlashPix Version 1.0"
+msgstr "FlashPix версии 1.0"
+
+#: libexif/exif-entry.c:944
+msgid "FlashPix Version 1.01"
+msgstr "FlashPix версии 1.01"
+
+#: libexif/exif-entry.c:946
+msgid "Unknown FlashPix Version"
+msgstr "Неизвестная версия FlashPix"
+
+#: libexif/exif-entry.c:959 libexif/exif-entry.c:972 libexif/exif-entry.c:1628
+#: libexif/exif-entry.c:1633 libexif/exif-entry.c:1637
+#: libexif/exif-entry.c:1642 libexif/exif-entry.c:1643
+msgid "[None]"
+msgstr "[Ничего]"
+
+#: libexif/exif-entry.c:961
+msgid "(Photographer)"
+msgstr "(Фотограф)"
+
+#: libexif/exif-entry.c:975
+msgid "(Editor)"
+msgstr "(Редактор)"
+
+#: libexif/exif-entry.c:999 libexif/exif-entry.c:1079
+#: libexif/exif-entry.c:1096 libexif/exif-entry.c:1140
+#, c-format
+msgid "%.02f EV"
+msgstr "%.02f EV"
+
+#: libexif/exif-entry.c:1000
+#, c-format
+msgid " (f/%.01f)"
+msgstr ""
+
+#: libexif/exif-entry.c:1034
+#, c-format
+msgid " (35 equivalent: %d mm)"
+msgstr " (35мм эквивалент: %d мм)"
+
+#: libexif/exif-entry.c:1067 libexif/exif-entry.c:1068
+msgid " sec."
+msgstr " сек."
+
+#: libexif/exif-entry.c:1082
+#, c-format
+msgid " (1/%d sec.)"
+msgstr " (1/%d сек.)"
+
+#: libexif/exif-entry.c:1084
+#, c-format
+msgid " (%d sec.)"
+msgstr " (%d сек.)"
+
+#: libexif/exif-entry.c:1097
+#, c-format
+msgid " (%.02f cd/m^2)"
+msgstr ""
+
+#: libexif/exif-entry.c:1107
+msgid "DSC"
+msgstr "DSC"
+
+#: libexif/exif-entry.c:1109 libexif/exif-entry.c:1149
+#: libexif/exif-entry.c:1236 libexif/exif-entry.c:1287
+#: libexif/exif-entry.c:1296 libexif/exif-entry.c:1332
+#: libexif/fuji/mnote-fuji-entry.c:236 libexif/fuji/mnote-fuji-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:359
+#, c-format
+msgid "Internal error (unknown value %i)"
+msgstr "Внутренняя ошибка (неизвестное значение %i)"
+
+#: libexif/exif-entry.c:1117
+msgid "-"
+msgstr "-"
+
+#: libexif/exif-entry.c:1118
+msgid "Y"
+msgstr "Y"
+
+#: libexif/exif-entry.c:1119
+msgid "Cb"
+msgstr "Cb"
+
+#: libexif/exif-entry.c:1120
+msgid "Cr"
+msgstr "Cr"
+
+#: libexif/exif-entry.c:1121
+msgid "R"
+msgstr "R"
+
+#: libexif/exif-entry.c:1122
+msgid "G"
+msgstr "G"
+
+#: libexif/exif-entry.c:1123
+msgid "B"
+msgstr "B"
+
+#: libexif/exif-entry.c:1124
+#, fuzzy
+msgid "Reserved"
+msgstr "зарезервировано"
+
+#: libexif/exif-entry.c:1147
+msgid "Directly photographed"
+msgstr ""
+
+#: libexif/exif-entry.c:1160
+msgid "YCbCr4:2:2"
+msgstr "YCbCr4:2:2"
+
+#: libexif/exif-entry.c:1162
+msgid "YCbCr4:2:0"
+msgstr "YCbCr4:2:0"
+
+#: libexif/exif-entry.c:1179
+#, c-format
+msgid "Within distance %i of (x,y) = (%i,%i)"
+msgstr "В пределах расстояния %i от (x,y) = (%i,%i)"
+
+#: libexif/exif-entry.c:1188
+#, c-format
+msgid "Within rectangle (width %i, height %i) around (x,y) = (%i,%i)"
+msgstr "Внутри области (ширина %i, высота %i) около (x,y) = (%i,%i)"
+
+#: libexif/exif-entry.c:1194
+#, c-format
+msgid "Unexpected number of components (%li, expected 2, 3, or 4)."
+msgstr "Неожиданное количество компонентов (%li, ожидалось 2, 3, или 4)."
+
+#: libexif/exif-entry.c:1232
+msgid "Sea level"
+msgstr ""
+
+#: libexif/exif-entry.c:1234
+msgid "Sea level reference"
+msgstr ""
+
+#: libexif/exif-entry.c:1342
+#, c-format
+msgid "Unknown value %i"
+msgstr "Неизвестное значение %i"
+
+#: libexif/exif-format.c:37
+msgid "Short"
+msgstr "Короткое целое"
+
+#: libexif/exif-format.c:38
+msgid "Rational"
+msgstr "Рациональное"
+
+#: libexif/exif-format.c:39
+msgid "SRational"
+msgstr "Рациональное со знаком"
+
+#: libexif/exif-format.c:40
+msgid "Undefined"
+msgstr "Не определено"
+
+#: libexif/exif-format.c:41
+msgid "ASCII"
+msgstr ""
+
+#: libexif/exif-format.c:42
+msgid "Long"
+msgstr "Длинное целое"
+
+#: libexif/exif-format.c:43
+msgid "Byte"
+msgstr "Байт"
+
+#: libexif/exif-format.c:44
+msgid "SByte"
+msgstr "Байт со знаком"
+
+#: libexif/exif-format.c:45
+msgid "SShort"
+msgstr "Короткое целое со знаком"
+
+#: libexif/exif-format.c:46
+msgid "SLong"
+msgstr "Длинное целое со знаком"
+
+#: libexif/exif-format.c:47
+msgid "Float"
+msgstr "Число с плавающей точкой"
+
+#: libexif/exif-format.c:48
+msgid "Double"
+msgstr "Двоейное"
+
+#: libexif/exif-loader.c:119
+#, c-format
+msgid "The file '%s' could not be opened."
+msgstr ""
+
+#: libexif/exif-loader.c:300
+msgid "The data supplied does not seem to contain EXIF data."
+msgstr ""
+
+#: libexif/exif-log.c:43
+msgid "Debugging information"
+msgstr ""
+
+#: libexif/exif-log.c:44
+msgid "Debugging information is available."
+msgstr ""
+
+#: libexif/exif-log.c:45
+msgid "Not enough memory"
+msgstr "Недостаточно памяти"
+
+#: libexif/exif-log.c:46
+msgid "The system cannot provide enough memory."
+msgstr "Системе нехватает памяти"
+
+#: libexif/exif-log.c:47
+msgid "Corrupt data"
+msgstr ""
+
+#: libexif/exif-log.c:48
+msgid "The data provided does not follow the specification."
+msgstr "Эти данные не соответствуют спецификации"
+
+#: libexif/exif-tag.c:62
+#, fuzzy
+msgid "GPS Tag Version"
+msgstr "Версия тэга GPS"
+
+#: libexif/exif-tag.c:63
+msgid ""
+"Indicates the version of <GPSInfoIFD>. The version is given as 2.0.0.0. This "
+"tag is mandatory when <GPSInfo> tag is present. (Note: The <GPSVersionID> "
+"tag is given in bytes, unlike the <ExifVersion> tag. When the version is "
+"2.0.0.0, the tag value is 02000000.H)."
+msgstr ""
+"Показывает версию <GPSInfoIFD>. Вкачестве версии указывается 2.0.0.0. При  "
+"наличии тэга <GPSInfo> этот тэг обязателен. (Примечание: в отличие от тэга "
+"<ExifVersion> тэг <GPSVersionID> задаётся в байтах. Когда версия равна "
+"2.0.0.0, значение тэга равно 02000000.H)."
+
+#: libexif/exif-tag.c:69
+msgid "Interoperability Index"
+msgstr ""
+
+#: libexif/exif-tag.c:70
+msgid ""
+"Indicates the identification of the Interoperability rule. Use \"R98\" for "
+"stating ExifR98 Rules. Four bytes used including the termination code "
+"(NULL). see the separate volume of Recommended Exif Interoperability Rules "
+"(ExifR98) for other tags used for ExifR98."
+msgstr ""
+"Показывает идентификацию правил взаимодействия. Используйте \"R98\" для "
+"правил ExifR98. Используется четыре байтавключая код завершения (NULL). см. "
+"отдельный том Recommended Exif Interoperability Rules (ExifR98) для других "
+"тэгов используемых в ExifR98."
+
+#: libexif/exif-tag.c:76
+msgid "North or South Latitude"
+msgstr "Северная или южная широта"
+
+#: libexif/exif-tag.c:77
+msgid ""
+"Indicates whether the latitude is north or south latitude. The ASCII value "
+"'N' indicates north latitude, and 'S' is south latitude."
+msgstr ""
+"Показывает, северная широта или же южная. ASCII-значение 'N' обозначает "
+"северную широту, а 'S' - южную."
+
+#: libexif/exif-tag.c:81
+msgid "Interoperability Version"
+msgstr ""
+
+#: libexif/exif-tag.c:83
+msgid "Latitude"
+msgstr "Широта"
+
+#: libexif/exif-tag.c:84
+msgid ""
+"Indicates the latitude. The latitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is dd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is dd/1,mmmm/100,0/1."
+msgstr ""
+"Отображает широту, выражаемую трёмя RATIONAL-значениями - градусами (dd), "
+"минутами (mm) и секундами (ss). При это формат таков: dd/1,mm/1,ss/1. Когда "
+"используются только градусы и минуты, формат таков: dd/1,mmmm/100,0/1."
+
+#: libexif/exif-tag.c:91
+msgid "East or West Longitude"
+msgstr "Восточная или западная долгота"
+
+#: libexif/exif-tag.c:92
+msgid ""
+"Indicates whether the longitude is east or west longitude. ASCII 'E' "
+"indicates east longitude, and 'W' is west longitude."
+msgstr ""
+"Показывает, восточная долгота или же западная. ASCII-значение 'E' обозначает "
+"восточную долготу, а 'W' - западную."
+
+#: libexif/exif-tag.c:95
+msgid "Longitude"
+msgstr "Долгота"
+
+#: libexif/exif-tag.c:96
+msgid ""
+"Indicates the longitude. The longitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is ddd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is ddd/1,mmmm/100,0/1."
+msgstr ""
+"Отображает долготу, выражаемую трёмя RATIONAL-значениями - градусами (dd), "
+"минутами (mm) и секундами (ss). При это формат таков: ddd/1,mm/1,ss/1. Когда "
+"используются только градусы и минуты, формат таков: ddd/1,mmmm/100,0/1."
+
+#: libexif/exif-tag.c:103
+#, fuzzy
+msgid "Altitude Reference"
+msgstr "Эталон высоты"
+
+#: libexif/exif-tag.c:104
+msgid ""
+"Indicates the altitude used as the reference altitude. If the reference is "
+"sea level and the altitude is above sea level, 0 is given. If the altitude "
+"is below sea level, a value of 1 is given and the altitude is indicated as "
+"an absolute value in the GSPAltitude tag. The reference unit is meters. Note "
+"that this tag is BYTE type, unlike other reference tags."
+msgstr ""
+"Отображает высоту, используемую в качестве эталона. Если эталоном является "
+"уровень моря, а высота выше его, то указывается 0. Если высота ниже уровня "
+"моря, то указывается 1, а высота отображается как абсолютное значение в тэге "
+"<GSPAltitude>. Эталонной единицей измерения является метр. Помните, что этот "
+"тэг в отличие от других \"эталонных\" тэгов имеет тип BYTE."
+
+#: libexif/exif-tag.c:110
+msgid "Altitude"
+msgstr "Высота"
+
+#: libexif/exif-tag.c:111
+msgid ""
+"Indicates the altitude based on the reference in GPSAltitudeRef. Altitude is "
+"expressed as one RATIONAL value. The reference unit is meters."
+msgstr ""
+"Отображает высоту, основываясь на эталоне из тэга <GPSAltitudeRef>. Высота "
+"выражается RATIONAL значением. Эталонной единицей измерения является метр."
+
+#: libexif/exif-tag.c:114
+msgid "GPS Time (Atomic Clock)"
+msgstr ""
+
+#: libexif/exif-tag.c:115
+msgid ""
+"Indicates the time as UTC (Coordinated Universal Time). TimeStamp is "
+"expressed as three RATIONAL values giving the hour, minute, and second."
+msgstr ""
+
+#: libexif/exif-tag.c:118
+msgid "GPS Satellites"
+msgstr ""
+
+#: libexif/exif-tag.c:119
+msgid ""
+"Indicates the GPS satellites used for measurements. This tag can be used to "
+"describe the number of satellites, their ID number, angle of elevation, "
+"azimuth, SNR and other information in ASCII notation. The format is not "
+"specified. If the GPS receiver is incapable of taking measurements, value of "
+"the tag shall be set to NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:125
+msgid "GPS Receiver Status"
+msgstr ""
+
+#: libexif/exif-tag.c:126
+msgid ""
+"Indicates the status of the GPS receiver when the image is recorded. 'A' "
+"means measurement is in progress, and 'V' means the measurement is "
+"Interoperability."
+msgstr ""
+
+#: libexif/exif-tag.c:129
+msgid "GPS Measurement Mode"
+msgstr ""
+
+#: libexif/exif-tag.c:130
+msgid ""
+"Indicates the GPS measurement mode. '2' means two-dimensional measurement "
+"and '3' means three-dimensional measurement is in progress."
+msgstr ""
+
+#: libexif/exif-tag.c:133
+msgid "Measurement Precision"
+msgstr ""
+
+#: libexif/exif-tag.c:134
+msgid ""
+"Indicates the GPS DOP (data degree of precision). An HDOP value is written "
+"during two-dimensional measurement, and PDOP during three-dimensional "
+"measurement."
+msgstr ""
+
+#: libexif/exif-tag.c:137
+msgid "Speed Unit"
+msgstr ""
+
+#: libexif/exif-tag.c:138
+msgid ""
+"Indicates the unit used to express the GPS receiver speed of movement. 'K', "
+"'M' and 'N' represent kilometers per hour, miles per hour, and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:141
+msgid "Speed of GPS Receiver"
+msgstr ""
+
+#: libexif/exif-tag.c:142
+msgid "Indicates the speed of GPS receiver movement."
+msgstr ""
+
+#: libexif/exif-tag.c:143
+msgid "Reference for direction of movement"
+msgstr ""
+
+#: libexif/exif-tag.c:144
+msgid ""
+"Indicates the reference for giving the direction of GPS receiver movement. "
+"'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:147
+msgid "Direction of Movement"
+msgstr ""
+
+#: libexif/exif-tag.c:148
+msgid ""
+"Indicates the direction of GPS receiver movement. The range of values is "
+"from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:150
+msgid "GPS Image Direction Reference"
+msgstr ""
+
+#: libexif/exif-tag.c:151
+msgid ""
+"Indicates the reference for giving the direction of the image when it is "
+"captured. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:153
+#, fuzzy
+msgid "GPS Image Direction"
+msgstr "Описание снимка"
+
+#: libexif/exif-tag.c:154
+msgid ""
+"Indicates the direction of the image when it was captured. The range of "
+"values is from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:156
+msgid "Geodetic Survey Data Used"
+msgstr ""
+
+#: libexif/exif-tag.c:157
+msgid ""
+"Indicates the geodetic survey data used by the GPS receiver. If the survey "
+"data is restricted to Japan, the value of this tag is 'TOKYO' or 'WGS-84'. "
+"If a GPS Info tag is recorded, it is strongly recommended that this tag be "
+"recorded."
+msgstr ""
+
+#: libexif/exif-tag.c:161
+msgid "Reference For Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:162
+msgid ""
+"Indicates whether the latitude of the destination point is north or south "
+"latitude. The ASCII value 'N' indicates north latitude, and 'S' is south "
+"latitude."
+msgstr ""
+
+#: libexif/exif-tag.c:165
+msgid "Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:166
+msgid ""
+"Indicates the latitude of the destination point. The latitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If latitude is expressed as degrees, minutes and seconds, a "
+"typical format would be dd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be dd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:173
+msgid "Reference for Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:174
+msgid ""
+"Indicates whether the longitude of the destination point is east or west "
+"longitude. ASCII 'E' indicates east longitude, and 'W' is west longitude."
+msgstr ""
+
+#: libexif/exif-tag.c:177
+msgid "Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:178
+msgid ""
+"Indicates the longitude of the destination point. The longitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If longitude is expressed as degrees, minutes and seconds, a "
+"typical format would be ddd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be ddd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:186
+msgid "Reference for Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:187
+msgid ""
+"Indicates the reference used for giving the bearing to the destination "
+"point. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:190
+msgid "Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:191
+msgid ""
+"Indicates the bearing to the destination point. The range of values is from "
+"0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:193
+msgid "Reference for Distance to Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:194
+msgid ""
+"Indicates the unit used to express the distance to the destination point. "
+"'K', 'M' and 'N' represent kilometers, miles and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:197
+msgid "Distance to Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:198
+msgid "Indicates the distance to the destination point."
+msgstr ""
+
+#: libexif/exif-tag.c:199
+msgid "Name of GPS Processing Method"
+msgstr ""
+
+#: libexif/exif-tag.c:200
+msgid ""
+"A character string recording the name of the method used for location "
+"finding. The first byte indicates the character code used, and this is "
+"followed by the name of the method. Since the Type is not ASCII, NULL "
+"termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:205
+msgid "Name of GPS Area"
+msgstr ""
+
+#: libexif/exif-tag.c:206
+msgid ""
+"A character string recording the name of the GPS area. The first byte "
+"indicates the character code used, and this is followed by the name of the "
+"GPS area. Since the Type is not ASCII, NULL termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:210
+msgid "GPS Date"
+msgstr ""
+
+#: libexif/exif-tag.c:211
+msgid ""
+"A character string recording date and time information relative to UTC "
+"(Coordinated Universal Time). The format is \"YYYY:MM:DD\". The length of "
+"the string is 11 bytes including NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:215
+msgid "GPS Differential Correction"
+msgstr ""
+
+#: libexif/exif-tag.c:216
+msgid ""
+"Indicates whether differential correction is applied to the GPS receiver."
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "New Subfile Type"
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "A general indication of the kind of data contained in this subfile."
+msgstr "Общее изображение типа данных в этом подфайле"
+
+#: libexif/exif-tag.c:222
+msgid "Image Width"
+msgstr "Ширина изображения"
+
+#: libexif/exif-tag.c:223
+msgid ""
+"The number of columns of image data, equal to the number of pixels per row. "
+"In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+"Количество столбцов данных изображения, равное количеству пикселов на ряд. В "
+"данных, сжатых по алгоритму JPEG, вместо этого тэга используется маркер."
+
+#: libexif/exif-tag.c:227
+msgid "Image Length"
+msgstr "Длина изображения"
+
+#: libexif/exif-tag.c:228
+msgid ""
+"The number of rows of image data. In JPEG compressed data a JPEG marker is "
+"used instead of this tag."
+msgstr ""
+"Количество рядов данных изображения. В данных, сжатых по алгоритму JPEG, "
+"вместо этого тэга используется маркер."
+
+#: libexif/exif-tag.c:231
+msgid "Bits per Sample"
+msgstr "Битов на сэмпл"
+
+#: libexif/exif-tag.c:232
+msgid ""
+"The number of bits per image component. In this standard each component of "
+"the image is 8 bits, so the value for this tag is 8. See also "
+"<SamplesPerPixel>. In JPEG compressed data a JPEG marker is used instead of "
+"this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:237
+msgid "Compression"
+msgstr "Сжатие"
+
+#: libexif/exif-tag.c:238
+msgid ""
+"The compression scheme used for the image data. When a primary image is JPEG "
+"compressed, this designation is not necessary and is omitted. When "
+"thumbnails use JPEG compression, this tag value is set to 6."
+msgstr ""
+"Схема сжатия, использованная для данных этого изображения. Когда основное "
+"изображение сжато по алгоритму JPEG , это обозначение не является "
+"обязательным и опускается. Когда миниатюры используют JPEG-сжатие, значение "
+"этого тэга равно 6."
+
+#: libexif/exif-tag.c:244
+msgid "Photometric Interpretation"
+msgstr "Фотометрическая интерпретация"
+
+#: libexif/exif-tag.c:245
+msgid ""
+"The pixel composition. In JPEG compressed data a JPEG marker is used instead "
+"of this tag."
+msgstr ""
+"Компоновка пикселов. Если данные сжаты по алгоритму JPEG, вместо этого тэга "
+"используется JPEG-маркер."
+
+#: libexif/exif-tag.c:249
+msgid "Fill Order"
+msgstr "Порядок заполнения"
+
+#: libexif/exif-tag.c:251
+msgid "Document Name"
+msgstr "Имя документа"
+
+#: libexif/exif-tag.c:253
+msgid "Image Description"
+msgstr "Описание снимка"
+
+#: libexif/exif-tag.c:254
+msgid ""
+"A character string giving the title of the image. It may be a comment such "
+"as \"1988 company picnic\" or the like. Two-bytes character codes cannot be "
+"used. When a 2-bytes code is necessary, the Exif Private tag <UserComment> "
+"is to be used."
+msgstr ""
+"Текстовая строка, в которой даётся название изображению. Это может быть "
+"комментарий вроде \"Корпоративная тусовка 1988\" или что-то наподобие. "
+"Двухбайтовая кодировка cимволов не может быть использована. Если она всё же "
+"необходима, должен быть использован частный тэг EXIF <UserComment>."
+
+#: libexif/exif-tag.c:260
+msgid "Manufacturer"
+msgstr "Производитель"
+
+#: libexif/exif-tag.c:261
+msgid ""
+"The manufacturer of the recording equipment. This is the manufacturer of the "
+"DSC, scanner, video digitizer or other equipment that generated the image. "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+"Производитель записывающего оборудования. Это изготовитель цифровой "
+"фотокамеры, сканера, видеодигитайзера или  любого другого оборудования, "
+"которое использовалось для получения этого изображения. Если поле не "
+"заполнено, производитель считается неизвестным."
+
+#: libexif/exif-tag.c:267
+msgid "Model"
+msgstr "Модель"
+
+#: libexif/exif-tag.c:268
+msgid ""
+"The model name or model number of the equipment. This is the model name or "
+"number of the DSC, scanner, video digitizer or other equipment that "
+"generated the image. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Имя или номер модели использованного оборудования. Это имя модели или номер "
+"цифровой камеры (DSC), сканера, видеодигитайзера или любого другого "
+"оборудования, которое использовалось для получения этого изображения. Если "
+"поле не заполнено, оборудование считается неизвестным."
+
+#: libexif/exif-tag.c:273
+msgid "Strip Offsets"
+msgstr ""
+
+#: libexif/exif-tag.c:274
+msgid ""
+"For each strip, the byte offset of that strip. It is recommended that this "
+"be selected so the number of strip bytes does not exceed 64 Kbytes. With "
+"JPEG compressed data this designation is not needed and is omitted. See also "
+"<RowsPerStrip> and <StripByteCounts>."
+msgstr ""
+
+#: libexif/exif-tag.c:280
+msgid "Orientation"
+msgstr "Ориентация"
+
+#: libexif/exif-tag.c:281
+msgid "The image orientation viewed in terms of rows and columns."
+msgstr "Ориентация изображения, рассматриваемая в терминах строк и столбцов."
+
+#: libexif/exif-tag.c:284
+msgid "Samples per Pixel"
+msgstr "Сэмплов на пиксел"
+
+#: libexif/exif-tag.c:285
+msgid ""
+"The number of components per pixel. Since this standard applies to RGB and "
+"YCbCr images, the value set for this tag is 3. In JPEG compressed data a "
+"JPEG marker is used instead of this tag."
+msgstr ""
+"Количество компонентов на один пиксел. Поскольку стандарт применяется к "
+"изображениям в цветовых пространствах RGB и YCbCr, значение этого тэга равно "
+"3. Если данные сжаты по алгоритму JPEG, вместо этого тэга используется JPEG-"
+"маркер."
+
+#: libexif/exif-tag.c:290
+msgid "Rows per Strip"
+msgstr ""
+
+#: libexif/exif-tag.c:291
+msgid ""
+"The number of rows per strip. This is the number of rows in the image of one "
+"strip when an image is divided into strips. With JPEG compressed data this "
+"designation is not needed and is omitted. See also <StripOffsets> and "
+"<StripByteCounts>."
+msgstr ""
+
+#: libexif/exif-tag.c:297
+msgid "Strip Byte Count"
+msgstr ""
+
+#: libexif/exif-tag.c:298
+msgid ""
+"The total number of bytes in each strip. With JPEG compressed data this "
+"designation is not needed and is omitted."
+msgstr ""
+
+#: libexif/exif-tag.c:301
+#, fuzzy
+msgid "X-Resolution"
+msgstr "Разрешение по X"
+
+#: libexif/exif-tag.c:302
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageWidth> direction. "
+"When the image resolution is unknown, 72 [dpi] is designated."
+msgstr ""
+"Количество пикселов на <ResolutionUnit> в направлении <ImageWidth>. Если "
+"разрешение не указано, оно принимается за 72 точки на дюйм."
+
+#: libexif/exif-tag.c:306
+#, fuzzy
+msgid "Y-Resolution"
+msgstr "Разрешение по X"
+
+#: libexif/exif-tag.c:307
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageLength> direction. "
+"The same value as <XResolution> is designated."
+msgstr ""
+"Количество пикселов на <ResolutionUnit> в направлении <ImageLength>. "
+"Остальное аналогично <XResolution>."
+
+#: libexif/exif-tag.c:311
+msgid "Planar Configuration"
+msgstr "Планарная конфигурация"
+
+#: libexif/exif-tag.c:312
+msgid ""
+"Indicates whether pixel components are recorded in a chunky or planar "
+"format. In JPEG compressed files a JPEG marker is used instead of this tag. "
+"If this field does not exist, the TIFF default of 1 (chunky) is assumed."
+msgstr ""
+
+#: libexif/exif-tag.c:317
+msgid "Resolution Unit"
+msgstr "Единица разрешения"
+
+#: libexif/exif-tag.c:318
+msgid ""
+"The unit for measuring <XResolution> and <YResolution>. The same unit is "
+"used for both <XResolution> and <YResolution>. If the image resolution is "
+"unknown, 2 (inches) is designated."
+msgstr ""
+"Единица измерения <XResolution> и <YResolution>. Та же самая единица "
+"используется как для <XResolution>, так и для <YResolution>. Если разрешение "
+"изображения неизвестно, оно принимается за 2 (дюйма)."
+
+#: libexif/exif-tag.c:323
+msgid "Transfer Function"
+msgstr "Функция передачи"
+
+#: libexif/exif-tag.c:324
+msgid ""
+"A transfer function for the image, described in tabular style. Normally this "
+"tag is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+"Функция передачи для изображения, описанная в виде таблицы. Обычно этот тэг "
+"не является необходимым, поскольку цветовое пространство уже указано в тэге "
+"<ColorSpace>."
+
+#: libexif/exif-tag.c:328
+msgid "Software"
+msgstr "Программное обеспечение"
+
+#: libexif/exif-tag.c:329
+msgid ""
+"This tag records the name and version of the software or firmware of the "
+"camera or image input device used to generate the image. The detailed format "
+"is not specified, but it is recommended that the example shown below be "
+"followed. When the field is left blank, it is treated as unknown."
+msgstr ""
+"В этом тэге записывается название и версия программного обеспечения или "
+"прошивки камеры либо устройства ввода изображения, использованного для "
+"создания этого изображения. Подробный стандарт не специфицирован, однако "
+"рекомендуется следовать приведённому ниже примеру. Когда поле оставлено "
+"пустым, значение принимается за неизвестное."
+
+#: libexif/exif-tag.c:336
+msgid "Date and Time"
+msgstr "Дата и время"
+
+#: libexif/exif-tag.c:337
+msgid ""
+"The date and time of image creation. In this standard (EXIF-2.1) it is the "
+"date and time the file was changed."
+msgstr ""
+"Дата и время создания изображения. В настоящем стандарте (EXIF-2.1) это дата "
+"и время изменения файла."
+
+#: libexif/exif-tag.c:340
+msgid "Artist"
+msgstr "Исполнитель"
+
+#: libexif/exif-tag.c:341
+msgid ""
+"This tag records the name of the camera owner, photographer or image "
+"creator. The detailed format is not specified, but it is recommended that "
+"the information be written as in the example below for ease of "
+"Interoperability. When the field is left blank, it is treated as unknown."
+msgstr ""
+"В этом тэге записывается имя владельца камеры, фотографа или создателя "
+"изображения. Подробный стандарт не специфицирован, однако рекомендуется "
+"следовать приведённому ниже примеру. Когда поле оставлено пустым, значение "
+"принимается за неизвестное."
+
+#: libexif/exif-tag.c:347 libexif/pentax/mnote-pentax-tag.c:113
+msgid "White Point"
+msgstr "Белая точка"
+
+#: libexif/exif-tag.c:348
+msgid ""
+"The chromaticity of the white point of the image. Normally this tag is not "
+"necessary, since color space is specified in the color space information tag "
+"(<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:353
+msgid "Primary Chromaticities"
+msgstr ""
+
+#: libexif/exif-tag.c:354
+msgid ""
+"The chromaticity of the three primary colors of the image. Normally this tag "
+"is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:359
+msgid "Defined by Adobe Corporation to enable TIFF Trees within a TIFF file."
+msgstr "Определено Adobe Corporation для включения TIFF Trees в файлах TIFF."
+
+#: libexif/exif-tag.c:362
+msgid "Transfer Range"
+msgstr "Область передачи"
+
+#: libexif/exif-tag.c:366
+msgid "JPEG Interchange Format"
+msgstr "Формат обмена данными JPEG"
+
+#: libexif/exif-tag.c:367
+msgid ""
+"The offset to the start byte (SOI) of JPEG compressed thumbnail data. This "
+"is not used for primary image JPEG data."
+msgstr ""
+
+#: libexif/exif-tag.c:372
+msgid "JPEG Interchange Format Length"
+msgstr ""
+
+#: libexif/exif-tag.c:373
+msgid ""
+"The number of bytes of JPEG compressed thumbnail data. This is not used for "
+"primary image JPEG data. JPEG thumbnails are not divided but are recorded as "
+"a continuous JPEG bitstream from SOI to EOI. Appn and COM markers should not "
+"be recorded. Compressed thumbnails must be recorded in no more than 64 "
+"Kbytes, including all other data to be recorded in APP1."
+msgstr ""
+
+#: libexif/exif-tag.c:382
+msgid "YCbCr Coefficients"
+msgstr "Коэффициенты YCbCr"
+
+#: libexif/exif-tag.c:383
+msgid ""
+"The matrix coefficients for transformation from RGB to YCbCr image data. No "
+"default is given in TIFF; but here the value given in \"Color Space "
+"Guidelines\", is used as the default. The color space is declared in a color "
+"space information tag, with the default being the value that gives the "
+"optimal image characteristics Interoperability this condition."
+msgstr ""
+
+#: libexif/exif-tag.c:392
+msgid "YCbCr Sub-Sampling"
+msgstr "Субсэмплинг YCbCr"
+
+#: libexif/exif-tag.c:393
+msgid ""
+"The sampling ratio of chrominance components in relation to the luminance "
+"component. In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:398
+msgid "YCbCr Positioning"
+msgstr "Позиционирование YCbCr"
+
+#: libexif/exif-tag.c:399
+msgid ""
+"The position of chrominance components in relation to the luminance "
+"component. This field is designated only for JPEG compressed data or "
+"uncompressed YCbCr data. The TIFF default is 1 (centered); but when Y:Cb:Cr "
+"= 4:2:2 it is recommended in this standard that 2 (co-sited) be used to "
+"record data, in order to improve the image quality when viewed on TV "
+"systems. When this field does not exist, the reader shall assume the TIFF "
+"default. In the case of Y:Cb:Cr = 4:2:0, the TIFF default (centered) is "
+"recommended. If the reader does not have the capability of supporting both "
+"kinds of <YCbCrPositioning>, it shall follow the TIFF default regardless of "
+"the value in this field. It is preferable that readers be able to support "
+"both centered and co-sited positioning."
+msgstr ""
+"Позиция компонентов цветности по отношению к компоненту яркости. Это поле "
+"предназначено только для данных, сжатых по алгоритму JPEG, а также для "
+"несжатых данных YCbCr data. Исходное значение для TIFF равно 1 (по центру); "
+"но когда Y:Cb:Cr = 4:2:2, для записи данных рекомендуется использовать 2 (по "
+"бокам), чтобы улучшить качество изображения при просмотре через ТВ. Если это "
+"поле отсутствует, считывающая программа использует исходное значение для "
+"TIFF. Когда Y:Cb:Cr = 4:2:0, рекомендуется исходное значение для TIFF (по "
+"центру). Если считывающая программа не поддерживает оба вида "
+"<YCbCrPositioning>, она использует исходное значение для TIFF вне "
+"зависимости от того, какое значение записано в поле на самом деле. "
+"Предпочтительнее, когда считывающая программа поддерживает оба типа "
+"позиционирования."
+
+#: libexif/exif-tag.c:414
+msgid "Reference Black/White"
+msgstr "Эталонный Чёрный/Белый"
+
+#: libexif/exif-tag.c:415
+msgid ""
+"The reference black point value and reference white point value. No defaults "
+"are given in TIFF, but the values below are given as defaults here. The "
+"color space is declared in a color space information tag, with the default "
+"being the value that gives the optimal image characteristics "
+"Interoperability these conditions."
+msgstr ""
+
+#: libexif/exif-tag.c:423
+msgid "XML Packet"
+msgstr "XML-пакет"
+
+#: libexif/exif-tag.c:423
+msgid "XMP Metadata"
+msgstr "Метаданные XMP"
+
+#: libexif/exif-tag.c:438 libexif/exif-tag.c:784
+msgid "CFA Pattern"
+msgstr "Паттерн CFA"
+
+#: libexif/exif-tag.c:439 libexif/exif-tag.c:785
+msgid ""
+"Indicates the color filter array (CFA) geometric pattern of the image sensor "
+"when a one-chip color area sensor is used. It does not apply to all sensing "
+"methods."
+msgstr ""
+
+#: libexif/exif-tag.c:443
+msgid "Battery Level"
+msgstr "Заряд батареи"
+
+#: libexif/exif-tag.c:444
+msgid "Copyright"
+msgstr "Авторские и смежные права"
+
+#: libexif/exif-tag.c:445
+msgid ""
+"Copyright information. In this standard the tag is used to indicate both the "
+"photographer and editor copyrights. It is the copyright notice of the person "
+"or organization claiming rights to the image. The Interoperability copyright "
+"statement including date and rights should be written in this field; e.g., "
+"\"Copyright, John Smith, 19xx. All rights reserved.\". In this standard the "
+"field records both the photographer and editor copyrights, with each "
+"recorded in a separate part of the statement. When there is a clear "
+"distinction between the photographer and editor copyrights, these are to be "
+"written in the order of photographer followed by editor copyright, separated "
+"by NULL (in this case, since the statement also ends with a NULL, there are "
+"two NULL codes) (see example 1). When only the photographer is given, it is "
+"terminated by one NULL code (see example 2). When only the editor copyright "
+"is given, the photographer copyright part consists of one space followed by "
+"a terminating NULL code, then the editor copyright is given (see example 3). "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:467
+msgid "Exposure time, given in seconds (sec)."
+msgstr "Время экспозиции в секундах"
+
+#: libexif/exif-tag.c:469 libexif/pentax/mnote-pentax-tag.c:79
+msgid "F-Number"
+msgstr "Число F"
+
+#: libexif/exif-tag.c:470
+msgid "The F number."
+msgstr "Число F"
+
+#: libexif/exif-tag.c:475
+msgid "Image Resources Block"
+msgstr ""
+
+#: libexif/exif-tag.c:477
+msgid ""
+"A pointer to the Exif IFD. Interoperability, Exif IFD has the same structure "
+"as that of the IFD specified in TIFF. ordinarily, however, it does not "
+"contain image data as in the case of TIFF."
+msgstr ""
+
+#: libexif/exif-tag.c:485
+msgid "Exposure Program"
+msgstr ""
+
+#: libexif/exif-tag.c:486
+msgid ""
+"The class of the program used by the camera to set exposure when the picture "
+"is taken."
+msgstr ""
+"Класс программы, использованной камерой для установки экспозиции при съёмке."
+
+#: libexif/exif-tag.c:490
+msgid "Spectral Sensitivity"
+msgstr "Спектральная чувствительность"
+
+#: libexif/exif-tag.c:491
+msgid ""
+"Indicates the spectral sensitivity of each channel of the camera used. The "
+"tag value is an ASCII string compatible with the standard developed by the "
+"ASTM Technical Committee."
+msgstr ""
+
+#: libexif/exif-tag.c:496
+msgid "GPS Info IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:497
+msgid ""
+"A pointer to the GPS Info IFD. The Interoperability structure of the GPS "
+"Info IFD, like that of Exif IFD, has no image data."
+msgstr ""
+
+#: libexif/exif-tag.c:503
+msgid "ISO Speed Ratings"
+msgstr ""
+
+#: libexif/exif-tag.c:504
+msgid ""
+"Indicates the ISO Speed and ISO Latitude of the camera or input device as "
+"specified in ISO 12232."
+msgstr ""
+
+#: libexif/exif-tag.c:507
+msgid "Opto-Electronic Conversion Function"
+msgstr ""
+
+#: libexif/exif-tag.c:508
+msgid ""
+"Indicates the Opto-Electronic Conversion Function (OECF) specified in ISO "
+"14524. <OECF> is the relationship between the camera optical input and the "
+"image values."
+msgstr ""
+
+#: libexif/exif-tag.c:513
+msgid "Time Zone Offset"
+msgstr ""
+
+#: libexif/exif-tag.c:514
+msgid "Encodes time zone of camera clock relative to GMT."
+msgstr ""
+
+#: libexif/exif-tag.c:515
+msgid "Exif Version"
+msgstr "Версия EXIF"
+
+#: libexif/exif-tag.c:516
+msgid ""
+"The version of this standard supported. Nonexistence of this field is taken "
+"to mean nonconformance to the standard."
+msgstr ""
+"Поддерживаемая версия стандарта EXIF. Отсутствие этого поля принимается за "
+"свидетельство несоответствия стандарту."
+
+#: libexif/exif-tag.c:520
+#, fuzzy
+msgid "Date and Time (Original)"
+msgstr "Исходная дата и время"
+
+#: libexif/exif-tag.c:521
+msgid ""
+"The date and time when the original image data was generated. For a digital "
+"still camera the date and time the picture was taken are recorded."
+msgstr ""
+"Дата и время создания исходного изображения. Для цифровой фотокамеры это "
+"дата и время съёмки."
+
+#: libexif/exif-tag.c:526
+#, fuzzy
+msgid "Date and Time (Digitized)"
+msgstr "Дата и время оцифровки"
+
+#: libexif/exif-tag.c:527
+msgid "The date and time when the image was stored as digital data."
+msgstr "Дата и время сохранения изображения в цифровом виде"
+
+#: libexif/exif-tag.c:530
+msgid "Components Configuration"
+msgstr ""
+
+#: libexif/exif-tag.c:531
+msgid ""
+"Information specific to compressed data. The channels of each component are "
+"arranged in order from the 1st component to the 4th. For uncompressed data "
+"the data arrangement is given in the <PhotometricInterpretation> tag. "
+"However, since <PhotometricInterpretation> can only express the order of Y, "
+"Cb and Cr, this tag is provided for cases when compressed data uses "
+"components other than Y, Cb, and Cr and to enable support of other sequences."
+msgstr ""
+"Специфичная для сжатых данных информация. Каналы каждого компонента "
+"расставлены в порядке от первого до четвёртого. Для несжатых данных порядок "
+"расстановки данных задаётся в тэге <PhotometricInterpretation>. Во всяком "
+"случае, поскольку <PhotometricInterpretation> может выражать лишь порядок Y, "
+"Cb и Cr, этот тэг записывается на тот случай, когда в сжатых данных "
+"используются компоненты, отличные от Y, Cb и Cr, а также для обеспечения "
+"поддержки обеих последовательностей."
+
+#: libexif/exif-tag.c:541
+msgid "Compressed Bits per Pixel"
+msgstr "Сжатых битов на пиксел"
+
+#: libexif/exif-tag.c:542
+msgid ""
+"Information specific to compressed data. The compression mode used for a "
+"compressed image is indicated in unit bits per pixel."
+msgstr ""
+"Специфичная для сжатых данных информация. Использованный режим сжатия для "
+"сжатого изображения показывается в единице измерения \"битов на пиксел\""
+
+#: libexif/exif-tag.c:546 libexif/olympus/mnote-olympus-tag.c:123
+msgid "Shutter Speed"
+msgstr "Скорость срабатывания затвора"
+
+#: libexif/exif-tag.c:547
+msgid ""
+"Shutter speed. The unit is the APEX (Additive System of Photographic "
+"Exposure) setting."
+msgstr ""
+"Скорость срабатывания затвора. Эта единица измерения является APEX(Additive "
+"System of Photographic Exposure)-настройкой (см. Приложение С)"
+
+#: libexif/exif-tag.c:551
+msgid "The lens aperture. The unit is the APEX value."
+msgstr "Диафрагма объектива. Эта единица измерения является APEX-значением"
+
+#: libexif/exif-tag.c:553
+msgid "Brightness"
+msgstr "Яркость"
+
+#: libexif/exif-tag.c:554
+msgid ""
+"The value of brightness. The unit is the APEX value. Ordinarily it is given "
+"in the range of -99.99 to 99.99."
+msgstr ""
+"Значение яркости. Эта единица измерения является APEX-значением. Обычно оно "
+"находится в пределах от -99.99 до 99.99"
+
+#: libexif/exif-tag.c:558
+msgid "Exposure Bias"
+msgstr "Смещение экспозиции"
+
+#: libexif/exif-tag.c:559
+msgid ""
+"The exposure bias. The units is the APEX value. Ordinarily it is given in "
+"the range of -99.99 to 99.99."
+msgstr ""
+"Смещение экспозиции. Измеряется APEX-единицами. Обычно значение лежит в "
+"диапазоне между -99.99 и 99.99."
+
+#: libexif/exif-tag.c:562
+msgid "Maximum Aperture Value"
+msgstr ""
+
+#: libexif/exif-tag.c:563
+msgid ""
+"The smallest F number of the lens. The unit is the APEX value. Ordinarily it "
+"is given in the range of 00.00 to 99.99, but it is not limited to this range."
+msgstr ""
+"Самое маленькое число F для объектива. Измеряется APEX-единицами. Обычно "
+"значение лежит в диапазоне между 00.00 и 99.99, но оно не ограничено этим "
+"диапазоном."
+
+#: libexif/exif-tag.c:568
+msgid "Subject Distance"
+msgstr "Расстояние до объекта"
+
+#: libexif/exif-tag.c:569
+msgid "The distance to the subject, given in meters."
+msgstr "Расстояние до объекта в метрах"
+
+#: libexif/exif-tag.c:572
+msgid "The metering mode."
+msgstr "Режим замера"
+
+#: libexif/exif-tag.c:574
+msgid "Light Source"
+msgstr "Источник света"
+
+#: libexif/exif-tag.c:575
+msgid "The kind of light source."
+msgstr "Вид источника света"
+
+#: libexif/exif-tag.c:578
+msgid ""
+"This tag is recorded when an image is taken using a strobe light (flash)."
+msgstr "Этот тэг записывается при использовании эффекта стробоскопа во вспышке"
+
+#: libexif/exif-tag.c:582
+msgid ""
+"The actual focal length of the lens, in mm. Conversion is not made to the "
+"focal length of a 35 mm film camera."
+msgstr ""
+"Реальное фокусное расстояние объектива. Преобразование в 35мм плёночный "
+"аналог не производится."
+
+#: libexif/exif-tag.c:585
+msgid "Subject Area"
+msgstr "Область объекта съёмки"
+
+#: libexif/exif-tag.c:586
+msgid ""
+"This tag indicates the location and area of the main subject in the overall "
+"scene."
+msgstr ""
+"Этот тэг отображает местоположение и область объекта съёмки во всей сцене."
+
+#: libexif/exif-tag.c:590
+msgid "TIFF/EP Standard ID"
+msgstr "ID стандарта TIFF/EP"
+
+#: libexif/exif-tag.c:591
+msgid "Maker Note"
+msgstr ""
+
+#: libexif/exif-tag.c:592
+msgid ""
+"A tag for manufacturers of Exif writers to record any desired information. "
+"The contents are up to the manufacturer."
+msgstr ""
+"Тэг для разработчиков средства записи тэгов EXIF, в который можно записывать "
+"всё, что им хочется. Содержимое зависит от разработчиков."
+
+#: libexif/exif-tag.c:595
+msgid "User Comment"
+msgstr "Пользовательский комментарий"
+
+#: libexif/exif-tag.c:596
+msgid ""
+"A tag for Exif users to write keywords or comments on the image besides "
+"those in <ImageDescription>, and without the character code limitations of "
+"the <ImageDescription> tag. The character code used in the <UserComment> tag "
+"is identified based on an ID code in a fixed 8-byte area at the start of the "
+"tag data area. The unused portion of the area is padded with NULL (\"00.h"
+"\"). ID codes are assigned by means of registration. The designation method "
+"and references for each character code are defined in the specification. The "
+"value of CountN is determined based on the 8 bytes in the character code "
+"area and the number of bytes in the user comment part. Since the TYPE is not "
+"ASCII, NULL termination is not necessary. The ID code for the <UserComment> "
+"area may be a Defined code such as JIS or ASCII, or may be Undefined. The "
+"Undefined name is UndefinedText, and the ID code is filled with 8 bytes of "
+"all \"NULL\" (\"00.H\"). An Exif reader that reads the <UserComment> tag "
+"must have a function for determining the ID code. This function is not "
+"required in Exif readers that do not use the <UserComment> tag. When a "
+"<UserComment> area is set aside, it is recommended that the ID code be ASCII "
+"and that the following user comment part be filled with blank characters [20."
+"H]."
+msgstr ""
+
+#: libexif/exif-tag.c:619
+msgid "Sub-second Time"
+msgstr ""
+
+#: libexif/exif-tag.c:620
+msgid "A tag used to record fractions of seconds for the <DateTime> tag."
+msgstr "Тэг, используемый для записи долей секунды из тэга <DateTime>."
+
+#: libexif/exif-tag.c:624
+#, fuzzy
+msgid "Sub-second Time (Original)"
+msgstr "Исходная дата и время"
+
+#: libexif/exif-tag.c:625
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeOriginal> tag."
+msgstr "Тэг, используемый для записи долей секунды из тэга <DateTimeOriginal>."
+
+#: libexif/exif-tag.c:629
+#, fuzzy
+msgid "Sub-second Time (Digitized)"
+msgstr "Дата и время оцифровки"
+
+#: libexif/exif-tag.c:630
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeDigitized> tag."
+msgstr ""
+"Тэг, используемый для записи долей секунды из тэга <DateTimeDigitized>."
+
+#: libexif/exif-tag.c:634
+msgid "XP Title"
+msgstr ""
+
+#: libexif/exif-tag.c:635
+msgid "A character string giving the title of the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:639
+msgid "XP Comment"
+msgstr ""
+
+#: libexif/exif-tag.c:640
+msgid ""
+"A character string containing a comment about the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:644
+msgid "XP Author"
+msgstr ""
+
+#: libexif/exif-tag.c:645
+msgid ""
+"A character string containing the name of the image creator, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:649
+msgid "XP Keywords"
+msgstr ""
+
+#: libexif/exif-tag.c:650
+msgid ""
+"A character string containing key words describing the image, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:654
+msgid "XP Subject"
+msgstr ""
+
+#: libexif/exif-tag.c:655
+msgid "A character string giving the image subject, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:659
+msgid "The FlashPix format version supported by a FPXR file."
+msgstr "Версия формата FlashPix, поддерживаемого в формате файлов FPXR"
+
+#: libexif/exif-tag.c:661 libexif/pentax/mnote-pentax-tag.c:102
+msgid "Color Space"
+msgstr "Цветовое пространство"
+
+#: libexif/exif-tag.c:662
+msgid ""
+"The color space information tag is always recorded as the color space "
+"specifier. Normally sRGB (=1) is used to define the color space based on the "
+"PC monitor conditions and environment. If a color space other than sRGB is "
+"used, Uncalibrated (=FFFF.H) is set. Image data recorded as Uncalibrated can "
+"be treated as sRGB when it is converted to FlashPix."
+msgstr ""
+"Обязательный тэг, в котором определяется цветовое пространство. Как правило, "
+"в качестве цветового пространства монитора и окружения используется sRGB "
+"(=1). Если же используется не sRGB, то значение устанавливается как "
+"Uncalibrated (=FFFF.H). Данные изображения, записанного как Uncalibrated, "
+"могут быть восприняты как sRGB при преобразовании во FlashPix. Подробнее "
+"sRGB рассматривается в приложении E."
+
+#: libexif/exif-tag.c:670
+msgid "Pixel X Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:671
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid width of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file."
+msgstr ""
+
+#: libexif/exif-tag.c:677
+msgid "Pixel Y Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:678
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid height of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file. Since data padding is unnecessary in the "
+"vertical direction, the number of lines recorded in this valid image height "
+"tag will in fact be the same as that recorded in the SOF."
+msgstr ""
+
+#: libexif/exif-tag.c:688
+msgid "Related Sound File"
+msgstr ""
+
+#: libexif/exif-tag.c:689
+msgid ""
+"This tag is used to record the name of an audio file related to the image "
+"data. The only relational information recorded here is the Exif audio file "
+"name and extension (an ASCII string consisting of 8 characters + '.' + 3 "
+"characters). The path is not recorded. Stipulations on audio and file naming "
+"conventions are defined in the specification. When using this tag, audio "
+"files must be recorded in conformance to the Exif audio format. Writers are "
+"also allowed to store the data such as Audio within APP2 as FlashPix "
+"extension stream data. The mapping of Exif image files and audio files is "
+"done in any of three ways, [1], [2] and [3]. If multiple files are mapped to "
+"one file as in [2] or [3], the above format is used to record just one audio "
+"file name. If there are multiple audio files, the first recorded file is "
+"given. In the case of [3], for example, for the Exif image file \"DSC00001."
+"JPG\" only  \"SND00001.WAV\" is given as the related Exif audio file. When "
+"there are three Exif audio files \"SND00001.WAV\", \"SND00002.WAV\" and "
+"\"SND00003.WAV\", the Exif image file name for each of them, \"DSC00001.JPG"
+"\", is indicated. By combining multiple relational information, a variety of "
+"playback possibilities can be supported. The method of using relational "
+"information is left to the implementation on the playback side. Since this "
+"information is an ASCII character string, it is terminated by NULL. When "
+"this tag is used to map audio files, the relation of the audio file to image "
+"data must also be indicated on the audio file end."
+msgstr ""
+
+#: libexif/exif-tag.c:719
+msgid "Interoperability IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:720
+msgid ""
+"Interoperability IFD is composed of tags which stores the information to "
+"ensure the Interoperability and pointed by the following tag located in Exif "
+"IFD. The Interoperability structure of Interoperability IFD is the same as "
+"TIFF defined IFD structure but does not contain the image data "
+"characteristically compared with normal TIFF IFD."
+msgstr ""
+
+#: libexif/exif-tag.c:729
+msgid "Flash Energy"
+msgstr ""
+
+#: libexif/exif-tag.c:730
+msgid ""
+"Indicates the strobe energy at the time the image is captured, as measured "
+"in Beam Candle Power Seconds (BCPS)."
+msgstr ""
+
+#: libexif/exif-tag.c:734
+msgid "Spatial Frequency Response"
+msgstr ""
+
+#: libexif/exif-tag.c:735
+msgid ""
+"This tag records the camera or input device spatial frequency table and SFR "
+"values in the direction of image width, image height, and diagonal "
+"direction, as specified in ISO 12233."
+msgstr ""
+
+#: libexif/exif-tag.c:741
+#, fuzzy
+msgid "Focal Plane X-Resolution"
+msgstr "Разрешение по X"
+
+#: libexif/exif-tag.c:742
+msgid ""
+"Indicates the number of pixels in the image width (X) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+
+#: libexif/exif-tag.c:746
+#, fuzzy
+msgid "Focal Plane Y-Resolution"
+msgstr "Разрешение по X"
+
+#: libexif/exif-tag.c:747
+msgid ""
+"Indicates the number of pixels in the image height (V) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+
+#: libexif/exif-tag.c:751
+msgid "Focal Plane Resolution Unit"
+msgstr ""
+
+#: libexif/exif-tag.c:752
+msgid ""
+"Indicates the unit for measuring <FocalPlaneXResolution> and "
+"<FocalPlaneYResolution>. This value is the same as the <ResolutionUnit>."
+msgstr ""
+
+#: libexif/exif-tag.c:757
+msgid "Subject Location"
+msgstr "Местоположение объекта съёмки"
+
+#: libexif/exif-tag.c:758
+msgid ""
+"Indicates the location of the main subject in the scene. The value of this "
+"tag represents the pixel at the center of the main subject relative to the "
+"left edge, prior to rotation processing as per the <Rotation> tag. The first "
+"value indicates the X column number and the second indicates the Y row "
+"number."
+msgstr ""
+"Этот тэг отображает местоположение главного объекта съёмки в сцене. Значение "
+"этого тэга представляет пиксел в центре главного объекта относительно левого "
+"края, до обработки поворота согласно тэгу <Rotation>. Первое значение "
+"отображает номер столбца по X, а второй - номер строки по Y."
+
+#: libexif/exif-tag.c:765
+msgid "Exposure Index"
+msgstr ""
+
+#: libexif/exif-tag.c:766
+msgid ""
+"Indicates the exposure index selected on the camera or input device at the "
+"time the image is captured."
+msgstr ""
+
+#: libexif/exif-tag.c:769
+msgid "Sensing Method"
+msgstr ""
+
+#: libexif/exif-tag.c:770
+msgid "Indicates the image sensor type on the camera or input device."
+msgstr ""
+
+#: libexif/exif-tag.c:773 libexif/fuji/mnote-fuji-tag.c:64
+msgid "File Source"
+msgstr "Источник файла"
+
+#: libexif/exif-tag.c:774
+msgid ""
+"Indicates the image source. If a DSC recorded the image, the tag value of "
+"this tag always be set to 3, indicating that the image was recorded on a DSC."
+msgstr ""
+
+#: libexif/exif-tag.c:778
+msgid "Scene Type"
+msgstr "Тип сцены"
+
+#: libexif/exif-tag.c:779
+msgid ""
+"Indicates the type of scene. If a DSC recorded the image, this tag value "
+"must always be set to 1, indicating that the image was directly photographed."
+msgstr ""
+"Этот тэг отображает тип сцены. Если это снимок цифровой фотокамеры, то "
+"значение тэга всегда должно быть равно 1, что означает непосредственную "
+"съёмку."
+
+#: libexif/exif-tag.c:789
+msgid "Custom Rendered"
+msgstr ""
+
+#: libexif/exif-tag.c:790
+msgid ""
+"This tag indicates the use of special processing on image data, such as "
+"rendering geared to output. When special processing is performed, the reader "
+"is expected to disable or minimize any further processing."
+msgstr ""
+
+#: libexif/exif-tag.c:796
+msgid ""
+"This tag indicates the exposure mode set when the image was shot. In auto-"
+"bracketing mode, the camera shoots a series of frames of the same scene at "
+"different exposure settings."
+msgstr ""
+"Этот тэг отображает режим экспозиции при съёмке изображения. В режиме "
+"автоматического брекетинга камера делает серию кадров одной и той же сцены с "
+"разными настройками экспозиции."
+
+#: libexif/exif-tag.c:801
+msgid "This tag indicates the white balance mode set when the image was shot."
+msgstr "Этот тэг отображает режим баланса белого при съёмке изображения."
+
+#: libexif/exif-tag.c:805
+msgid "Digital Zoom Ratio"
+msgstr "Коэффициент цифрового трансфокатора"
+
+#: libexif/exif-tag.c:806
+msgid ""
+"This tag indicates the digital zoom ratio when the image was shot. If the "
+"numerator of the recorded value is 0, this indicates that digital zoom was "
+"not used."
+msgstr ""
+"Этот тэг отображает коэффициент цифрового трансфокатора при съёмке "
+"изображения. Если значение равно 0, то цифровой трансфокатор не был "
+"использован."
+
+#: libexif/exif-tag.c:811
+#, fuzzy
+msgid "Focal Length in 35mm Film"
+msgstr "Фокусное расстояние в 35мм аналоге"
+
+#: libexif/exif-tag.c:812
+msgid ""
+"This tag indicates the equivalent focal length assuming a 35mm film camera, "
+"in mm. A value of 0 means the focal length is unknown. Note that this tag "
+"differs from the FocalLength tag."
+msgstr ""
+"Этот тэг отображает фокусное расстояние в 35мм плёночном эквиваленте, "
+"измеряемом миллиметрами. Если значение равно 0, то фокусное расстояние "
+"неизвестно. Обратите внимание на то, что этот тэг отличется от <FocalLength>."
+
+#: libexif/exif-tag.c:818
+msgid "Scene Capture Type"
+msgstr ""
+
+#: libexif/exif-tag.c:819
+msgid ""
+"This tag indicates the type of scene that was shot. It can also be used to "
+"record the mode in which the image was shot. Note that this differs from the "
+"scene type <SceneType> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:824
+msgid "Gain Control"
+msgstr ""
+
+#: libexif/exif-tag.c:825
+msgid "This tag indicates the degree of overall image gain adjustment."
+msgstr ""
+
+#: libexif/exif-tag.c:829
+msgid ""
+"This tag indicates the direction of contrast processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Этот тэг отображает направление обработки контраста при съёмке изображения"
+
+#: libexif/exif-tag.c:833
+msgid ""
+"This tag indicates the direction of saturation processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Этот тэг отображает направление обработки насыщенности при съёмке изображения"
+
+#: libexif/exif-tag.c:837
+msgid ""
+"This tag indicates the direction of sharpness processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Этот тэг отображает направление обработки резкости при съёмке изображения"
+
+#: libexif/exif-tag.c:841
+msgid "Device Setting Description"
+msgstr ""
+
+#: libexif/exif-tag.c:842
+msgid ""
+"This tag indicates information on the picture-taking conditions of a "
+"particular camera model. The tag is used only to indicate the picture-taking "
+"conditions in the reader."
+msgstr ""
+
+#: libexif/exif-tag.c:848
+msgid "Subject Distance Range"
+msgstr ""
+
+#: libexif/exif-tag.c:849
+msgid "This tag indicates the distance to the subject."
+msgstr ""
+
+#: libexif/exif-tag.c:851
+msgid "Image Unique ID"
+msgstr "Уникальный ID изображения"
+
+#: libexif/exif-tag.c:852
+msgid ""
+"This tag indicates an identifier assigned uniquely to each image. It is "
+"recorded as an ASCII string equivalent to hexadecimal notation and 128-bit "
+"fixed length."
+msgstr ""
+
+#: libexif/exif-tag.c:857
+msgid "Gamma"
+msgstr ""
+
+#: libexif/exif-tag.c:858
+msgid "Indicates the value of coefficient gamma."
+msgstr ""
+
+#: libexif/exif-tag.c:860
+msgid "PRINT Image Matching"
+msgstr ""
+
+#: libexif/exif-tag.c:861
+msgid "Related to Epson's PRINT Image Matching technology"
+msgstr ""
+
+#: libexif/exif-tag.c:863
+msgid "Padding"
+msgstr ""
+
+#: libexif/exif-tag.c:864
+msgid ""
+"This tag reserves space that can be reclaimed later when additional metadata "
+"are added. New metadata can be written in place by replacing this tag with a "
+"smaller data element and using the reclaimed space to store the new or "
+"expanded metadata tags."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:62
+msgid "Softest"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:66
+msgid "Hardest"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:67 libexif/fuji/mnote-fuji-entry.c:96
+msgid "Medium soft"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:68 libexif/fuji/mnote-fuji-entry.c:94
+msgid "Medium hard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:69 libexif/fuji/mnote-fuji-entry.c:90
+#: libexif/fuji/mnote-fuji-entry.c:98 libexif/fuji/mnote-fuji-entry.c:182
+msgid "Film simulation mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:79
+msgid "Incandescent"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:85
+msgid "Medium high"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:87
+msgid "Medium low"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:88 libexif/fuji/mnote-fuji-entry.c:97
+msgid "Original"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:124 libexif/pentax/mnote-pentax-entry.c:164
+#: libexif/pentax/mnote-pentax-entry.c:299
+msgid "Program AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:125
+msgid "Natural photo"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:126
+msgid "Vibration reduction"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:127
+msgid "Sunset"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:128 libexif/pentax/mnote-pentax-entry.c:181
+msgid "Museum"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:129
+msgid "Party"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:130
+msgid "Flower"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:131 libexif/pentax/mnote-pentax-entry.c:176
+msgid "Text"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:132
+msgid "NP & flash"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:137
+msgid "Aperture priority AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:138
+msgid "Shutter priority AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:146
+msgid "F-Standard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:147
+msgid "F-Chrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:148
+msgid "F-B&W"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:151
+msgid "No blur"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:152
+msgid "Blur warning"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:155
+msgid "Focus good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:156
+msgid "Out of focus"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:159
+msgid "AE good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:160
+msgid "Over exposed"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:164
+msgid "Wide"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:167
+msgid "F0/Standard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:168
+msgid "F1/Studio portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:169
+msgid "F1a/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:170
+msgid "F1b/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:171
+msgid "F1c/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:172
+msgid "F2/Fujichrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:173
+msgid "F3/Studio portrait Ex"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:174
+msgid "F4/Velvia"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:177
+msgid "Auto (100-400%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:179
+msgid "Standard (100%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:180
+msgid "Wide1 (230%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:181
+msgid "Wide2 (400%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:263
+#, c-format
+msgid "%2.2f mm"
+msgstr "%2.2f мм"
+
+#: libexif/fuji/mnote-fuji-entry.c:298 libexif/pentax/mnote-pentax-entry.c:399
+#: libexif/pentax/mnote-pentax-entry.c:451
+#, c-format
+msgid "%i bytes unknown data"
+msgstr "%i байтов неизвестных данных"
+
+#: libexif/fuji/mnote-fuji-tag.c:36
+msgid "Maker Note Version"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:37
+msgid "This number is unique and based on the date of manufacture."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:41
+msgid "Chromaticity Saturation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:44
+msgid "Flash Firing Strength Compensation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:46
+msgid "Focusing Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:47
+msgid "Focus Point"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:48
+msgid "Slow Synchro Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:49 libexif/pentax/mnote-pentax-tag.c:72
+msgid "Picture Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:50
+msgid "Continuous Taking"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:51
+msgid "Continuous Sequence Number"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:52
+msgid "FinePix Color"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:53
+msgid "Blur Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:54
+msgid "Auto Focus Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:55
+msgid "Auto Exposure Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:56
+msgid "Dynamic Range"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:57
+msgid "Film Simulation Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:58
+msgid "Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:59
+msgid "Development Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:60
+msgid "Minimum Focal Length"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:61
+msgid "Maximum Focal Length"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:62
+msgid "Maximum Aperture at Minimum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:63
+msgid "Maximum Aperture at Maximum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:65
+msgid "Order Number"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:66 libexif/pentax/mnote-pentax-tag.c:98
+msgid "Frame Number"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:49
+#, c-format
+msgid "Invalid format '%s', expected '%s' or '%s'."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:89
+#, fuzzy
+msgid "AF non D lens"
+msgstr "Объектив AF не D"
+
+#: libexif/olympus/mnote-olympus-entry.c:91
+#, fuzzy
+msgid "AF-D or AF-S lens"
+msgstr "Объектив AF-D или AF-S"
+
+#: libexif/olympus/mnote-olympus-entry.c:92
+#, fuzzy
+msgid "AF-D G lens"
+msgstr "Объектив AF-D G"
+
+#: libexif/olympus/mnote-olympus-entry.c:93
+#, fuzzy
+msgid "AF-D VR lens"
+msgstr "Объектив AF-D VR"
+
+#: libexif/olympus/mnote-olympus-entry.c:94
+#, fuzzy
+msgid "AF-D G VR lens"
+msgstr "Объектив AF-D VR"
+
+#: libexif/olympus/mnote-olympus-entry.c:98
+msgid "Flash unit unknown"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:99
+msgid "Flash is external"
+msgstr "Внешняя вспышка"
+
+#: libexif/olympus/mnote-olympus-entry.c:100
+#, fuzzy
+msgid "Flash is on camera"
+msgstr "Встроенная вспышка"
+
+#: libexif/olympus/mnote-olympus-entry.c:103
+#, fuzzy
+msgid "VGA basic"
+msgstr "VGA Basic"
+
+#: libexif/olympus/mnote-olympus-entry.c:104
+#, fuzzy
+msgid "VGA normal"
+msgstr "VGA Normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:105
+#, fuzzy
+msgid "VGA fine"
+msgstr "VGA Fine"
+
+#: libexif/olympus/mnote-olympus-entry.c:106
+#, fuzzy
+msgid "SXGA basic"
+msgstr "SXGA Basic"
+
+#: libexif/olympus/mnote-olympus-entry.c:107
+#, fuzzy
+msgid "SXGA normal"
+msgstr "SXGA Normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:108
+#, fuzzy
+msgid "SXGA fine"
+msgstr "SXGA Fine"
+
+#: libexif/olympus/mnote-olympus-entry.c:109
+msgid "2 Mpixel basic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:110
+msgid "2 Mpixel normal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:111
+msgid "2 Mpixel fine"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:114
+msgid "Color"
+msgstr "Цвет"
+
+#: libexif/olympus/mnote-olympus-entry.c:119
+msgid "Bright+"
+msgstr "Яркость+"
+
+#: libexif/olympus/mnote-olympus-entry.c:120
+msgid "Bright-"
+msgstr "Яркость-"
+
+#: libexif/olympus/mnote-olympus-entry.c:121
+msgid "Contrast+"
+msgstr "Контраст+"
+
+#: libexif/olympus/mnote-olympus-entry.c:122
+msgid "Contrast-"
+msgstr "Контраст-"
+
+#: libexif/olympus/mnote-olympus-entry.c:125
+msgid "ISO 80"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:126
+msgid "ISO 160"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:127
+msgid "ISO 320"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:128
+#: libexif/olympus/mnote-olympus-entry.c:246
+msgid "ISO 100"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:132
+msgid "Preset"
+msgstr "Пресет"
+
+#: libexif/olympus/mnote-olympus-entry.c:134
+msgid "Incandescence"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:135
+msgid "Fluorescence"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:137
+msgid "SpeedLight"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:140
+msgid "No fisheye"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:141
+msgid "Fisheye on"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:144
+msgid "Normal, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:145
+msgid "Normal, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:146
+msgid "Normal, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:147
+msgid "Normal, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:148
+msgid "Normal, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:149
+msgid "Normal, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:150
+msgid "Normal, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:151
+msgid "Normal, standard"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:152
+msgid "Fine, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:153
+msgid "Fine, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:154
+msgid "Fine, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:155
+msgid "Fine, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:156
+msgid "Fine, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:157
+msgid "Fine, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:158
+msgid "Fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:159
+msgid "Super fine, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:160
+msgid "Super fine, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:161
+msgid "Super fine, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:162
+msgid "Super fine, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:163
+msgid "Super fine, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:164
+msgid "Super fine, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:165
+msgid "Super fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:166
+msgid "Super fine, high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:169
+#: libexif/olympus/mnote-olympus-entry.c:174
+#: libexif/olympus/mnote-olympus-entry.c:208
+#: libexif/olympus/mnote-olympus-entry.c:217
+#: libexif/olympus/mnote-olympus-entry.c:240
+msgid "No"
+msgstr "Нет"
+
+#: libexif/olympus/mnote-olympus-entry.c:180
+msgid "On (Preset)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:185
+msgid "Fill"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:192
+#, fuzzy
+msgid "Internal + external"
+msgstr "Внешняя вспышка"
+
+#: libexif/olympus/mnote-olympus-entry.c:221
+msgid "Interlaced"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:222
+msgid "Progressive"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:228
+#: libexif/pentax/mnote-pentax-entry.c:85
+#: libexif/pentax/mnote-pentax-entry.c:139
+msgid "Best"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:229
+#, fuzzy
+msgid "Adjust exposure"
+msgstr "Автоэкспозиция"
+
+#: libexif/olympus/mnote-olympus-entry.c:232
+#, fuzzy
+msgid "Spot focus"
+msgstr "Панорамный фокус"
+
+#: libexif/olympus/mnote-olympus-entry.c:233
+#, fuzzy
+msgid "Normal focus"
+msgstr "Обычная обработка"
+
+#: libexif/olympus/mnote-olympus-entry.c:236
+msgid "Record while down"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:237
+msgid "Press start, press stop"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:245
+msgid "ISO 50"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:247
+msgid "ISO 200"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:248
+msgid "ISO 400"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:252
+#: libexif/pentax/mnote-pentax-entry.c:168
+msgid "Sport"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:253
+msgid "TV"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:255
+msgid "User 1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:256
+msgid "User 2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:257
+msgid "Lamp"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:260
+msgid "5 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:261
+msgid "10 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:262
+msgid "15 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:263
+msgid "20 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:375
+#, c-format
+msgid "Red Correction %f, blue Correction %f"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:383
+#, c-format
+msgid "%2.2f meters"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:385
+msgid "No manual focus selection"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:411
+msgid "AF position: center"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:412
+msgid "AF position: top"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:413
+#, fuzzy
+msgid "AF position: bottom"
+msgstr "Сверху вниз"
+
+#: libexif/olympus/mnote-olympus-entry.c:414
+msgid "AF position: left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:415
+msgid "AF position: right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:416
+msgid "AF position: upper-left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:417
+msgid "AF position: upper-right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:418
+msgid "AF position: lower-left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:419
+msgid "AF position: lower-right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:420
+msgid "AF position: far left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:421
+msgid "AF position: far right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:422
+#, fuzzy
+msgid "Unknown AF position"
+msgstr "Неизвестная версия EXIF"
+
+#: libexif/olympus/mnote-olympus-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:503
+#, c-format
+msgid "Internal error (unknown value %hi)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:441
+#: libexif/olympus/mnote-olympus-entry.c:511
+#, c-format
+msgid "Unknown value %hi"
+msgstr "Неизвестное значение %hi"
+
+#: libexif/olympus/mnote-olympus-entry.c:536
+#: libexif/olympus/mnote-olympus-entry.c:556
+#, c-format
+msgid "Unknown %hu"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:553
+msgid "2 sec."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:592
+#, fuzzy
+msgid "Fast"
+msgstr "быстрый"
+
+#: libexif/olympus/mnote-olympus-entry.c:696
+msgid "Automatic"
+msgstr "Автоматический"
+
+#: libexif/olympus/mnote-olympus-entry.c:726
+#, c-format
+msgid "Manual: %liK"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:729
+#, fuzzy
+msgid "Manual: unknown"
+msgstr "Ручной: Неизвестно"
+
+#: libexif/olympus/mnote-olympus-entry.c:735
+msgid "One-touch"
+msgstr "One-touch"
+
+#: libexif/olympus/mnote-olympus-entry.c:791
+#: libexif/olympus/mnote-olympus-entry.c:801
+msgid "Infinite"
+msgstr "Бесконечный"
+
+#: libexif/olympus/mnote-olympus-entry.c:809
+#, c-format
+msgid "%i bytes unknown data: "
+msgstr "%i байт неизвестных данных: "
+
+#: libexif/olympus/mnote-olympus-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:53
+msgid "ISO Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:39
+msgid "Color Mode (?)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:42
+msgid "Image Sharpening"
+msgstr "Резкость изображения"
+
+#: libexif/olympus/mnote-olympus-tag.c:44
+msgid "Flash Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:46
+msgid "White Balance Fine Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:47
+msgid "White Balance RB"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:49
+msgid "ISO Selection"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Preview Image IFD"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Offset of the preview image directory (IFD) inside the file."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:51
+msgid "Exposurediff ?"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:54
+msgid "Image Boundary"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:56
+msgid "Flash Exposure Bracket Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:57
+msgid "Exposure Bracket Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:58
+#: libexif/olympus/mnote-olympus-tag.c:96
+msgid "Image Adjustment"
+msgstr "Подстройка изображения"
+
+#: libexif/olympus/mnote-olympus-tag.c:59
+msgid "Tone Compensation"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:60
+msgid "Adapter"
+msgstr "Адаптер"
+
+#: libexif/olympus/mnote-olympus-tag.c:62
+msgid "Lens"
+msgstr "Объектив"
+
+#: libexif/olympus/mnote-olympus-tag.c:63
+#: libexif/olympus/mnote-olympus-tag.c:135
+#: libexif/olympus/mnote-olympus-tag.c:185
+msgid "Manual Focus Distance"
+msgstr "Расстояние ручного фокуса"
+
+#: libexif/olympus/mnote-olympus-tag.c:65
+msgid "Flash Used"
+msgstr "Вспышка сработала"
+
+#: libexif/olympus/mnote-olympus-tag.c:66
+msgid "AF Focus Position"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:67
+msgid "Bracketing"
+msgstr "Брекетинг"
+
+#: libexif/olympus/mnote-olympus-tag.c:69
+msgid "Lens F Stops"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:70
+msgid "Contrast Curve"
+msgstr "Кривая контраста"
+
+#: libexif/olympus/mnote-olympus-tag.c:71
+#: libexif/olympus/mnote-olympus-tag.c:95
+#: libexif/pentax/mnote-pentax-tag.c:134
+msgid "Color Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:72
+msgid "Light Type"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:74
+msgid "Hue Adjustment"
+msgstr "Подстройка оттенка"
+
+#: libexif/olympus/mnote-olympus-tag.c:76
+#: libexif/olympus/mnote-olympus-tag.c:163
+#: libexif/pentax/mnote-pentax-tag.c:108
+msgid "Noise Reduction"
+msgstr "Подавление шума"
+
+#: libexif/olympus/mnote-olympus-tag.c:79
+msgid "Sensor Pixel Size"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+#, fuzzy
+msgid "Image Data Size"
+msgstr "Размер изображения"
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Size of compressed image data in bytes."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:84
+msgid "Total Number of Pictures Taken"
+msgstr "Общее количество снятых фотографий"
+
+#: libexif/olympus/mnote-olympus-tag.c:86
+msgid "Optimize Image"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:88
+msgid "Vari Program"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:89
+msgid "Capture Editor Data"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:90
+msgid "Capture Editor Version"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:97
+#: libexif/olympus/mnote-olympus-tag.c:183
+msgid "CCD Sensitivity"
+msgstr "Чувствительность CCD"
+
+#: libexif/olympus/mnote-olympus-tag.c:99
+msgid "Focus"
+msgstr "Фокус"
+
+#: libexif/olympus/mnote-olympus-tag.c:102
+msgid "Converter"
+msgstr "Преобразователь"
+
+#: libexif/olympus/mnote-olympus-tag.c:105
+msgid "Thumbnail Image"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:106
+msgid "Speed/Sequence/Panorama Direction"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:109
+#, fuzzy
+msgid "Black & White Mode"
+msgstr "Чёрно-белый"
+
+#: libexif/olympus/mnote-olympus-tag.c:111
+msgid "Focal Plane Diagonal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:112
+msgid "Lens Distortion Parameters"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:114
+msgid "Info"
+msgstr "Инфо"
+
+#: libexif/olympus/mnote-olympus-tag.c:115
+msgid "Camera ID"
+msgstr "ID камеры"
+
+#: libexif/olympus/mnote-olympus-tag.c:116
+msgid "Precapture Frames"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:117
+msgid "White Board"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:118
+msgid "One Touch White Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:119
+msgid "White Balance Bracket"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:120
+#: libexif/pentax/mnote-pentax-tag.c:123
+msgid "White Balance Bias"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:121
+msgid "Data Dump"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:124
+msgid "ISO Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:125
+msgid "Aperture Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:126
+msgid "Brightness Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:128
+msgid "Flash Device"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:130
+msgid "Sensor Temperature"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:131
+msgid "Lens Temperature"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:132
+msgid "Light Condition"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:136
+msgid "Zoom Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:137
+msgid "Focus Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:138
+msgid "Sharpness Setting"
+msgstr "Настройка резкости"
+
+#: libexif/olympus/mnote-olympus-tag.c:139
+msgid "Flash Charge Level"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:140
+msgid "Color Matrix"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:141
+msgid "Black Level"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:142
+msgid "White Balance Setting"
+msgstr "Настройка баланса белого"
+
+#: libexif/olympus/mnote-olympus-tag.c:143
+#: libexif/pentax/mnote-pentax-tag.c:87
+msgid "Red Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:144
+#: libexif/pentax/mnote-pentax-tag.c:86
+msgid "Blue Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:145
+msgid "Color Matrix Number"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:147
+msgid "Flash Exposure Comp"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:148
+msgid "Internal Flash Table"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:149
+msgid "External Flash G Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:150
+msgid "External Flash Bounce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:151
+msgid "External Flash Zoom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:152
+msgid "External Flash Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:153
+msgid "Contrast Setting"
+msgstr "Настройка контраста"
+
+#: libexif/olympus/mnote-olympus-tag.c:154
+msgid "Sharpness Factor"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:155
+msgid "Color Control"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:156
+msgid "Olympus Image Width"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:157
+msgid "Olympus Image Height"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:158
+msgid "Scene Detect"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:159
+msgid "Compression Ratio"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:160
+msgid "Preview Image Valid"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:161
+msgid "AF Result"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:162
+msgid "CCD Scan Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:164
+msgid "Infinity Lens Step"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:165
+msgid "Near Lens Step"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:166
+msgid "Light Value Center"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:167
+msgid "Light Value Periphery"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:170
+msgid "Sequential Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:171
+msgid "Wide Range"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:172
+msgid "Color Adjustment Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:174
+msgid "Quick Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:176
+msgid "Voice Memo"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:177
+msgid "Record Shutter Release"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:178
+msgid "Flicker Reduce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:179
+msgid "Optical Zoom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:181
+msgid "Light Source Special"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:182
+msgid "Resaved"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:184
+msgid "Scene Select"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:186
+msgid "Sequence Shot Interval"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:189
+msgid "Epson Image Width"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:190
+msgid "Epson Image Height"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:191
+msgid "Epson Software Version"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:80
+#: libexif/pentax/mnote-pentax-entry.c:134
+msgid "Multi-exposure"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:83
+#: libexif/pentax/mnote-pentax-entry.c:137
+msgid "Good"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:84
+#: libexif/pentax/mnote-pentax-entry.c:138
+msgid "Better"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:92
+msgid "Flash on"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:140
+msgid "TIFF"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:150
+msgid "2560x1920 or 2304x1728"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:156
+msgid "2304x1728 or 2592x1944"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:158
+msgid "2816x2212 or 2816x2112"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:171
+msgid "Surf & snow"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:172
+#, fuzzy
+msgid "Sunset or candlelight"
+msgstr "Яркая лампа накаливания"
+
+#: libexif/pentax/mnote-pentax-entry.c:173
+msgid "Autumn"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:178
+#, fuzzy
+msgid "Self portrait"
+msgstr "Портрет"
+
+#: libexif/pentax/mnote-pentax-entry.c:179
+msgid "Illustrations"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:180
+#, fuzzy
+msgid "Digital filter"
+msgstr "Цифровой макрорежим"
+
+#: libexif/pentax/mnote-pentax-entry.c:182
+msgid "Food"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:183
+#, fuzzy
+msgid "Green mode"
+msgstr "Режим замера"
+
+#: libexif/pentax/mnote-pentax-entry.c:184
+#, fuzzy
+msgid "Light pet"
+msgstr "Источник света"
+
+#: libexif/pentax/mnote-pentax-entry.c:185
+msgid "Dark pet"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:186
+msgid "Medium pet"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:188
+#: libexif/pentax/mnote-pentax-entry.c:296
+msgid "Candlelight"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:189
+msgid "Natural skin tone"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:190
+msgid "Synchro sound record"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:191
+msgid "Frame composite"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:194
+#, fuzzy
+msgid "Auto, did not fire"
+msgstr "Вспышка не сработала"
+
+#: libexif/pentax/mnote-pentax-entry.c:196
+#, fuzzy
+msgid "Auto, did not fire, red-eye reduction"
+msgstr "Авто + подавление эффекта красных глаз"
+
+#: libexif/pentax/mnote-pentax-entry.c:197
+#, fuzzy
+msgid "Auto, fired"
+msgstr "Автобрекетирование"
+
+#: libexif/pentax/mnote-pentax-entry.c:199
+#, fuzzy
+msgid "Auto, fired, red-eye reduction"
+msgstr "Авто + подавление эффекта красных глаз"
+
+#: libexif/pentax/mnote-pentax-entry.c:201
+msgid "On, wireless"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:202
+msgid "On, soft"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:203
+msgid "On, slow-sync"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:204
+#, fuzzy
+msgid "On, slow-sync, red-eye reduction"
+msgstr "Вкл + подавление эффекта красных глаз"
+
+#: libexif/pentax/mnote-pentax-entry.c:205
+#, fuzzy
+msgid "On, trailing-curtain sync"
+msgstr "Синхронизация по второй шторке"
+
+#: libexif/pentax/mnote-pentax-entry.c:213
+msgid "AF-S"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:214
+msgid "AF-C"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:217
+msgid "Upper-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:218
+msgid "Top"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:219
+msgid "Upper-right"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:221
+msgid "Mid-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:223
+msgid "Mid-right"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:225
+msgid "Lower-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:226
+msgid "Bottom"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:227
+msgid "Lower-right"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:228
+#, fuzzy
+msgid "Fixed center"
+msgstr "Ясная погода"
+
+#: libexif/pentax/mnote-pentax-entry.c:232
+msgid "Multiple"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:234
+msgid "Top-center"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:240
+msgid "Bottom-center"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:257
+#, fuzzy
+msgid "User selected"
+msgstr "Выбранная автоматически"
+
+#: libexif/pentax/mnote-pentax-entry.c:282
+msgid "3008x2008 or 3040x2024"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:293
+#, fuzzy
+msgid "Digital filter?"
+msgstr "Цифровой макрорежим"
+
+#: libexif/pentax/mnote-pentax-entry.c:374
+#: libexif/pentax/mnote-pentax-entry.c:383
+#, c-format
+msgid "Internal error (unknown value %i %i)"
+msgstr "Внутренняя ошибка (неизвестное значение %i %i)"
+
+#: libexif/pentax/mnote-pentax-tag.c:35 libexif/pentax/mnote-pentax-tag.c:63
+msgid "Capture Mode"
+msgstr "Режим захвата"
+
+#: libexif/pentax/mnote-pentax-tag.c:36 libexif/pentax/mnote-pentax-tag.c:70
+#: libexif/pentax/mnote-pentax-tag.c:129
+msgid "Quality Level"
+msgstr "Уровень качества"
+
+#: libexif/pentax/mnote-pentax-tag.c:54
+#, fuzzy
+msgid "ISO Speed"
+msgstr "Скорость ISO"
+
+#: libexif/pentax/mnote-pentax-tag.c:56
+msgid "Colors"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:59
+msgid "PrintIM Settings"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:60 libexif/pentax/mnote-pentax-tag.c:131
+msgid "Time Zone"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:61
+msgid "Daylight Savings"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:64
+msgid "Preview Size"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:65
+msgid "Preview Length"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:66 libexif/pentax/mnote-pentax-tag.c:122
+msgid "Preview Start"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:67
+msgid "Model Identification"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:68
+msgid "Date"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:69
+msgid "Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:75
+msgid "AF Point Selected"
+msgstr "Выбранная точка AF point"
+
+#: libexif/pentax/mnote-pentax-tag.c:76
+msgid "Auto AF Point"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:77
+msgid "Focus Position"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:80
+msgid "ISO Number"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:83
+msgid "Auto Bracketing"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:85
+msgid "White Balance Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:93
+msgid "World Time Location"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:94
+msgid "Hometown City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:95
+msgid "Destination City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Hometown DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Home Daylight Savings Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination Daylight Savings Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:99
+msgid "Image Processing"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:100
+msgid "Picture Mode (2)"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:103
+msgid "Image Area Offset"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:104
+msgid "Raw Image Size"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:105
+msgid "Autofocus Points Used"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:107
+msgid "Camera Temperature"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:110
+msgid "Image Tone"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:111
+msgid "Shake Reduction Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:112
+msgid "Black Point"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:114
+msgid "AE Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:115
+msgid "Lens Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:116
+msgid "Flash Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:117
+msgid "Camera Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:118
+msgid "Battery Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:119
+msgid "Hometown City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:120
+msgid "Destination City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Object Distance"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Distance of photographed object in millimeters."
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:126
+msgid "Flash Distance"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:132
+msgid "Bestshot Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:133
+msgid "CCS ISO Sensitivity"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:135
+msgid "Enhancement"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:136
+msgid "Finer"
+msgstr ""
+
+#: test/nls/test-nls.c:20 test/nls/test-nls.c:23 test/nls/test-nls.c:24
+msgid "[DO_NOT_TRANSLATE_THIS_MARKER]"
+msgstr ""
+
+#~ msgid "Daylight Fluorescent"
+#~ msgstr "Флуоресцентная лампа дневного света"
+
+#~ msgid "Center-Weighted Average"
+#~ msgstr "Центрально-взвешенный средний"
+
+#~ msgid "flash"
+#~ msgstr "вспышка"
+
+#~ msgid "%.02lf EV"
+#~ msgstr "%.02lf EV"
+
+#~ msgid "y-Resolution"
+#~ msgstr "Разрешение по Y"
+
+#~ msgid "Shutter speed"
+#~ msgstr "Скорость срабатывания затвора"
+
+#~ msgid "Macro mode"
+#~ msgstr "Режим макросъёмки"
+
+#~ msgid "normal"
+#~ msgstr "обычный"
+
+#~ msgid "unknown"
+#~ msgstr "неизвестно"
+
+#~ msgid "panorama"
+#~ msgstr "панорама"
+
+#~ msgid "left to right"
+#~ msgstr "слева направо"
+
+#~ msgid "right to left"
+#~ msgstr "справа налево"
+
+#~ msgid "bottom to top"
+#~ msgstr "снизу вверх"
+
+#~ msgid "top to bottom"
+#~ msgstr "сверху вниз"
+
+#~ msgid "Noisereduction"
+#~ msgstr "Подавление шума"
+
+#~ msgid "Red-eye Reduction"
+#~ msgstr "Подавление эффекта красных глаз"
+
+#~ msgid "Night Scene"
+#~ msgstr "Ночная съёмка"
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/sk.gmo b/framework/modules/c_LibExifModule/libexif-0.6.20/po/sk.gmo
new file mode 100644
index 0000000000000000000000000000000000000000..d74f4dd7c2d0920023b8d9f19829a94e8edd2f7e
Binary files /dev/null and b/framework/modules/c_LibExifModule/libexif-0.6.20/po/sk.gmo differ
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/sk.po b/framework/modules/c_LibExifModule/libexif-0.6.20/po/sk.po
new file mode 100644
index 0000000000000000000000000000000000000000..d7a132e34c5fc471c2bbb7ef7b2958d1d53c3640
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/sk.po
@@ -0,0 +1,6257 @@
+# translation of libexif to Slovak
+# Copyright (C) 2007 Lutz Müller and others
+# This file is distributed under the same license as the libexif package.
+# Ivan Masár <helix84@centrum.sk>, 2007, 2008, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: libexif 0.6.19\n"
+"Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-12-15 22:14-0800\n"
+"PO-Revision-Date: 2009-12-31 03:51+0100\n"
+"Last-Translator: Ivan Masár <helix84@centrum.sk>\n"
+"Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: libexif/canon/mnote-canon-entry.c:40 libexif/fuji/mnote-fuji-entry.c:35
+#: libexif/olympus/mnote-olympus-entry.c:37
+#: libexif/pentax/mnote-pentax-entry.c:39
+#, c-format
+msgid "Invalid format '%s', expected '%s'."
+msgstr "Neplatný formát „%s“, očakával sa „%s“."
+
+#: libexif/canon/mnote-canon-entry.c:52 libexif/fuji/mnote-fuji-entry.c:47
+#: libexif/olympus/mnote-olympus-entry.c:62
+#: libexif/pentax/mnote-pentax-entry.c:51
+#, c-format
+msgid "Invalid number of components (%i, expected %i)."
+msgstr "Neplatný počet zložiek (%i, bolo očakávaných %i)."
+
+#: libexif/canon/mnote-canon-entry.c:61
+#: libexif/olympus/mnote-olympus-entry.c:72
+#: libexif/pentax/mnote-pentax-entry.c:61
+#, c-format
+msgid "Invalid number of components (%i, expected %i or %i)."
+msgstr "Neplatný počet zložiek (%i, bolo očakávaných %i alebo %i)."
+
+# exif-subjectdistancerange-1
+#: libexif/canon/mnote-canon-entry.c:76 libexif/canon/mnote-canon-entry.c:130
+#: libexif/canon/mnote-canon-entry.c:182 libexif/exif-entry.c:796
+#: libexif/olympus/mnote-olympus-entry.c:196
+#: libexif/olympus/mnote-olympus-tag.c:108
+#: libexif/pentax/mnote-pentax-entry.c:174
+#: libexif/pentax/mnote-pentax-entry.c:209
+#: libexif/pentax/mnote-pentax-entry.c:297
+msgid "Macro"
+msgstr "makro"
+
+#: libexif/canon/mnote-canon-entry.c:77 libexif/canon/mnote-canon-entry.c:79
+#: libexif/canon/mnote-canon-entry.c:157 libexif/canon/mnote-canon-entry.c:160
+#: libexif/canon/mnote-canon-entry.c:163 libexif/exif-entry.c:674
+#: libexif/exif-entry.c:677 libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/exif-entry.c:745 libexif/fuji/mnote-fuji-entry.c:64
+#: libexif/olympus/mnote-olympus-entry.c:118
+#: libexif/olympus/mnote-olympus-entry.c:195
+#: libexif/olympus/mnote-olympus-entry.c:203
+#: libexif/olympus/mnote-olympus-entry.c:213
+#: libexif/olympus/mnote-olympus-entry.c:586
+#: libexif/pentax/mnote-pentax-entry.c:105
+#: libexif/pentax/mnote-pentax-entry.c:110
+#: libexif/pentax/mnote-pentax-entry.c:115
+#: libexif/pentax/mnote-pentax-entry.c:208
+msgid "Normal"
+msgstr "normálny"
+
+#: libexif/canon/mnote-canon-entry.c:78
+msgid "Economy"
+msgstr "ekonomický"
+
+#: libexif/canon/mnote-canon-entry.c:80
+msgid "Fine"
+msgstr "jemný"
+
+#: libexif/canon/mnote-canon-entry.c:81 libexif/fuji/mnote-fuji-entry.c:178
+#: libexif/pentax/mnote-pentax-entry.c:141
+msgid "RAW"
+msgstr "RAW"
+
+#: libexif/canon/mnote-canon-entry.c:82
+msgid "Superfine"
+msgstr "superjemný"
+
+#: libexif/canon/mnote-canon-entry.c:83 libexif/canon/mnote-canon-entry.c:301
+#: libexif/canon/mnote-canon-entry.c:304 libexif/canon/mnote-canon-entry.c:312
+#: libexif/canon/mnote-canon-entry.c:345 libexif/canon/mnote-canon-entry.c:357
+#: libexif/canon/mnote-canon-entry.c:370 libexif/canon/mnote-canon-entry.c:372
+#: libexif/canon/mnote-canon-entry.c:574 libexif/canon/mnote-canon-entry.c:671
+#: libexif/fuji/mnote-fuji-entry.c:70 libexif/fuji/mnote-fuji-entry.c:103
+#: libexif/fuji/mnote-fuji-entry.c:107 libexif/fuji/mnote-fuji-entry.c:115
+#: libexif/fuji/mnote-fuji-entry.c:142
+#: libexif/olympus/mnote-olympus-entry.c:178
+#: libexif/olympus/mnote-olympus-entry.c:186
+#: libexif/olympus/mnote-olympus-entry.c:251
+#: libexif/olympus/mnote-olympus-entry.c:530
+#: libexif/olympus/mnote-olympus-entry.c:547
+#: libexif/pentax/mnote-pentax-entry.c:195
+#: libexif/pentax/mnote-pentax-entry.c:260
+msgid "Off"
+msgstr "vypnutý"
+
+#: libexif/canon/mnote-canon-entry.c:84 libexif/canon/mnote-canon-entry.c:167
+#: libexif/canon/mnote-canon-entry.c:180 libexif/canon/mnote-canon-entry.c:328
+#: libexif/canon/mnote-canon-entry.c:400 libexif/fuji/mnote-fuji-entry.c:73
+#: libexif/fuji/mnote-fuji-entry.c:101 libexif/fuji/mnote-fuji-entry.c:111
+#: libexif/fuji/mnote-fuji-entry.c:119
+#: libexif/olympus/mnote-olympus-entry.c:131
+#: libexif/olympus/mnote-olympus-entry.c:183
+#: libexif/olympus/mnote-olympus-entry.c:199
+#: libexif/olympus/mnote-olympus-entry.c:244
+#: libexif/pentax/mnote-pentax-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:88
+#: libexif/pentax/mnote-pentax-entry.c:91
+#: libexif/pentax/mnote-pentax-entry.c:97
+#: libexif/pentax/mnote-pentax-entry.c:131
+#: libexif/pentax/mnote-pentax-entry.c:229
+#: libexif/pentax/mnote-pentax-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:290
+msgid "Auto"
+msgstr "auto"
+
+#: libexif/canon/mnote-canon-entry.c:85 libexif/canon/mnote-canon-entry.c:302
+#: libexif/canon/mnote-canon-entry.c:347 libexif/canon/mnote-canon-entry.c:361
+#: libexif/canon/mnote-canon-entry.c:371 libexif/fuji/mnote-fuji-entry.c:102
+#: libexif/fuji/mnote-fuji-entry.c:108 libexif/fuji/mnote-fuji-entry.c:116
+#: libexif/fuji/mnote-fuji-entry.c:143
+#: libexif/olympus/mnote-olympus-entry.c:179
+#: libexif/olympus/mnote-olympus-entry.c:533
+#: libexif/olympus/mnote-olympus-entry.c:550
+#: libexif/pentax/mnote-pentax-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:261
+msgid "On"
+msgstr "zapnutý"
+
+#: libexif/canon/mnote-canon-entry.c:86 libexif/fuji/mnote-fuji-entry.c:104
+#: libexif/olympus/mnote-olympus-entry.c:184
+#: libexif/pentax/mnote-pentax-entry.c:94
+msgid "Red-eye reduction"
+msgstr "korekcia červených očí"
+
+#: libexif/canon/mnote-canon-entry.c:87
+msgid "Slow synchro"
+msgstr "pomalá synchronizácia"
+
+#: libexif/canon/mnote-canon-entry.c:88
+#, fuzzy
+msgid "Auto, red-eye reduction"
+msgstr "auto + korekcia červených očí"
+
+#: libexif/canon/mnote-canon-entry.c:89
+#: libexif/pentax/mnote-pentax-entry.c:200
+#, fuzzy
+msgid "On, red-eye reduction"
+msgstr "zapnutý, korekcia červených očí"
+
+#: libexif/canon/mnote-canon-entry.c:90
+msgid "External flash"
+msgstr "externý blesk"
+
+#: libexif/canon/mnote-canon-entry.c:91 libexif/canon/mnote-canon-entry.c:101
+#: libexif/canon/mnote-canon-entry.c:294
+msgid "Single"
+msgstr "jediný"
+
+#: libexif/canon/mnote-canon-entry.c:92 libexif/canon/mnote-canon-entry.c:102
+#: libexif/canon/mnote-canon-entry.c:295
+msgid "Continuous"
+msgstr "spojitý"
+
+#: libexif/canon/mnote-canon-entry.c:93
+msgid "Movie"
+msgstr "film"
+
+#: libexif/canon/mnote-canon-entry.c:94
+msgid "Continuous, speed priority"
+msgstr "spojitý, priorita pre rýchlosť"
+
+#: libexif/canon/mnote-canon-entry.c:95
+msgid "Continuous, low"
+msgstr "spojitý, nízky"
+
+#: libexif/canon/mnote-canon-entry.c:96
+msgid "Continuous, high"
+msgstr "spojitý, vysoký"
+
+# AF = automatické zaostrenie
+#: libexif/canon/mnote-canon-entry.c:97
+msgid "One-shot AF"
+msgstr "automatické zaostrenie pre jeden záber"
+
+# AF = automatické zaostrenie
+#: libexif/canon/mnote-canon-entry.c:98
+msgid "AI servo AF"
+msgstr "inteligentné servo zaostrenie"
+
+# AF = automatické zaostrenie
+#: libexif/canon/mnote-canon-entry.c:99
+msgid "AI focus AF"
+msgstr "inteligentné zaostrenie"
+
+#: libexif/canon/mnote-canon-entry.c:100 libexif/canon/mnote-canon-entry.c:103
+msgid "Manual focus"
+msgstr "ručné zaostrenie"
+
+#: libexif/canon/mnote-canon-entry.c:104 libexif/canon/mnote-canon-entry.c:132
+#: libexif/canon/mnote-canon-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:212
+msgid "Pan focus"
+msgstr "posúvať zaostrenie"
+
+#: libexif/canon/mnote-canon-entry.c:105
+msgid "JPEG"
+msgstr "JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:106
+msgid "CRW+THM"
+msgstr "CRW+THM"
+
+#: libexif/canon/mnote-canon-entry.c:107
+msgid "AVI+THM"
+msgstr "AVI+THM"
+
+#: libexif/canon/mnote-canon-entry.c:108
+msgid "TIF"
+msgstr "TIF"
+
+#: libexif/canon/mnote-canon-entry.c:109
+msgid "TIF+JPEG"
+msgstr "TIF+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:110
+msgid "CR2"
+msgstr "CR2"
+
+#: libexif/canon/mnote-canon-entry.c:111
+msgid "CR2+JPEG"
+msgstr "CR2+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:112
+msgid "Large"
+msgstr "veľký"
+
+#: libexif/canon/mnote-canon-entry.c:113
+msgid "Medium"
+msgstr "stredný"
+
+#: libexif/canon/mnote-canon-entry.c:114
+msgid "Small"
+msgstr "malý"
+
+#: libexif/canon/mnote-canon-entry.c:115
+msgid "Medium 1"
+msgstr "stredný 1"
+
+#: libexif/canon/mnote-canon-entry.c:116
+msgid "Medium 2"
+msgstr "stredný 2"
+
+#: libexif/canon/mnote-canon-entry.c:117
+msgid "Medium 3"
+msgstr "stredný 3"
+
+#: libexif/canon/mnote-canon-entry.c:118
+msgid "Postcard"
+msgstr "Pohľadnica"
+
+#: libexif/canon/mnote-canon-entry.c:119
+msgid "Widescreen"
+msgstr "Široká obrazovka"
+
+#: libexif/canon/mnote-canon-entry.c:120
+msgid "Full auto"
+msgstr "plná automatika"
+
+#: libexif/canon/mnote-canon-entry.c:121 libexif/canon/mnote-canon-entry.c:179
+#: libexif/canon/mnote-canon-entry.c:201 libexif/canon/mnote-canon-entry.c:285
+#: libexif/canon/mnote-canon-entry.c:392 libexif/exif-entry.c:744
+#: libexif/fuji/mnote-fuji-entry.c:112
+#: libexif/olympus/mnote-olympus-entry.c:90
+#: libexif/olympus/mnote-olympus-entry.c:200
+#: libexif/pentax/mnote-pentax-entry.c:79
+#: libexif/pentax/mnote-pentax-entry.c:102
+#: libexif/pentax/mnote-pentax-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:165
+#: libexif/pentax/mnote-pentax-entry.c:211
+#: libexif/pentax/mnote-pentax-entry.c:250
+msgid "Manual"
+msgstr "manuálny"
+
+# exif-scenecapturetype-1
+#: libexif/canon/mnote-canon-entry.c:122 libexif/canon/mnote-canon-entry.c:430
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:755
+#: libexif/fuji/mnote-fuji-entry.c:121 libexif/pentax/mnote-pentax-entry.c:167
+#: libexif/pentax/mnote-pentax-entry.c:301
+msgid "Landscape"
+msgstr "krajinka"
+
+#: libexif/canon/mnote-canon-entry.c:123
+msgid "Fast shutter"
+msgstr "rýchla uzávierka"
+
+#: libexif/canon/mnote-canon-entry.c:124
+msgid "Slow shutter"
+msgstr "pomalá uzávierka"
+
+#: libexif/canon/mnote-canon-entry.c:125 libexif/fuji/mnote-fuji-entry.c:123
+#: libexif/olympus/mnote-olympus-entry.c:254
+msgid "Night"
+msgstr "nočný"
+
+#: libexif/canon/mnote-canon-entry.c:126
+msgid "Grayscale"
+msgstr "odtiene šedej"
+
+#: libexif/canon/mnote-canon-entry.c:127 libexif/canon/mnote-canon-entry.c:308
+#: libexif/pentax/mnote-pentax-entry.c:128
+msgid "Sepia"
+msgstr "sépia"
+
+# exif-scenecapturetype-2
+#: libexif/canon/mnote-canon-entry.c:128 libexif/canon/mnote-canon-entry.c:429
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:753
+#: libexif/fuji/mnote-fuji-entry.c:120 libexif/pentax/mnote-pentax-entry.c:166
+#: libexif/pentax/mnote-pentax-entry.c:291
+#: libexif/pentax/mnote-pentax-entry.c:294
+#: libexif/pentax/mnote-pentax-entry.c:300
+msgid "Portrait"
+msgstr "portrét"
+
+#: libexif/canon/mnote-canon-entry.c:129 libexif/fuji/mnote-fuji-entry.c:122
+msgid "Sports"
+msgstr "šport"
+
+#: libexif/canon/mnote-canon-entry.c:131 libexif/canon/mnote-canon-entry.c:309
+#: libexif/canon/mnote-canon-entry.c:335 libexif/canon/mnote-canon-entry.c:407
+#: libexif/fuji/mnote-fuji-entry.c:89 libexif/pentax/mnote-pentax-entry.c:127
+msgid "Black & white"
+msgstr "čiernobiely"
+
+#: libexif/canon/mnote-canon-entry.c:133 libexif/canon/mnote-canon-entry.c:305
+msgid "Vivid"
+msgstr "živé"
+
+#: libexif/canon/mnote-canon-entry.c:134 libexif/canon/mnote-canon-entry.c:306
+#: libexif/canon/mnote-canon-entry.c:431
+msgid "Neutral"
+msgstr "neutrálny"
+
+#: libexif/canon/mnote-canon-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:93
+msgid "Flash off"
+msgstr "blesk vypnutý"
+
+#: libexif/canon/mnote-canon-entry.c:136
+msgid "Long shutter"
+msgstr "pomalá uzávierka"
+
+#: libexif/canon/mnote-canon-entry.c:137 libexif/canon/mnote-canon-entry.c:188
+#: libexif/olympus/mnote-olympus-entry.c:171
+msgid "Super macro"
+msgstr "super makro"
+
+#: libexif/canon/mnote-canon-entry.c:138
+msgid "Foliage"
+msgstr "zeleň"
+
+#: libexif/canon/mnote-canon-entry.c:139
+msgid "Indoor"
+msgstr "vnútri"
+
+#: libexif/canon/mnote-canon-entry.c:140 libexif/fuji/mnote-fuji-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:175
+msgid "Fireworks"
+msgstr "ohňostroj"
+
+#: libexif/canon/mnote-canon-entry.c:141 libexif/fuji/mnote-fuji-entry.c:133
+msgid "Beach"
+msgstr "pláž"
+
+#: libexif/canon/mnote-canon-entry.c:142 libexif/canon/mnote-canon-entry.c:344
+#: libexif/canon/mnote-canon-entry.c:416 libexif/fuji/mnote-fuji-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:292
+#: libexif/pentax/mnote-pentax-entry.c:298
+msgid "Underwater"
+msgstr "pod vodou"
+
+#: libexif/canon/mnote-canon-entry.c:143 libexif/fuji/mnote-fuji-entry.c:134
+msgid "Snow"
+msgstr "sneh"
+
+#: libexif/canon/mnote-canon-entry.c:144
+msgid "Kids & pets"
+msgstr "deti & zvieratá"
+
+# exif-scenecapturetype-3
+#: libexif/canon/mnote-canon-entry.c:145
+msgid "Night snapshot"
+msgstr "nočná scéna"
+
+#: libexif/canon/mnote-canon-entry.c:146
+msgid "Digital macro"
+msgstr "digitálne makro"
+
+#: libexif/canon/mnote-canon-entry.c:147
+msgid "My colors"
+msgstr "moje farby"
+
+#: libexif/canon/mnote-canon-entry.c:148
+msgid "Still image"
+msgstr "stabilný obraz"
+
+# exif-colorspace
+#: libexif/canon/mnote-canon-entry.c:149
+msgid "Color accent"
+msgstr "farebný prízvuk"
+
+#: libexif/canon/mnote-canon-entry.c:150
+msgid "Color swap"
+msgstr "Výmena farieb"
+
+#: libexif/canon/mnote-canon-entry.c:151
+msgid "Aquarium"
+msgstr "Akvárium"
+
+#: libexif/canon/mnote-canon-entry.c:152
+msgid "ISO 3200"
+msgstr "ISO 3200"
+
+#: libexif/canon/mnote-canon-entry.c:153 libexif/canon/mnote-canon-entry.c:348
+#: libexif/canon/mnote-canon-entry.c:365 libexif/canon/mnote-canon-entry.c:417
+#: libexif/olympus/mnote-olympus-entry.c:189
+#: libexif/olympus/mnote-olympus-entry.c:226
+#: libexif/olympus/mnote-olympus-entry.c:451
+#: libexif/pentax/mnote-pentax-entry.c:242
+msgid "None"
+msgstr "žiadny"
+
+#: libexif/canon/mnote-canon-entry.c:154
+msgid "2x"
+msgstr "2x"
+
+#: libexif/canon/mnote-canon-entry.c:155
+msgid "4x"
+msgstr "4x"
+
+#: libexif/canon/mnote-canon-entry.c:156 libexif/exif-entry.c:702
+#: libexif/exif-entry.c:732
+msgid "Other"
+msgstr "iný"
+
+#: libexif/canon/mnote-canon-entry.c:158 libexif/canon/mnote-canon-entry.c:161
+#: libexif/canon/mnote-canon-entry.c:164 libexif/canon/mnote-canon-entry.c:398
+#: libexif/fuji/mnote-fuji-entry.c:86 libexif/pentax/mnote-pentax-entry.c:112
+#: libexif/pentax/mnote-pentax-entry.c:117
+msgid "High"
+msgstr "vysoký"
+
+#: libexif/canon/mnote-canon-entry.c:159 libexif/canon/mnote-canon-entry.c:162
+#: libexif/canon/mnote-canon-entry.c:165 libexif/canon/mnote-canon-entry.c:396
+#: libexif/pentax/mnote-pentax-entry.c:111
+#: libexif/pentax/mnote-pentax-entry.c:116
+msgid "Low"
+msgstr "názky"
+
+#: libexif/canon/mnote-canon-entry.c:166
+msgid "Auto high"
+msgstr "automat. vysoký"
+
+#: libexif/canon/mnote-canon-entry.c:168
+msgid "50"
+msgstr "50"
+
+#: libexif/canon/mnote-canon-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:120
+#: libexif/pentax/mnote-pentax-entry.c:122
+msgid "100"
+msgstr "&"
+
+#: libexif/canon/mnote-canon-entry.c:170
+#: libexif/pentax/mnote-pentax-entry.c:121
+#: libexif/pentax/mnote-pentax-entry.c:123
+msgid "200"
+msgstr "&"
+
+#: libexif/canon/mnote-canon-entry.c:171
+msgid "400"
+msgstr "&"
+
+#: libexif/canon/mnote-canon-entry.c:172
+msgid "800"
+msgstr "800"
+
+#: libexif/canon/mnote-canon-entry.c:173
+msgid "Default"
+msgstr "štandardný"
+
+# exif-meteringmode-3
+#: libexif/canon/mnote-canon-entry.c:174 libexif/exif-entry.c:698
+msgid "Spot"
+msgstr "bod"
+
+#: libexif/canon/mnote-canon-entry.c:175 libexif/exif-entry.c:696
+msgid "Average"
+msgstr "priemer"
+
+#: libexif/canon/mnote-canon-entry.c:176
+msgid "Evaluative"
+msgstr "vyhodnocujúci"
+
+# exif-meteringmode-6
+#: libexif/canon/mnote-canon-entry.c:177 libexif/exif-entry.c:701
+msgid "Partial"
+msgstr "čiastočný"
+
+#: libexif/canon/mnote-canon-entry.c:178 libexif/exif-entry.c:697
+msgid "Center-weighted average"
+msgstr "vážený priemer"
+
+#: libexif/canon/mnote-canon-entry.c:181
+msgid "Not known"
+msgstr "neznáme"
+
+#: libexif/canon/mnote-canon-entry.c:183
+msgid "Very close"
+msgstr "veľmi zblízka"
+
+#: libexif/canon/mnote-canon-entry.c:184 libexif/exif-entry.c:797
+msgid "Close"
+msgstr "zblízka"
+
+#: libexif/canon/mnote-canon-entry.c:185
+msgid "Middle range"
+msgstr "stredný rozsah"
+
+#: libexif/canon/mnote-canon-entry.c:186
+msgid "Far range"
+msgstr "ďaleký rozsah"
+
+#: libexif/canon/mnote-canon-entry.c:189
+#: libexif/pentax/mnote-pentax-entry.c:210
+msgid "Infinity"
+msgstr "nekonečno"
+
+# AF = automatické zaostrenie
+#: libexif/canon/mnote-canon-entry.c:190
+msgid "Manual AF point selection"
+msgstr "Ručná voľba bodu automatického zaostrenia"
+
+#: libexif/canon/mnote-canon-entry.c:191 libexif/canon/mnote-canon-entry.c:349
+msgid "None (MF)"
+msgstr "žiadny (MF)"
+
+#: libexif/canon/mnote-canon-entry.c:192
+msgid "Auto-selected"
+msgstr "automatický výber"
+
+#: libexif/canon/mnote-canon-entry.c:193 libexif/canon/mnote-canon-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:224
+#: libexif/pentax/mnote-pentax-entry.c:238
+msgid "Right"
+msgstr "vpravo"
+
+#: libexif/canon/mnote-canon-entry.c:194 libexif/canon/mnote-canon-entry.c:351
+#: libexif/pentax/mnote-pentax-entry.c:222
+#: libexif/pentax/mnote-pentax-entry.c:237
+msgid "Center"
+msgstr "stred"
+
+#: libexif/canon/mnote-canon-entry.c:195 libexif/canon/mnote-canon-entry.c:353
+#: libexif/pentax/mnote-pentax-entry.c:220
+#: libexif/pentax/mnote-pentax-entry.c:236
+msgid "Left"
+msgstr "vľavo"
+
+# AF = automatické zaostrenie
+#: libexif/canon/mnote-canon-entry.c:196
+msgid "Auto AF point selection"
+msgstr "automatická voľba bodu zaostrenia"
+
+#: libexif/canon/mnote-canon-entry.c:197
+msgid "Easy shooting"
+msgstr "jednoduché fotenie"
+
+#: libexif/canon/mnote-canon-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:163
+msgid "Program"
+msgstr "program"
+
+#: libexif/canon/mnote-canon-entry.c:199
+msgid "Tv-priority"
+msgstr "Tv-priorita"
+
+#: libexif/canon/mnote-canon-entry.c:200
+msgid "Av-priority"
+msgstr "Av-priorita"
+
+#: libexif/canon/mnote-canon-entry.c:202
+msgid "A-DEP"
+msgstr "A-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:203
+msgid "M-DEP"
+msgstr "M-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:204
+msgid "Canon EF 50mm f/1.8"
+msgstr "Canon EF 50mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:205
+msgid "Canon EF 28mm f/2.8"
+msgstr "Canon EF 28mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:206
+msgid "Sigma UC Zoom 35-135mm f/4-5.6"
+msgstr "Sigma UC Zoom 35-135mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:207
+msgid "Tokina AF193-2 19-35mm f/3.5-4.5"
+msgstr "Tokina AF193-2 19-35mm f/3.5-4.5"
+
+#: libexif/canon/mnote-canon-entry.c:208
+msgid "Canon EF 100-300mm F5.6L"
+msgstr "Canon EF 100-300 mm F5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:209
+msgid "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+msgstr "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:210
+msgid "Canon EF 35mm f/2"
+msgstr "Canon EF 35mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:211
+msgid "Canon EF 15mm f/2.8"
+msgstr "Canon EF 15mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:212
+msgid "Canon EF 80-200mm f/2.8L"
+msgstr "Canon EF 80-200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:213
+#, fuzzy
+msgid "Tokina AT-X280AF PRO 28-80mm F2.8 Aspherical"
+msgstr "Tokina AT-X280AF PRO 28-80mm F2.8 ASFÉRICKÉ"
+
+#: libexif/canon/mnote-canon-entry.c:214
+msgid "Cosina 100mm f/3.5 Macro AF"
+msgstr "Cosina 100mm f/3.5 Macro AF"
+
+#: libexif/canon/mnote-canon-entry.c:215
+msgid "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+msgstr "Tamron AF asférický 28-200mm f/3.8-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:216
+msgid "Canon EF 50mm f/1.8 MkII"
+msgstr "Canon EF 50mm f/1.8 MkII"
+
+#: libexif/canon/mnote-canon-entry.c:217
+msgid "Tamron SP AF 300mm f/2.8 LD IF"
+msgstr "Tamron SP AF 300 mm f/2.8 LD IF"
+
+#: libexif/canon/mnote-canon-entry.c:218
+msgid "Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+msgstr "Canon EF 24 mm f/2.8 alebo Sigma 15 mm f/2.8 EX rybie oko"
+
+#: libexif/canon/mnote-canon-entry.c:219
+msgid "Canon EF 75-300mm f/4-5.6"
+msgstr "Canon EF 75-300mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:220
+msgid "Canon EF 28-80mm f/3.5-5.6"
+msgstr "Canon EF 28-80mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:221
+msgid "Canon EF 28-105mm f/4-5.6"
+msgstr "Canon EF 28-105 mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:222
+msgid "Canon EF-S 18-55mm f/3.5-5.6"
+msgstr "Canon EF-S 18-55 mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:223
+msgid "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+msgstr "Canon MP-E 65mm f/2.8 1-5x makro foto"
+
+#: libexif/canon/mnote-canon-entry.c:224
+msgid "Canon TS-E 24mm f/3.5L"
+msgstr "Canon TS-E 24mm f/3.5L"
+
+#: libexif/canon/mnote-canon-entry.c:225
+msgid "Canon TS-E 45mm f/2.8"
+msgstr "Canon TS-E 45 mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:226
+msgid "Canon TS-E 90mm f/2.8"
+msgstr "Canon TS-E 90 mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:227
+msgid "Canon EF 50mm f/1.0L"
+msgstr "Canon EF 50 mm f/1.0L"
+
+#: libexif/canon/mnote-canon-entry.c:228
+msgid "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+msgstr "Sigma 17-35mm f2.8-4 EX asférický HSM"
+
+#: libexif/canon/mnote-canon-entry.c:229
+msgid "Canon EF 600mm f/4L IS"
+msgstr "Canon EF 600 mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:230
+msgid "Canon EF 200mm f/1.8L"
+msgstr "Canon EF 200mm f/1.8L"
+
+#: libexif/canon/mnote-canon-entry.c:231
+msgid "Canon EF 300mm f/2.8L"
+msgstr "Canon EF 300mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:232
+msgid "Canon EF 85mm f/1.2L"
+msgstr "Canon EF 85 mm f/1.2L"
+
+#: libexif/canon/mnote-canon-entry.c:233
+msgid "Canon EF 400mm f/2.8L"
+msgstr "Canon EF 400mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:234
+msgid "Canon EF 500mm f/4.5L"
+msgstr "Canon EF 500mm f/4.5L"
+
+#: libexif/canon/mnote-canon-entry.c:235
+msgid "Canon EF 300mm f/2.8L IS"
+msgstr "Canon EF 300 mm f/2.8L IS"
+
+#: libexif/canon/mnote-canon-entry.c:236
+msgid "Canon EF 500mm f/4L IS"
+msgstr "Canon EF 500 mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:237
+msgid "Canon EF 100mm f/2"
+msgstr "Canon EF 100mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:238
+msgid "Sigma 20mm EX f/1.8"
+msgstr "Sigma 20mm EX f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:239
+msgid "Canon EF 200mm f/2.8L"
+msgstr "Canon EF 200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:240
+msgid "Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+msgstr "Sigma 10-20mm F4-5.6 alebo 12-24mm f/4.5-5.6 or 14mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:241
+msgid "Canon EF 35-350mm f/3.5-5.6L"
+msgstr "Canon EF 35-350mm f/3.5-5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:242
+msgid "Canon EF 85mm f/1.8 USM"
+msgstr "Canon EF 85mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:243
+msgid "Canon EF 28-105mm f/3.5-4.5 USM"
+msgstr "Canon EF 28-105mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:244
+msgid "Canon EF 20-35mm f/3.5-4.5 USM"
+msgstr "Canon EF 20-35mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:245
+msgid "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+msgstr "Canon EF 28-70mm f/2.8L alebo Sigma 24-70mm EX f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:246
+msgid "Canon EF 70-200mm f/2.8 L"
+msgstr "Canon EF 70-200mm f/2.8 L"
+
+#: libexif/canon/mnote-canon-entry.c:247
+msgid "Canon EF 70-200mm f/2.8 L + x1.4"
+msgstr "Canon EF 70-200mm f/2.8 L + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:248
+msgid "Canon EF 70-200mm f/2.8 L + x2"
+msgstr "Canon EF 70-200mm f/2.8 L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:249
+msgid "Canon EF 28mm f/1.8 USM"
+msgstr "Canon EF 28 mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:250
+msgid "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+msgstr "Sigma 15-30mm f/3.5-4.5 EX DG asférický"
+
+#: libexif/canon/mnote-canon-entry.c:251
+msgid "Canon EF 200mm f/2.8L II"
+msgstr "Canon EF 200mm f/2.8L II"
+
+#: libexif/canon/mnote-canon-entry.c:252
+msgid "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+msgstr "Canon EF 180mm makro f/3.5L or Sigma 180mm EX HSM makro f/3.5"
+
+#: libexif/canon/mnote-canon-entry.c:253
+msgid "Canon EF 135mm f/2L"
+msgstr "Canon EF 135mm f/2L"
+
+#: libexif/canon/mnote-canon-entry.c:254
+msgid "Canon EF 24-85mm f/3.5-4.5 USM"
+msgstr "Canon EF 24-85mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:255
+msgid "Canon EF 300mm f/4L IS"
+msgstr "Canon EF 300mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:256
+msgid "Canon EF 28-135mm f/3.5-5.6 IS"
+msgstr "Canon EF 28-135mm f/3.5-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:257
+msgid "Canon EF 35mm f/1.4L"
+msgstr "Canon EF 35mm f/1.4L"
+
+#: libexif/canon/mnote-canon-entry.c:258
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+msgstr "Canon EF 100-400 mm f/4.5-5.6L IS + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:259
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+
+#: libexif/canon/mnote-canon-entry.c:260
+msgid "Canon EF 100-400mm f/4.5-5.6L IS"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS"
+
+#: libexif/canon/mnote-canon-entry.c:261
+msgid "Canon EF 400mm f/2.8L + x2"
+msgstr "Canon EF 400 mm f/2.8L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:262
+msgid "Canon EF 70-200mm f/4L"
+msgstr "Canon EF 70-200mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:263
+msgid "Canon EF 100mm f/2.8 Macro"
+msgstr "Canon EF 100mm f/2.8 makro"
+
+#: libexif/canon/mnote-canon-entry.c:264
+msgid "Canon EF 400mm f/4 DO IS"
+msgstr "Canon EF 400mm f/4 DO IS"
+
+#: libexif/canon/mnote-canon-entry.c:265
+msgid "Canon EF 75-300mm f/4-5.6 IS"
+msgstr "Canon EF 75-300mm f/4-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:266
+msgid "Canon EF 50mm f/1.4"
+msgstr "Canon EF 50mm f/1.4"
+
+#: libexif/canon/mnote-canon-entry.c:267
+msgid "Canon EF 28-80 f/3.5-5.6 USM IV"
+msgstr "Canon EF 28-80 f/3.5-5.6 USM IV"
+
+#: libexif/canon/mnote-canon-entry.c:268
+msgid "Canon EF 28-200mm f/3.5-5.6"
+msgstr "Canon EF 28-200 mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:269
+msgid "Canon EF 90-300mm f/4.5-5.6"
+msgstr "Canon EF 90-300mm f/4.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:270
+msgid "Canon EF-S 18-55mm f/3.5-4.5 USM"
+msgstr "Canon EF-S 18-55 mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:271
+msgid "Canon EF 70-200mm f/2.8L IS USM"
+msgstr "Canon EF 70-200 mm f/2.8L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:272
+msgid "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+msgstr "Canon EF 70-200 mm f/2.8L IS USM + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:273
+msgid "Canon EF 70-200mm f/2.8L IS USM + x2"
+msgstr "Canon EF 70-200 mm f/2.8L IS USM + x2"
+
+#: libexif/canon/mnote-canon-entry.c:274
+msgid "Canon EF 16-35mm f/2.8L"
+msgstr "Canon EF 16-35mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:275
+msgid "Canon EF 24-70mm f/2.8L"
+msgstr "Canon EF 24-70mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:276
+msgid "Canon EF 17-40mm f/4L"
+msgstr "Canon EF 17-40mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:277
+msgid "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+msgstr "Canon EF 70-300 mm f/4.5-5.6 DO IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:278
+msgid "Canon EF-S 17-85mm f4-5.6 IS USM"
+msgstr "Canon EF-S 17-85 mm f4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:279
+msgid "Canon EF-S10-22mm F3.5-4.5 USM"
+msgstr "Canon EF-S10-22 mm F3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:280
+msgid "Canon EF-S60mm F2.8 Macro USM"
+msgstr "Canon EF-S60 mm F2.8 Makro USM"
+
+#: libexif/canon/mnote-canon-entry.c:281
+msgid "Canon EF 24-105mm f/4L IS"
+msgstr "Canon EF 24-105 mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:282
+msgid "Canon EF 70-300mm F4-5.6 IS USM"
+msgstr "Canon EF 70-300 mm F4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:283
+msgid "Canon EF 50mm F1.2L USM"
+msgstr "Canon EF 50 mm F1.2L USM"
+
+#: libexif/canon/mnote-canon-entry.c:284
+msgid "Canon EF 70-200mm f/4L IS USM"
+msgstr "Canon EF 70-200 mm f/4L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:286
+msgid "TTL"
+msgstr "TTL"
+
+#: libexif/canon/mnote-canon-entry.c:287
+msgid "A-TTL"
+msgstr "A-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:288
+msgid "E-TTL"
+msgstr "E-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:289
+msgid "FP sync enabled"
+msgstr "FP synchr. zapnutá"
+
+#: libexif/canon/mnote-canon-entry.c:290
+msgid "2nd-curtain sync used"
+msgstr "synchr. 2. zácl. použitá"
+
+#: libexif/canon/mnote-canon-entry.c:291
+msgid "FP sync used"
+msgstr "FP synchr. použitá"
+
+#: libexif/canon/mnote-canon-entry.c:292
+#: libexif/olympus/mnote-olympus-entry.c:190
+msgid "Internal"
+msgstr "interný"
+
+#: libexif/canon/mnote-canon-entry.c:293
+#: libexif/olympus/mnote-olympus-entry.c:191
+msgid "External"
+msgstr "externý"
+
+# AE - automatická expozícia
+#: libexif/canon/mnote-canon-entry.c:296
+msgid "Normal AE"
+msgstr "normálna AE"
+
+#: libexif/canon/mnote-canon-entry.c:297
+msgid "Exposure compensation"
+msgstr "kompenzácia expozície"
+
+# AE - automatická expozícia
+#: libexif/canon/mnote-canon-entry.c:298
+msgid "AE lock"
+msgstr "zámok AE"
+
+# AE - automatická expozícia
+#: libexif/canon/mnote-canon-entry.c:299
+#, fuzzy
+msgid "AE lock + exposure compensation"
+msgstr "zámok AE + kompenzácia expozície"
+
+# AE - automatická expozícia
+#: libexif/canon/mnote-canon-entry.c:300
+msgid "No AE"
+msgstr "bez AE"
+
+#: libexif/canon/mnote-canon-entry.c:303
+msgid "On, shot only"
+msgstr "zapnutý, iba pri fotení"
+
+#: libexif/canon/mnote-canon-entry.c:307
+msgid "Smooth"
+msgstr "hladký"
+
+#: libexif/canon/mnote-canon-entry.c:310 libexif/canon/mnote-canon-entry.c:334
+#: libexif/canon/mnote-canon-entry.c:393 libexif/canon/mnote-canon-entry.c:406
+#: libexif/fuji/mnote-fuji-entry.c:81 libexif/pentax/mnote-pentax-entry.c:87
+msgid "Custom"
+msgstr "vlastné"
+
+#: libexif/canon/mnote-canon-entry.c:311
+msgid "My color data"
+msgstr "moje farebné údaje"
+
+#: libexif/canon/mnote-canon-entry.c:313 libexif/canon/mnote-canon-entry.c:375
+#: libexif/pentax/mnote-pentax-entry.c:126
+#: libexif/pentax/mnote-pentax-entry.c:145
+msgid "Full"
+msgstr "plný"
+
+#: libexif/canon/mnote-canon-entry.c:314 libexif/canon/mnote-canon-entry.c:374
+msgid "2/3"
+msgstr "2/3"
+
+#: libexif/canon/mnote-canon-entry.c:315 libexif/canon/mnote-canon-entry.c:373
+msgid "1/3"
+msgstr "1/3"
+
+#: libexif/canon/mnote-canon-entry.c:321
+msgid "Fixed"
+msgstr "pevný"
+
+#: libexif/canon/mnote-canon-entry.c:322 libexif/pentax/mnote-pentax-tag.c:44
+msgid "Zoom"
+msgstr "priblíženie"
+
+#: libexif/canon/mnote-canon-entry.c:329
+msgid "Sunny"
+msgstr "slnečno"
+
+#: libexif/canon/mnote-canon-entry.c:330 libexif/canon/mnote-canon-entry.c:402
+#: libexif/exif-entry.c:719 libexif/fuji/mnote-fuji-entry.c:75
+#: libexif/olympus/mnote-olympus-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:255
+msgid "Cloudy"
+msgstr "oblačno"
+
+# exif-lightsource-3
+#: libexif/canon/mnote-canon-entry.c:331 libexif/canon/mnote-canon-entry.c:403
+#: libexif/exif-entry.c:716 libexif/pentax/mnote-pentax-entry.c:100
+#: libexif/pentax/mnote-pentax-entry.c:249
+msgid "Tungsten"
+msgstr "volfrám"
+
+# exif-lightsource-2
+#: libexif/canon/mnote-canon-entry.c:332 libexif/canon/mnote-canon-entry.c:404
+#: libexif/exif-entry.c:715 libexif/pentax/mnote-pentax-entry.c:101
+#: libexif/pentax/mnote-pentax-entry.c:248
+msgid "Fluorescent"
+msgstr "fluorescencia"
+
+# exif-lightsource-4
+#: libexif/canon/mnote-canon-entry.c:333 libexif/canon/mnote-canon-entry.c:405
+#: libexif/exif-entry.c:717 libexif/exif-entry.c:759 libexif/exif-tag.c:577
+#: libexif/fuji/mnote-fuji-entry.c:80 libexif/pentax/mnote-pentax-entry.c:254
+msgid "Flash"
+msgstr "blesk"
+
+# exif-lightsource-11
+#: libexif/canon/mnote-canon-entry.c:336 libexif/canon/mnote-canon-entry.c:408
+#: libexif/exif-entry.c:720 libexif/pentax/mnote-pentax-entry.c:99
+#: libexif/pentax/mnote-pentax-entry.c:247
+msgid "Shade"
+msgstr "odtieň"
+
+# ?exif-lightsource-255
+#: libexif/canon/mnote-canon-entry.c:337 libexif/canon/mnote-canon-entry.c:409
+msgid "Manual temperature (Kelvin)"
+msgstr "ručné nastavenie teploty (v kelvinoch)"
+
+#: libexif/canon/mnote-canon-entry.c:338 libexif/canon/mnote-canon-entry.c:410
+msgid "PC set 1"
+msgstr "PC set 1"
+
+#: libexif/canon/mnote-canon-entry.c:339 libexif/canon/mnote-canon-entry.c:411
+msgid "PC set 2"
+msgstr "PC set 2"
+
+#: libexif/canon/mnote-canon-entry.c:340 libexif/canon/mnote-canon-entry.c:412
+msgid "PC set 3"
+msgstr "PC set 3"
+
+#: libexif/canon/mnote-canon-entry.c:341 libexif/canon/mnote-canon-entry.c:413
+#: libexif/exif-entry.c:721 libexif/fuji/mnote-fuji-entry.c:76
+#: libexif/pentax/mnote-pentax-entry.c:251
+msgid "Daylight fluorescent"
+msgstr "denné svetlo fluorescenčné"
+
+#: libexif/canon/mnote-canon-entry.c:342 libexif/canon/mnote-canon-entry.c:414
+msgid "Custom 1"
+msgstr "vlastné 1"
+
+#: libexif/canon/mnote-canon-entry.c:343 libexif/canon/mnote-canon-entry.c:415
+msgid "Custom 2"
+msgstr "vlastné 2"
+
+#: libexif/canon/mnote-canon-entry.c:346 libexif/exif-entry.c:672
+#: libexif/pentax/mnote-pentax-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:132
+#: libexif/pentax/mnote-pentax-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:295
+msgid "Night scene"
+msgstr "nočná scéna"
+
+#: libexif/canon/mnote-canon-entry.c:352
+#, fuzzy
+msgid "Center-right"
+msgstr "vážený"
+
+#: libexif/canon/mnote-canon-entry.c:354
+#, fuzzy
+msgid "Left-right"
+msgstr "zľava doprava"
+
+#: libexif/canon/mnote-canon-entry.c:355
+#, fuzzy
+msgid "Left-center"
+msgstr "ľavý + stred"
+
+#: libexif/canon/mnote-canon-entry.c:356
+msgid "All"
+msgstr "všetky"
+
+#: libexif/canon/mnote-canon-entry.c:358
+msgid "On (shot 1)"
+msgstr "zapnutý (záber 1)"
+
+#: libexif/canon/mnote-canon-entry.c:359
+msgid "On (shot 2)"
+msgstr "zapnutý (záber 2)"
+
+#: libexif/canon/mnote-canon-entry.c:360
+msgid "On (shot 3)"
+msgstr "zapnutý (záber 3)"
+
+#: libexif/canon/mnote-canon-entry.c:362
+msgid "EOS high-end"
+msgstr "EOS high-end"
+
+#: libexif/canon/mnote-canon-entry.c:363
+msgid "Compact"
+msgstr "kompaktný"
+
+#: libexif/canon/mnote-canon-entry.c:364
+msgid "EOS mid-range"
+msgstr "EOS mid-range"
+
+#: libexif/canon/mnote-canon-entry.c:366
+msgid "Rotate 90 CW"
+msgstr "otočiť o +90 stupňov"
+
+#: libexif/canon/mnote-canon-entry.c:367
+msgid "Rotate 180"
+msgstr "otočiť o 180 stupňov"
+
+#: libexif/canon/mnote-canon-entry.c:368
+msgid "Rotate 270 CW"
+msgstr "otočiť o +270 stupňov"
+
+#: libexif/canon/mnote-canon-entry.c:369
+msgid "Rotated by software"
+msgstr "otočenie softvérom"
+
+#: libexif/canon/mnote-canon-entry.c:381
+#: libexif/olympus/mnote-olympus-entry.c:606
+msgid "Left to right"
+msgstr "zľava doprava"
+
+#: libexif/canon/mnote-canon-entry.c:382
+#: libexif/olympus/mnote-olympus-entry.c:609
+msgid "Right to left"
+msgstr "sprava doľava"
+
+#: libexif/canon/mnote-canon-entry.c:383
+#: libexif/olympus/mnote-olympus-entry.c:612
+msgid "Bottom to top"
+msgstr "zdola hore"
+
+#: libexif/canon/mnote-canon-entry.c:384
+#: libexif/olympus/mnote-olympus-entry.c:615
+msgid "Top to bottom"
+msgstr "zhora dolu"
+
+#: libexif/canon/mnote-canon-entry.c:385
+msgid "2x2 matrix (clockwise)"
+msgstr "matica 2x2 (v smere hodinových ručičiek)"
+
+#: libexif/canon/mnote-canon-entry.c:391 libexif/canon/mnote-canon-entry.c:397
+#: libexif/canon/mnote-canon-entry.c:418 libexif/canon/mnote-canon-entry.c:428
+#: libexif/exif-entry.c:671 libexif/fuji/mnote-fuji-entry.c:84
+#: libexif/fuji/mnote-fuji-entry.c:93 libexif/fuji/mnote-fuji-entry.c:163
+#: libexif/olympus/mnote-olympus-entry.c:227
+msgid "Standard"
+msgstr "štandardný"
+
+#: libexif/canon/mnote-canon-entry.c:394
+msgid "N/A"
+msgstr "N/A"
+
+#: libexif/canon/mnote-canon-entry.c:395
+msgid "Lowest"
+msgstr "Najnižšie"
+
+#: libexif/canon/mnote-canon-entry.c:399
+msgid "Highest"
+msgstr "Najvyššie"
+
+# exif-lightsource-1
+#: libexif/canon/mnote-canon-entry.c:401 libexif/exif-entry.c:714
+#: libexif/fuji/mnote-fuji-entry.c:74
+#: libexif/olympus/mnote-olympus-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:98
+#: libexif/pentax/mnote-pentax-entry.c:246
+msgid "Daylight"
+msgstr "denné svetlo"
+
+#: libexif/canon/mnote-canon-entry.c:419
+msgid "Set 1"
+msgstr "Set 1"
+
+#: libexif/canon/mnote-canon-entry.c:420
+msgid "Set 2"
+msgstr "Set 2"
+
+#: libexif/canon/mnote-canon-entry.c:421
+msgid "Set 3"
+msgstr "Set 3"
+
+#: libexif/canon/mnote-canon-entry.c:422
+#, fuzzy
+msgid "User def. 1"
+msgstr "Použ. def. 1"
+
+#: libexif/canon/mnote-canon-entry.c:423
+#, fuzzy
+msgid "User def. 2"
+msgstr "Použ. def. 2"
+
+#: libexif/canon/mnote-canon-entry.c:424
+#, fuzzy
+msgid "User def. 3"
+msgstr "Použ. def. 3"
+
+#: libexif/canon/mnote-canon-entry.c:425
+msgid "External 1"
+msgstr "Externý 1"
+
+#: libexif/canon/mnote-canon-entry.c:426
+msgid "External 2"
+msgstr "Externý 2"
+
+#: libexif/canon/mnote-canon-entry.c:427
+msgid "External 3"
+msgstr "Externý 3"
+
+#: libexif/canon/mnote-canon-entry.c:432
+msgid "Faithful"
+msgstr "Verné"
+
+#: libexif/canon/mnote-canon-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:115
+msgid "Monochrome"
+msgstr "jednofarebné"
+
+#: libexif/canon/mnote-canon-entry.c:491
+msgid ", "
+msgstr ", "
+
+#: libexif/canon/mnote-canon-entry.c:577 libexif/canon/mnote-canon-entry.c:674
+#, c-format
+msgid "%i (ms)"
+msgstr "%i (ms)"
+
+#: libexif/canon/mnote-canon-entry.c:621
+#, c-format
+msgid "%.2f mm"
+msgstr "%.2f mm"
+
+#: libexif/canon/mnote-canon-entry.c:645
+#, c-format
+msgid "%.2f EV"
+msgstr "%.2f EV"
+
+#: libexif/canon/mnote-canon-entry.c:655 libexif/exif-entry.c:1064
+#, c-format
+msgid "1/%i"
+msgstr "1/%i"
+
+#: libexif/canon/mnote-canon-entry.c:667
+#, c-format
+msgid "%u mm"
+msgstr "%u mm"
+
+#: libexif/canon/mnote-canon-tag.c:35
+msgid "Settings (First Part)"
+msgstr "nastavenia (prvá časť)"
+
+# exif-focallength
+#: libexif/canon/mnote-canon-tag.c:36 libexif/canon/mnote-canon-tag.c:92
+#: libexif/exif-tag.c:581 libexif/pentax/mnote-pentax-tag.c:88
+msgid "Focal Length"
+msgstr "ohnisková vzdialenosť šošoviek"
+
+#: libexif/canon/mnote-canon-tag.c:37
+msgid "Settings (Second Part)"
+msgstr "nastavenia (druhá časť)"
+
+#: libexif/canon/mnote-canon-tag.c:38
+#: libexif/olympus/mnote-olympus-entry.c:595
+#: libexif/pentax/mnote-pentax-entry.c:177
+msgid "Panorama"
+msgstr "panoráma"
+
+#: libexif/canon/mnote-canon-tag.c:39
+msgid "Image Type"
+msgstr "typ obrázka"
+
+#: libexif/canon/mnote-canon-tag.c:40 libexif/olympus/mnote-olympus-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:113
+msgid "Firmware Version"
+msgstr "verzia firmvéru"
+
+#: libexif/canon/mnote-canon-tag.c:41
+msgid "Image Number"
+msgstr "číslo obrázka"
+
+#: libexif/canon/mnote-canon-tag.c:42
+msgid "Owner Name"
+msgstr "meno vlastníka"
+
+#: libexif/canon/mnote-canon-tag.c:43
+msgid "Color Information"
+msgstr "informácie o farbách"
+
+#: libexif/canon/mnote-canon-tag.c:44 libexif/fuji/mnote-fuji-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:81
+#: libexif/olympus/mnote-olympus-tag.c:146
+msgid "Serial Number"
+msgstr "Sériové číslo"
+
+#: libexif/canon/mnote-canon-tag.c:45
+msgid "Custom Functions"
+msgstr "vlastné funkcie"
+
+#: libexif/canon/mnote-canon-tag.c:56 libexif/fuji/mnote-fuji-tag.c:45
+msgid "Macro Mode"
+msgstr "režim makro"
+
+#: libexif/canon/mnote-canon-tag.c:57 libexif/canon/mnote-canon-tag.c:117
+#: libexif/olympus/mnote-olympus-tag.c:175
+#: libexif/pentax/mnote-pentax-tag.c:128
+msgid "Self-timer"
+msgstr "samospúšť"
+
+#: libexif/canon/mnote-canon-tag.c:58 libexif/fuji/mnote-fuji-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:94
+#: libexif/olympus/mnote-olympus-tag.c:107
+msgid "Quality"
+msgstr "kvalita"
+
+#: libexif/canon/mnote-canon-tag.c:59 libexif/fuji/mnote-fuji-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:45
+#: libexif/olympus/mnote-olympus-tag.c:127
+#: libexif/pentax/mnote-pentax-tag.c:38 libexif/pentax/mnote-pentax-tag.c:73
+msgid "Flash Mode"
+msgstr "Režim blesku"
+
+#: libexif/canon/mnote-canon-tag.c:60 libexif/pentax/mnote-pentax-tag.c:101
+msgid "Drive Mode"
+msgstr "jazda autom"
+
+#: libexif/canon/mnote-canon-tag.c:61 libexif/canon/mnote-canon-tag.c:82
+#: libexif/olympus/mnote-olympus-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:134
+#: libexif/olympus/mnote-olympus-tag.c:173
+#: libexif/pentax/mnote-pentax-tag.c:37 libexif/pentax/mnote-pentax-tag.c:74
+#: libexif/pentax/mnote-pentax-tag.c:130
+msgid "Focus Mode"
+msgstr "režim zaostrenia"
+
+#: libexif/canon/mnote-canon-tag.c:62 libexif/pentax/mnote-pentax-tag.c:127
+msgid "Record Mode"
+msgstr "režim záznamu"
+
+#: libexif/canon/mnote-canon-tag.c:63 libexif/pentax/mnote-pentax-tag.c:71
+msgid "Image Size"
+msgstr "veľkosť obrázka"
+
+#: libexif/canon/mnote-canon-tag.c:64
+msgid "Easy Shooting Mode"
+msgstr "režim jednoduchého fotenia"
+
+#: libexif/canon/mnote-canon-tag.c:65 libexif/olympus/mnote-olympus-tag.c:64
+#: libexif/olympus/mnote-olympus-tag.c:101
+#: libexif/olympus/mnote-olympus-tag.c:110
+#: libexif/olympus/mnote-olympus-tag.c:180
+#: libexif/pentax/mnote-pentax-tag.c:89
+msgid "Digital Zoom"
+msgstr "digitálne priblíženie"
+
+#: libexif/canon/mnote-canon-tag.c:66 libexif/exif-tag.c:828
+#: libexif/fuji/mnote-fuji-tag.c:42 libexif/pentax/mnote-pentax-tag.c:46
+#: libexif/pentax/mnote-pentax-tag.c:91
+msgid "Contrast"
+msgstr "kontrast"
+
+#: libexif/canon/mnote-canon-tag.c:67 libexif/exif-tag.c:832
+#: libexif/olympus/mnote-olympus-tag.c:75
+#: libexif/olympus/mnote-olympus-tag.c:87 libexif/pentax/mnote-pentax-tag.c:47
+#: libexif/pentax/mnote-pentax-tag.c:90
+msgid "Saturation"
+msgstr "sýtosť"
+
+# exif-sharpness
+#: libexif/canon/mnote-canon-tag.c:68 libexif/exif-tag.c:836
+#: libexif/fuji/mnote-fuji-tag.c:39 libexif/pentax/mnote-pentax-tag.c:45
+#: libexif/pentax/mnote-pentax-tag.c:92
+msgid "Sharpness"
+msgstr "ostrosť"
+
+# exif-isospeedratings
+#: libexif/canon/mnote-canon-tag.c:69
+msgid "ISO"
+msgstr "ISO"
+
+# exif-meteringmode
+#: libexif/canon/mnote-canon-tag.c:70 libexif/exif-tag.c:571
+#: libexif/pentax/mnote-pentax-tag.c:82
+msgid "Metering Mode"
+msgstr "merací režim"
+
+#: libexif/canon/mnote-canon-tag.c:71 libexif/olympus/mnote-olympus-tag.c:133
+msgid "Focus Range"
+msgstr "Rozsah zaostrenia"
+
+# AF = automatické zaostrenie
+#: libexif/canon/mnote-canon-tag.c:72 libexif/canon/mnote-canon-tag.c:105
+msgid "AF Point"
+msgstr "bod automatického zaostrenia"
+
+# exif-exposuremode
+#: libexif/canon/mnote-canon-tag.c:73 libexif/exif-tag.c:795
+msgid "Exposure Mode"
+msgstr "expozičný režim"
+
+#: libexif/canon/mnote-canon-tag.c:74 libexif/olympus/mnote-olympus-tag.c:61
+#: libexif/pentax/mnote-pentax-tag.c:106
+msgid "Lens Type"
+msgstr "typ šošoviek"
+
+#: libexif/canon/mnote-canon-tag.c:75
+msgid "Long Focal Length of Lens"
+msgstr "dlhá ohnisková vzdialenosť šošoviek"
+
+#: libexif/canon/mnote-canon-tag.c:76
+msgid "Short Focal Length of Lens"
+msgstr "krátka ohnisková vzdialenosť šošoviek"
+
+# exif-focalplaneresolutionunit
+#: libexif/canon/mnote-canon-tag.c:77
+msgid "Focal Units per mm"
+msgstr "ohniskových jednotiek na mm"
+
+#: libexif/canon/mnote-canon-tag.c:78
+msgid "Maximal Aperture"
+msgstr "maximálna clona"
+
+#: libexif/canon/mnote-canon-tag.c:79
+msgid "Minimal Aperture"
+msgstr "minimálna clona"
+
+#: libexif/canon/mnote-canon-tag.c:80
+msgid "Flash Activity"
+msgstr "aktivita blesku"
+
+#: libexif/canon/mnote-canon-tag.c:81
+msgid "Flash Details"
+msgstr "podrobnosti blesku"
+
+# AE - automatická expozícia
+#: libexif/canon/mnote-canon-tag.c:83
+msgid "AE Setting"
+msgstr "nastavenie AE"
+
+#: libexif/canon/mnote-canon-tag.c:84
+msgid "Image Stabilization"
+msgstr "stabilizácia obrazu"
+
+#: libexif/canon/mnote-canon-tag.c:85
+msgid "Display Aperture"
+msgstr "clona displeja"
+
+#: libexif/canon/mnote-canon-tag.c:86
+msgid "Zoom Source Width"
+msgstr "zdrojová šírka priblíženia"
+
+#: libexif/canon/mnote-canon-tag.c:87
+msgid "Zoom Target Width"
+msgstr "cieľová šírka priblíženia"
+
+#: libexif/canon/mnote-canon-tag.c:88
+msgid "Photo Effect"
+msgstr "fotoefekt"
+
+#: libexif/canon/mnote-canon-tag.c:89 libexif/canon/mnote-canon-tag.c:118
+msgid "Manual Flash Output"
+msgstr "ručný výstup blesku"
+
+#: libexif/canon/mnote-canon-tag.c:90
+msgid "Color Tone"
+msgstr "farebný odtieň"
+
+#: libexif/canon/mnote-canon-tag.c:91
+msgid "Focal Type"
+msgstr "typ zaostrenia"
+
+# exif-focalplanexresolution
+#: libexif/canon/mnote-canon-tag.c:93
+msgid "Focal Plane X Size"
+msgstr "horizontálne rozlíšenie ohniskovej roviny"
+
+# exif-focalplanexresolution
+#: libexif/canon/mnote-canon-tag.c:94
+msgid "Focal Plane Y Size"
+msgstr "horizontálne rozlíšenie ohniskovej roviny"
+
+#: libexif/canon/mnote-canon-tag.c:95
+msgid "Auto ISO"
+msgstr "auto ISO"
+
+#: libexif/canon/mnote-canon-tag.c:96
+msgid "Shot ISO"
+msgstr "ISO snímky"
+
+#: libexif/canon/mnote-canon-tag.c:97
+msgid "Measured EV"
+msgstr "merané EV"
+
+#: libexif/canon/mnote-canon-tag.c:98
+msgid "Target Aperture"
+msgstr "cieľová clona"
+
+#: libexif/canon/mnote-canon-tag.c:99
+msgid "Target Exposure Time"
+msgstr "cieľový čas expozície"
+
+#: libexif/canon/mnote-canon-tag.c:100 libexif/olympus/mnote-olympus-tag.c:129
+#: libexif/pentax/mnote-pentax-tag.c:81
+msgid "Exposure Compensation"
+msgstr "Kompenzácia expozície"
+
+# exif-whitebalance
+#: libexif/canon/mnote-canon-tag.c:101 libexif/canon/mnote-canon-tag.c:123
+#: libexif/exif-tag.c:800 libexif/fuji/mnote-fuji-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:41
+#: libexif/olympus/mnote-olympus-tag.c:98 libexif/pentax/mnote-pentax-tag.c:41
+#: libexif/pentax/mnote-pentax-tag.c:84 libexif/pentax/mnote-pentax-tag.c:124
+msgid "White Balance"
+msgstr "vyváženie bielej"
+
+#: libexif/canon/mnote-canon-tag.c:102
+msgid "Slow Shutter"
+msgstr "pomalá uzávierka"
+
+#: libexif/canon/mnote-canon-tag.c:103
+msgid "Sequence Number"
+msgstr "poradové číslo"
+
+#: libexif/canon/mnote-canon-tag.c:104
+msgid "Flash Guide Number"
+msgstr "číslo vodidla blesku"
+
+#: libexif/canon/mnote-canon-tag.c:106 libexif/olympus/mnote-olympus-tag.c:52
+#: libexif/pentax/mnote-pentax-tag.c:109
+msgid "Flash Exposure Compensation"
+msgstr "kompenzácia expozície blesku"
+
+# AE - automatická expozícia
+#: libexif/canon/mnote-canon-tag.c:107
+msgid "AE Bracketing"
+msgstr "uzávierka AE"
+
+# AE - automatická expozícia
+#: libexif/canon/mnote-canon-tag.c:108
+msgid "AE Bracket Value"
+msgstr "hodnota uzávierky AE"
+
+#: libexif/canon/mnote-canon-tag.c:109
+msgid "Focus Distance Upper"
+msgstr "horná vzdialenosť zaostrenia"
+
+#: libexif/canon/mnote-canon-tag.c:110
+msgid "Focus Distance Lower"
+msgstr "dolná vzdialenosť zaostrenia"
+
+#: libexif/canon/mnote-canon-tag.c:111
+msgid "FNumber"
+msgstr "číslo F"
+
+# exif-exposuretime
+#: libexif/canon/mnote-canon-tag.c:112 libexif/exif-tag.c:466
+#: libexif/pentax/mnote-pentax-tag.c:78
+msgid "Exposure Time"
+msgstr "čas expozície"
+
+#: libexif/canon/mnote-canon-tag.c:113
+msgid "Bulb Duration"
+msgstr "trvanie žiarovky"
+
+#: libexif/canon/mnote-canon-tag.c:114
+msgid "Camera Type"
+msgstr "typ fotoaparátu"
+
+#: libexif/canon/mnote-canon-tag.c:115
+msgid "Auto Rotate"
+msgstr "automatické otočenie"
+
+#: libexif/canon/mnote-canon-tag.c:116
+msgid "ND Filter"
+msgstr "ND filter"
+
+#: libexif/canon/mnote-canon-tag.c:119
+msgid "Panorama Frame"
+msgstr "rámec panorámy"
+
+#: libexif/canon/mnote-canon-tag.c:120
+msgid "Panorama Direction"
+msgstr "smer panorámy"
+
+#: libexif/canon/mnote-canon-tag.c:121
+msgid "Tone Curve"
+msgstr "krivka tónu"
+
+#: libexif/canon/mnote-canon-tag.c:122
+msgid "Sharpness Frequency"
+msgstr "frekvencia ostrosti"
+
+#: libexif/canon/mnote-canon-tag.c:124
+msgid "Picture Style"
+msgstr "štýl obrázka"
+
+#: libexif/exif-byte-order.c:33
+msgid "Motorola"
+msgstr "Motorola"
+
+#: libexif/exif-byte-order.c:35
+msgid "Intel"
+msgstr "Intel"
+
+#: libexif/exif-data.c:780
+msgid "Size of data too small to allow for EXIF data."
+msgstr "Veľkosť dát je príliš malá, aby umožnila EXIF údaje."
+
+#: libexif/exif-data.c:841
+msgid "EXIF marker not found."
+msgstr "EXIF značka nebola nájdená."
+
+#: libexif/exif-data.c:868
+msgid "EXIF header not found."
+msgstr "EXIF hlavička nebola nájdená."
+
+#: libexif/exif-data.c:884
+msgid "Unknown encoding."
+msgstr "Neznáme kódovanie."
+
+#: libexif/exif-data.c:1168
+msgid "Ignore unknown tags"
+msgstr "Ignorovať neznáme značky."
+
+#: libexif/exif-data.c:1169
+msgid "Ignore unknown tags when loading EXIF data."
+msgstr "Ignorovať neznáme značky počas načítavania EXIF údajov."
+
+#: libexif/exif-data.c:1170
+msgid "Follow specification"
+msgstr "Dodržiavať špecifikáciu"
+
+#: libexif/exif-data.c:1171
+msgid ""
+"Add, correct and remove entries to get EXIF data that follows the "
+"specification."
+msgstr ""
+"Pridať opraviť a odstrániť záznamy, aby sme získali EXIF údaje, ktoré "
+"dodržiavajú špecifikáciu."
+
+#: libexif/exif-data.c:1173
+msgid "Do not change maker note"
+msgstr "Nemeniť poznámku o výrobcovi"
+
+#: libexif/exif-data.c:1174
+msgid ""
+"When loading and resaving Exif data, save the maker note unmodified. Be "
+"aware that the maker note can get corrupted."
+msgstr ""
+"Pri načítaní a znovuukladaní EXIF údajov uložiť značku nezmenenú. Buďte si "
+"vedomý, že značka sa môže poškodiť."
+
+#: libexif/exif-entry.c:234 libexif/exif-entry.c:303 libexif/exif-entry.c:336
+#, c-format
+msgid ""
+"Tag '%s' was of format '%s' (which is against specification) and has been "
+"changed to format '%s'."
+msgstr ""
+"Štítok „%s“ ma formát „%s“ (čo je proti špecifikácii) a bol zmenený na "
+"formát „%s“."
+
+#: libexif/exif-entry.c:271
+#, c-format
+msgid ""
+"Tag '%s' is of format '%s' (which is against specification) but cannot be "
+"changed to format '%s'."
+msgstr ""
+"Značka „%s“ ma formát „%s“ (čo je proti špecifikácii) a bola zmenená na "
+"formát „%s“."
+
+#: libexif/exif-entry.c:354
+#, c-format
+msgid ""
+"Tag 'UserComment' had invalid format '%s'. Format has been set to "
+"'undefined'."
+msgstr ""
+"Štítok „UserComment“ mal neplatný formát „%s“. Formát bol zmenený na "
+"„nedefinovaný“."
+
+#: libexif/exif-entry.c:381
+msgid ""
+"Tag 'UserComment' has been expanded to at least 8 bytes in order to follow "
+"the specification."
+msgstr ""
+"Štítok „UserComment“ bol rozšírený na aspoň 8 bajtov, aby podliehal "
+"špecifikácii."
+
+#: libexif/exif-entry.c:396
+msgid ""
+"Tag 'UserComment' is not empty but does not start with a format identifier. "
+"This has been fixed."
+msgstr ""
+"Značka „UserComment“ nie je prízdna, ale nezačína identifikátorom formátu. "
+"Toto bolo opravené."
+
+#: libexif/exif-entry.c:424
+msgid ""
+"Tag 'UserComment' did not start with a format identifier. This has been "
+"fixed."
+msgstr ""
+"Značja „UserComment“ nezačínala identifikátorom formátu. Toto bolo opravené."
+
+#: libexif/exif-entry.c:462
+#, c-format
+msgid "%i bytes undefined data"
+msgstr "%i bajtov nedefinovaných údajov"
+
+#: libexif/exif-entry.c:589
+#, c-format
+msgid "%i bytes unsupported data type"
+msgstr "%i bajtov nepodporovaného typu údajov"
+
+#: libexif/exif-entry.c:622
+#, c-format
+msgid "The tag '%s' contains data of an invalid format ('%s', expected '%s')."
+msgstr ""
+"Štítok „%s“ obsahuje údaje neplatného formátu („%s“, očakávalo sa „%s“)."
+
+#: libexif/exif-entry.c:635
+#, c-format
+msgid ""
+"The tag '%s' contains an invalid number of components (%i, expected %i)."
+msgstr "Štítok „%s“ obsahuje neplatný počet zložiek (%i, očakávalo sa %i)."
+
+#: libexif/exif-entry.c:649
+#, fuzzy
+msgid "Chunky format"
+msgstr "kúskový formát"
+
+#: libexif/exif-entry.c:649
+#, fuzzy
+msgid "Planar format"
+msgstr "rovinný formát"
+
+#: libexif/exif-entry.c:651 libexif/exif-entry.c:743
+#: test/nls/test-codeset.c:54
+msgid "Not defined"
+msgstr "nedefinovaný"
+
+# exif-sensingmethod-2
+#: libexif/exif-entry.c:651
+msgid "One-chip color area sensor"
+msgstr "jednočipový farebný snímač oblasti"
+
+# exif-sensingmethod-3
+#: libexif/exif-entry.c:652
+msgid "Two-chip color area sensor"
+msgstr "dvojčipový farebný snímač oblasti"
+
+# exif-sensingmethod-4
+#: libexif/exif-entry.c:652
+msgid "Three-chip color area sensor"
+msgstr "trojčipový farebný snímač oblasti"
+
+# exif-sensingmethod-5
+#: libexif/exif-entry.c:653
+msgid "Color sequential area sensor"
+msgstr "sekvenčný farebný snímač oblasti"
+
+# exif-sensingmethod-7
+#: libexif/exif-entry.c:653
+msgid "Trilinear sensor"
+msgstr "trilineárny snímač"
+
+# exif-sensingmethod-5
+#: libexif/exif-entry.c:654
+msgid "Color sequential linear sensor"
+msgstr "sekvenčný farebný snímač oblasti"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:233
+msgid "Top-left"
+msgstr "hore vľavo"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:235
+msgid "Top-right"
+msgstr "hore vpravo"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:241
+msgid "Bottom-right"
+msgstr "dolu vpravo"
+
+#: libexif/exif-entry.c:657 libexif/pentax/mnote-pentax-entry.c:239
+msgid "Bottom-left"
+msgstr "dolu vľavo"
+
+#: libexif/exif-entry.c:657
+#, fuzzy
+msgid "Left-top"
+msgstr "ľavý vrchný"
+
+#: libexif/exif-entry.c:657
+#, fuzzy
+msgid "Right-top"
+msgstr "pravý vrchný"
+
+#: libexif/exif-entry.c:658
+#, fuzzy
+msgid "Right-bottom"
+msgstr "pravý spodný"
+
+#: libexif/exif-entry.c:658
+#, fuzzy
+msgid "Left-bottom"
+msgstr "ľavý spodný"
+
+#: libexif/exif-entry.c:660
+#, fuzzy
+msgid "Centered"
+msgstr "stredný"
+
+#: libexif/exif-entry.c:660
+#, fuzzy
+msgid "Co-sited"
+msgstr "spolu umiestnený"
+
+#: libexif/exif-entry.c:662
+msgid "Reversed mono"
+msgstr "obrátené mono"
+
+#: libexif/exif-entry.c:662
+msgid "Normal mono"
+msgstr "normálny mono"
+
+#: libexif/exif-entry.c:662
+msgid "RGB"
+msgstr "RGB"
+
+#: libexif/exif-entry.c:662
+msgid "Palette"
+msgstr "paleta"
+
+#: libexif/exif-entry.c:663
+msgid "CMYK"
+msgstr "CMYK"
+
+#: libexif/exif-entry.c:663
+msgid "YCbCr"
+msgstr "YCbCr"
+
+#: libexif/exif-entry.c:663
+msgid "CieLAB"
+msgstr "CieLAB"
+
+# exif-customrendered-0
+#: libexif/exif-entry.c:665
+msgid "Normal process"
+msgstr "bežné spracovanie"
+
+# exif-customrendered-1
+#: libexif/exif-entry.c:665
+msgid "Custom process"
+msgstr "vlastné spracovanie"
+
+# exif-exposuremode-0
+#: libexif/exif-entry.c:667
+msgid "Auto exposure"
+msgstr "automatická expozícia"
+
+# exif-exposuremode-1
+#: libexif/exif-entry.c:667 libexif/fuji/mnote-fuji-entry.c:139
+msgid "Manual exposure"
+msgstr "manuálna expozícia"
+
+# exif-exposuremode-2
+#: libexif/exif-entry.c:667
+msgid "Auto bracket"
+msgstr "automatická kompenzácia expozície"
+
+# exif-whitebalance-0
+#: libexif/exif-entry.c:669
+msgid "Auto white balance"
+msgstr "automatické vyváženie bielej"
+
+# exif-whitebalance-1
+#: libexif/exif-entry.c:669
+msgid "Manual white balance"
+msgstr "ručné vyváženie bielej"
+
+# exif-gaincontrol-1
+#: libexif/exif-entry.c:674
+msgid "Low gain up"
+msgstr "nízke zosilnenie"
+
+# exif-gaincontrol-2
+#: libexif/exif-entry.c:674
+msgid "High gain up"
+msgstr "vysoké zosilnenie"
+
+# exif-gaincontrol-3
+#: libexif/exif-entry.c:675
+msgid "Low gain down"
+msgstr "nízke zoslabenie"
+
+# exif-gaincontrol-4
+#: libexif/exif-entry.c:675
+msgid "High gain down"
+msgstr "vysoké zoslabenie"
+
+# exif-saturation-1
+#: libexif/exif-entry.c:677
+msgid "Low saturation"
+msgstr "nízka sýtosť"
+
+# exif-saturation-2
+#: libexif/exif-entry.c:677 test/nls/test-codeset.c:48
+#: test/nls/test-codeset.c:61
+msgid "High saturation"
+msgstr "vysoká sýtosť"
+
+# exif-sharpness-1
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:63
+#: libexif/olympus/mnote-olympus-entry.c:205
+#: libexif/olympus/mnote-olympus-entry.c:214
+#: libexif/pentax/mnote-pentax-entry.c:106
+#: libexif/pentax/mnote-pentax-entry.c:170
+msgid "Soft"
+msgstr "mäkký"
+
+# exif-sharpness-2
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:65 libexif/fuji/mnote-fuji-entry.c:95
+#: libexif/olympus/mnote-olympus-entry.c:204
+#: libexif/olympus/mnote-olympus-entry.c:212
+#: libexif/pentax/mnote-pentax-entry.c:107
+msgid "Hard"
+msgstr "tvrdý"
+
+# exif-meteringmode-0
+#: libexif/exif-entry.c:695 libexif/exif-entry.c:713 libexif/exif-entry.c:795
+#: libexif/olympus/mnote-olympus-entry.c:589
+#: libexif/olympus/mnote-olympus-entry.c:683
+#: libexif/olympus/mnote-olympus-entry.c:738
+#: libexif/pentax/mnote-pentax-entry.c:256
+msgid "Unknown"
+msgstr "neznámy"
+
+# exif-meteringmode-1
+#: libexif/exif-entry.c:696
+#, fuzzy
+msgid "Avg"
+msgstr "priemer"
+
+#: libexif/exif-entry.c:697
+#, fuzzy
+msgid "Center-weight"
+msgstr "vážený"
+
+# exif-meteringmode-4
+#: libexif/exif-entry.c:699
+#, fuzzy
+msgid "Multi spot"
+msgstr "viac bodov"
+
+# exif-meteringmode-5
+#: libexif/exif-entry.c:700
+msgid "Pattern"
+msgstr "vzorka"
+
+# exif-compression-1
+#: libexif/exif-entry.c:705
+msgid "Uncompressed"
+msgstr "nekomprimovaný"
+
+#: libexif/exif-entry.c:706
+msgid "LZW compression"
+msgstr "LZW kompresia"
+
+# exif-compression-6
+#: libexif/exif-entry.c:707 libexif/exif-entry.c:708
+msgid "JPEG compression"
+msgstr "JPEG kompresia"
+
+#: libexif/exif-entry.c:709
+msgid "Deflate/ZIP compression"
+msgstr "Deflate/ZIP kompresia"
+
+#: libexif/exif-entry.c:710
+msgid "PackBits compression"
+msgstr "PackBits kompresia"
+
+# exif-lightsource-3
+#: libexif/exif-entry.c:716
+msgid "Tungsten incandescent light"
+msgstr "volframové inkadescentné svetlo"
+
+# exif-lightsource-9
+#: libexif/exif-entry.c:718
+msgid "Fine weather"
+msgstr "pekné počasie"
+
+# exif-lightsource-10
+#: libexif/exif-entry.c:719
+msgid "Cloudy weather"
+msgstr "oblačné počasie"
+
+# exif-lightsource-13
+#: libexif/exif-entry.c:722 libexif/fuji/mnote-fuji-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:252
+msgid "Day white fluorescent"
+msgstr "biely deň, fluorescenčné"
+
+# exif-lightsource-14
+#: libexif/exif-entry.c:723
+msgid "Cool white fluorescent"
+msgstr "chladná biela, fluorescenčné"
+
+# exif-lightsource-15
+#: libexif/exif-entry.c:724 libexif/fuji/mnote-fuji-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:253
+msgid "White fluorescent"
+msgstr "biela, fluorescenčné"
+
+# exif-lightsource-17
+#: libexif/exif-entry.c:725
+msgid "Standard light A"
+msgstr "štandardné svetlo A"
+
+# exif-lightsource-18
+#: libexif/exif-entry.c:726
+msgid "Standard light B"
+msgstr "štandardné svetlo B"
+
+# exif-lightsource-19
+#: libexif/exif-entry.c:727
+msgid "Standard light C"
+msgstr "štandardné svetlo C"
+
+# exif-lightsource-20
+#: libexif/exif-entry.c:728
+msgid "D55"
+msgstr "D55"
+
+# exif-lightsource-21
+#: libexif/exif-entry.c:729
+msgid "D65"
+msgstr "D65"
+
+# exif-lightsource-22
+#: libexif/exif-entry.c:730
+msgid "D75"
+msgstr "D75"
+
+# exif-lightsource-24
+#: libexif/exif-entry.c:731
+msgid "ISO studio tungsten"
+msgstr "ISO štúdiový volfrám"
+
+# exif-focalplaneresolutionunit-2
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "Inch"
+msgstr "palcov"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "in"
+msgstr "pl"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "Centimeter"
+msgstr "centimetrov"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "cm"
+msgstr "cm"
+
+# exif-exposureprogram-2
+#: libexif/exif-entry.c:745
+msgid "Normal program"
+msgstr "normálny program"
+
+# exif-exposureprogram-3
+#: libexif/exif-entry.c:746
+msgid "Aperture priority"
+msgstr "priorita clony"
+
+# exif-aperturevalue
+#: libexif/exif-entry.c:746 libexif/exif-tag.c:550
+msgid "Aperture"
+msgstr "clona"
+
+# exif-exposureprogram-4
+#: libexif/exif-entry.c:747
+msgid "Shutter priority"
+msgstr "priorita uzávierky"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter"
+msgstr "uzávierka"
+
+# exif-exposureprogram-5
+#: libexif/exif-entry.c:748
+msgid "Creative program (biased toward depth of field)"
+msgstr "tvorivý program (prevažuje smerom k hĺbke poľa)"
+
+#: libexif/exif-entry.c:749
+msgid "Creative"
+msgstr "tvorivý"
+
+# exif-exposureprogram-6
+#: libexif/exif-entry.c:750
+msgid "Creative program (biased toward fast shutter speed)"
+msgstr "tvorivý program (prevažuje smerom k rýchlej uzávierke)"
+
+#: libexif/exif-entry.c:751
+msgid "Action"
+msgstr "akčný"
+
+# exif-exposureprogram-7
+#: libexif/exif-entry.c:752
+msgid "Portrait mode (for closeup photos with the background out of focus)"
+msgstr "režim portrét (pre detailné zábery s nezaostreným pozadím)"
+
+# exif-exposureprogram-8
+#: libexif/exif-entry.c:754
+msgid "Landscape mode (for landscape photos with the background in focus)"
+msgstr "režim krajinka (pre fotografie krajiny so zaostreným pozadím) "
+
+#: libexif/exif-entry.c:758 libexif/exif-entry.c:763
+#: libexif/olympus/mnote-olympus-entry.c:97
+msgid "Flash did not fire"
+msgstr "blesk sa nespustil"
+
+#: libexif/exif-entry.c:758
+#, fuzzy
+msgid "No flash"
+msgstr "bez blesku"
+
+#: libexif/exif-entry.c:759
+msgid "Flash fired"
+msgstr "blesk sa spustil"
+
+#: libexif/exif-entry.c:759 libexif/olympus/mnote-olympus-entry.c:170
+#: libexif/olympus/mnote-olympus-entry.c:175
+#: libexif/olympus/mnote-olympus-entry.c:209
+#: libexif/olympus/mnote-olympus-entry.c:218
+#: libexif/olympus/mnote-olympus-entry.c:241
+msgid "Yes"
+msgstr "áno"
+
+#: libexif/exif-entry.c:760
+msgid "Strobe return light not detected"
+msgstr "vracajúci sa impulz svetla nebol detekovaný"
+
+#: libexif/exif-entry.c:760
+#, fuzzy
+msgid "Without strobe"
+msgstr "Bez impulzného svetla"
+
+#: libexif/exif-entry.c:762
+msgid "Strobe return light detected"
+msgstr "vracajúci sa impulz svetla bol detekovaný"
+
+#: libexif/exif-entry.c:762
+#, fuzzy
+msgid "With strobe"
+msgstr "S impulzným svetlom"
+
+#: libexif/exif-entry.c:764
+msgid "Flash fired, compulsory flash mode"
+msgstr "blesk sa spustil, povinný režim blesku"
+
+#: libexif/exif-entry.c:765
+msgid "Flash fired, compulsory flash mode, return light not detected"
+msgstr ""
+"blesk sa spustil, povinný režim blesku, vracajúce sa svetlo nedetekované"
+
+#: libexif/exif-entry.c:767
+msgid "Flash fired, compulsory flash mode, return light detected"
+msgstr "blesk sa spustil, povinný režim blesku, vracajúce sa svetlo detekované"
+
+#: libexif/exif-entry.c:769
+msgid "Flash did not fire, compulsory flash mode"
+msgstr "blesk sa nespustil, povinný režim blesku"
+
+#: libexif/exif-entry.c:770
+msgid "Flash did not fire, auto mode"
+msgstr "blesk sa nespustil, automatický režim blesku"
+
+#: libexif/exif-entry.c:771
+msgid "Flash fired, auto mode"
+msgstr "blesk sa spustil, automatický režim blesku"
+
+#: libexif/exif-entry.c:772
+msgid "Flash fired, auto mode, return light not detected"
+msgstr ""
+"blesk sa spustil, automatický režim blesku, vracajúce sa svetlo nedetekované"
+
+#: libexif/exif-entry.c:774
+msgid "Flash fired, auto mode, return light detected"
+msgstr ""
+"blesk sa spustil, automatický režim blesku, vracajúce sa svetlo detekované"
+
+#: libexif/exif-entry.c:775
+msgid "No flash function"
+msgstr "bez funkcie blesku"
+
+#: libexif/exif-entry.c:776
+msgid "Flash fired, red-eye reduction mode"
+msgstr "blesk sa spustil, korekcia červených očí"
+
+#: libexif/exif-entry.c:777
+msgid "Flash fired, red-eye reduction mode, return light not detected"
+msgstr ""
+"blesk sa spustil, korekcia červených očí, vracajúce sa svetlo nedetekované"
+
+#: libexif/exif-entry.c:779
+msgid "Flash fired, red-eye reduction mode, return light detected"
+msgstr ""
+"blesk sa spustil, korekcia červených očí, vracajúce sa svetlo detekované"
+
+#: libexif/exif-entry.c:781
+msgid "Flash fired, compulsory flash mode, red-eye reduction mode"
+msgstr "blesk sa spustil, povinný režim blesku, korekcia červených očí"
+
+#: libexif/exif-entry.c:783
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light not "
+"detected"
+msgstr ""
+"blesk sa spustil, povinný režim blesku, korekcia červených očí, vracajúce sa "
+"svetlo nedetekované"
+
+#: libexif/exif-entry.c:785
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light "
+"detected"
+msgstr ""
+"blesk sa spustil, povinný režim blesku, korekcia červených očí, vracajúce sa "
+"svetlo nedetekované"
+
+#: libexif/exif-entry.c:787
+msgid "Flash did not fire, auto mode, red-eye reduction mode"
+msgstr "blesk sa nespustil, automatický režim, korekcia červených očí"
+
+#: libexif/exif-entry.c:788
+msgid "Flash fired, auto mode, red-eye reduction mode"
+msgstr "blesk sa spustil, automatický režim, korekcia červených očí"
+
+#: libexif/exif-entry.c:789
+msgid ""
+"Flash fired, auto mode, return light not detected, red-eye reduction mode"
+msgstr ""
+"blesk sa nespustil, automatický režim blesku, vracajúce sa svetlo "
+"nedetekované, korekcia červených očí"
+
+#: libexif/exif-entry.c:791
+msgid "Flash fired, auto mode, return light detected, red-eye reduction mode"
+msgstr ""
+"blesk sa nespustil, automatický režim blesku, vracajúce sa svetlo "
+"detekované, korekcia červených očí"
+
+#: libexif/exif-entry.c:795
+msgid "?"
+msgstr "?"
+
+# exif-subjectdistancerange-2
+#: libexif/exif-entry.c:797
+msgid "Close view"
+msgstr "pohľad zblízka"
+
+# exif-subjectdistancerange-3
+#: libexif/exif-entry.c:798
+msgid "Distant view"
+msgstr "vzdialený pohľad"
+
+#: libexif/exif-entry.c:798
+msgid "Distant"
+msgstr "Vzdialený"
+
+#: libexif/exif-entry.c:801
+msgid "sRGB"
+msgstr "sRGB"
+
+#: libexif/exif-entry.c:802
+msgid "Adobe RGB"
+msgstr "Adobe RGB"
+
+#: libexif/exif-entry.c:803
+msgid "Uncalibrated"
+msgstr "nekalibrovaný"
+
+#: libexif/exif-entry.c:857
+#, c-format
+msgid "Invalid size of entry (%i, expected %li x %i)."
+msgstr "Neplatná veľkosť záznamu (%i, očakávalo sa %li x %i)."
+
+#: libexif/exif-entry.c:890
+msgid "Unsupported UNICODE string"
+msgstr "Nepodporovaný reťazec UNICODE"
+
+#: libexif/exif-entry.c:898
+msgid "Unsupported JIS string"
+msgstr "Nepodporovaný reťazec JIS"
+
+#: libexif/exif-entry.c:914
+msgid "Tag UserComment does not comply with standard but contains data."
+msgstr "Značka UserComment nezodpovedá štandardu, ale obsahuje údaje."
+
+#: libexif/exif-entry.c:918
+#, c-format
+msgid "Byte at position %i: 0x%02x"
+msgstr "bajt na pozícii %i: 0x%02x"
+
+#: libexif/exif-entry.c:927
+msgid "Unknown Exif Version"
+msgstr "Neznáma verzia Exif"
+
+#: libexif/exif-entry.c:931
+#, c-format
+msgid "Exif Version %d.%d"
+msgstr "Exif verzia %d.%d"
+
+#: libexif/exif-entry.c:942
+msgid "FlashPix Version 1.0"
+msgstr "FlashPix verzia 1.0"
+
+#: libexif/exif-entry.c:944
+msgid "FlashPix Version 1.01"
+msgstr "FlashPix verzia 1.01"
+
+#: libexif/exif-entry.c:946
+msgid "Unknown FlashPix Version"
+msgstr "Neznáma verzia FlashPix"
+
+#: libexif/exif-entry.c:959 libexif/exif-entry.c:972 libexif/exif-entry.c:1628
+#: libexif/exif-entry.c:1633 libexif/exif-entry.c:1637
+#: libexif/exif-entry.c:1642 libexif/exif-entry.c:1643
+msgid "[None]"
+msgstr "[žiadny]"
+
+#: libexif/exif-entry.c:961
+msgid "(Photographer)"
+msgstr "(fotograf)"
+
+#: libexif/exif-entry.c:975
+msgid "(Editor)"
+msgstr "(redaktor)"
+
+#: libexif/exif-entry.c:999 libexif/exif-entry.c:1079
+#: libexif/exif-entry.c:1096 libexif/exif-entry.c:1140
+#, c-format
+msgid "%.02f EV"
+msgstr "%.02f EV"
+
+#: libexif/exif-entry.c:1000
+#, c-format
+msgid " (f/%.01f)"
+msgstr " (f/%.01f)"
+
+#: libexif/exif-entry.c:1034
+#, c-format
+msgid " (35 equivalent: %d mm)"
+msgstr " (ekvivalent 35: %d mm)"
+
+#: libexif/exif-entry.c:1067 libexif/exif-entry.c:1068
+msgid " sec."
+msgstr " sek."
+
+#: libexif/exif-entry.c:1082
+#, c-format
+msgid " (1/%d sec.)"
+msgstr " (1/%d sek.)"
+
+#: libexif/exif-entry.c:1084
+#, c-format
+msgid " (%d sec.)"
+msgstr " (%d sek.)"
+
+#: libexif/exif-entry.c:1097
+#, c-format
+msgid " (%.02f cd/m^2)"
+msgstr " (%.02f cd/m^2)"
+
+#: libexif/exif-entry.c:1107
+msgid "DSC"
+msgstr "DSC"
+
+#: libexif/exif-entry.c:1109 libexif/exif-entry.c:1149
+#: libexif/exif-entry.c:1236 libexif/exif-entry.c:1287
+#: libexif/exif-entry.c:1296 libexif/exif-entry.c:1332
+#: libexif/fuji/mnote-fuji-entry.c:236 libexif/fuji/mnote-fuji-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:359
+#, c-format
+msgid "Internal error (unknown value %i)"
+msgstr "Vnútorná chyba (neznáma hodnota %i)"
+
+#: libexif/exif-entry.c:1117
+msgid "-"
+msgstr "-"
+
+#: libexif/exif-entry.c:1118
+msgid "Y"
+msgstr "Y"
+
+#: libexif/exif-entry.c:1119
+msgid "Cb"
+msgstr "Cb"
+
+#: libexif/exif-entry.c:1120
+msgid "Cr"
+msgstr "Cr"
+
+#: libexif/exif-entry.c:1121
+msgid "R"
+msgstr "R"
+
+#: libexif/exif-entry.c:1122
+msgid "G"
+msgstr "G"
+
+#: libexif/exif-entry.c:1123
+msgid "B"
+msgstr "B"
+
+#: libexif/exif-entry.c:1124
+#, fuzzy
+msgid "Reserved"
+msgstr "rezervované"
+
+#: libexif/exif-entry.c:1147
+msgid "Directly photographed"
+msgstr "Priamo odfotené"
+
+#: libexif/exif-entry.c:1160
+msgid "YCbCr4:2:2"
+msgstr "YCbCr4:2:2"
+
+#: libexif/exif-entry.c:1162
+msgid "YCbCr4:2:0"
+msgstr "YCbCr4:2:0"
+
+#: libexif/exif-entry.c:1179
+#, c-format
+msgid "Within distance %i of (x,y) = (%i,%i)"
+msgstr "Vo vzdialenosti %i z (x,y) = (%i,%i)"
+
+#: libexif/exif-entry.c:1188
+#, c-format
+msgid "Within rectangle (width %i, height %i) around (x,y) = (%i,%i)"
+msgstr "V obdĺžniku (šírka %i, výška %i) okolo (x,y) = (%i,%i)"
+
+#: libexif/exif-entry.c:1194
+#, c-format
+msgid "Unexpected number of components (%li, expected 2, 3, or 4)."
+msgstr "Neočakávaný počet zložiek (%li, očakávalo sa 2, 3 alebo 4)."
+
+#: libexif/exif-entry.c:1232
+msgid "Sea level"
+msgstr "úroveň mora"
+
+# exif-gpsaltituderef
+#: libexif/exif-entry.c:1234
+msgid "Sea level reference"
+msgstr "referencia úrovene mora"
+
+#: libexif/exif-entry.c:1342
+#, c-format
+msgid "Unknown value %i"
+msgstr "neznáma hodnota %i"
+
+#: libexif/exif-format.c:37
+msgid "Short"
+msgstr "short"
+
+#: libexif/exif-format.c:38
+msgid "Rational"
+msgstr "rational"
+
+#: libexif/exif-format.c:39
+msgid "SRational"
+msgstr "SRational"
+
+#: libexif/exif-format.c:40
+msgid "Undefined"
+msgstr "nedefinovaný"
+
+#: libexif/exif-format.c:41
+msgid "ASCII"
+msgstr "ASCII"
+
+#: libexif/exif-format.c:42
+msgid "Long"
+msgstr "long"
+
+#: libexif/exif-format.c:43
+msgid "Byte"
+msgstr "bajt"
+
+#: libexif/exif-format.c:44
+msgid "SByte"
+msgstr "SByte"
+
+#: libexif/exif-format.c:45
+msgid "SShort"
+msgstr "SShort"
+
+#: libexif/exif-format.c:46
+msgid "SLong"
+msgstr "SLong"
+
+#: libexif/exif-format.c:47
+msgid "Float"
+msgstr "float"
+
+#: libexif/exif-format.c:48
+msgid "Double"
+msgstr "double"
+
+#: libexif/exif-loader.c:119
+#, c-format
+msgid "The file '%s' could not be opened."
+msgstr "Súbor „%s“ nebolo možné otvoriť."
+
+#: libexif/exif-loader.c:300
+msgid "The data supplied does not seem to contain EXIF data."
+msgstr "Zdá sa, že zadané údaje neobsahujú údaje EXIF."
+
+#: libexif/exif-log.c:43
+msgid "Debugging information"
+msgstr "Ladiace informácie"
+
+#: libexif/exif-log.c:44
+msgid "Debugging information is available."
+msgstr "Ladiace informácie sú dostupné."
+
+#: libexif/exif-log.c:45
+msgid "Not enough memory"
+msgstr "Nedostatok pamäte"
+
+#: libexif/exif-log.c:46
+msgid "The system cannot provide enough memory."
+msgstr "Systém neposkytol dostatok pamäte."
+
+#: libexif/exif-log.c:47
+msgid "Corrupt data"
+msgstr "Poškodené údaje"
+
+#: libexif/exif-log.c:48
+msgid "The data provided does not follow the specification."
+msgstr "Poskytnuté údaje nezodpovedajú špecifikácii."
+
+# exif-gpsversionid
+#: libexif/exif-tag.c:62
+#, fuzzy
+msgid "GPS Tag Version"
+msgstr "verzia GPS štítka"
+
+#: libexif/exif-tag.c:63
+msgid ""
+"Indicates the version of <GPSInfoIFD>. The version is given as 2.0.0.0. This "
+"tag is mandatory when <GPSInfo> tag is present. (Note: The <GPSVersionID> "
+"tag is given in bytes, unlike the <ExifVersion> tag. When the version is "
+"2.0.0.0, the tag value is 02000000.H)."
+msgstr ""
+"Označuje verziu <GPSInfoIFD>. Verzia sa udáva ako 2.0.0.0. Tento štítok je "
+"povinný, ak je prítomný štítok <GPSInfo>. (Pozn.: Štítok <GPSVersionID> je "
+"uvedený v bajtoch na rozdiel od štítka <ExifVersion>. Keď je verzia 2.0.0.0, "
+"hodnota štítka je 02000000.H)."
+
+#: libexif/exif-tag.c:69
+msgid "Interoperability Index"
+msgstr "Index Interoperability"
+
+#: libexif/exif-tag.c:70
+msgid ""
+"Indicates the identification of the Interoperability rule. Use \"R98\" for "
+"stating ExifR98 Rules. Four bytes used including the termination code "
+"(NULL). see the separate volume of Recommended Exif Interoperability Rules "
+"(ExifR98) for other tags used for ExifR98."
+msgstr ""
+"Označuje identifkáciu Pravidla interoperability. Použite \"R98\" pre "
+"vyhlásenie pravidiel ExifR98. Použité štyri bajty vrátane ukončovacieho "
+"znaku (NULL). Ďalšie značky použité v ExifR98 nájdete v samostatnom zväzku "
+"Recommended Exif Interoperability Rules (ExifR98)."
+
+# exif-gpslatituderef
+#: libexif/exif-tag.c:76
+msgid "North or South Latitude"
+msgstr "Severná alebo južná šírka"
+
+#: libexif/exif-tag.c:77
+msgid ""
+"Indicates whether the latitude is north or south latitude. The ASCII value "
+"'N' indicates north latitude, and 'S' is south latitude."
+msgstr ""
+"Označuje, či je zemepisná šírka severná alebo južná šírka. ASCII hodnota „N“ "
+"označuje severnú šírku a „S“ južnú šírku."
+
+#: libexif/exif-tag.c:81
+msgid "Interoperability Version"
+msgstr "Verzia Interoperability"
+
+# exif-gpslatitude
+#: libexif/exif-tag.c:83
+msgid "Latitude"
+msgstr "zemepisná šírka"
+
+#: libexif/exif-tag.c:84
+msgid ""
+"Indicates the latitude. The latitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is dd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is dd/1,mmmm/100,0/1."
+msgstr ""
+"Označuje zemepisnú šírku. Zemepisná šírka je vyjadrená tromi RACIONÁLNYMI "
+"hodnotami udanými v stupňoch, minútach a sekundách. Stupne, minúty a sekundy "
+"sú vyjadrené vo formáte ddd/1,mm/1,ss/1. Keď sú použité stupne, minúty a "
+"napr. zlomky minút sú zadané na dve desatinné miesta, formát je ddd/1,"
+"mmmm/100,0/1."
+
+# exif-gpslongituderef
+#: libexif/exif-tag.c:91
+msgid "East or West Longitude"
+msgstr "východná alebo západná dĺžka"
+
+#: libexif/exif-tag.c:92
+msgid ""
+"Indicates whether the longitude is east or west longitude. ASCII 'E' "
+"indicates east longitude, and 'W' is west longitude."
+msgstr ""
+"Označuje, či je zemepisná dĺžka východná alebo západná dĺžka. ASCII hodnota "
+"„E“ označuje východnú dĺžku a „W“ západnú dĺžku."
+
+# exif-gpslongitude
+#: libexif/exif-tag.c:95
+msgid "Longitude"
+msgstr "zemepisná dĺžka"
+
+#: libexif/exif-tag.c:96
+msgid ""
+"Indicates the longitude. The longitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is ddd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is ddd/1,mmmm/100,0/1."
+msgstr ""
+"Označuje zemepisnú dĺžku. Zemepisná dĺžka je vyjadrená tromi RACIONÁLNYMI "
+"hodnotami udanými v stupňoch, minútach a sekundách. Stupne, minúty a sekundy "
+"sú vyjadrené vo formáte ddd/1,mm/1,ss/1. Keď sú použité stupne, minúty a "
+"napr. zlomky minút sú zadané na dve desatinné miesta, formát je ddd/1,"
+"mmmm/100,0/1."
+
+# exif-gpsaltituderef
+#: libexif/exif-tag.c:103
+#, fuzzy
+msgid "Altitude Reference"
+msgstr "referencia nadmorskej výšky"
+
+#: libexif/exif-tag.c:104
+msgid ""
+"Indicates the altitude used as the reference altitude. If the reference is "
+"sea level and the altitude is above sea level, 0 is given. If the altitude "
+"is below sea level, a value of 1 is given and the altitude is indicated as "
+"an absolute value in the GSPAltitude tag. The reference unit is meters. Note "
+"that this tag is BYTE type, unlike other reference tags."
+msgstr ""
+"Označuje nadmorskú výšku, ktorá sa použije ako referenčná. Ak je referenčnou "
+"hodnotou úroveň hladiny mora a nadmorská výška je nad hladinou mora, udáva "
+"sa 0. Ak je nadmorská výška pod hladinou mora, udáva sa hodnota 0 a "
+"nadmorská výška sa uvedie ako absolútna hodnota v štítku GSPAltitude. "
+"Referenčná jednotka sú metre. Všimnite si, že tento štítok je typy BAJT na "
+"rozdiel od iných referenčných štítkov."
+
+# exif-gpsaltitude
+#: libexif/exif-tag.c:110
+msgid "Altitude"
+msgstr "nadmorská výška"
+
+#: libexif/exif-tag.c:111
+msgid ""
+"Indicates the altitude based on the reference in GPSAltitudeRef. Altitude is "
+"expressed as one RATIONAL value. The reference unit is meters."
+msgstr ""
+"Označuje nadmorskú výšku na základe referenčného GPSAltitudeRef. Nadmorská "
+"výška je vyjadrená ako jedna RACIONÁLNA hodnota. Referenčná jednotka sú "
+"metre."
+
+#: libexif/exif-tag.c:114
+#, fuzzy
+msgid "GPS Time (Atomic Clock)"
+msgstr "GPS čas (atómové hodiny)"
+
+#: libexif/exif-tag.c:115
+msgid ""
+"Indicates the time as UTC (Coordinated Universal Time). TimeStamp is "
+"expressed as three RATIONAL values giving the hour, minute, and second."
+msgstr ""
+"Indikuje čas ako UTC (Coordinated Universal Time). TimeStamp je vyjadrený "
+"ako tri hodnoty RATIONAL udávajúce hodiny, minúty a sekundy."
+
+#: libexif/exif-tag.c:118
+msgid "GPS Satellites"
+msgstr ""
+
+#: libexif/exif-tag.c:119
+msgid ""
+"Indicates the GPS satellites used for measurements. This tag can be used to "
+"describe the number of satellites, their ID number, angle of elevation, "
+"azimuth, SNR and other information in ASCII notation. The format is not "
+"specified. If the GPS receiver is incapable of taking measurements, value of "
+"the tag shall be set to NULL."
+msgstr ""
+"Indicates ktoré GPS satelity boli na merania použité. Táto značka môže "
+"popisovať počet satelitov, ich ID čísla, uhol elevácie, azimut, SNR a iné "
+"informácie v zápise ASCII. Formát nie je predpísaný. Ak nie je GPS prijímač "
+"schopný merania, hodnota tejto značky by mala byť NULL."
+
+#: libexif/exif-tag.c:125
+#, fuzzy
+msgid "GPS Receiver Status"
+msgstr "Stav prijímača GPS"
+
+#: libexif/exif-tag.c:126
+msgid ""
+"Indicates the status of the GPS receiver when the image is recorded. 'A' "
+"means measurement is in progress, and 'V' means the measurement is "
+"Interoperability."
+msgstr ""
+"Indikuje stav prijímača GPS pri zázname obrázka. „A“ znamená prebiehajúce "
+"meranie a „V“ znamená, že meranie je Interoperability."
+
+#: libexif/exif-tag.c:129
+#, fuzzy
+msgid "GPS Measurement Mode"
+msgstr "režim GPS merania"
+
+#: libexif/exif-tag.c:130
+msgid ""
+"Indicates the GPS measurement mode. '2' means two-dimensional measurement "
+"and '3' means three-dimensional measurement is in progress."
+msgstr ""
+"Indikuje režim merania GPS. „2“ znamená prebiehajúce dvojrozmerné a „3“ "
+"trojrozmerné meranie."
+
+#: libexif/exif-tag.c:133
+#, fuzzy
+msgid "Measurement Precision"
+msgstr "Presnosť merania"
+
+#: libexif/exif-tag.c:134
+msgid ""
+"Indicates the GPS DOP (data degree of precision). An HDOP value is written "
+"during two-dimensional measurement, and PDOP during three-dimensional "
+"measurement."
+msgstr ""
+"Indikuje GPS DOP (dátový stupeň presnosti). Hodnota HDOP sa zapisuje počas "
+"dvojrozmerného merania a PDOP počas trojrozmerného merania."
+
+#: libexif/exif-tag.c:137
+#, fuzzy
+msgid "Speed Unit"
+msgstr "jednotky rýchlosti"
+
+#: libexif/exif-tag.c:138
+msgid ""
+"Indicates the unit used to express the GPS receiver speed of movement. 'K', "
+"'M' and 'N' represent kilometers per hour, miles per hour, and knots."
+msgstr ""
+"Indikuje jednotky vyjadrujúce rýchlosť pohybu GPS. „K“, „M“ a „N“ "
+"predstavujú kilometre za hodinu, míle za hodinu a uzly."
+
+#: libexif/exif-tag.c:141
+#, fuzzy
+msgid "Speed of GPS Receiver"
+msgstr "rýchlosť prijímača GPS"
+
+#: libexif/exif-tag.c:142
+msgid "Indicates the speed of GPS receiver movement."
+msgstr "Značí rýchlosť pohybu GPS prijímača."
+
+#: libexif/exif-tag.c:143
+msgid "Reference for direction of movement"
+msgstr "referencia smeru pohybu"
+
+#: libexif/exif-tag.c:144
+#, fuzzy
+msgid ""
+"Indicates the reference for giving the direction of GPS receiver movement. "
+"'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+"Referencia pre smer obrázka, keď bol zachytený. „T“ značí skutočný smer "
+"obrázka a „M“ je magnetický smer."
+
+#: libexif/exif-tag.c:147
+#, fuzzy
+msgid "Direction of Movement"
+msgstr "smer pohybu"
+
+#: libexif/exif-tag.c:148
+#, fuzzy
+msgid ""
+"Indicates the direction of GPS receiver movement. The range of values is "
+"from 0.00 to 359.99."
+msgstr ""
+"Značí smer obrázka, keď bol zachytený. Rozsah hodnôt je od 0.00 do 359.99."
+
+#: libexif/exif-tag.c:150
+#, fuzzy
+msgid "GPS Image Direction Reference"
+msgstr "referencia smeru obrázka podľa GPS"
+
+#: libexif/exif-tag.c:151
+msgid ""
+"Indicates the reference for giving the direction of the image when it is "
+"captured. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+"Referencia pre smer obrázka, keď bol zachytený. „T“ značí skutočný smer "
+"obrázka a „M“ je magnetický smer."
+
+# exif-imagedescription
+#: libexif/exif-tag.c:153
+#, fuzzy
+msgid "GPS Image Direction"
+msgstr "smer obrázka podľa GPS"
+
+#: libexif/exif-tag.c:154
+msgid ""
+"Indicates the direction of the image when it was captured. The range of "
+"values is from 0.00 to 359.99."
+msgstr ""
+"Značí smer obrázka, keď bol zachytený. Rozsah hodnôt je od 0.00 do 359.99."
+
+#: libexif/exif-tag.c:156
+#, fuzzy
+msgid "Geodetic Survey Data Used"
+msgstr "použité geodetické prieskumné dáta"
+
+#: libexif/exif-tag.c:157
+msgid ""
+"Indicates the geodetic survey data used by the GPS receiver. If the survey "
+"data is restricted to Japan, the value of this tag is 'TOKYO' or 'WGS-84'. "
+"If a GPS Info tag is recorded, it is strongly recommended that this tag be "
+"recorded."
+msgstr ""
+"Indikuje geodetické prieskumné dáta použité prijímačom GPS. Ak sú geodetické "
+"dáta obmedzené na Japonsko, hodnota tejto značky je „TOKYO“ alebo „WGS-84“. "
+"Ak je zaznamenaná značka GPS Info dôrazne sa odporúča zaznamenať aj túto "
+"značku."
+
+#: libexif/exif-tag.c:161
+#, fuzzy
+msgid "Reference For Latitude of Destination"
+msgstr "referencia zemepisnej šírky cieľa"
+
+#: libexif/exif-tag.c:162
+#, fuzzy
+msgid ""
+"Indicates whether the latitude of the destination point is north or south "
+"latitude. The ASCII value 'N' indicates north latitude, and 'S' is south "
+"latitude."
+msgstr ""
+"Označuje, či je zemepisná šírka severná alebo južná šírka. ASCII hodnota „N“ "
+"označuje severnú šírku a „S“ južnú šírku."
+
+#: libexif/exif-tag.c:165
+#, fuzzy
+msgid "Latitude of Destination"
+msgstr "zemepisná šírka cieľa"
+
+#: libexif/exif-tag.c:166
+#, fuzzy
+msgid ""
+"Indicates the latitude of the destination point. The latitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If latitude is expressed as degrees, minutes and seconds, a "
+"typical format would be dd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be dd/1,mmmm/100,0/1."
+msgstr ""
+"Označuje zemepisnú šírku. Zemepisná šírka je vyjadrená tromi RACIONÁLNYMI "
+"hodnotami udanými v stupňoch, minútach a sekundách. Stupne, minúty a sekundy "
+"sú vyjadrené vo formáte ddd/1,mm/1,ss/1. Keď sú použité stupne, minúty a "
+"napr. zlomky minút sú zadané na dve desatinné miesta, formát je ddd/1,"
+"mmmm/100,0/1."
+
+#: libexif/exif-tag.c:173
+#, fuzzy
+msgid "Reference for Longitude of Destination"
+msgstr "referencia zemepisnej dĺžky cieľa"
+
+#: libexif/exif-tag.c:174
+#, fuzzy
+msgid ""
+"Indicates whether the longitude of the destination point is east or west "
+"longitude. ASCII 'E' indicates east longitude, and 'W' is west longitude."
+msgstr ""
+"Označuje, či je zemepisná dĺžka východná alebo západná dĺžka. ASCII hodnota "
+"„E“ označuje východnú dĺžku a „W“ západnú dĺžku."
+
+#: libexif/exif-tag.c:177
+#, fuzzy
+msgid "Longitude of Destination"
+msgstr "zemepisná dĺžka cieľa"
+
+#: libexif/exif-tag.c:178
+#, fuzzy
+msgid ""
+"Indicates the longitude of the destination point. The longitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If longitude is expressed as degrees, minutes and seconds, a "
+"typical format would be ddd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be ddd/1,mmmm/100,0/1."
+msgstr ""
+"Označuje zemepisnú dĺžku. Zemepisná dĺžka je vyjadrená tromi RACIONÁLNYMI "
+"hodnotami udanými v stupňoch, minútach a sekundách. Stupne, minúty a sekundy "
+"sú vyjadrené vo formáte ddd/1,mm/1,ss/1. Keď sú použité stupne, minúty a "
+"napr. zlomky minút sú zadané na dve desatinné miesta, formát je ddd/1,"
+"mmmm/100,0/1."
+
+#: libexif/exif-tag.c:186
+#, fuzzy
+msgid "Reference for Bearing of Destination"
+msgstr "referencia vzdialenosti do cieľa"
+
+#: libexif/exif-tag.c:187
+#, fuzzy
+msgid ""
+"Indicates the reference used for giving the bearing to the destination "
+"point. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+"Referencia pre smer obrázka, keď bol zachytený. „T“ značí skutočný smer "
+"obrázka a „M“ je magnetický smer."
+
+#: libexif/exif-tag.c:190
+#, fuzzy
+msgid "Bearing of Destination"
+msgstr "smer cieľa"
+
+#: libexif/exif-tag.c:191
+#, fuzzy
+msgid ""
+"Indicates the bearing to the destination point. The range of values is from "
+"0.00 to 359.99."
+msgstr ""
+"Značí smer obrázka, keď bol zachytený. Rozsah hodnôt je od 0.00 do 359.99."
+
+#: libexif/exif-tag.c:193
+#, fuzzy
+msgid "Reference for Distance to Destination"
+msgstr "referencia vzdialenosti do cieľa"
+
+#: libexif/exif-tag.c:194
+msgid ""
+"Indicates the unit used to express the distance to the destination point. "
+"'K', 'M' and 'N' represent kilometers, miles and knots."
+msgstr ""
+"Indikuje jednotky vyjadrujúce vzdialenosť do cieľového bodu. „K“, „M“ a „N“ "
+"predstavujú kilometre za hodinu, míle za hodinu a uzly."
+
+#: libexif/exif-tag.c:197
+#, fuzzy
+msgid "Distance to Destination"
+msgstr "vzdialenosť do cieľa"
+
+#: libexif/exif-tag.c:198
+msgid "Indicates the distance to the destination point."
+msgstr "Označuje vzdialenosť k cieľovému bodu."
+
+# exif-sensingmethod
+#: libexif/exif-tag.c:199
+#, fuzzy
+msgid "Name of GPS Processing Method"
+msgstr "snímacia metóda"
+
+#: libexif/exif-tag.c:200
+msgid ""
+"A character string recording the name of the method used for location "
+"finding. The first byte indicates the character code used, and this is "
+"followed by the name of the method. Since the Type is not ASCII, NULL "
+"termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:205
+msgid "Name of GPS Area"
+msgstr ""
+
+#: libexif/exif-tag.c:206
+msgid ""
+"A character string recording the name of the GPS area. The first byte "
+"indicates the character code used, and this is followed by the name of the "
+"GPS area. Since the Type is not ASCII, NULL termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:210
+#, fuzzy
+msgid "GPS Date"
+msgstr "Dátum"
+
+#: libexif/exif-tag.c:211
+msgid ""
+"A character string recording date and time information relative to UTC "
+"(Coordinated Universal Time). The format is \"YYYY:MM:DD\". The length of "
+"the string is 11 bytes including NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:215
+msgid "GPS Differential Correction"
+msgstr ""
+
+#: libexif/exif-tag.c:216
+msgid ""
+"Indicates whether differential correction is applied to the GPS receiver."
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "New Subfile Type"
+msgstr "Nový typ podsúboru"
+
+#: libexif/exif-tag.c:220
+msgid "A general indication of the kind of data contained in this subfile."
+msgstr "Všeobecné označenie údajov obsiahnutých v tomto podsúbore."
+
+# exif-imagewidth
+#: libexif/exif-tag.c:222
+msgid "Image Width"
+msgstr "šírka obrázka"
+
+#: libexif/exif-tag.c:223
+msgid ""
+"The number of columns of image data, equal to the number of pixels per row. "
+"In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+"Počet stĺpcov obrazových údajov rovný počtu pixelov na riadok. V JPEG "
+"komprimovaných dátach sa namiesto tejto značky používa JPEG značka."
+
+# exif-imagelength
+#: libexif/exif-tag.c:227
+msgid "Image Length"
+msgstr "dĺžka obrázka"
+
+#: libexif/exif-tag.c:228
+msgid ""
+"The number of rows of image data. In JPEG compressed data a JPEG marker is "
+"used instead of this tag."
+msgstr ""
+"Počet riadkov obrazových údajov rovný počtu pixelov na stĺpec. V JPEG "
+"komprimovaných dátach sa namiesto tejto značky používa JPEG značka."
+
+# exif-bitspersample
+#: libexif/exif-tag.c:231
+msgid "Bits per Sample"
+msgstr "bitov na vzorku"
+
+#: libexif/exif-tag.c:232
+msgid ""
+"The number of bits per image component. In this standard each component of "
+"the image is 8 bits, so the value for this tag is 8. See also "
+"<SamplesPerPixel>. In JPEG compressed data a JPEG marker is used instead of "
+"this tag."
+msgstr ""
+"Počet bitov na obrazovú zložku. V tomto štandarde má každá zložka 8 bitov, "
+"takže hodnota tejto značky je 8. Pozri aj <SamplesPerPixel>. V JPEG "
+"komprimovaných dátach sa namiesto tejto značky používa JPEG značka."
+
+# exif-compression
+#: libexif/exif-tag.c:237
+msgid "Compression"
+msgstr "kompresia"
+
+#: libexif/exif-tag.c:238
+msgid ""
+"The compression scheme used for the image data. When a primary image is JPEG "
+"compressed, this designation is not necessary and is omitted. When "
+"thumbnails use JPEG compression, this tag value is set to 6."
+msgstr ""
+"Kompresná schéma použitá na obrazové dáta. Keď je primárny obrázok "
+"komprimovaný ako JPEG, tento údaj nie je potrebný a vynecháva sa. Ak náhľady "
+"používajú JPEG kompresiu, hodnota tejto značky je 6."
+
+# exif-photometricinterpretation
+#: libexif/exif-tag.c:244
+msgid "Photometric Interpretation"
+msgstr "fotometrická interpretácia"
+
+#: libexif/exif-tag.c:245
+msgid ""
+"The pixel composition. In JPEG compressed data a JPEG marker is used instead "
+"of this tag."
+msgstr ""
+"Kompozícia pixelov. V JPEG komprimovaných dátach sa namiesto tejto značky "
+"používa JPEG značka."
+
+#: libexif/exif-tag.c:249
+msgid "Fill Order"
+msgstr "poradie vypĺňania"
+
+#: libexif/exif-tag.c:251
+msgid "Document Name"
+msgstr "názov dokumentu"
+
+# exif-imagedescription
+#: libexif/exif-tag.c:253
+msgid "Image Description"
+msgstr "popis obrázka"
+
+#: libexif/exif-tag.c:254
+msgid ""
+"A character string giving the title of the image. It may be a comment such "
+"as \"1988 company picnic\" or the like. Two-bytes character codes cannot be "
+"used. When a 2-bytes code is necessary, the Exif Private tag <UserComment> "
+"is to be used."
+msgstr ""
+"Znakový reťazec udávajúci nadpis obrázka. Môže to byť komentár ako \"rodinný "
+"piknik 1988\" alebo podobne. Dvojbajtové znakové sady nie je možné použiť. "
+"Keď je potrebná dvojbajtová znaková sada, použite Privátnu značku Exif "
+"<UserComment>."
+
+# exif-make
+#: libexif/exif-tag.c:260
+msgid "Manufacturer"
+msgstr "výrobca"
+
+#: libexif/exif-tag.c:261
+msgid ""
+"The manufacturer of the recording equipment. This is the manufacturer of the "
+"DSC, scanner, video digitizer or other equipment that generated the image. "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+"Výrobca záznamového zariadenia. Toto je výrobca digitálneho fotoaparátu, "
+"skenera, videodigitalizátora alebo iného zariadenia, ktoré vytvorilo "
+"obrázok. Keď je pole prázdne, výrobca je neznámy."
+
+# exif-model
+#: libexif/exif-tag.c:267
+msgid "Model"
+msgstr "model"
+
+#: libexif/exif-tag.c:268
+msgid ""
+"The model name or model number of the equipment. This is the model name or "
+"number of the DSC, scanner, video digitizer or other equipment that "
+"generated the image. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Názov alebo číslo modelu zariadenia. Toto je model digitálneho fotoaparátu, "
+"skenera, videodigitalizátora alebo iného zariadenia, ktoré vytvorilo "
+"obrázok. Keď je pole prázdne, model je neznámy."
+
+# exif-stripoffsets
+#: libexif/exif-tag.c:273
+msgid "Strip Offsets"
+msgstr "umiestnenie obrazových dát"
+
+#: libexif/exif-tag.c:274
+msgid ""
+"For each strip, the byte offset of that strip. It is recommended that this "
+"be selected so the number of strip bytes does not exceed 64 Kbytes. With "
+"JPEG compressed data this designation is not needed and is omitted. See also "
+"<RowsPerStrip> and <StripByteCounts>."
+msgstr ""
+"Pre každý prúžok, ofset prúžka v bajtoch. Odporúča sa ho zvoliť tak, aby "
+"počet bajtov prúžka neprekročil 60 kilobajtov. Pri JPEG komprimovaných "
+"dátach tento údaj nie je potrebný a vynechá sa. Pozri aj <StripOffsets> a "
+"<StripByteCounts>."
+
+# exif-orientation
+#: libexif/exif-tag.c:280
+msgid "Orientation"
+msgstr "orientácia"
+
+#: libexif/exif-tag.c:281
+msgid "The image orientation viewed in terms of rows and columns."
+msgstr "Orientácia obrázka vzhľadom na riadky a stĺpce."
+
+# exif-samplesperpixel
+#: libexif/exif-tag.c:284
+msgid "Samples per Pixel"
+msgstr "vzoriek na pixel"
+
+#: libexif/exif-tag.c:285
+msgid ""
+"The number of components per pixel. Since this standard applies to RGB and "
+"YCbCr images, the value set for this tag is 3. In JPEG compressed data a "
+"JPEG marker is used instead of this tag."
+msgstr ""
+"Počet zložiek na pixel. Keďže tento štandard sa vzťahuje na RGB a YCbCr "
+"obrázky, hodnota tejto značky je 3. V JPEG komprimovaných dátach sa namiesto "
+"tejto značky používa JPEG značka."
+
+# exif-rowsperstrip
+#: libexif/exif-tag.c:290
+msgid "Rows per Strip"
+msgstr "riadkov na prúžok"
+
+#: libexif/exif-tag.c:291
+msgid ""
+"The number of rows per strip. This is the number of rows in the image of one "
+"strip when an image is divided into strips. With JPEG compressed data this "
+"designation is not needed and is omitted. See also <StripOffsets> and "
+"<StripByteCounts>."
+msgstr ""
+"Počet riadkov na prúžok. Toto je počet obrazových riadkov v jednom prúžku, "
+"keď sa obrázok delí na prúžky. Pri JPEG komprimovaných dátach tento údaj nie "
+"je potrebný a vynechá sa. Pozri aj <StripOffsets> a <StripByteCounts>."
+
+# exif-stripbytecounts
+#: libexif/exif-tag.c:297
+msgid "Strip Byte Count"
+msgstr "bajtov na komprimovaný prúžok"
+
+#: libexif/exif-tag.c:298
+msgid ""
+"The total number of bytes in each strip. With JPEG compressed data this "
+"designation is not needed and is omitted."
+msgstr ""
+"Celkový počet bajtov na každý komprimovaný prúžok. Pre JPEG komprimované "
+"dáta tento údaj nie je potrebný a vynechá sa."
+
+# exif-xresolution
+#: libexif/exif-tag.c:301
+#, fuzzy
+msgid "X-Resolution"
+msgstr "horizontálne rozlíšenie"
+
+#: libexif/exif-tag.c:302
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageWidth> direction. "
+"When the image resolution is unknown, 72 [dpi] is designated."
+msgstr ""
+"Počet pixelov na <ResolutionUnit> v smere <ImageWidth>. Keď je rozlíšenie "
+"obrázka neznáme, použije sa 72 [dpi]."
+
+# exif-xresolution
+#: libexif/exif-tag.c:306
+#, fuzzy
+msgid "Y-Resolution"
+msgstr "horizontálne rozlíšenie"
+
+#: libexif/exif-tag.c:307
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageLength> direction. "
+"The same value as <XResolution> is designated."
+msgstr ""
+"Počet pixelov na <ResolutionUnit> v smere <ImageLength>. Použije sa rovnaká "
+"hodnota ako <XResolution>."
+
+# exif-planarconfiguration
+#: libexif/exif-tag.c:311
+msgid "Planar Configuration"
+msgstr "rovinná konfigurácia"
+
+#: libexif/exif-tag.c:312
+msgid ""
+"Indicates whether pixel components are recorded in a chunky or planar "
+"format. In JPEG compressed files a JPEG marker is used instead of this tag. "
+"If this field does not exist, the TIFF default of 1 (chunky) is assumed."
+msgstr ""
+"Označuje, či sa obrazové zložky zaznamenávajú v kúskovom alebo rovinnom "
+"formáte. V JPEG komprimovaných dátach sa namiesto tejto značky používa JPEG "
+"značka. Ak toto pole neexistuje, štandardná hodnota pre TIFF sa predpokladá "
+"1 (kúskový)."
+
+# exif-resolutionunit
+#: libexif/exif-tag.c:317
+msgid "Resolution Unit"
+msgstr "jednotka rozlíšenia"
+
+#: libexif/exif-tag.c:318
+msgid ""
+"The unit for measuring <XResolution> and <YResolution>. The same unit is "
+"used for both <XResolution> and <YResolution>. If the image resolution is "
+"unknown, 2 (inches) is designated."
+msgstr ""
+"Jednotka pre meranie <XResolution> and <YResolution>. Rovnaká jednotka sa "
+"používa pre <XResolution> aj <YResolution>. Ak je rozlíšenie obrázka "
+"neznáme, použije sa 2 (palce)."
+
+# exif-transferfunction
+#: libexif/exif-tag.c:323
+msgid "Transfer Function"
+msgstr "prenosová funkcia"
+
+#: libexif/exif-tag.c:324
+msgid ""
+"A transfer function for the image, described in tabular style. Normally this "
+"tag is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+"Prenosová funkcia obrázka, popísaná tabuľkou. Bežne táto značka nie je "
+"potrebná, keďže farebný priestor je uvedený v informačnej značke farebného "
+"priestoru (<ColorSpace>)."
+
+# exif-software
+#: libexif/exif-tag.c:328
+msgid "Software"
+msgstr "softvér"
+
+#: libexif/exif-tag.c:329
+msgid ""
+"This tag records the name and version of the software or firmware of the "
+"camera or image input device used to generate the image. The detailed format "
+"is not specified, but it is recommended that the example shown below be "
+"followed. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Táto značka zaznamenáva názov a verziu softvéru alebo firmvéru fotoaparátu "
+"alebo zariadenia, ktoré bolo použité pri tvorbe obrázka. Podrobný formát nie "
+"je špecifikovaný, ale odporúča sa dodržiavať formát ako v dolu uvedenom "
+"príklade. Keď je pole prázdne, verzia je neznáma."
+
+# exif-datetime
+#: libexif/exif-tag.c:336
+msgid "Date and Time"
+msgstr "dátum a čas"
+
+#: libexif/exif-tag.c:337
+msgid ""
+"The date and time of image creation. In this standard (EXIF-2.1) it is the "
+"date and time the file was changed."
+msgstr ""
+"Dátum a čas vytvorenia obrázka. V tomto štandarde (EXIF-2.1) je to dátum a "
+"čas zmeny súboru."
+
+# exif-artist
+#: libexif/exif-tag.c:340
+msgid "Artist"
+msgstr "Autor"
+
+#: libexif/exif-tag.c:341
+msgid ""
+"This tag records the name of the camera owner, photographer or image "
+"creator. The detailed format is not specified, but it is recommended that "
+"the information be written as in the example below for ease of "
+"Interoperability. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Táto značka zaznamenáva vlastníka fotoaparátu, fotografa alebo tvorcu "
+"obrázka. Presný formát nie je špecifikovaný, ale odporúča sa, aby kvôli "
+"interoperabilite bola informácia zapísaná ako v dolu uvedenom príklade. Keď "
+"je pole prázdne, umelec je neznámy."
+
+# exif-whitepoint
+#: libexif/exif-tag.c:347 libexif/pentax/mnote-pentax-tag.c:113
+msgid "White Point"
+msgstr "biely bod"
+
+#: libexif/exif-tag.c:348
+msgid ""
+"The chromaticity of the white point of the image. Normally this tag is not "
+"necessary, since color space is specified in the color space information tag "
+"(<ColorSpace>)."
+msgstr ""
+"Chromaticita bieleho bodu obrázka. Bežne nie je táto značka potrebná, keďže "
+"farebný priestor je uvedený v informačnej značke farebného priestoru "
+"(<ColorSpace>)."
+
+# exif-primarychromaticities
+#: libexif/exif-tag.c:353
+msgid "Primary Chromaticities"
+msgstr "primárne chromaticity"
+
+#: libexif/exif-tag.c:354
+msgid ""
+"The chromaticity of the three primary colors of the image. Normally this tag "
+"is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+"Chromaticity troch primárnych farieb obrázka. Bežne nie je táto značka "
+"potrebná, keďže farebný priestor je uvedený v informačnej značke farebného "
+"priestoru (<ColorSpace>)."
+
+#: libexif/exif-tag.c:359
+msgid "Defined by Adobe Corporation to enable TIFF Trees within a TIFF file."
+msgstr "Definovala Adobe Corporation aby umožnila TIFF stromy v TIFF súboroch."
+
+#: libexif/exif-tag.c:362
+msgid "Transfer Range"
+msgstr "prenosový rozsah"
+
+# exif-jpeginterchangeformat
+#: libexif/exif-tag.c:366
+msgid "JPEG Interchange Format"
+msgstr "formát JPEG"
+
+#: libexif/exif-tag.c:367
+msgid ""
+"The offset to the start byte (SOI) of JPEG compressed thumbnail data. This "
+"is not used for primary image JPEG data."
+msgstr ""
+"Ofset k začiatočnému bajtu (SOI) komprimovaných JPEG dát náhľadu. Nepoužíva "
+"sa pre JPEG dáta primárneho obrázka."
+
+# exif-jpeginterchangeformatlength
+#: libexif/exif-tag.c:372
+msgid "JPEG Interchange Format Length"
+msgstr "dĺžka JPEG dát"
+
+#: libexif/exif-tag.c:373
+msgid ""
+"The number of bytes of JPEG compressed thumbnail data. This is not used for "
+"primary image JPEG data. JPEG thumbnails are not divided but are recorded as "
+"a continuous JPEG bitstream from SOI to EOI. Appn and COM markers should not "
+"be recorded. Compressed thumbnails must be recorded in no more than 64 "
+"Kbytes, including all other data to be recorded in APP1."
+msgstr ""
+"Počet bajtov komprimovaných JPEG dát náhľadu. Nepoužíva sa pre JPEG dáta "
+"primárneho obrázka. JPEG náhľady sa nerozdeľujú ale zaznamenávajú sa ako "
+"súvislý bitový tok JPEG od SOI po EOI. Značky Appn a COM sa nezaznamenávajú. "
+"Komprimované náhľady nesmú byť zaznamenané vo viac ako 64 kilobajtoch "
+"vrátane všetkých ostatných dát zaznamenaných v APP1."
+
+# exif-ycbcrcoefficients
+#: libexif/exif-tag.c:382
+msgid "YCbCr Coefficients"
+msgstr "koeficienty YCbCr"
+
+#: libexif/exif-tag.c:383
+#, fuzzy
+msgid ""
+"The matrix coefficients for transformation from RGB to YCbCr image data. No "
+"default is given in TIFF; but here the value given in \"Color Space "
+"Guidelines\", is used as the default. The color space is declared in a color "
+"space information tag, with the default being the value that gives the "
+"optimal image characteristics Interoperability this condition."
+msgstr ""
+"Matica koeficientov transformácie obrazových dát z RGB na YCbCr. V TIFF nie "
+"je definovaná štandardná hodnota; ale tu sa používa hodnota uvedená v "
+"Prílohe E, \"Pokyny ohľadne farebného priestoru\". Farebný priestor je "
+"deklarovaný informačným štítkom farebného priestoru, pričom štandardnou "
+"hodnotou je tá, ktorá dáva optimálnu charakteristiku interoperability tohto "
+"stavu."
+
+# exif-ycbcrsubsampling
+#: libexif/exif-tag.c:392
+msgid "YCbCr Sub-Sampling"
+msgstr "podvzorkovanie YCbCr"
+
+#: libexif/exif-tag.c:393
+msgid ""
+"The sampling ratio of chrominance components in relation to the luminance "
+"component. In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+"Vzorkovací pomer zložiek chrominancie v pomere k svietivosti. V dátach "
+"komprimovaných JPEG sa namiesto tohto štítka používa značka JPEG."
+
+# exif-ycbcrpositioning
+#: libexif/exif-tag.c:398
+msgid "YCbCr Positioning"
+msgstr "poloha YCbCr"
+
+#: libexif/exif-tag.c:399
+msgid ""
+"The position of chrominance components in relation to the luminance "
+"component. This field is designated only for JPEG compressed data or "
+"uncompressed YCbCr data. The TIFF default is 1 (centered); but when Y:Cb:Cr "
+"= 4:2:2 it is recommended in this standard that 2 (co-sited) be used to "
+"record data, in order to improve the image quality when viewed on TV "
+"systems. When this field does not exist, the reader shall assume the TIFF "
+"default. In the case of Y:Cb:Cr = 4:2:0, the TIFF default (centered) is "
+"recommended. If the reader does not have the capability of supporting both "
+"kinds of <YCbCrPositioning>, it shall follow the TIFF default regardless of "
+"the value in this field. It is preferable that readers be able to support "
+"both centered and co-sited positioning."
+msgstr ""
+"Poloha zložiek chrominancie vzhľadom ku zložke svietivosti. Toto pole je "
+"určené iba pre komprimované dáta JPEG alebo nekomprimované dáta YCbCr. "
+"Štandard TIFF je 1 (centrované), ale keď Y:Cb:Cr = 4:2:2 odporúča sa v tomto "
+"štandarde použiť pre záznam dát 2 (na rovnakom mieste), aby sa zlepšila "
+"kvalita obrazu pri zobrazovaní na televíznych systémoch. Keď toto pole "
+"neexistuje, čítacie zariadenie bude predpokladať štandard TIFF. V prípade, "
+"že Y:Cb:Cr = 4:2:0 sa odporúča štandard TIFF (centrované). Ak čítacie "
+"zariadenie nedokáže naraz podporovať oba druhy <YCbCrPositioning>, bude sa "
+"držať štandardu TIFF nezávisle od hodnoty v tomto poli. Uprednostňuje sa, "
+"aby čítacie zariadenia podporovali obe polohy - centrované aj na rovnakom "
+"mieste."
+
+# exif-referenceblackwhite
+#: libexif/exif-tag.c:414
+msgid "Reference Black/White"
+msgstr "referenčná čierna/biela"
+
+#: libexif/exif-tag.c:415
+msgid ""
+"The reference black point value and reference white point value. No defaults "
+"are given in TIFF, but the values below are given as defaults here. The "
+"color space is declared in a color space information tag, with the default "
+"being the value that gives the optimal image characteristics "
+"Interoperability these conditions."
+msgstr ""
+"Referenčná hodnota čierneho bodu a referenčná hodnota bieleho bodu. TIFF "
+"neudáva štandardné hodnoty, ale nižšie uvedené hodnoty sú tu dané ako "
+"štandardy. Farebný priestor sa deklaruje v informačnom štítku farebného "
+"priestoru, pričom štandardnou hodnotou je tá, ktorá dáva optimálnu "
+"charakteristiku interoperability tohto stavu."
+
+#: libexif/exif-tag.c:423
+msgid "XML Packet"
+msgstr "XML paket"
+
+#: libexif/exif-tag.c:423
+msgid "XMP Metadata"
+msgstr "XMP metadáta"
+
+# exif-cfapattern
+#: libexif/exif-tag.c:438 libexif/exif-tag.c:784
+msgid "CFA Pattern"
+msgstr "vzorka CFA"
+
+#: libexif/exif-tag.c:439 libexif/exif-tag.c:785
+msgid ""
+"Indicates the color filter array (CFA) geometric pattern of the image sensor "
+"when a one-chip color area sensor is used. It does not apply to all sensing "
+"methods."
+msgstr ""
+"Označuje geometrickú vzorku poľa farebného filtra (CFA) obrazového snímača "
+"pri použítí jednočipového farebného snímača oblasti. Nevzťahuje sa na všetky "
+"metódy snímania."
+
+#: libexif/exif-tag.c:443
+msgid "Battery Level"
+msgstr "úroveň batérie"
+
+# exif-copyright
+#: libexif/exif-tag.c:444
+msgid "Copyright"
+msgstr "autorské práva"
+
+#: libexif/exif-tag.c:445
+msgid ""
+"Copyright information. In this standard the tag is used to indicate both the "
+"photographer and editor copyrights. It is the copyright notice of the person "
+"or organization claiming rights to the image. The Interoperability copyright "
+"statement including date and rights should be written in this field; e.g., "
+"\"Copyright, John Smith, 19xx. All rights reserved.\". In this standard the "
+"field records both the photographer and editor copyrights, with each "
+"recorded in a separate part of the statement. When there is a clear "
+"distinction between the photographer and editor copyrights, these are to be "
+"written in the order of photographer followed by editor copyright, separated "
+"by NULL (in this case, since the statement also ends with a NULL, there are "
+"two NULL codes) (see example 1). When only the photographer is given, it is "
+"terminated by one NULL code (see example 2). When only the editor copyright "
+"is given, the photographer copyright part consists of one space followed by "
+"a terminating NULL code, then the editor copyright is given (see example 3). "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+"Informácia o autorských právach. V tomto štandarde štítok označuje aj práva "
+"fotografa aj redaktora. Je to informácia o autorských právach osoby či "
+"organizácie, ktorá si nárokuje práva na obrázok. Do tohto poľa patrí "
+"vyhlásenie autorských práv vrátane dátumu; napr. \"Copyright, John Smith, "
+"20xx. Všetky práva vyhradené.\". V tomto štandarde pole obsahuje ako "
+"autorské práva fotografa, tak aj redaktora, pričom každé je samostatnou "
+"časťou záznamu. Keď existuje jasný rozdiel medzi autorskými právami "
+"fotografa a redaktora, majú byť zapísané v poradí najskôr fotograf, potom "
+"redaktor, oddelené znakom NULL (v takom prípade, keďže štítok tiež končí "
+"znakom NULL, obsahuje dva znaky NULL) (pozri príklad 1). Keď sa udáva iba "
+"fotograf, je ukončené iba jedným znakom NULL (pozri príklad 2). Keď je pole "
+"nevyplnené, zaobchádza sa s ním ako s neznámym."
+
+#: libexif/exif-tag.c:467
+msgid "Exposure time, given in seconds (sec)."
+msgstr "Čas expozície v sekundách (sek)."
+
+#: libexif/exif-tag.c:469 libexif/pentax/mnote-pentax-tag.c:79
+msgid "F-Number"
+msgstr "číslo F"
+
+# exif-fnumber
+#: libexif/exif-tag.c:470
+msgid "The F number."
+msgstr "číslo F."
+
+#: libexif/exif-tag.c:475
+msgid "Image Resources Block"
+msgstr "blok obrazových prostriedkov"
+
+#: libexif/exif-tag.c:477
+msgid ""
+"A pointer to the Exif IFD. Interoperability, Exif IFD has the same structure "
+"as that of the IFD specified in TIFF. ordinarily, however, it does not "
+"contain image data as in the case of TIFF."
+msgstr ""
+"Ukazovateľ na Exif IFD. Interoperabilita, Exif IFD má rovnakú štruktúru ako "
+"štruktúra IFD podľa špecifikácie v TIFF. Bežne však neobsahuje obrazové dáta "
+"ako v prípade štruktúry v TIFF."
+
+# exif-exposuremode
+#: libexif/exif-tag.c:485
+msgid "Exposure Program"
+msgstr "Program expozície"
+
+#: libexif/exif-tag.c:486
+msgid ""
+"The class of the program used by the camera to set exposure when the picture "
+"is taken."
+msgstr ""
+"Trieda programu, ktorý fotoaparát používa na nastavenie expozície pri fotení "
+"obrázka."
+
+# exif-spectralsensitivity
+#: libexif/exif-tag.c:490
+msgid "Spectral Sensitivity"
+msgstr "spektrálna citlivosť"
+
+#: libexif/exif-tag.c:491
+msgid ""
+"Indicates the spectral sensitivity of each channel of the camera used. The "
+"tag value is an ASCII string compatible with the standard developed by the "
+"ASTM Technical Committee."
+msgstr ""
+"Označuje spektrálnu citlivosť každého z kanálov použitého fotoaparátu. "
+"Hodnota štítka je ASCII reťazec kompatibilný so štandardom vyvinutým "
+"Technickou komisiou ASTM."
+
+#: libexif/exif-tag.c:496
+msgid "GPS Info IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:497
+msgid ""
+"A pointer to the GPS Info IFD. The Interoperability structure of the GPS "
+"Info IFD, like that of Exif IFD, has no image data."
+msgstr ""
+"Ukazovateľ na GPS Info IFD. Štruktúra interoperability GPS Info IFD, rovnako "
+"ako pri Exif IFD, neobsahuje obrazové dáta."
+
+# exif-isospeedratings
+#: libexif/exif-tag.c:503
+msgid "ISO Speed Ratings"
+msgstr "rýchlostné ohodnotenie ISO"
+
+#: libexif/exif-tag.c:504
+msgid ""
+"Indicates the ISO Speed and ISO Latitude of the camera or input device as "
+"specified in ISO 12232."
+msgstr ""
+"Označuje ISO rýchlosť a ISO zemepisnú šírku fotoaparátu alebo vstupného "
+"zariadenia podľa špecifikácie ISO 12232."
+
+#: libexif/exif-tag.c:507
+msgid "Opto-Electronic Conversion Function"
+msgstr ""
+
+# exif-oecf
+#: libexif/exif-tag.c:508
+msgid ""
+"Indicates the Opto-Electronic Conversion Function (OECF) specified in ISO "
+"14524. <OECF> is the relationship between the camera optical input and the "
+"image values."
+msgstr ""
+"Označuje optoelektronickú konverznú funkciu (OECF) podľa špecifikácie ISO "
+"14524. <OECF> je vzťah medzi optickým vstupom fotoaparátu a hodnotami "
+"obrázka."
+
+#: libexif/exif-tag.c:513
+msgid "Time Zone Offset"
+msgstr "posun časového pásma"
+
+#: libexif/exif-tag.c:514
+msgid "Encodes time zone of camera clock relative to GMT."
+msgstr ""
+
+# exif-exifversion
+#: libexif/exif-tag.c:515
+msgid "Exif Version"
+msgstr "verzia exif štítka"
+
+#: libexif/exif-tag.c:516
+msgid ""
+"The version of this standard supported. Nonexistence of this field is taken "
+"to mean nonconformance to the standard."
+msgstr ""
+"Podporovaná verzia tohto štandardu. Neexistencia tohto poľa znamená "
+"nekonformnosť so štandardom."
+
+# exif-datetimeoriginal
+#: libexif/exif-tag.c:520
+#, fuzzy
+msgid "Date and Time (Original)"
+msgstr "dátum a čas vytvorenia dát"
+
+#: libexif/exif-tag.c:521
+msgid ""
+"The date and time when the original image data was generated. For a digital "
+"still camera the date and time the picture was taken are recorded."
+msgstr ""
+"Dátum a čas, kedy boli vytvorené pôvodné obrazové dáta. Pre digitálny "
+"fotoaparát je to dátum a čas zachytenia a zaznamenania obrázka."
+
+# exif-datetimedigitized
+#: libexif/exif-tag.c:526
+#, fuzzy
+msgid "Date and Time (Digitized)"
+msgstr "dátum a čas digitalizácie"
+
+#: libexif/exif-tag.c:527
+msgid "The date and time when the image was stored as digital data."
+msgstr "Dátum a čas, kedy bol obrázok uložený ako digitálne dáta."
+
+# exif-planarconfiguration
+#: libexif/exif-tag.c:530
+msgid "Components Configuration"
+msgstr "Konfigurácia komponentov"
+
+#: libexif/exif-tag.c:531
+msgid ""
+"Information specific to compressed data. The channels of each component are "
+"arranged in order from the 1st component to the 4th. For uncompressed data "
+"the data arrangement is given in the <PhotometricInterpretation> tag. "
+"However, since <PhotometricInterpretation> can only express the order of Y, "
+"Cb and Cr, this tag is provided for cases when compressed data uses "
+"components other than Y, Cb, and Cr and to enable support of other sequences."
+msgstr ""
+"Informácia špecifická pre kompresné dáta. Kanály každej zložky sú zoradené v "
+"poradí d 1. po 4. zložku. Pre nekomprimované dáta je poradie dát dané "
+"štítkom <PhotometricInterpretation>. Avšak keďže <PhotometricInterpretation> "
+"dokáže vyjadriť iba poradie Y, Cb a Cr, tento štítok je použiteľný v "
+"prípadoch, kedy komprimované dáta používajú iné komponenty ako Y, Cb, a Cr a "
+"na to, aby sa umožnila podpora iných poradí."
+
+# exif-compressedbitsperpixel
+#: libexif/exif-tag.c:541
+msgid "Compressed Bits per Pixel"
+msgstr "komprimované bity na pixel"
+
+#: libexif/exif-tag.c:542
+msgid ""
+"Information specific to compressed data. The compression mode used for a "
+"compressed image is indicated in unit bits per pixel."
+msgstr ""
+"Informácia špecifická komprimovaným dátam. Režim kompresie použitý na "
+"komprimovaný obrázok sa označuje v jednotkách bity na pixel."
+
+# exif-shutterspeedvalue
+#: libexif/exif-tag.c:546 libexif/olympus/mnote-olympus-tag.c:123
+msgid "Shutter Speed"
+msgstr "Rýchlosť uzávierky"
+
+#: libexif/exif-tag.c:547
+msgid ""
+"Shutter speed. The unit is the APEX (Additive System of Photographic "
+"Exposure) setting."
+msgstr ""
+"Rýchlosť uzávierky. Jednotka je nastavenie APEX (Aditívny systém "
+"fotografickej expozície)."
+
+#: libexif/exif-tag.c:551
+msgid "The lens aperture. The unit is the APEX value."
+msgstr "Clona. Jednotka je hodnota APEX."
+
+# exif-brightnessvalue
+#: libexif/exif-tag.c:553
+msgid "Brightness"
+msgstr "jas"
+
+#: libexif/exif-tag.c:554
+msgid ""
+"The value of brightness. The unit is the APEX value. Ordinarily it is given "
+"in the range of -99.99 to 99.99."
+msgstr ""
+"Hodnota jasu. Jednotka je hodnota APEX. Bežne sa udáva v rozsahu -99.99 až "
+"99.99."
+
+# exif-exposurebiasvalue
+#: libexif/exif-tag.c:558
+msgid "Exposure Bias"
+msgstr "expozičné skreslenie"
+
+#: libexif/exif-tag.c:559
+msgid ""
+"The exposure bias. The units is the APEX value. Ordinarily it is given in "
+"the range of -99.99 to 99.99."
+msgstr ""
+"Expozičné skreslenie. Jednotka je hodnota APEX. Bežne sa udáva v rozsahu -"
+"99.99 až 99.99."
+
+# FUZZY exif-aperturevalue
+#: libexif/exif-tag.c:562
+msgid "Maximum Aperture Value"
+msgstr "maximálna hodnota clony"
+
+#: libexif/exif-tag.c:563
+msgid ""
+"The smallest F number of the lens. The unit is the APEX value. Ordinarily it "
+"is given in the range of 00.00 to 99.99, but it is not limited to this range."
+msgstr ""
+"Najmenšie číslo F šošoviek. Jednotka je hodnota APEX. Bežne sa udáva v "
+"rozsahu -99.99 až 99.99."
+
+# exif-subjectdistance
+#: libexif/exif-tag.c:568
+msgid "Subject Distance"
+msgstr "vzdialenosť subjektu"
+
+#: libexif/exif-tag.c:569
+msgid "The distance to the subject, given in meters."
+msgstr "Vzdialenosť subjektu v metroch."
+
+#: libexif/exif-tag.c:572
+msgid "The metering mode."
+msgstr "Režim merania."
+
+# exif-lightsource
+#: libexif/exif-tag.c:574
+msgid "Light Source"
+msgstr "svetelný zdroj"
+
+#: libexif/exif-tag.c:575
+msgid "The kind of light source."
+msgstr "Druh svetelného zdroja."
+
+#: libexif/exif-tag.c:578
+msgid ""
+"This tag is recorded when an image is taken using a strobe light (flash)."
+msgstr ""
+"Tento štítok sa zaznamenáva, keď je obrázok odfotený pri impulznom svetle "
+"(blesk)."
+
+#: libexif/exif-tag.c:582
+msgid ""
+"The actual focal length of the lens, in mm. Conversion is not made to the "
+"focal length of a 35 mm film camera."
+msgstr ""
+"Skutočná ohnisková vzdialenosť šošoviek v mm. Nerobí sa konverzia na "
+"ohniskovú vzdialenosť fotoaprátu s 35 mm filmom."
+
+# exif-subjectarea
+#: libexif/exif-tag.c:585
+msgid "Subject Area"
+msgstr "oblasť subjektu"
+
+#: libexif/exif-tag.c:586
+msgid ""
+"This tag indicates the location and area of the main subject in the overall "
+"scene."
+msgstr ""
+"Tento štítok označuje polohu a plochu hlavného subjektu v celkovej scéne."
+
+#: libexif/exif-tag.c:590
+msgid "TIFF/EP Standard ID"
+msgstr "ID štandardu TIFF/EP"
+
+# exif-makernote
+#: libexif/exif-tag.c:591
+msgid "Maker Note"
+msgstr "poznámka výrobcu"
+
+#: libexif/exif-tag.c:592
+msgid ""
+"A tag for manufacturers of Exif writers to record any desired information. "
+"The contents are up to the manufacturer."
+msgstr ""
+"Štítok pre výrobcov zariadení zapisujúcich exif informácie pre uloženie "
+"akejkoľvek potrebnej informácie. Obsah je na výrobcovi."
+
+# exif-usercomment
+#: libexif/exif-tag.c:595
+msgid "User Comment"
+msgstr "komentár používateľa"
+
+#: libexif/exif-tag.c:596
+#, fuzzy
+msgid ""
+"A tag for Exif users to write keywords or comments on the image besides "
+"those in <ImageDescription>, and without the character code limitations of "
+"the <ImageDescription> tag. The character code used in the <UserComment> tag "
+"is identified based on an ID code in a fixed 8-byte area at the start of the "
+"tag data area. The unused portion of the area is padded with NULL (\"00.h"
+"\"). ID codes are assigned by means of registration. The designation method "
+"and references for each character code are defined in the specification. The "
+"value of CountN is determined based on the 8 bytes in the character code "
+"area and the number of bytes in the user comment part. Since the TYPE is not "
+"ASCII, NULL termination is not necessary. The ID code for the <UserComment> "
+"area may be a Defined code such as JIS or ASCII, or may be Undefined. The "
+"Undefined name is UndefinedText, and the ID code is filled with 8 bytes of "
+"all \"NULL\" (\"00.H\"). An Exif reader that reads the <UserComment> tag "
+"must have a function for determining the ID code. This function is not "
+"required in Exif readers that do not use the <UserComment> tag. When a "
+"<UserComment> area is set aside, it is recommended that the ID code be ASCII "
+"and that the following user comment part be filled with blank characters [20."
+"H]."
+msgstr ""
+"Štítok, kde používatelia exif môžu zapísať kľúčové slová alebo komentár k "
+"obrázku naviac k <ImageDescription> a bez obmedzení znakovej sady ako pri "
+"štítku <ImageDescription>. Znakový kód použitý v štítku <UserComment> je "
+"identifikovaná na základe ID kódu v pevnej 8-bajtovej oblasti na začiatku "
+"štítku. Nevyužitá časť oblasti sa doplní znakmi NULL (\"00.h\"). ID kódy sú "
+"pridelené na základe registrácie. Spôsoby určenia a referencií každého "
+"znakového kódu sú udané v Tabuľke 6. Hodnota CountN sa určí na základe 8 "
+"bajtov v oblasti znakového kódu a počtu bajtov v časti používateľského "
+"komentára. Keďže TYPE nie je ASCII, nie je potrebné ukončenie pomocou NULL "
+"(pozri Obr. 9). ID kód oblasti <UserComment> môže byť Definovaný kód ako JIS "
+"alebo ASCII alebo môže byť Nedefinovaný. Nedefinovaný je UndefinedText a ID "
+"kód sa vyplní 8 bajtami znaku \"NULL\" (\"00.H\"). Čítacie zariadenie exif, "
+"ktoré číta štítok <UserComment> musí mať funkciu na určenie ID kódu. Táto "
+"funkcia sa nevyžaduje v čítacích zariadeniach exif, ktoré nevyužívajú štítok "
+"<UserComment> (pozri Tabuľku 7). Keď sa vyhradí oblasť <UserComment>, "
+"odporúča sa, aby ID kód bol ASCII a nasledovná časť používateľského "
+"komentára bola vyplnená prázdnymi znakmi [20.H]."
+
+#: libexif/exif-tag.c:619
+msgid "Sub-second Time"
+msgstr ""
+
+#: libexif/exif-tag.c:620
+msgid "A tag used to record fractions of seconds for the <DateTime> tag."
+msgstr "Štítok, ktorý sa používa na záznam zlomkov sekundy štítka <DateTime>."
+
+# exif-datetimeoriginal
+#: libexif/exif-tag.c:624
+#, fuzzy
+msgid "Sub-second Time (Original)"
+msgstr "dátum a čas vytvorenia dát"
+
+#: libexif/exif-tag.c:625
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeOriginal> tag."
+msgstr ""
+"Štítok, ktorý sa používa na záznam zlomkov sekundy štítka <DateTimeOriginal>."
+
+# exif-datetimedigitized
+#: libexif/exif-tag.c:629
+#, fuzzy
+msgid "Sub-second Time (Digitized)"
+msgstr "dátum a čas digitalizácie"
+
+#: libexif/exif-tag.c:630
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeDigitized> tag."
+msgstr ""
+"Štítok, ktorý sa používa na záznam zlomkov sekundy štítka "
+"<DateTimeDigitized>."
+
+#: libexif/exif-tag.c:634
+msgid "XP Title"
+msgstr "XP názov"
+
+#: libexif/exif-tag.c:635
+msgid "A character string giving the title of the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:639
+msgid "XP Comment"
+msgstr "XP komentár"
+
+#: libexif/exif-tag.c:640
+msgid ""
+"A character string containing a comment about the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:644
+msgid "XP Author"
+msgstr "XP autor"
+
+#: libexif/exif-tag.c:645
+msgid ""
+"A character string containing the name of the image creator, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:649
+msgid "XP Keywords"
+msgstr "XP kľúčové slová"
+
+#: libexif/exif-tag.c:650
+msgid ""
+"A character string containing key words describing the image, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:654
+msgid "XP Subject"
+msgstr "XP predmet"
+
+#: libexif/exif-tag.c:655
+msgid "A character string giving the image subject, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:659
+msgid "The FlashPix format version supported by a FPXR file."
+msgstr "Verzia FlashPix formátu podporovaná FPXR súborom."
+
+# exif-colorspace
+#: libexif/exif-tag.c:661 libexif/pentax/mnote-pentax-tag.c:102
+msgid "Color Space"
+msgstr "farebný priestor"
+
+#: libexif/exif-tag.c:662
+msgid ""
+"The color space information tag is always recorded as the color space "
+"specifier. Normally sRGB (=1) is used to define the color space based on the "
+"PC monitor conditions and environment. If a color space other than sRGB is "
+"used, Uncalibrated (=FFFF.H) is set. Image data recorded as Uncalibrated can "
+"be treated as sRGB when it is converted to FlashPix."
+msgstr ""
+"Štítok informácie o farebnom priestore je vždy zaznamenaný ako špecifikátor "
+"farebného priestoru. Normálne sa na definíciu farebného priestoru používa "
+"sRGB (=1) na základe podmienok a prostredia PC monitora. Ak je použitý iný "
+"farebný priestor ako sRGB, nastaví sa Nekalibrovaný (=FFFF.H). S obrazovými "
+"údajmi zaznamenanými ako Nekalibrované je možné pracovať ako s sRGB keď sa "
+"skonvertujú na FlashPix."
+
+#: libexif/exif-tag.c:670
+msgid "Pixel X Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:671
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid width of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file."
+msgstr ""
+"Informácia špecifická komprimovaným dátam. Keď sa zaznamená komprimovaný "
+"súbor, platná šírka zmysluplného obrázka sa musí zaznamenať do tohto štítka, "
+"či je alebo nie je prítomná výplň alebo značka reštart. Tento štítok by "
+"nemal existovať v nekomprimovanom súbore."
+
+#: libexif/exif-tag.c:677
+msgid "Pixel Y Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:678
+#, fuzzy
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid height of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file. Since data padding is unnecessary in the "
+"vertical direction, the number of lines recorded in this valid image height "
+"tag will in fact be the same as that recorded in the SOF."
+msgstr ""
+"Informácia špecifická komprimovaným dátam. Keď sa zaznamená komprimovaný "
+"súbor, platná výška zmysluplného obrázka sa musí zaznamenať do tohto štítka, "
+"či je alebo nie je prítomná výplň alebo značka reštart. Tento štítok by "
+"nemal existovať v nekomprimovanom súbore."
+
+#: libexif/exif-tag.c:688
+msgid "Related Sound File"
+msgstr ""
+
+#: libexif/exif-tag.c:689
+#, fuzzy
+msgid ""
+"This tag is used to record the name of an audio file related to the image "
+"data. The only relational information recorded here is the Exif audio file "
+"name and extension (an ASCII string consisting of 8 characters + '.' + 3 "
+"characters). The path is not recorded. Stipulations on audio and file naming "
+"conventions are defined in the specification. When using this tag, audio "
+"files must be recorded in conformance to the Exif audio format. Writers are "
+"also allowed to store the data such as Audio within APP2 as FlashPix "
+"extension stream data. The mapping of Exif image files and audio files is "
+"done in any of three ways, [1], [2] and [3]. If multiple files are mapped to "
+"one file as in [2] or [3], the above format is used to record just one audio "
+"file name. If there are multiple audio files, the first recorded file is "
+"given. In the case of [3], for example, for the Exif image file \"DSC00001."
+"JPG\" only  \"SND00001.WAV\" is given as the related Exif audio file. When "
+"there are three Exif audio files \"SND00001.WAV\", \"SND00002.WAV\" and "
+"\"SND00003.WAV\", the Exif image file name for each of them, \"DSC00001.JPG"
+"\", is indicated. By combining multiple relational information, a variety of "
+"playback possibilities can be supported. The method of using relational "
+"information is left to the implementation on the playback side. Since this "
+"information is an ASCII character string, it is terminated by NULL. When "
+"this tag is used to map audio files, the relation of the audio file to image "
+"data must also be indicated on the audio file end."
+msgstr ""
+"Tento štítok sa používa na zaznamenanie zvukového súboru, ktorý sa vzťahuje "
+"na obrazové dáta. Jediná relačná informácia, ktorá sa tu zaznamenáva je "
+"názov zvukového súboru a jeho rozšírenie (ASCII reťazec pozostávajúci z 8 "
+"znakov + „.“ + 3 znaky). Cesta sa nezaznamenáva. Podmienky vzťahujúce sa na "
+"zvukový záznam sú uvedené v časti 3.6.3. Konvencie pre pomenovanie súboru sú "
+"v časti 3.7.1. Pri použití tohto štítka musia byť zvukové súbory zaznamenané "
+"v súlade s Exif audio formátom. Zapisovacie zariadenia tiež môžu ukladať "
+"dáta ako zvuk v rámci APP2 ako dáta rozširujúceho FlashPix toku. Zvukové "
+"súbory musia byť zaznamenané v súlade s Exif zvukovým formátom. Mapovanie "
+"Exif obrazových súborov a zvukových súborov sa robí akýmkoľvek z troch "
+"spôsobov uvedených v Tabuľke 8. Ak sa mapuje viacero súborov na jeden súbor "
+"ako v prípadoch [2] či [3] tejto tabuľky, vyššie uvedený formát sa používa "
+"na záznam iba jedného názvu zvukového súboru. Ak je viacero zvukových "
+"súborov, udáva sa prvý zaznamenaný. V prípade [3] z Tabuľky 8, napr. pre "
+"Exif obrazový súbor \"DSC00001.JPG\" sa udáva ako zvukový súbor iba "
+"\"SND00001.WAV\". Keď existujú tri Exif zvukové súbory \"SND00001.WAV\", "
+"\"SND00002.WAV\" a \"SND00003.WAV\", označuje názov Exif obrazového súboru "
+"pre každý z nich, \"DSC00001.JPG\". Kombináciou viacerých relačných "
+"informácií je možná podpora rôznych prehrávacích schopností. Metóda využitia "
+"relačnej informácie sa ponecháva na implementáciu na strane prehrávača. "
+"Keďže táto informácia je znakový reťazec ASCII, je ukončená znakom NULL. Keď "
+"sa tento štítok použije na mapovanie zvukových súborov, vzťah zvukového "
+"súboru na obrazové dáta sa tiež musí označiť na konci zvukového súboru."
+
+#: libexif/exif-tag.c:719
+#, fuzzy
+msgid "Interoperability IFD Pointer"
+msgstr "Index Interoperability"
+
+#: libexif/exif-tag.c:720
+msgid ""
+"Interoperability IFD is composed of tags which stores the information to "
+"ensure the Interoperability and pointed by the following tag located in Exif "
+"IFD. The Interoperability structure of Interoperability IFD is the same as "
+"TIFF defined IFD structure but does not contain the image data "
+"characteristically compared with normal TIFF IFD."
+msgstr ""
+"IFD interoperability sa skladá zo štítkov ukladajúcich informácie na "
+"zaistenie interoperability a ukazuje naň nasledujúci štítok nachádzajúci sa "
+"v Exif IFD. Štruktúra IFD interoperability je rovnaká ako IFD štruktúra "
+"definovaná v TIFF, ale neobsahuje obrazové údaje charakteristicky porovnané "
+"s normálnym TIFF IFD."
+
+# exif-flashenergy
+#: libexif/exif-tag.c:729
+msgid "Flash Energy"
+msgstr "energia blesku"
+
+#: libexif/exif-tag.c:730
+msgid ""
+"Indicates the strobe energy at the time the image is captured, as measured "
+"in Beam Candle Power Seconds (BCPS)."
+msgstr ""
+"Označuje energiu elektronického dosvietenia v čase zachytenia obrázka meranú "
+"v Beam Candle Power Seconds (BCPS)."
+
+# exif-spatialfrequencyresponse
+#: libexif/exif-tag.c:734
+msgid "Spatial Frequency Response"
+msgstr "priestorová frekvenčná odozva"
+
+#: libexif/exif-tag.c:735
+msgid ""
+"This tag records the camera or input device spatial frequency table and SFR "
+"values in the direction of image width, image height, and diagonal "
+"direction, as specified in ISO 12233."
+msgstr ""
+"Tento štítok zaznamenáva tabuľku priestorovej frekvenčnej odozvy zariadenia "
+"a hodnoty PFO v smere šírky obrázka a v diagonálnom smere podľa špecifikácie "
+"ISO 12233."
+
+# exif-focalplanexresolution
+#: libexif/exif-tag.c:741
+#, fuzzy
+msgid "Focal Plane X-Resolution"
+msgstr "horizontálne rozlíšenie ohniskovej roviny"
+
+#: libexif/exif-tag.c:742
+msgid ""
+"Indicates the number of pixels in the image width (X) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+"Tento štítok označuje počet pixelov šírky obrázka (X) na "
+"<FocalPlaneResolutionUnit> v ohniskovej rovine fotoaparátu."
+
+# exif-focalplanexresolution
+#: libexif/exif-tag.c:746
+#, fuzzy
+msgid "Focal Plane Y-Resolution"
+msgstr "horizontálne rozlíšenie ohniskovej roviny"
+
+#: libexif/exif-tag.c:747
+msgid ""
+"Indicates the number of pixels in the image height (V) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+"Tento štítok označuje počet pixelov výšky obrázka (Y) na "
+"<FocalPlaneResolutionUnit> v ohniskovej rovine fotoaparátu."
+
+# exif-focalplaneresolutionunit
+#: libexif/exif-tag.c:751
+msgid "Focal Plane Resolution Unit"
+msgstr "jednotka rozlíšenia v ohniskovej rovine"
+
+#: libexif/exif-tag.c:752
+msgid ""
+"Indicates the unit for measuring <FocalPlaneXResolution> and "
+"<FocalPlaneYResolution>. This value is the same as the <ResolutionUnit>."
+msgstr ""
+"Tento štítok označuje jednotky, v ktorých je merané <FocalPlaneXResolution> "
+"a <FocalPlaneYResolution>. Táto hodnota je rovnaká ako <ResolutionUnit>."
+
+# exif-subjectlocation
+#: libexif/exif-tag.c:757
+msgid "Subject Location"
+msgstr "umiestnenie subjektu"
+
+#: libexif/exif-tag.c:758
+msgid ""
+"Indicates the location of the main subject in the scene. The value of this "
+"tag represents the pixel at the center of the main subject relative to the "
+"left edge, prior to rotation processing as per the <Rotation> tag. The first "
+"value indicates the X column number and the second indicates the Y row "
+"number."
+msgstr ""
+"Tento štítok označuje umiestnenie hlavného subjektu na scéne. Hodnota tohto "
+"štítku predstavuje pixel v strede hlavného subjektu vzhľadom na ľavý okraj, "
+"pred procesom rotácie podľa štítka <Rotation>. Prvá hodnota označuje číslo X "
+"stĺpca a druhá označuje číslo Y riadku."
+
+# exif-exposureindex
+#: libexif/exif-tag.c:765
+msgid "Exposure Index"
+msgstr "Expozičný index"
+
+#: libexif/exif-tag.c:766
+msgid ""
+"Indicates the exposure index selected on the camera or input device at the "
+"time the image is captured."
+msgstr ""
+"Tento štítok označuje expozičný index zvolený na fotoaparáte alebo vstupnom "
+"zariadení v čase zachytenia obrázka."
+
+# exif-sensingmethod
+#: libexif/exif-tag.c:769
+msgid "Sensing Method"
+msgstr "snímacia metóda"
+
+#: libexif/exif-tag.c:770
+msgid "Indicates the image sensor type on the camera or input device."
+msgstr ""
+"Tento štítok označuje typ obrazového snímača vstupného fotoaparátu alebo "
+"vstupného zariadenia."
+
+# exif-filesource
+#: libexif/exif-tag.c:773 libexif/fuji/mnote-fuji-tag.c:64
+msgid "File Source"
+msgstr "zdroj súboru"
+
+#: libexif/exif-tag.c:774
+msgid ""
+"Indicates the image source. If a DSC recorded the image, the tag value of "
+"this tag always be set to 3, indicating that the image was recorded on a DSC."
+msgstr ""
+"Tento štítok označuje zdroj obrázka. Ak obrázok zaznamenal DSC, tento štítok "
+"musí byť vždy nastavený na 3, čo značí, že obrázok bol nahraný na DSC."
+
+# exif-scenetype
+#: libexif/exif-tag.c:778
+msgid "Scene Type"
+msgstr "typ scény"
+
+#: libexif/exif-tag.c:779
+msgid ""
+"Indicates the type of scene. If a DSC recorded the image, this tag value "
+"must always be set to 1, indicating that the image was directly photographed."
+msgstr ""
+"Tento štítok označuje typ scény. Ak obrázok zaznamenal DSC, tento štítok "
+"musí byť vždy nastavený na 1, čo značí, že obrázok bol priamo "
+"odfotografovaný."
+
+# exif-customrendered
+#: libexif/exif-tag.c:789
+msgid "Custom Rendered"
+msgstr "ručné spracovanie obrazu"
+
+#: libexif/exif-tag.c:790
+msgid ""
+"This tag indicates the use of special processing on image data, such as "
+"rendering geared to output. When special processing is performed, the reader "
+"is expected to disable or minimize any further processing."
+msgstr ""
+"Tento štítok označuje použitie špeciálneho spracovania obrazových dát ako "
+"spracovanie zamerané na výstup. Po vykonaní špeciálneho spracovania sa od "
+"čítacieho zariadenia očakáva, že vypne alebo minimalizuje akékoľvek ďalšie "
+"spracovanie."
+
+#: libexif/exif-tag.c:796
+msgid ""
+"This tag indicates the exposure mode set when the image was shot. In auto-"
+"bracketing mode, the camera shoots a series of frames of the same scene at "
+"different exposure settings."
+msgstr ""
+"Tento štítok označuje aký expozičný režim bol zvolený pri odfotení obrázka. "
+"V režime automatickej kompenzácie expozície fotoaparát nafotí sériu snímok "
+"rovnakej scény pri rozličných nastaveniach expozície."
+
+#: libexif/exif-tag.c:801
+msgid "This tag indicates the white balance mode set when the image was shot."
+msgstr ""
+"Tento štítok označuje aký režim vyváženia bielej bol zvolený pri odfotení "
+"obrázka."
+
+# exif-digitalzoomratio
+#: libexif/exif-tag.c:805
+msgid "Digital Zoom Ratio"
+msgstr "pomer digitálneho priblíženia"
+
+#: libexif/exif-tag.c:806
+msgid ""
+"This tag indicates the digital zoom ratio when the image was shot. If the "
+"numerator of the recorded value is 0, this indicates that digital zoom was "
+"not used."
+msgstr ""
+"Tento štítok označuje pomer digitálneho priblíženia v čase zachytenia "
+"snímky. Ak je zaznamenaná hodnota 0, nebolo použité digitálne priblíženie."
+
+# exif-focallengthin35mmfilm
+#: libexif/exif-tag.c:811
+#, fuzzy
+msgid "Focal Length in 35mm Film"
+msgstr "ohnisková vzdialenosť na 35 mm filme"
+
+#: libexif/exif-tag.c:812
+msgid ""
+"This tag indicates the equivalent focal length assuming a 35mm film camera, "
+"in mm. A value of 0 means the focal length is unknown. Note that this tag "
+"differs from the FocalLength tag."
+msgstr ""
+"Tento štítok označuje ohniskovú vzdialenosť ekvivalentnú fotoaparátu s 35 mm "
+"filmom. Hodnota 0 znamená, že ohnisková vzdialenosť je neznáma. Všimnite si, "
+"že tento štítok sa líši od štítka FocalLength."
+
+# exif-scenecapturetype
+#: libexif/exif-tag.c:818
+msgid "Scene Capture Type"
+msgstr "typ zachytenia scény"
+
+#: libexif/exif-tag.c:819
+msgid ""
+"This tag indicates the type of scene that was shot. It can also be used to "
+"record the mode in which the image was shot. Note that this differs from the "
+"scene type <SceneType> tag."
+msgstr ""
+"Tento štítok označuje typ zachytenej scény. Tiež je možné ho použiť na "
+"zaznamenanie režimu, v ktorom bol obrázok odfotený. Všimnite si, že tento "
+"štítok sa líši od štítka <SceneType>."
+
+# exif-gaincontrol
+#: libexif/exif-tag.c:824
+msgid "Gain Control"
+msgstr "riadenie zosilnenia"
+
+#: libexif/exif-tag.c:825
+msgid "This tag indicates the degree of overall image gain adjustment."
+msgstr "Tento štítok označuje stupeň celkového zosilnenia obrazu."
+
+#: libexif/exif-tag.c:829
+msgid ""
+"This tag indicates the direction of contrast processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Tento štítok označuje smer spracovania kontrastu, ktorý použil fotoaparát "
+"pri zachytení obrázka."
+
+#: libexif/exif-tag.c:833
+msgid ""
+"This tag indicates the direction of saturation processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Tento štítok označuje smer spracovania sýtosti, ktorý použil fotoaparát pri "
+"zachytení obrázka."
+
+#: libexif/exif-tag.c:837
+msgid ""
+"This tag indicates the direction of sharpness processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Tento štítok označuje smer spracovania ostrosti, ktorý použil fotoaparát pri "
+"zachytení obrázka."
+
+# exif-devicesettingdescription
+#: libexif/exif-tag.c:841
+msgid "Device Setting Description"
+msgstr "opis nastavení zariadenia"
+
+#: libexif/exif-tag.c:842
+msgid ""
+"This tag indicates information on the picture-taking conditions of a "
+"particular camera model. The tag is used only to indicate the picture-taking "
+"conditions in the reader."
+msgstr ""
+"Tento štítok označuje informácie o podmienkach fotografovania konkrétnym "
+"modelom fotoaparátu. Štítok sa používa iba na označenie podmienok "
+"fotografovania v čítacom zariadení."
+
+# exif-subjectdistancerange
+#: libexif/exif-tag.c:848
+msgid "Subject Distance Range"
+msgstr "rozsah vzdialenosti subjektu"
+
+#: libexif/exif-tag.c:849
+msgid "This tag indicates the distance to the subject."
+msgstr "Tento štítok označuje vzdialenosť k subjektu."
+
+# exif-imageuniqueid
+#: libexif/exif-tag.c:851
+msgid "Image Unique ID"
+msgstr "jedinečný ID obrázka"
+
+#: libexif/exif-tag.c:852
+msgid ""
+"This tag indicates an identifier assigned uniquely to each image. It is "
+"recorded as an ASCII string equivalent to hexadecimal notation and 128-bit "
+"fixed length."
+msgstr ""
+"Tento štítok označuje jedinečný identifikátor priradený každému obrázku. Je "
+"zaznamenaný ako ASCII reťazec zodpovedajúci hexadecimálnemu zápisu 128-"
+"bitového čísla."
+
+#: libexif/exif-tag.c:857
+msgid "Gamma"
+msgstr "gamma"
+
+#: libexif/exif-tag.c:858
+msgid "Indicates the value of coefficient gamma."
+msgstr "Značí hodnotu koeficientu gamma."
+
+#: libexif/exif-tag.c:860
+msgid "PRINT Image Matching"
+msgstr "PRINT Image Matching"
+
+#: libexif/exif-tag.c:861
+msgid "Related to Epson's PRINT Image Matching technology"
+msgstr "Týkajúce sa technológie Epson PRINT Image Matching"
+
+#: libexif/exif-tag.c:863
+msgid "Padding"
+msgstr ""
+
+#: libexif/exif-tag.c:864
+msgid ""
+"This tag reserves space that can be reclaimed later when additional metadata "
+"are added. New metadata can be written in place by replacing this tag with a "
+"smaller data element and using the reclaimed space to store the new or "
+"expanded metadata tags."
+msgstr ""
+
+# FUZZY exif-sharpness-1
+#: libexif/fuji/mnote-fuji-entry.c:62
+msgid "Softest"
+msgstr "Najmäkkší"
+
+# FUZZY exif-sharpness-2
+#: libexif/fuji/mnote-fuji-entry.c:66
+msgid "Hardest"
+msgstr "Najtvrdší"
+
+#: libexif/fuji/mnote-fuji-entry.c:67 libexif/fuji/mnote-fuji-entry.c:96
+msgid "Medium soft"
+msgstr "Stredne mäkký"
+
+#: libexif/fuji/mnote-fuji-entry.c:68 libexif/fuji/mnote-fuji-entry.c:94
+msgid "Medium hard"
+msgstr "Stredne tvrdý"
+
+#: libexif/fuji/mnote-fuji-entry.c:69 libexif/fuji/mnote-fuji-entry.c:90
+#: libexif/fuji/mnote-fuji-entry.c:98 libexif/fuji/mnote-fuji-entry.c:182
+msgid "Film simulation mode"
+msgstr "Režim simulácie filmu"
+
+#: libexif/fuji/mnote-fuji-entry.c:79
+msgid "Incandescent"
+msgstr "Inkadescentné"
+
+#: libexif/fuji/mnote-fuji-entry.c:85
+msgid "Medium high"
+msgstr "Stredne vysoký"
+
+#: libexif/fuji/mnote-fuji-entry.c:87
+msgid "Medium low"
+msgstr "Stredne nízky"
+
+#: libexif/fuji/mnote-fuji-entry.c:88 libexif/fuji/mnote-fuji-entry.c:97
+msgid "Original"
+msgstr "Originál"
+
+# AE - automatická expozícia
+#: libexif/fuji/mnote-fuji-entry.c:124 libexif/pentax/mnote-pentax-entry.c:164
+#: libexif/pentax/mnote-pentax-entry.c:299
+msgid "Program AE"
+msgstr "program AE"
+
+#: libexif/fuji/mnote-fuji-entry.c:125
+msgid "Natural photo"
+msgstr "Prirodzená fotografia"
+
+#: libexif/fuji/mnote-fuji-entry.c:126
+msgid "Vibration reduction"
+msgstr "Redukcia chvenia"
+
+#: libexif/fuji/mnote-fuji-entry.c:127
+msgid "Sunset"
+msgstr "Západ slnka"
+
+#: libexif/fuji/mnote-fuji-entry.c:128 libexif/pentax/mnote-pentax-entry.c:181
+msgid "Museum"
+msgstr "múzeum"
+
+# FUZZY exif-meteringmode-6
+#: libexif/fuji/mnote-fuji-entry.c:129
+msgid "Party"
+msgstr "Oslava"
+
+#: libexif/fuji/mnote-fuji-entry.c:130
+msgid "Flower"
+msgstr "Kvet"
+
+#: libexif/fuji/mnote-fuji-entry.c:131 libexif/pentax/mnote-pentax-entry.c:176
+msgid "Text"
+msgstr "text"
+
+#: libexif/fuji/mnote-fuji-entry.c:132
+msgid "NP & flash"
+msgstr "NP a blesk"
+
+# FUZZY exif-exposureprogram-3
+#: libexif/fuji/mnote-fuji-entry.c:137
+msgid "Aperture priority AE"
+msgstr "Priorita clony AE"
+
+# FUZZY exif-exposureprogram-4
+#: libexif/fuji/mnote-fuji-entry.c:138
+msgid "Shutter priority AE"
+msgstr "Priorita uzávierky AE"
+
+#: libexif/fuji/mnote-fuji-entry.c:146
+msgid "F-Standard"
+msgstr "F-štandardný"
+
+#: libexif/fuji/mnote-fuji-entry.c:147
+msgid "F-Chrome"
+msgstr "F-chróm"
+
+#: libexif/fuji/mnote-fuji-entry.c:148
+msgid "F-B&W"
+msgstr "F-čb"
+
+#: libexif/fuji/mnote-fuji-entry.c:151
+msgid "No blur"
+msgstr "Bez rozostrenia"
+
+#: libexif/fuji/mnote-fuji-entry.c:152
+msgid "Blur warning"
+msgstr "Varovanie pred rozostrením"
+
+#: libexif/fuji/mnote-fuji-entry.c:155
+msgid "Focus good"
+msgstr "Dobré zaostrenie"
+
+#: libexif/fuji/mnote-fuji-entry.c:156
+msgid "Out of focus"
+msgstr "Nezaostrené"
+
+#: libexif/fuji/mnote-fuji-entry.c:159
+msgid "AE good"
+msgstr "AE v poriadku"
+
+#: libexif/fuji/mnote-fuji-entry.c:160
+msgid "Over exposed"
+msgstr "Preexponované"
+
+#: libexif/fuji/mnote-fuji-entry.c:164
+msgid "Wide"
+msgstr "Široké"
+
+#: libexif/fuji/mnote-fuji-entry.c:167
+msgid "F0/Standard"
+msgstr "F0/štandardný"
+
+#: libexif/fuji/mnote-fuji-entry.c:168
+msgid "F1/Studio portrait"
+msgstr "F1/Štúdiový portrét"
+
+#: libexif/fuji/mnote-fuji-entry.c:169
+msgid "F1a/Professional portrait"
+msgstr "F1a/Profesionálny portrét"
+
+#: libexif/fuji/mnote-fuji-entry.c:170
+msgid "F1b/Professional portrait"
+msgstr "F1b/Profesionálny portrét"
+
+#: libexif/fuji/mnote-fuji-entry.c:171
+msgid "F1c/Professional portrait"
+msgstr "F1c/Profesionálny portrét"
+
+#: libexif/fuji/mnote-fuji-entry.c:172
+msgid "F2/Fujichrome"
+msgstr "F2/Fujichróm"
+
+#: libexif/fuji/mnote-fuji-entry.c:173
+msgid "F3/Studio portrait Ex"
+msgstr "F3/Štúdiový portrét Ex"
+
+#: libexif/fuji/mnote-fuji-entry.c:174
+msgid "F4/Velvia"
+msgstr "F4/Velvia"
+
+#: libexif/fuji/mnote-fuji-entry.c:177
+msgid "Auto (100-400%)"
+msgstr "Auto (100-400 %)"
+
+#: libexif/fuji/mnote-fuji-entry.c:179
+msgid "Standard (100%)"
+msgstr "Štandardný (100%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:180
+msgid "Wide1 (230%)"
+msgstr "Široká1 (230%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:181
+msgid "Wide2 (400%)"
+msgstr "Široká2 (400%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:263
+#, c-format
+msgid "%2.2f mm"
+msgstr "%2.2f mm"
+
+#: libexif/fuji/mnote-fuji-entry.c:298 libexif/pentax/mnote-pentax-entry.c:399
+#: libexif/pentax/mnote-pentax-entry.c:451
+#, c-format
+msgid "%i bytes unknown data"
+msgstr "%i bajtov neznámych údajov"
+
+# exif-makernote
+#: libexif/fuji/mnote-fuji-tag.c:36
+msgid "Maker Note Version"
+msgstr "Poznámka výrobcu"
+
+#: libexif/fuji/mnote-fuji-tag.c:37
+#, fuzzy
+msgid "This number is unique and based on the date of manufacture."
+msgstr "Toto číslo je jedinečné, obsahuje dátum výroby."
+
+#: libexif/fuji/mnote-fuji-tag.c:41
+msgid "Chromaticity Saturation"
+msgstr "Sýtosť chromaticity"
+
+#: libexif/fuji/mnote-fuji-tag.c:44
+msgid "Flash Firing Strength Compensation"
+msgstr "Kompenzácia intenzity blesku"
+
+#: libexif/fuji/mnote-fuji-tag.c:46
+msgid "Focusing Mode"
+msgstr "Režim zaostrenia"
+
+#: libexif/fuji/mnote-fuji-tag.c:47
+msgid "Focus Point"
+msgstr "Bod zaostrenia"
+
+#: libexif/fuji/mnote-fuji-tag.c:48
+msgid "Slow Synchro Mode"
+msgstr "Režim pomalej synchronizácie"
+
+#: libexif/fuji/mnote-fuji-tag.c:49 libexif/pentax/mnote-pentax-tag.c:72
+msgid "Picture Mode"
+msgstr "Režim obrázka"
+
+#: libexif/fuji/mnote-fuji-tag.c:50
+msgid "Continuous Taking"
+msgstr "Spojitý záber"
+
+#: libexif/fuji/mnote-fuji-tag.c:51
+msgid "Continuous Sequence Number"
+msgstr "Spojité poradové čísla"
+
+#: libexif/fuji/mnote-fuji-tag.c:52
+msgid "FinePix Color"
+msgstr "FinePix Color"
+
+#: libexif/fuji/mnote-fuji-tag.c:53
+msgid "Blur Check"
+msgstr "Kontrola rozostrenia"
+
+#: libexif/fuji/mnote-fuji-tag.c:54
+msgid "Auto Focus Check"
+msgstr "Kontrola automatického zaostrenia"
+
+# FUZZY exif-exposuremode-0
+#: libexif/fuji/mnote-fuji-tag.c:55
+msgid "Auto Exposure Check"
+msgstr "Kontrola automatickej expozície"
+
+#: libexif/fuji/mnote-fuji-tag.c:56
+msgid "Dynamic Range"
+msgstr "Dynamický rozsah"
+
+#: libexif/fuji/mnote-fuji-tag.c:57
+msgid "Film Simulation Mode"
+msgstr "režim simulácie filmu"
+
+#: libexif/fuji/mnote-fuji-tag.c:58
+msgid "Dynamic Range Wide Mode"
+msgstr "Široký režim dynamického rozsahu"
+
+#: libexif/fuji/mnote-fuji-tag.c:59
+msgid "Development Dynamic Range Wide Mode"
+msgstr "Vývojový široký režim dynamického rozsahu"
+
+# FUZZY exif-focallength
+#: libexif/fuji/mnote-fuji-tag.c:60
+msgid "Minimum Focal Length"
+msgstr "Minimálna ohnisková vzdialenosť"
+
+# FUZZY exif-focallength
+#: libexif/fuji/mnote-fuji-tag.c:61
+msgid "Maximum Focal Length"
+msgstr "Maximálna ohnisková vzdialenosť"
+
+#: libexif/fuji/mnote-fuji-tag.c:62
+msgid "Maximum Aperture at Minimum Focal"
+msgstr "Maximálna clona pri minimálnom ohnisku"
+
+#: libexif/fuji/mnote-fuji-tag.c:63
+msgid "Maximum Aperture at Maximum Focal"
+msgstr "Maximálna clona pri maximálnom ohnisku"
+
+#: libexif/fuji/mnote-fuji-tag.c:65
+msgid "Order Number"
+msgstr "Poradové číslo"
+
+#: libexif/fuji/mnote-fuji-tag.c:66 libexif/pentax/mnote-pentax-tag.c:98
+msgid "Frame Number"
+msgstr "Číslo rámca"
+
+#: libexif/olympus/mnote-olympus-entry.c:49
+#, c-format
+msgid "Invalid format '%s', expected '%s' or '%s'."
+msgstr "Neplatný formát „%s“, očakával sa „%s“ alebo „%s“."
+
+#: libexif/olympus/mnote-olympus-entry.c:89
+#, fuzzy
+msgid "AF non D lens"
+msgstr "šošovky AF nie D"
+
+#: libexif/olympus/mnote-olympus-entry.c:91
+#, fuzzy
+msgid "AF-D or AF-S lens"
+msgstr "šošovky AF-D alebo AF-S"
+
+#: libexif/olympus/mnote-olympus-entry.c:92
+#, fuzzy
+msgid "AF-D G lens"
+msgstr "šošovky AF-D G"
+
+#: libexif/olympus/mnote-olympus-entry.c:93
+#, fuzzy
+msgid "AF-D VR lens"
+msgstr "šošovky AF-D VR"
+
+#: libexif/olympus/mnote-olympus-entry.c:94
+#, fuzzy
+msgid "AF-D G VR lens"
+msgstr "šošovky AF-D VR"
+
+#: libexif/olympus/mnote-olympus-entry.c:98
+msgid "Flash unit unknown"
+msgstr "jednotka blesku nerozpoznaná"
+
+#: libexif/olympus/mnote-olympus-entry.c:99
+msgid "Flash is external"
+msgstr "blesk je externý"
+
+#: libexif/olympus/mnote-olympus-entry.c:100
+#, fuzzy
+msgid "Flash is on camera"
+msgstr "blesk je na fotoaparáte"
+
+#: libexif/olympus/mnote-olympus-entry.c:103
+#, fuzzy
+msgid "VGA basic"
+msgstr "VGA základné"
+
+#: libexif/olympus/mnote-olympus-entry.c:104
+#, fuzzy
+msgid "VGA normal"
+msgstr "VGA normálne"
+
+#: libexif/olympus/mnote-olympus-entry.c:105
+#, fuzzy
+msgid "VGA fine"
+msgstr "VGA jemné"
+
+#: libexif/olympus/mnote-olympus-entry.c:106
+#, fuzzy
+msgid "SXGA basic"
+msgstr "SXGA základné"
+
+#: libexif/olympus/mnote-olympus-entry.c:107
+#, fuzzy
+msgid "SXGA normal"
+msgstr "SXGA normálne"
+
+#: libexif/olympus/mnote-olympus-entry.c:108
+#, fuzzy
+msgid "SXGA fine"
+msgstr "SXGA jemné"
+
+#: libexif/olympus/mnote-olympus-entry.c:109
+#, fuzzy
+msgid "2 Mpixel basic"
+msgstr "2 MPixel základné"
+
+#: libexif/olympus/mnote-olympus-entry.c:110
+#, fuzzy
+msgid "2 Mpixel normal"
+msgstr "2 MPixel normálne"
+
+#: libexif/olympus/mnote-olympus-entry.c:111
+#, fuzzy
+msgid "2 Mpixel fine"
+msgstr "2 MPixel jemné"
+
+#: libexif/olympus/mnote-olympus-entry.c:114
+msgid "Color"
+msgstr "farba"
+
+#: libexif/olympus/mnote-olympus-entry.c:119
+msgid "Bright+"
+msgstr "jas+"
+
+#: libexif/olympus/mnote-olympus-entry.c:120
+msgid "Bright-"
+msgstr "jas-"
+
+#: libexif/olympus/mnote-olympus-entry.c:121
+msgid "Contrast+"
+msgstr "kontrast+"
+
+#: libexif/olympus/mnote-olympus-entry.c:122
+msgid "Contrast-"
+msgstr "kontrast-"
+
+#: libexif/olympus/mnote-olympus-entry.c:125
+msgid "ISO 80"
+msgstr "ISO 80"
+
+#: libexif/olympus/mnote-olympus-entry.c:126
+msgid "ISO 160"
+msgstr "ISO 160"
+
+#: libexif/olympus/mnote-olympus-entry.c:127
+msgid "ISO 320"
+msgstr "ISO 320"
+
+#: libexif/olympus/mnote-olympus-entry.c:128
+#: libexif/olympus/mnote-olympus-entry.c:246
+msgid "ISO 100"
+msgstr "ISO 100"
+
+#: libexif/olympus/mnote-olympus-entry.c:132
+msgid "Preset"
+msgstr "prednastavené"
+
+#: libexif/olympus/mnote-olympus-entry.c:134
+msgid "Incandescence"
+msgstr "inkadescencia"
+
+#: libexif/olympus/mnote-olympus-entry.c:135
+msgid "Fluorescence"
+msgstr "fluorescencia"
+
+#: libexif/olympus/mnote-olympus-entry.c:137
+msgid "SpeedLight"
+msgstr "rýchlosvetlo"
+
+#: libexif/olympus/mnote-olympus-entry.c:140
+#, fuzzy
+msgid "No fisheye"
+msgstr "rybie oko vypnuté"
+
+#: libexif/olympus/mnote-olympus-entry.c:141
+#, fuzzy
+msgid "Fisheye on"
+msgstr "rybie oko zapnuté"
+
+#: libexif/olympus/mnote-olympus-entry.c:144
+msgid "Normal, SQ"
+msgstr "normálny, SQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:145
+msgid "Normal, HQ"
+msgstr "normálny, HQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:146
+msgid "Normal, SHQ"
+msgstr "normálny, SHQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:147
+msgid "Normal, RAW"
+msgstr "normálny, RAW"
+
+#: libexif/olympus/mnote-olympus-entry.c:148
+msgid "Normal, SQ1"
+msgstr "normálny, SQ1"
+
+#: libexif/olympus/mnote-olympus-entry.c:149
+msgid "Normal, SQ2"
+msgstr "normálny, SQ2"
+
+# exif-exposureprogram-2
+#: libexif/olympus/mnote-olympus-entry.c:150
+msgid "Normal, super high"
+msgstr "normálny, supervysoká"
+
+#: libexif/olympus/mnote-olympus-entry.c:151
+msgid "Normal, standard"
+msgstr "normálny, štandardná"
+
+#: libexif/olympus/mnote-olympus-entry.c:152
+msgid "Fine, SQ"
+msgstr "jemný, SQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:153
+msgid "Fine, HQ"
+msgstr "jemný, HQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:154
+msgid "Fine, SHQ"
+msgstr "jemný, SHQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:155
+msgid "Fine, RAW"
+msgstr "jemný, RAW"
+
+#: libexif/olympus/mnote-olympus-entry.c:156
+msgid "Fine, SQ1"
+msgstr "jemný, SQ1"
+
+#: libexif/olympus/mnote-olympus-entry.c:157
+msgid "Fine, SQ2"
+msgstr "jemný, SQ2"
+
+#: libexif/olympus/mnote-olympus-entry.c:158
+msgid "Fine, super high"
+msgstr "jemný, supervysoká"
+
+#: libexif/olympus/mnote-olympus-entry.c:159
+msgid "Super fine, SQ"
+msgstr "superjemný, SQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:160
+msgid "Super fine, HQ"
+msgstr "superjemný, HQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:161
+msgid "Super fine, SHQ"
+msgstr "superjemný, SHQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:162
+msgid "Super fine, RAW"
+msgstr "superjemný, RAW"
+
+#: libexif/olympus/mnote-olympus-entry.c:163
+msgid "Super fine, SQ1"
+msgstr "superjemný, SQ1"
+
+#: libexif/olympus/mnote-olympus-entry.c:164
+msgid "Super fine, SQ2"
+msgstr "superjemný, SQ2"
+
+#: libexif/olympus/mnote-olympus-entry.c:165
+msgid "Super fine, super high"
+msgstr "superjemný, supervysoká"
+
+#: libexif/olympus/mnote-olympus-entry.c:166
+msgid "Super fine, high"
+msgstr "superjemný, high"
+
+#: libexif/olympus/mnote-olympus-entry.c:169
+#: libexif/olympus/mnote-olympus-entry.c:174
+#: libexif/olympus/mnote-olympus-entry.c:208
+#: libexif/olympus/mnote-olympus-entry.c:217
+#: libexif/olympus/mnote-olympus-entry.c:240
+msgid "No"
+msgstr "nie"
+
+#: libexif/olympus/mnote-olympus-entry.c:180
+msgid "On (Preset)"
+msgstr "Zapnuté (predvolené)"
+
+#: libexif/olympus/mnote-olympus-entry.c:185
+msgid "Fill"
+msgstr "výplň"
+
+#: libexif/olympus/mnote-olympus-entry.c:192
+#, fuzzy
+msgid "Internal + external"
+msgstr "Interný + externý"
+
+#: libexif/olympus/mnote-olympus-entry.c:221
+msgid "Interlaced"
+msgstr "Prekladaný"
+
+#: libexif/olympus/mnote-olympus-entry.c:222
+msgid "Progressive"
+msgstr "Progresívne"
+
+#: libexif/olympus/mnote-olympus-entry.c:228
+#: libexif/pentax/mnote-pentax-entry.c:85
+#: libexif/pentax/mnote-pentax-entry.c:139
+msgid "Best"
+msgstr "najlepší"
+
+# FUZZY exif-exposuremode-0
+#: libexif/olympus/mnote-olympus-entry.c:229
+#, fuzzy
+msgid "Adjust exposure"
+msgstr "Nastavenie expozície"
+
+#: libexif/olympus/mnote-olympus-entry.c:232
+#, fuzzy
+msgid "Spot focus"
+msgstr "bodové zaostrenie"
+
+#: libexif/olympus/mnote-olympus-entry.c:233
+#, fuzzy
+msgid "Normal focus"
+msgstr "bežné zaostrenie"
+
+#: libexif/olympus/mnote-olympus-entry.c:236
+msgid "Record while down"
+msgstr "Zaznamenávať počas vypnutia"
+
+#: libexif/olympus/mnote-olympus-entry.c:237
+msgid "Press start, press stop"
+msgstr "Stlačte štart, stlačte stop"
+
+#: libexif/olympus/mnote-olympus-entry.c:245
+msgid "ISO 50"
+msgstr "ISO 50"
+
+#: libexif/olympus/mnote-olympus-entry.c:247
+msgid "ISO 200"
+msgstr "ISO 200"
+
+#: libexif/olympus/mnote-olympus-entry.c:248
+msgid "ISO 400"
+msgstr "ISO 400"
+
+#: libexif/olympus/mnote-olympus-entry.c:252
+#: libexif/pentax/mnote-pentax-entry.c:168
+msgid "Sport"
+msgstr "šport"
+
+#: libexif/olympus/mnote-olympus-entry.c:253
+msgid "TV"
+msgstr "TV"
+
+#: libexif/olympus/mnote-olympus-entry.c:255
+msgid "User 1"
+msgstr "Použ. 1"
+
+#: libexif/olympus/mnote-olympus-entry.c:256
+msgid "User 2"
+msgstr "Použ. 2"
+
+#: libexif/olympus/mnote-olympus-entry.c:257
+msgid "Lamp"
+msgstr "Lampa"
+
+#: libexif/olympus/mnote-olympus-entry.c:260
+msgid "5 frames/sec"
+msgstr "5 rámcov/sek"
+
+#: libexif/olympus/mnote-olympus-entry.c:261
+msgid "10 frames/sec"
+msgstr "10 rámcov/sek"
+
+#: libexif/olympus/mnote-olympus-entry.c:262
+msgid "15 frames/sec"
+msgstr "15 rámcov/sek"
+
+#: libexif/olympus/mnote-olympus-entry.c:263
+msgid "20 frames/sec"
+msgstr "20 rámcov/sek"
+
+#: libexif/olympus/mnote-olympus-entry.c:375
+#, fuzzy, c-format
+msgid "Red Correction %f, blue Correction %f"
+msgstr "korekcia červenej %f, korekcia modrej %f"
+
+#: libexif/olympus/mnote-olympus-entry.c:383
+#, c-format
+msgid "%2.2f meters"
+msgstr "%2.2f metrov"
+
+#: libexif/olympus/mnote-olympus-entry.c:385
+msgid "No manual focus selection"
+msgstr "bez výberu automatického zaostrenia"
+
+# AF = automatické zaostrenie
+#: libexif/olympus/mnote-olympus-entry.c:411
+#, fuzzy
+msgid "AF position: center"
+msgstr "poloha AZ: stred"
+
+# AF = automatické zaostrenie
+#: libexif/olympus/mnote-olympus-entry.c:412
+#, fuzzy
+msgid "AF position: top"
+msgstr "poloha AZ: hore"
+
+# AF = automatické zaostrenie
+#: libexif/olympus/mnote-olympus-entry.c:413
+#, fuzzy
+msgid "AF position: bottom"
+msgstr "poloha AZ: dolu"
+
+# AF = automatické zaostrenie
+#: libexif/olympus/mnote-olympus-entry.c:414
+#, fuzzy
+msgid "AF position: left"
+msgstr "poloha AZ: vľavo"
+
+# AF = automatické zaostrenie
+#: libexif/olympus/mnote-olympus-entry.c:415
+#, fuzzy
+msgid "AF position: right"
+msgstr "poloha AZ: vpravo"
+
+# AF = automatické zaostrenie
+#: libexif/olympus/mnote-olympus-entry.c:416
+#, fuzzy
+msgid "AF position: upper-left"
+msgstr "poloha AZ: vyššie vľavo"
+
+# AF = automatické zaostrenie
+#: libexif/olympus/mnote-olympus-entry.c:417
+#, fuzzy
+msgid "AF position: upper-right"
+msgstr "poloha AZ: vyššie vpravo"
+
+# AF = automatické zaostrenie
+#: libexif/olympus/mnote-olympus-entry.c:418
+#, fuzzy
+msgid "AF position: lower-left"
+msgstr "poloha AZ: nižšie vľavo"
+
+# AF = automatické zaostrenie
+#: libexif/olympus/mnote-olympus-entry.c:419
+#, fuzzy
+msgid "AF position: lower-right"
+msgstr "poloha AZ: nižšie vpravo"
+
+# AF = automatické zaostrenie
+#: libexif/olympus/mnote-olympus-entry.c:420
+#, fuzzy
+msgid "AF position: far left"
+msgstr "poloha AZ: celkom vľavo"
+
+# AF = automatické zaostrenie
+#: libexif/olympus/mnote-olympus-entry.c:421
+#, fuzzy
+msgid "AF position: far right"
+msgstr "poloha AZ: celkom vpravo"
+
+# AF = automatické zaostrenie
+#: libexif/olympus/mnote-olympus-entry.c:422
+#, fuzzy
+msgid "Unknown AF position"
+msgstr "neznáma poloha AZ"
+
+#: libexif/olympus/mnote-olympus-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:503
+#, c-format
+msgid "Internal error (unknown value %hi)"
+msgstr "Vnútorná chyba (neznáma hodnota %hi)"
+
+#: libexif/olympus/mnote-olympus-entry.c:441
+#: libexif/olympus/mnote-olympus-entry.c:511
+#, c-format
+msgid "Unknown value %hi"
+msgstr "neznáma hodnota %hi"
+
+# exif-meteringmode-0
+#: libexif/olympus/mnote-olympus-entry.c:536
+#: libexif/olympus/mnote-olympus-entry.c:556
+#, c-format
+msgid "Unknown %hu"
+msgstr "neznámy %hu"
+
+#: libexif/olympus/mnote-olympus-entry.c:553
+msgid "2 sec."
+msgstr "2 sek."
+
+#: libexif/olympus/mnote-olympus-entry.c:592
+#, fuzzy
+msgid "Fast"
+msgstr "rýchlo"
+
+#: libexif/olympus/mnote-olympus-entry.c:696
+msgid "Automatic"
+msgstr "automatika"
+
+#: libexif/olympus/mnote-olympus-entry.c:726
+#, c-format
+msgid "Manual: %liK"
+msgstr "Manuálny: %liK"
+
+#: libexif/olympus/mnote-olympus-entry.c:729
+#, fuzzy
+msgid "Manual: unknown"
+msgstr "Ručné: neznáme"
+
+#: libexif/olympus/mnote-olympus-entry.c:735
+msgid "One-touch"
+msgstr "jedným dotykom"
+
+#: libexif/olympus/mnote-olympus-entry.c:791
+#: libexif/olympus/mnote-olympus-entry.c:801
+msgid "Infinite"
+msgstr "nekonečno"
+
+#: libexif/olympus/mnote-olympus-entry.c:809
+#, c-format
+msgid "%i bytes unknown data: "
+msgstr "%i bajtov neznámych údajov:"
+
+#: libexif/olympus/mnote-olympus-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:53
+msgid "ISO Setting"
+msgstr "nastavenie ISO"
+
+#: libexif/olympus/mnote-olympus-tag.c:39
+msgid "Color Mode (?)"
+msgstr "farebný režim (?)"
+
+#: libexif/olympus/mnote-olympus-tag.c:42
+msgid "Image Sharpening"
+msgstr "zaostrenie obrazu"
+
+#: libexif/olympus/mnote-olympus-tag.c:44
+msgid "Flash Setting"
+msgstr "nastavenie blesku"
+
+#: libexif/olympus/mnote-olympus-tag.c:46
+msgid "White Balance Fine Adjustment"
+msgstr "doladenie vyváženia bielej"
+
+#: libexif/olympus/mnote-olympus-tag.c:47
+msgid "White Balance RB"
+msgstr "RB vyváženia bielej"
+
+#: libexif/olympus/mnote-olympus-tag.c:49
+msgid "ISO Selection"
+msgstr "nastavenie ISO"
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Preview Image IFD"
+msgstr "náhľad obrázka IFD"
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Offset of the preview image directory (IFD) inside the file."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:51
+msgid "Exposurediff ?"
+msgstr "rozdiel expozície ?"
+
+#: libexif/olympus/mnote-olympus-tag.c:54
+msgid "Image Boundary"
+msgstr "okraj obrázka"
+
+#: libexif/olympus/mnote-olympus-tag.c:56
+msgid "Flash Exposure Bracket Value"
+msgstr "hodnota uzávierky expozície s bleskom"
+
+#: libexif/olympus/mnote-olympus-tag.c:57
+msgid "Exposure Bracket Value"
+msgstr "hodnota uzávierky expozície"
+
+#: libexif/olympus/mnote-olympus-tag.c:58
+#: libexif/olympus/mnote-olympus-tag.c:96
+msgid "Image Adjustment"
+msgstr "doladenie obrázka"
+
+#: libexif/olympus/mnote-olympus-tag.c:59
+msgid "Tone Compensation"
+msgstr "kompenzácia tónu"
+
+#: libexif/olympus/mnote-olympus-tag.c:60
+msgid "Adapter"
+msgstr "adaptér"
+
+#: libexif/olympus/mnote-olympus-tag.c:62
+msgid "Lens"
+msgstr "šošovky"
+
+#: libexif/olympus/mnote-olympus-tag.c:63
+#: libexif/olympus/mnote-olympus-tag.c:135
+#: libexif/olympus/mnote-olympus-tag.c:185
+msgid "Manual Focus Distance"
+msgstr "ručné nastavenie vzdialenosti zaostrenia"
+
+#: libexif/olympus/mnote-olympus-tag.c:65
+msgid "Flash Used"
+msgstr "použitý blesk"
+
+# AF = automatické zaostrenie
+#: libexif/olympus/mnote-olympus-tag.c:66
+msgid "AF Focus Position"
+msgstr "poloha automatického zaostrenia"
+
+#: libexif/olympus/mnote-olympus-tag.c:67
+msgid "Bracketing"
+msgstr "uzávierka"
+
+# TODO: check
+#: libexif/olympus/mnote-olympus-tag.c:69
+msgid "Lens F Stops"
+msgstr "F stops šošoviek"
+
+#: libexif/olympus/mnote-olympus-tag.c:70
+msgid "Contrast Curve"
+msgstr "krivka kontrastu"
+
+#: libexif/olympus/mnote-olympus-tag.c:71
+#: libexif/olympus/mnote-olympus-tag.c:95
+#: libexif/pentax/mnote-pentax-tag.c:134
+msgid "Color Mode"
+msgstr "farebný režim"
+
+#: libexif/olympus/mnote-olympus-tag.c:72
+msgid "Light Type"
+msgstr "typ svetla"
+
+#: libexif/olympus/mnote-olympus-tag.c:74
+msgid "Hue Adjustment"
+msgstr "nastavenie sýtosti"
+
+#: libexif/olympus/mnote-olympus-tag.c:76
+#: libexif/olympus/mnote-olympus-tag.c:163
+#: libexif/pentax/mnote-pentax-tag.c:108
+msgid "Noise Reduction"
+msgstr "Redukcia šumu"
+
+#: libexif/olympus/mnote-olympus-tag.c:79
+msgid "Sensor Pixel Size"
+msgstr "veľkosť obrazového bodu snímača"
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+#, fuzzy
+msgid "Image Data Size"
+msgstr "veľkosť dát obrázka"
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Size of compressed image data in bytes."
+msgstr "veľkosť komprimovaných obrazových dát v bajtoch."
+
+#: libexif/olympus/mnote-olympus-tag.c:84
+msgid "Total Number of Pictures Taken"
+msgstr "celkový počet odfotených obrázkov"
+
+#: libexif/olympus/mnote-olympus-tag.c:86
+msgid "Optimize Image"
+msgstr "optimalizovať obrázok"
+
+#: libexif/olympus/mnote-olympus-tag.c:88
+msgid "Vari Program"
+msgstr "vari program"
+
+#: libexif/olympus/mnote-olympus-tag.c:89
+msgid "Capture Editor Data"
+msgstr "dáta editora zachytávania"
+
+#: libexif/olympus/mnote-olympus-tag.c:90
+msgid "Capture Editor Version"
+msgstr "verzia editora zachytávania"
+
+#: libexif/olympus/mnote-olympus-tag.c:97
+#: libexif/olympus/mnote-olympus-tag.c:183
+msgid "CCD Sensitivity"
+msgstr "citlivosť CCD"
+
+#: libexif/olympus/mnote-olympus-tag.c:99
+msgid "Focus"
+msgstr "zaostrenie"
+
+#: libexif/olympus/mnote-olympus-tag.c:102
+msgid "Converter"
+msgstr "konvertor"
+
+#: libexif/olympus/mnote-olympus-tag.c:105
+msgid "Thumbnail Image"
+msgstr "Náhľad"
+
+#: libexif/olympus/mnote-olympus-tag.c:106
+msgid "Speed/Sequence/Panorama Direction"
+msgstr "rýchlosť/sekvencia/smer panorámy"
+
+#: libexif/olympus/mnote-olympus-tag.c:109
+#, fuzzy
+msgid "Black & White Mode"
+msgstr "čiernobiely"
+
+#: libexif/olympus/mnote-olympus-tag.c:111
+msgid "Focal Plane Diagonal"
+msgstr "Diagonála ohniskovej roviny"
+
+#: libexif/olympus/mnote-olympus-tag.c:112
+msgid "Lens Distortion Parameters"
+msgstr "Parametre zakrivenia šošoviek"
+
+#: libexif/olympus/mnote-olympus-tag.c:114
+msgid "Info"
+msgstr "info"
+
+#: libexif/olympus/mnote-olympus-tag.c:115
+msgid "Camera ID"
+msgstr "ID prístroja"
+
+#: libexif/olympus/mnote-olympus-tag.c:116
+msgid "Precapture Frames"
+msgstr "Predzachytávať rámce"
+
+#: libexif/olympus/mnote-olympus-tag.c:117
+msgid "White Board"
+msgstr "Biele pozadie"
+
+#: libexif/olympus/mnote-olympus-tag.c:118
+msgid "One Touch White Balance"
+msgstr "Vyváženie bielej jedným dotykom"
+
+#: libexif/olympus/mnote-olympus-tag.c:119
+msgid "White Balance Bracket"
+msgstr "Uzávierka vyváženia bielej"
+
+#: libexif/olympus/mnote-olympus-tag.c:120
+#: libexif/pentax/mnote-pentax-tag.c:123
+msgid "White Balance Bias"
+msgstr "Šum vyváženia bielej"
+
+#: libexif/olympus/mnote-olympus-tag.c:121
+msgid "Data Dump"
+msgstr "Výpis dát"
+
+#: libexif/olympus/mnote-olympus-tag.c:124
+msgid "ISO Value"
+msgstr "Hodnota ISO"
+
+# FUZZY exif-aperturevalue
+#: libexif/olympus/mnote-olympus-tag.c:125
+msgid "Aperture Value"
+msgstr "Hodnota clony"
+
+# FUZZY exif-brightnessvalue
+#: libexif/olympus/mnote-olympus-tag.c:126
+msgid "Brightness Value"
+msgstr "Hodnota jasu"
+
+#: libexif/olympus/mnote-olympus-tag.c:128
+msgid "Flash Device"
+msgstr "Zariadenie blesku"
+
+#: libexif/olympus/mnote-olympus-tag.c:130
+msgid "Sensor Temperature"
+msgstr "Teplota snímača"
+
+#: libexif/olympus/mnote-olympus-tag.c:131
+msgid "Lens Temperature"
+msgstr "Teplota šošoviek"
+
+#: libexif/olympus/mnote-olympus-tag.c:132
+msgid "Light Condition"
+msgstr "Svetelné podmienky"
+
+#: libexif/olympus/mnote-olympus-tag.c:136
+msgid "Zoom Step Count"
+msgstr "Počet krokov priblíženia"
+
+#: libexif/olympus/mnote-olympus-tag.c:137
+msgid "Focus Step Count"
+msgstr "Počet krokov zaostrenia"
+
+#: libexif/olympus/mnote-olympus-tag.c:138
+msgid "Sharpness Setting"
+msgstr "nastavenie ostrosti"
+
+#: libexif/olympus/mnote-olympus-tag.c:139
+msgid "Flash Charge Level"
+msgstr "Úroveň nabitia blesku"
+
+#: libexif/olympus/mnote-olympus-tag.c:140
+msgid "Color Matrix"
+msgstr "Farebná matica"
+
+#: libexif/olympus/mnote-olympus-tag.c:141
+msgid "Black Level"
+msgstr "Úroveň čiernej"
+
+#: libexif/olympus/mnote-olympus-tag.c:142
+msgid "White Balance Setting"
+msgstr "nastavenie vyváženia bielej"
+
+#: libexif/olympus/mnote-olympus-tag.c:143
+#: libexif/pentax/mnote-pentax-tag.c:87
+msgid "Red Balance"
+msgstr "Vyváženie červenej"
+
+#: libexif/olympus/mnote-olympus-tag.c:144
+#: libexif/pentax/mnote-pentax-tag.c:86
+msgid "Blue Balance"
+msgstr "Vyváženie modrej"
+
+#: libexif/olympus/mnote-olympus-tag.c:145
+msgid "Color Matrix Number"
+msgstr "Číslo farebnej matice"
+
+#: libexif/olympus/mnote-olympus-tag.c:147
+msgid "Flash Exposure Comp"
+msgstr "Kompenzácia expozície blesku"
+
+#: libexif/olympus/mnote-olympus-tag.c:148
+msgid "Internal Flash Table"
+msgstr "Tabuľka interného blesku"
+
+#: libexif/olympus/mnote-olympus-tag.c:149
+msgid "External Flash G Value"
+msgstr "Hodnota g externého blesku"
+
+#: libexif/olympus/mnote-olympus-tag.c:150
+msgid "External Flash Bounce"
+msgstr "Odrazenie externého blesku"
+
+#: libexif/olympus/mnote-olympus-tag.c:151
+msgid "External Flash Zoom"
+msgstr "Priblíženie externého blesku"
+
+#: libexif/olympus/mnote-olympus-tag.c:152
+msgid "External Flash Mode"
+msgstr "Režim externého blesku"
+
+#: libexif/olympus/mnote-olympus-tag.c:153
+msgid "Contrast Setting"
+msgstr "nastavenie kontrastu"
+
+# FUZZY exif-sharpness
+#: libexif/olympus/mnote-olympus-tag.c:154
+msgid "Sharpness Factor"
+msgstr "Koeficient ostrosti"
+
+#: libexif/olympus/mnote-olympus-tag.c:155
+msgid "Color Control"
+msgstr "Riadenie farieb"
+
+# FUZZY exif-imagewidth
+#: libexif/olympus/mnote-olympus-tag.c:156
+msgid "Olympus Image Width"
+msgstr "Šírka obrázka Olympus"
+
+#: libexif/olympus/mnote-olympus-tag.c:157
+msgid "Olympus Image Height"
+msgstr "Výška obrázka Olympus"
+
+# FUZZY exif-scenetype
+#: libexif/olympus/mnote-olympus-tag.c:158
+msgid "Scene Detect"
+msgstr "Detekcia scény"
+
+# FUZZY exif-compression
+#: libexif/olympus/mnote-olympus-tag.c:159
+msgid "Compression Ratio"
+msgstr "Kompresný pomer"
+
+#: libexif/olympus/mnote-olympus-tag.c:160
+msgid "Preview Image Valid"
+msgstr "Náhľad obrázka platí"
+
+#: libexif/olympus/mnote-olympus-tag.c:161
+msgid "AF Result"
+msgstr "Výsledok AZ"
+
+#: libexif/olympus/mnote-olympus-tag.c:162
+msgid "CCD Scan Mode"
+msgstr "Režim CCD snímania"
+
+#: libexif/olympus/mnote-olympus-tag.c:164
+msgid "Infinity Lens Step"
+msgstr "Nekonečný krok šošoviek"
+
+#: libexif/olympus/mnote-olympus-tag.c:165
+msgid "Near Lens Step"
+msgstr "Blízky krok šošoviek"
+
+#: libexif/olympus/mnote-olympus-tag.c:166
+msgid "Light Value Center"
+msgstr "Stred svetlej hodnoty"
+
+#: libexif/olympus/mnote-olympus-tag.c:167
+msgid "Light Value Periphery"
+msgstr "Periféria svetelnej hodnoty"
+
+#: libexif/olympus/mnote-olympus-tag.c:170
+msgid "Sequential Shot"
+msgstr "Sekvenčná snímka"
+
+#: libexif/olympus/mnote-olympus-tag.c:171
+msgid "Wide Range"
+msgstr "Široký rozsah"
+
+#: libexif/olympus/mnote-olympus-tag.c:172
+msgid "Color Adjustment Mode"
+msgstr "Režim nastavenia farieb"
+
+# FUZZY exif-meteringmode-4
+#: libexif/olympus/mnote-olympus-tag.c:174
+msgid "Quick Shot"
+msgstr "Rýchla spúšť"
+
+#: libexif/olympus/mnote-olympus-tag.c:176
+msgid "Voice Memo"
+msgstr "Hlasová poznámka"
+
+#: libexif/olympus/mnote-olympus-tag.c:177
+msgid "Record Shutter Release"
+msgstr "Uvoľnenie spúšte záznamu"
+
+#: libexif/olympus/mnote-olympus-tag.c:178
+msgid "Flicker Reduce"
+msgstr "Redukcia blikania"
+
+#: libexif/olympus/mnote-olympus-tag.c:179
+msgid "Optical Zoom"
+msgstr "Optické priblíženie"
+
+# FUZZY exif-lightsource
+#: libexif/olympus/mnote-olympus-tag.c:181
+msgid "Light Source Special"
+msgstr "Špeciálny svetelný zdroj"
+
+#: libexif/olympus/mnote-olympus-tag.c:182
+msgid "Resaved"
+msgstr "Znova uložené"
+
+#: libexif/olympus/mnote-olympus-tag.c:184
+msgid "Scene Select"
+msgstr "Výber scény"
+
+#: libexif/olympus/mnote-olympus-tag.c:186
+msgid "Sequence Shot Interval"
+msgstr "Interval snímok v poradí"
+
+# exif-imagewidth
+#: libexif/olympus/mnote-olympus-tag.c:189
+msgid "Epson Image Width"
+msgstr "šírka obrázka Epson"
+
+#: libexif/olympus/mnote-olympus-tag.c:190
+msgid "Epson Image Height"
+msgstr "výška obrázka Epson"
+
+#: libexif/olympus/mnote-olympus-tag.c:191
+msgid "Epson Software Version"
+msgstr "verzia softvéru Epson"
+
+#: libexif/pentax/mnote-pentax-entry.c:80
+#: libexif/pentax/mnote-pentax-entry.c:134
+msgid "Multi-exposure"
+msgstr "multiexpozícia"
+
+#: libexif/pentax/mnote-pentax-entry.c:83
+#: libexif/pentax/mnote-pentax-entry.c:137
+msgid "Good"
+msgstr "dobrý"
+
+#: libexif/pentax/mnote-pentax-entry.c:84
+#: libexif/pentax/mnote-pentax-entry.c:138
+msgid "Better"
+msgstr "lepší"
+
+#: libexif/pentax/mnote-pentax-entry.c:92
+msgid "Flash on"
+msgstr "blesk zapnutý"
+
+#: libexif/pentax/mnote-pentax-entry.c:140
+msgid "TIFF"
+msgstr "TIFF"
+
+#: libexif/pentax/mnote-pentax-entry.c:150
+msgid "2560x1920 or 2304x1728"
+msgstr "2560x1920 alebo 2304x1728"
+
+#: libexif/pentax/mnote-pentax-entry.c:156
+msgid "2304x1728 or 2592x1944"
+msgstr "2304x1728 alebo 2592x1944"
+
+#: libexif/pentax/mnote-pentax-entry.c:158
+msgid "2816x2212 or 2816x2112"
+msgstr "2816x2212 alebo 2816x2112"
+
+#: libexif/pentax/mnote-pentax-entry.c:171
+#, fuzzy
+msgid "Surf & snow"
+msgstr "surfovanie & sneh"
+
+#: libexif/pentax/mnote-pentax-entry.c:172
+#, fuzzy
+msgid "Sunset or candlelight"
+msgstr "západ slnka alebo svetlo sviečky"
+
+#: libexif/pentax/mnote-pentax-entry.c:173
+msgid "Autumn"
+msgstr "jeseň"
+
+#: libexif/pentax/mnote-pentax-entry.c:178
+#, fuzzy
+msgid "Self portrait"
+msgstr "autoportrét"
+
+#: libexif/pentax/mnote-pentax-entry.c:179
+msgid "Illustrations"
+msgstr "ilustrácie"
+
+#: libexif/pentax/mnote-pentax-entry.c:180
+#, fuzzy
+msgid "Digital filter"
+msgstr "digitálny filter"
+
+#: libexif/pentax/mnote-pentax-entry.c:182
+msgid "Food"
+msgstr "jedlo"
+
+#: libexif/pentax/mnote-pentax-entry.c:183
+#, fuzzy
+msgid "Green mode"
+msgstr "zelený režim"
+
+#: libexif/pentax/mnote-pentax-entry.c:184
+#, fuzzy
+msgid "Light pet"
+msgstr "svetlé zviera"
+
+#: libexif/pentax/mnote-pentax-entry.c:185
+#, fuzzy
+msgid "Dark pet"
+msgstr "tmavé zviera"
+
+#: libexif/pentax/mnote-pentax-entry.c:186
+#, fuzzy
+msgid "Medium pet"
+msgstr "stredné zviera"
+
+#: libexif/pentax/mnote-pentax-entry.c:188
+#: libexif/pentax/mnote-pentax-entry.c:296
+msgid "Candlelight"
+msgstr "svetlo sviečky"
+
+#: libexif/pentax/mnote-pentax-entry.c:189
+#, fuzzy
+msgid "Natural skin tone"
+msgstr "prirodzený tón pokožky"
+
+#: libexif/pentax/mnote-pentax-entry.c:190
+#, fuzzy
+msgid "Synchro sound record"
+msgstr "synchr. zvukového záznamu"
+
+#: libexif/pentax/mnote-pentax-entry.c:191
+#, fuzzy
+msgid "Frame composite"
+msgstr "Kompozitný snímok"
+
+#: libexif/pentax/mnote-pentax-entry.c:194
+#, fuzzy
+msgid "Auto, did not fire"
+msgstr "auto, blesk sa nespustil"
+
+#: libexif/pentax/mnote-pentax-entry.c:196
+#, fuzzy
+msgid "Auto, did not fire, red-eye reduction"
+msgstr "auto, blesk sa nespustil, korekcia červených očí"
+
+#: libexif/pentax/mnote-pentax-entry.c:197
+#, fuzzy
+msgid "Auto, fired"
+msgstr "auto, blesk sa spustil"
+
+#: libexif/pentax/mnote-pentax-entry.c:199
+#, fuzzy
+msgid "Auto, fired, red-eye reduction"
+msgstr "auto, blesk sa spustil, korekcia červených očí"
+
+#: libexif/pentax/mnote-pentax-entry.c:201
+#, fuzzy
+msgid "On, wireless"
+msgstr "zapnuté, bezdrôtovo"
+
+#: libexif/pentax/mnote-pentax-entry.c:202
+#, fuzzy
+msgid "On, soft"
+msgstr "zapnutý, mäkký"
+
+#: libexif/pentax/mnote-pentax-entry.c:203
+#, fuzzy
+msgid "On, slow-sync"
+msgstr "zapnuté, pomalá synchr."
+
+#: libexif/pentax/mnote-pentax-entry.c:204
+#, fuzzy
+msgid "On, slow-sync, red-eye reduction"
+msgstr "zapnutý, pomalá synch., korekcia červených očí"
+
+#: libexif/pentax/mnote-pentax-entry.c:205
+#, fuzzy
+msgid "On, trailing-curtain sync"
+msgstr "zapnuté, synchr. koncovej záclony"
+
+# AF = automatické zaostrenie
+#: libexif/pentax/mnote-pentax-entry.c:213
+msgid "AF-S"
+msgstr "AZ-S"
+
+# AF = automatické zaostrenie
+#: libexif/pentax/mnote-pentax-entry.c:214
+msgid "AF-C"
+msgstr "AZ-C"
+
+#: libexif/pentax/mnote-pentax-entry.c:217
+msgid "Upper-left"
+msgstr "vyššie vpravo"
+
+#: libexif/pentax/mnote-pentax-entry.c:218
+msgid "Top"
+msgstr "hore"
+
+#: libexif/pentax/mnote-pentax-entry.c:219
+msgid "Upper-right"
+msgstr "vyššie vpravo"
+
+#: libexif/pentax/mnote-pentax-entry.c:221
+msgid "Mid-left"
+msgstr "v strede vľavo"
+
+#: libexif/pentax/mnote-pentax-entry.c:223
+msgid "Mid-right"
+msgstr "v strede vpravo"
+
+#: libexif/pentax/mnote-pentax-entry.c:225
+msgid "Lower-left"
+msgstr "nižšie vľavo"
+
+#: libexif/pentax/mnote-pentax-entry.c:226
+msgid "Bottom"
+msgstr "dolu"
+
+#: libexif/pentax/mnote-pentax-entry.c:227
+msgid "Lower-right"
+msgstr "nižšie vpravo"
+
+#: libexif/pentax/mnote-pentax-entry.c:228
+#, fuzzy
+msgid "Fixed center"
+msgstr "pevný stred"
+
+#: libexif/pentax/mnote-pentax-entry.c:232
+msgid "Multiple"
+msgstr "viacero"
+
+#: libexif/pentax/mnote-pentax-entry.c:234
+msgid "Top-center"
+msgstr "hore v strede"
+
+#: libexif/pentax/mnote-pentax-entry.c:240
+msgid "Bottom-center"
+msgstr "dolu v strede"
+
+#: libexif/pentax/mnote-pentax-entry.c:257
+#, fuzzy
+msgid "User selected"
+msgstr "Používateľský výber"
+
+#: libexif/pentax/mnote-pentax-entry.c:282
+msgid "3008x2008 or 3040x2024"
+msgstr "3008x2008 alebo 3040x2024"
+
+#: libexif/pentax/mnote-pentax-entry.c:293
+#, fuzzy
+msgid "Digital filter?"
+msgstr "digitálny Filter?"
+
+#: libexif/pentax/mnote-pentax-entry.c:374
+#: libexif/pentax/mnote-pentax-entry.c:383
+#, c-format
+msgid "Internal error (unknown value %i %i)"
+msgstr "Vnútorná chyba (neznáma hodnota %i %i)"
+
+#: libexif/pentax/mnote-pentax-tag.c:35 libexif/pentax/mnote-pentax-tag.c:63
+msgid "Capture Mode"
+msgstr "režim zachytávania"
+
+#: libexif/pentax/mnote-pentax-tag.c:36 libexif/pentax/mnote-pentax-tag.c:70
+#: libexif/pentax/mnote-pentax-tag.c:129
+msgid "Quality Level"
+msgstr "úroveň kvality"
+
+#: libexif/pentax/mnote-pentax-tag.c:54
+#, fuzzy
+msgid "ISO Speed"
+msgstr "ISO rýchlosť"
+
+#: libexif/pentax/mnote-pentax-tag.c:56
+msgid "Colors"
+msgstr "farby"
+
+#: libexif/pentax/mnote-pentax-tag.c:59
+msgid "PrintIM Settings"
+msgstr "nastavenia PrintIM"
+
+#: libexif/pentax/mnote-pentax-tag.c:60 libexif/pentax/mnote-pentax-tag.c:131
+msgid "Time Zone"
+msgstr "časové pásmo"
+
+#: libexif/pentax/mnote-pentax-tag.c:61
+msgid "Daylight Savings"
+msgstr "letný čas"
+
+#: libexif/pentax/mnote-pentax-tag.c:64
+msgid "Preview Size"
+msgstr "veľkosť náhľadu"
+
+#: libexif/pentax/mnote-pentax-tag.c:65
+msgid "Preview Length"
+msgstr "dĺžka náhľadu"
+
+#: libexif/pentax/mnote-pentax-tag.c:66 libexif/pentax/mnote-pentax-tag.c:122
+msgid "Preview Start"
+msgstr "začiatok náhľadu"
+
+#: libexif/pentax/mnote-pentax-tag.c:67
+msgid "Model Identification"
+msgstr "identifikácia modelu"
+
+#: libexif/pentax/mnote-pentax-tag.c:68
+msgid "Date"
+msgstr "Dátum"
+
+#: libexif/pentax/mnote-pentax-tag.c:69
+msgid "Time"
+msgstr "čas"
+
+# AF = automatické zaostrenie
+#: libexif/pentax/mnote-pentax-tag.c:75
+msgid "AF Point Selected"
+msgstr "bod automatického zaostrenia zvolený"
+
+# AF = automatické zaostrenie
+#: libexif/pentax/mnote-pentax-tag.c:76
+msgid "Auto AF Point"
+msgstr "automatický bod zaostrenia"
+
+# AF = automatické zaostrenie
+#: libexif/pentax/mnote-pentax-tag.c:77
+msgid "Focus Position"
+msgstr "poloha zaostrenia"
+
+#: libexif/pentax/mnote-pentax-tag.c:80
+msgid "ISO Number"
+msgstr "číslo ISO"
+
+# exif-exposuremode-2
+#: libexif/pentax/mnote-pentax-tag.c:83
+msgid "Auto Bracketing"
+msgstr "automatická expozícia"
+
+# exif-whitebalance
+#: libexif/pentax/mnote-pentax-tag.c:85
+msgid "White Balance Mode"
+msgstr "režim vyváženia bielej"
+
+#: libexif/pentax/mnote-pentax-tag.c:93
+msgid "World Time Location"
+msgstr "Umiestnenie svetového času"
+
+#: libexif/pentax/mnote-pentax-tag.c:94
+msgid "Hometown City"
+msgstr "Domovské mesto"
+
+#: libexif/pentax/mnote-pentax-tag.c:95
+msgid "Destination City"
+msgstr "Cieľové mesto"
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Hometown DST"
+msgstr "Letný čas doma"
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Home Daylight Savings Time"
+msgstr "letný čas doma"
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination DST"
+msgstr "Letný čas v cieli"
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination Daylight Savings Time"
+msgstr "letný čas v cieli"
+
+#: libexif/pentax/mnote-pentax-tag.c:99
+msgid "Image Processing"
+msgstr "spracovanie obrazu"
+
+#: libexif/pentax/mnote-pentax-tag.c:100
+msgid "Picture Mode (2)"
+msgstr "režim obrázka (2)"
+
+#: libexif/pentax/mnote-pentax-tag.c:103
+msgid "Image Area Offset"
+msgstr "posunutie oblasti obrázka"
+
+#: libexif/pentax/mnote-pentax-tag.c:104
+msgid "Raw Image Size"
+msgstr "veľkosť RAW obrázka"
+
+#: libexif/pentax/mnote-pentax-tag.c:105
+msgid "Autofocus Points Used"
+msgstr "použité body zaostrenia"
+
+#: libexif/pentax/mnote-pentax-tag.c:107
+msgid "Camera Temperature"
+msgstr "teplota fotoaparátu"
+
+#: libexif/pentax/mnote-pentax-tag.c:110
+msgid "Image Tone"
+msgstr "tón obrázka"
+
+#: libexif/pentax/mnote-pentax-tag.c:111
+msgid "Shake Reduction Info"
+msgstr "info o redukcii trasenia"
+
+#: libexif/pentax/mnote-pentax-tag.c:112
+msgid "Black Point"
+msgstr "čierny bod"
+
+#: libexif/pentax/mnote-pentax-tag.c:114
+msgid "AE Info"
+msgstr "info o automatickej expozícii"
+
+#: libexif/pentax/mnote-pentax-tag.c:115
+msgid "Lens Info"
+msgstr "info o šošovkách"
+
+#: libexif/pentax/mnote-pentax-tag.c:116
+msgid "Flash Info"
+msgstr "info o blesku"
+
+#: libexif/pentax/mnote-pentax-tag.c:117
+msgid "Camera Info"
+msgstr "info o fotoaparáte"
+
+#: libexif/pentax/mnote-pentax-tag.c:118
+msgid "Battery Info"
+msgstr "info o batérii"
+
+#: libexif/pentax/mnote-pentax-tag.c:119
+msgid "Hometown City Code"
+msgstr "Kód domovského mesta"
+
+#: libexif/pentax/mnote-pentax-tag.c:120
+msgid "Destination City Code"
+msgstr "Kód cieľového mesta"
+
+# exif-subjectdistance
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Object Distance"
+msgstr "vzdialenosť objektu"
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Distance of photographed object in millimeters."
+msgstr "Vzdialenosť fotografovaných objektov v milimetroch."
+
+#: libexif/pentax/mnote-pentax-tag.c:126
+msgid "Flash Distance"
+msgstr "vzdialenosť blesku"
+
+#: libexif/pentax/mnote-pentax-tag.c:132
+msgid "Bestshot Mode"
+msgstr "režim najlepšej snímky"
+
+#: libexif/pentax/mnote-pentax-tag.c:133
+msgid "CCS ISO Sensitivity"
+msgstr "citlivosť CCS ISO"
+
+#: libexif/pentax/mnote-pentax-tag.c:135
+msgid "Enhancement"
+msgstr "rozšírenie"
+
+#: libexif/pentax/mnote-pentax-tag.c:136
+msgid "Finer"
+msgstr "jemnejšie"
+
+#: test/nls/test-nls.c:20 test/nls/test-nls.c:23 test/nls/test-nls.c:24
+msgid "[DO_NOT_TRANSLATE_THIS_MARKER]"
+msgstr "[DO_NOT_TRANSLATE_THIS_MARKER]"
+
+#~ msgid "On + Red-eye reduction"
+#~ msgstr "zapnutý + korekcia červených očí"
+
+#~ msgid "Center + Right"
+#~ msgstr "stred + vpravo"
+
+#~ msgid "Left + Right"
+#~ msgstr "vľavo + vpravo"
+
+# ?exif-lightsource-255
+#~ msgid "Manual Temperature (Kelvin)"
+#~ msgstr "Ručné nastavenie teploty (v kelvinoch)"
+
+#~ msgid "PC Set1"
+#~ msgstr "PC Set1"
+
+#~ msgid "PC Set2"
+#~ msgstr "PC Set2"
+
+#~ msgid "PC Set3"
+#~ msgstr "PC Set3"
+
+# exif-lightsource-12
+#~ msgid "Daylight Fluorescent"
+#~ msgstr "denné svetlo, fluorescenčné"
+
+#~ msgid "top - left"
+#~ msgstr "ľavý vrchný"
+
+#~ msgid "top - right"
+#~ msgstr "pravý vrchný"
+
+#~ msgid "bottom - right"
+#~ msgstr "pravý spodný"
+
+#~ msgid "bottom - left"
+#~ msgstr "ľavý spodný"
+
+# exif-meteringmode-2
+#~ msgid "Center-Weighted Average"
+#~ msgstr "vážený priemer"
+
+#~ msgid "flash"
+#~ msgstr "blesk"
+
+#~ msgid "%.02lf EV"
+#~ msgstr "%.02lf EV"
+
+#~ msgid "GPS satellites used for measurement"
+#~ msgstr "GPS satelity použité pri meraní"
+
+# exif-yresolution
+#~ msgid "y-Resolution"
+#~ msgstr "vertikálne rozlíšenie"
+
+#~ msgid "OECF"
+#~ msgstr "OECF"
+
+# exif-shutterspeedvalue
+#~ msgid "Shutter speed"
+#~ msgstr "rýchlosť uzávierky"
+
+# exif-focalplaneyresolution
+#~ msgid "Focal Plane y-Resolution"
+#~ msgstr "vertikálne rozlíšenie ohniskovej roviny"
+
+#~ msgid "Daylight-color fluorescent"
+#~ msgstr "Denné svetlo fluorescenčné"
+
+# exif-lightsource-13
+#~ msgid "DayWhite-color fluorescent"
+#~ msgstr "Biely deň, fluorescenčné"
+
+#~ msgid "Macro mode"
+#~ msgstr "režim makro"
+
+#~ msgid "Super Macro"
+#~ msgstr "Super makro"
+
+#~ msgid "normal"
+#~ msgstr "normálny"
+
+#~ msgid "unknown"
+#~ msgstr "neznáme"
+
+#~ msgid "panorama"
+#~ msgstr "panoráma"
+
+#~ msgid "left to right"
+#~ msgstr "zľava doprava"
+
+#~ msgid "right to left"
+#~ msgstr "sprava doľava"
+
+#~ msgid "bottom to top"
+#~ msgstr "zdola hore"
+
+#~ msgid "top to bottom"
+#~ msgstr "zhora dolu"
+
+#~ msgid "Noisereduction"
+#~ msgstr "Redukcia šumu"
+
+#~ msgid "B&W Mode"
+#~ msgstr "ČB režim"
+
+#~ msgid "Self Timer"
+#~ msgstr "Samospúšť"
+
+#~ msgid "Night-scene"
+#~ msgstr "nočná scéna"
+
+#~ msgid "Red-eye Reduction"
+#~ msgstr "Korekcia červených očí"
+
+#~ msgid "Night Scene"
+#~ msgstr "nočná scéna"
+
+#~ msgid "Pan Focus"
+#~ msgstr "posúvať zaostrenie"
+
+# exif-lightsource-13
+#~ msgid "Daywhite Fluorescent"
+#~ msgstr "biely deň, fluorescenčné"
+
+# exif-lightsource-15
+#~ msgid "White Fluorescent"
+#~ msgstr "biela, fluorescenčná"
+
+#~ msgid "PictureMode"
+#~ msgstr "režim obrázka"
+
+#~ msgid "%i"
+#~ msgstr "%i"
+
+#~ msgid "%d"
+#~ msgstr "%d"
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/sq.gmo b/framework/modules/c_LibExifModule/libexif-0.6.20/po/sq.gmo
new file mode 100644
index 0000000000000000000000000000000000000000..a7ebf5a2ae7d617c49354872a0011fb1b2e4445e
Binary files /dev/null and b/framework/modules/c_LibExifModule/libexif-0.6.20/po/sq.gmo differ
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/sq.po b/framework/modules/c_LibExifModule/libexif-0.6.20/po/sq.po
new file mode 100644
index 0000000000000000000000000000000000000000..cad76fc04da85759ab738c1be377e78355c0954d
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/sq.po
@@ -0,0 +1,5438 @@
+# Albanian translation for libexif
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the libexif package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: libexif\n"
+"Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-12-15 22:14-0800\n"
+"PO-Revision-Date: 2009-11-25 15:23+0000\n"
+"Last-Translator: Vilson Gjeci <vilsongjeci@gmail.com>\n"
+"Language-Team: Albanian <sq@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-12-14 00:36+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: libexif/canon/mnote-canon-entry.c:40 libexif/fuji/mnote-fuji-entry.c:35
+#: libexif/olympus/mnote-olympus-entry.c:37
+#: libexif/pentax/mnote-pentax-entry.c:39
+#, c-format
+msgid "Invalid format '%s', expected '%s'."
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:52 libexif/fuji/mnote-fuji-entry.c:47
+#: libexif/olympus/mnote-olympus-entry.c:62
+#: libexif/pentax/mnote-pentax-entry.c:51
+#, c-format
+msgid "Invalid number of components (%i, expected %i)."
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:61
+#: libexif/olympus/mnote-olympus-entry.c:72
+#: libexif/pentax/mnote-pentax-entry.c:61
+#, c-format
+msgid "Invalid number of components (%i, expected %i or %i)."
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:76 libexif/canon/mnote-canon-entry.c:130
+#: libexif/canon/mnote-canon-entry.c:182 libexif/exif-entry.c:796
+#: libexif/olympus/mnote-olympus-entry.c:196
+#: libexif/olympus/mnote-olympus-tag.c:108
+#: libexif/pentax/mnote-pentax-entry.c:174
+#: libexif/pentax/mnote-pentax-entry.c:209
+#: libexif/pentax/mnote-pentax-entry.c:297
+msgid "Macro"
+msgstr "Makro"
+
+#: libexif/canon/mnote-canon-entry.c:77 libexif/canon/mnote-canon-entry.c:79
+#: libexif/canon/mnote-canon-entry.c:157 libexif/canon/mnote-canon-entry.c:160
+#: libexif/canon/mnote-canon-entry.c:163 libexif/exif-entry.c:674
+#: libexif/exif-entry.c:677 libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/exif-entry.c:745 libexif/fuji/mnote-fuji-entry.c:64
+#: libexif/olympus/mnote-olympus-entry.c:118
+#: libexif/olympus/mnote-olympus-entry.c:195
+#: libexif/olympus/mnote-olympus-entry.c:203
+#: libexif/olympus/mnote-olympus-entry.c:213
+#: libexif/olympus/mnote-olympus-entry.c:586
+#: libexif/pentax/mnote-pentax-entry.c:105
+#: libexif/pentax/mnote-pentax-entry.c:110
+#: libexif/pentax/mnote-pentax-entry.c:115
+#: libexif/pentax/mnote-pentax-entry.c:208
+msgid "Normal"
+msgstr "Normale"
+
+#: libexif/canon/mnote-canon-entry.c:78
+msgid "Economy"
+msgstr "Ekonomia"
+
+#: libexif/canon/mnote-canon-entry.c:80
+msgid "Fine"
+msgstr "Maksimal"
+
+#: libexif/canon/mnote-canon-entry.c:81 libexif/fuji/mnote-fuji-entry.c:178
+#: libexif/pentax/mnote-pentax-entry.c:141
+msgid "RAW"
+msgstr "RAW"
+
+#: libexif/canon/mnote-canon-entry.c:82
+msgid "Superfine"
+msgstr "Superfin"
+
+#: libexif/canon/mnote-canon-entry.c:83 libexif/canon/mnote-canon-entry.c:301
+#: libexif/canon/mnote-canon-entry.c:304 libexif/canon/mnote-canon-entry.c:312
+#: libexif/canon/mnote-canon-entry.c:345 libexif/canon/mnote-canon-entry.c:357
+#: libexif/canon/mnote-canon-entry.c:370 libexif/canon/mnote-canon-entry.c:372
+#: libexif/canon/mnote-canon-entry.c:574 libexif/canon/mnote-canon-entry.c:671
+#: libexif/fuji/mnote-fuji-entry.c:70 libexif/fuji/mnote-fuji-entry.c:103
+#: libexif/fuji/mnote-fuji-entry.c:107 libexif/fuji/mnote-fuji-entry.c:115
+#: libexif/fuji/mnote-fuji-entry.c:142
+#: libexif/olympus/mnote-olympus-entry.c:178
+#: libexif/olympus/mnote-olympus-entry.c:186
+#: libexif/olympus/mnote-olympus-entry.c:251
+#: libexif/olympus/mnote-olympus-entry.c:530
+#: libexif/olympus/mnote-olympus-entry.c:547
+#: libexif/pentax/mnote-pentax-entry.c:195
+#: libexif/pentax/mnote-pentax-entry.c:260
+msgid "Off"
+msgstr "Fikur"
+
+#: libexif/canon/mnote-canon-entry.c:84 libexif/canon/mnote-canon-entry.c:167
+#: libexif/canon/mnote-canon-entry.c:180 libexif/canon/mnote-canon-entry.c:328
+#: libexif/canon/mnote-canon-entry.c:400 libexif/fuji/mnote-fuji-entry.c:73
+#: libexif/fuji/mnote-fuji-entry.c:101 libexif/fuji/mnote-fuji-entry.c:111
+#: libexif/fuji/mnote-fuji-entry.c:119
+#: libexif/olympus/mnote-olympus-entry.c:131
+#: libexif/olympus/mnote-olympus-entry.c:183
+#: libexif/olympus/mnote-olympus-entry.c:199
+#: libexif/olympus/mnote-olympus-entry.c:244
+#: libexif/pentax/mnote-pentax-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:88
+#: libexif/pentax/mnote-pentax-entry.c:91
+#: libexif/pentax/mnote-pentax-entry.c:97
+#: libexif/pentax/mnote-pentax-entry.c:131
+#: libexif/pentax/mnote-pentax-entry.c:229
+#: libexif/pentax/mnote-pentax-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:290
+msgid "Auto"
+msgstr "Auto"
+
+#: libexif/canon/mnote-canon-entry.c:85 libexif/canon/mnote-canon-entry.c:302
+#: libexif/canon/mnote-canon-entry.c:347 libexif/canon/mnote-canon-entry.c:361
+#: libexif/canon/mnote-canon-entry.c:371 libexif/fuji/mnote-fuji-entry.c:102
+#: libexif/fuji/mnote-fuji-entry.c:108 libexif/fuji/mnote-fuji-entry.c:116
+#: libexif/fuji/mnote-fuji-entry.c:143
+#: libexif/olympus/mnote-olympus-entry.c:179
+#: libexif/olympus/mnote-olympus-entry.c:533
+#: libexif/olympus/mnote-olympus-entry.c:550
+#: libexif/pentax/mnote-pentax-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:261
+msgid "On"
+msgstr "I Ndezur"
+
+#: libexif/canon/mnote-canon-entry.c:86 libexif/fuji/mnote-fuji-entry.c:104
+#: libexif/olympus/mnote-olympus-entry.c:184
+#: libexif/pentax/mnote-pentax-entry.c:94
+msgid "Red-eye reduction"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:87
+msgid "Slow synchro"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:88
+msgid "Auto, red-eye reduction"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:89
+#: libexif/pentax/mnote-pentax-entry.c:200
+msgid "On, red-eye reduction"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:90
+msgid "External flash"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:91 libexif/canon/mnote-canon-entry.c:101
+#: libexif/canon/mnote-canon-entry.c:294
+msgid "Single"
+msgstr "I vetëm"
+
+#: libexif/canon/mnote-canon-entry.c:92 libexif/canon/mnote-canon-entry.c:102
+#: libexif/canon/mnote-canon-entry.c:295
+msgid "Continuous"
+msgstr "Në vijimësi"
+
+#: libexif/canon/mnote-canon-entry.c:93
+msgid "Movie"
+msgstr "Film"
+
+#: libexif/canon/mnote-canon-entry.c:94
+msgid "Continuous, speed priority"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:95
+msgid "Continuous, low"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:96
+msgid "Continuous, high"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:97
+msgid "One-shot AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:98
+msgid "AI servo AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:99
+msgid "AI focus AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:100 libexif/canon/mnote-canon-entry.c:103
+msgid "Manual focus"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:104 libexif/canon/mnote-canon-entry.c:132
+#: libexif/canon/mnote-canon-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:212
+msgid "Pan focus"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:105
+msgid "JPEG"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:106
+msgid "CRW+THM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:107
+msgid "AVI+THM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:108
+msgid "TIF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:109
+msgid "TIF+JPEG"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:110
+msgid "CR2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:111
+msgid "CR2+JPEG"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:112
+msgid "Large"
+msgstr "E Madhe"
+
+#: libexif/canon/mnote-canon-entry.c:113
+msgid "Medium"
+msgstr "Mesatare"
+
+#: libexif/canon/mnote-canon-entry.c:114
+msgid "Small"
+msgstr "E vogël"
+
+#: libexif/canon/mnote-canon-entry.c:115
+msgid "Medium 1"
+msgstr "Mesatare 1"
+
+#: libexif/canon/mnote-canon-entry.c:116
+msgid "Medium 2"
+msgstr "Mesatare 2"
+
+#: libexif/canon/mnote-canon-entry.c:117
+msgid "Medium 3"
+msgstr "Mesatare 3"
+
+#: libexif/canon/mnote-canon-entry.c:118
+msgid "Postcard"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:119
+msgid "Widescreen"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:120
+msgid "Full auto"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:121 libexif/canon/mnote-canon-entry.c:179
+#: libexif/canon/mnote-canon-entry.c:201 libexif/canon/mnote-canon-entry.c:285
+#: libexif/canon/mnote-canon-entry.c:392 libexif/exif-entry.c:744
+#: libexif/fuji/mnote-fuji-entry.c:112
+#: libexif/olympus/mnote-olympus-entry.c:90
+#: libexif/olympus/mnote-olympus-entry.c:200
+#: libexif/pentax/mnote-pentax-entry.c:79
+#: libexif/pentax/mnote-pentax-entry.c:102
+#: libexif/pentax/mnote-pentax-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:165
+#: libexif/pentax/mnote-pentax-entry.c:211
+#: libexif/pentax/mnote-pentax-entry.c:250
+msgid "Manual"
+msgstr "Manuale"
+
+#: libexif/canon/mnote-canon-entry.c:122 libexif/canon/mnote-canon-entry.c:430
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:755
+#: libexif/fuji/mnote-fuji-entry.c:121 libexif/pentax/mnote-pentax-entry.c:167
+#: libexif/pentax/mnote-pentax-entry.c:301
+msgid "Landscape"
+msgstr "Panoramë"
+
+#: libexif/canon/mnote-canon-entry.c:123
+msgid "Fast shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:124
+msgid "Slow shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:125 libexif/fuji/mnote-fuji-entry.c:123
+#: libexif/olympus/mnote-olympus-entry.c:254
+msgid "Night"
+msgstr "Natë"
+
+#: libexif/canon/mnote-canon-entry.c:126
+msgid "Grayscale"
+msgstr "Shkallë të Grisë"
+
+#: libexif/canon/mnote-canon-entry.c:127 libexif/canon/mnote-canon-entry.c:308
+#: libexif/pentax/mnote-pentax-entry.c:128
+msgid "Sepia"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:128 libexif/canon/mnote-canon-entry.c:429
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:753
+#: libexif/fuji/mnote-fuji-entry.c:120 libexif/pentax/mnote-pentax-entry.c:166
+#: libexif/pentax/mnote-pentax-entry.c:291
+#: libexif/pentax/mnote-pentax-entry.c:294
+#: libexif/pentax/mnote-pentax-entry.c:300
+msgid "Portrait"
+msgstr "Portret"
+
+#: libexif/canon/mnote-canon-entry.c:129 libexif/fuji/mnote-fuji-entry.c:122
+msgid "Sports"
+msgstr "Sportet"
+
+#: libexif/canon/mnote-canon-entry.c:131 libexif/canon/mnote-canon-entry.c:309
+#: libexif/canon/mnote-canon-entry.c:335 libexif/canon/mnote-canon-entry.c:407
+#: libexif/fuji/mnote-fuji-entry.c:89 libexif/pentax/mnote-pentax-entry.c:127
+msgid "Black & white"
+msgstr "Bardhë e zi"
+
+#: libexif/canon/mnote-canon-entry.c:133 libexif/canon/mnote-canon-entry.c:305
+msgid "Vivid"
+msgstr "Vivid"
+
+#: libexif/canon/mnote-canon-entry.c:134 libexif/canon/mnote-canon-entry.c:306
+#: libexif/canon/mnote-canon-entry.c:431
+msgid "Neutral"
+msgstr "Neutral"
+
+#: libexif/canon/mnote-canon-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:93
+msgid "Flash off"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:136
+msgid "Long shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:137 libexif/canon/mnote-canon-entry.c:188
+#: libexif/olympus/mnote-olympus-entry.c:171
+msgid "Super macro"
+msgstr "Super makro"
+
+#: libexif/canon/mnote-canon-entry.c:138
+msgid "Foliage"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:139
+msgid "Indoor"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:140 libexif/fuji/mnote-fuji-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:175
+msgid "Fireworks"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:141 libexif/fuji/mnote-fuji-entry.c:133
+msgid "Beach"
+msgstr "Beach"
+
+#: libexif/canon/mnote-canon-entry.c:142 libexif/canon/mnote-canon-entry.c:344
+#: libexif/canon/mnote-canon-entry.c:416 libexif/fuji/mnote-fuji-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:292
+#: libexif/pentax/mnote-pentax-entry.c:298
+msgid "Underwater"
+msgstr "Nën ujë"
+
+#: libexif/canon/mnote-canon-entry.c:143 libexif/fuji/mnote-fuji-entry.c:134
+msgid "Snow"
+msgstr "Borë"
+
+#: libexif/canon/mnote-canon-entry.c:144
+msgid "Kids & pets"
+msgstr "Fëmije dhe kafshë"
+
+#: libexif/canon/mnote-canon-entry.c:145
+msgid "Night snapshot"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:146
+msgid "Digital macro"
+msgstr "Makro Dixhitale"
+
+#: libexif/canon/mnote-canon-entry.c:147
+msgid "My colors"
+msgstr "Ngjyrat e mija"
+
+#: libexif/canon/mnote-canon-entry.c:148
+msgid "Still image"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:149
+msgid "Color accent"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:150
+msgid "Color swap"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:151
+msgid "Aquarium"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:152
+msgid "ISO 3200"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:153 libexif/canon/mnote-canon-entry.c:348
+#: libexif/canon/mnote-canon-entry.c:365 libexif/canon/mnote-canon-entry.c:417
+#: libexif/olympus/mnote-olympus-entry.c:189
+#: libexif/olympus/mnote-olympus-entry.c:226
+#: libexif/olympus/mnote-olympus-entry.c:451
+#: libexif/pentax/mnote-pentax-entry.c:242
+msgid "None"
+msgstr "Asnjë"
+
+#: libexif/canon/mnote-canon-entry.c:154
+msgid "2x"
+msgstr "2x"
+
+#: libexif/canon/mnote-canon-entry.c:155
+msgid "4x"
+msgstr "4x"
+
+#: libexif/canon/mnote-canon-entry.c:156 libexif/exif-entry.c:702
+#: libexif/exif-entry.c:732
+msgid "Other"
+msgstr "Të Tjera"
+
+#: libexif/canon/mnote-canon-entry.c:158 libexif/canon/mnote-canon-entry.c:161
+#: libexif/canon/mnote-canon-entry.c:164 libexif/canon/mnote-canon-entry.c:398
+#: libexif/fuji/mnote-fuji-entry.c:86 libexif/pentax/mnote-pentax-entry.c:112
+#: libexif/pentax/mnote-pentax-entry.c:117
+msgid "High"
+msgstr "I Lartë"
+
+#: libexif/canon/mnote-canon-entry.c:159 libexif/canon/mnote-canon-entry.c:162
+#: libexif/canon/mnote-canon-entry.c:165 libexif/canon/mnote-canon-entry.c:396
+#: libexif/pentax/mnote-pentax-entry.c:111
+#: libexif/pentax/mnote-pentax-entry.c:116
+msgid "Low"
+msgstr "I Ulët"
+
+#: libexif/canon/mnote-canon-entry.c:166
+msgid "Auto high"
+msgstr "Auto i lartë"
+
+#: libexif/canon/mnote-canon-entry.c:168
+msgid "50"
+msgstr "50"
+
+#: libexif/canon/mnote-canon-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:120
+#: libexif/pentax/mnote-pentax-entry.c:122
+msgid "100"
+msgstr "100"
+
+#: libexif/canon/mnote-canon-entry.c:170
+#: libexif/pentax/mnote-pentax-entry.c:121
+#: libexif/pentax/mnote-pentax-entry.c:123
+msgid "200"
+msgstr "200"
+
+#: libexif/canon/mnote-canon-entry.c:171
+msgid "400"
+msgstr "400"
+
+#: libexif/canon/mnote-canon-entry.c:172
+msgid "800"
+msgstr "800"
+
+#: libexif/canon/mnote-canon-entry.c:173
+msgid "Default"
+msgstr "I Parazgjedhur"
+
+#: libexif/canon/mnote-canon-entry.c:174 libexif/exif-entry.c:698
+msgid "Spot"
+msgstr "Pikë"
+
+#: libexif/canon/mnote-canon-entry.c:175 libexif/exif-entry.c:696
+msgid "Average"
+msgstr "Mesatarja"
+
+#: libexif/canon/mnote-canon-entry.c:176
+msgid "Evaluative"
+msgstr "Vlerësues"
+
+#: libexif/canon/mnote-canon-entry.c:177 libexif/exif-entry.c:701
+msgid "Partial"
+msgstr "I Pjesshëm"
+
+#: libexif/canon/mnote-canon-entry.c:178 libexif/exif-entry.c:697
+msgid "Center-weighted average"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:181
+msgid "Not known"
+msgstr "I panjohur"
+
+#: libexif/canon/mnote-canon-entry.c:183
+msgid "Very close"
+msgstr "Shumë afër"
+
+#: libexif/canon/mnote-canon-entry.c:184 libexif/exif-entry.c:797
+msgid "Close"
+msgstr "Afër"
+
+#: libexif/canon/mnote-canon-entry.c:185
+msgid "Middle range"
+msgstr "Rreze Mesatare"
+
+#: libexif/canon/mnote-canon-entry.c:186
+msgid "Far range"
+msgstr "Rreze e largët"
+
+#: libexif/canon/mnote-canon-entry.c:189
+#: libexif/pentax/mnote-pentax-entry.c:210
+msgid "Infinity"
+msgstr "Pafundësi"
+
+#: libexif/canon/mnote-canon-entry.c:190
+msgid "Manual AF point selection"
+msgstr "Zgjedhje manuale e pikës AF"
+
+#: libexif/canon/mnote-canon-entry.c:191 libexif/canon/mnote-canon-entry.c:349
+msgid "None (MF)"
+msgstr "Asnjë (MF)"
+
+#: libexif/canon/mnote-canon-entry.c:192
+msgid "Auto-selected"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:193 libexif/canon/mnote-canon-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:224
+#: libexif/pentax/mnote-pentax-entry.c:238
+msgid "Right"
+msgstr "Djathtas"
+
+#: libexif/canon/mnote-canon-entry.c:194 libexif/canon/mnote-canon-entry.c:351
+#: libexif/pentax/mnote-pentax-entry.c:222
+#: libexif/pentax/mnote-pentax-entry.c:237
+msgid "Center"
+msgstr "Qendër"
+
+#: libexif/canon/mnote-canon-entry.c:195 libexif/canon/mnote-canon-entry.c:353
+#: libexif/pentax/mnote-pentax-entry.c:220
+#: libexif/pentax/mnote-pentax-entry.c:236
+msgid "Left"
+msgstr "Majtas"
+
+#: libexif/canon/mnote-canon-entry.c:196
+msgid "Auto AF point selection"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:197
+msgid "Easy shooting"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:163
+msgid "Program"
+msgstr "Program"
+
+#: libexif/canon/mnote-canon-entry.c:199
+msgid "Tv-priority"
+msgstr "Prioriteti i TV"
+
+#: libexif/canon/mnote-canon-entry.c:200
+msgid "Av-priority"
+msgstr "Prioriteti i AV"
+
+#: libexif/canon/mnote-canon-entry.c:202
+msgid "A-DEP"
+msgstr "A-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:203
+msgid "M-DEP"
+msgstr "M-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:204
+msgid "Canon EF 50mm f/1.8"
+msgstr "Canon EF 50mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:205
+msgid "Canon EF 28mm f/2.8"
+msgstr "Canon EF 28mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:206
+msgid "Sigma UC Zoom 35-135mm f/4-5.6"
+msgstr "Sigma UC Zoom 35-135mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:207
+msgid "Tokina AF193-2 19-35mm f/3.5-4.5"
+msgstr "Tokina AF193-2 19-35mm f/3.5-4.5"
+
+#: libexif/canon/mnote-canon-entry.c:208
+msgid "Canon EF 100-300mm F5.6L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:209
+msgid "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+msgstr "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:210
+msgid "Canon EF 35mm f/2"
+msgstr "Canon EF 35mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:211
+msgid "Canon EF 15mm f/2.8"
+msgstr "Canon EF 15mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:212
+msgid "Canon EF 80-200mm f/2.8L"
+msgstr "Canon EF 80-200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:213
+msgid "Tokina AT-X280AF PRO 28-80mm F2.8 Aspherical"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:214
+msgid "Cosina 100mm f/3.5 Macro AF"
+msgstr "Cosina 100mm f/3.5 Macro AF"
+
+#: libexif/canon/mnote-canon-entry.c:215
+msgid "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+msgstr "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:216
+msgid "Canon EF 50mm f/1.8 MkII"
+msgstr "Canon EF 50mm f/1.8 MkII"
+
+#: libexif/canon/mnote-canon-entry.c:217
+msgid "Tamron SP AF 300mm f/2.8 LD IF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:218
+msgid "Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:219
+msgid "Canon EF 75-300mm f/4-5.6"
+msgstr "Canon EF 75-300mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:220
+msgid "Canon EF 28-80mm f/3.5-5.6"
+msgstr "Canon EF 28-80mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:221
+msgid "Canon EF 28-105mm f/4-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:222
+msgid "Canon EF-S 18-55mm f/3.5-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:223
+msgid "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+msgstr "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+
+#: libexif/canon/mnote-canon-entry.c:224
+msgid "Canon TS-E 24mm f/3.5L"
+msgstr "Canon TS-E 24mm f/3.5L"
+
+#: libexif/canon/mnote-canon-entry.c:225
+msgid "Canon TS-E 45mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:226
+msgid "Canon TS-E 90mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:227
+msgid "Canon EF 50mm f/1.0L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:228
+msgid "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+msgstr "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+
+#: libexif/canon/mnote-canon-entry.c:229
+msgid "Canon EF 600mm f/4L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:230
+msgid "Canon EF 200mm f/1.8L"
+msgstr "Canon EF 200mm f/1.8L"
+
+#: libexif/canon/mnote-canon-entry.c:231
+msgid "Canon EF 300mm f/2.8L"
+msgstr "Canon EF 300mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:232
+msgid "Canon EF 85mm f/1.2L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:233
+msgid "Canon EF 400mm f/2.8L"
+msgstr "Canon EF 400mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:234
+msgid "Canon EF 500mm f/4.5L"
+msgstr "Canon EF 500mm f/4.5L"
+
+#: libexif/canon/mnote-canon-entry.c:235
+msgid "Canon EF 300mm f/2.8L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:236
+msgid "Canon EF 500mm f/4L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:237
+msgid "Canon EF 100mm f/2"
+msgstr "Canon EF 100mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:238
+msgid "Sigma 20mm EX f/1.8"
+msgstr "Sigma 20mm EX f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:239
+msgid "Canon EF 200mm f/2.8L"
+msgstr "Canon EF 200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:240
+msgid "Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:241
+msgid "Canon EF 35-350mm f/3.5-5.6L"
+msgstr "Canon EF 35-350mm f/3.5-5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:242
+msgid "Canon EF 85mm f/1.8 USM"
+msgstr "Canon EF 85mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:243
+msgid "Canon EF 28-105mm f/3.5-4.5 USM"
+msgstr "Canon EF 28-105mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:244
+msgid "Canon EF 20-35mm f/3.5-4.5 USM"
+msgstr "Canon EF 20-35mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:245
+msgid "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+msgstr "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:246
+msgid "Canon EF 70-200mm f/2.8 L"
+msgstr "Canon EF 70-200mm f/2.8 L"
+
+#: libexif/canon/mnote-canon-entry.c:247
+msgid "Canon EF 70-200mm f/2.8 L + x1.4"
+msgstr "Canon EF 70-200mm f/2.8 L + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:248
+msgid "Canon EF 70-200mm f/2.8 L + x2"
+msgstr "Canon EF 70-200mm f/2.8 L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:249
+msgid "Canon EF 28mm f/1.8 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:250
+msgid "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+msgstr "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+
+#: libexif/canon/mnote-canon-entry.c:251
+msgid "Canon EF 200mm f/2.8L II"
+msgstr "Canon EF 200mm f/2.8L II"
+
+#: libexif/canon/mnote-canon-entry.c:252
+msgid "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+msgstr "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+
+#: libexif/canon/mnote-canon-entry.c:253
+msgid "Canon EF 135mm f/2L"
+msgstr "Canon EF 135mm f/2L"
+
+#: libexif/canon/mnote-canon-entry.c:254
+msgid "Canon EF 24-85mm f/3.5-4.5 USM"
+msgstr "Canon EF 24-85mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:255
+msgid "Canon EF 300mm f/4L IS"
+msgstr "Canon EF 300mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:256
+msgid "Canon EF 28-135mm f/3.5-5.6 IS"
+msgstr "Canon EF 28-135mm f/3.5-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:257
+msgid "Canon EF 35mm f/1.4L"
+msgstr "Canon EF 35mm f/1.4L"
+
+#: libexif/canon/mnote-canon-entry.c:258
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:259
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+
+#: libexif/canon/mnote-canon-entry.c:260
+msgid "Canon EF 100-400mm f/4.5-5.6L IS"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS"
+
+#: libexif/canon/mnote-canon-entry.c:261
+msgid "Canon EF 400mm f/2.8L + x2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:262
+msgid "Canon EF 70-200mm f/4L"
+msgstr "Canon EF 70-200mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:263
+msgid "Canon EF 100mm f/2.8 Macro"
+msgstr "Canon EF 100mm f/2.8 Macro"
+
+#: libexif/canon/mnote-canon-entry.c:264
+msgid "Canon EF 400mm f/4 DO IS"
+msgstr "Canon EF 400mm f/4 DO IS"
+
+#: libexif/canon/mnote-canon-entry.c:265
+msgid "Canon EF 75-300mm f/4-5.6 IS"
+msgstr "Canon EF 75-300mm f/4-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:266
+msgid "Canon EF 50mm f/1.4"
+msgstr "Canon EF 50mm f/1.4"
+
+#: libexif/canon/mnote-canon-entry.c:267
+msgid "Canon EF 28-80 f/3.5-5.6 USM IV"
+msgstr "Canon EF 28-80 f/3.5-5.6 USM IV"
+
+#: libexif/canon/mnote-canon-entry.c:268
+msgid "Canon EF 28-200mm f/3.5-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:269
+msgid "Canon EF 90-300mm f/4.5-5.6"
+msgstr "Canon EF 90-300mm f/4.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:270
+msgid "Canon EF-S 18-55mm f/3.5-4.5 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:271
+msgid "Canon EF 70-200mm f/2.8L IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:272
+msgid "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:273
+msgid "Canon EF 70-200mm f/2.8L IS USM + x2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:274
+msgid "Canon EF 16-35mm f/2.8L"
+msgstr "Canon EF 16-35mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:275
+msgid "Canon EF 24-70mm f/2.8L"
+msgstr "Canon EF 24-70mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:276
+msgid "Canon EF 17-40mm f/4L"
+msgstr "Canon EF 17-40mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:277
+msgid "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:278
+msgid "Canon EF-S 17-85mm f4-5.6 IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:279
+msgid "Canon EF-S10-22mm F3.5-4.5 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:280
+msgid "Canon EF-S60mm F2.8 Macro USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:281
+msgid "Canon EF 24-105mm f/4L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:282
+msgid "Canon EF 70-300mm F4-5.6 IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:283
+msgid "Canon EF 50mm F1.2L USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:284
+msgid "Canon EF 70-200mm f/4L IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:286
+msgid "TTL"
+msgstr "TTL"
+
+#: libexif/canon/mnote-canon-entry.c:287
+msgid "A-TTL"
+msgstr "A-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:288
+msgid "E-TTL"
+msgstr "E-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:289
+msgid "FP sync enabled"
+msgstr "FP sinkronizimi i aktivizuar"
+
+#: libexif/canon/mnote-canon-entry.c:290
+msgid "2nd-curtain sync used"
+msgstr "Është përdorur sinkronizimi i perdes së dytë"
+
+#: libexif/canon/mnote-canon-entry.c:291
+msgid "FP sync used"
+msgstr "Është përdorur sinkronizimi FP"
+
+#: libexif/canon/mnote-canon-entry.c:292
+#: libexif/olympus/mnote-olympus-entry.c:190
+msgid "Internal"
+msgstr "I Brendshëm"
+
+#: libexif/canon/mnote-canon-entry.c:293
+#: libexif/olympus/mnote-olympus-entry.c:191
+msgid "External"
+msgstr "I jashtëm"
+
+#: libexif/canon/mnote-canon-entry.c:296
+msgid "Normal AE"
+msgstr "Normal AE"
+
+#: libexif/canon/mnote-canon-entry.c:297
+msgid "Exposure compensation"
+msgstr "Kompensim i Ekspozimit"
+
+#: libexif/canon/mnote-canon-entry.c:298
+msgid "AE lock"
+msgstr "Bllokim i AE"
+
+#: libexif/canon/mnote-canon-entry.c:299
+#, fuzzy
+msgid "AE lock + exposure compensation"
+msgstr "Bllokim i AE + Kompensim të Ekspozimit"
+
+#: libexif/canon/mnote-canon-entry.c:300
+msgid "No AE"
+msgstr "Pa AE"
+
+#: libexif/canon/mnote-canon-entry.c:303
+msgid "On, shot only"
+msgstr "Ndezur, vetëm shkrepje"
+
+#: libexif/canon/mnote-canon-entry.c:307
+msgid "Smooth"
+msgstr "I Imët"
+
+#: libexif/canon/mnote-canon-entry.c:310 libexif/canon/mnote-canon-entry.c:334
+#: libexif/canon/mnote-canon-entry.c:393 libexif/canon/mnote-canon-entry.c:406
+#: libexif/fuji/mnote-fuji-entry.c:81 libexif/pentax/mnote-pentax-entry.c:87
+msgid "Custom"
+msgstr "E Personalizuar"
+
+#: libexif/canon/mnote-canon-entry.c:311
+msgid "My color data"
+msgstr "Të dhënat e ngjyrës sime"
+
+#: libexif/canon/mnote-canon-entry.c:313 libexif/canon/mnote-canon-entry.c:375
+#: libexif/pentax/mnote-pentax-entry.c:126
+#: libexif/pentax/mnote-pentax-entry.c:145
+msgid "Full"
+msgstr "Plot"
+
+#: libexif/canon/mnote-canon-entry.c:314 libexif/canon/mnote-canon-entry.c:374
+msgid "2/3"
+msgstr "2/3"
+
+#: libexif/canon/mnote-canon-entry.c:315 libexif/canon/mnote-canon-entry.c:373
+msgid "1/3"
+msgstr "1/3"
+
+#: libexif/canon/mnote-canon-entry.c:321
+msgid "Fixed"
+msgstr "Fiksuar"
+
+#: libexif/canon/mnote-canon-entry.c:322 libexif/pentax/mnote-pentax-tag.c:44
+msgid "Zoom"
+msgstr "Zmadho"
+
+#: libexif/canon/mnote-canon-entry.c:329
+msgid "Sunny"
+msgstr "Me Diell"
+
+#: libexif/canon/mnote-canon-entry.c:330 libexif/canon/mnote-canon-entry.c:402
+#: libexif/exif-entry.c:719 libexif/fuji/mnote-fuji-entry.c:75
+#: libexif/olympus/mnote-olympus-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:255
+msgid "Cloudy"
+msgstr "Me re"
+
+#: libexif/canon/mnote-canon-entry.c:331 libexif/canon/mnote-canon-entry.c:403
+#: libexif/exif-entry.c:716 libexif/pentax/mnote-pentax-entry.c:100
+#: libexif/pentax/mnote-pentax-entry.c:249
+msgid "Tungsten"
+msgstr "Tungsten"
+
+#: libexif/canon/mnote-canon-entry.c:332 libexif/canon/mnote-canon-entry.c:404
+#: libexif/exif-entry.c:715 libexif/pentax/mnote-pentax-entry.c:101
+#: libexif/pentax/mnote-pentax-entry.c:248
+msgid "Fluorescent"
+msgstr "Fluoreshent"
+
+#: libexif/canon/mnote-canon-entry.c:333 libexif/canon/mnote-canon-entry.c:405
+#: libexif/exif-entry.c:717 libexif/exif-entry.c:759 libexif/exif-tag.c:577
+#: libexif/fuji/mnote-fuji-entry.c:80 libexif/pentax/mnote-pentax-entry.c:254
+msgid "Flash"
+msgstr "Flash"
+
+#: libexif/canon/mnote-canon-entry.c:336 libexif/canon/mnote-canon-entry.c:408
+#: libexif/exif-entry.c:720 libexif/pentax/mnote-pentax-entry.c:99
+#: libexif/pentax/mnote-pentax-entry.c:247
+msgid "Shade"
+msgstr "Hija"
+
+#: libexif/canon/mnote-canon-entry.c:337 libexif/canon/mnote-canon-entry.c:409
+msgid "Manual temperature (Kelvin)"
+msgstr "Temperaturë manuale (Kelvin)"
+
+#: libexif/canon/mnote-canon-entry.c:338 libexif/canon/mnote-canon-entry.c:410
+msgid "PC set 1"
+msgstr "PC skena 1"
+
+#: libexif/canon/mnote-canon-entry.c:339 libexif/canon/mnote-canon-entry.c:411
+msgid "PC set 2"
+msgstr "PC skena 2"
+
+#: libexif/canon/mnote-canon-entry.c:340 libexif/canon/mnote-canon-entry.c:412
+msgid "PC set 3"
+msgstr "PC skena 3"
+
+#: libexif/canon/mnote-canon-entry.c:341 libexif/canon/mnote-canon-entry.c:413
+#: libexif/exif-entry.c:721 libexif/fuji/mnote-fuji-entry.c:76
+#: libexif/pentax/mnote-pentax-entry.c:251
+msgid "Daylight fluorescent"
+msgstr "Fluoreshente e dritës së ditës"
+
+#: libexif/canon/mnote-canon-entry.c:342 libexif/canon/mnote-canon-entry.c:414
+msgid "Custom 1"
+msgstr "E Parazgjedhur 1"
+
+#: libexif/canon/mnote-canon-entry.c:343 libexif/canon/mnote-canon-entry.c:415
+msgid "Custom 2"
+msgstr "E Parazgjedhur 2"
+
+#: libexif/canon/mnote-canon-entry.c:346 libexif/exif-entry.c:672
+#: libexif/pentax/mnote-pentax-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:132
+#: libexif/pentax/mnote-pentax-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:295
+msgid "Night scene"
+msgstr "Skenë e natës"
+
+#: libexif/canon/mnote-canon-entry.c:352
+#, fuzzy
+msgid "Center-right"
+msgstr "Qendër + Djathtas"
+
+#: libexif/canon/mnote-canon-entry.c:354
+#, fuzzy
+msgid "Left-right"
+msgstr "Nga e majta në të djathtë"
+
+#: libexif/canon/mnote-canon-entry.c:355
+#, fuzzy
+msgid "Left-center"
+msgstr "Majtas + Qendër"
+
+#: libexif/canon/mnote-canon-entry.c:356
+msgid "All"
+msgstr "Të Gjitha"
+
+#: libexif/canon/mnote-canon-entry.c:358
+msgid "On (shot 1)"
+msgstr "Ndezur (shkrepja 1)"
+
+#: libexif/canon/mnote-canon-entry.c:359
+msgid "On (shot 2)"
+msgstr "Ndezur (shkrepja 2)"
+
+#: libexif/canon/mnote-canon-entry.c:360
+msgid "On (shot 3)"
+msgstr "Ndezur (shkrepja 3)"
+
+#: libexif/canon/mnote-canon-entry.c:362
+msgid "EOS high-end"
+msgstr "EOS me nivel të lartë"
+
+#: libexif/canon/mnote-canon-entry.c:363
+msgid "Compact"
+msgstr "Kompakt"
+
+#: libexif/canon/mnote-canon-entry.c:364
+msgid "EOS mid-range"
+msgstr "EOS me rreze mesatare"
+
+#: libexif/canon/mnote-canon-entry.c:366
+msgid "Rotate 90 CW"
+msgstr "Rrotullo 90 në drejtim të akrepave të orës"
+
+#: libexif/canon/mnote-canon-entry.c:367
+msgid "Rotate 180"
+msgstr "Rrotullo 180"
+
+#: libexif/canon/mnote-canon-entry.c:368
+msgid "Rotate 270 CW"
+msgstr "Rrotullo 270 në drejtim të akrepave të orës"
+
+#: libexif/canon/mnote-canon-entry.c:369
+msgid "Rotated by software"
+msgstr "E rrotulluar nga programi"
+
+#: libexif/canon/mnote-canon-entry.c:381
+#: libexif/olympus/mnote-olympus-entry.c:606
+msgid "Left to right"
+msgstr "Nga e majta në të djathtë"
+
+#: libexif/canon/mnote-canon-entry.c:382
+#: libexif/olympus/mnote-olympus-entry.c:609
+msgid "Right to left"
+msgstr "Nga e djathta në të majtë"
+
+#: libexif/canon/mnote-canon-entry.c:383
+#: libexif/olympus/mnote-olympus-entry.c:612
+msgid "Bottom to top"
+msgstr "Nga fundi në krye"
+
+#: libexif/canon/mnote-canon-entry.c:384
+#: libexif/olympus/mnote-olympus-entry.c:615
+msgid "Top to bottom"
+msgstr "Nga kreu në fund"
+
+#: libexif/canon/mnote-canon-entry.c:385
+msgid "2x2 matrix (clockwise)"
+msgstr "2x2 matrix (në drejtim të akrepave të orës)"
+
+#: libexif/canon/mnote-canon-entry.c:391 libexif/canon/mnote-canon-entry.c:397
+#: libexif/canon/mnote-canon-entry.c:418 libexif/canon/mnote-canon-entry.c:428
+#: libexif/exif-entry.c:671 libexif/fuji/mnote-fuji-entry.c:84
+#: libexif/fuji/mnote-fuji-entry.c:93 libexif/fuji/mnote-fuji-entry.c:163
+#: libexif/olympus/mnote-olympus-entry.c:227
+msgid "Standard"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:394
+msgid "N/A"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:395
+msgid "Lowest"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:399
+msgid "Highest"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:401 libexif/exif-entry.c:714
+#: libexif/fuji/mnote-fuji-entry.c:74
+#: libexif/olympus/mnote-olympus-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:98
+#: libexif/pentax/mnote-pentax-entry.c:246
+msgid "Daylight"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:419
+msgid "Set 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:420
+msgid "Set 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:421
+msgid "Set 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:422
+msgid "User def. 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:423
+msgid "User def. 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:424
+msgid "User def. 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:425
+msgid "External 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:426
+msgid "External 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:427
+msgid "External 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:432
+msgid "Faithful"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:115
+msgid "Monochrome"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:491
+msgid ", "
+msgstr ", "
+
+#: libexif/canon/mnote-canon-entry.c:577 libexif/canon/mnote-canon-entry.c:674
+#, c-format
+msgid "%i (ms)"
+msgstr "%i (ms)"
+
+#: libexif/canon/mnote-canon-entry.c:621
+#, c-format
+msgid "%.2f mm"
+msgstr "%.2f mm"
+
+#: libexif/canon/mnote-canon-entry.c:645
+#, c-format
+msgid "%.2f EV"
+msgstr "%.2f EV"
+
+#: libexif/canon/mnote-canon-entry.c:655 libexif/exif-entry.c:1064
+#, c-format
+msgid "1/%i"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:667
+#, c-format
+msgid "%u mm"
+msgstr "%u mm"
+
+#: libexif/canon/mnote-canon-tag.c:35
+msgid "Settings (First Part)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:36 libexif/canon/mnote-canon-tag.c:92
+#: libexif/exif-tag.c:581 libexif/pentax/mnote-pentax-tag.c:88
+msgid "Focal Length"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:37
+msgid "Settings (Second Part)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:38
+#: libexif/olympus/mnote-olympus-entry.c:595
+#: libexif/pentax/mnote-pentax-entry.c:177
+msgid "Panorama"
+msgstr "Panorama"
+
+#: libexif/canon/mnote-canon-tag.c:39
+msgid "Image Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:40 libexif/olympus/mnote-olympus-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:113
+msgid "Firmware Version"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:41
+msgid "Image Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:42
+msgid "Owner Name"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:43
+msgid "Color Information"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:44 libexif/fuji/mnote-fuji-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:81
+#: libexif/olympus/mnote-olympus-tag.c:146
+msgid "Serial Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:45
+msgid "Custom Functions"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:56 libexif/fuji/mnote-fuji-tag.c:45
+msgid "Macro Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:57 libexif/canon/mnote-canon-tag.c:117
+#: libexif/olympus/mnote-olympus-tag.c:175
+#: libexif/pentax/mnote-pentax-tag.c:128
+msgid "Self-timer"
+msgstr "Vetë-kohëmatës"
+
+#: libexif/canon/mnote-canon-tag.c:58 libexif/fuji/mnote-fuji-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:94
+#: libexif/olympus/mnote-olympus-tag.c:107
+msgid "Quality"
+msgstr "Cilësia"
+
+#: libexif/canon/mnote-canon-tag.c:59 libexif/fuji/mnote-fuji-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:45
+#: libexif/olympus/mnote-olympus-tag.c:127
+#: libexif/pentax/mnote-pentax-tag.c:38 libexif/pentax/mnote-pentax-tag.c:73
+msgid "Flash Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:60 libexif/pentax/mnote-pentax-tag.c:101
+msgid "Drive Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:61 libexif/canon/mnote-canon-tag.c:82
+#: libexif/olympus/mnote-olympus-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:134
+#: libexif/olympus/mnote-olympus-tag.c:173
+#: libexif/pentax/mnote-pentax-tag.c:37 libexif/pentax/mnote-pentax-tag.c:74
+#: libexif/pentax/mnote-pentax-tag.c:130
+msgid "Focus Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:62 libexif/pentax/mnote-pentax-tag.c:127
+msgid "Record Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:63 libexif/pentax/mnote-pentax-tag.c:71
+msgid "Image Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:64
+msgid "Easy Shooting Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:65 libexif/olympus/mnote-olympus-tag.c:64
+#: libexif/olympus/mnote-olympus-tag.c:101
+#: libexif/olympus/mnote-olympus-tag.c:110
+#: libexif/olympus/mnote-olympus-tag.c:180
+#: libexif/pentax/mnote-pentax-tag.c:89
+msgid "Digital Zoom"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:66 libexif/exif-tag.c:828
+#: libexif/fuji/mnote-fuji-tag.c:42 libexif/pentax/mnote-pentax-tag.c:46
+#: libexif/pentax/mnote-pentax-tag.c:91
+msgid "Contrast"
+msgstr "Kontrasti"
+
+#: libexif/canon/mnote-canon-tag.c:67 libexif/exif-tag.c:832
+#: libexif/olympus/mnote-olympus-tag.c:75
+#: libexif/olympus/mnote-olympus-tag.c:87 libexif/pentax/mnote-pentax-tag.c:47
+#: libexif/pentax/mnote-pentax-tag.c:90
+msgid "Saturation"
+msgstr "Ngopja"
+
+#: libexif/canon/mnote-canon-tag.c:68 libexif/exif-tag.c:836
+#: libexif/fuji/mnote-fuji-tag.c:39 libexif/pentax/mnote-pentax-tag.c:45
+#: libexif/pentax/mnote-pentax-tag.c:92
+msgid "Sharpness"
+msgstr "Ndriçimi"
+
+#: libexif/canon/mnote-canon-tag.c:69
+msgid "ISO"
+msgstr "ISO"
+
+#: libexif/canon/mnote-canon-tag.c:70 libexif/exif-tag.c:571
+#: libexif/pentax/mnote-pentax-tag.c:82
+msgid "Metering Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:71 libexif/olympus/mnote-olympus-tag.c:133
+msgid "Focus Range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:72 libexif/canon/mnote-canon-tag.c:105
+msgid "AF Point"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:73 libexif/exif-tag.c:795
+msgid "Exposure Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:74 libexif/olympus/mnote-olympus-tag.c:61
+#: libexif/pentax/mnote-pentax-tag.c:106
+msgid "Lens Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:75
+msgid "Long Focal Length of Lens"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:76
+msgid "Short Focal Length of Lens"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:77
+msgid "Focal Units per mm"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:78
+msgid "Maximal Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:79
+msgid "Minimal Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:80
+msgid "Flash Activity"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:81
+msgid "Flash Details"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:83
+msgid "AE Setting"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:84
+msgid "Image Stabilization"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:85
+msgid "Display Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:86
+msgid "Zoom Source Width"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:87
+msgid "Zoom Target Width"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:88
+msgid "Photo Effect"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:89 libexif/canon/mnote-canon-tag.c:118
+msgid "Manual Flash Output"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:90
+msgid "Color Tone"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:91
+msgid "Focal Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:93
+msgid "Focal Plane X Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:94
+msgid "Focal Plane Y Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:95
+msgid "Auto ISO"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:96
+msgid "Shot ISO"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:97
+msgid "Measured EV"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:98
+msgid "Target Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:99
+msgid "Target Exposure Time"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:100 libexif/olympus/mnote-olympus-tag.c:129
+#: libexif/pentax/mnote-pentax-tag.c:81
+msgid "Exposure Compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:101 libexif/canon/mnote-canon-tag.c:123
+#: libexif/exif-tag.c:800 libexif/fuji/mnote-fuji-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:41
+#: libexif/olympus/mnote-olympus-tag.c:98 libexif/pentax/mnote-pentax-tag.c:41
+#: libexif/pentax/mnote-pentax-tag.c:84 libexif/pentax/mnote-pentax-tag.c:124
+msgid "White Balance"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:102
+msgid "Slow Shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:103
+msgid "Sequence Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:104
+msgid "Flash Guide Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:106 libexif/olympus/mnote-olympus-tag.c:52
+#: libexif/pentax/mnote-pentax-tag.c:109
+msgid "Flash Exposure Compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:107
+msgid "AE Bracketing"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:108
+msgid "AE Bracket Value"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:109
+msgid "Focus Distance Upper"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:110
+msgid "Focus Distance Lower"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:111
+msgid "FNumber"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:112 libexif/exif-tag.c:466
+#: libexif/pentax/mnote-pentax-tag.c:78
+msgid "Exposure Time"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:113
+msgid "Bulb Duration"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:114
+msgid "Camera Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:115
+msgid "Auto Rotate"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:116
+msgid "ND Filter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:119
+msgid "Panorama Frame"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:120
+msgid "Panorama Direction"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:121
+msgid "Tone Curve"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:122
+msgid "Sharpness Frequency"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:124
+msgid "Picture Style"
+msgstr ""
+
+#: libexif/exif-byte-order.c:33
+msgid "Motorola"
+msgstr ""
+
+#: libexif/exif-byte-order.c:35
+msgid "Intel"
+msgstr ""
+
+#: libexif/exif-data.c:780
+msgid "Size of data too small to allow for EXIF data."
+msgstr ""
+
+#: libexif/exif-data.c:841
+msgid "EXIF marker not found."
+msgstr ""
+
+#: libexif/exif-data.c:868
+msgid "EXIF header not found."
+msgstr ""
+
+#: libexif/exif-data.c:884
+msgid "Unknown encoding."
+msgstr ""
+
+#: libexif/exif-data.c:1168
+msgid "Ignore unknown tags"
+msgstr ""
+
+#: libexif/exif-data.c:1169
+msgid "Ignore unknown tags when loading EXIF data."
+msgstr ""
+
+#: libexif/exif-data.c:1170
+msgid "Follow specification"
+msgstr ""
+
+#: libexif/exif-data.c:1171
+msgid ""
+"Add, correct and remove entries to get EXIF data that follows the "
+"specification."
+msgstr ""
+
+#: libexif/exif-data.c:1173
+msgid "Do not change maker note"
+msgstr ""
+
+#: libexif/exif-data.c:1174
+msgid ""
+"When loading and resaving Exif data, save the maker note unmodified. Be "
+"aware that the maker note can get corrupted."
+msgstr ""
+
+#: libexif/exif-entry.c:234 libexif/exif-entry.c:303 libexif/exif-entry.c:336
+#, c-format
+msgid ""
+"Tag '%s' was of format '%s' (which is against specification) and has been "
+"changed to format '%s'."
+msgstr ""
+
+#: libexif/exif-entry.c:271
+#, c-format
+msgid ""
+"Tag '%s' is of format '%s' (which is against specification) but cannot be "
+"changed to format '%s'."
+msgstr ""
+
+#: libexif/exif-entry.c:354
+#, c-format
+msgid ""
+"Tag 'UserComment' had invalid format '%s'. Format has been set to "
+"'undefined'."
+msgstr ""
+
+#: libexif/exif-entry.c:381
+msgid ""
+"Tag 'UserComment' has been expanded to at least 8 bytes in order to follow "
+"the specification."
+msgstr ""
+
+#: libexif/exif-entry.c:396
+msgid ""
+"Tag 'UserComment' is not empty but does not start with a format identifier. "
+"This has been fixed."
+msgstr ""
+
+#: libexif/exif-entry.c:424
+msgid ""
+"Tag 'UserComment' did not start with a format identifier. This has been "
+"fixed."
+msgstr ""
+
+#: libexif/exif-entry.c:462
+#, c-format
+msgid "%i bytes undefined data"
+msgstr ""
+
+#: libexif/exif-entry.c:589
+#, c-format
+msgid "%i bytes unsupported data type"
+msgstr ""
+
+#: libexif/exif-entry.c:622
+#, c-format
+msgid "The tag '%s' contains data of an invalid format ('%s', expected '%s')."
+msgstr ""
+
+#: libexif/exif-entry.c:635
+#, c-format
+msgid ""
+"The tag '%s' contains an invalid number of components (%i, expected %i)."
+msgstr ""
+
+#: libexif/exif-entry.c:649
+msgid "Chunky format"
+msgstr ""
+
+#: libexif/exif-entry.c:649
+#, fuzzy
+msgid "Planar format"
+msgstr "Panorama"
+
+#: libexif/exif-entry.c:651 libexif/exif-entry.c:743
+#: test/nls/test-codeset.c:54
+msgid "Not defined"
+msgstr ""
+
+#: libexif/exif-entry.c:651
+msgid "One-chip color area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:652
+msgid "Two-chip color area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:652
+msgid "Three-chip color area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:653
+msgid "Color sequential area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:653
+msgid "Trilinear sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:654
+msgid "Color sequential linear sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:233
+msgid "Top-left"
+msgstr ""
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:235
+msgid "Top-right"
+msgstr ""
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:241
+msgid "Bottom-right"
+msgstr ""
+
+#: libexif/exif-entry.c:657 libexif/pentax/mnote-pentax-entry.c:239
+msgid "Bottom-left"
+msgstr ""
+
+#: libexif/exif-entry.c:657
+#, fuzzy
+msgid "Left-top"
+msgstr "Majtas"
+
+#: libexif/exif-entry.c:657
+#, fuzzy
+msgid "Right-top"
+msgstr "Djathtas"
+
+#: libexif/exif-entry.c:658
+msgid "Right-bottom"
+msgstr ""
+
+#: libexif/exif-entry.c:658
+msgid "Left-bottom"
+msgstr ""
+
+#: libexif/exif-entry.c:660
+#, fuzzy
+msgid "Centered"
+msgstr "Qendër"
+
+#: libexif/exif-entry.c:660
+#, fuzzy
+msgid "Co-sited"
+msgstr "Afër"
+
+#: libexif/exif-entry.c:662
+msgid "Reversed mono"
+msgstr ""
+
+#: libexif/exif-entry.c:662
+msgid "Normal mono"
+msgstr ""
+
+#: libexif/exif-entry.c:662
+msgid "RGB"
+msgstr ""
+
+#: libexif/exif-entry.c:662
+msgid "Palette"
+msgstr ""
+
+#: libexif/exif-entry.c:663
+msgid "CMYK"
+msgstr ""
+
+#: libexif/exif-entry.c:663
+msgid "YCbCr"
+msgstr ""
+
+#: libexif/exif-entry.c:663
+msgid "CieLAB"
+msgstr ""
+
+#: libexif/exif-entry.c:665
+msgid "Normal process"
+msgstr ""
+
+#: libexif/exif-entry.c:665
+msgid "Custom process"
+msgstr ""
+
+#: libexif/exif-entry.c:667
+msgid "Auto exposure"
+msgstr ""
+
+#: libexif/exif-entry.c:667 libexif/fuji/mnote-fuji-entry.c:139
+msgid "Manual exposure"
+msgstr ""
+
+#: libexif/exif-entry.c:667
+msgid "Auto bracket"
+msgstr ""
+
+#: libexif/exif-entry.c:669
+msgid "Auto white balance"
+msgstr ""
+
+#: libexif/exif-entry.c:669
+msgid "Manual white balance"
+msgstr ""
+
+#: libexif/exif-entry.c:674
+msgid "Low gain up"
+msgstr ""
+
+#: libexif/exif-entry.c:674
+msgid "High gain up"
+msgstr ""
+
+#: libexif/exif-entry.c:675
+msgid "Low gain down"
+msgstr ""
+
+#: libexif/exif-entry.c:675
+msgid "High gain down"
+msgstr ""
+
+#: libexif/exif-entry.c:677
+msgid "Low saturation"
+msgstr ""
+
+#: libexif/exif-entry.c:677 test/nls/test-codeset.c:48
+#: test/nls/test-codeset.c:61
+msgid "High saturation"
+msgstr ""
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:63
+#: libexif/olympus/mnote-olympus-entry.c:205
+#: libexif/olympus/mnote-olympus-entry.c:214
+#: libexif/pentax/mnote-pentax-entry.c:106
+#: libexif/pentax/mnote-pentax-entry.c:170
+msgid "Soft"
+msgstr ""
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:65 libexif/fuji/mnote-fuji-entry.c:95
+#: libexif/olympus/mnote-olympus-entry.c:204
+#: libexif/olympus/mnote-olympus-entry.c:212
+#: libexif/pentax/mnote-pentax-entry.c:107
+msgid "Hard"
+msgstr ""
+
+#: libexif/exif-entry.c:695 libexif/exif-entry.c:713 libexif/exif-entry.c:795
+#: libexif/olympus/mnote-olympus-entry.c:589
+#: libexif/olympus/mnote-olympus-entry.c:683
+#: libexif/olympus/mnote-olympus-entry.c:738
+#: libexif/pentax/mnote-pentax-entry.c:256
+msgid "Unknown"
+msgstr ""
+
+#: libexif/exif-entry.c:696
+#, fuzzy
+msgid "Avg"
+msgstr "Mesatarja"
+
+#: libexif/exif-entry.c:697
+#, fuzzy
+msgid "Center-weight"
+msgstr "Qendër + Djathtas"
+
+#: libexif/exif-entry.c:699
+msgid "Multi spot"
+msgstr ""
+
+#: libexif/exif-entry.c:700
+msgid "Pattern"
+msgstr ""
+
+#: libexif/exif-entry.c:705
+msgid "Uncompressed"
+msgstr ""
+
+#: libexif/exif-entry.c:706
+msgid "LZW compression"
+msgstr ""
+
+#: libexif/exif-entry.c:707 libexif/exif-entry.c:708
+msgid "JPEG compression"
+msgstr ""
+
+#: libexif/exif-entry.c:709
+msgid "Deflate/ZIP compression"
+msgstr ""
+
+#: libexif/exif-entry.c:710
+msgid "PackBits compression"
+msgstr ""
+
+#: libexif/exif-entry.c:716
+msgid "Tungsten incandescent light"
+msgstr ""
+
+#: libexif/exif-entry.c:718
+msgid "Fine weather"
+msgstr ""
+
+#: libexif/exif-entry.c:719
+msgid "Cloudy weather"
+msgstr ""
+
+#: libexif/exif-entry.c:722 libexif/fuji/mnote-fuji-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:252
+msgid "Day white fluorescent"
+msgstr ""
+
+#: libexif/exif-entry.c:723
+msgid "Cool white fluorescent"
+msgstr ""
+
+#: libexif/exif-entry.c:724 libexif/fuji/mnote-fuji-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:253
+msgid "White fluorescent"
+msgstr ""
+
+#: libexif/exif-entry.c:725
+msgid "Standard light A"
+msgstr ""
+
+#: libexif/exif-entry.c:726
+msgid "Standard light B"
+msgstr ""
+
+#: libexif/exif-entry.c:727
+msgid "Standard light C"
+msgstr ""
+
+#: libexif/exif-entry.c:728
+msgid "D55"
+msgstr ""
+
+#: libexif/exif-entry.c:729
+msgid "D65"
+msgstr ""
+
+#: libexif/exif-entry.c:730
+msgid "D75"
+msgstr ""
+
+#: libexif/exif-entry.c:731
+msgid "ISO studio tungsten"
+msgstr ""
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "Inch"
+msgstr ""
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "in"
+msgstr ""
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "Centimeter"
+msgstr ""
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "cm"
+msgstr ""
+
+#: libexif/exif-entry.c:745
+msgid "Normal program"
+msgstr ""
+
+#: libexif/exif-entry.c:746
+msgid "Aperture priority"
+msgstr ""
+
+#: libexif/exif-entry.c:746 libexif/exif-tag.c:550
+msgid "Aperture"
+msgstr ""
+
+#: libexif/exif-entry.c:747
+msgid "Shutter priority"
+msgstr ""
+
+#: libexif/exif-entry.c:747
+msgid "Shutter"
+msgstr ""
+
+#: libexif/exif-entry.c:748
+msgid "Creative program (biased toward depth of field)"
+msgstr ""
+
+#: libexif/exif-entry.c:749
+msgid "Creative"
+msgstr ""
+
+#: libexif/exif-entry.c:750
+msgid "Creative program (biased toward fast shutter speed)"
+msgstr ""
+
+#: libexif/exif-entry.c:751
+msgid "Action"
+msgstr ""
+
+#: libexif/exif-entry.c:752
+msgid "Portrait mode (for closeup photos with the background out of focus)"
+msgstr ""
+
+#: libexif/exif-entry.c:754
+msgid "Landscape mode (for landscape photos with the background in focus)"
+msgstr ""
+
+#: libexif/exif-entry.c:758 libexif/exif-entry.c:763
+#: libexif/olympus/mnote-olympus-entry.c:97
+msgid "Flash did not fire"
+msgstr ""
+
+#: libexif/exif-entry.c:758
+#, fuzzy
+msgid "No flash"
+msgstr "Flash"
+
+#: libexif/exif-entry.c:759
+msgid "Flash fired"
+msgstr ""
+
+#: libexif/exif-entry.c:759 libexif/olympus/mnote-olympus-entry.c:170
+#: libexif/olympus/mnote-olympus-entry.c:175
+#: libexif/olympus/mnote-olympus-entry.c:209
+#: libexif/olympus/mnote-olympus-entry.c:218
+#: libexif/olympus/mnote-olympus-entry.c:241
+msgid "Yes"
+msgstr ""
+
+#: libexif/exif-entry.c:760
+msgid "Strobe return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:760
+msgid "Without strobe"
+msgstr ""
+
+#: libexif/exif-entry.c:762
+msgid "Strobe return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:762
+msgid "With strobe"
+msgstr ""
+
+#: libexif/exif-entry.c:764
+msgid "Flash fired, compulsory flash mode"
+msgstr ""
+
+#: libexif/exif-entry.c:765
+msgid "Flash fired, compulsory flash mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:767
+msgid "Flash fired, compulsory flash mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:769
+msgid "Flash did not fire, compulsory flash mode"
+msgstr ""
+
+#: libexif/exif-entry.c:770
+msgid "Flash did not fire, auto mode"
+msgstr ""
+
+#: libexif/exif-entry.c:771
+msgid "Flash fired, auto mode"
+msgstr ""
+
+#: libexif/exif-entry.c:772
+msgid "Flash fired, auto mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:774
+msgid "Flash fired, auto mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:775
+msgid "No flash function"
+msgstr ""
+
+#: libexif/exif-entry.c:776
+msgid "Flash fired, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:777
+msgid "Flash fired, red-eye reduction mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:779
+msgid "Flash fired, red-eye reduction mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:781
+msgid "Flash fired, compulsory flash mode, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:783
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light not "
+"detected"
+msgstr ""
+
+#: libexif/exif-entry.c:785
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light "
+"detected"
+msgstr ""
+
+#: libexif/exif-entry.c:787
+msgid "Flash did not fire, auto mode, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:788
+msgid "Flash fired, auto mode, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:789
+msgid ""
+"Flash fired, auto mode, return light not detected, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:791
+msgid "Flash fired, auto mode, return light detected, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:795
+msgid "?"
+msgstr ""
+
+#: libexif/exif-entry.c:797
+msgid "Close view"
+msgstr ""
+
+#: libexif/exif-entry.c:798
+msgid "Distant view"
+msgstr ""
+
+#: libexif/exif-entry.c:798
+msgid "Distant"
+msgstr ""
+
+#: libexif/exif-entry.c:801
+msgid "sRGB"
+msgstr ""
+
+#: libexif/exif-entry.c:802
+msgid "Adobe RGB"
+msgstr ""
+
+#: libexif/exif-entry.c:803
+msgid "Uncalibrated"
+msgstr ""
+
+#: libexif/exif-entry.c:857
+#, c-format
+msgid "Invalid size of entry (%i, expected %li x %i)."
+msgstr ""
+
+#: libexif/exif-entry.c:890
+msgid "Unsupported UNICODE string"
+msgstr ""
+
+#: libexif/exif-entry.c:898
+msgid "Unsupported JIS string"
+msgstr ""
+
+#: libexif/exif-entry.c:914
+msgid "Tag UserComment does not comply with standard but contains data."
+msgstr ""
+
+#: libexif/exif-entry.c:918
+#, c-format
+msgid "Byte at position %i: 0x%02x"
+msgstr ""
+
+#: libexif/exif-entry.c:927
+msgid "Unknown Exif Version"
+msgstr ""
+
+#: libexif/exif-entry.c:931
+#, c-format
+msgid "Exif Version %d.%d"
+msgstr ""
+
+#: libexif/exif-entry.c:942
+msgid "FlashPix Version 1.0"
+msgstr ""
+
+#: libexif/exif-entry.c:944
+msgid "FlashPix Version 1.01"
+msgstr ""
+
+#: libexif/exif-entry.c:946
+msgid "Unknown FlashPix Version"
+msgstr ""
+
+#: libexif/exif-entry.c:959 libexif/exif-entry.c:972 libexif/exif-entry.c:1628
+#: libexif/exif-entry.c:1633 libexif/exif-entry.c:1637
+#: libexif/exif-entry.c:1642 libexif/exif-entry.c:1643
+msgid "[None]"
+msgstr ""
+
+#: libexif/exif-entry.c:961
+msgid "(Photographer)"
+msgstr ""
+
+#: libexif/exif-entry.c:975
+msgid "(Editor)"
+msgstr ""
+
+#: libexif/exif-entry.c:999 libexif/exif-entry.c:1079
+#: libexif/exif-entry.c:1096 libexif/exif-entry.c:1140
+#, c-format
+msgid "%.02f EV"
+msgstr ""
+
+#: libexif/exif-entry.c:1000
+#, c-format
+msgid " (f/%.01f)"
+msgstr ""
+
+#: libexif/exif-entry.c:1034
+#, c-format
+msgid " (35 equivalent: %d mm)"
+msgstr ""
+
+#: libexif/exif-entry.c:1067 libexif/exif-entry.c:1068
+msgid " sec."
+msgstr ""
+
+#: libexif/exif-entry.c:1082
+#, c-format
+msgid " (1/%d sec.)"
+msgstr ""
+
+#: libexif/exif-entry.c:1084
+#, c-format
+msgid " (%d sec.)"
+msgstr ""
+
+#: libexif/exif-entry.c:1097
+#, c-format
+msgid " (%.02f cd/m^2)"
+msgstr ""
+
+#: libexif/exif-entry.c:1107
+msgid "DSC"
+msgstr ""
+
+#: libexif/exif-entry.c:1109 libexif/exif-entry.c:1149
+#: libexif/exif-entry.c:1236 libexif/exif-entry.c:1287
+#: libexif/exif-entry.c:1296 libexif/exif-entry.c:1332
+#: libexif/fuji/mnote-fuji-entry.c:236 libexif/fuji/mnote-fuji-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:359
+#, c-format
+msgid "Internal error (unknown value %i)"
+msgstr ""
+
+#: libexif/exif-entry.c:1117
+msgid "-"
+msgstr ""
+
+#: libexif/exif-entry.c:1118
+msgid "Y"
+msgstr ""
+
+#: libexif/exif-entry.c:1119
+msgid "Cb"
+msgstr ""
+
+#: libexif/exif-entry.c:1120
+msgid "Cr"
+msgstr ""
+
+#: libexif/exif-entry.c:1121
+msgid "R"
+msgstr ""
+
+#: libexif/exif-entry.c:1122
+msgid "G"
+msgstr ""
+
+#: libexif/exif-entry.c:1123
+msgid "B"
+msgstr ""
+
+#: libexif/exif-entry.c:1124
+msgid "Reserved"
+msgstr ""
+
+#: libexif/exif-entry.c:1147
+msgid "Directly photographed"
+msgstr ""
+
+#: libexif/exif-entry.c:1160
+msgid "YCbCr4:2:2"
+msgstr ""
+
+#: libexif/exif-entry.c:1162
+msgid "YCbCr4:2:0"
+msgstr ""
+
+#: libexif/exif-entry.c:1179
+#, c-format
+msgid "Within distance %i of (x,y) = (%i,%i)"
+msgstr ""
+
+#: libexif/exif-entry.c:1188
+#, c-format
+msgid "Within rectangle (width %i, height %i) around (x,y) = (%i,%i)"
+msgstr ""
+
+#: libexif/exif-entry.c:1194
+#, c-format
+msgid "Unexpected number of components (%li, expected 2, 3, or 4)."
+msgstr ""
+
+#: libexif/exif-entry.c:1232
+msgid "Sea level"
+msgstr ""
+
+#: libexif/exif-entry.c:1234
+msgid "Sea level reference"
+msgstr ""
+
+#: libexif/exif-entry.c:1342
+#, c-format
+msgid "Unknown value %i"
+msgstr ""
+
+#: libexif/exif-format.c:37
+msgid "Short"
+msgstr ""
+
+#: libexif/exif-format.c:38
+msgid "Rational"
+msgstr ""
+
+#: libexif/exif-format.c:39
+msgid "SRational"
+msgstr ""
+
+#: libexif/exif-format.c:40
+msgid "Undefined"
+msgstr ""
+
+#: libexif/exif-format.c:41
+msgid "ASCII"
+msgstr ""
+
+#: libexif/exif-format.c:42
+msgid "Long"
+msgstr ""
+
+#: libexif/exif-format.c:43
+msgid "Byte"
+msgstr ""
+
+#: libexif/exif-format.c:44
+msgid "SByte"
+msgstr ""
+
+#: libexif/exif-format.c:45
+msgid "SShort"
+msgstr ""
+
+#: libexif/exif-format.c:46
+msgid "SLong"
+msgstr ""
+
+#: libexif/exif-format.c:47
+msgid "Float"
+msgstr ""
+
+#: libexif/exif-format.c:48
+msgid "Double"
+msgstr ""
+
+#: libexif/exif-loader.c:119
+#, c-format
+msgid "The file '%s' could not be opened."
+msgstr ""
+
+#: libexif/exif-loader.c:300
+msgid "The data supplied does not seem to contain EXIF data."
+msgstr ""
+
+#: libexif/exif-log.c:43
+msgid "Debugging information"
+msgstr ""
+
+#: libexif/exif-log.c:44
+msgid "Debugging information is available."
+msgstr ""
+
+#: libexif/exif-log.c:45
+msgid "Not enough memory"
+msgstr ""
+
+#: libexif/exif-log.c:46
+msgid "The system cannot provide enough memory."
+msgstr ""
+
+#: libexif/exif-log.c:47
+msgid "Corrupt data"
+msgstr ""
+
+#: libexif/exif-log.c:48
+msgid "The data provided does not follow the specification."
+msgstr ""
+
+#: libexif/exif-tag.c:62
+msgid "GPS Tag Version"
+msgstr ""
+
+#: libexif/exif-tag.c:63
+msgid ""
+"Indicates the version of <GPSInfoIFD>. The version is given as 2.0.0.0. This "
+"tag is mandatory when <GPSInfo> tag is present. (Note: The <GPSVersionID> "
+"tag is given in bytes, unlike the <ExifVersion> tag. When the version is "
+"2.0.0.0, the tag value is 02000000.H)."
+msgstr ""
+
+#: libexif/exif-tag.c:69
+msgid "Interoperability Index"
+msgstr ""
+
+#: libexif/exif-tag.c:70
+msgid ""
+"Indicates the identification of the Interoperability rule. Use \"R98\" for "
+"stating ExifR98 Rules. Four bytes used including the termination code "
+"(NULL). see the separate volume of Recommended Exif Interoperability Rules "
+"(ExifR98) for other tags used for ExifR98."
+msgstr ""
+
+#: libexif/exif-tag.c:76
+msgid "North or South Latitude"
+msgstr ""
+
+#: libexif/exif-tag.c:77
+msgid ""
+"Indicates whether the latitude is north or south latitude. The ASCII value "
+"'N' indicates north latitude, and 'S' is south latitude."
+msgstr ""
+
+#: libexif/exif-tag.c:81
+msgid "Interoperability Version"
+msgstr ""
+
+#: libexif/exif-tag.c:83
+msgid "Latitude"
+msgstr ""
+
+#: libexif/exif-tag.c:84
+msgid ""
+"Indicates the latitude. The latitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is dd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is dd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:91
+msgid "East or West Longitude"
+msgstr ""
+
+#: libexif/exif-tag.c:92
+msgid ""
+"Indicates whether the longitude is east or west longitude. ASCII 'E' "
+"indicates east longitude, and 'W' is west longitude."
+msgstr ""
+
+#: libexif/exif-tag.c:95
+msgid "Longitude"
+msgstr ""
+
+#: libexif/exif-tag.c:96
+msgid ""
+"Indicates the longitude. The longitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is ddd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is ddd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:103
+msgid "Altitude Reference"
+msgstr ""
+
+#: libexif/exif-tag.c:104
+msgid ""
+"Indicates the altitude used as the reference altitude. If the reference is "
+"sea level and the altitude is above sea level, 0 is given. If the altitude "
+"is below sea level, a value of 1 is given and the altitude is indicated as "
+"an absolute value in the GSPAltitude tag. The reference unit is meters. Note "
+"that this tag is BYTE type, unlike other reference tags."
+msgstr ""
+
+#: libexif/exif-tag.c:110
+msgid "Altitude"
+msgstr ""
+
+#: libexif/exif-tag.c:111
+msgid ""
+"Indicates the altitude based on the reference in GPSAltitudeRef. Altitude is "
+"expressed as one RATIONAL value. The reference unit is meters."
+msgstr ""
+
+#: libexif/exif-tag.c:114
+msgid "GPS Time (Atomic Clock)"
+msgstr ""
+
+#: libexif/exif-tag.c:115
+msgid ""
+"Indicates the time as UTC (Coordinated Universal Time). TimeStamp is "
+"expressed as three RATIONAL values giving the hour, minute, and second."
+msgstr ""
+
+#: libexif/exif-tag.c:118
+msgid "GPS Satellites"
+msgstr ""
+
+#: libexif/exif-tag.c:119
+msgid ""
+"Indicates the GPS satellites used for measurements. This tag can be used to "
+"describe the number of satellites, their ID number, angle of elevation, "
+"azimuth, SNR and other information in ASCII notation. The format is not "
+"specified. If the GPS receiver is incapable of taking measurements, value of "
+"the tag shall be set to NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:125
+msgid "GPS Receiver Status"
+msgstr ""
+
+#: libexif/exif-tag.c:126
+msgid ""
+"Indicates the status of the GPS receiver when the image is recorded. 'A' "
+"means measurement is in progress, and 'V' means the measurement is "
+"Interoperability."
+msgstr ""
+
+#: libexif/exif-tag.c:129
+msgid "GPS Measurement Mode"
+msgstr ""
+
+#: libexif/exif-tag.c:130
+msgid ""
+"Indicates the GPS measurement mode. '2' means two-dimensional measurement "
+"and '3' means three-dimensional measurement is in progress."
+msgstr ""
+
+#: libexif/exif-tag.c:133
+msgid "Measurement Precision"
+msgstr ""
+
+#: libexif/exif-tag.c:134
+msgid ""
+"Indicates the GPS DOP (data degree of precision). An HDOP value is written "
+"during two-dimensional measurement, and PDOP during three-dimensional "
+"measurement."
+msgstr ""
+
+#: libexif/exif-tag.c:137
+msgid "Speed Unit"
+msgstr ""
+
+#: libexif/exif-tag.c:138
+msgid ""
+"Indicates the unit used to express the GPS receiver speed of movement. 'K', "
+"'M' and 'N' represent kilometers per hour, miles per hour, and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:141
+msgid "Speed of GPS Receiver"
+msgstr ""
+
+#: libexif/exif-tag.c:142
+msgid "Indicates the speed of GPS receiver movement."
+msgstr ""
+
+#: libexif/exif-tag.c:143
+msgid "Reference for direction of movement"
+msgstr ""
+
+#: libexif/exif-tag.c:144
+msgid ""
+"Indicates the reference for giving the direction of GPS receiver movement. "
+"'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:147
+msgid "Direction of Movement"
+msgstr ""
+
+#: libexif/exif-tag.c:148
+msgid ""
+"Indicates the direction of GPS receiver movement. The range of values is "
+"from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:150
+msgid "GPS Image Direction Reference"
+msgstr ""
+
+#: libexif/exif-tag.c:151
+msgid ""
+"Indicates the reference for giving the direction of the image when it is "
+"captured. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:153
+msgid "GPS Image Direction"
+msgstr ""
+
+#: libexif/exif-tag.c:154
+msgid ""
+"Indicates the direction of the image when it was captured. The range of "
+"values is from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:156
+msgid "Geodetic Survey Data Used"
+msgstr ""
+
+#: libexif/exif-tag.c:157
+msgid ""
+"Indicates the geodetic survey data used by the GPS receiver. If the survey "
+"data is restricted to Japan, the value of this tag is 'TOKYO' or 'WGS-84'. "
+"If a GPS Info tag is recorded, it is strongly recommended that this tag be "
+"recorded."
+msgstr ""
+
+#: libexif/exif-tag.c:161
+msgid "Reference For Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:162
+msgid ""
+"Indicates whether the latitude of the destination point is north or south "
+"latitude. The ASCII value 'N' indicates north latitude, and 'S' is south "
+"latitude."
+msgstr ""
+
+#: libexif/exif-tag.c:165
+msgid "Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:166
+msgid ""
+"Indicates the latitude of the destination point. The latitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If latitude is expressed as degrees, minutes and seconds, a "
+"typical format would be dd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be dd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:173
+msgid "Reference for Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:174
+msgid ""
+"Indicates whether the longitude of the destination point is east or west "
+"longitude. ASCII 'E' indicates east longitude, and 'W' is west longitude."
+msgstr ""
+
+#: libexif/exif-tag.c:177
+msgid "Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:178
+msgid ""
+"Indicates the longitude of the destination point. The longitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If longitude is expressed as degrees, minutes and seconds, a "
+"typical format would be ddd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be ddd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:186
+msgid "Reference for Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:187
+msgid ""
+"Indicates the reference used for giving the bearing to the destination "
+"point. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:190
+msgid "Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:191
+msgid ""
+"Indicates the bearing to the destination point. The range of values is from "
+"0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:193
+msgid "Reference for Distance to Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:194
+msgid ""
+"Indicates the unit used to express the distance to the destination point. "
+"'K', 'M' and 'N' represent kilometers, miles and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:197
+msgid "Distance to Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:198
+msgid "Indicates the distance to the destination point."
+msgstr ""
+
+#: libexif/exif-tag.c:199
+msgid "Name of GPS Processing Method"
+msgstr ""
+
+#: libexif/exif-tag.c:200
+msgid ""
+"A character string recording the name of the method used for location "
+"finding. The first byte indicates the character code used, and this is "
+"followed by the name of the method. Since the Type is not ASCII, NULL "
+"termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:205
+msgid "Name of GPS Area"
+msgstr ""
+
+#: libexif/exif-tag.c:206
+msgid ""
+"A character string recording the name of the GPS area. The first byte "
+"indicates the character code used, and this is followed by the name of the "
+"GPS area. Since the Type is not ASCII, NULL termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:210
+msgid "GPS Date"
+msgstr ""
+
+#: libexif/exif-tag.c:211
+msgid ""
+"A character string recording date and time information relative to UTC "
+"(Coordinated Universal Time). The format is \"YYYY:MM:DD\". The length of "
+"the string is 11 bytes including NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:215
+msgid "GPS Differential Correction"
+msgstr ""
+
+#: libexif/exif-tag.c:216
+msgid ""
+"Indicates whether differential correction is applied to the GPS receiver."
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "New Subfile Type"
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "A general indication of the kind of data contained in this subfile."
+msgstr ""
+
+#: libexif/exif-tag.c:222
+msgid "Image Width"
+msgstr ""
+
+#: libexif/exif-tag.c:223
+msgid ""
+"The number of columns of image data, equal to the number of pixels per row. "
+"In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:227
+msgid "Image Length"
+msgstr ""
+
+#: libexif/exif-tag.c:228
+msgid ""
+"The number of rows of image data. In JPEG compressed data a JPEG marker is "
+"used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:231
+msgid "Bits per Sample"
+msgstr ""
+
+#: libexif/exif-tag.c:232
+msgid ""
+"The number of bits per image component. In this standard each component of "
+"the image is 8 bits, so the value for this tag is 8. See also "
+"<SamplesPerPixel>. In JPEG compressed data a JPEG marker is used instead of "
+"this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:237
+msgid "Compression"
+msgstr ""
+
+#: libexif/exif-tag.c:238
+msgid ""
+"The compression scheme used for the image data. When a primary image is JPEG "
+"compressed, this designation is not necessary and is omitted. When "
+"thumbnails use JPEG compression, this tag value is set to 6."
+msgstr ""
+
+#: libexif/exif-tag.c:244
+msgid "Photometric Interpretation"
+msgstr ""
+
+#: libexif/exif-tag.c:245
+msgid ""
+"The pixel composition. In JPEG compressed data a JPEG marker is used instead "
+"of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:249
+msgid "Fill Order"
+msgstr ""
+
+#: libexif/exif-tag.c:251
+msgid "Document Name"
+msgstr ""
+
+#: libexif/exif-tag.c:253
+msgid "Image Description"
+msgstr ""
+
+#: libexif/exif-tag.c:254
+msgid ""
+"A character string giving the title of the image. It may be a comment such "
+"as \"1988 company picnic\" or the like. Two-bytes character codes cannot be "
+"used. When a 2-bytes code is necessary, the Exif Private tag <UserComment> "
+"is to be used."
+msgstr ""
+
+#: libexif/exif-tag.c:260
+msgid "Manufacturer"
+msgstr ""
+
+#: libexif/exif-tag.c:261
+msgid ""
+"The manufacturer of the recording equipment. This is the manufacturer of the "
+"DSC, scanner, video digitizer or other equipment that generated the image. "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:267
+msgid "Model"
+msgstr ""
+
+#: libexif/exif-tag.c:268
+msgid ""
+"The model name or model number of the equipment. This is the model name or "
+"number of the DSC, scanner, video digitizer or other equipment that "
+"generated the image. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:273
+msgid "Strip Offsets"
+msgstr ""
+
+#: libexif/exif-tag.c:274
+msgid ""
+"For each strip, the byte offset of that strip. It is recommended that this "
+"be selected so the number of strip bytes does not exceed 64 Kbytes. With "
+"JPEG compressed data this designation is not needed and is omitted. See also "
+"<RowsPerStrip> and <StripByteCounts>."
+msgstr ""
+
+#: libexif/exif-tag.c:280
+msgid "Orientation"
+msgstr ""
+
+#: libexif/exif-tag.c:281
+msgid "The image orientation viewed in terms of rows and columns."
+msgstr ""
+
+#: libexif/exif-tag.c:284
+msgid "Samples per Pixel"
+msgstr ""
+
+#: libexif/exif-tag.c:285
+msgid ""
+"The number of components per pixel. Since this standard applies to RGB and "
+"YCbCr images, the value set for this tag is 3. In JPEG compressed data a "
+"JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:290
+msgid "Rows per Strip"
+msgstr ""
+
+#: libexif/exif-tag.c:291
+msgid ""
+"The number of rows per strip. This is the number of rows in the image of one "
+"strip when an image is divided into strips. With JPEG compressed data this "
+"designation is not needed and is omitted. See also <StripOffsets> and "
+"<StripByteCounts>."
+msgstr ""
+
+#: libexif/exif-tag.c:297
+msgid "Strip Byte Count"
+msgstr ""
+
+#: libexif/exif-tag.c:298
+msgid ""
+"The total number of bytes in each strip. With JPEG compressed data this "
+"designation is not needed and is omitted."
+msgstr ""
+
+#: libexif/exif-tag.c:301
+msgid "X-Resolution"
+msgstr ""
+
+#: libexif/exif-tag.c:302
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageWidth> direction. "
+"When the image resolution is unknown, 72 [dpi] is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:306
+msgid "Y-Resolution"
+msgstr ""
+
+#: libexif/exif-tag.c:307
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageLength> direction. "
+"The same value as <XResolution> is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:311
+msgid "Planar Configuration"
+msgstr ""
+
+#: libexif/exif-tag.c:312
+msgid ""
+"Indicates whether pixel components are recorded in a chunky or planar "
+"format. In JPEG compressed files a JPEG marker is used instead of this tag. "
+"If this field does not exist, the TIFF default of 1 (chunky) is assumed."
+msgstr ""
+
+#: libexif/exif-tag.c:317
+msgid "Resolution Unit"
+msgstr ""
+
+#: libexif/exif-tag.c:318
+msgid ""
+"The unit for measuring <XResolution> and <YResolution>. The same unit is "
+"used for both <XResolution> and <YResolution>. If the image resolution is "
+"unknown, 2 (inches) is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:323
+msgid "Transfer Function"
+msgstr ""
+
+#: libexif/exif-tag.c:324
+msgid ""
+"A transfer function for the image, described in tabular style. Normally this "
+"tag is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:328
+msgid "Software"
+msgstr ""
+
+#: libexif/exif-tag.c:329
+msgid ""
+"This tag records the name and version of the software or firmware of the "
+"camera or image input device used to generate the image. The detailed format "
+"is not specified, but it is recommended that the example shown below be "
+"followed. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:336
+msgid "Date and Time"
+msgstr ""
+
+#: libexif/exif-tag.c:337
+msgid ""
+"The date and time of image creation. In this standard (EXIF-2.1) it is the "
+"date and time the file was changed."
+msgstr ""
+
+#: libexif/exif-tag.c:340
+msgid "Artist"
+msgstr ""
+
+#: libexif/exif-tag.c:341
+msgid ""
+"This tag records the name of the camera owner, photographer or image "
+"creator. The detailed format is not specified, but it is recommended that "
+"the information be written as in the example below for ease of "
+"Interoperability. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:347 libexif/pentax/mnote-pentax-tag.c:113
+msgid "White Point"
+msgstr ""
+
+#: libexif/exif-tag.c:348
+msgid ""
+"The chromaticity of the white point of the image. Normally this tag is not "
+"necessary, since color space is specified in the color space information tag "
+"(<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:353
+msgid "Primary Chromaticities"
+msgstr ""
+
+#: libexif/exif-tag.c:354
+msgid ""
+"The chromaticity of the three primary colors of the image. Normally this tag "
+"is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:359
+msgid "Defined by Adobe Corporation to enable TIFF Trees within a TIFF file."
+msgstr ""
+
+#: libexif/exif-tag.c:362
+msgid "Transfer Range"
+msgstr ""
+
+#: libexif/exif-tag.c:366
+msgid "JPEG Interchange Format"
+msgstr ""
+
+#: libexif/exif-tag.c:367
+msgid ""
+"The offset to the start byte (SOI) of JPEG compressed thumbnail data. This "
+"is not used for primary image JPEG data."
+msgstr ""
+
+#: libexif/exif-tag.c:372
+msgid "JPEG Interchange Format Length"
+msgstr ""
+
+#: libexif/exif-tag.c:373
+msgid ""
+"The number of bytes of JPEG compressed thumbnail data. This is not used for "
+"primary image JPEG data. JPEG thumbnails are not divided but are recorded as "
+"a continuous JPEG bitstream from SOI to EOI. Appn and COM markers should not "
+"be recorded. Compressed thumbnails must be recorded in no more than 64 "
+"Kbytes, including all other data to be recorded in APP1."
+msgstr ""
+
+#: libexif/exif-tag.c:382
+msgid "YCbCr Coefficients"
+msgstr ""
+
+#: libexif/exif-tag.c:383
+msgid ""
+"The matrix coefficients for transformation from RGB to YCbCr image data. No "
+"default is given in TIFF; but here the value given in \"Color Space "
+"Guidelines\", is used as the default. The color space is declared in a color "
+"space information tag, with the default being the value that gives the "
+"optimal image characteristics Interoperability this condition."
+msgstr ""
+
+#: libexif/exif-tag.c:392
+msgid "YCbCr Sub-Sampling"
+msgstr ""
+
+#: libexif/exif-tag.c:393
+msgid ""
+"The sampling ratio of chrominance components in relation to the luminance "
+"component. In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:398
+msgid "YCbCr Positioning"
+msgstr ""
+
+#: libexif/exif-tag.c:399
+msgid ""
+"The position of chrominance components in relation to the luminance "
+"component. This field is designated only for JPEG compressed data or "
+"uncompressed YCbCr data. The TIFF default is 1 (centered); but when Y:Cb:Cr "
+"= 4:2:2 it is recommended in this standard that 2 (co-sited) be used to "
+"record data, in order to improve the image quality when viewed on TV "
+"systems. When this field does not exist, the reader shall assume the TIFF "
+"default. In the case of Y:Cb:Cr = 4:2:0, the TIFF default (centered) is "
+"recommended. If the reader does not have the capability of supporting both "
+"kinds of <YCbCrPositioning>, it shall follow the TIFF default regardless of "
+"the value in this field. It is preferable that readers be able to support "
+"both centered and co-sited positioning."
+msgstr ""
+
+#: libexif/exif-tag.c:414
+msgid "Reference Black/White"
+msgstr ""
+
+#: libexif/exif-tag.c:415
+msgid ""
+"The reference black point value and reference white point value. No defaults "
+"are given in TIFF, but the values below are given as defaults here. The "
+"color space is declared in a color space information tag, with the default "
+"being the value that gives the optimal image characteristics "
+"Interoperability these conditions."
+msgstr ""
+
+#: libexif/exif-tag.c:423
+msgid "XML Packet"
+msgstr ""
+
+#: libexif/exif-tag.c:423
+msgid "XMP Metadata"
+msgstr ""
+
+#: libexif/exif-tag.c:438 libexif/exif-tag.c:784
+msgid "CFA Pattern"
+msgstr ""
+
+#: libexif/exif-tag.c:439 libexif/exif-tag.c:785
+msgid ""
+"Indicates the color filter array (CFA) geometric pattern of the image sensor "
+"when a one-chip color area sensor is used. It does not apply to all sensing "
+"methods."
+msgstr ""
+
+#: libexif/exif-tag.c:443
+msgid "Battery Level"
+msgstr ""
+
+#: libexif/exif-tag.c:444
+msgid "Copyright"
+msgstr ""
+
+#: libexif/exif-tag.c:445
+msgid ""
+"Copyright information. In this standard the tag is used to indicate both the "
+"photographer and editor copyrights. It is the copyright notice of the person "
+"or organization claiming rights to the image. The Interoperability copyright "
+"statement including date and rights should be written in this field; e.g., "
+"\"Copyright, John Smith, 19xx. All rights reserved.\". In this standard the "
+"field records both the photographer and editor copyrights, with each "
+"recorded in a separate part of the statement. When there is a clear "
+"distinction between the photographer and editor copyrights, these are to be "
+"written in the order of photographer followed by editor copyright, separated "
+"by NULL (in this case, since the statement also ends with a NULL, there are "
+"two NULL codes) (see example 1). When only the photographer is given, it is "
+"terminated by one NULL code (see example 2). When only the editor copyright "
+"is given, the photographer copyright part consists of one space followed by "
+"a terminating NULL code, then the editor copyright is given (see example 3). "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:467
+msgid "Exposure time, given in seconds (sec)."
+msgstr ""
+
+#: libexif/exif-tag.c:469 libexif/pentax/mnote-pentax-tag.c:79
+msgid "F-Number"
+msgstr ""
+
+#: libexif/exif-tag.c:470
+msgid "The F number."
+msgstr ""
+
+#: libexif/exif-tag.c:475
+msgid "Image Resources Block"
+msgstr ""
+
+#: libexif/exif-tag.c:477
+msgid ""
+"A pointer to the Exif IFD. Interoperability, Exif IFD has the same structure "
+"as that of the IFD specified in TIFF. ordinarily, however, it does not "
+"contain image data as in the case of TIFF."
+msgstr ""
+
+#: libexif/exif-tag.c:485
+msgid "Exposure Program"
+msgstr ""
+
+#: libexif/exif-tag.c:486
+msgid ""
+"The class of the program used by the camera to set exposure when the picture "
+"is taken."
+msgstr ""
+
+#: libexif/exif-tag.c:490
+msgid "Spectral Sensitivity"
+msgstr ""
+
+#: libexif/exif-tag.c:491
+msgid ""
+"Indicates the spectral sensitivity of each channel of the camera used. The "
+"tag value is an ASCII string compatible with the standard developed by the "
+"ASTM Technical Committee."
+msgstr ""
+
+#: libexif/exif-tag.c:496
+msgid "GPS Info IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:497
+msgid ""
+"A pointer to the GPS Info IFD. The Interoperability structure of the GPS "
+"Info IFD, like that of Exif IFD, has no image data."
+msgstr ""
+
+#: libexif/exif-tag.c:503
+msgid "ISO Speed Ratings"
+msgstr ""
+
+#: libexif/exif-tag.c:504
+msgid ""
+"Indicates the ISO Speed and ISO Latitude of the camera or input device as "
+"specified in ISO 12232."
+msgstr ""
+
+#: libexif/exif-tag.c:507
+msgid "Opto-Electronic Conversion Function"
+msgstr ""
+
+#: libexif/exif-tag.c:508
+msgid ""
+"Indicates the Opto-Electronic Conversion Function (OECF) specified in ISO "
+"14524. <OECF> is the relationship between the camera optical input and the "
+"image values."
+msgstr ""
+
+#: libexif/exif-tag.c:513
+msgid "Time Zone Offset"
+msgstr ""
+
+#: libexif/exif-tag.c:514
+msgid "Encodes time zone of camera clock relative to GMT."
+msgstr ""
+
+#: libexif/exif-tag.c:515
+msgid "Exif Version"
+msgstr ""
+
+#: libexif/exif-tag.c:516
+msgid ""
+"The version of this standard supported. Nonexistence of this field is taken "
+"to mean nonconformance to the standard."
+msgstr ""
+
+#: libexif/exif-tag.c:520
+msgid "Date and Time (Original)"
+msgstr ""
+
+#: libexif/exif-tag.c:521
+msgid ""
+"The date and time when the original image data was generated. For a digital "
+"still camera the date and time the picture was taken are recorded."
+msgstr ""
+
+#: libexif/exif-tag.c:526
+msgid "Date and Time (Digitized)"
+msgstr ""
+
+#: libexif/exif-tag.c:527
+msgid "The date and time when the image was stored as digital data."
+msgstr ""
+
+#: libexif/exif-tag.c:530
+msgid "Components Configuration"
+msgstr ""
+
+#: libexif/exif-tag.c:531
+msgid ""
+"Information specific to compressed data. The channels of each component are "
+"arranged in order from the 1st component to the 4th. For uncompressed data "
+"the data arrangement is given in the <PhotometricInterpretation> tag. "
+"However, since <PhotometricInterpretation> can only express the order of Y, "
+"Cb and Cr, this tag is provided for cases when compressed data uses "
+"components other than Y, Cb, and Cr and to enable support of other sequences."
+msgstr ""
+
+#: libexif/exif-tag.c:541
+msgid "Compressed Bits per Pixel"
+msgstr ""
+
+#: libexif/exif-tag.c:542
+msgid ""
+"Information specific to compressed data. The compression mode used for a "
+"compressed image is indicated in unit bits per pixel."
+msgstr ""
+
+#: libexif/exif-tag.c:546 libexif/olympus/mnote-olympus-tag.c:123
+msgid "Shutter Speed"
+msgstr ""
+
+#: libexif/exif-tag.c:547
+msgid ""
+"Shutter speed. The unit is the APEX (Additive System of Photographic "
+"Exposure) setting."
+msgstr ""
+
+#: libexif/exif-tag.c:551
+msgid "The lens aperture. The unit is the APEX value."
+msgstr ""
+
+#: libexif/exif-tag.c:553
+msgid "Brightness"
+msgstr ""
+
+#: libexif/exif-tag.c:554
+msgid ""
+"The value of brightness. The unit is the APEX value. Ordinarily it is given "
+"in the range of -99.99 to 99.99."
+msgstr ""
+
+#: libexif/exif-tag.c:558
+msgid "Exposure Bias"
+msgstr ""
+
+#: libexif/exif-tag.c:559
+msgid ""
+"The exposure bias. The units is the APEX value. Ordinarily it is given in "
+"the range of -99.99 to 99.99."
+msgstr ""
+
+#: libexif/exif-tag.c:562
+msgid "Maximum Aperture Value"
+msgstr ""
+
+#: libexif/exif-tag.c:563
+msgid ""
+"The smallest F number of the lens. The unit is the APEX value. Ordinarily it "
+"is given in the range of 00.00 to 99.99, but it is not limited to this range."
+msgstr ""
+
+#: libexif/exif-tag.c:568
+msgid "Subject Distance"
+msgstr ""
+
+#: libexif/exif-tag.c:569
+msgid "The distance to the subject, given in meters."
+msgstr ""
+
+#: libexif/exif-tag.c:572
+msgid "The metering mode."
+msgstr ""
+
+#: libexif/exif-tag.c:574
+msgid "Light Source"
+msgstr ""
+
+#: libexif/exif-tag.c:575
+msgid "The kind of light source."
+msgstr ""
+
+#: libexif/exif-tag.c:578
+msgid ""
+"This tag is recorded when an image is taken using a strobe light (flash)."
+msgstr ""
+
+#: libexif/exif-tag.c:582
+msgid ""
+"The actual focal length of the lens, in mm. Conversion is not made to the "
+"focal length of a 35 mm film camera."
+msgstr ""
+
+#: libexif/exif-tag.c:585
+msgid "Subject Area"
+msgstr ""
+
+#: libexif/exif-tag.c:586
+msgid ""
+"This tag indicates the location and area of the main subject in the overall "
+"scene."
+msgstr ""
+
+#: libexif/exif-tag.c:590
+msgid "TIFF/EP Standard ID"
+msgstr ""
+
+#: libexif/exif-tag.c:591
+msgid "Maker Note"
+msgstr ""
+
+#: libexif/exif-tag.c:592
+msgid ""
+"A tag for manufacturers of Exif writers to record any desired information. "
+"The contents are up to the manufacturer."
+msgstr ""
+
+#: libexif/exif-tag.c:595
+msgid "User Comment"
+msgstr ""
+
+#: libexif/exif-tag.c:596
+msgid ""
+"A tag for Exif users to write keywords or comments on the image besides "
+"those in <ImageDescription>, and without the character code limitations of "
+"the <ImageDescription> tag. The character code used in the <UserComment> tag "
+"is identified based on an ID code in a fixed 8-byte area at the start of the "
+"tag data area. The unused portion of the area is padded with NULL (\"00.h"
+"\"). ID codes are assigned by means of registration. The designation method "
+"and references for each character code are defined in the specification. The "
+"value of CountN is determined based on the 8 bytes in the character code "
+"area and the number of bytes in the user comment part. Since the TYPE is not "
+"ASCII, NULL termination is not necessary. The ID code for the <UserComment> "
+"area may be a Defined code such as JIS or ASCII, or may be Undefined. The "
+"Undefined name is UndefinedText, and the ID code is filled with 8 bytes of "
+"all \"NULL\" (\"00.H\"). An Exif reader that reads the <UserComment> tag "
+"must have a function for determining the ID code. This function is not "
+"required in Exif readers that do not use the <UserComment> tag. When a "
+"<UserComment> area is set aside, it is recommended that the ID code be ASCII "
+"and that the following user comment part be filled with blank characters [20."
+"H]."
+msgstr ""
+
+#: libexif/exif-tag.c:619
+msgid "Sub-second Time"
+msgstr ""
+
+#: libexif/exif-tag.c:620
+msgid "A tag used to record fractions of seconds for the <DateTime> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:624
+msgid "Sub-second Time (Original)"
+msgstr ""
+
+#: libexif/exif-tag.c:625
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeOriginal> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:629
+msgid "Sub-second Time (Digitized)"
+msgstr ""
+
+#: libexif/exif-tag.c:630
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeDigitized> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:634
+msgid "XP Title"
+msgstr ""
+
+#: libexif/exif-tag.c:635
+msgid "A character string giving the title of the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:639
+msgid "XP Comment"
+msgstr ""
+
+#: libexif/exif-tag.c:640
+msgid ""
+"A character string containing a comment about the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:644
+msgid "XP Author"
+msgstr ""
+
+#: libexif/exif-tag.c:645
+msgid ""
+"A character string containing the name of the image creator, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:649
+msgid "XP Keywords"
+msgstr ""
+
+#: libexif/exif-tag.c:650
+msgid ""
+"A character string containing key words describing the image, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:654
+msgid "XP Subject"
+msgstr ""
+
+#: libexif/exif-tag.c:655
+msgid "A character string giving the image subject, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:659
+msgid "The FlashPix format version supported by a FPXR file."
+msgstr ""
+
+#: libexif/exif-tag.c:661 libexif/pentax/mnote-pentax-tag.c:102
+msgid "Color Space"
+msgstr ""
+
+#: libexif/exif-tag.c:662
+msgid ""
+"The color space information tag is always recorded as the color space "
+"specifier. Normally sRGB (=1) is used to define the color space based on the "
+"PC monitor conditions and environment. If a color space other than sRGB is "
+"used, Uncalibrated (=FFFF.H) is set. Image data recorded as Uncalibrated can "
+"be treated as sRGB when it is converted to FlashPix."
+msgstr ""
+
+#: libexif/exif-tag.c:670
+msgid "Pixel X Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:671
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid width of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file."
+msgstr ""
+
+#: libexif/exif-tag.c:677
+msgid "Pixel Y Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:678
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid height of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file. Since data padding is unnecessary in the "
+"vertical direction, the number of lines recorded in this valid image height "
+"tag will in fact be the same as that recorded in the SOF."
+msgstr ""
+
+#: libexif/exif-tag.c:688
+msgid "Related Sound File"
+msgstr ""
+
+#: libexif/exif-tag.c:689
+msgid ""
+"This tag is used to record the name of an audio file related to the image "
+"data. The only relational information recorded here is the Exif audio file "
+"name and extension (an ASCII string consisting of 8 characters + '.' + 3 "
+"characters). The path is not recorded. Stipulations on audio and file naming "
+"conventions are defined in the specification. When using this tag, audio "
+"files must be recorded in conformance to the Exif audio format. Writers are "
+"also allowed to store the data such as Audio within APP2 as FlashPix "
+"extension stream data. The mapping of Exif image files and audio files is "
+"done in any of three ways, [1], [2] and [3]. If multiple files are mapped to "
+"one file as in [2] or [3], the above format is used to record just one audio "
+"file name. If there are multiple audio files, the first recorded file is "
+"given. In the case of [3], for example, for the Exif image file \"DSC00001."
+"JPG\" only  \"SND00001.WAV\" is given as the related Exif audio file. When "
+"there are three Exif audio files \"SND00001.WAV\", \"SND00002.WAV\" and "
+"\"SND00003.WAV\", the Exif image file name for each of them, \"DSC00001.JPG"
+"\", is indicated. By combining multiple relational information, a variety of "
+"playback possibilities can be supported. The method of using relational "
+"information is left to the implementation on the playback side. Since this "
+"information is an ASCII character string, it is terminated by NULL. When "
+"this tag is used to map audio files, the relation of the audio file to image "
+"data must also be indicated on the audio file end."
+msgstr ""
+
+#: libexif/exif-tag.c:719
+msgid "Interoperability IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:720
+msgid ""
+"Interoperability IFD is composed of tags which stores the information to "
+"ensure the Interoperability and pointed by the following tag located in Exif "
+"IFD. The Interoperability structure of Interoperability IFD is the same as "
+"TIFF defined IFD structure but does not contain the image data "
+"characteristically compared with normal TIFF IFD."
+msgstr ""
+
+#: libexif/exif-tag.c:729
+msgid "Flash Energy"
+msgstr ""
+
+#: libexif/exif-tag.c:730
+msgid ""
+"Indicates the strobe energy at the time the image is captured, as measured "
+"in Beam Candle Power Seconds (BCPS)."
+msgstr ""
+
+#: libexif/exif-tag.c:734
+msgid "Spatial Frequency Response"
+msgstr ""
+
+#: libexif/exif-tag.c:735
+msgid ""
+"This tag records the camera or input device spatial frequency table and SFR "
+"values in the direction of image width, image height, and diagonal "
+"direction, as specified in ISO 12233."
+msgstr ""
+
+#: libexif/exif-tag.c:741
+msgid "Focal Plane X-Resolution"
+msgstr ""
+
+#: libexif/exif-tag.c:742
+msgid ""
+"Indicates the number of pixels in the image width (X) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+
+#: libexif/exif-tag.c:746
+msgid "Focal Plane Y-Resolution"
+msgstr ""
+
+#: libexif/exif-tag.c:747
+msgid ""
+"Indicates the number of pixels in the image height (V) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+
+#: libexif/exif-tag.c:751
+msgid "Focal Plane Resolution Unit"
+msgstr ""
+
+#: libexif/exif-tag.c:752
+msgid ""
+"Indicates the unit for measuring <FocalPlaneXResolution> and "
+"<FocalPlaneYResolution>. This value is the same as the <ResolutionUnit>."
+msgstr ""
+
+#: libexif/exif-tag.c:757
+msgid "Subject Location"
+msgstr ""
+
+#: libexif/exif-tag.c:758
+msgid ""
+"Indicates the location of the main subject in the scene. The value of this "
+"tag represents the pixel at the center of the main subject relative to the "
+"left edge, prior to rotation processing as per the <Rotation> tag. The first "
+"value indicates the X column number and the second indicates the Y row "
+"number."
+msgstr ""
+
+#: libexif/exif-tag.c:765
+msgid "Exposure Index"
+msgstr ""
+
+#: libexif/exif-tag.c:766
+msgid ""
+"Indicates the exposure index selected on the camera or input device at the "
+"time the image is captured."
+msgstr ""
+
+#: libexif/exif-tag.c:769
+msgid "Sensing Method"
+msgstr ""
+
+#: libexif/exif-tag.c:770
+msgid "Indicates the image sensor type on the camera or input device."
+msgstr ""
+
+#: libexif/exif-tag.c:773 libexif/fuji/mnote-fuji-tag.c:64
+msgid "File Source"
+msgstr ""
+
+#: libexif/exif-tag.c:774
+msgid ""
+"Indicates the image source. If a DSC recorded the image, the tag value of "
+"this tag always be set to 3, indicating that the image was recorded on a DSC."
+msgstr ""
+
+#: libexif/exif-tag.c:778
+msgid "Scene Type"
+msgstr ""
+
+#: libexif/exif-tag.c:779
+msgid ""
+"Indicates the type of scene. If a DSC recorded the image, this tag value "
+"must always be set to 1, indicating that the image was directly photographed."
+msgstr ""
+
+#: libexif/exif-tag.c:789
+msgid "Custom Rendered"
+msgstr ""
+
+#: libexif/exif-tag.c:790
+msgid ""
+"This tag indicates the use of special processing on image data, such as "
+"rendering geared to output. When special processing is performed, the reader "
+"is expected to disable or minimize any further processing."
+msgstr ""
+
+#: libexif/exif-tag.c:796
+msgid ""
+"This tag indicates the exposure mode set when the image was shot. In auto-"
+"bracketing mode, the camera shoots a series of frames of the same scene at "
+"different exposure settings."
+msgstr ""
+
+#: libexif/exif-tag.c:801
+msgid "This tag indicates the white balance mode set when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:805
+msgid "Digital Zoom Ratio"
+msgstr ""
+
+#: libexif/exif-tag.c:806
+msgid ""
+"This tag indicates the digital zoom ratio when the image was shot. If the "
+"numerator of the recorded value is 0, this indicates that digital zoom was "
+"not used."
+msgstr ""
+
+#: libexif/exif-tag.c:811
+msgid "Focal Length in 35mm Film"
+msgstr ""
+
+#: libexif/exif-tag.c:812
+msgid ""
+"This tag indicates the equivalent focal length assuming a 35mm film camera, "
+"in mm. A value of 0 means the focal length is unknown. Note that this tag "
+"differs from the FocalLength tag."
+msgstr ""
+
+#: libexif/exif-tag.c:818
+msgid "Scene Capture Type"
+msgstr ""
+
+#: libexif/exif-tag.c:819
+msgid ""
+"This tag indicates the type of scene that was shot. It can also be used to "
+"record the mode in which the image was shot. Note that this differs from the "
+"scene type <SceneType> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:824
+msgid "Gain Control"
+msgstr ""
+
+#: libexif/exif-tag.c:825
+msgid "This tag indicates the degree of overall image gain adjustment."
+msgstr ""
+
+#: libexif/exif-tag.c:829
+msgid ""
+"This tag indicates the direction of contrast processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:833
+msgid ""
+"This tag indicates the direction of saturation processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:837
+msgid ""
+"This tag indicates the direction of sharpness processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:841
+msgid "Device Setting Description"
+msgstr ""
+
+#: libexif/exif-tag.c:842
+msgid ""
+"This tag indicates information on the picture-taking conditions of a "
+"particular camera model. The tag is used only to indicate the picture-taking "
+"conditions in the reader."
+msgstr ""
+
+#: libexif/exif-tag.c:848
+msgid "Subject Distance Range"
+msgstr ""
+
+#: libexif/exif-tag.c:849
+msgid "This tag indicates the distance to the subject."
+msgstr ""
+
+#: libexif/exif-tag.c:851
+msgid "Image Unique ID"
+msgstr ""
+
+#: libexif/exif-tag.c:852
+msgid ""
+"This tag indicates an identifier assigned uniquely to each image. It is "
+"recorded as an ASCII string equivalent to hexadecimal notation and 128-bit "
+"fixed length."
+msgstr ""
+
+#: libexif/exif-tag.c:857
+msgid "Gamma"
+msgstr ""
+
+#: libexif/exif-tag.c:858
+msgid "Indicates the value of coefficient gamma."
+msgstr ""
+
+#: libexif/exif-tag.c:860
+msgid "PRINT Image Matching"
+msgstr ""
+
+#: libexif/exif-tag.c:861
+msgid "Related to Epson's PRINT Image Matching technology"
+msgstr ""
+
+#: libexif/exif-tag.c:863
+msgid "Padding"
+msgstr ""
+
+#: libexif/exif-tag.c:864
+msgid ""
+"This tag reserves space that can be reclaimed later when additional metadata "
+"are added. New metadata can be written in place by replacing this tag with a "
+"smaller data element and using the reclaimed space to store the new or "
+"expanded metadata tags."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:62
+msgid "Softest"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:66
+msgid "Hardest"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:67 libexif/fuji/mnote-fuji-entry.c:96
+msgid "Medium soft"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:68 libexif/fuji/mnote-fuji-entry.c:94
+msgid "Medium hard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:69 libexif/fuji/mnote-fuji-entry.c:90
+#: libexif/fuji/mnote-fuji-entry.c:98 libexif/fuji/mnote-fuji-entry.c:182
+msgid "Film simulation mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:79
+msgid "Incandescent"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:85
+msgid "Medium high"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:87
+msgid "Medium low"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:88 libexif/fuji/mnote-fuji-entry.c:97
+msgid "Original"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:124 libexif/pentax/mnote-pentax-entry.c:164
+#: libexif/pentax/mnote-pentax-entry.c:299
+msgid "Program AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:125
+msgid "Natural photo"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:126
+msgid "Vibration reduction"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:127
+msgid "Sunset"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:128 libexif/pentax/mnote-pentax-entry.c:181
+msgid "Museum"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:129
+msgid "Party"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:130
+msgid "Flower"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:131 libexif/pentax/mnote-pentax-entry.c:176
+msgid "Text"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:132
+msgid "NP & flash"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:137
+msgid "Aperture priority AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:138
+msgid "Shutter priority AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:146
+msgid "F-Standard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:147
+msgid "F-Chrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:148
+msgid "F-B&W"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:151
+msgid "No blur"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:152
+msgid "Blur warning"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:155
+msgid "Focus good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:156
+msgid "Out of focus"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:159
+msgid "AE good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:160
+msgid "Over exposed"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:164
+msgid "Wide"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:167
+msgid "F0/Standard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:168
+msgid "F1/Studio portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:169
+msgid "F1a/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:170
+msgid "F1b/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:171
+msgid "F1c/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:172
+msgid "F2/Fujichrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:173
+msgid "F3/Studio portrait Ex"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:174
+msgid "F4/Velvia"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:177
+msgid "Auto (100-400%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:179
+msgid "Standard (100%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:180
+msgid "Wide1 (230%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:181
+msgid "Wide2 (400%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:263
+#, c-format
+msgid "%2.2f mm"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:298 libexif/pentax/mnote-pentax-entry.c:399
+#: libexif/pentax/mnote-pentax-entry.c:451
+#, c-format
+msgid "%i bytes unknown data"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:36
+msgid "Maker Note Version"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:37
+msgid "This number is unique and based on the date of manufacture."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:41
+msgid "Chromaticity Saturation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:44
+msgid "Flash Firing Strength Compensation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:46
+msgid "Focusing Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:47
+msgid "Focus Point"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:48
+msgid "Slow Synchro Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:49 libexif/pentax/mnote-pentax-tag.c:72
+msgid "Picture Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:50
+msgid "Continuous Taking"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:51
+msgid "Continuous Sequence Number"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:52
+msgid "FinePix Color"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:53
+msgid "Blur Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:54
+msgid "Auto Focus Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:55
+msgid "Auto Exposure Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:56
+msgid "Dynamic Range"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:57
+msgid "Film Simulation Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:58
+msgid "Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:59
+msgid "Development Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:60
+msgid "Minimum Focal Length"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:61
+msgid "Maximum Focal Length"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:62
+msgid "Maximum Aperture at Minimum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:63
+msgid "Maximum Aperture at Maximum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:65
+msgid "Order Number"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:66 libexif/pentax/mnote-pentax-tag.c:98
+msgid "Frame Number"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:49
+#, c-format
+msgid "Invalid format '%s', expected '%s' or '%s'."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:89
+msgid "AF non D lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:91
+msgid "AF-D or AF-S lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:92
+msgid "AF-D G lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:93
+msgid "AF-D VR lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:94
+msgid "AF-D G VR lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:98
+msgid "Flash unit unknown"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:99
+msgid "Flash is external"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:100
+msgid "Flash is on camera"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:103
+msgid "VGA basic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:104
+#, fuzzy
+msgid "VGA normal"
+msgstr "Normale"
+
+#: libexif/olympus/mnote-olympus-entry.c:105
+msgid "VGA fine"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:106
+msgid "SXGA basic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:107
+msgid "SXGA normal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:108
+msgid "SXGA fine"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:109
+msgid "2 Mpixel basic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:110
+msgid "2 Mpixel normal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:111
+msgid "2 Mpixel fine"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:114
+msgid "Color"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:119
+msgid "Bright+"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:120
+msgid "Bright-"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:121
+msgid "Contrast+"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:122
+msgid "Contrast-"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:125
+msgid "ISO 80"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:126
+msgid "ISO 160"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:127
+msgid "ISO 320"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:128
+#: libexif/olympus/mnote-olympus-entry.c:246
+msgid "ISO 100"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:132
+msgid "Preset"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:134
+msgid "Incandescence"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:135
+msgid "Fluorescence"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:137
+msgid "SpeedLight"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:140
+msgid "No fisheye"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:141
+msgid "Fisheye on"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:144
+msgid "Normal, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:145
+msgid "Normal, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:146
+msgid "Normal, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:147
+msgid "Normal, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:148
+msgid "Normal, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:149
+msgid "Normal, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:150
+msgid "Normal, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:151
+msgid "Normal, standard"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:152
+msgid "Fine, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:153
+msgid "Fine, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:154
+msgid "Fine, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:155
+msgid "Fine, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:156
+msgid "Fine, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:157
+msgid "Fine, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:158
+msgid "Fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:159
+msgid "Super fine, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:160
+msgid "Super fine, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:161
+msgid "Super fine, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:162
+msgid "Super fine, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:163
+msgid "Super fine, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:164
+msgid "Super fine, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:165
+msgid "Super fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:166
+msgid "Super fine, high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:169
+#: libexif/olympus/mnote-olympus-entry.c:174
+#: libexif/olympus/mnote-olympus-entry.c:208
+#: libexif/olympus/mnote-olympus-entry.c:217
+#: libexif/olympus/mnote-olympus-entry.c:240
+msgid "No"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:180
+msgid "On (Preset)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:185
+msgid "Fill"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:192
+msgid "Internal + external"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:221
+msgid "Interlaced"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:222
+msgid "Progressive"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:228
+#: libexif/pentax/mnote-pentax-entry.c:85
+#: libexif/pentax/mnote-pentax-entry.c:139
+msgid "Best"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:229
+msgid "Adjust exposure"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:232
+#, fuzzy
+msgid "Spot focus"
+msgstr "Sportet"
+
+#: libexif/olympus/mnote-olympus-entry.c:233
+#, fuzzy
+msgid "Normal focus"
+msgstr "Normale"
+
+#: libexif/olympus/mnote-olympus-entry.c:236
+msgid "Record while down"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:237
+msgid "Press start, press stop"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:245
+msgid "ISO 50"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:247
+msgid "ISO 200"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:248
+msgid "ISO 400"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:252
+#: libexif/pentax/mnote-pentax-entry.c:168
+msgid "Sport"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:253
+msgid "TV"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:255
+msgid "User 1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:256
+msgid "User 2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:257
+msgid "Lamp"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:260
+msgid "5 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:261
+msgid "10 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:262
+msgid "15 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:263
+msgid "20 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:375
+#, c-format
+msgid "Red Correction %f, blue Correction %f"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:383
+#, c-format
+msgid "%2.2f meters"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:385
+msgid "No manual focus selection"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:411
+msgid "AF position: center"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:412
+msgid "AF position: top"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:413
+#, fuzzy
+msgid "AF position: bottom"
+msgstr "Nga kreu në fund"
+
+#: libexif/olympus/mnote-olympus-entry.c:414
+msgid "AF position: left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:415
+msgid "AF position: right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:416
+msgid "AF position: upper-left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:417
+msgid "AF position: upper-right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:418
+msgid "AF position: lower-left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:419
+msgid "AF position: lower-right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:420
+msgid "AF position: far left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:421
+msgid "AF position: far right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:422
+msgid "Unknown AF position"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:503
+#, c-format
+msgid "Internal error (unknown value %hi)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:441
+#: libexif/olympus/mnote-olympus-entry.c:511
+#, c-format
+msgid "Unknown value %hi"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:536
+#: libexif/olympus/mnote-olympus-entry.c:556
+#, c-format
+msgid "Unknown %hu"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:553
+msgid "2 sec."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:592
+#, fuzzy
+msgid "Fast"
+msgstr "Flash"
+
+#: libexif/olympus/mnote-olympus-entry.c:696
+msgid "Automatic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:726
+#, c-format
+msgid "Manual: %liK"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:729
+msgid "Manual: unknown"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:735
+msgid "One-touch"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:791
+#: libexif/olympus/mnote-olympus-entry.c:801
+msgid "Infinite"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:809
+#, c-format
+msgid "%i bytes unknown data: "
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:53
+msgid "ISO Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:39
+msgid "Color Mode (?)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:42
+msgid "Image Sharpening"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:44
+msgid "Flash Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:46
+msgid "White Balance Fine Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:47
+msgid "White Balance RB"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:49
+msgid "ISO Selection"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Preview Image IFD"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Offset of the preview image directory (IFD) inside the file."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:51
+msgid "Exposurediff ?"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:54
+msgid "Image Boundary"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:56
+msgid "Flash Exposure Bracket Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:57
+msgid "Exposure Bracket Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:58
+#: libexif/olympus/mnote-olympus-tag.c:96
+msgid "Image Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:59
+msgid "Tone Compensation"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:60
+msgid "Adapter"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:62
+msgid "Lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:63
+#: libexif/olympus/mnote-olympus-tag.c:135
+#: libexif/olympus/mnote-olympus-tag.c:185
+msgid "Manual Focus Distance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:65
+msgid "Flash Used"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:66
+msgid "AF Focus Position"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:67
+msgid "Bracketing"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:69
+msgid "Lens F Stops"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:70
+msgid "Contrast Curve"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:71
+#: libexif/olympus/mnote-olympus-tag.c:95
+#: libexif/pentax/mnote-pentax-tag.c:134
+msgid "Color Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:72
+msgid "Light Type"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:74
+msgid "Hue Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:76
+#: libexif/olympus/mnote-olympus-tag.c:163
+#: libexif/pentax/mnote-pentax-tag.c:108
+msgid "Noise Reduction"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:79
+msgid "Sensor Pixel Size"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Image Data Size"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Size of compressed image data in bytes."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:84
+msgid "Total Number of Pictures Taken"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:86
+msgid "Optimize Image"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:88
+msgid "Vari Program"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:89
+msgid "Capture Editor Data"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:90
+msgid "Capture Editor Version"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:97
+#: libexif/olympus/mnote-olympus-tag.c:183
+msgid "CCD Sensitivity"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:99
+msgid "Focus"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:102
+msgid "Converter"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:105
+msgid "Thumbnail Image"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:106
+msgid "Speed/Sequence/Panorama Direction"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:109
+#, fuzzy
+msgid "Black & White Mode"
+msgstr "Bardhë e zi"
+
+#: libexif/olympus/mnote-olympus-tag.c:111
+msgid "Focal Plane Diagonal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:112
+msgid "Lens Distortion Parameters"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:114
+msgid "Info"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:115
+msgid "Camera ID"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:116
+msgid "Precapture Frames"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:117
+msgid "White Board"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:118
+msgid "One Touch White Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:119
+msgid "White Balance Bracket"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:120
+#: libexif/pentax/mnote-pentax-tag.c:123
+msgid "White Balance Bias"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:121
+msgid "Data Dump"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:124
+msgid "ISO Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:125
+msgid "Aperture Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:126
+msgid "Brightness Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:128
+msgid "Flash Device"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:130
+msgid "Sensor Temperature"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:131
+msgid "Lens Temperature"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:132
+msgid "Light Condition"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:136
+msgid "Zoom Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:137
+msgid "Focus Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:138
+msgid "Sharpness Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:139
+msgid "Flash Charge Level"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:140
+msgid "Color Matrix"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:141
+msgid "Black Level"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:142
+msgid "White Balance Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:143
+#: libexif/pentax/mnote-pentax-tag.c:87
+msgid "Red Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:144
+#: libexif/pentax/mnote-pentax-tag.c:86
+msgid "Blue Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:145
+msgid "Color Matrix Number"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:147
+msgid "Flash Exposure Comp"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:148
+msgid "Internal Flash Table"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:149
+msgid "External Flash G Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:150
+msgid "External Flash Bounce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:151
+msgid "External Flash Zoom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:152
+msgid "External Flash Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:153
+msgid "Contrast Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:154
+msgid "Sharpness Factor"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:155
+msgid "Color Control"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:156
+msgid "Olympus Image Width"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:157
+msgid "Olympus Image Height"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:158
+msgid "Scene Detect"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:159
+msgid "Compression Ratio"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:160
+msgid "Preview Image Valid"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:161
+msgid "AF Result"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:162
+msgid "CCD Scan Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:164
+msgid "Infinity Lens Step"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:165
+msgid "Near Lens Step"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:166
+msgid "Light Value Center"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:167
+msgid "Light Value Periphery"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:170
+msgid "Sequential Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:171
+msgid "Wide Range"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:172
+msgid "Color Adjustment Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:174
+msgid "Quick Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:176
+msgid "Voice Memo"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:177
+msgid "Record Shutter Release"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:178
+msgid "Flicker Reduce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:179
+msgid "Optical Zoom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:181
+msgid "Light Source Special"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:182
+msgid "Resaved"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:184
+msgid "Scene Select"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:186
+msgid "Sequence Shot Interval"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:189
+msgid "Epson Image Width"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:190
+msgid "Epson Image Height"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:191
+msgid "Epson Software Version"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:80
+#: libexif/pentax/mnote-pentax-entry.c:134
+msgid "Multi-exposure"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:83
+#: libexif/pentax/mnote-pentax-entry.c:137
+msgid "Good"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:84
+#: libexif/pentax/mnote-pentax-entry.c:138
+msgid "Better"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:92
+msgid "Flash on"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:140
+msgid "TIFF"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:150
+msgid "2560x1920 or 2304x1728"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:156
+msgid "2304x1728 or 2592x1944"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:158
+msgid "2816x2212 or 2816x2112"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:171
+msgid "Surf & snow"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:172
+msgid "Sunset or candlelight"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:173
+msgid "Autumn"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:178
+#, fuzzy
+msgid "Self portrait"
+msgstr "Portret"
+
+#: libexif/pentax/mnote-pentax-entry.c:179
+msgid "Illustrations"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:180
+#, fuzzy
+msgid "Digital filter"
+msgstr "Makro Dixhitale"
+
+#: libexif/pentax/mnote-pentax-entry.c:182
+msgid "Food"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:183
+#, fuzzy
+msgid "Green mode"
+msgstr "Mënyra makro"
+
+#: libexif/pentax/mnote-pentax-entry.c:184
+#, fuzzy
+msgid "Light pet"
+msgstr "Nga e djathta në të majtë"
+
+#: libexif/pentax/mnote-pentax-entry.c:185
+msgid "Dark pet"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:186
+#, fuzzy
+msgid "Medium pet"
+msgstr "Mesatare 1"
+
+#: libexif/pentax/mnote-pentax-entry.c:188
+#: libexif/pentax/mnote-pentax-entry.c:296
+msgid "Candlelight"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:189
+msgid "Natural skin tone"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:190
+msgid "Synchro sound record"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:191
+msgid "Frame composite"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:194
+msgid "Auto, did not fire"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:196
+msgid "Auto, did not fire, red-eye reduction"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:197
+#, fuzzy
+msgid "Auto, fired"
+msgstr "Auto i lartë"
+
+#: libexif/pentax/mnote-pentax-entry.c:199
+msgid "Auto, fired, red-eye reduction"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:201
+msgid "On, wireless"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:202
+#, fuzzy
+msgid "On, soft"
+msgstr "Ndezur, vetëm shkrepje"
+
+#: libexif/pentax/mnote-pentax-entry.c:203
+msgid "On, slow-sync"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:204
+msgid "On, slow-sync, red-eye reduction"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:205
+#, fuzzy
+msgid "On, trailing-curtain sync"
+msgstr "Është përdorur sinkronizimi i perdes së dytë"
+
+#: libexif/pentax/mnote-pentax-entry.c:213
+msgid "AF-S"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:214
+msgid "AF-C"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:217
+msgid "Upper-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:218
+msgid "Top"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:219
+msgid "Upper-right"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:221
+msgid "Mid-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:223
+msgid "Mid-right"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:225
+msgid "Lower-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:226
+msgid "Bottom"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:227
+msgid "Lower-right"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:228
+msgid "Fixed center"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:232
+msgid "Multiple"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:234
+msgid "Top-center"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:240
+msgid "Bottom-center"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:257
+msgid "User selected"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:282
+msgid "3008x2008 or 3040x2024"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:293
+#, fuzzy
+msgid "Digital filter?"
+msgstr "Makro Dixhitale"
+
+#: libexif/pentax/mnote-pentax-entry.c:374
+#: libexif/pentax/mnote-pentax-entry.c:383
+#, c-format
+msgid "Internal error (unknown value %i %i)"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:35 libexif/pentax/mnote-pentax-tag.c:63
+msgid "Capture Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:36 libexif/pentax/mnote-pentax-tag.c:70
+#: libexif/pentax/mnote-pentax-tag.c:129
+msgid "Quality Level"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:54
+msgid "ISO Speed"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:56
+msgid "Colors"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:59
+msgid "PrintIM Settings"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:60 libexif/pentax/mnote-pentax-tag.c:131
+msgid "Time Zone"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:61
+msgid "Daylight Savings"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:64
+msgid "Preview Size"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:65
+msgid "Preview Length"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:66 libexif/pentax/mnote-pentax-tag.c:122
+msgid "Preview Start"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:67
+msgid "Model Identification"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:68
+msgid "Date"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:69
+msgid "Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:75
+msgid "AF Point Selected"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:76
+msgid "Auto AF Point"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:77
+msgid "Focus Position"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:80
+msgid "ISO Number"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:83
+msgid "Auto Bracketing"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:85
+msgid "White Balance Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:93
+msgid "World Time Location"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:94
+msgid "Hometown City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:95
+msgid "Destination City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Hometown DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Home Daylight Savings Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination Daylight Savings Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:99
+msgid "Image Processing"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:100
+msgid "Picture Mode (2)"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:103
+msgid "Image Area Offset"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:104
+msgid "Raw Image Size"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:105
+msgid "Autofocus Points Used"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:107
+msgid "Camera Temperature"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:110
+msgid "Image Tone"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:111
+msgid "Shake Reduction Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:112
+msgid "Black Point"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:114
+msgid "AE Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:115
+msgid "Lens Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:116
+msgid "Flash Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:117
+msgid "Camera Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:118
+msgid "Battery Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:119
+msgid "Hometown City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:120
+msgid "Destination City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Object Distance"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Distance of photographed object in millimeters."
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:126
+msgid "Flash Distance"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:132
+msgid "Bestshot Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:133
+msgid "CCS ISO Sensitivity"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:135
+msgid "Enhancement"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:136
+msgid "Finer"
+msgstr ""
+
+#: test/nls/test-nls.c:20 test/nls/test-nls.c:23 test/nls/test-nls.c:24
+msgid "[DO_NOT_TRANSLATE_THIS_MARKER]"
+msgstr ""
+
+#~ msgid "Left + Right"
+#~ msgstr "Majtas + Djathtas"
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/sr.gmo b/framework/modules/c_LibExifModule/libexif-0.6.20/po/sr.gmo
new file mode 100644
index 0000000000000000000000000000000000000000..3bd22ccf0e46dd2ac0e9978e8e156bcc382d43eb
Binary files /dev/null and b/framework/modules/c_LibExifModule/libexif-0.6.20/po/sr.gmo differ
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/sr.po b/framework/modules/c_LibExifModule/libexif-0.6.20/po/sr.po
new file mode 100644
index 0000000000000000000000000000000000000000..be2cd27235ea472dbb73135b2fd0bf2a2559b94b
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/sr.po
@@ -0,0 +1,5789 @@
+# Serbian linux distribution cp6Linux
+# Copyright (C) 2007 Marko Uskokovic
+# Marko Uskokovic <uskokovic@etf.bg.ac.yu>, 2007, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-12-15 22:14-0800\n"
+"PO-Revision-Date: 2010-04-24 08:59+0000\n"
+"Last-Translator: Marko Uskokovic <Unknown>\n"
+"Language-Team: Serbian <sr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-12-14 00:36+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: libexif/canon/mnote-canon-entry.c:40 libexif/fuji/mnote-fuji-entry.c:35
+#: libexif/olympus/mnote-olympus-entry.c:37
+#: libexif/pentax/mnote-pentax-entry.c:39
+#, c-format
+msgid "Invalid format '%s', expected '%s'."
+msgstr "Неисправан формат '%s', очекивао сам '%s'."
+
+#: libexif/canon/mnote-canon-entry.c:52 libexif/fuji/mnote-fuji-entry.c:47
+#: libexif/olympus/mnote-olympus-entry.c:62
+#: libexif/pentax/mnote-pentax-entry.c:51
+#, c-format
+msgid "Invalid number of components (%i, expected %i)."
+msgstr "Неисправан број елемената (%i, очекивао сам %i)."
+
+#: libexif/canon/mnote-canon-entry.c:61
+#: libexif/olympus/mnote-olympus-entry.c:72
+#: libexif/pentax/mnote-pentax-entry.c:61
+#, c-format
+msgid "Invalid number of components (%i, expected %i or %i)."
+msgstr "Неисправан број елемената (%i, очекивао сам %i или %i)."
+
+#: libexif/canon/mnote-canon-entry.c:76 libexif/canon/mnote-canon-entry.c:130
+#: libexif/canon/mnote-canon-entry.c:182 libexif/exif-entry.c:796
+#: libexif/olympus/mnote-olympus-entry.c:196
+#: libexif/olympus/mnote-olympus-tag.c:108
+#: libexif/pentax/mnote-pentax-entry.c:174
+#: libexif/pentax/mnote-pentax-entry.c:209
+#: libexif/pentax/mnote-pentax-entry.c:297
+msgid "Macro"
+msgstr "Макро"
+
+#: libexif/canon/mnote-canon-entry.c:77 libexif/canon/mnote-canon-entry.c:79
+#: libexif/canon/mnote-canon-entry.c:157 libexif/canon/mnote-canon-entry.c:160
+#: libexif/canon/mnote-canon-entry.c:163 libexif/exif-entry.c:674
+#: libexif/exif-entry.c:677 libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/exif-entry.c:745 libexif/fuji/mnote-fuji-entry.c:64
+#: libexif/olympus/mnote-olympus-entry.c:118
+#: libexif/olympus/mnote-olympus-entry.c:195
+#: libexif/olympus/mnote-olympus-entry.c:203
+#: libexif/olympus/mnote-olympus-entry.c:213
+#: libexif/olympus/mnote-olympus-entry.c:586
+#: libexif/pentax/mnote-pentax-entry.c:105
+#: libexif/pentax/mnote-pentax-entry.c:110
+#: libexif/pentax/mnote-pentax-entry.c:115
+#: libexif/pentax/mnote-pentax-entry.c:208
+msgid "Normal"
+msgstr "Нормално"
+
+#: libexif/canon/mnote-canon-entry.c:78
+msgid "Economy"
+msgstr "Економично"
+
+#: libexif/canon/mnote-canon-entry.c:80
+msgid "Fine"
+msgstr "Одлично"
+
+#: libexif/canon/mnote-canon-entry.c:81 libexif/fuji/mnote-fuji-entry.c:178
+#: libexif/pentax/mnote-pentax-entry.c:141
+msgid "RAW"
+msgstr "RAW"
+
+#: libexif/canon/mnote-canon-entry.c:82
+msgid "Superfine"
+msgstr "Супер фино"
+
+#: libexif/canon/mnote-canon-entry.c:83 libexif/canon/mnote-canon-entry.c:301
+#: libexif/canon/mnote-canon-entry.c:304 libexif/canon/mnote-canon-entry.c:312
+#: libexif/canon/mnote-canon-entry.c:345 libexif/canon/mnote-canon-entry.c:357
+#: libexif/canon/mnote-canon-entry.c:370 libexif/canon/mnote-canon-entry.c:372
+#: libexif/canon/mnote-canon-entry.c:574 libexif/canon/mnote-canon-entry.c:671
+#: libexif/fuji/mnote-fuji-entry.c:70 libexif/fuji/mnote-fuji-entry.c:103
+#: libexif/fuji/mnote-fuji-entry.c:107 libexif/fuji/mnote-fuji-entry.c:115
+#: libexif/fuji/mnote-fuji-entry.c:142
+#: libexif/olympus/mnote-olympus-entry.c:178
+#: libexif/olympus/mnote-olympus-entry.c:186
+#: libexif/olympus/mnote-olympus-entry.c:251
+#: libexif/olympus/mnote-olympus-entry.c:530
+#: libexif/olympus/mnote-olympus-entry.c:547
+#: libexif/pentax/mnote-pentax-entry.c:195
+#: libexif/pentax/mnote-pentax-entry.c:260
+msgid "Off"
+msgstr "Искључено"
+
+#: libexif/canon/mnote-canon-entry.c:84 libexif/canon/mnote-canon-entry.c:167
+#: libexif/canon/mnote-canon-entry.c:180 libexif/canon/mnote-canon-entry.c:328
+#: libexif/canon/mnote-canon-entry.c:400 libexif/fuji/mnote-fuji-entry.c:73
+#: libexif/fuji/mnote-fuji-entry.c:101 libexif/fuji/mnote-fuji-entry.c:111
+#: libexif/fuji/mnote-fuji-entry.c:119
+#: libexif/olympus/mnote-olympus-entry.c:131
+#: libexif/olympus/mnote-olympus-entry.c:183
+#: libexif/olympus/mnote-olympus-entry.c:199
+#: libexif/olympus/mnote-olympus-entry.c:244
+#: libexif/pentax/mnote-pentax-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:88
+#: libexif/pentax/mnote-pentax-entry.c:91
+#: libexif/pentax/mnote-pentax-entry.c:97
+#: libexif/pentax/mnote-pentax-entry.c:131
+#: libexif/pentax/mnote-pentax-entry.c:229
+#: libexif/pentax/mnote-pentax-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:290
+msgid "Auto"
+msgstr "Аутоматски"
+
+#: libexif/canon/mnote-canon-entry.c:85 libexif/canon/mnote-canon-entry.c:302
+#: libexif/canon/mnote-canon-entry.c:347 libexif/canon/mnote-canon-entry.c:361
+#: libexif/canon/mnote-canon-entry.c:371 libexif/fuji/mnote-fuji-entry.c:102
+#: libexif/fuji/mnote-fuji-entry.c:108 libexif/fuji/mnote-fuji-entry.c:116
+#: libexif/fuji/mnote-fuji-entry.c:143
+#: libexif/olympus/mnote-olympus-entry.c:179
+#: libexif/olympus/mnote-olympus-entry.c:533
+#: libexif/olympus/mnote-olympus-entry.c:550
+#: libexif/pentax/mnote-pentax-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:261
+msgid "On"
+msgstr "Укључено"
+
+#: libexif/canon/mnote-canon-entry.c:86 libexif/fuji/mnote-fuji-entry.c:104
+#: libexif/olympus/mnote-olympus-entry.c:184
+#: libexif/pentax/mnote-pentax-entry.c:94
+msgid "Red-eye reduction"
+msgstr "Исправка црвених очију"
+
+#: libexif/canon/mnote-canon-entry.c:87
+msgid "Slow synchro"
+msgstr "Споро усклађивање"
+
+#: libexif/canon/mnote-canon-entry.c:88
+#, fuzzy
+msgid "Auto, red-eye reduction"
+msgstr "Аутоматски + Исправка црвених очију"
+
+#: libexif/canon/mnote-canon-entry.c:89
+#: libexif/pentax/mnote-pentax-entry.c:200
+#, fuzzy
+msgid "On, red-eye reduction"
+msgstr "Укључено, уклањање црвених очију"
+
+#: libexif/canon/mnote-canon-entry.c:90
+msgid "External flash"
+msgstr "Спољни блиц"
+
+#: libexif/canon/mnote-canon-entry.c:91 libexif/canon/mnote-canon-entry.c:101
+#: libexif/canon/mnote-canon-entry.c:294
+msgid "Single"
+msgstr "Једна"
+
+#: libexif/canon/mnote-canon-entry.c:92 libexif/canon/mnote-canon-entry.c:102
+#: libexif/canon/mnote-canon-entry.c:295
+msgid "Continuous"
+msgstr "Непрекидно"
+
+#: libexif/canon/mnote-canon-entry.c:93
+msgid "Movie"
+msgstr "Филм"
+
+#: libexif/canon/mnote-canon-entry.c:94
+msgid "Continuous, speed priority"
+msgstr "Непрекидно, предност брзини"
+
+#: libexif/canon/mnote-canon-entry.c:95
+msgid "Continuous, low"
+msgstr "Непрекидно, ниско"
+
+#: libexif/canon/mnote-canon-entry.c:96
+msgid "Continuous, high"
+msgstr "Непрекидно, високо"
+
+#: libexif/canon/mnote-canon-entry.c:97
+msgid "One-shot AF"
+msgstr "Аутоматски фокус за један снимак"
+
+#: libexif/canon/mnote-canon-entry.c:98
+msgid "AI servo AF"
+msgstr "AI серво AF"
+
+#: libexif/canon/mnote-canon-entry.c:99
+msgid "AI focus AF"
+msgstr "AI жижа AF"
+
+#: libexif/canon/mnote-canon-entry.c:100 libexif/canon/mnote-canon-entry.c:103
+msgid "Manual focus"
+msgstr "Ручно подесива жижа"
+
+#: libexif/canon/mnote-canon-entry.c:104 libexif/canon/mnote-canon-entry.c:132
+#: libexif/canon/mnote-canon-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:212
+msgid "Pan focus"
+msgstr "Пан жижа"
+
+#: libexif/canon/mnote-canon-entry.c:105
+msgid "JPEG"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:106
+msgid "CRW+THM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:107
+msgid "AVI+THM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:108
+msgid "TIF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:109
+msgid "TIF+JPEG"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:110
+msgid "CR2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:111
+msgid "CR2+JPEG"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:112
+msgid "Large"
+msgstr "Велико"
+
+#: libexif/canon/mnote-canon-entry.c:113
+msgid "Medium"
+msgstr "Средње"
+
+#: libexif/canon/mnote-canon-entry.c:114
+msgid "Small"
+msgstr "Мало"
+
+#: libexif/canon/mnote-canon-entry.c:115
+msgid "Medium 1"
+msgstr "Средње 1"
+
+#: libexif/canon/mnote-canon-entry.c:116
+msgid "Medium 2"
+msgstr "Средње 2"
+
+#: libexif/canon/mnote-canon-entry.c:117
+msgid "Medium 3"
+msgstr "Средње 3"
+
+#: libexif/canon/mnote-canon-entry.c:118
+msgid "Postcard"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:119
+msgid "Widescreen"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:120
+msgid "Full auto"
+msgstr "Потпуна аутоматика"
+
+#: libexif/canon/mnote-canon-entry.c:121 libexif/canon/mnote-canon-entry.c:179
+#: libexif/canon/mnote-canon-entry.c:201 libexif/canon/mnote-canon-entry.c:285
+#: libexif/canon/mnote-canon-entry.c:392 libexif/exif-entry.c:744
+#: libexif/fuji/mnote-fuji-entry.c:112
+#: libexif/olympus/mnote-olympus-entry.c:90
+#: libexif/olympus/mnote-olympus-entry.c:200
+#: libexif/pentax/mnote-pentax-entry.c:79
+#: libexif/pentax/mnote-pentax-entry.c:102
+#: libexif/pentax/mnote-pentax-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:165
+#: libexif/pentax/mnote-pentax-entry.c:211
+#: libexif/pentax/mnote-pentax-entry.c:250
+msgid "Manual"
+msgstr "Ручно"
+
+#: libexif/canon/mnote-canon-entry.c:122 libexif/canon/mnote-canon-entry.c:430
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:755
+#: libexif/fuji/mnote-fuji-entry.c:121 libexif/pentax/mnote-pentax-entry.c:167
+#: libexif/pentax/mnote-pentax-entry.c:301
+msgid "Landscape"
+msgstr "Пејзаж"
+
+#: libexif/canon/mnote-canon-entry.c:123
+msgid "Fast shutter"
+msgstr "Брза бленда"
+
+#: libexif/canon/mnote-canon-entry.c:124
+msgid "Slow shutter"
+msgstr "Споро бленда"
+
+#: libexif/canon/mnote-canon-entry.c:125 libexif/fuji/mnote-fuji-entry.c:123
+#: libexif/olympus/mnote-olympus-entry.c:254
+msgid "Night"
+msgstr "Ноћ"
+
+#: libexif/canon/mnote-canon-entry.c:126
+msgid "Grayscale"
+msgstr "Бело-сиво"
+
+#: libexif/canon/mnote-canon-entry.c:127 libexif/canon/mnote-canon-entry.c:308
+#: libexif/pentax/mnote-pentax-entry.c:128
+msgid "Sepia"
+msgstr "Сепиа"
+
+#: libexif/canon/mnote-canon-entry.c:128 libexif/canon/mnote-canon-entry.c:429
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:753
+#: libexif/fuji/mnote-fuji-entry.c:120 libexif/pentax/mnote-pentax-entry.c:166
+#: libexif/pentax/mnote-pentax-entry.c:291
+#: libexif/pentax/mnote-pentax-entry.c:294
+#: libexif/pentax/mnote-pentax-entry.c:300
+msgid "Portrait"
+msgstr "Портрет"
+
+#: libexif/canon/mnote-canon-entry.c:129 libexif/fuji/mnote-fuji-entry.c:122
+msgid "Sports"
+msgstr "Спорт"
+
+#: libexif/canon/mnote-canon-entry.c:131 libexif/canon/mnote-canon-entry.c:309
+#: libexif/canon/mnote-canon-entry.c:335 libexif/canon/mnote-canon-entry.c:407
+#: libexif/fuji/mnote-fuji-entry.c:89 libexif/pentax/mnote-pentax-entry.c:127
+msgid "Black & white"
+msgstr "Црно-бело"
+
+#: libexif/canon/mnote-canon-entry.c:133 libexif/canon/mnote-canon-entry.c:305
+msgid "Vivid"
+msgstr "Живописно"
+
+#: libexif/canon/mnote-canon-entry.c:134 libexif/canon/mnote-canon-entry.c:306
+#: libexif/canon/mnote-canon-entry.c:431
+msgid "Neutral"
+msgstr "Неутрлно"
+
+#: libexif/canon/mnote-canon-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:93
+msgid "Flash off"
+msgstr "Искључен блиц"
+
+#: libexif/canon/mnote-canon-entry.c:136
+msgid "Long shutter"
+msgstr "Дуга бленда"
+
+#: libexif/canon/mnote-canon-entry.c:137 libexif/canon/mnote-canon-entry.c:188
+#: libexif/olympus/mnote-olympus-entry.c:171
+msgid "Super macro"
+msgstr "Супер макро"
+
+#: libexif/canon/mnote-canon-entry.c:138
+msgid "Foliage"
+msgstr "ЛИшће"
+
+#: libexif/canon/mnote-canon-entry.c:139
+msgid "Indoor"
+msgstr "у соби"
+
+#: libexif/canon/mnote-canon-entry.c:140 libexif/fuji/mnote-fuji-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:175
+msgid "Fireworks"
+msgstr "Ватромет"
+
+#: libexif/canon/mnote-canon-entry.c:141 libexif/fuji/mnote-fuji-entry.c:133
+msgid "Beach"
+msgstr "Плажа"
+
+#: libexif/canon/mnote-canon-entry.c:142 libexif/canon/mnote-canon-entry.c:344
+#: libexif/canon/mnote-canon-entry.c:416 libexif/fuji/mnote-fuji-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:292
+#: libexif/pentax/mnote-pentax-entry.c:298
+msgid "Underwater"
+msgstr "Под водом"
+
+#: libexif/canon/mnote-canon-entry.c:143 libexif/fuji/mnote-fuji-entry.c:134
+msgid "Snow"
+msgstr "Снег"
+
+#: libexif/canon/mnote-canon-entry.c:144
+msgid "Kids & pets"
+msgstr "Деца и љубимци"
+
+#: libexif/canon/mnote-canon-entry.c:145
+msgid "Night snapshot"
+msgstr "Ноћни снимак"
+
+#: libexif/canon/mnote-canon-entry.c:146
+msgid "Digital macro"
+msgstr "Дигитални макро"
+
+#: libexif/canon/mnote-canon-entry.c:147
+msgid "My colors"
+msgstr "Моје боје"
+
+#: libexif/canon/mnote-canon-entry.c:148
+msgid "Still image"
+msgstr "Мирна слика"
+
+#: libexif/canon/mnote-canon-entry.c:149
+msgid "Color accent"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:150
+msgid "Color swap"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:151
+msgid "Aquarium"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:152
+msgid "ISO 3200"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:153 libexif/canon/mnote-canon-entry.c:348
+#: libexif/canon/mnote-canon-entry.c:365 libexif/canon/mnote-canon-entry.c:417
+#: libexif/olympus/mnote-olympus-entry.c:189
+#: libexif/olympus/mnote-olympus-entry.c:226
+#: libexif/olympus/mnote-olympus-entry.c:451
+#: libexif/pentax/mnote-pentax-entry.c:242
+msgid "None"
+msgstr "Ништа"
+
+#: libexif/canon/mnote-canon-entry.c:154
+msgid "2x"
+msgstr "2x"
+
+#: libexif/canon/mnote-canon-entry.c:155
+msgid "4x"
+msgstr "4x"
+
+#: libexif/canon/mnote-canon-entry.c:156 libexif/exif-entry.c:702
+#: libexif/exif-entry.c:732
+msgid "Other"
+msgstr "Друго"
+
+#: libexif/canon/mnote-canon-entry.c:158 libexif/canon/mnote-canon-entry.c:161
+#: libexif/canon/mnote-canon-entry.c:164 libexif/canon/mnote-canon-entry.c:398
+#: libexif/fuji/mnote-fuji-entry.c:86 libexif/pentax/mnote-pentax-entry.c:112
+#: libexif/pentax/mnote-pentax-entry.c:117
+msgid "High"
+msgstr "Високо"
+
+#: libexif/canon/mnote-canon-entry.c:159 libexif/canon/mnote-canon-entry.c:162
+#: libexif/canon/mnote-canon-entry.c:165 libexif/canon/mnote-canon-entry.c:396
+#: libexif/pentax/mnote-pentax-entry.c:111
+#: libexif/pentax/mnote-pentax-entry.c:116
+msgid "Low"
+msgstr "Ниско"
+
+#: libexif/canon/mnote-canon-entry.c:166
+msgid "Auto high"
+msgstr "Аутоматски високо"
+
+#: libexif/canon/mnote-canon-entry.c:168
+msgid "50"
+msgstr "50"
+
+#: libexif/canon/mnote-canon-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:120
+#: libexif/pentax/mnote-pentax-entry.c:122
+msgid "100"
+msgstr "100"
+
+#: libexif/canon/mnote-canon-entry.c:170
+#: libexif/pentax/mnote-pentax-entry.c:121
+#: libexif/pentax/mnote-pentax-entry.c:123
+msgid "200"
+msgstr "200"
+
+#: libexif/canon/mnote-canon-entry.c:171
+msgid "400"
+msgstr "400"
+
+#: libexif/canon/mnote-canon-entry.c:172
+msgid "800"
+msgstr "800"
+
+#: libexif/canon/mnote-canon-entry.c:173
+msgid "Default"
+msgstr "Подразумевано"
+
+#: libexif/canon/mnote-canon-entry.c:174 libexif/exif-entry.c:698
+msgid "Spot"
+msgstr "Место"
+
+#: libexif/canon/mnote-canon-entry.c:175 libexif/exif-entry.c:696
+msgid "Average"
+msgstr "Просечно"
+
+#: libexif/canon/mnote-canon-entry.c:176
+msgid "Evaluative"
+msgstr "Процена"
+
+#: libexif/canon/mnote-canon-entry.c:177 libexif/exif-entry.c:701
+msgid "Partial"
+msgstr "Делимично"
+
+#: libexif/canon/mnote-canon-entry.c:178 libexif/exif-entry.c:697
+msgid "Center-weighted average"
+msgstr "Просечна тежина центра"
+
+#: libexif/canon/mnote-canon-entry.c:181
+msgid "Not known"
+msgstr "Непознато"
+
+#: libexif/canon/mnote-canon-entry.c:183
+msgid "Very close"
+msgstr "Веома близу"
+
+#: libexif/canon/mnote-canon-entry.c:184 libexif/exif-entry.c:797
+msgid "Close"
+msgstr "Близу"
+
+#: libexif/canon/mnote-canon-entry.c:185
+msgid "Middle range"
+msgstr "Средњи опсег"
+
+#: libexif/canon/mnote-canon-entry.c:186
+msgid "Far range"
+msgstr "Далек опсег"
+
+#: libexif/canon/mnote-canon-entry.c:189
+#: libexif/pentax/mnote-pentax-entry.c:210
+msgid "Infinity"
+msgstr "Бесконачно"
+
+#: libexif/canon/mnote-canon-entry.c:190
+msgid "Manual AF point selection"
+msgstr "Ручно бирање AF"
+
+#: libexif/canon/mnote-canon-entry.c:191 libexif/canon/mnote-canon-entry.c:349
+msgid "None (MF)"
+msgstr "Ништа (MF)"
+
+#: libexif/canon/mnote-canon-entry.c:192
+msgid "Auto-selected"
+msgstr "Аутоматски изабрано"
+
+#: libexif/canon/mnote-canon-entry.c:193 libexif/canon/mnote-canon-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:224
+#: libexif/pentax/mnote-pentax-entry.c:238
+msgid "Right"
+msgstr "Десно"
+
+#: libexif/canon/mnote-canon-entry.c:194 libexif/canon/mnote-canon-entry.c:351
+#: libexif/pentax/mnote-pentax-entry.c:222
+#: libexif/pentax/mnote-pentax-entry.c:237
+msgid "Center"
+msgstr "У средини"
+
+#: libexif/canon/mnote-canon-entry.c:195 libexif/canon/mnote-canon-entry.c:353
+#: libexif/pentax/mnote-pentax-entry.c:220
+#: libexif/pentax/mnote-pentax-entry.c:236
+msgid "Left"
+msgstr "Лево"
+
+#: libexif/canon/mnote-canon-entry.c:196
+msgid "Auto AF point selection"
+msgstr "Аутоматско AF бирање тачке"
+
+#: libexif/canon/mnote-canon-entry.c:197
+msgid "Easy shooting"
+msgstr "Лако сликање"
+
+#: libexif/canon/mnote-canon-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:163
+msgid "Program"
+msgstr "Програм"
+
+#: libexif/canon/mnote-canon-entry.c:199
+msgid "Tv-priority"
+msgstr "Приоритет Тв"
+
+#: libexif/canon/mnote-canon-entry.c:200
+msgid "Av-priority"
+msgstr "Приоритет Ав"
+
+#: libexif/canon/mnote-canon-entry.c:202
+msgid "A-DEP"
+msgstr "A-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:203
+msgid "M-DEP"
+msgstr "M-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:204
+msgid "Canon EF 50mm f/1.8"
+msgstr "Canon EF 50mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:205
+msgid "Canon EF 28mm f/2.8"
+msgstr "Canon EF 28mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:206
+msgid "Sigma UC Zoom 35-135mm f/4-5.6"
+msgstr "Sigma UC Zoom 35-135mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:207
+msgid "Tokina AF193-2 19-35mm f/3.5-4.5"
+msgstr "Tokina AF193-2 19-35mm f/3.5-4.5"
+
+#: libexif/canon/mnote-canon-entry.c:208
+msgid "Canon EF 100-300mm F5.6L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:209
+msgid "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+msgstr "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:210
+msgid "Canon EF 35mm f/2"
+msgstr "Canon EF 35mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:211
+msgid "Canon EF 15mm f/2.8"
+msgstr "Canon EF 15mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:212
+msgid "Canon EF 80-200mm f/2.8L"
+msgstr "Canon EF 80-200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:213
+msgid "Tokina AT-X280AF PRO 28-80mm F2.8 Aspherical"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:214
+msgid "Cosina 100mm f/3.5 Macro AF"
+msgstr "Cosina 100mm f/3.5 Macro AF"
+
+#: libexif/canon/mnote-canon-entry.c:215
+msgid "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+msgstr "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:216
+msgid "Canon EF 50mm f/1.8 MkII"
+msgstr "Canon EF 50mm f/1.8 MkII"
+
+#: libexif/canon/mnote-canon-entry.c:217
+msgid "Tamron SP AF 300mm f/2.8 LD IF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:218
+msgid "Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:219
+msgid "Canon EF 75-300mm f/4-5.6"
+msgstr "Canon EF 75-300mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:220
+msgid "Canon EF 28-80mm f/3.5-5.6"
+msgstr "Canon EF 28-80mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:221
+msgid "Canon EF 28-105mm f/4-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:222
+msgid "Canon EF-S 18-55mm f/3.5-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:223
+msgid "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+msgstr "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+
+#: libexif/canon/mnote-canon-entry.c:224
+msgid "Canon TS-E 24mm f/3.5L"
+msgstr "Canon TS-E 24mm f/3.5L"
+
+#: libexif/canon/mnote-canon-entry.c:225
+msgid "Canon TS-E 45mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:226
+msgid "Canon TS-E 90mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:227
+msgid "Canon EF 50mm f/1.0L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:228
+msgid "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+msgstr "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+
+#: libexif/canon/mnote-canon-entry.c:229
+msgid "Canon EF 600mm f/4L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:230
+msgid "Canon EF 200mm f/1.8L"
+msgstr "Canon EF 200mm f/1.8L"
+
+#: libexif/canon/mnote-canon-entry.c:231
+msgid "Canon EF 300mm f/2.8L"
+msgstr "Canon EF 300mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:232
+msgid "Canon EF 85mm f/1.2L"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:233
+msgid "Canon EF 400mm f/2.8L"
+msgstr "Canon EF 400mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:234
+msgid "Canon EF 500mm f/4.5L"
+msgstr "Canon EF 500mm f/4.5L"
+
+#: libexif/canon/mnote-canon-entry.c:235
+msgid "Canon EF 300mm f/2.8L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:236
+msgid "Canon EF 500mm f/4L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:237
+msgid "Canon EF 100mm f/2"
+msgstr "Canon EF 100mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:238
+msgid "Sigma 20mm EX f/1.8"
+msgstr "Sigma 20mm EX f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:239
+msgid "Canon EF 200mm f/2.8L"
+msgstr "Canon EF 200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:240
+msgid "Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:241
+msgid "Canon EF 35-350mm f/3.5-5.6L"
+msgstr "Canon EF 35-350mm f/3.5-5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:242
+msgid "Canon EF 85mm f/1.8 USM"
+msgstr "Canon EF 85mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:243
+msgid "Canon EF 28-105mm f/3.5-4.5 USM"
+msgstr "Canon EF 28-105mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:244
+msgid "Canon EF 20-35mm f/3.5-4.5 USM"
+msgstr "Canon EF 20-35mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:245
+msgid "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+msgstr "Canon EF 28-70mm f/2.8L или Sigma 24-70mm EX f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:246
+msgid "Canon EF 70-200mm f/2.8 L"
+msgstr "Canon EF 70-200mm f/2.8 L"
+
+#: libexif/canon/mnote-canon-entry.c:247
+msgid "Canon EF 70-200mm f/2.8 L + x1.4"
+msgstr "Canon EF 70-200mm f/2.8 L + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:248
+msgid "Canon EF 70-200mm f/2.8 L + x2"
+msgstr "Canon EF 70-200mm f/2.8 L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:249
+msgid "Canon EF 28mm f/1.8 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:250
+msgid "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+msgstr "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+
+#: libexif/canon/mnote-canon-entry.c:251
+msgid "Canon EF 200mm f/2.8L II"
+msgstr "Canon EF 200mm f/2.8L II"
+
+#: libexif/canon/mnote-canon-entry.c:252
+msgid "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+msgstr "Canon EF 180mm Macro f/3.5L или Sigma 180mm EX HSM Macro f/3.5"
+
+#: libexif/canon/mnote-canon-entry.c:253
+msgid "Canon EF 135mm f/2L"
+msgstr "Canon EF 135mm f/2L"
+
+#: libexif/canon/mnote-canon-entry.c:254
+msgid "Canon EF 24-85mm f/3.5-4.5 USM"
+msgstr "Canon EF 24-85mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:255
+msgid "Canon EF 300mm f/4L IS"
+msgstr "Canon EF 300mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:256
+msgid "Canon EF 28-135mm f/3.5-5.6 IS"
+msgstr "Canon EF 28-135mm f/3.5-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:257
+msgid "Canon EF 35mm f/1.4L"
+msgstr "Canon EF 35mm f/1.4L"
+
+#: libexif/canon/mnote-canon-entry.c:258
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:259
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+
+#: libexif/canon/mnote-canon-entry.c:260
+msgid "Canon EF 100-400mm f/4.5-5.6L IS"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS"
+
+#: libexif/canon/mnote-canon-entry.c:261
+msgid "Canon EF 400mm f/2.8L + x2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:262
+msgid "Canon EF 70-200mm f/4L"
+msgstr "Canon EF 70-200mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:263
+msgid "Canon EF 100mm f/2.8 Macro"
+msgstr "Canon EF 100mm f/2.8 Macro"
+
+#: libexif/canon/mnote-canon-entry.c:264
+msgid "Canon EF 400mm f/4 DO IS"
+msgstr "Canon EF 400mm f/4 DO IS"
+
+#: libexif/canon/mnote-canon-entry.c:265
+msgid "Canon EF 75-300mm f/4-5.6 IS"
+msgstr "Canon EF 75-300mm f/4-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:266
+msgid "Canon EF 50mm f/1.4"
+msgstr "Canon EF 50mm f/1.4"
+
+#: libexif/canon/mnote-canon-entry.c:267
+msgid "Canon EF 28-80 f/3.5-5.6 USM IV"
+msgstr "Canon EF 28-80 f/3.5-5.6 USM IV"
+
+#: libexif/canon/mnote-canon-entry.c:268
+msgid "Canon EF 28-200mm f/3.5-5.6"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:269
+msgid "Canon EF 90-300mm f/4.5-5.6"
+msgstr "Canon EF 90-300mm f/4.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:270
+msgid "Canon EF-S 18-55mm f/3.5-4.5 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:271
+msgid "Canon EF 70-200mm f/2.8L IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:272
+msgid "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:273
+msgid "Canon EF 70-200mm f/2.8L IS USM + x2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:274
+msgid "Canon EF 16-35mm f/2.8L"
+msgstr "Canon EF 16-35mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:275
+msgid "Canon EF 24-70mm f/2.8L"
+msgstr "Canon EF 24-70mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:276
+msgid "Canon EF 17-40mm f/4L"
+msgstr "Canon EF 17-40mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:277
+msgid "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:278
+msgid "Canon EF-S 17-85mm f4-5.6 IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:279
+msgid "Canon EF-S10-22mm F3.5-4.5 USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:280
+msgid "Canon EF-S60mm F2.8 Macro USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:281
+msgid "Canon EF 24-105mm f/4L IS"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:282
+msgid "Canon EF 70-300mm F4-5.6 IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:283
+msgid "Canon EF 50mm F1.2L USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:284
+msgid "Canon EF 70-200mm f/4L IS USM"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:286
+msgid "TTL"
+msgstr "TTL"
+
+#: libexif/canon/mnote-canon-entry.c:287
+msgid "A-TTL"
+msgstr "A-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:288
+msgid "E-TTL"
+msgstr "E-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:289
+msgid "FP sync enabled"
+msgstr "Омогућена синхронизација FP"
+
+#: libexif/canon/mnote-canon-entry.c:290
+msgid "2nd-curtain sync used"
+msgstr "Коришћена друга застава синхронизације"
+
+#: libexif/canon/mnote-canon-entry.c:291
+msgid "FP sync used"
+msgstr "Коришћена FP синхронизација"
+
+#: libexif/canon/mnote-canon-entry.c:292
+#: libexif/olympus/mnote-olympus-entry.c:190
+msgid "Internal"
+msgstr "Унутрашње"
+
+#: libexif/canon/mnote-canon-entry.c:293
+#: libexif/olympus/mnote-olympus-entry.c:191
+msgid "External"
+msgstr "Спољашње"
+
+#: libexif/canon/mnote-canon-entry.c:296
+msgid "Normal AE"
+msgstr "Нормална AE"
+
+#: libexif/canon/mnote-canon-entry.c:297
+msgid "Exposure compensation"
+msgstr "Надомешћивање осветљења"
+
+#: libexif/canon/mnote-canon-entry.c:298
+msgid "AE lock"
+msgstr "Закључавање АЕ"
+
+#: libexif/canon/mnote-canon-entry.c:299
+#, fuzzy
+msgid "AE lock + exposure compensation"
+msgstr "Закључавање АЕ + Надомешћивање осветљења"
+
+#: libexif/canon/mnote-canon-entry.c:300
+msgid "No AE"
+msgstr "Без АЕ"
+
+#: libexif/canon/mnote-canon-entry.c:303
+msgid "On, shot only"
+msgstr "Укључено, само сликање"
+
+#: libexif/canon/mnote-canon-entry.c:307
+msgid "Smooth"
+msgstr "Глатко"
+
+#: libexif/canon/mnote-canon-entry.c:310 libexif/canon/mnote-canon-entry.c:334
+#: libexif/canon/mnote-canon-entry.c:393 libexif/canon/mnote-canon-entry.c:406
+#: libexif/fuji/mnote-fuji-entry.c:81 libexif/pentax/mnote-pentax-entry.c:87
+msgid "Custom"
+msgstr "Прилагођено"
+
+#: libexif/canon/mnote-canon-entry.c:311
+msgid "My color data"
+msgstr "Моји подаци о боји"
+
+#: libexif/canon/mnote-canon-entry.c:313 libexif/canon/mnote-canon-entry.c:375
+#: libexif/pentax/mnote-pentax-entry.c:126
+#: libexif/pentax/mnote-pentax-entry.c:145
+msgid "Full"
+msgstr "Потпуно"
+
+#: libexif/canon/mnote-canon-entry.c:314 libexif/canon/mnote-canon-entry.c:374
+msgid "2/3"
+msgstr "2/3"
+
+#: libexif/canon/mnote-canon-entry.c:315 libexif/canon/mnote-canon-entry.c:373
+msgid "1/3"
+msgstr "1/3"
+
+#: libexif/canon/mnote-canon-entry.c:321
+msgid "Fixed"
+msgstr "Учвршћено"
+
+#: libexif/canon/mnote-canon-entry.c:322 libexif/pentax/mnote-pentax-tag.c:44
+msgid "Zoom"
+msgstr "Увећање"
+
+#: libexif/canon/mnote-canon-entry.c:329
+msgid "Sunny"
+msgstr "Сунчано"
+
+#: libexif/canon/mnote-canon-entry.c:330 libexif/canon/mnote-canon-entry.c:402
+#: libexif/exif-entry.c:719 libexif/fuji/mnote-fuji-entry.c:75
+#: libexif/olympus/mnote-olympus-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:255
+msgid "Cloudy"
+msgstr "Облачно"
+
+#: libexif/canon/mnote-canon-entry.c:331 libexif/canon/mnote-canon-entry.c:403
+#: libexif/exif-entry.c:716 libexif/pentax/mnote-pentax-entry.c:100
+#: libexif/pentax/mnote-pentax-entry.c:249
+msgid "Tungsten"
+msgstr "Волфрам"
+
+#: libexif/canon/mnote-canon-entry.c:332 libexif/canon/mnote-canon-entry.c:404
+#: libexif/exif-entry.c:715 libexif/pentax/mnote-pentax-entry.c:101
+#: libexif/pentax/mnote-pentax-entry.c:248
+msgid "Fluorescent"
+msgstr "Флурасцентно"
+
+#: libexif/canon/mnote-canon-entry.c:333 libexif/canon/mnote-canon-entry.c:405
+#: libexif/exif-entry.c:717 libexif/exif-entry.c:759 libexif/exif-tag.c:577
+#: libexif/fuji/mnote-fuji-entry.c:80 libexif/pentax/mnote-pentax-entry.c:254
+msgid "Flash"
+msgstr "Блиц"
+
+#: libexif/canon/mnote-canon-entry.c:336 libexif/canon/mnote-canon-entry.c:408
+#: libexif/exif-entry.c:720 libexif/pentax/mnote-pentax-entry.c:99
+#: libexif/pentax/mnote-pentax-entry.c:247
+msgid "Shade"
+msgstr "Сенка"
+
+#: libexif/canon/mnote-canon-entry.c:337 libexif/canon/mnote-canon-entry.c:409
+msgid "Manual temperature (Kelvin)"
+msgstr "Ручна температура (Келвин)"
+
+#: libexif/canon/mnote-canon-entry.c:338 libexif/canon/mnote-canon-entry.c:410
+msgid "PC set 1"
+msgstr "PC скуп 1"
+
+#: libexif/canon/mnote-canon-entry.c:339 libexif/canon/mnote-canon-entry.c:411
+msgid "PC set 2"
+msgstr "PC скуп 2"
+
+#: libexif/canon/mnote-canon-entry.c:340 libexif/canon/mnote-canon-entry.c:412
+msgid "PC set 3"
+msgstr "PC скуп 3"
+
+#: libexif/canon/mnote-canon-entry.c:341 libexif/canon/mnote-canon-entry.c:413
+#: libexif/exif-entry.c:721 libexif/fuji/mnote-fuji-entry.c:76
+#: libexif/pentax/mnote-pentax-entry.c:251
+msgid "Daylight fluorescent"
+msgstr "Дневно флуросцентно"
+
+#: libexif/canon/mnote-canon-entry.c:342 libexif/canon/mnote-canon-entry.c:414
+msgid "Custom 1"
+msgstr "Прилагођено 1"
+
+#: libexif/canon/mnote-canon-entry.c:343 libexif/canon/mnote-canon-entry.c:415
+msgid "Custom 2"
+msgstr "Прилагођено 2"
+
+#: libexif/canon/mnote-canon-entry.c:346 libexif/exif-entry.c:672
+#: libexif/pentax/mnote-pentax-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:132
+#: libexif/pentax/mnote-pentax-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:295
+msgid "Night scene"
+msgstr "Ноћно окружење"
+
+#: libexif/canon/mnote-canon-entry.c:352
+#, fuzzy
+msgid "Center-right"
+msgstr "Централна тежина"
+
+#: libexif/canon/mnote-canon-entry.c:354
+#, fuzzy
+msgid "Left-right"
+msgstr "Лево на десно"
+
+#: libexif/canon/mnote-canon-entry.c:355
+#, fuzzy
+msgid "Left-center"
+msgstr "Лево + У средишти"
+
+#: libexif/canon/mnote-canon-entry.c:356
+msgid "All"
+msgstr "Све"
+
+#: libexif/canon/mnote-canon-entry.c:358
+msgid "On (shot 1)"
+msgstr "Укључено (сликање 1)"
+
+#: libexif/canon/mnote-canon-entry.c:359
+msgid "On (shot 2)"
+msgstr "Укључено (сликање 2)"
+
+#: libexif/canon/mnote-canon-entry.c:360
+msgid "On (shot 3)"
+msgstr "Укључено (сликање 3)"
+
+#: libexif/canon/mnote-canon-entry.c:362
+msgid "EOS high-end"
+msgstr "EOS високог квалитета"
+
+#: libexif/canon/mnote-canon-entry.c:363
+msgid "Compact"
+msgstr "Збијено"
+
+#: libexif/canon/mnote-canon-entry.c:364
+msgid "EOS mid-range"
+msgstr "EOS средњи опсег"
+
+#: libexif/canon/mnote-canon-entry.c:366
+msgid "Rotate 90 CW"
+msgstr "Окрени 90 у смеру сата"
+
+#: libexif/canon/mnote-canon-entry.c:367
+msgid "Rotate 180"
+msgstr "Окрени 180"
+
+#: libexif/canon/mnote-canon-entry.c:368
+msgid "Rotate 270 CW"
+msgstr "Окрени 270 у смеру сата"
+
+#: libexif/canon/mnote-canon-entry.c:369
+msgid "Rotated by software"
+msgstr "Окренуће програм"
+
+#: libexif/canon/mnote-canon-entry.c:381
+#: libexif/olympus/mnote-olympus-entry.c:606
+msgid "Left to right"
+msgstr "Лево на десно"
+
+#: libexif/canon/mnote-canon-entry.c:382
+#: libexif/olympus/mnote-olympus-entry.c:609
+msgid "Right to left"
+msgstr "Десно на лево"
+
+#: libexif/canon/mnote-canon-entry.c:383
+#: libexif/olympus/mnote-olympus-entry.c:612
+msgid "Bottom to top"
+msgstr "Одоздо нагоре"
+
+#: libexif/canon/mnote-canon-entry.c:384
+#: libexif/olympus/mnote-olympus-entry.c:615
+msgid "Top to bottom"
+msgstr "Одозго надоле"
+
+#: libexif/canon/mnote-canon-entry.c:385
+msgid "2x2 matrix (clockwise)"
+msgstr "2x2 матрица (у смеру кретања сата)"
+
+#: libexif/canon/mnote-canon-entry.c:391 libexif/canon/mnote-canon-entry.c:397
+#: libexif/canon/mnote-canon-entry.c:418 libexif/canon/mnote-canon-entry.c:428
+#: libexif/exif-entry.c:671 libexif/fuji/mnote-fuji-entry.c:84
+#: libexif/fuji/mnote-fuji-entry.c:93 libexif/fuji/mnote-fuji-entry.c:163
+#: libexif/olympus/mnote-olympus-entry.c:227
+msgid "Standard"
+msgstr "Стандардно"
+
+#: libexif/canon/mnote-canon-entry.c:394
+msgid "N/A"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:395
+msgid "Lowest"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:399
+msgid "Highest"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:401 libexif/exif-entry.c:714
+#: libexif/fuji/mnote-fuji-entry.c:74
+#: libexif/olympus/mnote-olympus-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:98
+#: libexif/pentax/mnote-pentax-entry.c:246
+msgid "Daylight"
+msgstr "Дневно светло"
+
+#: libexif/canon/mnote-canon-entry.c:419
+msgid "Set 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:420
+msgid "Set 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:421
+msgid "Set 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:422
+msgid "User def. 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:423
+msgid "User def. 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:424
+msgid "User def. 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:425
+msgid "External 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:426
+msgid "External 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:427
+msgid "External 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:432
+msgid "Faithful"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:115
+msgid "Monochrome"
+msgstr "Монохромо"
+
+#: libexif/canon/mnote-canon-entry.c:491
+msgid ", "
+msgstr ", "
+
+#: libexif/canon/mnote-canon-entry.c:577 libexif/canon/mnote-canon-entry.c:674
+#, c-format
+msgid "%i (ms)"
+msgstr "%i (ms)"
+
+#: libexif/canon/mnote-canon-entry.c:621
+#, c-format
+msgid "%.2f mm"
+msgstr "%.2f mm"
+
+#: libexif/canon/mnote-canon-entry.c:645
+#, c-format
+msgid "%.2f EV"
+msgstr "%.2f EV"
+
+#: libexif/canon/mnote-canon-entry.c:655 libexif/exif-entry.c:1064
+#, c-format
+msgid "1/%i"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:667
+#, c-format
+msgid "%u mm"
+msgstr "%u mm"
+
+#: libexif/canon/mnote-canon-tag.c:35
+msgid "Settings (First Part)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:36 libexif/canon/mnote-canon-tag.c:92
+#: libexif/exif-tag.c:581 libexif/pentax/mnote-pentax-tag.c:88
+msgid "Focal Length"
+msgstr "Жижна даљина"
+
+#: libexif/canon/mnote-canon-tag.c:37
+msgid "Settings (Second Part)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:38
+#: libexif/olympus/mnote-olympus-entry.c:595
+#: libexif/pentax/mnote-pentax-entry.c:177
+msgid "Panorama"
+msgstr "Панорама"
+
+#: libexif/canon/mnote-canon-tag.c:39
+msgid "Image Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:40 libexif/olympus/mnote-olympus-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:113
+msgid "Firmware Version"
+msgstr "Firmware верзије"
+
+#: libexif/canon/mnote-canon-tag.c:41
+msgid "Image Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:42
+msgid "Owner Name"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:43
+msgid "Color Information"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:44 libexif/fuji/mnote-fuji-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:81
+#: libexif/olympus/mnote-olympus-tag.c:146
+msgid "Serial Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:45
+msgid "Custom Functions"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:56 libexif/fuji/mnote-fuji-tag.c:45
+msgid "Macro Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:57 libexif/canon/mnote-canon-tag.c:117
+#: libexif/olympus/mnote-olympus-tag.c:175
+#: libexif/pentax/mnote-pentax-tag.c:128
+msgid "Self-timer"
+msgstr "Одбројавач"
+
+#: libexif/canon/mnote-canon-tag.c:58 libexif/fuji/mnote-fuji-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:94
+#: libexif/olympus/mnote-olympus-tag.c:107
+msgid "Quality"
+msgstr "Квалитет"
+
+#: libexif/canon/mnote-canon-tag.c:59 libexif/fuji/mnote-fuji-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:45
+#: libexif/olympus/mnote-olympus-tag.c:127
+#: libexif/pentax/mnote-pentax-tag.c:38 libexif/pentax/mnote-pentax-tag.c:73
+msgid "Flash Mode"
+msgstr "Мод блица"
+
+#: libexif/canon/mnote-canon-tag.c:60 libexif/pentax/mnote-pentax-tag.c:101
+msgid "Drive Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:61 libexif/canon/mnote-canon-tag.c:82
+#: libexif/olympus/mnote-olympus-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:134
+#: libexif/olympus/mnote-olympus-tag.c:173
+#: libexif/pentax/mnote-pentax-tag.c:37 libexif/pentax/mnote-pentax-tag.c:74
+#: libexif/pentax/mnote-pentax-tag.c:130
+msgid "Focus Mode"
+msgstr "Жижни мод"
+
+#: libexif/canon/mnote-canon-tag.c:62 libexif/pentax/mnote-pentax-tag.c:127
+msgid "Record Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:63 libexif/pentax/mnote-pentax-tag.c:71
+msgid "Image Size"
+msgstr "Величина слике"
+
+#: libexif/canon/mnote-canon-tag.c:64
+msgid "Easy Shooting Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:65 libexif/olympus/mnote-olympus-tag.c:64
+#: libexif/olympus/mnote-olympus-tag.c:101
+#: libexif/olympus/mnote-olympus-tag.c:110
+#: libexif/olympus/mnote-olympus-tag.c:180
+#: libexif/pentax/mnote-pentax-tag.c:89
+msgid "Digital Zoom"
+msgstr "Дигитално увећање"
+
+#: libexif/canon/mnote-canon-tag.c:66 libexif/exif-tag.c:828
+#: libexif/fuji/mnote-fuji-tag.c:42 libexif/pentax/mnote-pentax-tag.c:46
+#: libexif/pentax/mnote-pentax-tag.c:91
+msgid "Contrast"
+msgstr "Супротност"
+
+#: libexif/canon/mnote-canon-tag.c:67 libexif/exif-tag.c:832
+#: libexif/olympus/mnote-olympus-tag.c:75
+#: libexif/olympus/mnote-olympus-tag.c:87 libexif/pentax/mnote-pentax-tag.c:47
+#: libexif/pentax/mnote-pentax-tag.c:90
+msgid "Saturation"
+msgstr "Засићеност"
+
+#: libexif/canon/mnote-canon-tag.c:68 libexif/exif-tag.c:836
+#: libexif/fuji/mnote-fuji-tag.c:39 libexif/pentax/mnote-pentax-tag.c:45
+#: libexif/pentax/mnote-pentax-tag.c:92
+msgid "Sharpness"
+msgstr "Оштрина"
+
+#: libexif/canon/mnote-canon-tag.c:69
+msgid "ISO"
+msgstr "ISO"
+
+#: libexif/canon/mnote-canon-tag.c:70 libexif/exif-tag.c:571
+#: libexif/pentax/mnote-pentax-tag.c:82
+msgid "Metering Mode"
+msgstr "Мод мерења"
+
+#: libexif/canon/mnote-canon-tag.c:71 libexif/olympus/mnote-olympus-tag.c:133
+msgid "Focus Range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:72 libexif/canon/mnote-canon-tag.c:105
+msgid "AF Point"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:73 libexif/exif-tag.c:795
+msgid "Exposure Mode"
+msgstr "Мод осветљења"
+
+#: libexif/canon/mnote-canon-tag.c:74 libexif/olympus/mnote-olympus-tag.c:61
+#: libexif/pentax/mnote-pentax-tag.c:106
+msgid "Lens Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:75
+msgid "Long Focal Length of Lens"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:76
+msgid "Short Focal Length of Lens"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:77
+msgid "Focal Units per mm"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:78
+msgid "Maximal Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:79
+msgid "Minimal Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:80
+msgid "Flash Activity"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:81
+msgid "Flash Details"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:83
+msgid "AE Setting"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:84
+msgid "Image Stabilization"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:85
+msgid "Display Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:86
+msgid "Zoom Source Width"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:87
+msgid "Zoom Target Width"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:88
+msgid "Photo Effect"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:89 libexif/canon/mnote-canon-tag.c:118
+msgid "Manual Flash Output"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:90
+msgid "Color Tone"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:91
+msgid "Focal Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:93
+msgid "Focal Plane X Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:94
+msgid "Focal Plane Y Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:95
+msgid "Auto ISO"
+msgstr "Аутоматско ISO"
+
+#: libexif/canon/mnote-canon-tag.c:96
+msgid "Shot ISO"
+msgstr "ISO снимак"
+
+#: libexif/canon/mnote-canon-tag.c:97
+msgid "Measured EV"
+msgstr "Мерљиво EV"
+
+#: libexif/canon/mnote-canon-tag.c:98
+msgid "Target Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:99
+msgid "Target Exposure Time"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:100 libexif/olympus/mnote-olympus-tag.c:129
+#: libexif/pentax/mnote-pentax-tag.c:81
+msgid "Exposure Compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:101 libexif/canon/mnote-canon-tag.c:123
+#: libexif/exif-tag.c:800 libexif/fuji/mnote-fuji-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:41
+#: libexif/olympus/mnote-olympus-tag.c:98 libexif/pentax/mnote-pentax-tag.c:41
+#: libexif/pentax/mnote-pentax-tag.c:84 libexif/pentax/mnote-pentax-tag.c:124
+msgid "White Balance"
+msgstr "Равнотежа беле"
+
+#: libexif/canon/mnote-canon-tag.c:102
+msgid "Slow Shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:103
+msgid "Sequence Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:104
+msgid "Flash Guide Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:106 libexif/olympus/mnote-olympus-tag.c:52
+#: libexif/pentax/mnote-pentax-tag.c:109
+msgid "Flash Exposure Compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:107
+msgid "AE Bracketing"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:108
+msgid "AE Bracket Value"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:109
+msgid "Focus Distance Upper"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:110
+msgid "Focus Distance Lower"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:111
+msgid "FNumber"
+msgstr "ФБрој"
+
+#: libexif/canon/mnote-canon-tag.c:112 libexif/exif-tag.c:466
+#: libexif/pentax/mnote-pentax-tag.c:78
+msgid "Exposure Time"
+msgstr "Време осветљења"
+
+#: libexif/canon/mnote-canon-tag.c:113
+msgid "Bulb Duration"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:114
+msgid "Camera Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:115
+msgid "Auto Rotate"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:116
+msgid "ND Filter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:119
+msgid "Panorama Frame"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:120
+msgid "Panorama Direction"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:121
+msgid "Tone Curve"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:122
+msgid "Sharpness Frequency"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:124
+msgid "Picture Style"
+msgstr ""
+
+#: libexif/exif-byte-order.c:33
+msgid "Motorola"
+msgstr "Motorola"
+
+#: libexif/exif-byte-order.c:35
+msgid "Intel"
+msgstr "Intel"
+
+#: libexif/exif-data.c:780
+msgid "Size of data too small to allow for EXIF data."
+msgstr "Подаци су премали да бих дозволио EXIF податке."
+
+#: libexif/exif-data.c:841
+msgid "EXIF marker not found."
+msgstr "Нисам пронашао EXIF ознаку."
+
+#: libexif/exif-data.c:868
+msgid "EXIF header not found."
+msgstr "EXIF заглавље није пронађено."
+
+#: libexif/exif-data.c:884
+msgid "Unknown encoding."
+msgstr "Непознато шифровање."
+
+#: libexif/exif-data.c:1168
+msgid "Ignore unknown tags"
+msgstr "Занемари непозанте ознаке."
+
+#: libexif/exif-data.c:1169
+msgid "Ignore unknown tags when loading EXIF data."
+msgstr "Занемари непозанте ознаке док учитаваш EXIF податке."
+
+#: libexif/exif-data.c:1170
+msgid "Follow specification"
+msgstr "Усклади са техничким подацима"
+
+#: libexif/exif-data.c:1171
+msgid ""
+"Add, correct and remove entries to get EXIF data that follows the "
+"specification."
+msgstr ""
+"Додај, исправи или уклони уносе не би ли добио EXIF податке у складу са "
+"техничким подацима."
+
+#: libexif/exif-data.c:1173
+msgid "Do not change maker note"
+msgstr ""
+
+#: libexif/exif-data.c:1174
+msgid ""
+"When loading and resaving Exif data, save the maker note unmodified. Be "
+"aware that the maker note can get corrupted."
+msgstr ""
+"Приликом учитавања и резервисања Exif података, немојте да мењате белешке "
+"аутора. Али оне ипак могу да се оштете."
+
+#: libexif/exif-entry.c:234 libexif/exif-entry.c:303 libexif/exif-entry.c:336
+#, c-format
+msgid ""
+"Tag '%s' was of format '%s' (which is against specification) and has been "
+"changed to format '%s'."
+msgstr ""
+"Етикета '%s' је облика '%s' (што је противно спецификацији) и промењено је у "
+"облик '%s'."
+
+#: libexif/exif-entry.c:271
+#, c-format
+msgid ""
+"Tag '%s' is of format '%s' (which is against specification) but cannot be "
+"changed to format '%s'."
+msgstr ""
+
+#: libexif/exif-entry.c:354
+#, c-format
+msgid ""
+"Tag 'UserComment' had invalid format '%s'. Format has been set to "
+"'undefined'."
+msgstr ""
+"Етикета 'Коментар корисника' има неисправан облик '%s'. Облик је обележен "
+"као \"неодређен\"."
+
+#: libexif/exif-entry.c:381
+msgid ""
+"Tag 'UserComment' has been expanded to at least 8 bytes in order to follow "
+"the specification."
+msgstr ""
+"Етикета 'Коментар корисника' је проширено на најмање 8 бајтова не би "
+"испоштовали спецификацију."
+
+#: libexif/exif-entry.c:396
+msgid ""
+"Tag 'UserComment' is not empty but does not start with a format identifier. "
+"This has been fixed."
+msgstr ""
+
+#: libexif/exif-entry.c:424
+msgid ""
+"Tag 'UserComment' did not start with a format identifier. This has been "
+"fixed."
+msgstr ""
+
+#: libexif/exif-entry.c:462
+#, c-format
+msgid "%i bytes undefined data"
+msgstr ""
+
+#: libexif/exif-entry.c:589
+#, c-format
+msgid "%i bytes unsupported data type"
+msgstr ""
+
+#: libexif/exif-entry.c:622
+#, c-format
+msgid "The tag '%s' contains data of an invalid format ('%s', expected '%s')."
+msgstr ""
+"Етикета '%s' садржи податке у неисправном облику ( '%s', а тражи се '%s')."
+
+#: libexif/exif-entry.c:635
+#, c-format
+msgid ""
+"The tag '%s' contains an invalid number of components (%i, expected %i)."
+msgstr "Етикета  '%s садржи неисправан број елемената (%i, уместо %i)."
+
+#: libexif/exif-entry.c:649
+#, fuzzy
+msgid "Chunky format"
+msgstr "здепаст формат"
+
+#: libexif/exif-entry.c:649
+#, fuzzy
+msgid "Planar format"
+msgstr "пљоснати формат"
+
+#: libexif/exif-entry.c:651 libexif/exif-entry.c:743
+#: test/nls/test-codeset.c:54
+msgid "Not defined"
+msgstr "Неодређено"
+
+#: libexif/exif-entry.c:651
+msgid "One-chip color area sensor"
+msgstr "Једночипни сензор области боје"
+
+#: libexif/exif-entry.c:652
+msgid "Two-chip color area sensor"
+msgstr "Двочипни сензор области боје"
+
+#: libexif/exif-entry.c:652
+msgid "Three-chip color area sensor"
+msgstr "Трочипни сензор области боје"
+
+#: libexif/exif-entry.c:653
+msgid "Color sequential area sensor"
+msgstr "Сензор секвенцијалног простора боја"
+
+#: libexif/exif-entry.c:653
+msgid "Trilinear sensor"
+msgstr "Пространи сензор"
+
+#: libexif/exif-entry.c:654
+msgid "Color sequential linear sensor"
+msgstr "Сензор линеарног простора боја"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:233
+msgid "Top-left"
+msgstr "Горе - лево"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:235
+msgid "Top-right"
+msgstr "Горе - десно"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:241
+msgid "Bottom-right"
+msgstr "Доле - десно"
+
+#: libexif/exif-entry.c:657 libexif/pentax/mnote-pentax-entry.c:239
+msgid "Bottom-left"
+msgstr "Доле - лево"
+
+#: libexif/exif-entry.c:657
+#, fuzzy
+msgid "Left-top"
+msgstr "лево - горе"
+
+#: libexif/exif-entry.c:657
+#, fuzzy
+msgid "Right-top"
+msgstr "десно - горе"
+
+#: libexif/exif-entry.c:658
+#, fuzzy
+msgid "Right-bottom"
+msgstr "десно - доле"
+
+#: libexif/exif-entry.c:658
+#, fuzzy
+msgid "Left-bottom"
+msgstr "лево - доле"
+
+#: libexif/exif-entry.c:660
+#, fuzzy
+msgid "Centered"
+msgstr "у средишту"
+
+#: libexif/exif-entry.c:660
+#, fuzzy
+msgid "Co-sited"
+msgstr "садржан"
+
+#: libexif/exif-entry.c:662
+msgid "Reversed mono"
+msgstr "Обрнути моно"
+
+#: libexif/exif-entry.c:662
+msgid "Normal mono"
+msgstr "Нормални моно"
+
+#: libexif/exif-entry.c:662
+msgid "RGB"
+msgstr "RGB"
+
+#: libexif/exif-entry.c:662
+msgid "Palette"
+msgstr "Палета"
+
+#: libexif/exif-entry.c:663
+msgid "CMYK"
+msgstr "CMYK"
+
+#: libexif/exif-entry.c:663
+msgid "YCbCr"
+msgstr "YCbCr"
+
+#: libexif/exif-entry.c:663
+msgid "CieLAB"
+msgstr "CieLAB"
+
+#: libexif/exif-entry.c:665
+msgid "Normal process"
+msgstr "Нормални поступак"
+
+#: libexif/exif-entry.c:665
+msgid "Custom process"
+msgstr "Прилагођени поступак"
+
+#: libexif/exif-entry.c:667
+msgid "Auto exposure"
+msgstr "Аутоматско осветљење"
+
+#: libexif/exif-entry.c:667 libexif/fuji/mnote-fuji-entry.c:139
+msgid "Manual exposure"
+msgstr "Ручно осветљење"
+
+#: libexif/exif-entry.c:667
+msgid "Auto bracket"
+msgstr "Аутоматска потпора"
+
+#: libexif/exif-entry.c:669
+msgid "Auto white balance"
+msgstr "Аутоматска равнотежа беле"
+
+#: libexif/exif-entry.c:669
+msgid "Manual white balance"
+msgstr "Ручно уравнотеживање беле"
+
+#: libexif/exif-entry.c:674
+msgid "Low gain up"
+msgstr "Повећај ниске прагове"
+
+#: libexif/exif-entry.c:674
+msgid "High gain up"
+msgstr "Високи скок"
+
+#: libexif/exif-entry.c:675
+msgid "Low gain down"
+msgstr "Смањи ниске прагове"
+
+#: libexif/exif-entry.c:675
+msgid "High gain down"
+msgstr "Смањи високе прагове"
+
+#: libexif/exif-entry.c:677
+msgid "Low saturation"
+msgstr "Мала засићеност"
+
+#: libexif/exif-entry.c:677 test/nls/test-codeset.c:48
+#: test/nls/test-codeset.c:61
+msgid "High saturation"
+msgstr "Велика засићеност"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:63
+#: libexif/olympus/mnote-olympus-entry.c:205
+#: libexif/olympus/mnote-olympus-entry.c:214
+#: libexif/pentax/mnote-pentax-entry.c:106
+#: libexif/pentax/mnote-pentax-entry.c:170
+msgid "Soft"
+msgstr "Меко"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:65 libexif/fuji/mnote-fuji-entry.c:95
+#: libexif/olympus/mnote-olympus-entry.c:204
+#: libexif/olympus/mnote-olympus-entry.c:212
+#: libexif/pentax/mnote-pentax-entry.c:107
+msgid "Hard"
+msgstr "Тешко"
+
+#: libexif/exif-entry.c:695 libexif/exif-entry.c:713 libexif/exif-entry.c:795
+#: libexif/olympus/mnote-olympus-entry.c:589
+#: libexif/olympus/mnote-olympus-entry.c:683
+#: libexif/olympus/mnote-olympus-entry.c:738
+#: libexif/pentax/mnote-pentax-entry.c:256
+msgid "Unknown"
+msgstr "Непознато"
+
+#: libexif/exif-entry.c:696
+#, fuzzy
+msgid "Avg"
+msgstr "просечно"
+
+#: libexif/exif-entry.c:697
+#, fuzzy
+msgid "Center-weight"
+msgstr "Централна тежина"
+
+#: libexif/exif-entry.c:699
+#, fuzzy
+msgid "Multi spot"
+msgstr "Мулти тачка"
+
+#: libexif/exif-entry.c:700
+msgid "Pattern"
+msgstr "Шаблон"
+
+#: libexif/exif-entry.c:705
+msgid "Uncompressed"
+msgstr "Несабијено"
+
+#: libexif/exif-entry.c:706
+msgid "LZW compression"
+msgstr "LZW сажимање"
+
+#: libexif/exif-entry.c:707 libexif/exif-entry.c:708
+msgid "JPEG compression"
+msgstr "JPEG сажимање"
+
+#: libexif/exif-entry.c:709
+msgid "Deflate/ZIP compression"
+msgstr "Испумпати/ЗИП сажимање"
+
+#: libexif/exif-entry.c:710
+msgid "PackBits compression"
+msgstr "PackBits сажимање"
+
+#: libexif/exif-entry.c:716
+msgid "Tungsten incandescent light"
+msgstr "Волфрамско ужарено светло"
+
+#: libexif/exif-entry.c:718
+msgid "Fine weather"
+msgstr "Лепо време"
+
+#: libexif/exif-entry.c:719
+msgid "Cloudy weather"
+msgstr "Облачно време"
+
+#: libexif/exif-entry.c:722 libexif/fuji/mnote-fuji-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:252
+msgid "Day white fluorescent"
+msgstr "Дневно бело флуросцентно"
+
+#: libexif/exif-entry.c:723
+msgid "Cool white fluorescent"
+msgstr "Хладно бело флуросцентно"
+
+#: libexif/exif-entry.c:724 libexif/fuji/mnote-fuji-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:253
+msgid "White fluorescent"
+msgstr "Бело флуросцентно"
+
+#: libexif/exif-entry.c:725
+msgid "Standard light A"
+msgstr "Стандардно светло А"
+
+#: libexif/exif-entry.c:726
+msgid "Standard light B"
+msgstr "Стандардно светло В"
+
+#: libexif/exif-entry.c:727
+msgid "Standard light C"
+msgstr "Стандардно светло С"
+
+#: libexif/exif-entry.c:728
+msgid "D55"
+msgstr "D55"
+
+#: libexif/exif-entry.c:729
+msgid "D65"
+msgstr "D65"
+
+#: libexif/exif-entry.c:730
+msgid "D75"
+msgstr "D75"
+
+#: libexif/exif-entry.c:731
+msgid "ISO studio tungsten"
+msgstr "ISO студио волфрам"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "Inch"
+msgstr "Инч"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "in"
+msgstr "in"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "Centimeter"
+msgstr "Центиметар"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "cm"
+msgstr "cm"
+
+#: libexif/exif-entry.c:745
+msgid "Normal program"
+msgstr "Нормални програм"
+
+#: libexif/exif-entry.c:746
+msgid "Aperture priority"
+msgstr "Предност отвора"
+
+#: libexif/exif-entry.c:746 libexif/exif-tag.c:550
+msgid "Aperture"
+msgstr "Отвор"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter priority"
+msgstr "Предност затварача"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter"
+msgstr "Затварач"
+
+#: libexif/exif-entry.c:748
+msgid "Creative program (biased toward depth of field)"
+msgstr "Стваралачки програм (склоно дубини поља)"
+
+#: libexif/exif-entry.c:749
+msgid "Creative"
+msgstr "Стваралчко"
+
+#: libexif/exif-entry.c:750
+msgid "Creative program (biased toward fast shutter speed)"
+msgstr "Стваралачки програм (склоно брзом затварању)"
+
+#: libexif/exif-entry.c:751
+msgid "Action"
+msgstr "Акција"
+
+#: libexif/exif-entry.c:752
+msgid "Portrait mode (for closeup photos with the background out of focus)"
+msgstr "Поптретни мод (за сликање изблиза код којих позадина није у жижи)"
+
+#: libexif/exif-entry.c:754
+msgid "Landscape mode (for landscape photos with the background in focus)"
+msgstr "Пејзажни мод (за пејзажне фотографије код којих је позадина у жижи)"
+
+#: libexif/exif-entry.c:758 libexif/exif-entry.c:763
+#: libexif/olympus/mnote-olympus-entry.c:97
+msgid "Flash did not fire"
+msgstr "Блиц није бљеснуо"
+
+#: libexif/exif-entry.c:758
+#, fuzzy
+msgid "No flash"
+msgstr "без блица"
+
+#: libexif/exif-entry.c:759
+msgid "Flash fired"
+msgstr ""
+
+#: libexif/exif-entry.c:759 libexif/olympus/mnote-olympus-entry.c:170
+#: libexif/olympus/mnote-olympus-entry.c:175
+#: libexif/olympus/mnote-olympus-entry.c:209
+#: libexif/olympus/mnote-olympus-entry.c:218
+#: libexif/olympus/mnote-olympus-entry.c:241
+msgid "Yes"
+msgstr "Да"
+
+#: libexif/exif-entry.c:760
+msgid "Strobe return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:760
+#, fuzzy
+msgid "Without strobe"
+msgstr "W/o електронски блиц"
+
+#: libexif/exif-entry.c:762
+msgid "Strobe return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:762
+#, fuzzy
+msgid "With strobe"
+msgstr "W. строб (електронски блиц)"
+
+#: libexif/exif-entry.c:764
+msgid "Flash fired, compulsory flash mode"
+msgstr ""
+
+#: libexif/exif-entry.c:765
+msgid "Flash fired, compulsory flash mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:767
+msgid "Flash fired, compulsory flash mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:769
+msgid "Flash did not fire, compulsory flash mode"
+msgstr ""
+
+#: libexif/exif-entry.c:770
+msgid "Flash did not fire, auto mode"
+msgstr ""
+
+#: libexif/exif-entry.c:771
+msgid "Flash fired, auto mode"
+msgstr ""
+
+#: libexif/exif-entry.c:772
+msgid "Flash fired, auto mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:774
+msgid "Flash fired, auto mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:775
+msgid "No flash function"
+msgstr ""
+
+#: libexif/exif-entry.c:776
+msgid "Flash fired, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:777
+msgid "Flash fired, red-eye reduction mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:779
+msgid "Flash fired, red-eye reduction mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:781
+msgid "Flash fired, compulsory flash mode, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:783
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light not "
+"detected"
+msgstr ""
+
+#: libexif/exif-entry.c:785
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light "
+"detected"
+msgstr ""
+
+#: libexif/exif-entry.c:787
+msgid "Flash did not fire, auto mode, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:788
+msgid "Flash fired, auto mode, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:789
+msgid ""
+"Flash fired, auto mode, return light not detected, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:791
+msgid "Flash fired, auto mode, return light detected, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:795
+msgid "?"
+msgstr "?"
+
+#: libexif/exif-entry.c:797
+msgid "Close view"
+msgstr "Погледа изблиза"
+
+#: libexif/exif-entry.c:798
+msgid "Distant view"
+msgstr "Удаљен поглед"
+
+#: libexif/exif-entry.c:798
+msgid "Distant"
+msgstr ""
+
+#: libexif/exif-entry.c:801
+msgid "sRGB"
+msgstr "sRGB"
+
+#: libexif/exif-entry.c:802
+msgid "Adobe RGB"
+msgstr "Adobe RGB"
+
+#: libexif/exif-entry.c:803
+msgid "Uncalibrated"
+msgstr "Неподешено"
+
+#: libexif/exif-entry.c:857
+#, c-format
+msgid "Invalid size of entry (%i, expected %li x %i)."
+msgstr "Неисправна величина уноса (%i, тражи се %li x %i)."
+
+#: libexif/exif-entry.c:890
+msgid "Unsupported UNICODE string"
+msgstr "Неподржан UNICODE стринг"
+
+#: libexif/exif-entry.c:898
+msgid "Unsupported JIS string"
+msgstr "Неподржан JIS стринг"
+
+#: libexif/exif-entry.c:914
+msgid "Tag UserComment does not comply with standard but contains data."
+msgstr ""
+"Заставица КорисничкиКоментар се не уклапа са стандардом, већ садржи податке."
+
+#: libexif/exif-entry.c:918
+#, c-format
+msgid "Byte at position %i: 0x%02x"
+msgstr "Бајт на позицији %i: 0x%02x"
+
+#: libexif/exif-entry.c:927
+msgid "Unknown Exif Version"
+msgstr "Непозната верзија Exif"
+
+#: libexif/exif-entry.c:931
+#, c-format
+msgid "Exif Version %d.%d"
+msgstr "Exif верзија %d.%d"
+
+#: libexif/exif-entry.c:942
+msgid "FlashPix Version 1.0"
+msgstr "FlashPix верзија 1.0"
+
+#: libexif/exif-entry.c:944
+msgid "FlashPix Version 1.01"
+msgstr "FlashPix верзија 1.01"
+
+#: libexif/exif-entry.c:946
+msgid "Unknown FlashPix Version"
+msgstr "Непозната верзија FlashPix"
+
+#: libexif/exif-entry.c:959 libexif/exif-entry.c:972 libexif/exif-entry.c:1628
+#: libexif/exif-entry.c:1633 libexif/exif-entry.c:1637
+#: libexif/exif-entry.c:1642 libexif/exif-entry.c:1643
+msgid "[None]"
+msgstr "[Ништа]"
+
+#: libexif/exif-entry.c:961
+msgid "(Photographer)"
+msgstr "(Фотограф)"
+
+#: libexif/exif-entry.c:975
+msgid "(Editor)"
+msgstr "(Уредник)"
+
+#: libexif/exif-entry.c:999 libexif/exif-entry.c:1079
+#: libexif/exif-entry.c:1096 libexif/exif-entry.c:1140
+#, c-format
+msgid "%.02f EV"
+msgstr "%.02f EV"
+
+#: libexif/exif-entry.c:1000
+#, c-format
+msgid " (f/%.01f)"
+msgstr " (f/%.01f)"
+
+#: libexif/exif-entry.c:1034
+#, c-format
+msgid " (35 equivalent: %d mm)"
+msgstr " (35 одговара: %d mm)"
+
+#: libexif/exif-entry.c:1067 libexif/exif-entry.c:1068
+msgid " sec."
+msgstr " sec."
+
+#: libexif/exif-entry.c:1082
+#, c-format
+msgid " (1/%d sec.)"
+msgstr ""
+
+#: libexif/exif-entry.c:1084
+#, c-format
+msgid " (%d sec.)"
+msgstr ""
+
+#: libexif/exif-entry.c:1097
+#, c-format
+msgid " (%.02f cd/m^2)"
+msgstr " (%.02f cd/m^2)"
+
+#: libexif/exif-entry.c:1107
+msgid "DSC"
+msgstr "DSC"
+
+#: libexif/exif-entry.c:1109 libexif/exif-entry.c:1149
+#: libexif/exif-entry.c:1236 libexif/exif-entry.c:1287
+#: libexif/exif-entry.c:1296 libexif/exif-entry.c:1332
+#: libexif/fuji/mnote-fuji-entry.c:236 libexif/fuji/mnote-fuji-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:359
+#, c-format
+msgid "Internal error (unknown value %i)"
+msgstr "Унутрашња грешка (непозната вредност %i)"
+
+#: libexif/exif-entry.c:1117
+msgid "-"
+msgstr "-"
+
+#: libexif/exif-entry.c:1118
+msgid "Y"
+msgstr "Y"
+
+#: libexif/exif-entry.c:1119
+msgid "Cb"
+msgstr "Cb"
+
+#: libexif/exif-entry.c:1120
+msgid "Cr"
+msgstr "Cr"
+
+#: libexif/exif-entry.c:1121
+msgid "R"
+msgstr "R"
+
+#: libexif/exif-entry.c:1122
+msgid "G"
+msgstr "G"
+
+#: libexif/exif-entry.c:1123
+msgid "B"
+msgstr "B"
+
+#: libexif/exif-entry.c:1124
+#, fuzzy
+msgid "Reserved"
+msgstr "заузето"
+
+#: libexif/exif-entry.c:1147
+msgid "Directly photographed"
+msgstr ""
+
+#: libexif/exif-entry.c:1160
+msgid "YCbCr4:2:2"
+msgstr "YCbCr4:2:2"
+
+#: libexif/exif-entry.c:1162
+msgid "YCbCr4:2:0"
+msgstr "YCbCr4:2:0"
+
+#: libexif/exif-entry.c:1179
+#, c-format
+msgid "Within distance %i of (x,y) = (%i,%i)"
+msgstr "У оквиру раздаљине %i of (x,y) = (%i,%i)"
+
+#: libexif/exif-entry.c:1188
+#, c-format
+msgid "Within rectangle (width %i, height %i) around (x,y) = (%i,%i)"
+msgstr "У оквиру правоугаоника (ширина %i, висина %i) око (x,y) = (%i,%i)"
+
+#: libexif/exif-entry.c:1194
+#, c-format
+msgid "Unexpected number of components (%li, expected 2, 3, or 4)."
+msgstr "Неочекиван број елемена (%li, тражи се 2, 3, или 4)."
+
+#: libexif/exif-entry.c:1232
+msgid "Sea level"
+msgstr ""
+
+#: libexif/exif-entry.c:1234
+msgid "Sea level reference"
+msgstr ""
+
+#: libexif/exif-entry.c:1342
+#, c-format
+msgid "Unknown value %i"
+msgstr ""
+
+#: libexif/exif-format.c:37
+msgid "Short"
+msgstr "Short"
+
+#: libexif/exif-format.c:38
+msgid "Rational"
+msgstr "Rational"
+
+#: libexif/exif-format.c:39
+msgid "SRational"
+msgstr "SRational"
+
+#: libexif/exif-format.c:40
+msgid "Undefined"
+msgstr "Неодређено"
+
+#: libexif/exif-format.c:41
+msgid "ASCII"
+msgstr ""
+
+#: libexif/exif-format.c:42
+msgid "Long"
+msgstr "Long"
+
+#: libexif/exif-format.c:43
+msgid "Byte"
+msgstr "Byte"
+
+#: libexif/exif-format.c:44
+msgid "SByte"
+msgstr "SByte"
+
+#: libexif/exif-format.c:45
+msgid "SShort"
+msgstr "SShort"
+
+#: libexif/exif-format.c:46
+msgid "SLong"
+msgstr "SLong"
+
+#: libexif/exif-format.c:47
+msgid "Float"
+msgstr "Float"
+
+#: libexif/exif-format.c:48
+msgid "Double"
+msgstr "Double"
+
+#: libexif/exif-loader.c:119
+#, c-format
+msgid "The file '%s' could not be opened."
+msgstr "Не може да се отвори фајл  '%s'."
+
+#: libexif/exif-loader.c:300
+msgid "The data supplied does not seem to contain EXIF data."
+msgstr "Прослеђени подаци не садрже EXIF податке."
+
+#: libexif/exif-log.c:43
+msgid "Debugging information"
+msgstr "Дебаг информација"
+
+#: libexif/exif-log.c:44
+msgid "Debugging information is available."
+msgstr "Није доступна информација о дебаговању."
+
+#: libexif/exif-log.c:45
+msgid "Not enough memory"
+msgstr "Нема довољно меморије"
+
+#: libexif/exif-log.c:46
+msgid "The system cannot provide enough memory."
+msgstr "Систем не може да обезбеди довољно меморије."
+
+#: libexif/exif-log.c:47
+msgid "Corrupt data"
+msgstr "Оштећени подаци"
+
+#: libexif/exif-log.c:48
+msgid "The data provided does not follow the specification."
+msgstr "Прослеђени подаци нису у складу са техничким подацима."
+
+#: libexif/exif-tag.c:62
+#, fuzzy
+msgid "GPS Tag Version"
+msgstr "Етикета GPS верзије"
+
+#: libexif/exif-tag.c:63
+msgid ""
+"Indicates the version of <GPSInfoIFD>. The version is given as 2.0.0.0. This "
+"tag is mandatory when <GPSInfo> tag is present. (Note: The <GPSVersionID> "
+"tag is given in bytes, unlike the <ExifVersion> tag. When the version is "
+"2.0.0.0, the tag value is 02000000.H)."
+msgstr ""
+"Означава верзију од <GPSInfoIFD>. Ово је верзија 2.0.0.0. Ова етикета је "
+"обавезна кад је присутна етикета <GPSInfo>. (Примедба: Етикета "
+"<GPSVersionID> се изражава у бајтовима, за разлику од етикете <ExifVersion>."
+"Ако је верзија 2.0.0.0, вредност етикете је 02000000.H)."
+
+#: libexif/exif-tag.c:69
+msgid "Interoperability Index"
+msgstr ""
+
+#: libexif/exif-tag.c:70
+msgid ""
+"Indicates the identification of the Interoperability rule. Use \"R98\" for "
+"stating ExifR98 Rules. Four bytes used including the termination code "
+"(NULL). see the separate volume of Recommended Exif Interoperability Rules "
+"(ExifR98) for other tags used for ExifR98."
+msgstr ""
+"Назначасва идентификацију интероперабилног правила. Користите \"R98\" за "
+"назначавање ExifR98 правила. Користе се четири бајта укључујући и "
+"терминациони код (NULL). Погледајте засебно поглавље за препоручена правила "
+"интероперабилности Exif стандарда (ExifR98) за остале ознаке."
+
+#: libexif/exif-tag.c:76
+msgid "North or South Latitude"
+msgstr "Северна или јужна географска дужина"
+
+#: libexif/exif-tag.c:77
+msgid ""
+"Indicates whether the latitude is north or south latitude. The ASCII value "
+"'N' indicates north latitude, and 'S' is south latitude."
+msgstr ""
+"Означава северну или јужну геогр. ширину. ASCII слово 'N' означава северну, "
+"a 'S' јужну ширину.."
+
+#: libexif/exif-tag.c:81
+msgid "Interoperability Version"
+msgstr ""
+
+#: libexif/exif-tag.c:83
+msgid "Latitude"
+msgstr "Географска ширина"
+
+#: libexif/exif-tag.c:84
+msgid ""
+"Indicates the latitude. The latitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is dd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is dd/1,mmmm/100,0/1."
+msgstr ""
+"Означава геогр. ширину. Она се мери у степенима, минутима и секундама и "
+"записује у рационалним бројевима. Ако су изражени и степени, минути и "
+"секунде, користи се облик dd/1,mm/1,ss/1. Ако је изражено само у степенима и "
+"минутима, и минути су, рецимо, изражени у две децимале, облик је dd/1,"
+"mmmm/100,0/1."
+
+#: libexif/exif-tag.c:91
+msgid "East or West Longitude"
+msgstr "Источна или западна геогр. дужина"
+
+#: libexif/exif-tag.c:92
+msgid ""
+"Indicates whether the longitude is east or west longitude. ASCII 'E' "
+"indicates east longitude, and 'W' is west longitude."
+msgstr ""
+"Означава источну или западну геогр. дужину.  ASCII слово 'E' је за источну, "
+"a 'W' за западну дужину."
+
+#: libexif/exif-tag.c:95
+msgid "Longitude"
+msgstr "Географска дужина"
+
+#: libexif/exif-tag.c:96
+msgid ""
+"Indicates the longitude. The longitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is ddd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is ddd/1,mmmm/100,0/1."
+msgstr ""
+"Означава геогр. дужину. Она се мери у степенима, минутима и секундама и "
+"записује у рационалним бројевима. Ако су изражени и степени, минути и "
+"секунде, користи се облик dd/1,mm/1,ss/1. Ако је изражено само у степенима и "
+"минутима, и минути су, рецимо, изражени у две децимале, облик је dd/1,"
+"mmmm/100,0/1."
+
+#: libexif/exif-tag.c:103
+#, fuzzy
+msgid "Altitude Reference"
+msgstr "Референца висине"
+
+#: libexif/exif-tag.c:104
+msgid ""
+"Indicates the altitude used as the reference altitude. If the reference is "
+"sea level and the altitude is above sea level, 0 is given. If the altitude "
+"is below sea level, a value of 1 is given and the altitude is indicated as "
+"an absolute value in the GSPAltitude tag. The reference unit is meters. Note "
+"that this tag is BYTE type, unlike other reference tags."
+msgstr ""
+"Означава висину у односу на обележивач висине. Ако се мери у односу на ниво "
+"мора, и висина је изнад нивоа мора, поставља се 0. Ако је висина испод нивоа "
+"мора, поставља се 1 и на висину се гледа као на апсолутну вредност у етикети "
+"GSPAltitude. Јединица су метри. Ова етикета је типа BYTE, за разлику од "
+"других етикета упућивача."
+
+#: libexif/exif-tag.c:110
+msgid "Altitude"
+msgstr "Висина"
+
+#: libexif/exif-tag.c:111
+msgid ""
+"Indicates the altitude based on the reference in GPSAltitudeRef. Altitude is "
+"expressed as one RATIONAL value. The reference unit is meters."
+msgstr ""
+"Означава висину у односу на упућивач у GPSAltitudeRef. Висина се изражава "
+"као рационални број. Јединица су метри."
+
+#: libexif/exif-tag.c:114
+msgid "GPS Time (Atomic Clock)"
+msgstr ""
+
+#: libexif/exif-tag.c:115
+msgid ""
+"Indicates the time as UTC (Coordinated Universal Time). TimeStamp is "
+"expressed as three RATIONAL values giving the hour, minute, and second."
+msgstr ""
+
+#: libexif/exif-tag.c:118
+msgid "GPS Satellites"
+msgstr ""
+
+#: libexif/exif-tag.c:119
+msgid ""
+"Indicates the GPS satellites used for measurements. This tag can be used to "
+"describe the number of satellites, their ID number, angle of elevation, "
+"azimuth, SNR and other information in ASCII notation. The format is not "
+"specified. If the GPS receiver is incapable of taking measurements, value of "
+"the tag shall be set to NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:125
+msgid "GPS Receiver Status"
+msgstr ""
+
+#: libexif/exif-tag.c:126
+msgid ""
+"Indicates the status of the GPS receiver when the image is recorded. 'A' "
+"means measurement is in progress, and 'V' means the measurement is "
+"Interoperability."
+msgstr ""
+
+#: libexif/exif-tag.c:129
+#, fuzzy
+msgid "GPS Measurement Mode"
+msgstr "Зелени мод"
+
+#: libexif/exif-tag.c:130
+msgid ""
+"Indicates the GPS measurement mode. '2' means two-dimensional measurement "
+"and '3' means three-dimensional measurement is in progress."
+msgstr ""
+
+#: libexif/exif-tag.c:133
+msgid "Measurement Precision"
+msgstr ""
+
+#: libexif/exif-tag.c:134
+msgid ""
+"Indicates the GPS DOP (data degree of precision). An HDOP value is written "
+"during two-dimensional measurement, and PDOP during three-dimensional "
+"measurement."
+msgstr ""
+
+#: libexif/exif-tag.c:137
+#, fuzzy
+msgid "Speed Unit"
+msgstr "Брзина светлости"
+
+#: libexif/exif-tag.c:138
+msgid ""
+"Indicates the unit used to express the GPS receiver speed of movement. 'K', "
+"'M' and 'N' represent kilometers per hour, miles per hour, and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:141
+msgid "Speed of GPS Receiver"
+msgstr ""
+
+#: libexif/exif-tag.c:142
+msgid "Indicates the speed of GPS receiver movement."
+msgstr ""
+
+#: libexif/exif-tag.c:143
+msgid "Reference for direction of movement"
+msgstr ""
+
+#: libexif/exif-tag.c:144
+msgid ""
+"Indicates the reference for giving the direction of GPS receiver movement. "
+"'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:147
+msgid "Direction of Movement"
+msgstr ""
+
+#: libexif/exif-tag.c:148
+msgid ""
+"Indicates the direction of GPS receiver movement. The range of values is "
+"from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:150
+msgid "GPS Image Direction Reference"
+msgstr ""
+
+#: libexif/exif-tag.c:151
+msgid ""
+"Indicates the reference for giving the direction of the image when it is "
+"captured. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:153
+#, fuzzy
+msgid "GPS Image Direction"
+msgstr "Опис слике"
+
+#: libexif/exif-tag.c:154
+msgid ""
+"Indicates the direction of the image when it was captured. The range of "
+"values is from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:156
+msgid "Geodetic Survey Data Used"
+msgstr ""
+
+#: libexif/exif-tag.c:157
+msgid ""
+"Indicates the geodetic survey data used by the GPS receiver. If the survey "
+"data is restricted to Japan, the value of this tag is 'TOKYO' or 'WGS-84'. "
+"If a GPS Info tag is recorded, it is strongly recommended that this tag be "
+"recorded."
+msgstr ""
+
+#: libexif/exif-tag.c:161
+msgid "Reference For Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:162
+msgid ""
+"Indicates whether the latitude of the destination point is north or south "
+"latitude. The ASCII value 'N' indicates north latitude, and 'S' is south "
+"latitude."
+msgstr ""
+
+#: libexif/exif-tag.c:165
+msgid "Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:166
+msgid ""
+"Indicates the latitude of the destination point. The latitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If latitude is expressed as degrees, minutes and seconds, a "
+"typical format would be dd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be dd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:173
+msgid "Reference for Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:174
+msgid ""
+"Indicates whether the longitude of the destination point is east or west "
+"longitude. ASCII 'E' indicates east longitude, and 'W' is west longitude."
+msgstr ""
+
+#: libexif/exif-tag.c:177
+msgid "Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:178
+msgid ""
+"Indicates the longitude of the destination point. The longitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If longitude is expressed as degrees, minutes and seconds, a "
+"typical format would be ddd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be ddd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:186
+msgid "Reference for Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:187
+msgid ""
+"Indicates the reference used for giving the bearing to the destination "
+"point. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:190
+msgid "Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:191
+msgid ""
+"Indicates the bearing to the destination point. The range of values is from "
+"0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:193
+msgid "Reference for Distance to Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:194
+msgid ""
+"Indicates the unit used to express the distance to the destination point. "
+"'K', 'M' and 'N' represent kilometers, miles and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:197
+msgid "Distance to Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:198
+msgid "Indicates the distance to the destination point."
+msgstr ""
+
+#: libexif/exif-tag.c:199
+msgid "Name of GPS Processing Method"
+msgstr ""
+
+#: libexif/exif-tag.c:200
+msgid ""
+"A character string recording the name of the method used for location "
+"finding. The first byte indicates the character code used, and this is "
+"followed by the name of the method. Since the Type is not ASCII, NULL "
+"termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:205
+msgid "Name of GPS Area"
+msgstr ""
+
+#: libexif/exif-tag.c:206
+msgid ""
+"A character string recording the name of the GPS area. The first byte "
+"indicates the character code used, and this is followed by the name of the "
+"GPS area. Since the Type is not ASCII, NULL termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:210
+msgid "GPS Date"
+msgstr ""
+
+#: libexif/exif-tag.c:211
+msgid ""
+"A character string recording date and time information relative to UTC "
+"(Coordinated Universal Time). The format is \"YYYY:MM:DD\". The length of "
+"the string is 11 bytes including NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:215
+msgid "GPS Differential Correction"
+msgstr ""
+
+#: libexif/exif-tag.c:216
+msgid ""
+"Indicates whether differential correction is applied to the GPS receiver."
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "New Subfile Type"
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "A general indication of the kind of data contained in this subfile."
+msgstr "Општа назнака врсте података која се налази у овом подфајлу."
+
+#: libexif/exif-tag.c:222
+msgid "Image Width"
+msgstr "Ширина слике"
+
+#: libexif/exif-tag.c:223
+msgid ""
+"The number of columns of image data, equal to the number of pixels per row. "
+"In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+"Број колона у подацима слике, једнак броју пиксела по реду. У JPEG сажетим "
+"подацима, JPEG етикета се користи уместо ове етикете."
+
+#: libexif/exif-tag.c:227
+msgid "Image Length"
+msgstr "Дужина слике"
+
+#: libexif/exif-tag.c:228
+msgid ""
+"The number of rows of image data. In JPEG compressed data a JPEG marker is "
+"used instead of this tag."
+msgstr ""
+"Број редова података слике. У JPEG сажетим подацима, JPEG етикета се користи "
+"уместо ове етикете."
+
+#: libexif/exif-tag.c:231
+msgid "Bits per Sample"
+msgstr "Битова по узорку"
+
+#: libexif/exif-tag.c:232
+msgid ""
+"The number of bits per image component. In this standard each component of "
+"the image is 8 bits, so the value for this tag is 8. See also "
+"<SamplesPerPixel>. In JPEG compressed data a JPEG marker is used instead of "
+"this tag."
+msgstr ""
+"Број бита по саставном делу слике. У овом станарду сваки део слике има 8 "
+"бита, тако да је вредност етикете 8. Погледајте <SamplesPerPixel>. Код JPEG "
+"сажимања, JPEG обелиживач се користи уместо ове етикете."
+
+#: libexif/exif-tag.c:237
+msgid "Compression"
+msgstr "Сажимање"
+
+#: libexif/exif-tag.c:238
+msgid ""
+"The compression scheme used for the image data. When a primary image is JPEG "
+"compressed, this designation is not necessary and is omitted. When "
+"thumbnails use JPEG compression, this tag value is set to 6."
+msgstr ""
+"Шема сажимања која се користи за податке слике. Ако је главна слика JPEG "
+"сажета, ознака није неопходна и изостављена је. Када сличице за преглед "
+"користе JPEG сажимање, вредност етикете је 6."
+
+#: libexif/exif-tag.c:244
+msgid "Photometric Interpretation"
+msgstr "Фотометријско представљање"
+
+#: libexif/exif-tag.c:245
+msgid ""
+"The pixel composition. In JPEG compressed data a JPEG marker is used instead "
+"of this tag."
+msgstr ""
+"Састав пиксела. Код JPEG сажетих података, JPEG обележивач се користи уместо "
+"ове етикете."
+
+#: libexif/exif-tag.c:249
+msgid "Fill Order"
+msgstr "Редослед фајлова"
+
+#: libexif/exif-tag.c:251
+msgid "Document Name"
+msgstr "Име документа"
+
+#: libexif/exif-tag.c:253
+msgid "Image Description"
+msgstr "Опис слике"
+
+#: libexif/exif-tag.c:254
+msgid ""
+"A character string giving the title of the image. It may be a comment such "
+"as \"1988 company picnic\" or the like. Two-bytes character codes cannot be "
+"used. When a 2-bytes code is necessary, the Exif Private tag <UserComment> "
+"is to be used."
+msgstr ""
+"Стринг слова којим се задаје наслов слике. То може бити примедба као што је "
+"\"1988 излет фирме\" или било шта. Не могу да се користе слова од 2 бајта. "
+"Ако је потребно да се они користе, куца се у Exif Private етикети "
+"<UserComment>."
+
+#: libexif/exif-tag.c:260
+msgid "Manufacturer"
+msgstr "Произвођач"
+
+#: libexif/exif-tag.c:261
+msgid ""
+"The manufacturer of the recording equipment. This is the manufacturer of the "
+"DSC, scanner, video digitizer or other equipment that generated the image. "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+"Произвођач опреме за сликање. То је произвођач DSC, скенера, видео "
+"дигитајзер или друге опреме која се користи за стварање слика. Ако је поље "
+"празно, сматра се да је непознато."
+
+#: libexif/exif-tag.c:267
+msgid "Model"
+msgstr "Модел"
+
+#: libexif/exif-tag.c:268
+msgid ""
+"The model name or model number of the equipment. This is the model name or "
+"number of the DSC, scanner, video digitizer or other equipment that "
+"generated the image. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Име модела или број модела опреме. То је име модела или број DSC, скенера, "
+"видео дигитајзер или друге опреме која се користи за стварање слика. Ако је "
+"поље празно, сматра се да је непознато."
+
+#: libexif/exif-tag.c:273
+msgid "Strip Offsets"
+msgstr "Штампане траке"
+
+#: libexif/exif-tag.c:274
+msgid ""
+"For each strip, the byte offset of that strip. It is recommended that this "
+"be selected so the number of strip bytes does not exceed 64 Kbytes. With "
+"JPEG compressed data this designation is not needed and is omitted. See also "
+"<RowsPerStrip> and <StripByteCounts>."
+msgstr ""
+"За сваку траку, бајтска штампа те траке. Препоручљиво је да се унесе "
+"вредност мања од 64 килобајта. Код JPEG сажетих података, ознака није "
+"неопходна и изостављена је. Погледајте и <RowsPerStrip> и <StripByteCounts>"
+
+#: libexif/exif-tag.c:280
+msgid "Orientation"
+msgstr "Положај"
+
+#: libexif/exif-tag.c:281
+msgid "The image orientation viewed in terms of rows and columns."
+msgstr "Положај слике у смислу редова и колона."
+
+#: libexif/exif-tag.c:284
+msgid "Samples per Pixel"
+msgstr "Узорака по пикселу"
+
+#: libexif/exif-tag.c:285
+msgid ""
+"The number of components per pixel. Since this standard applies to RGB and "
+"YCbCr images, the value set for this tag is 3. In JPEG compressed data a "
+"JPEG marker is used instead of this tag."
+msgstr ""
+"Број саставних делова по пикселу. Пошто се стандард односи на RGB и YCbCr "
+"слике, вредност етикете је 3. Код JPEG сажетих података, JPEG обележивач се "
+"користи уместо ове етикете."
+
+#: libexif/exif-tag.c:290
+msgid "Rows per Strip"
+msgstr "Редова по траци"
+
+#: libexif/exif-tag.c:291
+msgid ""
+"The number of rows per strip. This is the number of rows in the image of one "
+"strip when an image is divided into strips. With JPEG compressed data this "
+"designation is not needed and is omitted. See also <StripOffsets> and "
+"<StripByteCounts>."
+msgstr ""
+"Број редова по траци. Број редова у слици која је издељена на траке. Код "
+"JPEG сажетих података, ознака није неопходна и изостављена је. Погледајте и "
+"<StripOffsets> и <StripByteCounts>"
+
+#: libexif/exif-tag.c:297
+msgid "Strip Byte Count"
+msgstr "Број бајтова на траци"
+
+#: libexif/exif-tag.c:298
+msgid ""
+"The total number of bytes in each strip. With JPEG compressed data this "
+"designation is not needed and is omitted."
+msgstr ""
+"Укупан број бајтова за сваку траку. Код JPEG сажетих података, ознака није "
+"неопходна и изостављена је."
+
+#: libexif/exif-tag.c:301
+#, fuzzy
+msgid "X-Resolution"
+msgstr "x-резолуција"
+
+#: libexif/exif-tag.c:302
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageWidth> direction. "
+"When the image resolution is unknown, 72 [dpi] is designated."
+msgstr ""
+"Број пиксела по <ResolutionUnit> у <ImageWidth> правцу. Ако је непозната "
+"резолуција, 72 [dpi] је постављено."
+
+#: libexif/exif-tag.c:306
+#, fuzzy
+msgid "Y-Resolution"
+msgstr "x-резолуција"
+
+#: libexif/exif-tag.c:307
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageLength> direction. "
+"The same value as <XResolution> is designated."
+msgstr ""
+"Број пиксела по <ResolutionUnit> у <ImageWidth> правцу. Поставља се иста "
+"вредност као у <XResolution>."
+
+#: libexif/exif-tag.c:311
+msgid "Planar Configuration"
+msgstr "Распоред Планара"
+
+#: libexif/exif-tag.c:312
+msgid ""
+"Indicates whether pixel components are recorded in a chunky or planar "
+"format. In JPEG compressed files a JPEG marker is used instead of this tag. "
+"If this field does not exist, the TIFF default of 1 (chunky) is assumed."
+msgstr ""
+"Назначава да ли ће компоненте тачака бити записане у равном или раштрканом "
+"облику. У JPEG компресованим фајловима биће коришћен JPEG маркер уместо ове "
+"ознаке. Ако ово поље не постоји, користи се TIFF вредности 1 (раштркано)."
+
+#: libexif/exif-tag.c:317
+msgid "Resolution Unit"
+msgstr "Јединица резолуције"
+
+#: libexif/exif-tag.c:318
+msgid ""
+"The unit for measuring <XResolution> and <YResolution>. The same unit is "
+"used for both <XResolution> and <YResolution>. If the image resolution is "
+"unknown, 2 (inches) is designated."
+msgstr ""
+"Јединица за мерење <XResolution> и <YResolution>. Иста јединица се користи "
+"за <XResolution> и <YResolution>. Ако је непозната резолуција слике, "
+"поставља се 2 (инча)."
+
+#: libexif/exif-tag.c:323
+msgid "Transfer Function"
+msgstr "Функција преноса"
+
+#: libexif/exif-tag.c:324
+msgid ""
+"A transfer function for the image, described in tabular style. Normally this "
+"tag is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+"Функција преноса за слику, описана у табуларном стилу. Обично ова ознака "
+"ниеј неопходна, обзиром да је палета боја означена помоћу <ColorSpace>."
+
+#: libexif/exif-tag.c:328
+msgid "Software"
+msgstr "Софтвер"
+
+#: libexif/exif-tag.c:329
+msgid ""
+"This tag records the name and version of the software or firmware of the "
+"camera or image input device used to generate the image. The detailed format "
+"is not specified, but it is recommended that the example shown below be "
+"followed. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Ова етикета памти име и верзију софтвера или фирмвера фото-апарата или "
+"улазног уређаја који је направио слику. Облик уноса није прецизиран, али је "
+"препоручљиво да буде слично примеру који је приказан доле. Ако се поље "
+"остави празно, сматра се да је непознато."
+
+#: libexif/exif-tag.c:336
+msgid "Date and Time"
+msgstr "Датум и време"
+
+#: libexif/exif-tag.c:337
+msgid ""
+"The date and time of image creation. In this standard (EXIF-2.1) it is the "
+"date and time the file was changed."
+msgstr ""
+"Време и датум сликања фотографије. У овом стандарду (EXIF-2.1) то је датум и "
+"време измене фајла."
+
+#: libexif/exif-tag.c:340
+msgid "Artist"
+msgstr "Уметник"
+
+#: libexif/exif-tag.c:341
+msgid ""
+"This tag records the name of the camera owner, photographer or image "
+"creator. The detailed format is not specified, but it is recommended that "
+"the information be written as in the example below for ease of "
+"Interoperability. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Ова етикета памти име власника апарата, фотографа или оног који је направио "
+"слику. Облик уноса није прецизиран, али је препоручљиво да информација буде "
+"унета као што је пример који је приказан доле. Ако се поље остави празно, "
+"сматра се да је непознато."
+
+#: libexif/exif-tag.c:347 libexif/pentax/mnote-pentax-tag.c:113
+msgid "White Point"
+msgstr "Бела тачка"
+
+#: libexif/exif-tag.c:348
+msgid ""
+"The chromaticity of the white point of the image. Normally this tag is not "
+"necessary, since color space is specified in the color space information tag "
+"(<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:353
+msgid "Primary Chromaticities"
+msgstr "Главна нијансираност"
+
+#: libexif/exif-tag.c:354
+msgid ""
+"The chromaticity of the three primary colors of the image. Normally this tag "
+"is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:359
+msgid "Defined by Adobe Corporation to enable TIFF Trees within a TIFF file."
+msgstr ""
+"Одређено од стране Adobe корпорације за омогићавање TIFF Trees у оквиру TIFF "
+"фајла."
+
+#: libexif/exif-tag.c:362
+msgid "Transfer Range"
+msgstr "Домет преноса"
+
+#: libexif/exif-tag.c:366
+msgid "JPEG Interchange Format"
+msgstr "JPEG формат"
+
+#: libexif/exif-tag.c:367
+msgid ""
+"The offset to the start byte (SOI) of JPEG compressed thumbnail data. This "
+"is not used for primary image JPEG data."
+msgstr ""
+"Распон према стартном бајту (SOI) JPEG компресованог умањеног приказа слике. "
+"Ово се не користи као примарни податак JPEG слике."
+
+#: libexif/exif-tag.c:372
+msgid "JPEG Interchange Format Length"
+msgstr "JPEG формат дужине"
+
+#: libexif/exif-tag.c:373
+msgid ""
+"The number of bytes of JPEG compressed thumbnail data. This is not used for "
+"primary image JPEG data. JPEG thumbnails are not divided but are recorded as "
+"a continuous JPEG bitstream from SOI to EOI. Appn and COM markers should not "
+"be recorded. Compressed thumbnails must be recorded in no more than 64 "
+"Kbytes, including all other data to be recorded in APP1."
+msgstr ""
+"Број батова JPEG компресованог умањеног приказа слике. Ово се не користи као "
+"примарни податак JPEG слике. JPEG умањени прикази се не деле, али су "
+"записани као континуални JPEG токови битова почев од SOI до EOI. Appn и COM "
+"маркери не треба да се записују. Компресовани умањени прикази слика морају "
+"бити записани у не више од 64 килобајтова, укључујући и све постале податке "
+"који се записују у APP1."
+
+#: libexif/exif-tag.c:382
+msgid "YCbCr Coefficients"
+msgstr "YCbCr коефицијенти"
+
+#: libexif/exif-tag.c:383
+msgid ""
+"The matrix coefficients for transformation from RGB to YCbCr image data. No "
+"default is given in TIFF; but here the value given in \"Color Space "
+"Guidelines\", is used as the default. The color space is declared in a color "
+"space information tag, with the default being the value that gives the "
+"optimal image characteristics Interoperability this condition."
+msgstr ""
+
+#: libexif/exif-tag.c:392
+msgid "YCbCr Sub-Sampling"
+msgstr "YCbCr Sub-Sampling"
+
+#: libexif/exif-tag.c:393
+msgid ""
+"The sampling ratio of chrominance components in relation to the luminance "
+"component. In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+"Однос узорака делова хромирања у односу на јачину осветљења. Код JPEG "
+"сажетих података, JPEG обележивач се користи уместо ове етикете."
+
+#: libexif/exif-tag.c:398
+msgid "YCbCr Positioning"
+msgstr "YCbCr положај"
+
+#: libexif/exif-tag.c:399
+msgid ""
+"The position of chrominance components in relation to the luminance "
+"component. This field is designated only for JPEG compressed data or "
+"uncompressed YCbCr data. The TIFF default is 1 (centered); but when Y:Cb:Cr "
+"= 4:2:2 it is recommended in this standard that 2 (co-sited) be used to "
+"record data, in order to improve the image quality when viewed on TV "
+"systems. When this field does not exist, the reader shall assume the TIFF "
+"default. In the case of Y:Cb:Cr = 4:2:0, the TIFF default (centered) is "
+"recommended. If the reader does not have the capability of supporting both "
+"kinds of <YCbCrPositioning>, it shall follow the TIFF default regardless of "
+"the value in this field. It is preferable that readers be able to support "
+"both centered and co-sited positioning."
+msgstr ""
+"Позиција компоненти боја у релацији са компонентама осветљења. Ово поље је "
+"дизајнирано само за JPEG компресоване податке или некомпресоване YCbCr "
+"податке. Подразумевано за TIFF је 1 (центрирано), али када је Y:Cb:Cr = "
+"4:2:2 препоручљиво је у овом стандарду да 2 (co-sited) буде коришћено за "
+"запис података, како би се побољшао квалитет слике када се гледа на ТВ "
+"системима. Када ово поље не постоји, читалац ће користити подразумевано за "
+"TIFF. У случају када је Y:Cb:Cr = 4:2:0, препоручен је подразумевано за TIFF "
+"(центрирано). Ако читач нема подршку за обе врсте <YCbCrPositioning>, "
+"требало би да прати подразумевано за TIFF без обзира на вредност у овом "
+"пољу. Препоручљиво је да читачи буту способни и за центрирано и за co-sited "
+"позиционирање."
+
+#: libexif/exif-tag.c:414
+msgid "Reference Black/White"
+msgstr "Референтни ниво црно/беле"
+
+#: libexif/exif-tag.c:415
+msgid ""
+"The reference black point value and reference white point value. No defaults "
+"are given in TIFF, but the values below are given as defaults here. The "
+"color space is declared in a color space information tag, with the default "
+"being the value that gives the optimal image characteristics "
+"Interoperability these conditions."
+msgstr ""
+"Референтна вредност црнила и референтна вредност белила. За TIFF се ништа не "
+"подразумева, али следеће вредности су дате као подразумеване. Палета боја је "
+"декларисана у информационој ознаци за палету боја, а подразумеване вредности "
+"су оне које дају оптималне карактеристике слике."
+
+#: libexif/exif-tag.c:423
+msgid "XML Packet"
+msgstr "XML скуп"
+
+#: libexif/exif-tag.c:423
+msgid "XMP Metadata"
+msgstr "XMP метаподаци"
+
+#: libexif/exif-tag.c:438 libexif/exif-tag.c:784
+msgid "CFA Pattern"
+msgstr "CFA шаблон"
+
+#: libexif/exif-tag.c:439 libexif/exif-tag.c:785
+msgid ""
+"Indicates the color filter array (CFA) geometric pattern of the image sensor "
+"when a one-chip color area sensor is used. It does not apply to all sensing "
+"methods."
+msgstr ""
+"Назначава геометријски шаблон низа филтера боја (CFA) сензора слике када се "
+"користи сензор опсега боја на једном чипу. Нема утицаја на све методе "
+"сензора."
+
+#: libexif/exif-tag.c:443
+msgid "Battery Level"
+msgstr "Стање батерије"
+
+#: libexif/exif-tag.c:444
+msgid "Copyright"
+msgstr "Copyright"
+
+#: libexif/exif-tag.c:445
+msgid ""
+"Copyright information. In this standard the tag is used to indicate both the "
+"photographer and editor copyrights. It is the copyright notice of the person "
+"or organization claiming rights to the image. The Interoperability copyright "
+"statement including date and rights should be written in this field; e.g., "
+"\"Copyright, John Smith, 19xx. All rights reserved.\". In this standard the "
+"field records both the photographer and editor copyrights, with each "
+"recorded in a separate part of the statement. When there is a clear "
+"distinction between the photographer and editor copyrights, these are to be "
+"written in the order of photographer followed by editor copyright, separated "
+"by NULL (in this case, since the statement also ends with a NULL, there are "
+"two NULL codes) (see example 1). When only the photographer is given, it is "
+"terminated by one NULL code (see example 2). When only the editor copyright "
+"is given, the photographer copyright part consists of one space followed by "
+"a terminating NULL code, then the editor copyright is given (see example 3). "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+"Информације о ауторским правима. У овом стандарду, ознака се користи да "
+"назначи ауторска права фотографа и уређивача. Ради се о обавештењу о особи "
+"или организацији која држи ауторска права. Интероперабилни изказ ауторских "
+"права са датумом и правима би требало да буде написан у овом пољу; нпр. "
+"„Ауторска права, Пера Перић, 20xx год. Сва права задржана.“ У овом "
+"стандарду, поље такође назначава ауторска права и фотографа и уређивача. "
+"Када се те две особе и њихова ауторска права разликују, најпре се наводи "
+"фотограф, па уређивач, раздвојени NULL карактером (у овом случају, обзиром "
+"да се поље завршава тим карактером, биће их два) (погледајте пример 1). Када "
+"се наводи само фотограф, завршава се NULL карактером (погледајте пример 2). "
+"Када се наводи само уређивач, онда се део намењен за фотографа састоји од "
+"белине иза које се налази NULL карактер, па затим иде део о ауторским "
+"правима уређивача (погледајте пример 3). Када је поље празно, сматра се да "
+"ауторска права нису позната."
+
+#: libexif/exif-tag.c:467
+msgid "Exposure time, given in seconds (sec)."
+msgstr "Време осветљења у секундама (sec)."
+
+#: libexif/exif-tag.c:469 libexif/pentax/mnote-pentax-tag.c:79
+msgid "F-Number"
+msgstr ""
+
+#: libexif/exif-tag.c:470
+msgid "The F number."
+msgstr "F број."
+
+#: libexif/exif-tag.c:475
+msgid "Image Resources Block"
+msgstr "Блок ресурса слике"
+
+#: libexif/exif-tag.c:477
+msgid ""
+"A pointer to the Exif IFD. Interoperability, Exif IFD has the same structure "
+"as that of the IFD specified in TIFF. ordinarily, however, it does not "
+"contain image data as in the case of TIFF."
+msgstr ""
+"Показивач на Exif IFD. Интеропеабилности ради, Exif IFD имају исту структуру "
+"као код IFD-а наведеног у TIFF-у, али не садржи податке слике  као у случају "
+"TIFF-а."
+
+#: libexif/exif-tag.c:485
+msgid "Exposure Program"
+msgstr ""
+
+#: libexif/exif-tag.c:486
+msgid ""
+"The class of the program used by the camera to set exposure when the picture "
+"is taken."
+msgstr "Програмска класа коју апарат користи да подеси осветљење када слика."
+
+#: libexif/exif-tag.c:490
+msgid "Spectral Sensitivity"
+msgstr "Спектрална осетљивост"
+
+#: libexif/exif-tag.c:491
+msgid ""
+"Indicates the spectral sensitivity of each channel of the camera used. The "
+"tag value is an ASCII string compatible with the standard developed by the "
+"ASTM Technical Committee."
+msgstr ""
+"Означава спектралну осетљивост сваког канала који је апарат користио. "
+"Вредност етикете је ASCII стринг које је у складу са стандардном који је "
+"развио ASTM технчки комитет."
+
+#: libexif/exif-tag.c:496
+msgid "GPS Info IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:497
+msgid ""
+"A pointer to the GPS Info IFD. The Interoperability structure of the GPS "
+"Info IFD, like that of Exif IFD, has no image data."
+msgstr ""
+"Показивач на GPS Info IFD. Интероперабилна структура GPS Info IFD-а као код "
+"Exif IFD али не садржи податке слике."
+
+#: libexif/exif-tag.c:503
+msgid "ISO Speed Ratings"
+msgstr "Стопа ISO брзине"
+
+#: libexif/exif-tag.c:504
+msgid ""
+"Indicates the ISO Speed and ISO Latitude of the camera or input device as "
+"specified in ISO 12232."
+msgstr ""
+"Означава ISO брзину и ISO обим апарата или улазног уређаја као што је "
+"прецизирано у ISO 12232."
+
+#: libexif/exif-tag.c:507
+msgid "Opto-Electronic Conversion Function"
+msgstr ""
+
+#: libexif/exif-tag.c:508
+msgid ""
+"Indicates the Opto-Electronic Conversion Function (OECF) specified in ISO "
+"14524. <OECF> is the relationship between the camera optical input and the "
+"image values."
+msgstr ""
+
+#: libexif/exif-tag.c:513
+msgid "Time Zone Offset"
+msgstr ""
+
+#: libexif/exif-tag.c:514
+msgid "Encodes time zone of camera clock relative to GMT."
+msgstr ""
+
+#: libexif/exif-tag.c:515
+msgid "Exif Version"
+msgstr "Exif верзија"
+
+#: libexif/exif-tag.c:516
+msgid ""
+"The version of this standard supported. Nonexistence of this field is taken "
+"to mean nonconformance to the standard."
+msgstr ""
+"Верзија овог стандарда је подржана. Непостојање овог поља је одступање од "
+"прилагођености овом стандарду."
+
+#: libexif/exif-tag.c:520
+#, fuzzy
+msgid "Date and Time (Original)"
+msgstr "Датум и време (првобитно)"
+
+#: libexif/exif-tag.c:521
+msgid ""
+"The date and time when the original image data was generated. For a digital "
+"still camera the date and time the picture was taken are recorded."
+msgstr ""
+"Датум и време прављења првобитне фотографије. За дигиталне фото-апарате "
+"памте се датум и време сликања."
+
+#: libexif/exif-tag.c:526
+#, fuzzy
+msgid "Date and Time (Digitized)"
+msgstr "Дазум и време (дигитилизовано)"
+
+#: libexif/exif-tag.c:527
+msgid "The date and time when the image was stored as digital data."
+msgstr ""
+
+#: libexif/exif-tag.c:530
+msgid "Components Configuration"
+msgstr ""
+
+#: libexif/exif-tag.c:531
+msgid ""
+"Information specific to compressed data. The channels of each component are "
+"arranged in order from the 1st component to the 4th. For uncompressed data "
+"the data arrangement is given in the <PhotometricInterpretation> tag. "
+"However, since <PhotometricInterpretation> can only express the order of Y, "
+"Cb and Cr, this tag is provided for cases when compressed data uses "
+"components other than Y, Cb, and Cr and to enable support of other sequences."
+msgstr ""
+"Информације специфичне за компресоване податке. Канали сваке компоненте су "
+"уређени од прве компоненте до четврте. За некомпресоване податке, уређивање "
+"је дато у ознаци <PhotometricInterpretation>. У сваком случају, обзиром да "
+"<PhotometricInterpretation> може једнино да изрази редослед Y, Cb и Cr, ова "
+"ознака је обезбеђена када компресовани подаци користе компоненте другације "
+"од Y, Cb, и Cr и да би се обезбедила подршка за друге секвенце."
+
+#: libexif/exif-tag.c:541
+msgid "Compressed Bits per Pixel"
+msgstr "Сажети бити по пикселу"
+
+#: libexif/exif-tag.c:542
+msgid ""
+"Information specific to compressed data. The compression mode used for a "
+"compressed image is indicated in unit bits per pixel."
+msgstr ""
+"Информације везане за сажете податке. Мод за сажимање који се користи за "
+"сажимање слика се мери у јединици битови по пикселу."
+
+#: libexif/exif-tag.c:546 libexif/olympus/mnote-olympus-tag.c:123
+msgid "Shutter Speed"
+msgstr ""
+
+#: libexif/exif-tag.c:547
+msgid ""
+"Shutter speed. The unit is the APEX (Additive System of Photographic "
+"Exposure) setting."
+msgstr ""
+"Брзина затварача. Јединица је у  APEX (Additive System of Photographic "
+"Exposure) подешавању."
+
+#: libexif/exif-tag.c:551
+msgid "The lens aperture. The unit is the APEX value."
+msgstr "Отвор сочива. Јединица је у APEX вредности."
+
+#: libexif/exif-tag.c:553
+msgid "Brightness"
+msgstr "Светлина"
+
+#: libexif/exif-tag.c:554
+msgid ""
+"The value of brightness. The unit is the APEX value. Ordinarily it is given "
+"in the range of -99.99 to 99.99."
+msgstr ""
+"Вредност светлине. Јединица је вредност APEX-а. Обично је у опсегу -99.99 to "
+"99.99."
+
+#: libexif/exif-tag.c:558
+msgid "Exposure Bias"
+msgstr "Нагиб осветљења"
+
+#: libexif/exif-tag.c:559
+msgid ""
+"The exposure bias. The units is the APEX value. Ordinarily it is given in "
+"the range of -99.99 to 99.99."
+msgstr ""
+"Претпоставка осветљења. Јединица је вредност APEX-а. Обично је у опсегу -"
+"99.99 to 99.99."
+
+#: libexif/exif-tag.c:562
+msgid "Maximum Aperture Value"
+msgstr ""
+
+#: libexif/exif-tag.c:563
+msgid ""
+"The smallest F number of the lens. The unit is the APEX value. Ordinarily it "
+"is given in the range of 00.00 to 99.99, but it is not limited to this range."
+msgstr ""
+"Најмањи број F сочива. Јединица је вредност APEX-а. Обично је у опсегу 00.00 "
+"to 99.99, али није ограничена у овом опсегу."
+
+#: libexif/exif-tag.c:568
+msgid "Subject Distance"
+msgstr "Удаљеност субјекта"
+
+#: libexif/exif-tag.c:569
+msgid "The distance to the subject, given in meters."
+msgstr "Удаљеност субјекта у метрима."
+
+#: libexif/exif-tag.c:572
+msgid "The metering mode."
+msgstr "Мод за мерење."
+
+#: libexif/exif-tag.c:574
+msgid "Light Source"
+msgstr "Извор светла"
+
+#: libexif/exif-tag.c:575
+msgid "The kind of light source."
+msgstr "Врста извора"
+
+#: libexif/exif-tag.c:578
+msgid ""
+"This tag is recorded when an image is taken using a strobe light (flash)."
+msgstr ""
+"Ова етикета се попуни када се фотографише уз помоћ електронског блица "
+"(строба)."
+
+#: libexif/exif-tag.c:582
+msgid ""
+"The actual focal length of the lens, in mm. Conversion is not made to the "
+"focal length of a 35 mm film camera."
+msgstr ""
+"Стварна жижна даљина сочива у mm. Нема претварања за жижну даљину 35 mm "
+"филмске камере."
+
+#: libexif/exif-tag.c:585
+msgid "Subject Area"
+msgstr "Област субјекта"
+
+#: libexif/exif-tag.c:586
+msgid ""
+"This tag indicates the location and area of the main subject in the overall "
+"scene."
+msgstr ""
+"Ова етикета означава положај и место главног субјекта на свеобухватној слици."
+
+#: libexif/exif-tag.c:590
+msgid "TIFF/EP Standard ID"
+msgstr "TIFF/EP стандардни ID"
+
+#: libexif/exif-tag.c:591
+msgid "Maker Note"
+msgstr "Белешка аутора"
+
+#: libexif/exif-tag.c:592
+msgid ""
+"A tag for manufacturers of Exif writers to record any desired information. "
+"The contents are up to the manufacturer."
+msgstr ""
+"Етикета за призвођача Exif у којој смешта жељене информације. Садржај зависи "
+"од произвођача."
+
+#: libexif/exif-tag.c:595
+msgid "User Comment"
+msgstr "Белешка корисника"
+
+#: libexif/exif-tag.c:596
+msgid ""
+"A tag for Exif users to write keywords or comments on the image besides "
+"those in <ImageDescription>, and without the character code limitations of "
+"the <ImageDescription> tag. The character code used in the <UserComment> tag "
+"is identified based on an ID code in a fixed 8-byte area at the start of the "
+"tag data area. The unused portion of the area is padded with NULL (\"00.h"
+"\"). ID codes are assigned by means of registration. The designation method "
+"and references for each character code are defined in the specification. The "
+"value of CountN is determined based on the 8 bytes in the character code "
+"area and the number of bytes in the user comment part. Since the TYPE is not "
+"ASCII, NULL termination is not necessary. The ID code for the <UserComment> "
+"area may be a Defined code such as JIS or ASCII, or may be Undefined. The "
+"Undefined name is UndefinedText, and the ID code is filled with 8 bytes of "
+"all \"NULL\" (\"00.H\"). An Exif reader that reads the <UserComment> tag "
+"must have a function for determining the ID code. This function is not "
+"required in Exif readers that do not use the <UserComment> tag. When a "
+"<UserComment> area is set aside, it is recommended that the ID code be ASCII "
+"and that the following user comment part be filled with blank characters [20."
+"H]."
+msgstr ""
+
+#: libexif/exif-tag.c:619
+msgid "Sub-second Time"
+msgstr ""
+
+#: libexif/exif-tag.c:620
+msgid "A tag used to record fractions of seconds for the <DateTime> tag."
+msgstr "Етикета која памти делиће секунде за етикету <DateTime>."
+
+#: libexif/exif-tag.c:624
+#, fuzzy
+msgid "Sub-second Time (Original)"
+msgstr "Датум и време (првобитно)"
+
+#: libexif/exif-tag.c:625
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeOriginal> tag."
+msgstr "Етикета која памти делиће секунде за етикету <DateTimeOriginal>."
+
+#: libexif/exif-tag.c:629
+#, fuzzy
+msgid "Sub-second Time (Digitized)"
+msgstr "Дазум и време (дигитилизовано)"
+
+#: libexif/exif-tag.c:630
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeDigitized> tag."
+msgstr "Етикета која памти делиће секунде за етикету <DateTimeDigitized>."
+
+#: libexif/exif-tag.c:634
+msgid "XP Title"
+msgstr "XP наслов"
+
+#: libexif/exif-tag.c:635
+msgid "A character string giving the title of the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:639
+msgid "XP Comment"
+msgstr "XP примедба"
+
+#: libexif/exif-tag.c:640
+msgid ""
+"A character string containing a comment about the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:644
+msgid "XP Author"
+msgstr "XP аутор"
+
+#: libexif/exif-tag.c:645
+msgid ""
+"A character string containing the name of the image creator, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:649
+msgid "XP Keywords"
+msgstr "XP кључне речи"
+
+#: libexif/exif-tag.c:650
+msgid ""
+"A character string containing key words describing the image, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:654
+msgid "XP Subject"
+msgstr "XP субјекат"
+
+#: libexif/exif-tag.c:655
+msgid "A character string giving the image subject, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:659
+msgid "The FlashPix format version supported by a FPXR file."
+msgstr "Верзија FlashPix формата подржана од FPXR фајла."
+
+#: libexif/exif-tag.c:661 libexif/pentax/mnote-pentax-tag.c:102
+msgid "Color Space"
+msgstr "Палета боја"
+
+#: libexif/exif-tag.c:662
+msgid ""
+"The color space information tag is always recorded as the color space "
+"specifier. Normally sRGB (=1) is used to define the color space based on the "
+"PC monitor conditions and environment. If a color space other than sRGB is "
+"used, Uncalibrated (=FFFF.H) is set. Image data recorded as Uncalibrated can "
+"be treated as sRGB when it is converted to FlashPix."
+msgstr ""
+"Ознака информације палете боја је увек сачувана као наводник палете боја. "
+"Нормално се sRGB (=1) користи да дефинише палету боја засновану на стању и "
+"окружењу „PC“ рачунара. Ако се користи палета боја другачија од sRGB, "
+"поставља се Uncalibrated (=FFFF.H) - некалибрисан. Подаци слике сачуване као "
+"Uncalibrated могу се третирати као sRGB када се конвертују у FlashPix."
+
+#: libexif/exif-tag.c:670
+msgid "Pixel X Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:671
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid width of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file."
+msgstr ""
+"Информације специфичне за компресоване податке. Када се записује "
+"компресовани фајл, исправна ширина смислене слике мора бити записана у овој "
+"ознаци, без обзира на то да ли постоје поравњавајући подаци или маркер "
+"рестарта. Ова ознака не би требало да се налази у некомпресованом фајлу."
+
+#: libexif/exif-tag.c:677
+msgid "Pixel Y Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:678
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid height of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file. Since data padding is unnecessary in the "
+"vertical direction, the number of lines recorded in this valid image height "
+"tag will in fact be the same as that recorded in the SOF."
+msgstr ""
+
+#: libexif/exif-tag.c:688
+msgid "Related Sound File"
+msgstr ""
+
+#: libexif/exif-tag.c:689
+msgid ""
+"This tag is used to record the name of an audio file related to the image "
+"data. The only relational information recorded here is the Exif audio file "
+"name and extension (an ASCII string consisting of 8 characters + '.' + 3 "
+"characters). The path is not recorded. Stipulations on audio and file naming "
+"conventions are defined in the specification. When using this tag, audio "
+"files must be recorded in conformance to the Exif audio format. Writers are "
+"also allowed to store the data such as Audio within APP2 as FlashPix "
+"extension stream data. The mapping of Exif image files and audio files is "
+"done in any of three ways, [1], [2] and [3]. If multiple files are mapped to "
+"one file as in [2] or [3], the above format is used to record just one audio "
+"file name. If there are multiple audio files, the first recorded file is "
+"given. In the case of [3], for example, for the Exif image file \"DSC00001."
+"JPG\" only  \"SND00001.WAV\" is given as the related Exif audio file. When "
+"there are three Exif audio files \"SND00001.WAV\", \"SND00002.WAV\" and "
+"\"SND00003.WAV\", the Exif image file name for each of them, \"DSC00001.JPG"
+"\", is indicated. By combining multiple relational information, a variety of "
+"playback possibilities can be supported. The method of using relational "
+"information is left to the implementation on the playback side. Since this "
+"information is an ASCII character string, it is terminated by NULL. When "
+"this tag is used to map audio files, the relation of the audio file to image "
+"data must also be indicated on the audio file end."
+msgstr ""
+
+#: libexif/exif-tag.c:719
+msgid "Interoperability IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:720
+msgid ""
+"Interoperability IFD is composed of tags which stores the information to "
+"ensure the Interoperability and pointed by the following tag located in Exif "
+"IFD. The Interoperability structure of Interoperability IFD is the same as "
+"TIFF defined IFD structure but does not contain the image data "
+"characteristically compared with normal TIFF IFD."
+msgstr ""
+
+#: libexif/exif-tag.c:729
+msgid "Flash Energy"
+msgstr "Стање енергије блица"
+
+#: libexif/exif-tag.c:730
+msgid ""
+"Indicates the strobe energy at the time the image is captured, as measured "
+"in Beam Candle Power Seconds (BCPS)."
+msgstr ""
+"Означава вредност строба (блица) када је слика направљена и мери се Beam "
+"Candle Power Seconds (BCPS)."
+
+#: libexif/exif-tag.c:734
+msgid "Spatial Frequency Response"
+msgstr "Просторни одговор учестаности"
+
+#: libexif/exif-tag.c:735
+msgid ""
+"This tag records the camera or input device spatial frequency table and SFR "
+"values in the direction of image width, image height, and diagonal "
+"direction, as specified in ISO 12233."
+msgstr ""
+
+#: libexif/exif-tag.c:741
+#, fuzzy
+msgid "Focal Plane X-Resolution"
+msgstr "Жижна даљина проста  y-резолуција"
+
+#: libexif/exif-tag.c:742
+msgid ""
+"Indicates the number of pixels in the image width (X) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+
+#: libexif/exif-tag.c:746
+#, fuzzy
+msgid "Focal Plane Y-Resolution"
+msgstr "Жижна даљина проста  y-резолуција"
+
+#: libexif/exif-tag.c:747
+msgid ""
+"Indicates the number of pixels in the image height (V) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+
+#: libexif/exif-tag.c:751
+msgid "Focal Plane Resolution Unit"
+msgstr ""
+
+#: libexif/exif-tag.c:752
+msgid ""
+"Indicates the unit for measuring <FocalPlaneXResolution> and "
+"<FocalPlaneYResolution>. This value is the same as the <ResolutionUnit>."
+msgstr ""
+"Означава јединицу мере за <FocalPlaneXResolution> и <FocalPlaneYResolution>. "
+"Ова вредност је иста као код <ResolutionUnit>."
+
+#: libexif/exif-tag.c:757
+msgid "Subject Location"
+msgstr "Положај субјеката"
+
+#: libexif/exif-tag.c:758
+msgid ""
+"Indicates the location of the main subject in the scene. The value of this "
+"tag represents the pixel at the center of the main subject relative to the "
+"left edge, prior to rotation processing as per the <Rotation> tag. The first "
+"value indicates the X column number and the second indicates the Y row "
+"number."
+msgstr ""
+"Означава положај главног субјекта у призору. Вредност етикете представља "
+"пиксел на средини од главног субјекта релативно од леве ивице, пре процеса "
+"окретања у етикети 'Окретање'. Прва вредност означава број X колоне, а "
+"друга   Y"
+
+#: libexif/exif-tag.c:765
+msgid "Exposure Index"
+msgstr ""
+
+#: libexif/exif-tag.c:766
+msgid ""
+"Indicates the exposure index selected on the camera or input device at the "
+"time the image is captured."
+msgstr ""
+"Означава вредност осветљења на апарату или улазном уређају када је усликано."
+
+#: libexif/exif-tag.c:769
+msgid "Sensing Method"
+msgstr ""
+
+#: libexif/exif-tag.c:770
+msgid "Indicates the image sensor type on the camera or input device."
+msgstr "Означава тип сензора на апарату или улазном уређају."
+
+#: libexif/exif-tag.c:773 libexif/fuji/mnote-fuji-tag.c:64
+msgid "File Source"
+msgstr "Извор фајла"
+
+#: libexif/exif-tag.c:774
+msgid ""
+"Indicates the image source. If a DSC recorded the image, the tag value of "
+"this tag always be set to 3, indicating that the image was recorded on a DSC."
+msgstr ""
+"Означава извор фотографије. Ако је DSC усликао фотографију, вредност етикете "
+"мора увек бити 3, означавајући да је фотографија усликана на DSC."
+
+#: libexif/exif-tag.c:778
+msgid "Scene Type"
+msgstr "Врста призора"
+
+#: libexif/exif-tag.c:779
+msgid ""
+"Indicates the type of scene. If a DSC recorded the image, this tag value "
+"must always be set to 1, indicating that the image was directly photographed."
+msgstr ""
+"Означава врсту призора. Ако је DSC усликао фотографију, вредност етикете "
+"мора увек бити 1, означавајући да је фотографија непосредно усликана."
+
+#: libexif/exif-tag.c:789
+msgid "Custom Rendered"
+msgstr "Прилагођено рендеровање"
+
+#: libexif/exif-tag.c:790
+msgid ""
+"This tag indicates the use of special processing on image data, such as "
+"rendering geared to output. When special processing is performed, the reader "
+"is expected to disable or minimize any further processing."
+msgstr ""
+
+#: libexif/exif-tag.c:796
+msgid ""
+"This tag indicates the exposure mode set when the image was shot. In auto-"
+"bracketing mode, the camera shoots a series of frames of the same scene at "
+"different exposure settings."
+msgstr ""
+
+#: libexif/exif-tag.c:801
+msgid "This tag indicates the white balance mode set when the image was shot."
+msgstr "Ова етикета означава вредност мода равнотеже беле када је усликано."
+
+#: libexif/exif-tag.c:805
+msgid "Digital Zoom Ratio"
+msgstr "Однос дигитално увећања"
+
+#: libexif/exif-tag.c:806
+msgid ""
+"This tag indicates the digital zoom ratio when the image was shot. If the "
+"numerator of the recorded value is 0, this indicates that digital zoom was "
+"not used."
+msgstr ""
+"Ова етикета означава вредност дигиталног увећања када је сликано. Вредност 0 "
+"означава да дигитално увећање није коришћено."
+
+#: libexif/exif-tag.c:811
+#, fuzzy
+msgid "Focal Length in 35mm Film"
+msgstr "Жижна даљина на 35mm филму"
+
+#: libexif/exif-tag.c:812
+msgid ""
+"This tag indicates the equivalent focal length assuming a 35mm film camera, "
+"in mm. A value of 0 means the focal length is unknown. Note that this tag "
+"differs from the FocalLength tag."
+msgstr ""
+
+#: libexif/exif-tag.c:818
+msgid "Scene Capture Type"
+msgstr ""
+
+#: libexif/exif-tag.c:819
+msgid ""
+"This tag indicates the type of scene that was shot. It can also be used to "
+"record the mode in which the image was shot. Note that this differs from the "
+"scene type <SceneType> tag."
+msgstr ""
+"Ова етикета означава врсту призора која је усликана. Може се користити да "
+"запамти мод у којем је сликано. Приметите да се разликује од етикете типа "
+"слике <SceneType>."
+
+#: libexif/exif-tag.c:824
+msgid "Gain Control"
+msgstr "Задобиј контролу"
+
+#: libexif/exif-tag.c:825
+msgid "This tag indicates the degree of overall image gain adjustment."
+msgstr ""
+
+#: libexif/exif-tag.c:829
+msgid ""
+"This tag indicates the direction of contrast processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Етикета означава смер обраде контраста који је апарат применио када је "
+"усликао."
+
+#: libexif/exif-tag.c:833
+msgid ""
+"This tag indicates the direction of saturation processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Етикета означава смер обраде засићења који је апарат применио када је "
+"усликао."
+
+#: libexif/exif-tag.c:837
+msgid ""
+"This tag indicates the direction of sharpness processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Етикета означава смер обраде оштрине која је апарат применио када је усликао."
+
+#: libexif/exif-tag.c:841
+msgid "Device Setting Description"
+msgstr ""
+
+#: libexif/exif-tag.c:842
+msgid ""
+"This tag indicates information on the picture-taking conditions of a "
+"particular camera model. The tag is used only to indicate the picture-taking "
+"conditions in the reader."
+msgstr ""
+
+#: libexif/exif-tag.c:848
+msgid "Subject Distance Range"
+msgstr "Опсег удаљености субјекта"
+
+#: libexif/exif-tag.c:849
+msgid "This tag indicates the distance to the subject."
+msgstr "Ова етикета означава удаљеност субјекта."
+
+#: libexif/exif-tag.c:851
+msgid "Image Unique ID"
+msgstr "Јединствени ID слике"
+
+#: libexif/exif-tag.c:852
+msgid ""
+"This tag indicates an identifier assigned uniquely to each image. It is "
+"recorded as an ASCII string equivalent to hexadecimal notation and 128-bit "
+"fixed length."
+msgstr ""
+"Етикета јединствено обележава сваку фотографију. Памти се као ASCII стринг "
+"који је једнак хексадецималној бележењу и сталне је дужине од 128 битова."
+
+#: libexif/exif-tag.c:857
+msgid "Gamma"
+msgstr "Гама"
+
+#: libexif/exif-tag.c:858
+msgid "Indicates the value of coefficient gamma."
+msgstr "Показује вредност коефицијента гаме."
+
+#: libexif/exif-tag.c:860
+msgid "PRINT Image Matching"
+msgstr ""
+
+#: libexif/exif-tag.c:861
+msgid "Related to Epson's PRINT Image Matching technology"
+msgstr ""
+
+#: libexif/exif-tag.c:863
+msgid "Padding"
+msgstr ""
+
+#: libexif/exif-tag.c:864
+msgid ""
+"This tag reserves space that can be reclaimed later when additional metadata "
+"are added. New metadata can be written in place by replacing this tag with a "
+"smaller data element and using the reclaimed space to store the new or "
+"expanded metadata tags."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:62
+msgid "Softest"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:66
+msgid "Hardest"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:67 libexif/fuji/mnote-fuji-entry.c:96
+msgid "Medium soft"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:68 libexif/fuji/mnote-fuji-entry.c:94
+msgid "Medium hard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:69 libexif/fuji/mnote-fuji-entry.c:90
+#: libexif/fuji/mnote-fuji-entry.c:98 libexif/fuji/mnote-fuji-entry.c:182
+msgid "Film simulation mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:79
+msgid "Incandescent"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:85
+msgid "Medium high"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:87
+msgid "Medium low"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:88 libexif/fuji/mnote-fuji-entry.c:97
+msgid "Original"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:124 libexif/pentax/mnote-pentax-entry.c:164
+#: libexif/pentax/mnote-pentax-entry.c:299
+msgid "Program AE"
+msgstr "Програм AE"
+
+#: libexif/fuji/mnote-fuji-entry.c:125
+msgid "Natural photo"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:126
+msgid "Vibration reduction"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:127
+msgid "Sunset"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:128 libexif/pentax/mnote-pentax-entry.c:181
+msgid "Museum"
+msgstr "Музеј"
+
+#: libexif/fuji/mnote-fuji-entry.c:129
+msgid "Party"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:130
+msgid "Flower"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:131 libexif/pentax/mnote-pentax-entry.c:176
+msgid "Text"
+msgstr "Текст"
+
+#: libexif/fuji/mnote-fuji-entry.c:132
+msgid "NP & flash"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:137
+msgid "Aperture priority AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:138
+msgid "Shutter priority AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:146
+msgid "F-Standard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:147
+msgid "F-Chrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:148
+msgid "F-B&W"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:151
+msgid "No blur"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:152
+msgid "Blur warning"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:155
+msgid "Focus good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:156
+msgid "Out of focus"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:159
+msgid "AE good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:160
+msgid "Over exposed"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:164
+msgid "Wide"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:167
+msgid "F0/Standard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:168
+msgid "F1/Studio portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:169
+msgid "F1a/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:170
+msgid "F1b/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:171
+msgid "F1c/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:172
+msgid "F2/Fujichrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:173
+msgid "F3/Studio portrait Ex"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:174
+msgid "F4/Velvia"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:177
+msgid "Auto (100-400%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:179
+msgid "Standard (100%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:180
+msgid "Wide1 (230%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:181
+msgid "Wide2 (400%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:263
+#, c-format
+msgid "%2.2f mm"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:298 libexif/pentax/mnote-pentax-entry.c:399
+#: libexif/pentax/mnote-pentax-entry.c:451
+#, c-format
+msgid "%i bytes unknown data"
+msgstr "%i бајтова непознатих података"
+
+#: libexif/fuji/mnote-fuji-tag.c:36
+msgid "Maker Note Version"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:37
+msgid "This number is unique and based on the date of manufacture."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:41
+msgid "Chromaticity Saturation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:44
+msgid "Flash Firing Strength Compensation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:46
+msgid "Focusing Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:47
+msgid "Focus Point"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:48
+msgid "Slow Synchro Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:49 libexif/pentax/mnote-pentax-tag.c:72
+msgid "Picture Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:50
+msgid "Continuous Taking"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:51
+msgid "Continuous Sequence Number"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:52
+msgid "FinePix Color"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:53
+msgid "Blur Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:54
+msgid "Auto Focus Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:55
+msgid "Auto Exposure Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:56
+msgid "Dynamic Range"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:57
+msgid "Film Simulation Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:58
+msgid "Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:59
+msgid "Development Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:60
+msgid "Minimum Focal Length"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:61
+msgid "Maximum Focal Length"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:62
+msgid "Maximum Aperture at Minimum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:63
+msgid "Maximum Aperture at Maximum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:65
+msgid "Order Number"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:66 libexif/pentax/mnote-pentax-tag.c:98
+msgid "Frame Number"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:49
+#, c-format
+msgid "Invalid format '%s', expected '%s' or '%s'."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:89
+#, fuzzy
+msgid "AF non D lens"
+msgstr "AF не D сочива"
+
+#: libexif/olympus/mnote-olympus-entry.c:91
+#, fuzzy
+msgid "AF-D or AF-S lens"
+msgstr "AF-D или AF-S сочива"
+
+#: libexif/olympus/mnote-olympus-entry.c:92
+#, fuzzy
+msgid "AF-D G lens"
+msgstr "AF-D G сочива"
+
+#: libexif/olympus/mnote-olympus-entry.c:93
+#, fuzzy
+msgid "AF-D VR lens"
+msgstr "AF-D VR сочива"
+
+#: libexif/olympus/mnote-olympus-entry.c:94
+#, fuzzy
+msgid "AF-D G VR lens"
+msgstr "AF-D VR сочива"
+
+#: libexif/olympus/mnote-olympus-entry.c:98
+msgid "Flash unit unknown"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:99
+msgid "Flash is external"
+msgstr "Блиц је спољашњи"
+
+#: libexif/olympus/mnote-olympus-entry.c:100
+#, fuzzy
+msgid "Flash is on camera"
+msgstr "Укључен је блиц на апарату"
+
+#: libexif/olympus/mnote-olympus-entry.c:103
+#, fuzzy
+msgid "VGA basic"
+msgstr "VGA основно"
+
+#: libexif/olympus/mnote-olympus-entry.c:104
+#, fuzzy
+msgid "VGA normal"
+msgstr "VGA нормално"
+
+#: libexif/olympus/mnote-olympus-entry.c:105
+#, fuzzy
+msgid "VGA fine"
+msgstr "VGA одлично"
+
+#: libexif/olympus/mnote-olympus-entry.c:106
+#, fuzzy
+msgid "SXGA basic"
+msgstr "SXGA основно"
+
+#: libexif/olympus/mnote-olympus-entry.c:107
+#, fuzzy
+msgid "SXGA normal"
+msgstr "SXGA нормално"
+
+#: libexif/olympus/mnote-olympus-entry.c:108
+#, fuzzy
+msgid "SXGA fine"
+msgstr "SXGA одлично"
+
+#: libexif/olympus/mnote-olympus-entry.c:109
+#, fuzzy
+msgid "2 Mpixel basic"
+msgstr "2 MPixel основно"
+
+#: libexif/olympus/mnote-olympus-entry.c:110
+#, fuzzy
+msgid "2 Mpixel normal"
+msgstr "2 MPixel нормално"
+
+#: libexif/olympus/mnote-olympus-entry.c:111
+#, fuzzy
+msgid "2 Mpixel fine"
+msgstr "2 MPixel одлично"
+
+#: libexif/olympus/mnote-olympus-entry.c:114
+msgid "Color"
+msgstr "Боја"
+
+#: libexif/olympus/mnote-olympus-entry.c:119
+msgid "Bright+"
+msgstr "Светло+"
+
+#: libexif/olympus/mnote-olympus-entry.c:120
+msgid "Bright-"
+msgstr "Светло-"
+
+#: libexif/olympus/mnote-olympus-entry.c:121
+msgid "Contrast+"
+msgstr "Контраст+"
+
+#: libexif/olympus/mnote-olympus-entry.c:122
+msgid "Contrast-"
+msgstr "Контраст-"
+
+#: libexif/olympus/mnote-olympus-entry.c:125
+msgid "ISO 80"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:126
+msgid "ISO 160"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:127
+msgid "ISO 320"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:128
+#: libexif/olympus/mnote-olympus-entry.c:246
+msgid "ISO 100"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:132
+msgid "Preset"
+msgstr "Преподешено"
+
+#: libexif/olympus/mnote-olympus-entry.c:134
+msgid "Incandescence"
+msgstr "Усијаност"
+
+#: libexif/olympus/mnote-olympus-entry.c:135
+msgid "Fluorescence"
+msgstr "Флуросцентно"
+
+#: libexif/olympus/mnote-olympus-entry.c:137
+msgid "SpeedLight"
+msgstr "Брзина светлости"
+
+#: libexif/olympus/mnote-olympus-entry.c:140
+#, fuzzy
+msgid "No fisheye"
+msgstr "Без рибљег ока"
+
+#: libexif/olympus/mnote-olympus-entry.c:141
+#, fuzzy
+msgid "Fisheye on"
+msgstr "Рибље око укључено"
+
+#: libexif/olympus/mnote-olympus-entry.c:144
+msgid "Normal, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:145
+msgid "Normal, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:146
+msgid "Normal, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:147
+msgid "Normal, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:148
+msgid "Normal, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:149
+msgid "Normal, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:150
+msgid "Normal, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:151
+msgid "Normal, standard"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:152
+msgid "Fine, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:153
+msgid "Fine, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:154
+msgid "Fine, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:155
+msgid "Fine, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:156
+msgid "Fine, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:157
+msgid "Fine, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:158
+msgid "Fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:159
+msgid "Super fine, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:160
+msgid "Super fine, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:161
+msgid "Super fine, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:162
+msgid "Super fine, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:163
+msgid "Super fine, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:164
+msgid "Super fine, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:165
+msgid "Super fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:166
+msgid "Super fine, high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:169
+#: libexif/olympus/mnote-olympus-entry.c:174
+#: libexif/olympus/mnote-olympus-entry.c:208
+#: libexif/olympus/mnote-olympus-entry.c:217
+#: libexif/olympus/mnote-olympus-entry.c:240
+msgid "No"
+msgstr "Не"
+
+#: libexif/olympus/mnote-olympus-entry.c:180
+msgid "On (Preset)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:185
+msgid "Fill"
+msgstr "Попуни"
+
+#: libexif/olympus/mnote-olympus-entry.c:192
+#, fuzzy
+msgid "Internal + external"
+msgstr "Блиц је спољашњи"
+
+#: libexif/olympus/mnote-olympus-entry.c:221
+msgid "Interlaced"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:222
+msgid "Progressive"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:228
+#: libexif/pentax/mnote-pentax-entry.c:85
+#: libexif/pentax/mnote-pentax-entry.c:139
+msgid "Best"
+msgstr "Најбоље"
+
+#: libexif/olympus/mnote-olympus-entry.c:229
+#, fuzzy
+msgid "Adjust exposure"
+msgstr "Аутоматско осветљење"
+
+#: libexif/olympus/mnote-olympus-entry.c:232
+#, fuzzy
+msgid "Spot focus"
+msgstr "Пан жижа"
+
+#: libexif/olympus/mnote-olympus-entry.c:233
+#, fuzzy
+msgid "Normal focus"
+msgstr "Нормални поступак"
+
+#: libexif/olympus/mnote-olympus-entry.c:236
+msgid "Record while down"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:237
+msgid "Press start, press stop"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:245
+msgid "ISO 50"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:247
+msgid "ISO 200"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:248
+msgid "ISO 400"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:252
+#: libexif/pentax/mnote-pentax-entry.c:168
+msgid "Sport"
+msgstr "Спорт"
+
+#: libexif/olympus/mnote-olympus-entry.c:253
+msgid "TV"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:255
+msgid "User 1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:256
+msgid "User 2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:257
+msgid "Lamp"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:260
+msgid "5 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:261
+msgid "10 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:262
+msgid "15 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:263
+msgid "20 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:375
+#, fuzzy, c-format
+msgid "Red Correction %f, blue Correction %f"
+msgstr "Исправка црвене %f, исправка плаве %f"
+
+#: libexif/olympus/mnote-olympus-entry.c:383
+#, c-format
+msgid "%2.2f meters"
+msgstr "%2.2f метара"
+
+#: libexif/olympus/mnote-olympus-entry.c:385
+msgid "No manual focus selection"
+msgstr "Није изабрано ручно подешавање жиже"
+
+#: libexif/olympus/mnote-olympus-entry.c:411
+#, fuzzy
+msgid "AF position: center"
+msgstr "AF положај: средиште"
+
+#: libexif/olympus/mnote-olympus-entry.c:412
+#, fuzzy
+msgid "AF position: top"
+msgstr "AF положај: горе"
+
+#: libexif/olympus/mnote-olympus-entry.c:413
+#, fuzzy
+msgid "AF position: bottom"
+msgstr "AF положај: доле"
+
+#: libexif/olympus/mnote-olympus-entry.c:414
+#, fuzzy
+msgid "AF position: left"
+msgstr "AF положај: лево"
+
+#: libexif/olympus/mnote-olympus-entry.c:415
+#, fuzzy
+msgid "AF position: right"
+msgstr "AF положај: десно"
+
+#: libexif/olympus/mnote-olympus-entry.c:416
+#, fuzzy
+msgid "AF position: upper-left"
+msgstr "AF положај: горе лево"
+
+#: libexif/olympus/mnote-olympus-entry.c:417
+#, fuzzy
+msgid "AF position: upper-right"
+msgstr "AF положај: горе десно"
+
+#: libexif/olympus/mnote-olympus-entry.c:418
+#, fuzzy
+msgid "AF position: lower-left"
+msgstr "AF положај: доње лево"
+
+#: libexif/olympus/mnote-olympus-entry.c:419
+#, fuzzy
+msgid "AF position: lower-right"
+msgstr "AF положај: Доње десно"
+
+#: libexif/olympus/mnote-olympus-entry.c:420
+#, fuzzy
+msgid "AF position: far left"
+msgstr "AF положај: Скроз лево"
+
+#: libexif/olympus/mnote-olympus-entry.c:421
+#, fuzzy
+msgid "AF position: far right"
+msgstr "AF положај: Скроз десно"
+
+#: libexif/olympus/mnote-olympus-entry.c:422
+#, fuzzy
+msgid "Unknown AF position"
+msgstr "Непознат положај AF"
+
+#: libexif/olympus/mnote-olympus-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:503
+#, c-format
+msgid "Internal error (unknown value %hi)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:441
+#: libexif/olympus/mnote-olympus-entry.c:511
+#, c-format
+msgid "Unknown value %hi"
+msgstr "Непозната вредност %hi"
+
+#: libexif/olympus/mnote-olympus-entry.c:536
+#: libexif/olympus/mnote-olympus-entry.c:556
+#, c-format
+msgid "Unknown %hu"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:553
+msgid "2 sec."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:592
+#, fuzzy
+msgid "Fast"
+msgstr "брзо"
+
+#: libexif/olympus/mnote-olympus-entry.c:696
+msgid "Automatic"
+msgstr "Аутоматско"
+
+#: libexif/olympus/mnote-olympus-entry.c:726
+#, c-format
+msgid "Manual: %liK"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:729
+#, fuzzy
+msgid "Manual: unknown"
+msgstr "Ручно: непознато"
+
+#: libexif/olympus/mnote-olympus-entry.c:735
+msgid "One-touch"
+msgstr "Један додир"
+
+#: libexif/olympus/mnote-olympus-entry.c:791
+#: libexif/olympus/mnote-olympus-entry.c:801
+msgid "Infinite"
+msgstr "бесконачно"
+
+#: libexif/olympus/mnote-olympus-entry.c:809
+#, c-format
+msgid "%i bytes unknown data: "
+msgstr "%i бајтова непознатих података: "
+
+#: libexif/olympus/mnote-olympus-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:53
+msgid "ISO Setting"
+msgstr "Подешавање ISO"
+
+#: libexif/olympus/mnote-olympus-tag.c:39
+msgid "Color Mode (?)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:42
+msgid "Image Sharpening"
+msgstr "Изоштравање слике"
+
+#: libexif/olympus/mnote-olympus-tag.c:44
+msgid "Flash Setting"
+msgstr "Подешавање блица"
+
+#: libexif/olympus/mnote-olympus-tag.c:46
+msgid "White Balance Fine Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:47
+msgid "White Balance RB"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:49
+msgid "ISO Selection"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Preview Image IFD"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Offset of the preview image directory (IFD) inside the file."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:51
+msgid "Exposurediff ?"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:54
+msgid "Image Boundary"
+msgstr "Границе слике"
+
+#: libexif/olympus/mnote-olympus-tag.c:56
+msgid "Flash Exposure Bracket Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:57
+msgid "Exposure Bracket Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:58
+#: libexif/olympus/mnote-olympus-tag.c:96
+msgid "Image Adjustment"
+msgstr "Подешавање слике"
+
+#: libexif/olympus/mnote-olympus-tag.c:59
+msgid "Tone Compensation"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:60
+msgid "Adapter"
+msgstr "Исправљач"
+
+#: libexif/olympus/mnote-olympus-tag.c:62
+msgid "Lens"
+msgstr "Сочива"
+
+#: libexif/olympus/mnote-olympus-tag.c:63
+#: libexif/olympus/mnote-olympus-tag.c:135
+#: libexif/olympus/mnote-olympus-tag.c:185
+msgid "Manual Focus Distance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:65
+msgid "Flash Used"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:66
+msgid "AF Focus Position"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:67
+msgid "Bracketing"
+msgstr "Подупирање"
+
+#: libexif/olympus/mnote-olympus-tag.c:69
+msgid "Lens F Stops"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:70
+msgid "Contrast Curve"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:71
+#: libexif/olympus/mnote-olympus-tag.c:95
+#: libexif/pentax/mnote-pentax-tag.c:134
+msgid "Color Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:72
+msgid "Light Type"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:74
+msgid "Hue Adjustment"
+msgstr "Подешањавање нијансе"
+
+#: libexif/olympus/mnote-olympus-tag.c:76
+#: libexif/olympus/mnote-olympus-tag.c:163
+#: libexif/pentax/mnote-pentax-tag.c:108
+msgid "Noise Reduction"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:79
+msgid "Sensor Pixel Size"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+#, fuzzy
+msgid "Image Data Size"
+msgstr "Величина слике"
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Size of compressed image data in bytes."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:84
+msgid "Total Number of Pictures Taken"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:86
+msgid "Optimize Image"
+msgstr "Оптимизовати слику"
+
+#: libexif/olympus/mnote-olympus-tag.c:88
+msgid "Vari Program"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:89
+msgid "Capture Editor Data"
+msgstr "Capture Editor подаци"
+
+#: libexif/olympus/mnote-olympus-tag.c:90
+msgid "Capture Editor Version"
+msgstr "Capture Editor верзија"
+
+#: libexif/olympus/mnote-olympus-tag.c:97
+#: libexif/olympus/mnote-olympus-tag.c:183
+msgid "CCD Sensitivity"
+msgstr "CCD осетљивост"
+
+#: libexif/olympus/mnote-olympus-tag.c:99
+msgid "Focus"
+msgstr "Жижа"
+
+#: libexif/olympus/mnote-olympus-tag.c:102
+msgid "Converter"
+msgstr "Претварач"
+
+#: libexif/olympus/mnote-olympus-tag.c:105
+msgid "Thumbnail Image"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:106
+msgid "Speed/Sequence/Panorama Direction"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:109
+#, fuzzy
+msgid "Black & White Mode"
+msgstr "Црно - бело"
+
+#: libexif/olympus/mnote-olympus-tag.c:111
+msgid "Focal Plane Diagonal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:112
+msgid "Lens Distortion Parameters"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:114
+msgid "Info"
+msgstr "Информације"
+
+#: libexif/olympus/mnote-olympus-tag.c:115
+msgid "Camera ID"
+msgstr "ID фото-апарата"
+
+#: libexif/olympus/mnote-olympus-tag.c:116
+msgid "Precapture Frames"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:117
+msgid "White Board"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:118
+msgid "One Touch White Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:119
+msgid "White Balance Bracket"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:120
+#: libexif/pentax/mnote-pentax-tag.c:123
+msgid "White Balance Bias"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:121
+msgid "Data Dump"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:124
+msgid "ISO Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:125
+msgid "Aperture Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:126
+msgid "Brightness Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:128
+msgid "Flash Device"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:130
+msgid "Sensor Temperature"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:131
+msgid "Lens Temperature"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:132
+msgid "Light Condition"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:136
+msgid "Zoom Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:137
+msgid "Focus Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:138
+msgid "Sharpness Setting"
+msgstr "Подешавање оштрине"
+
+#: libexif/olympus/mnote-olympus-tag.c:139
+msgid "Flash Charge Level"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:140
+msgid "Color Matrix"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:141
+msgid "Black Level"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:142
+msgid "White Balance Setting"
+msgstr "Подешавање равнотеже беле"
+
+#: libexif/olympus/mnote-olympus-tag.c:143
+#: libexif/pentax/mnote-pentax-tag.c:87
+msgid "Red Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:144
+#: libexif/pentax/mnote-pentax-tag.c:86
+msgid "Blue Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:145
+msgid "Color Matrix Number"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:147
+msgid "Flash Exposure Comp"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:148
+msgid "Internal Flash Table"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:149
+msgid "External Flash G Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:150
+msgid "External Flash Bounce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:151
+msgid "External Flash Zoom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:152
+msgid "External Flash Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:153
+msgid "Contrast Setting"
+msgstr "Подешавање контраста"
+
+#: libexif/olympus/mnote-olympus-tag.c:154
+msgid "Sharpness Factor"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:155
+msgid "Color Control"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:156
+msgid "Olympus Image Width"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:157
+msgid "Olympus Image Height"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:158
+msgid "Scene Detect"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:159
+msgid "Compression Ratio"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:160
+msgid "Preview Image Valid"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:161
+msgid "AF Result"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:162
+msgid "CCD Scan Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:164
+msgid "Infinity Lens Step"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:165
+msgid "Near Lens Step"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:166
+msgid "Light Value Center"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:167
+msgid "Light Value Periphery"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:170
+msgid "Sequential Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:171
+msgid "Wide Range"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:172
+msgid "Color Adjustment Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:174
+msgid "Quick Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:176
+msgid "Voice Memo"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:177
+msgid "Record Shutter Release"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:178
+msgid "Flicker Reduce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:179
+msgid "Optical Zoom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:181
+msgid "Light Source Special"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:182
+msgid "Resaved"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:184
+msgid "Scene Select"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:186
+msgid "Sequence Shot Interval"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:189
+msgid "Epson Image Width"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:190
+msgid "Epson Image Height"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:191
+msgid "Epson Software Version"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:80
+#: libexif/pentax/mnote-pentax-entry.c:134
+msgid "Multi-exposure"
+msgstr "Вишеструко осветљење"
+
+#: libexif/pentax/mnote-pentax-entry.c:83
+#: libexif/pentax/mnote-pentax-entry.c:137
+msgid "Good"
+msgstr "Добро"
+
+#: libexif/pentax/mnote-pentax-entry.c:84
+#: libexif/pentax/mnote-pentax-entry.c:138
+msgid "Better"
+msgstr "Боље"
+
+#: libexif/pentax/mnote-pentax-entry.c:92
+msgid "Flash on"
+msgstr "Укључен блиц"
+
+#: libexif/pentax/mnote-pentax-entry.c:140
+msgid "TIFF"
+msgstr "TIFF"
+
+#: libexif/pentax/mnote-pentax-entry.c:150
+msgid "2560x1920 or 2304x1728"
+msgstr "2560x1920 или 2304x1728"
+
+#: libexif/pentax/mnote-pentax-entry.c:156
+msgid "2304x1728 or 2592x1944"
+msgstr "2304x1728 или 2592x1944"
+
+#: libexif/pentax/mnote-pentax-entry.c:158
+msgid "2816x2212 or 2816x2112"
+msgstr "2816x2212 или 2816x2112"
+
+#: libexif/pentax/mnote-pentax-entry.c:171
+#, fuzzy
+msgid "Surf & snow"
+msgstr "Сурфовање или снег"
+
+#: libexif/pentax/mnote-pentax-entry.c:172
+#, fuzzy
+msgid "Sunset or candlelight"
+msgstr "Залазак сунца или светлост свеће"
+
+#: libexif/pentax/mnote-pentax-entry.c:173
+msgid "Autumn"
+msgstr "Јесен"
+
+#: libexif/pentax/mnote-pentax-entry.c:178
+#, fuzzy
+msgid "Self portrait"
+msgstr "Ауто портрет"
+
+#: libexif/pentax/mnote-pentax-entry.c:179
+msgid "Illustrations"
+msgstr "Цртежи"
+
+#: libexif/pentax/mnote-pentax-entry.c:180
+#, fuzzy
+msgid "Digital filter"
+msgstr "Дигитални филтер"
+
+#: libexif/pentax/mnote-pentax-entry.c:182
+msgid "Food"
+msgstr "Храна"
+
+#: libexif/pentax/mnote-pentax-entry.c:183
+#, fuzzy
+msgid "Green mode"
+msgstr "Зелени мод"
+
+#: libexif/pentax/mnote-pentax-entry.c:184
+#, fuzzy
+msgid "Light pet"
+msgstr "Светао љубимац"
+
+#: libexif/pentax/mnote-pentax-entry.c:185
+#, fuzzy
+msgid "Dark pet"
+msgstr "Таман љубимац"
+
+#: libexif/pentax/mnote-pentax-entry.c:186
+#, fuzzy
+msgid "Medium pet"
+msgstr "Љубимац средње величине"
+
+#: libexif/pentax/mnote-pentax-entry.c:188
+#: libexif/pentax/mnote-pentax-entry.c:296
+msgid "Candlelight"
+msgstr "Светлост свеће"
+
+#: libexif/pentax/mnote-pentax-entry.c:189
+#, fuzzy
+msgid "Natural skin tone"
+msgstr "Природна боја коже"
+
+#: libexif/pentax/mnote-pentax-entry.c:190
+msgid "Synchro sound record"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:191
+msgid "Frame composite"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:194
+#, fuzzy
+msgid "Auto, did not fire"
+msgstr "Аутоматски, није окинуо"
+
+#: libexif/pentax/mnote-pentax-entry.c:196
+#, fuzzy
+msgid "Auto, did not fire, red-eye reduction"
+msgstr "Аутоматски, није окинуо, умањење црвених очију"
+
+#: libexif/pentax/mnote-pentax-entry.c:197
+#, fuzzy
+msgid "Auto, fired"
+msgstr "Аутоматски, окинуо"
+
+#: libexif/pentax/mnote-pentax-entry.c:199
+#, fuzzy
+msgid "Auto, fired, red-eye reduction"
+msgstr "Аутоматски, окинуо, умањење црвених очију"
+
+#: libexif/pentax/mnote-pentax-entry.c:201
+#, fuzzy
+msgid "On, wireless"
+msgstr "Укључено, бежично"
+
+#: libexif/pentax/mnote-pentax-entry.c:202
+#, fuzzy
+msgid "On, soft"
+msgstr "Укључено, мекано"
+
+#: libexif/pentax/mnote-pentax-entry.c:203
+#, fuzzy
+msgid "On, slow-sync"
+msgstr "Укључено, споро усклађивање"
+
+#: libexif/pentax/mnote-pentax-entry.c:204
+#, fuzzy
+msgid "On, slow-sync, red-eye reduction"
+msgstr "Укључено, споро усклађивање, уклањање црвених очију"
+
+#: libexif/pentax/mnote-pentax-entry.c:205
+#, fuzzy
+msgid "On, trailing-curtain sync"
+msgstr "Коришћена друга застава синхронизације"
+
+#: libexif/pentax/mnote-pentax-entry.c:213
+msgid "AF-S"
+msgstr "AF-S"
+
+#: libexif/pentax/mnote-pentax-entry.c:214
+msgid "AF-C"
+msgstr "AF-C"
+
+#: libexif/pentax/mnote-pentax-entry.c:217
+msgid "Upper-left"
+msgstr "Горе - лево"
+
+#: libexif/pentax/mnote-pentax-entry.c:218
+msgid "Top"
+msgstr "Горе"
+
+#: libexif/pentax/mnote-pentax-entry.c:219
+msgid "Upper-right"
+msgstr "Горе - десно"
+
+#: libexif/pentax/mnote-pentax-entry.c:221
+msgid "Mid-left"
+msgstr "Средина - лево"
+
+#: libexif/pentax/mnote-pentax-entry.c:223
+msgid "Mid-right"
+msgstr "Средина - десно"
+
+#: libexif/pentax/mnote-pentax-entry.c:225
+msgid "Lower-left"
+msgstr "Доње - лево"
+
+#: libexif/pentax/mnote-pentax-entry.c:226
+msgid "Bottom"
+msgstr "Доле"
+
+#: libexif/pentax/mnote-pentax-entry.c:227
+msgid "Lower-right"
+msgstr "Доле- десно"
+
+#: libexif/pentax/mnote-pentax-entry.c:228
+#, fuzzy
+msgid "Fixed center"
+msgstr "Непокретна средина"
+
+#: libexif/pentax/mnote-pentax-entry.c:232
+msgid "Multiple"
+msgstr "Вишеструко"
+
+#: libexif/pentax/mnote-pentax-entry.c:234
+msgid "Top-center"
+msgstr "Горе - средина"
+
+#: libexif/pentax/mnote-pentax-entry.c:240
+msgid "Bottom-center"
+msgstr "Доле - средина"
+
+#: libexif/pentax/mnote-pentax-entry.c:257
+#, fuzzy
+msgid "User selected"
+msgstr "Одабрано од стране корисника"
+
+#: libexif/pentax/mnote-pentax-entry.c:282
+msgid "3008x2008 or 3040x2024"
+msgstr "3008x2008 или 3040x2024"
+
+#: libexif/pentax/mnote-pentax-entry.c:293
+#, fuzzy
+msgid "Digital filter?"
+msgstr "Дигитални филтер?"
+
+#: libexif/pentax/mnote-pentax-entry.c:374
+#: libexif/pentax/mnote-pentax-entry.c:383
+#, c-format
+msgid "Internal error (unknown value %i %i)"
+msgstr "Унутрашња грешка (непозната вредност %i %i)"
+
+#: libexif/pentax/mnote-pentax-tag.c:35 libexif/pentax/mnote-pentax-tag.c:63
+msgid "Capture Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:36 libexif/pentax/mnote-pentax-tag.c:70
+#: libexif/pentax/mnote-pentax-tag.c:129
+msgid "Quality Level"
+msgstr "Ниво квалитета"
+
+#: libexif/pentax/mnote-pentax-tag.c:54
+#, fuzzy
+msgid "ISO Speed"
+msgstr "ISO брзина"
+
+#: libexif/pentax/mnote-pentax-tag.c:56
+msgid "Colors"
+msgstr "Боје"
+
+#: libexif/pentax/mnote-pentax-tag.c:59
+msgid "PrintIM Settings"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:60 libexif/pentax/mnote-pentax-tag.c:131
+msgid "Time Zone"
+msgstr "Временска зона"
+
+#: libexif/pentax/mnote-pentax-tag.c:61
+msgid "Daylight Savings"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:64
+msgid "Preview Size"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:65
+msgid "Preview Length"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:66 libexif/pentax/mnote-pentax-tag.c:122
+msgid "Preview Start"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:67
+msgid "Model Identification"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:68
+msgid "Date"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:69
+msgid "Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:75
+msgid "AF Point Selected"
+msgstr "AF тачка је изабрана"
+
+#: libexif/pentax/mnote-pentax-tag.c:76
+msgid "Auto AF Point"
+msgstr "Аутоматска AF тачка"
+
+#: libexif/pentax/mnote-pentax-tag.c:77
+msgid "Focus Position"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:80
+msgid "ISO Number"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:83
+msgid "Auto Bracketing"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:85
+msgid "White Balance Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:93
+msgid "World Time Location"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:94
+msgid "Hometown City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:95
+msgid "Destination City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Hometown DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Home Daylight Savings Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination Daylight Savings Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:99
+msgid "Image Processing"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:100
+msgid "Picture Mode (2)"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:103
+msgid "Image Area Offset"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:104
+msgid "Raw Image Size"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:105
+msgid "Autofocus Points Used"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:107
+msgid "Camera Temperature"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:110
+msgid "Image Tone"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:111
+msgid "Shake Reduction Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:112
+msgid "Black Point"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:114
+msgid "AE Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:115
+msgid "Lens Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:116
+msgid "Flash Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:117
+msgid "Camera Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:118
+msgid "Battery Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:119
+msgid "Hometown City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:120
+msgid "Destination City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Object Distance"
+msgstr "Удаљеност предмета"
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Distance of photographed object in millimeters."
+msgstr "Удаљеност усликаног предмета у милиметрима."
+
+#: libexif/pentax/mnote-pentax-tag.c:126
+msgid "Flash Distance"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:132
+msgid "Bestshot Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:133
+msgid "CCS ISO Sensitivity"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:135
+msgid "Enhancement"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:136
+msgid "Finer"
+msgstr ""
+
+#: test/nls/test-nls.c:20 test/nls/test-nls.c:23 test/nls/test-nls.c:24
+msgid "[DO_NOT_TRANSLATE_THIS_MARKER]"
+msgstr "[DO_NOT_TRANSLATE_THIS_MARKER]"
+
+#~ msgid "On + Red-eye reduction"
+#~ msgstr "Укључено + Исправка црвених очију"
+
+#~ msgid "Center + Right"
+#~ msgstr "У средишту + Десно"
+
+#~ msgid "Left + Right"
+#~ msgstr "Лево + Десно"
+
+#~ msgid "top - left"
+#~ msgstr "горе - лево"
+
+#~ msgid "top - right"
+#~ msgstr "горе - десно"
+
+#~ msgid "bottom - right"
+#~ msgstr "доле - десно"
+
+#~ msgid "bottom - left"
+#~ msgstr "доле - лево"
+
+#~ msgid "Center-Weighted Average"
+#~ msgstr "Просек централне тежине"
+
+#~ msgid "flash"
+#~ msgstr "блиц"
+
+#~ msgid "y-Resolution"
+#~ msgstr "y-резолуција"
+
+#~ msgid "Shutter speed"
+#~ msgstr "Брзина затварача"
+
+#~ msgid "Macro mode"
+#~ msgstr "Макро мод"
+
+#~ msgid "normal"
+#~ msgstr "нормално"
+
+#~ msgid "unknown"
+#~ msgstr "непознато"
+
+#~ msgid "panorama"
+#~ msgstr "панорама"
+
+#~ msgid "left to right"
+#~ msgstr "слева на десно"
+
+#~ msgid "right to left"
+#~ msgstr "сдесна на лево"
+
+#~ msgid "bottom to top"
+#~ msgstr "Одоздо на горе"
+
+#~ msgid "top to bottom"
+#~ msgstr "одозго на доле"
+
+#~ msgid "Noisereduction"
+#~ msgstr "Уклањање шума"
+
+#~ msgid "Night-scene"
+#~ msgstr "Ноћни призор"
+
+#~ msgid "Red-eye Reduction"
+#~ msgstr "Ублажавање црвених очију"
+
+#~ msgid "Night Scene"
+#~ msgstr "Ноћни призор"
+
+#~ msgid "Daywhite Fluorescent"
+#~ msgstr "Дневнобела флуросцентна"
+
+#~ msgid "White Fluorescent"
+#~ msgstr "Бела флуросцентна"
+
+#~ msgid "PictureMode"
+#~ msgstr "Мод слике"
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/stamp-po b/framework/modules/c_LibExifModule/libexif-0.6.20/po/stamp-po
new file mode 100644
index 0000000000000000000000000000000000000000..9788f70238c91894045d22366fa941580826c3c1
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/stamp-po
@@ -0,0 +1 @@
+timestamp
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/sv.gmo b/framework/modules/c_LibExifModule/libexif-0.6.20/po/sv.gmo
new file mode 100644
index 0000000000000000000000000000000000000000..ace57d9493cf41e60221acb3a271e543063ced2c
Binary files /dev/null and b/framework/modules/c_LibExifModule/libexif-0.6.20/po/sv.gmo differ
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/sv.po b/framework/modules/c_LibExifModule/libexif-0.6.20/po/sv.po
new file mode 100644
index 0000000000000000000000000000000000000000..621f610abec31b5a6f86bac24627f455b38d8d53
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/sv.po
@@ -0,0 +1,5669 @@
+# Swedish translation for libexif
+# Copyright (C) 2007, 2009 Free Software Foundation, Inc.
+# This file is distributed under the same license as the libexif package.
+# Daniel Nylander <po@danielnylander.se>, 2007, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: libexif 0.6.19\n"
+"Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-12-15 22:14-0800\n"
+"PO-Revision-Date: 2009-12-15 22:04+0100\n"
+"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
+"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: libexif/canon/mnote-canon-entry.c:40 libexif/fuji/mnote-fuji-entry.c:35
+#: libexif/olympus/mnote-olympus-entry.c:37
+#: libexif/pentax/mnote-pentax-entry.c:39
+#, c-format
+msgid "Invalid format '%s', expected '%s'."
+msgstr "Ogiltigt format \"%s\", förväntade \"%s\"."
+
+#: libexif/canon/mnote-canon-entry.c:52 libexif/fuji/mnote-fuji-entry.c:47
+#: libexif/olympus/mnote-olympus-entry.c:62
+#: libexif/pentax/mnote-pentax-entry.c:51
+#, c-format
+msgid "Invalid number of components (%i, expected %i)."
+msgstr "Ogiltigt antal komponenter (%i, förväntade %i)."
+
+#: libexif/canon/mnote-canon-entry.c:61
+#: libexif/olympus/mnote-olympus-entry.c:72
+#: libexif/pentax/mnote-pentax-entry.c:61
+#, c-format
+msgid "Invalid number of components (%i, expected %i or %i)."
+msgstr "Ogiltigt antal komponenter (%i, förväntade %i eller %i)."
+
+#: libexif/canon/mnote-canon-entry.c:76 libexif/canon/mnote-canon-entry.c:130
+#: libexif/canon/mnote-canon-entry.c:182 libexif/exif-entry.c:796
+#: libexif/olympus/mnote-olympus-entry.c:196
+#: libexif/olympus/mnote-olympus-tag.c:108
+#: libexif/pentax/mnote-pentax-entry.c:174
+#: libexif/pentax/mnote-pentax-entry.c:209
+#: libexif/pentax/mnote-pentax-entry.c:297
+msgid "Macro"
+msgstr "Makro"
+
+#: libexif/canon/mnote-canon-entry.c:77 libexif/canon/mnote-canon-entry.c:79
+#: libexif/canon/mnote-canon-entry.c:157 libexif/canon/mnote-canon-entry.c:160
+#: libexif/canon/mnote-canon-entry.c:163 libexif/exif-entry.c:674
+#: libexif/exif-entry.c:677 libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/exif-entry.c:745 libexif/fuji/mnote-fuji-entry.c:64
+#: libexif/olympus/mnote-olympus-entry.c:118
+#: libexif/olympus/mnote-olympus-entry.c:195
+#: libexif/olympus/mnote-olympus-entry.c:203
+#: libexif/olympus/mnote-olympus-entry.c:213
+#: libexif/olympus/mnote-olympus-entry.c:586
+#: libexif/pentax/mnote-pentax-entry.c:105
+#: libexif/pentax/mnote-pentax-entry.c:110
+#: libexif/pentax/mnote-pentax-entry.c:115
+#: libexif/pentax/mnote-pentax-entry.c:208
+msgid "Normal"
+msgstr "Normal"
+
+#: libexif/canon/mnote-canon-entry.c:78
+msgid "Economy"
+msgstr "Ekonomi"
+
+#: libexif/canon/mnote-canon-entry.c:80
+msgid "Fine"
+msgstr "Fin"
+
+#: libexif/canon/mnote-canon-entry.c:81 libexif/fuji/mnote-fuji-entry.c:178
+#: libexif/pentax/mnote-pentax-entry.c:141
+msgid "RAW"
+msgstr "RÅ"
+
+#: libexif/canon/mnote-canon-entry.c:82
+msgid "Superfine"
+msgstr "Superfin"
+
+#: libexif/canon/mnote-canon-entry.c:83 libexif/canon/mnote-canon-entry.c:301
+#: libexif/canon/mnote-canon-entry.c:304 libexif/canon/mnote-canon-entry.c:312
+#: libexif/canon/mnote-canon-entry.c:345 libexif/canon/mnote-canon-entry.c:357
+#: libexif/canon/mnote-canon-entry.c:370 libexif/canon/mnote-canon-entry.c:372
+#: libexif/canon/mnote-canon-entry.c:574 libexif/canon/mnote-canon-entry.c:671
+#: libexif/fuji/mnote-fuji-entry.c:70 libexif/fuji/mnote-fuji-entry.c:103
+#: libexif/fuji/mnote-fuji-entry.c:107 libexif/fuji/mnote-fuji-entry.c:115
+#: libexif/fuji/mnote-fuji-entry.c:142
+#: libexif/olympus/mnote-olympus-entry.c:178
+#: libexif/olympus/mnote-olympus-entry.c:186
+#: libexif/olympus/mnote-olympus-entry.c:251
+#: libexif/olympus/mnote-olympus-entry.c:530
+#: libexif/olympus/mnote-olympus-entry.c:547
+#: libexif/pentax/mnote-pentax-entry.c:195
+#: libexif/pentax/mnote-pentax-entry.c:260
+msgid "Off"
+msgstr "Av"
+
+#: libexif/canon/mnote-canon-entry.c:84 libexif/canon/mnote-canon-entry.c:167
+#: libexif/canon/mnote-canon-entry.c:180 libexif/canon/mnote-canon-entry.c:328
+#: libexif/canon/mnote-canon-entry.c:400 libexif/fuji/mnote-fuji-entry.c:73
+#: libexif/fuji/mnote-fuji-entry.c:101 libexif/fuji/mnote-fuji-entry.c:111
+#: libexif/fuji/mnote-fuji-entry.c:119
+#: libexif/olympus/mnote-olympus-entry.c:131
+#: libexif/olympus/mnote-olympus-entry.c:183
+#: libexif/olympus/mnote-olympus-entry.c:199
+#: libexif/olympus/mnote-olympus-entry.c:244
+#: libexif/pentax/mnote-pentax-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:88
+#: libexif/pentax/mnote-pentax-entry.c:91
+#: libexif/pentax/mnote-pentax-entry.c:97
+#: libexif/pentax/mnote-pentax-entry.c:131
+#: libexif/pentax/mnote-pentax-entry.c:229
+#: libexif/pentax/mnote-pentax-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:290
+msgid "Auto"
+msgstr "Auto"
+
+#: libexif/canon/mnote-canon-entry.c:85 libexif/canon/mnote-canon-entry.c:302
+#: libexif/canon/mnote-canon-entry.c:347 libexif/canon/mnote-canon-entry.c:361
+#: libexif/canon/mnote-canon-entry.c:371 libexif/fuji/mnote-fuji-entry.c:102
+#: libexif/fuji/mnote-fuji-entry.c:108 libexif/fuji/mnote-fuji-entry.c:116
+#: libexif/fuji/mnote-fuji-entry.c:143
+#: libexif/olympus/mnote-olympus-entry.c:179
+#: libexif/olympus/mnote-olympus-entry.c:533
+#: libexif/olympus/mnote-olympus-entry.c:550
+#: libexif/pentax/mnote-pentax-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:261
+msgid "On"
+msgstr "På"
+
+#: libexif/canon/mnote-canon-entry.c:86 libexif/fuji/mnote-fuji-entry.c:104
+#: libexif/olympus/mnote-olympus-entry.c:184
+#: libexif/pentax/mnote-pentax-entry.c:94
+msgid "Red-eye reduction"
+msgstr "Minskning av röda ögon"
+
+#: libexif/canon/mnote-canon-entry.c:87
+msgid "Slow synchro"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:88
+#, fuzzy
+msgid "Auto, red-eye reduction"
+msgstr "Auto + minskning av röda ögon"
+
+#: libexif/canon/mnote-canon-entry.c:89
+#: libexif/pentax/mnote-pentax-entry.c:200
+#, fuzzy
+msgid "On, red-eye reduction"
+msgstr "På, minskning av röda ögon"
+
+#: libexif/canon/mnote-canon-entry.c:90
+msgid "External flash"
+msgstr "Extern blixt"
+
+#: libexif/canon/mnote-canon-entry.c:91 libexif/canon/mnote-canon-entry.c:101
+#: libexif/canon/mnote-canon-entry.c:294
+msgid "Single"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:92 libexif/canon/mnote-canon-entry.c:102
+#: libexif/canon/mnote-canon-entry.c:295
+msgid "Continuous"
+msgstr "Kontinuerlig"
+
+#: libexif/canon/mnote-canon-entry.c:93
+msgid "Movie"
+msgstr "Film"
+
+#: libexif/canon/mnote-canon-entry.c:94
+msgid "Continuous, speed priority"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:95
+msgid "Continuous, low"
+msgstr "Kontinuerlig, låg"
+
+#: libexif/canon/mnote-canon-entry.c:96
+msgid "Continuous, high"
+msgstr "Kontinuerlig, hög"
+
+#: libexif/canon/mnote-canon-entry.c:97
+msgid "One-shot AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:98
+msgid "AI servo AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:99
+msgid "AI focus AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:100 libexif/canon/mnote-canon-entry.c:103
+msgid "Manual focus"
+msgstr "Manuellt fokus"
+
+#: libexif/canon/mnote-canon-entry.c:104 libexif/canon/mnote-canon-entry.c:132
+#: libexif/canon/mnote-canon-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:212
+msgid "Pan focus"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:105
+msgid "JPEG"
+msgstr "JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:106
+msgid "CRW+THM"
+msgstr "CRW+THM"
+
+#: libexif/canon/mnote-canon-entry.c:107
+msgid "AVI+THM"
+msgstr "AVI+THM"
+
+#: libexif/canon/mnote-canon-entry.c:108
+msgid "TIF"
+msgstr "TIF"
+
+#: libexif/canon/mnote-canon-entry.c:109
+msgid "TIF+JPEG"
+msgstr "TIF+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:110
+msgid "CR2"
+msgstr "CR2"
+
+#: libexif/canon/mnote-canon-entry.c:111
+msgid "CR2+JPEG"
+msgstr "CR2+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:112
+msgid "Large"
+msgstr "Stor"
+
+#: libexif/canon/mnote-canon-entry.c:113
+msgid "Medium"
+msgstr "Medel"
+
+#: libexif/canon/mnote-canon-entry.c:114
+msgid "Small"
+msgstr "Liten"
+
+#: libexif/canon/mnote-canon-entry.c:115
+msgid "Medium 1"
+msgstr "Medium 1"
+
+#: libexif/canon/mnote-canon-entry.c:116
+msgid "Medium 2"
+msgstr "Medium 2"
+
+#: libexif/canon/mnote-canon-entry.c:117
+msgid "Medium 3"
+msgstr "Medium 3"
+
+#: libexif/canon/mnote-canon-entry.c:118
+msgid "Postcard"
+msgstr "Vykort"
+
+#: libexif/canon/mnote-canon-entry.c:119
+msgid "Widescreen"
+msgstr "Bredbild"
+
+#: libexif/canon/mnote-canon-entry.c:120
+msgid "Full auto"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:121 libexif/canon/mnote-canon-entry.c:179
+#: libexif/canon/mnote-canon-entry.c:201 libexif/canon/mnote-canon-entry.c:285
+#: libexif/canon/mnote-canon-entry.c:392 libexif/exif-entry.c:744
+#: libexif/fuji/mnote-fuji-entry.c:112
+#: libexif/olympus/mnote-olympus-entry.c:90
+#: libexif/olympus/mnote-olympus-entry.c:200
+#: libexif/pentax/mnote-pentax-entry.c:79
+#: libexif/pentax/mnote-pentax-entry.c:102
+#: libexif/pentax/mnote-pentax-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:165
+#: libexif/pentax/mnote-pentax-entry.c:211
+#: libexif/pentax/mnote-pentax-entry.c:250
+msgid "Manual"
+msgstr "Manuell"
+
+#: libexif/canon/mnote-canon-entry.c:122 libexif/canon/mnote-canon-entry.c:430
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:755
+#: libexif/fuji/mnote-fuji-entry.c:121 libexif/pentax/mnote-pentax-entry.c:167
+#: libexif/pentax/mnote-pentax-entry.c:301
+msgid "Landscape"
+msgstr "Landskap"
+
+#: libexif/canon/mnote-canon-entry.c:123
+msgid "Fast shutter"
+msgstr "Snabb slutare"
+
+#: libexif/canon/mnote-canon-entry.c:124
+msgid "Slow shutter"
+msgstr "Långsam slutare"
+
+#: libexif/canon/mnote-canon-entry.c:125 libexif/fuji/mnote-fuji-entry.c:123
+#: libexif/olympus/mnote-olympus-entry.c:254
+msgid "Night"
+msgstr "Natt"
+
+#: libexif/canon/mnote-canon-entry.c:126
+msgid "Grayscale"
+msgstr "Gråskala"
+
+#: libexif/canon/mnote-canon-entry.c:127 libexif/canon/mnote-canon-entry.c:308
+#: libexif/pentax/mnote-pentax-entry.c:128
+msgid "Sepia"
+msgstr "Sepia"
+
+#: libexif/canon/mnote-canon-entry.c:128 libexif/canon/mnote-canon-entry.c:429
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:753
+#: libexif/fuji/mnote-fuji-entry.c:120 libexif/pentax/mnote-pentax-entry.c:166
+#: libexif/pentax/mnote-pentax-entry.c:291
+#: libexif/pentax/mnote-pentax-entry.c:294
+#: libexif/pentax/mnote-pentax-entry.c:300
+msgid "Portrait"
+msgstr "Porträtt"
+
+#: libexif/canon/mnote-canon-entry.c:129 libexif/fuji/mnote-fuji-entry.c:122
+msgid "Sports"
+msgstr "Sport"
+
+#: libexif/canon/mnote-canon-entry.c:131 libexif/canon/mnote-canon-entry.c:309
+#: libexif/canon/mnote-canon-entry.c:335 libexif/canon/mnote-canon-entry.c:407
+#: libexif/fuji/mnote-fuji-entry.c:89 libexif/pentax/mnote-pentax-entry.c:127
+msgid "Black & white"
+msgstr "Svart och vit"
+
+#: libexif/canon/mnote-canon-entry.c:133 libexif/canon/mnote-canon-entry.c:305
+msgid "Vivid"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:134 libexif/canon/mnote-canon-entry.c:306
+#: libexif/canon/mnote-canon-entry.c:431
+msgid "Neutral"
+msgstr "Neutral"
+
+#: libexif/canon/mnote-canon-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:93
+msgid "Flash off"
+msgstr "Blixt av"
+
+#: libexif/canon/mnote-canon-entry.c:136
+msgid "Long shutter"
+msgstr "Lång slutare"
+
+#: libexif/canon/mnote-canon-entry.c:137 libexif/canon/mnote-canon-entry.c:188
+#: libexif/olympus/mnote-olympus-entry.c:171
+msgid "Super macro"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:138
+msgid "Foliage"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:139
+msgid "Indoor"
+msgstr "Inomhus"
+
+#: libexif/canon/mnote-canon-entry.c:140 libexif/fuji/mnote-fuji-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:175
+msgid "Fireworks"
+msgstr "Fyrverkeri"
+
+#: libexif/canon/mnote-canon-entry.c:141 libexif/fuji/mnote-fuji-entry.c:133
+msgid "Beach"
+msgstr "Strand"
+
+#: libexif/canon/mnote-canon-entry.c:142 libexif/canon/mnote-canon-entry.c:344
+#: libexif/canon/mnote-canon-entry.c:416 libexif/fuji/mnote-fuji-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:292
+#: libexif/pentax/mnote-pentax-entry.c:298
+msgid "Underwater"
+msgstr "Under vatten"
+
+#: libexif/canon/mnote-canon-entry.c:143 libexif/fuji/mnote-fuji-entry.c:134
+msgid "Snow"
+msgstr "Snö"
+
+#: libexif/canon/mnote-canon-entry.c:144
+msgid "Kids & pets"
+msgstr "Barn och djur"
+
+#: libexif/canon/mnote-canon-entry.c:145
+msgid "Night snapshot"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:146
+msgid "Digital macro"
+msgstr "Digitalt makro"
+
+#: libexif/canon/mnote-canon-entry.c:147
+msgid "My colors"
+msgstr "Mina färger"
+
+#: libexif/canon/mnote-canon-entry.c:148
+msgid "Still image"
+msgstr "Stillbild"
+
+#: libexif/canon/mnote-canon-entry.c:149
+#, fuzzy
+msgid "Color accent"
+msgstr "Färgrymd"
+
+#: libexif/canon/mnote-canon-entry.c:150
+#, fuzzy
+msgid "Color swap"
+msgstr "Färger"
+
+#: libexif/canon/mnote-canon-entry.c:151
+msgid "Aquarium"
+msgstr "Akvarium"
+
+#: libexif/canon/mnote-canon-entry.c:152
+msgid "ISO 3200"
+msgstr "ISO 3200"
+
+#: libexif/canon/mnote-canon-entry.c:153 libexif/canon/mnote-canon-entry.c:348
+#: libexif/canon/mnote-canon-entry.c:365 libexif/canon/mnote-canon-entry.c:417
+#: libexif/olympus/mnote-olympus-entry.c:189
+#: libexif/olympus/mnote-olympus-entry.c:226
+#: libexif/olympus/mnote-olympus-entry.c:451
+#: libexif/pentax/mnote-pentax-entry.c:242
+msgid "None"
+msgstr "Ingen"
+
+#: libexif/canon/mnote-canon-entry.c:154
+msgid "2x"
+msgstr "2x"
+
+#: libexif/canon/mnote-canon-entry.c:155
+msgid "4x"
+msgstr "4x"
+
+#: libexif/canon/mnote-canon-entry.c:156 libexif/exif-entry.c:702
+#: libexif/exif-entry.c:732
+msgid "Other"
+msgstr "Annan"
+
+#: libexif/canon/mnote-canon-entry.c:158 libexif/canon/mnote-canon-entry.c:161
+#: libexif/canon/mnote-canon-entry.c:164 libexif/canon/mnote-canon-entry.c:398
+#: libexif/fuji/mnote-fuji-entry.c:86 libexif/pentax/mnote-pentax-entry.c:112
+#: libexif/pentax/mnote-pentax-entry.c:117
+msgid "High"
+msgstr "Hög"
+
+#: libexif/canon/mnote-canon-entry.c:159 libexif/canon/mnote-canon-entry.c:162
+#: libexif/canon/mnote-canon-entry.c:165 libexif/canon/mnote-canon-entry.c:396
+#: libexif/pentax/mnote-pentax-entry.c:111
+#: libexif/pentax/mnote-pentax-entry.c:116
+msgid "Low"
+msgstr "Låg"
+
+#: libexif/canon/mnote-canon-entry.c:166
+msgid "Auto high"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:168
+msgid "50"
+msgstr "50"
+
+#: libexif/canon/mnote-canon-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:120
+#: libexif/pentax/mnote-pentax-entry.c:122
+msgid "100"
+msgstr "100"
+
+#: libexif/canon/mnote-canon-entry.c:170
+#: libexif/pentax/mnote-pentax-entry.c:121
+#: libexif/pentax/mnote-pentax-entry.c:123
+msgid "200"
+msgstr "200"
+
+#: libexif/canon/mnote-canon-entry.c:171
+msgid "400"
+msgstr "400"
+
+#: libexif/canon/mnote-canon-entry.c:172
+msgid "800"
+msgstr "800"
+
+#: libexif/canon/mnote-canon-entry.c:173
+msgid "Default"
+msgstr "Standard"
+
+#: libexif/canon/mnote-canon-entry.c:174 libexif/exif-entry.c:698
+msgid "Spot"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:175 libexif/exif-entry.c:696
+msgid "Average"
+msgstr "Genomsnitt"
+
+#: libexif/canon/mnote-canon-entry.c:176
+msgid "Evaluative"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:177 libexif/exif-entry.c:701
+msgid "Partial"
+msgstr "Delvis"
+
+#: libexif/canon/mnote-canon-entry.c:178 libexif/exif-entry.c:697
+msgid "Center-weighted average"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:181
+msgid "Not known"
+msgstr "Inte känd"
+
+#: libexif/canon/mnote-canon-entry.c:183
+msgid "Very close"
+msgstr "Mycket nära"
+
+#: libexif/canon/mnote-canon-entry.c:184 libexif/exif-entry.c:797
+msgid "Close"
+msgstr "Nära"
+
+#: libexif/canon/mnote-canon-entry.c:185
+msgid "Middle range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:186
+msgid "Far range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:189
+#: libexif/pentax/mnote-pentax-entry.c:210
+msgid "Infinity"
+msgstr "Oändlighet"
+
+#: libexif/canon/mnote-canon-entry.c:190
+msgid "Manual AF point selection"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:191 libexif/canon/mnote-canon-entry.c:349
+msgid "None (MF)"
+msgstr "Ingen (MF)"
+
+#: libexif/canon/mnote-canon-entry.c:192
+msgid "Auto-selected"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:193 libexif/canon/mnote-canon-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:224
+#: libexif/pentax/mnote-pentax-entry.c:238
+msgid "Right"
+msgstr "Höger"
+
+#: libexif/canon/mnote-canon-entry.c:194 libexif/canon/mnote-canon-entry.c:351
+#: libexif/pentax/mnote-pentax-entry.c:222
+#: libexif/pentax/mnote-pentax-entry.c:237
+msgid "Center"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:195 libexif/canon/mnote-canon-entry.c:353
+#: libexif/pentax/mnote-pentax-entry.c:220
+#: libexif/pentax/mnote-pentax-entry.c:236
+msgid "Left"
+msgstr "Vänster"
+
+#: libexif/canon/mnote-canon-entry.c:196
+msgid "Auto AF point selection"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:197
+msgid "Easy shooting"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:163
+msgid "Program"
+msgstr "Program"
+
+#: libexif/canon/mnote-canon-entry.c:199
+msgid "Tv-priority"
+msgstr "Tv-prioritet"
+
+#: libexif/canon/mnote-canon-entry.c:200
+msgid "Av-priority"
+msgstr "Av-prioritet"
+
+#: libexif/canon/mnote-canon-entry.c:202
+msgid "A-DEP"
+msgstr "A-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:203
+msgid "M-DEP"
+msgstr "M-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:204
+msgid "Canon EF 50mm f/1.8"
+msgstr "Canon EF 50mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:205
+msgid "Canon EF 28mm f/2.8"
+msgstr "Canon EF 28mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:206
+msgid "Sigma UC Zoom 35-135mm f/4-5.6"
+msgstr "Sigma UC Zoom 35-135mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:207
+msgid "Tokina AF193-2 19-35mm f/3.5-4.5"
+msgstr "Tokina AF193-2 19-35mm f/3.5-4.5"
+
+#: libexif/canon/mnote-canon-entry.c:208
+msgid "Canon EF 100-300mm F5.6L"
+msgstr "Canon EF 100-300mm F5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:209
+msgid "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+msgstr "Sigma 50mm f/2.8 EX eller 28mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:210
+msgid "Canon EF 35mm f/2"
+msgstr "Canon EF 35mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:211
+msgid "Canon EF 15mm f/2.8"
+msgstr "Canon EF 15mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:212
+msgid "Canon EF 80-200mm f/2.8L"
+msgstr "Canon EF 80-200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:213
+#, fuzzy
+msgid "Tokina AT-X280AF PRO 28-80mm F2.8 Aspherical"
+msgstr "Tokina AT-X280AF PRO 28-80mm F2.8 ASPHERISK"
+
+#: libexif/canon/mnote-canon-entry.c:214
+msgid "Cosina 100mm f/3.5 Macro AF"
+msgstr "Cosina 100mm f/3.5 Makro AF"
+
+#: libexif/canon/mnote-canon-entry.c:215
+msgid "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+msgstr "Tamron AF asfärisk 28-200mm f/3.8-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:216
+msgid "Canon EF 50mm f/1.8 MkII"
+msgstr "Canon EF 50mm f/1.8 MkII"
+
+#: libexif/canon/mnote-canon-entry.c:217
+msgid "Tamron SP AF 300mm f/2.8 LD IF"
+msgstr "Tamron SP AF 300mm f/2.8 LD IF"
+
+#: libexif/canon/mnote-canon-entry.c:218
+msgid "Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+msgstr "Canon EF 24mm f/2.8 eller Sigma 15mm f/2.8 EX Fisheye"
+
+#: libexif/canon/mnote-canon-entry.c:219
+msgid "Canon EF 75-300mm f/4-5.6"
+msgstr "Canon EF 75-300mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:220
+msgid "Canon EF 28-80mm f/3.5-5.6"
+msgstr "Canon EF 28-80mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:221
+msgid "Canon EF 28-105mm f/4-5.6"
+msgstr "Canon EF 28-105mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:222
+msgid "Canon EF-S 18-55mm f/3.5-5.6"
+msgstr "Canon EF-S 18-55mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:223
+msgid "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+msgstr "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+
+#: libexif/canon/mnote-canon-entry.c:224
+msgid "Canon TS-E 24mm f/3.5L"
+msgstr "Canon TS-E 24mm f/3.5L"
+
+#: libexif/canon/mnote-canon-entry.c:225
+msgid "Canon TS-E 45mm f/2.8"
+msgstr "Canon TS-E 45mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:226
+msgid "Canon TS-E 90mm f/2.8"
+msgstr "Canon TS-E 90mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:227
+msgid "Canon EF 50mm f/1.0L"
+msgstr "Canon EF 50mm f/1.0L"
+
+#: libexif/canon/mnote-canon-entry.c:228
+msgid "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+msgstr "Sigma 17-35mm f2.8-4 EX asfärisk HSM"
+
+#: libexif/canon/mnote-canon-entry.c:229
+msgid "Canon EF 600mm f/4L IS"
+msgstr "Canon EF 600mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:230
+msgid "Canon EF 200mm f/1.8L"
+msgstr "Canon EF 200mm f/1.8L"
+
+#: libexif/canon/mnote-canon-entry.c:231
+msgid "Canon EF 300mm f/2.8L"
+msgstr "Canon EF 300mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:232
+msgid "Canon EF 85mm f/1.2L"
+msgstr "Canon EF 85mm f/1.2L"
+
+#: libexif/canon/mnote-canon-entry.c:233
+msgid "Canon EF 400mm f/2.8L"
+msgstr "Canon EF 400mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:234
+msgid "Canon EF 500mm f/4.5L"
+msgstr "Canon EF 500mm f/4.5L"
+
+#: libexif/canon/mnote-canon-entry.c:235
+msgid "Canon EF 300mm f/2.8L IS"
+msgstr "Canon EF 300mm f/2.8L IS"
+
+#: libexif/canon/mnote-canon-entry.c:236
+msgid "Canon EF 500mm f/4L IS"
+msgstr "Canon EF 500mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:237
+msgid "Canon EF 100mm f/2"
+msgstr "Canon EF 100mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:238
+msgid "Sigma 20mm EX f/1.8"
+msgstr "Sigma 20mm EX f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:239
+msgid "Canon EF 200mm f/2.8L"
+msgstr "Canon EF 200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:240
+msgid "Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+msgstr "Sigma 10-20mm F4-5.6 eller 12-24mm f/4.5-5.6 eller 14mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:241
+msgid "Canon EF 35-350mm f/3.5-5.6L"
+msgstr "Canon EF 35-350mm f/3.5-5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:242
+msgid "Canon EF 85mm f/1.8 USM"
+msgstr "Canon EF 85mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:243
+msgid "Canon EF 28-105mm f/3.5-4.5 USM"
+msgstr "Canon EF 28-105mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:244
+msgid "Canon EF 20-35mm f/3.5-4.5 USM"
+msgstr "Canon EF 20-35mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:245
+msgid "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+msgstr "Canon EF 28-70mm f/2.8L eller Sigma 24-70mm EX f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:246
+msgid "Canon EF 70-200mm f/2.8 L"
+msgstr "Canon EF 70-200mm f/2.8 L"
+
+#: libexif/canon/mnote-canon-entry.c:247
+msgid "Canon EF 70-200mm f/2.8 L + x1.4"
+msgstr "Canon EF 70-200mm f/2.8 L + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:248
+msgid "Canon EF 70-200mm f/2.8 L + x2"
+msgstr "Canon EF 70-200mm f/2.8 L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:249
+msgid "Canon EF 28mm f/1.8 USM"
+msgstr "Canon EF 28mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:250
+msgid "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+msgstr "Sigma 15-30mm f/3.5-4.5 EX DG asfärisk"
+
+#: libexif/canon/mnote-canon-entry.c:251
+msgid "Canon EF 200mm f/2.8L II"
+msgstr "Canon EF 200mm f/2.8L II"
+
+#: libexif/canon/mnote-canon-entry.c:252
+msgid "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+msgstr "Canon EF 180mm Macro f/3.5L eller Sigma 180mm EX HSM Macro f/3.5"
+
+#: libexif/canon/mnote-canon-entry.c:253
+msgid "Canon EF 135mm f/2L"
+msgstr "Canon EF 135mm f/2L"
+
+#: libexif/canon/mnote-canon-entry.c:254
+msgid "Canon EF 24-85mm f/3.5-4.5 USM"
+msgstr "Canon EF 24-85mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:255
+msgid "Canon EF 300mm f/4L IS"
+msgstr "Canon EF 300mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:256
+msgid "Canon EF 28-135mm f/3.5-5.6 IS"
+msgstr "Canon EF 28-135mm f/3.5-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:257
+msgid "Canon EF 35mm f/1.4L"
+msgstr "Canon EF 35mm f/1.4L"
+
+#: libexif/canon/mnote-canon-entry.c:258
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:259
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+
+#: libexif/canon/mnote-canon-entry.c:260
+msgid "Canon EF 100-400mm f/4.5-5.6L IS"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS"
+
+#: libexif/canon/mnote-canon-entry.c:261
+msgid "Canon EF 400mm f/2.8L + x2"
+msgstr "Canon EF 400mm f/2.8L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:262
+msgid "Canon EF 70-200mm f/4L"
+msgstr "Canon EF 70-200mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:263
+msgid "Canon EF 100mm f/2.8 Macro"
+msgstr "Canon EF 100mm f/2.8 Macro"
+
+#: libexif/canon/mnote-canon-entry.c:264
+msgid "Canon EF 400mm f/4 DO IS"
+msgstr "Canon EF 400mm f/4 DO IS"
+
+#: libexif/canon/mnote-canon-entry.c:265
+msgid "Canon EF 75-300mm f/4-5.6 IS"
+msgstr "Canon EF 75-300mm f/4-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:266
+msgid "Canon EF 50mm f/1.4"
+msgstr "Canon EF 50mm f/1.4"
+
+#: libexif/canon/mnote-canon-entry.c:267
+msgid "Canon EF 28-80 f/3.5-5.6 USM IV"
+msgstr "Canon EF 28-80 f/3.5-5.6 USM IV"
+
+#: libexif/canon/mnote-canon-entry.c:268
+msgid "Canon EF 28-200mm f/3.5-5.6"
+msgstr "Canon EF 28-200mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:269
+msgid "Canon EF 90-300mm f/4.5-5.6"
+msgstr "Canon EF 90-300mm f/4.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:270
+msgid "Canon EF-S 18-55mm f/3.5-4.5 USM"
+msgstr "Canon EF-S 18-55mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:271
+msgid "Canon EF 70-200mm f/2.8L IS USM"
+msgstr "Canon EF 70-200mm f/2.8L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:272
+msgid "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+msgstr "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:273
+msgid "Canon EF 70-200mm f/2.8L IS USM + x2"
+msgstr "Canon EF 70-200mm f/2.8L IS USM + x2"
+
+#: libexif/canon/mnote-canon-entry.c:274
+msgid "Canon EF 16-35mm f/2.8L"
+msgstr "Canon EF 16-35mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:275
+msgid "Canon EF 24-70mm f/2.8L"
+msgstr "Canon EF 24-70mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:276
+msgid "Canon EF 17-40mm f/4L"
+msgstr "Canon EF 17-40mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:277
+msgid "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+msgstr "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:278
+msgid "Canon EF-S 17-85mm f4-5.6 IS USM"
+msgstr "Canon EF-S 17-85mm f4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:279
+msgid "Canon EF-S10-22mm F3.5-4.5 USM"
+msgstr "Canon EF-S10-22mm F3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:280
+msgid "Canon EF-S60mm F2.8 Macro USM"
+msgstr "Canon EF-S60mm F2.8 Macro USM"
+
+#: libexif/canon/mnote-canon-entry.c:281
+msgid "Canon EF 24-105mm f/4L IS"
+msgstr "Canon EF 24-105mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:282
+msgid "Canon EF 70-300mm F4-5.6 IS USM"
+msgstr "Canon EF 70-300mm F4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:283
+msgid "Canon EF 50mm F1.2L USM"
+msgstr "Canon EF 50mm F1.2L USM"
+
+#: libexif/canon/mnote-canon-entry.c:284
+msgid "Canon EF 70-200mm f/4L IS USM"
+msgstr "Canon EF 70-200mm f/4L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:286
+msgid "TTL"
+msgstr "TTL"
+
+#: libexif/canon/mnote-canon-entry.c:287
+msgid "A-TTL"
+msgstr "A-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:288
+msgid "E-TTL"
+msgstr "E-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:289
+msgid "FP sync enabled"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:290
+msgid "2nd-curtain sync used"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:291
+msgid "FP sync used"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:292
+#: libexif/olympus/mnote-olympus-entry.c:190
+msgid "Internal"
+msgstr "Intern"
+
+#: libexif/canon/mnote-canon-entry.c:293
+#: libexif/olympus/mnote-olympus-entry.c:191
+msgid "External"
+msgstr "Extern"
+
+#: libexif/canon/mnote-canon-entry.c:296
+msgid "Normal AE"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:297
+msgid "Exposure compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:298
+msgid "AE lock"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:299
+#, fuzzy
+msgid "AE lock + exposure compensation"
+msgstr "Exponeringskompensering"
+
+#: libexif/canon/mnote-canon-entry.c:300
+msgid "No AE"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:303
+msgid "On, shot only"
+msgstr "På, endast tagning"
+
+#: libexif/canon/mnote-canon-entry.c:307
+msgid "Smooth"
+msgstr "Mjuk"
+
+#: libexif/canon/mnote-canon-entry.c:310 libexif/canon/mnote-canon-entry.c:334
+#: libexif/canon/mnote-canon-entry.c:393 libexif/canon/mnote-canon-entry.c:406
+#: libexif/fuji/mnote-fuji-entry.c:81 libexif/pentax/mnote-pentax-entry.c:87
+msgid "Custom"
+msgstr "Anpassad"
+
+#: libexif/canon/mnote-canon-entry.c:311
+msgid "My color data"
+msgstr "Mitt färgdata"
+
+#: libexif/canon/mnote-canon-entry.c:313 libexif/canon/mnote-canon-entry.c:375
+#: libexif/pentax/mnote-pentax-entry.c:126
+#: libexif/pentax/mnote-pentax-entry.c:145
+msgid "Full"
+msgstr "Fullständig"
+
+#: libexif/canon/mnote-canon-entry.c:314 libexif/canon/mnote-canon-entry.c:374
+msgid "2/3"
+msgstr "2/3"
+
+#: libexif/canon/mnote-canon-entry.c:315 libexif/canon/mnote-canon-entry.c:373
+msgid "1/3"
+msgstr "1/3"
+
+#: libexif/canon/mnote-canon-entry.c:321
+msgid "Fixed"
+msgstr "Fast"
+
+#: libexif/canon/mnote-canon-entry.c:322 libexif/pentax/mnote-pentax-tag.c:44
+msgid "Zoom"
+msgstr "Zoom"
+
+#: libexif/canon/mnote-canon-entry.c:329
+msgid "Sunny"
+msgstr "Soligt"
+
+#: libexif/canon/mnote-canon-entry.c:330 libexif/canon/mnote-canon-entry.c:402
+#: libexif/exif-entry.c:719 libexif/fuji/mnote-fuji-entry.c:75
+#: libexif/olympus/mnote-olympus-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:255
+msgid "Cloudy"
+msgstr "Molnigt"
+
+#: libexif/canon/mnote-canon-entry.c:331 libexif/canon/mnote-canon-entry.c:403
+#: libexif/exif-entry.c:716 libexif/pentax/mnote-pentax-entry.c:100
+#: libexif/pentax/mnote-pentax-entry.c:249
+msgid "Tungsten"
+msgstr "Glödlampa"
+
+#: libexif/canon/mnote-canon-entry.c:332 libexif/canon/mnote-canon-entry.c:404
+#: libexif/exif-entry.c:715 libexif/pentax/mnote-pentax-entry.c:101
+#: libexif/pentax/mnote-pentax-entry.c:248
+msgid "Fluorescent"
+msgstr "Ljusrör"
+
+#: libexif/canon/mnote-canon-entry.c:333 libexif/canon/mnote-canon-entry.c:405
+#: libexif/exif-entry.c:717 libexif/exif-entry.c:759 libexif/exif-tag.c:577
+#: libexif/fuji/mnote-fuji-entry.c:80 libexif/pentax/mnote-pentax-entry.c:254
+msgid "Flash"
+msgstr "Blixt"
+
+#: libexif/canon/mnote-canon-entry.c:336 libexif/canon/mnote-canon-entry.c:408
+#: libexif/exif-entry.c:720 libexif/pentax/mnote-pentax-entry.c:99
+#: libexif/pentax/mnote-pentax-entry.c:247
+msgid "Shade"
+msgstr "Skugga"
+
+#: libexif/canon/mnote-canon-entry.c:337 libexif/canon/mnote-canon-entry.c:409
+msgid "Manual temperature (Kelvin)"
+msgstr "Manuell temperatur (Kelvin)"
+
+#: libexif/canon/mnote-canon-entry.c:338 libexif/canon/mnote-canon-entry.c:410
+msgid "PC set 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:339 libexif/canon/mnote-canon-entry.c:411
+msgid "PC set 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:340 libexif/canon/mnote-canon-entry.c:412
+msgid "PC set 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:341 libexif/canon/mnote-canon-entry.c:413
+#: libexif/exif-entry.c:721 libexif/fuji/mnote-fuji-entry.c:76
+#: libexif/pentax/mnote-pentax-entry.c:251
+msgid "Daylight fluorescent"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:342 libexif/canon/mnote-canon-entry.c:414
+msgid "Custom 1"
+msgstr "Anpassad 1"
+
+#: libexif/canon/mnote-canon-entry.c:343 libexif/canon/mnote-canon-entry.c:415
+msgid "Custom 2"
+msgstr "Anpassad 2"
+
+#: libexif/canon/mnote-canon-entry.c:346 libexif/exif-entry.c:672
+#: libexif/pentax/mnote-pentax-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:132
+#: libexif/pentax/mnote-pentax-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:295
+msgid "Night scene"
+msgstr "Nattscen"
+
+#: libexif/canon/mnote-canon-entry.c:352
+#, fuzzy
+msgid "Center-right"
+msgstr "Stearinljus"
+
+#: libexif/canon/mnote-canon-entry.c:354
+#, fuzzy
+msgid "Left-right"
+msgstr "Vänster till höger"
+
+#: libexif/canon/mnote-canon-entry.c:355
+#, fuzzy
+msgid "Left-center"
+msgstr "centrerad"
+
+#: libexif/canon/mnote-canon-entry.c:356
+msgid "All"
+msgstr "Allt"
+
+#: libexif/canon/mnote-canon-entry.c:358
+msgid "On (shot 1)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:359
+msgid "On (shot 2)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:360
+msgid "On (shot 3)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:362
+msgid "EOS high-end"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:363
+msgid "Compact"
+msgstr "Kompakt"
+
+#: libexif/canon/mnote-canon-entry.c:364
+msgid "EOS mid-range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:366
+msgid "Rotate 90 CW"
+msgstr "Rotera 90 medsols"
+
+#: libexif/canon/mnote-canon-entry.c:367
+msgid "Rotate 180"
+msgstr "Rotera 180"
+
+#: libexif/canon/mnote-canon-entry.c:368
+msgid "Rotate 270 CW"
+msgstr "Rotera 270 medsols"
+
+#: libexif/canon/mnote-canon-entry.c:369
+msgid "Rotated by software"
+msgstr "Roterad av programvara"
+
+#: libexif/canon/mnote-canon-entry.c:381
+#: libexif/olympus/mnote-olympus-entry.c:606
+msgid "Left to right"
+msgstr "Vänster till höger"
+
+#: libexif/canon/mnote-canon-entry.c:382
+#: libexif/olympus/mnote-olympus-entry.c:609
+msgid "Right to left"
+msgstr "Höger till vänster"
+
+#: libexif/canon/mnote-canon-entry.c:383
+#: libexif/olympus/mnote-olympus-entry.c:612
+msgid "Bottom to top"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:384
+#: libexif/olympus/mnote-olympus-entry.c:615
+msgid "Top to bottom"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:385
+msgid "2x2 matrix (clockwise)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:391 libexif/canon/mnote-canon-entry.c:397
+#: libexif/canon/mnote-canon-entry.c:418 libexif/canon/mnote-canon-entry.c:428
+#: libexif/exif-entry.c:671 libexif/fuji/mnote-fuji-entry.c:84
+#: libexif/fuji/mnote-fuji-entry.c:93 libexif/fuji/mnote-fuji-entry.c:163
+#: libexif/olympus/mnote-olympus-entry.c:227
+msgid "Standard"
+msgstr "Standard"
+
+#: libexif/canon/mnote-canon-entry.c:394
+msgid "N/A"
+msgstr "Inte tillgänglig"
+
+#: libexif/canon/mnote-canon-entry.c:395
+msgid "Lowest"
+msgstr "Lägsta"
+
+#: libexif/canon/mnote-canon-entry.c:399
+msgid "Highest"
+msgstr "Högsta"
+
+#: libexif/canon/mnote-canon-entry.c:401 libexif/exif-entry.c:714
+#: libexif/fuji/mnote-fuji-entry.c:74
+#: libexif/olympus/mnote-olympus-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:98
+#: libexif/pentax/mnote-pentax-entry.c:246
+msgid "Daylight"
+msgstr "Dagsljus"
+
+#: libexif/canon/mnote-canon-entry.c:419
+msgid "Set 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:420
+msgid "Set 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:421
+msgid "Set 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:422
+#, fuzzy
+msgid "User def. 1"
+msgstr "Användare 1"
+
+#: libexif/canon/mnote-canon-entry.c:423
+#, fuzzy
+msgid "User def. 2"
+msgstr "Användare 2"
+
+#: libexif/canon/mnote-canon-entry.c:424
+msgid "User def. 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:425
+msgid "External 1"
+msgstr "Extern 1"
+
+#: libexif/canon/mnote-canon-entry.c:426
+msgid "External 2"
+msgstr "Extern 2"
+
+#: libexif/canon/mnote-canon-entry.c:427
+msgid "External 3"
+msgstr "Extern 3"
+
+#: libexif/canon/mnote-canon-entry.c:432
+msgid "Faithful"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:115
+msgid "Monochrome"
+msgstr "Svartvitt"
+
+#: libexif/canon/mnote-canon-entry.c:491
+msgid ", "
+msgstr ", "
+
+#: libexif/canon/mnote-canon-entry.c:577 libexif/canon/mnote-canon-entry.c:674
+#, c-format
+msgid "%i (ms)"
+msgstr "%i (ms)"
+
+#: libexif/canon/mnote-canon-entry.c:621
+#, c-format
+msgid "%.2f mm"
+msgstr "%.2f mm"
+
+#: libexif/canon/mnote-canon-entry.c:645
+#, c-format
+msgid "%.2f EV"
+msgstr "%.2f EV"
+
+#: libexif/canon/mnote-canon-entry.c:655 libexif/exif-entry.c:1064
+#, c-format
+msgid "1/%i"
+msgstr "1/%i"
+
+#: libexif/canon/mnote-canon-entry.c:667
+#, c-format
+msgid "%u mm"
+msgstr "%u mm"
+
+#: libexif/canon/mnote-canon-tag.c:35
+msgid "Settings (First Part)"
+msgstr "Inställningar (första delen)"
+
+#: libexif/canon/mnote-canon-tag.c:36 libexif/canon/mnote-canon-tag.c:92
+#: libexif/exif-tag.c:581 libexif/pentax/mnote-pentax-tag.c:88
+msgid "Focal Length"
+msgstr "Brännvidd"
+
+#: libexif/canon/mnote-canon-tag.c:37
+msgid "Settings (Second Part)"
+msgstr "Inställningar (andra delen)"
+
+#: libexif/canon/mnote-canon-tag.c:38
+#: libexif/olympus/mnote-olympus-entry.c:595
+#: libexif/pentax/mnote-pentax-entry.c:177
+msgid "Panorama"
+msgstr "Panorama"
+
+#: libexif/canon/mnote-canon-tag.c:39
+msgid "Image Type"
+msgstr "Bildtyp"
+
+#: libexif/canon/mnote-canon-tag.c:40 libexif/olympus/mnote-olympus-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:113
+msgid "Firmware Version"
+msgstr "Version av fast programvara"
+
+#: libexif/canon/mnote-canon-tag.c:41
+msgid "Image Number"
+msgstr "Bildnummer"
+
+#: libexif/canon/mnote-canon-tag.c:42
+msgid "Owner Name"
+msgstr "Ägarens namn"
+
+#: libexif/canon/mnote-canon-tag.c:43
+msgid "Color Information"
+msgstr "Färginformation"
+
+#: libexif/canon/mnote-canon-tag.c:44 libexif/fuji/mnote-fuji-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:81
+#: libexif/olympus/mnote-olympus-tag.c:146
+msgid "Serial Number"
+msgstr "Serienummer"
+
+#: libexif/canon/mnote-canon-tag.c:45
+msgid "Custom Functions"
+msgstr "Anpassade funktioner"
+
+#: libexif/canon/mnote-canon-tag.c:56 libexif/fuji/mnote-fuji-tag.c:45
+msgid "Macro Mode"
+msgstr "Makroläge"
+
+#: libexif/canon/mnote-canon-tag.c:57 libexif/canon/mnote-canon-tag.c:117
+#: libexif/olympus/mnote-olympus-tag.c:175
+#: libexif/pentax/mnote-pentax-tag.c:128
+msgid "Self-timer"
+msgstr "Självutlösare"
+
+#: libexif/canon/mnote-canon-tag.c:58 libexif/fuji/mnote-fuji-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:94
+#: libexif/olympus/mnote-olympus-tag.c:107
+msgid "Quality"
+msgstr "Kvalitet"
+
+#: libexif/canon/mnote-canon-tag.c:59 libexif/fuji/mnote-fuji-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:45
+#: libexif/olympus/mnote-olympus-tag.c:127
+#: libexif/pentax/mnote-pentax-tag.c:38 libexif/pentax/mnote-pentax-tag.c:73
+msgid "Flash Mode"
+msgstr "Blixtläge"
+
+#: libexif/canon/mnote-canon-tag.c:60 libexif/pentax/mnote-pentax-tag.c:101
+msgid "Drive Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:61 libexif/canon/mnote-canon-tag.c:82
+#: libexif/olympus/mnote-olympus-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:134
+#: libexif/olympus/mnote-olympus-tag.c:173
+#: libexif/pentax/mnote-pentax-tag.c:37 libexif/pentax/mnote-pentax-tag.c:74
+#: libexif/pentax/mnote-pentax-tag.c:130
+msgid "Focus Mode"
+msgstr "Fokusläge"
+
+#: libexif/canon/mnote-canon-tag.c:62 libexif/pentax/mnote-pentax-tag.c:127
+msgid "Record Mode"
+msgstr "Inspelningsläge"
+
+#: libexif/canon/mnote-canon-tag.c:63 libexif/pentax/mnote-pentax-tag.c:71
+msgid "Image Size"
+msgstr "Bildstorlek"
+
+#: libexif/canon/mnote-canon-tag.c:64
+msgid "Easy Shooting Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:65 libexif/olympus/mnote-olympus-tag.c:64
+#: libexif/olympus/mnote-olympus-tag.c:101
+#: libexif/olympus/mnote-olympus-tag.c:110
+#: libexif/olympus/mnote-olympus-tag.c:180
+#: libexif/pentax/mnote-pentax-tag.c:89
+msgid "Digital Zoom"
+msgstr "Digitalzoom"
+
+#: libexif/canon/mnote-canon-tag.c:66 libexif/exif-tag.c:828
+#: libexif/fuji/mnote-fuji-tag.c:42 libexif/pentax/mnote-pentax-tag.c:46
+#: libexif/pentax/mnote-pentax-tag.c:91
+msgid "Contrast"
+msgstr "Kontrast"
+
+#: libexif/canon/mnote-canon-tag.c:67 libexif/exif-tag.c:832
+#: libexif/olympus/mnote-olympus-tag.c:75
+#: libexif/olympus/mnote-olympus-tag.c:87 libexif/pentax/mnote-pentax-tag.c:47
+#: libexif/pentax/mnote-pentax-tag.c:90
+msgid "Saturation"
+msgstr "Mättnad"
+
+#: libexif/canon/mnote-canon-tag.c:68 libexif/exif-tag.c:836
+#: libexif/fuji/mnote-fuji-tag.c:39 libexif/pentax/mnote-pentax-tag.c:45
+#: libexif/pentax/mnote-pentax-tag.c:92
+msgid "Sharpness"
+msgstr "Skärpa"
+
+#: libexif/canon/mnote-canon-tag.c:69
+msgid "ISO"
+msgstr "ISO"
+
+#: libexif/canon/mnote-canon-tag.c:70 libexif/exif-tag.c:571
+#: libexif/pentax/mnote-pentax-tag.c:82
+msgid "Metering Mode"
+msgstr "Mätläge"
+
+#: libexif/canon/mnote-canon-tag.c:71 libexif/olympus/mnote-olympus-tag.c:133
+msgid "Focus Range"
+msgstr "Fokusvidd"
+
+#: libexif/canon/mnote-canon-tag.c:72 libexif/canon/mnote-canon-tag.c:105
+msgid "AF Point"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:73 libexif/exif-tag.c:795
+msgid "Exposure Mode"
+msgstr "Exponeringsläge"
+
+#: libexif/canon/mnote-canon-tag.c:74 libexif/olympus/mnote-olympus-tag.c:61
+#: libexif/pentax/mnote-pentax-tag.c:106
+msgid "Lens Type"
+msgstr "Linstyp"
+
+#: libexif/canon/mnote-canon-tag.c:75
+msgid "Long Focal Length of Lens"
+msgstr "Lång brännvidd för lins"
+
+#: libexif/canon/mnote-canon-tag.c:76
+msgid "Short Focal Length of Lens"
+msgstr "Kort brännvidd för lins"
+
+#: libexif/canon/mnote-canon-tag.c:77
+msgid "Focal Units per mm"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:78
+msgid "Maximal Aperture"
+msgstr "Maximal bländare"
+
+#: libexif/canon/mnote-canon-tag.c:79
+msgid "Minimal Aperture"
+msgstr "Minimal bländare"
+
+#: libexif/canon/mnote-canon-tag.c:80
+msgid "Flash Activity"
+msgstr "Blixtaktivitet"
+
+#: libexif/canon/mnote-canon-tag.c:81
+msgid "Flash Details"
+msgstr "Blixtdetaljer"
+
+#: libexif/canon/mnote-canon-tag.c:83
+msgid "AE Setting"
+msgstr "AE-inställning"
+
+#: libexif/canon/mnote-canon-tag.c:84
+msgid "Image Stabilization"
+msgstr "Bildstabilisering"
+
+#: libexif/canon/mnote-canon-tag.c:85
+#, fuzzy
+msgid "Display Aperture"
+msgstr "Bländare"
+
+#: libexif/canon/mnote-canon-tag.c:86
+msgid "Zoom Source Width"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:87
+#, fuzzy
+msgid "Zoom Target Width"
+msgstr "Bildbredd"
+
+#: libexif/canon/mnote-canon-tag.c:88
+msgid "Photo Effect"
+msgstr "Fotoeffekt"
+
+#: libexif/canon/mnote-canon-tag.c:89 libexif/canon/mnote-canon-tag.c:118
+msgid "Manual Flash Output"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:90
+msgid "Color Tone"
+msgstr "Färgton"
+
+#: libexif/canon/mnote-canon-tag.c:91
+msgid "Focal Type"
+msgstr "Bränntyp"
+
+#: libexif/canon/mnote-canon-tag.c:93
+msgid "Focal Plane X Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:94
+msgid "Focal Plane Y Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:95
+msgid "Auto ISO"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:96
+msgid "Shot ISO"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:97
+msgid "Measured EV"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:98
+#, fuzzy
+msgid "Target Aperture"
+msgstr "Bländare"
+
+#: libexif/canon/mnote-canon-tag.c:99
+#, fuzzy
+msgid "Target Exposure Time"
+msgstr "Bländartid"
+
+#: libexif/canon/mnote-canon-tag.c:100 libexif/olympus/mnote-olympus-tag.c:129
+#: libexif/pentax/mnote-pentax-tag.c:81
+msgid "Exposure Compensation"
+msgstr "Exponeringskompensering"
+
+#: libexif/canon/mnote-canon-tag.c:101 libexif/canon/mnote-canon-tag.c:123
+#: libexif/exif-tag.c:800 libexif/fuji/mnote-fuji-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:41
+#: libexif/olympus/mnote-olympus-tag.c:98 libexif/pentax/mnote-pentax-tag.c:41
+#: libexif/pentax/mnote-pentax-tag.c:84 libexif/pentax/mnote-pentax-tag.c:124
+msgid "White Balance"
+msgstr "Vitbalans"
+
+#: libexif/canon/mnote-canon-tag.c:102
+msgid "Slow Shutter"
+msgstr "Långsam slutare"
+
+#: libexif/canon/mnote-canon-tag.c:103
+msgid "Sequence Number"
+msgstr "Sekvensnummer"
+
+#: libexif/canon/mnote-canon-tag.c:104
+#, fuzzy
+msgid "Flash Guide Number"
+msgstr "Blixt finns i kamera"
+
+#: libexif/canon/mnote-canon-tag.c:106 libexif/olympus/mnote-olympus-tag.c:52
+#: libexif/pentax/mnote-pentax-tag.c:109
+msgid "Flash Exposure Compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:107
+#, fuzzy
+msgid "AE Bracketing"
+msgstr "AE-inställning"
+
+#: libexif/canon/mnote-canon-tag.c:108
+msgid "AE Bracket Value"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:109
+msgid "Focus Distance Upper"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:110
+msgid "Focus Distance Lower"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:111
+msgid "FNumber"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:112 libexif/exif-tag.c:466
+#: libexif/pentax/mnote-pentax-tag.c:78
+msgid "Exposure Time"
+msgstr "Bländartid"
+
+#: libexif/canon/mnote-canon-tag.c:113
+#, fuzzy
+msgid "Bulb Duration"
+msgstr "Illustrationer"
+
+#: libexif/canon/mnote-canon-tag.c:114
+msgid "Camera Type"
+msgstr "Kameratyp"
+
+#: libexif/canon/mnote-canon-tag.c:115
+#, fuzzy
+msgid "Auto Rotate"
+msgstr "Automatisk"
+
+#: libexif/canon/mnote-canon-tag.c:116
+#, fuzzy
+msgid "ND Filter"
+msgstr "Digitalt filter?"
+
+#: libexif/canon/mnote-canon-tag.c:119
+#, fuzzy
+msgid "Panorama Frame"
+msgstr "Panorama"
+
+#: libexif/canon/mnote-canon-tag.c:120
+#, fuzzy
+msgid "Panorama Direction"
+msgstr "Panorama"
+
+#: libexif/canon/mnote-canon-tag.c:121
+msgid "Tone Curve"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:122
+#, fuzzy
+msgid "Sharpness Frequency"
+msgstr "Skärpa"
+
+#: libexif/canon/mnote-canon-tag.c:124
+msgid "Picture Style"
+msgstr ""
+
+#: libexif/exif-byte-order.c:33
+msgid "Motorola"
+msgstr "Motorola"
+
+#: libexif/exif-byte-order.c:35
+msgid "Intel"
+msgstr "Intel"
+
+#: libexif/exif-data.c:780
+msgid "Size of data too small to allow for EXIF data."
+msgstr ""
+
+#: libexif/exif-data.c:841
+msgid "EXIF marker not found."
+msgstr ""
+
+#: libexif/exif-data.c:868
+msgid "EXIF header not found."
+msgstr "EXIF-rubriken hittades inte."
+
+#: libexif/exif-data.c:884
+msgid "Unknown encoding."
+msgstr "Okänd kodning."
+
+#: libexif/exif-data.c:1168
+msgid "Ignore unknown tags"
+msgstr "Ignorera okända taggar"
+
+#: libexif/exif-data.c:1169
+msgid "Ignore unknown tags when loading EXIF data."
+msgstr "Ignorera okända taggar vid inläsning av EXIF-data."
+
+#: libexif/exif-data.c:1170
+msgid "Follow specification"
+msgstr "Följ specifikation"
+
+#: libexif/exif-data.c:1171
+msgid ""
+"Add, correct and remove entries to get EXIF data that follows the "
+"specification."
+msgstr ""
+
+#: libexif/exif-data.c:1173
+msgid "Do not change maker note"
+msgstr ""
+
+#: libexif/exif-data.c:1174
+msgid ""
+"When loading and resaving Exif data, save the maker note unmodified. Be "
+"aware that the maker note can get corrupted."
+msgstr ""
+
+#: libexif/exif-entry.c:234 libexif/exif-entry.c:303 libexif/exif-entry.c:336
+#, c-format
+msgid ""
+"Tag '%s' was of format '%s' (which is against specification) and has been "
+"changed to format '%s'."
+msgstr ""
+
+#: libexif/exif-entry.c:271
+#, c-format
+msgid ""
+"Tag '%s' is of format '%s' (which is against specification) but cannot be "
+"changed to format '%s'."
+msgstr ""
+
+#: libexif/exif-entry.c:354
+#, c-format
+msgid ""
+"Tag 'UserComment' had invalid format '%s'. Format has been set to "
+"'undefined'."
+msgstr ""
+
+#: libexif/exif-entry.c:381
+msgid ""
+"Tag 'UserComment' has been expanded to at least 8 bytes in order to follow "
+"the specification."
+msgstr ""
+
+#: libexif/exif-entry.c:396
+msgid ""
+"Tag 'UserComment' is not empty but does not start with a format identifier. "
+"This has been fixed."
+msgstr ""
+
+#: libexif/exif-entry.c:424
+msgid ""
+"Tag 'UserComment' did not start with a format identifier. This has been "
+"fixed."
+msgstr ""
+
+#: libexif/exif-entry.c:462
+#, c-format
+msgid "%i bytes undefined data"
+msgstr "%i byte odefinierat data"
+
+#: libexif/exif-entry.c:589
+#, c-format
+msgid "%i bytes unsupported data type"
+msgstr "%i byte av datatyp som inte stöds "
+
+#: libexif/exif-entry.c:622
+#, c-format
+msgid "The tag '%s' contains data of an invalid format ('%s', expected '%s')."
+msgstr ""
+
+#: libexif/exif-entry.c:635
+#, c-format
+msgid ""
+"The tag '%s' contains an invalid number of components (%i, expected %i)."
+msgstr ""
+
+#: libexif/exif-entry.c:649
+msgid "Chunky format"
+msgstr ""
+
+#: libexif/exif-entry.c:649
+#, fuzzy
+msgid "Planar format"
+msgstr "Panorama"
+
+#: libexif/exif-entry.c:651 libexif/exif-entry.c:743
+#: test/nls/test-codeset.c:54
+msgid "Not defined"
+msgstr "Inte definierad"
+
+#: libexif/exif-entry.c:651
+msgid "One-chip color area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:652
+msgid "Two-chip color area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:652
+msgid "Three-chip color area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:653
+msgid "Color sequential area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:653
+msgid "Trilinear sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:654
+msgid "Color sequential linear sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:233
+msgid "Top-left"
+msgstr ""
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:235
+msgid "Top-right"
+msgstr ""
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:241
+msgid "Bottom-right"
+msgstr ""
+
+#: libexif/exif-entry.c:657 libexif/pentax/mnote-pentax-entry.c:239
+msgid "Bottom-left"
+msgstr ""
+
+#: libexif/exif-entry.c:657
+#, fuzzy
+msgid "Left-top"
+msgstr "Vänster"
+
+#: libexif/exif-entry.c:657
+#, fuzzy
+msgid "Right-top"
+msgstr "Höger"
+
+#: libexif/exif-entry.c:658
+msgid "Right-bottom"
+msgstr ""
+
+#: libexif/exif-entry.c:658
+msgid "Left-bottom"
+msgstr ""
+
+#: libexif/exif-entry.c:660
+#, fuzzy
+msgid "Centered"
+msgstr "centrerad"
+
+#: libexif/exif-entry.c:660
+#, fuzzy
+msgid "Co-sited"
+msgstr "Nära"
+
+#: libexif/exif-entry.c:662
+msgid "Reversed mono"
+msgstr "Omvänd mono"
+
+#: libexif/exif-entry.c:662
+msgid "Normal mono"
+msgstr "Normal mono"
+
+#: libexif/exif-entry.c:662
+msgid "RGB"
+msgstr "RGB"
+
+#: libexif/exif-entry.c:662
+msgid "Palette"
+msgstr "Palett"
+
+#: libexif/exif-entry.c:663
+msgid "CMYK"
+msgstr "CMYK"
+
+#: libexif/exif-entry.c:663
+msgid "YCbCr"
+msgstr "YCbCr"
+
+#: libexif/exif-entry.c:663
+msgid "CieLAB"
+msgstr "CieLAB"
+
+#: libexif/exif-entry.c:665
+msgid "Normal process"
+msgstr "Normal process"
+
+#: libexif/exif-entry.c:665
+msgid "Custom process"
+msgstr "Anpassad process"
+
+#: libexif/exif-entry.c:667
+msgid "Auto exposure"
+msgstr "Automatisk exponering"
+
+#: libexif/exif-entry.c:667 libexif/fuji/mnote-fuji-entry.c:139
+msgid "Manual exposure"
+msgstr "Manuell exponering"
+
+#: libexif/exif-entry.c:667
+msgid "Auto bracket"
+msgstr ""
+
+#: libexif/exif-entry.c:669
+msgid "Auto white balance"
+msgstr "Automatisk vitbalans"
+
+#: libexif/exif-entry.c:669
+msgid "Manual white balance"
+msgstr "Manuell vitbalans"
+
+#: libexif/exif-entry.c:674
+msgid "Low gain up"
+msgstr ""
+
+#: libexif/exif-entry.c:674
+msgid "High gain up"
+msgstr ""
+
+#: libexif/exif-entry.c:675
+msgid "Low gain down"
+msgstr ""
+
+#: libexif/exif-entry.c:675
+msgid "High gain down"
+msgstr ""
+
+#: libexif/exif-entry.c:677
+msgid "Low saturation"
+msgstr "Låg färgmättnad"
+
+#: libexif/exif-entry.c:677 test/nls/test-codeset.c:48
+#: test/nls/test-codeset.c:61
+msgid "High saturation"
+msgstr "Hög färgmättnad"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:63
+#: libexif/olympus/mnote-olympus-entry.c:205
+#: libexif/olympus/mnote-olympus-entry.c:214
+#: libexif/pentax/mnote-pentax-entry.c:106
+#: libexif/pentax/mnote-pentax-entry.c:170
+msgid "Soft"
+msgstr "Mjuk"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:65 libexif/fuji/mnote-fuji-entry.c:95
+#: libexif/olympus/mnote-olympus-entry.c:204
+#: libexif/olympus/mnote-olympus-entry.c:212
+#: libexif/pentax/mnote-pentax-entry.c:107
+msgid "Hard"
+msgstr "Hård"
+
+#: libexif/exif-entry.c:695 libexif/exif-entry.c:713 libexif/exif-entry.c:795
+#: libexif/olympus/mnote-olympus-entry.c:589
+#: libexif/olympus/mnote-olympus-entry.c:683
+#: libexif/olympus/mnote-olympus-entry.c:738
+#: libexif/pentax/mnote-pentax-entry.c:256
+msgid "Unknown"
+msgstr "Okänd"
+
+#: libexif/exif-entry.c:696
+#, fuzzy
+msgid "Avg"
+msgstr "medel"
+
+#: libexif/exif-entry.c:697
+msgid "Center-weight"
+msgstr ""
+
+#: libexif/exif-entry.c:699
+msgid "Multi spot"
+msgstr ""
+
+#: libexif/exif-entry.c:700
+msgid "Pattern"
+msgstr "Mönster"
+
+#: libexif/exif-entry.c:705
+msgid "Uncompressed"
+msgstr "Okomprimerad"
+
+#: libexif/exif-entry.c:706
+msgid "LZW compression"
+msgstr "LZW-komprimering"
+
+#: libexif/exif-entry.c:707 libexif/exif-entry.c:708
+msgid "JPEG compression"
+msgstr "JPEG-komprimering"
+
+#: libexif/exif-entry.c:709
+msgid "Deflate/ZIP compression"
+msgstr "Deflate/ZIP-komprimering"
+
+#: libexif/exif-entry.c:710
+msgid "PackBits compression"
+msgstr "PackBits-komprimering"
+
+#: libexif/exif-entry.c:716
+msgid "Tungsten incandescent light"
+msgstr ""
+
+#: libexif/exif-entry.c:718
+msgid "Fine weather"
+msgstr "Fint väder"
+
+#: libexif/exif-entry.c:719
+msgid "Cloudy weather"
+msgstr "Molnigt väder"
+
+#: libexif/exif-entry.c:722 libexif/fuji/mnote-fuji-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:252
+msgid "Day white fluorescent"
+msgstr ""
+
+#: libexif/exif-entry.c:723
+msgid "Cool white fluorescent"
+msgstr ""
+
+#: libexif/exif-entry.c:724 libexif/fuji/mnote-fuji-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:253
+msgid "White fluorescent"
+msgstr ""
+
+#: libexif/exif-entry.c:725
+msgid "Standard light A"
+msgstr ""
+
+#: libexif/exif-entry.c:726
+msgid "Standard light B"
+msgstr ""
+
+#: libexif/exif-entry.c:727
+msgid "Standard light C"
+msgstr ""
+
+#: libexif/exif-entry.c:728
+msgid "D55"
+msgstr "D55"
+
+#: libexif/exif-entry.c:729
+msgid "D65"
+msgstr "D65"
+
+#: libexif/exif-entry.c:730
+msgid "D75"
+msgstr "D75"
+
+#: libexif/exif-entry.c:731
+msgid "ISO studio tungsten"
+msgstr ""
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "Inch"
+msgstr "Tum"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "in"
+msgstr "tum"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "Centimeter"
+msgstr "Centimeter"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "cm"
+msgstr "cm"
+
+#: libexif/exif-entry.c:745
+msgid "Normal program"
+msgstr "Normalt program"
+
+#: libexif/exif-entry.c:746
+msgid "Aperture priority"
+msgstr "Bländarprioritet"
+
+#: libexif/exif-entry.c:746 libexif/exif-tag.c:550
+msgid "Aperture"
+msgstr "Bländare"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter priority"
+msgstr "Slutarprioritet"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter"
+msgstr "Slutare"
+
+#: libexif/exif-entry.c:748
+msgid "Creative program (biased toward depth of field)"
+msgstr ""
+
+#: libexif/exif-entry.c:749
+msgid "Creative"
+msgstr ""
+
+#: libexif/exif-entry.c:750
+msgid "Creative program (biased toward fast shutter speed)"
+msgstr ""
+
+#: libexif/exif-entry.c:751
+msgid "Action"
+msgstr "Åtgärd"
+
+#: libexif/exif-entry.c:752
+msgid "Portrait mode (for closeup photos with the background out of focus)"
+msgstr ""
+
+#: libexif/exif-entry.c:754
+msgid "Landscape mode (for landscape photos with the background in focus)"
+msgstr ""
+
+#: libexif/exif-entry.c:758 libexif/exif-entry.c:763
+#: libexif/olympus/mnote-olympus-entry.c:97
+msgid "Flash did not fire"
+msgstr "Blixt inte utlöst"
+
+#: libexif/exif-entry.c:758
+#, fuzzy
+msgid "No flash"
+msgstr "ingen blixt"
+
+#: libexif/exif-entry.c:759
+msgid "Flash fired"
+msgstr "Blixt utlöst"
+
+#: libexif/exif-entry.c:759 libexif/olympus/mnote-olympus-entry.c:170
+#: libexif/olympus/mnote-olympus-entry.c:175
+#: libexif/olympus/mnote-olympus-entry.c:209
+#: libexif/olympus/mnote-olympus-entry.c:218
+#: libexif/olympus/mnote-olympus-entry.c:241
+msgid "Yes"
+msgstr "Ja"
+
+#: libexif/exif-entry.c:760
+msgid "Strobe return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:760
+msgid "Without strobe"
+msgstr ""
+
+#: libexif/exif-entry.c:762
+msgid "Strobe return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:762
+msgid "With strobe"
+msgstr ""
+
+#: libexif/exif-entry.c:764
+msgid "Flash fired, compulsory flash mode"
+msgstr "Blixt avfyrad, tvingat blixtläge"
+
+#: libexif/exif-entry.c:765
+msgid "Flash fired, compulsory flash mode, return light not detected"
+msgstr ""
+"Blixt utlöst, tvingat blixtläge, återreflekterat blixtljus inte upptäckt"
+
+#: libexif/exif-entry.c:767
+msgid "Flash fired, compulsory flash mode, return light detected"
+msgstr "Blixt utlöst, tvingat blixtläge, återreflekterat blixtljus upptäckt"
+
+#: libexif/exif-entry.c:769
+msgid "Flash did not fire, compulsory flash mode"
+msgstr "Blixt inte utlöst, tvingat blixtläge"
+
+#: libexif/exif-entry.c:770
+msgid "Flash did not fire, auto mode"
+msgstr "Blixt inte utlöst, automatiskt läge"
+
+#: libexif/exif-entry.c:771
+msgid "Flash fired, auto mode"
+msgstr "Blixt utlöst, automatiskt läge"
+
+#: libexif/exif-entry.c:772
+msgid "Flash fired, auto mode, return light not detected"
+msgstr ""
+"Blixt utlöst, automatiskt läge, återreflekterat blixtljus inte upptäckt"
+
+#: libexif/exif-entry.c:774
+msgid "Flash fired, auto mode, return light detected"
+msgstr "Blixt utlöst, automatiskt läge, återreflekterat blixtljus upptäckt"
+
+#: libexif/exif-entry.c:775
+msgid "No flash function"
+msgstr "Ingen blixtfunktion"
+
+#: libexif/exif-entry.c:776
+msgid "Flash fired, red-eye reduction mode"
+msgstr "Blixt utlöst, minskning av röda ögon"
+
+#: libexif/exif-entry.c:777
+msgid "Flash fired, red-eye reduction mode, return light not detected"
+msgstr ""
+"Blixt utlöst, minskning av röda ögon, återreflekterat blixtljus inte upptäckt"
+
+#: libexif/exif-entry.c:779
+msgid "Flash fired, red-eye reduction mode, return light detected"
+msgstr ""
+"Blixt utlöst, minskning av röda ögon, återreflekterat blixtljus upptäckt"
+
+#: libexif/exif-entry.c:781
+msgid "Flash fired, compulsory flash mode, red-eye reduction mode"
+msgstr "Blixt utlöst, tvingat blixtläge, minskning av röda ögon"
+
+#: libexif/exif-entry.c:783
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light not "
+"detected"
+msgstr ""
+"Blixt utlöst, tvingat blixtläge, minskning av röda ögon, återreflekterat "
+"blixtljus inte upptäckt"
+
+#: libexif/exif-entry.c:785
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light "
+"detected"
+msgstr ""
+"Blixt utlöst, tvingat blixtläge, minskning av röda ögon, återreflekterat "
+"blixtljus upptäckt"
+
+#: libexif/exif-entry.c:787
+msgid "Flash did not fire, auto mode, red-eye reduction mode"
+msgstr "Blixt inte utlöst, automatiskt läge, minskning av röda ögon"
+
+#: libexif/exif-entry.c:788
+msgid "Flash fired, auto mode, red-eye reduction mode"
+msgstr "Blixt utlöst, automatiskt läge, minskning av röda ögon"
+
+#: libexif/exif-entry.c:789
+msgid ""
+"Flash fired, auto mode, return light not detected, red-eye reduction mode"
+msgstr ""
+"Blixt utlöst, automatiskt läge, återreflekterat blixtljus inte upptäckt, "
+"minskning av röda ögon"
+
+#: libexif/exif-entry.c:791
+msgid "Flash fired, auto mode, return light detected, red-eye reduction mode"
+msgstr ""
+"Blixt utlöst, automatiskt läge, återreflekterat blixtljus upptäckt, "
+"minskning av röda ögon"
+
+#: libexif/exif-entry.c:795
+msgid "?"
+msgstr "?"
+
+#: libexif/exif-entry.c:797
+msgid "Close view"
+msgstr ""
+
+#: libexif/exif-entry.c:798
+msgid "Distant view"
+msgstr ""
+
+#: libexif/exif-entry.c:798
+msgid "Distant"
+msgstr ""
+
+#: libexif/exif-entry.c:801
+msgid "sRGB"
+msgstr "sRGB"
+
+#: libexif/exif-entry.c:802
+msgid "Adobe RGB"
+msgstr "Adobe RGB"
+
+#: libexif/exif-entry.c:803
+msgid "Uncalibrated"
+msgstr "Okalibrerad"
+
+#: libexif/exif-entry.c:857
+#, c-format
+msgid "Invalid size of entry (%i, expected %li x %i)."
+msgstr ""
+
+#: libexif/exif-entry.c:890
+msgid "Unsupported UNICODE string"
+msgstr "UNICODE-strängen stöds inte"
+
+#: libexif/exif-entry.c:898
+msgid "Unsupported JIS string"
+msgstr "JIS-strängen stöds inte"
+
+#: libexif/exif-entry.c:914
+msgid "Tag UserComment does not comply with standard but contains data."
+msgstr ""
+
+#: libexif/exif-entry.c:918
+#, c-format
+msgid "Byte at position %i: 0x%02x"
+msgstr ""
+
+#: libexif/exif-entry.c:927
+msgid "Unknown Exif Version"
+msgstr "Okänd Exif-version"
+
+#: libexif/exif-entry.c:931
+#, c-format
+msgid "Exif Version %d.%d"
+msgstr "Exif version %d.%d"
+
+#: libexif/exif-entry.c:942
+msgid "FlashPix Version 1.0"
+msgstr "FlashPix version 1.0"
+
+#: libexif/exif-entry.c:944
+msgid "FlashPix Version 1.01"
+msgstr "FlashPix version 1.01"
+
+#: libexif/exif-entry.c:946
+msgid "Unknown FlashPix Version"
+msgstr "Okänd FlashPix-version"
+
+#: libexif/exif-entry.c:959 libexif/exif-entry.c:972 libexif/exif-entry.c:1628
+#: libexif/exif-entry.c:1633 libexif/exif-entry.c:1637
+#: libexif/exif-entry.c:1642 libexif/exif-entry.c:1643
+msgid "[None]"
+msgstr "[Ingen]"
+
+#: libexif/exif-entry.c:961
+msgid "(Photographer)"
+msgstr "(Fotograf)"
+
+#: libexif/exif-entry.c:975
+msgid "(Editor)"
+msgstr "(Redigerare)"
+
+#: libexif/exif-entry.c:999 libexif/exif-entry.c:1079
+#: libexif/exif-entry.c:1096 libexif/exif-entry.c:1140
+#, c-format
+msgid "%.02f EV"
+msgstr "%.02f EV"
+
+#: libexif/exif-entry.c:1000
+#, c-format
+msgid " (f/%.01f)"
+msgstr " (f/%.01f)"
+
+#: libexif/exif-entry.c:1034
+#, c-format
+msgid " (35 equivalent: %d mm)"
+msgstr ""
+
+#: libexif/exif-entry.c:1067 libexif/exif-entry.c:1068
+msgid " sec."
+msgstr " s"
+
+#: libexif/exif-entry.c:1082
+#, c-format
+msgid " (1/%d sec.)"
+msgstr " (1/%d s)"
+
+#: libexif/exif-entry.c:1084
+#, c-format
+msgid " (%d sec.)"
+msgstr " (%d s.)"
+
+#: libexif/exif-entry.c:1097
+#, c-format
+msgid " (%.02f cd/m^2)"
+msgstr " (%.02f cd/m^2)"
+
+#: libexif/exif-entry.c:1107
+msgid "DSC"
+msgstr "DSC"
+
+#: libexif/exif-entry.c:1109 libexif/exif-entry.c:1149
+#: libexif/exif-entry.c:1236 libexif/exif-entry.c:1287
+#: libexif/exif-entry.c:1296 libexif/exif-entry.c:1332
+#: libexif/fuji/mnote-fuji-entry.c:236 libexif/fuji/mnote-fuji-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:359
+#, c-format
+msgid "Internal error (unknown value %i)"
+msgstr "Internt fel (okänt värde %i)"
+
+#: libexif/exif-entry.c:1117
+msgid "-"
+msgstr "-"
+
+#: libexif/exif-entry.c:1118
+msgid "Y"
+msgstr "Y"
+
+#: libexif/exif-entry.c:1119
+msgid "Cb"
+msgstr "Cb"
+
+#: libexif/exif-entry.c:1120
+msgid "Cr"
+msgstr "Cr"
+
+#: libexif/exif-entry.c:1121
+msgid "R"
+msgstr "R"
+
+#: libexif/exif-entry.c:1122
+msgid "G"
+msgstr "G"
+
+#: libexif/exif-entry.c:1123
+msgid "B"
+msgstr "B"
+
+#: libexif/exif-entry.c:1124
+#, fuzzy
+msgid "Reserved"
+msgstr "reserverad"
+
+#: libexif/exif-entry.c:1147
+msgid "Directly photographed"
+msgstr ""
+
+#: libexif/exif-entry.c:1160
+msgid "YCbCr4:2:2"
+msgstr "YCbCr4:2:2"
+
+#: libexif/exif-entry.c:1162
+msgid "YCbCr4:2:0"
+msgstr "YCbCr4:2:0"
+
+#: libexif/exif-entry.c:1179
+#, c-format
+msgid "Within distance %i of (x,y) = (%i,%i)"
+msgstr ""
+
+#: libexif/exif-entry.c:1188
+#, c-format
+msgid "Within rectangle (width %i, height %i) around (x,y) = (%i,%i)"
+msgstr ""
+
+#: libexif/exif-entry.c:1194
+#, c-format
+msgid "Unexpected number of components (%li, expected 2, 3, or 4)."
+msgstr ""
+
+#: libexif/exif-entry.c:1232
+msgid "Sea level"
+msgstr "Havsnivå"
+
+#: libexif/exif-entry.c:1234
+msgid "Sea level reference"
+msgstr ""
+
+#: libexif/exif-entry.c:1342
+#, c-format
+msgid "Unknown value %i"
+msgstr "Okänt värde %i"
+
+#: libexif/exif-format.c:37
+msgid "Short"
+msgstr "Kort"
+
+#: libexif/exif-format.c:38
+msgid "Rational"
+msgstr ""
+
+#: libexif/exif-format.c:39
+msgid "SRational"
+msgstr ""
+
+#: libexif/exif-format.c:40
+msgid "Undefined"
+msgstr "Odefinierad"
+
+#: libexif/exif-format.c:41
+msgid "ASCII"
+msgstr "ASCII"
+
+#: libexif/exif-format.c:42
+msgid "Long"
+msgstr "Lång"
+
+#: libexif/exif-format.c:43
+msgid "Byte"
+msgstr "Byte"
+
+#: libexif/exif-format.c:44
+msgid "SByte"
+msgstr ""
+
+#: libexif/exif-format.c:45
+msgid "SShort"
+msgstr ""
+
+#: libexif/exif-format.c:46
+msgid "SLong"
+msgstr ""
+
+#: libexif/exif-format.c:47
+msgid "Float"
+msgstr ""
+
+#: libexif/exif-format.c:48
+msgid "Double"
+msgstr "Dubbel"
+
+#: libexif/exif-loader.c:119
+#, c-format
+msgid "The file '%s' could not be opened."
+msgstr "Filen \"%s\" kunde inte öppnas."
+
+#: libexif/exif-loader.c:300
+msgid "The data supplied does not seem to contain EXIF data."
+msgstr ""
+
+#: libexif/exif-log.c:43
+msgid "Debugging information"
+msgstr "Felsökningsinformation"
+
+#: libexif/exif-log.c:44
+msgid "Debugging information is available."
+msgstr "Felsökningsinformation finns tillgänglig."
+
+#: libexif/exif-log.c:45
+msgid "Not enough memory"
+msgstr "Inte tillräckligt mycket minne"
+
+#: libexif/exif-log.c:46
+msgid "The system cannot provide enough memory."
+msgstr ""
+
+#: libexif/exif-log.c:47
+msgid "Corrupt data"
+msgstr "Skadat data"
+
+#: libexif/exif-log.c:48
+msgid "The data provided does not follow the specification."
+msgstr ""
+
+#: libexif/exif-tag.c:62
+#, fuzzy
+msgid "GPS Tag Version"
+msgstr "Bildbeskrivning"
+
+#: libexif/exif-tag.c:63
+msgid ""
+"Indicates the version of <GPSInfoIFD>. The version is given as 2.0.0.0. This "
+"tag is mandatory when <GPSInfo> tag is present. (Note: The <GPSVersionID> "
+"tag is given in bytes, unlike the <ExifVersion> tag. When the version is "
+"2.0.0.0, the tag value is 02000000.H)."
+msgstr ""
+
+#: libexif/exif-tag.c:69
+msgid "Interoperability Index"
+msgstr ""
+
+#: libexif/exif-tag.c:70
+msgid ""
+"Indicates the identification of the Interoperability rule. Use \"R98\" for "
+"stating ExifR98 Rules. Four bytes used including the termination code "
+"(NULL). see the separate volume of Recommended Exif Interoperability Rules "
+"(ExifR98) for other tags used for ExifR98."
+msgstr ""
+
+#: libexif/exif-tag.c:76
+msgid "North or South Latitude"
+msgstr "Nordlig eller sydlig latitud"
+
+#: libexif/exif-tag.c:77
+msgid ""
+"Indicates whether the latitude is north or south latitude. The ASCII value "
+"'N' indicates north latitude, and 'S' is south latitude."
+msgstr ""
+
+#: libexif/exif-tag.c:81
+msgid "Interoperability Version"
+msgstr ""
+
+#: libexif/exif-tag.c:83
+msgid "Latitude"
+msgstr "Latitud"
+
+#: libexif/exif-tag.c:84
+msgid ""
+"Indicates the latitude. The latitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is dd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is dd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:91
+msgid "East or West Longitude"
+msgstr "Östlig eller västlig longitud"
+
+#: libexif/exif-tag.c:92
+msgid ""
+"Indicates whether the longitude is east or west longitude. ASCII 'E' "
+"indicates east longitude, and 'W' is west longitude."
+msgstr ""
+
+#: libexif/exif-tag.c:95
+msgid "Longitude"
+msgstr "Longitud"
+
+#: libexif/exif-tag.c:96
+msgid ""
+"Indicates the longitude. The longitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is ddd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is ddd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:103
+#, fuzzy
+msgid "Altitude Reference"
+msgstr "Höjdreferens"
+
+#: libexif/exif-tag.c:104
+msgid ""
+"Indicates the altitude used as the reference altitude. If the reference is "
+"sea level and the altitude is above sea level, 0 is given. If the altitude "
+"is below sea level, a value of 1 is given and the altitude is indicated as "
+"an absolute value in the GSPAltitude tag. The reference unit is meters. Note "
+"that this tag is BYTE type, unlike other reference tags."
+msgstr ""
+
+#: libexif/exif-tag.c:110
+msgid "Altitude"
+msgstr "Höjd"
+
+#: libexif/exif-tag.c:111
+msgid ""
+"Indicates the altitude based on the reference in GPSAltitudeRef. Altitude is "
+"expressed as one RATIONAL value. The reference unit is meters."
+msgstr ""
+
+#: libexif/exif-tag.c:114
+#, fuzzy
+msgid "GPS Time (Atomic Clock)"
+msgstr "GPS-tid (atomklocka)"
+
+#: libexif/exif-tag.c:115
+msgid ""
+"Indicates the time as UTC (Coordinated Universal Time). TimeStamp is "
+"expressed as three RATIONAL values giving the hour, minute, and second."
+msgstr ""
+
+#: libexif/exif-tag.c:118
+#, fuzzy
+msgid "GPS Satellites"
+msgstr "GPS-datum"
+
+#: libexif/exif-tag.c:119
+msgid ""
+"Indicates the GPS satellites used for measurements. This tag can be used to "
+"describe the number of satellites, their ID number, angle of elevation, "
+"azimuth, SNR and other information in ASCII notation. The format is not "
+"specified. If the GPS receiver is incapable of taking measurements, value of "
+"the tag shall be set to NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:125
+#, fuzzy
+msgid "GPS Receiver Status"
+msgstr "Status för GPS-mottagare"
+
+#: libexif/exif-tag.c:126
+msgid ""
+"Indicates the status of the GPS receiver when the image is recorded. 'A' "
+"means measurement is in progress, and 'V' means the measurement is "
+"Interoperability."
+msgstr ""
+
+#: libexif/exif-tag.c:129
+#, fuzzy
+msgid "GPS Measurement Mode"
+msgstr "Läge för GPS-mätning"
+
+#: libexif/exif-tag.c:130
+msgid ""
+"Indicates the GPS measurement mode. '2' means two-dimensional measurement "
+"and '3' means three-dimensional measurement is in progress."
+msgstr ""
+
+#: libexif/exif-tag.c:133
+#, fuzzy
+msgid "Measurement Precision"
+msgstr "Mätprecision"
+
+#: libexif/exif-tag.c:134
+msgid ""
+"Indicates the GPS DOP (data degree of precision). An HDOP value is written "
+"during two-dimensional measurement, and PDOP during three-dimensional "
+"measurement."
+msgstr ""
+
+#: libexif/exif-tag.c:137
+#, fuzzy
+msgid "Speed Unit"
+msgstr "Hastighetsenhet"
+
+#: libexif/exif-tag.c:138
+msgid ""
+"Indicates the unit used to express the GPS receiver speed of movement. 'K', "
+"'M' and 'N' represent kilometers per hour, miles per hour, and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:141
+#, fuzzy
+msgid "Speed of GPS Receiver"
+msgstr "Hastighet för GPS-mottagare"
+
+#: libexif/exif-tag.c:142
+msgid "Indicates the speed of GPS receiver movement."
+msgstr ""
+
+#: libexif/exif-tag.c:143
+msgid "Reference for direction of movement"
+msgstr "Referens för rörelseriktning"
+
+#: libexif/exif-tag.c:144
+msgid ""
+"Indicates the reference for giving the direction of GPS receiver movement. "
+"'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:147
+#, fuzzy
+msgid "Direction of Movement"
+msgstr "Rörelseriktning"
+
+#: libexif/exif-tag.c:148
+msgid ""
+"Indicates the direction of GPS receiver movement. The range of values is "
+"from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:150
+#, fuzzy
+msgid "GPS Image Direction Reference"
+msgstr "Bildbeskrivning"
+
+#: libexif/exif-tag.c:151
+msgid ""
+"Indicates the reference for giving the direction of the image when it is "
+"captured. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:153
+#, fuzzy
+msgid "GPS Image Direction"
+msgstr "Bildbeskrivning"
+
+#: libexif/exif-tag.c:154
+msgid ""
+"Indicates the direction of the image when it was captured. The range of "
+"values is from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:156
+msgid "Geodetic Survey Data Used"
+msgstr ""
+
+#: libexif/exif-tag.c:157
+msgid ""
+"Indicates the geodetic survey data used by the GPS receiver. If the survey "
+"data is restricted to Japan, the value of this tag is 'TOKYO' or 'WGS-84'. "
+"If a GPS Info tag is recorded, it is strongly recommended that this tag be "
+"recorded."
+msgstr ""
+
+#: libexif/exif-tag.c:161
+#, fuzzy
+msgid "Reference For Latitude of Destination"
+msgstr "Referens för rörelseriktning"
+
+#: libexif/exif-tag.c:162
+msgid ""
+"Indicates whether the latitude of the destination point is north or south "
+"latitude. The ASCII value 'N' indicates north latitude, and 'S' is south "
+"latitude."
+msgstr ""
+
+#: libexif/exif-tag.c:165
+msgid "Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:166
+msgid ""
+"Indicates the latitude of the destination point. The latitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If latitude is expressed as degrees, minutes and seconds, a "
+"typical format would be dd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be dd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:173
+#, fuzzy
+msgid "Reference for Longitude of Destination"
+msgstr "Referens för rörelseriktning"
+
+#: libexif/exif-tag.c:174
+msgid ""
+"Indicates whether the longitude of the destination point is east or west "
+"longitude. ASCII 'E' indicates east longitude, and 'W' is west longitude."
+msgstr ""
+
+#: libexif/exif-tag.c:177
+msgid "Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:178
+msgid ""
+"Indicates the longitude of the destination point. The longitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If longitude is expressed as degrees, minutes and seconds, a "
+"typical format would be ddd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be ddd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:186
+#, fuzzy
+msgid "Reference for Bearing of Destination"
+msgstr "Referens för rörelseriktning"
+
+#: libexif/exif-tag.c:187
+msgid ""
+"Indicates the reference used for giving the bearing to the destination "
+"point. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:190
+msgid "Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:191
+msgid ""
+"Indicates the bearing to the destination point. The range of values is from "
+"0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:193
+#, fuzzy
+msgid "Reference for Distance to Destination"
+msgstr "Referens för rörelseriktning"
+
+#: libexif/exif-tag.c:194
+msgid ""
+"Indicates the unit used to express the distance to the destination point. "
+"'K', 'M' and 'N' represent kilometers, miles and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:197
+msgid "Distance to Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:198
+msgid "Indicates the distance to the destination point."
+msgstr ""
+
+#: libexif/exif-tag.c:199
+msgid "Name of GPS Processing Method"
+msgstr ""
+
+#: libexif/exif-tag.c:200
+msgid ""
+"A character string recording the name of the method used for location "
+"finding. The first byte indicates the character code used, and this is "
+"followed by the name of the method. Since the Type is not ASCII, NULL "
+"termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:205
+msgid "Name of GPS Area"
+msgstr ""
+
+#: libexif/exif-tag.c:206
+msgid ""
+"A character string recording the name of the GPS area. The first byte "
+"indicates the character code used, and this is followed by the name of the "
+"GPS area. Since the Type is not ASCII, NULL termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:210
+#, fuzzy
+msgid "GPS Date"
+msgstr "GPS-datum"
+
+#: libexif/exif-tag.c:211
+msgid ""
+"A character string recording date and time information relative to UTC "
+"(Coordinated Universal Time). The format is \"YYYY:MM:DD\". The length of "
+"the string is 11 bytes including NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:215
+msgid "GPS Differential Correction"
+msgstr ""
+
+#: libexif/exif-tag.c:216
+msgid ""
+"Indicates whether differential correction is applied to the GPS receiver."
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "New Subfile Type"
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "A general indication of the kind of data contained in this subfile."
+msgstr ""
+
+#: libexif/exif-tag.c:222
+msgid "Image Width"
+msgstr "Bildbredd"
+
+#: libexif/exif-tag.c:223
+msgid ""
+"The number of columns of image data, equal to the number of pixels per row. "
+"In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:227
+msgid "Image Length"
+msgstr "Bildlängd"
+
+#: libexif/exif-tag.c:228
+msgid ""
+"The number of rows of image data. In JPEG compressed data a JPEG marker is "
+"used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:231
+msgid "Bits per Sample"
+msgstr "Bitar per sampling"
+
+#: libexif/exif-tag.c:232
+msgid ""
+"The number of bits per image component. In this standard each component of "
+"the image is 8 bits, so the value for this tag is 8. See also "
+"<SamplesPerPixel>. In JPEG compressed data a JPEG marker is used instead of "
+"this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:237
+msgid "Compression"
+msgstr "Komprimering"
+
+#: libexif/exif-tag.c:238
+msgid ""
+"The compression scheme used for the image data. When a primary image is JPEG "
+"compressed, this designation is not necessary and is omitted. When "
+"thumbnails use JPEG compression, this tag value is set to 6."
+msgstr ""
+
+#: libexif/exif-tag.c:244
+msgid "Photometric Interpretation"
+msgstr ""
+
+#: libexif/exif-tag.c:245
+msgid ""
+"The pixel composition. In JPEG compressed data a JPEG marker is used instead "
+"of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:249
+msgid "Fill Order"
+msgstr ""
+
+#: libexif/exif-tag.c:251
+msgid "Document Name"
+msgstr "Dokumentnamn"
+
+#: libexif/exif-tag.c:253
+msgid "Image Description"
+msgstr "Bildbeskrivning"
+
+#: libexif/exif-tag.c:254
+msgid ""
+"A character string giving the title of the image. It may be a comment such "
+"as \"1988 company picnic\" or the like. Two-bytes character codes cannot be "
+"used. When a 2-bytes code is necessary, the Exif Private tag <UserComment> "
+"is to be used."
+msgstr ""
+
+#: libexif/exif-tag.c:260
+msgid "Manufacturer"
+msgstr "Tillverkare"
+
+#: libexif/exif-tag.c:261
+msgid ""
+"The manufacturer of the recording equipment. This is the manufacturer of the "
+"DSC, scanner, video digitizer or other equipment that generated the image. "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:267
+msgid "Model"
+msgstr "Modell"
+
+#: libexif/exif-tag.c:268
+msgid ""
+"The model name or model number of the equipment. This is the model name or "
+"number of the DSC, scanner, video digitizer or other equipment that "
+"generated the image. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:273
+msgid "Strip Offsets"
+msgstr ""
+
+#: libexif/exif-tag.c:274
+msgid ""
+"For each strip, the byte offset of that strip. It is recommended that this "
+"be selected so the number of strip bytes does not exceed 64 Kbytes. With "
+"JPEG compressed data this designation is not needed and is omitted. See also "
+"<RowsPerStrip> and <StripByteCounts>."
+msgstr ""
+
+#: libexif/exif-tag.c:280
+msgid "Orientation"
+msgstr "Orientering"
+
+#: libexif/exif-tag.c:281
+msgid "The image orientation viewed in terms of rows and columns."
+msgstr ""
+
+#: libexif/exif-tag.c:284
+msgid "Samples per Pixel"
+msgstr ""
+
+#: libexif/exif-tag.c:285
+msgid ""
+"The number of components per pixel. Since this standard applies to RGB and "
+"YCbCr images, the value set for this tag is 3. In JPEG compressed data a "
+"JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:290
+msgid "Rows per Strip"
+msgstr ""
+
+#: libexif/exif-tag.c:291
+msgid ""
+"The number of rows per strip. This is the number of rows in the image of one "
+"strip when an image is divided into strips. With JPEG compressed data this "
+"designation is not needed and is omitted. See also <StripOffsets> and "
+"<StripByteCounts>."
+msgstr ""
+
+#: libexif/exif-tag.c:297
+msgid "Strip Byte Count"
+msgstr ""
+
+#: libexif/exif-tag.c:298
+msgid ""
+"The total number of bytes in each strip. With JPEG compressed data this "
+"designation is not needed and is omitted."
+msgstr ""
+
+#: libexif/exif-tag.c:301
+#, fuzzy
+msgid "X-Resolution"
+msgstr "Upplösningsenhet"
+
+#: libexif/exif-tag.c:302
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageWidth> direction. "
+"When the image resolution is unknown, 72 [dpi] is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:306
+#, fuzzy
+msgid "Y-Resolution"
+msgstr "Upplösningsenhet"
+
+#: libexif/exif-tag.c:307
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageLength> direction. "
+"The same value as <XResolution> is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:311
+msgid "Planar Configuration"
+msgstr ""
+
+#: libexif/exif-tag.c:312
+msgid ""
+"Indicates whether pixel components are recorded in a chunky or planar "
+"format. In JPEG compressed files a JPEG marker is used instead of this tag. "
+"If this field does not exist, the TIFF default of 1 (chunky) is assumed."
+msgstr ""
+
+#: libexif/exif-tag.c:317
+msgid "Resolution Unit"
+msgstr "Upplösningsenhet"
+
+#: libexif/exif-tag.c:318
+msgid ""
+"The unit for measuring <XResolution> and <YResolution>. The same unit is "
+"used for both <XResolution> and <YResolution>. If the image resolution is "
+"unknown, 2 (inches) is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:323
+msgid "Transfer Function"
+msgstr ""
+
+#: libexif/exif-tag.c:324
+msgid ""
+"A transfer function for the image, described in tabular style. Normally this "
+"tag is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:328
+msgid "Software"
+msgstr "Programvara"
+
+#: libexif/exif-tag.c:329
+msgid ""
+"This tag records the name and version of the software or firmware of the "
+"camera or image input device used to generate the image. The detailed format "
+"is not specified, but it is recommended that the example shown below be "
+"followed. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:336
+msgid "Date and Time"
+msgstr "Datum och tid"
+
+#: libexif/exif-tag.c:337
+msgid ""
+"The date and time of image creation. In this standard (EXIF-2.1) it is the "
+"date and time the file was changed."
+msgstr ""
+
+#: libexif/exif-tag.c:340
+msgid "Artist"
+msgstr "Artist"
+
+#: libexif/exif-tag.c:341
+msgid ""
+"This tag records the name of the camera owner, photographer or image "
+"creator. The detailed format is not specified, but it is recommended that "
+"the information be written as in the example below for ease of "
+"Interoperability. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:347 libexif/pentax/mnote-pentax-tag.c:113
+msgid "White Point"
+msgstr "Vitpunkt"
+
+#: libexif/exif-tag.c:348
+msgid ""
+"The chromaticity of the white point of the image. Normally this tag is not "
+"necessary, since color space is specified in the color space information tag "
+"(<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:353
+msgid "Primary Chromaticities"
+msgstr ""
+
+#: libexif/exif-tag.c:354
+msgid ""
+"The chromaticity of the three primary colors of the image. Normally this tag "
+"is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:359
+msgid "Defined by Adobe Corporation to enable TIFF Trees within a TIFF file."
+msgstr ""
+
+#: libexif/exif-tag.c:362
+msgid "Transfer Range"
+msgstr ""
+
+#: libexif/exif-tag.c:366
+msgid "JPEG Interchange Format"
+msgstr ""
+
+#: libexif/exif-tag.c:367
+msgid ""
+"The offset to the start byte (SOI) of JPEG compressed thumbnail data. This "
+"is not used for primary image JPEG data."
+msgstr ""
+
+#: libexif/exif-tag.c:372
+msgid "JPEG Interchange Format Length"
+msgstr ""
+
+#: libexif/exif-tag.c:373
+msgid ""
+"The number of bytes of JPEG compressed thumbnail data. This is not used for "
+"primary image JPEG data. JPEG thumbnails are not divided but are recorded as "
+"a continuous JPEG bitstream from SOI to EOI. Appn and COM markers should not "
+"be recorded. Compressed thumbnails must be recorded in no more than 64 "
+"Kbytes, including all other data to be recorded in APP1."
+msgstr ""
+
+#: libexif/exif-tag.c:382
+msgid "YCbCr Coefficients"
+msgstr ""
+
+#: libexif/exif-tag.c:383
+msgid ""
+"The matrix coefficients for transformation from RGB to YCbCr image data. No "
+"default is given in TIFF; but here the value given in \"Color Space "
+"Guidelines\", is used as the default. The color space is declared in a color "
+"space information tag, with the default being the value that gives the "
+"optimal image characteristics Interoperability this condition."
+msgstr ""
+
+#: libexif/exif-tag.c:392
+msgid "YCbCr Sub-Sampling"
+msgstr ""
+
+#: libexif/exif-tag.c:393
+msgid ""
+"The sampling ratio of chrominance components in relation to the luminance "
+"component. In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:398
+msgid "YCbCr Positioning"
+msgstr ""
+
+#: libexif/exif-tag.c:399
+msgid ""
+"The position of chrominance components in relation to the luminance "
+"component. This field is designated only for JPEG compressed data or "
+"uncompressed YCbCr data. The TIFF default is 1 (centered); but when Y:Cb:Cr "
+"= 4:2:2 it is recommended in this standard that 2 (co-sited) be used to "
+"record data, in order to improve the image quality when viewed on TV "
+"systems. When this field does not exist, the reader shall assume the TIFF "
+"default. In the case of Y:Cb:Cr = 4:2:0, the TIFF default (centered) is "
+"recommended. If the reader does not have the capability of supporting both "
+"kinds of <YCbCrPositioning>, it shall follow the TIFF default regardless of "
+"the value in this field. It is preferable that readers be able to support "
+"both centered and co-sited positioning."
+msgstr ""
+
+#: libexif/exif-tag.c:414
+msgid "Reference Black/White"
+msgstr ""
+
+#: libexif/exif-tag.c:415
+msgid ""
+"The reference black point value and reference white point value. No defaults "
+"are given in TIFF, but the values below are given as defaults here. The "
+"color space is declared in a color space information tag, with the default "
+"being the value that gives the optimal image characteristics "
+"Interoperability these conditions."
+msgstr ""
+
+#: libexif/exif-tag.c:423
+msgid "XML Packet"
+msgstr "XML-paket"
+
+#: libexif/exif-tag.c:423
+msgid "XMP Metadata"
+msgstr "XMP-metadata"
+
+#: libexif/exif-tag.c:438 libexif/exif-tag.c:784
+msgid "CFA Pattern"
+msgstr "CFA-mönster"
+
+#: libexif/exif-tag.c:439 libexif/exif-tag.c:785
+msgid ""
+"Indicates the color filter array (CFA) geometric pattern of the image sensor "
+"when a one-chip color area sensor is used. It does not apply to all sensing "
+"methods."
+msgstr ""
+
+#: libexif/exif-tag.c:443
+msgid "Battery Level"
+msgstr "Batterinivå"
+
+#: libexif/exif-tag.c:444
+msgid "Copyright"
+msgstr "Copyright"
+
+#: libexif/exif-tag.c:445
+msgid ""
+"Copyright information. In this standard the tag is used to indicate both the "
+"photographer and editor copyrights. It is the copyright notice of the person "
+"or organization claiming rights to the image. The Interoperability copyright "
+"statement including date and rights should be written in this field; e.g., "
+"\"Copyright, John Smith, 19xx. All rights reserved.\". In this standard the "
+"field records both the photographer and editor copyrights, with each "
+"recorded in a separate part of the statement. When there is a clear "
+"distinction between the photographer and editor copyrights, these are to be "
+"written in the order of photographer followed by editor copyright, separated "
+"by NULL (in this case, since the statement also ends with a NULL, there are "
+"two NULL codes) (see example 1). When only the photographer is given, it is "
+"terminated by one NULL code (see example 2). When only the editor copyright "
+"is given, the photographer copyright part consists of one space followed by "
+"a terminating NULL code, then the editor copyright is given (see example 3). "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:467
+msgid "Exposure time, given in seconds (sec)."
+msgstr ""
+
+#: libexif/exif-tag.c:469 libexif/pentax/mnote-pentax-tag.c:79
+msgid "F-Number"
+msgstr ""
+
+#: libexif/exif-tag.c:470
+msgid "The F number."
+msgstr ""
+
+#: libexif/exif-tag.c:475
+msgid "Image Resources Block"
+msgstr ""
+
+#: libexif/exif-tag.c:477
+msgid ""
+"A pointer to the Exif IFD. Interoperability, Exif IFD has the same structure "
+"as that of the IFD specified in TIFF. ordinarily, however, it does not "
+"contain image data as in the case of TIFF."
+msgstr ""
+
+#: libexif/exif-tag.c:485
+msgid "Exposure Program"
+msgstr "Exponeringsprogram"
+
+#: libexif/exif-tag.c:486
+msgid ""
+"The class of the program used by the camera to set exposure when the picture "
+"is taken."
+msgstr ""
+
+#: libexif/exif-tag.c:490
+msgid "Spectral Sensitivity"
+msgstr ""
+
+#: libexif/exif-tag.c:491
+msgid ""
+"Indicates the spectral sensitivity of each channel of the camera used. The "
+"tag value is an ASCII string compatible with the standard developed by the "
+"ASTM Technical Committee."
+msgstr ""
+
+#: libexif/exif-tag.c:496
+msgid "GPS Info IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:497
+msgid ""
+"A pointer to the GPS Info IFD. The Interoperability structure of the GPS "
+"Info IFD, like that of Exif IFD, has no image data."
+msgstr ""
+
+#: libexif/exif-tag.c:503
+msgid "ISO Speed Ratings"
+msgstr ""
+
+#: libexif/exif-tag.c:504
+msgid ""
+"Indicates the ISO Speed and ISO Latitude of the camera or input device as "
+"specified in ISO 12232."
+msgstr ""
+
+#: libexif/exif-tag.c:507
+msgid "Opto-Electronic Conversion Function"
+msgstr ""
+
+#: libexif/exif-tag.c:508
+msgid ""
+"Indicates the Opto-Electronic Conversion Function (OECF) specified in ISO "
+"14524. <OECF> is the relationship between the camera optical input and the "
+"image values."
+msgstr ""
+
+#: libexif/exif-tag.c:513
+#, fuzzy
+msgid "Time Zone Offset"
+msgstr "Tidszon"
+
+#: libexif/exif-tag.c:514
+msgid "Encodes time zone of camera clock relative to GMT."
+msgstr ""
+
+#: libexif/exif-tag.c:515
+msgid "Exif Version"
+msgstr "Exif version"
+
+#: libexif/exif-tag.c:516
+msgid ""
+"The version of this standard supported. Nonexistence of this field is taken "
+"to mean nonconformance to the standard."
+msgstr ""
+
+#: libexif/exif-tag.c:520
+#, fuzzy
+msgid "Date and Time (Original)"
+msgstr "Datum och tid (original)"
+
+#: libexif/exif-tag.c:521
+msgid ""
+"The date and time when the original image data was generated. For a digital "
+"still camera the date and time the picture was taken are recorded."
+msgstr ""
+
+#: libexif/exif-tag.c:526
+#, fuzzy
+msgid "Date and Time (Digitized)"
+msgstr "Datum och tid (original)"
+
+#: libexif/exif-tag.c:527
+msgid "The date and time when the image was stored as digital data."
+msgstr ""
+
+#: libexif/exif-tag.c:530
+msgid "Components Configuration"
+msgstr ""
+
+#: libexif/exif-tag.c:531
+msgid ""
+"Information specific to compressed data. The channels of each component are "
+"arranged in order from the 1st component to the 4th. For uncompressed data "
+"the data arrangement is given in the <PhotometricInterpretation> tag. "
+"However, since <PhotometricInterpretation> can only express the order of Y, "
+"Cb and Cr, this tag is provided for cases when compressed data uses "
+"components other than Y, Cb, and Cr and to enable support of other sequences."
+msgstr ""
+
+#: libexif/exif-tag.c:541
+msgid "Compressed Bits per Pixel"
+msgstr ""
+
+#: libexif/exif-tag.c:542
+msgid ""
+"Information specific to compressed data. The compression mode used for a "
+"compressed image is indicated in unit bits per pixel."
+msgstr ""
+
+#: libexif/exif-tag.c:546 libexif/olympus/mnote-olympus-tag.c:123
+msgid "Shutter Speed"
+msgstr "Slutartid"
+
+#: libexif/exif-tag.c:547
+msgid ""
+"Shutter speed. The unit is the APEX (Additive System of Photographic "
+"Exposure) setting."
+msgstr ""
+
+#: libexif/exif-tag.c:551
+msgid "The lens aperture. The unit is the APEX value."
+msgstr ""
+
+#: libexif/exif-tag.c:553
+msgid "Brightness"
+msgstr "Ljusstyrka"
+
+#: libexif/exif-tag.c:554
+msgid ""
+"The value of brightness. The unit is the APEX value. Ordinarily it is given "
+"in the range of -99.99 to 99.99."
+msgstr ""
+
+#: libexif/exif-tag.c:558
+msgid "Exposure Bias"
+msgstr ""
+
+#: libexif/exif-tag.c:559
+msgid ""
+"The exposure bias. The units is the APEX value. Ordinarily it is given in "
+"the range of -99.99 to 99.99."
+msgstr ""
+
+#: libexif/exif-tag.c:562
+msgid "Maximum Aperture Value"
+msgstr "Maximalt bländarvärde"
+
+#: libexif/exif-tag.c:563
+msgid ""
+"The smallest F number of the lens. The unit is the APEX value. Ordinarily it "
+"is given in the range of 00.00 to 99.99, but it is not limited to this range."
+msgstr ""
+
+#: libexif/exif-tag.c:568
+msgid "Subject Distance"
+msgstr ""
+
+#: libexif/exif-tag.c:569
+msgid "The distance to the subject, given in meters."
+msgstr ""
+
+#: libexif/exif-tag.c:572
+msgid "The metering mode."
+msgstr ""
+
+#: libexif/exif-tag.c:574
+msgid "Light Source"
+msgstr "Ljuskälla"
+
+#: libexif/exif-tag.c:575
+msgid "The kind of light source."
+msgstr ""
+
+#: libexif/exif-tag.c:578
+msgid ""
+"This tag is recorded when an image is taken using a strobe light (flash)."
+msgstr ""
+
+#: libexif/exif-tag.c:582
+msgid ""
+"The actual focal length of the lens, in mm. Conversion is not made to the "
+"focal length of a 35 mm film camera."
+msgstr ""
+
+#: libexif/exif-tag.c:585
+msgid "Subject Area"
+msgstr ""
+
+#: libexif/exif-tag.c:586
+msgid ""
+"This tag indicates the location and area of the main subject in the overall "
+"scene."
+msgstr ""
+
+#: libexif/exif-tag.c:590
+msgid "TIFF/EP Standard ID"
+msgstr ""
+
+#: libexif/exif-tag.c:591
+msgid "Maker Note"
+msgstr ""
+
+#: libexif/exif-tag.c:592
+msgid ""
+"A tag for manufacturers of Exif writers to record any desired information. "
+"The contents are up to the manufacturer."
+msgstr ""
+
+#: libexif/exif-tag.c:595
+msgid "User Comment"
+msgstr ""
+
+#: libexif/exif-tag.c:596
+msgid ""
+"A tag for Exif users to write keywords or comments on the image besides "
+"those in <ImageDescription>, and without the character code limitations of "
+"the <ImageDescription> tag. The character code used in the <UserComment> tag "
+"is identified based on an ID code in a fixed 8-byte area at the start of the "
+"tag data area. The unused portion of the area is padded with NULL (\"00.h"
+"\"). ID codes are assigned by means of registration. The designation method "
+"and references for each character code are defined in the specification. The "
+"value of CountN is determined based on the 8 bytes in the character code "
+"area and the number of bytes in the user comment part. Since the TYPE is not "
+"ASCII, NULL termination is not necessary. The ID code for the <UserComment> "
+"area may be a Defined code such as JIS or ASCII, or may be Undefined. The "
+"Undefined name is UndefinedText, and the ID code is filled with 8 bytes of "
+"all \"NULL\" (\"00.H\"). An Exif reader that reads the <UserComment> tag "
+"must have a function for determining the ID code. This function is not "
+"required in Exif readers that do not use the <UserComment> tag. When a "
+"<UserComment> area is set aside, it is recommended that the ID code be ASCII "
+"and that the following user comment part be filled with blank characters [20."
+"H]."
+msgstr ""
+
+#: libexif/exif-tag.c:619
+msgid "Sub-second Time"
+msgstr ""
+
+#: libexif/exif-tag.c:620
+msgid "A tag used to record fractions of seconds for the <DateTime> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:624
+#, fuzzy
+msgid "Sub-second Time (Original)"
+msgstr "Datum och tid (original)"
+
+#: libexif/exif-tag.c:625
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeOriginal> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:629
+msgid "Sub-second Time (Digitized)"
+msgstr ""
+
+#: libexif/exif-tag.c:630
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeDigitized> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:634
+msgid "XP Title"
+msgstr ""
+
+#: libexif/exif-tag.c:635
+msgid "A character string giving the title of the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:639
+msgid "XP Comment"
+msgstr ""
+
+#: libexif/exif-tag.c:640
+msgid ""
+"A character string containing a comment about the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:644
+msgid "XP Author"
+msgstr ""
+
+#: libexif/exif-tag.c:645
+msgid ""
+"A character string containing the name of the image creator, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:649
+msgid "XP Keywords"
+msgstr ""
+
+#: libexif/exif-tag.c:650
+msgid ""
+"A character string containing key words describing the image, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:654
+msgid "XP Subject"
+msgstr ""
+
+#: libexif/exif-tag.c:655
+msgid "A character string giving the image subject, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:659
+msgid "The FlashPix format version supported by a FPXR file."
+msgstr ""
+
+#: libexif/exif-tag.c:661 libexif/pentax/mnote-pentax-tag.c:102
+msgid "Color Space"
+msgstr "Färgrymd"
+
+#: libexif/exif-tag.c:662
+msgid ""
+"The color space information tag is always recorded as the color space "
+"specifier. Normally sRGB (=1) is used to define the color space based on the "
+"PC monitor conditions and environment. If a color space other than sRGB is "
+"used, Uncalibrated (=FFFF.H) is set. Image data recorded as Uncalibrated can "
+"be treated as sRGB when it is converted to FlashPix."
+msgstr ""
+
+#: libexif/exif-tag.c:670
+msgid "Pixel X Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:671
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid width of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file."
+msgstr ""
+
+#: libexif/exif-tag.c:677
+msgid "Pixel Y Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:678
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid height of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file. Since data padding is unnecessary in the "
+"vertical direction, the number of lines recorded in this valid image height "
+"tag will in fact be the same as that recorded in the SOF."
+msgstr ""
+
+#: libexif/exif-tag.c:688
+msgid "Related Sound File"
+msgstr ""
+
+#: libexif/exif-tag.c:689
+msgid ""
+"This tag is used to record the name of an audio file related to the image "
+"data. The only relational information recorded here is the Exif audio file "
+"name and extension (an ASCII string consisting of 8 characters + '.' + 3 "
+"characters). The path is not recorded. Stipulations on audio and file naming "
+"conventions are defined in the specification. When using this tag, audio "
+"files must be recorded in conformance to the Exif audio format. Writers are "
+"also allowed to store the data such as Audio within APP2 as FlashPix "
+"extension stream data. The mapping of Exif image files and audio files is "
+"done in any of three ways, [1], [2] and [3]. If multiple files are mapped to "
+"one file as in [2] or [3], the above format is used to record just one audio "
+"file name. If there are multiple audio files, the first recorded file is "
+"given. In the case of [3], for example, for the Exif image file \"DSC00001."
+"JPG\" only  \"SND00001.WAV\" is given as the related Exif audio file. When "
+"there are three Exif audio files \"SND00001.WAV\", \"SND00002.WAV\" and "
+"\"SND00003.WAV\", the Exif image file name for each of them, \"DSC00001.JPG"
+"\", is indicated. By combining multiple relational information, a variety of "
+"playback possibilities can be supported. The method of using relational "
+"information is left to the implementation on the playback side. Since this "
+"information is an ASCII character string, it is terminated by NULL. When "
+"this tag is used to map audio files, the relation of the audio file to image "
+"data must also be indicated on the audio file end."
+msgstr ""
+
+#: libexif/exif-tag.c:719
+msgid "Interoperability IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:720
+msgid ""
+"Interoperability IFD is composed of tags which stores the information to "
+"ensure the Interoperability and pointed by the following tag located in Exif "
+"IFD. The Interoperability structure of Interoperability IFD is the same as "
+"TIFF defined IFD structure but does not contain the image data "
+"characteristically compared with normal TIFF IFD."
+msgstr ""
+
+#: libexif/exif-tag.c:729
+msgid "Flash Energy"
+msgstr ""
+
+#: libexif/exif-tag.c:730
+msgid ""
+"Indicates the strobe energy at the time the image is captured, as measured "
+"in Beam Candle Power Seconds (BCPS)."
+msgstr ""
+
+#: libexif/exif-tag.c:734
+msgid "Spatial Frequency Response"
+msgstr ""
+
+#: libexif/exif-tag.c:735
+msgid ""
+"This tag records the camera or input device spatial frequency table and SFR "
+"values in the direction of image width, image height, and diagonal "
+"direction, as specified in ISO 12233."
+msgstr ""
+
+#: libexif/exif-tag.c:741
+msgid "Focal Plane X-Resolution"
+msgstr ""
+
+#: libexif/exif-tag.c:742
+msgid ""
+"Indicates the number of pixels in the image width (X) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+
+#: libexif/exif-tag.c:746
+msgid "Focal Plane Y-Resolution"
+msgstr ""
+
+#: libexif/exif-tag.c:747
+msgid ""
+"Indicates the number of pixels in the image height (V) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+
+#: libexif/exif-tag.c:751
+msgid "Focal Plane Resolution Unit"
+msgstr ""
+
+#: libexif/exif-tag.c:752
+msgid ""
+"Indicates the unit for measuring <FocalPlaneXResolution> and "
+"<FocalPlaneYResolution>. This value is the same as the <ResolutionUnit>."
+msgstr ""
+
+#: libexif/exif-tag.c:757
+msgid "Subject Location"
+msgstr ""
+
+#: libexif/exif-tag.c:758
+msgid ""
+"Indicates the location of the main subject in the scene. The value of this "
+"tag represents the pixel at the center of the main subject relative to the "
+"left edge, prior to rotation processing as per the <Rotation> tag. The first "
+"value indicates the X column number and the second indicates the Y row "
+"number."
+msgstr ""
+
+#: libexif/exif-tag.c:765
+msgid "Exposure Index"
+msgstr "Exponeringsindex"
+
+#: libexif/exif-tag.c:766
+msgid ""
+"Indicates the exposure index selected on the camera or input device at the "
+"time the image is captured."
+msgstr ""
+
+#: libexif/exif-tag.c:769
+msgid "Sensing Method"
+msgstr ""
+
+#: libexif/exif-tag.c:770
+msgid "Indicates the image sensor type on the camera or input device."
+msgstr ""
+
+#: libexif/exif-tag.c:773 libexif/fuji/mnote-fuji-tag.c:64
+msgid "File Source"
+msgstr "Filkälla"
+
+#: libexif/exif-tag.c:774
+msgid ""
+"Indicates the image source. If a DSC recorded the image, the tag value of "
+"this tag always be set to 3, indicating that the image was recorded on a DSC."
+msgstr ""
+
+#: libexif/exif-tag.c:778
+msgid "Scene Type"
+msgstr "Scentyp"
+
+#: libexif/exif-tag.c:779
+msgid ""
+"Indicates the type of scene. If a DSC recorded the image, this tag value "
+"must always be set to 1, indicating that the image was directly photographed."
+msgstr ""
+
+#: libexif/exif-tag.c:789
+msgid "Custom Rendered"
+msgstr ""
+
+#: libexif/exif-tag.c:790
+msgid ""
+"This tag indicates the use of special processing on image data, such as "
+"rendering geared to output. When special processing is performed, the reader "
+"is expected to disable or minimize any further processing."
+msgstr ""
+
+#: libexif/exif-tag.c:796
+msgid ""
+"This tag indicates the exposure mode set when the image was shot. In auto-"
+"bracketing mode, the camera shoots a series of frames of the same scene at "
+"different exposure settings."
+msgstr ""
+
+#: libexif/exif-tag.c:801
+msgid "This tag indicates the white balance mode set when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:805
+msgid "Digital Zoom Ratio"
+msgstr ""
+
+#: libexif/exif-tag.c:806
+msgid ""
+"This tag indicates the digital zoom ratio when the image was shot. If the "
+"numerator of the recorded value is 0, this indicates that digital zoom was "
+"not used."
+msgstr ""
+
+#: libexif/exif-tag.c:811
+#, fuzzy
+msgid "Focal Length in 35mm Film"
+msgstr "Brännvidd"
+
+#: libexif/exif-tag.c:812
+msgid ""
+"This tag indicates the equivalent focal length assuming a 35mm film camera, "
+"in mm. A value of 0 means the focal length is unknown. Note that this tag "
+"differs from the FocalLength tag."
+msgstr ""
+
+#: libexif/exif-tag.c:818
+msgid "Scene Capture Type"
+msgstr ""
+
+#: libexif/exif-tag.c:819
+msgid ""
+"This tag indicates the type of scene that was shot. It can also be used to "
+"record the mode in which the image was shot. Note that this differs from the "
+"scene type <SceneType> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:824
+msgid "Gain Control"
+msgstr ""
+
+#: libexif/exif-tag.c:825
+msgid "This tag indicates the degree of overall image gain adjustment."
+msgstr ""
+
+#: libexif/exif-tag.c:829
+msgid ""
+"This tag indicates the direction of contrast processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:833
+msgid ""
+"This tag indicates the direction of saturation processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:837
+msgid ""
+"This tag indicates the direction of sharpness processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:841
+msgid "Device Setting Description"
+msgstr ""
+
+#: libexif/exif-tag.c:842
+msgid ""
+"This tag indicates information on the picture-taking conditions of a "
+"particular camera model. The tag is used only to indicate the picture-taking "
+"conditions in the reader."
+msgstr ""
+
+#: libexif/exif-tag.c:848
+msgid "Subject Distance Range"
+msgstr ""
+
+#: libexif/exif-tag.c:849
+msgid "This tag indicates the distance to the subject."
+msgstr ""
+
+#: libexif/exif-tag.c:851
+msgid "Image Unique ID"
+msgstr ""
+
+#: libexif/exif-tag.c:852
+msgid ""
+"This tag indicates an identifier assigned uniquely to each image. It is "
+"recorded as an ASCII string equivalent to hexadecimal notation and 128-bit "
+"fixed length."
+msgstr ""
+
+#: libexif/exif-tag.c:857
+msgid "Gamma"
+msgstr "Gamma"
+
+#: libexif/exif-tag.c:858
+msgid "Indicates the value of coefficient gamma."
+msgstr ""
+
+#: libexif/exif-tag.c:860
+msgid "PRINT Image Matching"
+msgstr ""
+
+#: libexif/exif-tag.c:861
+msgid "Related to Epson's PRINT Image Matching technology"
+msgstr ""
+
+#: libexif/exif-tag.c:863
+msgid "Padding"
+msgstr ""
+
+#: libexif/exif-tag.c:864
+msgid ""
+"This tag reserves space that can be reclaimed later when additional metadata "
+"are added. New metadata can be written in place by replacing this tag with a "
+"smaller data element and using the reclaimed space to store the new or "
+"expanded metadata tags."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:62
+msgid "Softest"
+msgstr "Mjukaste"
+
+#: libexif/fuji/mnote-fuji-entry.c:66
+msgid "Hardest"
+msgstr "Hårdaste"
+
+#: libexif/fuji/mnote-fuji-entry.c:67 libexif/fuji/mnote-fuji-entry.c:96
+msgid "Medium soft"
+msgstr "Medelmjuk"
+
+#: libexif/fuji/mnote-fuji-entry.c:68 libexif/fuji/mnote-fuji-entry.c:94
+msgid "Medium hard"
+msgstr "Medelhård"
+
+#: libexif/fuji/mnote-fuji-entry.c:69 libexif/fuji/mnote-fuji-entry.c:90
+#: libexif/fuji/mnote-fuji-entry.c:98 libexif/fuji/mnote-fuji-entry.c:182
+msgid "Film simulation mode"
+msgstr "Filmsimuleringsläge"
+
+#: libexif/fuji/mnote-fuji-entry.c:79
+msgid "Incandescent"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:85
+msgid "Medium high"
+msgstr "Medelhög"
+
+#: libexif/fuji/mnote-fuji-entry.c:87
+msgid "Medium low"
+msgstr "Medellåg"
+
+#: libexif/fuji/mnote-fuji-entry.c:88 libexif/fuji/mnote-fuji-entry.c:97
+msgid "Original"
+msgstr "Original"
+
+#: libexif/fuji/mnote-fuji-entry.c:124 libexif/pentax/mnote-pentax-entry.c:164
+#: libexif/pentax/mnote-pentax-entry.c:299
+msgid "Program AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:125
+#, fuzzy
+msgid "Natural photo"
+msgstr "Mättnad"
+
+#: libexif/fuji/mnote-fuji-entry.c:126
+msgid "Vibration reduction"
+msgstr "Vibrationsminskning"
+
+#: libexif/fuji/mnote-fuji-entry.c:127
+msgid "Sunset"
+msgstr "Solnedgång"
+
+#: libexif/fuji/mnote-fuji-entry.c:128 libexif/pentax/mnote-pentax-entry.c:181
+msgid "Museum"
+msgstr "Museum"
+
+#: libexif/fuji/mnote-fuji-entry.c:129
+msgid "Party"
+msgstr "Fest"
+
+#: libexif/fuji/mnote-fuji-entry.c:130
+msgid "Flower"
+msgstr "Blomma"
+
+#: libexif/fuji/mnote-fuji-entry.c:131 libexif/pentax/mnote-pentax-entry.c:176
+msgid "Text"
+msgstr "Text"
+
+#: libexif/fuji/mnote-fuji-entry.c:132
+#, fuzzy
+msgid "NP & flash"
+msgstr "ingen blixt"
+
+#: libexif/fuji/mnote-fuji-entry.c:137
+msgid "Aperture priority AE"
+msgstr "Bländarprioritet AE"
+
+#: libexif/fuji/mnote-fuji-entry.c:138
+msgid "Shutter priority AE"
+msgstr "Slutarprioritet AE"
+
+#: libexif/fuji/mnote-fuji-entry.c:146
+#, fuzzy
+msgid "F-Standard"
+msgstr "Standard"
+
+#: libexif/fuji/mnote-fuji-entry.c:147
+msgid "F-Chrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:148
+msgid "F-B&W"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:151
+msgid "No blur"
+msgstr "Ingen oskärpa"
+
+#: libexif/fuji/mnote-fuji-entry.c:152
+msgid "Blur warning"
+msgstr "Varning för oskärpa"
+
+#: libexif/fuji/mnote-fuji-entry.c:155
+#, fuzzy
+msgid "Focus good"
+msgstr "Fokusläge"
+
+#: libexif/fuji/mnote-fuji-entry.c:156
+msgid "Out of focus"
+msgstr "Oskärpa"
+
+#: libexif/fuji/mnote-fuji-entry.c:159
+msgid "AE good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:160
+msgid "Over exposed"
+msgstr "Överexponerat"
+
+#: libexif/fuji/mnote-fuji-entry.c:164
+msgid "Wide"
+msgstr "Bred"
+
+#: libexif/fuji/mnote-fuji-entry.c:167
+msgid "F0/Standard"
+msgstr "F0/Standard"
+
+#: libexif/fuji/mnote-fuji-entry.c:168
+msgid "F1/Studio portrait"
+msgstr "F1/Studioporträtt"
+
+#: libexif/fuji/mnote-fuji-entry.c:169
+msgid "F1a/Professional portrait"
+msgstr "F1a/Professionellt porträtt"
+
+#: libexif/fuji/mnote-fuji-entry.c:170
+msgid "F1b/Professional portrait"
+msgstr "F1b/Professionellt porträtt"
+
+#: libexif/fuji/mnote-fuji-entry.c:171
+msgid "F1c/Professional portrait"
+msgstr "F1c/Professionellt porträtt"
+
+#: libexif/fuji/mnote-fuji-entry.c:172
+msgid "F2/Fujichrome"
+msgstr "F2/Fujichrome"
+
+#: libexif/fuji/mnote-fuji-entry.c:173
+msgid "F3/Studio portrait Ex"
+msgstr "F3/Studio portrait Ex"
+
+#: libexif/fuji/mnote-fuji-entry.c:174
+msgid "F4/Velvia"
+msgstr "F4/Velvia"
+
+#: libexif/fuji/mnote-fuji-entry.c:177
+msgid "Auto (100-400%)"
+msgstr "Auto (100-400%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:179
+msgid "Standard (100%)"
+msgstr "Standard (100%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:180
+msgid "Wide1 (230%)"
+msgstr "Bred1 (230%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:181
+msgid "Wide2 (400%)"
+msgstr "Bred2 (400%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:263
+#, c-format
+msgid "%2.2f mm"
+msgstr "%2.2f mm"
+
+#: libexif/fuji/mnote-fuji-entry.c:298 libexif/pentax/mnote-pentax-entry.c:399
+#: libexif/pentax/mnote-pentax-entry.c:451
+#, c-format
+msgid "%i bytes unknown data"
+msgstr "%i byte okänt data"
+
+#: libexif/fuji/mnote-fuji-tag.c:36
+msgid "Maker Note Version"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:37
+msgid "This number is unique and based on the date of manufacture."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:41
+#, fuzzy
+msgid "Chromaticity Saturation"
+msgstr "Mättnad"
+
+#: libexif/fuji/mnote-fuji-tag.c:44
+msgid "Flash Firing Strength Compensation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:46
+msgid "Focusing Mode"
+msgstr "Fokuseringsläge"
+
+#: libexif/fuji/mnote-fuji-tag.c:47
+msgid "Focus Point"
+msgstr "Fokuseringspunkt"
+
+#: libexif/fuji/mnote-fuji-tag.c:48
+msgid "Slow Synchro Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:49 libexif/pentax/mnote-pentax-tag.c:72
+msgid "Picture Mode"
+msgstr "Bildläge"
+
+#: libexif/fuji/mnote-fuji-tag.c:50
+#, fuzzy
+msgid "Continuous Taking"
+msgstr "Kontinuerlig, hög"
+
+#: libexif/fuji/mnote-fuji-tag.c:51
+#, fuzzy
+msgid "Continuous Sequence Number"
+msgstr "Sekvensnummer"
+
+#: libexif/fuji/mnote-fuji-tag.c:52
+msgid "FinePix Color"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:53
+msgid "Blur Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:54
+msgid "Auto Focus Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:55
+#, fuzzy
+msgid "Auto Exposure Check"
+msgstr "Automatisk exponering"
+
+#: libexif/fuji/mnote-fuji-tag.c:56
+msgid "Dynamic Range"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:57
+msgid "Film Simulation Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:58
+msgid "Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:59
+msgid "Development Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:60
+#, fuzzy
+msgid "Minimum Focal Length"
+msgstr "Brännvidd"
+
+#: libexif/fuji/mnote-fuji-tag.c:61
+#, fuzzy
+msgid "Maximum Focal Length"
+msgstr "Brännvidd"
+
+#: libexif/fuji/mnote-fuji-tag.c:62
+msgid "Maximum Aperture at Minimum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:63
+msgid "Maximum Aperture at Maximum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:65
+#, fuzzy
+msgid "Order Number"
+msgstr "Serienummer"
+
+#: libexif/fuji/mnote-fuji-tag.c:66 libexif/pentax/mnote-pentax-tag.c:98
+msgid "Frame Number"
+msgstr "Bildnummer"
+
+#: libexif/olympus/mnote-olympus-entry.c:49
+#, c-format
+msgid "Invalid format '%s', expected '%s' or '%s'."
+msgstr "Ogiltigt format \"%s\", förväntade \"%s\" eller \"%s\"."
+
+#: libexif/olympus/mnote-olympus-entry.c:89
+msgid "AF non D lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:91
+msgid "AF-D or AF-S lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:92
+msgid "AF-D G lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:93
+msgid "AF-D VR lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:94
+msgid "AF-D G VR lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:98
+msgid "Flash unit unknown"
+msgstr "Blixtenhet okänd"
+
+#: libexif/olympus/mnote-olympus-entry.c:99
+msgid "Flash is external"
+msgstr "Blixt är extern"
+
+#: libexif/olympus/mnote-olympus-entry.c:100
+#, fuzzy
+msgid "Flash is on camera"
+msgstr "Blixt finns i kamera"
+
+#: libexif/olympus/mnote-olympus-entry.c:103
+#, fuzzy
+msgid "VGA basic"
+msgstr "VGA Grundläggande"
+
+#: libexif/olympus/mnote-olympus-entry.c:104
+#, fuzzy
+msgid "VGA normal"
+msgstr "VGA Normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:105
+#, fuzzy
+msgid "VGA fine"
+msgstr "VGA Fin"
+
+#: libexif/olympus/mnote-olympus-entry.c:106
+#, fuzzy
+msgid "SXGA basic"
+msgstr "SXGA Grundläggande"
+
+#: libexif/olympus/mnote-olympus-entry.c:107
+#, fuzzy
+msgid "SXGA normal"
+msgstr "SXGA Normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:108
+#, fuzzy
+msgid "SXGA fine"
+msgstr "SXGA Fin"
+
+#: libexif/olympus/mnote-olympus-entry.c:109
+msgid "2 Mpixel basic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:110
+msgid "2 Mpixel normal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:111
+msgid "2 Mpixel fine"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:114
+msgid "Color"
+msgstr "Färg"
+
+#: libexif/olympus/mnote-olympus-entry.c:119
+msgid "Bright+"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:120
+msgid "Bright-"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:121
+msgid "Contrast+"
+msgstr "Kontrast+"
+
+#: libexif/olympus/mnote-olympus-entry.c:122
+msgid "Contrast-"
+msgstr "Kontrast-"
+
+#: libexif/olympus/mnote-olympus-entry.c:125
+msgid "ISO 80"
+msgstr "ISO 80"
+
+#: libexif/olympus/mnote-olympus-entry.c:126
+msgid "ISO 160"
+msgstr "ISO 160"
+
+#: libexif/olympus/mnote-olympus-entry.c:127
+msgid "ISO 320"
+msgstr "ISO 320"
+
+#: libexif/olympus/mnote-olympus-entry.c:128
+#: libexif/olympus/mnote-olympus-entry.c:246
+msgid "ISO 100"
+msgstr "ISO 100"
+
+#: libexif/olympus/mnote-olympus-entry.c:132
+msgid "Preset"
+msgstr "Förval"
+
+#: libexif/olympus/mnote-olympus-entry.c:134
+msgid "Incandescence"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:135
+msgid "Fluorescence"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:137
+msgid "SpeedLight"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:140
+#, fuzzy
+msgid "No fisheye"
+msgstr "Inget fisköga"
+
+#: libexif/olympus/mnote-olympus-entry.c:141
+#, fuzzy
+msgid "Fisheye on"
+msgstr "Fisköga på"
+
+#: libexif/olympus/mnote-olympus-entry.c:144
+msgid "Normal, SQ"
+msgstr "Normal, SQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:145
+msgid "Normal, HQ"
+msgstr "Normal, HQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:146
+msgid "Normal, SHQ"
+msgstr "Normal, SHQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:147
+msgid "Normal, RAW"
+msgstr "Normal, RAW"
+
+#: libexif/olympus/mnote-olympus-entry.c:148
+msgid "Normal, SQ1"
+msgstr "Normal, SQ1"
+
+#: libexif/olympus/mnote-olympus-entry.c:149
+msgid "Normal, SQ2"
+msgstr "Normal, SQ2"
+
+#: libexif/olympus/mnote-olympus-entry.c:150
+msgid "Normal, super high"
+msgstr "Normal, superhög"
+
+#: libexif/olympus/mnote-olympus-entry.c:151
+msgid "Normal, standard"
+msgstr "Normal, standard"
+
+#: libexif/olympus/mnote-olympus-entry.c:152
+msgid "Fine, SQ"
+msgstr "Fin, SQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:153
+msgid "Fine, HQ"
+msgstr "Fin, HQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:154
+msgid "Fine, SHQ"
+msgstr "Fin, SHQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:155
+msgid "Fine, RAW"
+msgstr "Fin, RAW"
+
+#: libexif/olympus/mnote-olympus-entry.c:156
+msgid "Fine, SQ1"
+msgstr "Fin, SQ1"
+
+#: libexif/olympus/mnote-olympus-entry.c:157
+msgid "Fine, SQ2"
+msgstr "Fin, SQ2"
+
+#: libexif/olympus/mnote-olympus-entry.c:158
+msgid "Fine, super high"
+msgstr "Fin, superhög"
+
+#: libexif/olympus/mnote-olympus-entry.c:159
+msgid "Super fine, SQ"
+msgstr "Superfin, SQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:160
+msgid "Super fine, HQ"
+msgstr "Superfin, HQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:161
+msgid "Super fine, SHQ"
+msgstr "Superfin, SHQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:162
+msgid "Super fine, RAW"
+msgstr "Superfin, RAW"
+
+#: libexif/olympus/mnote-olympus-entry.c:163
+msgid "Super fine, SQ1"
+msgstr "Superfin, SQ1"
+
+#: libexif/olympus/mnote-olympus-entry.c:164
+msgid "Super fine, SQ2"
+msgstr "Superfin, SQ2"
+
+#: libexif/olympus/mnote-olympus-entry.c:165
+msgid "Super fine, super high"
+msgstr "Superfin, superhög"
+
+#: libexif/olympus/mnote-olympus-entry.c:166
+msgid "Super fine, high"
+msgstr "Superfin, hög"
+
+#: libexif/olympus/mnote-olympus-entry.c:169
+#: libexif/olympus/mnote-olympus-entry.c:174
+#: libexif/olympus/mnote-olympus-entry.c:208
+#: libexif/olympus/mnote-olympus-entry.c:217
+#: libexif/olympus/mnote-olympus-entry.c:240
+msgid "No"
+msgstr "Nej"
+
+#: libexif/olympus/mnote-olympus-entry.c:180
+msgid "On (Preset)"
+msgstr "På (förval)"
+
+#: libexif/olympus/mnote-olympus-entry.c:185
+msgid "Fill"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:192
+#, fuzzy
+msgid "Internal + external"
+msgstr "Intern + Extern"
+
+#: libexif/olympus/mnote-olympus-entry.c:221
+msgid "Interlaced"
+msgstr "Flätad"
+
+#: libexif/olympus/mnote-olympus-entry.c:222
+msgid "Progressive"
+msgstr "Progressiv"
+
+#: libexif/olympus/mnote-olympus-entry.c:228
+#: libexif/pentax/mnote-pentax-entry.c:85
+#: libexif/pentax/mnote-pentax-entry.c:139
+msgid "Best"
+msgstr "Bäst"
+
+#: libexif/olympus/mnote-olympus-entry.c:229
+#, fuzzy
+msgid "Adjust exposure"
+msgstr "Justera exponering"
+
+#: libexif/olympus/mnote-olympus-entry.c:232
+#, fuzzy
+msgid "Spot focus"
+msgstr "Punktfokus"
+
+#: libexif/olympus/mnote-olympus-entry.c:233
+#, fuzzy
+msgid "Normal focus"
+msgstr "Normalt fokus"
+
+#: libexif/olympus/mnote-olympus-entry.c:236
+msgid "Record while down"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:237
+msgid "Press start, press stop"
+msgstr "Tryck start, tryck stopp"
+
+#: libexif/olympus/mnote-olympus-entry.c:245
+msgid "ISO 50"
+msgstr "ISO 50"
+
+#: libexif/olympus/mnote-olympus-entry.c:247
+msgid "ISO 200"
+msgstr "ISO 200"
+
+#: libexif/olympus/mnote-olympus-entry.c:248
+msgid "ISO 400"
+msgstr "ISO 400"
+
+#: libexif/olympus/mnote-olympus-entry.c:252
+#: libexif/pentax/mnote-pentax-entry.c:168
+msgid "Sport"
+msgstr "Sport"
+
+#: libexif/olympus/mnote-olympus-entry.c:253
+msgid "TV"
+msgstr "TV"
+
+#: libexif/olympus/mnote-olympus-entry.c:255
+msgid "User 1"
+msgstr "Användare 1"
+
+#: libexif/olympus/mnote-olympus-entry.c:256
+msgid "User 2"
+msgstr "Användare 2"
+
+#: libexif/olympus/mnote-olympus-entry.c:257
+msgid "Lamp"
+msgstr "Lampa"
+
+#: libexif/olympus/mnote-olympus-entry.c:260
+msgid "5 frames/sec"
+msgstr "5 bildrutor/s"
+
+#: libexif/olympus/mnote-olympus-entry.c:261
+msgid "10 frames/sec"
+msgstr "10 bildrutor/s"
+
+#: libexif/olympus/mnote-olympus-entry.c:262
+msgid "15 frames/sec"
+msgstr "15 bildrutor/s"
+
+#: libexif/olympus/mnote-olympus-entry.c:263
+msgid "20 frames/sec"
+msgstr "20 bildrutor/s"
+
+#: libexif/olympus/mnote-olympus-entry.c:375
+#, fuzzy, c-format
+msgid "Red Correction %f, blue Correction %f"
+msgstr "Rödkorrigering %f, blåkorrigering %f"
+
+#: libexif/olympus/mnote-olympus-entry.c:383
+#, c-format
+msgid "%2.2f meters"
+msgstr "%2.2f meter"
+
+#: libexif/olympus/mnote-olympus-entry.c:385
+msgid "No manual focus selection"
+msgstr "Inget manuellt fokusval"
+
+#: libexif/olympus/mnote-olympus-entry.c:411
+msgid "AF position: center"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:412
+#, fuzzy
+msgid "AF position: top"
+msgstr "Fokusposition"
+
+#: libexif/olympus/mnote-olympus-entry.c:413
+msgid "AF position: bottom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:414
+msgid "AF position: left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:415
+msgid "AF position: right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:416
+msgid "AF position: upper-left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:417
+msgid "AF position: upper-right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:418
+msgid "AF position: lower-left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:419
+msgid "AF position: lower-right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:420
+msgid "AF position: far left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:421
+msgid "AF position: far right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:422
+#, fuzzy
+msgid "Unknown AF position"
+msgstr "Okänd AF-position"
+
+#: libexif/olympus/mnote-olympus-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:503
+#, c-format
+msgid "Internal error (unknown value %hi)"
+msgstr "Internt fel (okänt värde %hi)"
+
+#: libexif/olympus/mnote-olympus-entry.c:441
+#: libexif/olympus/mnote-olympus-entry.c:511
+#, c-format
+msgid "Unknown value %hi"
+msgstr "Okänt värde %hi"
+
+#: libexif/olympus/mnote-olympus-entry.c:536
+#: libexif/olympus/mnote-olympus-entry.c:556
+#, c-format
+msgid "Unknown %hu"
+msgstr "Okänd %hu"
+
+#: libexif/olympus/mnote-olympus-entry.c:553
+msgid "2 sec."
+msgstr "2 s"
+
+#: libexif/olympus/mnote-olympus-entry.c:592
+#, fuzzy
+msgid "Fast"
+msgstr "snabb"
+
+#: libexif/olympus/mnote-olympus-entry.c:696
+msgid "Automatic"
+msgstr "Automatisk"
+
+#: libexif/olympus/mnote-olympus-entry.c:726
+#, c-format
+msgid "Manual: %liK"
+msgstr "Manuell: %li K"
+
+#: libexif/olympus/mnote-olympus-entry.c:729
+#, fuzzy
+msgid "Manual: unknown"
+msgstr "Manuell: Okänd"
+
+#: libexif/olympus/mnote-olympus-entry.c:735
+msgid "One-touch"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:791
+#: libexif/olympus/mnote-olympus-entry.c:801
+msgid "Infinite"
+msgstr "Oändlig"
+
+#: libexif/olympus/mnote-olympus-entry.c:809
+#, c-format
+msgid "%i bytes unknown data: "
+msgstr "%i byte okänt data: "
+
+#: libexif/olympus/mnote-olympus-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:53
+msgid "ISO Setting"
+msgstr "ISO-inställning"
+
+#: libexif/olympus/mnote-olympus-tag.c:39
+msgid "Color Mode (?)"
+msgstr "Färgläge (?)"
+
+#: libexif/olympus/mnote-olympus-tag.c:42
+msgid "Image Sharpening"
+msgstr "Bildskärpa"
+
+#: libexif/olympus/mnote-olympus-tag.c:44
+msgid "Flash Setting"
+msgstr "Blixtinställning"
+
+#: libexif/olympus/mnote-olympus-tag.c:46
+msgid "White Balance Fine Adjustment"
+msgstr "Finjustering av vitbalans"
+
+#: libexif/olympus/mnote-olympus-tag.c:47
+#, fuzzy
+msgid "White Balance RB"
+msgstr "Vitbalans"
+
+#: libexif/olympus/mnote-olympus-tag.c:49
+msgid "ISO Selection"
+msgstr "ISO-val"
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+#, fuzzy
+msgid "Preview Image IFD"
+msgstr "Förhandsgranska bild"
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Offset of the preview image directory (IFD) inside the file."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:51
+msgid "Exposurediff ?"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:54
+msgid "Image Boundary"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:56
+msgid "Flash Exposure Bracket Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:57
+#, fuzzy
+msgid "Exposure Bracket Value"
+msgstr "Bländartid"
+
+#: libexif/olympus/mnote-olympus-tag.c:58
+#: libexif/olympus/mnote-olympus-tag.c:96
+msgid "Image Adjustment"
+msgstr "Bildjustering"
+
+#: libexif/olympus/mnote-olympus-tag.c:59
+#, fuzzy
+msgid "Tone Compensation"
+msgstr "Komprimering"
+
+#: libexif/olympus/mnote-olympus-tag.c:60
+msgid "Adapter"
+msgstr "Adapter"
+
+#: libexif/olympus/mnote-olympus-tag.c:62
+msgid "Lens"
+msgstr "Lins"
+
+#: libexif/olympus/mnote-olympus-tag.c:63
+#: libexif/olympus/mnote-olympus-tag.c:135
+#: libexif/olympus/mnote-olympus-tag.c:185
+msgid "Manual Focus Distance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:65
+msgid "Flash Used"
+msgstr "Blixt använd"
+
+#: libexif/olympus/mnote-olympus-tag.c:66
+msgid "AF Focus Position"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:67
+msgid "Bracketing"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:69
+#, fuzzy
+msgid "Lens F Stops"
+msgstr "Linstyp"
+
+#: libexif/olympus/mnote-olympus-tag.c:70
+msgid "Contrast Curve"
+msgstr "Kontrastkurva"
+
+#: libexif/olympus/mnote-olympus-tag.c:71
+#: libexif/olympus/mnote-olympus-tag.c:95
+#: libexif/pentax/mnote-pentax-tag.c:134
+msgid "Color Mode"
+msgstr "Färgläge"
+
+#: libexif/olympus/mnote-olympus-tag.c:72
+msgid "Light Type"
+msgstr "Ljustyp"
+
+#: libexif/olympus/mnote-olympus-tag.c:74
+msgid "Hue Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:76
+#: libexif/olympus/mnote-olympus-tag.c:163
+#: libexif/pentax/mnote-pentax-tag.c:108
+msgid "Noise Reduction"
+msgstr "Brusreducering"
+
+#: libexif/olympus/mnote-olympus-tag.c:79
+msgid "Sensor Pixel Size"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+#, fuzzy
+msgid "Image Data Size"
+msgstr "Bildens datastorlek"
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Size of compressed image data in bytes."
+msgstr "Storlek för komprimerat bilddata i byte."
+
+#: libexif/olympus/mnote-olympus-tag.c:84
+msgid "Total Number of Pictures Taken"
+msgstr "Totalt antal bilder tagna"
+
+#: libexif/olympus/mnote-olympus-tag.c:86
+msgid "Optimize Image"
+msgstr "Optimera bild"
+
+#: libexif/olympus/mnote-olympus-tag.c:88
+msgid "Vari Program"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:89
+msgid "Capture Editor Data"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:90
+msgid "Capture Editor Version"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:97
+#: libexif/olympus/mnote-olympus-tag.c:183
+msgid "CCD Sensitivity"
+msgstr "CCD-känslighet"
+
+#: libexif/olympus/mnote-olympus-tag.c:99
+msgid "Focus"
+msgstr "Fokus"
+
+#: libexif/olympus/mnote-olympus-tag.c:102
+msgid "Converter"
+msgstr "Konverterare"
+
+#: libexif/olympus/mnote-olympus-tag.c:105
+msgid "Thumbnail Image"
+msgstr "Miniatyrbild"
+
+#: libexif/olympus/mnote-olympus-tag.c:106
+msgid "Speed/Sequence/Panorama Direction"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:109
+#, fuzzy
+msgid "Black & White Mode"
+msgstr "Svart och vitt"
+
+#: libexif/olympus/mnote-olympus-tag.c:111
+msgid "Focal Plane Diagonal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:112
+msgid "Lens Distortion Parameters"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:114
+msgid "Info"
+msgstr "Info"
+
+#: libexif/olympus/mnote-olympus-tag.c:115
+msgid "Camera ID"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:116
+msgid "Precapture Frames"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:117
+msgid "White Board"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:118
+#, fuzzy
+msgid "One Touch White Balance"
+msgstr "Vitbalans"
+
+#: libexif/olympus/mnote-olympus-tag.c:119
+#, fuzzy
+msgid "White Balance Bracket"
+msgstr "Vitbalans"
+
+#: libexif/olympus/mnote-olympus-tag.c:120
+#: libexif/pentax/mnote-pentax-tag.c:123
+#, fuzzy
+msgid "White Balance Bias"
+msgstr "Vitbalans"
+
+#: libexif/olympus/mnote-olympus-tag.c:121
+msgid "Data Dump"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:124
+msgid "ISO Value"
+msgstr "ISO-värde"
+
+#: libexif/olympus/mnote-olympus-tag.c:125
+msgid "Aperture Value"
+msgstr "Bländarvärde"
+
+#: libexif/olympus/mnote-olympus-tag.c:126
+msgid "Brightness Value"
+msgstr "Ljusstyrkenivå"
+
+#: libexif/olympus/mnote-olympus-tag.c:128
+msgid "Flash Device"
+msgstr "Blixtenhet"
+
+#: libexif/olympus/mnote-olympus-tag.c:130
+msgid "Sensor Temperature"
+msgstr "Sensortemperatur"
+
+#: libexif/olympus/mnote-olympus-tag.c:131
+msgid "Lens Temperature"
+msgstr "Linstemperatur"
+
+#: libexif/olympus/mnote-olympus-tag.c:132
+msgid "Light Condition"
+msgstr "Ljusförhållande"
+
+#: libexif/olympus/mnote-olympus-tag.c:136
+msgid "Zoom Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:137
+msgid "Focus Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:138
+msgid "Sharpness Setting"
+msgstr "Inställning för skärpa"
+
+#: libexif/olympus/mnote-olympus-tag.c:139
+msgid "Flash Charge Level"
+msgstr "Laddningsnivå för blixt"
+
+#: libexif/olympus/mnote-olympus-tag.c:140
+msgid "Color Matrix"
+msgstr "Färgmatris"
+
+#: libexif/olympus/mnote-olympus-tag.c:141
+msgid "Black Level"
+msgstr "Svartnivå"
+
+#: libexif/olympus/mnote-olympus-tag.c:142
+msgid "White Balance Setting"
+msgstr "Inställning för vitbalans"
+
+#: libexif/olympus/mnote-olympus-tag.c:143
+#: libexif/pentax/mnote-pentax-tag.c:87
+msgid "Red Balance"
+msgstr "Rödbalans"
+
+#: libexif/olympus/mnote-olympus-tag.c:144
+#: libexif/pentax/mnote-pentax-tag.c:86
+msgid "Blue Balance"
+msgstr "Blåbalans"
+
+#: libexif/olympus/mnote-olympus-tag.c:145
+msgid "Color Matrix Number"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:147
+#, fuzzy
+msgid "Flash Exposure Comp"
+msgstr "Exponeringsläge"
+
+#: libexif/olympus/mnote-olympus-tag.c:148
+msgid "Internal Flash Table"
+msgstr "Intern blixttabell"
+
+#: libexif/olympus/mnote-olympus-tag.c:149
+#, fuzzy
+msgid "External Flash G Value"
+msgstr "Extern blixt"
+
+#: libexif/olympus/mnote-olympus-tag.c:150
+#, fuzzy
+msgid "External Flash Bounce"
+msgstr "Extern blixt"
+
+#: libexif/olympus/mnote-olympus-tag.c:151
+msgid "External Flash Zoom"
+msgstr "Zoom för extern blixt"
+
+#: libexif/olympus/mnote-olympus-tag.c:152
+msgid "External Flash Mode"
+msgstr "Läge för extern blixt"
+
+#: libexif/olympus/mnote-olympus-tag.c:153
+msgid "Contrast Setting"
+msgstr "Kontrastinställning"
+
+#: libexif/olympus/mnote-olympus-tag.c:154
+#, fuzzy
+msgid "Sharpness Factor"
+msgstr "Skärpa"
+
+#: libexif/olympus/mnote-olympus-tag.c:155
+msgid "Color Control"
+msgstr "Färgkontroll"
+
+#: libexif/olympus/mnote-olympus-tag.c:156
+#, fuzzy
+msgid "Olympus Image Width"
+msgstr "Bildbredd"
+
+#: libexif/olympus/mnote-olympus-tag.c:157
+msgid "Olympus Image Height"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:158
+msgid "Scene Detect"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:159
+msgid "Compression Ratio"
+msgstr "Komprimeringsnivå"
+
+#: libexif/olympus/mnote-olympus-tag.c:160
+#, fuzzy
+msgid "Preview Image Valid"
+msgstr "Förhandsgranska bild"
+
+#: libexif/olympus/mnote-olympus-tag.c:161
+msgid "AF Result"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:162
+msgid "CCD Scan Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:164
+#, fuzzy
+msgid "Infinity Lens Step"
+msgstr "Oändlig"
+
+#: libexif/olympus/mnote-olympus-tag.c:165
+#, fuzzy
+msgid "Near Lens Step"
+msgstr "Linstyp"
+
+#: libexif/olympus/mnote-olympus-tag.c:166
+msgid "Light Value Center"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:167
+msgid "Light Value Periphery"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:170
+msgid "Sequential Shot"
+msgstr "Sekventiell tagning"
+
+#: libexif/olympus/mnote-olympus-tag.c:171
+msgid "Wide Range"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:172
+msgid "Color Adjustment Mode"
+msgstr "Färgjusteringsläge"
+
+#: libexif/olympus/mnote-olympus-tag.c:174
+msgid "Quick Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:176
+msgid "Voice Memo"
+msgstr "Röstmemo"
+
+#: libexif/olympus/mnote-olympus-tag.c:177
+msgid "Record Shutter Release"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:178
+msgid "Flicker Reduce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:179
+msgid "Optical Zoom"
+msgstr "Optisk zoom"
+
+#: libexif/olympus/mnote-olympus-tag.c:181
+#, fuzzy
+msgid "Light Source Special"
+msgstr "Ljuskälla"
+
+#: libexif/olympus/mnote-olympus-tag.c:182
+msgid "Resaved"
+msgstr "Omsparad"
+
+#: libexif/olympus/mnote-olympus-tag.c:184
+msgid "Scene Select"
+msgstr "Scenval"
+
+#: libexif/olympus/mnote-olympus-tag.c:186
+#, fuzzy
+msgid "Sequence Shot Interval"
+msgstr "Sekvensnummer"
+
+#: libexif/olympus/mnote-olympus-tag.c:189
+#, fuzzy
+msgid "Epson Image Width"
+msgstr "Bildbredd"
+
+#: libexif/olympus/mnote-olympus-tag.c:190
+#, fuzzy
+msgid "Epson Image Height"
+msgstr "Bildlängd"
+
+#: libexif/olympus/mnote-olympus-tag.c:191
+msgid "Epson Software Version"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:80
+#: libexif/pentax/mnote-pentax-entry.c:134
+msgid "Multi-exposure"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:83
+#: libexif/pentax/mnote-pentax-entry.c:137
+msgid "Good"
+msgstr "Bra"
+
+#: libexif/pentax/mnote-pentax-entry.c:84
+#: libexif/pentax/mnote-pentax-entry.c:138
+msgid "Better"
+msgstr "Bättre"
+
+#: libexif/pentax/mnote-pentax-entry.c:92
+msgid "Flash on"
+msgstr "Blixt på"
+
+#: libexif/pentax/mnote-pentax-entry.c:140
+msgid "TIFF"
+msgstr "TIFF"
+
+#: libexif/pentax/mnote-pentax-entry.c:150
+msgid "2560x1920 or 2304x1728"
+msgstr "2560x1920 eller 2304x1728"
+
+#: libexif/pentax/mnote-pentax-entry.c:156
+msgid "2304x1728 or 2592x1944"
+msgstr "2304x1728 eller 2592x1944"
+
+#: libexif/pentax/mnote-pentax-entry.c:158
+msgid "2816x2212 or 2816x2112"
+msgstr "2816x2212 eller 2816x2112"
+
+#: libexif/pentax/mnote-pentax-entry.c:171
+#, fuzzy
+msgid "Surf & snow"
+msgstr "Hav och snö"
+
+#: libexif/pentax/mnote-pentax-entry.c:172
+#, fuzzy
+msgid "Sunset or candlelight"
+msgstr "Solnedgång eller levande ljus"
+
+#: libexif/pentax/mnote-pentax-entry.c:173
+msgid "Autumn"
+msgstr "Höst"
+
+#: libexif/pentax/mnote-pentax-entry.c:178
+#, fuzzy
+msgid "Self portrait"
+msgstr "Självporträtt"
+
+#: libexif/pentax/mnote-pentax-entry.c:179
+msgid "Illustrations"
+msgstr "Illustrationer"
+
+#: libexif/pentax/mnote-pentax-entry.c:180
+#, fuzzy
+msgid "Digital filter"
+msgstr "Digitalt filter"
+
+#: libexif/pentax/mnote-pentax-entry.c:182
+msgid "Food"
+msgstr "Mat"
+
+#: libexif/pentax/mnote-pentax-entry.c:183
+#, fuzzy
+msgid "Green mode"
+msgstr "Grönläge"
+
+#: libexif/pentax/mnote-pentax-entry.c:184
+#, fuzzy
+msgid "Light pet"
+msgstr "Ljustyp"
+
+#: libexif/pentax/mnote-pentax-entry.c:185
+msgid "Dark pet"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:186
+#, fuzzy
+msgid "Medium pet"
+msgstr "Medium 1"
+
+#: libexif/pentax/mnote-pentax-entry.c:188
+#: libexif/pentax/mnote-pentax-entry.c:296
+msgid "Candlelight"
+msgstr "Stearinljus"
+
+#: libexif/pentax/mnote-pentax-entry.c:189
+#, fuzzy
+msgid "Natural skin tone"
+msgstr "Mättnad"
+
+#: libexif/pentax/mnote-pentax-entry.c:190
+msgid "Synchro sound record"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:191
+msgid "Frame composite"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:194
+#, fuzzy
+msgid "Auto, did not fire"
+msgstr "Automatisk, inte utlöst"
+
+#: libexif/pentax/mnote-pentax-entry.c:196
+#, fuzzy
+msgid "Auto, did not fire, red-eye reduction"
+msgstr "Automatisk, inte utlöst, minskning av röda ögon"
+
+#: libexif/pentax/mnote-pentax-entry.c:197
+#, fuzzy
+msgid "Auto, fired"
+msgstr "Automatisk, utlöst"
+
+#: libexif/pentax/mnote-pentax-entry.c:199
+#, fuzzy
+msgid "Auto, fired, red-eye reduction"
+msgstr "Automatisk, utlöst, minskning av röda ögon"
+
+#: libexif/pentax/mnote-pentax-entry.c:201
+#, fuzzy
+msgid "On, wireless"
+msgstr "På, trådlös"
+
+#: libexif/pentax/mnote-pentax-entry.c:202
+#, fuzzy
+msgid "On, soft"
+msgstr "På, mjuk"
+
+#: libexif/pentax/mnote-pentax-entry.c:203
+#, fuzzy
+msgid "On, slow-sync"
+msgstr "På, långsam synk"
+
+#: libexif/pentax/mnote-pentax-entry.c:204
+#, fuzzy
+msgid "On, slow-sync, red-eye reduction"
+msgstr "På, långsam synk, minskning av röda ögon"
+
+#: libexif/pentax/mnote-pentax-entry.c:205
+msgid "On, trailing-curtain sync"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:213
+msgid "AF-S"
+msgstr "AF-S"
+
+#: libexif/pentax/mnote-pentax-entry.c:214
+msgid "AF-C"
+msgstr "AF-C"
+
+#: libexif/pentax/mnote-pentax-entry.c:217
+msgid "Upper-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:218
+msgid "Top"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:219
+msgid "Upper-right"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:221
+msgid "Mid-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:223
+msgid "Mid-right"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:225
+msgid "Lower-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:226
+msgid "Bottom"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:227
+msgid "Lower-right"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:228
+#, fuzzy
+msgid "Fixed center"
+msgstr "Fint väder"
+
+#: libexif/pentax/mnote-pentax-entry.c:232
+msgid "Multiple"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:234
+msgid "Top-center"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:240
+msgid "Bottom-center"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:257
+msgid "User selected"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:282
+msgid "3008x2008 or 3040x2024"
+msgstr "3008x2008 eller 3040x2024"
+
+#: libexif/pentax/mnote-pentax-entry.c:293
+#, fuzzy
+msgid "Digital filter?"
+msgstr "Digitalt filter?"
+
+#: libexif/pentax/mnote-pentax-entry.c:374
+#: libexif/pentax/mnote-pentax-entry.c:383
+#, c-format
+msgid "Internal error (unknown value %i %i)"
+msgstr "Internt fel (okänt värde %i %i)"
+
+#: libexif/pentax/mnote-pentax-tag.c:35 libexif/pentax/mnote-pentax-tag.c:63
+msgid "Capture Mode"
+msgstr "Fångstläge"
+
+#: libexif/pentax/mnote-pentax-tag.c:36 libexif/pentax/mnote-pentax-tag.c:70
+#: libexif/pentax/mnote-pentax-tag.c:129
+msgid "Quality Level"
+msgstr "Kvalitetsnivå"
+
+#: libexif/pentax/mnote-pentax-tag.c:54
+#, fuzzy
+msgid "ISO Speed"
+msgstr "ISO-känslighet"
+
+#: libexif/pentax/mnote-pentax-tag.c:56
+msgid "Colors"
+msgstr "Färger"
+
+#: libexif/pentax/mnote-pentax-tag.c:59
+msgid "PrintIM Settings"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:60 libexif/pentax/mnote-pentax-tag.c:131
+msgid "Time Zone"
+msgstr "Tidszon"
+
+#: libexif/pentax/mnote-pentax-tag.c:61
+msgid "Daylight Savings"
+msgstr "Sommartid"
+
+#: libexif/pentax/mnote-pentax-tag.c:64
+#, fuzzy
+msgid "Preview Size"
+msgstr "Förhandsgranska bild"
+
+#: libexif/pentax/mnote-pentax-tag.c:65
+#, fuzzy
+msgid "Preview Length"
+msgstr "Förhandsgranska bild"
+
+#: libexif/pentax/mnote-pentax-tag.c:66 libexif/pentax/mnote-pentax-tag.c:122
+#, fuzzy
+msgid "Preview Start"
+msgstr "Förhandsgranska bild"
+
+#: libexif/pentax/mnote-pentax-tag.c:67
+msgid "Model Identification"
+msgstr "Modellidentifikation"
+
+#: libexif/pentax/mnote-pentax-tag.c:68
+msgid "Date"
+msgstr "Datum"
+
+#: libexif/pentax/mnote-pentax-tag.c:69
+msgid "Time"
+msgstr "Tid"
+
+#: libexif/pentax/mnote-pentax-tag.c:75
+msgid "AF Point Selected"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:76
+msgid "Auto AF Point"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:77
+msgid "Focus Position"
+msgstr "Fokusposition"
+
+#: libexif/pentax/mnote-pentax-tag.c:80
+msgid "ISO Number"
+msgstr "ISO-nummer"
+
+#: libexif/pentax/mnote-pentax-tag.c:83
+msgid "Auto Bracketing"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:85
+msgid "White Balance Mode"
+msgstr "Vitbalansläge"
+
+#: libexif/pentax/mnote-pentax-tag.c:93
+msgid "World Time Location"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:94
+msgid "Hometown City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:95
+msgid "Destination City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Hometown DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Home Daylight Savings Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination Daylight Savings Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:99
+msgid "Image Processing"
+msgstr "Bildbehandling"
+
+#: libexif/pentax/mnote-pentax-tag.c:100
+msgid "Picture Mode (2)"
+msgstr "Bildläge (2)"
+
+#: libexif/pentax/mnote-pentax-tag.c:103
+msgid "Image Area Offset"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:104
+msgid "Raw Image Size"
+msgstr "Storlek för råbild"
+
+#: libexif/pentax/mnote-pentax-tag.c:105
+msgid "Autofocus Points Used"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:107
+msgid "Camera Temperature"
+msgstr "Kameratemperatur"
+
+#: libexif/pentax/mnote-pentax-tag.c:110
+msgid "Image Tone"
+msgstr "Bildton"
+
+#: libexif/pentax/mnote-pentax-tag.c:111
+msgid "Shake Reduction Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:112
+msgid "Black Point"
+msgstr "Svartpunkt"
+
+#: libexif/pentax/mnote-pentax-tag.c:114
+#, fuzzy
+msgid "AE Info"
+msgstr "Info"
+
+#: libexif/pentax/mnote-pentax-tag.c:115
+msgid "Lens Info"
+msgstr "Linsinformation"
+
+#: libexif/pentax/mnote-pentax-tag.c:116
+msgid "Flash Info"
+msgstr "Blixtinformation"
+
+#: libexif/pentax/mnote-pentax-tag.c:117
+msgid "Camera Info"
+msgstr "Kamerainformation"
+
+#: libexif/pentax/mnote-pentax-tag.c:118
+msgid "Battery Info"
+msgstr "Batteriinformation"
+
+#: libexif/pentax/mnote-pentax-tag.c:119
+msgid "Hometown City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:120
+msgid "Destination City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Object Distance"
+msgstr "Objektavstånd"
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Distance of photographed object in millimeters."
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:126
+msgid "Flash Distance"
+msgstr "Blixtavstånd"
+
+#: libexif/pentax/mnote-pentax-tag.c:132
+msgid "Bestshot Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:133
+msgid "CCS ISO Sensitivity"
+msgstr "CCS ISO-känslighet"
+
+#: libexif/pentax/mnote-pentax-tag.c:135
+msgid "Enhancement"
+msgstr "Förbättring"
+
+#: libexif/pentax/mnote-pentax-tag.c:136
+#, fuzzy
+msgid "Finer"
+msgstr "Fast"
+
+#: test/nls/test-nls.c:20 test/nls/test-nls.c:23 test/nls/test-nls.c:24
+msgid "[DO_NOT_TRANSLATE_THIS_MARKER]"
+msgstr ""
+
+#~ msgid "On + Red-eye reduction"
+#~ msgstr "På + minskning av röda ögon"
+
+#~ msgid "Manual Temperature (Kelvin)"
+#~ msgstr "Manuell temperatur (Kelvin)"
+
+#~ msgid "flash"
+#~ msgstr "blixt"
+
+#~ msgid "%.02lf EV"
+#~ msgstr "%.02lf EV"
+
+#~ msgid "GPS satellites used for measurement"
+#~ msgstr "GPS-satelliter använda för mätning"
+
+#~ msgid "OECF"
+#~ msgstr "OECF"
+
+#~ msgid "Shutter speed"
+#~ msgstr "Slutartid"
+
+#~ msgid "Macro mode"
+#~ msgstr "Makroläge"
+
+#~ msgid "Super Macro"
+#~ msgstr "Supermakro"
+
+#~ msgid "normal"
+#~ msgstr "normal"
+
+#~ msgid "unknown"
+#~ msgstr "okänd"
+
+#~ msgid "panorama"
+#~ msgstr "panorama"
+
+#~ msgid "left to right"
+#~ msgstr "vänster till höger"
+
+#~ msgid "right to left"
+#~ msgstr "höger till vänster"
+
+#~ msgid "Noisereduction"
+#~ msgstr "Brusreducering"
+
+#~ msgid "B&W Mode"
+#~ msgstr "Svartvitt läge"
+
+#~ msgid "Self Timer"
+#~ msgstr "Självutlösare"
+
+#~ msgid "Night-scene"
+#~ msgstr "Nattlig scen"
+
+#~ msgid "Red-eye Reduction"
+#~ msgstr "Minskning av röda ögon"
+
+#~ msgid "Night Scene"
+#~ msgstr "Nattscen"
+
+#~ msgid "%i"
+#~ msgstr "%i"
+
+#~ msgid "%d"
+#~ msgstr "%d"
+
+#~ msgid "Ascii"
+#~ msgstr "Ascii"
+
+#~ msgid "%li"
+#~ msgstr "%li"
+
+#~ msgid "Firmware version"
+#~ msgstr "Version av fast programvara"
+
+#~ msgid "Flash mode"
+#~ msgstr "Blixtläge"
+
+#~ msgid "Digital zoom"
+#~ msgstr "Digitalzoom"
+
+#~ msgid "cloudy"
+#~ msgstr "molnigt"
+
+#~ msgid "Flash did not fire."
+#~ msgstr "Blixt inte utlöst."
+
+#~ msgid "close"
+#~ msgstr "nära"
+
+#, fuzzy
+#~ msgid "Internal error."
+#~ msgstr "Internt fel"
+
+#, fuzzy
+#~ msgid "Internal error (unknown value %i)."
+#~ msgstr "Internt fel (okänt värde %i)"
+
+#~ msgid "SQ"
+#~ msgstr "SQ"
+
+#~ msgid "HQ"
+#~ msgstr "HQ"
+
+#~ msgid "SHQ"
+#~ msgstr "SHQ"
+
+#~ msgid "SQ1"
+#~ msgstr "SQ1"
+
+#~ msgid "SQ2"
+#~ msgstr "SQ2"
+
+#~ msgid "1x"
+#~ msgstr "1x"
+
+#~ msgid "Unknown tag."
+#~ msgstr "Okänd tagg."
+
+#~ msgid "Lenstype"
+#~ msgstr "Linstyp"
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/tr.gmo b/framework/modules/c_LibExifModule/libexif-0.6.20/po/tr.gmo
new file mode 100644
index 0000000000000000000000000000000000000000..1e3da1076b1b9e9954e0f85ea30ffb3d301804f7
Binary files /dev/null and b/framework/modules/c_LibExifModule/libexif-0.6.20/po/tr.gmo differ
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/tr.po b/framework/modules/c_LibExifModule/libexif-0.6.20/po/tr.po
new file mode 100644
index 0000000000000000000000000000000000000000..c567af223f6ece7ab689c4a2f381ac589bb49af2
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/tr.po
@@ -0,0 +1,5501 @@
+# Turkish translation for libexif
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the libexif package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: libexif\n"
+"Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-12-15 22:14-0800\n"
+"PO-Revision-Date: 2010-08-30 11:29+0000\n"
+"Last-Translator: Enes Ateş <e.n.3.s@hotmail.com>\n"
+"Language-Team: Turkish <tr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-12-14 00:37+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: libexif/canon/mnote-canon-entry.c:40 libexif/fuji/mnote-fuji-entry.c:35
+#: libexif/olympus/mnote-olympus-entry.c:37
+#: libexif/pentax/mnote-pentax-entry.c:39
+#, c-format
+msgid "Invalid format '%s', expected '%s'."
+msgstr "Geçersiz format: '%s', beklenen: '%s'."
+
+#: libexif/canon/mnote-canon-entry.c:52 libexif/fuji/mnote-fuji-entry.c:47
+#: libexif/olympus/mnote-olympus-entry.c:62
+#: libexif/pentax/mnote-pentax-entry.c:51
+#, c-format
+msgid "Invalid number of components (%i, expected %i)."
+msgstr "Bileşenlerin numarası geçersiz (%i, beklenen: %i)."
+
+#: libexif/canon/mnote-canon-entry.c:61
+#: libexif/olympus/mnote-olympus-entry.c:72
+#: libexif/pentax/mnote-pentax-entry.c:61
+#, c-format
+msgid "Invalid number of components (%i, expected %i or %i)."
+msgstr "Bileşenlerin numarası geçersiz (%i, beklenen: %i ya da %i)."
+
+#: libexif/canon/mnote-canon-entry.c:76 libexif/canon/mnote-canon-entry.c:130
+#: libexif/canon/mnote-canon-entry.c:182 libexif/exif-entry.c:796
+#: libexif/olympus/mnote-olympus-entry.c:196
+#: libexif/olympus/mnote-olympus-tag.c:108
+#: libexif/pentax/mnote-pentax-entry.c:174
+#: libexif/pentax/mnote-pentax-entry.c:209
+#: libexif/pentax/mnote-pentax-entry.c:297
+msgid "Macro"
+msgstr "Makro"
+
+#: libexif/canon/mnote-canon-entry.c:77 libexif/canon/mnote-canon-entry.c:79
+#: libexif/canon/mnote-canon-entry.c:157 libexif/canon/mnote-canon-entry.c:160
+#: libexif/canon/mnote-canon-entry.c:163 libexif/exif-entry.c:674
+#: libexif/exif-entry.c:677 libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/exif-entry.c:745 libexif/fuji/mnote-fuji-entry.c:64
+#: libexif/olympus/mnote-olympus-entry.c:118
+#: libexif/olympus/mnote-olympus-entry.c:195
+#: libexif/olympus/mnote-olympus-entry.c:203
+#: libexif/olympus/mnote-olympus-entry.c:213
+#: libexif/olympus/mnote-olympus-entry.c:586
+#: libexif/pentax/mnote-pentax-entry.c:105
+#: libexif/pentax/mnote-pentax-entry.c:110
+#: libexif/pentax/mnote-pentax-entry.c:115
+#: libexif/pentax/mnote-pentax-entry.c:208
+msgid "Normal"
+msgstr "Normal"
+
+#: libexif/canon/mnote-canon-entry.c:78
+msgid "Economy"
+msgstr "Ekonomi"
+
+#: libexif/canon/mnote-canon-entry.c:80
+msgid "Fine"
+msgstr "İyi"
+
+#: libexif/canon/mnote-canon-entry.c:81 libexif/fuji/mnote-fuji-entry.c:178
+#: libexif/pentax/mnote-pentax-entry.c:141
+msgid "RAW"
+msgstr "RAW"
+
+#: libexif/canon/mnote-canon-entry.c:82
+msgid "Superfine"
+msgstr "Çok iyi"
+
+#: libexif/canon/mnote-canon-entry.c:83 libexif/canon/mnote-canon-entry.c:301
+#: libexif/canon/mnote-canon-entry.c:304 libexif/canon/mnote-canon-entry.c:312
+#: libexif/canon/mnote-canon-entry.c:345 libexif/canon/mnote-canon-entry.c:357
+#: libexif/canon/mnote-canon-entry.c:370 libexif/canon/mnote-canon-entry.c:372
+#: libexif/canon/mnote-canon-entry.c:574 libexif/canon/mnote-canon-entry.c:671
+#: libexif/fuji/mnote-fuji-entry.c:70 libexif/fuji/mnote-fuji-entry.c:103
+#: libexif/fuji/mnote-fuji-entry.c:107 libexif/fuji/mnote-fuji-entry.c:115
+#: libexif/fuji/mnote-fuji-entry.c:142
+#: libexif/olympus/mnote-olympus-entry.c:178
+#: libexif/olympus/mnote-olympus-entry.c:186
+#: libexif/olympus/mnote-olympus-entry.c:251
+#: libexif/olympus/mnote-olympus-entry.c:530
+#: libexif/olympus/mnote-olympus-entry.c:547
+#: libexif/pentax/mnote-pentax-entry.c:195
+#: libexif/pentax/mnote-pentax-entry.c:260
+msgid "Off"
+msgstr "Kapalı"
+
+#: libexif/canon/mnote-canon-entry.c:84 libexif/canon/mnote-canon-entry.c:167
+#: libexif/canon/mnote-canon-entry.c:180 libexif/canon/mnote-canon-entry.c:328
+#: libexif/canon/mnote-canon-entry.c:400 libexif/fuji/mnote-fuji-entry.c:73
+#: libexif/fuji/mnote-fuji-entry.c:101 libexif/fuji/mnote-fuji-entry.c:111
+#: libexif/fuji/mnote-fuji-entry.c:119
+#: libexif/olympus/mnote-olympus-entry.c:131
+#: libexif/olympus/mnote-olympus-entry.c:183
+#: libexif/olympus/mnote-olympus-entry.c:199
+#: libexif/olympus/mnote-olympus-entry.c:244
+#: libexif/pentax/mnote-pentax-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:88
+#: libexif/pentax/mnote-pentax-entry.c:91
+#: libexif/pentax/mnote-pentax-entry.c:97
+#: libexif/pentax/mnote-pentax-entry.c:131
+#: libexif/pentax/mnote-pentax-entry.c:229
+#: libexif/pentax/mnote-pentax-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:290
+msgid "Auto"
+msgstr "Otomatik"
+
+#: libexif/canon/mnote-canon-entry.c:85 libexif/canon/mnote-canon-entry.c:302
+#: libexif/canon/mnote-canon-entry.c:347 libexif/canon/mnote-canon-entry.c:361
+#: libexif/canon/mnote-canon-entry.c:371 libexif/fuji/mnote-fuji-entry.c:102
+#: libexif/fuji/mnote-fuji-entry.c:108 libexif/fuji/mnote-fuji-entry.c:116
+#: libexif/fuji/mnote-fuji-entry.c:143
+#: libexif/olympus/mnote-olympus-entry.c:179
+#: libexif/olympus/mnote-olympus-entry.c:533
+#: libexif/olympus/mnote-olympus-entry.c:550
+#: libexif/pentax/mnote-pentax-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:261
+msgid "On"
+msgstr "Açık"
+
+#: libexif/canon/mnote-canon-entry.c:86 libexif/fuji/mnote-fuji-entry.c:104
+#: libexif/olympus/mnote-olympus-entry.c:184
+#: libexif/pentax/mnote-pentax-entry.c:94
+msgid "Red-eye reduction"
+msgstr "Kırmızı göz düzeltme"
+
+#: libexif/canon/mnote-canon-entry.c:87
+msgid "Slow synchro"
+msgstr "Yavaş eşleme"
+
+#: libexif/canon/mnote-canon-entry.c:88
+#, fuzzy
+msgid "Auto, red-eye reduction"
+msgstr "Otomatik + Kırmızı göz düzeltme"
+
+#: libexif/canon/mnote-canon-entry.c:89
+#: libexif/pentax/mnote-pentax-entry.c:200
+#, fuzzy
+msgid "On, red-eye reduction"
+msgstr "Açık + Kırmızı göz düzeltme"
+
+#: libexif/canon/mnote-canon-entry.c:90
+msgid "External flash"
+msgstr "Harici flaş"
+
+#: libexif/canon/mnote-canon-entry.c:91 libexif/canon/mnote-canon-entry.c:101
+#: libexif/canon/mnote-canon-entry.c:294
+msgid "Single"
+msgstr "Tek"
+
+#: libexif/canon/mnote-canon-entry.c:92 libexif/canon/mnote-canon-entry.c:102
+#: libexif/canon/mnote-canon-entry.c:295
+msgid "Continuous"
+msgstr "Devamlı"
+
+#: libexif/canon/mnote-canon-entry.c:93
+msgid "Movie"
+msgstr "Film"
+
+#: libexif/canon/mnote-canon-entry.c:94
+msgid "Continuous, speed priority"
+msgstr "Devamlı, hız öncelikli"
+
+#: libexif/canon/mnote-canon-entry.c:95
+msgid "Continuous, low"
+msgstr "Devamlı, düşük"
+
+#: libexif/canon/mnote-canon-entry.c:96
+msgid "Continuous, high"
+msgstr "Devamlı, yüksek"
+
+#: libexif/canon/mnote-canon-entry.c:97
+msgid "One-shot AF"
+msgstr "Tek çekim AF"
+
+#: libexif/canon/mnote-canon-entry.c:98
+msgid "AI servo AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:99
+msgid "AI focus AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:100 libexif/canon/mnote-canon-entry.c:103
+msgid "Manual focus"
+msgstr "Elle odaklama"
+
+#: libexif/canon/mnote-canon-entry.c:104 libexif/canon/mnote-canon-entry.c:132
+#: libexif/canon/mnote-canon-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:212
+msgid "Pan focus"
+msgstr "Pan odaklama"
+
+#: libexif/canon/mnote-canon-entry.c:105
+msgid "JPEG"
+msgstr "JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:106
+msgid "CRW+THM"
+msgstr "CRW+THM"
+
+#: libexif/canon/mnote-canon-entry.c:107
+msgid "AVI+THM"
+msgstr "AVI+THM"
+
+#: libexif/canon/mnote-canon-entry.c:108
+msgid "TIF"
+msgstr "TIF"
+
+#: libexif/canon/mnote-canon-entry.c:109
+msgid "TIF+JPEG"
+msgstr "TIF+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:110
+msgid "CR2"
+msgstr "CR2"
+
+#: libexif/canon/mnote-canon-entry.c:111
+msgid "CR2+JPEG"
+msgstr "CR2+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:112
+msgid "Large"
+msgstr "Büyük"
+
+#: libexif/canon/mnote-canon-entry.c:113
+msgid "Medium"
+msgstr "Orta"
+
+#: libexif/canon/mnote-canon-entry.c:114
+msgid "Small"
+msgstr "Küçük"
+
+#: libexif/canon/mnote-canon-entry.c:115
+msgid "Medium 1"
+msgstr "Orta 1"
+
+#: libexif/canon/mnote-canon-entry.c:116
+msgid "Medium 2"
+msgstr "Orta 2"
+
+#: libexif/canon/mnote-canon-entry.c:117
+msgid "Medium 3"
+msgstr "Orta 3"
+
+#: libexif/canon/mnote-canon-entry.c:118
+msgid "Postcard"
+msgstr "Kartpostal"
+
+#: libexif/canon/mnote-canon-entry.c:119
+msgid "Widescreen"
+msgstr "Geniş Ekran"
+
+#: libexif/canon/mnote-canon-entry.c:120
+msgid "Full auto"
+msgstr "Tam otomatik"
+
+#: libexif/canon/mnote-canon-entry.c:121 libexif/canon/mnote-canon-entry.c:179
+#: libexif/canon/mnote-canon-entry.c:201 libexif/canon/mnote-canon-entry.c:285
+#: libexif/canon/mnote-canon-entry.c:392 libexif/exif-entry.c:744
+#: libexif/fuji/mnote-fuji-entry.c:112
+#: libexif/olympus/mnote-olympus-entry.c:90
+#: libexif/olympus/mnote-olympus-entry.c:200
+#: libexif/pentax/mnote-pentax-entry.c:79
+#: libexif/pentax/mnote-pentax-entry.c:102
+#: libexif/pentax/mnote-pentax-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:165
+#: libexif/pentax/mnote-pentax-entry.c:211
+#: libexif/pentax/mnote-pentax-entry.c:250
+msgid "Manual"
+msgstr "El ile"
+
+#: libexif/canon/mnote-canon-entry.c:122 libexif/canon/mnote-canon-entry.c:430
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:755
+#: libexif/fuji/mnote-fuji-entry.c:121 libexif/pentax/mnote-pentax-entry.c:167
+#: libexif/pentax/mnote-pentax-entry.c:301
+msgid "Landscape"
+msgstr "Yatay"
+
+#: libexif/canon/mnote-canon-entry.c:123
+msgid "Fast shutter"
+msgstr "Hızlı deklanşör"
+
+#: libexif/canon/mnote-canon-entry.c:124
+msgid "Slow shutter"
+msgstr "Yavaş deklanşör"
+
+#: libexif/canon/mnote-canon-entry.c:125 libexif/fuji/mnote-fuji-entry.c:123
+#: libexif/olympus/mnote-olympus-entry.c:254
+msgid "Night"
+msgstr "Gece"
+
+#: libexif/canon/mnote-canon-entry.c:126
+msgid "Grayscale"
+msgstr "Gri tonlama"
+
+#: libexif/canon/mnote-canon-entry.c:127 libexif/canon/mnote-canon-entry.c:308
+#: libexif/pentax/mnote-pentax-entry.c:128
+msgid "Sepia"
+msgstr "Sepya"
+
+#: libexif/canon/mnote-canon-entry.c:128 libexif/canon/mnote-canon-entry.c:429
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:753
+#: libexif/fuji/mnote-fuji-entry.c:120 libexif/pentax/mnote-pentax-entry.c:166
+#: libexif/pentax/mnote-pentax-entry.c:291
+#: libexif/pentax/mnote-pentax-entry.c:294
+#: libexif/pentax/mnote-pentax-entry.c:300
+msgid "Portrait"
+msgstr "Portre"
+
+#: libexif/canon/mnote-canon-entry.c:129 libexif/fuji/mnote-fuji-entry.c:122
+msgid "Sports"
+msgstr "Spor"
+
+#: libexif/canon/mnote-canon-entry.c:131 libexif/canon/mnote-canon-entry.c:309
+#: libexif/canon/mnote-canon-entry.c:335 libexif/canon/mnote-canon-entry.c:407
+#: libexif/fuji/mnote-fuji-entry.c:89 libexif/pentax/mnote-pentax-entry.c:127
+msgid "Black & white"
+msgstr "Siyah-beyaz"
+
+#: libexif/canon/mnote-canon-entry.c:133 libexif/canon/mnote-canon-entry.c:305
+msgid "Vivid"
+msgstr "Canlı"
+
+#: libexif/canon/mnote-canon-entry.c:134 libexif/canon/mnote-canon-entry.c:306
+#: libexif/canon/mnote-canon-entry.c:431
+msgid "Neutral"
+msgstr "Nötr"
+
+#: libexif/canon/mnote-canon-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:93
+msgid "Flash off"
+msgstr "Flaş kapalı"
+
+#: libexif/canon/mnote-canon-entry.c:136
+msgid "Long shutter"
+msgstr "Uzun deklanşör"
+
+#: libexif/canon/mnote-canon-entry.c:137 libexif/canon/mnote-canon-entry.c:188
+#: libexif/olympus/mnote-olympus-entry.c:171
+msgid "Super macro"
+msgstr "Süper makro"
+
+#: libexif/canon/mnote-canon-entry.c:138
+msgid "Foliage"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:139
+msgid "Indoor"
+msgstr "İç mekan"
+
+#: libexif/canon/mnote-canon-entry.c:140 libexif/fuji/mnote-fuji-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:175
+msgid "Fireworks"
+msgstr "Havai fişek"
+
+#: libexif/canon/mnote-canon-entry.c:141 libexif/fuji/mnote-fuji-entry.c:133
+msgid "Beach"
+msgstr "Sahil"
+
+#: libexif/canon/mnote-canon-entry.c:142 libexif/canon/mnote-canon-entry.c:344
+#: libexif/canon/mnote-canon-entry.c:416 libexif/fuji/mnote-fuji-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:292
+#: libexif/pentax/mnote-pentax-entry.c:298
+msgid "Underwater"
+msgstr "Sualtı"
+
+#: libexif/canon/mnote-canon-entry.c:143 libexif/fuji/mnote-fuji-entry.c:134
+msgid "Snow"
+msgstr "Karlı"
+
+#: libexif/canon/mnote-canon-entry.c:144
+msgid "Kids & pets"
+msgstr "Çocuklar & hayvanlar"
+
+#: libexif/canon/mnote-canon-entry.c:145
+msgid "Night snapshot"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:146
+msgid "Digital macro"
+msgstr "Sayısal makro"
+
+#: libexif/canon/mnote-canon-entry.c:147
+msgid "My colors"
+msgstr "Renklerim"
+
+#: libexif/canon/mnote-canon-entry.c:148
+msgid "Still image"
+msgstr "Anlık görüntü"
+
+#: libexif/canon/mnote-canon-entry.c:149
+msgid "Color accent"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:150
+msgid "Color swap"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:151
+msgid "Aquarium"
+msgstr "Akvaryum"
+
+#: libexif/canon/mnote-canon-entry.c:152
+msgid "ISO 3200"
+msgstr "ISO 3200"
+
+#: libexif/canon/mnote-canon-entry.c:153 libexif/canon/mnote-canon-entry.c:348
+#: libexif/canon/mnote-canon-entry.c:365 libexif/canon/mnote-canon-entry.c:417
+#: libexif/olympus/mnote-olympus-entry.c:189
+#: libexif/olympus/mnote-olympus-entry.c:226
+#: libexif/olympus/mnote-olympus-entry.c:451
+#: libexif/pentax/mnote-pentax-entry.c:242
+msgid "None"
+msgstr "Hiçbiri"
+
+#: libexif/canon/mnote-canon-entry.c:154
+msgid "2x"
+msgstr "2x"
+
+#: libexif/canon/mnote-canon-entry.c:155
+msgid "4x"
+msgstr "4x"
+
+#: libexif/canon/mnote-canon-entry.c:156 libexif/exif-entry.c:702
+#: libexif/exif-entry.c:732
+msgid "Other"
+msgstr "Diğer"
+
+#: libexif/canon/mnote-canon-entry.c:158 libexif/canon/mnote-canon-entry.c:161
+#: libexif/canon/mnote-canon-entry.c:164 libexif/canon/mnote-canon-entry.c:398
+#: libexif/fuji/mnote-fuji-entry.c:86 libexif/pentax/mnote-pentax-entry.c:112
+#: libexif/pentax/mnote-pentax-entry.c:117
+msgid "High"
+msgstr "Yüksek"
+
+#: libexif/canon/mnote-canon-entry.c:159 libexif/canon/mnote-canon-entry.c:162
+#: libexif/canon/mnote-canon-entry.c:165 libexif/canon/mnote-canon-entry.c:396
+#: libexif/pentax/mnote-pentax-entry.c:111
+#: libexif/pentax/mnote-pentax-entry.c:116
+msgid "Low"
+msgstr "Düşük"
+
+#: libexif/canon/mnote-canon-entry.c:166
+msgid "Auto high"
+msgstr "Otomatik yüksek"
+
+#: libexif/canon/mnote-canon-entry.c:168
+msgid "50"
+msgstr "50"
+
+#: libexif/canon/mnote-canon-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:120
+#: libexif/pentax/mnote-pentax-entry.c:122
+msgid "100"
+msgstr "100"
+
+#: libexif/canon/mnote-canon-entry.c:170
+#: libexif/pentax/mnote-pentax-entry.c:121
+#: libexif/pentax/mnote-pentax-entry.c:123
+msgid "200"
+msgstr "200"
+
+#: libexif/canon/mnote-canon-entry.c:171
+msgid "400"
+msgstr "400"
+
+#: libexif/canon/mnote-canon-entry.c:172
+msgid "800"
+msgstr "800"
+
+#: libexif/canon/mnote-canon-entry.c:173
+msgid "Default"
+msgstr "Varsayılan"
+
+#: libexif/canon/mnote-canon-entry.c:174 libexif/exif-entry.c:698
+msgid "Spot"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:175 libexif/exif-entry.c:696
+msgid "Average"
+msgstr "Ortalama"
+
+#: libexif/canon/mnote-canon-entry.c:176
+msgid "Evaluative"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:177 libexif/exif-entry.c:701
+msgid "Partial"
+msgstr "Kısmi"
+
+#: libexif/canon/mnote-canon-entry.c:178 libexif/exif-entry.c:697
+msgid "Center-weighted average"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:181
+msgid "Not known"
+msgstr "Bilinmiyor"
+
+#: libexif/canon/mnote-canon-entry.c:183
+msgid "Very close"
+msgstr "Çok yakın"
+
+#: libexif/canon/mnote-canon-entry.c:184 libexif/exif-entry.c:797
+msgid "Close"
+msgstr "Kapat"
+
+#: libexif/canon/mnote-canon-entry.c:185
+msgid "Middle range"
+msgstr "Orta menzil"
+
+#: libexif/canon/mnote-canon-entry.c:186
+msgid "Far range"
+msgstr "Uzak menzil"
+
+#: libexif/canon/mnote-canon-entry.c:189
+#: libexif/pentax/mnote-pentax-entry.c:210
+msgid "Infinity"
+msgstr "Sonsuzluk"
+
+#: libexif/canon/mnote-canon-entry.c:190
+msgid "Manual AF point selection"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:191 libexif/canon/mnote-canon-entry.c:349
+msgid "None (MF)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:192
+msgid "Auto-selected"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:193 libexif/canon/mnote-canon-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:224
+#: libexif/pentax/mnote-pentax-entry.c:238
+msgid "Right"
+msgstr "Sağ"
+
+#: libexif/canon/mnote-canon-entry.c:194 libexif/canon/mnote-canon-entry.c:351
+#: libexif/pentax/mnote-pentax-entry.c:222
+#: libexif/pentax/mnote-pentax-entry.c:237
+msgid "Center"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:195 libexif/canon/mnote-canon-entry.c:353
+#: libexif/pentax/mnote-pentax-entry.c:220
+#: libexif/pentax/mnote-pentax-entry.c:236
+msgid "Left"
+msgstr "Sol"
+
+#: libexif/canon/mnote-canon-entry.c:196
+msgid "Auto AF point selection"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:197
+msgid "Easy shooting"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:163
+msgid "Program"
+msgstr "Program"
+
+#: libexif/canon/mnote-canon-entry.c:199
+msgid "Tv-priority"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:200
+msgid "Av-priority"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:202
+msgid "A-DEP"
+msgstr "A-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:203
+msgid "M-DEP"
+msgstr "M-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:204
+msgid "Canon EF 50mm f/1.8"
+msgstr "Canon EF 50mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:205
+msgid "Canon EF 28mm f/2.8"
+msgstr "Canon EF 28mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:206
+msgid "Sigma UC Zoom 35-135mm f/4-5.6"
+msgstr "Sigma UC Zoom 35-135mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:207
+msgid "Tokina AF193-2 19-35mm f/3.5-4.5"
+msgstr "Tokina AF193-2 19-35mm f/3.5-4.5"
+
+#: libexif/canon/mnote-canon-entry.c:208
+msgid "Canon EF 100-300mm F5.6L"
+msgstr "Canon EF 100-300mm F5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:209
+msgid "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+msgstr "Sigma 50mm f/2.8 EX veya 28mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:210
+msgid "Canon EF 35mm f/2"
+msgstr "Canon EF 35mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:211
+msgid "Canon EF 15mm f/2.8"
+msgstr "Canon EF 15mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:212
+msgid "Canon EF 80-200mm f/2.8L"
+msgstr "Canon EF 80-200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:213
+#, fuzzy
+msgid "Tokina AT-X280AF PRO 28-80mm F2.8 Aspherical"
+msgstr "Tokina AT-X280AF PRO 28-80mm F2.8 ASPHERICAL"
+
+#: libexif/canon/mnote-canon-entry.c:214
+msgid "Cosina 100mm f/3.5 Macro AF"
+msgstr "Cosina 100mm f/3.5 Macro AF"
+
+#: libexif/canon/mnote-canon-entry.c:215
+msgid "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+msgstr "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:216
+msgid "Canon EF 50mm f/1.8 MkII"
+msgstr "Canon EF 50mm f/1.8 MkII"
+
+#: libexif/canon/mnote-canon-entry.c:217
+msgid "Tamron SP AF 300mm f/2.8 LD IF"
+msgstr "Tamron SP AF 300mm f/2.8 LD IF"
+
+#: libexif/canon/mnote-canon-entry.c:218
+msgid "Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+msgstr "Canon EF 24mm f/2.8 veya Sigma 15mm f/2.8 EX Fisheye"
+
+#: libexif/canon/mnote-canon-entry.c:219
+msgid "Canon EF 75-300mm f/4-5.6"
+msgstr "Canon EF 75-300mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:220
+msgid "Canon EF 28-80mm f/3.5-5.6"
+msgstr "Canon EF 28-80mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:221
+msgid "Canon EF 28-105mm f/4-5.6"
+msgstr "Canon EF 28-105mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:222
+msgid "Canon EF-S 18-55mm f/3.5-5.6"
+msgstr "Canon EF-S 18-55mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:223
+msgid "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+msgstr "Canon MP-E 65mm f/2.8 1-5x Macro Fotoğraf"
+
+#: libexif/canon/mnote-canon-entry.c:224
+msgid "Canon TS-E 24mm f/3.5L"
+msgstr "Canon TS-E 24mm f/3.5L"
+
+#: libexif/canon/mnote-canon-entry.c:225
+msgid "Canon TS-E 45mm f/2.8"
+msgstr "Canon TS-E 45mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:226
+msgid "Canon TS-E 90mm f/2.8"
+msgstr "Canon TS-E 90mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:227
+msgid "Canon EF 50mm f/1.0L"
+msgstr "Canon EF 50mm f/1.0L"
+
+#: libexif/canon/mnote-canon-entry.c:228
+msgid "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+msgstr "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+
+#: libexif/canon/mnote-canon-entry.c:229
+msgid "Canon EF 600mm f/4L IS"
+msgstr "Canon EF 600mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:230
+msgid "Canon EF 200mm f/1.8L"
+msgstr "Canon EF 200mm f/1.8L"
+
+#: libexif/canon/mnote-canon-entry.c:231
+msgid "Canon EF 300mm f/2.8L"
+msgstr "Canon EF 300mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:232
+msgid "Canon EF 85mm f/1.2L"
+msgstr "Canon EF 85mm f/1.2L"
+
+#: libexif/canon/mnote-canon-entry.c:233
+msgid "Canon EF 400mm f/2.8L"
+msgstr "Canon EF 400mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:234
+msgid "Canon EF 500mm f/4.5L"
+msgstr "Canon EF 500mm f/4.5L"
+
+#: libexif/canon/mnote-canon-entry.c:235
+msgid "Canon EF 300mm f/2.8L IS"
+msgstr "Canon EF 300mm f/2.8L IS"
+
+#: libexif/canon/mnote-canon-entry.c:236
+msgid "Canon EF 500mm f/4L IS"
+msgstr "Canon EF 500mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:237
+msgid "Canon EF 100mm f/2"
+msgstr "Canon EF 100mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:238
+msgid "Sigma 20mm EX f/1.8"
+msgstr "Sigma 20mm EX f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:239
+msgid "Canon EF 200mm f/2.8L"
+msgstr "Canon EF 200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:240
+msgid "Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+msgstr "Sigma 10-20mm F4-5.6 veya 12-24mm f/4.5-5.6 veya 14mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:241
+msgid "Canon EF 35-350mm f/3.5-5.6L"
+msgstr "Canon EF 35-350mm f/3.5-5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:242
+msgid "Canon EF 85mm f/1.8 USM"
+msgstr "Canon EF 85mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:243
+msgid "Canon EF 28-105mm f/3.5-4.5 USM"
+msgstr "Canon EF 28-105mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:244
+msgid "Canon EF 20-35mm f/3.5-4.5 USM"
+msgstr "Canon EF 20-35mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:245
+msgid "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+msgstr "Canon EF 28-70mm f/2.8L veya Sigma 24-70mm EX f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:246
+msgid "Canon EF 70-200mm f/2.8 L"
+msgstr "Canon EF 70-200mm f/2.8 L"
+
+#: libexif/canon/mnote-canon-entry.c:247
+msgid "Canon EF 70-200mm f/2.8 L + x1.4"
+msgstr "Canon EF 70-200mm f/2.8 L + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:248
+msgid "Canon EF 70-200mm f/2.8 L + x2"
+msgstr "Canon EF 70-200mm f/2.8 L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:249
+msgid "Canon EF 28mm f/1.8 USM"
+msgstr "Canon EF 28mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:250
+msgid "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+msgstr "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+
+#: libexif/canon/mnote-canon-entry.c:251
+msgid "Canon EF 200mm f/2.8L II"
+msgstr "Canon EF 200mm f/2.8L II"
+
+#: libexif/canon/mnote-canon-entry.c:252
+msgid "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+msgstr "Canon EF 180mm Macro f/3.5L veya Sigma 180mm EX HSM Macro f/3.5"
+
+#: libexif/canon/mnote-canon-entry.c:253
+msgid "Canon EF 135mm f/2L"
+msgstr "Canon EF 135mm f/2L"
+
+#: libexif/canon/mnote-canon-entry.c:254
+msgid "Canon EF 24-85mm f/3.5-4.5 USM"
+msgstr "Canon EF 24-85mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:255
+msgid "Canon EF 300mm f/4L IS"
+msgstr "Canon EF 300mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:256
+msgid "Canon EF 28-135mm f/3.5-5.6 IS"
+msgstr "Canon EF 28-135mm f/3.5-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:257
+msgid "Canon EF 35mm f/1.4L"
+msgstr "Canon EF 35mm f/1.4L"
+
+#: libexif/canon/mnote-canon-entry.c:258
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:259
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+
+#: libexif/canon/mnote-canon-entry.c:260
+msgid "Canon EF 100-400mm f/4.5-5.6L IS"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS"
+
+#: libexif/canon/mnote-canon-entry.c:261
+msgid "Canon EF 400mm f/2.8L + x2"
+msgstr "Canon EF 400mm f/2.8L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:262
+msgid "Canon EF 70-200mm f/4L"
+msgstr "Canon EF 70-200mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:263
+msgid "Canon EF 100mm f/2.8 Macro"
+msgstr "Canon EF 100mm f/2.8 Macro"
+
+#: libexif/canon/mnote-canon-entry.c:264
+msgid "Canon EF 400mm f/4 DO IS"
+msgstr "Canon EF 400mm f/4 DO IS"
+
+#: libexif/canon/mnote-canon-entry.c:265
+msgid "Canon EF 75-300mm f/4-5.6 IS"
+msgstr "Canon EF 75-300mm f/4-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:266
+msgid "Canon EF 50mm f/1.4"
+msgstr "Canon EF 50mm f/1.4"
+
+#: libexif/canon/mnote-canon-entry.c:267
+msgid "Canon EF 28-80 f/3.5-5.6 USM IV"
+msgstr "Canon EF 28-80 f/3.5-5.6 USM IV"
+
+#: libexif/canon/mnote-canon-entry.c:268
+msgid "Canon EF 28-200mm f/3.5-5.6"
+msgstr "Canon EF 28-200mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:269
+msgid "Canon EF 90-300mm f/4.5-5.6"
+msgstr "Canon EF 90-300mm f/4.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:270
+msgid "Canon EF-S 18-55mm f/3.5-4.5 USM"
+msgstr "Canon EF-S 18-55mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:271
+msgid "Canon EF 70-200mm f/2.8L IS USM"
+msgstr "Canon EF 70-200mm f/2.8L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:272
+msgid "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+msgstr "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:273
+msgid "Canon EF 70-200mm f/2.8L IS USM + x2"
+msgstr "Canon EF 70-200mm f/2.8L IS USM + x2"
+
+#: libexif/canon/mnote-canon-entry.c:274
+msgid "Canon EF 16-35mm f/2.8L"
+msgstr "Canon EF 16-35mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:275
+msgid "Canon EF 24-70mm f/2.8L"
+msgstr "Canon EF 24-70mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:276
+msgid "Canon EF 17-40mm f/4L"
+msgstr "Canon EF 17-40mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:277
+msgid "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+msgstr "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:278
+msgid "Canon EF-S 17-85mm f4-5.6 IS USM"
+msgstr "Canon EF-S 17-85mm f4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:279
+msgid "Canon EF-S10-22mm F3.5-4.5 USM"
+msgstr "Canon EF-S10-22mm F3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:280
+msgid "Canon EF-S60mm F2.8 Macro USM"
+msgstr "Canon EF-S60mm F2.8 Macro USM"
+
+#: libexif/canon/mnote-canon-entry.c:281
+msgid "Canon EF 24-105mm f/4L IS"
+msgstr "Canon EF 24-105mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:282
+msgid "Canon EF 70-300mm F4-5.6 IS USM"
+msgstr "Canon EF 70-300mm F4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:283
+msgid "Canon EF 50mm F1.2L USM"
+msgstr "Canon EF 50mm F1.2L USM"
+
+#: libexif/canon/mnote-canon-entry.c:284
+msgid "Canon EF 70-200mm f/4L IS USM"
+msgstr "Canon EF 70-200mm f/4L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:286
+msgid "TTL"
+msgstr "TTL"
+
+#: libexif/canon/mnote-canon-entry.c:287
+msgid "A-TTL"
+msgstr "A-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:288
+msgid "E-TTL"
+msgstr "E-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:289
+msgid "FP sync enabled"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:290
+msgid "2nd-curtain sync used"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:291
+msgid "FP sync used"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:292
+#: libexif/olympus/mnote-olympus-entry.c:190
+msgid "Internal"
+msgstr "Dahili"
+
+#: libexif/canon/mnote-canon-entry.c:293
+#: libexif/olympus/mnote-olympus-entry.c:191
+msgid "External"
+msgstr "Harici"
+
+#: libexif/canon/mnote-canon-entry.c:296
+msgid "Normal AE"
+msgstr "Normal AE"
+
+#: libexif/canon/mnote-canon-entry.c:297
+msgid "Exposure compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:298
+msgid "AE lock"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:299
+msgid "AE lock + exposure compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:300
+msgid "No AE"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:303
+msgid "On, shot only"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:307
+msgid "Smooth"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:310 libexif/canon/mnote-canon-entry.c:334
+#: libexif/canon/mnote-canon-entry.c:393 libexif/canon/mnote-canon-entry.c:406
+#: libexif/fuji/mnote-fuji-entry.c:81 libexif/pentax/mnote-pentax-entry.c:87
+msgid "Custom"
+msgstr "Özel"
+
+#: libexif/canon/mnote-canon-entry.c:311
+msgid "My color data"
+msgstr "Renk verilerim"
+
+#: libexif/canon/mnote-canon-entry.c:313 libexif/canon/mnote-canon-entry.c:375
+#: libexif/pentax/mnote-pentax-entry.c:126
+#: libexif/pentax/mnote-pentax-entry.c:145
+msgid "Full"
+msgstr "Tam"
+
+#: libexif/canon/mnote-canon-entry.c:314 libexif/canon/mnote-canon-entry.c:374
+msgid "2/3"
+msgstr "2/3"
+
+#: libexif/canon/mnote-canon-entry.c:315 libexif/canon/mnote-canon-entry.c:373
+msgid "1/3"
+msgstr "1/3"
+
+#: libexif/canon/mnote-canon-entry.c:321
+msgid "Fixed"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:322 libexif/pentax/mnote-pentax-tag.c:44
+msgid "Zoom"
+msgstr "Zum"
+
+#: libexif/canon/mnote-canon-entry.c:329
+msgid "Sunny"
+msgstr "Güneşli"
+
+#: libexif/canon/mnote-canon-entry.c:330 libexif/canon/mnote-canon-entry.c:402
+#: libexif/exif-entry.c:719 libexif/fuji/mnote-fuji-entry.c:75
+#: libexif/olympus/mnote-olympus-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:255
+msgid "Cloudy"
+msgstr "Bulutlu"
+
+#: libexif/canon/mnote-canon-entry.c:331 libexif/canon/mnote-canon-entry.c:403
+#: libexif/exif-entry.c:716 libexif/pentax/mnote-pentax-entry.c:100
+#: libexif/pentax/mnote-pentax-entry.c:249
+msgid "Tungsten"
+msgstr "Tungsten"
+
+#: libexif/canon/mnote-canon-entry.c:332 libexif/canon/mnote-canon-entry.c:404
+#: libexif/exif-entry.c:715 libexif/pentax/mnote-pentax-entry.c:101
+#: libexif/pentax/mnote-pentax-entry.c:248
+msgid "Fluorescent"
+msgstr "Floresan"
+
+#: libexif/canon/mnote-canon-entry.c:333 libexif/canon/mnote-canon-entry.c:405
+#: libexif/exif-entry.c:717 libexif/exif-entry.c:759 libexif/exif-tag.c:577
+#: libexif/fuji/mnote-fuji-entry.c:80 libexif/pentax/mnote-pentax-entry.c:254
+msgid "Flash"
+msgstr "Flaş"
+
+#: libexif/canon/mnote-canon-entry.c:336 libexif/canon/mnote-canon-entry.c:408
+#: libexif/exif-entry.c:720 libexif/pentax/mnote-pentax-entry.c:99
+#: libexif/pentax/mnote-pentax-entry.c:247
+msgid "Shade"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:337 libexif/canon/mnote-canon-entry.c:409
+msgid "Manual temperature (Kelvin)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:338 libexif/canon/mnote-canon-entry.c:410
+msgid "PC set 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:339 libexif/canon/mnote-canon-entry.c:411
+msgid "PC set 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:340 libexif/canon/mnote-canon-entry.c:412
+msgid "PC set 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:341 libexif/canon/mnote-canon-entry.c:413
+#: libexif/exif-entry.c:721 libexif/fuji/mnote-fuji-entry.c:76
+#: libexif/pentax/mnote-pentax-entry.c:251
+msgid "Daylight fluorescent"
+msgstr "Gün ışığı floresan"
+
+#: libexif/canon/mnote-canon-entry.c:342 libexif/canon/mnote-canon-entry.c:414
+msgid "Custom 1"
+msgstr "Özel 1"
+
+#: libexif/canon/mnote-canon-entry.c:343 libexif/canon/mnote-canon-entry.c:415
+msgid "Custom 2"
+msgstr "Özel 2"
+
+#: libexif/canon/mnote-canon-entry.c:346 libexif/exif-entry.c:672
+#: libexif/pentax/mnote-pentax-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:132
+#: libexif/pentax/mnote-pentax-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:295
+msgid "Night scene"
+msgstr "Gece çekimi"
+
+#: libexif/canon/mnote-canon-entry.c:352
+#, fuzzy
+msgid "Center-right"
+msgstr "Orta + Sağ"
+
+#: libexif/canon/mnote-canon-entry.c:354
+#, fuzzy
+msgid "Left-right"
+msgstr "Soldan sağa"
+
+#: libexif/canon/mnote-canon-entry.c:355
+#, fuzzy
+msgid "Left-center"
+msgstr "Sol + Orta"
+
+#: libexif/canon/mnote-canon-entry.c:356
+msgid "All"
+msgstr "Tümü"
+
+#: libexif/canon/mnote-canon-entry.c:358
+msgid "On (shot 1)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:359
+msgid "On (shot 2)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:360
+msgid "On (shot 3)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:362
+msgid "EOS high-end"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:363
+msgid "Compact"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:364
+msgid "EOS mid-range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:366
+msgid "Rotate 90 CW"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:367
+msgid "Rotate 180"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:368
+msgid "Rotate 270 CW"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:369
+msgid "Rotated by software"
+msgstr "Yazılımca döndürülmüş"
+
+#: libexif/canon/mnote-canon-entry.c:381
+#: libexif/olympus/mnote-olympus-entry.c:606
+msgid "Left to right"
+msgstr "Soldan sağa"
+
+#: libexif/canon/mnote-canon-entry.c:382
+#: libexif/olympus/mnote-olympus-entry.c:609
+msgid "Right to left"
+msgstr "Sağdan sola"
+
+#: libexif/canon/mnote-canon-entry.c:383
+#: libexif/olympus/mnote-olympus-entry.c:612
+msgid "Bottom to top"
+msgstr "Aşağıdan yukarıya"
+
+#: libexif/canon/mnote-canon-entry.c:384
+#: libexif/olympus/mnote-olympus-entry.c:615
+msgid "Top to bottom"
+msgstr "Yukarıdan aşağıya"
+
+#: libexif/canon/mnote-canon-entry.c:385
+msgid "2x2 matrix (clockwise)"
+msgstr "2x2 matriks (saat yönünde)"
+
+#: libexif/canon/mnote-canon-entry.c:391 libexif/canon/mnote-canon-entry.c:397
+#: libexif/canon/mnote-canon-entry.c:418 libexif/canon/mnote-canon-entry.c:428
+#: libexif/exif-entry.c:671 libexif/fuji/mnote-fuji-entry.c:84
+#: libexif/fuji/mnote-fuji-entry.c:93 libexif/fuji/mnote-fuji-entry.c:163
+#: libexif/olympus/mnote-olympus-entry.c:227
+msgid "Standard"
+msgstr "Standart"
+
+#: libexif/canon/mnote-canon-entry.c:394
+msgid "N/A"
+msgstr "Yok"
+
+#: libexif/canon/mnote-canon-entry.c:395
+msgid "Lowest"
+msgstr "En düşük"
+
+#: libexif/canon/mnote-canon-entry.c:399
+msgid "Highest"
+msgstr "En yüksek"
+
+#: libexif/canon/mnote-canon-entry.c:401 libexif/exif-entry.c:714
+#: libexif/fuji/mnote-fuji-entry.c:74
+#: libexif/olympus/mnote-olympus-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:98
+#: libexif/pentax/mnote-pentax-entry.c:246
+msgid "Daylight"
+msgstr "Gün ışığı"
+
+#: libexif/canon/mnote-canon-entry.c:419
+msgid "Set 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:420
+msgid "Set 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:421
+msgid "Set 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:422
+#, fuzzy
+msgid "User def. 1"
+msgstr "Kullanıcı Tan. 1"
+
+#: libexif/canon/mnote-canon-entry.c:423
+#, fuzzy
+msgid "User def. 2"
+msgstr "Kullanıcı Tan. 2"
+
+#: libexif/canon/mnote-canon-entry.c:424
+#, fuzzy
+msgid "User def. 3"
+msgstr "Kullanıcı Tan. 3"
+
+#: libexif/canon/mnote-canon-entry.c:425
+msgid "External 1"
+msgstr "Harici 1"
+
+#: libexif/canon/mnote-canon-entry.c:426
+msgid "External 2"
+msgstr "Harici 2"
+
+#: libexif/canon/mnote-canon-entry.c:427
+msgid "External 3"
+msgstr "Harici 3"
+
+#: libexif/canon/mnote-canon-entry.c:432
+msgid "Faithful"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:115
+msgid "Monochrome"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:491
+msgid ", "
+msgstr ", "
+
+#: libexif/canon/mnote-canon-entry.c:577 libexif/canon/mnote-canon-entry.c:674
+#, c-format
+msgid "%i (ms)"
+msgstr "%i (ms)"
+
+#: libexif/canon/mnote-canon-entry.c:621
+#, c-format
+msgid "%.2f mm"
+msgstr "%.2f mm"
+
+#: libexif/canon/mnote-canon-entry.c:645
+#, c-format
+msgid "%.2f EV"
+msgstr "%.2f EV"
+
+#: libexif/canon/mnote-canon-entry.c:655 libexif/exif-entry.c:1064
+#, c-format
+msgid "1/%i"
+msgstr "1/%i"
+
+#: libexif/canon/mnote-canon-entry.c:667
+#, c-format
+msgid "%u mm"
+msgstr "%u mm"
+
+#: libexif/canon/mnote-canon-tag.c:35
+msgid "Settings (First Part)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:36 libexif/canon/mnote-canon-tag.c:92
+#: libexif/exif-tag.c:581 libexif/pentax/mnote-pentax-tag.c:88
+msgid "Focal Length"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:37
+msgid "Settings (Second Part)"
+msgstr "Ayarlar (İkinci Kısım)"
+
+#: libexif/canon/mnote-canon-tag.c:38
+#: libexif/olympus/mnote-olympus-entry.c:595
+#: libexif/pentax/mnote-pentax-entry.c:177
+msgid "Panorama"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:39
+msgid "Image Type"
+msgstr "Görüntü Türü"
+
+#: libexif/canon/mnote-canon-tag.c:40 libexif/olympus/mnote-olympus-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:113
+msgid "Firmware Version"
+msgstr "Yerleşik Yazılım Sürümü"
+
+#: libexif/canon/mnote-canon-tag.c:41
+msgid "Image Number"
+msgstr "Görüntü numarası"
+
+#: libexif/canon/mnote-canon-tag.c:42
+msgid "Owner Name"
+msgstr "Sahibinin Adı"
+
+#: libexif/canon/mnote-canon-tag.c:43
+msgid "Color Information"
+msgstr "Renk Bilgisi"
+
+#: libexif/canon/mnote-canon-tag.c:44 libexif/fuji/mnote-fuji-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:81
+#: libexif/olympus/mnote-olympus-tag.c:146
+msgid "Serial Number"
+msgstr "Seri Numarası"
+
+#: libexif/canon/mnote-canon-tag.c:45
+msgid "Custom Functions"
+msgstr "Özel Fonksiyonlar"
+
+#: libexif/canon/mnote-canon-tag.c:56 libexif/fuji/mnote-fuji-tag.c:45
+msgid "Macro Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:57 libexif/canon/mnote-canon-tag.c:117
+#: libexif/olympus/mnote-olympus-tag.c:175
+#: libexif/pentax/mnote-pentax-tag.c:128
+msgid "Self-timer"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:58 libexif/fuji/mnote-fuji-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:94
+#: libexif/olympus/mnote-olympus-tag.c:107
+msgid "Quality"
+msgstr "Kalite"
+
+#: libexif/canon/mnote-canon-tag.c:59 libexif/fuji/mnote-fuji-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:45
+#: libexif/olympus/mnote-olympus-tag.c:127
+#: libexif/pentax/mnote-pentax-tag.c:38 libexif/pentax/mnote-pentax-tag.c:73
+msgid "Flash Mode"
+msgstr "Flaş Modu"
+
+#: libexif/canon/mnote-canon-tag.c:60 libexif/pentax/mnote-pentax-tag.c:101
+msgid "Drive Mode"
+msgstr "Sürücü Modu"
+
+#: libexif/canon/mnote-canon-tag.c:61 libexif/canon/mnote-canon-tag.c:82
+#: libexif/olympus/mnote-olympus-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:134
+#: libexif/olympus/mnote-olympus-tag.c:173
+#: libexif/pentax/mnote-pentax-tag.c:37 libexif/pentax/mnote-pentax-tag.c:74
+#: libexif/pentax/mnote-pentax-tag.c:130
+msgid "Focus Mode"
+msgstr "Odaklama Modu"
+
+#: libexif/canon/mnote-canon-tag.c:62 libexif/pentax/mnote-pentax-tag.c:127
+msgid "Record Mode"
+msgstr "Kayıt Modu"
+
+#: libexif/canon/mnote-canon-tag.c:63 libexif/pentax/mnote-pentax-tag.c:71
+msgid "Image Size"
+msgstr "Görüntü Boyutu"
+
+#: libexif/canon/mnote-canon-tag.c:64
+msgid "Easy Shooting Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:65 libexif/olympus/mnote-olympus-tag.c:64
+#: libexif/olympus/mnote-olympus-tag.c:101
+#: libexif/olympus/mnote-olympus-tag.c:110
+#: libexif/olympus/mnote-olympus-tag.c:180
+#: libexif/pentax/mnote-pentax-tag.c:89
+msgid "Digital Zoom"
+msgstr "Dijital Yakınlaştırma"
+
+#: libexif/canon/mnote-canon-tag.c:66 libexif/exif-tag.c:828
+#: libexif/fuji/mnote-fuji-tag.c:42 libexif/pentax/mnote-pentax-tag.c:46
+#: libexif/pentax/mnote-pentax-tag.c:91
+msgid "Contrast"
+msgstr "Karşıtlık"
+
+#: libexif/canon/mnote-canon-tag.c:67 libexif/exif-tag.c:832
+#: libexif/olympus/mnote-olympus-tag.c:75
+#: libexif/olympus/mnote-olympus-tag.c:87 libexif/pentax/mnote-pentax-tag.c:47
+#: libexif/pentax/mnote-pentax-tag.c:90
+msgid "Saturation"
+msgstr "Doygunluk"
+
+#: libexif/canon/mnote-canon-tag.c:68 libexif/exif-tag.c:836
+#: libexif/fuji/mnote-fuji-tag.c:39 libexif/pentax/mnote-pentax-tag.c:45
+#: libexif/pentax/mnote-pentax-tag.c:92
+msgid "Sharpness"
+msgstr "Keskinlik"
+
+#: libexif/canon/mnote-canon-tag.c:69
+msgid "ISO"
+msgstr "ISO"
+
+#: libexif/canon/mnote-canon-tag.c:70 libexif/exif-tag.c:571
+#: libexif/pentax/mnote-pentax-tag.c:82
+msgid "Metering Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:71 libexif/olympus/mnote-olympus-tag.c:133
+msgid "Focus Range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:72 libexif/canon/mnote-canon-tag.c:105
+msgid "AF Point"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:73 libexif/exif-tag.c:795
+msgid "Exposure Mode"
+msgstr "Poz Kipi"
+
+#: libexif/canon/mnote-canon-tag.c:74 libexif/olympus/mnote-olympus-tag.c:61
+#: libexif/pentax/mnote-pentax-tag.c:106
+msgid "Lens Type"
+msgstr "Mercek Türü"
+
+#: libexif/canon/mnote-canon-tag.c:75
+msgid "Long Focal Length of Lens"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:76
+msgid "Short Focal Length of Lens"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:77
+msgid "Focal Units per mm"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:78
+msgid "Maximal Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:79
+msgid "Minimal Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:80
+msgid "Flash Activity"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:81
+msgid "Flash Details"
+msgstr "Flaş Detayları"
+
+#: libexif/canon/mnote-canon-tag.c:83
+msgid "AE Setting"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:84
+msgid "Image Stabilization"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:85
+msgid "Display Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:86
+msgid "Zoom Source Width"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:87
+msgid "Zoom Target Width"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:88
+msgid "Photo Effect"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:89 libexif/canon/mnote-canon-tag.c:118
+msgid "Manual Flash Output"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:90
+msgid "Color Tone"
+msgstr "Renk Tonu"
+
+#: libexif/canon/mnote-canon-tag.c:91
+msgid "Focal Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:93
+msgid "Focal Plane X Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:94
+msgid "Focal Plane Y Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:95
+msgid "Auto ISO"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:96
+msgid "Shot ISO"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:97
+msgid "Measured EV"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:98
+msgid "Target Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:99
+msgid "Target Exposure Time"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:100 libexif/olympus/mnote-olympus-tag.c:129
+#: libexif/pentax/mnote-pentax-tag.c:81
+msgid "Exposure Compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:101 libexif/canon/mnote-canon-tag.c:123
+#: libexif/exif-tag.c:800 libexif/fuji/mnote-fuji-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:41
+#: libexif/olympus/mnote-olympus-tag.c:98 libexif/pentax/mnote-pentax-tag.c:41
+#: libexif/pentax/mnote-pentax-tag.c:84 libexif/pentax/mnote-pentax-tag.c:124
+msgid "White Balance"
+msgstr "Beyaz Dengesi"
+
+#: libexif/canon/mnote-canon-tag.c:102
+msgid "Slow Shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:103
+msgid "Sequence Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:104
+msgid "Flash Guide Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:106 libexif/olympus/mnote-olympus-tag.c:52
+#: libexif/pentax/mnote-pentax-tag.c:109
+msgid "Flash Exposure Compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:107
+msgid "AE Bracketing"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:108
+msgid "AE Bracket Value"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:109
+msgid "Focus Distance Upper"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:110
+msgid "Focus Distance Lower"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:111
+msgid "FNumber"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:112 libexif/exif-tag.c:466
+#: libexif/pentax/mnote-pentax-tag.c:78
+msgid "Exposure Time"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:113
+msgid "Bulb Duration"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:114
+msgid "Camera Type"
+msgstr "Kamera Türü"
+
+#: libexif/canon/mnote-canon-tag.c:115
+msgid "Auto Rotate"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:116
+msgid "ND Filter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:119
+msgid "Panorama Frame"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:120
+msgid "Panorama Direction"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:121
+msgid "Tone Curve"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:122
+msgid "Sharpness Frequency"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:124
+msgid "Picture Style"
+msgstr ""
+
+#: libexif/exif-byte-order.c:33
+msgid "Motorola"
+msgstr "Motorola"
+
+#: libexif/exif-byte-order.c:35
+msgid "Intel"
+msgstr "Intel"
+
+#: libexif/exif-data.c:780
+msgid "Size of data too small to allow for EXIF data."
+msgstr "Verinin boyutu EXIF verisi için kabul edilebilecek değerin altında."
+
+#: libexif/exif-data.c:841
+msgid "EXIF marker not found."
+msgstr "EXIF etiketi bulunamadı."
+
+#: libexif/exif-data.c:868
+msgid "EXIF header not found."
+msgstr ""
+
+#: libexif/exif-data.c:884
+msgid "Unknown encoding."
+msgstr "Bilinmeyen kodlama."
+
+#: libexif/exif-data.c:1168
+msgid "Ignore unknown tags"
+msgstr "Bilinmeyen etiketleri yoksay"
+
+#: libexif/exif-data.c:1169
+msgid "Ignore unknown tags when loading EXIF data."
+msgstr ""
+
+#: libexif/exif-data.c:1170
+msgid "Follow specification"
+msgstr ""
+
+#: libexif/exif-data.c:1171
+msgid ""
+"Add, correct and remove entries to get EXIF data that follows the "
+"specification."
+msgstr ""
+
+#: libexif/exif-data.c:1173
+msgid "Do not change maker note"
+msgstr ""
+
+#: libexif/exif-data.c:1174
+msgid ""
+"When loading and resaving Exif data, save the maker note unmodified. Be "
+"aware that the maker note can get corrupted."
+msgstr ""
+
+#: libexif/exif-entry.c:234 libexif/exif-entry.c:303 libexif/exif-entry.c:336
+#, c-format
+msgid ""
+"Tag '%s' was of format '%s' (which is against specification) and has been "
+"changed to format '%s'."
+msgstr ""
+
+#: libexif/exif-entry.c:271
+#, c-format
+msgid ""
+"Tag '%s' is of format '%s' (which is against specification) but cannot be "
+"changed to format '%s'."
+msgstr ""
+
+#: libexif/exif-entry.c:354
+#, c-format
+msgid ""
+"Tag 'UserComment' had invalid format '%s'. Format has been set to "
+"'undefined'."
+msgstr ""
+
+#: libexif/exif-entry.c:381
+msgid ""
+"Tag 'UserComment' has been expanded to at least 8 bytes in order to follow "
+"the specification."
+msgstr ""
+
+#: libexif/exif-entry.c:396
+msgid ""
+"Tag 'UserComment' is not empty but does not start with a format identifier. "
+"This has been fixed."
+msgstr ""
+
+#: libexif/exif-entry.c:424
+msgid ""
+"Tag 'UserComment' did not start with a format identifier. This has been "
+"fixed."
+msgstr ""
+
+#: libexif/exif-entry.c:462
+#, c-format
+msgid "%i bytes undefined data"
+msgstr "%i bayt tanımlanmamış veri"
+
+#: libexif/exif-entry.c:589
+#, c-format
+msgid "%i bytes unsupported data type"
+msgstr "%i bayt desteklenmemiş veri türü"
+
+#: libexif/exif-entry.c:622
+#, c-format
+msgid "The tag '%s' contains data of an invalid format ('%s', expected '%s')."
+msgstr ""
+
+#: libexif/exif-entry.c:635
+#, c-format
+msgid ""
+"The tag '%s' contains an invalid number of components (%i, expected %i)."
+msgstr ""
+
+#: libexif/exif-entry.c:649
+msgid "Chunky format"
+msgstr ""
+
+#: libexif/exif-entry.c:649
+#, fuzzy
+msgid "Planar format"
+msgstr "Renk Bilgisi"
+
+#: libexif/exif-entry.c:651 libexif/exif-entry.c:743
+#: test/nls/test-codeset.c:54
+msgid "Not defined"
+msgstr "Tanımlanmamış"
+
+#: libexif/exif-entry.c:651
+msgid "One-chip color area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:652
+msgid "Two-chip color area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:652
+msgid "Three-chip color area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:653
+msgid "Color sequential area sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:653
+msgid "Trilinear sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:654
+msgid "Color sequential linear sensor"
+msgstr ""
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:233
+msgid "Top-left"
+msgstr "Üst-sol"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:235
+msgid "Top-right"
+msgstr "Üst-sağ"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:241
+msgid "Bottom-right"
+msgstr "Alt-sağ"
+
+#: libexif/exif-entry.c:657 libexif/pentax/mnote-pentax-entry.c:239
+msgid "Bottom-left"
+msgstr "Alt-sol"
+
+#: libexif/exif-entry.c:657
+#, fuzzy
+msgid "Left-top"
+msgstr "sol - üst"
+
+#: libexif/exif-entry.c:657
+#, fuzzy
+msgid "Right-top"
+msgstr "sağ - üst"
+
+#: libexif/exif-entry.c:658
+#, fuzzy
+msgid "Right-bottom"
+msgstr "sağ - alt"
+
+#: libexif/exif-entry.c:658
+#, fuzzy
+msgid "Left-bottom"
+msgstr "sol -alt"
+
+#: libexif/exif-entry.c:660
+#, fuzzy
+msgid "Centered"
+msgstr "ortalanmış"
+
+#: libexif/exif-entry.c:660
+#, fuzzy
+msgid "Co-sited"
+msgstr "Kapat"
+
+#: libexif/exif-entry.c:662
+msgid "Reversed mono"
+msgstr ""
+
+#: libexif/exif-entry.c:662
+msgid "Normal mono"
+msgstr ""
+
+#: libexif/exif-entry.c:662
+msgid "RGB"
+msgstr "RGB"
+
+#: libexif/exif-entry.c:662
+msgid "Palette"
+msgstr "Palet"
+
+#: libexif/exif-entry.c:663
+msgid "CMYK"
+msgstr "CMYK"
+
+#: libexif/exif-entry.c:663
+msgid "YCbCr"
+msgstr "YCbCr"
+
+#: libexif/exif-entry.c:663
+msgid "CieLAB"
+msgstr ""
+
+#: libexif/exif-entry.c:665
+msgid "Normal process"
+msgstr "Normal işlem"
+
+#: libexif/exif-entry.c:665
+msgid "Custom process"
+msgstr "Özel işlem"
+
+#: libexif/exif-entry.c:667
+msgid "Auto exposure"
+msgstr ""
+
+#: libexif/exif-entry.c:667 libexif/fuji/mnote-fuji-entry.c:139
+msgid "Manual exposure"
+msgstr ""
+
+#: libexif/exif-entry.c:667
+msgid "Auto bracket"
+msgstr ""
+
+#: libexif/exif-entry.c:669
+msgid "Auto white balance"
+msgstr ""
+
+#: libexif/exif-entry.c:669
+msgid "Manual white balance"
+msgstr ""
+
+#: libexif/exif-entry.c:674
+msgid "Low gain up"
+msgstr ""
+
+#: libexif/exif-entry.c:674
+msgid "High gain up"
+msgstr ""
+
+#: libexif/exif-entry.c:675
+msgid "Low gain down"
+msgstr ""
+
+#: libexif/exif-entry.c:675
+msgid "High gain down"
+msgstr ""
+
+#: libexif/exif-entry.c:677
+msgid "Low saturation"
+msgstr "Düşük doygunluk"
+
+#: libexif/exif-entry.c:677 test/nls/test-codeset.c:48
+#: test/nls/test-codeset.c:61
+msgid "High saturation"
+msgstr "Yüksek doygunluk"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:63
+#: libexif/olympus/mnote-olympus-entry.c:205
+#: libexif/olympus/mnote-olympus-entry.c:214
+#: libexif/pentax/mnote-pentax-entry.c:106
+#: libexif/pentax/mnote-pentax-entry.c:170
+msgid "Soft"
+msgstr "Yumuşak"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:65 libexif/fuji/mnote-fuji-entry.c:95
+#: libexif/olympus/mnote-olympus-entry.c:204
+#: libexif/olympus/mnote-olympus-entry.c:212
+#: libexif/pentax/mnote-pentax-entry.c:107
+msgid "Hard"
+msgstr ""
+
+#: libexif/exif-entry.c:695 libexif/exif-entry.c:713 libexif/exif-entry.c:795
+#: libexif/olympus/mnote-olympus-entry.c:589
+#: libexif/olympus/mnote-olympus-entry.c:683
+#: libexif/olympus/mnote-olympus-entry.c:738
+#: libexif/pentax/mnote-pentax-entry.c:256
+msgid "Unknown"
+msgstr "Bilinmiyor"
+
+#: libexif/exif-entry.c:696
+#, fuzzy
+msgid "Avg"
+msgstr "Ortalama"
+
+#: libexif/exif-entry.c:697
+#, fuzzy
+msgid "Center-weight"
+msgstr "Orta + Sağ"
+
+#: libexif/exif-entry.c:699
+msgid "Multi spot"
+msgstr ""
+
+#: libexif/exif-entry.c:700
+msgid "Pattern"
+msgstr "Desen"
+
+#: libexif/exif-entry.c:705
+msgid "Uncompressed"
+msgstr "Sıkıştırılmamış"
+
+#: libexif/exif-entry.c:706
+msgid "LZW compression"
+msgstr ""
+
+#: libexif/exif-entry.c:707 libexif/exif-entry.c:708
+msgid "JPEG compression"
+msgstr ""
+
+#: libexif/exif-entry.c:709
+msgid "Deflate/ZIP compression"
+msgstr ""
+
+#: libexif/exif-entry.c:710
+msgid "PackBits compression"
+msgstr ""
+
+#: libexif/exif-entry.c:716
+msgid "Tungsten incandescent light"
+msgstr ""
+
+#: libexif/exif-entry.c:718
+msgid "Fine weather"
+msgstr "Açık hava"
+
+#: libexif/exif-entry.c:719
+msgid "Cloudy weather"
+msgstr "Bulutlu hava"
+
+#: libexif/exif-entry.c:722 libexif/fuji/mnote-fuji-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:252
+msgid "Day white fluorescent"
+msgstr ""
+
+#: libexif/exif-entry.c:723
+msgid "Cool white fluorescent"
+msgstr ""
+
+#: libexif/exif-entry.c:724 libexif/fuji/mnote-fuji-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:253
+msgid "White fluorescent"
+msgstr "Beyaz floresan"
+
+#: libexif/exif-entry.c:725
+msgid "Standard light A"
+msgstr "Standart ışık A"
+
+#: libexif/exif-entry.c:726
+msgid "Standard light B"
+msgstr "Standart ışık B"
+
+#: libexif/exif-entry.c:727
+msgid "Standard light C"
+msgstr "Standart ışık C"
+
+#: libexif/exif-entry.c:728
+msgid "D55"
+msgstr "D55"
+
+#: libexif/exif-entry.c:729
+msgid "D65"
+msgstr "D65"
+
+#: libexif/exif-entry.c:730
+msgid "D75"
+msgstr "D75"
+
+#: libexif/exif-entry.c:731
+msgid "ISO studio tungsten"
+msgstr ""
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "Inch"
+msgstr "İnç"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "in"
+msgstr ""
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "Centimeter"
+msgstr "Santimetre"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "cm"
+msgstr "cm"
+
+#: libexif/exif-entry.c:745
+msgid "Normal program"
+msgstr "Normal program"
+
+#: libexif/exif-entry.c:746
+msgid "Aperture priority"
+msgstr ""
+
+#: libexif/exif-entry.c:746 libexif/exif-tag.c:550
+msgid "Aperture"
+msgstr ""
+
+#: libexif/exif-entry.c:747
+msgid "Shutter priority"
+msgstr ""
+
+#: libexif/exif-entry.c:747
+msgid "Shutter"
+msgstr ""
+
+#: libexif/exif-entry.c:748
+msgid "Creative program (biased toward depth of field)"
+msgstr ""
+
+#: libexif/exif-entry.c:749
+msgid "Creative"
+msgstr ""
+
+#: libexif/exif-entry.c:750
+msgid "Creative program (biased toward fast shutter speed)"
+msgstr ""
+
+#: libexif/exif-entry.c:751
+msgid "Action"
+msgstr ""
+
+#: libexif/exif-entry.c:752
+msgid "Portrait mode (for closeup photos with the background out of focus)"
+msgstr ""
+
+#: libexif/exif-entry.c:754
+msgid "Landscape mode (for landscape photos with the background in focus)"
+msgstr ""
+
+#: libexif/exif-entry.c:758 libexif/exif-entry.c:763
+#: libexif/olympus/mnote-olympus-entry.c:97
+msgid "Flash did not fire"
+msgstr "Flaş çalışmadı"
+
+#: libexif/exif-entry.c:758
+#, fuzzy
+msgid "No flash"
+msgstr "flaşsız"
+
+#: libexif/exif-entry.c:759
+msgid "Flash fired"
+msgstr ""
+
+#: libexif/exif-entry.c:759 libexif/olympus/mnote-olympus-entry.c:170
+#: libexif/olympus/mnote-olympus-entry.c:175
+#: libexif/olympus/mnote-olympus-entry.c:209
+#: libexif/olympus/mnote-olympus-entry.c:218
+#: libexif/olympus/mnote-olympus-entry.c:241
+msgid "Yes"
+msgstr "Evet"
+
+#: libexif/exif-entry.c:760
+msgid "Strobe return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:760
+msgid "Without strobe"
+msgstr ""
+
+#: libexif/exif-entry.c:762
+msgid "Strobe return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:762
+msgid "With strobe"
+msgstr ""
+
+#: libexif/exif-entry.c:764
+msgid "Flash fired, compulsory flash mode"
+msgstr ""
+
+#: libexif/exif-entry.c:765
+msgid "Flash fired, compulsory flash mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:767
+msgid "Flash fired, compulsory flash mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:769
+msgid "Flash did not fire, compulsory flash mode"
+msgstr ""
+
+#: libexif/exif-entry.c:770
+msgid "Flash did not fire, auto mode"
+msgstr ""
+
+#: libexif/exif-entry.c:771
+msgid "Flash fired, auto mode"
+msgstr ""
+
+#: libexif/exif-entry.c:772
+msgid "Flash fired, auto mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:774
+msgid "Flash fired, auto mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:775
+msgid "No flash function"
+msgstr ""
+
+#: libexif/exif-entry.c:776
+msgid "Flash fired, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:777
+msgid "Flash fired, red-eye reduction mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:779
+msgid "Flash fired, red-eye reduction mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:781
+msgid "Flash fired, compulsory flash mode, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:783
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light not "
+"detected"
+msgstr ""
+
+#: libexif/exif-entry.c:785
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light "
+"detected"
+msgstr ""
+
+#: libexif/exif-entry.c:787
+msgid "Flash did not fire, auto mode, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:788
+msgid "Flash fired, auto mode, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:789
+msgid ""
+"Flash fired, auto mode, return light not detected, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:791
+msgid "Flash fired, auto mode, return light detected, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:795
+msgid "?"
+msgstr "?"
+
+#: libexif/exif-entry.c:797
+msgid "Close view"
+msgstr ""
+
+#: libexif/exif-entry.c:798
+msgid "Distant view"
+msgstr ""
+
+#: libexif/exif-entry.c:798
+msgid "Distant"
+msgstr ""
+
+#: libexif/exif-entry.c:801
+msgid "sRGB"
+msgstr ""
+
+#: libexif/exif-entry.c:802
+msgid "Adobe RGB"
+msgstr ""
+
+#: libexif/exif-entry.c:803
+msgid "Uncalibrated"
+msgstr ""
+
+#: libexif/exif-entry.c:857
+#, c-format
+msgid "Invalid size of entry (%i, expected %li x %i)."
+msgstr ""
+
+#: libexif/exif-entry.c:890
+msgid "Unsupported UNICODE string"
+msgstr ""
+
+#: libexif/exif-entry.c:898
+msgid "Unsupported JIS string"
+msgstr ""
+
+#: libexif/exif-entry.c:914
+msgid "Tag UserComment does not comply with standard but contains data."
+msgstr ""
+
+#: libexif/exif-entry.c:918
+#, c-format
+msgid "Byte at position %i: 0x%02x"
+msgstr ""
+
+#: libexif/exif-entry.c:927
+msgid "Unknown Exif Version"
+msgstr ""
+
+#: libexif/exif-entry.c:931
+#, c-format
+msgid "Exif Version %d.%d"
+msgstr ""
+
+#: libexif/exif-entry.c:942
+msgid "FlashPix Version 1.0"
+msgstr ""
+
+#: libexif/exif-entry.c:944
+msgid "FlashPix Version 1.01"
+msgstr ""
+
+#: libexif/exif-entry.c:946
+msgid "Unknown FlashPix Version"
+msgstr ""
+
+#: libexif/exif-entry.c:959 libexif/exif-entry.c:972 libexif/exif-entry.c:1628
+#: libexif/exif-entry.c:1633 libexif/exif-entry.c:1637
+#: libexif/exif-entry.c:1642 libexif/exif-entry.c:1643
+msgid "[None]"
+msgstr ""
+
+#: libexif/exif-entry.c:961
+msgid "(Photographer)"
+msgstr "(Fotoğrafçı)"
+
+#: libexif/exif-entry.c:975
+msgid "(Editor)"
+msgstr "(Düzenleyen)"
+
+#: libexif/exif-entry.c:999 libexif/exif-entry.c:1079
+#: libexif/exif-entry.c:1096 libexif/exif-entry.c:1140
+#, c-format
+msgid "%.02f EV"
+msgstr ""
+
+#: libexif/exif-entry.c:1000
+#, c-format
+msgid " (f/%.01f)"
+msgstr " (f/%.01f)"
+
+#: libexif/exif-entry.c:1034
+#, c-format
+msgid " (35 equivalent: %d mm)"
+msgstr ""
+
+#: libexif/exif-entry.c:1067 libexif/exif-entry.c:1068
+msgid " sec."
+msgstr " sn."
+
+#: libexif/exif-entry.c:1082
+#, c-format
+msgid " (1/%d sec.)"
+msgstr " (1/%d sn.)"
+
+#: libexif/exif-entry.c:1084
+#, c-format
+msgid " (%d sec.)"
+msgstr " (%d sn.)"
+
+#: libexif/exif-entry.c:1097
+#, c-format
+msgid " (%.02f cd/m^2)"
+msgstr " (%.02f cd/m^2)"
+
+#: libexif/exif-entry.c:1107
+msgid "DSC"
+msgstr ""
+
+#: libexif/exif-entry.c:1109 libexif/exif-entry.c:1149
+#: libexif/exif-entry.c:1236 libexif/exif-entry.c:1287
+#: libexif/exif-entry.c:1296 libexif/exif-entry.c:1332
+#: libexif/fuji/mnote-fuji-entry.c:236 libexif/fuji/mnote-fuji-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:359
+#, c-format
+msgid "Internal error (unknown value %i)"
+msgstr "Dahili hata (bilinmeyen değer %i)"
+
+#: libexif/exif-entry.c:1117
+msgid "-"
+msgstr "-"
+
+#: libexif/exif-entry.c:1118
+msgid "Y"
+msgstr ""
+
+#: libexif/exif-entry.c:1119
+msgid "Cb"
+msgstr ""
+
+#: libexif/exif-entry.c:1120
+msgid "Cr"
+msgstr ""
+
+#: libexif/exif-entry.c:1121
+msgid "R"
+msgstr ""
+
+#: libexif/exif-entry.c:1122
+msgid "G"
+msgstr ""
+
+#: libexif/exif-entry.c:1123
+msgid "B"
+msgstr ""
+
+#: libexif/exif-entry.c:1124
+#, fuzzy
+msgid "Reserved"
+msgstr "ortalanmış"
+
+#: libexif/exif-entry.c:1147
+msgid "Directly photographed"
+msgstr ""
+
+#: libexif/exif-entry.c:1160
+msgid "YCbCr4:2:2"
+msgstr ""
+
+#: libexif/exif-entry.c:1162
+msgid "YCbCr4:2:0"
+msgstr ""
+
+#: libexif/exif-entry.c:1179
+#, c-format
+msgid "Within distance %i of (x,y) = (%i,%i)"
+msgstr ""
+
+#: libexif/exif-entry.c:1188
+#, c-format
+msgid "Within rectangle (width %i, height %i) around (x,y) = (%i,%i)"
+msgstr ""
+
+#: libexif/exif-entry.c:1194
+#, c-format
+msgid "Unexpected number of components (%li, expected 2, 3, or 4)."
+msgstr ""
+
+#: libexif/exif-entry.c:1232
+msgid "Sea level"
+msgstr ""
+
+#: libexif/exif-entry.c:1234
+msgid "Sea level reference"
+msgstr ""
+
+#: libexif/exif-entry.c:1342
+#, c-format
+msgid "Unknown value %i"
+msgstr "Bilinmeyen değer %i"
+
+#: libexif/exif-format.c:37
+msgid "Short"
+msgstr ""
+
+#: libexif/exif-format.c:38
+msgid "Rational"
+msgstr ""
+
+#: libexif/exif-format.c:39
+msgid "SRational"
+msgstr ""
+
+#: libexif/exif-format.c:40
+msgid "Undefined"
+msgstr ""
+
+#: libexif/exif-format.c:41
+msgid "ASCII"
+msgstr "ASCII"
+
+#: libexif/exif-format.c:42
+msgid "Long"
+msgstr ""
+
+#: libexif/exif-format.c:43
+msgid "Byte"
+msgstr "Bayt"
+
+#: libexif/exif-format.c:44
+msgid "SByte"
+msgstr ""
+
+#: libexif/exif-format.c:45
+msgid "SShort"
+msgstr ""
+
+#: libexif/exif-format.c:46
+msgid "SLong"
+msgstr ""
+
+#: libexif/exif-format.c:47
+msgid "Float"
+msgstr ""
+
+#: libexif/exif-format.c:48
+msgid "Double"
+msgstr ""
+
+#: libexif/exif-loader.c:119
+#, c-format
+msgid "The file '%s' could not be opened."
+msgstr "'%s' dosyası açılamadı."
+
+#: libexif/exif-loader.c:300
+msgid "The data supplied does not seem to contain EXIF data."
+msgstr ""
+
+#: libexif/exif-log.c:43
+msgid "Debugging information"
+msgstr ""
+
+#: libexif/exif-log.c:44
+msgid "Debugging information is available."
+msgstr ""
+
+#: libexif/exif-log.c:45
+msgid "Not enough memory"
+msgstr "Yetersiz bellek"
+
+#: libexif/exif-log.c:46
+msgid "The system cannot provide enough memory."
+msgstr "Sistem yeterli bellek sağlayamıyor."
+
+#: libexif/exif-log.c:47
+msgid "Corrupt data"
+msgstr "Bozuk veri"
+
+#: libexif/exif-log.c:48
+msgid "The data provided does not follow the specification."
+msgstr ""
+
+#: libexif/exif-tag.c:62
+msgid "GPS Tag Version"
+msgstr ""
+
+#: libexif/exif-tag.c:63
+msgid ""
+"Indicates the version of <GPSInfoIFD>. The version is given as 2.0.0.0. This "
+"tag is mandatory when <GPSInfo> tag is present. (Note: The <GPSVersionID> "
+"tag is given in bytes, unlike the <ExifVersion> tag. When the version is "
+"2.0.0.0, the tag value is 02000000.H)."
+msgstr ""
+
+#: libexif/exif-tag.c:69
+msgid "Interoperability Index"
+msgstr ""
+
+#: libexif/exif-tag.c:70
+msgid ""
+"Indicates the identification of the Interoperability rule. Use \"R98\" for "
+"stating ExifR98 Rules. Four bytes used including the termination code "
+"(NULL). see the separate volume of Recommended Exif Interoperability Rules "
+"(ExifR98) for other tags used for ExifR98."
+msgstr ""
+
+#: libexif/exif-tag.c:76
+msgid "North or South Latitude"
+msgstr "Kuzey veya Güney Enlemi"
+
+#: libexif/exif-tag.c:77
+msgid ""
+"Indicates whether the latitude is north or south latitude. The ASCII value "
+"'N' indicates north latitude, and 'S' is south latitude."
+msgstr ""
+
+#: libexif/exif-tag.c:81
+msgid "Interoperability Version"
+msgstr ""
+
+#: libexif/exif-tag.c:83
+msgid "Latitude"
+msgstr "Enlem"
+
+#: libexif/exif-tag.c:84
+msgid ""
+"Indicates the latitude. The latitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is dd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is dd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:91
+msgid "East or West Longitude"
+msgstr "Doğu veya Batı Boylamı"
+
+#: libexif/exif-tag.c:92
+msgid ""
+"Indicates whether the longitude is east or west longitude. ASCII 'E' "
+"indicates east longitude, and 'W' is west longitude."
+msgstr ""
+
+#: libexif/exif-tag.c:95
+msgid "Longitude"
+msgstr "Boylam"
+
+#: libexif/exif-tag.c:96
+msgid ""
+"Indicates the longitude. The longitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is ddd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is ddd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:103
+msgid "Altitude Reference"
+msgstr ""
+
+#: libexif/exif-tag.c:104
+msgid ""
+"Indicates the altitude used as the reference altitude. If the reference is "
+"sea level and the altitude is above sea level, 0 is given. If the altitude "
+"is below sea level, a value of 1 is given and the altitude is indicated as "
+"an absolute value in the GSPAltitude tag. The reference unit is meters. Note "
+"that this tag is BYTE type, unlike other reference tags."
+msgstr ""
+
+#: libexif/exif-tag.c:110
+msgid "Altitude"
+msgstr ""
+
+#: libexif/exif-tag.c:111
+msgid ""
+"Indicates the altitude based on the reference in GPSAltitudeRef. Altitude is "
+"expressed as one RATIONAL value. The reference unit is meters."
+msgstr ""
+
+#: libexif/exif-tag.c:114
+msgid "GPS Time (Atomic Clock)"
+msgstr ""
+
+#: libexif/exif-tag.c:115
+msgid ""
+"Indicates the time as UTC (Coordinated Universal Time). TimeStamp is "
+"expressed as three RATIONAL values giving the hour, minute, and second."
+msgstr ""
+
+#: libexif/exif-tag.c:118
+#, fuzzy
+msgid "GPS Satellites"
+msgstr "GPS tarihi"
+
+#: libexif/exif-tag.c:119
+msgid ""
+"Indicates the GPS satellites used for measurements. This tag can be used to "
+"describe the number of satellites, their ID number, angle of elevation, "
+"azimuth, SNR and other information in ASCII notation. The format is not "
+"specified. If the GPS receiver is incapable of taking measurements, value of "
+"the tag shall be set to NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:125
+msgid "GPS Receiver Status"
+msgstr ""
+
+#: libexif/exif-tag.c:126
+msgid ""
+"Indicates the status of the GPS receiver when the image is recorded. 'A' "
+"means measurement is in progress, and 'V' means the measurement is "
+"Interoperability."
+msgstr ""
+
+#: libexif/exif-tag.c:129
+#, fuzzy
+msgid "GPS Measurement Mode"
+msgstr "Yeşil Modu"
+
+#: libexif/exif-tag.c:130
+msgid ""
+"Indicates the GPS measurement mode. '2' means two-dimensional measurement "
+"and '3' means three-dimensional measurement is in progress."
+msgstr ""
+
+#: libexif/exif-tag.c:133
+msgid "Measurement Precision"
+msgstr ""
+
+#: libexif/exif-tag.c:134
+msgid ""
+"Indicates the GPS DOP (data degree of precision). An HDOP value is written "
+"during two-dimensional measurement, and PDOP during three-dimensional "
+"measurement."
+msgstr ""
+
+#: libexif/exif-tag.c:137
+#, fuzzy
+msgid "Speed Unit"
+msgstr "Hız birimi"
+
+#: libexif/exif-tag.c:138
+msgid ""
+"Indicates the unit used to express the GPS receiver speed of movement. 'K', "
+"'M' and 'N' represent kilometers per hour, miles per hour, and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:141
+#, fuzzy
+msgid "Speed of GPS Receiver"
+msgstr "GPS alıcısının hızı"
+
+#: libexif/exif-tag.c:142
+msgid "Indicates the speed of GPS receiver movement."
+msgstr ""
+
+#: libexif/exif-tag.c:143
+msgid "Reference for direction of movement"
+msgstr ""
+
+#: libexif/exif-tag.c:144
+msgid ""
+"Indicates the reference for giving the direction of GPS receiver movement. "
+"'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:147
+msgid "Direction of Movement"
+msgstr ""
+
+#: libexif/exif-tag.c:148
+msgid ""
+"Indicates the direction of GPS receiver movement. The range of values is "
+"from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:150
+msgid "GPS Image Direction Reference"
+msgstr ""
+
+#: libexif/exif-tag.c:151
+msgid ""
+"Indicates the reference for giving the direction of the image when it is "
+"captured. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:153
+msgid "GPS Image Direction"
+msgstr ""
+
+#: libexif/exif-tag.c:154
+msgid ""
+"Indicates the direction of the image when it was captured. The range of "
+"values is from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:156
+msgid "Geodetic Survey Data Used"
+msgstr ""
+
+#: libexif/exif-tag.c:157
+msgid ""
+"Indicates the geodetic survey data used by the GPS receiver. If the survey "
+"data is restricted to Japan, the value of this tag is 'TOKYO' or 'WGS-84'. "
+"If a GPS Info tag is recorded, it is strongly recommended that this tag be "
+"recorded."
+msgstr ""
+
+#: libexif/exif-tag.c:161
+msgid "Reference For Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:162
+msgid ""
+"Indicates whether the latitude of the destination point is north or south "
+"latitude. The ASCII value 'N' indicates north latitude, and 'S' is south "
+"latitude."
+msgstr ""
+
+#: libexif/exif-tag.c:165
+msgid "Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:166
+msgid ""
+"Indicates the latitude of the destination point. The latitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If latitude is expressed as degrees, minutes and seconds, a "
+"typical format would be dd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be dd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:173
+msgid "Reference for Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:174
+msgid ""
+"Indicates whether the longitude of the destination point is east or west "
+"longitude. ASCII 'E' indicates east longitude, and 'W' is west longitude."
+msgstr ""
+
+#: libexif/exif-tag.c:177
+msgid "Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:178
+msgid ""
+"Indicates the longitude of the destination point. The longitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If longitude is expressed as degrees, minutes and seconds, a "
+"typical format would be ddd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be ddd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:186
+msgid "Reference for Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:187
+msgid ""
+"Indicates the reference used for giving the bearing to the destination "
+"point. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:190
+msgid "Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:191
+msgid ""
+"Indicates the bearing to the destination point. The range of values is from "
+"0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:193
+msgid "Reference for Distance to Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:194
+msgid ""
+"Indicates the unit used to express the distance to the destination point. "
+"'K', 'M' and 'N' represent kilometers, miles and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:197
+msgid "Distance to Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:198
+msgid "Indicates the distance to the destination point."
+msgstr ""
+
+#: libexif/exif-tag.c:199
+msgid "Name of GPS Processing Method"
+msgstr ""
+
+#: libexif/exif-tag.c:200
+msgid ""
+"A character string recording the name of the method used for location "
+"finding. The first byte indicates the character code used, and this is "
+"followed by the name of the method. Since the Type is not ASCII, NULL "
+"termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:205
+msgid "Name of GPS Area"
+msgstr ""
+
+#: libexif/exif-tag.c:206
+msgid ""
+"A character string recording the name of the GPS area. The first byte "
+"indicates the character code used, and this is followed by the name of the "
+"GPS area. Since the Type is not ASCII, NULL termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:210
+#, fuzzy
+msgid "GPS Date"
+msgstr "GPS tarihi"
+
+#: libexif/exif-tag.c:211
+msgid ""
+"A character string recording date and time information relative to UTC "
+"(Coordinated Universal Time). The format is \"YYYY:MM:DD\". The length of "
+"the string is 11 bytes including NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:215
+msgid "GPS Differential Correction"
+msgstr ""
+
+#: libexif/exif-tag.c:216
+msgid ""
+"Indicates whether differential correction is applied to the GPS receiver."
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "New Subfile Type"
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "A general indication of the kind of data contained in this subfile."
+msgstr ""
+
+#: libexif/exif-tag.c:222
+msgid "Image Width"
+msgstr "Görüntü Genişliği"
+
+#: libexif/exif-tag.c:223
+msgid ""
+"The number of columns of image data, equal to the number of pixels per row. "
+"In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:227
+msgid "Image Length"
+msgstr "Görüntü Uzunluğu"
+
+#: libexif/exif-tag.c:228
+msgid ""
+"The number of rows of image data. In JPEG compressed data a JPEG marker is "
+"used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:231
+msgid "Bits per Sample"
+msgstr ""
+
+#: libexif/exif-tag.c:232
+msgid ""
+"The number of bits per image component. In this standard each component of "
+"the image is 8 bits, so the value for this tag is 8. See also "
+"<SamplesPerPixel>. In JPEG compressed data a JPEG marker is used instead of "
+"this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:237
+msgid "Compression"
+msgstr ""
+
+#: libexif/exif-tag.c:238
+msgid ""
+"The compression scheme used for the image data. When a primary image is JPEG "
+"compressed, this designation is not necessary and is omitted. When "
+"thumbnails use JPEG compression, this tag value is set to 6."
+msgstr ""
+
+#: libexif/exif-tag.c:244
+msgid "Photometric Interpretation"
+msgstr ""
+
+#: libexif/exif-tag.c:245
+msgid ""
+"The pixel composition. In JPEG compressed data a JPEG marker is used instead "
+"of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:249
+msgid "Fill Order"
+msgstr ""
+
+#: libexif/exif-tag.c:251
+msgid "Document Name"
+msgstr "Belge Adı"
+
+#: libexif/exif-tag.c:253
+msgid "Image Description"
+msgstr ""
+
+#: libexif/exif-tag.c:254
+msgid ""
+"A character string giving the title of the image. It may be a comment such "
+"as \"1988 company picnic\" or the like. Two-bytes character codes cannot be "
+"used. When a 2-bytes code is necessary, the Exif Private tag <UserComment> "
+"is to be used."
+msgstr ""
+
+#: libexif/exif-tag.c:260
+msgid "Manufacturer"
+msgstr ""
+
+#: libexif/exif-tag.c:261
+msgid ""
+"The manufacturer of the recording equipment. This is the manufacturer of the "
+"DSC, scanner, video digitizer or other equipment that generated the image. "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:267
+msgid "Model"
+msgstr "Model"
+
+#: libexif/exif-tag.c:268
+msgid ""
+"The model name or model number of the equipment. This is the model name or "
+"number of the DSC, scanner, video digitizer or other equipment that "
+"generated the image. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:273
+msgid "Strip Offsets"
+msgstr ""
+
+#: libexif/exif-tag.c:274
+msgid ""
+"For each strip, the byte offset of that strip. It is recommended that this "
+"be selected so the number of strip bytes does not exceed 64 Kbytes. With "
+"JPEG compressed data this designation is not needed and is omitted. See also "
+"<RowsPerStrip> and <StripByteCounts>."
+msgstr ""
+
+#: libexif/exif-tag.c:280
+msgid "Orientation"
+msgstr ""
+
+#: libexif/exif-tag.c:281
+msgid "The image orientation viewed in terms of rows and columns."
+msgstr ""
+
+#: libexif/exif-tag.c:284
+msgid "Samples per Pixel"
+msgstr ""
+
+#: libexif/exif-tag.c:285
+msgid ""
+"The number of components per pixel. Since this standard applies to RGB and "
+"YCbCr images, the value set for this tag is 3. In JPEG compressed data a "
+"JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:290
+msgid "Rows per Strip"
+msgstr ""
+
+#: libexif/exif-tag.c:291
+msgid ""
+"The number of rows per strip. This is the number of rows in the image of one "
+"strip when an image is divided into strips. With JPEG compressed data this "
+"designation is not needed and is omitted. See also <StripOffsets> and "
+"<StripByteCounts>."
+msgstr ""
+
+#: libexif/exif-tag.c:297
+msgid "Strip Byte Count"
+msgstr ""
+
+#: libexif/exif-tag.c:298
+msgid ""
+"The total number of bytes in each strip. With JPEG compressed data this "
+"designation is not needed and is omitted."
+msgstr ""
+
+#: libexif/exif-tag.c:301
+msgid "X-Resolution"
+msgstr ""
+
+#: libexif/exif-tag.c:302
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageWidth> direction. "
+"When the image resolution is unknown, 72 [dpi] is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:306
+msgid "Y-Resolution"
+msgstr ""
+
+#: libexif/exif-tag.c:307
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageLength> direction. "
+"The same value as <XResolution> is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:311
+msgid "Planar Configuration"
+msgstr ""
+
+#: libexif/exif-tag.c:312
+msgid ""
+"Indicates whether pixel components are recorded in a chunky or planar "
+"format. In JPEG compressed files a JPEG marker is used instead of this tag. "
+"If this field does not exist, the TIFF default of 1 (chunky) is assumed."
+msgstr ""
+
+#: libexif/exif-tag.c:317
+msgid "Resolution Unit"
+msgstr ""
+
+#: libexif/exif-tag.c:318
+msgid ""
+"The unit for measuring <XResolution> and <YResolution>. The same unit is "
+"used for both <XResolution> and <YResolution>. If the image resolution is "
+"unknown, 2 (inches) is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:323
+msgid "Transfer Function"
+msgstr ""
+
+#: libexif/exif-tag.c:324
+msgid ""
+"A transfer function for the image, described in tabular style. Normally this "
+"tag is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:328
+msgid "Software"
+msgstr "Yazılım"
+
+#: libexif/exif-tag.c:329
+msgid ""
+"This tag records the name and version of the software or firmware of the "
+"camera or image input device used to generate the image. The detailed format "
+"is not specified, but it is recommended that the example shown below be "
+"followed. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:336
+msgid "Date and Time"
+msgstr "Tarih ve Zaman"
+
+#: libexif/exif-tag.c:337
+msgid ""
+"The date and time of image creation. In this standard (EXIF-2.1) it is the "
+"date and time the file was changed."
+msgstr ""
+
+#: libexif/exif-tag.c:340
+msgid "Artist"
+msgstr "Sanatçı"
+
+#: libexif/exif-tag.c:341
+msgid ""
+"This tag records the name of the camera owner, photographer or image "
+"creator. The detailed format is not specified, but it is recommended that "
+"the information be written as in the example below for ease of "
+"Interoperability. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:347 libexif/pentax/mnote-pentax-tag.c:113
+msgid "White Point"
+msgstr ""
+
+#: libexif/exif-tag.c:348
+msgid ""
+"The chromaticity of the white point of the image. Normally this tag is not "
+"necessary, since color space is specified in the color space information tag "
+"(<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:353
+msgid "Primary Chromaticities"
+msgstr ""
+
+#: libexif/exif-tag.c:354
+msgid ""
+"The chromaticity of the three primary colors of the image. Normally this tag "
+"is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:359
+msgid "Defined by Adobe Corporation to enable TIFF Trees within a TIFF file."
+msgstr ""
+
+#: libexif/exif-tag.c:362
+msgid "Transfer Range"
+msgstr ""
+
+#: libexif/exif-tag.c:366
+msgid "JPEG Interchange Format"
+msgstr ""
+
+#: libexif/exif-tag.c:367
+msgid ""
+"The offset to the start byte (SOI) of JPEG compressed thumbnail data. This "
+"is not used for primary image JPEG data."
+msgstr ""
+
+#: libexif/exif-tag.c:372
+msgid "JPEG Interchange Format Length"
+msgstr ""
+
+#: libexif/exif-tag.c:373
+msgid ""
+"The number of bytes of JPEG compressed thumbnail data. This is not used for "
+"primary image JPEG data. JPEG thumbnails are not divided but are recorded as "
+"a continuous JPEG bitstream from SOI to EOI. Appn and COM markers should not "
+"be recorded. Compressed thumbnails must be recorded in no more than 64 "
+"Kbytes, including all other data to be recorded in APP1."
+msgstr ""
+
+#: libexif/exif-tag.c:382
+msgid "YCbCr Coefficients"
+msgstr ""
+
+#: libexif/exif-tag.c:383
+msgid ""
+"The matrix coefficients for transformation from RGB to YCbCr image data. No "
+"default is given in TIFF; but here the value given in \"Color Space "
+"Guidelines\", is used as the default. The color space is declared in a color "
+"space information tag, with the default being the value that gives the "
+"optimal image characteristics Interoperability this condition."
+msgstr ""
+
+#: libexif/exif-tag.c:392
+msgid "YCbCr Sub-Sampling"
+msgstr ""
+
+#: libexif/exif-tag.c:393
+msgid ""
+"The sampling ratio of chrominance components in relation to the luminance "
+"component. In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:398
+msgid "YCbCr Positioning"
+msgstr ""
+
+#: libexif/exif-tag.c:399
+msgid ""
+"The position of chrominance components in relation to the luminance "
+"component. This field is designated only for JPEG compressed data or "
+"uncompressed YCbCr data. The TIFF default is 1 (centered); but when Y:Cb:Cr "
+"= 4:2:2 it is recommended in this standard that 2 (co-sited) be used to "
+"record data, in order to improve the image quality when viewed on TV "
+"systems. When this field does not exist, the reader shall assume the TIFF "
+"default. In the case of Y:Cb:Cr = 4:2:0, the TIFF default (centered) is "
+"recommended. If the reader does not have the capability of supporting both "
+"kinds of <YCbCrPositioning>, it shall follow the TIFF default regardless of "
+"the value in this field. It is preferable that readers be able to support "
+"both centered and co-sited positioning."
+msgstr ""
+
+#: libexif/exif-tag.c:414
+msgid "Reference Black/White"
+msgstr ""
+
+#: libexif/exif-tag.c:415
+msgid ""
+"The reference black point value and reference white point value. No defaults "
+"are given in TIFF, but the values below are given as defaults here. The "
+"color space is declared in a color space information tag, with the default "
+"being the value that gives the optimal image characteristics "
+"Interoperability these conditions."
+msgstr ""
+
+#: libexif/exif-tag.c:423
+msgid "XML Packet"
+msgstr ""
+
+#: libexif/exif-tag.c:423
+msgid "XMP Metadata"
+msgstr ""
+
+#: libexif/exif-tag.c:438 libexif/exif-tag.c:784
+msgid "CFA Pattern"
+msgstr ""
+
+#: libexif/exif-tag.c:439 libexif/exif-tag.c:785
+msgid ""
+"Indicates the color filter array (CFA) geometric pattern of the image sensor "
+"when a one-chip color area sensor is used. It does not apply to all sensing "
+"methods."
+msgstr ""
+
+#: libexif/exif-tag.c:443
+msgid "Battery Level"
+msgstr "Pil Seviyesi"
+
+#: libexif/exif-tag.c:444
+msgid "Copyright"
+msgstr "Telif Hakkı"
+
+#: libexif/exif-tag.c:445
+msgid ""
+"Copyright information. In this standard the tag is used to indicate both the "
+"photographer and editor copyrights. It is the copyright notice of the person "
+"or organization claiming rights to the image. The Interoperability copyright "
+"statement including date and rights should be written in this field; e.g., "
+"\"Copyright, John Smith, 19xx. All rights reserved.\". In this standard the "
+"field records both the photographer and editor copyrights, with each "
+"recorded in a separate part of the statement. When there is a clear "
+"distinction between the photographer and editor copyrights, these are to be "
+"written in the order of photographer followed by editor copyright, separated "
+"by NULL (in this case, since the statement also ends with a NULL, there are "
+"two NULL codes) (see example 1). When only the photographer is given, it is "
+"terminated by one NULL code (see example 2). When only the editor copyright "
+"is given, the photographer copyright part consists of one space followed by "
+"a terminating NULL code, then the editor copyright is given (see example 3). "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:467
+msgid "Exposure time, given in seconds (sec)."
+msgstr ""
+
+#: libexif/exif-tag.c:469 libexif/pentax/mnote-pentax-tag.c:79
+msgid "F-Number"
+msgstr ""
+
+#: libexif/exif-tag.c:470
+msgid "The F number."
+msgstr ""
+
+#: libexif/exif-tag.c:475
+msgid "Image Resources Block"
+msgstr ""
+
+#: libexif/exif-tag.c:477
+msgid ""
+"A pointer to the Exif IFD. Interoperability, Exif IFD has the same structure "
+"as that of the IFD specified in TIFF. ordinarily, however, it does not "
+"contain image data as in the case of TIFF."
+msgstr ""
+
+#: libexif/exif-tag.c:485
+msgid "Exposure Program"
+msgstr ""
+
+#: libexif/exif-tag.c:486
+msgid ""
+"The class of the program used by the camera to set exposure when the picture "
+"is taken."
+msgstr ""
+
+#: libexif/exif-tag.c:490
+msgid "Spectral Sensitivity"
+msgstr ""
+
+#: libexif/exif-tag.c:491
+msgid ""
+"Indicates the spectral sensitivity of each channel of the camera used. The "
+"tag value is an ASCII string compatible with the standard developed by the "
+"ASTM Technical Committee."
+msgstr ""
+
+#: libexif/exif-tag.c:496
+msgid "GPS Info IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:497
+msgid ""
+"A pointer to the GPS Info IFD. The Interoperability structure of the GPS "
+"Info IFD, like that of Exif IFD, has no image data."
+msgstr ""
+
+#: libexif/exif-tag.c:503
+msgid "ISO Speed Ratings"
+msgstr ""
+
+#: libexif/exif-tag.c:504
+msgid ""
+"Indicates the ISO Speed and ISO Latitude of the camera or input device as "
+"specified in ISO 12232."
+msgstr ""
+
+#: libexif/exif-tag.c:507
+msgid "Opto-Electronic Conversion Function"
+msgstr ""
+
+#: libexif/exif-tag.c:508
+msgid ""
+"Indicates the Opto-Electronic Conversion Function (OECF) specified in ISO "
+"14524. <OECF> is the relationship between the camera optical input and the "
+"image values."
+msgstr ""
+
+#: libexif/exif-tag.c:513
+msgid "Time Zone Offset"
+msgstr ""
+
+#: libexif/exif-tag.c:514
+msgid "Encodes time zone of camera clock relative to GMT."
+msgstr ""
+
+#: libexif/exif-tag.c:515
+msgid "Exif Version"
+msgstr ""
+
+#: libexif/exif-tag.c:516
+msgid ""
+"The version of this standard supported. Nonexistence of this field is taken "
+"to mean nonconformance to the standard."
+msgstr ""
+
+#: libexif/exif-tag.c:520
+#, fuzzy
+msgid "Date and Time (Original)"
+msgstr "Tarih ve Zaman (orijinal)"
+
+#: libexif/exif-tag.c:521
+msgid ""
+"The date and time when the original image data was generated. For a digital "
+"still camera the date and time the picture was taken are recorded."
+msgstr ""
+
+#: libexif/exif-tag.c:526
+#, fuzzy
+msgid "Date and Time (Digitized)"
+msgstr "Tarih ve Zaman (orijinal)"
+
+#: libexif/exif-tag.c:527
+msgid "The date and time when the image was stored as digital data."
+msgstr ""
+
+#: libexif/exif-tag.c:530
+msgid "Components Configuration"
+msgstr ""
+
+#: libexif/exif-tag.c:531
+msgid ""
+"Information specific to compressed data. The channels of each component are "
+"arranged in order from the 1st component to the 4th. For uncompressed data "
+"the data arrangement is given in the <PhotometricInterpretation> tag. "
+"However, since <PhotometricInterpretation> can only express the order of Y, "
+"Cb and Cr, this tag is provided for cases when compressed data uses "
+"components other than Y, Cb, and Cr and to enable support of other sequences."
+msgstr ""
+
+#: libexif/exif-tag.c:541
+msgid "Compressed Bits per Pixel"
+msgstr ""
+
+#: libexif/exif-tag.c:542
+msgid ""
+"Information specific to compressed data. The compression mode used for a "
+"compressed image is indicated in unit bits per pixel."
+msgstr ""
+
+#: libexif/exif-tag.c:546 libexif/olympus/mnote-olympus-tag.c:123
+msgid "Shutter Speed"
+msgstr ""
+
+#: libexif/exif-tag.c:547
+msgid ""
+"Shutter speed. The unit is the APEX (Additive System of Photographic "
+"Exposure) setting."
+msgstr ""
+
+#: libexif/exif-tag.c:551
+msgid "The lens aperture. The unit is the APEX value."
+msgstr ""
+
+#: libexif/exif-tag.c:553
+msgid "Brightness"
+msgstr "Parlaklık"
+
+#: libexif/exif-tag.c:554
+msgid ""
+"The value of brightness. The unit is the APEX value. Ordinarily it is given "
+"in the range of -99.99 to 99.99."
+msgstr ""
+
+#: libexif/exif-tag.c:558
+msgid "Exposure Bias"
+msgstr ""
+
+#: libexif/exif-tag.c:559
+msgid ""
+"The exposure bias. The units is the APEX value. Ordinarily it is given in "
+"the range of -99.99 to 99.99."
+msgstr ""
+
+#: libexif/exif-tag.c:562
+msgid "Maximum Aperture Value"
+msgstr ""
+
+#: libexif/exif-tag.c:563
+msgid ""
+"The smallest F number of the lens. The unit is the APEX value. Ordinarily it "
+"is given in the range of 00.00 to 99.99, but it is not limited to this range."
+msgstr ""
+
+#: libexif/exif-tag.c:568
+msgid "Subject Distance"
+msgstr ""
+
+#: libexif/exif-tag.c:569
+msgid "The distance to the subject, given in meters."
+msgstr ""
+
+#: libexif/exif-tag.c:572
+msgid "The metering mode."
+msgstr ""
+
+#: libexif/exif-tag.c:574
+msgid "Light Source"
+msgstr "Işık Kaynağı"
+
+#: libexif/exif-tag.c:575
+msgid "The kind of light source."
+msgstr ""
+
+#: libexif/exif-tag.c:578
+msgid ""
+"This tag is recorded when an image is taken using a strobe light (flash)."
+msgstr ""
+
+#: libexif/exif-tag.c:582
+msgid ""
+"The actual focal length of the lens, in mm. Conversion is not made to the "
+"focal length of a 35 mm film camera."
+msgstr ""
+
+#: libexif/exif-tag.c:585
+msgid "Subject Area"
+msgstr ""
+
+#: libexif/exif-tag.c:586
+msgid ""
+"This tag indicates the location and area of the main subject in the overall "
+"scene."
+msgstr ""
+
+#: libexif/exif-tag.c:590
+msgid "TIFF/EP Standard ID"
+msgstr ""
+
+#: libexif/exif-tag.c:591
+msgid "Maker Note"
+msgstr ""
+
+#: libexif/exif-tag.c:592
+msgid ""
+"A tag for manufacturers of Exif writers to record any desired information. "
+"The contents are up to the manufacturer."
+msgstr ""
+
+#: libexif/exif-tag.c:595
+msgid "User Comment"
+msgstr ""
+
+#: libexif/exif-tag.c:596
+msgid ""
+"A tag for Exif users to write keywords or comments on the image besides "
+"those in <ImageDescription>, and without the character code limitations of "
+"the <ImageDescription> tag. The character code used in the <UserComment> tag "
+"is identified based on an ID code in a fixed 8-byte area at the start of the "
+"tag data area. The unused portion of the area is padded with NULL (\"00.h"
+"\"). ID codes are assigned by means of registration. The designation method "
+"and references for each character code are defined in the specification. The "
+"value of CountN is determined based on the 8 bytes in the character code "
+"area and the number of bytes in the user comment part. Since the TYPE is not "
+"ASCII, NULL termination is not necessary. The ID code for the <UserComment> "
+"area may be a Defined code such as JIS or ASCII, or may be Undefined. The "
+"Undefined name is UndefinedText, and the ID code is filled with 8 bytes of "
+"all \"NULL\" (\"00.H\"). An Exif reader that reads the <UserComment> tag "
+"must have a function for determining the ID code. This function is not "
+"required in Exif readers that do not use the <UserComment> tag. When a "
+"<UserComment> area is set aside, it is recommended that the ID code be ASCII "
+"and that the following user comment part be filled with blank characters [20."
+"H]."
+msgstr ""
+
+#: libexif/exif-tag.c:619
+msgid "Sub-second Time"
+msgstr ""
+
+#: libexif/exif-tag.c:620
+msgid "A tag used to record fractions of seconds for the <DateTime> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:624
+#, fuzzy
+msgid "Sub-second Time (Original)"
+msgstr "Tarih ve Zaman (orijinal)"
+
+#: libexif/exif-tag.c:625
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeOriginal> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:629
+msgid "Sub-second Time (Digitized)"
+msgstr ""
+
+#: libexif/exif-tag.c:630
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeDigitized> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:634
+msgid "XP Title"
+msgstr ""
+
+#: libexif/exif-tag.c:635
+msgid "A character string giving the title of the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:639
+msgid "XP Comment"
+msgstr ""
+
+#: libexif/exif-tag.c:640
+msgid ""
+"A character string containing a comment about the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:644
+msgid "XP Author"
+msgstr ""
+
+#: libexif/exif-tag.c:645
+msgid ""
+"A character string containing the name of the image creator, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:649
+msgid "XP Keywords"
+msgstr ""
+
+#: libexif/exif-tag.c:650
+msgid ""
+"A character string containing key words describing the image, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:654
+msgid "XP Subject"
+msgstr ""
+
+#: libexif/exif-tag.c:655
+msgid "A character string giving the image subject, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:659
+msgid "The FlashPix format version supported by a FPXR file."
+msgstr ""
+
+#: libexif/exif-tag.c:661 libexif/pentax/mnote-pentax-tag.c:102
+msgid "Color Space"
+msgstr "Renk Aralığı"
+
+#: libexif/exif-tag.c:662
+msgid ""
+"The color space information tag is always recorded as the color space "
+"specifier. Normally sRGB (=1) is used to define the color space based on the "
+"PC monitor conditions and environment. If a color space other than sRGB is "
+"used, Uncalibrated (=FFFF.H) is set. Image data recorded as Uncalibrated can "
+"be treated as sRGB when it is converted to FlashPix."
+msgstr ""
+
+#: libexif/exif-tag.c:670
+msgid "Pixel X Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:671
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid width of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file."
+msgstr ""
+
+#: libexif/exif-tag.c:677
+msgid "Pixel Y Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:678
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid height of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file. Since data padding is unnecessary in the "
+"vertical direction, the number of lines recorded in this valid image height "
+"tag will in fact be the same as that recorded in the SOF."
+msgstr ""
+
+#: libexif/exif-tag.c:688
+msgid "Related Sound File"
+msgstr ""
+
+#: libexif/exif-tag.c:689
+msgid ""
+"This tag is used to record the name of an audio file related to the image "
+"data. The only relational information recorded here is the Exif audio file "
+"name and extension (an ASCII string consisting of 8 characters + '.' + 3 "
+"characters). The path is not recorded. Stipulations on audio and file naming "
+"conventions are defined in the specification. When using this tag, audio "
+"files must be recorded in conformance to the Exif audio format. Writers are "
+"also allowed to store the data such as Audio within APP2 as FlashPix "
+"extension stream data. The mapping of Exif image files and audio files is "
+"done in any of three ways, [1], [2] and [3]. If multiple files are mapped to "
+"one file as in [2] or [3], the above format is used to record just one audio "
+"file name. If there are multiple audio files, the first recorded file is "
+"given. In the case of [3], for example, for the Exif image file \"DSC00001."
+"JPG\" only  \"SND00001.WAV\" is given as the related Exif audio file. When "
+"there are three Exif audio files \"SND00001.WAV\", \"SND00002.WAV\" and "
+"\"SND00003.WAV\", the Exif image file name for each of them, \"DSC00001.JPG"
+"\", is indicated. By combining multiple relational information, a variety of "
+"playback possibilities can be supported. The method of using relational "
+"information is left to the implementation on the playback side. Since this "
+"information is an ASCII character string, it is terminated by NULL. When "
+"this tag is used to map audio files, the relation of the audio file to image "
+"data must also be indicated on the audio file end."
+msgstr ""
+
+#: libexif/exif-tag.c:719
+msgid "Interoperability IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:720
+msgid ""
+"Interoperability IFD is composed of tags which stores the information to "
+"ensure the Interoperability and pointed by the following tag located in Exif "
+"IFD. The Interoperability structure of Interoperability IFD is the same as "
+"TIFF defined IFD structure but does not contain the image data "
+"characteristically compared with normal TIFF IFD."
+msgstr ""
+
+#: libexif/exif-tag.c:729
+msgid "Flash Energy"
+msgstr ""
+
+#: libexif/exif-tag.c:730
+msgid ""
+"Indicates the strobe energy at the time the image is captured, as measured "
+"in Beam Candle Power Seconds (BCPS)."
+msgstr ""
+
+#: libexif/exif-tag.c:734
+msgid "Spatial Frequency Response"
+msgstr ""
+
+#: libexif/exif-tag.c:735
+msgid ""
+"This tag records the camera or input device spatial frequency table and SFR "
+"values in the direction of image width, image height, and diagonal "
+"direction, as specified in ISO 12233."
+msgstr ""
+
+#: libexif/exif-tag.c:741
+msgid "Focal Plane X-Resolution"
+msgstr ""
+
+#: libexif/exif-tag.c:742
+msgid ""
+"Indicates the number of pixels in the image width (X) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+
+#: libexif/exif-tag.c:746
+msgid "Focal Plane Y-Resolution"
+msgstr ""
+
+#: libexif/exif-tag.c:747
+msgid ""
+"Indicates the number of pixels in the image height (V) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+
+#: libexif/exif-tag.c:751
+msgid "Focal Plane Resolution Unit"
+msgstr ""
+
+#: libexif/exif-tag.c:752
+msgid ""
+"Indicates the unit for measuring <FocalPlaneXResolution> and "
+"<FocalPlaneYResolution>. This value is the same as the <ResolutionUnit>."
+msgstr ""
+
+#: libexif/exif-tag.c:757
+msgid "Subject Location"
+msgstr ""
+
+#: libexif/exif-tag.c:758
+msgid ""
+"Indicates the location of the main subject in the scene. The value of this "
+"tag represents the pixel at the center of the main subject relative to the "
+"left edge, prior to rotation processing as per the <Rotation> tag. The first "
+"value indicates the X column number and the second indicates the Y row "
+"number."
+msgstr ""
+
+#: libexif/exif-tag.c:765
+msgid "Exposure Index"
+msgstr ""
+
+#: libexif/exif-tag.c:766
+msgid ""
+"Indicates the exposure index selected on the camera or input device at the "
+"time the image is captured."
+msgstr ""
+
+#: libexif/exif-tag.c:769
+msgid "Sensing Method"
+msgstr ""
+
+#: libexif/exif-tag.c:770
+msgid "Indicates the image sensor type on the camera or input device."
+msgstr ""
+
+#: libexif/exif-tag.c:773 libexif/fuji/mnote-fuji-tag.c:64
+msgid "File Source"
+msgstr ""
+
+#: libexif/exif-tag.c:774
+msgid ""
+"Indicates the image source. If a DSC recorded the image, the tag value of "
+"this tag always be set to 3, indicating that the image was recorded on a DSC."
+msgstr ""
+
+#: libexif/exif-tag.c:778
+msgid "Scene Type"
+msgstr ""
+
+#: libexif/exif-tag.c:779
+msgid ""
+"Indicates the type of scene. If a DSC recorded the image, this tag value "
+"must always be set to 1, indicating that the image was directly photographed."
+msgstr ""
+
+#: libexif/exif-tag.c:789
+msgid "Custom Rendered"
+msgstr ""
+
+#: libexif/exif-tag.c:790
+msgid ""
+"This tag indicates the use of special processing on image data, such as "
+"rendering geared to output. When special processing is performed, the reader "
+"is expected to disable or minimize any further processing."
+msgstr ""
+
+#: libexif/exif-tag.c:796
+msgid ""
+"This tag indicates the exposure mode set when the image was shot. In auto-"
+"bracketing mode, the camera shoots a series of frames of the same scene at "
+"different exposure settings."
+msgstr ""
+
+#: libexif/exif-tag.c:801
+msgid "This tag indicates the white balance mode set when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:805
+msgid "Digital Zoom Ratio"
+msgstr ""
+
+#: libexif/exif-tag.c:806
+msgid ""
+"This tag indicates the digital zoom ratio when the image was shot. If the "
+"numerator of the recorded value is 0, this indicates that digital zoom was "
+"not used."
+msgstr ""
+
+#: libexif/exif-tag.c:811
+msgid "Focal Length in 35mm Film"
+msgstr ""
+
+#: libexif/exif-tag.c:812
+msgid ""
+"This tag indicates the equivalent focal length assuming a 35mm film camera, "
+"in mm. A value of 0 means the focal length is unknown. Note that this tag "
+"differs from the FocalLength tag."
+msgstr ""
+
+#: libexif/exif-tag.c:818
+msgid "Scene Capture Type"
+msgstr ""
+
+#: libexif/exif-tag.c:819
+msgid ""
+"This tag indicates the type of scene that was shot. It can also be used to "
+"record the mode in which the image was shot. Note that this differs from the "
+"scene type <SceneType> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:824
+msgid "Gain Control"
+msgstr ""
+
+#: libexif/exif-tag.c:825
+msgid "This tag indicates the degree of overall image gain adjustment."
+msgstr ""
+
+#: libexif/exif-tag.c:829
+msgid ""
+"This tag indicates the direction of contrast processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:833
+msgid ""
+"This tag indicates the direction of saturation processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:837
+msgid ""
+"This tag indicates the direction of sharpness processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:841
+msgid "Device Setting Description"
+msgstr ""
+
+#: libexif/exif-tag.c:842
+msgid ""
+"This tag indicates information on the picture-taking conditions of a "
+"particular camera model. The tag is used only to indicate the picture-taking "
+"conditions in the reader."
+msgstr ""
+
+#: libexif/exif-tag.c:848
+msgid "Subject Distance Range"
+msgstr ""
+
+#: libexif/exif-tag.c:849
+msgid "This tag indicates the distance to the subject."
+msgstr ""
+
+#: libexif/exif-tag.c:851
+msgid "Image Unique ID"
+msgstr ""
+
+#: libexif/exif-tag.c:852
+msgid ""
+"This tag indicates an identifier assigned uniquely to each image. It is "
+"recorded as an ASCII string equivalent to hexadecimal notation and 128-bit "
+"fixed length."
+msgstr ""
+
+#: libexif/exif-tag.c:857
+msgid "Gamma"
+msgstr "Gama"
+
+#: libexif/exif-tag.c:858
+msgid "Indicates the value of coefficient gamma."
+msgstr ""
+
+#: libexif/exif-tag.c:860
+msgid "PRINT Image Matching"
+msgstr ""
+
+#: libexif/exif-tag.c:861
+msgid "Related to Epson's PRINT Image Matching technology"
+msgstr ""
+
+#: libexif/exif-tag.c:863
+msgid "Padding"
+msgstr ""
+
+#: libexif/exif-tag.c:864
+msgid ""
+"This tag reserves space that can be reclaimed later when additional metadata "
+"are added. New metadata can be written in place by replacing this tag with a "
+"smaller data element and using the reclaimed space to store the new or "
+"expanded metadata tags."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:62
+msgid "Softest"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:66
+msgid "Hardest"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:67 libexif/fuji/mnote-fuji-entry.c:96
+msgid "Medium soft"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:68 libexif/fuji/mnote-fuji-entry.c:94
+msgid "Medium hard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:69 libexif/fuji/mnote-fuji-entry.c:90
+#: libexif/fuji/mnote-fuji-entry.c:98 libexif/fuji/mnote-fuji-entry.c:182
+msgid "Film simulation mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:79
+msgid "Incandescent"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:85
+msgid "Medium high"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:87
+msgid "Medium low"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:88 libexif/fuji/mnote-fuji-entry.c:97
+msgid "Original"
+msgstr "Orijinal"
+
+#: libexif/fuji/mnote-fuji-entry.c:124 libexif/pentax/mnote-pentax-entry.c:164
+#: libexif/pentax/mnote-pentax-entry.c:299
+msgid "Program AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:125
+msgid "Natural photo"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:126
+msgid "Vibration reduction"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:127
+msgid "Sunset"
+msgstr "Gün batımı"
+
+#: libexif/fuji/mnote-fuji-entry.c:128 libexif/pentax/mnote-pentax-entry.c:181
+msgid "Museum"
+msgstr "Müze"
+
+#: libexif/fuji/mnote-fuji-entry.c:129
+msgid "Party"
+msgstr "Parti"
+
+#: libexif/fuji/mnote-fuji-entry.c:130
+msgid "Flower"
+msgstr "Çiçek"
+
+#: libexif/fuji/mnote-fuji-entry.c:131 libexif/pentax/mnote-pentax-entry.c:176
+msgid "Text"
+msgstr "Metin"
+
+#: libexif/fuji/mnote-fuji-entry.c:132
+msgid "NP & flash"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:137
+msgid "Aperture priority AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:138
+msgid "Shutter priority AE"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:146
+msgid "F-Standard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:147
+msgid "F-Chrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:148
+msgid "F-B&W"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:151
+msgid "No blur"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:152
+msgid "Blur warning"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:155
+msgid "Focus good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:156
+msgid "Out of focus"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:159
+msgid "AE good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:160
+msgid "Over exposed"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:164
+msgid "Wide"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:167
+msgid "F0/Standard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:168
+msgid "F1/Studio portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:169
+msgid "F1a/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:170
+msgid "F1b/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:171
+msgid "F1c/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:172
+msgid "F2/Fujichrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:173
+msgid "F3/Studio portrait Ex"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:174
+msgid "F4/Velvia"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:177
+msgid "Auto (100-400%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:179
+msgid "Standard (100%)"
+msgstr "Standard (%100)"
+
+#: libexif/fuji/mnote-fuji-entry.c:180
+msgid "Wide1 (230%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:181
+msgid "Wide2 (400%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:263
+#, c-format
+msgid "%2.2f mm"
+msgstr "%2.2f mm"
+
+#: libexif/fuji/mnote-fuji-entry.c:298 libexif/pentax/mnote-pentax-entry.c:399
+#: libexif/pentax/mnote-pentax-entry.c:451
+#, c-format
+msgid "%i bytes unknown data"
+msgstr "%i bayt bilinmeyen veri"
+
+#: libexif/fuji/mnote-fuji-tag.c:36
+msgid "Maker Note Version"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:37
+msgid "This number is unique and based on the date of manufacture."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:41
+msgid "Chromaticity Saturation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:44
+msgid "Flash Firing Strength Compensation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:46
+msgid "Focusing Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:47
+msgid "Focus Point"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:48
+msgid "Slow Synchro Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:49 libexif/pentax/mnote-pentax-tag.c:72
+msgid "Picture Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:50
+msgid "Continuous Taking"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:51
+msgid "Continuous Sequence Number"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:52
+msgid "FinePix Color"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:53
+msgid "Blur Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:54
+msgid "Auto Focus Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:55
+msgid "Auto Exposure Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:56
+msgid "Dynamic Range"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:57
+msgid "Film Simulation Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:58
+msgid "Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:59
+msgid "Development Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:60
+msgid "Minimum Focal Length"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:61
+msgid "Maximum Focal Length"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:62
+msgid "Maximum Aperture at Minimum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:63
+msgid "Maximum Aperture at Maximum Focal"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:65
+msgid "Order Number"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:66 libexif/pentax/mnote-pentax-tag.c:98
+msgid "Frame Number"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:49
+#, c-format
+msgid "Invalid format '%s', expected '%s' or '%s'."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:89
+msgid "AF non D lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:91
+msgid "AF-D or AF-S lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:92
+msgid "AF-D G lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:93
+msgid "AF-D VR lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:94
+msgid "AF-D G VR lens"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:98
+msgid "Flash unit unknown"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:99
+msgid "Flash is external"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:100
+#, fuzzy
+msgid "Flash is on camera"
+msgstr "Flaş açık"
+
+#: libexif/olympus/mnote-olympus-entry.c:103
+msgid "VGA basic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:104
+#, fuzzy
+msgid "VGA normal"
+msgstr "VGA Normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:105
+msgid "VGA fine"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:106
+msgid "SXGA basic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:107
+#, fuzzy
+msgid "SXGA normal"
+msgstr "SXGA Normal"
+
+#: libexif/olympus/mnote-olympus-entry.c:108
+msgid "SXGA fine"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:109
+msgid "2 Mpixel basic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:110
+msgid "2 Mpixel normal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:111
+msgid "2 Mpixel fine"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:114
+msgid "Color"
+msgstr "Renk"
+
+#: libexif/olympus/mnote-olympus-entry.c:119
+msgid "Bright+"
+msgstr "Parlak+"
+
+#: libexif/olympus/mnote-olympus-entry.c:120
+msgid "Bright-"
+msgstr "Parlak-"
+
+#: libexif/olympus/mnote-olympus-entry.c:121
+msgid "Contrast+"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:122
+msgid "Contrast-"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:125
+msgid "ISO 80"
+msgstr "ISO 80"
+
+#: libexif/olympus/mnote-olympus-entry.c:126
+msgid "ISO 160"
+msgstr "ISO 160"
+
+#: libexif/olympus/mnote-olympus-entry.c:127
+msgid "ISO 320"
+msgstr "ISO 320"
+
+#: libexif/olympus/mnote-olympus-entry.c:128
+#: libexif/olympus/mnote-olympus-entry.c:246
+msgid "ISO 100"
+msgstr "ISO 100"
+
+#: libexif/olympus/mnote-olympus-entry.c:132
+msgid "Preset"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:134
+msgid "Incandescence"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:135
+msgid "Fluorescence"
+msgstr "Floresan"
+
+#: libexif/olympus/mnote-olympus-entry.c:137
+msgid "SpeedLight"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:140
+msgid "No fisheye"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:141
+#, fuzzy
+msgid "Fisheye on"
+msgstr "Flaş açık"
+
+#: libexif/olympus/mnote-olympus-entry.c:144
+msgid "Normal, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:145
+msgid "Normal, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:146
+msgid "Normal, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:147
+msgid "Normal, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:148
+msgid "Normal, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:149
+msgid "Normal, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:150
+msgid "Normal, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:151
+msgid "Normal, standard"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:152
+msgid "Fine, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:153
+msgid "Fine, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:154
+msgid "Fine, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:155
+msgid "Fine, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:156
+msgid "Fine, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:157
+msgid "Fine, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:158
+msgid "Fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:159
+msgid "Super fine, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:160
+msgid "Super fine, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:161
+msgid "Super fine, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:162
+msgid "Super fine, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:163
+msgid "Super fine, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:164
+msgid "Super fine, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:165
+msgid "Super fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:166
+msgid "Super fine, high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:169
+#: libexif/olympus/mnote-olympus-entry.c:174
+#: libexif/olympus/mnote-olympus-entry.c:208
+#: libexif/olympus/mnote-olympus-entry.c:217
+#: libexif/olympus/mnote-olympus-entry.c:240
+msgid "No"
+msgstr "Hayır"
+
+#: libexif/olympus/mnote-olympus-entry.c:180
+msgid "On (Preset)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:185
+msgid "Fill"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:192
+#, fuzzy
+msgid "Internal + external"
+msgstr "Dahili + Harici"
+
+#: libexif/olympus/mnote-olympus-entry.c:221
+msgid "Interlaced"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:222
+msgid "Progressive"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:228
+#: libexif/pentax/mnote-pentax-entry.c:85
+#: libexif/pentax/mnote-pentax-entry.c:139
+msgid "Best"
+msgstr "En iyi"
+
+#: libexif/olympus/mnote-olympus-entry.c:229
+msgid "Adjust exposure"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:232
+#, fuzzy
+msgid "Spot focus"
+msgstr "Pan odaklama"
+
+#: libexif/olympus/mnote-olympus-entry.c:233
+#, fuzzy
+msgid "Normal focus"
+msgstr "Normal işlem"
+
+#: libexif/olympus/mnote-olympus-entry.c:236
+msgid "Record while down"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:237
+msgid "Press start, press stop"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:245
+msgid "ISO 50"
+msgstr "ISO 50"
+
+#: libexif/olympus/mnote-olympus-entry.c:247
+msgid "ISO 200"
+msgstr "ISO 200"
+
+#: libexif/olympus/mnote-olympus-entry.c:248
+msgid "ISO 400"
+msgstr "ISO 400"
+
+#: libexif/olympus/mnote-olympus-entry.c:252
+#: libexif/pentax/mnote-pentax-entry.c:168
+msgid "Sport"
+msgstr "Spor"
+
+#: libexif/olympus/mnote-olympus-entry.c:253
+msgid "TV"
+msgstr "TV"
+
+#: libexif/olympus/mnote-olympus-entry.c:255
+msgid "User 1"
+msgstr "Kullanıcı 1"
+
+#: libexif/olympus/mnote-olympus-entry.c:256
+msgid "User 2"
+msgstr "Kullanıcı 2"
+
+#: libexif/olympus/mnote-olympus-entry.c:257
+msgid "Lamp"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:260
+msgid "5 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:261
+msgid "10 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:262
+msgid "15 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:263
+msgid "20 frames/sec"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:375
+#, c-format
+msgid "Red Correction %f, blue Correction %f"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:383
+#, c-format
+msgid "%2.2f meters"
+msgstr "%2.2f metre"
+
+#: libexif/olympus/mnote-olympus-entry.c:385
+msgid "No manual focus selection"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:411
+msgid "AF position: center"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:412
+msgid "AF position: top"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:413
+#, fuzzy
+msgid "AF position: bottom"
+msgstr "Yukarıdan aşağıya"
+
+#: libexif/olympus/mnote-olympus-entry.c:414
+msgid "AF position: left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:415
+msgid "AF position: right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:416
+msgid "AF position: upper-left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:417
+msgid "AF position: upper-right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:418
+msgid "AF position: lower-left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:419
+msgid "AF position: lower-right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:420
+msgid "AF position: far left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:421
+msgid "AF position: far right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:422
+#, fuzzy
+msgid "Unknown AF position"
+msgstr "Bilinmeyen kodlama."
+
+#: libexif/olympus/mnote-olympus-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:503
+#, c-format
+msgid "Internal error (unknown value %hi)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:441
+#: libexif/olympus/mnote-olympus-entry.c:511
+#, c-format
+msgid "Unknown value %hi"
+msgstr "Bilinmeyen değer %hi"
+
+#: libexif/olympus/mnote-olympus-entry.c:536
+#: libexif/olympus/mnote-olympus-entry.c:556
+#, c-format
+msgid "Unknown %hu"
+msgstr "Bilinmeyen %hu"
+
+#: libexif/olympus/mnote-olympus-entry.c:553
+msgid "2 sec."
+msgstr "2 sn."
+
+#: libexif/olympus/mnote-olympus-entry.c:592
+#, fuzzy
+msgid "Fast"
+msgstr "hızlı"
+
+#: libexif/olympus/mnote-olympus-entry.c:696
+msgid "Automatic"
+msgstr "Otomatik"
+
+#: libexif/olympus/mnote-olympus-entry.c:726
+#, c-format
+msgid "Manual: %liK"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:729
+msgid "Manual: unknown"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:735
+msgid "One-touch"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:791
+#: libexif/olympus/mnote-olympus-entry.c:801
+msgid "Infinite"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:809
+#, c-format
+msgid "%i bytes unknown data: "
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:53
+msgid "ISO Setting"
+msgstr "ISO Ayarı"
+
+#: libexif/olympus/mnote-olympus-tag.c:39
+msgid "Color Mode (?)"
+msgstr "Renk Modu (?)"
+
+#: libexif/olympus/mnote-olympus-tag.c:42
+msgid "Image Sharpening"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:44
+msgid "Flash Setting"
+msgstr "Flaş Ayarı"
+
+#: libexif/olympus/mnote-olympus-tag.c:46
+msgid "White Balance Fine Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:47
+msgid "White Balance RB"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:49
+msgid "ISO Selection"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Preview Image IFD"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Offset of the preview image directory (IFD) inside the file."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:51
+msgid "Exposurediff ?"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:54
+msgid "Image Boundary"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:56
+msgid "Flash Exposure Bracket Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:57
+msgid "Exposure Bracket Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:58
+#: libexif/olympus/mnote-olympus-tag.c:96
+msgid "Image Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:59
+msgid "Tone Compensation"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:60
+msgid "Adapter"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:62
+msgid "Lens"
+msgstr "Mercek"
+
+#: libexif/olympus/mnote-olympus-tag.c:63
+#: libexif/olympus/mnote-olympus-tag.c:135
+#: libexif/olympus/mnote-olympus-tag.c:185
+msgid "Manual Focus Distance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:65
+msgid "Flash Used"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:66
+msgid "AF Focus Position"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:67
+msgid "Bracketing"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:69
+msgid "Lens F Stops"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:70
+msgid "Contrast Curve"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:71
+#: libexif/olympus/mnote-olympus-tag.c:95
+#: libexif/pentax/mnote-pentax-tag.c:134
+msgid "Color Mode"
+msgstr "Renk Modu"
+
+#: libexif/olympus/mnote-olympus-tag.c:72
+msgid "Light Type"
+msgstr "Işık Türü"
+
+#: libexif/olympus/mnote-olympus-tag.c:74
+msgid "Hue Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:76
+#: libexif/olympus/mnote-olympus-tag.c:163
+#: libexif/pentax/mnote-pentax-tag.c:108
+msgid "Noise Reduction"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:79
+msgid "Sensor Pixel Size"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+#, fuzzy
+msgid "Image Data Size"
+msgstr "Görüntü Boyutu"
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Size of compressed image data in bytes."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:84
+msgid "Total Number of Pictures Taken"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:86
+msgid "Optimize Image"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:88
+msgid "Vari Program"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:89
+msgid "Capture Editor Data"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:90
+msgid "Capture Editor Version"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:97
+#: libexif/olympus/mnote-olympus-tag.c:183
+msgid "CCD Sensitivity"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:99
+msgid "Focus"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:102
+msgid "Converter"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:105
+msgid "Thumbnail Image"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:106
+msgid "Speed/Sequence/Panorama Direction"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:109
+#, fuzzy
+msgid "Black & White Mode"
+msgstr "Siyah & Beyaz"
+
+#: libexif/olympus/mnote-olympus-tag.c:111
+msgid "Focal Plane Diagonal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:112
+msgid "Lens Distortion Parameters"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:114
+msgid "Info"
+msgstr "Bilgi"
+
+#: libexif/olympus/mnote-olympus-tag.c:115
+msgid "Camera ID"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:116
+msgid "Precapture Frames"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:117
+msgid "White Board"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:118
+msgid "One Touch White Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:119
+msgid "White Balance Bracket"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:120
+#: libexif/pentax/mnote-pentax-tag.c:123
+msgid "White Balance Bias"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:121
+msgid "Data Dump"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:124
+msgid "ISO Value"
+msgstr "ISO Değeri"
+
+#: libexif/olympus/mnote-olympus-tag.c:125
+msgid "Aperture Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:126
+msgid "Brightness Value"
+msgstr "Parlaklık Değeri"
+
+#: libexif/olympus/mnote-olympus-tag.c:128
+msgid "Flash Device"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:130
+msgid "Sensor Temperature"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:131
+msgid "Lens Temperature"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:132
+msgid "Light Condition"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:136
+msgid "Zoom Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:137
+msgid "Focus Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:138
+msgid "Sharpness Setting"
+msgstr "Keskinlik Ayarı"
+
+#: libexif/olympus/mnote-olympus-tag.c:139
+msgid "Flash Charge Level"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:140
+msgid "Color Matrix"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:141
+msgid "Black Level"
+msgstr "Siyah Seviyesi"
+
+#: libexif/olympus/mnote-olympus-tag.c:142
+msgid "White Balance Setting"
+msgstr "Beyaz Denge Ayarı"
+
+#: libexif/olympus/mnote-olympus-tag.c:143
+#: libexif/pentax/mnote-pentax-tag.c:87
+msgid "Red Balance"
+msgstr "Kırmızı dengesi"
+
+#: libexif/olympus/mnote-olympus-tag.c:144
+#: libexif/pentax/mnote-pentax-tag.c:86
+msgid "Blue Balance"
+msgstr "Mavi Dengesi"
+
+#: libexif/olympus/mnote-olympus-tag.c:145
+msgid "Color Matrix Number"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:147
+msgid "Flash Exposure Comp"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:148
+msgid "Internal Flash Table"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:149
+msgid "External Flash G Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:150
+msgid "External Flash Bounce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:151
+msgid "External Flash Zoom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:152
+msgid "External Flash Mode"
+msgstr "Harici Flaş Modu"
+
+#: libexif/olympus/mnote-olympus-tag.c:153
+msgid "Contrast Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:154
+msgid "Sharpness Factor"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:155
+msgid "Color Control"
+msgstr "Renk Kontrolü"
+
+#: libexif/olympus/mnote-olympus-tag.c:156
+msgid "Olympus Image Width"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:157
+msgid "Olympus Image Height"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:158
+msgid "Scene Detect"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:159
+msgid "Compression Ratio"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:160
+msgid "Preview Image Valid"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:161
+msgid "AF Result"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:162
+msgid "CCD Scan Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:164
+msgid "Infinity Lens Step"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:165
+msgid "Near Lens Step"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:166
+msgid "Light Value Center"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:167
+msgid "Light Value Periphery"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:170
+msgid "Sequential Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:171
+msgid "Wide Range"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:172
+msgid "Color Adjustment Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:174
+msgid "Quick Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:176
+msgid "Voice Memo"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:177
+msgid "Record Shutter Release"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:178
+msgid "Flicker Reduce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:179
+msgid "Optical Zoom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:181
+msgid "Light Source Special"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:182
+msgid "Resaved"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:184
+msgid "Scene Select"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:186
+msgid "Sequence Shot Interval"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:189
+msgid "Epson Image Width"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:190
+msgid "Epson Image Height"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:191
+msgid "Epson Software Version"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:80
+#: libexif/pentax/mnote-pentax-entry.c:134
+msgid "Multi-exposure"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:83
+#: libexif/pentax/mnote-pentax-entry.c:137
+msgid "Good"
+msgstr "İyi"
+
+#: libexif/pentax/mnote-pentax-entry.c:84
+#: libexif/pentax/mnote-pentax-entry.c:138
+msgid "Better"
+msgstr "Daha iyi"
+
+#: libexif/pentax/mnote-pentax-entry.c:92
+msgid "Flash on"
+msgstr "Flaş açık"
+
+#: libexif/pentax/mnote-pentax-entry.c:140
+msgid "TIFF"
+msgstr "TIFF"
+
+#: libexif/pentax/mnote-pentax-entry.c:150
+msgid "2560x1920 or 2304x1728"
+msgstr "2560x1920 veya 2304x1728"
+
+#: libexif/pentax/mnote-pentax-entry.c:156
+msgid "2304x1728 or 2592x1944"
+msgstr "2304x1728 veya 2592x1944"
+
+#: libexif/pentax/mnote-pentax-entry.c:158
+msgid "2816x2212 or 2816x2112"
+msgstr "2816x2212 veya 2816x2112"
+
+#: libexif/pentax/mnote-pentax-entry.c:171
+msgid "Surf & snow"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:172
+#, fuzzy
+msgid "Sunset or candlelight"
+msgstr "Mum ışığı"
+
+#: libexif/pentax/mnote-pentax-entry.c:173
+msgid "Autumn"
+msgstr "Sonbahar"
+
+#: libexif/pentax/mnote-pentax-entry.c:178
+#, fuzzy
+msgid "Self portrait"
+msgstr "Portre"
+
+#: libexif/pentax/mnote-pentax-entry.c:179
+msgid "Illustrations"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:180
+#, fuzzy
+msgid "Digital filter"
+msgstr "Sayısal makro"
+
+#: libexif/pentax/mnote-pentax-entry.c:182
+msgid "Food"
+msgstr "Yiyecek"
+
+#: libexif/pentax/mnote-pentax-entry.c:183
+#, fuzzy
+msgid "Green mode"
+msgstr "Yeşil Modu"
+
+#: libexif/pentax/mnote-pentax-entry.c:184
+#, fuzzy
+msgid "Light pet"
+msgstr "Işık Türü"
+
+#: libexif/pentax/mnote-pentax-entry.c:185
+msgid "Dark pet"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:186
+#, fuzzy
+msgid "Medium pet"
+msgstr "Orta 1"
+
+#: libexif/pentax/mnote-pentax-entry.c:188
+#: libexif/pentax/mnote-pentax-entry.c:296
+msgid "Candlelight"
+msgstr "Mum ışığı"
+
+#: libexif/pentax/mnote-pentax-entry.c:189
+msgid "Natural skin tone"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:190
+msgid "Synchro sound record"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:191
+msgid "Frame composite"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:194
+#, fuzzy
+msgid "Auto, did not fire"
+msgstr "Flaş çalışmadı"
+
+#: libexif/pentax/mnote-pentax-entry.c:196
+#, fuzzy
+msgid "Auto, did not fire, red-eye reduction"
+msgstr "Otomatik + Kırmızı göz düzeltme"
+
+#: libexif/pentax/mnote-pentax-entry.c:197
+#, fuzzy
+msgid "Auto, fired"
+msgstr "Otomatik yüksek"
+
+#: libexif/pentax/mnote-pentax-entry.c:199
+#, fuzzy
+msgid "Auto, fired, red-eye reduction"
+msgstr "Otomatik + Kırmızı göz düzeltme"
+
+#: libexif/pentax/mnote-pentax-entry.c:201
+msgid "On, wireless"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:202
+msgid "On, soft"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:203
+msgid "On, slow-sync"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:204
+#, fuzzy
+msgid "On, slow-sync, red-eye reduction"
+msgstr "Açık + Kırmızı göz düzeltme"
+
+#: libexif/pentax/mnote-pentax-entry.c:205
+msgid "On, trailing-curtain sync"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:213
+msgid "AF-S"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:214
+msgid "AF-C"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:217
+msgid "Upper-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:218
+msgid "Top"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:219
+msgid "Upper-right"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:221
+msgid "Mid-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:223
+msgid "Mid-right"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:225
+msgid "Lower-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:226
+msgid "Bottom"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:227
+msgid "Lower-right"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:228
+#, fuzzy
+msgid "Fixed center"
+msgstr "Açık hava"
+
+#: libexif/pentax/mnote-pentax-entry.c:232
+msgid "Multiple"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:234
+msgid "Top-center"
+msgstr "Üst-orta"
+
+#: libexif/pentax/mnote-pentax-entry.c:240
+msgid "Bottom-center"
+msgstr "Alt-orta"
+
+#: libexif/pentax/mnote-pentax-entry.c:257
+msgid "User selected"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:282
+msgid "3008x2008 or 3040x2024"
+msgstr "3008x2008 veya 3040x2024"
+
+#: libexif/pentax/mnote-pentax-entry.c:293
+#, fuzzy
+msgid "Digital filter?"
+msgstr "Sayısal makro"
+
+#: libexif/pentax/mnote-pentax-entry.c:374
+#: libexif/pentax/mnote-pentax-entry.c:383
+#, c-format
+msgid "Internal error (unknown value %i %i)"
+msgstr "Dahili hata (bilinmeyen değer %i %i)"
+
+#: libexif/pentax/mnote-pentax-tag.c:35 libexif/pentax/mnote-pentax-tag.c:63
+msgid "Capture Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:36 libexif/pentax/mnote-pentax-tag.c:70
+#: libexif/pentax/mnote-pentax-tag.c:129
+msgid "Quality Level"
+msgstr "Kalite Seviyesi"
+
+#: libexif/pentax/mnote-pentax-tag.c:54
+#, fuzzy
+msgid "ISO Speed"
+msgstr "ISO Ayarı"
+
+#: libexif/pentax/mnote-pentax-tag.c:56
+msgid "Colors"
+msgstr "Renkler"
+
+#: libexif/pentax/mnote-pentax-tag.c:59
+msgid "PrintIM Settings"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:60 libexif/pentax/mnote-pentax-tag.c:131
+msgid "Time Zone"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:61
+msgid "Daylight Savings"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:64
+msgid "Preview Size"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:65
+msgid "Preview Length"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:66 libexif/pentax/mnote-pentax-tag.c:122
+msgid "Preview Start"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:67
+msgid "Model Identification"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:68
+msgid "Date"
+msgstr "Tarih"
+
+#: libexif/pentax/mnote-pentax-tag.c:69
+msgid "Time"
+msgstr "Zaman"
+
+#: libexif/pentax/mnote-pentax-tag.c:75
+msgid "AF Point Selected"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:76
+msgid "Auto AF Point"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:77
+msgid "Focus Position"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:80
+msgid "ISO Number"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:83
+msgid "Auto Bracketing"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:85
+msgid "White Balance Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:93
+msgid "World Time Location"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:94
+msgid "Hometown City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:95
+msgid "Destination City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Hometown DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Home Daylight Savings Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination Daylight Savings Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:99
+msgid "Image Processing"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:100
+msgid "Picture Mode (2)"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:103
+msgid "Image Area Offset"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:104
+msgid "Raw Image Size"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:105
+msgid "Autofocus Points Used"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:107
+msgid "Camera Temperature"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:110
+msgid "Image Tone"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:111
+msgid "Shake Reduction Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:112
+msgid "Black Point"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:114
+msgid "AE Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:115
+msgid "Lens Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:116
+msgid "Flash Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:117
+msgid "Camera Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:118
+msgid "Battery Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:119
+msgid "Hometown City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:120
+msgid "Destination City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Object Distance"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Distance of photographed object in millimeters."
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:126
+msgid "Flash Distance"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:132
+msgid "Bestshot Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:133
+msgid "CCS ISO Sensitivity"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:135
+msgid "Enhancement"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:136
+msgid "Finer"
+msgstr ""
+
+#: test/nls/test-nls.c:20 test/nls/test-nls.c:23 test/nls/test-nls.c:24
+msgid "[DO_NOT_TRANSLATE_THIS_MARKER]"
+msgstr ""
+
+#~ msgid "Left + Right"
+#~ msgstr "Sol + Sağ"
+
+#~ msgid "Daylight Fluorescent"
+#~ msgstr "Gün Işığı Floresan"
+
+#~ msgid "top - left"
+#~ msgstr "üst - sol"
+
+#~ msgid "top - right"
+#~ msgstr "üst - sağ"
+
+#~ msgid "bottom - right"
+#~ msgstr "alt - sağ"
+
+#~ msgid "bottom - left"
+#~ msgstr "alt - sol"
+
+#~ msgid "flash"
+#~ msgstr "flaş"
+
+#~ msgid "normal"
+#~ msgstr "normal"
+
+#~ msgid "left to right"
+#~ msgstr "soldan sağa"
+
+#~ msgid "right to left"
+#~ msgstr "sağdan sola"
+
+#~ msgid "bottom to top"
+#~ msgstr "aşağıdan yukarıya"
+
+#~ msgid "top to bottom"
+#~ msgstr "yukarıdan aşağıya"
+
+#~ msgid "B&W Mode"
+#~ msgstr "S&B Modu"
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/vi.gmo b/framework/modules/c_LibExifModule/libexif-0.6.20/po/vi.gmo
new file mode 100644
index 0000000000000000000000000000000000000000..52e71b0a2b967f20a9642c02ca22b96677986e6c
Binary files /dev/null and b/framework/modules/c_LibExifModule/libexif-0.6.20/po/vi.gmo differ
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/vi.po b/framework/modules/c_LibExifModule/libexif-0.6.20/po/vi.po
new file mode 100644
index 0000000000000000000000000000000000000000..5c2e563cf5ae4cf962b8aaff0aebd6582416a425
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/vi.po
@@ -0,0 +1,5789 @@
+# Vietnamese translation for LibEXIF.
+# Copyright © 2010 Free Software Foundation, Inc.
+# This file is distributed under the same license as the libexif package.
+# Clytie Siddall <clytie@riverland.net.au>, 2006-2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: libexif 0.6.20-pre1\n"
+"Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-12-15 22:14-0800\n"
+"PO-Revision-Date: 2010-02-09 20:00+0930\n"
+"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
+"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: LocFactoryEditor 1.8\n"
+
+#: libexif/canon/mnote-canon-entry.c:40 libexif/fuji/mnote-fuji-entry.c:35
+#: libexif/olympus/mnote-olympus-entry.c:37
+#: libexif/pentax/mnote-pentax-entry.c:39
+#, c-format
+msgid "Invalid format '%s', expected '%s'."
+msgstr "Định dạng không hợp lệ « %s », còn ngờ « %s »."
+
+#: libexif/canon/mnote-canon-entry.c:52 libexif/fuji/mnote-fuji-entry.c:47
+#: libexif/olympus/mnote-olympus-entry.c:62
+#: libexif/pentax/mnote-pentax-entry.c:51
+#, c-format
+msgid "Invalid number of components (%i, expected %i)."
+msgstr "Số thành phần không hợp lệ (%i, còn ngờ %i)."
+
+#: libexif/canon/mnote-canon-entry.c:61
+#: libexif/olympus/mnote-olympus-entry.c:72
+#: libexif/pentax/mnote-pentax-entry.c:61
+#, c-format
+msgid "Invalid number of components (%i, expected %i or %i)."
+msgstr "Số thành phần không hợp lệ (%i, còn ngờ %i hay %i)."
+
+#: libexif/canon/mnote-canon-entry.c:76 libexif/canon/mnote-canon-entry.c:130
+#: libexif/canon/mnote-canon-entry.c:182 libexif/exif-entry.c:796
+#: libexif/olympus/mnote-olympus-entry.c:196
+#: libexif/olympus/mnote-olympus-tag.c:108
+#: libexif/pentax/mnote-pentax-entry.c:174
+#: libexif/pentax/mnote-pentax-entry.c:209
+#: libexif/pentax/mnote-pentax-entry.c:297
+msgid "Macro"
+msgstr "Vĩ lệnh"
+
+#: libexif/canon/mnote-canon-entry.c:77 libexif/canon/mnote-canon-entry.c:79
+#: libexif/canon/mnote-canon-entry.c:157 libexif/canon/mnote-canon-entry.c:160
+#: libexif/canon/mnote-canon-entry.c:163 libexif/exif-entry.c:674
+#: libexif/exif-entry.c:677 libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/exif-entry.c:745 libexif/fuji/mnote-fuji-entry.c:64
+#: libexif/olympus/mnote-olympus-entry.c:118
+#: libexif/olympus/mnote-olympus-entry.c:195
+#: libexif/olympus/mnote-olympus-entry.c:203
+#: libexif/olympus/mnote-olympus-entry.c:213
+#: libexif/olympus/mnote-olympus-entry.c:586
+#: libexif/pentax/mnote-pentax-entry.c:105
+#: libexif/pentax/mnote-pentax-entry.c:110
+#: libexif/pentax/mnote-pentax-entry.c:115
+#: libexif/pentax/mnote-pentax-entry.c:208
+msgid "Normal"
+msgstr "Chuẩn"
+
+#: libexif/canon/mnote-canon-entry.c:78
+msgid "Economy"
+msgstr "Tiết kiệm"
+
+#: libexif/canon/mnote-canon-entry.c:80
+msgid "Fine"
+msgstr "Chính xác"
+
+#: libexif/canon/mnote-canon-entry.c:81 libexif/fuji/mnote-fuji-entry.c:178
+#: libexif/pentax/mnote-pentax-entry.c:141
+msgid "RAW"
+msgstr "RAW"
+
+#: libexif/canon/mnote-canon-entry.c:82
+msgid "Superfine"
+msgstr "Siêu chính xác"
+
+#: libexif/canon/mnote-canon-entry.c:83 libexif/canon/mnote-canon-entry.c:301
+#: libexif/canon/mnote-canon-entry.c:304 libexif/canon/mnote-canon-entry.c:312
+#: libexif/canon/mnote-canon-entry.c:345 libexif/canon/mnote-canon-entry.c:357
+#: libexif/canon/mnote-canon-entry.c:370 libexif/canon/mnote-canon-entry.c:372
+#: libexif/canon/mnote-canon-entry.c:574 libexif/canon/mnote-canon-entry.c:671
+#: libexif/fuji/mnote-fuji-entry.c:70 libexif/fuji/mnote-fuji-entry.c:103
+#: libexif/fuji/mnote-fuji-entry.c:107 libexif/fuji/mnote-fuji-entry.c:115
+#: libexif/fuji/mnote-fuji-entry.c:142
+#: libexif/olympus/mnote-olympus-entry.c:178
+#: libexif/olympus/mnote-olympus-entry.c:186
+#: libexif/olympus/mnote-olympus-entry.c:251
+#: libexif/olympus/mnote-olympus-entry.c:530
+#: libexif/olympus/mnote-olympus-entry.c:547
+#: libexif/pentax/mnote-pentax-entry.c:195
+#: libexif/pentax/mnote-pentax-entry.c:260
+msgid "Off"
+msgstr "Tắt"
+
+#: libexif/canon/mnote-canon-entry.c:84 libexif/canon/mnote-canon-entry.c:167
+#: libexif/canon/mnote-canon-entry.c:180 libexif/canon/mnote-canon-entry.c:328
+#: libexif/canon/mnote-canon-entry.c:400 libexif/fuji/mnote-fuji-entry.c:73
+#: libexif/fuji/mnote-fuji-entry.c:101 libexif/fuji/mnote-fuji-entry.c:111
+#: libexif/fuji/mnote-fuji-entry.c:119
+#: libexif/olympus/mnote-olympus-entry.c:131
+#: libexif/olympus/mnote-olympus-entry.c:183
+#: libexif/olympus/mnote-olympus-entry.c:199
+#: libexif/olympus/mnote-olympus-entry.c:244
+#: libexif/pentax/mnote-pentax-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:88
+#: libexif/pentax/mnote-pentax-entry.c:91
+#: libexif/pentax/mnote-pentax-entry.c:97
+#: libexif/pentax/mnote-pentax-entry.c:131
+#: libexif/pentax/mnote-pentax-entry.c:229
+#: libexif/pentax/mnote-pentax-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:290
+msgid "Auto"
+msgstr "Tự động"
+
+#: libexif/canon/mnote-canon-entry.c:85 libexif/canon/mnote-canon-entry.c:302
+#: libexif/canon/mnote-canon-entry.c:347 libexif/canon/mnote-canon-entry.c:361
+#: libexif/canon/mnote-canon-entry.c:371 libexif/fuji/mnote-fuji-entry.c:102
+#: libexif/fuji/mnote-fuji-entry.c:108 libexif/fuji/mnote-fuji-entry.c:116
+#: libexif/fuji/mnote-fuji-entry.c:143
+#: libexif/olympus/mnote-olympus-entry.c:179
+#: libexif/olympus/mnote-olympus-entry.c:533
+#: libexif/olympus/mnote-olympus-entry.c:550
+#: libexif/pentax/mnote-pentax-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:261
+msgid "On"
+msgstr "Bật"
+
+#: libexif/canon/mnote-canon-entry.c:86 libexif/fuji/mnote-fuji-entry.c:104
+#: libexif/olympus/mnote-olympus-entry.c:184
+#: libexif/pentax/mnote-pentax-entry.c:94
+msgid "Red-eye reduction"
+msgstr "Giảm mắt đỏ"
+
+#: libexif/canon/mnote-canon-entry.c:87
+msgid "Slow synchro"
+msgstr "Đồng bộ chậm"
+
+#: libexif/canon/mnote-canon-entry.c:88
+msgid "Auto, red-eye reduction"
+msgstr "Tự động, giảm mắt đỏ"
+
+#: libexif/canon/mnote-canon-entry.c:89
+#: libexif/pentax/mnote-pentax-entry.c:200
+msgid "On, red-eye reduction"
+msgstr "Bật, giảm mắt đỏ"
+
+#: libexif/canon/mnote-canon-entry.c:90
+msgid "External flash"
+msgstr "Đèn nháy ngoài"
+
+#: libexif/canon/mnote-canon-entry.c:91 libexif/canon/mnote-canon-entry.c:101
+#: libexif/canon/mnote-canon-entry.c:294
+msgid "Single"
+msgstr "Đơn"
+
+#: libexif/canon/mnote-canon-entry.c:92 libexif/canon/mnote-canon-entry.c:102
+#: libexif/canon/mnote-canon-entry.c:295
+msgid "Continuous"
+msgstr "Liên tục"
+
+#: libexif/canon/mnote-canon-entry.c:93
+msgid "Movie"
+msgstr "Phim"
+
+#: libexif/canon/mnote-canon-entry.c:94
+msgid "Continuous, speed priority"
+msgstr "Liên tục, ưu tiên tốc độ"
+
+#: libexif/canon/mnote-canon-entry.c:95
+msgid "Continuous, low"
+msgstr "Liên tục, thấp"
+
+#: libexif/canon/mnote-canon-entry.c:96
+msgid "Continuous, high"
+msgstr "Liên tục, cao"
+
+#: libexif/canon/mnote-canon-entry.c:97
+msgid "One-shot AF"
+msgstr "AF chụp một"
+
+#: libexif/canon/mnote-canon-entry.c:98
+msgid "AI servo AF"
+msgstr "AF dịch vụ trí tuệ"
+
+#: libexif/canon/mnote-canon-entry.c:99
+msgid "AI focus AF"
+msgstr "AF tiêu điểm trí tuệ"
+
+#: libexif/canon/mnote-canon-entry.c:100 libexif/canon/mnote-canon-entry.c:103
+msgid "Manual focus"
+msgstr "Tiêu điểm thủ công"
+
+#: libexif/canon/mnote-canon-entry.c:104 libexif/canon/mnote-canon-entry.c:132
+#: libexif/canon/mnote-canon-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:212
+msgid "Pan focus"
+msgstr "Kéo ngang tiêu điểm"
+
+#: libexif/canon/mnote-canon-entry.c:105
+msgid "JPEG"
+msgstr "JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:106
+msgid "CRW+THM"
+msgstr "CRW+THM"
+
+#: libexif/canon/mnote-canon-entry.c:107
+msgid "AVI+THM"
+msgstr "AVI+THM"
+
+#: libexif/canon/mnote-canon-entry.c:108
+msgid "TIF"
+msgstr "TIF"
+
+#: libexif/canon/mnote-canon-entry.c:109
+msgid "TIF+JPEG"
+msgstr "TIF+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:110
+msgid "CR2"
+msgstr "CR2"
+
+#: libexif/canon/mnote-canon-entry.c:111
+msgid "CR2+JPEG"
+msgstr "CR2+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:112
+msgid "Large"
+msgstr "Lớn"
+
+#: libexif/canon/mnote-canon-entry.c:113
+msgid "Medium"
+msgstr "Vừa"
+
+#: libexif/canon/mnote-canon-entry.c:114
+msgid "Small"
+msgstr "Nhỏ"
+
+#: libexif/canon/mnote-canon-entry.c:115
+msgid "Medium 1"
+msgstr "Vừa 1"
+
+#: libexif/canon/mnote-canon-entry.c:116
+msgid "Medium 2"
+msgstr "Vừa 2"
+
+#: libexif/canon/mnote-canon-entry.c:117
+msgid "Medium 3"
+msgstr "Vừa 3"
+
+#: libexif/canon/mnote-canon-entry.c:118
+msgid "Postcard"
+msgstr "Bưu thiếp"
+
+#: libexif/canon/mnote-canon-entry.c:119
+msgid "Widescreen"
+msgstr "Màn hình rộng"
+
+#: libexif/canon/mnote-canon-entry.c:120
+msgid "Full auto"
+msgstr "Tự động đầy đủ"
+
+#: libexif/canon/mnote-canon-entry.c:121 libexif/canon/mnote-canon-entry.c:179
+#: libexif/canon/mnote-canon-entry.c:201 libexif/canon/mnote-canon-entry.c:285
+#: libexif/canon/mnote-canon-entry.c:392 libexif/exif-entry.c:744
+#: libexif/fuji/mnote-fuji-entry.c:112
+#: libexif/olympus/mnote-olympus-entry.c:90
+#: libexif/olympus/mnote-olympus-entry.c:200
+#: libexif/pentax/mnote-pentax-entry.c:79
+#: libexif/pentax/mnote-pentax-entry.c:102
+#: libexif/pentax/mnote-pentax-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:165
+#: libexif/pentax/mnote-pentax-entry.c:211
+#: libexif/pentax/mnote-pentax-entry.c:250
+msgid "Manual"
+msgstr "Thủ công"
+
+#: libexif/canon/mnote-canon-entry.c:122 libexif/canon/mnote-canon-entry.c:430
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:755
+#: libexif/fuji/mnote-fuji-entry.c:121 libexif/pentax/mnote-pentax-entry.c:167
+#: libexif/pentax/mnote-pentax-entry.c:301
+msgid "Landscape"
+msgstr "Nằm ngang"
+
+#: libexif/canon/mnote-canon-entry.c:123
+msgid "Fast shutter"
+msgstr "Chập nhanh"
+
+#: libexif/canon/mnote-canon-entry.c:124
+msgid "Slow shutter"
+msgstr "Chập chậm"
+
+#: libexif/canon/mnote-canon-entry.c:125 libexif/fuji/mnote-fuji-entry.c:123
+#: libexif/olympus/mnote-olympus-entry.c:254
+msgid "Night"
+msgstr "Đem"
+
+#: libexif/canon/mnote-canon-entry.c:126
+msgid "Grayscale"
+msgstr "Mức xám"
+
+#: libexif/canon/mnote-canon-entry.c:127 libexif/canon/mnote-canon-entry.c:308
+#: libexif/pentax/mnote-pentax-entry.c:128
+msgid "Sepia"
+msgstr "Kiểu nâu đen"
+
+#: libexif/canon/mnote-canon-entry.c:128 libexif/canon/mnote-canon-entry.c:429
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:753
+#: libexif/fuji/mnote-fuji-entry.c:120 libexif/pentax/mnote-pentax-entry.c:166
+#: libexif/pentax/mnote-pentax-entry.c:291
+#: libexif/pentax/mnote-pentax-entry.c:294
+#: libexif/pentax/mnote-pentax-entry.c:300
+msgid "Portrait"
+msgstr "Thẳng đứng"
+
+#: libexif/canon/mnote-canon-entry.c:129 libexif/fuji/mnote-fuji-entry.c:122
+msgid "Sports"
+msgstr "Thể thao"
+
+#: libexif/canon/mnote-canon-entry.c:131 libexif/canon/mnote-canon-entry.c:309
+#: libexif/canon/mnote-canon-entry.c:335 libexif/canon/mnote-canon-entry.c:407
+#: libexif/fuji/mnote-fuji-entry.c:89 libexif/pentax/mnote-pentax-entry.c:127
+msgid "Black & white"
+msgstr "Đen trắng"
+
+#: libexif/canon/mnote-canon-entry.c:133 libexif/canon/mnote-canon-entry.c:305
+msgid "Vivid"
+msgstr "Sặc sỡ"
+
+#: libexif/canon/mnote-canon-entry.c:134 libexif/canon/mnote-canon-entry.c:306
+#: libexif/canon/mnote-canon-entry.c:431
+msgid "Neutral"
+msgstr "Trung lập"
+
+#: libexif/canon/mnote-canon-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:93
+msgid "Flash off"
+msgstr "Đèn nháy bị tắt"
+
+#: libexif/canon/mnote-canon-entry.c:136
+msgid "Long shutter"
+msgstr "Chập lâu"
+
+#: libexif/canon/mnote-canon-entry.c:137 libexif/canon/mnote-canon-entry.c:188
+#: libexif/olympus/mnote-olympus-entry.c:171
+msgid "Super macro"
+msgstr "Siêu vĩ lệnh"
+
+#: libexif/canon/mnote-canon-entry.c:138
+msgid "Foliage"
+msgstr "Hoa lá"
+
+#: libexif/canon/mnote-canon-entry.c:139
+msgid "Indoor"
+msgstr "Trong nhà"
+
+#: libexif/canon/mnote-canon-entry.c:140 libexif/fuji/mnote-fuji-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:175
+msgid "Fireworks"
+msgstr "Pháo hoa"
+
+#: libexif/canon/mnote-canon-entry.c:141 libexif/fuji/mnote-fuji-entry.c:133
+msgid "Beach"
+msgstr "Bãi biển"
+
+#: libexif/canon/mnote-canon-entry.c:142 libexif/canon/mnote-canon-entry.c:344
+#: libexif/canon/mnote-canon-entry.c:416 libexif/fuji/mnote-fuji-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:292
+#: libexif/pentax/mnote-pentax-entry.c:298
+msgid "Underwater"
+msgstr "Dưới mặt nước"
+
+#: libexif/canon/mnote-canon-entry.c:143 libexif/fuji/mnote-fuji-entry.c:134
+msgid "Snow"
+msgstr "Tuyết"
+
+#: libexif/canon/mnote-canon-entry.c:144
+msgid "Kids & pets"
+msgstr "Trẻ con và Vật cưng"
+
+#: libexif/canon/mnote-canon-entry.c:145
+msgid "Night snapshot"
+msgstr "Ảnh chụp đem"
+
+#: libexif/canon/mnote-canon-entry.c:146
+msgid "Digital macro"
+msgstr "Vĩ lệnh số"
+
+#: libexif/canon/mnote-canon-entry.c:147
+msgid "My colors"
+msgstr "Màu sắc tôi"
+
+#: libexif/canon/mnote-canon-entry.c:148
+msgid "Still image"
+msgstr "Ảnh tĩnh"
+
+#: libexif/canon/mnote-canon-entry.c:149
+msgid "Color accent"
+msgstr "Màu nhấn"
+
+#: libexif/canon/mnote-canon-entry.c:150
+msgid "Color swap"
+msgstr "Trao đổi màu"
+
+#: libexif/canon/mnote-canon-entry.c:151
+msgid "Aquarium"
+msgstr "Bể nuôi"
+
+#: libexif/canon/mnote-canon-entry.c:152
+msgid "ISO 3200"
+msgstr "ISO 3200"
+
+#: libexif/canon/mnote-canon-entry.c:153 libexif/canon/mnote-canon-entry.c:348
+#: libexif/canon/mnote-canon-entry.c:365 libexif/canon/mnote-canon-entry.c:417
+#: libexif/olympus/mnote-olympus-entry.c:189
+#: libexif/olympus/mnote-olympus-entry.c:226
+#: libexif/olympus/mnote-olympus-entry.c:451
+#: libexif/pentax/mnote-pentax-entry.c:242
+msgid "None"
+msgstr "Không có"
+
+# Literal: don't translate / Nghĩa chữ: đừng dịch
+#: libexif/canon/mnote-canon-entry.c:154
+msgid "2x"
+msgstr "2×"
+
+#: libexif/canon/mnote-canon-entry.c:155
+msgid "4x"
+msgstr "4×"
+
+#: libexif/canon/mnote-canon-entry.c:156 libexif/exif-entry.c:702
+#: libexif/exif-entry.c:732
+msgid "Other"
+msgstr "Khác"
+
+#: libexif/canon/mnote-canon-entry.c:158 libexif/canon/mnote-canon-entry.c:161
+#: libexif/canon/mnote-canon-entry.c:164 libexif/canon/mnote-canon-entry.c:398
+#: libexif/fuji/mnote-fuji-entry.c:86 libexif/pentax/mnote-pentax-entry.c:112
+#: libexif/pentax/mnote-pentax-entry.c:117
+msgid "High"
+msgstr "Cao"
+
+#: libexif/canon/mnote-canon-entry.c:159 libexif/canon/mnote-canon-entry.c:162
+#: libexif/canon/mnote-canon-entry.c:165 libexif/canon/mnote-canon-entry.c:396
+#: libexif/pentax/mnote-pentax-entry.c:111
+#: libexif/pentax/mnote-pentax-entry.c:116
+msgid "Low"
+msgstr "Thấp"
+
+#: libexif/canon/mnote-canon-entry.c:166
+msgid "Auto high"
+msgstr "Tự động cao"
+
+#: libexif/canon/mnote-canon-entry.c:168
+msgid "50"
+msgstr "50"
+
+#: libexif/canon/mnote-canon-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:120
+#: libexif/pentax/mnote-pentax-entry.c:122
+msgid "100"
+msgstr "100"
+
+#: libexif/canon/mnote-canon-entry.c:170
+#: libexif/pentax/mnote-pentax-entry.c:121
+#: libexif/pentax/mnote-pentax-entry.c:123
+msgid "200"
+msgstr "200"
+
+#: libexif/canon/mnote-canon-entry.c:171
+msgid "400"
+msgstr "400"
+
+#: libexif/canon/mnote-canon-entry.c:172
+msgid "800"
+msgstr "800"
+
+#: libexif/canon/mnote-canon-entry.c:173
+msgid "Default"
+msgstr "Mặc định"
+
+#: libexif/canon/mnote-canon-entry.c:174 libexif/exif-entry.c:698
+msgid "Spot"
+msgstr "Chấm"
+
+#: libexif/canon/mnote-canon-entry.c:175 libexif/exif-entry.c:696
+msgid "Average"
+msgstr "Trung bình"
+
+#: libexif/canon/mnote-canon-entry.c:176
+msgid "Evaluative"
+msgstr "Ước lượng"
+
+#: libexif/canon/mnote-canon-entry.c:177 libexif/exif-entry.c:701
+msgid "Partial"
+msgstr "Bộ phận"
+
+#: libexif/canon/mnote-canon-entry.c:178 libexif/exif-entry.c:697
+msgid "Center-weighted average"
+msgstr "Trung bình nặng giữa"
+
+#: libexif/canon/mnote-canon-entry.c:181
+msgid "Not known"
+msgstr "Không rõ"
+
+#: libexif/canon/mnote-canon-entry.c:183
+msgid "Very close"
+msgstr "Rất gần"
+
+#: libexif/canon/mnote-canon-entry.c:184 libexif/exif-entry.c:797
+msgid "Close"
+msgstr "Gần"
+
+#: libexif/canon/mnote-canon-entry.c:185
+msgid "Middle range"
+msgstr "Phạm vị giữa"
+
+#: libexif/canon/mnote-canon-entry.c:186
+msgid "Far range"
+msgstr "Phạm vị xa"
+
+#: libexif/canon/mnote-canon-entry.c:189
+#: libexif/pentax/mnote-pentax-entry.c:210
+msgid "Infinity"
+msgstr "Vô hạn"
+
+#: libexif/canon/mnote-canon-entry.c:190
+msgid "Manual AF point selection"
+msgstr "Tự chọn điểm AF"
+
+#: libexif/canon/mnote-canon-entry.c:191 libexif/canon/mnote-canon-entry.c:349
+msgid "None (MF)"
+msgstr "Không có (MF)"
+
+#: libexif/canon/mnote-canon-entry.c:192
+msgid "Auto-selected"
+msgstr "Tự động chọn"
+
+#: libexif/canon/mnote-canon-entry.c:193 libexif/canon/mnote-canon-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:224
+#: libexif/pentax/mnote-pentax-entry.c:238
+msgid "Right"
+msgstr "Phải"
+
+#: libexif/canon/mnote-canon-entry.c:194 libexif/canon/mnote-canon-entry.c:351
+#: libexif/pentax/mnote-pentax-entry.c:222
+#: libexif/pentax/mnote-pentax-entry.c:237
+msgid "Center"
+msgstr "Giữa"
+
+#: libexif/canon/mnote-canon-entry.c:195 libexif/canon/mnote-canon-entry.c:353
+#: libexif/pentax/mnote-pentax-entry.c:220
+#: libexif/pentax/mnote-pentax-entry.c:236
+msgid "Left"
+msgstr "Trái"
+
+#: libexif/canon/mnote-canon-entry.c:196
+msgid "Auto AF point selection"
+msgstr "Tự động chọn điểm AF"
+
+#: libexif/canon/mnote-canon-entry.c:197
+msgid "Easy shooting"
+msgstr "Chụp dễ"
+
+#: libexif/canon/mnote-canon-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:163
+msgid "Program"
+msgstr "Chương trình"
+
+#: libexif/canon/mnote-canon-entry.c:199
+msgid "Tv-priority"
+msgstr "Ưu tiên TV"
+
+#: libexif/canon/mnote-canon-entry.c:200
+msgid "Av-priority"
+msgstr "Ưu tiên nghe nhín"
+
+#: libexif/canon/mnote-canon-entry.c:202
+msgid "A-DEP"
+msgstr "A-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:203
+msgid "M-DEP"
+msgstr "M-DEP"
+
+#: libexif/canon/mnote-canon-entry.c:204
+msgid "Canon EF 50mm f/1.8"
+msgstr "Canon EF 50mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:205
+msgid "Canon EF 28mm f/2.8"
+msgstr "Canon EF 28mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:206
+msgid "Sigma UC Zoom 35-135mm f/4-5.6"
+msgstr "Sigma UC Zoom 35-135mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:207
+msgid "Tokina AF193-2 19-35mm f/3.5-4.5"
+msgstr "Tokina AF193-2 19-35mm f/3.5-4.5"
+
+#: libexif/canon/mnote-canon-entry.c:208
+msgid "Canon EF 100-300mm F5.6L"
+msgstr "Canon EF 100-300mm F5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:209
+msgid "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+msgstr "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:210
+msgid "Canon EF 35mm f/2"
+msgstr "Canon EF 35mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:211
+msgid "Canon EF 15mm f/2.8"
+msgstr "Canon EF 15mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:212
+msgid "Canon EF 80-200mm f/2.8L"
+msgstr "Canon EF 80-200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:213
+msgid "Tokina AT-X280AF PRO 28-80mm F2.8 Aspherical"
+msgstr "Tokina AT-X280AF PRO 28-80mm F2.8 Aspherical"
+
+#: libexif/canon/mnote-canon-entry.c:214
+msgid "Cosina 100mm f/3.5 Macro AF"
+msgstr "Cosina 100mm f/3.5 Macro AF"
+
+#: libexif/canon/mnote-canon-entry.c:215
+msgid "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+msgstr "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:216
+msgid "Canon EF 50mm f/1.8 MkII"
+msgstr "Canon EF 50mm f/1.8 MkII"
+
+#: libexif/canon/mnote-canon-entry.c:217
+msgid "Tamron SP AF 300mm f/2.8 LD IF"
+msgstr "Tamron SP AF 300mm f/2.8 LD IF"
+
+#: libexif/canon/mnote-canon-entry.c:218
+msgid "Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+msgstr "Canon EF 24mm f/2.8 hay Sigma 15mm f/2.8 EX Mắt Cá"
+
+#: libexif/canon/mnote-canon-entry.c:219
+msgid "Canon EF 75-300mm f/4-5.6"
+msgstr "Canon EF 75-300mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:220
+msgid "Canon EF 28-80mm f/3.5-5.6"
+msgstr "Canon EF 28-80mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:221
+msgid "Canon EF 28-105mm f/4-5.6"
+msgstr "Canon EF 28-105mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:222
+msgid "Canon EF-S 18-55mm f/3.5-5.6"
+msgstr "Canon EF-S 18-55mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:223
+msgid "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+msgstr "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+
+#: libexif/canon/mnote-canon-entry.c:224
+msgid "Canon TS-E 24mm f/3.5L"
+msgstr "Canon TS-E 24mm f/3.5L"
+
+#: libexif/canon/mnote-canon-entry.c:225
+msgid "Canon TS-E 45mm f/2.8"
+msgstr "Canon TS-E 45mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:226
+msgid "Canon TS-E 90mm f/2.8"
+msgstr "Canon TS-E 90mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:227
+msgid "Canon EF 50mm f/1.0L"
+msgstr "Canon EF 50mm f/1.0L"
+
+#: libexif/canon/mnote-canon-entry.c:228
+msgid "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+msgstr "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+
+#: libexif/canon/mnote-canon-entry.c:229
+msgid "Canon EF 600mm f/4L IS"
+msgstr "Canon EF 600mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:230
+msgid "Canon EF 200mm f/1.8L"
+msgstr "Canon EF 200mm f/1.8L"
+
+#: libexif/canon/mnote-canon-entry.c:231
+msgid "Canon EF 300mm f/2.8L"
+msgstr "Canon EF 300mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:232
+msgid "Canon EF 85mm f/1.2L"
+msgstr "Canon EF 85mm f/1.2L"
+
+#: libexif/canon/mnote-canon-entry.c:233
+msgid "Canon EF 400mm f/2.8L"
+msgstr "Canon EF 400mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:234
+msgid "Canon EF 500mm f/4.5L"
+msgstr "Canon EF 500mm f/4.5L"
+
+#: libexif/canon/mnote-canon-entry.c:235
+msgid "Canon EF 300mm f/2.8L IS"
+msgstr "Canon EF 300mm f/2.8L IS"
+
+#: libexif/canon/mnote-canon-entry.c:236
+msgid "Canon EF 500mm f/4L IS"
+msgstr "Canon EF 500mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:237
+msgid "Canon EF 100mm f/2"
+msgstr "Canon EF 100mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:238
+msgid "Sigma 20mm EX f/1.8"
+msgstr "Sigma 20mm EX f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:239
+msgid "Canon EF 200mm f/2.8L"
+msgstr "Canon EF 200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:240
+msgid "Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+msgstr "Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:241
+msgid "Canon EF 35-350mm f/3.5-5.6L"
+msgstr "Canon EF 35-350mm f/3.5-5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:242
+msgid "Canon EF 85mm f/1.8 USM"
+msgstr "Canon EF 85mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:243
+msgid "Canon EF 28-105mm f/3.5-4.5 USM"
+msgstr "Canon EF 28-105mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:244
+msgid "Canon EF 20-35mm f/3.5-4.5 USM"
+msgstr "Canon EF 20-35mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:245
+msgid "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+msgstr "Canon EF 28-70mm f/2.8L hay Sigma 24-70mm EX f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:246
+msgid "Canon EF 70-200mm f/2.8 L"
+msgstr "Canon EF 70-200mm f/2.8 L"
+
+#: libexif/canon/mnote-canon-entry.c:247
+msgid "Canon EF 70-200mm f/2.8 L + x1.4"
+msgstr "Canon EF 70-200mm f/2.8 L + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:248
+msgid "Canon EF 70-200mm f/2.8 L + x2"
+msgstr "Canon EF 70-200mm f/2.8 L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:249
+msgid "Canon EF 28mm f/1.8 USM"
+msgstr "Canon EF 28mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:250
+msgid "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+msgstr "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+
+#: libexif/canon/mnote-canon-entry.c:251
+msgid "Canon EF 200mm f/2.8L II"
+msgstr "Canon EF 200mm f/2.8L II"
+
+#: libexif/canon/mnote-canon-entry.c:252
+msgid "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+msgstr "Canon EF 180mm Macro f/3.5L hay Sigma 180mm EX HSM Macro f/3.5"
+
+#: libexif/canon/mnote-canon-entry.c:253
+msgid "Canon EF 135mm f/2L"
+msgstr "Canon EF 135mm f/2L"
+
+#: libexif/canon/mnote-canon-entry.c:254
+msgid "Canon EF 24-85mm f/3.5-4.5 USM"
+msgstr "Canon EF 24-85mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:255
+msgid "Canon EF 300mm f/4L IS"
+msgstr "Canon EF 300mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:256
+msgid "Canon EF 28-135mm f/3.5-5.6 IS"
+msgstr "Canon EF 28-135mm f/3.5-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:257
+msgid "Canon EF 35mm f/1.4L"
+msgstr "Canon EF 35mm f/1.4L"
+
+#: libexif/canon/mnote-canon-entry.c:258
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:259
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+
+#: libexif/canon/mnote-canon-entry.c:260
+msgid "Canon EF 100-400mm f/4.5-5.6L IS"
+msgstr "Canon EF 100-400mm f/4.5-5.6L IS"
+
+#: libexif/canon/mnote-canon-entry.c:261
+msgid "Canon EF 400mm f/2.8L + x2"
+msgstr "Canon EF 400mm f/2.8L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:262
+msgid "Canon EF 70-200mm f/4L"
+msgstr "Canon EF 70-200mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:263
+msgid "Canon EF 100mm f/2.8 Macro"
+msgstr "Canon EF 100mm f/2.8 Macro"
+
+#: libexif/canon/mnote-canon-entry.c:264
+msgid "Canon EF 400mm f/4 DO IS"
+msgstr "Canon EF 400mm f/4 DO IS"
+
+#: libexif/canon/mnote-canon-entry.c:265
+msgid "Canon EF 75-300mm f/4-5.6 IS"
+msgstr "Canon EF 75-300mm f/4-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:266
+msgid "Canon EF 50mm f/1.4"
+msgstr "Canon EF 50mm f/1.4"
+
+#: libexif/canon/mnote-canon-entry.c:267
+msgid "Canon EF 28-80 f/3.5-5.6 USM IV"
+msgstr "Canon EF 28-80 f/3.5-5.6 USM IV"
+
+#: libexif/canon/mnote-canon-entry.c:268
+msgid "Canon EF 28-200mm f/3.5-5.6"
+msgstr "Canon EF 28-200mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:269
+msgid "Canon EF 90-300mm f/4.5-5.6"
+msgstr "Canon EF 90-300mm f/4.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:270
+msgid "Canon EF-S 18-55mm f/3.5-4.5 USM"
+msgstr "Canon EF-S 18-55mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:271
+msgid "Canon EF 70-200mm f/2.8L IS USM"
+msgstr "Canon EF 70-200mm f/2.8L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:272
+msgid "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+msgstr "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:273
+msgid "Canon EF 70-200mm f/2.8L IS USM + x2"
+msgstr "Canon EF 70-200mm f/2.8L IS USM + x2"
+
+#: libexif/canon/mnote-canon-entry.c:274
+msgid "Canon EF 16-35mm f/2.8L"
+msgstr "Canon EF 16-35mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:275
+msgid "Canon EF 24-70mm f/2.8L"
+msgstr "Canon EF 24-70mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:276
+msgid "Canon EF 17-40mm f/4L"
+msgstr "Canon EF 17-40mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:277
+msgid "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+msgstr "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:278
+msgid "Canon EF-S 17-85mm f4-5.6 IS USM"
+msgstr "Canon EF-S 17-85mm f4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:279
+msgid "Canon EF-S10-22mm F3.5-4.5 USM"
+msgstr "Canon EF-S10-22mm F3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:280
+msgid "Canon EF-S60mm F2.8 Macro USM"
+msgstr "Canon EF-S60mm F2.8 Macro USM"
+
+#: libexif/canon/mnote-canon-entry.c:281
+msgid "Canon EF 24-105mm f/4L IS"
+msgstr "Canon EF 24-105mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:282
+msgid "Canon EF 70-300mm F4-5.6 IS USM"
+msgstr "Canon EF 70-300mm F4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:283
+msgid "Canon EF 50mm F1.2L USM"
+msgstr "Canon EF 50mm F1.2L USM"
+
+#: libexif/canon/mnote-canon-entry.c:284
+msgid "Canon EF 70-200mm f/4L IS USM"
+msgstr "Canon EF 70-200mm f/4L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:286
+msgid "TTL"
+msgstr "TTL"
+
+#: libexif/canon/mnote-canon-entry.c:287
+msgid "A-TTL"
+msgstr "A-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:288
+msgid "E-TTL"
+msgstr "E-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:289
+msgid "FP sync enabled"
+msgstr "Đồng bộ FP đã bật"
+
+#: libexif/canon/mnote-canon-entry.c:290
+msgid "2nd-curtain sync used"
+msgstr "Đồng bộ mành thứ hai đã dùng"
+
+#: libexif/canon/mnote-canon-entry.c:291
+msgid "FP sync used"
+msgstr "Đồng bộ FP đã dùng"
+
+#: libexif/canon/mnote-canon-entry.c:292
+#: libexif/olympus/mnote-olympus-entry.c:190
+msgid "Internal"
+msgstr "Nội bộ"
+
+#: libexif/canon/mnote-canon-entry.c:293
+#: libexif/olympus/mnote-olympus-entry.c:191
+msgid "External"
+msgstr "Ngoài"
+
+#: libexif/canon/mnote-canon-entry.c:296
+msgid "Normal AE"
+msgstr "AE chuẩn"
+
+#: libexif/canon/mnote-canon-entry.c:297
+msgid "Exposure compensation"
+msgstr "Sự bù phơi nắng"
+
+#: libexif/canon/mnote-canon-entry.c:298
+msgid "AE lock"
+msgstr "Khoá AE"
+
+#: libexif/canon/mnote-canon-entry.c:299
+msgid "AE lock + exposure compensation"
+msgstr "Khoá AE + bù phơi nắng"
+
+#: libexif/canon/mnote-canon-entry.c:300
+msgid "No AE"
+msgstr "Không AE"
+
+#: libexif/canon/mnote-canon-entry.c:303
+msgid "On, shot only"
+msgstr "Bật, chỉ chụp"
+
+#: libexif/canon/mnote-canon-entry.c:307
+msgid "Smooth"
+msgstr "Mịn"
+
+#: libexif/canon/mnote-canon-entry.c:310 libexif/canon/mnote-canon-entry.c:334
+#: libexif/canon/mnote-canon-entry.c:393 libexif/canon/mnote-canon-entry.c:406
+#: libexif/fuji/mnote-fuji-entry.c:81 libexif/pentax/mnote-pentax-entry.c:87
+msgid "Custom"
+msgstr "Tự chọn"
+
+#: libexif/canon/mnote-canon-entry.c:311
+msgid "My color data"
+msgstr "Dữ liệu màu tôi"
+
+#: libexif/canon/mnote-canon-entry.c:313 libexif/canon/mnote-canon-entry.c:375
+#: libexif/pentax/mnote-pentax-entry.c:126
+#: libexif/pentax/mnote-pentax-entry.c:145
+msgid "Full"
+msgstr "Đầy"
+
+#: libexif/canon/mnote-canon-entry.c:314 libexif/canon/mnote-canon-entry.c:374
+msgid "2/3"
+msgstr "2/3"
+
+#: libexif/canon/mnote-canon-entry.c:315 libexif/canon/mnote-canon-entry.c:373
+msgid "1/3"
+msgstr "1/3"
+
+#: libexif/canon/mnote-canon-entry.c:321
+msgid "Fixed"
+msgstr "Cố định"
+
+#: libexif/canon/mnote-canon-entry.c:322 libexif/pentax/mnote-pentax-tag.c:44
+msgid "Zoom"
+msgstr "Thu/phóng"
+
+#: libexif/canon/mnote-canon-entry.c:329
+msgid "Sunny"
+msgstr "Trời có nắng"
+
+#: libexif/canon/mnote-canon-entry.c:330 libexif/canon/mnote-canon-entry.c:402
+#: libexif/exif-entry.c:719 libexif/fuji/mnote-fuji-entry.c:75
+#: libexif/olympus/mnote-olympus-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:255
+msgid "Cloudy"
+msgstr "Đầy mây"
+
+#: libexif/canon/mnote-canon-entry.c:331 libexif/canon/mnote-canon-entry.c:403
+#: libexif/exif-entry.c:716 libexif/pentax/mnote-pentax-entry.c:100
+#: libexif/pentax/mnote-pentax-entry.c:249
+msgid "Tungsten"
+msgstr "Vonfam"
+
+#: libexif/canon/mnote-canon-entry.c:332 libexif/canon/mnote-canon-entry.c:404
+#: libexif/exif-entry.c:715 libexif/pentax/mnote-pentax-entry.c:101
+#: libexif/pentax/mnote-pentax-entry.c:248
+msgid "Fluorescent"
+msgstr "Huỳnh quang"
+
+#: libexif/canon/mnote-canon-entry.c:333 libexif/canon/mnote-canon-entry.c:405
+#: libexif/exif-entry.c:717 libexif/exif-entry.c:759 libexif/exif-tag.c:577
+#: libexif/fuji/mnote-fuji-entry.c:80 libexif/pentax/mnote-pentax-entry.c:254
+msgid "Flash"
+msgstr "Đèn nháy"
+
+#: libexif/canon/mnote-canon-entry.c:336 libexif/canon/mnote-canon-entry.c:408
+#: libexif/exif-entry.c:720 libexif/pentax/mnote-pentax-entry.c:99
+#: libexif/pentax/mnote-pentax-entry.c:247
+msgid "Shade"
+msgstr "Bóng"
+
+#: libexif/canon/mnote-canon-entry.c:337 libexif/canon/mnote-canon-entry.c:409
+msgid "Manual temperature (Kelvin)"
+msgstr "Tự đặt nhiệt độ (Kenvin)"
+
+#: libexif/canon/mnote-canon-entry.c:338 libexif/canon/mnote-canon-entry.c:410
+msgid "PC set 1"
+msgstr "PC lập 1"
+
+#: libexif/canon/mnote-canon-entry.c:339 libexif/canon/mnote-canon-entry.c:411
+msgid "PC set 2"
+msgstr "PC lập 2"
+
+#: libexif/canon/mnote-canon-entry.c:340 libexif/canon/mnote-canon-entry.c:412
+msgid "PC set 3"
+msgstr "PC lập 3"
+
+#: libexif/canon/mnote-canon-entry.c:341 libexif/canon/mnote-canon-entry.c:413
+#: libexif/exif-entry.c:721 libexif/fuji/mnote-fuji-entry.c:76
+#: libexif/pentax/mnote-pentax-entry.c:251
+msgid "Daylight fluorescent"
+msgstr "Huỳnh quang ảnh nắng ban ngày"
+
+#: libexif/canon/mnote-canon-entry.c:342 libexif/canon/mnote-canon-entry.c:414
+msgid "Custom 1"
+msgstr "Tự chọn 1"
+
+#: libexif/canon/mnote-canon-entry.c:343 libexif/canon/mnote-canon-entry.c:415
+msgid "Custom 2"
+msgstr "Tự chọn 2"
+
+#: libexif/canon/mnote-canon-entry.c:346 libexif/exif-entry.c:672
+#: libexif/pentax/mnote-pentax-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:132
+#: libexif/pentax/mnote-pentax-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:295
+msgid "Night scene"
+msgstr "Cảnh đem"
+
+#: libexif/canon/mnote-canon-entry.c:352
+msgid "Center-right"
+msgstr "Giữa bên phải"
+
+#: libexif/canon/mnote-canon-entry.c:354
+msgid "Left-right"
+msgstr "Trái-phải"
+
+#: libexif/canon/mnote-canon-entry.c:355
+msgid "Left-center"
+msgstr "Trái-giữa"
+
+#: libexif/canon/mnote-canon-entry.c:356
+msgid "All"
+msgstr "Tất cả"
+
+#: libexif/canon/mnote-canon-entry.c:358
+msgid "On (shot 1)"
+msgstr "Bật (chụp 1)"
+
+#: libexif/canon/mnote-canon-entry.c:359
+msgid "On (shot 2)"
+msgstr "Bật (chụp 2)"
+
+#: libexif/canon/mnote-canon-entry.c:360
+msgid "On (shot 3)"
+msgstr "Bật (chụp 3)"
+
+#: libexif/canon/mnote-canon-entry.c:362
+msgid "EOS high-end"
+msgstr "EOS cấp cao"
+
+#: libexif/canon/mnote-canon-entry.c:363
+msgid "Compact"
+msgstr "Gọn"
+
+#: libexif/canon/mnote-canon-entry.c:364
+msgid "EOS mid-range"
+msgstr "EOS cấp vừa"
+
+#: libexif/canon/mnote-canon-entry.c:366
+msgid "Rotate 90 CW"
+msgstr "Xoay 90º xuôi chiều"
+
+#: libexif/canon/mnote-canon-entry.c:367
+msgid "Rotate 180"
+msgstr "Xoay 180º"
+
+#: libexif/canon/mnote-canon-entry.c:368
+msgid "Rotate 270 CW"
+msgstr "Xoay 270º xuôi chiều"
+
+#: libexif/canon/mnote-canon-entry.c:369
+msgid "Rotated by software"
+msgstr "Do phần mềm xoay"
+
+#: libexif/canon/mnote-canon-entry.c:381
+#: libexif/olympus/mnote-olympus-entry.c:606
+msgid "Left to right"
+msgstr "Trái qua phải"
+
+#: libexif/canon/mnote-canon-entry.c:382
+#: libexif/olympus/mnote-olympus-entry.c:609
+msgid "Right to left"
+msgstr "Phải qua trái"
+
+#: libexif/canon/mnote-canon-entry.c:383
+#: libexif/olympus/mnote-olympus-entry.c:612
+msgid "Bottom to top"
+msgstr "Dưới lên trên"
+
+#: libexif/canon/mnote-canon-entry.c:384
+#: libexif/olympus/mnote-olympus-entry.c:615
+msgid "Top to bottom"
+msgstr "Trên xuống dưới"
+
+#: libexif/canon/mnote-canon-entry.c:385
+msgid "2x2 matrix (clockwise)"
+msgstr "Lưới 2×2 (xuôi chiều)"
+
+#: libexif/canon/mnote-canon-entry.c:391 libexif/canon/mnote-canon-entry.c:397
+#: libexif/canon/mnote-canon-entry.c:418 libexif/canon/mnote-canon-entry.c:428
+#: libexif/exif-entry.c:671 libexif/fuji/mnote-fuji-entry.c:84
+#: libexif/fuji/mnote-fuji-entry.c:93 libexif/fuji/mnote-fuji-entry.c:163
+#: libexif/olympus/mnote-olympus-entry.c:227
+msgid "Standard"
+msgstr "Chuẩn"
+
+#: libexif/canon/mnote-canon-entry.c:394
+msgid "N/A"
+msgstr "Không có"
+
+#: libexif/canon/mnote-canon-entry.c:395
+msgid "Lowest"
+msgstr "Thấp nhất"
+
+#: libexif/canon/mnote-canon-entry.c:399
+msgid "Highest"
+msgstr "Cao nhất"
+
+#: libexif/canon/mnote-canon-entry.c:401 libexif/exif-entry.c:714
+#: libexif/fuji/mnote-fuji-entry.c:74
+#: libexif/olympus/mnote-olympus-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:98
+#: libexif/pentax/mnote-pentax-entry.c:246
+msgid "Daylight"
+msgstr "Ánh nắng ban ngày"
+
+#: libexif/canon/mnote-canon-entry.c:419
+msgid "Set 1"
+msgstr "Tập 1"
+
+#: libexif/canon/mnote-canon-entry.c:420
+msgid "Set 2"
+msgstr "Tập 2"
+
+#: libexif/canon/mnote-canon-entry.c:421
+msgid "Set 3"
+msgstr "Tập 3"
+
+#: libexif/canon/mnote-canon-entry.c:422
+msgid "User def. 1"
+msgstr "Tự đặt 1"
+
+#: libexif/canon/mnote-canon-entry.c:423
+msgid "User def. 2"
+msgstr "Tự đặt 2"
+
+#: libexif/canon/mnote-canon-entry.c:424
+msgid "User def. 3"
+msgstr "Tự đặt 3"
+
+#: libexif/canon/mnote-canon-entry.c:425
+msgid "External 1"
+msgstr "Ngoài 1"
+
+#: libexif/canon/mnote-canon-entry.c:426
+msgid "External 2"
+msgstr "Ngoài 2"
+
+#: libexif/canon/mnote-canon-entry.c:427
+msgid "External 3"
+msgstr "Ngoài 3"
+
+#: libexif/canon/mnote-canon-entry.c:432
+msgid "Faithful"
+msgstr "Trung thực"
+
+#: libexif/canon/mnote-canon-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:115
+msgid "Monochrome"
+msgstr "Đơn sắc"
+
+#: libexif/canon/mnote-canon-entry.c:491
+msgid ", "
+msgstr ", "
+
+#: libexif/canon/mnote-canon-entry.c:577 libexif/canon/mnote-canon-entry.c:674
+#, c-format
+msgid "%i (ms)"
+msgstr "%i (miligiây)"
+
+#: libexif/canon/mnote-canon-entry.c:621
+#, c-format
+msgid "%.2f mm"
+msgstr "%.2f mm"
+
+#: libexif/canon/mnote-canon-entry.c:645
+#, c-format
+msgid "%.2f EV"
+msgstr "%.2f EV"
+
+#: libexif/canon/mnote-canon-entry.c:655 libexif/exif-entry.c:1064
+#, c-format
+msgid "1/%i"
+msgstr "1/%i"
+
+#: libexif/canon/mnote-canon-entry.c:667
+#, c-format
+msgid "%u mm"
+msgstr "%u mm"
+
+#: libexif/canon/mnote-canon-tag.c:35
+msgid "Settings (First Part)"
+msgstr "Thiết lập (Phần Đầu)"
+
+#: libexif/canon/mnote-canon-tag.c:36 libexif/canon/mnote-canon-tag.c:92
+#: libexif/exif-tag.c:581 libexif/pentax/mnote-pentax-tag.c:88
+msgid "Focal Length"
+msgstr "Tiêu Cự"
+
+#: libexif/canon/mnote-canon-tag.c:37
+msgid "Settings (Second Part)"
+msgstr "Thiết lập (Phần thứ Hai)"
+
+#: libexif/canon/mnote-canon-tag.c:38
+#: libexif/olympus/mnote-olympus-entry.c:595
+#: libexif/pentax/mnote-pentax-entry.c:177
+msgid "Panorama"
+msgstr "Cảnh quay lia"
+
+#: libexif/canon/mnote-canon-tag.c:39
+msgid "Image Type"
+msgstr "Kiểu Ảnh"
+
+#: libexif/canon/mnote-canon-tag.c:40 libexif/olympus/mnote-olympus-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:113
+msgid "Firmware Version"
+msgstr "Phiên bản phần vững"
+
+#: libexif/canon/mnote-canon-tag.c:41
+msgid "Image Number"
+msgstr "Số thứ tự Ảnh"
+
+#: libexif/canon/mnote-canon-tag.c:42
+msgid "Owner Name"
+msgstr "Tên Chủ"
+
+#: libexif/canon/mnote-canon-tag.c:43
+msgid "Color Information"
+msgstr "Thông tin Màu sắc"
+
+#: libexif/canon/mnote-canon-tag.c:44 libexif/fuji/mnote-fuji-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:81
+#: libexif/olympus/mnote-olympus-tag.c:146
+msgid "Serial Number"
+msgstr "Số sản xuất"
+
+#: libexif/canon/mnote-canon-tag.c:45
+msgid "Custom Functions"
+msgstr "Chức năng Tự chọn"
+
+#: libexif/canon/mnote-canon-tag.c:56 libexif/fuji/mnote-fuji-tag.c:45
+msgid "Macro Mode"
+msgstr "Chế độ Vĩ lệnh"
+
+#: libexif/canon/mnote-canon-tag.c:57 libexif/canon/mnote-canon-tag.c:117
+#: libexif/olympus/mnote-olympus-tag.c:175
+#: libexif/pentax/mnote-pentax-tag.c:128
+msgid "Self-timer"
+msgstr "Thời gian tự đếm"
+
+#: libexif/canon/mnote-canon-tag.c:58 libexif/fuji/mnote-fuji-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:94
+#: libexif/olympus/mnote-olympus-tag.c:107
+msgid "Quality"
+msgstr "Chất lượng"
+
+#: libexif/canon/mnote-canon-tag.c:59 libexif/fuji/mnote-fuji-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:45
+#: libexif/olympus/mnote-olympus-tag.c:127
+#: libexif/pentax/mnote-pentax-tag.c:38 libexif/pentax/mnote-pentax-tag.c:73
+msgid "Flash Mode"
+msgstr "Chế độ Đèn nháy"
+
+#: libexif/canon/mnote-canon-tag.c:60 libexif/pentax/mnote-pentax-tag.c:101
+msgid "Drive Mode"
+msgstr "Chế độ Đẩy lên"
+
+#: libexif/canon/mnote-canon-tag.c:61 libexif/canon/mnote-canon-tag.c:82
+#: libexif/olympus/mnote-olympus-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:134
+#: libexif/olympus/mnote-olympus-tag.c:173
+#: libexif/pentax/mnote-pentax-tag.c:37 libexif/pentax/mnote-pentax-tag.c:74
+#: libexif/pentax/mnote-pentax-tag.c:130
+msgid "Focus Mode"
+msgstr "Chế độ Tiêu điểm"
+
+#: libexif/canon/mnote-canon-tag.c:62 libexif/pentax/mnote-pentax-tag.c:127
+msgid "Record Mode"
+msgstr "Chế độ Thu"
+
+#: libexif/canon/mnote-canon-tag.c:63 libexif/pentax/mnote-pentax-tag.c:71
+msgid "Image Size"
+msgstr "Cỡ Ảnh"
+
+#: libexif/canon/mnote-canon-tag.c:64
+msgid "Easy Shooting Mode"
+msgstr "Chế độ Chụp dễ"
+
+#: libexif/canon/mnote-canon-tag.c:65 libexif/olympus/mnote-olympus-tag.c:64
+#: libexif/olympus/mnote-olympus-tag.c:101
+#: libexif/olympus/mnote-olympus-tag.c:110
+#: libexif/olympus/mnote-olympus-tag.c:180
+#: libexif/pentax/mnote-pentax-tag.c:89
+msgid "Digital Zoom"
+msgstr "Phóng to Số"
+
+#: libexif/canon/mnote-canon-tag.c:66 libexif/exif-tag.c:828
+#: libexif/fuji/mnote-fuji-tag.c:42 libexif/pentax/mnote-pentax-tag.c:46
+#: libexif/pentax/mnote-pentax-tag.c:91
+msgid "Contrast"
+msgstr "Tương phản"
+
+#: libexif/canon/mnote-canon-tag.c:67 libexif/exif-tag.c:832
+#: libexif/olympus/mnote-olympus-tag.c:75
+#: libexif/olympus/mnote-olympus-tag.c:87 libexif/pentax/mnote-pentax-tag.c:47
+#: libexif/pentax/mnote-pentax-tag.c:90
+msgid "Saturation"
+msgstr "Bão hòa"
+
+#: libexif/canon/mnote-canon-tag.c:68 libexif/exif-tag.c:836
+#: libexif/fuji/mnote-fuji-tag.c:39 libexif/pentax/mnote-pentax-tag.c:45
+#: libexif/pentax/mnote-pentax-tag.c:92
+msgid "Sharpness"
+msgstr "Sắc"
+
+#: libexif/canon/mnote-canon-tag.c:69
+msgid "ISO"
+msgstr "ISO"
+
+#: libexif/canon/mnote-canon-tag.c:70 libexif/exif-tag.c:571
+#: libexif/pentax/mnote-pentax-tag.c:82
+msgid "Metering Mode"
+msgstr "Chế độ Đo"
+
+#: libexif/canon/mnote-canon-tag.c:71 libexif/olympus/mnote-olympus-tag.c:133
+msgid "Focus Range"
+msgstr "Phạm vị Tiêu điểm"
+
+#: libexif/canon/mnote-canon-tag.c:72 libexif/canon/mnote-canon-tag.c:105
+msgid "AF Point"
+msgstr "Điểm AF"
+
+#: libexif/canon/mnote-canon-tag.c:73 libexif/exif-tag.c:795
+msgid "Exposure Mode"
+msgstr "Chế độ Phơi nắng"
+
+#: libexif/canon/mnote-canon-tag.c:74 libexif/olympus/mnote-olympus-tag.c:61
+#: libexif/pentax/mnote-pentax-tag.c:106
+msgid "Lens Type"
+msgstr "Kiểu Ống kính"
+
+#: libexif/canon/mnote-canon-tag.c:75
+msgid "Long Focal Length of Lens"
+msgstr "Tiêu cự Dài của Ống kính"
+
+#: libexif/canon/mnote-canon-tag.c:76
+msgid "Short Focal Length of Lens"
+msgstr "Tiêu cự Ngắn của Ống kính"
+
+#: libexif/canon/mnote-canon-tag.c:77
+msgid "Focal Units per mm"
+msgstr "Đơn vị Tiêu từng mm"
+
+#: libexif/canon/mnote-canon-tag.c:78
+msgid "Maximal Aperture"
+msgstr "Lỗ Ống kính Tối đa"
+
+#: libexif/canon/mnote-canon-tag.c:79
+msgid "Minimal Aperture"
+msgstr "Lỗ Ống kính Tối thiểu"
+
+#: libexif/canon/mnote-canon-tag.c:80
+msgid "Flash Activity"
+msgstr "Hoạt động Đèn nháy"
+
+#: libexif/canon/mnote-canon-tag.c:81
+msgid "Flash Details"
+msgstr "Chi tiết Đèn nháy"
+
+#: libexif/canon/mnote-canon-tag.c:83
+msgid "AE Setting"
+msgstr "Thiết lập AE"
+
+#: libexif/canon/mnote-canon-tag.c:84
+msgid "Image Stabilization"
+msgstr "Làm Ổn định Ảnh"
+
+#: libexif/canon/mnote-canon-tag.c:85
+msgid "Display Aperture"
+msgstr "Lỗ Ống kính Trình bày"
+
+#: libexif/canon/mnote-canon-tag.c:86
+msgid "Zoom Source Width"
+msgstr "Rộng Nguồn Phóng to"
+
+#: libexif/canon/mnote-canon-tag.c:87
+msgid "Zoom Target Width"
+msgstr "Rộng Đích Phóng to"
+
+#: libexif/canon/mnote-canon-tag.c:88
+msgid "Photo Effect"
+msgstr "Hiệu ứng Ảnh chụp"
+
+#: libexif/canon/mnote-canon-tag.c:89 libexif/canon/mnote-canon-tag.c:118
+msgid "Manual Flash Output"
+msgstr "Mở Đèn nháy bằng Tay"
+
+#: libexif/canon/mnote-canon-tag.c:90
+msgid "Color Tone"
+msgstr "Sắc Màu"
+
+#: libexif/canon/mnote-canon-tag.c:91
+msgid "Focal Type"
+msgstr "Kiểu Tiêu điểm"
+
+#: libexif/canon/mnote-canon-tag.c:93
+msgid "Focal Plane X Size"
+msgstr "Cỡ X Phẳng Tiêu"
+
+#: libexif/canon/mnote-canon-tag.c:94
+msgid "Focal Plane Y Size"
+msgstr "Cỡ Y Phẳng Tiêu"
+
+#: libexif/canon/mnote-canon-tag.c:95
+msgid "Auto ISO"
+msgstr "Tự động ISO"
+
+#: libexif/canon/mnote-canon-tag.c:96
+msgid "Shot ISO"
+msgstr "ISO chụp"
+
+#: libexif/canon/mnote-canon-tag.c:97
+msgid "Measured EV"
+msgstr "EV đã đo"
+
+#: libexif/canon/mnote-canon-tag.c:98
+msgid "Target Aperture"
+msgstr "Lỗ Ống kính Đích"
+
+#: libexif/canon/mnote-canon-tag.c:99
+msgid "Target Exposure Time"
+msgstr "Thời gian Phơi nắng Đích"
+
+#: libexif/canon/mnote-canon-tag.c:100 libexif/olympus/mnote-olympus-tag.c:129
+#: libexif/pentax/mnote-pentax-tag.c:81
+msgid "Exposure Compensation"
+msgstr "Sự bù Phơi nắng"
+
+#: libexif/canon/mnote-canon-tag.c:101 libexif/canon/mnote-canon-tag.c:123
+#: libexif/exif-tag.c:800 libexif/fuji/mnote-fuji-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:41
+#: libexif/olympus/mnote-olympus-tag.c:98 libexif/pentax/mnote-pentax-tag.c:41
+#: libexif/pentax/mnote-pentax-tag.c:84 libexif/pentax/mnote-pentax-tag.c:124
+msgid "White Balance"
+msgstr "Cán cân Trắng"
+
+#: libexif/canon/mnote-canon-tag.c:102
+msgid "Slow Shutter"
+msgstr "Chập Chậm"
+
+#: libexif/canon/mnote-canon-tag.c:103
+msgid "Sequence Number"
+msgstr "Số thứ tự Dây"
+
+#: libexif/canon/mnote-canon-tag.c:104
+msgid "Flash Guide Number"
+msgstr "Số dẫn Đèn nháy"
+
+#: libexif/canon/mnote-canon-tag.c:106 libexif/olympus/mnote-olympus-tag.c:52
+#: libexif/pentax/mnote-pentax-tag.c:109
+msgid "Flash Exposure Compensation"
+msgstr "Sự bù Phơi nắng Đèn nháy"
+
+#: libexif/canon/mnote-canon-tag.c:107
+msgid "AE Bracketing"
+msgstr "Ngoặc AE"
+
+#: libexif/canon/mnote-canon-tag.c:108
+msgid "AE Bracket Value"
+msgstr "Giá trị Ngoặc AE"
+
+#: libexif/canon/mnote-canon-tag.c:109
+msgid "Focus Distance Upper"
+msgstr "Tầm Tiêu điểm Trên"
+
+#: libexif/canon/mnote-canon-tag.c:110
+msgid "Focus Distance Lower"
+msgstr "Tầm Tiêu điểm Dưới"
+
+#: libexif/canon/mnote-canon-tag.c:111
+msgid "FNumber"
+msgstr "Số F"
+
+#: libexif/canon/mnote-canon-tag.c:112 libexif/exif-tag.c:466
+#: libexif/pentax/mnote-pentax-tag.c:78
+msgid "Exposure Time"
+msgstr "Thời gian Phơi nắng"
+
+#: libexif/canon/mnote-canon-tag.c:113
+msgid "Bulb Duration"
+msgstr "Thời gian Bóng đèn"
+
+#: libexif/canon/mnote-canon-tag.c:114
+msgid "Camera Type"
+msgstr "Kiểu Máy Ảnh"
+
+#: libexif/canon/mnote-canon-tag.c:115
+msgid "Auto Rotate"
+msgstr "Tự động Xoay"
+
+#: libexif/canon/mnote-canon-tag.c:116
+msgid "ND Filter"
+msgstr "Lọc ND"
+
+#: libexif/canon/mnote-canon-tag.c:119
+msgid "Panorama Frame"
+msgstr "Khung Cảnh Quay Lia"
+
+#: libexif/canon/mnote-canon-tag.c:120
+msgid "Panorama Direction"
+msgstr "Hướng Cảnh Quay Lia"
+
+#: libexif/canon/mnote-canon-tag.c:121
+msgid "Tone Curve"
+msgstr "Cong Sắc"
+
+#: libexif/canon/mnote-canon-tag.c:122
+msgid "Sharpness Frequency"
+msgstr "Tần số độ Sắc"
+
+#: libexif/canon/mnote-canon-tag.c:124
+msgid "Picture Style"
+msgstr "Kiểu Ảnh"
+
+# Name: don't translate / Tên: đừng dịch
+#: libexif/exif-byte-order.c:33
+msgid "Motorola"
+msgstr "Motorola"
+
+# Name: don't translate / Tên: đừng dịch
+#: libexif/exif-byte-order.c:35
+msgid "Intel"
+msgstr "Intel"
+
+#: libexif/exif-data.c:780
+msgid "Size of data too small to allow for EXIF data."
+msgstr "Dữ liệu có kích cỡ quá nhỏ để chứa dữ liệu EXIF."
+
+#: libexif/exif-data.c:841
+msgid "EXIF marker not found."
+msgstr "Không tìm thấy dấu hiệu EXIF."
+
+#: libexif/exif-data.c:868
+msgid "EXIF header not found."
+msgstr "Không tìm thấy phần đầu EXIF."
+
+#: libexif/exif-data.c:884
+msgid "Unknown encoding."
+msgstr "Không biết bảng mã."
+
+#: libexif/exif-data.c:1168
+msgid "Ignore unknown tags"
+msgstr "Bỏ qua các thẻ lạ"
+
+#: libexif/exif-data.c:1169
+msgid "Ignore unknown tags when loading EXIF data."
+msgstr "Bỏ qua các thẻ lạ khi tải dữ liệu EXIF."
+
+#: libexif/exif-data.c:1170
+msgid "Follow specification"
+msgstr "Theo đặc tả"
+
+#: libexif/exif-data.c:1171
+msgid ""
+"Add, correct and remove entries to get EXIF data that follows the "
+"specification."
+msgstr "Thêm, sửa và gỡ bỏ mục nhập để tạo dữ liệu EXIF tùy theo đặc tả."
+
+#: libexif/exif-data.c:1173
+msgid "Do not change maker note"
+msgstr "Không thay đổi ghi chú hãng chế tạo"
+
+#: libexif/exif-data.c:1174
+msgid ""
+"When loading and resaving Exif data, save the maker note unmodified. Be "
+"aware that the maker note can get corrupted."
+msgstr ""
+"Khi nạp và lưu lại dữ liệu EXIF, lưu ghi chú hãng chế tạo, không sửa đổi nó. "
+"Lưu ý rằng ghi chú hãng chế tạo có thể bị hỏng."
+
+#: libexif/exif-entry.c:234 libexif/exif-entry.c:303 libexif/exif-entry.c:336
+#, c-format
+msgid ""
+"Tag '%s' was of format '%s' (which is against specification) and has been "
+"changed to format '%s'."
+msgstr ""
+"Thẻ « %s » có định dạng « %s » (mà vi phạm đặc tả) và đã được thay đổi thành "
+"định dạng « %s »."
+
+#: libexif/exif-entry.c:271
+#, c-format
+msgid ""
+"Tag '%s' is of format '%s' (which is against specification) but cannot be "
+"changed to format '%s'."
+msgstr ""
+"Thẻ « %s » có định dạng « %s » (mà vi phạm đặc tả) mà không thể thay đổi thành "
+"định dạng « %s »."
+
+#: libexif/exif-entry.c:354
+#, c-format
+msgid ""
+"Tag 'UserComment' had invalid format '%s'. Format has been set to "
+"'undefined'."
+msgstr ""
+"Thẻ « Người dùng Ghi chú » có định dạng không hợp lệ « %s ». Định dạng nó đã "
+"được đặt thành « chưa định nghĩa »."
+
+#: libexif/exif-entry.c:381
+msgid ""
+"Tag 'UserComment' has been expanded to at least 8 bytes in order to follow "
+"the specification."
+msgstr ""
+"Thẻ « Người dùng Ghi chú » đã được mở rộng đến ít nhất 8 byte để tùy theo đặc "
+"tả."
+
+#: libexif/exif-entry.c:396
+msgid ""
+"Tag 'UserComment' is not empty but does not start with a format identifier. "
+"This has been fixed."
+msgstr ""
+"Thẻ « Người dùng Ghi chú » khác trống mà không bắt đầu với dấu hiệu định "
+"dạng: đã được sửa."
+
+#: libexif/exif-entry.c:424
+msgid ""
+"Tag 'UserComment' did not start with a format identifier. This has been "
+"fixed."
+msgstr ""
+"Thẻ « Người dùng Ghi chú » không bắt đầu với dấu hiệu định dạng: đã được sửa."
+
+#: libexif/exif-entry.c:462
+#, c-format
+msgid "%i bytes undefined data"
+msgstr "%i byte dữ liệu không rõ"
+
+#: libexif/exif-entry.c:589
+#, c-format
+msgid "%i bytes unsupported data type"
+msgstr "%i byte kiểu dữ liệu không được hỗ trợ"
+
+#: libexif/exif-entry.c:622
+#, c-format
+msgid "The tag '%s' contains data of an invalid format ('%s', expected '%s')."
+msgstr ""
+"Thẻ « %s » chứa dữ liệu ở định dạng không hợp lệ (« %s », còn ngờ « %s »)."
+
+#: libexif/exif-entry.c:635
+#, c-format
+msgid ""
+"The tag '%s' contains an invalid number of components (%i, expected %i)."
+msgstr "Thẻ « %s » chứa số thành phần không hợp lệ (%i, còn ngờ %i)."
+
+#: libexif/exif-entry.c:649
+msgid "Chunky format"
+msgstr "Định dạng từng đoạn"
+
+#: libexif/exif-entry.c:649
+msgid "Planar format"
+msgstr "Định dạng phẳng"
+
+#: libexif/exif-entry.c:651 libexif/exif-entry.c:743
+#: test/nls/test-codeset.c:54
+msgid "Not defined"
+msgstr "Chưa xác định"
+
+#: libexif/exif-entry.c:651
+msgid "One-chip color area sensor"
+msgstr "Máy nhạy vùng màu phiến tinh thể đơn"
+
+#: libexif/exif-entry.c:652
+msgid "Two-chip color area sensor"
+msgstr "Máy nhạy vùng màu phiến tinh thể đôi"
+
+#: libexif/exif-entry.c:652
+msgid "Three-chip color area sensor"
+msgstr "Máy nhạy vùng màu phiến ba tinh thể"
+
+#: libexif/exif-entry.c:653
+msgid "Color sequential area sensor"
+msgstr "Máy nhạy vùng màu tuần tự"
+
+#: libexif/exif-entry.c:653
+msgid "Trilinear sensor"
+msgstr "Máy nhạy ba tuyến"
+
+#: libexif/exif-entry.c:654
+msgid "Color sequential linear sensor"
+msgstr "Máy nhạy tuyến màu tuần tự"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:233
+msgid "Top-left"
+msgstr "Trái-trên"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:235
+msgid "Top-right"
+msgstr "Phải-trên"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:241
+msgid "Bottom-right"
+msgstr "Phải-dưới"
+
+#: libexif/exif-entry.c:657 libexif/pentax/mnote-pentax-entry.c:239
+msgid "Bottom-left"
+msgstr "Trái-dưới"
+
+#: libexif/exif-entry.c:657
+msgid "Left-top"
+msgstr "Trái-trên"
+
+#: libexif/exif-entry.c:657
+msgid "Right-top"
+msgstr "Phải-trên"
+
+#: libexif/exif-entry.c:658
+msgid "Right-bottom"
+msgstr "Phải-dưới"
+
+#: libexif/exif-entry.c:658
+msgid "Left-bottom"
+msgstr "Trái-dưới"
+
+#: libexif/exif-entry.c:660
+msgid "Centered"
+msgstr "Ở giữa"
+
+#: libexif/exif-entry.c:660
+msgid "Co-sited"
+msgstr "Định vị với nhau"
+
+#: libexif/exif-entry.c:662
+msgid "Reversed mono"
+msgstr "Đơn nguồn ngược lại"
+
+#: libexif/exif-entry.c:662
+msgid "Normal mono"
+msgstr "Đơn nguồn chuẩn"
+
+# Literal: don't translate / Nghĩa chữ: đừng dịch
+#: libexif/exif-entry.c:662
+msgid "RGB"
+msgstr "RGB"
+
+#: libexif/exif-entry.c:662
+msgid "Palette"
+msgstr "Bảng chọn"
+
+#: libexif/exif-entry.c:663
+msgid "CMYK"
+msgstr "CMYK"
+
+#: libexif/exif-entry.c:663
+msgid "YCbCr"
+msgstr "YCbCr"
+
+#: libexif/exif-entry.c:663
+msgid "CieLAB"
+msgstr "CieLAB"
+
+#: libexif/exif-entry.c:665
+msgid "Normal process"
+msgstr "Tiến trình chuẩn"
+
+#: libexif/exif-entry.c:665
+msgid "Custom process"
+msgstr "Tiến trình riêng"
+
+#: libexif/exif-entry.c:667
+msgid "Auto exposure"
+msgstr "Tự động phơi sáng"
+
+#: libexif/exif-entry.c:667 libexif/fuji/mnote-fuji-entry.c:139
+msgid "Manual exposure"
+msgstr "Tự phơi sáng"
+
+#: libexif/exif-entry.c:667
+msgid "Auto bracket"
+msgstr "Tự động đặt giữa"
+
+#: libexif/exif-entry.c:669
+msgid "Auto white balance"
+msgstr "Tự động cán cân trắng"
+
+#: libexif/exif-entry.c:669
+msgid "Manual white balance"
+msgstr "Tự cán cân trắng"
+
+#: libexif/exif-entry.c:674
+msgid "Low gain up"
+msgstr "Lấn lên thấp"
+
+#: libexif/exif-entry.c:674
+msgid "High gain up"
+msgstr "Lấn lên cao"
+
+#: libexif/exif-entry.c:675
+msgid "Low gain down"
+msgstr "Khuếch đại thấp xuống"
+
+#: libexif/exif-entry.c:675
+msgid "High gain down"
+msgstr "Khuếch đại cao xuống"
+
+#: libexif/exif-entry.c:677
+msgid "Low saturation"
+msgstr "Độ bão hòa thấp"
+
+#: libexif/exif-entry.c:677 test/nls/test-codeset.c:48
+#: test/nls/test-codeset.c:61
+msgid "High saturation"
+msgstr "Độ bão hòa cao"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:63
+#: libexif/olympus/mnote-olympus-entry.c:205
+#: libexif/olympus/mnote-olympus-entry.c:214
+#: libexif/pentax/mnote-pentax-entry.c:106
+#: libexif/pentax/mnote-pentax-entry.c:170
+msgid "Soft"
+msgstr "Mềm"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:65 libexif/fuji/mnote-fuji-entry.c:95
+#: libexif/olympus/mnote-olympus-entry.c:204
+#: libexif/olympus/mnote-olympus-entry.c:212
+#: libexif/pentax/mnote-pentax-entry.c:107
+msgid "Hard"
+msgstr "Cứng"
+
+#: libexif/exif-entry.c:695 libexif/exif-entry.c:713 libexif/exif-entry.c:795
+#: libexif/olympus/mnote-olympus-entry.c:589
+#: libexif/olympus/mnote-olympus-entry.c:683
+#: libexif/olympus/mnote-olympus-entry.c:738
+#: libexif/pentax/mnote-pentax-entry.c:256
+msgid "Unknown"
+msgstr "Không rõ"
+
+#: libexif/exif-entry.c:696
+msgid "Avg"
+msgstr "Tbình"
+
+#: libexif/exif-entry.c:697
+msgid "Center-weight"
+msgstr "Nặng giữa"
+
+#: libexif/exif-entry.c:699
+msgid "Multi spot"
+msgstr "Đa chấm"
+
+#: libexif/exif-entry.c:700
+msgid "Pattern"
+msgstr "Mẫu"
+
+#: libexif/exif-entry.c:705
+msgid "Uncompressed"
+msgstr "Chưa nén"
+
+#: libexif/exif-entry.c:706
+msgid "LZW compression"
+msgstr "Nén LZW"
+
+#: libexif/exif-entry.c:707 libexif/exif-entry.c:708
+msgid "JPEG compression"
+msgstr "Nén JPEG"
+
+#: libexif/exif-entry.c:709
+msgid "Deflate/ZIP compression"
+msgstr "Nén Zip/Deflate"
+
+#: libexif/exif-entry.c:710
+msgid "PackBits compression"
+msgstr "Nén PackBits"
+
+#: libexif/exif-entry.c:716
+msgid "Tungsten incandescent light"
+msgstr "Ánh sáng nóng sáng Vonfam"
+
+#: libexif/exif-entry.c:718
+msgid "Fine weather"
+msgstr "Trời đẹp"
+
+#: libexif/exif-entry.c:719
+msgid "Cloudy weather"
+msgstr "Đầy mây"
+
+#: libexif/exif-entry.c:722 libexif/fuji/mnote-fuji-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:252
+msgid "Day white fluorescent"
+msgstr "Huỳnh quang ngày trắng"
+
+#: libexif/exif-entry.c:723
+msgid "Cool white fluorescent"
+msgstr "Huỳnh quang trắng mát"
+
+#: libexif/exif-entry.c:724 libexif/fuji/mnote-fuji-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:253
+msgid "White fluorescent"
+msgstr "Huỳnh quang trắng"
+
+#: libexif/exif-entry.c:725
+msgid "Standard light A"
+msgstr "Ánh sáng chuẩn A"
+
+#: libexif/exif-entry.c:726
+msgid "Standard light B"
+msgstr "Ánh sáng chuẩn B"
+
+#: libexif/exif-entry.c:727
+msgid "Standard light C"
+msgstr "Ánh sáng chuẩn C"
+
+# Name: don't translate / Tên: đừng dịch
+#: libexif/exif-entry.c:728
+msgid "D55"
+msgstr "D55"
+
+# Name: don't translate / Tên: đừng dịch
+#: libexif/exif-entry.c:729
+msgid "D65"
+msgstr "D65"
+
+# Name: don't translate / Tên: đừng dịch
+#: libexif/exif-entry.c:730
+msgid "D75"
+msgstr "D75"
+
+#: libexif/exif-entry.c:731
+msgid "ISO studio tungsten"
+msgstr "Vonfam xưởng ISO"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "Inch"
+msgstr "insơ"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "in"
+msgstr "in"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "Centimeter"
+msgstr "Cen-ti-mét"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "cm"
+msgstr "cm"
+
+#: libexif/exif-entry.c:745
+msgid "Normal program"
+msgstr "Chương trình chuẩn"
+
+#: libexif/exif-entry.c:746
+msgid "Aperture priority"
+msgstr "Ưu tiên lỗ ống kính"
+
+#: libexif/exif-entry.c:746 libexif/exif-tag.c:550
+msgid "Aperture"
+msgstr "Lỗ ống kính"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter priority"
+msgstr "Ưu tiên chập"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter"
+msgstr "Chập"
+
+#: libexif/exif-entry.c:748
+msgid "Creative program (biased toward depth of field)"
+msgstr "Chương trình sáng tạo (khuynh hướng đến độ sâu vùng)"
+
+#: libexif/exif-entry.c:749
+msgid "Creative"
+msgstr "Sáng tạo"
+
+#: libexif/exif-entry.c:750
+msgid "Creative program (biased toward fast shutter speed)"
+msgstr "Chương trình sáng tạo (khuynh hướng đến tốc độ chập nhanh)"
+
+#: libexif/exif-entry.c:751
+msgid "Action"
+msgstr "Hành động"
+
+#: libexif/exif-entry.c:752
+msgid "Portrait mode (for closeup photos with the background out of focus)"
+msgstr "Chế độ thẳng đứng (chụp ảnh cảnh gần có nền mờ)"
+
+#: libexif/exif-entry.c:754
+msgid "Landscape mode (for landscape photos with the background in focus)"
+msgstr "Chế độ nằm ngang (chụp phong cảnh với nền rõ)"
+
+#: libexif/exif-entry.c:758 libexif/exif-entry.c:763
+#: libexif/olympus/mnote-olympus-entry.c:97
+msgid "Flash did not fire"
+msgstr "Đèn nháy chưa mở"
+
+#: libexif/exif-entry.c:758
+msgid "No flash"
+msgstr "Không đèn nháy"
+
+#: libexif/exif-entry.c:759
+msgid "Flash fired"
+msgstr "Đèn nháy đã mở"
+
+#: libexif/exif-entry.c:759 libexif/olympus/mnote-olympus-entry.c:170
+#: libexif/olympus/mnote-olympus-entry.c:175
+#: libexif/olympus/mnote-olympus-entry.c:209
+#: libexif/olympus/mnote-olympus-entry.c:218
+#: libexif/olympus/mnote-olympus-entry.c:241
+msgid "Yes"
+msgstr "Có"
+
+#: libexif/exif-entry.c:760
+msgid "Strobe return light not detected"
+msgstr "Chưa phát hiện ánh sáng nhấp nháy trở về"
+
+#: libexif/exif-entry.c:760
+msgid "Without strobe"
+msgstr "Không nhấp nháy"
+
+#: libexif/exif-entry.c:762
+msgid "Strobe return light detected"
+msgstr "Phát hiện ánh sáng nhấp nháy trở về"
+
+#: libexif/exif-entry.c:762
+msgid "With strobe"
+msgstr "Nhấp nháy"
+
+#: libexif/exif-entry.c:764
+msgid "Flash fired, compulsory flash mode"
+msgstr "Đèn nháy đã mở, chế độ nháy bắt buộc"
+
+#: libexif/exif-entry.c:765
+msgid "Flash fired, compulsory flash mode, return light not detected"
+msgstr "Đèn nháy đã mở, chế độ nháy bắt buộc, chưa phát hiện ánh sáng trở về"
+
+#: libexif/exif-entry.c:767
+msgid "Flash fired, compulsory flash mode, return light detected"
+msgstr "Đèn nháy đã mở, chế độ nháy bắt buộc, phát hiện ánh sáng trở về"
+
+#: libexif/exif-entry.c:769
+msgid "Flash did not fire, compulsory flash mode"
+msgstr "Đèn nháy chưa mở, chế độ nháy bắt buộc"
+
+#: libexif/exif-entry.c:770
+msgid "Flash did not fire, auto mode"
+msgstr "Đèn nháy chưa mở, chế độ tự động"
+
+#: libexif/exif-entry.c:771
+msgid "Flash fired, auto mode"
+msgstr "Đèn nháy đã mở, chế độ tự động"
+
+#: libexif/exif-entry.c:772
+msgid "Flash fired, auto mode, return light not detected"
+msgstr "Đèn nháy đã mở, chế độ tự động, chưa phát hiện ánh sáng trở về"
+
+#: libexif/exif-entry.c:774
+msgid "Flash fired, auto mode, return light detected"
+msgstr "Đèn nháy đã mở, chế độ tự động, phát hiện ánh sáng trở về"
+
+#: libexif/exif-entry.c:775
+msgid "No flash function"
+msgstr "Không có chức năng nháy"
+
+#: libexif/exif-entry.c:776
+msgid "Flash fired, red-eye reduction mode"
+msgstr "Đèn nháy đã mở, chế độ giảm mắt đỏ"
+
+#: libexif/exif-entry.c:777
+msgid "Flash fired, red-eye reduction mode, return light not detected"
+msgstr "Đèn nháy đã mở, chế độ giảm mắt đỏ, chưa phát hiện ánh sáng trở về"
+
+#: libexif/exif-entry.c:779
+msgid "Flash fired, red-eye reduction mode, return light detected"
+msgstr "Đèn nháy đã mở, chế độ giảm mắt đỏ, phát hiện ánh sáng trở về"
+
+#: libexif/exif-entry.c:781
+msgid "Flash fired, compulsory flash mode, red-eye reduction mode"
+msgstr "Đèn nháy đã mở, chế độ nháy bắt buộc, chế độ giảm mắt đỏ"
+
+#: libexif/exif-entry.c:783
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light not "
+"detected"
+msgstr ""
+"Đèn nháy đã mở, chế độ nháy bắt buộc, chế độ giảm mắt đỏ, chưa phát hiện ánh "
+"sáng trở về"
+
+#: libexif/exif-entry.c:785
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light "
+"detected"
+msgstr ""
+"Đèn nháy đã mở, chế độ nháy bắt buộc, chế độ giảm mắt đỏ, chưa phát hiện ánh "
+"sáng trở về"
+
+#: libexif/exif-entry.c:787
+msgid "Flash did not fire, auto mode, red-eye reduction mode"
+msgstr "Đèn nháy chưa mở, chế độ tự động, chế độ giảm mắt đỏ"
+
+#: libexif/exif-entry.c:788
+msgid "Flash fired, auto mode, red-eye reduction mode"
+msgstr "Đèn nháy đã mở, chế độ tự động, chế độ giảm mắt đỏ"
+
+#: libexif/exif-entry.c:789
+msgid ""
+"Flash fired, auto mode, return light not detected, red-eye reduction mode"
+msgstr ""
+"Đèn nháy đã mở, chế độ tự động, chưa phát hiện ánh sáng trở về, chế độ giảm "
+"mắt đỏ"
+
+#: libexif/exif-entry.c:791
+msgid "Flash fired, auto mode, return light detected, red-eye reduction mode"
+msgstr ""
+"Đèn nháy đã mở, chế độ tự động, phát hiện ánh sáng trở về, chế độ giảm mắt đỏ"
+
+#: libexif/exif-entry.c:795
+msgid "?"
+msgstr "?"
+
+#: libexif/exif-entry.c:797
+msgid "Close view"
+msgstr "Xem gần"
+
+#: libexif/exif-entry.c:798
+msgid "Distant view"
+msgstr "Xem xa"
+
+#: libexif/exif-entry.c:798
+msgid "Distant"
+msgstr "Xa"
+
+#: libexif/exif-entry.c:801
+msgid "sRGB"
+msgstr "sRGB"
+
+# Name: don't translate / Tên: đừng dịch
+#: libexif/exif-entry.c:802
+msgid "Adobe RGB"
+msgstr "Adobe RGB"
+
+#: libexif/exif-entry.c:803
+msgid "Uncalibrated"
+msgstr "Chưa định chuẩn"
+
+#: libexif/exif-entry.c:857
+#, c-format
+msgid "Invalid size of entry (%i, expected %li x %i)."
+msgstr "Mục nhập có kích cỡ không hợp lệ (%i, còn ngờ %li x %i)."
+
+#: libexif/exif-entry.c:890
+msgid "Unsupported UNICODE string"
+msgstr "Chuỗi Unicode không được hỗ trợ"
+
+#: libexif/exif-entry.c:898
+msgid "Unsupported JIS string"
+msgstr "Chuỗi JIS không được hỗ trợ"
+
+#: libexif/exif-entry.c:914
+msgid "Tag UserComment does not comply with standard but contains data."
+msgstr ""
+"Thẻ « Người dùng ghi chú » không tuân theo tiêu chuẩn, còn chứa dữ liệu."
+
+#: libexif/exif-entry.c:918
+#, c-format
+msgid "Byte at position %i: 0x%02x"
+msgstr "Có byte tại vị trí %i: 0x%02x"
+
+#: libexif/exif-entry.c:927
+msgid "Unknown Exif Version"
+msgstr "Không biết phiên bản EXIF"
+
+#: libexif/exif-entry.c:931
+#, c-format
+msgid "Exif Version %d.%d"
+msgstr "Phiên bản EXIF %d.%d"
+
+#: libexif/exif-entry.c:942
+msgid "FlashPix Version 1.0"
+msgstr "FlashPix phiên bản 1.0"
+
+#: libexif/exif-entry.c:944
+msgid "FlashPix Version 1.01"
+msgstr "FlashPix phiên bản 1.01"
+
+#: libexif/exif-entry.c:946
+msgid "Unknown FlashPix Version"
+msgstr "Không biết phiên bản FlashPix"
+
+#: libexif/exif-entry.c:959 libexif/exif-entry.c:972 libexif/exif-entry.c:1628
+#: libexif/exif-entry.c:1633 libexif/exif-entry.c:1637
+#: libexif/exif-entry.c:1642 libexif/exif-entry.c:1643
+msgid "[None]"
+msgstr "[Không có]"
+
+#: libexif/exif-entry.c:961
+msgid "(Photographer)"
+msgstr "(Nhà nhiếp ảnh)"
+
+#: libexif/exif-entry.c:975
+msgid "(Editor)"
+msgstr "(Nhà soạn thảo)"
+
+#: libexif/exif-entry.c:999 libexif/exif-entry.c:1079
+#: libexif/exif-entry.c:1096 libexif/exif-entry.c:1140
+#, c-format
+msgid "%.02f EV"
+msgstr "%.02f EV"
+
+#: libexif/exif-entry.c:1000
+#, c-format
+msgid " (f/%.01f)"
+msgstr " (f/%.01f)"
+
+#: libexif/exif-entry.c:1034
+#, c-format
+msgid " (35 equivalent: %d mm)"
+msgstr " (35 tương đương: %d mm)"
+
+#: libexif/exif-entry.c:1067 libexif/exif-entry.c:1068
+msgid " sec."
+msgstr " giây"
+
+#: libexif/exif-entry.c:1082
+#, c-format
+msgid " (1/%d sec.)"
+msgstr " (1/%d giây)"
+
+#: libexif/exif-entry.c:1084
+#, c-format
+msgid " (%d sec.)"
+msgstr " (%d giây)"
+
+#: libexif/exif-entry.c:1097
+#, c-format
+msgid " (%.02f cd/m^2)"
+msgstr " (%.02f cd/m²)"
+
+#: libexif/exif-entry.c:1107
+msgid "DSC"
+msgstr "DSC"
+
+#: libexif/exif-entry.c:1109 libexif/exif-entry.c:1149
+#: libexif/exif-entry.c:1236 libexif/exif-entry.c:1287
+#: libexif/exif-entry.c:1296 libexif/exif-entry.c:1332
+#: libexif/fuji/mnote-fuji-entry.c:236 libexif/fuji/mnote-fuji-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:359
+#, c-format
+msgid "Internal error (unknown value %i)"
+msgstr "Lỗi nội bộ (giá trị không rõ %i)"
+
+#: libexif/exif-entry.c:1117
+msgid "-"
+msgstr "-"
+
+#: libexif/exif-entry.c:1118
+msgid "Y"
+msgstr "Y"
+
+#: libexif/exif-entry.c:1119
+msgid "Cb"
+msgstr "Cb"
+
+#: libexif/exif-entry.c:1120
+msgid "Cr"
+msgstr "Cr"
+
+#: libexif/exif-entry.c:1121
+msgid "R"
+msgstr "R"
+
+#: libexif/exif-entry.c:1122
+msgid "G"
+msgstr "G"
+
+#: libexif/exif-entry.c:1123
+msgid "B"
+msgstr "B"
+
+#: libexif/exif-entry.c:1124
+msgid "Reserved"
+msgstr "Dành riêng"
+
+#: libexif/exif-entry.c:1147
+msgid "Directly photographed"
+msgstr "Chụp ảnh trực tiếp"
+
+#: libexif/exif-entry.c:1160
+msgid "YCbCr4:2:2"
+msgstr "YCbCr4:2:2"
+
+#: libexif/exif-entry.c:1162
+msgid "YCbCr4:2:0"
+msgstr "YCbCr4:2:0"
+
+#: libexif/exif-entry.c:1179
+#, c-format
+msgid "Within distance %i of (x,y) = (%i,%i)"
+msgstr "Trong khoảng cách %i trên (x,y) = (%i,%i)"
+
+#: libexif/exif-entry.c:1188
+#, c-format
+msgid "Within rectangle (width %i, height %i) around (x,y) = (%i,%i)"
+msgstr "Trong hộp (rộng %i, cao %i) chung quanh (x,y) = (%i,%i)"
+
+#: libexif/exif-entry.c:1194
+#, c-format
+msgid "Unexpected number of components (%li, expected 2, 3, or 4)."
+msgstr "Số thành phần bất ngờ (%li, còn ngờ 2, 3, hay 4)."
+
+#: libexif/exif-entry.c:1232
+msgid "Sea level"
+msgstr "Mặt biển"
+
+#: libexif/exif-entry.c:1234
+msgid "Sea level reference"
+msgstr "Tham chiếu mặt biển"
+
+#: libexif/exif-entry.c:1342
+#, c-format
+msgid "Unknown value %i"
+msgstr "Không rõ giá trị %i"
+
+#: libexif/exif-format.c:37
+msgid "Short"
+msgstr "Ngắn"
+
+#: libexif/exif-format.c:38
+msgid "Rational"
+msgstr "Hữu tỷ"
+
+#: libexif/exif-format.c:39
+msgid "SRational"
+msgstr "SHữu tỷ"
+
+#: libexif/exif-format.c:40
+msgid "Undefined"
+msgstr "Chưa định nghĩa"
+
+#: libexif/exif-format.c:41
+msgid "ASCII"
+msgstr "ASCII"
+
+#: libexif/exif-format.c:42
+msgid "Long"
+msgstr "Dài"
+
+#: libexif/exif-format.c:43
+msgid "Byte"
+msgstr "Byte"
+
+#: libexif/exif-format.c:44
+msgid "SByte"
+msgstr "SByte"
+
+#: libexif/exif-format.c:45
+msgid "SShort"
+msgstr "SNgắn"
+
+#: libexif/exif-format.c:46
+msgid "SLong"
+msgstr "SDài"
+
+#: libexif/exif-format.c:47
+msgid "Float"
+msgstr "ĐPĐ"
+
+#: libexif/exif-format.c:48
+msgid "Double"
+msgstr "Đôi"
+
+#: libexif/exif-loader.c:119
+#, c-format
+msgid "The file '%s' could not be opened."
+msgstr "Không thể mở tập tin « %s »."
+
+#: libexif/exif-loader.c:300
+msgid "The data supplied does not seem to contain EXIF data."
+msgstr "Dữ liệu được cung cấp có vẻ không chứa dữ liệu EXIF."
+
+#: libexif/exif-log.c:43
+msgid "Debugging information"
+msgstr "Thông tin gỡ lỗi"
+
+#: libexif/exif-log.c:44
+msgid "Debugging information is available."
+msgstr "Có thông tin gỡ lỗi."
+
+#: libexif/exif-log.c:45
+msgid "Not enough memory"
+msgstr "Không đủ bộ nhớ"
+
+#: libexif/exif-log.c:46
+msgid "The system cannot provide enough memory."
+msgstr "Hệ thống không thể cung cấp đủ bộ nhớ."
+
+#: libexif/exif-log.c:47
+msgid "Corrupt data"
+msgstr "Dữ liệu bị hỏng."
+
+#: libexif/exif-log.c:48
+msgid "The data provided does not follow the specification."
+msgstr "Dữ liệu được cung cấp không tùy theo đặc tả."
+
+#: libexif/exif-tag.c:62
+msgid "GPS Tag Version"
+msgstr "Phiên bản Thẻ GPS"
+
+#: libexif/exif-tag.c:63
+msgid ""
+"Indicates the version of <GPSInfoIFD>. The version is given as 2.0.0.0. This "
+"tag is mandatory when <GPSInfo> tag is present. (Note: The <GPSVersionID> "
+"tag is given in bytes, unlike the <ExifVersion> tag. When the version is "
+"2.0.0.0, the tag value is 02000000.H)."
+msgstr ""
+"Ngụ ý phiên bản của <IFD thông tin GPS>. Phiên bản được hiển thị là "
+"<2.0.0.0>. Thẻ này bắt buộc khi có thẻ <thông tin GPS>. (Ghi chú : thẻ <ID "
+"phiên bản GPS> được đưa ra theo byte, khác với thẻ <phiên bản Exif>. Khi "
+"phiên bản là <2.0.0.0>, giá trị thẻ là <02000000.H>)."
+
+#: libexif/exif-tag.c:69
+msgid "Interoperability Index"
+msgstr "Chỉ mục Tương hành"
+
+#: libexif/exif-tag.c:70
+msgid ""
+"Indicates the identification of the Interoperability rule. Use \"R98\" for "
+"stating ExifR98 Rules. Four bytes used including the termination code "
+"(NULL). see the separate volume of Recommended Exif Interoperability Rules "
+"(ExifR98) for other tags used for ExifR98."
+msgstr ""
+"Ngụ ý cách nhận diện quy tắc khả năng thao tác với nhau. Hãy dùng « R98 » cho "
+"Quy tắc ExifR98. Bốn byte được dùng, gồm mã kết thúc (RỖNG). Hãy xem tài "
+"liệu riêng Các Quy tắc Khả năng Thao tác với nhau (ExifR98) cho các thẻ khác "
+"được dùng cho ExifR98."
+
+#: libexif/exif-tag.c:76
+msgid "North or South Latitude"
+msgstr "Độ vĩ Bắc hay Nam"
+
+#: libexif/exif-tag.c:77
+msgid ""
+"Indicates whether the latitude is north or south latitude. The ASCII value "
+"'N' indicates north latitude, and 'S' is south latitude."
+msgstr ""
+"Ngụ ý có độ vĩ Bắc hay Nam.  Giá trị ASCII <N> ngụ ý độ vĩ Bắc, còn <S> là "
+"độ vĩ Nam."
+
+#: libexif/exif-tag.c:81
+msgid "Interoperability Version"
+msgstr "Phiên bản Tương hành"
+
+#: libexif/exif-tag.c:83
+msgid "Latitude"
+msgstr "Độ vĩ"
+
+#: libexif/exif-tag.c:84
+msgid ""
+"Indicates the latitude. The latitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is dd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is dd/1,mmmm/100,0/1."
+msgstr ""
+"Ngụ ý độ vĩ. Độ vĩ được thế hiện là ba giá trị HỮU TỶ đưa ra độ, phút và "
+"giây riêng từng. Khi thế hiện độ, phút và giây, định dạng là <đđ/1,pp/1,"
+"gg/1>. Khi dùng độ và phút, và, lấy thí dụ, phần độ được đưa ra đến hai lần "
+"số, định dạng là <đđ/1,pppp/100,0/1>."
+
+#: libexif/exif-tag.c:91
+msgid "East or West Longitude"
+msgstr "Độ kinh Đông hay Tây"
+
+#: libexif/exif-tag.c:92
+msgid ""
+"Indicates whether the longitude is east or west longitude. ASCII 'E' "
+"indicates east longitude, and 'W' is west longitude."
+msgstr ""
+"Ngụ ý có độ kinh Đông hay Tây. Giá trị ASCII <E> ngụ ý độ kinh Đông, còn <W> "
+"là độ kinh Tây."
+
+#: libexif/exif-tag.c:95
+msgid "Longitude"
+msgstr "Độ kinh"
+
+#: libexif/exif-tag.c:96
+msgid ""
+"Indicates the longitude. The longitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is ddd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is ddd/1,mmmm/100,0/1."
+msgstr ""
+"Ngụ ý độ kinh. Độ kinh được thế hiện là ba giá trị HỮU TỶ đưa ra độ, phút và "
+"giây riêng từng. Khi thế hiện độ, phút và giây, định dạng là <đđ/1,pp/1,"
+"gg/1>. Khi dùng độ và phút, và, lấy thí dụ, phần độ được đưa ra đến hai lần "
+"số, định dạng là <đđ/1,pppp/100,0/1>."
+
+#: libexif/exif-tag.c:103
+msgid "Altitude Reference"
+msgstr "Tham chiếu Cao độ"
+
+#: libexif/exif-tag.c:104
+msgid ""
+"Indicates the altitude used as the reference altitude. If the reference is "
+"sea level and the altitude is above sea level, 0 is given. If the altitude "
+"is below sea level, a value of 1 is given and the altitude is indicated as "
+"an absolute value in the GSPAltitude tag. The reference unit is meters. Note "
+"that this tag is BYTE type, unlike other reference tags."
+msgstr ""
+"Ngụ ý cao độ được dùng là cao độ tham chiếu. Nếu tham chiếu là mặt biển và "
+"cao độ trên mặt biển, đưa ra 0. Nếu cao độ dưới mặt biển, đưa ra 1, và cao "
+"độ được ngụ ý là giá trị tuyệt đối trong thẻ <cao độ GSP>. Đơn vị tham chiếu "
+"là mét. Ghi chú rằng thẻ này là kiểu BYTE, khác với các thẻ tham chiếu khác."
+
+#: libexif/exif-tag.c:110
+msgid "Altitude"
+msgstr "Cao độ"
+
+#: libexif/exif-tag.c:111
+msgid ""
+"Indicates the altitude based on the reference in GPSAltitudeRef. Altitude is "
+"expressed as one RATIONAL value. The reference unit is meters."
+msgstr ""
+"Ngụ ý cao độ, đựa vào tham chiếu trong <tham chiếu cao độ GPS>. Cao độ được "
+"thế hiện là một giá trị HỮU TỶ. Đơn vị tham chiếu là mét."
+
+#: libexif/exif-tag.c:114
+msgid "GPS Time (Atomic Clock)"
+msgstr "Giờ GPS (Đồng hồ Nguyên tử)"
+
+#: libexif/exif-tag.c:115
+msgid ""
+"Indicates the time as UTC (Coordinated Universal Time). TimeStamp is "
+"expressed as three RATIONAL values giving the hour, minute, and second."
+msgstr ""
+"Ngụ ý thời gian theo UTC (Thời gian Thế giới). Nhãn thời gian được thể hiện "
+"theo ba giá trị HỮU TỶ là giá, phút và giây."
+
+#: libexif/exif-tag.c:118
+msgid "GPS Satellites"
+msgstr "Vệ tinh GPS"
+
+#: libexif/exif-tag.c:119
+msgid ""
+"Indicates the GPS satellites used for measurements. This tag can be used to "
+"describe the number of satellites, their ID number, angle of elevation, "
+"azimuth, SNR and other information in ASCII notation. The format is not "
+"specified. If the GPS receiver is incapable of taking measurements, value of "
+"the tag shall be set to NULL."
+msgstr ""
+"Ngụ ý những vệ tinh GPS được dùng để đo lường. Thẻ này có khả năng diễn tả "
+"số các vệ tinh, mã số của mỗi vệ tinh, góc nâng, góc phương vị, SNR và thông "
+"tin khác theo kiểu ASCII. Định dạng không phải được chỉ ra. Nếu thiết bị "
+"nhận GPS không có khả năng đo lường thì giá trị của thẻ này được đặt thành "
+"NULL (vô giá trị)."
+
+#: libexif/exif-tag.c:125
+msgid "GPS Receiver Status"
+msgstr "Trạng thái máy nhận GPS"
+
+#: libexif/exif-tag.c:126
+msgid ""
+"Indicates the status of the GPS receiver when the image is recorded. 'A' "
+"means measurement is in progress, and 'V' means the measurement is "
+"Interoperability."
+msgstr ""
+"Ngụ ý trạng thái của thiết bị nhận GPS vào lúc thu ảnh. « A » có nghĩa là "
+"đang đo lường; « V » có nghĩa là sự đo là Tương hành."
+
+#: libexif/exif-tag.c:129
+msgid "GPS Measurement Mode"
+msgstr "Chế độ Đo GPS"
+
+#: libexif/exif-tag.c:130
+msgid ""
+"Indicates the GPS measurement mode. '2' means two-dimensional measurement "
+"and '3' means three-dimensional measurement is in progress."
+msgstr ""
+"Ngụ ý chế độ đo lường GPS. « 2 » có nghĩa là đang đo lường theo hai chiều ; « "
+"3 » có nghĩa là đang đo lường theo ba chiều (3D)."
+
+#: libexif/exif-tag.c:133
+msgid "Measurement Precision"
+msgstr "Đo Chính Xác"
+
+#: libexif/exif-tag.c:134
+msgid ""
+"Indicates the GPS DOP (data degree of precision). An HDOP value is written "
+"during two-dimensional measurement, and PDOP during three-dimensional "
+"measurement."
+msgstr ""
+"Ngụ ý DOP của GPS (độ chính xác của dữ liệu). Giá trị HDOP được ghi trong "
+"khi đo lường theo hai chiều, và giá trị PDOP được ghi trong khi đo lường "
+"theo ba chiều."
+
+#: libexif/exif-tag.c:137
+msgid "Speed Unit"
+msgstr "Đơn vị Tốc độ"
+
+#: libexif/exif-tag.c:138
+msgid ""
+"Indicates the unit used to express the GPS receiver speed of movement. 'K', "
+"'M' and 'N' represent kilometers per hour, miles per hour, and knots."
+msgstr ""
+"Ngụ ý đơn vị dùng để thể hiện tốc độ di chuyển của thiết bị nhận GPS:\n"
+" • K\tkilômét/giờ\n"
+" • M\tlý/giờ\n"
+" • N\thải lý"
+
+#: libexif/exif-tag.c:141
+msgid "Speed of GPS Receiver"
+msgstr "Tốc độ máy nhận GPS"
+
+#: libexif/exif-tag.c:142
+msgid "Indicates the speed of GPS receiver movement."
+msgstr "Ngụ ý tốc độ di chuyển của thiết bị nhận GPS."
+
+#: libexif/exif-tag.c:143
+msgid "Reference for direction of movement"
+msgstr "Tham chiếu về hướng di chuyển"
+
+#: libexif/exif-tag.c:144
+msgid ""
+"Indicates the reference for giving the direction of GPS receiver movement. "
+"'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+"Ngụ ý tham chiếu để cung cấp hướng theo đó thiết bị nhận GPS di chuyển. « T » "
+"là hướng đúng, còn « M » là hướng từ."
+
+#: libexif/exif-tag.c:147
+msgid "Direction of Movement"
+msgstr "Hướng di chuyển"
+
+#: libexif/exif-tag.c:148
+msgid ""
+"Indicates the direction of GPS receiver movement. The range of values is "
+"from 0.00 to 359.99."
+msgstr ""
+"Ngụ ý hướng theo đó thiết bị nhận GPS di chuyển. Giá trị nằm trong phạm vi "
+"0.00 đến 359.99."
+
+#: libexif/exif-tag.c:150
+msgid "GPS Image Direction Reference"
+msgstr "Tham chiếu Hướng Ảnh GPS"
+
+#: libexif/exif-tag.c:151
+msgid ""
+"Indicates the reference for giving the direction of the image when it is "
+"captured. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+"Ngụ ý tham chiếu để cung cấp hướng của ảnh khi nó được bắt. « T » là hướng "
+"đúng, còn « M » là hướng từ."
+
+#: libexif/exif-tag.c:153
+msgid "GPS Image Direction"
+msgstr "Hướng ảnh GPS"
+
+#: libexif/exif-tag.c:154
+msgid ""
+"Indicates the direction of the image when it was captured. The range of "
+"values is from 0.00 to 359.99."
+msgstr ""
+"Ngụ ý hướng của ảnh khi nó được bắt. Giá trị nằm trong phạm vi 0.00 đến "
+"359.99."
+
+#: libexif/exif-tag.c:156
+msgid "Geodetic Survey Data Used"
+msgstr "Dùng dữ liệu quan sát đo đạc"
+
+#: libexif/exif-tag.c:157
+msgid ""
+"Indicates the geodetic survey data used by the GPS receiver. If the survey "
+"data is restricted to Japan, the value of this tag is 'TOKYO' or 'WGS-84'. "
+"If a GPS Info tag is recorded, it is strongly recommended that this tag be "
+"recorded."
+msgstr ""
+"Ngụ ý dữ liệu quan sát đo đạc được dùng bởi thiết bị nhận GPS. Nếu dữ liệu "
+"quan sát bị giới hạn ở Nhật bản thì giá trị của thẻ này là « TOKYO » hay « WGS-"
+"84 ». Nếu một thẻ Thông tin GPS được ghi thì rất khuyên cũng ghi thẻ này."
+
+#: libexif/exif-tag.c:161
+msgid "Reference For Latitude of Destination"
+msgstr "Tham chiếu về độ vĩ của đích đến"
+
+#: libexif/exif-tag.c:162
+msgid ""
+"Indicates whether the latitude of the destination point is north or south "
+"latitude. The ASCII value 'N' indicates north latitude, and 'S' is south "
+"latitude."
+msgstr ""
+"Ngụ ý nếu đích đến có độ vĩ Bắc hay Nam. Giá trị ASCII « N » ngụ ý độ vĩ Bắc, "
+"còn « S » là độ vĩ Nam."
+
+#: libexif/exif-tag.c:165
+msgid "Latitude of Destination"
+msgstr "Độ vĩ đích"
+
+#: libexif/exif-tag.c:166
+msgid ""
+"Indicates the latitude of the destination point. The latitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If latitude is expressed as degrees, minutes and seconds, a "
+"typical format would be dd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be dd/1,mmmm/100,0/1."
+msgstr ""
+"Ngụ ý độ vĩ của điểm đích đến. Độ vĩ được thế hiện là ba giá trị HỮU TỶ đưa "
+"ra độ, phút và giây riêng từng. Khi thế hiện độ, phút và giây, định dạng "
+"thường là « đđ/1,pp/1,gg/1 ». Khi dùng độ và phút, và, lấy thí dụ, phần độ "
+"được đưa ra đến hai lần số, định dạng là « đđ/1,pppp/100,0/1 »."
+
+#: libexif/exif-tag.c:173
+msgid "Reference for Longitude of Destination"
+msgstr "Tham chiếu về kinh độ của đích đến"
+
+#: libexif/exif-tag.c:174
+msgid ""
+"Indicates whether the longitude of the destination point is east or west "
+"longitude. ASCII 'E' indicates east longitude, and 'W' is west longitude."
+msgstr ""
+"Ngụ ý nếu đích đến có độ kinh Đông hay Tây. Giá trị ASCII « E » ngụ ý độ kinh "
+"Đông, còn « W » là độ kinh Tây."
+
+#: libexif/exif-tag.c:177
+msgid "Longitude of Destination"
+msgstr "Độ kinh đích"
+
+#: libexif/exif-tag.c:178
+msgid ""
+"Indicates the longitude of the destination point. The longitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If longitude is expressed as degrees, minutes and seconds, a "
+"typical format would be ddd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be ddd/1,mmmm/100,0/1."
+msgstr ""
+"Ngụ ý độ kinh của điểm đích đến. Độ kinh được thế hiện là ba giá trị HỮU TỶ "
+"đưa ra độ, phút và giây riêng từng. Khi thế hiện độ, phút và giây, định dạng "
+"là « đđ/1,pp/1,gg/1 ». Khi dùng độ và phút, và, lấy thí dụ, phần độ được đưa "
+"ra đến hai lần số, định dạng là « đđ/1,pppp/100,0/1 »."
+
+#: libexif/exif-tag.c:186
+msgid "Reference for Bearing of Destination"
+msgstr "Tham chiếu về vị trí phương hướng của đích đến"
+
+#: libexif/exif-tag.c:187
+msgid ""
+"Indicates the reference used for giving the bearing to the destination "
+"point. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+"Ngụ ý tham chiếu dùng để cung cấp vị trí phương hướng tới điểm đích đến. « T "
+"» là hướng đúng, còn « M » là hướng từ."
+
+#: libexif/exif-tag.c:190
+msgid "Bearing of Destination"
+msgstr "Vị trí phương hướng đích"
+
+#: libexif/exif-tag.c:191
+msgid ""
+"Indicates the bearing to the destination point. The range of values is from "
+"0.00 to 359.99."
+msgstr ""
+"Ngụ ý vị trí phương hướng tới điểm đích đến. Giá trị nằm trong phạm vi 0.00 "
+"đến 359.99."
+
+#: libexif/exif-tag.c:193
+msgid "Reference for Distance to Destination"
+msgstr "Tham chiếu về khoảng cách đích đến"
+
+#: libexif/exif-tag.c:194
+msgid ""
+"Indicates the unit used to express the distance to the destination point. "
+"'K', 'M' and 'N' represent kilometers, miles and knots."
+msgstr ""
+"Ngụ ý đơn vị dùng để thể hiện khoảng cách tới điểm đích đến:\n"
+" • K\tkilômét\n"
+" • M\tlý\n"
+" • N\thải lý"
+
+#: libexif/exif-tag.c:197
+msgid "Distance to Destination"
+msgstr "Cách đích"
+
+#: libexif/exif-tag.c:198
+msgid "Indicates the distance to the destination point."
+msgstr "Ngụ ý khoảng cách tới điểm đích đến."
+
+#: libexif/exif-tag.c:199
+msgid "Name of GPS Processing Method"
+msgstr "Tên của phương pháp xử lý GPS"
+
+#: libexif/exif-tag.c:200
+msgid ""
+"A character string recording the name of the method used for location "
+"finding. The first byte indicates the character code used, and this is "
+"followed by the name of the method. Since the Type is not ASCII, NULL "
+"termination is not necessary."
+msgstr ""
+"Một chuỗi ký tự mà ghi tên của phương pháp dùng để tìm vị trí. Byte đầu tiên "
+"ngụ ý mã ký tự, sau đó là tên của phương pháp. Vì Kiểu khác ASCII, không cần "
+"chấm dứt."
+
+#: libexif/exif-tag.c:205
+msgid "Name of GPS Area"
+msgstr "Tên của vùng GPS"
+
+#: libexif/exif-tag.c:206
+msgid ""
+"A character string recording the name of the GPS area. The first byte "
+"indicates the character code used, and this is followed by the name of the "
+"GPS area. Since the Type is not ASCII, NULL termination is not necessary."
+msgstr ""
+"Một chuỗi ký tự mà ghi tên của vùng GPS. Byte đầu tiên ngụ ý mã ký tự, sau "
+"đó là tên của vùng GPS. Vì Kiểu khác ASCII, không cần chấm dứt."
+
+#: libexif/exif-tag.c:210
+msgid "GPS Date"
+msgstr "Ngày GPS"
+
+#: libexif/exif-tag.c:211
+msgid ""
+"A character string recording date and time information relative to UTC "
+"(Coordinated Universal Time). The format is \"YYYY:MM:DD\". The length of "
+"the string is 11 bytes including NULL."
+msgstr ""
+"Một chuỗi ký tự mà ghi thông tin về ngày tháng và thời gian tương ứng với "
+"UTC (Thời gian Thế giới). Định dạng là « NNNN:TT:nn ». Chiều dài của chuỗi là "
+"11 byte bao gồm NULL."
+
+#: libexif/exif-tag.c:215
+msgid "GPS Differential Correction"
+msgstr "Sửa chữa phân biệt GPS"
+
+#: libexif/exif-tag.c:216
+msgid ""
+"Indicates whether differential correction is applied to the GPS receiver."
+msgstr ""
+"Ngụ ý nếu chức năng sửa chữa phân biệt được áp dụng cho thiết bị nhận GPS "
+"hay không."
+
+#: libexif/exif-tag.c:220
+msgid "New Subfile Type"
+msgstr "Kiểu tập tin con mới"
+
+#: libexif/exif-tag.c:220
+msgid "A general indication of the kind of data contained in this subfile."
+msgstr "Sự chỉ chung về kiểu dữ liệu được chứa trong tập tin phụ này."
+
+#: libexif/exif-tag.c:222
+msgid "Image Width"
+msgstr "Rộng Ảnh"
+
+#: libexif/exif-tag.c:223
+msgid ""
+"The number of columns of image data, equal to the number of pixels per row. "
+"In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+"Số cột dữ liệu ảnh, bằng số điểm ảnh trong mỗi hàng. Trong dữ liệu đã nén "
+"JPEG, một dấu hiệu JPEG được dùng thay vào thẻ này."
+
+#: libexif/exif-tag.c:227
+msgid "Image Length"
+msgstr "Dài Ảnh"
+
+#: libexif/exif-tag.c:228
+msgid ""
+"The number of rows of image data. In JPEG compressed data a JPEG marker is "
+"used instead of this tag."
+msgstr ""
+"Số hàng dữ liệu ảnh. Trong dữ liệu đã nén JPEG, một dấu hiệu JPEG được dùng "
+"thay vào thẻ này."
+
+#: libexif/exif-tag.c:231
+msgid "Bits per Sample"
+msgstr "Bit/mẫu"
+
+#: libexif/exif-tag.c:232
+msgid ""
+"The number of bits per image component. In this standard each component of "
+"the image is 8 bits, so the value for this tag is 8. See also "
+"<SamplesPerPixel>. In JPEG compressed data a JPEG marker is used instead of "
+"this tag."
+msgstr ""
+"Số bit trong mỗi thành phần ảnh. Đối với tiêu chuẩn này, mỗi thành phần của "
+"ảnh chiếm 8 bit, thì giá trị của thẻ này là 8. Xem thêm <SamplesPerPixel> "
+"(mẫu trên địểm ảnh). Trong dữ liệu đã nén JPEG, một dấu hiệu JPEG được dùng "
+"thay vào thẻ này."
+
+#: libexif/exif-tag.c:237
+msgid "Compression"
+msgstr "Nén"
+
+#: libexif/exif-tag.c:238
+msgid ""
+"The compression scheme used for the image data. When a primary image is JPEG "
+"compressed, this designation is not necessary and is omitted. When "
+"thumbnails use JPEG compression, this tag value is set to 6."
+msgstr ""
+"Lược đồ nén được dùng cho dữ liệu ảnh. Khi một ảnh chính được nén dạng JPEG, "
+"sự chỉ rõ này không cần thiết nên bị bỏ đi. Khi hình thu nhỏ dùng nén JPEG, "
+"giá trị thẻ này được đặt là 6."
+
+#: libexif/exif-tag.c:244
+msgid "Photometric Interpretation"
+msgstr "Thông dịch Đo Ảnh chụp"
+
+#: libexif/exif-tag.c:245
+msgid ""
+"The pixel composition. In JPEG compressed data a JPEG marker is used instead "
+"of this tag."
+msgstr ""
+"Sự hợp thành điểm ảnh. Trong dữ liệu đã nén JPEG, một dấu hiệu JPEG được "
+"dùng thay vào thẻ này."
+
+#: libexif/exif-tag.c:249
+msgid "Fill Order"
+msgstr "Thứ tự Tô đầy"
+
+#: libexif/exif-tag.c:251
+msgid "Document Name"
+msgstr "Tên Tài liệu"
+
+#: libexif/exif-tag.c:253
+msgid "Image Description"
+msgstr "Mô tả Ảnh"
+
+#: libexif/exif-tag.c:254
+msgid ""
+"A character string giving the title of the image. It may be a comment such "
+"as \"1988 company picnic\" or the like. Two-bytes character codes cannot be "
+"used. When a 2-bytes code is necessary, the Exif Private tag <UserComment> "
+"is to be used."
+msgstr ""
+"Chuỗi ký tự chỉ tên ảnh. Nó có thể là chú thích như « Đi chơi với bạn bè ». "
+"Không thể sử dụng mã ký tự byte đôi. Khi mã byte đôi cần thiết, hãy dùng thẻ "
+"Exif Rieng <Người dùng ghi chú>."
+
+#: libexif/exif-tag.c:260
+msgid "Manufacturer"
+msgstr "Hãng chế tạo"
+
+#: libexif/exif-tag.c:261
+msgid ""
+"The manufacturer of the recording equipment. This is the manufacturer of the "
+"DSC, scanner, video digitizer or other equipment that generated the image. "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+"Hãng chế tạo thiết bị thu thanh. Nó là hãng chế tạo DSC, máy quét, bộ số tự "
+"hóa ảnh động hay thiết bị khác đã tạo ra ảnh. Khi trường trống, nó được xử "
+"lý là không rõ."
+
+#: libexif/exif-tag.c:267
+msgid "Model"
+msgstr "Mô hình"
+
+#: libexif/exif-tag.c:268
+msgid ""
+"The model name or model number of the equipment. This is the model name or "
+"number of the DSC, scanner, video digitizer or other equipment that "
+"generated the image. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Tên hay số mô hình của thiết bị. Giá trị này là tên hay số mô hình của DSC, "
+"máy quét, bộ số tự hóa ảnh động hay thiết bị khác đã tạo ra ảnh. Khi trường "
+"trống, nó được xử lý là không rõ."
+
+#: libexif/exif-tag.c:273
+msgid "Strip Offsets"
+msgstr "Hiệu số mảnh"
+
+#: libexif/exif-tag.c:274
+msgid ""
+"For each strip, the byte offset of that strip. It is recommended that this "
+"be selected so the number of strip bytes does not exceed 64 Kbytes. With "
+"JPEG compressed data this designation is not needed and is omitted. See also "
+"<RowsPerStrip> and <StripByteCounts>."
+msgstr ""
+"Cho mỗi mảnh, hiệu số byte của mảnh đó. Khuyên chọn nó để bảo đảm số byte "
+"mảnh không phải hơn 64 Kb. Đối với dữ liệu đã nén JPEG, không cần sự chỉ rõ "
+"này nên nó bị bỏ đi. Xem thêm <hàng trên mảnh> và <số byte mảnh>."
+
+#: libexif/exif-tag.c:280
+msgid "Orientation"
+msgstr "Hướng"
+
+#: libexif/exif-tag.c:281
+msgid "The image orientation viewed in terms of rows and columns."
+msgstr "Hướng của ảnh, theo hàng và cột."
+
+#: libexif/exif-tag.c:284
+msgid "Samples per Pixel"
+msgstr "Mẫu/Điểm ảnh"
+
+#: libexif/exif-tag.c:285
+msgid ""
+"The number of components per pixel. Since this standard applies to RGB and "
+"YCbCr images, the value set for this tag is 3. In JPEG compressed data a "
+"JPEG marker is used instead of this tag."
+msgstr ""
+"Số thành phần trên mỗi điểm ảnh. Vì tiêu chuẩn này áp dụng vào ảnh kiểu RGB "
+"và YCbCr, giá trị được đặt cho thẻ này là 3. Trong dữ liệu đã nén JPEG, một "
+"dấu hiệu JPEG được dùng thay vào thẻ này."
+
+#: libexif/exif-tag.c:290
+msgid "Rows per Strip"
+msgstr "Hàng/Mảnh"
+
+#: libexif/exif-tag.c:291
+msgid ""
+"The number of rows per strip. This is the number of rows in the image of one "
+"strip when an image is divided into strips. With JPEG compressed data this "
+"designation is not needed and is omitted. See also <StripOffsets> and "
+"<StripByteCounts>."
+msgstr ""
+"Số hàng trên mỗi mảnh, số hàng trong ảnh của một mãnh khi ảnh chia cho nhiều "
+"mảnh. Đối với dữ liệu đã nén JPEG, không cần sự chỉ rõ này nên nó bị bỏ đi. "
+"Xem them <Hiệu số mảnh> và <số byte mảnh>."
+
+#: libexif/exif-tag.c:297
+msgid "Strip Byte Count"
+msgstr "Byte/Mảnh"
+
+#: libexif/exif-tag.c:298
+msgid ""
+"The total number of bytes in each strip. With JPEG compressed data this "
+"designation is not needed and is omitted."
+msgstr ""
+"Tổng số byte trên mỗi mảnh. Trong dữ liệu đã nén JPEG, một dấu hiệu JPEG "
+"được dùng thay vào thẻ này."
+
+#: libexif/exif-tag.c:301
+msgid "X-Resolution"
+msgstr "Phân giải X"
+
+#: libexif/exif-tag.c:302
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageWidth> direction. "
+"When the image resolution is unknown, 72 [dpi] is designated."
+msgstr ""
+"Số điểm ảnh trên mỗi <đơn vị phân giải> về hướng <rộng ảnh>. Khi không biết "
+"độ phân giải của ảnh, giá trị mặc định là 72 [dpi, chấm trên mỗi insơ bình "
+"phương]."
+
+#: libexif/exif-tag.c:306
+msgid "Y-Resolution"
+msgstr "Phân giải Y"
+
+#: libexif/exif-tag.c:307
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageLength> direction. "
+"The same value as <XResolution> is designated."
+msgstr ""
+"Số điểm ảnh trên mỗi <đơn vị phân giải> về hướng <dài ảnh>. Khi không biết "
+"độ phân giải của ảnh, giá trị mặc định là 72 [dpi, chấm trên mỗi insơ bình "
+"phương]."
+
+#: libexif/exif-tag.c:311
+msgid "Planar Configuration"
+msgstr "Cấu hình Phẳng"
+
+#: libexif/exif-tag.c:312
+msgid ""
+"Indicates whether pixel components are recorded in a chunky or planar "
+"format. In JPEG compressed files a JPEG marker is used instead of this tag. "
+"If this field does not exist, the TIFF default of 1 (chunky) is assumed."
+msgstr ""
+"Ngụ ý nếu thành phần điểm ảnh được thu thanh trong định dạng kiểu từng đoạn "
+"hay phẳng. Trong dữ liệu đã nén JPEG, một dấu hiệu JPEG được dùng thay vào "
+"thẻ này. Nếu không có trường này, giả sử giá trị TIFF mặc định: 1 (kiểu từng "
+"đoạn)."
+
+#: libexif/exif-tag.c:317
+msgid "Resolution Unit"
+msgstr "Đơn vị Phân giải"
+
+#: libexif/exif-tag.c:318
+msgid ""
+"The unit for measuring <XResolution> and <YResolution>. The same unit is "
+"used for both <XResolution> and <YResolution>. If the image resolution is "
+"unknown, 2 (inches) is designated."
+msgstr ""
+"Đơn vị đo <độ phân giải X> và <độ phân giải Y> (cùng một đơn vị cho cả hai "
+"giá trị). Nếu không biết độ phân giải của ảnh, có đặt giá trị 2 (insơ)."
+
+#: libexif/exif-tag.c:323
+msgid "Transfer Function"
+msgstr "Hàm Truyền"
+
+#: libexif/exif-tag.c:324
+msgid ""
+"A transfer function for the image, described in tabular style. Normally this "
+"tag is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+"Hàm truyền cho ảnh, được diễn tả trong kiểu dáng bảng. Bình thường, không "
+"cần thẻ này, vì vùng màu được ghi rõ trong thẻ thông tin vùng màu (<vùng "
+"màu>)."
+
+#: libexif/exif-tag.c:328
+msgid "Software"
+msgstr "Phần mềm"
+
+#: libexif/exif-tag.c:329
+msgid ""
+"This tag records the name and version of the software or firmware of the "
+"camera or image input device used to generate the image. The detailed format "
+"is not specified, but it is recommended that the example shown below be "
+"followed. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Thẻ này ghi lưu tên và phiên bản của phần mềm hay phần vững của máy ảnh hay "
+"thiết bị ảnh được dùng để tạo ra ảnh. Không ghi rõ định dạng chi tiết, nhưng "
+"mà khuyên theo thí dụ được hiển thị bên dưới. Khi trường này trống, giá trị "
+"được xử lý là không rõ."
+
+#: libexif/exif-tag.c:336
+msgid "Date and Time"
+msgstr "Ngày và Giờ"
+
+#: libexif/exif-tag.c:337
+msgid ""
+"The date and time of image creation. In this standard (EXIF-2.1) it is the "
+"date and time the file was changed."
+msgstr ""
+"Ngày và giở tạo ảnh. Trong tiêu chuẩn này (EXIF-2.1), nó là ngày và giờ sửa "
+"đổi tập tin."
+
+#: libexif/exif-tag.c:340
+msgid "Artist"
+msgstr "Nghệ sĩ"
+
+#: libexif/exif-tag.c:341
+msgid ""
+"This tag records the name of the camera owner, photographer or image "
+"creator. The detailed format is not specified, but it is recommended that "
+"the information be written as in the example below for ease of "
+"Interoperability. When the field is left blank, it is treated as unknown."
+msgstr ""
+"Thẻ này ghi lưu tên của người sở hữu máy ảnh, nhà nhiếp ảnh hay người tạo "
+"ảnh. Không ghi rõ định dạng chi tiết, nhưng mà khuyên ghi thông tin theo thí "
+"dụ bên dưới, để làm dễ dàng thao thác với nhau. Khi trường này trống, giá "
+"trị được xử lý là không rõ."
+
+#: libexif/exif-tag.c:347 libexif/pentax/mnote-pentax-tag.c:113
+msgid "White Point"
+msgstr "Điểm Trắng"
+
+#: libexif/exif-tag.c:348
+msgid ""
+"The chromaticity of the white point of the image. Normally this tag is not "
+"necessary, since color space is specified in the color space information tag "
+"(<ColorSpace>)."
+msgstr ""
+"Sắc độ của điểm trắng của ảnh. Bình thường, không cần thẻ này, vì miền màu "
+"được ghi rõ trong thẻ thông tin miền màu (<ColorSpace>)."
+
+#: libexif/exif-tag.c:353
+msgid "Primary Chromaticities"
+msgstr "Sắc độ Chính"
+
+#: libexif/exif-tag.c:354
+msgid ""
+"The chromaticity of the three primary colors of the image. Normally this tag "
+"is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+"Sắc độ của ba màu chính của ảnh. Bình thường, không cần thẻ này, vì miền màu "
+"được ghi rõ trong thẻ thông tin miền màu (<ColorSpace>)."
+
+#: libexif/exif-tag.c:359
+msgid "Defined by Adobe Corporation to enable TIFF Trees within a TIFF file."
+msgstr ""
+"Được định nghĩa bởi Công ty Adobe để bật khả năng Cây TIFF ở trong tập tin "
+"TIFF."
+
+#: libexif/exif-tag.c:362
+msgid "Transfer Range"
+msgstr "Phạm vị Truyền"
+
+#: libexif/exif-tag.c:366
+msgid "JPEG Interchange Format"
+msgstr "Định dạng Hoán đổi JPEG"
+
+#: libexif/exif-tag.c:367
+msgid ""
+"The offset to the start byte (SOI) of JPEG compressed thumbnail data. This "
+"is not used for primary image JPEG data."
+msgstr ""
+"Hiệu số tới byte đầu (SOI) cũa dữ liệu hình thu nhỏ đã nén JPEG. Không dùng "
+"cho dữ liệu JPEG ảnh chính."
+
+#: libexif/exif-tag.c:372
+msgid "JPEG Interchange Format Length"
+msgstr "Độ dài Định dạng Hoán đổi JPEG"
+
+#: libexif/exif-tag.c:373
+msgid ""
+"The number of bytes of JPEG compressed thumbnail data. This is not used for "
+"primary image JPEG data. JPEG thumbnails are not divided but are recorded as "
+"a continuous JPEG bitstream from SOI to EOI. Appn and COM markers should not "
+"be recorded. Compressed thumbnails must be recorded in no more than 64 "
+"Kbytes, including all other data to be recorded in APP1."
+msgstr ""
+"Số byte dữ liệu hình thu nhỏ đã nén JPEG. Không dùng cho dữ liệu JPEG ảnh "
+"chính. Hình thu nhỏ JPEG không được chia ra, nhưng được thu thanh dạng luồng "
+"bit JPEG liên tục từ SOI đến EOI. Dấu hiệu Appn và COM không nên được thu "
+"thanh. Hình thu nhỏ đã nén phải được thu thanh ở trong 64 Kb, gồm các dữ "
+"liệu cần thu thanh trong APP1."
+
+#: libexif/exif-tag.c:382
+msgid "YCbCr Coefficients"
+msgstr "Hệ số YCbCr"
+
+#: libexif/exif-tag.c:383
+msgid ""
+"The matrix coefficients for transformation from RGB to YCbCr image data. No "
+"default is given in TIFF; but here the value given in \"Color Space "
+"Guidelines\", is used as the default. The color space is declared in a color "
+"space information tag, with the default being the value that gives the "
+"optimal image characteristics Interoperability this condition."
+msgstr ""
+"Những hệ số ma trận để chuyển đổi từ dữ liệu ảnh kiểu RGB sang YCbCr. Không "
+"có giá trị mặc định theo TIFF; ở đây dùng mặc định là giá trị đưa ra trong « "
+"Hướng dẫn Miền Màu ». Miền màu được khai báo trong một thẻ thông tin miền "
+"màu, với giá trị mặc định là giá trị cho phép thao tác với nhau đặc tuyến "
+"ảnh tốt nhất với điều kiện này."
+
+#: libexif/exif-tag.c:392
+msgid "YCbCr Sub-Sampling"
+msgstr "Phụ lấy mẫu YCbCr"
+
+#: libexif/exif-tag.c:393
+msgid ""
+"The sampling ratio of chrominance components in relation to the luminance "
+"component. In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+"Tỷ lệ lấy mẫu của thành phần độ màu so sánh với thành phần độ sáng. Trong dữ "
+"liệu đã nén JPEG, một dấu hiệu JPEG được dùng thay vào thẻ này."
+
+#: libexif/exif-tag.c:398
+msgid "YCbCr Positioning"
+msgstr "Định vị YCbCr"
+
+#: libexif/exif-tag.c:399
+msgid ""
+"The position of chrominance components in relation to the luminance "
+"component. This field is designated only for JPEG compressed data or "
+"uncompressed YCbCr data. The TIFF default is 1 (centered); but when Y:Cb:Cr "
+"= 4:2:2 it is recommended in this standard that 2 (co-sited) be used to "
+"record data, in order to improve the image quality when viewed on TV "
+"systems. When this field does not exist, the reader shall assume the TIFF "
+"default. In the case of Y:Cb:Cr = 4:2:0, the TIFF default (centered) is "
+"recommended. If the reader does not have the capability of supporting both "
+"kinds of <YCbCrPositioning>, it shall follow the TIFF default regardless of "
+"the value in this field. It is preferable that readers be able to support "
+"both centered and co-sited positioning."
+msgstr ""
+"Vị trí của thành phần độ màu so sánh với thành phần độ sáng. Trường này hoạt "
+"động chỉ cho dữ liệu đã nén JPEG hay cho dữ liệu YCbCr chưa nén. Giá trị "
+"TIFF mặc định là 1 (giữa lại); nhưng khi <Y:Cb:Cr = 4:2:2>, trong tiêu chuẩn "
+"này khuyên dùng 2 (định vị với nhau) để thu thanh dữ liệu, để tăng chất "
+"lượng ảnh khi xem trên hệ thống TV. Khi không có trường này, thiết bị đọc sẽ "
+"giả sử giá trị TIFF mặc định. Khi <Y:Cb:Cr = 4:2:0>, khuyên dùng giá trị "
+"TIFF mặc định (giữa lại). Nếu thiết bị đọc không có khả năng hỗ trợ cả hai "
+"kiểu <định vị YCbCr>, nó sẽ dùng giá trị TIFF mặc định, bỏ qua giá trị nào "
+"trong trường này. Tốt hơn khi thiết bị đọc hỗ trợ cả hai việc định vị giữa "
+"lại (centred) và định vị với nhau (co-sited)."
+
+#: libexif/exif-tag.c:414
+msgid "Reference Black/White"
+msgstr "Đen Trắng tham chiếu"
+
+#: libexif/exif-tag.c:415
+msgid ""
+"The reference black point value and reference white point value. No defaults "
+"are given in TIFF, but the values below are given as defaults here. The "
+"color space is declared in a color space information tag, with the default "
+"being the value that gives the optimal image characteristics "
+"Interoperability these conditions."
+msgstr ""
+"Giá trị điểm màu đen tham chiếu và giá trị điểm màu trắng tham chiếu. Không "
+"có giá trị TIFF mặc định, nhưng những giá trị bên dưới là mặc định trong "
+"trường hợp này. Miền màu được khai báo trong thẻ thông tin miền màu, với giá "
+"trị mặc định là giá trị cho phép thao tác với nhau đặc tuyến ảnh tốt nhất "
+"với điều kiện này."
+
+#: libexif/exif-tag.c:423
+msgid "XML Packet"
+msgstr "Gói tin XML"
+
+#: libexif/exif-tag.c:423
+msgid "XMP Metadata"
+msgstr "Siêu dữ liệu XMP"
+
+#: libexif/exif-tag.c:438 libexif/exif-tag.c:784
+msgid "CFA Pattern"
+msgstr "Mẫu CFA"
+
+#: libexif/exif-tag.c:439 libexif/exif-tag.c:785
+msgid ""
+"Indicates the color filter array (CFA) geometric pattern of the image sensor "
+"when a one-chip color area sensor is used. It does not apply to all sensing "
+"methods."
+msgstr ""
+"Ngụ ý mẫu hình học mảng lọc màu (CFA) của máy nhạy ảnh, khi dùng một máy "
+"nhạy vùng màu phiến tinh thể đơn. Không áp dụng vào mọi phương pháp nhạy."
+
+#: libexif/exif-tag.c:443
+msgid "Battery Level"
+msgstr "Cấp Pin"
+
+#: libexif/exif-tag.c:444
+msgid "Copyright"
+msgstr "Tác quyền"
+
+#: libexif/exif-tag.c:445
+msgid ""
+"Copyright information. In this standard the tag is used to indicate both the "
+"photographer and editor copyrights. It is the copyright notice of the person "
+"or organization claiming rights to the image. The Interoperability copyright "
+"statement including date and rights should be written in this field; e.g., "
+"\"Copyright, John Smith, 19xx. All rights reserved.\". In this standard the "
+"field records both the photographer and editor copyrights, with each "
+"recorded in a separate part of the statement. When there is a clear "
+"distinction between the photographer and editor copyrights, these are to be "
+"written in the order of photographer followed by editor copyright, separated "
+"by NULL (in this case, since the statement also ends with a NULL, there are "
+"two NULL codes) (see example 1). When only the photographer is given, it is "
+"terminated by one NULL code (see example 2). When only the editor copyright "
+"is given, the photographer copyright part consists of one space followed by "
+"a terminating NULL code, then the editor copyright is given (see example 3). "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+"Thông tin bản quyền. Trong tiêu chuẩn này, thẻ được dùng để ngụ ý bản quyền "
+"kiểu cả nhà nhiếp ảnh lẫn nhà soạn thảo đều. Nó là thông báo bản quyền của "
+"người hay tổ chức tuyên bố các quyền của ảnh đó. Câu bản quyền thao tác với "
+"nhau, gồm ngày và các quyền, nên được ghi vào trường này. Lấy thí dụ, « Bản "
+"quyền ©, Nguyễn Văn Tuấn, 2006, bảo lưu mọi quyền. » Trong tiêu chuẩn này, "
+"trường này thu thanh bản quyền kiểu cả nhà nhiếp ảnh lẫn nhà soạn thảo đều, "
+"với mỗi bản quyền được ghi lưu vào một phần câu riêng. Khi có sự phân biệt "
+"rõ giữa bản quyền kiểu nhà nhiếp ảnh và nhà soạn thảo, hai điều nên được ghi "
+"theo thứ tự bản quyền của nhà nhiếp ảnh đằng trước bản quyền của nhà soạn "
+"thảo, giới hạn bởi NULL (rỗng). (Trong trường hợp này, vì câu cũng kết thúc "
+"với NULL, có hai mã NULL [xem thí dụ 1]). Khi đưa ra chỉ bản quyền của nhà "
+"nhiếp ảnh, nó được chấm dứt bởi một mã NULL (xem thí dụ 2). Khi đưa ra chỉ "
+"bản quyền của nhà soạn thảo, nên ghi một dấu cách (cho phần nhà nhiếp ảnh), "
+"rồi mã NULL chấm dứt, rồi bản quyền của nhà soạn thảo (xem thí dụ 3). Khi "
+"trường còn trống, nó được xử lý là không rõ."
+
+#: libexif/exif-tag.c:467
+msgid "Exposure time, given in seconds (sec)."
+msgstr "Thời gian phơi bày, theo giây."
+
+#: libexif/exif-tag.c:469 libexif/pentax/mnote-pentax-tag.c:79
+msgid "F-Number"
+msgstr "Số F"
+
+#: libexif/exif-tag.c:470
+msgid "The F number."
+msgstr "Số F."
+
+#: libexif/exif-tag.c:475
+msgid "Image Resources Block"
+msgstr "Khối Tài nguyên Ảnh"
+
+#: libexif/exif-tag.c:477
+msgid ""
+"A pointer to the Exif IFD. Interoperability, Exif IFD has the same structure "
+"as that of the IFD specified in TIFF. ordinarily, however, it does not "
+"contain image data as in the case of TIFF."
+msgstr ""
+"Bộ trỏ tới IRD Exif. Đối với khả năng thao tác với nhau, IFD Exif có cùng "
+"một cấu trúc với IFD được ghi rõ trong TIFF. Tuy nhiên, bình thường nó không "
+"chứa dữ liệu ảnh như TIFF."
+
+#: libexif/exif-tag.c:485
+msgid "Exposure Program"
+msgstr "Chương trình Phơi nắng"
+
+#: libexif/exif-tag.c:486
+msgid ""
+"The class of the program used by the camera to set exposure when the picture "
+"is taken."
+msgstr ""
+"Hạng của chương trình được dùng bởi máy ảnh để đặt độ phơi sáng khi chụp ảnh."
+
+#: libexif/exif-tag.c:490
+msgid "Spectral Sensitivity"
+msgstr "Độ nhạy Quang phổ"
+
+#: libexif/exif-tag.c:491
+msgid ""
+"Indicates the spectral sensitivity of each channel of the camera used. The "
+"tag value is an ASCII string compatible with the standard developed by the "
+"ASTM Technical Committee."
+msgstr ""
+"Ngụ ý độ nhạy quang phổ của mỗi kênh của máy ảnh được dùng. Giá trị của thẻ "
+"là chuỗi ASCII tương thích với tiêu chuẩn được phát triển bởi Uỷ ban Kỹ "
+"thuật ASTM."
+
+#: libexif/exif-tag.c:496
+msgid "GPS Info IFD Pointer"
+msgstr "Con trỏ IFD thông tin GPS"
+
+#: libexif/exif-tag.c:497
+msgid ""
+"A pointer to the GPS Info IFD. The Interoperability structure of the GPS "
+"Info IFD, like that of Exif IFD, has no image data."
+msgstr ""
+"Bộ trỏ tới IFD Thông tin GPS. Cấu trúc thao tác với nhau của IFD Thông tin "
+"GPS, cùng với IFD Exif, không có dữ liệu ảnh."
+
+#: libexif/exif-tag.c:503
+msgid "ISO Speed Ratings"
+msgstr "Tỷ lệ tốc độ ISO"
+
+#: libexif/exif-tag.c:504
+msgid ""
+"Indicates the ISO Speed and ISO Latitude of the camera or input device as "
+"specified in ISO 12232."
+msgstr ""
+"Ngụ ý Tốc độ ISO và Độ Vĩ ISO của máy ảnh hay thiết bị nhập, như được ghi rõ "
+"trong ISO 12232."
+
+#: libexif/exif-tag.c:507
+msgid "Opto-Electronic Conversion Function"
+msgstr "Hàm chuyển đổi quang điện tử học"
+
+#: libexif/exif-tag.c:508
+msgid ""
+"Indicates the Opto-Electronic Conversion Function (OECF) specified in ISO "
+"14524. <OECF> is the relationship between the camera optical input and the "
+"image values."
+msgstr ""
+"Ngụ ý Hàm Chuyển đổi Quang-Điện (OECF) được ghi rõ trong ISO 14524. <OECF> "
+"là quan hệ giữa dữ liệu nhập quang của máy ảnh, và các giá trị ảnh."
+
+#: libexif/exif-tag.c:513
+msgid "Time Zone Offset"
+msgstr "Hiệu Múi Giờ"
+
+#: libexif/exif-tag.c:514
+msgid "Encodes time zone of camera clock relative to GMT."
+msgstr ""
+"Mã hoá múi giờ của đồng hồ máy ảnh tương ứng với UTC (Thời gian Thế giới)."
+
+#: libexif/exif-tag.c:515
+msgid "Exif Version"
+msgstr "Phiên bản Exif"
+
+#: libexif/exif-tag.c:516
+msgid ""
+"The version of this standard supported. Nonexistence of this field is taken "
+"to mean nonconformance to the standard."
+msgstr ""
+"Phiên bản tiêu chuẩn này được hỗ trợ. Nếu không có trường này, giả sử không "
+"tuân theo tiêu chuẩn."
+
+#: libexif/exif-tag.c:520
+msgid "Date and Time (Original)"
+msgstr "Ngày và Giờ (gốc)"
+
+#: libexif/exif-tag.c:521
+msgid ""
+"The date and time when the original image data was generated. For a digital "
+"still camera the date and time the picture was taken are recorded."
+msgstr ""
+"Ngày và giờ tạo ảnh gốc. Đối với máy ảnh tĩnh số, có ghi lưu ngày và giờ "
+"chụp ảnh."
+
+#: libexif/exif-tag.c:526
+msgid "Date and Time (Digitized)"
+msgstr "Ngày và Giờ (đã số hóa)"
+
+#: libexif/exif-tag.c:527
+msgid "The date and time when the image was stored as digital data."
+msgstr "Ngày tháng và thời gian lưu ảnh dưới dạng dữ liệu số."
+
+#: libexif/exif-tag.c:530
+msgid "Components Configuration"
+msgstr "Cấu hình Thành phần"
+
+#: libexif/exif-tag.c:531
+msgid ""
+"Information specific to compressed data. The channels of each component are "
+"arranged in order from the 1st component to the 4th. For uncompressed data "
+"the data arrangement is given in the <PhotometricInterpretation> tag. "
+"However, since <PhotometricInterpretation> can only express the order of Y, "
+"Cb and Cr, this tag is provided for cases when compressed data uses "
+"components other than Y, Cb, and Cr and to enable support of other sequences."
+msgstr ""
+"Thông tin đặc trưng cho dữ liệu đã nén. Những kênh của mỗi thành phần được "
+"sắp xếp theo thứ tự từ thành phần thứ nhất đến thứ tư. Đối với dữ liệu không "
+"được nén, cách sắp xếp dữ liệu được đưa ra trong thẻ <thông dịch đo ảnh "
+"chụp>. Tuy nhiên, vì thẻ <thông dịch đo ảnh chụp> có thể hiện được chỉ thứ "
+"tự của Y, CB và Cr, thẻ này được cung cấp cho các trường hợp mà dữ liệu đã "
+"nén dùng thành phần khác với Y, Cb vra Cr, và để hiệu lực khả năng hỗ trợ "
+"các dãy khác."
+
+#: libexif/exif-tag.c:541
+msgid "Compressed Bits per Pixel"
+msgstr "Số bit đã nén/điểm ảnh"
+
+#: libexif/exif-tag.c:542
+msgid ""
+"Information specific to compressed data. The compression mode used for a "
+"compressed image is indicated in unit bits per pixel."
+msgstr ""
+"Thông tin đặc trưng cho dữ liệu đã nén. Chế độ nén được dùng cho ảnh đã nén "
+"được ngụ ý theo đơn vị bit trên mỗi điểm ảnh."
+
+#: libexif/exif-tag.c:546 libexif/olympus/mnote-olympus-tag.c:123
+msgid "Shutter Speed"
+msgstr "Tốc độ Chập"
+
+#: libexif/exif-tag.c:547
+msgid ""
+"Shutter speed. The unit is the APEX (Additive System of Photographic "
+"Exposure) setting."
+msgstr ""
+"Tốc độ của chập. Đơn vị là thiết lập APEX (hệ thống phơi sáng chụp ảnh kiểu "
+"cộng vào)."
+
+#: libexif/exif-tag.c:551
+msgid "The lens aperture. The unit is the APEX value."
+msgstr "Lỗ ống kính. Đơn vị là giá trị APEX."
+
+#: libexif/exif-tag.c:553
+msgid "Brightness"
+msgstr "Độ sáng"
+
+#: libexif/exif-tag.c:554
+msgid ""
+"The value of brightness. The unit is the APEX value. Ordinarily it is given "
+"in the range of -99.99 to 99.99."
+msgstr ""
+"Giá trị của độ sáng. Đơn vị là giá trị APEX. Bình thường, nó được đưa ra "
+"trong phạm vị <-99.99 ... 99.99>."
+
+#: libexif/exif-tag.c:558
+msgid "Exposure Bias"
+msgstr "Khuynh hướng phơi sáng"
+
+#: libexif/exif-tag.c:559
+msgid ""
+"The exposure bias. The units is the APEX value. Ordinarily it is given in "
+"the range of -99.99 to 99.99."
+msgstr ""
+"Khuynh hướng của sự phơi sáng. Đơn vị là giá trị APEX. Bình thường, nó được "
+"đưa ra trong phạm vị « -99.99 ... 99.99 »."
+
+#: libexif/exif-tag.c:562
+msgid "Maximum Aperture Value"
+msgstr "Giá trị Lỗ Tối đa"
+
+#: libexif/exif-tag.c:563
+msgid ""
+"The smallest F number of the lens. The unit is the APEX value. Ordinarily it "
+"is given in the range of 00.00 to 99.99, but it is not limited to this range."
+msgstr ""
+"Số F nhỏ nhất của ống kính. Đơn vị là giá trị APEX. Bình thường, nó được đưa "
+"ra trong phạm vị <00.00 ... 99.99>, nhưng mà nó vẫn không bị giới hạn thành "
+"phạm vị này."
+
+#: libexif/exif-tag.c:568
+msgid "Subject Distance"
+msgstr "Tầm Chủ Đề"
+
+#: libexif/exif-tag.c:569
+msgid "The distance to the subject, given in meters."
+msgstr "Khoảng cách tới chủ đề, ghi theo mét."
+
+#: libexif/exif-tag.c:572
+msgid "The metering mode."
+msgstr "Chế độ đo."
+
+#: libexif/exif-tag.c:574
+msgid "Light Source"
+msgstr "Nguồn ánh sáng"
+
+#: libexif/exif-tag.c:575
+msgid "The kind of light source."
+msgstr "Kiểu nguồn ánh dáng."
+
+#: libexif/exif-tag.c:578
+msgid ""
+"This tag is recorded when an image is taken using a strobe light (flash)."
+msgstr "Thẻ này được ghi lưu khi chụp ảnh bằng đèn nháy."
+
+#: libexif/exif-tag.c:582
+msgid ""
+"The actual focal length of the lens, in mm. Conversion is not made to the "
+"focal length of a 35 mm film camera."
+msgstr ""
+"Tiêu cự thật của ống kính, theo milimét. Không chuyển đổi sang tiêu cự của "
+"máy ảnh phim 35mm."
+
+#: libexif/exif-tag.c:585
+msgid "Subject Area"
+msgstr "Diện tích chủ thể"
+
+#: libexif/exif-tag.c:586
+msgid ""
+"This tag indicates the location and area of the main subject in the overall "
+"scene."
+msgstr ""
+"Thẻ này ngụ ý vị trí và diện tích của chủ thể chính trong toàn bộ cảnh."
+
+#: libexif/exif-tag.c:590
+msgid "TIFF/EP Standard ID"
+msgstr "ID chuẩn TIFF/EP"
+
+#: libexif/exif-tag.c:591
+msgid "Maker Note"
+msgstr "Hãng chế tạo ghi chú"
+
+#: libexif/exif-tag.c:592
+msgid ""
+"A tag for manufacturers of Exif writers to record any desired information. "
+"The contents are up to the manufacturer."
+msgstr ""
+"Thẻ cho hãng chế tạo bộ ghi Exif, để ghi lưu thông tin nào đã muốn. Nội dung "
+"theo ý kiến của mỗi hãng chế tạo."
+
+#: libexif/exif-tag.c:595
+msgid "User Comment"
+msgstr "Người dùng Ghi chú"
+
+#: libexif/exif-tag.c:596
+msgid ""
+"A tag for Exif users to write keywords or comments on the image besides "
+"those in <ImageDescription>, and without the character code limitations of "
+"the <ImageDescription> tag. The character code used in the <UserComment> tag "
+"is identified based on an ID code in a fixed 8-byte area at the start of the "
+"tag data area. The unused portion of the area is padded with NULL (\"00.h"
+"\"). ID codes are assigned by means of registration. The designation method "
+"and references for each character code are defined in the specification. The "
+"value of CountN is determined based on the 8 bytes in the character code "
+"area and the number of bytes in the user comment part. Since the TYPE is not "
+"ASCII, NULL termination is not necessary. The ID code for the <UserComment> "
+"area may be a Defined code such as JIS or ASCII, or may be Undefined. The "
+"Undefined name is UndefinedText, and the ID code is filled with 8 bytes of "
+"all \"NULL\" (\"00.H\"). An Exif reader that reads the <UserComment> tag "
+"must have a function for determining the ID code. This function is not "
+"required in Exif readers that do not use the <UserComment> tag. When a "
+"<UserComment> area is set aside, it is recommended that the ID code be ASCII "
+"and that the following user comment part be filled with blank characters [20."
+"H]."
+msgstr ""
+"Thẻ này cho phép người dùng Exif ghi từ khoá hay ghi chú về ảnh, thêm vào "
+"thông tin trong <ImageDescription> (mô tả ảnh), và không có hạn chế mã ký tự "
+"của thẻ <ImageDescription>. Mã ký tự dùng trong thẻ <UserComment> (Người "
+"dùng Ghi chú) được nhận diện dựa vào một mã số (ID) trong vùng 8-byte cố "
+"định tại đầu vùng dữ liệu thẻ. Phần vùng không dùng được đệm bằng NULL (vô "
+"giá trị: 00.h). Mã số được gán bằng cách đăng ký. Phương pháp chỉ rõ và tham "
+"chiếu đến mỗi mã ký tự được đưa ra trong đặc tả. Giá trị của CountN được "
+"tính dựa vào 8 byte trong vùng mã ký tự và số các byte trong phần người dùng "
+"ghi chú. Vì TYPE (kiểu) không phải là ASCII, không cần chấm dứt bằng NULL "
+"(vô giá trị). Mã số cho vùng <UserComment> có thẻ là mã Đã Định Nghĩa như "
+"JIS hay ASCII, hoặc có thẻ là Chưa Định Nghĩa. Tên Chưa Định Nghĩa là "
+"UndefinedText, và mã số được điền vào bằng 8 byte cả NULL (« 00.H »). Trình "
+"đọc Exif mà đọc thẻ <UserComment> phải có hàm quyết định mã số. Hàm này "
+"không cần thiết trong trình đọc Exif không dùng thẻ <UserComment>. Khi vùng "
+"<UserComment> được dành riêng, khuyên dùng mã số kiểu ASCII, và phần người "
+"dùng ghi chú mà theo sau được điền vào bằng ký tự trắng [20.H]."
+
+#: libexif/exif-tag.c:619
+msgid "Sub-second Time"
+msgstr "Thời gian dưới giây"
+
+#: libexif/exif-tag.c:620
+msgid "A tag used to record fractions of seconds for the <DateTime> tag."
+msgstr "Thẻ dùng để ghi lưu phần giây cho thẻ <DateTime> (Ngày Giờ)."
+
+#: libexif/exif-tag.c:624
+msgid "Sub-second Time (Original)"
+msgstr "Thời gian dưới giây (gốc)"
+
+#: libexif/exif-tag.c:625
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeOriginal> tag."
+msgstr ""
+"Thẻ dùng để ghi lưu phần giây cho thẻ <DateTimeOriginal> (Ngày Giờ Gốc)."
+
+#: libexif/exif-tag.c:629
+msgid "Sub-second Time (Digitized)"
+msgstr "Thời gian dưới giây (đã số hóa)"
+
+#: libexif/exif-tag.c:630
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeDigitized> tag."
+msgstr ""
+"Thẻ dùng để ghi lưu phần giây cho thẻ <DateTimeDigitized> (Ngày Giờ đã Số "
+"hoá)."
+
+#: libexif/exif-tag.c:634
+msgid "XP Title"
+msgstr "Tựa XP"
+
+#: libexif/exif-tag.c:635
+msgid "A character string giving the title of the image, encoded in UTF-16LE."
+msgstr "Một chuỗi ký tự đưa ra tựa đề của ảnh, mã hoá theo UTF-16LE."
+
+#: libexif/exif-tag.c:639
+msgid "XP Comment"
+msgstr "Ghi chú XP"
+
+#: libexif/exif-tag.c:640
+msgid ""
+"A character string containing a comment about the image, encoded in UTF-16LE."
+msgstr "Một chuỗi ký tự chứa ghi chú về ảnh, mã hoá theo UTF-16LE."
+
+#: libexif/exif-tag.c:644
+msgid "XP Author"
+msgstr "Tác giả XP"
+
+#: libexif/exif-tag.c:645
+msgid ""
+"A character string containing the name of the image creator, encoded in UTF-"
+"16LE."
+msgstr "Một chuỗi ký tự chứa tên của người tạo ảnh, mã hoá theo UTF-16LE."
+
+#: libexif/exif-tag.c:649
+msgid "XP Keywords"
+msgstr "Từ khoá XP"
+
+#: libexif/exif-tag.c:650
+msgid ""
+"A character string containing key words describing the image, encoded in UTF-"
+"16LE."
+msgstr "Một chuỗi ký tự chứa từ khoá diễn tả ảnh, mã hoá theo UTF-16LE."
+
+#: libexif/exif-tag.c:654
+msgid "XP Subject"
+msgstr "Chủ đề XP"
+
+#: libexif/exif-tag.c:655
+msgid "A character string giving the image subject, encoded in UTF-16LE."
+msgstr "Một chuỗi ký tự đưa ra chủ đề của ảnh, mã hoá theo UTF-16LE."
+
+#: libexif/exif-tag.c:659
+msgid "The FlashPix format version supported by a FPXR file."
+msgstr "Phiên bản định dạng FlashPix được hỗ trợ bởi tập tin FPXR."
+
+#: libexif/exif-tag.c:661 libexif/pentax/mnote-pentax-tag.c:102
+msgid "Color Space"
+msgstr "Miền màu"
+
+#: libexif/exif-tag.c:662
+msgid ""
+"The color space information tag is always recorded as the color space "
+"specifier. Normally sRGB (=1) is used to define the color space based on the "
+"PC monitor conditions and environment. If a color space other than sRGB is "
+"used, Uncalibrated (=FFFF.H) is set. Image data recorded as Uncalibrated can "
+"be treated as sRGB when it is converted to FlashPix."
+msgstr ""
+"Thẻ thông tin miền màu luôn luôn được ghi lưu như là bộ ghi rõ miền màu. "
+"Bình thường, <sRGB (=1)> được dùng để xác định miền màu dựa vào điều kiện "
+"màn hình và môi trường máy tính. Dùng miền màu khác với sRGB thì Chưa định "
+"chuẩn (=FFFF.H) được đặt. Dữ liệu ảnh được ghi lưu dạng Chưa định chuẩn có "
+"thể được xử lý dạng sRGB khi được chuyển đổi sang FlashPix."
+
+#: libexif/exif-tag.c:670
+msgid "Pixel X Dimension"
+msgstr "Điểm ảnh chiều X"
+
+#: libexif/exif-tag.c:671
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid width of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file."
+msgstr ""
+"Thông tin đặc trưng cho dữ liệu đã nén. Khi ghi lưu tập tin đã nén, độ rộng "
+"hợp lệ của ảnh có nghĩa phải được ghi lưu trong thẻ này, bất chấp có dữ liệu "
+"đệm hay dấu hiệu sở khởi lại. Không nên có thẻ này trong tập tin không đã "
+"nén."
+
+#: libexif/exif-tag.c:677
+msgid "Pixel Y Dimension"
+msgstr "Điểm ảnh chiều Y"
+
+#: libexif/exif-tag.c:678
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid height of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file. Since data padding is unnecessary in the "
+"vertical direction, the number of lines recorded in this valid image height "
+"tag will in fact be the same as that recorded in the SOF."
+msgstr ""
+"Thông tin đặc trưng cho dữ liệu đã nén. Khi ghi lưu tập tin đã nén, độ cao "
+"hợp lệ của ảnh có nghĩa phải được ghi lưu trong thẻ này, bất chấp có dữ liệu "
+"đệm hay dấu hiệu sở khởi lại. Không nên có thẻ này trong tập tin không nén. "
+"Vì không cần đệm dữ liệu về hướng dọc, số các dòng được ghi lưu trong thẻ độ "
+"cao ảnh hợp lệ này thực sự cùng một số với số được ghi lưu trong SOF."
+
+#: libexif/exif-tag.c:688
+msgid "Related Sound File"
+msgstr "Tập tin âm thanh liên quan"
+
+#: libexif/exif-tag.c:689
+#, fuzzy
+msgid ""
+"This tag is used to record the name of an audio file related to the image "
+"data. The only relational information recorded here is the Exif audio file "
+"name and extension (an ASCII string consisting of 8 characters + '.' + 3 "
+"characters). The path is not recorded. Stipulations on audio and file naming "
+"conventions are defined in the specification. When using this tag, audio "
+"files must be recorded in conformance to the Exif audio format. Writers are "
+"also allowed to store the data such as Audio within APP2 as FlashPix "
+"extension stream data. The mapping of Exif image files and audio files is "
+"done in any of three ways, [1], [2] and [3]. If multiple files are mapped to "
+"one file as in [2] or [3], the above format is used to record just one audio "
+"file name. If there are multiple audio files, the first recorded file is "
+"given. In the case of [3], for example, for the Exif image file \"DSC00001."
+"JPG\" only  \"SND00001.WAV\" is given as the related Exif audio file. When "
+"there are three Exif audio files \"SND00001.WAV\", \"SND00002.WAV\" and "
+"\"SND00003.WAV\", the Exif image file name for each of them, \"DSC00001.JPG"
+"\", is indicated. By combining multiple relational information, a variety of "
+"playback possibilities can be supported. The method of using relational "
+"information is left to the implementation on the playback side. Since this "
+"information is an ASCII character string, it is terminated by NULL. When "
+"this tag is used to map audio files, the relation of the audio file to image "
+"data must also be indicated on the audio file end."
+msgstr ""
+"Thẻ này dùng để ghi lưu tên tập tin âm thanh tương ứng với dữ liệu ảnh. "
+"Thông tin tương ứng duy nhất được ghi lưu vào đây là tên và phần mở rộng của "
+"tập tin âm thanh Exif (một chuỗi ASCII gồm 8 ký tự cộng dấu chấm cộng 3 ký "
+"tự: « kkkkkkkk.kkk »). Không ghi lưu đường dẫn đến tập tin đó. Đặc tả cũng "
+"cung cấp quy ước đặt tên tập tin và âm thanh. Khi dùng thẻ này, tập tin âm "
+"thanh phải được thu với điều kiện của định dạng âm thanh Exif. Bộ ghi cũng "
+"được phép lưu dữ liệu như âm thanh ở trong APP2, dạng dữ liệu luồng phần mở "
+"rộng FlashPix. Tập tin âm thanh phải được thu với điều kiện của định dạng âm "
+"thanh Exif. Việc ánh xạ tập tin kiểu ảnh và âm thanh Exif được thực hiện "
+"bằng một của ba cách, [1], [2] và [3]. Nếu nhiều tập tin được ánh xạ tới "
+"cùng một tập tin như trong [2] hay [3], định dạng trên được dùng để ghi lưu "
+"chỉ một tên tập tin âm thanh. Trong trường hợp [3], lấy thí dụ, đối với tập "
+"tin ảnh Exif « DSC00001.JPG », chỉ đưa ra « SND00001.WAV » như là tập tin âm "
+"thanh Exif tương ứng. Khi có ba tập tin âm thanh Exif, « SND00001.WAV », « "
+"SND00002.WAV » và « SND00003.WAV », có ngụ ý cùng một tên tập tin ảnh Exif (« "
+"DSC00001.JPG ») cho ba tập tin đó. Bằng cách hợp nhất nhiều thông tin tương "
+"ứng khác nhau, cũng có thể hỗ trợ nhiều khả năng phát lại khác nhau. Phương "
+"pháp sử dụng thông tin có quan hệ thì nhờ sự thực hiện bên chức năng phát "
+"lại. Vì thông tin này nằm trong một chuỗi ký tự ASCII, nó được NULL chấm "
+"dứt. Khi thẻ này được dùng để ánh xạ tập tin kiểu âm thanh, quan hệ giữa tập "
+"tin âm thanh và dữ liệu ảnh cũng phải được ngụ ý bên tập tin âm thanh."
+
+#: libexif/exif-tag.c:719
+msgid "Interoperability IFD Pointer"
+msgstr "Con trỏ IFD khả năng thao tác với nhau"
+
+#: libexif/exif-tag.c:720
+msgid ""
+"Interoperability IFD is composed of tags which stores the information to "
+"ensure the Interoperability and pointed by the following tag located in Exif "
+"IFD. The Interoperability structure of Interoperability IFD is the same as "
+"TIFF defined IFD structure but does not contain the image data "
+"characteristically compared with normal TIFF IFD."
+msgstr ""
+"IFD khả năng thao tác với nhau được tạo từ nhiều thẻ lưu thông tin để bảo "
+"đảm khả năng thao tác với nhau, và được chỉ bởi thẻ đằng sau, trong IFD "
+"Exif. Cấu trúc thao tác với nhau của IFD thao tác với nhau là cùng một cấu "
+"trúc với IFD đã định nghĩa TIFF, nhưng không chứa dữ liệu ảnh thường được so "
+"sánh với IFD TIFF chuẩn."
+
+#: libexif/exif-tag.c:729
+msgid "Flash Energy"
+msgstr "Năng lượng đèn nháy"
+
+#: libexif/exif-tag.c:730
+msgid ""
+"Indicates the strobe energy at the time the image is captured, as measured "
+"in Beam Candle Power Seconds (BCPS)."
+msgstr ""
+"Ngụ ý năng lượng của đèn nháy vào lúc chụp ảnh, theo BCPS (giây năng lượng "
+"cây nến tia)"
+
+#: libexif/exif-tag.c:734
+msgid "Spatial Frequency Response"
+msgstr "Đáp ứng tần số không gian"
+
+#: libexif/exif-tag.c:735
+msgid ""
+"This tag records the camera or input device spatial frequency table and SFR "
+"values in the direction of image width, image height, and diagonal "
+"direction, as specified in ISO 12233."
+msgstr ""
+"Thẻ này ghi lưu bảng tần số không gian và các giá trị SFR của máy ảnh hay "
+"thiết bị nhập, về hướng độ rộng ảnh, độ cao ảnh và hướng chéo, như được ghi "
+"rõ trong ISO 12233."
+
+#: libexif/exif-tag.c:741
+msgid "Focal Plane X-Resolution"
+msgstr "Phân giải X phẳng tiêu"
+
+#: libexif/exif-tag.c:742
+msgid ""
+"Indicates the number of pixels in the image width (X) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+"Ngụ ý số điểm ảnh về hướng độ rộng ảnh (X) trên mỗi <đơn vị độ phân giải "
+"phằng tiêu> trên phẳng tiêu của máy ảnh."
+
+#: libexif/exif-tag.c:746
+msgid "Focal Plane Y-Resolution"
+msgstr "Phân giải Y phẳng tiêu"
+
+#: libexif/exif-tag.c:747
+msgid ""
+"Indicates the number of pixels in the image height (V) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+"Ngụ ý số điểm ảnh về hướng độ cao ảnh (Y) trên mỗi <đơn vị độ phân giải "
+"phằng tiêu> trên phẳng tiêu của máy ảnh."
+
+#: libexif/exif-tag.c:751
+msgid "Focal Plane Resolution Unit"
+msgstr "Đơn vị độ phân giải phẳng tiêu"
+
+#: libexif/exif-tag.c:752
+msgid ""
+"Indicates the unit for measuring <FocalPlaneXResolution> and "
+"<FocalPlaneYResolution>. This value is the same as the <ResolutionUnit>."
+msgstr ""
+"Ngụ ý đơn vị để đo <độ phân giải X phẳng tiêu> và <độ phân giải Y phẳng "
+"tiêu>. Giá trị này bằng <đơn vị độ phân giải>."
+
+#: libexif/exif-tag.c:757
+msgid "Subject Location"
+msgstr "Vị trí chủ thể"
+
+#: libexif/exif-tag.c:758
+msgid ""
+"Indicates the location of the main subject in the scene. The value of this "
+"tag represents the pixel at the center of the main subject relative to the "
+"left edge, prior to rotation processing as per the <Rotation> tag. The first "
+"value indicates the X column number and the second indicates the Y row "
+"number."
+msgstr ""
+"Ngụ ý vị trí của chủ thể chính trong cảnh. Giá trị của thẻ này thể hiện điểm "
+"tại tâm của chủ thể chính, tương ứng với cạnh bên trái, trước khi xử lý độ "
+"xoay tùy theo thẻ <độ xoay>. Giá trị thứ nhất ngụ ý số hiệu cột X, còn giá "
+"trị thứ hai ngụ ý số hiệu hàng Y."
+
+#: libexif/exif-tag.c:765
+msgid "Exposure Index"
+msgstr "Chỉ số phơi sáng"
+
+#: libexif/exif-tag.c:766
+msgid ""
+"Indicates the exposure index selected on the camera or input device at the "
+"time the image is captured."
+msgstr ""
+"Ngụ ý chỉ số phơi sáng đã chọn trên máy ảnh hay thiết bị nhập vào lúc chụp "
+"ảnh."
+
+#: libexif/exif-tag.c:769
+msgid "Sensing Method"
+msgstr "Phương pháp nhạy"
+
+#: libexif/exif-tag.c:770
+msgid "Indicates the image sensor type on the camera or input device."
+msgstr "Ngụ ý kiểu máy nhạy ảnh trên máy ảnh hay thiết bị nhập."
+
+#: libexif/exif-tag.c:773 libexif/fuji/mnote-fuji-tag.c:64
+msgid "File Source"
+msgstr "Nguồn tập tin"
+
+#: libexif/exif-tag.c:774
+msgid ""
+"Indicates the image source. If a DSC recorded the image, the tag value of "
+"this tag always be set to 3, indicating that the image was recorded on a DSC."
+msgstr ""
+"Ngụ ý nguồn ảnh. Nếu DSC đã ghi lưu ảnh đó, giá trị thẻ của thẻ này phải "
+"luôn được đặt thành 3, ngụ ý là ảnh được ghi lưu trên DSC."
+
+#: libexif/exif-tag.c:778
+msgid "Scene Type"
+msgstr "Kiểu cảnh"
+
+#: libexif/exif-tag.c:779
+msgid ""
+"Indicates the type of scene. If a DSC recorded the image, this tag value "
+"must always be set to 1, indicating that the image was directly photographed."
+msgstr ""
+"Ngụ ý kiểu cảnh. Nếu DSC đã ghi lưu ảnh đó, giá trị thẻ của thẻ này phải "
+"luôn được đặt là 1, ngụ ý là ảnh đã được chụp ảnh một cách trực tiếp."
+
+#: libexif/exif-tag.c:789
+msgid "Custom Rendered"
+msgstr "Đã vẽ tự chọn"
+
+#: libexif/exif-tag.c:790
+msgid ""
+"This tag indicates the use of special processing on image data, such as "
+"rendering geared to output. When special processing is performed, the reader "
+"is expected to disable or minimize any further processing."
+msgstr ""
+"Thẻ này ngụ ý dữ liệu ảnh đã được xử lý một cách đặc biệt, v.d. được vẽ "
+"thích hợp với kết xuất. Khi việc xử lý đặc biệt đã được thực hiện, ngờ bộ "
+"đọc tắt hoặc tối thiểu hoá việc xử lý thêm nào."
+
+#: libexif/exif-tag.c:796
+msgid ""
+"This tag indicates the exposure mode set when the image was shot. In auto-"
+"bracketing mode, the camera shoots a series of frames of the same scene at "
+"different exposure settings."
+msgstr ""
+"Thẻ này ngụ ý chế độ phơi sáng được đắt vào lúc chụp ảnh. Trong chế độ tự "
+"động định vị ảnh giữa ngoặc, máy ảnh chụp một dãy khung của cùng một cảnh "
+"tại một số cấp phơi sáng khác nhau."
+
+#: libexif/exif-tag.c:801
+msgid "This tag indicates the white balance mode set when the image was shot."
+msgstr "Thẻ này ngụ ý chế độ cán cân trắng được đặt vào lúc chụp ảnh."
+
+#: libexif/exif-tag.c:805
+msgid "Digital Zoom Ratio"
+msgstr "Tỷ lệ phóng to số"
+
+#: libexif/exif-tag.c:806
+msgid ""
+"This tag indicates the digital zoom ratio when the image was shot. If the "
+"numerator of the recorded value is 0, this indicates that digital zoom was "
+"not used."
+msgstr ""
+"Thẻ này ngụ ý tỷ lệ phóng to số vào lúc chụp ảnh. Nếu tử số của giá trị đã "
+"ghi lưu là 0, khả năng phóng to số đã không dùng."
+
+#: libexif/exif-tag.c:811
+msgid "Focal Length in 35mm Film"
+msgstr "Tiêu cự trên phim 35mm"
+
+#: libexif/exif-tag.c:812
+msgid ""
+"This tag indicates the equivalent focal length assuming a 35mm film camera, "
+"in mm. A value of 0 means the focal length is unknown. Note that this tag "
+"differs from the FocalLength tag."
+msgstr ""
+"Thẻ này ngụ ý tiêu dự tương đương, giả sử máy ảnh phim 35 mm, theo milimét. "
+"Giá trị 0 có nghĩa là không biết tiêu cự. Ghi chú rằng thẻ này khác với thẻ "
+"FocalLength (tiêu cự)."
+
+#: libexif/exif-tag.c:818
+msgid "Scene Capture Type"
+msgstr "Kiểu bắt cảnh"
+
+#: libexif/exif-tag.c:819
+msgid ""
+"This tag indicates the type of scene that was shot. It can also be used to "
+"record the mode in which the image was shot. Note that this differs from the "
+"scene type <SceneType> tag."
+msgstr ""
+"Thẻ này ngụ ý kiểu cảnh đã chụp. Cũng có thể sử dụng nó để ghi lưu chế độ "
+"chụp ảnh. Ghi chú rằng nó khác với thẻ <SceneType> (kiểu cảnh)."
+
+#: libexif/exif-tag.c:824
+msgid "Gain Control"
+msgstr "Điều khiển Lấn chiếm"
+
+#: libexif/exif-tag.c:825
+msgid "This tag indicates the degree of overall image gain adjustment."
+msgstr "Thẻ này ngụ ý độ điều chỉnh lấn chiếm ảnh toàn bộ."
+
+#: libexif/exif-tag.c:829
+msgid ""
+"This tag indicates the direction of contrast processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Thẻ này ngụ ý hướng xử lý độ tương phản được áp dụng bởi máy ảnh vào lúc "
+"chụp ảnh."
+
+#: libexif/exif-tag.c:833
+msgid ""
+"This tag indicates the direction of saturation processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Thẻ này ngụ ý hướng xử lý độ bão hoà được áp dụng bởi máy ảnh vào lúc chụp "
+"ảnh."
+
+#: libexif/exif-tag.c:837
+msgid ""
+"This tag indicates the direction of sharpness processing applied by the "
+"camera when the image was shot."
+msgstr ""
+"Thẻ này ngụ ý hướng xử lý độ sắc được áp dụng bởi máy ảnh vào lúc chụp ảnh."
+
+#: libexif/exif-tag.c:841
+msgid "Device Setting Description"
+msgstr "Mô tả thiết lập thiết bị"
+
+#: libexif/exif-tag.c:842
+msgid ""
+"This tag indicates information on the picture-taking conditions of a "
+"particular camera model. The tag is used only to indicate the picture-taking "
+"conditions in the reader."
+msgstr ""
+"Thẻ này ngụ ý thông tin về những điều kiện chụp ảnh của một mô hình máy ảnh "
+"nào đó. Thẻ này dùng chỉ để ngụ ý những điều kiện chụp ảnh trong bộ đọc."
+
+#: libexif/exif-tag.c:848
+msgid "Subject Distance Range"
+msgstr "Phạm vị khoảng cách chủ thể"
+
+#: libexif/exif-tag.c:849
+msgid "This tag indicates the distance to the subject."
+msgstr "Thẻ này ngụ ý khoảng cách tới chủ thể."
+
+#: libexif/exif-tag.c:851
+msgid "Image Unique ID"
+msgstr "ID ảnh duy nhất"
+
+#: libexif/exif-tag.c:852
+msgid ""
+"This tag indicates an identifier assigned uniquely to each image. It is "
+"recorded as an ASCII string equivalent to hexadecimal notation and 128-bit "
+"fixed length."
+msgstr ""
+"Thẻ này ngụ ý dấu nhận diện được gán một cách duy nhất cho mỗi ảnh. Nó được "
+"ghi lưu dạng chuỗi  ASCII tương tương với cách ghi hệ thập lục phân và độ "
+"dài cố định 12 -bit."
+
+#: libexif/exif-tag.c:857
+msgid "Gamma"
+msgstr "Gamma (γ)"
+
+#: libexif/exif-tag.c:858
+msgid "Indicates the value of coefficient gamma."
+msgstr "Ngụ ý giá trị của gamma hệ số."
+
+#: libexif/exif-tag.c:860
+msgid "PRINT Image Matching"
+msgstr "Khớp ảnh PRINT"
+
+#: libexif/exif-tag.c:861
+msgid "Related to Epson's PRINT Image Matching technology"
+msgstr "Liên quan đến kỹ thuật khớp ảnh PRINT của công ty Epson"
+
+#: libexif/exif-tag.c:863
+msgid "Padding"
+msgstr "Đệm"
+
+#: libexif/exif-tag.c:864
+msgid ""
+"This tag reserves space that can be reclaimed later when additional metadata "
+"are added. New metadata can be written in place by replacing this tag with a "
+"smaller data element and using the reclaimed space to store the new or "
+"expanded metadata tags."
+msgstr ""
+"Thẻ này dành riêng sức chứa có thể gán lại về sau khi thêm siêu dữ liệu. "
+"Siêu dữ liệu mới có thể được ghi lại tại chỗ bằng cách thay thế thẻ này bằng "
+"một phần tử dữ liệu nhỏ hơn và sử dụng sức chứa gán lại để giữ các thẻ siêu "
+"dữ liệu mới hay mở rộng."
+
+#: libexif/fuji/mnote-fuji-entry.c:62
+msgid "Softest"
+msgstr "Mềm nhất"
+
+#: libexif/fuji/mnote-fuji-entry.c:66
+msgid "Hardest"
+msgstr "Cứng nhất"
+
+#: libexif/fuji/mnote-fuji-entry.c:67 libexif/fuji/mnote-fuji-entry.c:96
+msgid "Medium soft"
+msgstr "Vừa mềm"
+
+#: libexif/fuji/mnote-fuji-entry.c:68 libexif/fuji/mnote-fuji-entry.c:94
+msgid "Medium hard"
+msgstr "Vừa cứng"
+
+#: libexif/fuji/mnote-fuji-entry.c:69 libexif/fuji/mnote-fuji-entry.c:90
+#: libexif/fuji/mnote-fuji-entry.c:98 libexif/fuji/mnote-fuji-entry.c:182
+msgid "Film simulation mode"
+msgstr "Chế độ mô phỏng phim"
+
+#: libexif/fuji/mnote-fuji-entry.c:79
+msgid "Incandescent"
+msgstr "Nóng sáng"
+
+#: libexif/fuji/mnote-fuji-entry.c:85
+msgid "Medium high"
+msgstr "Vừa cao"
+
+#: libexif/fuji/mnote-fuji-entry.c:87
+msgid "Medium low"
+msgstr "Vừa thấp"
+
+#: libexif/fuji/mnote-fuji-entry.c:88 libexif/fuji/mnote-fuji-entry.c:97
+msgid "Original"
+msgstr "Gốc"
+
+#: libexif/fuji/mnote-fuji-entry.c:124 libexif/pentax/mnote-pentax-entry.c:164
+#: libexif/pentax/mnote-pentax-entry.c:299
+msgid "Program AE"
+msgstr "AE chương trình"
+
+#: libexif/fuji/mnote-fuji-entry.c:125
+msgid "Natural photo"
+msgstr "Ảnh chụp tự nhiên"
+
+#: libexif/fuji/mnote-fuji-entry.c:126
+msgid "Vibration reduction"
+msgstr "Giảm rung"
+
+#: libexif/fuji/mnote-fuji-entry.c:127
+msgid "Sunset"
+msgstr "Hoàng hôn"
+
+#: libexif/fuji/mnote-fuji-entry.c:128 libexif/pentax/mnote-pentax-entry.c:181
+msgid "Museum"
+msgstr "Nhà bảo tàng"
+
+#: libexif/fuji/mnote-fuji-entry.c:129
+msgid "Party"
+msgstr "Tiệc"
+
+#: libexif/fuji/mnote-fuji-entry.c:130
+msgid "Flower"
+msgstr "Hoa"
+
+#: libexif/fuji/mnote-fuji-entry.c:131 libexif/pentax/mnote-pentax-entry.c:176
+msgid "Text"
+msgstr "Văn bản"
+
+#: libexif/fuji/mnote-fuji-entry.c:132
+msgid "NP & flash"
+msgstr "NP và đèn nháy"
+
+#: libexif/fuji/mnote-fuji-entry.c:137
+msgid "Aperture priority AE"
+msgstr "Ưu tiên lỗ AE"
+
+#: libexif/fuji/mnote-fuji-entry.c:138
+msgid "Shutter priority AE"
+msgstr "Ưu tiên chập AE"
+
+#: libexif/fuji/mnote-fuji-entry.c:146
+msgid "F-Standard"
+msgstr "F-Chuẩn"
+
+#: libexif/fuji/mnote-fuji-entry.c:147
+msgid "F-Chrome"
+msgstr "F-Crom"
+
+#: libexif/fuji/mnote-fuji-entry.c:148
+msgid "F-B&W"
+msgstr "F-Đen trắng"
+
+#: libexif/fuji/mnote-fuji-entry.c:151
+msgid "No blur"
+msgstr "Không mờ"
+
+#: libexif/fuji/mnote-fuji-entry.c:152
+msgid "Blur warning"
+msgstr "Cành báo mờ"
+
+#: libexif/fuji/mnote-fuji-entry.c:155
+msgid "Focus good"
+msgstr "Tiêu điểm rõ"
+
+#: libexif/fuji/mnote-fuji-entry.c:156
+msgid "Out of focus"
+msgstr "Không rõ"
+
+#: libexif/fuji/mnote-fuji-entry.c:159
+msgid "AE good"
+msgstr "AE tốt"
+
+#: libexif/fuji/mnote-fuji-entry.c:160
+msgid "Over exposed"
+msgstr "Phơi quá lâu"
+
+#: libexif/fuji/mnote-fuji-entry.c:164
+msgid "Wide"
+msgstr "Rộng"
+
+#: libexif/fuji/mnote-fuji-entry.c:167
+msgid "F0/Standard"
+msgstr "F0/Chuẩn"
+
+#: libexif/fuji/mnote-fuji-entry.c:168
+msgid "F1/Studio portrait"
+msgstr "F1/Chân dung xưởng phim"
+
+#: libexif/fuji/mnote-fuji-entry.c:169
+msgid "F1a/Professional portrait"
+msgstr "F1a/Chân dung chuyên nhiệp"
+
+#: libexif/fuji/mnote-fuji-entry.c:170
+msgid "F1b/Professional portrait"
+msgstr "F1b/Chân dung chuyên nhiệp"
+
+#: libexif/fuji/mnote-fuji-entry.c:171
+msgid "F1c/Professional portrait"
+msgstr "F1c/Chân dung chuyên nhiệp"
+
+#: libexif/fuji/mnote-fuji-entry.c:172
+msgid "F2/Fujichrome"
+msgstr "F2/Fujichrome"
+
+#: libexif/fuji/mnote-fuji-entry.c:173
+msgid "F3/Studio portrait Ex"
+msgstr "F3/Chân dung xưởng phim Ex"
+
+#: libexif/fuji/mnote-fuji-entry.c:174
+msgid "F4/Velvia"
+msgstr "F4/Velvia"
+
+#: libexif/fuji/mnote-fuji-entry.c:177
+msgid "Auto (100-400%)"
+msgstr "Tự động (100-400%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:179
+msgid "Standard (100%)"
+msgstr "Chuẩn (100%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:180
+msgid "Wide1 (230%)"
+msgstr "Rộng 1 (230%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:181
+msgid "Wide2 (400%)"
+msgstr "Rộng 2 (400%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:263
+#, c-format
+msgid "%2.2f mm"
+msgstr "%2.2f mm"
+
+#: libexif/fuji/mnote-fuji-entry.c:298 libexif/pentax/mnote-pentax-entry.c:399
+#: libexif/pentax/mnote-pentax-entry.c:451
+#, c-format
+msgid "%i bytes unknown data"
+msgstr "%i byte dữ liệu lạ"
+
+#: libexif/fuji/mnote-fuji-tag.c:36
+msgid "Maker Note Version"
+msgstr "Phiên bản ghi chú hãng chế tạo"
+
+#: libexif/fuji/mnote-fuji-tag.c:37
+msgid "This number is unique and based on the date of manufacture."
+msgstr "Con số này vẫn duy nhất, dựa vào ngày tháng chế tạo."
+
+#: libexif/fuji/mnote-fuji-tag.c:41
+msgid "Chromaticity Saturation"
+msgstr "Độ bão hòa sắc độ"
+
+#: libexif/fuji/mnote-fuji-tag.c:44
+msgid "Flash Firing Strength Compensation"
+msgstr "Sự bù độ mạnh mở đèn nháy"
+
+#: libexif/fuji/mnote-fuji-tag.c:46
+msgid "Focusing Mode"
+msgstr "Chế độ tiêu điểm"
+
+#: libexif/fuji/mnote-fuji-tag.c:47
+msgid "Focus Point"
+msgstr "Điểm tiêu điểm"
+
+#: libexif/fuji/mnote-fuji-tag.c:48
+msgid "Slow Synchro Mode"
+msgstr "Chế độ đồng bộ chậm"
+
+#: libexif/fuji/mnote-fuji-tag.c:49 libexif/pentax/mnote-pentax-tag.c:72
+msgid "Picture Mode"
+msgstr "Chế độ ảnh"
+
+#: libexif/fuji/mnote-fuji-tag.c:50
+msgid "Continuous Taking"
+msgstr "Chụp liên tục"
+
+#: libexif/fuji/mnote-fuji-tag.c:51
+msgid "Continuous Sequence Number"
+msgstr "Số thứ tự dây liên tục"
+
+#: libexif/fuji/mnote-fuji-tag.c:52
+msgid "FinePix Color"
+msgstr "Màu FinePix"
+
+#: libexif/fuji/mnote-fuji-tag.c:53
+msgid "Blur Check"
+msgstr "Kiểm tra mờ"
+
+#: libexif/fuji/mnote-fuji-tag.c:54
+msgid "Auto Focus Check"
+msgstr "Kiểm tra tự động tiêu điểm"
+
+#: libexif/fuji/mnote-fuji-tag.c:55
+msgid "Auto Exposure Check"
+msgstr "Kiểm tra tự động phơi sáng"
+
+#: libexif/fuji/mnote-fuji-tag.c:56
+msgid "Dynamic Range"
+msgstr "Phạm vi động"
+
+#: libexif/fuji/mnote-fuji-tag.c:57
+msgid "Film Simulation Mode"
+msgstr "Chế độ Mô phỏng Phim"
+
+#: libexif/fuji/mnote-fuji-tag.c:58
+msgid "Dynamic Range Wide Mode"
+msgstr "Chế độ rộng phạm vi động"
+
+#: libexif/fuji/mnote-fuji-tag.c:59
+msgid "Development Dynamic Range Wide Mode"
+msgstr "Chế độ rộng phạm vi động phát triển"
+
+#: libexif/fuji/mnote-fuji-tag.c:60
+msgid "Minimum Focal Length"
+msgstr "Tiêu cự tối thiểu"
+
+#: libexif/fuji/mnote-fuji-tag.c:61
+msgid "Maximum Focal Length"
+msgstr "Tiêu cự tối đa"
+
+#: libexif/fuji/mnote-fuji-tag.c:62
+msgid "Maximum Aperture at Minimum Focal"
+msgstr "Lỗ tối đa ở tiêu cự tối thiểu"
+
+#: libexif/fuji/mnote-fuji-tag.c:63
+msgid "Maximum Aperture at Maximum Focal"
+msgstr "Lỗ tối đa ở tiêu cự tối đa"
+
+#: libexif/fuji/mnote-fuji-tag.c:65
+msgid "Order Number"
+msgstr "Số hiệu đơn đặt hàng"
+
+#: libexif/fuji/mnote-fuji-tag.c:66 libexif/pentax/mnote-pentax-tag.c:98
+msgid "Frame Number"
+msgstr "Số thứ tự khung"
+
+#: libexif/olympus/mnote-olympus-entry.c:49
+#, c-format
+msgid "Invalid format '%s', expected '%s' or '%s'."
+msgstr "Định dạng không hợp lệ « %s », còn đợi « %s » hay « %s »."
+
+#: libexif/olympus/mnote-olympus-entry.c:89
+msgid "AF non D lens"
+msgstr "Ống kính AF khác D"
+
+#: libexif/olympus/mnote-olympus-entry.c:91
+msgid "AF-D or AF-S lens"
+msgstr "Ống kính AF-D hay AF-S"
+
+#: libexif/olympus/mnote-olympus-entry.c:92
+msgid "AF-D G lens"
+msgstr "Ống kính AF-D G"
+
+#: libexif/olympus/mnote-olympus-entry.c:93
+msgid "AF-D VR lens"
+msgstr "Ống kính VR AF-D"
+
+#: libexif/olympus/mnote-olympus-entry.c:94
+msgid "AF-D G VR lens"
+msgstr "Ống kính VR AF-D G"
+
+#: libexif/olympus/mnote-olympus-entry.c:98
+msgid "Flash unit unknown"
+msgstr "Không biết đơn vị đèn nháy"
+
+#: libexif/olympus/mnote-olympus-entry.c:99
+msgid "Flash is external"
+msgstr "Đèn nháy bên ngoài"
+
+#: libexif/olympus/mnote-olympus-entry.c:100
+msgid "Flash is on camera"
+msgstr "Đèn nháy trên máy ảnh"
+
+#: libexif/olympus/mnote-olympus-entry.c:103
+msgid "VGA basic"
+msgstr "VGA cơ bản"
+
+#: libexif/olympus/mnote-olympus-entry.c:104
+msgid "VGA normal"
+msgstr "VGA chuẩn"
+
+#: libexif/olympus/mnote-olympus-entry.c:105
+msgid "VGA fine"
+msgstr "VGA chính xác"
+
+#: libexif/olympus/mnote-olympus-entry.c:106
+msgid "SXGA basic"
+msgstr "SXGA cơ bản"
+
+#: libexif/olympus/mnote-olympus-entry.c:107
+msgid "SXGA normal"
+msgstr "SXGA chuẩn"
+
+#: libexif/olympus/mnote-olympus-entry.c:108
+msgid "SXGA fine"
+msgstr "SXGA chính xác"
+
+#: libexif/olympus/mnote-olympus-entry.c:109
+msgid "2 Mpixel basic"
+msgstr "2 MP cơ bản"
+
+#: libexif/olympus/mnote-olympus-entry.c:110
+msgid "2 Mpixel normal"
+msgstr "2 MP chuẩn"
+
+#: libexif/olympus/mnote-olympus-entry.c:111
+msgid "2 Mpixel fine"
+msgstr "2 MP chính xác"
+
+#: libexif/olympus/mnote-olympus-entry.c:114
+msgid "Color"
+msgstr "Màu"
+
+#: libexif/olympus/mnote-olympus-entry.c:119
+msgid "Bright+"
+msgstr "Sáng+"
+
+#: libexif/olympus/mnote-olympus-entry.c:120
+msgid "Bright-"
+msgstr "Sáng-"
+
+#: libexif/olympus/mnote-olympus-entry.c:121
+msgid "Contrast+"
+msgstr "Tương phản+"
+
+#: libexif/olympus/mnote-olympus-entry.c:122
+msgid "Contrast-"
+msgstr "Tương phản-"
+
+# Literal: don't translate / Nghĩa chữ: đừng dịch
+#: libexif/olympus/mnote-olympus-entry.c:125
+msgid "ISO 80"
+msgstr "ISO 80"
+
+# Literal: don't translate / Nghĩa chữ: đừng dịch
+#: libexif/olympus/mnote-olympus-entry.c:126
+msgid "ISO 160"
+msgstr "ISO 160"
+
+#: libexif/olympus/mnote-olympus-entry.c:127
+msgid "ISO 320"
+msgstr "ISO 320"
+
+# Literal: don't translate / Nghĩa chữ: đừng dịch
+#: libexif/olympus/mnote-olympus-entry.c:128
+#: libexif/olympus/mnote-olympus-entry.c:246
+msgid "ISO 100"
+msgstr "ISO 100"
+
+#: libexif/olympus/mnote-olympus-entry.c:132
+msgid "Preset"
+msgstr "Định sẵn"
+
+#: libexif/olympus/mnote-olympus-entry.c:134
+msgid "Incandescence"
+msgstr "Nóng sáng"
+
+#: libexif/olympus/mnote-olympus-entry.c:135
+msgid "Fluorescence"
+msgstr "Huỳnh quang"
+
+#: libexif/olympus/mnote-olympus-entry.c:137
+msgid "SpeedLight"
+msgstr "Đèn tốc độ"
+
+#: libexif/olympus/mnote-olympus-entry.c:140
+msgid "No fisheye"
+msgstr "Không mắt cá"
+
+#: libexif/olympus/mnote-olympus-entry.c:141
+msgid "Fisheye on"
+msgstr "Mắt cá"
+
+#: libexif/olympus/mnote-olympus-entry.c:144
+msgid "Normal, SQ"
+msgstr "Chuẩn, SQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:145
+msgid "Normal, HQ"
+msgstr "Chuẩn, HQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:146
+msgid "Normal, SHQ"
+msgstr "Chuẩn, SHQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:147
+msgid "Normal, RAW"
+msgstr "Chuẩn, RAW"
+
+#: libexif/olympus/mnote-olympus-entry.c:148
+msgid "Normal, SQ1"
+msgstr "Chuẩn, SQ1"
+
+#: libexif/olympus/mnote-olympus-entry.c:149
+msgid "Normal, SQ2"
+msgstr "Chuẩn, SQ2"
+
+#: libexif/olympus/mnote-olympus-entry.c:150
+msgid "Normal, super high"
+msgstr "Chuẩn, siêu cao"
+
+#: libexif/olympus/mnote-olympus-entry.c:151
+msgid "Normal, standard"
+msgstr "Chuẩn, tiêu chuẩn"
+
+#: libexif/olympus/mnote-olympus-entry.c:152
+msgid "Fine, SQ"
+msgstr "Chính xác, SQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:153
+msgid "Fine, HQ"
+msgstr "Chính xác, HQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:154
+msgid "Fine, SHQ"
+msgstr "Chính xác.SHQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:155
+msgid "Fine, RAW"
+msgstr "Chính xác, RAW"
+
+#: libexif/olympus/mnote-olympus-entry.c:156
+msgid "Fine, SQ1"
+msgstr "Chính xác, SQ1"
+
+#: libexif/olympus/mnote-olympus-entry.c:157
+msgid "Fine, SQ2"
+msgstr "Chính xác, SQ2"
+
+#: libexif/olympus/mnote-olympus-entry.c:158
+msgid "Fine, super high"
+msgstr "Chính xác, siêu cao"
+
+#: libexif/olympus/mnote-olympus-entry.c:159
+msgid "Super fine, SQ"
+msgstr "Siêu chính xác, SQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:160
+msgid "Super fine, HQ"
+msgstr "Siêu chính xác, HQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:161
+msgid "Super fine, SHQ"
+msgstr "Siêu chính xác, SHQ"
+
+#: libexif/olympus/mnote-olympus-entry.c:162
+msgid "Super fine, RAW"
+msgstr "Siêu chính xác, RAW"
+
+#: libexif/olympus/mnote-olympus-entry.c:163
+msgid "Super fine, SQ1"
+msgstr "Siêu chính xác, SQ1"
+
+#: libexif/olympus/mnote-olympus-entry.c:164
+msgid "Super fine, SQ2"
+msgstr "Siêu chính xác, SQ2"
+
+#: libexif/olympus/mnote-olympus-entry.c:165
+msgid "Super fine, super high"
+msgstr "Siêu chính xác, siêu cao"
+
+#: libexif/olympus/mnote-olympus-entry.c:166
+msgid "Super fine, high"
+msgstr "Siêu chính xác, cao"
+
+#: libexif/olympus/mnote-olympus-entry.c:169
+#: libexif/olympus/mnote-olympus-entry.c:174
+#: libexif/olympus/mnote-olympus-entry.c:208
+#: libexif/olympus/mnote-olympus-entry.c:217
+#: libexif/olympus/mnote-olympus-entry.c:240
+msgid "No"
+msgstr "Không"
+
+#: libexif/olympus/mnote-olympus-entry.c:180
+msgid "On (Preset)"
+msgstr "Bật (Định sẵn)"
+
+#: libexif/olympus/mnote-olympus-entry.c:185
+msgid "Fill"
+msgstr "Điền đầy"
+
+#: libexif/olympus/mnote-olympus-entry.c:192
+msgid "Internal + external"
+msgstr "Nội bộ + Bên ngoài"
+
+#: libexif/olympus/mnote-olympus-entry.c:221
+msgid "Interlaced"
+msgstr "Đan nhau"
+
+#: libexif/olympus/mnote-olympus-entry.c:222
+msgid "Progressive"
+msgstr "Tiến lên"
+
+#: libexif/olympus/mnote-olympus-entry.c:228
+#: libexif/pentax/mnote-pentax-entry.c:85
+#: libexif/pentax/mnote-pentax-entry.c:139
+msgid "Best"
+msgstr "Tốt nhất"
+
+#: libexif/olympus/mnote-olympus-entry.c:229
+msgid "Adjust exposure"
+msgstr "Chỉnh phơi nắng"
+
+#: libexif/olympus/mnote-olympus-entry.c:232
+msgid "Spot focus"
+msgstr "Tiêu Điểm"
+
+#: libexif/olympus/mnote-olympus-entry.c:233
+msgid "Normal focus"
+msgstr "Tiêu Chuẩn"
+
+#: libexif/olympus/mnote-olympus-entry.c:236
+msgid "Record while down"
+msgstr "Thu khi bấm"
+
+#: libexif/olympus/mnote-olympus-entry.c:237
+msgid "Press start, press stop"
+msgstr "Bấm đi, bấm dừng"
+
+# Literal: don't translate / Nghĩa chữ: đừng dịch
+#: libexif/olympus/mnote-olympus-entry.c:245
+msgid "ISO 50"
+msgstr "ISO 50"
+
+#: libexif/olympus/mnote-olympus-entry.c:247
+msgid "ISO 200"
+msgstr "ISO 200"
+
+#: libexif/olympus/mnote-olympus-entry.c:248
+msgid "ISO 400"
+msgstr "ISO 400"
+
+#: libexif/olympus/mnote-olympus-entry.c:252
+#: libexif/pentax/mnote-pentax-entry.c:168
+msgid "Sport"
+msgstr "Thể thao"
+
+#: libexif/olympus/mnote-olympus-entry.c:253
+msgid "TV"
+msgstr "TV"
+
+#: libexif/olympus/mnote-olympus-entry.c:255
+msgid "User 1"
+msgstr "Người dùng 1"
+
+#: libexif/olympus/mnote-olympus-entry.c:256
+msgid "User 2"
+msgstr "Người dùng 2"
+
+#: libexif/olympus/mnote-olympus-entry.c:257
+msgid "Lamp"
+msgstr "Đèn"
+
+#: libexif/olympus/mnote-olympus-entry.c:260
+msgid "5 frames/sec"
+msgstr "5 khung/giây"
+
+#: libexif/olympus/mnote-olympus-entry.c:261
+msgid "10 frames/sec"
+msgstr "10 khung/giây"
+
+#: libexif/olympus/mnote-olympus-entry.c:262
+msgid "15 frames/sec"
+msgstr "15 khung/giây"
+
+#: libexif/olympus/mnote-olympus-entry.c:263
+msgid "20 frames/sec"
+msgstr "20 khung/giây"
+
+#: libexif/olympus/mnote-olympus-entry.c:375
+#, c-format
+msgid "Red Correction %f, blue Correction %f"
+msgstr "Sửa đỏ %f, Sửa xanh %f"
+
+#: libexif/olympus/mnote-olympus-entry.c:383
+#, c-format
+msgid "%2.2f meters"
+msgstr "%2.2f mét"
+
+#: libexif/olympus/mnote-olympus-entry.c:385
+msgid "No manual focus selection"
+msgstr "Chưa tự chọn tiêu điểm"
+
+#: libexif/olympus/mnote-olympus-entry.c:411
+msgid "AF position: center"
+msgstr "Vị trí AF: giữa"
+
+#: libexif/olympus/mnote-olympus-entry.c:412
+msgid "AF position: top"
+msgstr "Vị trí AF: trên"
+
+#: libexif/olympus/mnote-olympus-entry.c:413
+msgid "AF position: bottom"
+msgstr "Vị trí AF: dưới"
+
+#: libexif/olympus/mnote-olympus-entry.c:414
+msgid "AF position: left"
+msgstr "Vị trí AF: trái"
+
+#: libexif/olympus/mnote-olympus-entry.c:415
+msgid "AF position: right"
+msgstr "Vị trí AF: phải"
+
+#: libexif/olympus/mnote-olympus-entry.c:416
+msgid "AF position: upper-left"
+msgstr "Vị trí AF: trái-trên"
+
+#: libexif/olympus/mnote-olympus-entry.c:417
+msgid "AF position: upper-right"
+msgstr "Vị trí AF: phải-trên"
+
+#: libexif/olympus/mnote-olympus-entry.c:418
+msgid "AF position: lower-left"
+msgstr "Vị trí AF: trái-dưới"
+
+#: libexif/olympus/mnote-olympus-entry.c:419
+msgid "AF position: lower-right"
+msgstr "Vị trí AF: phải-dưới"
+
+#: libexif/olympus/mnote-olympus-entry.c:420
+msgid "AF position: far left"
+msgstr "Vị trí AF: trái-xa"
+
+#: libexif/olympus/mnote-olympus-entry.c:421
+msgid "AF position: far right"
+msgstr "Vị trí AF: phải-xa"
+
+#: libexif/olympus/mnote-olympus-entry.c:422
+msgid "Unknown AF position"
+msgstr "Vị trí AF không rõ"
+
+#: libexif/olympus/mnote-olympus-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:503
+#, c-format
+msgid "Internal error (unknown value %hi)"
+msgstr "Lỗi nội bộ (giá trị không rõ %hi)"
+
+#: libexif/olympus/mnote-olympus-entry.c:441
+#: libexif/olympus/mnote-olympus-entry.c:511
+#, c-format
+msgid "Unknown value %hi"
+msgstr "Giá trị lạ %hi"
+
+#: libexif/olympus/mnote-olympus-entry.c:536
+#: libexif/olympus/mnote-olympus-entry.c:556
+#, c-format
+msgid "Unknown %hu"
+msgstr "Không rõ %hu"
+
+#: libexif/olympus/mnote-olympus-entry.c:553
+msgid "2 sec."
+msgstr "2 giây"
+
+#: libexif/olympus/mnote-olympus-entry.c:592
+msgid "Fast"
+msgstr "Nhanh"
+
+#: libexif/olympus/mnote-olympus-entry.c:696
+msgid "Automatic"
+msgstr "Tự động"
+
+#: libexif/olympus/mnote-olympus-entry.c:726
+#, c-format
+msgid "Manual: %liK"
+msgstr "Bằng tay: %liK"
+
+#: libexif/olympus/mnote-olympus-entry.c:729
+msgid "Manual: unknown"
+msgstr "Bằng tay: không rõ"
+
+#: libexif/olympus/mnote-olympus-entry.c:735
+msgid "One-touch"
+msgstr "Bấm đơn"
+
+#: libexif/olympus/mnote-olympus-entry.c:791
+#: libexif/olympus/mnote-olympus-entry.c:801
+msgid "Infinite"
+msgstr "Vô hạn"
+
+#: libexif/olympus/mnote-olympus-entry.c:809
+#, c-format
+msgid "%i bytes unknown data: "
+msgstr "%i byte dữ liệu không rõ : "
+
+#: libexif/olympus/mnote-olympus-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:53
+msgid "ISO Setting"
+msgstr "Thiết lập ISO"
+
+#: libexif/olympus/mnote-olympus-tag.c:39
+msgid "Color Mode (?)"
+msgstr "Chế độ Màu (?)"
+
+#: libexif/olympus/mnote-olympus-tag.c:42
+msgid "Image Sharpening"
+msgstr "Làm Sắc Ảnh"
+
+#: libexif/olympus/mnote-olympus-tag.c:44
+msgid "Flash Setting"
+msgstr "Thiết lập Đèn nháy"
+
+#: libexif/olympus/mnote-olympus-tag.c:46
+msgid "White Balance Fine Adjustment"
+msgstr "Chỉnh đúng Cán cân trắng"
+
+#: libexif/olympus/mnote-olympus-tag.c:47
+msgid "White Balance RB"
+msgstr "RB cán cân trắng"
+
+#: libexif/olympus/mnote-olympus-tag.c:49
+msgid "ISO Selection"
+msgstr "Chọn ISO"
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Preview Image IFD"
+msgstr "Xem thử ảnh IFD"
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Offset of the preview image directory (IFD) inside the file."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:51
+msgid "Exposurediff ?"
+msgstr "Khác biệt phơi nắng ?"
+
+#: libexif/olympus/mnote-olympus-tag.c:54
+msgid "Image Boundary"
+msgstr "Ranh giới Ảnh"
+
+#: libexif/olympus/mnote-olympus-tag.c:56
+msgid "Flash Exposure Bracket Value"
+msgstr "Giá trị Ngoặc Phơi nắng Đèn nháy"
+
+#: libexif/olympus/mnote-olympus-tag.c:57
+msgid "Exposure Bracket Value"
+msgstr "Giá trị Ngoặc Phơi nắng"
+
+#: libexif/olympus/mnote-olympus-tag.c:58
+#: libexif/olympus/mnote-olympus-tag.c:96
+msgid "Image Adjustment"
+msgstr "Chỉnh Ảnh"
+
+#: libexif/olympus/mnote-olympus-tag.c:59
+msgid "Tone Compensation"
+msgstr "Bù Sắc Màu"
+
+#: libexif/olympus/mnote-olympus-tag.c:60
+msgid "Adapter"
+msgstr "Bộ tiếp hợp"
+
+#: libexif/olympus/mnote-olympus-tag.c:62
+msgid "Lens"
+msgstr "Ống kính"
+
+#: libexif/olympus/mnote-olympus-tag.c:63
+#: libexif/olympus/mnote-olympus-tag.c:135
+#: libexif/olympus/mnote-olympus-tag.c:185
+msgid "Manual Focus Distance"
+msgstr "Tiêu cự bằng Tay"
+
+#: libexif/olympus/mnote-olympus-tag.c:65
+msgid "Flash Used"
+msgstr "Dùng đèn nháy"
+
+#: libexif/olympus/mnote-olympus-tag.c:66
+msgid "AF Focus Position"
+msgstr "Vị trí Tiêu điểm AF"
+
+#: libexif/olympus/mnote-olympus-tag.c:67
+msgid "Bracketing"
+msgstr "Đặt giữa ngoặc"
+
+#: libexif/olympus/mnote-olympus-tag.c:69
+msgid "Lens F Stops"
+msgstr "Cấp tiêu Ống kính"
+
+#: libexif/olympus/mnote-olympus-tag.c:70
+msgid "Contrast Curve"
+msgstr "Cong tương phản"
+
+#: libexif/olympus/mnote-olympus-tag.c:71
+#: libexif/olympus/mnote-olympus-tag.c:95
+#: libexif/pentax/mnote-pentax-tag.c:134
+msgid "Color Mode"
+msgstr "Chế độ Màu"
+
+#: libexif/olympus/mnote-olympus-tag.c:72
+msgid "Light Type"
+msgstr "Kiểu ánh sáng"
+
+#: libexif/olympus/mnote-olympus-tag.c:74
+msgid "Hue Adjustment"
+msgstr "Chỉnh Sắc độ"
+
+#: libexif/olympus/mnote-olympus-tag.c:76
+#: libexif/olympus/mnote-olympus-tag.c:163
+#: libexif/pentax/mnote-pentax-tag.c:108
+msgid "Noise Reduction"
+msgstr "Giảm nhiễu"
+
+#: libexif/olympus/mnote-olympus-tag.c:79
+msgid "Sensor Pixel Size"
+msgstr "Cỡ điểm ảnh máy nhạy"
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Image Data Size"
+msgstr "Cỡ dữ liệu ảnh"
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Size of compressed image data in bytes."
+msgstr "Kích cỡ của ảnh đã nén, theo byte."
+
+#: libexif/olympus/mnote-olympus-tag.c:84
+msgid "Total Number of Pictures Taken"
+msgstr "Tổng số ảnh đã chụp"
+
+#: libexif/olympus/mnote-olympus-tag.c:86
+msgid "Optimize Image"
+msgstr "Tối đa hoá ảnh"
+
+#: libexif/olympus/mnote-olympus-tag.c:88
+msgid "Vari Program"
+msgstr "Chương trình Vari"
+
+#: libexif/olympus/mnote-olympus-tag.c:89
+msgid "Capture Editor Data"
+msgstr "Dữ liệu Trình Sửa Ảnh Bắt"
+
+#: libexif/olympus/mnote-olympus-tag.c:90
+msgid "Capture Editor Version"
+msgstr "Phiên bản Trình Sửa Ảnh Bắt"
+
+#: libexif/olympus/mnote-olympus-tag.c:97
+#: libexif/olympus/mnote-olympus-tag.c:183
+msgid "CCD Sensitivity"
+msgstr "Độ nhạy CCD"
+
+#: libexif/olympus/mnote-olympus-tag.c:99
+msgid "Focus"
+msgstr "Tiêu điểm"
+
+#: libexif/olympus/mnote-olympus-tag.c:102
+msgid "Converter"
+msgstr "Chuyển đổi"
+
+#: libexif/olympus/mnote-olympus-tag.c:105
+msgid "Thumbnail Image"
+msgstr "Ảnh mẫu"
+
+#: libexif/olympus/mnote-olympus-tag.c:106
+msgid "Speed/Sequence/Panorama Direction"
+msgstr "Hướng Tốc độ/Dãy/Cảnh quay lia"
+
+#: libexif/olympus/mnote-olympus-tag.c:109
+msgid "Black & White Mode"
+msgstr "Chế độ Đen Trắng"
+
+#: libexif/olympus/mnote-olympus-tag.c:111
+msgid "Focal Plane Diagonal"
+msgstr "Chéo Phẳng Tiêu"
+
+#: libexif/olympus/mnote-olympus-tag.c:112
+msgid "Lens Distortion Parameters"
+msgstr "Tham số Méo mó Ống kính"
+
+#: libexif/olympus/mnote-olympus-tag.c:114
+msgid "Info"
+msgstr "Thông tin"
+
+#: libexif/olympus/mnote-olympus-tag.c:115
+msgid "Camera ID"
+msgstr "Mã số Máy ảnh"
+
+#: libexif/olympus/mnote-olympus-tag.c:116
+msgid "Precapture Frames"
+msgstr "Khung Bắt Sẵn"
+
+#: libexif/olympus/mnote-olympus-tag.c:117
+msgid "White Board"
+msgstr "Bảng Trắng"
+
+#: libexif/olympus/mnote-olympus-tag.c:118
+msgid "One Touch White Balance"
+msgstr "Cán cân trắng sờ một"
+
+#: libexif/olympus/mnote-olympus-tag.c:119
+msgid "White Balance Bracket"
+msgstr "Ngoặc cán cân trắng"
+
+#: libexif/olympus/mnote-olympus-tag.c:120
+#: libexif/pentax/mnote-pentax-tag.c:123
+msgid "White Balance Bias"
+msgstr "Khuynh hướng cán cân trắng"
+
+#: libexif/olympus/mnote-olympus-tag.c:121
+msgid "Data Dump"
+msgstr "Đổ dữ liệu"
+
+#: libexif/olympus/mnote-olympus-tag.c:124
+msgid "ISO Value"
+msgstr "Giá trị ISO"
+
+#: libexif/olympus/mnote-olympus-tag.c:125
+msgid "Aperture Value"
+msgstr "Giá trị Lỗ"
+
+#: libexif/olympus/mnote-olympus-tag.c:126
+msgid "Brightness Value"
+msgstr "Giá trị độ Sáng"
+
+#: libexif/olympus/mnote-olympus-tag.c:128
+msgid "Flash Device"
+msgstr "Thiết bị Đèn nháy"
+
+#: libexif/olympus/mnote-olympus-tag.c:130
+msgid "Sensor Temperature"
+msgstr "Nhiệt độ Máy nhạy"
+
+#: libexif/olympus/mnote-olympus-tag.c:131
+msgid "Lens Temperature"
+msgstr "Nhiệt độ Ống kính"
+
+#: libexif/olympus/mnote-olympus-tag.c:132
+msgid "Light Condition"
+msgstr "Điều kiện Ánh sáng"
+
+#: libexif/olympus/mnote-olympus-tag.c:136
+msgid "Zoom Step Count"
+msgstr "Đếm bước Phóng to"
+
+#: libexif/olympus/mnote-olympus-tag.c:137
+msgid "Focus Step Count"
+msgstr "Đếm bước Tiêu cự"
+
+#: libexif/olympus/mnote-olympus-tag.c:138
+msgid "Sharpness Setting"
+msgstr "Thiết lập độ Sắc"
+
+#: libexif/olympus/mnote-olympus-tag.c:139
+msgid "Flash Charge Level"
+msgstr "Cấp nạp điện Đèn nháy"
+
+#: libexif/olympus/mnote-olympus-tag.c:140
+msgid "Color Matrix"
+msgstr "Ma trận Màu"
+
+#: libexif/olympus/mnote-olympus-tag.c:141
+msgid "Black Level"
+msgstr "Cấp Đen"
+
+#: libexif/olympus/mnote-olympus-tag.c:142
+msgid "White Balance Setting"
+msgstr "Thiết lập Cán cân Trắng"
+
+#: libexif/olympus/mnote-olympus-tag.c:143
+#: libexif/pentax/mnote-pentax-tag.c:87
+msgid "Red Balance"
+msgstr "Cán cân Đỏ"
+
+#: libexif/olympus/mnote-olympus-tag.c:144
+#: libexif/pentax/mnote-pentax-tag.c:86
+msgid "Blue Balance"
+msgstr "Cán cân Xanh"
+
+#: libexif/olympus/mnote-olympus-tag.c:145
+msgid "Color Matrix Number"
+msgstr "Số Ma trận Màu"
+
+#: libexif/olympus/mnote-olympus-tag.c:147
+msgid "Flash Exposure Comp"
+msgstr "Bù Phơi nắng Đèn nháy"
+
+#: libexif/olympus/mnote-olympus-tag.c:148
+msgid "Internal Flash Table"
+msgstr "Bảng Đèn nháy Nội bộ"
+
+#: libexif/olympus/mnote-olympus-tag.c:149
+msgid "External Flash G Value"
+msgstr "Giá trị G Đèn nháy bên Ngoài"
+
+#: libexif/olympus/mnote-olympus-tag.c:150
+msgid "External Flash Bounce"
+msgstr "Nảy Đèn nháy bên Ngoài"
+
+#: libexif/olympus/mnote-olympus-tag.c:151
+msgid "External Flash Zoom"
+msgstr "Phóng to Đèn nháy bên Ngoài"
+
+#: libexif/olympus/mnote-olympus-tag.c:152
+msgid "External Flash Mode"
+msgstr "Chế độ Đèn nháy bên Ngoài"
+
+#: libexif/olympus/mnote-olympus-tag.c:153
+msgid "Contrast Setting"
+msgstr "Thiết lập độ Tương phản"
+
+#: libexif/olympus/mnote-olympus-tag.c:154
+msgid "Sharpness Factor"
+msgstr "Hệ số Sắc"
+
+#: libexif/olympus/mnote-olympus-tag.c:155
+msgid "Color Control"
+msgstr "Điều khiển Màu"
+
+#: libexif/olympus/mnote-olympus-tag.c:156
+msgid "Olympus Image Width"
+msgstr "Bề rộng ảnh Oympus"
+
+#: libexif/olympus/mnote-olympus-tag.c:157
+msgid "Olympus Image Height"
+msgstr "Bề cao ảnh Olympus"
+
+#: libexif/olympus/mnote-olympus-tag.c:158
+msgid "Scene Detect"
+msgstr "Phát hiện cảnh"
+
+#: libexif/olympus/mnote-olympus-tag.c:159
+msgid "Compression Ratio"
+msgstr "Tỷ lệ nén"
+
+#: libexif/olympus/mnote-olympus-tag.c:160
+msgid "Preview Image Valid"
+msgstr "Xem thử ảnh hợp lệ"
+
+#: libexif/olympus/mnote-olympus-tag.c:161
+msgid "AF Result"
+msgstr "Kết quả AF"
+
+#: libexif/olympus/mnote-olympus-tag.c:162
+msgid "CCD Scan Mode"
+msgstr "Chế độ quét CCD"
+
+#: libexif/olympus/mnote-olympus-tag.c:164
+msgid "Infinity Lens Step"
+msgstr "Bước ống kính vô hạn"
+
+#: libexif/olympus/mnote-olympus-tag.c:165
+msgid "Near Lens Step"
+msgstr "Bước ống kính ở gần"
+
+#: libexif/olympus/mnote-olympus-tag.c:166
+msgid "Light Value Center"
+msgstr "Tâm giá trị ánh sáng"
+
+#: libexif/olympus/mnote-olympus-tag.c:167
+msgid "Light Value Periphery"
+msgstr "Ngoại vi giá trị ánh sáng"
+
+#: libexif/olympus/mnote-olympus-tag.c:170
+msgid "Sequential Shot"
+msgstr "Chụp tuần tự"
+
+#: libexif/olympus/mnote-olympus-tag.c:171
+msgid "Wide Range"
+msgstr "Phạm vi rộng"
+
+#: libexif/olympus/mnote-olympus-tag.c:172
+msgid "Color Adjustment Mode"
+msgstr "Chế độ chỉnh màu"
+
+#: libexif/olympus/mnote-olympus-tag.c:174
+msgid "Quick Shot"
+msgstr "Chụp nhanh"
+
+#: libexif/olympus/mnote-olympus-tag.c:176
+msgid "Voice Memo"
+msgstr "Ghi nhớ thoại"
+
+#: libexif/olympus/mnote-olympus-tag.c:177
+msgid "Record Shutter Release"
+msgstr "Thu nhả chập"
+
+#: libexif/olympus/mnote-olympus-tag.c:178
+msgid "Flicker Reduce"
+msgstr "Giảm rung rinh"
+
+#: libexif/olympus/mnote-olympus-tag.c:179
+msgid "Optical Zoom"
+msgstr "Thu/phóng quang"
+
+#: libexif/olympus/mnote-olympus-tag.c:181
+msgid "Light Source Special"
+msgstr "Nguồn ánh sáng đặc biệt"
+
+#: libexif/olympus/mnote-olympus-tag.c:182
+msgid "Resaved"
+msgstr "Lưu lại"
+
+#: libexif/olympus/mnote-olympus-tag.c:184
+msgid "Scene Select"
+msgstr "Chọn cảnh"
+
+#: libexif/olympus/mnote-olympus-tag.c:186
+msgid "Sequence Shot Interval"
+msgstr "Khoảng chụp dãy"
+
+#: libexif/olympus/mnote-olympus-tag.c:189
+msgid "Epson Image Width"
+msgstr "Bề rộng ảnh Epson"
+
+#: libexif/olympus/mnote-olympus-tag.c:190
+msgid "Epson Image Height"
+msgstr "Bề cao ảnh Epson"
+
+#: libexif/olympus/mnote-olympus-tag.c:191
+msgid "Epson Software Version"
+msgstr "Phiên bản Phần mềm Epson"
+
+#: libexif/pentax/mnote-pentax-entry.c:80
+#: libexif/pentax/mnote-pentax-entry.c:134
+msgid "Multi-exposure"
+msgstr "Đa phơi nắng"
+
+#: libexif/pentax/mnote-pentax-entry.c:83
+#: libexif/pentax/mnote-pentax-entry.c:137
+msgid "Good"
+msgstr "Tốt"
+
+#: libexif/pentax/mnote-pentax-entry.c:84
+#: libexif/pentax/mnote-pentax-entry.c:138
+msgid "Better"
+msgstr "Tốt hơn"
+
+#: libexif/pentax/mnote-pentax-entry.c:92
+msgid "Flash on"
+msgstr "Mở đèn nháy"
+
+#: libexif/pentax/mnote-pentax-entry.c:140
+msgid "TIFF"
+msgstr "TIFF"
+
+#: libexif/pentax/mnote-pentax-entry.c:150
+msgid "2560x1920 or 2304x1728"
+msgstr "2560×1920 hay 2304×1728"
+
+#: libexif/pentax/mnote-pentax-entry.c:156
+msgid "2304x1728 or 2592x1944"
+msgstr "2304×1728 hay 2592×1944"
+
+#: libexif/pentax/mnote-pentax-entry.c:158
+msgid "2816x2212 or 2816x2112"
+msgstr "2816×2212 hay 2816×2112"
+
+#: libexif/pentax/mnote-pentax-entry.c:171
+msgid "Surf & snow"
+msgstr "Sóng nhào và Tuyết"
+
+#: libexif/pentax/mnote-pentax-entry.c:172
+msgid "Sunset or candlelight"
+msgstr "Hoàng hôn hay Ánh sáng đèn nến"
+
+#: libexif/pentax/mnote-pentax-entry.c:173
+msgid "Autumn"
+msgstr "Mùa Thu"
+
+#: libexif/pentax/mnote-pentax-entry.c:178
+msgid "Self portrait"
+msgstr "Bức tự hoạ"
+
+#: libexif/pentax/mnote-pentax-entry.c:179
+msgid "Illustrations"
+msgstr "Ảnh minh hoạ"
+
+#: libexif/pentax/mnote-pentax-entry.c:180
+msgid "Digital filter"
+msgstr "Lọc số"
+
+#: libexif/pentax/mnote-pentax-entry.c:182
+msgid "Food"
+msgstr "Đồ ăn"
+
+#: libexif/pentax/mnote-pentax-entry.c:183
+msgid "Green mode"
+msgstr "Chế độ Lục"
+
+#: libexif/pentax/mnote-pentax-entry.c:184
+msgid "Light pet"
+msgstr "Con cưng sáng"
+
+#: libexif/pentax/mnote-pentax-entry.c:185
+msgid "Dark pet"
+msgstr "Con cưng tối"
+
+#: libexif/pentax/mnote-pentax-entry.c:186
+msgid "Medium pet"
+msgstr "Con cưng vừa"
+
+#: libexif/pentax/mnote-pentax-entry.c:188
+#: libexif/pentax/mnote-pentax-entry.c:296
+msgid "Candlelight"
+msgstr "Ánh sáng đèn nến"
+
+#: libexif/pentax/mnote-pentax-entry.c:189
+msgid "Natural skin tone"
+msgstr "Sắc màu da thật"
+
+#: libexif/pentax/mnote-pentax-entry.c:190
+msgid "Synchro sound record"
+msgstr "Thu âm đồng bộ"
+
+#: libexif/pentax/mnote-pentax-entry.c:191
+msgid "Frame composite"
+msgstr "Khung ghép"
+
+#: libexif/pentax/mnote-pentax-entry.c:194
+msgid "Auto, did not fire"
+msgstr "Tự động, chưa hoạt động"
+
+#: libexif/pentax/mnote-pentax-entry.c:196
+msgid "Auto, did not fire, red-eye reduction"
+msgstr "Tự động, chưa hoạt động, giảm mắt đỏ"
+
+#: libexif/pentax/mnote-pentax-entry.c:197
+msgid "Auto, fired"
+msgstr "Tự động, hoạt động"
+
+#: libexif/pentax/mnote-pentax-entry.c:199
+msgid "Auto, fired, red-eye reduction"
+msgstr "Tự động, hoạt động, giảm mắt đỏ"
+
+#: libexif/pentax/mnote-pentax-entry.c:201
+msgid "On, wireless"
+msgstr "Bật, vô tuyến"
+
+#: libexif/pentax/mnote-pentax-entry.c:202
+msgid "On, soft"
+msgstr "Bật, mềm"
+
+#: libexif/pentax/mnote-pentax-entry.c:203
+msgid "On, slow-sync"
+msgstr "Bật, đồng bộ chậm"
+
+#: libexif/pentax/mnote-pentax-entry.c:204
+msgid "On, slow-sync, red-eye reduction"
+msgstr "Bật, đồng bộ chậm, giảm mắt đỏ"
+
+#: libexif/pentax/mnote-pentax-entry.c:205
+msgid "On, trailing-curtain sync"
+msgstr "Bật, đồng bộ mành đi theo"
+
+#: libexif/pentax/mnote-pentax-entry.c:213
+msgid "AF-S"
+msgstr "AF-S"
+
+#: libexif/pentax/mnote-pentax-entry.c:214
+msgid "AF-C"
+msgstr "AF-C"
+
+#: libexif/pentax/mnote-pentax-entry.c:217
+msgid "Upper-left"
+msgstr "Trái-trên"
+
+#: libexif/pentax/mnote-pentax-entry.c:218
+msgid "Top"
+msgstr "Trên"
+
+#: libexif/pentax/mnote-pentax-entry.c:219
+msgid "Upper-right"
+msgstr "Phải-trên"
+
+#: libexif/pentax/mnote-pentax-entry.c:221
+msgid "Mid-left"
+msgstr "Trái-giữa"
+
+#: libexif/pentax/mnote-pentax-entry.c:223
+msgid "Mid-right"
+msgstr "Phải-giữa"
+
+#: libexif/pentax/mnote-pentax-entry.c:225
+msgid "Lower-left"
+msgstr "Trái-dưới"
+
+#: libexif/pentax/mnote-pentax-entry.c:226
+msgid "Bottom"
+msgstr "Dưới"
+
+#: libexif/pentax/mnote-pentax-entry.c:227
+msgid "Lower-right"
+msgstr "Phải-dưới"
+
+#: libexif/pentax/mnote-pentax-entry.c:228
+msgid "Fixed center"
+msgstr "Giữa cố định"
+
+#: libexif/pentax/mnote-pentax-entry.c:232
+msgid "Multiple"
+msgstr "Đa"
+
+#: libexif/pentax/mnote-pentax-entry.c:234
+msgid "Top-center"
+msgstr "Trên-giữa"
+
+#: libexif/pentax/mnote-pentax-entry.c:240
+msgid "Bottom-center"
+msgstr "Dưới-giữa"
+
+#: libexif/pentax/mnote-pentax-entry.c:257
+msgid "User selected"
+msgstr "Tự chọn"
+
+#: libexif/pentax/mnote-pentax-entry.c:282
+msgid "3008x2008 or 3040x2024"
+msgstr "3008×2008 hay 3040×2024"
+
+#: libexif/pentax/mnote-pentax-entry.c:293
+msgid "Digital filter?"
+msgstr "Lọc số ?"
+
+#: libexif/pentax/mnote-pentax-entry.c:374
+#: libexif/pentax/mnote-pentax-entry.c:383
+#, c-format
+msgid "Internal error (unknown value %i %i)"
+msgstr "Lỗi nội bộ (giá trị không rõ %i %i)"
+
+#: libexif/pentax/mnote-pentax-tag.c:35 libexif/pentax/mnote-pentax-tag.c:63
+msgid "Capture Mode"
+msgstr "Chế độ bắt"
+
+#: libexif/pentax/mnote-pentax-tag.c:36 libexif/pentax/mnote-pentax-tag.c:70
+#: libexif/pentax/mnote-pentax-tag.c:129
+msgid "Quality Level"
+msgstr "Cấp chất lượng"
+
+#: libexif/pentax/mnote-pentax-tag.c:54
+msgid "ISO Speed"
+msgstr "Tốc độ ISO"
+
+#: libexif/pentax/mnote-pentax-tag.c:56
+msgid "Colors"
+msgstr "Màu sắc"
+
+#: libexif/pentax/mnote-pentax-tag.c:59
+msgid "PrintIM Settings"
+msgstr "Thiết lập PrintIM"
+
+#: libexif/pentax/mnote-pentax-tag.c:60 libexif/pentax/mnote-pentax-tag.c:131
+msgid "Time Zone"
+msgstr "Múi giờ"
+
+#: libexif/pentax/mnote-pentax-tag.c:61
+msgid "Daylight Savings"
+msgstr "Giờ giữ ban ngày"
+
+#: libexif/pentax/mnote-pentax-tag.c:64
+msgid "Preview Size"
+msgstr "Cỡ bản xem thử"
+
+#: libexif/pentax/mnote-pentax-tag.c:65
+msgid "Preview Length"
+msgstr "Dài bản xem thử"
+
+#: libexif/pentax/mnote-pentax-tag.c:66 libexif/pentax/mnote-pentax-tag.c:122
+msgid "Preview Start"
+msgstr "Đầu bản xem thử"
+
+#: libexif/pentax/mnote-pentax-tag.c:67
+msgid "Model Identification"
+msgstr "Nhận diện mô hình"
+
+#: libexif/pentax/mnote-pentax-tag.c:68
+msgid "Date"
+msgstr "Ngày"
+
+#: libexif/pentax/mnote-pentax-tag.c:69
+msgid "Time"
+msgstr "Giờ"
+
+#: libexif/pentax/mnote-pentax-tag.c:75
+msgid "AF Point Selected"
+msgstr "Điểm AF đã chọn"
+
+#: libexif/pentax/mnote-pentax-tag.c:76
+msgid "Auto AF Point"
+msgstr "Tự động điểm AF"
+
+#: libexif/pentax/mnote-pentax-tag.c:77
+msgid "Focus Position"
+msgstr "Vị trí tiêu cự"
+
+#: libexif/pentax/mnote-pentax-tag.c:80
+msgid "ISO Number"
+msgstr "Số ISO"
+
+#: libexif/pentax/mnote-pentax-tag.c:83
+msgid "Auto Bracketing"
+msgstr "Tự động đặt giữa ngoặc"
+
+#: libexif/pentax/mnote-pentax-tag.c:85
+msgid "White Balance Mode"
+msgstr "Chế độ cán cân trắng"
+
+#: libexif/pentax/mnote-pentax-tag.c:93
+msgid "World Time Location"
+msgstr "Vị trí Thời gian Thế giới"
+
+#: libexif/pentax/mnote-pentax-tag.c:94
+msgid "Hometown City"
+msgstr "Thành phố này"
+
+#: libexif/pentax/mnote-pentax-tag.c:95
+msgid "Destination City"
+msgstr "Thành phố đích"
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Hometown DST"
+msgstr "Giờ mùa hè ở đây"
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Home Daylight Savings Time"
+msgstr "Giờ mùa hè ở đây"
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination DST"
+msgstr "Giờ mùa hè ờ đích"
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination Daylight Savings Time"
+msgstr "Giờ mùa hè ờ đích"
+
+#: libexif/pentax/mnote-pentax-tag.c:99
+msgid "Image Processing"
+msgstr "Xử lý ảnh"
+
+#: libexif/pentax/mnote-pentax-tag.c:100
+msgid "Picture Mode (2)"
+msgstr "Chế độ ảnh (2)"
+
+#: libexif/pentax/mnote-pentax-tag.c:103
+msgid "Image Area Offset"
+msgstr "Hiệu vùng ảnh"
+
+#: libexif/pentax/mnote-pentax-tag.c:104
+msgid "Raw Image Size"
+msgstr "Cỡ ảnh thô"
+
+#: libexif/pentax/mnote-pentax-tag.c:105
+msgid "Autofocus Points Used"
+msgstr "Điểm tự động tiêu cự được dùng"
+
+#: libexif/pentax/mnote-pentax-tag.c:107
+msgid "Camera Temperature"
+msgstr "Nhiệt độ Máy nhạy"
+
+#: libexif/pentax/mnote-pentax-tag.c:110
+msgid "Image Tone"
+msgstr "Sắc màu ảnh"
+
+#: libexif/pentax/mnote-pentax-tag.c:111
+msgid "Shake Reduction Info"
+msgstr "Thông tin giảm run"
+
+#: libexif/pentax/mnote-pentax-tag.c:112
+msgid "Black Point"
+msgstr "Điểm Đen"
+
+#: libexif/pentax/mnote-pentax-tag.c:114
+msgid "AE Info"
+msgstr "Thông tin AE"
+
+#: libexif/pentax/mnote-pentax-tag.c:115
+msgid "Lens Info"
+msgstr "Thông tin Ống kính"
+
+#: libexif/pentax/mnote-pentax-tag.c:116
+msgid "Flash Info"
+msgstr "Thông tin Đèn nháy"
+
+#: libexif/pentax/mnote-pentax-tag.c:117
+msgid "Camera Info"
+msgstr "Thông tin Máy ảnh"
+
+#: libexif/pentax/mnote-pentax-tag.c:118
+msgid "Battery Info"
+msgstr "Thông tin Pin"
+
+#: libexif/pentax/mnote-pentax-tag.c:119
+msgid "Hometown City Code"
+msgstr "Mã thành phố này"
+
+#: libexif/pentax/mnote-pentax-tag.c:120
+msgid "Destination City Code"
+msgstr "Mã thành phố đích"
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Object Distance"
+msgstr "Tầm đối tượng"
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Distance of photographed object in millimeters."
+msgstr "Khoảng cách tới đối tượng đã chụp, theo milimét."
+
+#: libexif/pentax/mnote-pentax-tag.c:126
+msgid "Flash Distance"
+msgstr "Tầm đèn nháy"
+
+#: libexif/pentax/mnote-pentax-tag.c:132
+msgid "Bestshot Mode"
+msgstr "Chế độ Chụp Tốt nhất"
+
+#: libexif/pentax/mnote-pentax-tag.c:133
+msgid "CCS ISO Sensitivity"
+msgstr "Độ nhạy ISo CCS"
+
+#: libexif/pentax/mnote-pentax-tag.c:135
+msgid "Enhancement"
+msgstr "Tăng cường"
+
+#: libexif/pentax/mnote-pentax-tag.c:136
+msgid "Finer"
+msgstr "Chính xác hơn"
+
+#: test/nls/test-nls.c:20 test/nls/test-nls.c:23 test/nls/test-nls.c:24
+msgid "[DO_NOT_TRANSLATE_THIS_MARKER]"
+msgstr "[DO_NOT_TRANSLATE_THIS_MARKER]"
+
+#~ msgid "%.02lf EV"
+#~ msgstr "%.02lf EV"
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/zh_CN.gmo b/framework/modules/c_LibExifModule/libexif-0.6.20/po/zh_CN.gmo
new file mode 100644
index 0000000000000000000000000000000000000000..d0cbc60b556391344a5cde513d0d6c74d76b8f6f
Binary files /dev/null and b/framework/modules/c_LibExifModule/libexif-0.6.20/po/zh_CN.gmo differ
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/po/zh_CN.po b/framework/modules/c_LibExifModule/libexif-0.6.20/po/zh_CN.po
new file mode 100644
index 0000000000000000000000000000000000000000..036fbfb38a0de76063ef330379d09b2c24032578
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/po/zh_CN.po
@@ -0,0 +1,5494 @@
+# Chinese (China) translation for libexif
+# Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007
+# This file is distributed under the same license as the libexif package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: libexif\n"
+"Report-Msgid-Bugs-To: libexif-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-12-15 22:14-0800\n"
+"PO-Revision-Date: 2009-11-25 15:22+0000\n"
+"Last-Translator: Tao Wei <weitao1979@gmail.com>\n"
+"Language-Team: Chinese (China) <zh_CN@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-12-14 00:37+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: libexif/canon/mnote-canon-entry.c:40 libexif/fuji/mnote-fuji-entry.c:35
+#: libexif/olympus/mnote-olympus-entry.c:37
+#: libexif/pentax/mnote-pentax-entry.c:39
+#, c-format
+msgid "Invalid format '%s', expected '%s'."
+msgstr "无效格式 '%s',期望'%s'。"
+
+#: libexif/canon/mnote-canon-entry.c:52 libexif/fuji/mnote-fuji-entry.c:47
+#: libexif/olympus/mnote-olympus-entry.c:62
+#: libexif/pentax/mnote-pentax-entry.c:51
+#, c-format
+msgid "Invalid number of components (%i, expected %i)."
+msgstr "无效的组件数(%i,期望%i)。"
+
+#: libexif/canon/mnote-canon-entry.c:61
+#: libexif/olympus/mnote-olympus-entry.c:72
+#: libexif/pentax/mnote-pentax-entry.c:61
+#, c-format
+msgid "Invalid number of components (%i, expected %i or %i)."
+msgstr "无效的组件数(%i,期望%i或者%i)。"
+
+#: libexif/canon/mnote-canon-entry.c:76 libexif/canon/mnote-canon-entry.c:130
+#: libexif/canon/mnote-canon-entry.c:182 libexif/exif-entry.c:796
+#: libexif/olympus/mnote-olympus-entry.c:196
+#: libexif/olympus/mnote-olympus-tag.c:108
+#: libexif/pentax/mnote-pentax-entry.c:174
+#: libexif/pentax/mnote-pentax-entry.c:209
+#: libexif/pentax/mnote-pentax-entry.c:297
+msgid "Macro"
+msgstr "宏"
+
+#: libexif/canon/mnote-canon-entry.c:77 libexif/canon/mnote-canon-entry.c:79
+#: libexif/canon/mnote-canon-entry.c:157 libexif/canon/mnote-canon-entry.c:160
+#: libexif/canon/mnote-canon-entry.c:163 libexif/exif-entry.c:674
+#: libexif/exif-entry.c:677 libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/exif-entry.c:745 libexif/fuji/mnote-fuji-entry.c:64
+#: libexif/olympus/mnote-olympus-entry.c:118
+#: libexif/olympus/mnote-olympus-entry.c:195
+#: libexif/olympus/mnote-olympus-entry.c:203
+#: libexif/olympus/mnote-olympus-entry.c:213
+#: libexif/olympus/mnote-olympus-entry.c:586
+#: libexif/pentax/mnote-pentax-entry.c:105
+#: libexif/pentax/mnote-pentax-entry.c:110
+#: libexif/pentax/mnote-pentax-entry.c:115
+#: libexif/pentax/mnote-pentax-entry.c:208
+msgid "Normal"
+msgstr "普通"
+
+#: libexif/canon/mnote-canon-entry.c:78
+msgid "Economy"
+msgstr "经济"
+
+#: libexif/canon/mnote-canon-entry.c:80
+msgid "Fine"
+msgstr "高质量"
+
+#: libexif/canon/mnote-canon-entry.c:81 libexif/fuji/mnote-fuji-entry.c:178
+#: libexif/pentax/mnote-pentax-entry.c:141
+msgid "RAW"
+msgstr "RAW"
+
+#: libexif/canon/mnote-canon-entry.c:82
+msgid "Superfine"
+msgstr "精细"
+
+#: libexif/canon/mnote-canon-entry.c:83 libexif/canon/mnote-canon-entry.c:301
+#: libexif/canon/mnote-canon-entry.c:304 libexif/canon/mnote-canon-entry.c:312
+#: libexif/canon/mnote-canon-entry.c:345 libexif/canon/mnote-canon-entry.c:357
+#: libexif/canon/mnote-canon-entry.c:370 libexif/canon/mnote-canon-entry.c:372
+#: libexif/canon/mnote-canon-entry.c:574 libexif/canon/mnote-canon-entry.c:671
+#: libexif/fuji/mnote-fuji-entry.c:70 libexif/fuji/mnote-fuji-entry.c:103
+#: libexif/fuji/mnote-fuji-entry.c:107 libexif/fuji/mnote-fuji-entry.c:115
+#: libexif/fuji/mnote-fuji-entry.c:142
+#: libexif/olympus/mnote-olympus-entry.c:178
+#: libexif/olympus/mnote-olympus-entry.c:186
+#: libexif/olympus/mnote-olympus-entry.c:251
+#: libexif/olympus/mnote-olympus-entry.c:530
+#: libexif/olympus/mnote-olympus-entry.c:547
+#: libexif/pentax/mnote-pentax-entry.c:195
+#: libexif/pentax/mnote-pentax-entry.c:260
+msgid "Off"
+msgstr "关闭"
+
+#: libexif/canon/mnote-canon-entry.c:84 libexif/canon/mnote-canon-entry.c:167
+#: libexif/canon/mnote-canon-entry.c:180 libexif/canon/mnote-canon-entry.c:328
+#: libexif/canon/mnote-canon-entry.c:400 libexif/fuji/mnote-fuji-entry.c:73
+#: libexif/fuji/mnote-fuji-entry.c:101 libexif/fuji/mnote-fuji-entry.c:111
+#: libexif/fuji/mnote-fuji-entry.c:119
+#: libexif/olympus/mnote-olympus-entry.c:131
+#: libexif/olympus/mnote-olympus-entry.c:183
+#: libexif/olympus/mnote-olympus-entry.c:199
+#: libexif/olympus/mnote-olympus-entry.c:244
+#: libexif/pentax/mnote-pentax-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:88
+#: libexif/pentax/mnote-pentax-entry.c:91
+#: libexif/pentax/mnote-pentax-entry.c:97
+#: libexif/pentax/mnote-pentax-entry.c:131
+#: libexif/pentax/mnote-pentax-entry.c:229
+#: libexif/pentax/mnote-pentax-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:290
+msgid "Auto"
+msgstr "自动"
+
+#: libexif/canon/mnote-canon-entry.c:85 libexif/canon/mnote-canon-entry.c:302
+#: libexif/canon/mnote-canon-entry.c:347 libexif/canon/mnote-canon-entry.c:361
+#: libexif/canon/mnote-canon-entry.c:371 libexif/fuji/mnote-fuji-entry.c:102
+#: libexif/fuji/mnote-fuji-entry.c:108 libexif/fuji/mnote-fuji-entry.c:116
+#: libexif/fuji/mnote-fuji-entry.c:143
+#: libexif/olympus/mnote-olympus-entry.c:179
+#: libexif/olympus/mnote-olympus-entry.c:533
+#: libexif/olympus/mnote-olympus-entry.c:550
+#: libexif/pentax/mnote-pentax-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:261
+msgid "On"
+msgstr "打开"
+
+#: libexif/canon/mnote-canon-entry.c:86 libexif/fuji/mnote-fuji-entry.c:104
+#: libexif/olympus/mnote-olympus-entry.c:184
+#: libexif/pentax/mnote-pentax-entry.c:94
+msgid "Red-eye reduction"
+msgstr "红眼消除"
+
+#: libexif/canon/mnote-canon-entry.c:87
+msgid "Slow synchro"
+msgstr "慢速同步"
+
+#: libexif/canon/mnote-canon-entry.c:88
+#, fuzzy
+msgid "Auto, red-eye reduction"
+msgstr "自动 + 红眼消除"
+
+#: libexif/canon/mnote-canon-entry.c:89
+#: libexif/pentax/mnote-pentax-entry.c:200
+#, fuzzy
+msgid "On, red-eye reduction"
+msgstr "开 + 红眼消除"
+
+#: libexif/canon/mnote-canon-entry.c:90
+msgid "External flash"
+msgstr "外置闪光灯"
+
+#: libexif/canon/mnote-canon-entry.c:91 libexif/canon/mnote-canon-entry.c:101
+#: libexif/canon/mnote-canon-entry.c:294
+msgid "Single"
+msgstr "单一"
+
+#: libexif/canon/mnote-canon-entry.c:92 libexif/canon/mnote-canon-entry.c:102
+#: libexif/canon/mnote-canon-entry.c:295
+msgid "Continuous"
+msgstr "连续"
+
+#: libexif/canon/mnote-canon-entry.c:93
+msgid "Movie"
+msgstr "电影"
+
+#: libexif/canon/mnote-canon-entry.c:94
+msgid "Continuous, speed priority"
+msgstr "连续,速度优先"
+
+#: libexif/canon/mnote-canon-entry.c:95
+msgid "Continuous, low"
+msgstr "连续,低"
+
+#: libexif/canon/mnote-canon-entry.c:96
+msgid "Continuous, high"
+msgstr "连续,高"
+
+#: libexif/canon/mnote-canon-entry.c:97
+msgid "One-shot AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:98
+msgid "AI servo AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:99
+msgid "AI focus AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:100 libexif/canon/mnote-canon-entry.c:103
+msgid "Manual focus"
+msgstr "手动对焦"
+
+#: libexif/canon/mnote-canon-entry.c:104 libexif/canon/mnote-canon-entry.c:132
+#: libexif/canon/mnote-canon-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:212
+msgid "Pan focus"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:105
+msgid "JPEG"
+msgstr "JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:106
+msgid "CRW+THM"
+msgstr "CRW+THM"
+
+#: libexif/canon/mnote-canon-entry.c:107
+msgid "AVI+THM"
+msgstr "AVI+THM"
+
+#: libexif/canon/mnote-canon-entry.c:108
+msgid "TIF"
+msgstr "TIF"
+
+#: libexif/canon/mnote-canon-entry.c:109
+msgid "TIF+JPEG"
+msgstr "TIF+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:110
+msgid "CR2"
+msgstr "CR2"
+
+#: libexif/canon/mnote-canon-entry.c:111
+msgid "CR2+JPEG"
+msgstr "CR2+JPEG"
+
+#: libexif/canon/mnote-canon-entry.c:112
+msgid "Large"
+msgstr "大"
+
+#: libexif/canon/mnote-canon-entry.c:113
+msgid "Medium"
+msgstr "中"
+
+#: libexif/canon/mnote-canon-entry.c:114
+msgid "Small"
+msgstr "小"
+
+#: libexif/canon/mnote-canon-entry.c:115
+msgid "Medium 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:116
+msgid "Medium 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:117
+msgid "Medium 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:118
+msgid "Postcard"
+msgstr "明信片"
+
+#: libexif/canon/mnote-canon-entry.c:119
+msgid "Widescreen"
+msgstr "宽屏"
+
+#: libexif/canon/mnote-canon-entry.c:120
+msgid "Full auto"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:121 libexif/canon/mnote-canon-entry.c:179
+#: libexif/canon/mnote-canon-entry.c:201 libexif/canon/mnote-canon-entry.c:285
+#: libexif/canon/mnote-canon-entry.c:392 libexif/exif-entry.c:744
+#: libexif/fuji/mnote-fuji-entry.c:112
+#: libexif/olympus/mnote-olympus-entry.c:90
+#: libexif/olympus/mnote-olympus-entry.c:200
+#: libexif/pentax/mnote-pentax-entry.c:79
+#: libexif/pentax/mnote-pentax-entry.c:102
+#: libexif/pentax/mnote-pentax-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:165
+#: libexif/pentax/mnote-pentax-entry.c:211
+#: libexif/pentax/mnote-pentax-entry.c:250
+msgid "Manual"
+msgstr "手动"
+
+#: libexif/canon/mnote-canon-entry.c:122 libexif/canon/mnote-canon-entry.c:430
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:755
+#: libexif/fuji/mnote-fuji-entry.c:121 libexif/pentax/mnote-pentax-entry.c:167
+#: libexif/pentax/mnote-pentax-entry.c:301
+msgid "Landscape"
+msgstr "风景"
+
+#: libexif/canon/mnote-canon-entry.c:123
+msgid "Fast shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:124
+msgid "Slow shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:125 libexif/fuji/mnote-fuji-entry.c:123
+#: libexif/olympus/mnote-olympus-entry.c:254
+msgid "Night"
+msgstr "夜景"
+
+#: libexif/canon/mnote-canon-entry.c:126
+msgid "Grayscale"
+msgstr "灰阶"
+
+#: libexif/canon/mnote-canon-entry.c:127 libexif/canon/mnote-canon-entry.c:308
+#: libexif/pentax/mnote-pentax-entry.c:128
+msgid "Sepia"
+msgstr "棕褐色"
+
+#: libexif/canon/mnote-canon-entry.c:128 libexif/canon/mnote-canon-entry.c:429
+#: libexif/exif-entry.c:671 libexif/exif-entry.c:753
+#: libexif/fuji/mnote-fuji-entry.c:120 libexif/pentax/mnote-pentax-entry.c:166
+#: libexif/pentax/mnote-pentax-entry.c:291
+#: libexif/pentax/mnote-pentax-entry.c:294
+#: libexif/pentax/mnote-pentax-entry.c:300
+msgid "Portrait"
+msgstr "肖像模式"
+
+#: libexif/canon/mnote-canon-entry.c:129 libexif/fuji/mnote-fuji-entry.c:122
+msgid "Sports"
+msgstr "运动模式"
+
+#: libexif/canon/mnote-canon-entry.c:131 libexif/canon/mnote-canon-entry.c:309
+#: libexif/canon/mnote-canon-entry.c:335 libexif/canon/mnote-canon-entry.c:407
+#: libexif/fuji/mnote-fuji-entry.c:89 libexif/pentax/mnote-pentax-entry.c:127
+msgid "Black & white"
+msgstr "黑白"
+
+#: libexif/canon/mnote-canon-entry.c:133 libexif/canon/mnote-canon-entry.c:305
+msgid "Vivid"
+msgstr "鲜艳"
+
+#: libexif/canon/mnote-canon-entry.c:134 libexif/canon/mnote-canon-entry.c:306
+#: libexif/canon/mnote-canon-entry.c:431
+msgid "Neutral"
+msgstr "中性"
+
+#: libexif/canon/mnote-canon-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:93
+msgid "Flash off"
+msgstr "闪光灯关闭"
+
+#: libexif/canon/mnote-canon-entry.c:136
+msgid "Long shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:137 libexif/canon/mnote-canon-entry.c:188
+#: libexif/olympus/mnote-olympus-entry.c:171
+msgid "Super macro"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:138
+msgid "Foliage"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:139
+msgid "Indoor"
+msgstr "室内"
+
+#: libexif/canon/mnote-canon-entry.c:140 libexif/fuji/mnote-fuji-entry.c:135
+#: libexif/pentax/mnote-pentax-entry.c:175
+msgid "Fireworks"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:141 libexif/fuji/mnote-fuji-entry.c:133
+msgid "Beach"
+msgstr "海滩"
+
+#: libexif/canon/mnote-canon-entry.c:142 libexif/canon/mnote-canon-entry.c:344
+#: libexif/canon/mnote-canon-entry.c:416 libexif/fuji/mnote-fuji-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:187
+#: libexif/pentax/mnote-pentax-entry.c:292
+#: libexif/pentax/mnote-pentax-entry.c:298
+msgid "Underwater"
+msgstr "水下"
+
+#: libexif/canon/mnote-canon-entry.c:143 libexif/fuji/mnote-fuji-entry.c:134
+msgid "Snow"
+msgstr "雪景"
+
+#: libexif/canon/mnote-canon-entry.c:144
+msgid "Kids & pets"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:145
+msgid "Night snapshot"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:146
+msgid "Digital macro"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:147
+msgid "My colors"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:148
+msgid "Still image"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:149
+msgid "Color accent"
+msgstr "色调"
+
+#: libexif/canon/mnote-canon-entry.c:150
+msgid "Color swap"
+msgstr "颜色交换"
+
+#: libexif/canon/mnote-canon-entry.c:151
+msgid "Aquarium"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:152
+msgid "ISO 3200"
+msgstr "ISO 3200"
+
+#: libexif/canon/mnote-canon-entry.c:153 libexif/canon/mnote-canon-entry.c:348
+#: libexif/canon/mnote-canon-entry.c:365 libexif/canon/mnote-canon-entry.c:417
+#: libexif/olympus/mnote-olympus-entry.c:189
+#: libexif/olympus/mnote-olympus-entry.c:226
+#: libexif/olympus/mnote-olympus-entry.c:451
+#: libexif/pentax/mnote-pentax-entry.c:242
+msgid "None"
+msgstr "无"
+
+#: libexif/canon/mnote-canon-entry.c:154
+msgid "2x"
+msgstr "2x"
+
+#: libexif/canon/mnote-canon-entry.c:155
+msgid "4x"
+msgstr "4x"
+
+#: libexif/canon/mnote-canon-entry.c:156 libexif/exif-entry.c:702
+#: libexif/exif-entry.c:732
+msgid "Other"
+msgstr "其它"
+
+#: libexif/canon/mnote-canon-entry.c:158 libexif/canon/mnote-canon-entry.c:161
+#: libexif/canon/mnote-canon-entry.c:164 libexif/canon/mnote-canon-entry.c:398
+#: libexif/fuji/mnote-fuji-entry.c:86 libexif/pentax/mnote-pentax-entry.c:112
+#: libexif/pentax/mnote-pentax-entry.c:117
+msgid "High"
+msgstr "高"
+
+#: libexif/canon/mnote-canon-entry.c:159 libexif/canon/mnote-canon-entry.c:162
+#: libexif/canon/mnote-canon-entry.c:165 libexif/canon/mnote-canon-entry.c:396
+#: libexif/pentax/mnote-pentax-entry.c:111
+#: libexif/pentax/mnote-pentax-entry.c:116
+msgid "Low"
+msgstr "低"
+
+#: libexif/canon/mnote-canon-entry.c:166
+msgid "Auto high"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:168
+msgid "50"
+msgstr "50"
+
+#: libexif/canon/mnote-canon-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:120
+#: libexif/pentax/mnote-pentax-entry.c:122
+msgid "100"
+msgstr "100"
+
+#: libexif/canon/mnote-canon-entry.c:170
+#: libexif/pentax/mnote-pentax-entry.c:121
+#: libexif/pentax/mnote-pentax-entry.c:123
+msgid "200"
+msgstr "200"
+
+#: libexif/canon/mnote-canon-entry.c:171
+msgid "400"
+msgstr "400"
+
+#: libexif/canon/mnote-canon-entry.c:172
+msgid "800"
+msgstr "800"
+
+#: libexif/canon/mnote-canon-entry.c:173
+msgid "Default"
+msgstr "默认"
+
+#: libexif/canon/mnote-canon-entry.c:174 libexif/exif-entry.c:698
+msgid "Spot"
+msgstr "点"
+
+#: libexif/canon/mnote-canon-entry.c:175 libexif/exif-entry.c:696
+msgid "Average"
+msgstr "平均"
+
+#: libexif/canon/mnote-canon-entry.c:176
+msgid "Evaluative"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:177 libexif/exif-entry.c:701
+msgid "Partial"
+msgstr "局部"
+
+#: libexif/canon/mnote-canon-entry.c:178 libexif/exif-entry.c:697
+msgid "Center-weighted average"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:181
+msgid "Not known"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:183
+msgid "Very close"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:184 libexif/exif-entry.c:797
+msgid "Close"
+msgstr "关闭"
+
+#: libexif/canon/mnote-canon-entry.c:185
+msgid "Middle range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:186
+msgid "Far range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:189
+#: libexif/pentax/mnote-pentax-entry.c:210
+msgid "Infinity"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:190
+msgid "Manual AF point selection"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:191 libexif/canon/mnote-canon-entry.c:349
+msgid "None (MF)"
+msgstr "无 (MF)"
+
+#: libexif/canon/mnote-canon-entry.c:192
+msgid "Auto-selected"
+msgstr "自动选择"
+
+#: libexif/canon/mnote-canon-entry.c:193 libexif/canon/mnote-canon-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:224
+#: libexif/pentax/mnote-pentax-entry.c:238
+msgid "Right"
+msgstr "右"
+
+#: libexif/canon/mnote-canon-entry.c:194 libexif/canon/mnote-canon-entry.c:351
+#: libexif/pentax/mnote-pentax-entry.c:222
+#: libexif/pentax/mnote-pentax-entry.c:237
+msgid "Center"
+msgstr "中"
+
+#: libexif/canon/mnote-canon-entry.c:195 libexif/canon/mnote-canon-entry.c:353
+#: libexif/pentax/mnote-pentax-entry.c:220
+#: libexif/pentax/mnote-pentax-entry.c:236
+msgid "Left"
+msgstr "左"
+
+#: libexif/canon/mnote-canon-entry.c:196
+msgid "Auto AF point selection"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:197
+msgid "Easy shooting"
+msgstr "简易拍摄"
+
+#: libexif/canon/mnote-canon-entry.c:198
+#: libexif/pentax/mnote-pentax-entry.c:163
+msgid "Program"
+msgstr "程序"
+
+#: libexif/canon/mnote-canon-entry.c:199
+msgid "Tv-priority"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:200
+msgid "Av-priority"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:202
+msgid "A-DEP"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:203
+msgid "M-DEP"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:204
+msgid "Canon EF 50mm f/1.8"
+msgstr "佳能 EF 50mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:205
+msgid "Canon EF 28mm f/2.8"
+msgstr "佳能 EF 28mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:206
+msgid "Sigma UC Zoom 35-135mm f/4-5.6"
+msgstr "适马 UC Zoom 35-135mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:207
+msgid "Tokina AF193-2 19-35mm f/3.5-4.5"
+msgstr "图丽 AF193-2 19-35mm f/3.5-4.5"
+
+#: libexif/canon/mnote-canon-entry.c:208
+msgid "Canon EF 100-300mm F5.6L"
+msgstr "佳能 EF 100-300mm F5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:209
+msgid "Sigma 50mm f/2.8 EX or 28mm f/1.8"
+msgstr "适马 50mm f/2.8 EX or 28mm f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:210
+msgid "Canon EF 35mm f/2"
+msgstr "佳能 EF 35mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:211
+msgid "Canon EF 15mm f/2.8"
+msgstr "佳能 EF 15mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:212
+msgid "Canon EF 80-200mm f/2.8L"
+msgstr "佳能 EF 80-200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:213
+#, fuzzy
+msgid "Tokina AT-X280AF PRO 28-80mm F2.8 Aspherical"
+msgstr "图丽 AT-X280AF PRO 28-80mm F2.8 ASPHERICAL"
+
+#: libexif/canon/mnote-canon-entry.c:214
+msgid "Cosina 100mm f/3.5 Macro AF"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:215
+msgid "Tamron AF Aspherical 28-200mm f/3.8-5.6"
+msgstr "腾龙 AF Aspherical 28-200mm f/3.8-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:216
+msgid "Canon EF 50mm f/1.8 MkII"
+msgstr "佳能 EF 50mm f/1.8 MkII"
+
+#: libexif/canon/mnote-canon-entry.c:217
+msgid "Tamron SP AF 300mm f/2.8 LD IF"
+msgstr "腾龙 SP AF 300mm f/2.8 LD IF"
+
+#: libexif/canon/mnote-canon-entry.c:218
+msgid "Canon EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+msgstr "佳能 EF 24mm f/2.8 or Sigma 15mm f/2.8 EX Fisheye"
+
+#: libexif/canon/mnote-canon-entry.c:219
+msgid "Canon EF 75-300mm f/4-5.6"
+msgstr "佳能 EF 75-300mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:220
+msgid "Canon EF 28-80mm f/3.5-5.6"
+msgstr "佳能 EF 28-80mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:221
+msgid "Canon EF 28-105mm f/4-5.6"
+msgstr "佳能 EF 28-105mm f/4-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:222
+msgid "Canon EF-S 18-55mm f/3.5-5.6"
+msgstr "佳能 EF-S 18-55mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:223
+msgid "Canon MP-E 65mm f/2.8 1-5x Macro Photo"
+msgstr "佳能 MP-E 65mm f/2.8 1-5x Macro Photo"
+
+#: libexif/canon/mnote-canon-entry.c:224
+msgid "Canon TS-E 24mm f/3.5L"
+msgstr "佳能 TS-E 24mm f/3.5L"
+
+#: libexif/canon/mnote-canon-entry.c:225
+msgid "Canon TS-E 45mm f/2.8"
+msgstr "佳能 TS-E 45mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:226
+msgid "Canon TS-E 90mm f/2.8"
+msgstr "佳能 TS-E 90mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:227
+msgid "Canon EF 50mm f/1.0L"
+msgstr "佳能 EF 50mm f/1.0L"
+
+#: libexif/canon/mnote-canon-entry.c:228
+msgid "Sigma 17-35mm f2.8-4 EX Aspherical HSM"
+msgstr "适马 17-35mm f2.8-4 EX Aspherical HSM"
+
+#: libexif/canon/mnote-canon-entry.c:229
+msgid "Canon EF 600mm f/4L IS"
+msgstr "佳能 EF 600mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:230
+msgid "Canon EF 200mm f/1.8L"
+msgstr "佳能 EF 200mm f/1.8L"
+
+#: libexif/canon/mnote-canon-entry.c:231
+msgid "Canon EF 300mm f/2.8L"
+msgstr "佳能 EF 300mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:232
+msgid "Canon EF 85mm f/1.2L"
+msgstr "佳能 EF 85mm f/1.2L"
+
+#: libexif/canon/mnote-canon-entry.c:233
+msgid "Canon EF 400mm f/2.8L"
+msgstr "佳能 EF 400mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:234
+msgid "Canon EF 500mm f/4.5L"
+msgstr "佳能 EF 500mm f/4.5L"
+
+#: libexif/canon/mnote-canon-entry.c:235
+msgid "Canon EF 300mm f/2.8L IS"
+msgstr "佳能 EF 300mm f/2.8L IS"
+
+#: libexif/canon/mnote-canon-entry.c:236
+msgid "Canon EF 500mm f/4L IS"
+msgstr "佳能 EF 500mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:237
+msgid "Canon EF 100mm f/2"
+msgstr "佳能 EF 100mm f/2"
+
+#: libexif/canon/mnote-canon-entry.c:238
+msgid "Sigma 20mm EX f/1.8"
+msgstr "适马 20mm EX f/1.8"
+
+#: libexif/canon/mnote-canon-entry.c:239
+msgid "Canon EF 200mm f/2.8L"
+msgstr "佳能 EF 200mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:240
+msgid "Sigma 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+msgstr "适马 10-20mm F4-5.6 or 12-24mm f/4.5-5.6 or 14mm f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:241
+msgid "Canon EF 35-350mm f/3.5-5.6L"
+msgstr "佳能 EF 35-350mm f/3.5-5.6L"
+
+#: libexif/canon/mnote-canon-entry.c:242
+msgid "Canon EF 85mm f/1.8 USM"
+msgstr "佳能 EF 85mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:243
+msgid "Canon EF 28-105mm f/3.5-4.5 USM"
+msgstr "佳能 EF 28-105mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:244
+msgid "Canon EF 20-35mm f/3.5-4.5 USM"
+msgstr "佳能 EF 20-35mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:245
+msgid "Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+msgstr "佳能 EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8"
+
+#: libexif/canon/mnote-canon-entry.c:246
+msgid "Canon EF 70-200mm f/2.8 L"
+msgstr "佳能 EF 70-200mm f/2.8 L"
+
+#: libexif/canon/mnote-canon-entry.c:247
+msgid "Canon EF 70-200mm f/2.8 L + x1.4"
+msgstr "佳能 EF 70-200mm f/2.8 L + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:248
+msgid "Canon EF 70-200mm f/2.8 L + x2"
+msgstr "佳能 EF 70-200mm f/2.8 L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:249
+msgid "Canon EF 28mm f/1.8 USM"
+msgstr "佳能 EF 28mm f/1.8 USM"
+
+#: libexif/canon/mnote-canon-entry.c:250
+msgid "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"
+msgstr "适马 15-30mm f/3.5-4.5 EX DG Aspherical"
+
+#: libexif/canon/mnote-canon-entry.c:251
+msgid "Canon EF 200mm f/2.8L II"
+msgstr "佳能 EF 200mm f/2.8L II"
+
+#: libexif/canon/mnote-canon-entry.c:252
+msgid "Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+msgstr "佳能 EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5"
+
+#: libexif/canon/mnote-canon-entry.c:253
+msgid "Canon EF 135mm f/2L"
+msgstr "佳能 EF 135mm f/2L"
+
+#: libexif/canon/mnote-canon-entry.c:254
+msgid "Canon EF 24-85mm f/3.5-4.5 USM"
+msgstr "佳能 EF 24-85mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:255
+msgid "Canon EF 300mm f/4L IS"
+msgstr "佳能 EF 300mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:256
+msgid "Canon EF 28-135mm f/3.5-5.6 IS"
+msgstr "佳能 EF 28-135mm f/3.5-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:257
+msgid "Canon EF 35mm f/1.4L"
+msgstr "佳能 EF 35mm f/1.4L"
+
+#: libexif/canon/mnote-canon-entry.c:258
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x1.4"
+msgstr "佳能 EF 100-400mm f/4.5-5.6L IS + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:259
+msgid "Canon EF 100-400mm f/4.5-5.6L IS + x2"
+msgstr "佳能 EF 100-400mm f/4.5-5.6L IS + x2"
+
+#: libexif/canon/mnote-canon-entry.c:260
+msgid "Canon EF 100-400mm f/4.5-5.6L IS"
+msgstr "佳能 EF 100-400mm f/4.5-5.6L IS"
+
+#: libexif/canon/mnote-canon-entry.c:261
+msgid "Canon EF 400mm f/2.8L + x2"
+msgstr "佳能 EF 400mm f/2.8L + x2"
+
+#: libexif/canon/mnote-canon-entry.c:262
+msgid "Canon EF 70-200mm f/4L"
+msgstr "佳能 EF 70-200mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:263
+msgid "Canon EF 100mm f/2.8 Macro"
+msgstr "佳能 EF 100mm f/2.8 Macro"
+
+#: libexif/canon/mnote-canon-entry.c:264
+msgid "Canon EF 400mm f/4 DO IS"
+msgstr "佳能 EF 400mm f/4 DO IS"
+
+#: libexif/canon/mnote-canon-entry.c:265
+msgid "Canon EF 75-300mm f/4-5.6 IS"
+msgstr "佳能 EF 75-300mm f/4-5.6 IS"
+
+#: libexif/canon/mnote-canon-entry.c:266
+msgid "Canon EF 50mm f/1.4"
+msgstr "佳能 EF 50mm f/1.4"
+
+#: libexif/canon/mnote-canon-entry.c:267
+msgid "Canon EF 28-80 f/3.5-5.6 USM IV"
+msgstr "佳能 EF 28-80 f/3.5-5.6 USM IV"
+
+#: libexif/canon/mnote-canon-entry.c:268
+msgid "Canon EF 28-200mm f/3.5-5.6"
+msgstr "佳能 EF 28-200mm f/3.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:269
+msgid "Canon EF 90-300mm f/4.5-5.6"
+msgstr "佳能 EF 90-300mm f/4.5-5.6"
+
+#: libexif/canon/mnote-canon-entry.c:270
+msgid "Canon EF-S 18-55mm f/3.5-4.5 USM"
+msgstr "佳能 EF-S 18-55mm f/3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:271
+msgid "Canon EF 70-200mm f/2.8L IS USM"
+msgstr "佳能 EF 70-200mm f/2.8L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:272
+msgid "Canon EF 70-200mm f/2.8L IS USM + x1.4"
+msgstr "佳能 EF 70-200mm f/2.8L IS USM + x1.4"
+
+#: libexif/canon/mnote-canon-entry.c:273
+msgid "Canon EF 70-200mm f/2.8L IS USM + x2"
+msgstr "佳能 EF 70-200mm f/2.8L IS USM + x2"
+
+#: libexif/canon/mnote-canon-entry.c:274
+msgid "Canon EF 16-35mm f/2.8L"
+msgstr "佳能 EF 16-35mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:275
+msgid "Canon EF 24-70mm f/2.8L"
+msgstr "佳能 EF 24-70mm f/2.8L"
+
+#: libexif/canon/mnote-canon-entry.c:276
+msgid "Canon EF 17-40mm f/4L"
+msgstr "佳能 EF 17-40mm f/4L"
+
+#: libexif/canon/mnote-canon-entry.c:277
+msgid "Canon EF 70-300mm f/4.5-5.6 DO IS USM"
+msgstr "佳能 EF 70-300mm f/4.5-5.6 DO IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:278
+msgid "Canon EF-S 17-85mm f4-5.6 IS USM"
+msgstr "佳能 EF-S 17-85mm f4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:279
+msgid "Canon EF-S10-22mm F3.5-4.5 USM"
+msgstr "佳能 EF-S10-22mm F3.5-4.5 USM"
+
+#: libexif/canon/mnote-canon-entry.c:280
+msgid "Canon EF-S60mm F2.8 Macro USM"
+msgstr "佳能 EF-S60mm F2.8 Macro USM"
+
+#: libexif/canon/mnote-canon-entry.c:281
+msgid "Canon EF 24-105mm f/4L IS"
+msgstr "佳能 EF 24-105mm f/4L IS"
+
+#: libexif/canon/mnote-canon-entry.c:282
+msgid "Canon EF 70-300mm F4-5.6 IS USM"
+msgstr "佳能 EF 70-300mm F4-5.6 IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:283
+msgid "Canon EF 50mm F1.2L USM"
+msgstr "佳能 EF 50mm F1.2L USM"
+
+#: libexif/canon/mnote-canon-entry.c:284
+msgid "Canon EF 70-200mm f/4L IS USM"
+msgstr "佳能 EF 70-200mm f/4L IS USM"
+
+#: libexif/canon/mnote-canon-entry.c:286
+msgid "TTL"
+msgstr "TTL"
+
+#: libexif/canon/mnote-canon-entry.c:287
+msgid "A-TTL"
+msgstr "A-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:288
+msgid "E-TTL"
+msgstr "E-TTL"
+
+#: libexif/canon/mnote-canon-entry.c:289
+msgid "FP sync enabled"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:290
+msgid "2nd-curtain sync used"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:291
+msgid "FP sync used"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:292
+#: libexif/olympus/mnote-olympus-entry.c:190
+msgid "Internal"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:293
+#: libexif/olympus/mnote-olympus-entry.c:191
+msgid "External"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:296
+msgid "Normal AE"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:297
+msgid "Exposure compensation"
+msgstr "曝光补偿"
+
+#: libexif/canon/mnote-canon-entry.c:298
+msgid "AE lock"
+msgstr "AE 锁"
+
+#: libexif/canon/mnote-canon-entry.c:299
+#, fuzzy
+msgid "AE lock + exposure compensation"
+msgstr "AE 锁定 + 曝光补偿"
+
+#: libexif/canon/mnote-canon-entry.c:300
+msgid "No AE"
+msgstr "无 AE"
+
+#: libexif/canon/mnote-canon-entry.c:303
+msgid "On, shot only"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:307
+msgid "Smooth"
+msgstr "平滑"
+
+#: libexif/canon/mnote-canon-entry.c:310 libexif/canon/mnote-canon-entry.c:334
+#: libexif/canon/mnote-canon-entry.c:393 libexif/canon/mnote-canon-entry.c:406
+#: libexif/fuji/mnote-fuji-entry.c:81 libexif/pentax/mnote-pentax-entry.c:87
+msgid "Custom"
+msgstr "自定义"
+
+#: libexif/canon/mnote-canon-entry.c:311
+msgid "My color data"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:313 libexif/canon/mnote-canon-entry.c:375
+#: libexif/pentax/mnote-pentax-entry.c:126
+#: libexif/pentax/mnote-pentax-entry.c:145
+msgid "Full"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:314 libexif/canon/mnote-canon-entry.c:374
+msgid "2/3"
+msgstr "2/3"
+
+#: libexif/canon/mnote-canon-entry.c:315 libexif/canon/mnote-canon-entry.c:373
+msgid "1/3"
+msgstr "1/3"
+
+#: libexif/canon/mnote-canon-entry.c:321
+msgid "Fixed"
+msgstr "已修复"
+
+#: libexif/canon/mnote-canon-entry.c:322 libexif/pentax/mnote-pentax-tag.c:44
+msgid "Zoom"
+msgstr "缩放"
+
+#: libexif/canon/mnote-canon-entry.c:329
+msgid "Sunny"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:330 libexif/canon/mnote-canon-entry.c:402
+#: libexif/exif-entry.c:719 libexif/fuji/mnote-fuji-entry.c:75
+#: libexif/olympus/mnote-olympus-entry.c:136
+#: libexif/pentax/mnote-pentax-entry.c:255
+msgid "Cloudy"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:331 libexif/canon/mnote-canon-entry.c:403
+#: libexif/exif-entry.c:716 libexif/pentax/mnote-pentax-entry.c:100
+#: libexif/pentax/mnote-pentax-entry.c:249
+msgid "Tungsten"
+msgstr "钨灯"
+
+#: libexif/canon/mnote-canon-entry.c:332 libexif/canon/mnote-canon-entry.c:404
+#: libexif/exif-entry.c:715 libexif/pentax/mnote-pentax-entry.c:101
+#: libexif/pentax/mnote-pentax-entry.c:248
+msgid "Fluorescent"
+msgstr "荧光灯"
+
+#: libexif/canon/mnote-canon-entry.c:333 libexif/canon/mnote-canon-entry.c:405
+#: libexif/exif-entry.c:717 libexif/exif-entry.c:759 libexif/exif-tag.c:577
+#: libexif/fuji/mnote-fuji-entry.c:80 libexif/pentax/mnote-pentax-entry.c:254
+msgid "Flash"
+msgstr "闪光灯"
+
+#: libexif/canon/mnote-canon-entry.c:336 libexif/canon/mnote-canon-entry.c:408
+#: libexif/exif-entry.c:720 libexif/pentax/mnote-pentax-entry.c:99
+#: libexif/pentax/mnote-pentax-entry.c:247
+msgid "Shade"
+msgstr "阴影"
+
+#: libexif/canon/mnote-canon-entry.c:337 libexif/canon/mnote-canon-entry.c:409
+msgid "Manual temperature (Kelvin)"
+msgstr "手动色温(开氏)"
+
+#: libexif/canon/mnote-canon-entry.c:338 libexif/canon/mnote-canon-entry.c:410
+msgid "PC set 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:339 libexif/canon/mnote-canon-entry.c:411
+msgid "PC set 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:340 libexif/canon/mnote-canon-entry.c:412
+msgid "PC set 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:341 libexif/canon/mnote-canon-entry.c:413
+#: libexif/exif-entry.c:721 libexif/fuji/mnote-fuji-entry.c:76
+#: libexif/pentax/mnote-pentax-entry.c:251
+msgid "Daylight fluorescent"
+msgstr "日光色荧光灯"
+
+#: libexif/canon/mnote-canon-entry.c:342 libexif/canon/mnote-canon-entry.c:414
+msgid "Custom 1"
+msgstr "自定义 1"
+
+#: libexif/canon/mnote-canon-entry.c:343 libexif/canon/mnote-canon-entry.c:415
+msgid "Custom 2"
+msgstr "自定义 2"
+
+#: libexif/canon/mnote-canon-entry.c:346 libexif/exif-entry.c:672
+#: libexif/pentax/mnote-pentax-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:132
+#: libexif/pentax/mnote-pentax-entry.c:169
+#: libexif/pentax/mnote-pentax-entry.c:295
+msgid "Night scene"
+msgstr "夜景"
+
+#: libexif/canon/mnote-canon-entry.c:352
+#, fuzzy
+msgid "Center-right"
+msgstr "中心权重"
+
+#: libexif/canon/mnote-canon-entry.c:354
+#, fuzzy
+msgid "Left-right"
+msgstr "右上"
+
+#: libexif/canon/mnote-canon-entry.c:355
+#, fuzzy
+msgid "Left-center"
+msgstr "居中"
+
+#: libexif/canon/mnote-canon-entry.c:356
+msgid "All"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:358
+msgid "On (shot 1)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:359
+msgid "On (shot 2)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:360
+msgid "On (shot 3)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:362
+msgid "EOS high-end"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:363
+msgid "Compact"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:364
+msgid "EOS mid-range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:366
+msgid "Rotate 90 CW"
+msgstr "逆时针旋转90度"
+
+#: libexif/canon/mnote-canon-entry.c:367
+msgid "Rotate 180"
+msgstr "旋转180度"
+
+#: libexif/canon/mnote-canon-entry.c:368
+msgid "Rotate 270 CW"
+msgstr "逆时针旋转270度"
+
+#: libexif/canon/mnote-canon-entry.c:369
+msgid "Rotated by software"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:381
+#: libexif/olympus/mnote-olympus-entry.c:606
+msgid "Left to right"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:382
+#: libexif/olympus/mnote-olympus-entry.c:609
+msgid "Right to left"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:383
+#: libexif/olympus/mnote-olympus-entry.c:612
+msgid "Bottom to top"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:384
+#: libexif/olympus/mnote-olympus-entry.c:615
+msgid "Top to bottom"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:385
+msgid "2x2 matrix (clockwise)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:391 libexif/canon/mnote-canon-entry.c:397
+#: libexif/canon/mnote-canon-entry.c:418 libexif/canon/mnote-canon-entry.c:428
+#: libexif/exif-entry.c:671 libexif/fuji/mnote-fuji-entry.c:84
+#: libexif/fuji/mnote-fuji-entry.c:93 libexif/fuji/mnote-fuji-entry.c:163
+#: libexif/olympus/mnote-olympus-entry.c:227
+msgid "Standard"
+msgstr "标准"
+
+#: libexif/canon/mnote-canon-entry.c:394
+msgid "N/A"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:395
+msgid "Lowest"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:399
+msgid "Highest"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:401 libexif/exif-entry.c:714
+#: libexif/fuji/mnote-fuji-entry.c:74
+#: libexif/olympus/mnote-olympus-entry.c:133
+#: libexif/pentax/mnote-pentax-entry.c:98
+#: libexif/pentax/mnote-pentax-entry.c:246
+msgid "Daylight"
+msgstr "日光"
+
+#: libexif/canon/mnote-canon-entry.c:419
+msgid "Set 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:420
+msgid "Set 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:421
+msgid "Set 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:422
+#, fuzzy
+msgid "User def. 1"
+msgstr "用户 1"
+
+#: libexif/canon/mnote-canon-entry.c:423
+#, fuzzy
+msgid "User def. 2"
+msgstr "用户 2"
+
+#: libexif/canon/mnote-canon-entry.c:424
+msgid "User def. 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:425
+msgid "External 1"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:426
+msgid "External 2"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:427
+msgid "External 3"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:432
+msgid "Faithful"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:115
+msgid "Monochrome"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:491
+msgid ", "
+msgstr ", "
+
+#: libexif/canon/mnote-canon-entry.c:577 libexif/canon/mnote-canon-entry.c:674
+#, c-format
+msgid "%i (ms)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:621
+#, c-format
+msgid "%.2f mm"
+msgstr "%.2f mm"
+
+#: libexif/canon/mnote-canon-entry.c:645
+#, c-format
+msgid "%.2f EV"
+msgstr "%.2f EV"
+
+#: libexif/canon/mnote-canon-entry.c:655 libexif/exif-entry.c:1064
+#, c-format
+msgid "1/%i"
+msgstr ""
+
+#: libexif/canon/mnote-canon-entry.c:667
+#, c-format
+msgid "%u mm"
+msgstr "%u mm"
+
+#: libexif/canon/mnote-canon-tag.c:35
+msgid "Settings (First Part)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:36 libexif/canon/mnote-canon-tag.c:92
+#: libexif/exif-tag.c:581 libexif/pentax/mnote-pentax-tag.c:88
+msgid "Focal Length"
+msgstr "焦距"
+
+#: libexif/canon/mnote-canon-tag.c:37
+msgid "Settings (Second Part)"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:38
+#: libexif/olympus/mnote-olympus-entry.c:595
+#: libexif/pentax/mnote-pentax-entry.c:177
+msgid "Panorama"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:39
+msgid "Image Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:40 libexif/olympus/mnote-olympus-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:113
+msgid "Firmware Version"
+msgstr "固件版本"
+
+#: libexif/canon/mnote-canon-tag.c:41
+msgid "Image Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:42
+msgid "Owner Name"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:43
+msgid "Color Information"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:44 libexif/fuji/mnote-fuji-tag.c:37
+#: libexif/olympus/mnote-olympus-tag.c:81
+#: libexif/olympus/mnote-olympus-tag.c:146
+msgid "Serial Number"
+msgstr "序列号"
+
+#: libexif/canon/mnote-canon-tag.c:45
+msgid "Custom Functions"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:56 libexif/fuji/mnote-fuji-tag.c:45
+msgid "Macro Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:57 libexif/canon/mnote-canon-tag.c:117
+#: libexif/olympus/mnote-olympus-tag.c:175
+#: libexif/pentax/mnote-pentax-tag.c:128
+msgid "Self-timer"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:58 libexif/fuji/mnote-fuji-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:94
+#: libexif/olympus/mnote-olympus-tag.c:107
+msgid "Quality"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:59 libexif/fuji/mnote-fuji-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:45
+#: libexif/olympus/mnote-olympus-tag.c:127
+#: libexif/pentax/mnote-pentax-tag.c:38 libexif/pentax/mnote-pentax-tag.c:73
+msgid "Flash Mode"
+msgstr "闪光模式"
+
+#: libexif/canon/mnote-canon-tag.c:60 libexif/pentax/mnote-pentax-tag.c:101
+msgid "Drive Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:61 libexif/canon/mnote-canon-tag.c:82
+#: libexif/olympus/mnote-olympus-tag.c:43
+#: libexif/olympus/mnote-olympus-tag.c:134
+#: libexif/olympus/mnote-olympus-tag.c:173
+#: libexif/pentax/mnote-pentax-tag.c:37 libexif/pentax/mnote-pentax-tag.c:74
+#: libexif/pentax/mnote-pentax-tag.c:130
+msgid "Focus Mode"
+msgstr "对焦模式"
+
+#: libexif/canon/mnote-canon-tag.c:62 libexif/pentax/mnote-pentax-tag.c:127
+msgid "Record Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:63 libexif/pentax/mnote-pentax-tag.c:71
+msgid "Image Size"
+msgstr "图片尺寸"
+
+#: libexif/canon/mnote-canon-tag.c:64
+msgid "Easy Shooting Mode"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:65 libexif/olympus/mnote-olympus-tag.c:64
+#: libexif/olympus/mnote-olympus-tag.c:101
+#: libexif/olympus/mnote-olympus-tag.c:110
+#: libexif/olympus/mnote-olympus-tag.c:180
+#: libexif/pentax/mnote-pentax-tag.c:89
+msgid "Digital Zoom"
+msgstr "数码变焦"
+
+#: libexif/canon/mnote-canon-tag.c:66 libexif/exif-tag.c:828
+#: libexif/fuji/mnote-fuji-tag.c:42 libexif/pentax/mnote-pentax-tag.c:46
+#: libexif/pentax/mnote-pentax-tag.c:91
+msgid "Contrast"
+msgstr "对比度"
+
+#: libexif/canon/mnote-canon-tag.c:67 libexif/exif-tag.c:832
+#: libexif/olympus/mnote-olympus-tag.c:75
+#: libexif/olympus/mnote-olympus-tag.c:87 libexif/pentax/mnote-pentax-tag.c:47
+#: libexif/pentax/mnote-pentax-tag.c:90
+msgid "Saturation"
+msgstr "饱和度"
+
+#: libexif/canon/mnote-canon-tag.c:68 libexif/exif-tag.c:836
+#: libexif/fuji/mnote-fuji-tag.c:39 libexif/pentax/mnote-pentax-tag.c:45
+#: libexif/pentax/mnote-pentax-tag.c:92
+msgid "Sharpness"
+msgstr "锐度"
+
+#: libexif/canon/mnote-canon-tag.c:69
+msgid "ISO"
+msgstr "ISO"
+
+#: libexif/canon/mnote-canon-tag.c:70 libexif/exif-tag.c:571
+#: libexif/pentax/mnote-pentax-tag.c:82
+msgid "Metering Mode"
+msgstr "测距模式"
+
+#: libexif/canon/mnote-canon-tag.c:71 libexif/olympus/mnote-olympus-tag.c:133
+msgid "Focus Range"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:72 libexif/canon/mnote-canon-tag.c:105
+msgid "AF Point"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:73 libexif/exif-tag.c:795
+msgid "Exposure Mode"
+msgstr "曝光模式"
+
+#: libexif/canon/mnote-canon-tag.c:74 libexif/olympus/mnote-olympus-tag.c:61
+#: libexif/pentax/mnote-pentax-tag.c:106
+msgid "Lens Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:75
+msgid "Long Focal Length of Lens"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:76
+msgid "Short Focal Length of Lens"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:77
+msgid "Focal Units per mm"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:78
+msgid "Maximal Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:79
+msgid "Minimal Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:80
+msgid "Flash Activity"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:81
+msgid "Flash Details"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:83
+msgid "AE Setting"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:84
+msgid "Image Stabilization"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:85
+msgid "Display Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:86
+msgid "Zoom Source Width"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:87
+msgid "Zoom Target Width"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:88
+msgid "Photo Effect"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:89 libexif/canon/mnote-canon-tag.c:118
+msgid "Manual Flash Output"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:90
+msgid "Color Tone"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:91
+msgid "Focal Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:93
+msgid "Focal Plane X Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:94
+msgid "Focal Plane Y Size"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:95
+msgid "Auto ISO"
+msgstr "自动 ISO"
+
+#: libexif/canon/mnote-canon-tag.c:96
+msgid "Shot ISO"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:97
+msgid "Measured EV"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:98
+msgid "Target Aperture"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:99
+msgid "Target Exposure Time"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:100 libexif/olympus/mnote-olympus-tag.c:129
+#: libexif/pentax/mnote-pentax-tag.c:81
+msgid "Exposure Compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:101 libexif/canon/mnote-canon-tag.c:123
+#: libexif/exif-tag.c:800 libexif/fuji/mnote-fuji-tag.c:40
+#: libexif/olympus/mnote-olympus-tag.c:41
+#: libexif/olympus/mnote-olympus-tag.c:98 libexif/pentax/mnote-pentax-tag.c:41
+#: libexif/pentax/mnote-pentax-tag.c:84 libexif/pentax/mnote-pentax-tag.c:124
+msgid "White Balance"
+msgstr "白平衡"
+
+#: libexif/canon/mnote-canon-tag.c:102
+msgid "Slow Shutter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:103
+msgid "Sequence Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:104
+msgid "Flash Guide Number"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:106 libexif/olympus/mnote-olympus-tag.c:52
+#: libexif/pentax/mnote-pentax-tag.c:109
+msgid "Flash Exposure Compensation"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:107
+msgid "AE Bracketing"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:108
+msgid "AE Bracket Value"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:109
+msgid "Focus Distance Upper"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:110
+msgid "Focus Distance Lower"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:111
+msgid "FNumber"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:112 libexif/exif-tag.c:466
+#: libexif/pentax/mnote-pentax-tag.c:78
+msgid "Exposure Time"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:113
+msgid "Bulb Duration"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:114
+msgid "Camera Type"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:115
+msgid "Auto Rotate"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:116
+msgid "ND Filter"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:119
+msgid "Panorama Frame"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:120
+msgid "Panorama Direction"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:121
+msgid "Tone Curve"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:122
+msgid "Sharpness Frequency"
+msgstr ""
+
+#: libexif/canon/mnote-canon-tag.c:124
+msgid "Picture Style"
+msgstr ""
+
+#: libexif/exif-byte-order.c:33
+msgid "Motorola"
+msgstr "摩托罗拉"
+
+#: libexif/exif-byte-order.c:35
+msgid "Intel"
+msgstr "英特尔"
+
+#: libexif/exif-data.c:780
+msgid "Size of data too small to allow for EXIF data."
+msgstr ""
+
+#: libexif/exif-data.c:841
+msgid "EXIF marker not found."
+msgstr ""
+
+#: libexif/exif-data.c:868
+msgid "EXIF header not found."
+msgstr ""
+
+#: libexif/exif-data.c:884
+msgid "Unknown encoding."
+msgstr ""
+
+#: libexif/exif-data.c:1168
+msgid "Ignore unknown tags"
+msgstr ""
+
+#: libexif/exif-data.c:1169
+msgid "Ignore unknown tags when loading EXIF data."
+msgstr ""
+
+#: libexif/exif-data.c:1170
+msgid "Follow specification"
+msgstr ""
+
+#: libexif/exif-data.c:1171
+msgid ""
+"Add, correct and remove entries to get EXIF data that follows the "
+"specification."
+msgstr ""
+
+#: libexif/exif-data.c:1173
+msgid "Do not change maker note"
+msgstr ""
+
+#: libexif/exif-data.c:1174
+msgid ""
+"When loading and resaving Exif data, save the maker note unmodified. Be "
+"aware that the maker note can get corrupted."
+msgstr ""
+
+#: libexif/exif-entry.c:234 libexif/exif-entry.c:303 libexif/exif-entry.c:336
+#, c-format
+msgid ""
+"Tag '%s' was of format '%s' (which is against specification) and has been "
+"changed to format '%s'."
+msgstr ""
+
+#: libexif/exif-entry.c:271
+#, c-format
+msgid ""
+"Tag '%s' is of format '%s' (which is against specification) but cannot be "
+"changed to format '%s'."
+msgstr ""
+
+#: libexif/exif-entry.c:354
+#, c-format
+msgid ""
+"Tag 'UserComment' had invalid format '%s'. Format has been set to "
+"'undefined'."
+msgstr ""
+
+#: libexif/exif-entry.c:381
+msgid ""
+"Tag 'UserComment' has been expanded to at least 8 bytes in order to follow "
+"the specification."
+msgstr ""
+
+#: libexif/exif-entry.c:396
+msgid ""
+"Tag 'UserComment' is not empty but does not start with a format identifier. "
+"This has been fixed."
+msgstr ""
+
+#: libexif/exif-entry.c:424
+msgid ""
+"Tag 'UserComment' did not start with a format identifier. This has been "
+"fixed."
+msgstr ""
+
+#: libexif/exif-entry.c:462
+#, c-format
+msgid "%i bytes undefined data"
+msgstr ""
+
+#: libexif/exif-entry.c:589
+#, c-format
+msgid "%i bytes unsupported data type"
+msgstr ""
+
+#: libexif/exif-entry.c:622
+#, c-format
+msgid "The tag '%s' contains data of an invalid format ('%s', expected '%s')."
+msgstr "标记'%s'包含无效格式的数据('%s,期望'%s')。"
+
+#: libexif/exif-entry.c:635
+#, c-format
+msgid ""
+"The tag '%s' contains an invalid number of components (%i, expected %i)."
+msgstr "标记'%s'包含无效数量的组件(%i,期望%i)。"
+
+#: libexif/exif-entry.c:649
+msgid "Chunky format"
+msgstr ""
+
+#: libexif/exif-entry.c:649
+msgid "Planar format"
+msgstr ""
+
+#: libexif/exif-entry.c:651 libexif/exif-entry.c:743
+#: test/nls/test-codeset.c:54
+msgid "Not defined"
+msgstr "未定义"
+
+#: libexif/exif-entry.c:651
+msgid "One-chip color area sensor"
+msgstr "单芯片色彩区域传感器"
+
+#: libexif/exif-entry.c:652
+msgid "Two-chip color area sensor"
+msgstr "双芯片色彩区域传感器"
+
+#: libexif/exif-entry.c:652
+msgid "Three-chip color area sensor"
+msgstr "三芯片色彩区域传感器"
+
+#: libexif/exif-entry.c:653
+msgid "Color sequential area sensor"
+msgstr "颜色连续区域传感器"
+
+#: libexif/exif-entry.c:653
+msgid "Trilinear sensor"
+msgstr "三线性传感器"
+
+#: libexif/exif-entry.c:654
+msgid "Color sequential linear sensor"
+msgstr "颜色连续线性传感器"
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:233
+msgid "Top-left"
+msgstr ""
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:235
+msgid "Top-right"
+msgstr ""
+
+#: libexif/exif-entry.c:656 libexif/pentax/mnote-pentax-entry.c:241
+msgid "Bottom-right"
+msgstr ""
+
+#: libexif/exif-entry.c:657 libexif/pentax/mnote-pentax-entry.c:239
+msgid "Bottom-left"
+msgstr ""
+
+#: libexif/exif-entry.c:657
+#, fuzzy
+msgid "Left-top"
+msgstr "左上"
+
+#: libexif/exif-entry.c:657
+#, fuzzy
+msgid "Right-top"
+msgstr "右上"
+
+#: libexif/exif-entry.c:658
+#, fuzzy
+msgid "Right-bottom"
+msgstr "右下"
+
+#: libexif/exif-entry.c:658
+#, fuzzy
+msgid "Left-bottom"
+msgstr "左下"
+
+#: libexif/exif-entry.c:660
+#, fuzzy
+msgid "Centered"
+msgstr "居中"
+
+#: libexif/exif-entry.c:660
+#, fuzzy
+msgid "Co-sited"
+msgstr "关闭"
+
+#: libexif/exif-entry.c:662
+msgid "Reversed mono"
+msgstr ""
+
+#: libexif/exif-entry.c:662
+msgid "Normal mono"
+msgstr ""
+
+#: libexif/exif-entry.c:662
+msgid "RGB"
+msgstr "RGB"
+
+#: libexif/exif-entry.c:662
+msgid "Palette"
+msgstr "色板"
+
+#: libexif/exif-entry.c:663
+msgid "CMYK"
+msgstr "CMYK"
+
+#: libexif/exif-entry.c:663
+msgid "YCbCr"
+msgstr "YCbCr"
+
+#: libexif/exif-entry.c:663
+msgid "CieLAB"
+msgstr "CieLAB"
+
+#: libexif/exif-entry.c:665
+msgid "Normal process"
+msgstr "正常过程"
+
+#: libexif/exif-entry.c:665
+msgid "Custom process"
+msgstr "自定义过程"
+
+#: libexif/exif-entry.c:667
+msgid "Auto exposure"
+msgstr "自动曝光"
+
+#: libexif/exif-entry.c:667 libexif/fuji/mnote-fuji-entry.c:139
+msgid "Manual exposure"
+msgstr "手动曝光"
+
+#: libexif/exif-entry.c:667
+msgid "Auto bracket"
+msgstr ""
+
+#: libexif/exif-entry.c:669
+msgid "Auto white balance"
+msgstr "自动白平衡"
+
+#: libexif/exif-entry.c:669
+msgid "Manual white balance"
+msgstr "手动白平衡"
+
+#: libexif/exif-entry.c:674
+msgid "Low gain up"
+msgstr "低增益"
+
+#: libexif/exif-entry.c:674
+msgid "High gain up"
+msgstr "高增益"
+
+#: libexif/exif-entry.c:675
+msgid "Low gain down"
+msgstr "低衰减"
+
+#: libexif/exif-entry.c:675
+msgid "High gain down"
+msgstr "高衰减"
+
+#: libexif/exif-entry.c:677
+msgid "Low saturation"
+msgstr "低饱和度"
+
+#: libexif/exif-entry.c:677 test/nls/test-codeset.c:48
+#: test/nls/test-codeset.c:61
+msgid "High saturation"
+msgstr "高饱和度"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:63
+#: libexif/olympus/mnote-olympus-entry.c:205
+#: libexif/olympus/mnote-olympus-entry.c:214
+#: libexif/pentax/mnote-pentax-entry.c:106
+#: libexif/pentax/mnote-pentax-entry.c:170
+msgid "Soft"
+msgstr "柔和"
+
+#: libexif/exif-entry.c:678 libexif/exif-entry.c:679
+#: libexif/fuji/mnote-fuji-entry.c:65 libexif/fuji/mnote-fuji-entry.c:95
+#: libexif/olympus/mnote-olympus-entry.c:204
+#: libexif/olympus/mnote-olympus-entry.c:212
+#: libexif/pentax/mnote-pentax-entry.c:107
+msgid "Hard"
+msgstr "锐利"
+
+#: libexif/exif-entry.c:695 libexif/exif-entry.c:713 libexif/exif-entry.c:795
+#: libexif/olympus/mnote-olympus-entry.c:589
+#: libexif/olympus/mnote-olympus-entry.c:683
+#: libexif/olympus/mnote-olympus-entry.c:738
+#: libexif/pentax/mnote-pentax-entry.c:256
+msgid "Unknown"
+msgstr "未知"
+
+#: libexif/exif-entry.c:696
+#, fuzzy
+msgid "Avg"
+msgstr "avg"
+
+#: libexif/exif-entry.c:697
+#, fuzzy
+msgid "Center-weight"
+msgstr "中心权重"
+
+#: libexif/exif-entry.c:699
+#, fuzzy
+msgid "Multi spot"
+msgstr "多点"
+
+#: libexif/exif-entry.c:700
+msgid "Pattern"
+msgstr "样式"
+
+#: libexif/exif-entry.c:705
+msgid "Uncompressed"
+msgstr "未压缩"
+
+#: libexif/exif-entry.c:706
+msgid "LZW compression"
+msgstr "LZW压缩"
+
+#: libexif/exif-entry.c:707 libexif/exif-entry.c:708
+msgid "JPEG compression"
+msgstr "JPEG 压缩"
+
+#: libexif/exif-entry.c:709
+msgid "Deflate/ZIP compression"
+msgstr ""
+
+#: libexif/exif-entry.c:710
+msgid "PackBits compression"
+msgstr ""
+
+#: libexif/exif-entry.c:716
+msgid "Tungsten incandescent light"
+msgstr "碘钨灯"
+
+#: libexif/exif-entry.c:718
+msgid "Fine weather"
+msgstr "天气良好"
+
+#: libexif/exif-entry.c:719
+msgid "Cloudy weather"
+msgstr ""
+
+#: libexif/exif-entry.c:722 libexif/fuji/mnote-fuji-entry.c:77
+#: libexif/pentax/mnote-pentax-entry.c:252
+msgid "Day white fluorescent"
+msgstr "日光白色荧光灯"
+
+#: libexif/exif-entry.c:723
+msgid "Cool white fluorescent"
+msgstr "冷白色荧光灯"
+
+#: libexif/exif-entry.c:724 libexif/fuji/mnote-fuji-entry.c:78
+#: libexif/pentax/mnote-pentax-entry.c:253
+msgid "White fluorescent"
+msgstr "白色荧光灯"
+
+#: libexif/exif-entry.c:725
+msgid "Standard light A"
+msgstr "标准光 A"
+
+#: libexif/exif-entry.c:726
+msgid "Standard light B"
+msgstr "标准光 B"
+
+#: libexif/exif-entry.c:727
+msgid "Standard light C"
+msgstr "标准光 C"
+
+#: libexif/exif-entry.c:728
+msgid "D55"
+msgstr "D55"
+
+#: libexif/exif-entry.c:729
+msgid "D65"
+msgstr "D65"
+
+#: libexif/exif-entry.c:730
+msgid "D75"
+msgstr "D75"
+
+#: libexif/exif-entry.c:731
+msgid "ISO studio tungsten"
+msgstr "标准工作室钨灯"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "Inch"
+msgstr "英寸"
+
+#: libexif/exif-entry.c:735 libexif/exif-entry.c:739
+msgid "in"
+msgstr "属于"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "Centimeter"
+msgstr "厘米"
+
+#: libexif/exif-entry.c:736 libexif/exif-entry.c:740
+msgid "cm"
+msgstr "cm"
+
+#: libexif/exif-entry.c:745
+msgid "Normal program"
+msgstr "普通模式"
+
+#: libexif/exif-entry.c:746
+msgid "Aperture priority"
+msgstr "光圈优先"
+
+#: libexif/exif-entry.c:746 libexif/exif-tag.c:550
+msgid "Aperture"
+msgstr "光圈"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter priority"
+msgstr "快门优先"
+
+#: libexif/exif-entry.c:747
+msgid "Shutter"
+msgstr "快门"
+
+#: libexif/exif-entry.c:748
+msgid "Creative program (biased toward depth of field)"
+msgstr ""
+
+#: libexif/exif-entry.c:749
+msgid "Creative"
+msgstr ""
+
+#: libexif/exif-entry.c:750
+msgid "Creative program (biased toward fast shutter speed)"
+msgstr ""
+
+#: libexif/exif-entry.c:751
+msgid "Action"
+msgstr "动作"
+
+#: libexif/exif-entry.c:752
+msgid "Portrait mode (for closeup photos with the background out of focus)"
+msgstr "肖像模式(特写照片,使背景处于焦外)"
+
+#: libexif/exif-entry.c:754
+msgid "Landscape mode (for landscape photos with the background in focus)"
+msgstr "风景模式(风景照片,使背景处于焦内)"
+
+#: libexif/exif-entry.c:758 libexif/exif-entry.c:763
+#: libexif/olympus/mnote-olympus-entry.c:97
+msgid "Flash did not fire"
+msgstr "未闪光"
+
+#: libexif/exif-entry.c:758
+#, fuzzy
+msgid "No flash"
+msgstr "无闪光灯"
+
+#: libexif/exif-entry.c:759
+msgid "Flash fired"
+msgstr ""
+
+#: libexif/exif-entry.c:759 libexif/olympus/mnote-olympus-entry.c:170
+#: libexif/olympus/mnote-olympus-entry.c:175
+#: libexif/olympus/mnote-olympus-entry.c:209
+#: libexif/olympus/mnote-olympus-entry.c:218
+#: libexif/olympus/mnote-olympus-entry.c:241
+msgid "Yes"
+msgstr "是"
+
+#: libexif/exif-entry.c:760
+msgid "Strobe return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:760
+#, fuzzy
+msgid "Without strobe"
+msgstr "W/o闸门"
+
+#: libexif/exif-entry.c:762
+msgid "Strobe return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:762
+#, fuzzy
+msgid "With strobe"
+msgstr "W.闸门"
+
+#: libexif/exif-entry.c:764
+msgid "Flash fired, compulsory flash mode"
+msgstr ""
+
+#: libexif/exif-entry.c:765
+msgid "Flash fired, compulsory flash mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:767
+msgid "Flash fired, compulsory flash mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:769
+msgid "Flash did not fire, compulsory flash mode"
+msgstr ""
+
+#: libexif/exif-entry.c:770
+msgid "Flash did not fire, auto mode"
+msgstr ""
+
+#: libexif/exif-entry.c:771
+msgid "Flash fired, auto mode"
+msgstr ""
+
+#: libexif/exif-entry.c:772
+msgid "Flash fired, auto mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:774
+msgid "Flash fired, auto mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:775
+msgid "No flash function"
+msgstr ""
+
+#: libexif/exif-entry.c:776
+msgid "Flash fired, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:777
+msgid "Flash fired, red-eye reduction mode, return light not detected"
+msgstr ""
+
+#: libexif/exif-entry.c:779
+msgid "Flash fired, red-eye reduction mode, return light detected"
+msgstr ""
+
+#: libexif/exif-entry.c:781
+msgid "Flash fired, compulsory flash mode, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:783
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light not "
+"detected"
+msgstr ""
+
+#: libexif/exif-entry.c:785
+msgid ""
+"Flash fired, compulsory flash mode, red-eye reduction mode, return light "
+"detected"
+msgstr ""
+
+#: libexif/exif-entry.c:787
+msgid "Flash did not fire, auto mode, red-eye reduction mode"
+msgstr "闪光灯未闪光,自动模式,红眼消除模式。"
+
+#: libexif/exif-entry.c:788
+msgid "Flash fired, auto mode, red-eye reduction mode"
+msgstr "闪光灯闪光,自动模式,红眼消除模式"
+
+#: libexif/exif-entry.c:789
+msgid ""
+"Flash fired, auto mode, return light not detected, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:791
+msgid "Flash fired, auto mode, return light detected, red-eye reduction mode"
+msgstr ""
+
+#: libexif/exif-entry.c:795
+msgid "?"
+msgstr ""
+
+#: libexif/exif-entry.c:797
+msgid "Close view"
+msgstr "近景"
+
+#: libexif/exif-entry.c:798
+msgid "Distant view"
+msgstr "远景"
+
+#: libexif/exif-entry.c:798
+msgid "Distant"
+msgstr ""
+
+#: libexif/exif-entry.c:801
+msgid "sRGB"
+msgstr "sRGB"
+
+#: libexif/exif-entry.c:802
+msgid "Adobe RGB"
+msgstr ""
+
+#: libexif/exif-entry.c:803
+msgid "Uncalibrated"
+msgstr "未校准的"
+
+#: libexif/exif-entry.c:857
+#, c-format
+msgid "Invalid size of entry (%i, expected %li x %i)."
+msgstr "无效的入口尺寸(%i,期望%li x %i)。"
+
+#: libexif/exif-entry.c:890
+msgid "Unsupported UNICODE string"
+msgstr "不支持的UNICODE字符串"
+
+#: libexif/exif-entry.c:898
+msgid "Unsupported JIS string"
+msgstr "不支持的JIS字符串"
+
+#: libexif/exif-entry.c:914
+msgid "Tag UserComment does not comply with standard but contains data."
+msgstr ""
+
+#: libexif/exif-entry.c:918
+#, c-format
+msgid "Byte at position %i: 0x%02x"
+msgstr ""
+
+#: libexif/exif-entry.c:927
+msgid "Unknown Exif Version"
+msgstr "未知的Exif版本"
+
+#: libexif/exif-entry.c:931
+#, c-format
+msgid "Exif Version %d.%d"
+msgstr "Exif版本%d.%d"
+
+#: libexif/exif-entry.c:942
+msgid "FlashPix Version 1.0"
+msgstr "FlashPix版本 1.0"
+
+#: libexif/exif-entry.c:944
+msgid "FlashPix Version 1.01"
+msgstr "FlashPix版本 1.01"
+
+#: libexif/exif-entry.c:946
+msgid "Unknown FlashPix Version"
+msgstr "未知的FlashPix版本"
+
+#: libexif/exif-entry.c:959 libexif/exif-entry.c:972 libexif/exif-entry.c:1628
+#: libexif/exif-entry.c:1633 libexif/exif-entry.c:1637
+#: libexif/exif-entry.c:1642 libexif/exif-entry.c:1643
+msgid "[None]"
+msgstr "[无]"
+
+#: libexif/exif-entry.c:961
+msgid "(Photographer)"
+msgstr "(摄影师)"
+
+#: libexif/exif-entry.c:975
+msgid "(Editor)"
+msgstr ""
+
+#: libexif/exif-entry.c:999 libexif/exif-entry.c:1079
+#: libexif/exif-entry.c:1096 libexif/exif-entry.c:1140
+#, c-format
+msgid "%.02f EV"
+msgstr ""
+
+#: libexif/exif-entry.c:1000
+#, c-format
+msgid " (f/%.01f)"
+msgstr ""
+
+#: libexif/exif-entry.c:1034
+#, c-format
+msgid " (35 equivalent: %d mm)"
+msgstr ""
+
+#: libexif/exif-entry.c:1067 libexif/exif-entry.c:1068
+msgid " sec."
+msgstr ""
+
+#: libexif/exif-entry.c:1082
+#, c-format
+msgid " (1/%d sec.)"
+msgstr ""
+
+#: libexif/exif-entry.c:1084
+#, c-format
+msgid " (%d sec.)"
+msgstr ""
+
+#: libexif/exif-entry.c:1097
+#, c-format
+msgid " (%.02f cd/m^2)"
+msgstr ""
+
+#: libexif/exif-entry.c:1107
+msgid "DSC"
+msgstr ""
+
+#: libexif/exif-entry.c:1109 libexif/exif-entry.c:1149
+#: libexif/exif-entry.c:1236 libexif/exif-entry.c:1287
+#: libexif/exif-entry.c:1296 libexif/exif-entry.c:1332
+#: libexif/fuji/mnote-fuji-entry.c:236 libexif/fuji/mnote-fuji-entry.c:245
+#: libexif/pentax/mnote-pentax-entry.c:350
+#: libexif/pentax/mnote-pentax-entry.c:359
+#, c-format
+msgid "Internal error (unknown value %i)"
+msgstr ""
+
+#: libexif/exif-entry.c:1117
+msgid "-"
+msgstr ""
+
+#: libexif/exif-entry.c:1118
+msgid "Y"
+msgstr ""
+
+#: libexif/exif-entry.c:1119
+msgid "Cb"
+msgstr ""
+
+#: libexif/exif-entry.c:1120
+msgid "Cr"
+msgstr ""
+
+#: libexif/exif-entry.c:1121
+msgid "R"
+msgstr ""
+
+#: libexif/exif-entry.c:1122
+msgid "G"
+msgstr ""
+
+#: libexif/exif-entry.c:1123
+msgid "B"
+msgstr ""
+
+#: libexif/exif-entry.c:1124
+#, fuzzy
+msgid "Reserved"
+msgstr "居中"
+
+#: libexif/exif-entry.c:1147
+msgid "Directly photographed"
+msgstr ""
+
+#: libexif/exif-entry.c:1160
+msgid "YCbCr4:2:2"
+msgstr ""
+
+#: libexif/exif-entry.c:1162
+msgid "YCbCr4:2:0"
+msgstr ""
+
+#: libexif/exif-entry.c:1179
+#, c-format
+msgid "Within distance %i of (x,y) = (%i,%i)"
+msgstr ""
+
+#: libexif/exif-entry.c:1188
+#, c-format
+msgid "Within rectangle (width %i, height %i) around (x,y) = (%i,%i)"
+msgstr ""
+
+#: libexif/exif-entry.c:1194
+#, c-format
+msgid "Unexpected number of components (%li, expected 2, 3, or 4)."
+msgstr ""
+
+#: libexif/exif-entry.c:1232
+msgid "Sea level"
+msgstr ""
+
+#: libexif/exif-entry.c:1234
+msgid "Sea level reference"
+msgstr ""
+
+#: libexif/exif-entry.c:1342
+#, c-format
+msgid "Unknown value %i"
+msgstr ""
+
+#: libexif/exif-format.c:37
+msgid "Short"
+msgstr ""
+
+#: libexif/exif-format.c:38
+msgid "Rational"
+msgstr ""
+
+#: libexif/exif-format.c:39
+msgid "SRational"
+msgstr ""
+
+#: libexif/exif-format.c:40
+msgid "Undefined"
+msgstr ""
+
+#: libexif/exif-format.c:41
+msgid "ASCII"
+msgstr ""
+
+#: libexif/exif-format.c:42
+msgid "Long"
+msgstr ""
+
+#: libexif/exif-format.c:43
+msgid "Byte"
+msgstr ""
+
+#: libexif/exif-format.c:44
+msgid "SByte"
+msgstr ""
+
+#: libexif/exif-format.c:45
+msgid "SShort"
+msgstr ""
+
+#: libexif/exif-format.c:46
+msgid "SLong"
+msgstr ""
+
+#: libexif/exif-format.c:47
+msgid "Float"
+msgstr ""
+
+#: libexif/exif-format.c:48
+msgid "Double"
+msgstr ""
+
+#: libexif/exif-loader.c:119
+#, c-format
+msgid "The file '%s' could not be opened."
+msgstr ""
+
+#: libexif/exif-loader.c:300
+msgid "The data supplied does not seem to contain EXIF data."
+msgstr ""
+
+#: libexif/exif-log.c:43
+msgid "Debugging information"
+msgstr ""
+
+#: libexif/exif-log.c:44
+msgid "Debugging information is available."
+msgstr ""
+
+#: libexif/exif-log.c:45
+msgid "Not enough memory"
+msgstr ""
+
+#: libexif/exif-log.c:46
+msgid "The system cannot provide enough memory."
+msgstr ""
+
+#: libexif/exif-log.c:47
+msgid "Corrupt data"
+msgstr ""
+
+#: libexif/exif-log.c:48
+msgid "The data provided does not follow the specification."
+msgstr ""
+
+#: libexif/exif-tag.c:62
+msgid "GPS Tag Version"
+msgstr ""
+
+#: libexif/exif-tag.c:63
+msgid ""
+"Indicates the version of <GPSInfoIFD>. The version is given as 2.0.0.0. This "
+"tag is mandatory when <GPSInfo> tag is present. (Note: The <GPSVersionID> "
+"tag is given in bytes, unlike the <ExifVersion> tag. When the version is "
+"2.0.0.0, the tag value is 02000000.H)."
+msgstr ""
+
+#: libexif/exif-tag.c:69
+msgid "Interoperability Index"
+msgstr ""
+
+#: libexif/exif-tag.c:70
+msgid ""
+"Indicates the identification of the Interoperability rule. Use \"R98\" for "
+"stating ExifR98 Rules. Four bytes used including the termination code "
+"(NULL). see the separate volume of Recommended Exif Interoperability Rules "
+"(ExifR98) for other tags used for ExifR98."
+msgstr ""
+
+#: libexif/exif-tag.c:76
+msgid "North or South Latitude"
+msgstr ""
+
+#: libexif/exif-tag.c:77
+msgid ""
+"Indicates whether the latitude is north or south latitude. The ASCII value "
+"'N' indicates north latitude, and 'S' is south latitude."
+msgstr ""
+
+#: libexif/exif-tag.c:81
+msgid "Interoperability Version"
+msgstr ""
+
+#: libexif/exif-tag.c:83
+msgid "Latitude"
+msgstr ""
+
+#: libexif/exif-tag.c:84
+msgid ""
+"Indicates the latitude. The latitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is dd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is dd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:91
+msgid "East or West Longitude"
+msgstr ""
+
+#: libexif/exif-tag.c:92
+msgid ""
+"Indicates whether the longitude is east or west longitude. ASCII 'E' "
+"indicates east longitude, and 'W' is west longitude."
+msgstr ""
+
+#: libexif/exif-tag.c:95
+msgid "Longitude"
+msgstr ""
+
+#: libexif/exif-tag.c:96
+msgid ""
+"Indicates the longitude. The longitude is expressed as three RATIONAL values "
+"giving the degrees, minutes, and seconds, respectively. When degrees, "
+"minutes and seconds are expressed, the format is ddd/1,mm/1,ss/1. When "
+"degrees and minutes are used and, for example, fractions of minutes are "
+"given up to two decimal places, the format is ddd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:103
+msgid "Altitude Reference"
+msgstr ""
+
+#: libexif/exif-tag.c:104
+msgid ""
+"Indicates the altitude used as the reference altitude. If the reference is "
+"sea level and the altitude is above sea level, 0 is given. If the altitude "
+"is below sea level, a value of 1 is given and the altitude is indicated as "
+"an absolute value in the GSPAltitude tag. The reference unit is meters. Note "
+"that this tag is BYTE type, unlike other reference tags."
+msgstr ""
+
+#: libexif/exif-tag.c:110
+msgid "Altitude"
+msgstr ""
+
+#: libexif/exif-tag.c:111
+msgid ""
+"Indicates the altitude based on the reference in GPSAltitudeRef. Altitude is "
+"expressed as one RATIONAL value. The reference unit is meters."
+msgstr ""
+
+#: libexif/exif-tag.c:114
+msgid "GPS Time (Atomic Clock)"
+msgstr ""
+
+#: libexif/exif-tag.c:115
+msgid ""
+"Indicates the time as UTC (Coordinated Universal Time). TimeStamp is "
+"expressed as three RATIONAL values giving the hour, minute, and second."
+msgstr ""
+
+#: libexif/exif-tag.c:118
+msgid "GPS Satellites"
+msgstr ""
+
+#: libexif/exif-tag.c:119
+msgid ""
+"Indicates the GPS satellites used for measurements. This tag can be used to "
+"describe the number of satellites, their ID number, angle of elevation, "
+"azimuth, SNR and other information in ASCII notation. The format is not "
+"specified. If the GPS receiver is incapable of taking measurements, value of "
+"the tag shall be set to NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:125
+msgid "GPS Receiver Status"
+msgstr ""
+
+#: libexif/exif-tag.c:126
+msgid ""
+"Indicates the status of the GPS receiver when the image is recorded. 'A' "
+"means measurement is in progress, and 'V' means the measurement is "
+"Interoperability."
+msgstr ""
+
+#: libexif/exif-tag.c:129
+msgid "GPS Measurement Mode"
+msgstr ""
+
+#: libexif/exif-tag.c:130
+msgid ""
+"Indicates the GPS measurement mode. '2' means two-dimensional measurement "
+"and '3' means three-dimensional measurement is in progress."
+msgstr ""
+
+#: libexif/exif-tag.c:133
+msgid "Measurement Precision"
+msgstr ""
+
+#: libexif/exif-tag.c:134
+msgid ""
+"Indicates the GPS DOP (data degree of precision). An HDOP value is written "
+"during two-dimensional measurement, and PDOP during three-dimensional "
+"measurement."
+msgstr ""
+
+#: libexif/exif-tag.c:137
+msgid "Speed Unit"
+msgstr ""
+
+#: libexif/exif-tag.c:138
+msgid ""
+"Indicates the unit used to express the GPS receiver speed of movement. 'K', "
+"'M' and 'N' represent kilometers per hour, miles per hour, and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:141
+msgid "Speed of GPS Receiver"
+msgstr ""
+
+#: libexif/exif-tag.c:142
+msgid "Indicates the speed of GPS receiver movement."
+msgstr ""
+
+#: libexif/exif-tag.c:143
+msgid "Reference for direction of movement"
+msgstr ""
+
+#: libexif/exif-tag.c:144
+msgid ""
+"Indicates the reference for giving the direction of GPS receiver movement. "
+"'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:147
+msgid "Direction of Movement"
+msgstr ""
+
+#: libexif/exif-tag.c:148
+msgid ""
+"Indicates the direction of GPS receiver movement. The range of values is "
+"from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:150
+msgid "GPS Image Direction Reference"
+msgstr ""
+
+#: libexif/exif-tag.c:151
+msgid ""
+"Indicates the reference for giving the direction of the image when it is "
+"captured. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:153
+msgid "GPS Image Direction"
+msgstr ""
+
+#: libexif/exif-tag.c:154
+msgid ""
+"Indicates the direction of the image when it was captured. The range of "
+"values is from 0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:156
+msgid "Geodetic Survey Data Used"
+msgstr ""
+
+#: libexif/exif-tag.c:157
+msgid ""
+"Indicates the geodetic survey data used by the GPS receiver. If the survey "
+"data is restricted to Japan, the value of this tag is 'TOKYO' or 'WGS-84'. "
+"If a GPS Info tag is recorded, it is strongly recommended that this tag be "
+"recorded."
+msgstr ""
+
+#: libexif/exif-tag.c:161
+msgid "Reference For Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:162
+msgid ""
+"Indicates whether the latitude of the destination point is north or south "
+"latitude. The ASCII value 'N' indicates north latitude, and 'S' is south "
+"latitude."
+msgstr ""
+
+#: libexif/exif-tag.c:165
+msgid "Latitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:166
+msgid ""
+"Indicates the latitude of the destination point. The latitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If latitude is expressed as degrees, minutes and seconds, a "
+"typical format would be dd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be dd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:173
+msgid "Reference for Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:174
+msgid ""
+"Indicates whether the longitude of the destination point is east or west "
+"longitude. ASCII 'E' indicates east longitude, and 'W' is west longitude."
+msgstr ""
+
+#: libexif/exif-tag.c:177
+msgid "Longitude of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:178
+msgid ""
+"Indicates the longitude of the destination point. The longitude is expressed "
+"as three RATIONAL values giving the degrees, minutes, and seconds, "
+"respectively. If longitude is expressed as degrees, minutes and seconds, a "
+"typical format would be ddd/1,mm/1,ss/1. When degrees and minutes are used "
+"and, for example, fractions of minutes are given up to two decimal places, "
+"the format would be ddd/1,mmmm/100,0/1."
+msgstr ""
+
+#: libexif/exif-tag.c:186
+msgid "Reference for Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:187
+msgid ""
+"Indicates the reference used for giving the bearing to the destination "
+"point. 'T' denotes true direction and 'M' is magnetic direction."
+msgstr ""
+
+#: libexif/exif-tag.c:190
+msgid "Bearing of Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:191
+msgid ""
+"Indicates the bearing to the destination point. The range of values is from "
+"0.00 to 359.99."
+msgstr ""
+
+#: libexif/exif-tag.c:193
+msgid "Reference for Distance to Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:194
+msgid ""
+"Indicates the unit used to express the distance to the destination point. "
+"'K', 'M' and 'N' represent kilometers, miles and knots."
+msgstr ""
+
+#: libexif/exif-tag.c:197
+msgid "Distance to Destination"
+msgstr ""
+
+#: libexif/exif-tag.c:198
+msgid "Indicates the distance to the destination point."
+msgstr ""
+
+#: libexif/exif-tag.c:199
+#, fuzzy
+msgid "Name of GPS Processing Method"
+msgstr "传感方式"
+
+#: libexif/exif-tag.c:200
+msgid ""
+"A character string recording the name of the method used for location "
+"finding. The first byte indicates the character code used, and this is "
+"followed by the name of the method. Since the Type is not ASCII, NULL "
+"termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:205
+msgid "Name of GPS Area"
+msgstr ""
+
+#: libexif/exif-tag.c:206
+msgid ""
+"A character string recording the name of the GPS area. The first byte "
+"indicates the character code used, and this is followed by the name of the "
+"GPS area. Since the Type is not ASCII, NULL termination is not necessary."
+msgstr ""
+
+#: libexif/exif-tag.c:210
+msgid "GPS Date"
+msgstr ""
+
+#: libexif/exif-tag.c:211
+msgid ""
+"A character string recording date and time information relative to UTC "
+"(Coordinated Universal Time). The format is \"YYYY:MM:DD\". The length of "
+"the string is 11 bytes including NULL."
+msgstr ""
+
+#: libexif/exif-tag.c:215
+msgid "GPS Differential Correction"
+msgstr ""
+
+#: libexif/exif-tag.c:216
+msgid ""
+"Indicates whether differential correction is applied to the GPS receiver."
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "New Subfile Type"
+msgstr ""
+
+#: libexif/exif-tag.c:220
+msgid "A general indication of the kind of data contained in this subfile."
+msgstr ""
+
+#: libexif/exif-tag.c:222
+msgid "Image Width"
+msgstr ""
+
+#: libexif/exif-tag.c:223
+msgid ""
+"The number of columns of image data, equal to the number of pixels per row. "
+"In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:227
+msgid "Image Length"
+msgstr ""
+
+#: libexif/exif-tag.c:228
+msgid ""
+"The number of rows of image data. In JPEG compressed data a JPEG marker is "
+"used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:231
+msgid "Bits per Sample"
+msgstr ""
+
+#: libexif/exif-tag.c:232
+msgid ""
+"The number of bits per image component. In this standard each component of "
+"the image is 8 bits, so the value for this tag is 8. See also "
+"<SamplesPerPixel>. In JPEG compressed data a JPEG marker is used instead of "
+"this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:237
+msgid "Compression"
+msgstr ""
+
+#: libexif/exif-tag.c:238
+msgid ""
+"The compression scheme used for the image data. When a primary image is JPEG "
+"compressed, this designation is not necessary and is omitted. When "
+"thumbnails use JPEG compression, this tag value is set to 6."
+msgstr ""
+
+#: libexif/exif-tag.c:244
+msgid "Photometric Interpretation"
+msgstr ""
+
+#: libexif/exif-tag.c:245
+msgid ""
+"The pixel composition. In JPEG compressed data a JPEG marker is used instead "
+"of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:249
+msgid "Fill Order"
+msgstr ""
+
+#: libexif/exif-tag.c:251
+msgid "Document Name"
+msgstr ""
+
+#: libexif/exif-tag.c:253
+msgid "Image Description"
+msgstr ""
+
+#: libexif/exif-tag.c:254
+msgid ""
+"A character string giving the title of the image. It may be a comment such "
+"as \"1988 company picnic\" or the like. Two-bytes character codes cannot be "
+"used. When a 2-bytes code is necessary, the Exif Private tag <UserComment> "
+"is to be used."
+msgstr ""
+
+#: libexif/exif-tag.c:260
+msgid "Manufacturer"
+msgstr ""
+
+#: libexif/exif-tag.c:261
+msgid ""
+"The manufacturer of the recording equipment. This is the manufacturer of the "
+"DSC, scanner, video digitizer or other equipment that generated the image. "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:267
+msgid "Model"
+msgstr ""
+
+#: libexif/exif-tag.c:268
+msgid ""
+"The model name or model number of the equipment. This is the model name or "
+"number of the DSC, scanner, video digitizer or other equipment that "
+"generated the image. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:273
+msgid "Strip Offsets"
+msgstr ""
+
+#: libexif/exif-tag.c:274
+msgid ""
+"For each strip, the byte offset of that strip. It is recommended that this "
+"be selected so the number of strip bytes does not exceed 64 Kbytes. With "
+"JPEG compressed data this designation is not needed and is omitted. See also "
+"<RowsPerStrip> and <StripByteCounts>."
+msgstr ""
+
+#: libexif/exif-tag.c:280
+msgid "Orientation"
+msgstr ""
+
+#: libexif/exif-tag.c:281
+msgid "The image orientation viewed in terms of rows and columns."
+msgstr ""
+
+#: libexif/exif-tag.c:284
+msgid "Samples per Pixel"
+msgstr ""
+
+#: libexif/exif-tag.c:285
+msgid ""
+"The number of components per pixel. Since this standard applies to RGB and "
+"YCbCr images, the value set for this tag is 3. In JPEG compressed data a "
+"JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:290
+msgid "Rows per Strip"
+msgstr ""
+
+#: libexif/exif-tag.c:291
+msgid ""
+"The number of rows per strip. This is the number of rows in the image of one "
+"strip when an image is divided into strips. With JPEG compressed data this "
+"designation is not needed and is omitted. See also <StripOffsets> and "
+"<StripByteCounts>."
+msgstr ""
+
+#: libexif/exif-tag.c:297
+msgid "Strip Byte Count"
+msgstr ""
+
+#: libexif/exif-tag.c:298
+msgid ""
+"The total number of bytes in each strip. With JPEG compressed data this "
+"designation is not needed and is omitted."
+msgstr ""
+
+#: libexif/exif-tag.c:301
+msgid "X-Resolution"
+msgstr ""
+
+#: libexif/exif-tag.c:302
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageWidth> direction. "
+"When the image resolution is unknown, 72 [dpi] is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:306
+msgid "Y-Resolution"
+msgstr ""
+
+#: libexif/exif-tag.c:307
+msgid ""
+"The number of pixels per <ResolutionUnit> in the <ImageLength> direction. "
+"The same value as <XResolution> is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:311
+msgid "Planar Configuration"
+msgstr ""
+
+#: libexif/exif-tag.c:312
+msgid ""
+"Indicates whether pixel components are recorded in a chunky or planar "
+"format. In JPEG compressed files a JPEG marker is used instead of this tag. "
+"If this field does not exist, the TIFF default of 1 (chunky) is assumed."
+msgstr ""
+
+#: libexif/exif-tag.c:317
+msgid "Resolution Unit"
+msgstr ""
+
+#: libexif/exif-tag.c:318
+msgid ""
+"The unit for measuring <XResolution> and <YResolution>. The same unit is "
+"used for both <XResolution> and <YResolution>. If the image resolution is "
+"unknown, 2 (inches) is designated."
+msgstr ""
+
+#: libexif/exif-tag.c:323
+msgid "Transfer Function"
+msgstr ""
+
+#: libexif/exif-tag.c:324
+msgid ""
+"A transfer function for the image, described in tabular style. Normally this "
+"tag is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:328
+msgid "Software"
+msgstr ""
+
+#: libexif/exif-tag.c:329
+msgid ""
+"This tag records the name and version of the software or firmware of the "
+"camera or image input device used to generate the image. The detailed format "
+"is not specified, but it is recommended that the example shown below be "
+"followed. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:336
+msgid "Date and Time"
+msgstr ""
+
+#: libexif/exif-tag.c:337
+msgid ""
+"The date and time of image creation. In this standard (EXIF-2.1) it is the "
+"date and time the file was changed."
+msgstr ""
+
+#: libexif/exif-tag.c:340
+msgid "Artist"
+msgstr ""
+
+#: libexif/exif-tag.c:341
+msgid ""
+"This tag records the name of the camera owner, photographer or image "
+"creator. The detailed format is not specified, but it is recommended that "
+"the information be written as in the example below for ease of "
+"Interoperability. When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:347 libexif/pentax/mnote-pentax-tag.c:113
+msgid "White Point"
+msgstr ""
+
+#: libexif/exif-tag.c:348
+msgid ""
+"The chromaticity of the white point of the image. Normally this tag is not "
+"necessary, since color space is specified in the color space information tag "
+"(<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:353
+msgid "Primary Chromaticities"
+msgstr ""
+
+#: libexif/exif-tag.c:354
+msgid ""
+"The chromaticity of the three primary colors of the image. Normally this tag "
+"is not necessary, since color space is specified in the color space "
+"information tag (<ColorSpace>)."
+msgstr ""
+
+#: libexif/exif-tag.c:359
+msgid "Defined by Adobe Corporation to enable TIFF Trees within a TIFF file."
+msgstr ""
+
+#: libexif/exif-tag.c:362
+msgid "Transfer Range"
+msgstr ""
+
+#: libexif/exif-tag.c:366
+msgid "JPEG Interchange Format"
+msgstr ""
+
+#: libexif/exif-tag.c:367
+msgid ""
+"The offset to the start byte (SOI) of JPEG compressed thumbnail data. This "
+"is not used for primary image JPEG data."
+msgstr ""
+
+#: libexif/exif-tag.c:372
+msgid "JPEG Interchange Format Length"
+msgstr ""
+
+#: libexif/exif-tag.c:373
+msgid ""
+"The number of bytes of JPEG compressed thumbnail data. This is not used for "
+"primary image JPEG data. JPEG thumbnails are not divided but are recorded as "
+"a continuous JPEG bitstream from SOI to EOI. Appn and COM markers should not "
+"be recorded. Compressed thumbnails must be recorded in no more than 64 "
+"Kbytes, including all other data to be recorded in APP1."
+msgstr ""
+
+#: libexif/exif-tag.c:382
+msgid "YCbCr Coefficients"
+msgstr ""
+
+#: libexif/exif-tag.c:383
+msgid ""
+"The matrix coefficients for transformation from RGB to YCbCr image data. No "
+"default is given in TIFF; but here the value given in \"Color Space "
+"Guidelines\", is used as the default. The color space is declared in a color "
+"space information tag, with the default being the value that gives the "
+"optimal image characteristics Interoperability this condition."
+msgstr ""
+
+#: libexif/exif-tag.c:392
+msgid "YCbCr Sub-Sampling"
+msgstr ""
+
+#: libexif/exif-tag.c:393
+msgid ""
+"The sampling ratio of chrominance components in relation to the luminance "
+"component. In JPEG compressed data a JPEG marker is used instead of this tag."
+msgstr ""
+
+#: libexif/exif-tag.c:398
+msgid "YCbCr Positioning"
+msgstr ""
+
+#: libexif/exif-tag.c:399
+msgid ""
+"The position of chrominance components in relation to the luminance "
+"component. This field is designated only for JPEG compressed data or "
+"uncompressed YCbCr data. The TIFF default is 1 (centered); but when Y:Cb:Cr "
+"= 4:2:2 it is recommended in this standard that 2 (co-sited) be used to "
+"record data, in order to improve the image quality when viewed on TV "
+"systems. When this field does not exist, the reader shall assume the TIFF "
+"default. In the case of Y:Cb:Cr = 4:2:0, the TIFF default (centered) is "
+"recommended. If the reader does not have the capability of supporting both "
+"kinds of <YCbCrPositioning>, it shall follow the TIFF default regardless of "
+"the value in this field. It is preferable that readers be able to support "
+"both centered and co-sited positioning."
+msgstr ""
+
+#: libexif/exif-tag.c:414
+msgid "Reference Black/White"
+msgstr ""
+
+#: libexif/exif-tag.c:415
+msgid ""
+"The reference black point value and reference white point value. No defaults "
+"are given in TIFF, but the values below are given as defaults here. The "
+"color space is declared in a color space information tag, with the default "
+"being the value that gives the optimal image characteristics "
+"Interoperability these conditions."
+msgstr ""
+
+#: libexif/exif-tag.c:423
+msgid "XML Packet"
+msgstr ""
+
+#: libexif/exif-tag.c:423
+msgid "XMP Metadata"
+msgstr ""
+
+#: libexif/exif-tag.c:438 libexif/exif-tag.c:784
+msgid "CFA Pattern"
+msgstr ""
+
+#: libexif/exif-tag.c:439 libexif/exif-tag.c:785
+msgid ""
+"Indicates the color filter array (CFA) geometric pattern of the image sensor "
+"when a one-chip color area sensor is used. It does not apply to all sensing "
+"methods."
+msgstr ""
+
+#: libexif/exif-tag.c:443
+msgid "Battery Level"
+msgstr ""
+
+#: libexif/exif-tag.c:444
+msgid "Copyright"
+msgstr ""
+
+#: libexif/exif-tag.c:445
+msgid ""
+"Copyright information. In this standard the tag is used to indicate both the "
+"photographer and editor copyrights. It is the copyright notice of the person "
+"or organization claiming rights to the image. The Interoperability copyright "
+"statement including date and rights should be written in this field; e.g., "
+"\"Copyright, John Smith, 19xx. All rights reserved.\". In this standard the "
+"field records both the photographer and editor copyrights, with each "
+"recorded in a separate part of the statement. When there is a clear "
+"distinction between the photographer and editor copyrights, these are to be "
+"written in the order of photographer followed by editor copyright, separated "
+"by NULL (in this case, since the statement also ends with a NULL, there are "
+"two NULL codes) (see example 1). When only the photographer is given, it is "
+"terminated by one NULL code (see example 2). When only the editor copyright "
+"is given, the photographer copyright part consists of one space followed by "
+"a terminating NULL code, then the editor copyright is given (see example 3). "
+"When the field is left blank, it is treated as unknown."
+msgstr ""
+
+#: libexif/exif-tag.c:467
+msgid "Exposure time, given in seconds (sec)."
+msgstr ""
+
+#: libexif/exif-tag.c:469 libexif/pentax/mnote-pentax-tag.c:79
+msgid "F-Number"
+msgstr ""
+
+#: libexif/exif-tag.c:470
+msgid "The F number."
+msgstr ""
+
+#: libexif/exif-tag.c:475
+msgid "Image Resources Block"
+msgstr ""
+
+#: libexif/exif-tag.c:477
+msgid ""
+"A pointer to the Exif IFD. Interoperability, Exif IFD has the same structure "
+"as that of the IFD specified in TIFF. ordinarily, however, it does not "
+"contain image data as in the case of TIFF."
+msgstr ""
+
+#: libexif/exif-tag.c:485
+msgid "Exposure Program"
+msgstr ""
+
+#: libexif/exif-tag.c:486
+msgid ""
+"The class of the program used by the camera to set exposure when the picture "
+"is taken."
+msgstr ""
+
+#: libexif/exif-tag.c:490
+msgid "Spectral Sensitivity"
+msgstr ""
+
+#: libexif/exif-tag.c:491
+msgid ""
+"Indicates the spectral sensitivity of each channel of the camera used. The "
+"tag value is an ASCII string compatible with the standard developed by the "
+"ASTM Technical Committee."
+msgstr ""
+
+#: libexif/exif-tag.c:496
+msgid "GPS Info IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:497
+msgid ""
+"A pointer to the GPS Info IFD. The Interoperability structure of the GPS "
+"Info IFD, like that of Exif IFD, has no image data."
+msgstr ""
+
+#: libexif/exif-tag.c:503
+msgid "ISO Speed Ratings"
+msgstr ""
+
+#: libexif/exif-tag.c:504
+msgid ""
+"Indicates the ISO Speed and ISO Latitude of the camera or input device as "
+"specified in ISO 12232."
+msgstr ""
+
+#: libexif/exif-tag.c:507
+msgid "Opto-Electronic Conversion Function"
+msgstr ""
+
+#: libexif/exif-tag.c:508
+msgid ""
+"Indicates the Opto-Electronic Conversion Function (OECF) specified in ISO "
+"14524. <OECF> is the relationship between the camera optical input and the "
+"image values."
+msgstr ""
+
+#: libexif/exif-tag.c:513
+msgid "Time Zone Offset"
+msgstr ""
+
+#: libexif/exif-tag.c:514
+msgid "Encodes time zone of camera clock relative to GMT."
+msgstr ""
+
+#: libexif/exif-tag.c:515
+msgid "Exif Version"
+msgstr ""
+
+#: libexif/exif-tag.c:516
+msgid ""
+"The version of this standard supported. Nonexistence of this field is taken "
+"to mean nonconformance to the standard."
+msgstr ""
+
+#: libexif/exif-tag.c:520
+msgid "Date and Time (Original)"
+msgstr ""
+
+#: libexif/exif-tag.c:521
+msgid ""
+"The date and time when the original image data was generated. For a digital "
+"still camera the date and time the picture was taken are recorded."
+msgstr ""
+
+#: libexif/exif-tag.c:526
+msgid "Date and Time (Digitized)"
+msgstr ""
+
+#: libexif/exif-tag.c:527
+msgid "The date and time when the image was stored as digital data."
+msgstr ""
+
+#: libexif/exif-tag.c:530
+msgid "Components Configuration"
+msgstr ""
+
+#: libexif/exif-tag.c:531
+msgid ""
+"Information specific to compressed data. The channels of each component are "
+"arranged in order from the 1st component to the 4th. For uncompressed data "
+"the data arrangement is given in the <PhotometricInterpretation> tag. "
+"However, since <PhotometricInterpretation> can only express the order of Y, "
+"Cb and Cr, this tag is provided for cases when compressed data uses "
+"components other than Y, Cb, and Cr and to enable support of other sequences."
+msgstr ""
+
+#: libexif/exif-tag.c:541
+msgid "Compressed Bits per Pixel"
+msgstr ""
+
+#: libexif/exif-tag.c:542
+msgid ""
+"Information specific to compressed data. The compression mode used for a "
+"compressed image is indicated in unit bits per pixel."
+msgstr ""
+
+#: libexif/exif-tag.c:546 libexif/olympus/mnote-olympus-tag.c:123
+msgid "Shutter Speed"
+msgstr ""
+
+#: libexif/exif-tag.c:547
+msgid ""
+"Shutter speed. The unit is the APEX (Additive System of Photographic "
+"Exposure) setting."
+msgstr ""
+
+#: libexif/exif-tag.c:551
+msgid "The lens aperture. The unit is the APEX value."
+msgstr ""
+
+#: libexif/exif-tag.c:553
+msgid "Brightness"
+msgstr "亮度"
+
+#: libexif/exif-tag.c:554
+msgid ""
+"The value of brightness. The unit is the APEX value. Ordinarily it is given "
+"in the range of -99.99 to 99.99."
+msgstr ""
+
+#: libexif/exif-tag.c:558
+msgid "Exposure Bias"
+msgstr "曝光偏差"
+
+#: libexif/exif-tag.c:559
+msgid ""
+"The exposure bias. The units is the APEX value. Ordinarily it is given in "
+"the range of -99.99 to 99.99."
+msgstr ""
+
+#: libexif/exif-tag.c:562
+msgid "Maximum Aperture Value"
+msgstr ""
+
+#: libexif/exif-tag.c:563
+msgid ""
+"The smallest F number of the lens. The unit is the APEX value. Ordinarily it "
+"is given in the range of 00.00 to 99.99, but it is not limited to this range."
+msgstr ""
+
+#: libexif/exif-tag.c:568
+msgid "Subject Distance"
+msgstr "主体距离"
+
+#: libexif/exif-tag.c:569
+msgid "The distance to the subject, given in meters."
+msgstr "被摄主体的距离,单位为米。"
+
+#: libexif/exif-tag.c:572
+msgid "The metering mode."
+msgstr "测距模式"
+
+#: libexif/exif-tag.c:574
+msgid "Light Source"
+msgstr "光源"
+
+#: libexif/exif-tag.c:575
+msgid "The kind of light source."
+msgstr ""
+
+#: libexif/exif-tag.c:578
+msgid ""
+"This tag is recorded when an image is taken using a strobe light (flash)."
+msgstr ""
+
+#: libexif/exif-tag.c:582
+msgid ""
+"The actual focal length of the lens, in mm. Conversion is not made to the "
+"focal length of a 35 mm film camera."
+msgstr ""
+
+#: libexif/exif-tag.c:585
+msgid "Subject Area"
+msgstr ""
+
+#: libexif/exif-tag.c:586
+msgid ""
+"This tag indicates the location and area of the main subject in the overall "
+"scene."
+msgstr ""
+
+#: libexif/exif-tag.c:590
+msgid "TIFF/EP Standard ID"
+msgstr "TIFF/EP 标准 ID"
+
+#: libexif/exif-tag.c:591
+msgid "Maker Note"
+msgstr "制作者备忘"
+
+#: libexif/exif-tag.c:592
+msgid ""
+"A tag for manufacturers of Exif writers to record any desired information. "
+"The contents are up to the manufacturer."
+msgstr ""
+
+#: libexif/exif-tag.c:595
+msgid "User Comment"
+msgstr "用户备注"
+
+#: libexif/exif-tag.c:596
+msgid ""
+"A tag for Exif users to write keywords or comments on the image besides "
+"those in <ImageDescription>, and without the character code limitations of "
+"the <ImageDescription> tag. The character code used in the <UserComment> tag "
+"is identified based on an ID code in a fixed 8-byte area at the start of the "
+"tag data area. The unused portion of the area is padded with NULL (\"00.h"
+"\"). ID codes are assigned by means of registration. The designation method "
+"and references for each character code are defined in the specification. The "
+"value of CountN is determined based on the 8 bytes in the character code "
+"area and the number of bytes in the user comment part. Since the TYPE is not "
+"ASCII, NULL termination is not necessary. The ID code for the <UserComment> "
+"area may be a Defined code such as JIS or ASCII, or may be Undefined. The "
+"Undefined name is UndefinedText, and the ID code is filled with 8 bytes of "
+"all \"NULL\" (\"00.H\"). An Exif reader that reads the <UserComment> tag "
+"must have a function for determining the ID code. This function is not "
+"required in Exif readers that do not use the <UserComment> tag. When a "
+"<UserComment> area is set aside, it is recommended that the ID code be ASCII "
+"and that the following user comment part be filled with blank characters [20."
+"H]."
+msgstr ""
+
+#: libexif/exif-tag.c:619
+msgid "Sub-second Time"
+msgstr ""
+
+#: libexif/exif-tag.c:620
+msgid "A tag used to record fractions of seconds for the <DateTime> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:624
+msgid "Sub-second Time (Original)"
+msgstr ""
+
+#: libexif/exif-tag.c:625
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeOriginal> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:629
+msgid "Sub-second Time (Digitized)"
+msgstr ""
+
+#: libexif/exif-tag.c:630
+msgid ""
+"A tag used to record fractions of seconds for the <DateTimeDigitized> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:634
+msgid "XP Title"
+msgstr ""
+
+#: libexif/exif-tag.c:635
+msgid "A character string giving the title of the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:639
+msgid "XP Comment"
+msgstr ""
+
+#: libexif/exif-tag.c:640
+msgid ""
+"A character string containing a comment about the image, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:644
+msgid "XP Author"
+msgstr ""
+
+#: libexif/exif-tag.c:645
+msgid ""
+"A character string containing the name of the image creator, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:649
+msgid "XP Keywords"
+msgstr ""
+
+#: libexif/exif-tag.c:650
+msgid ""
+"A character string containing key words describing the image, encoded in UTF-"
+"16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:654
+msgid "XP Subject"
+msgstr ""
+
+#: libexif/exif-tag.c:655
+msgid "A character string giving the image subject, encoded in UTF-16LE."
+msgstr ""
+
+#: libexif/exif-tag.c:659
+msgid "The FlashPix format version supported by a FPXR file."
+msgstr ""
+
+#: libexif/exif-tag.c:661 libexif/pentax/mnote-pentax-tag.c:102
+msgid "Color Space"
+msgstr "色彩空间"
+
+#: libexif/exif-tag.c:662
+msgid ""
+"The color space information tag is always recorded as the color space "
+"specifier. Normally sRGB (=1) is used to define the color space based on the "
+"PC monitor conditions and environment. If a color space other than sRGB is "
+"used, Uncalibrated (=FFFF.H) is set. Image data recorded as Uncalibrated can "
+"be treated as sRGB when it is converted to FlashPix."
+msgstr ""
+
+#: libexif/exif-tag.c:670
+msgid "Pixel X Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:671
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid width of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file."
+msgstr ""
+
+#: libexif/exif-tag.c:677
+msgid "Pixel Y Dimension"
+msgstr ""
+
+#: libexif/exif-tag.c:678
+msgid ""
+"Information specific to compressed data. When a compressed file is recorded, "
+"the valid height of the meaningful image must be recorded in this tag, "
+"whether or not there is padding data or a restart marker. This tag should "
+"not exist in an uncompressed file. Since data padding is unnecessary in the "
+"vertical direction, the number of lines recorded in this valid image height "
+"tag will in fact be the same as that recorded in the SOF."
+msgstr ""
+
+#: libexif/exif-tag.c:688
+msgid "Related Sound File"
+msgstr ""
+
+#: libexif/exif-tag.c:689
+msgid ""
+"This tag is used to record the name of an audio file related to the image "
+"data. The only relational information recorded here is the Exif audio file "
+"name and extension (an ASCII string consisting of 8 characters + '.' + 3 "
+"characters). The path is not recorded. Stipulations on audio and file naming "
+"conventions are defined in the specification. When using this tag, audio "
+"files must be recorded in conformance to the Exif audio format. Writers are "
+"also allowed to store the data such as Audio within APP2 as FlashPix "
+"extension stream data. The mapping of Exif image files and audio files is "
+"done in any of three ways, [1], [2] and [3]. If multiple files are mapped to "
+"one file as in [2] or [3], the above format is used to record just one audio "
+"file name. If there are multiple audio files, the first recorded file is "
+"given. In the case of [3], for example, for the Exif image file \"DSC00001."
+"JPG\" only  \"SND00001.WAV\" is given as the related Exif audio file. When "
+"there are three Exif audio files \"SND00001.WAV\", \"SND00002.WAV\" and "
+"\"SND00003.WAV\", the Exif image file name for each of them, \"DSC00001.JPG"
+"\", is indicated. By combining multiple relational information, a variety of "
+"playback possibilities can be supported. The method of using relational "
+"information is left to the implementation on the playback side. Since this "
+"information is an ASCII character string, it is terminated by NULL. When "
+"this tag is used to map audio files, the relation of the audio file to image "
+"data must also be indicated on the audio file end."
+msgstr ""
+
+#: libexif/exif-tag.c:719
+msgid "Interoperability IFD Pointer"
+msgstr ""
+
+#: libexif/exif-tag.c:720
+msgid ""
+"Interoperability IFD is composed of tags which stores the information to "
+"ensure the Interoperability and pointed by the following tag located in Exif "
+"IFD. The Interoperability structure of Interoperability IFD is the same as "
+"TIFF defined IFD structure but does not contain the image data "
+"characteristically compared with normal TIFF IFD."
+msgstr ""
+
+#: libexif/exif-tag.c:729
+msgid "Flash Energy"
+msgstr ""
+
+#: libexif/exif-tag.c:730
+msgid ""
+"Indicates the strobe energy at the time the image is captured, as measured "
+"in Beam Candle Power Seconds (BCPS)."
+msgstr ""
+
+#: libexif/exif-tag.c:734
+msgid "Spatial Frequency Response"
+msgstr ""
+
+#: libexif/exif-tag.c:735
+msgid ""
+"This tag records the camera or input device spatial frequency table and SFR "
+"values in the direction of image width, image height, and diagonal "
+"direction, as specified in ISO 12233."
+msgstr ""
+
+#: libexif/exif-tag.c:741
+#, fuzzy
+msgid "Focal Plane X-Resolution"
+msgstr "焦平面分辨率单位"
+
+#: libexif/exif-tag.c:742
+msgid ""
+"Indicates the number of pixels in the image width (X) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+
+#: libexif/exif-tag.c:746
+#, fuzzy
+msgid "Focal Plane Y-Resolution"
+msgstr "焦平面分辨率单位"
+
+#: libexif/exif-tag.c:747
+msgid ""
+"Indicates the number of pixels in the image height (V) direction per "
+"<FocalPlaneResolutionUnit> on the camera focal plane."
+msgstr ""
+
+#: libexif/exif-tag.c:751
+msgid "Focal Plane Resolution Unit"
+msgstr "焦平面分辨率单位"
+
+#: libexif/exif-tag.c:752
+msgid ""
+"Indicates the unit for measuring <FocalPlaneXResolution> and "
+"<FocalPlaneYResolution>. This value is the same as the <ResolutionUnit>."
+msgstr ""
+
+#: libexif/exif-tag.c:757
+msgid "Subject Location"
+msgstr ""
+
+#: libexif/exif-tag.c:758
+msgid ""
+"Indicates the location of the main subject in the scene. The value of this "
+"tag represents the pixel at the center of the main subject relative to the "
+"left edge, prior to rotation processing as per the <Rotation> tag. The first "
+"value indicates the X column number and the second indicates the Y row "
+"number."
+msgstr ""
+
+#: libexif/exif-tag.c:765
+msgid "Exposure Index"
+msgstr ""
+
+#: libexif/exif-tag.c:766
+msgid ""
+"Indicates the exposure index selected on the camera or input device at the "
+"time the image is captured."
+msgstr ""
+
+#: libexif/exif-tag.c:769
+msgid "Sensing Method"
+msgstr "传感方式"
+
+#: libexif/exif-tag.c:770
+msgid "Indicates the image sensor type on the camera or input device."
+msgstr ""
+
+#: libexif/exif-tag.c:773 libexif/fuji/mnote-fuji-tag.c:64
+msgid "File Source"
+msgstr ""
+
+#: libexif/exif-tag.c:774
+msgid ""
+"Indicates the image source. If a DSC recorded the image, the tag value of "
+"this tag always be set to 3, indicating that the image was recorded on a DSC."
+msgstr ""
+
+#: libexif/exif-tag.c:778
+msgid "Scene Type"
+msgstr "场景类型"
+
+#: libexif/exif-tag.c:779
+msgid ""
+"Indicates the type of scene. If a DSC recorded the image, this tag value "
+"must always be set to 1, indicating that the image was directly photographed."
+msgstr ""
+
+#: libexif/exif-tag.c:789
+msgid "Custom Rendered"
+msgstr ""
+
+#: libexif/exif-tag.c:790
+msgid ""
+"This tag indicates the use of special processing on image data, such as "
+"rendering geared to output. When special processing is performed, the reader "
+"is expected to disable or minimize any further processing."
+msgstr ""
+
+#: libexif/exif-tag.c:796
+msgid ""
+"This tag indicates the exposure mode set when the image was shot. In auto-"
+"bracketing mode, the camera shoots a series of frames of the same scene at "
+"different exposure settings."
+msgstr ""
+
+#: libexif/exif-tag.c:801
+msgid "This tag indicates the white balance mode set when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:805
+msgid "Digital Zoom Ratio"
+msgstr "数码变焦倍率"
+
+#: libexif/exif-tag.c:806
+msgid ""
+"This tag indicates the digital zoom ratio when the image was shot. If the "
+"numerator of the recorded value is 0, this indicates that digital zoom was "
+"not used."
+msgstr ""
+
+#: libexif/exif-tag.c:811
+#, fuzzy
+msgid "Focal Length in 35mm Film"
+msgstr "35mm 胶片焦距"
+
+#: libexif/exif-tag.c:812
+msgid ""
+"This tag indicates the equivalent focal length assuming a 35mm film camera, "
+"in mm. A value of 0 means the focal length is unknown. Note that this tag "
+"differs from the FocalLength tag."
+msgstr ""
+
+#: libexif/exif-tag.c:818
+msgid "Scene Capture Type"
+msgstr "场景捕获类型"
+
+#: libexif/exif-tag.c:819
+msgid ""
+"This tag indicates the type of scene that was shot. It can also be used to "
+"record the mode in which the image was shot. Note that this differs from the "
+"scene type <SceneType> tag."
+msgstr ""
+
+#: libexif/exif-tag.c:824
+msgid "Gain Control"
+msgstr "增益控制"
+
+#: libexif/exif-tag.c:825
+msgid "This tag indicates the degree of overall image gain adjustment."
+msgstr ""
+
+#: libexif/exif-tag.c:829
+msgid ""
+"This tag indicates the direction of contrast processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:833
+msgid ""
+"This tag indicates the direction of saturation processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:837
+msgid ""
+"This tag indicates the direction of sharpness processing applied by the "
+"camera when the image was shot."
+msgstr ""
+
+#: libexif/exif-tag.c:841
+msgid "Device Setting Description"
+msgstr ""
+
+#: libexif/exif-tag.c:842
+msgid ""
+"This tag indicates information on the picture-taking conditions of a "
+"particular camera model. The tag is used only to indicate the picture-taking "
+"conditions in the reader."
+msgstr ""
+
+#: libexif/exif-tag.c:848
+msgid "Subject Distance Range"
+msgstr ""
+
+#: libexif/exif-tag.c:849
+msgid "This tag indicates the distance to the subject."
+msgstr ""
+
+#: libexif/exif-tag.c:851
+msgid "Image Unique ID"
+msgstr "图像唯一 ID"
+
+#: libexif/exif-tag.c:852
+msgid ""
+"This tag indicates an identifier assigned uniquely to each image. It is "
+"recorded as an ASCII string equivalent to hexadecimal notation and 128-bit "
+"fixed length."
+msgstr ""
+
+#: libexif/exif-tag.c:857
+msgid "Gamma"
+msgstr "伽玛"
+
+#: libexif/exif-tag.c:858
+msgid "Indicates the value of coefficient gamma."
+msgstr ""
+
+#: libexif/exif-tag.c:860
+msgid "PRINT Image Matching"
+msgstr ""
+
+#: libexif/exif-tag.c:861
+msgid "Related to Epson's PRINT Image Matching technology"
+msgstr ""
+
+#: libexif/exif-tag.c:863
+msgid "Padding"
+msgstr ""
+
+#: libexif/exif-tag.c:864
+msgid ""
+"This tag reserves space that can be reclaimed later when additional metadata "
+"are added. New metadata can be written in place by replacing this tag with a "
+"smaller data element and using the reclaimed space to store the new or "
+"expanded metadata tags."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:62
+msgid "Softest"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:66
+msgid "Hardest"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:67 libexif/fuji/mnote-fuji-entry.c:96
+msgid "Medium soft"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:68 libexif/fuji/mnote-fuji-entry.c:94
+msgid "Medium hard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:69 libexif/fuji/mnote-fuji-entry.c:90
+#: libexif/fuji/mnote-fuji-entry.c:98 libexif/fuji/mnote-fuji-entry.c:182
+msgid "Film simulation mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:79
+msgid "Incandescent"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:85
+msgid "Medium high"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:87
+msgid "Medium low"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:88 libexif/fuji/mnote-fuji-entry.c:97
+msgid "Original"
+msgstr "初始"
+
+#: libexif/fuji/mnote-fuji-entry.c:124 libexif/pentax/mnote-pentax-entry.c:164
+#: libexif/pentax/mnote-pentax-entry.c:299
+msgid "Program AE"
+msgstr "程序 AE"
+
+#: libexif/fuji/mnote-fuji-entry.c:125
+msgid "Natural photo"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:126
+msgid "Vibration reduction"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:127
+msgid "Sunset"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:128 libexif/pentax/mnote-pentax-entry.c:181
+msgid "Museum"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:129
+msgid "Party"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:130
+msgid "Flower"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:131 libexif/pentax/mnote-pentax-entry.c:176
+msgid "Text"
+msgstr "文本"
+
+#: libexif/fuji/mnote-fuji-entry.c:132
+msgid "NP & flash"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:137
+msgid "Aperture priority AE"
+msgstr "光圈优先 AE"
+
+#: libexif/fuji/mnote-fuji-entry.c:138
+msgid "Shutter priority AE"
+msgstr "快门优先 AE"
+
+#: libexif/fuji/mnote-fuji-entry.c:146
+msgid "F-Standard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:147
+msgid "F-Chrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:148
+msgid "F-B&W"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:151
+msgid "No blur"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:152
+msgid "Blur warning"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:155
+msgid "Focus good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:156
+msgid "Out of focus"
+msgstr "焦外"
+
+#: libexif/fuji/mnote-fuji-entry.c:159
+msgid "AE good"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:160
+msgid "Over exposed"
+msgstr "过曝"
+
+#: libexif/fuji/mnote-fuji-entry.c:164
+msgid "Wide"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:167
+msgid "F0/Standard"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:168
+msgid "F1/Studio portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:169
+msgid "F1a/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:170
+msgid "F1b/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:171
+msgid "F1c/Professional portrait"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:172
+msgid "F2/Fujichrome"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:173
+msgid "F3/Studio portrait Ex"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:174
+msgid "F4/Velvia"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:177
+msgid "Auto (100-400%)"
+msgstr "自动 (100-400%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:179
+msgid "Standard (100%)"
+msgstr "标准(100%)"
+
+#: libexif/fuji/mnote-fuji-entry.c:180
+msgid "Wide1 (230%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:181
+msgid "Wide2 (400%)"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-entry.c:263
+#, c-format
+msgid "%2.2f mm"
+msgstr "%2.2f mm"
+
+#: libexif/fuji/mnote-fuji-entry.c:298 libexif/pentax/mnote-pentax-entry.c:399
+#: libexif/pentax/mnote-pentax-entry.c:451
+#, c-format
+msgid "%i bytes unknown data"
+msgstr "%i 字节未知数据"
+
+#: libexif/fuji/mnote-fuji-tag.c:36
+msgid "Maker Note Version"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:37
+msgid "This number is unique and based on the date of manufacture."
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:41
+msgid "Chromaticity Saturation"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:44
+msgid "Flash Firing Strength Compensation"
+msgstr "闪光灯补光强度"
+
+#: libexif/fuji/mnote-fuji-tag.c:46
+msgid "Focusing Mode"
+msgstr "对焦模式"
+
+#: libexif/fuji/mnote-fuji-tag.c:47
+msgid "Focus Point"
+msgstr "焦点"
+
+#: libexif/fuji/mnote-fuji-tag.c:48
+msgid "Slow Synchro Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:49 libexif/pentax/mnote-pentax-tag.c:72
+msgid "Picture Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:50
+msgid "Continuous Taking"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:51
+msgid "Continuous Sequence Number"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:52
+msgid "FinePix Color"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:53
+msgid "Blur Check"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:54
+msgid "Auto Focus Check"
+msgstr "自动焦点检测"
+
+#: libexif/fuji/mnote-fuji-tag.c:55
+msgid "Auto Exposure Check"
+msgstr "自动曝光检测"
+
+#: libexif/fuji/mnote-fuji-tag.c:56
+msgid "Dynamic Range"
+msgstr "动态范围"
+
+#: libexif/fuji/mnote-fuji-tag.c:57
+msgid "Film Simulation Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:58
+msgid "Dynamic Range Wide Mode"
+msgstr "大动态范围模式"
+
+#: libexif/fuji/mnote-fuji-tag.c:59
+msgid "Development Dynamic Range Wide Mode"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:60
+msgid "Minimum Focal Length"
+msgstr "最小焦距"
+
+#: libexif/fuji/mnote-fuji-tag.c:61
+msgid "Maximum Focal Length"
+msgstr "最大焦距"
+
+#: libexif/fuji/mnote-fuji-tag.c:62
+msgid "Maximum Aperture at Minimum Focal"
+msgstr "最小焦距时的最大光圈"
+
+#: libexif/fuji/mnote-fuji-tag.c:63
+msgid "Maximum Aperture at Maximum Focal"
+msgstr "最大焦距时的最大光圈"
+
+#: libexif/fuji/mnote-fuji-tag.c:65
+msgid "Order Number"
+msgstr ""
+
+#: libexif/fuji/mnote-fuji-tag.c:66 libexif/pentax/mnote-pentax-tag.c:98
+msgid "Frame Number"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:49
+#, c-format
+msgid "Invalid format '%s', expected '%s' or '%s'."
+msgstr "无效格式 '%s',预期 '%s' 或 '%s'。"
+
+#: libexif/olympus/mnote-olympus-entry.c:89
+#, fuzzy
+msgid "AF non D lens"
+msgstr "AF-D 或 AF-S 镜头"
+
+#: libexif/olympus/mnote-olympus-entry.c:91
+#, fuzzy
+msgid "AF-D or AF-S lens"
+msgstr "AF-D 或 AF-S 镜头"
+
+#: libexif/olympus/mnote-olympus-entry.c:92
+#, fuzzy
+msgid "AF-D G lens"
+msgstr "AF-D G 镜头"
+
+#: libexif/olympus/mnote-olympus-entry.c:93
+#, fuzzy
+msgid "AF-D VR lens"
+msgstr "AF-D VR 镜头"
+
+#: libexif/olympus/mnote-olympus-entry.c:94
+#, fuzzy
+msgid "AF-D G VR lens"
+msgstr "AF-D VR 镜头"
+
+#: libexif/olympus/mnote-olympus-entry.c:98
+msgid "Flash unit unknown"
+msgstr "未知闪光单元"
+
+#: libexif/olympus/mnote-olympus-entry.c:99
+msgid "Flash is external"
+msgstr "外置闪光灯"
+
+#: libexif/olympus/mnote-olympus-entry.c:100
+#, fuzzy
+msgid "Flash is on camera"
+msgstr "相机内置闪光灯"
+
+#: libexif/olympus/mnote-olympus-entry.c:103
+#, fuzzy
+msgid "VGA basic"
+msgstr "基本的 VGA"
+
+#: libexif/olympus/mnote-olympus-entry.c:104
+#, fuzzy
+msgid "VGA normal"
+msgstr "标准的 VGA"
+
+#: libexif/olympus/mnote-olympus-entry.c:105
+#, fuzzy
+msgid "VGA fine"
+msgstr "精细的 VGA"
+
+#: libexif/olympus/mnote-olympus-entry.c:106
+#, fuzzy
+msgid "SXGA basic"
+msgstr "基本的 SXGA"
+
+#: libexif/olympus/mnote-olympus-entry.c:107
+#, fuzzy
+msgid "SXGA normal"
+msgstr "标准的 SXGA"
+
+#: libexif/olympus/mnote-olympus-entry.c:108
+#, fuzzy
+msgid "SXGA fine"
+msgstr "精细的 SXGA"
+
+#: libexif/olympus/mnote-olympus-entry.c:109
+msgid "2 Mpixel basic"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:110
+msgid "2 Mpixel normal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:111
+msgid "2 Mpixel fine"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:114
+msgid "Color"
+msgstr "颜色"
+
+#: libexif/olympus/mnote-olympus-entry.c:119
+msgid "Bright+"
+msgstr "亮度+"
+
+#: libexif/olympus/mnote-olympus-entry.c:120
+msgid "Bright-"
+msgstr "亮度-"
+
+#: libexif/olympus/mnote-olympus-entry.c:121
+msgid "Contrast+"
+msgstr "对比度+"
+
+#: libexif/olympus/mnote-olympus-entry.c:122
+msgid "Contrast-"
+msgstr "对比度-"
+
+#: libexif/olympus/mnote-olympus-entry.c:125
+msgid "ISO 80"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:126
+msgid "ISO 160"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:127
+msgid "ISO 320"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:128
+#: libexif/olympus/mnote-olympus-entry.c:246
+msgid "ISO 100"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:132
+msgid "Preset"
+msgstr "预设"
+
+#: libexif/olympus/mnote-olympus-entry.c:134
+msgid "Incandescence"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:135
+msgid "Fluorescence"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:137
+msgid "SpeedLight"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:140
+#, fuzzy
+msgid "No fisheye"
+msgstr "非鱼眼"
+
+#: libexif/olympus/mnote-olympus-entry.c:141
+#, fuzzy
+msgid "Fisheye on"
+msgstr "非鱼眼"
+
+#: libexif/olympus/mnote-olympus-entry.c:144
+msgid "Normal, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:145
+msgid "Normal, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:146
+msgid "Normal, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:147
+msgid "Normal, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:148
+msgid "Normal, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:149
+msgid "Normal, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:150
+msgid "Normal, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:151
+msgid "Normal, standard"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:152
+msgid "Fine, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:153
+msgid "Fine, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:154
+msgid "Fine, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:155
+msgid "Fine, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:156
+msgid "Fine, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:157
+msgid "Fine, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:158
+msgid "Fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:159
+msgid "Super fine, SQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:160
+msgid "Super fine, HQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:161
+msgid "Super fine, SHQ"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:162
+msgid "Super fine, RAW"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:163
+msgid "Super fine, SQ1"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:164
+msgid "Super fine, SQ2"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:165
+msgid "Super fine, super high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:166
+msgid "Super fine, high"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:169
+#: libexif/olympus/mnote-olympus-entry.c:174
+#: libexif/olympus/mnote-olympus-entry.c:208
+#: libexif/olympus/mnote-olympus-entry.c:217
+#: libexif/olympus/mnote-olympus-entry.c:240
+msgid "No"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:180
+msgid "On (Preset)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:185
+msgid "Fill"
+msgstr "填充"
+
+#: libexif/olympus/mnote-olympus-entry.c:192
+#, fuzzy
+msgid "Internal + external"
+msgstr "外置闪光灯"
+
+#: libexif/olympus/mnote-olympus-entry.c:221
+msgid "Interlaced"
+msgstr "交错"
+
+#: libexif/olympus/mnote-olympus-entry.c:222
+msgid "Progressive"
+msgstr "渐进"
+
+#: libexif/olympus/mnote-olympus-entry.c:228
+#: libexif/pentax/mnote-pentax-entry.c:85
+#: libexif/pentax/mnote-pentax-entry.c:139
+msgid "Best"
+msgstr "最好"
+
+#: libexif/olympus/mnote-olympus-entry.c:229
+#, fuzzy
+msgid "Adjust exposure"
+msgstr "调整曝光"
+
+#: libexif/olympus/mnote-olympus-entry.c:232
+#, fuzzy
+msgid "Spot focus"
+msgstr "焦外"
+
+#: libexif/olympus/mnote-olympus-entry.c:233
+#, fuzzy
+msgid "Normal focus"
+msgstr "正常过程"
+
+#: libexif/olympus/mnote-olympus-entry.c:236
+msgid "Record while down"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:237
+msgid "Press start, press stop"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:245
+msgid "ISO 50"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:247
+msgid "ISO 200"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:248
+msgid "ISO 400"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:252
+#: libexif/pentax/mnote-pentax-entry.c:168
+msgid "Sport"
+msgstr "运动"
+
+#: libexif/olympus/mnote-olympus-entry.c:253
+msgid "TV"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:255
+msgid "User 1"
+msgstr "用户 1"
+
+#: libexif/olympus/mnote-olympus-entry.c:256
+msgid "User 2"
+msgstr "用户 2"
+
+#: libexif/olympus/mnote-olympus-entry.c:257
+msgid "Lamp"
+msgstr "灯"
+
+#: libexif/olympus/mnote-olympus-entry.c:260
+msgid "5 frames/sec"
+msgstr "5 帧/秒"
+
+#: libexif/olympus/mnote-olympus-entry.c:261
+msgid "10 frames/sec"
+msgstr "10 帧/秒"
+
+#: libexif/olympus/mnote-olympus-entry.c:262
+msgid "15 frames/sec"
+msgstr "15 帧/秒"
+
+#: libexif/olympus/mnote-olympus-entry.c:263
+msgid "20 frames/sec"
+msgstr "20 帧/秒"
+
+#: libexif/olympus/mnote-olympus-entry.c:375
+#, fuzzy, c-format
+msgid "Red Correction %f, blue Correction %f"
+msgstr "红色校正 %f,蓝色校正 %f"
+
+#: libexif/olympus/mnote-olympus-entry.c:383
+#, c-format
+msgid "%2.2f meters"
+msgstr "%2.2f 米"
+
+#: libexif/olympus/mnote-olympus-entry.c:385
+msgid "No manual focus selection"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:411
+msgid "AF position: center"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:412
+msgid "AF position: top"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:413
+msgid "AF position: bottom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:414
+msgid "AF position: left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:415
+msgid "AF position: right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:416
+msgid "AF position: upper-left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:417
+msgid "AF position: upper-right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:418
+msgid "AF position: lower-left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:419
+msgid "AF position: lower-right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:420
+msgid "AF position: far left"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:421
+msgid "AF position: far right"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:422
+#, fuzzy
+msgid "Unknown AF position"
+msgstr "未知的Exif版本"
+
+#: libexif/olympus/mnote-olympus-entry.c:433
+#: libexif/olympus/mnote-olympus-entry.c:503
+#, c-format
+msgid "Internal error (unknown value %hi)"
+msgstr "内部错误 (未知值 %hi)"
+
+#: libexif/olympus/mnote-olympus-entry.c:441
+#: libexif/olympus/mnote-olympus-entry.c:511
+#, c-format
+msgid "Unknown value %hi"
+msgstr "未知值 %hi"
+
+#: libexif/olympus/mnote-olympus-entry.c:536
+#: libexif/olympus/mnote-olympus-entry.c:556
+#, c-format
+msgid "Unknown %hu"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:553
+msgid "2 sec."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:592
+#, fuzzy
+msgid "Fast"
+msgstr "快速"
+
+#: libexif/olympus/mnote-olympus-entry.c:696
+msgid "Automatic"
+msgstr "自动"
+
+#: libexif/olympus/mnote-olympus-entry.c:726
+#, c-format
+msgid "Manual: %liK"
+msgstr "手动: %liK"
+
+#: libexif/olympus/mnote-olympus-entry.c:729
+#, fuzzy
+msgid "Manual: unknown"
+msgstr "手动:未知"
+
+#: libexif/olympus/mnote-olympus-entry.c:735
+msgid "One-touch"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:791
+#: libexif/olympus/mnote-olympus-entry.c:801
+msgid "Infinite"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-entry.c:809
+#, c-format
+msgid "%i bytes unknown data: "
+msgstr "%i 字节未知数据: "
+
+#: libexif/olympus/mnote-olympus-tag.c:38
+#: libexif/olympus/mnote-olympus-tag.c:53
+msgid "ISO Setting"
+msgstr "ISO 设置"
+
+#: libexif/olympus/mnote-olympus-tag.c:39
+msgid "Color Mode (?)"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:42
+msgid "Image Sharpening"
+msgstr "图像锐化"
+
+#: libexif/olympus/mnote-olympus-tag.c:44
+msgid "Flash Setting"
+msgstr "闪光灯设置"
+
+#: libexif/olympus/mnote-olympus-tag.c:46
+msgid "White Balance Fine Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:47
+msgid "White Balance RB"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:49
+msgid "ISO Selection"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Preview Image IFD"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:50
+msgid "Offset of the preview image directory (IFD) inside the file."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:51
+msgid "Exposurediff ?"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:54
+msgid "Image Boundary"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:56
+msgid "Flash Exposure Bracket Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:57
+msgid "Exposure Bracket Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:58
+#: libexif/olympus/mnote-olympus-tag.c:96
+msgid "Image Adjustment"
+msgstr "图像调整"
+
+#: libexif/olympus/mnote-olympus-tag.c:59
+msgid "Tone Compensation"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:60
+msgid "Adapter"
+msgstr "适配器"
+
+#: libexif/olympus/mnote-olympus-tag.c:62
+msgid "Lens"
+msgstr "镜头"
+
+#: libexif/olympus/mnote-olympus-tag.c:63
+#: libexif/olympus/mnote-olympus-tag.c:135
+#: libexif/olympus/mnote-olympus-tag.c:185
+msgid "Manual Focus Distance"
+msgstr "手动对焦"
+
+#: libexif/olympus/mnote-olympus-tag.c:65
+msgid "Flash Used"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:66
+msgid "AF Focus Position"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:67
+msgid "Bracketing"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:69
+msgid "Lens F Stops"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:70
+msgid "Contrast Curve"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:71
+#: libexif/olympus/mnote-olympus-tag.c:95
+#: libexif/pentax/mnote-pentax-tag.c:134
+msgid "Color Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:72
+msgid "Light Type"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:74
+msgid "Hue Adjustment"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:76
+#: libexif/olympus/mnote-olympus-tag.c:163
+#: libexif/pentax/mnote-pentax-tag.c:108
+msgid "Noise Reduction"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:79
+msgid "Sensor Pixel Size"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+#, fuzzy
+msgid "Image Data Size"
+msgstr "图片尺寸"
+
+#: libexif/olympus/mnote-olympus-tag.c:82
+msgid "Size of compressed image data in bytes."
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:84
+msgid "Total Number of Pictures Taken"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:86
+msgid "Optimize Image"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:88
+msgid "Vari Program"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:89
+msgid "Capture Editor Data"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:90
+msgid "Capture Editor Version"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:97
+#: libexif/olympus/mnote-olympus-tag.c:183
+msgid "CCD Sensitivity"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:99
+msgid "Focus"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:102
+msgid "Converter"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:105
+msgid "Thumbnail Image"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:106
+msgid "Speed/Sequence/Panorama Direction"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:109
+#, fuzzy
+msgid "Black & White Mode"
+msgstr "黑白模式"
+
+#: libexif/olympus/mnote-olympus-tag.c:111
+msgid "Focal Plane Diagonal"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:112
+msgid "Lens Distortion Parameters"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:114
+msgid "Info"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:115
+msgid "Camera ID"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:116
+msgid "Precapture Frames"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:117
+msgid "White Board"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:118
+msgid "One Touch White Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:119
+msgid "White Balance Bracket"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:120
+#: libexif/pentax/mnote-pentax-tag.c:123
+msgid "White Balance Bias"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:121
+msgid "Data Dump"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:124
+msgid "ISO Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:125
+msgid "Aperture Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:126
+msgid "Brightness Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:128
+msgid "Flash Device"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:130
+msgid "Sensor Temperature"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:131
+msgid "Lens Temperature"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:132
+msgid "Light Condition"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:136
+msgid "Zoom Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:137
+msgid "Focus Step Count"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:138
+msgid "Sharpness Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:139
+msgid "Flash Charge Level"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:140
+msgid "Color Matrix"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:141
+msgid "Black Level"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:142
+msgid "White Balance Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:143
+#: libexif/pentax/mnote-pentax-tag.c:87
+msgid "Red Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:144
+#: libexif/pentax/mnote-pentax-tag.c:86
+msgid "Blue Balance"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:145
+msgid "Color Matrix Number"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:147
+msgid "Flash Exposure Comp"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:148
+msgid "Internal Flash Table"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:149
+msgid "External Flash G Value"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:150
+msgid "External Flash Bounce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:151
+msgid "External Flash Zoom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:152
+msgid "External Flash Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:153
+msgid "Contrast Setting"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:154
+msgid "Sharpness Factor"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:155
+msgid "Color Control"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:156
+msgid "Olympus Image Width"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:157
+msgid "Olympus Image Height"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:158
+msgid "Scene Detect"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:159
+msgid "Compression Ratio"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:160
+msgid "Preview Image Valid"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:161
+msgid "AF Result"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:162
+msgid "CCD Scan Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:164
+msgid "Infinity Lens Step"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:165
+msgid "Near Lens Step"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:166
+msgid "Light Value Center"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:167
+msgid "Light Value Periphery"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:170
+msgid "Sequential Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:171
+msgid "Wide Range"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:172
+msgid "Color Adjustment Mode"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:174
+msgid "Quick Shot"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:176
+msgid "Voice Memo"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:177
+msgid "Record Shutter Release"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:178
+msgid "Flicker Reduce"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:179
+msgid "Optical Zoom"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:181
+msgid "Light Source Special"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:182
+msgid "Resaved"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:184
+msgid "Scene Select"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:186
+msgid "Sequence Shot Interval"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:189
+msgid "Epson Image Width"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:190
+msgid "Epson Image Height"
+msgstr ""
+
+#: libexif/olympus/mnote-olympus-tag.c:191
+msgid "Epson Software Version"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:80
+#: libexif/pentax/mnote-pentax-entry.c:134
+msgid "Multi-exposure"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:83
+#: libexif/pentax/mnote-pentax-entry.c:137
+msgid "Good"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:84
+#: libexif/pentax/mnote-pentax-entry.c:138
+msgid "Better"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:92
+msgid "Flash on"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:140
+msgid "TIFF"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:150
+msgid "2560x1920 or 2304x1728"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:156
+msgid "2304x1728 or 2592x1944"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:158
+msgid "2816x2212 or 2816x2112"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:171
+msgid "Surf & snow"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:172
+#, fuzzy
+msgid "Sunset or candlelight"
+msgstr "碘钨灯"
+
+#: libexif/pentax/mnote-pentax-entry.c:173
+msgid "Autumn"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:178
+#, fuzzy
+msgid "Self portrait"
+msgstr "肖像模式"
+
+#: libexif/pentax/mnote-pentax-entry.c:179
+msgid "Illustrations"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:180
+#, fuzzy
+msgid "Digital filter"
+msgstr "数码变焦"
+
+#: libexif/pentax/mnote-pentax-entry.c:182
+msgid "Food"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:183
+#, fuzzy
+msgid "Green mode"
+msgstr "测距模式"
+
+#: libexif/pentax/mnote-pentax-entry.c:184
+#, fuzzy
+msgid "Light pet"
+msgstr "光源"
+
+#: libexif/pentax/mnote-pentax-entry.c:185
+msgid "Dark pet"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:186
+#, fuzzy
+msgid "Medium pet"
+msgstr "中"
+
+#: libexif/pentax/mnote-pentax-entry.c:188
+#: libexif/pentax/mnote-pentax-entry.c:296
+msgid "Candlelight"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:189
+msgid "Natural skin tone"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:190
+msgid "Synchro sound record"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:191
+msgid "Frame composite"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:194
+#, fuzzy
+msgid "Auto, did not fire"
+msgstr "未闪光"
+
+#: libexif/pentax/mnote-pentax-entry.c:196
+#, fuzzy
+msgid "Auto, did not fire, red-eye reduction"
+msgstr "自动 + 红眼消除"
+
+#: libexif/pentax/mnote-pentax-entry.c:197
+msgid "Auto, fired"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:199
+#, fuzzy
+msgid "Auto, fired, red-eye reduction"
+msgstr "自动 + 红眼消除"
+
+#: libexif/pentax/mnote-pentax-entry.c:201
+msgid "On, wireless"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:202
+msgid "On, soft"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:203
+msgid "On, slow-sync"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:204
+#, fuzzy
+msgid "On, slow-sync, red-eye reduction"
+msgstr "开 + 红眼消除"
+
+#: libexif/pentax/mnote-pentax-entry.c:205
+msgid "On, trailing-curtain sync"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:213
+msgid "AF-S"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:214
+msgid "AF-C"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:217
+msgid "Upper-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:218
+msgid "Top"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:219
+msgid "Upper-right"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:221
+msgid "Mid-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:223
+msgid "Mid-right"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:225
+msgid "Lower-left"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:226
+msgid "Bottom"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:227
+msgid "Lower-right"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:228
+#, fuzzy
+msgid "Fixed center"
+msgstr "天气良好"
+
+#: libexif/pentax/mnote-pentax-entry.c:232
+msgid "Multiple"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:234
+msgid "Top-center"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:240
+msgid "Bottom-center"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:257
+#, fuzzy
+msgid "User selected"
+msgstr "自动选择"
+
+#: libexif/pentax/mnote-pentax-entry.c:282
+msgid "3008x2008 or 3040x2024"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:293
+msgid "Digital filter?"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-entry.c:374
+#: libexif/pentax/mnote-pentax-entry.c:383
+#, c-format
+msgid "Internal error (unknown value %i %i)"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:35 libexif/pentax/mnote-pentax-tag.c:63
+msgid "Capture Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:36 libexif/pentax/mnote-pentax-tag.c:70
+#: libexif/pentax/mnote-pentax-tag.c:129
+msgid "Quality Level"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:54
+#, fuzzy
+msgid "ISO Speed"
+msgstr "ISO 设置"
+
+#: libexif/pentax/mnote-pentax-tag.c:56
+msgid "Colors"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:59
+msgid "PrintIM Settings"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:60 libexif/pentax/mnote-pentax-tag.c:131
+msgid "Time Zone"
+msgstr "时区"
+
+#: libexif/pentax/mnote-pentax-tag.c:61
+msgid "Daylight Savings"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:64
+msgid "Preview Size"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:65
+msgid "Preview Length"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:66 libexif/pentax/mnote-pentax-tag.c:122
+msgid "Preview Start"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:67
+msgid "Model Identification"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:68
+msgid "Date"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:69
+msgid "Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:75
+msgid "AF Point Selected"
+msgstr "AF 点选择"
+
+#: libexif/pentax/mnote-pentax-tag.c:76
+msgid "Auto AF Point"
+msgstr "自动 AF 点"
+
+#: libexif/pentax/mnote-pentax-tag.c:77
+msgid "Focus Position"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:80
+msgid "ISO Number"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:83
+msgid "Auto Bracketing"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:85
+msgid "White Balance Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:93
+msgid "World Time Location"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:94
+msgid "Hometown City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:95
+msgid "Destination City"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Hometown DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:96
+msgid "Home Daylight Savings Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination DST"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:97
+msgid "Destination Daylight Savings Time"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:99
+msgid "Image Processing"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:100
+msgid "Picture Mode (2)"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:103
+msgid "Image Area Offset"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:104
+msgid "Raw Image Size"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:105
+msgid "Autofocus Points Used"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:107
+msgid "Camera Temperature"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:110
+msgid "Image Tone"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:111
+msgid "Shake Reduction Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:112
+msgid "Black Point"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:114
+msgid "AE Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:115
+msgid "Lens Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:116
+msgid "Flash Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:117
+msgid "Camera Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:118
+msgid "Battery Info"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:119
+msgid "Hometown City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:120
+msgid "Destination City Code"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Object Distance"
+msgstr "目标距离"
+
+#: libexif/pentax/mnote-pentax-tag.c:125
+msgid "Distance of photographed object in millimeters."
+msgstr "距被摄目标毫米数。"
+
+#: libexif/pentax/mnote-pentax-tag.c:126
+msgid "Flash Distance"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:132
+msgid "Bestshot Mode"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:133
+msgid "CCS ISO Sensitivity"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:135
+msgid "Enhancement"
+msgstr ""
+
+#: libexif/pentax/mnote-pentax-tag.c:136
+msgid "Finer"
+msgstr ""
+
+#: test/nls/test-nls.c:20 test/nls/test-nls.c:23 test/nls/test-nls.c:24
+msgid "[DO_NOT_TRANSLATE_THIS_MARKER]"
+msgstr ""
+
+#~ msgid "top - left"
+#~ msgstr "左上"
+
+#~ msgid "bottom - right"
+#~ msgstr "右下"
+
+#~ msgid "bottom - left"
+#~ msgstr "左下"
+
+#~ msgid "Center-Weighted Average"
+#~ msgstr "中心权重平均"
+
+#~ msgid "flash"
+#~ msgstr "闪光灯"
+
+#~ msgid "Shutter speed"
+#~ msgstr "快门速度"
+
+#~ msgid "normal"
+#~ msgstr "正常"
+
+#~ msgid "unknown"
+#~ msgstr "未知"
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/test/Makefile.am b/framework/modules/c_LibExifModule/libexif-0.6.20/test/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..d0a35514e759e02a90ed6209a6cd55343577b4b1
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/test/Makefile.am
@@ -0,0 +1,21 @@
+SUBDIRS = nls
+
+# Notes about tests:
+#  - Add "small" tests and stuff here.
+#  - Add "big"   tests and stuff to explicitly test for (fixed) bugs
+#    to libexif-testsuite:
+#    * We don't want to force people to download dozens of test images
+#      just for one small library.
+#    * Proper testing is done with the "exif" program in libexif-testsuite.
+#      And this is just the lib - we don't have the program available
+#      here yet.
+
+TESTS = test-mem test-value test-integers test-parse test-tagtable test-sorted
+
+TEST_IMAGES = $(top_srcdir)/daniel-andrews-sample.jpg
+export TEST_IMAGES
+
+check_PROGRAMS = test-mem test-mnote test-value test-integers test-parse \
+	test-tagtable test-sorted
+
+LDADD = $(top_builddir)/libexif/libexif.la $(LTLIBINTL)
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/test/nls/Makefile.am b/framework/modules/c_LibExifModule/libexif-0.6.20/test/nls/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..3f0b1ab81737632a6c4eb871d9c75e2805a6feb1
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/test/nls/Makefile.am
@@ -0,0 +1,34 @@
+nlstestscripts = check-localedir.sh # check-codeset.sh
+
+codeset_tests = test-codeset-default test-codeset-latin1 test-codeset-utf-8
+
+TESTS = $(nlstestscripts)
+
+check_SCRIPTS = $(nlstestscripts)
+
+check_PROGRAMS = print-localedir # $(codeset_tests)
+
+# test_codeset_default_SOURCES = test-codeset.c
+# test_codeset_default_CPPFLAGS =	\
+# 	$(AM_CPPFLAGS) $(CPPFLAGS)	\
+# 	-DCODESET_DEFAULT
+
+# test_codeset_utf_8_SOURCES = test-codeset.c
+# test_codeset_utf_8_CPPFLAGS =	\
+# 	$(AM_CPPFLAGS) $(CPPFLAGS)	\
+# 	-DCODESET_UTF_8
+
+# test_codeset_latin1_SOURCES = test-codeset.c
+# test_codeset_latin1_CPPFLAGS =	\
+# 	$(AM_CPPFLAGS) $(CPPFLAGS)	\
+# 	-DCODESET_LATIN1
+
+CLEANFILES = $(check_SCRIPTS)
+
+# test_nls_LDADD = $(top_builddir)/libexif/libexif.la $(INTLLIBS)
+
+EXTRA_DIST = check-localedir.in check-nls.in test-nls.c test-codeset.c
+
+.in.sh: Makefile
+	sed 's|@top_builddir\@|$(top_builddir)|g;s|@localedir\@|$(localedir)|g;s|@PRINT_LOCALEDIR\@|./print-localedir$(EXEEXT)|g;s|@build_alias\@|$(build_alias)|g;s|@host_alias\@|$(host_alias)|g;s|@codeset_tests\@|$(codeset_tests)|g;s|@DESTDIR\@|$(DESTDIR)|g' < $< > $@
+	chmod +x $@
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/test/nls/print-localedir.c b/framework/modules/c_LibExifModule/libexif-0.6.20/test/nls/print-localedir.c
new file mode 100644
index 0000000000000000000000000000000000000000..50e605b450081d8083486e1df066f69824e9163b
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/test/nls/print-localedir.c
@@ -0,0 +1,11 @@
+#include "config.h"
+#include "libexif/i18n.h"
+
+#include <stdio.h>
+
+int main()
+{
+  puts(LOCALEDIR);
+  puts("\n");
+  return 0;
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/test/nls/test-codeset.c b/framework/modules/c_LibExifModule/libexif-0.6.20/test/nls/test-codeset.c
new file mode 100644
index 0000000000000000000000000000000000000000..fa47f799c0aca27dffac2ca466e06ad89126142b
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/test/nls/test-codeset.c
@@ -0,0 +1,209 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <i18n.h>
+#include <langinfo.h>
+#include <libintl.h>
+
+/* return whether byte strings are equal or not.
+ * NULL strings are never equal
+ */
+static int my_streq(const char *va, const char *vb) {
+	const char *a = va;
+	const char *b = vb;
+	int i;
+	if ((NULL == a) || (NULL == b)) {
+		return 0;
+	}
+	for (i=0; a[i] != '\0' && b[i] != '\0'; i++) {
+		if (a[i] != b[i]) {
+			return 0;
+		}
+	}
+	return 1;
+}
+
+#if defined(CODESET_UTF_8)
+#define MY_CODESET "UTF-8"
+#elif defined(CODESET_LATIN1)
+#define MY_CODESET "iso-8859-1"
+#elif defined(CODESET_DEFAULT)
+#define MY_CODESET "default"
+#define bind_textdomain_codeset(domain,codeset) \
+	MY_CODESET
+#else
+#error Define one of the CODESET_* macros!
+#endif
+
+typedef struct {
+	char *locale;
+	char *orig;
+	char *latin1;
+	char *utf8;
+} TestCase;
+
+const TestCase testcases[] = {
+	{ "de_DE", 
+	  N_("High saturation"), 
+	  /* &auml; latin1   oct 333     hex e4    dec 228     */
+	  "Hohe S\344ttigung", 
+	  /* &auml; utf-8    oct 303 244 hex c3 a4 dec 195 164 */
+	  "Hohe S\303\244ttigung" },
+	{ "fr_FR",
+	  N_("Not defined"),
+	  /* &eacute; latin1 oct 351     hex e9    dec 233     */
+	  "Non d\233fini",
+	  /* &eacute; utf-8  oct 303 251 hex c3    dec 195     */
+	  "Non d\303\251fini"
+	},
+	{ "es_ES",
+	  N_("High saturation"),
+	  /* &oacute; latin1 oct hex       dec 243 */
+	  "Alta saturaci\363n",
+	  /* &oacute; utf-8  oct hex c3 b3 dec */
+	  "Alta saturaci\303\263n"
+	},
+	{ NULL, NULL, NULL, NULL }
+};
+
+
+static int check(const int i)
+{
+	const char *oldtextdomain = textdomain(NULL);
+	const char *newtextdomain = textdomain(GETTEXT_PACKAGE);
+		
+	const char *newcodeset = MY_CODESET;
+	const char *oldcodeset = bind_textdomain_codeset(GETTEXT_PACKAGE, NULL);
+	const char *realcodeset = bind_textdomain_codeset(GETTEXT_PACKAGE, MY_CODESET);
+		
+	const char *orig   = testcases[i].orig;
+	const char *transl = gettext(testcases[i].orig);
+	const char *latin1 = testcases[i].latin1;
+	const char *utf8   = testcases[i].utf8;
+			
+	printf( 
+		"Old textdomain:  %s\n"
+		"New textdomain:  %s\n",
+		oldtextdomain,
+		newtextdomain
+		);
+	
+	if (NULL != oldcodeset) {
+		printf(
+		       "Old codeset:     \"%s\" (locale default)\n",
+		       nl_langinfo(CODESET)
+		       );
+	} else {
+		printf(
+		       "Old codeset:     \"%s\"\n",
+		       oldcodeset
+		       );
+	}
+	
+	printf(
+	       "Wanted codeset:  %s\n"
+	       "Real codeset:    %s\n",
+	       newcodeset,
+	       realcodeset
+	       );
+
+	printf(
+	       "Original:   %s\n"
+	       "Translated: %s\n"
+	       "iso-8859-1: %s\n"
+	       "utf-8:      %s\n",
+	       orig,
+	       transl,
+	       latin1,
+	       utf8
+	       );
+
+#if defined(CODESET_UTF_8)
+	return (my_streq(transl, utf8));
+#elif defined(CODESET_LATIN_1)
+	return (my_streq(transl, latin1));
+#else
+	/* make sure my_streq is used once */
+	return (my_streq(orig, orig));
+#endif
+}
+
+
+static int checks()
+{
+	int i;
+		
+	const char *localeenv = getenv("LOCALEDIR");
+	const char *localedir = (localeenv!=NULL)?localeenv:LOCALEDIR;
+	const char *msgcatdir = bindtextdomain(GETTEXT_PACKAGE, localedir);
+	
+	/* set locale to env settings */
+	const char *oldlocale = setlocale(LC_ALL, NULL);
+	const char *newlocale = setlocale(LC_ALL, "");
+
+	if (localeenv != NULL) {
+		printf("Msg catalog dir: %s (from environment variable LOCALEDIR\n",
+		       msgcatdir);
+	} else {
+		printf("Msg catalog dir: %s\n", msgcatdir);
+	}
+
+	if (newlocale == NULL) {
+		printf("Locale not available: \"%s\"\n", newlocale);
+		printf("Aborting without error.\n");
+		return 1;
+	}
+
+
+	printf( 
+		"Old locale:      %s\n"
+		"New locale:      %s\n",
+		oldlocale,
+		newlocale
+		);
+
+	for (i=0; testcases[i].locale != NULL; i++) {
+		const int localelen = strlen(testcases[i].locale);
+		if (strncmp(newlocale, testcases[i].locale, localelen) == 0) {
+			return check(i);
+		}
+	}
+
+	printf("No test case found for locale: %s\n", newlocale);
+	return 1;
+}
+
+
+int main(int argc, char *argv[])
+{
+	if (argc > 1) {
+		if ((argc == 2) && (strcmp("--list", argv[1]) == 0)) {
+			int i;
+			for (i=0; testcases[i].locale != NULL; i++) {
+				printf("%s\n", testcases[i].locale);
+			}
+			return 0;
+		} else {
+			int i;
+			fprintf(stderr, "Illegal command line. Aborting.\n");
+			fprintf(stderr, "argc: %03d\n", argc);
+			for (i=0; i<argc; i++) {
+				fprintf(stderr, "%03d \"%s\"\n", i, argv[i]);
+			}
+			return 1;
+		}
+	} else {
+		int ret = checks();
+		printf("Test result: %s\n", (ret)?"success":"failure");
+		return (ret)?0:1;
+	}
+	return -1;
+}
+
+/*
+ * Local Variables:
+ * mode:c
+ * c-basic-offset: 8
+ * End:
+ */
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/test/nls/test-nls.c b/framework/modules/c_LibExifModule/libexif-0.6.20/test/nls/test-nls.c
new file mode 100644
index 0000000000000000000000000000000000000000..6080d7af6bad3f70fa7db0ff3bc1008c5879084d
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/test/nls/test-nls.c
@@ -0,0 +1,105 @@
+#include "config.h"
+
+#include "i18n.h"
+#include <locale.h>
+
+#include <stdio.h>
+#include <string.h>
+
+struct _testcase {
+  char *locale;
+  char *untranslated;
+  char *expected;
+};
+
+typedef struct _testcase testcase;
+
+/* Translators: Just ignore the stuff in the test subdirectory. */
+static testcase testcases[] = {
+  { "de_DE.UTF-8", 
+    N_("[DO_NOT_TRANSLATE_THIS_MARKER]"), 
+       "[DO_NOT_TRANSLATE_THIS_MARKER_de]" },
+  { "C",  
+    N_("[DO_NOT_TRANSLATE_THIS_MARKER]"), 
+    N_("[DO_NOT_TRANSLATE_THIS_MARKER]") },
+};
+
+int main(int argc, char *argv[])
+{
+  char *localedir;
+  int i;
+
+  if (argc != 2) {
+    puts("Syntax: test-nls <localedir>\n");
+    return 1;
+  }
+
+  localedir = argv[1];
+
+  do {
+    const char *newloc = setlocale(LC_ALL, NULL);
+    printf("Default locale: %s\n", newloc);
+  } while (0);
+
+
+  for (i=0; i < sizeof(testcases)/sizeof(testcases[0]); i++) {
+    char *locale       = testcases[i].locale;
+    char *untranslated = testcases[i].untranslated;
+    char *expected     = testcases[i].expected;
+    char *translation;
+
+    if (1) {
+      printf("setlocale(\"%s\")\n", locale);
+      const char *actual_locale = setlocale(LC_MESSAGES, locale);
+      if (actual_locale == NULL) {
+	fprintf(stderr, "Error: Cannot set locale to %s.\n", locale);
+	return 4;
+      }
+      printf("new locale: %s\n", actual_locale);
+    }
+
+    if (1) {
+      const char *basedir = bindtextdomain(GETTEXT_PACKAGE, localedir);
+      printf("message basedir: %s\n", basedir);
+    }
+
+    if (1) {
+      const char *domain = textdomain(GETTEXT_PACKAGE);
+      printf("message domain: %s\n", domain);
+    }
+
+    if (1) {
+      const char *codeset = bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
+      printf("message codeset: %s\n", codeset);
+    }
+
+    puts("before translation");
+    translation = gettext(untranslated);
+    puts("after translation");
+
+    if (strcmp(expected, translation) != 0) {
+      fprintf(stderr,
+	      "locale:       %s\n"
+	      "localedir:    %s\n"
+	      "untranslated: %s\n"
+	      "expected:     %s\n"
+	      "translation:  %s\n"
+	      "Error: translation != expected\n",
+	      locale,
+	      localedir,
+	      untranslated,
+	      expected, 
+	      translation);
+      
+      return 1;
+    } else {
+      fprintf(stderr,
+	      "expected:     %s\n"
+	      "translation:  %s\n"
+	      "Match!\n",
+	      expected,
+	      translation);
+    }
+  }
+  return 0;
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/test/test-integers.c b/framework/modules/c_LibExifModule/libexif-0.6.20/test/test-integers.c
new file mode 100644
index 0000000000000000000000000000000000000000..6af75340bf39d073a7d8be3be8c5562eed703ec3
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/test/test-integers.c
@@ -0,0 +1,64 @@
+/** \file test-integers.c
+ * \brief Check assumptions about integer types (sizes, ranges).
+ *
+ * Copyright (C) 2007 Hans Ulrich Niedermann <gp@n-dimensional.de>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+
+#include "libexif/_stdint.h"
+#include <stdlib.h>
+#include <stdio.h>
+
+
+typedef enum {
+   EN_A,
+   EN_B,
+   EN_C,
+   EN_D,
+   EN_E,
+   EN_F
+} enum_t;
+
+
+#if defined(__GNUC__) && (__GNUC__ >= 4)
+# define CHECK(condition)					     \
+	if (!(condition)) {					     \
+		fprintf(stderr, "%s:%d: check failed: %s\n",	     \
+			__FILE__, __LINE__, #condition);	     \
+		errors++;					     \
+	}
+#else
+# define CHECK(condition)					     \
+	if (!(condition)) {					     \
+		abort();					     \
+	}
+#endif
+
+
+int main()
+{
+  unsigned int errors = 0;
+
+  /* libexif assumes unsigned ints are not smaller than 32bit in many places */
+  CHECK(sizeof(unsigned int) >= sizeof(uint32_t));
+
+  /* libexif assumes that enums fit into ints */
+  CHECK(sizeof(enum_t) <= sizeof(int));
+  
+  return (errors>0)?1:0;
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/test/test-mem.c b/framework/modules/c_LibExifModule/libexif-0.6.20/test/test-mem.c
new file mode 100644
index 0000000000000000000000000000000000000000..d4459a9cf3f21dc956a1c2942e06412b4bdc3daa
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/test/test-mem.c
@@ -0,0 +1,67 @@
+/* test-mem.c
+ *
+ * Copyright (c) 2002 Lutz Mueller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#include <config.h>
+
+#include <libexif/exif-data.h>
+#include <libexif/exif-ifd.h>
+#include <libexif/exif-loader.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+
+int
+main ()
+{
+	ExifData *ed;
+	/* ExifEntry *e; */
+	unsigned char *eb, size[2];
+	unsigned int ebs;
+	ExifLoader *loader;
+	unsigned int i;
+
+	printf ("Creating EXIF data...\n");
+	ed = exif_data_new ();
+	exif_data_set_data_type (ed, EXIF_DATA_TYPE_UNCOMPRESSED_CHUNKY);
+
+	printf ("Fill EXIF data with all necessary entries to follow specs...\n");
+	exif_data_fix (ed);
+
+	exif_data_dump (ed);
+
+	printf ("Saving EXIF data to memory...\n");
+	exif_data_save_data (ed, &eb, &ebs);
+	exif_data_unref (ed);
+
+	printf ("Writing %i byte(s) EXIF data to loader...\n", ebs);
+	loader = exif_loader_new ();
+	size[0] = (unsigned char) ebs;
+	size[1] = (unsigned char) (ebs >> 8);
+	exif_loader_write (loader, size, 2);
+	for (i = 0; i < ebs && exif_loader_write (loader, eb + i, 1); i++);
+	printf ("Wrote %i byte(s).\n", i);
+	free (eb);
+	ed = exif_loader_get_data (loader);
+	exif_loader_unref (loader);
+	exif_data_dump (ed);
+	exif_data_unref (ed);
+
+	return 0;
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/test/test-mnote.c b/framework/modules/c_LibExifModule/libexif-0.6.20/test/test-mnote.c
new file mode 100644
index 0000000000000000000000000000000000000000..386406572930d0237260b6250caaa45f53d08d59
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/test/test-mnote.c
@@ -0,0 +1,107 @@
+/* exif-mnote.c
+ *
+ * Copyright 2002 Lutz M\uffffller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <libexif/exif-data.h>
+
+static int
+test_exif_data (ExifData *d)
+{
+	unsigned int i, c;
+	char v[1024], *p;
+	ExifMnoteData *md;
+
+	fprintf (stdout, "Byte order: %s\n",
+		exif_byte_order_get_name (exif_data_get_byte_order (d)));
+
+	fprintf (stdout, "Parsing maker note...\n");
+	md = exif_data_get_mnote_data (d);
+	if (!md) {
+		fprintf (stderr, "Could not parse maker note!\n");
+		exif_data_unref (d);
+		return 1;
+	}
+
+	fprintf (stdout, "Increasing ref-count...\n");
+	exif_mnote_data_ref (md);
+
+	fprintf (stdout, "Decreasing ref-count...\n");
+	exif_mnote_data_unref (md);
+
+	fprintf (stdout, "Counting entries...\n");
+	c = exif_mnote_data_count (md);
+	fprintf (stdout, "Found %i entries.\n", c);
+	for (i = 0; i < c; i++) {
+		fprintf (stdout, "Dumping entry number %i...\n", i);
+		fprintf (stdout, "  Name: '%s'\n",
+				exif_mnote_data_get_name (md, i));
+		fprintf (stdout, "  Title: '%s'\n",
+				exif_mnote_data_get_title (md, i));
+		fprintf (stdout, "  Description: '%s'\n",
+				exif_mnote_data_get_description (md, i));
+		p = exif_mnote_data_get_value (md, i, v, sizeof (v));
+		if (p) { fprintf (stdout, "  Value: '%s'\n", v); }
+	}
+
+	return 0;
+}
+
+int
+main (int argc, char **argv)
+{
+	ExifData *d;
+	unsigned int buf_size;
+	unsigned char *buf;
+	int r;
+
+	if (argc <= 1) {
+		fprintf (stderr, "You need to supply a filename!\n");
+		return 1;
+	}
+
+	fprintf (stdout, "Loading '%s'...\n", argv[1]);
+	d = exif_data_new_from_file (argv[1]);
+	if (!d) {
+		fprintf (stderr, "Could not load data from '%s'!\n", argv[1]);
+		return 1;
+	}
+	fprintf (stdout, "Loaded '%s'.\n", argv[1]);
+
+	fprintf (stdout, "######### Test 1 #########\n");
+	r = test_exif_data (d);
+	if (r) return r;
+
+	exif_data_save_data (d, &buf, &buf_size);
+	exif_data_unref (d);
+	d = exif_data_new_from_data (buf, buf_size);
+	free (buf);
+
+	fprintf (stdout, "######### Test 2 #########\n");
+	r = test_exif_data (d);
+	if (r) return r;
+
+	fprintf (stdout, "Test successful!\n");
+
+	return 1;
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/test/test-parse.c b/framework/modules/c_LibExifModule/libexif-0.6.20/test/test-parse.c
new file mode 100644
index 0000000000000000000000000000000000000000..83889e647ffb99821bdb8240bc8b1efc86ab2d98
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/test/test-parse.c
@@ -0,0 +1,122 @@
+/** \file test-parse.c
+ * \brief Completely parse all files given on the command line.
+ *
+ * Copyright (C) 2007 Hans Ulrich Niedermann <gp@n-dimensional.de>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ *
+ */
+
+#include "libexif/exif-data.h"
+#include "libexif/exif-system.h"
+
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+
+/** Callback function handling an ExifEntry. */
+void content_foreach_func(ExifEntry *entry, void *callback_data);
+void content_foreach_func(ExifEntry *entry, void *UNUSED(callback_data))
+{
+  char buf[2000];
+  exif_entry_get_value(entry, buf, sizeof(buf));
+  printf("    Entry %p: %s (%s)\n"
+	 "      Size, Comps: %d, %d\n"
+	 "      Value: %s\n", 
+	 entry,
+	 exif_tag_get_name(entry->tag),
+	 exif_format_get_name(entry->format),
+	 entry->size,
+	 (int)(entry->components),
+	 exif_entry_get_value(entry, buf, sizeof(buf)));
+}
+
+
+/** Callback function handling an ExifContent (corresponds 1:1 to an IFD). */
+void data_foreach_func(ExifContent *content, void *callback_data);
+void data_foreach_func(ExifContent *content, void *callback_data)
+{
+  printf("  Content %p: ifd=%d\n", content, exif_content_get_ifd(content));
+  exif_content_foreach_entry(content, content_foreach_func, callback_data);
+}
+
+
+/** Run EXIF parsing test on the given file. */
+void test_parse(const char *filename, void *callback_data);
+void test_parse(const char *filename, void *callback_data)
+{
+  ExifData *d;
+  printf("File %s\n", filename);
+
+  d = exif_data_new_from_file(filename);
+  exif_data_foreach_content(d, data_foreach_func, callback_data);
+  exif_data_unref(d);
+}
+
+
+/** Callback function prototype for string parsing. */
+typedef void (*test_parse_func) (const char *filename, void *callback_data);
+
+
+/** Split string at whitespace and call callback with each substring. */
+void split_ws_string(const char *string, test_parse_func func, void *callback_data);
+void split_ws_string(const char *string, test_parse_func func, void *callback_data)
+{
+  const char *start = string;
+  const char *p = start;
+  for (;;) {
+    if (*p == ' ' || *p == '\t' || *p == '\n' || *p == '\r' || *p == '\0' ) {
+      size_t len = p-start;
+      if (len > 0) {
+	/* emulate strndup */
+	char *str = malloc(1+len);
+	if (str) {
+	  memcpy(str, start, len);
+	  str[len] = '\0';
+	  func(str, callback_data);
+	  free(str);
+	  start = p+1;
+	}
+      } else {
+	start = p+1;
+      }
+    }
+    if (*p == '\0') {
+      break;
+    }
+    p++;
+  }  
+}
+
+
+/** Main program. */
+int main(const int argc, const char *argv[])
+{
+  int i;
+  void *callback_data = NULL;
+
+  const char *envar = getenv("TEST_IMAGES");
+  if (envar) {
+    split_ws_string(envar, test_parse, callback_data);
+  }
+
+  for (i=1; i<argc; i++) {
+    test_parse(argv[i], callback_data);
+  }
+
+  return 0;
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/test/test-sorted.c b/framework/modules/c_LibExifModule/libexif-0.6.20/test/test-sorted.c
new file mode 100644
index 0000000000000000000000000000000000000000..0d00317003998b6db5cec615cde8724a358634dd
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/test/test-sorted.c
@@ -0,0 +1,50 @@
+/* test-sorted.c
+ *
+ * This test ensures that the ExifTagTable[] array is stored in sorted
+ * order. If that were not so, then it a binary search of the array would
+ * not give correct results.
+ *
+ * Copyright 2009 Dan Fandrich <dan@coneharvesters.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA
+ */
+
+#include <libexif/exif-tag.h>
+#include <stdio.h>
+
+int
+main (void)
+{
+	int rc = 0;
+	unsigned int i, num;
+	ExifTag last = 0, current;
+	num = exif_tag_table_count() - 1; /* last entry is a NULL terminator */
+	for (i=0; i < num; ++i) {
+		current = exif_tag_table_get_tag(i);
+		if (current < last) {
+			printf("Tag 0x%04x in ExifTagTable[] is out of order\n",
+				current);
+			rc = 1;
+		}
+		if (exif_tag_table_get_name(i) == NULL) {
+			printf("Tag 0x%04x has a NULL name\n", current);
+			rc = 1;
+		}
+		last = current;
+	}
+
+	return rc;
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/test/test-tagtable.c b/framework/modules/c_LibExifModule/libexif-0.6.20/test/test-tagtable.c
new file mode 100644
index 0000000000000000000000000000000000000000..d4af368ba60f9b5ba7e596cb2a60b1c979d62375
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/test/test-tagtable.c
@@ -0,0 +1,220 @@
+/* test-tagtable.c
+ *
+ * Test various functions that involve the tag table.
+ *
+ * Copyright (c) 2009 Dan Fandrich <dan@coneharvesters.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details. 
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#include "config.h"
+#include <libexif/exif-tag.h>
+#include <stdio.h>
+#include <string.h>
+
+#define VALIDATE(s) if (!(s)) {printf("Test %s FAILED\n", #s); fail=1;}
+
+#define TESTBLOCK(t) {int rc = (t); fail |= rc; \
+                      if (rc) printf("%s tests FAILED\n", #t);}
+
+/* Test exif_tag_get_support_level_in_ifd */
+static int support_level(void)
+{
+    int fail = 0;
+
+    /*
+     * The tag EXIF_TAG_PLANAR_CONFIGURATION support varies greatly between
+     * data types.
+     */
+    VALIDATE(exif_tag_get_support_level_in_ifd(EXIF_TAG_PLANAR_CONFIGURATION,
+               EXIF_IFD_0, EXIF_DATA_TYPE_UNCOMPRESSED_CHUNKY) == 
+             EXIF_SUPPORT_LEVEL_OPTIONAL)
+
+    VALIDATE(exif_tag_get_support_level_in_ifd(EXIF_TAG_PLANAR_CONFIGURATION,
+               EXIF_IFD_0, EXIF_DATA_TYPE_UNCOMPRESSED_PLANAR) == 
+             EXIF_SUPPORT_LEVEL_MANDATORY)
+
+    VALIDATE(exif_tag_get_support_level_in_ifd(EXIF_TAG_PLANAR_CONFIGURATION,
+               EXIF_IFD_0, EXIF_DATA_TYPE_UNCOMPRESSED_YCC) == 
+             EXIF_SUPPORT_LEVEL_OPTIONAL)
+
+    VALIDATE(exif_tag_get_support_level_in_ifd(EXIF_TAG_PLANAR_CONFIGURATION,
+               EXIF_IFD_0, EXIF_DATA_TYPE_COMPRESSED) == 
+             EXIF_SUPPORT_LEVEL_NOT_RECORDED)
+
+    VALIDATE(exif_tag_get_support_level_in_ifd(EXIF_TAG_PLANAR_CONFIGURATION,
+               EXIF_IFD_0, EXIF_DATA_TYPE_UNKNOWN) == 
+             EXIF_SUPPORT_LEVEL_UNKNOWN)
+
+    /*
+     * The tag EXIF_TAG_YCBCR_POSITIONING support varies greatly between
+     * IFDs
+     */
+    VALIDATE(exif_tag_get_support_level_in_ifd(EXIF_TAG_YCBCR_POSITIONING,
+               EXIF_IFD_0, EXIF_DATA_TYPE_COMPRESSED) == 
+             EXIF_SUPPORT_LEVEL_MANDATORY)
+
+    VALIDATE(exif_tag_get_support_level_in_ifd(EXIF_TAG_YCBCR_POSITIONING,
+               EXIF_IFD_1, EXIF_DATA_TYPE_COMPRESSED) == 
+             EXIF_SUPPORT_LEVEL_OPTIONAL)
+
+    VALIDATE(exif_tag_get_support_level_in_ifd(EXIF_TAG_YCBCR_POSITIONING,
+               EXIF_IFD_EXIF, EXIF_DATA_TYPE_COMPRESSED) == 
+             EXIF_SUPPORT_LEVEL_NOT_RECORDED)
+
+    VALIDATE(exif_tag_get_support_level_in_ifd(EXIF_TAG_YCBCR_POSITIONING,
+               EXIF_IFD_GPS, EXIF_DATA_TYPE_COMPRESSED) == 
+             EXIF_SUPPORT_LEVEL_NOT_RECORDED)
+
+    VALIDATE(exif_tag_get_support_level_in_ifd(EXIF_TAG_YCBCR_POSITIONING,
+               EXIF_IFD_INTEROPERABILITY, EXIF_DATA_TYPE_COMPRESSED) == 
+             EXIF_SUPPORT_LEVEL_NOT_RECORDED)
+
+
+    /*
+     * The tag EXIF_TAG_GPS_VERSION_ID has value 0 which should NOT be
+     * treated specially
+     */
+    VALIDATE(exif_tag_get_support_level_in_ifd(EXIF_TAG_GPS_VERSION_ID,
+               EXIF_IFD_GPS, EXIF_DATA_TYPE_COMPRESSED) == 
+             EXIF_SUPPORT_LEVEL_OPTIONAL)
+
+    VALIDATE(exif_tag_get_support_level_in_ifd(EXIF_TAG_GPS_VERSION_ID,
+               EXIF_IFD_GPS, EXIF_DATA_TYPE_UNKNOWN) == 
+             EXIF_SUPPORT_LEVEL_OPTIONAL)
+
+    VALIDATE(exif_tag_get_support_level_in_ifd(EXIF_TAG_GPS_VERSION_ID,
+               EXIF_IFD_0, EXIF_DATA_TYPE_COMPRESSED) == 
+             EXIF_SUPPORT_LEVEL_NOT_RECORDED)
+
+    VALIDATE(exif_tag_get_support_level_in_ifd(EXIF_TAG_GPS_VERSION_ID,
+               EXIF_IFD_0, EXIF_DATA_TYPE_UNKNOWN) == 
+             EXIF_SUPPORT_LEVEL_UNKNOWN)
+
+    /* The unused tag 0xffff should NOT be treated specially */
+    VALIDATE(exif_tag_get_support_level_in_ifd(0xffff,
+               EXIF_IFD_0, EXIF_DATA_TYPE_UNKNOWN) == 
+             EXIF_SUPPORT_LEVEL_UNKNOWN)
+
+    VALIDATE(exif_tag_get_support_level_in_ifd(0xffff,
+               EXIF_IFD_0, EXIF_DATA_TYPE_COMPRESSED) == 
+             EXIF_SUPPORT_LEVEL_NOT_RECORDED)
+
+    /*
+     * The tag EXIF_TAG_DOCUMENT_NAME isn't in the EXIF 2.2 standard but
+     * it exists in the tag table, which causes it to show up as unknown
+     * instead of not recorded.
+     */
+    VALIDATE(exif_tag_get_support_level_in_ifd(EXIF_TAG_DOCUMENT_NAME,
+               EXIF_IFD_0, EXIF_DATA_TYPE_UNKNOWN) == 
+             EXIF_SUPPORT_LEVEL_UNKNOWN)
+
+    VALIDATE(exif_tag_get_support_level_in_ifd(EXIF_TAG_DOCUMENT_NAME,
+               EXIF_IFD_1, EXIF_DATA_TYPE_UNCOMPRESSED_CHUNKY) == 
+             EXIF_SUPPORT_LEVEL_UNKNOWN)
+
+
+    /*
+     * The tag number for EXIF_TAG_INTEROPERABILITY_INDEX (1) exists in both
+     * IFD Interoperability and IFD GPS (as EXIF_TAG_GPS_LATITUDE_REF) so
+     * there are two entries in the table.
+     */
+    VALIDATE(exif_tag_get_support_level_in_ifd(EXIF_TAG_INTEROPERABILITY_INDEX,
+               EXIF_IFD_INTEROPERABILITY, EXIF_DATA_TYPE_COMPRESSED) == 
+             EXIF_SUPPORT_LEVEL_OPTIONAL)
+
+    VALIDATE(exif_tag_get_support_level_in_ifd(EXIF_TAG_INTEROPERABILITY_INDEX,
+               EXIF_IFD_INTEROPERABILITY, EXIF_DATA_TYPE_UNKNOWN) == 
+             EXIF_SUPPORT_LEVEL_OPTIONAL)
+
+    VALIDATE(exif_tag_get_support_level_in_ifd(EXIF_TAG_INTEROPERABILITY_INDEX,
+               EXIF_IFD_0, EXIF_DATA_TYPE_COMPRESSED) == 
+             EXIF_SUPPORT_LEVEL_NOT_RECORDED)
+
+    VALIDATE(exif_tag_get_support_level_in_ifd(EXIF_TAG_INTEROPERABILITY_INDEX,
+               EXIF_IFD_0, EXIF_DATA_TYPE_UNKNOWN) == 
+             EXIF_SUPPORT_LEVEL_UNKNOWN)
+
+    VALIDATE(exif_tag_get_support_level_in_ifd(EXIF_TAG_GPS_LATITUDE_REF,
+               EXIF_IFD_GPS, EXIF_DATA_TYPE_COMPRESSED) == 
+             EXIF_SUPPORT_LEVEL_OPTIONAL)
+
+    VALIDATE(exif_tag_get_support_level_in_ifd(EXIF_TAG_GPS_LATITUDE_REF,
+               EXIF_IFD_GPS, EXIF_DATA_TYPE_UNKNOWN) == 
+             EXIF_SUPPORT_LEVEL_OPTIONAL)
+
+    /* The result of an unknown IFD should always be unknown */
+    VALIDATE(exif_tag_get_support_level_in_ifd(EXIF_TAG_EXIF_VERSION,
+               EXIF_IFD_COUNT, EXIF_DATA_TYPE_UNKNOWN) == 
+             EXIF_SUPPORT_LEVEL_UNKNOWN)
+
+    VALIDATE(exif_tag_get_support_level_in_ifd(EXIF_TAG_EXIF_VERSION,
+               EXIF_IFD_COUNT, EXIF_DATA_TYPE_COMPRESSED) == 
+             EXIF_SUPPORT_LEVEL_UNKNOWN)
+
+    return fail;
+}
+
+/* Test exif_tag_get_name_in_ifd  */
+static int name(void)
+{
+    int fail = 0;
+
+    /*
+     * The tag EXIF_TAG_GPS_VERSION_ID has value 0 which should NOT be
+     * treated specially
+     */
+    VALIDATE(!strcmp(exif_tag_get_name_in_ifd(
+                        EXIF_TAG_GPS_VERSION_ID, EXIF_IFD_GPS), 
+                     "GPSVersionID"))
+
+    VALIDATE(exif_tag_get_name_in_ifd(
+                        EXIF_TAG_GPS_VERSION_ID, EXIF_IFD_0) == NULL)
+
+    /*
+     * The tag number for EXIF_TAG_INTEROPERABILITY_INDEX (1) exists in both
+     * IFD Interoperability and IFD GPS (as EXIF_TAG_GPS_LATITUDE_REF) so
+     * there are two entries in the table.
+     */
+    VALIDATE(!strcmp(exif_tag_get_name_in_ifd(
+                EXIF_TAG_INTEROPERABILITY_INDEX, EXIF_IFD_INTEROPERABILITY), 
+                     "InteroperabilityIndex"))
+
+    VALIDATE(!strcmp(exif_tag_get_name_in_ifd(
+                        EXIF_TAG_GPS_LATITUDE_REF, EXIF_IFD_GPS), 
+                     "GPSLatitudeRef"))
+
+    /* Tag that doesn't appear in an IFD produces a NULL */
+    VALIDATE(exif_tag_get_name_in_ifd(
+                        EXIF_TAG_EXIF_VERSION, EXIF_IFD_0) == NULL)
+
+    /* Invalid IFD produces a NULL */
+    VALIDATE(exif_tag_get_name_in_ifd(
+                        EXIF_TAG_EXIF_VERSION, EXIF_IFD_COUNT) == NULL)
+
+    return fail;
+}
+
+int
+main ()
+{
+    int fail = 0;
+
+    TESTBLOCK(support_level())
+    TESTBLOCK(name())
+
+    return fail;
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/test/test-value.c b/framework/modules/c_LibExifModule/libexif-0.6.20/test/test-value.c
new file mode 100644
index 0000000000000000000000000000000000000000..715ce10f7ab7442b8f2b0226e7280206f910c736
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/test/test-value.c
@@ -0,0 +1,61 @@
+/* test-value.c
+ *
+ * Copyright 2002 Lutz M\uffffller <lutz@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA.
+ */
+
+#include <libexif/exif-utils.h>
+#include <libexif/exif-data.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+
+int
+main ()
+{
+	ExifData *d;
+	ExifEntry *e;
+	char v[1024];
+	ExifSRational r = {1., 20.};
+	unsigned int i;
+
+	d = exif_data_new ();
+	if (!d) {
+		printf ("Error running exif_data_new()\n");
+		exit(13);
+	}
+
+	e = exif_entry_new ();
+	if (!e) {
+		printf ("Error running exif_entry_new()\n");
+		exit(13);
+	}
+
+	exif_content_add_entry (d->ifd[EXIF_IFD_0], e);
+	exif_entry_initialize (e, EXIF_TAG_SHUTTER_SPEED_VALUE);
+	exif_set_srational (e->data, exif_data_get_byte_order (d), r);
+
+	for (i = 30; i > 0; i--) {
+		printf ("Length %2i: '%s'\n", i, 
+			exif_entry_get_value (e, v, i));
+	}
+
+	exif_entry_unref (e);
+	exif_data_unref (d);
+
+	return 0;
+}
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/win32/Release/lib_exif.lib b/framework/modules/c_LibExifModule/libexif-0.6.20/win32/Release/lib_exif.lib
new file mode 100755
index 0000000000000000000000000000000000000000..113e1fffa248a8723d74100ef2a3b9b526634893
Binary files /dev/null and b/framework/modules/c_LibExifModule/libexif-0.6.20/win32/Release/lib_exif.lib differ
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/win32/Release/lib_exifVC9.lib b/framework/modules/c_LibExifModule/libexif-0.6.20/win32/Release/lib_exifVC9.lib
new file mode 100644
index 0000000000000000000000000000000000000000..7580d69310f25d1e1570c747df01afd7c90557af
Binary files /dev/null and b/framework/modules/c_LibExifModule/libexif-0.6.20/win32/Release/lib_exifVC9.lib differ
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/win32/lib_exif.sln b/framework/modules/c_LibExifModule/libexif-0.6.20/win32/lib_exif.sln
new file mode 100644
index 0000000000000000000000000000000000000000..3dab1640b86f7fd7af3e32a55cb7ecef39f2ee7e
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/win32/lib_exif.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual C++ Express 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_exif", "lib_exif\lib_exif.vcxproj", "{DB081B8E-C5A3-44FB-BB6C-8803C26A705A}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{DB081B8E-C5A3-44FB-BB6C-8803C26A705A}.Debug|Win32.ActiveCfg = Debug|Win32
+		{DB081B8E-C5A3-44FB-BB6C-8803C26A705A}.Debug|Win32.Build.0 = Debug|Win32
+		{DB081B8E-C5A3-44FB-BB6C-8803C26A705A}.Release|Win32.ActiveCfg = Release|Win32
+		{DB081B8E-C5A3-44FB-BB6C-8803C26A705A}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/win32/lib_exif/config.h b/framework/modules/c_LibExifModule/libexif-0.6.20/win32/lib_exif/config.h
new file mode 100644
index 0000000000000000000000000000000000000000..0467ded6737d19a868d141c22876eb0244df94af
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/win32/lib_exif/config.h
@@ -0,0 +1,104 @@
+/* This config.h is created specifically for the visual studio build. */
+
+#include <windows.h>
+#include <shellapi.h>
+#include <tchar.h>
+#include <io.h>
+#include "intrin.h"
+
+/* Define to 1 if translation of program messages to the user's native
+   language is requested. */
+//#define ENABLE_NLS 1
+
+/* Define if the GNU dcgettext() function is already present or preinstalled.
+   */
+//#define HAVE_DCGETTEXT 1
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+/* #undef HAVE_DLFCN_H */
+
+/* Define if the GNU gettext() function is already present or preinstalled. */
+//#define HAVE_GETTEXT 1
+
+/* Define if you have the iconv() function. */
+//#define HAVE_ICONV 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the `localtime_r' function. */
+/* #undef HAVE_LOCALTIME_R */
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#ifdef _MSC_VER 
+#if _MSC_VER >= 1600
+#define HAVE_STDINT_H 1
+#else
+typedef unsigned __int16 uint16_t;
+typedef __int16 int16_t;
+typedef unsigned __int32 uint32_t;
+typedef __int32 int32_t;
+#endif
+#endif
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define as const if the declaration of iconv() needs const. */
+#define ICONV_CONST 
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+   */
+#define LT_OBJDIR ".libs/"
+
+/* Name of package */
+#define PACKAGE "libexif"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "libexif-devel@lists.sourceforge.net"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "EXIF library"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "EXIF library 0.6.20"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "libexif"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "0.6.20"
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Version number of package */
+#define VERSION "0.6.20"
+
+typedef int ssize_t;
+#define  inline __inline
+#define snprintf   _snprintf
+#undef ENABLE_NLS
+#undef HAVE_DCGETTEXT
+#undef HAVE_GETTEXT
+#undef HAVE_ICONV
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/win32/lib_exif/lib_exif.vcproj b/framework/modules/c_LibExifModule/libexif-0.6.20/win32/lib_exif/lib_exif.vcproj
new file mode 100644
index 0000000000000000000000000000000000000000..2b59b8c7610a9c89fa9b1c791021b61de38876ef
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/win32/lib_exif/lib_exif.vcproj
@@ -0,0 +1,411 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9.00"
+	Name="lib_exif"
+	ProjectGUID="{DB081B8E-C5A3-44FB-BB6C-8803C26A705A}"
+	RootNamespace="lib_exif"
+	TargetFrameworkVersion="196613"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="4"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="..\..\"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				WarningLevel="3"
+				DebugInformationFormat="4"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="4"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="2"
+				EnableIntrinsicFunctions="true"
+				AdditionalIncludeDirectories=".;..\..\"
+				PreprocessorDefinitions="GETTEXT_PACKAGE=\&quot;libexif-12\&quot;;LOCALEDIR="
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				WarningLevel="3"
+				DebugInformationFormat="3"
+				ForcedIncludeFiles=""
+				ForcedUsingFiles=""
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath="..\..\libexif\exif-byte-order.c"
+				>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ForcedIncludeFiles=""
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-content.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-data.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-entry.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-format.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-ifd.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-loader.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-log.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-mem.c"
+				>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ForcedIncludeFiles="$(SolutionDir)\lib_exif\config.h"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\libexif\canon\exif-mnote-data-canon.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\fuji\exif-mnote-data-fuji.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\olympus\exif-mnote-data-olympus.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\pentax\exif-mnote-data-pentax.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-mnote-data.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-tag.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-utils.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\canon\mnote-canon-entry.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\canon\mnote-canon-tag.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\fuji\mnote-fuji-entry.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\fuji\mnote-fuji-tag.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\olympus\mnote-olympus-entry.c"
+				>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ForcedIncludeFiles=""
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\libexif\olympus\mnote-olympus-tag.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\pentax\mnote-pentax-entry.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\pentax\mnote-pentax-tag.c"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Header Files"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+			>
+			<File
+				RelativePath="..\..\libexif\_stdint.h"
+				>
+			</File>
+			<File
+				RelativePath=".\config.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-byte-order.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-content.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-data-type.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-data.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-entry.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-format.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-ifd.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-loader.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-log.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-mem.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\canon\exif-mnote-data-canon.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\fuji\exif-mnote-data-fuji.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\olympus\exif-mnote-data-olympus.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\pentax\exif-mnote-data-pentax.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-mnote-data-priv.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-mnote-data.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-system.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-tag.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-utils.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\i18n.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\canon\mnote-canon-entry.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\canon\mnote-canon-tag.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\fuji\mnote-fuji-entry.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\fuji\mnote-fuji-tag.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\olympus\mnote-olympus-entry.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\olympus\mnote-olympus-tag.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\pentax\mnote-pentax-entry.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\pentax\mnote-pentax-tag.h"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Resource Files"
+			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+			>
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/win32/lib_exif/lib_exif.vcxproj b/framework/modules/c_LibExifModule/libexif-0.6.20/win32/lib_exif/lib_exif.vcxproj
new file mode 100755
index 0000000000000000000000000000000000000000..4df359093e5a77843803fb5121d9148293be676c
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/win32/lib_exif/lib_exif.vcxproj
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{DB081B8E-C5A3-44FB-BB6C-8803C26A705A}</ProjectGuid>
+    <RootNamespace>lib_exif</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>.;..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <MinimalRebuild>true</MinimalRebuild>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <PreprocessorDefinitions>GETTEXT_PACKAGE="libexif-12";LOCALEDIR=;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <AdditionalIncludeDirectories>.;..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>GETTEXT_PACKAGE="libexif-12";LOCALEDIR=;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <ForcedIncludeFiles>%(ForcedIncludeFiles)</ForcedIncludeFiles>
+      <ForcedUsingFiles>%(ForcedUsingFiles)</ForcedUsingFiles>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\libexif\exif-byte-order.c">
+      <ForcedIncludeFiles Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(ForcedIncludeFiles)</ForcedIncludeFiles>
+    </ClCompile>
+    <ClCompile Include="..\..\libexif\exif-content.c" />
+    <ClCompile Include="..\..\libexif\exif-data.c" />
+    <ClCompile Include="..\..\libexif\exif-entry.c" />
+    <ClCompile Include="..\..\libexif\exif-format.c" />
+    <ClCompile Include="..\..\libexif\exif-ifd.c" />
+    <ClCompile Include="..\..\libexif\exif-loader.c" />
+    <ClCompile Include="..\..\libexif\exif-log.c" />
+    <ClCompile Include="..\..\libexif\exif-mem.c">
+      <ForcedIncludeFiles Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)\lib_exif\config.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
+    </ClCompile>
+    <ClCompile Include="..\..\libexif\canon\exif-mnote-data-canon.c" />
+    <ClCompile Include="..\..\libexif\fuji\exif-mnote-data-fuji.c" />
+    <ClCompile Include="..\..\libexif\olympus\exif-mnote-data-olympus.c" />
+    <ClCompile Include="..\..\libexif\pentax\exif-mnote-data-pentax.c" />
+    <ClCompile Include="..\..\libexif\exif-mnote-data.c" />
+    <ClCompile Include="..\..\libexif\exif-tag.c" />
+    <ClCompile Include="..\..\libexif\exif-utils.c" />
+    <ClCompile Include="..\..\libexif\canon\mnote-canon-entry.c" />
+    <ClCompile Include="..\..\libexif\canon\mnote-canon-tag.c" />
+    <ClCompile Include="..\..\libexif\fuji\mnote-fuji-entry.c" />
+    <ClCompile Include="..\..\libexif\fuji\mnote-fuji-tag.c" />
+    <ClCompile Include="..\..\libexif\olympus\mnote-olympus-entry.c">
+      <ForcedIncludeFiles Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(ForcedIncludeFiles)</ForcedIncludeFiles>
+    </ClCompile>
+    <ClCompile Include="..\..\libexif\olympus\mnote-olympus-tag.c" />
+    <ClCompile Include="..\..\libexif\pentax\mnote-pentax-entry.c" />
+    <ClCompile Include="..\..\libexif\pentax\mnote-pentax-tag.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\libexif\_stdint.h" />
+    <ClInclude Include="config.h" />
+    <ClInclude Include="..\..\libexif\exif-byte-order.h" />
+    <ClInclude Include="..\..\libexif\exif-content.h" />
+    <ClInclude Include="..\..\libexif\exif-data-type.h" />
+    <ClInclude Include="..\..\libexif\exif-data.h" />
+    <ClInclude Include="..\..\libexif\exif-entry.h" />
+    <ClInclude Include="..\..\libexif\exif-format.h" />
+    <ClInclude Include="..\..\libexif\exif-ifd.h" />
+    <ClInclude Include="..\..\libexif\exif-loader.h" />
+    <ClInclude Include="..\..\libexif\exif-log.h" />
+    <ClInclude Include="..\..\libexif\exif-mem.h" />
+    <ClInclude Include="..\..\libexif\canon\exif-mnote-data-canon.h" />
+    <ClInclude Include="..\..\libexif\fuji\exif-mnote-data-fuji.h" />
+    <ClInclude Include="..\..\libexif\olympus\exif-mnote-data-olympus.h" />
+    <ClInclude Include="..\..\libexif\pentax\exif-mnote-data-pentax.h" />
+    <ClInclude Include="..\..\libexif\exif-mnote-data-priv.h" />
+    <ClInclude Include="..\..\libexif\exif-mnote-data.h" />
+    <ClInclude Include="..\..\libexif\exif-system.h" />
+    <ClInclude Include="..\..\libexif\exif-tag.h" />
+    <ClInclude Include="..\..\libexif\exif-utils.h" />
+    <ClInclude Include="..\..\libexif\exif.h" />
+    <ClInclude Include="..\..\libexif\i18n.h" />
+    <ClInclude Include="..\..\libexif\canon\mnote-canon-entry.h" />
+    <ClInclude Include="..\..\libexif\canon\mnote-canon-tag.h" />
+    <ClInclude Include="..\..\libexif\fuji\mnote-fuji-entry.h" />
+    <ClInclude Include="..\..\libexif\fuji\mnote-fuji-tag.h" />
+    <ClInclude Include="..\..\libexif\olympus\mnote-olympus-entry.h" />
+    <ClInclude Include="..\..\libexif\olympus\mnote-olympus-tag.h" />
+    <ClInclude Include="..\..\libexif\pentax\mnote-pentax-entry.h" />
+    <ClInclude Include="..\..\libexif\pentax\mnote-pentax-tag.h" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/win32/lib_exif/lib_exif.vcxproj.filters b/framework/modules/c_LibExifModule/libexif-0.6.20/win32/lib_exif/lib_exif.vcxproj.filters
new file mode 100755
index 0000000000000000000000000000000000000000..dd16f25778ba62151f9c7e611c345cbf24d84b20
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/win32/lib_exif/lib_exif.vcxproj.filters
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\libexif\exif-byte-order.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\libexif\exif-content.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\libexif\exif-data.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\libexif\exif-entry.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\libexif\exif-format.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\libexif\exif-ifd.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\libexif\exif-loader.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\libexif\exif-log.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\libexif\exif-mem.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\libexif\canon\exif-mnote-data-canon.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\libexif\fuji\exif-mnote-data-fuji.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\libexif\olympus\exif-mnote-data-olympus.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\libexif\pentax\exif-mnote-data-pentax.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\libexif\exif-mnote-data.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\libexif\exif-tag.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\libexif\exif-utils.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\libexif\canon\mnote-canon-entry.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\libexif\canon\mnote-canon-tag.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\libexif\fuji\mnote-fuji-entry.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\libexif\fuji\mnote-fuji-tag.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\libexif\olympus\mnote-olympus-entry.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\libexif\olympus\mnote-olympus-tag.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\libexif\pentax\mnote-pentax-entry.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\libexif\pentax\mnote-pentax-tag.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\libexif\_stdint.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="config.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\libexif\exif-byte-order.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\libexif\exif-content.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\libexif\exif-data-type.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\libexif\exif-data.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\libexif\exif-entry.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\libexif\exif-format.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\libexif\exif-ifd.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\libexif\exif-loader.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\libexif\exif-log.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\libexif\exif-mem.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\libexif\canon\exif-mnote-data-canon.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\libexif\fuji\exif-mnote-data-fuji.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\libexif\olympus\exif-mnote-data-olympus.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\libexif\pentax\exif-mnote-data-pentax.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\libexif\exif-mnote-data-priv.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\libexif\exif-mnote-data.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\libexif\exif-system.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\libexif\exif-tag.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\libexif\exif-utils.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\libexif\exif.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\libexif\i18n.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\libexif\canon\mnote-canon-entry.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\libexif\canon\mnote-canon-tag.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\libexif\fuji\mnote-fuji-entry.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\libexif\fuji\mnote-fuji-tag.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\libexif\olympus\mnote-olympus-entry.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\libexif\olympus\mnote-olympus-tag.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\libexif\pentax\mnote-pentax-entry.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\libexif\pentax\mnote-pentax-tag.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/win32/lib_exifVC9.sln b/framework/modules/c_LibExifModule/libexif-0.6.20/win32/lib_exifVC9.sln
new file mode 100644
index 0000000000000000000000000000000000000000..44fac59d6bc9c82ed5927c766eeb6dc70e9fc805
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/win32/lib_exifVC9.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual C++ Express 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_exifVC9", "lib_exifVC9\lib_exifVC9.vcproj", "{DB081B8E-C5A3-44FB-BB6C-8803C26A705A}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{DB081B8E-C5A3-44FB-BB6C-8803C26A705A}.Debug|Win32.ActiveCfg = Debug|Win32
+		{DB081B8E-C5A3-44FB-BB6C-8803C26A705A}.Debug|Win32.Build.0 = Debug|Win32
+		{DB081B8E-C5A3-44FB-BB6C-8803C26A705A}.Release|Win32.ActiveCfg = Release|Win32
+		{DB081B8E-C5A3-44FB-BB6C-8803C26A705A}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/framework/modules/c_LibExifModule/libexif-0.6.20/win32/lib_exifVC9/lib_exifVC9.vcproj b/framework/modules/c_LibExifModule/libexif-0.6.20/win32/lib_exifVC9/lib_exifVC9.vcproj
new file mode 100644
index 0000000000000000000000000000000000000000..10b7e2b7d1ebf654216b50b338a62cb1407cba4e
--- /dev/null
+++ b/framework/modules/c_LibExifModule/libexif-0.6.20/win32/lib_exifVC9/lib_exifVC9.vcproj
@@ -0,0 +1,420 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9.00"
+	Name="lib_exifVC9"
+	ProjectGUID="{DB081B8E-C5A3-44FB-BB6C-8803C26A705A}"
+	RootNamespace="lib_exif"
+	TargetFrameworkVersion="196613"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="4"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="..\..\;$(SolutionDir)\lib_exif"
+				PreprocessorDefinitions="GETTEXT_PACKAGE=\&quot;libexif-12\&quot;;LOCALEDIR=;"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				WarningLevel="3"
+				DebugInformationFormat="4"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="4"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="2"
+				EnableIntrinsicFunctions="true"
+				AdditionalIncludeDirectories="..\..\;$(SolutionDir)\lib_exif"
+				PreprocessorDefinitions="GETTEXT_PACKAGE=\&quot;libexif-12\&quot;;LOCALEDIR="
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				WarningLevel="3"
+				DebugInformationFormat="3"
+				ForcedIncludeFiles=""
+				ForcedUsingFiles=""
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath="..\..\libexif\exif-byte-order.c"
+				>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ForcedIncludeFiles=""
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-content.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-data.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-entry.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-format.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-ifd.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-loader.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-log.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-mem.c"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ForcedIncludeFiles="$(SolutionDir)\lib_exif\config.h"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ForcedIncludeFiles="$(SolutionDir)\lib_exif\config.h"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\libexif\canon\exif-mnote-data-canon.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\fuji\exif-mnote-data-fuji.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\olympus\exif-mnote-data-olympus.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\pentax\exif-mnote-data-pentax.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-mnote-data.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-tag.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-utils.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\canon\mnote-canon-entry.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\canon\mnote-canon-tag.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\fuji\mnote-fuji-entry.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\fuji\mnote-fuji-tag.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\olympus\mnote-olympus-entry.c"
+				>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ForcedIncludeFiles=""
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\libexif\olympus\mnote-olympus-tag.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\pentax\mnote-pentax-entry.c"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\pentax\mnote-pentax-tag.c"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Header Files"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+			>
+			<File
+				RelativePath="..\..\libexif\_stdint.h"
+				>
+			</File>
+			<File
+				RelativePath="..\lib_exif\config.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-byte-order.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-content.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-data-type.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-data.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-entry.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-format.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-ifd.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-loader.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-log.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-mem.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\canon\exif-mnote-data-canon.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\fuji\exif-mnote-data-fuji.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\olympus\exif-mnote-data-olympus.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\pentax\exif-mnote-data-pentax.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-mnote-data-priv.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-mnote-data.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-system.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-tag.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif-utils.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\exif.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\i18n.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\canon\mnote-canon-entry.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\canon\mnote-canon-tag.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\fuji\mnote-fuji-entry.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\fuji\mnote-fuji-tag.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\olympus\mnote-olympus-entry.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\olympus\mnote-olympus-tag.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\pentax\mnote-pentax-entry.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\libexif\pentax\mnote-pentax-tag.h"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Resource Files"
+			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+			>
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/framework/modules/c_LibExifModule/m4/libtool.m4 b/framework/modules/c_LibExifModule/m4/libtool.m4
new file mode 120000
index 0000000000000000000000000000000000000000..c1ce9f70f50912be571258343ed0799828e9bb0b
--- /dev/null
+++ b/framework/modules/c_LibExifModule/m4/libtool.m4
@@ -0,0 +1 @@
+/usr/local/Cellar/libtool/2.4.2/share/aclocal/libtool.m4
\ No newline at end of file
diff --git a/framework/modules/c_LibExifModule/m4/ltoptions.m4 b/framework/modules/c_LibExifModule/m4/ltoptions.m4
new file mode 120000
index 0000000000000000000000000000000000000000..a81a4123cc91c765d4e4471ae3f9245da02da544
--- /dev/null
+++ b/framework/modules/c_LibExifModule/m4/ltoptions.m4
@@ -0,0 +1 @@
+/usr/local/Cellar/libtool/2.4.2/share/aclocal/ltoptions.m4
\ No newline at end of file
diff --git a/framework/modules/c_LibExifModule/m4/ltsugar.m4 b/framework/modules/c_LibExifModule/m4/ltsugar.m4
new file mode 120000
index 0000000000000000000000000000000000000000..b7fc94ac8773257d2ef5490e48c512f4d60f390d
--- /dev/null
+++ b/framework/modules/c_LibExifModule/m4/ltsugar.m4
@@ -0,0 +1 @@
+/usr/local/Cellar/libtool/2.4.2/share/aclocal/ltsugar.m4
\ No newline at end of file
diff --git a/framework/modules/c_LibExifModule/m4/ltversion.m4 b/framework/modules/c_LibExifModule/m4/ltversion.m4
new file mode 120000
index 0000000000000000000000000000000000000000..4619593b29a7f000f9f76b8879e23fb52180dc3c
--- /dev/null
+++ b/framework/modules/c_LibExifModule/m4/ltversion.m4
@@ -0,0 +1 @@
+/usr/local/Cellar/libtool/2.4.2/share/aclocal/ltversion.m4
\ No newline at end of file
diff --git a/framework/modules/c_LibExifModule/m4/lt~obsolete.m4 b/framework/modules/c_LibExifModule/m4/lt~obsolete.m4
new file mode 120000
index 0000000000000000000000000000000000000000..0ca6503366e737cd78560e8482fc59de5806d92b
--- /dev/null
+++ b/framework/modules/c_LibExifModule/m4/lt~obsolete.m4
@@ -0,0 +1 @@
+/usr/local/Cellar/libtool/2.4.2/share/aclocal/lt~obsolete.m4
\ No newline at end of file
diff --git a/framework/modules/c_LibExifModule/win32/LibExifModule.sln b/framework/modules/c_LibExifModule/win32/LibExifModule.sln
new file mode 100755
index 0000000000000000000000000000000000000000..a6170b7a21db9fa1a848575d28b9dbf1617fd3eb
--- /dev/null
+++ b/framework/modules/c_LibExifModule/win32/LibExifModule.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual C++ Express 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LibExifModule", "LibExifModule.vcxproj", "{A4B7B046-EA19-4179-9712-8A7B085443D8}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{A4B7B046-EA19-4179-9712-8A7B085443D8}.Debug|Win32.ActiveCfg = Debug|Win32
+		{A4B7B046-EA19-4179-9712-8A7B085443D8}.Debug|Win32.Build.0 = Debug|Win32
+		{A4B7B046-EA19-4179-9712-8A7B085443D8}.Release|Win32.ActiveCfg = Release|Win32
+		{A4B7B046-EA19-4179-9712-8A7B085443D8}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/framework/modules/c_LibExifModule/win32/LibExifModule.vcxproj b/framework/modules/c_LibExifModule/win32/LibExifModule.vcxproj
new file mode 100755
index 0000000000000000000000000000000000000000..2ae69ac7248c8f6f2df22a67a81ce7a10951f101
--- /dev/null
+++ b/framework/modules/c_LibExifModule/win32/LibExifModule.vcxproj
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{A4B7B046-EA19-4179-9712-8A7B085443D8}</ProjectGuid>
+    <RootNamespace>ExifExtractModule</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">tsk$(ProjectName)</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">tsk$(ProjectName)</TargetName>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>$(TSK_HOME);$(TSK_HOME)\framework;$(POCO_HOME)\Foundation\include;$(POCO_HOME)\Net\include;$(ProjectDir)\..\libexif-0.6.20\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <MinimalRebuild>true</MinimalRebuild>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>libtskframework.lib;lib_exif.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(TSK_HOME)\framework\msvcpp\framework\$(Configuration);$(POCO_HOME)\lib;$(ProjectDir)\..\libexif-0.6.20\win32\release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+    <PostBuildEvent>
+      <Command>move /Y "$(SolutionDir)$(Configuration)\tsk$(ProjectName).dll" "$(ProjectDir)..\..\..\runtime"</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <AdditionalIncludeDirectories>$(TSK_HOME);$(TSK_HOME)\framework;$(POCO_HOME)\Foundation\include;$(POCO_HOME)\Net\include;$(ProjectDir)\..\libexif-0.6.20\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>libtskframework.lib;lib_exif.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(TSK_HOME)\framework\msvcpp\framework\$(Configuration);$(POCO_HOME)\lib;$(ProjectDir)\..\libexif-0.6.20\win32\release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+    <PostBuildEvent>
+      <Command>move /Y "$(SolutionDir)$(Configuration)\tsk$(ProjectName).dll" "$(ProjectDir)..\..\..\runtime"</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\LibExifModule.cpp" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/framework/modules/c_RegRipperModule/Makefile.am b/framework/modules/c_RegRipperModule/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..361ff5b8ae7281a02badb414524260e823332a3a
--- /dev/null
+++ b/framework/modules/c_RegRipperModule/Makefile.am
@@ -0,0 +1,5 @@
+AM_CXXFLAGS = $(AM_CXXFLAGS_MOD)
+
+lib_LTLIBRARIES = libtskRegRipperModule.la
+libtskRegRipperModule_la_SOURCES = RegRipperModule.cpp
+libtskRegRipperModule_la_LIBADD = $(AM_LIBADD_MOD)
diff --git a/framework/modules/c_RegRipperModule/NEWS.txt b/framework/modules/c_RegRipperModule/NEWS.txt
new file mode 100644
index 0000000000000000000000000000000000000000..8f8d3653d22d0fc0cdebbb4017e81194578002e5
--- /dev/null
+++ b/framework/modules/c_RegRipperModule/NEWS.txt
@@ -0,0 +1,24 @@
+Numbers refer to github.net issue #s:
+    https://github.com/sleuthkit/c_RegRipperModule/issues
+
+---------------- VERSION 1.0.2 --------------
+New Features:
+- Added support for using an interpreter command as the exe path argument.
+- Merged master branch and linux-build branch
+- Updated to RegRipper v2.5
+- Output files now have MD5 included in name.
+    
+---------------- VERSION 1.0.1 --------------
+New Features:
+- Added ability to search output for a specific string.
+- Added processorarchitecture.pl plugin.
+
+Bug Fixes:
+- N/A. 
+
+---------------- VERSION 1.0.0 --------------
+New Features:
+- Initial public release.
+
+Bug Fixes:
+- N/A. 
diff --git a/framework/modules/c_RegRipperModule/README.txt b/framework/modules/c_RegRipperModule/README.txt
new file mode 100644
index 0000000000000000000000000000000000000000..288f55345b9365ac3af9f2da7e983966db8908f8
--- /dev/null
+++ b/framework/modules/c_RegRipperModule/README.txt
@@ -0,0 +1,89 @@
+Reg Ripper Module
+Sleuth Kit Framework C++ Module
+May 2012
+
+
+This module is for the C++ Sleuth Kit Framework.
+
+
+DESCRIPTION
+
+This module is a report/post-processing module that runs the RegRipper 
+executable against the common set of Windows registry files (i.e., NTUSER, 
+SYSTEM, SAM and SOFTWARE).
+
+This module allows you to extract information from the system's registry.
+
+DEPLOYMENT REQUIREMENTS
+
+This module requires that RegRipper be installed on the system. You can 
+download it from:
+
+    http://regripper.wordpress.com/
+
+
+USAGE
+
+Add this module to a post-processing/reporting pipeline.  See the TSK 
+Framework documents for information on adding the module 
+to the pipeline:
+
+    http://www.sleuthkit.org/sleuthkit/docs/framework-docs/
+
+
+This module takes optional configuration arguments in a semi-colon separated 
+list of arguments:
+
+	-e Path to the RegRipper executable
+	-o Path to directory in which to place RegRipper output
+
+If the executable path is omitted the module will look for RegRipper/rip.exe
+in the program directory. If the executable is not found there, it will try
+to find it using the system PATH environment variable.
+
+If the output directory path is omitted, the module will store the results in
+a "RegRipper" directory in the module output directory specified in the framework 
+system properties.   
+
+This module currently pulls out operating system information and posts it to
+the blackboard. The OS name and version will be available with the base version
+of RegRipper. If you want to get the processor architecture as well place the 
+included RegRipper plugin (processorarchitecture.pl) in the RegRipper plugins
+directory and update the "system" file in that directory to include
+"processorarchitecture" as it's own line.
+
+
+NON-WINDOWS PLATFORMS
+
+The module executable path argument (`-e`) may point to the RegRipper perl file
+instead of the Windows executable, e.g. `-e /foobar/rrv2.5/rip.pl`.
+
+If necessary, the executable path may include the interpreter command itself,
+e.g. `-e perl /foobar/rrv2.5/rip.pl`.
+
+Requirements:
+
+* Perl is installed.
+* You have downloaded and unzipped:
+    * RegRipper
+    * RegRipper plugins (regripperplugins)
+    * Parse-Win32Registry (http://search.cpan.org/~jmacfarla/Parse-Win32Registry-0.40/)
+    
+The RegRipper script (rip.pl) may need modification to run on your system.
+RegRipper Plugins must be copied to a `plugins` subdirectory relative to where
+rip.pl exists. Parse-Win32Registry must be properly installed for Perl to find
+it. If that is not possible, a workaround is to provide it as an argument to
+Perl, e.g. `perl -p /foo/Parse-Win32Registry-1.0/lib /foobar/rrv2.5/rip.pl`.
+
+
+RESULTS
+
+The RegRipper output will be located in the location as described in the 
+previous section. Currently, the module does not interpret any of the results.
+It simply runs the tool.  It will save the analysis results from each 
+hive to its own text file. Errors from RegRipper will be logged to 
+RegRipperErrors.txt in the output directory.
+
+
+TODO
+- Make the module find RegRipper if is in the module's configuration directory.
diff --git a/framework/modules/c_RegRipperModule/RegRipperModule.cpp b/framework/modules/c_RegRipperModule/RegRipperModule.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..da6cf4b4bb40beb80a27838af7aee1b55054b903
--- /dev/null
+++ b/framework/modules/c_RegRipperModule/RegRipperModule.cpp
@@ -0,0 +1,633 @@
+/*
+ * The Sleuth Kit
+ *
+ * Contact: Brian Carrier [carrier <at> sleuthkit [dot] org]
+ * Copyright (c) 2010-2013 Basis Technology Corporation. All Rights
+ * reserved.
+ *
+ * This software is distributed under the Common Public License 1.0
+ */
+
+/**
+ * \file RegRipperModule.cpp
+ * Contains the implementation for the reg ripper reporting module.
+ * This module runs the RegRipper executable against the common set of
+ * Windows registry files (i.e., NTUSER, SYSTEM, SAM and SOFTWARE).
+ */
+
+// TSK Framework includes
+#include "tsk/framework/utilities/TskModuleDev.h"
+
+// Poco includes
+#include "Poco/String.h"
+#include "Poco/StringTokenizer.h"
+#include "Poco/File.h"
+#include "Poco/Process.h"
+#include "Poco/PipeStream.h"
+#include "Poco/FileStream.h"
+#include "Poco/StreamCopier.h"
+#include "Poco/Path.h"
+#include "Poco/RegularExpression.h"
+#include "Poco/Environment.h"
+
+// C/C++ standard library includes
+#include <string>
+#include <sstream>
+#include <cassert>
+
+namespace
+{
+    const char *MODULE_NAME = "RegRipper";
+    const char *MODULE_DESCRIPTION = "Runs the RegRipper executable against the common set of Windows registry files (i.e., NTUSER, SYSTEM, SAM and SOFTWARE)";
+    const char *MODULE_VERSION = "1.0.2";
+    const uint64_t VOLUME_SHADOW_SNAPSHOT_FILE_PARENT_ID = 9223372036854775807;
+
+    std::string ripExePath;
+    std::string outputFolderPath;
+    std::vector<std::string> interpreterArgs;
+    std::string pluginPath;
+    
+    enum RegistryHiveType
+    {
+        NTUSER,
+        SYSTEM,
+        SAM,
+        SOFTWARE
+    };
+
+    /**
+     * Looks for an executable file in the PATH environment variable.
+     * If exeFilename is found, it is also tested to see if it's executable.
+     * @param  exeFilename The filename of an executable file.
+     * @return Path found to the executable if it exists, otherwise an empty string
+     */
+    static const std::string checkExeEnvPath(const std::string & exeFilename)
+    {
+        static const short unsigned int MAX_ENV_LEN = 4096;
+
+        std::string envPaths = Poco::Environment::get("PATH");
+
+        // Don't waste time checking if env var is unreasonably large
+        if (envPaths.length() < MAX_ENV_LEN)
+        {
+            Poco::Path p;
+            if (Poco::Path::find(envPaths, exeFilename, p))
+            {
+                std::string newExePath = p.toString();
+
+                // Check if executable mode is set
+                Poco::File exeFile(newExePath);
+                if (exeFile.canExecute())
+                {
+                    return newExePath;
+                }
+            }
+        }
+        return std::string();
+    }
+
+    /**
+     * Parse RegRipper output from a specific output file for matches on the valueName. The 
+     * function will return all lines in the file that match the valueName followed by one 
+     * of the potential RegRipper separators. This may not always find all lines if a plugin
+     * writer uses a new separator.
+     * @param regRipperFileName The full path to a regRipper output file.
+     * @param valueName The name of the value to search for. Will support regex matches that
+     * come before a separator.
+     * @return A vector of matching lines from the file.
+     */
+    std::vector<std::string> getRegRipperValues(const std::string& regRipperFileName, const std::string& valueName)
+    {
+        Poco::FileInputStream inStream(regRipperFileName);
+        std::vector<std::string> results;
+
+        std::string line;
+
+        std::stringstream pattern;
+        pattern << valueName << "[\\s\\->=:]+";
+
+        Poco::RegularExpression regex(pattern.str(), 0, true);
+        Poco::RegularExpression::Match match;
+
+        while (std::getline(inStream, line))
+        {
+            int nummatches = regex.match(line, match, 0);
+            if (nummatches > 0)
+            {
+                results.push_back(line.substr(match.offset + match.length, line.size()));
+            }
+        }
+
+        inStream.close();
+        return results;
+    }
+
+    /**
+     * Processes the RegRipper output from a SOFTWARE hive and creates blackboard
+     * entries for operating system details.
+     * @param pFile A pointer to the SOFTWARE file object.
+     * @param fileName The name of the RegRipper output file for the SOFTWARE hive.
+     */
+    void getSoftwareInfo(TskFile * pFile, const std::string& fileName)
+    {
+        std::vector<std::string> names = getRegRipperValues(fileName, "ProductName");
+
+        TskBlackboardArtifact osart = pFile->createArtifact(TSK_OS_INFO);
+        for (size_t i = 0; i < names.size(); i++)
+        {
+            TskBlackboardAttribute attr(TSK_NAME, MODULE_NAME, "", names[i]);
+            osart.addAttribute(attr);
+        }
+
+        vector<std::string> versions = getRegRipperValues(fileName, "CSDVersion");
+        for (size_t i = 0; i < versions.size(); i++)
+        {
+            TskBlackboardAttribute attr(TSK_VERSION, MODULE_NAME, "", versions[i]);
+            osart.addAttribute(attr);
+        }
+    }
+
+    /**
+     * Processes the RegRipper output from a SYSTEM hive and creates blackboard
+     * entries for operating system details.
+     * @param pFile A pointer to the SYSTEM file object.
+     * @param fileName The name of the RegRipper output file for the SYSTEM hive.
+     */
+    void getSystemInfo(TskFile * pFile, const std::string& fileName)
+    {
+        std::vector<std::string> names = getRegRipperValues(fileName, "ProcessorArchitecture");
+        TskBlackboardArtifact osart = pFile->createArtifact(TSK_OS_INFO);
+        for (size_t i = 0; i < names.size(); i++)
+        {
+            if (names[i].compare("AMD64") == 0)
+            {
+                TskBlackboardAttribute attr(TSK_PROCESSOR_ARCHITECTURE, MODULE_NAME, "", "x86-64");
+                osart.addAttribute(attr);
+            }
+            else
+            {
+                TskBlackboardAttribute attr(TSK_PROCESSOR_ARCHITECTURE, MODULE_NAME, "", names[i]);
+                osart.addAttribute(attr);
+            }
+        }
+    }
+
+    void getFileNamesForHiveType(RegistryHiveType type, std::string &hiveFileName, std::string &pluginSetFileName)
+    {
+        std::string funcName(MODULE_NAME + std::string("RegRipperModule::getFileNamesForHiveType"));
+
+        std::string pluginsPath;
+        pluginsPath = Poco::Path(ripExePath).parent().toString();
+        pluginsPath.append("plugins");
+
+        Poco::Path pluginSetFilePath;
+        switch (type)
+        {
+        case NTUSER:
+            hiveFileName = "NTUSER.DAT";
+            if (!Poco::Path::find(pluginsPath, "ntuser-all", pluginSetFilePath) && 
+                !Poco::Path::find(pluginsPath, "ntuser", pluginSetFilePath))
+            {
+                throw TskException("failed to find either ntuser-all or ntuser plugin wrapper file");
+            }
+            break;
+
+        case SYSTEM:
+            hiveFileName = "SYSTEM";
+            if (!Poco::Path::find(pluginsPath, "system-all", pluginSetFilePath) && 
+                !Poco::Path::find(pluginsPath, "system", pluginSetFilePath))
+            {
+                throw TskException("failed to find either system-all or system plugin wrapper file");
+            }
+            break;
+
+        case SOFTWARE:
+            hiveFileName = "SOFTWARE";
+            if (!Poco::Path::find(pluginsPath, "software-all", pluginSetFilePath) &&
+                !Poco::Path::find(pluginsPath, "software", pluginSetFilePath))
+            {
+                throw TskException("failed to find either software-all or software plugin wrapper file");
+            }
+            break;
+
+        case SAM:
+            hiveFileName = "SAM";
+            if (!Poco::Path::find(pluginsPath, "sam-all", pluginSetFilePath) &&
+                !Poco::Path::find(pluginsPath, "sam", pluginSetFilePath))
+            {
+                throw TskException("failed to find either sam-all or sam plugin wrapper file");
+            }
+            break;
+
+        default:
+            std::ostringstream msg;
+            msg << "unexpected RegistryHiveType value " << type << " in " << funcName;
+            assert(false && msg.str().c_str());
+            throw TskException(msg.str());
+        }
+
+        pluginSetFileName = pluginSetFilePath.getFileName();
+    }
+
+    void runRegRipper(RegistryHiveType type)
+    {
+        std::string funcName(MODULE_NAME + std::string("RegRipperModule::runRegRipper"));
+
+        // Get the hive name and plugin set file names.
+        std::string hiveFileName; 
+        std::string pluginSetFileName;
+        getFileNamesForHiveType(type, hiveFileName, pluginSetFileName);
+
+        TskFileManager& fileManager = TskServices::Instance().getFileManager();
+
+        // Get a list corresponding to the files
+        TskFileManager::AutoFilePtrList files(fileManager.findFilesByName(hiveFileName, TSK_FS_META_TYPE_REG));
+
+        // Iterate over the files running RegRipper on each one.
+        for (TskFileManager::FilePtrList::iterator file = files.begin(); file != files.end(); ++file)
+        {
+            // Skip empty files
+            if ((*file)->getSize() == 0)
+            {
+                continue;
+            }
+
+            // Save the file content so that we can run RegRipper against it
+            fileManager.saveFile(*file);
+
+            // Create a file stream for the RegRipper output. 
+            Poco::Path outputFilePath = Poco::Path::forDirectory(outputFolderPath);
+            std::ostringstream fileName;
+            if ((*file)->getParentFileId() == VOLUME_SHADOW_SNAPSHOT_FILE_PARENT_ID)
+            {
+                Poco::Path filePath((*file)->getFullPath());
+                fileName << filePath.directory(0) << "_"; 
+            }
+            fileName << (*file)->getName() << "_" << (*file)->getHash(TskImgDB::MD5) << "_" << (*file)->getId() << ".txt";
+            outputFilePath.setFileName(fileName.str());
+
+            // Log what's happening.
+            std::ostringstream msg;
+            msg << funcName << " : ripping " << (*file)->getName() << " to " << outputFilePath.toString();
+            LOGINFO(msg.str());
+
+            // Run RegRipper.
+            Poco::Process::Args cmdArgs;
+
+            // Insert interpreter arguments, if any
+            for (std::vector<std::string>::iterator it = interpreterArgs.begin(); it != interpreterArgs.end(); ++it) {
+                cmdArgs.push_back(*it);
+            }
+
+            cmdArgs.push_back("-f");
+            cmdArgs.push_back(pluginSetFileName);
+            cmdArgs.push_back("-r");
+            cmdArgs.push_back((*file)->getPath());
+            Poco::Pipe outPipe;
+            Poco::ProcessHandle handle = Poco::Process::launch(ripExePath, cmdArgs, NULL, &outPipe, &outPipe);
+
+            // Capture the RegRipper output.
+            Poco::PipeInputStream istr(outPipe);
+            Poco::FileOutputStream ostr(outputFilePath.toString());
+            while (istr)
+            {
+                Poco::StreamCopier::copyStream(istr, ostr);
+            }
+            ostr.close();
+
+            if (Poco::Process::wait(handle) == 0)
+            {
+                // If Regripper runs without error, parse selected artifacts from the raw output and post them to the blackboard.
+                if (type == SOFTWARE)
+                {
+                    getSoftwareInfo(*file, outputFilePath.toString());
+                }
+                else if (type == SYSTEM)
+                {
+                    getSystemInfo(*file, outputFilePath.toString());
+                }
+            }
+            else
+            {
+                // If RegRipper fails on a particular file, log a warning and move on to the next file.
+                std::stringstream msg;
+                msg << funcName << " : RegRipper returned error code for " << (*file)->getName() << " (file id = " << (*file)->getId() << ")";
+                LOGWARN(msg.str());            
+            }
+        }
+    }
+
+    void parseOption(const std::string &option, std::string &arg)
+    {
+        if (!arg.empty())
+        {
+            std::ostringstream msg;
+            msg << "module command line has multiple " << option << " options";
+            throw TskException(msg.str());                
+        }
+
+        arg = option.substr(3);
+        if (arg.empty())
+        {
+            std::ostringstream msg;
+            msg << "module command line missing argument for " << option << " option";
+            throw TskException(msg.str());                
+        }
+
+        TskUtilities::stripQuotes(arg);
+    }
+
+    void parseModuleCommandLine(const char *arguments)
+    {
+        ripExePath.clear();
+        outputFolderPath.clear();
+
+        Poco::StringTokenizer tokenizer(std::string(arguments), ";");
+        for (Poco::StringTokenizer::Iterator token = tokenizer.begin(); token != tokenizer.end(); ++token)
+        {
+            if ((*token).find("-e") == 0)
+            {
+                parseOption(*token, ripExePath); 
+            }
+            else if ((*token).find("-o") == 0)
+            {
+                parseOption(*token, outputFolderPath); 
+            }
+            else
+            {
+                std::ostringstream msg;
+                msg << "module command line " << *token << " option not recognized";
+                throw TskException(msg.str());                
+            }
+        }
+
+        if (ripExePath.empty())
+        {
+            Poco::Path defaultPath = Poco::Path::forDirectory(GetSystemProperty(TskSystemProperties::PROG_DIR));
+            defaultPath.pushDirectory("RegRipper");
+            defaultPath.setFileName("rip.exe");
+            ripExePath = defaultPath.toString();
+        }
+        else
+        {
+            // Check to see if we have been asked to run RegRipper through 
+            // the perl interpreter. 
+            std::string perl = "perl";
+
+            if (ripExePath.substr(0, perl.size()) == perl)
+            {
+                /* We have been asked to run the perl interpreter format (e.g. "perl /foobar/rip.pl").
+                   Assumptions:
+                   - The last token is the script path
+                   - Any other script arguments are space delimited
+                   - There are no nested quotes
+                */
+                Poco::StringTokenizer tokenizer(ripExePath, " ");
+                if (tokenizer.count() > 1)
+                {
+                    ripExePath = *tokenizer.begin();             // The interpreter exe path
+                    std::string ripdotplPath = tokenizer[tokenizer.count()-1]; // RegRipper script path
+
+                    // Our plugin path will be relative to where rip.pl lives
+                    pluginPath = Poco::Path(ripdotplPath).parent().toString();
+
+                    // Get interpreter arguments, if any
+                    Poco::StringTokenizer::Iterator it = tokenizer.begin();
+                    interpreterArgs = std::vector<std::string>(++it, tokenizer.end());
+                }
+
+            }
+            else
+            {
+                // Not perl so the plugin path is relative to the RegRipper executable
+                pluginPath = Poco::Path(ripExePath).parent().toString();
+            }
+        }
+
+        if (outputFolderPath.empty())
+        {
+            std::string moduleOutDir = GetSystemProperty(TskSystemProperties::MODULE_OUT_DIR);
+            if (moduleOutDir.empty())
+            {
+                throw TskException("output folder not specified in module command line and MODULE_OUT_DIR is system property not set");
+            }
+
+            Poco::Path defaultPath(Poco::Path::forDirectory(moduleOutDir));
+            defaultPath.pushDirectory(MODULE_NAME);
+            outputFolderPath = defaultPath.toString();
+        }
+    }
+}
+
+extern "C" 
+{
+    /**
+     * Module identification function. 
+     *
+     * @return The name of the module.
+     */
+    TSK_MODULE_EXPORT const char *name()
+    {
+        return MODULE_NAME;
+    }
+
+    /**
+     * Module identification function. 
+     *
+     * @return A description of the module.
+     */
+    TSK_MODULE_EXPORT const char *description()
+    {
+        return MODULE_DESCRIPTION;
+    }
+
+    /**
+     * Module identification function. 
+     *
+     * @return The version of the module.
+     */
+    TSK_MODULE_EXPORT const char *version()
+    {
+        return MODULE_VERSION;
+    }
+
+    /**
+     * Module initialization function. Receives a string of intialization arguments, 
+     * typically read by the caller from a pipeline configuration file. 
+     * Returns TskModule::OK or TskModule::FAIL. Returning TskModule::FAIL indicates 
+     * the module is not in an operational state.  
+     *
+     * @param args An optional semicolon separated list of arguments:
+     *      -e Path to the RegRipper executable
+     *      -o Directory in which to place RegRipper output
+     * @return TskModule::OK if initialization succeeded, otherwise TskModule::FAIL.
+     */
+    TskModule::Status TSK_MODULE_EXPORT initialize(const char* arguments)
+    {
+		const std::string funcName(MODULE_NAME + std::string("::initialize"));
+        try
+        {
+            parseModuleCommandLine(arguments);
+
+            // Log the configuration of the module.
+            std::ostringstream msg;
+            msg << funcName << " : using RegRipper executable '" << ripExePath << "'";
+            LOGINFO(msg.str());
+
+            msg.str("");
+            msg.clear();
+            msg << funcName << " : writing output to '" + outputFolderPath << "'";
+            LOGINFO(msg.str());
+
+            // Verify the RegRipper executable path.
+            Poco::File ripExe(ripExePath);
+            if (!ripExe.exists() || !ripExe.canExecute())
+            {
+                // Try to find it in a dir in the path environment variable
+                std::string newpath = checkExeEnvPath(ripExePath);
+
+                if (!newpath.empty())
+                {
+                    ripExePath = newpath;
+                }
+                else
+                {
+                    std::ostringstream msg;
+                    msg << "'" << ripExePath << "' does not exist or is not executable";
+                    throw TskException(msg.str());
+                }
+            }
+
+            // Create the output folder.
+            Poco::File(outputFolderPath).createDirectories();
+
+            return TskModule::OK;
+        }
+        catch (TskException &ex)
+        {
+            std::ostringstream msg;
+            msg << funcName << ": TskException : " << ex.message();
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+        catch (Poco::Exception &ex)
+        {
+            std::ostringstream msg;
+            msg << funcName << ": Poco::Exception : " << ex.displayText();
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+        catch (std::exception &ex)
+        {
+            std::ostringstream msg;
+            msg << funcName << ": std::exception : " << ex.what();
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+        catch (...)
+        {
+            LOGERROR(funcName + ": unrecognized exception");
+            return TskModule::FAIL;
+        }
+    }
+
+    /**
+     * Module execution function. Returns TskModule::OK, TskModule::FAIL, or TskModule::STOP. 
+     * Returning TskModule::FAIL indicates error performing its job. Returning TskModule::STOP
+     * is a request to terminate execution of the reporting pipeline.
+     *
+     * @returns TskModule::OK on success, TskModule::FAIL on error, or TskModule::STOP.
+     */
+    TskModule::Status TSK_MODULE_EXPORT report()
+    {
+        std::string funcName(MODULE_NAME + std::string("report"));
+        try
+        {
+            runRegRipper(NTUSER);
+            runRegRipper(SYSTEM);
+            runRegRipper(SAM);
+            runRegRipper(SOFTWARE);
+
+            return TskModule::OK;
+        }
+        catch (TskException &ex)
+        {
+            std::ostringstream msg;
+            msg << funcName << ": TskException : " << ex.message();
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+        catch (Poco::Exception &ex)
+        {
+            std::ostringstream msg;
+            msg << funcName << ": Poco::Exception : " << ex.displayText();
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+        catch (std::exception &ex)
+        {
+            std::ostringstream msg;
+            msg << funcName << ": std::exception : " << ex.what();
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+        catch (...)
+        {
+            LOGERROR(funcName + ": unrecognized exception");
+            return TskModule::FAIL;
+        }
+    }
+
+    /**
+     * Module cleanup function. Deletes output directory if it is empty.
+     *
+     * @returns TskModule::OK on success and TskModule::FAIL on error.
+     */
+    TskModule::Status TSK_MODULE_EXPORT finalize()
+    {
+        std::string funcName(MODULE_NAME + std::string("report"));
+        try
+        {
+#if !defined(_DEBUG) 
+
+            Poco::File folder(outputFolderPath);
+            std::vector<std::string> files;
+            folder.list(files);
+
+            if (files.empty())
+            {
+                folder.remove(false);
+            }
+
+#endif
+
+            return TskModule::OK;
+        }
+        catch (TskException &ex)
+        {
+            std::ostringstream msg;
+            msg << funcName << ": TskException : " << ex.message();
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+        catch (Poco::Exception &ex)
+        {
+            std::ostringstream msg;
+            msg << funcName << ": Poco::Exception : " << ex.displayText();
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+        catch (std::exception &ex)
+        {
+            std::ostringstream msg;
+            msg << funcName << ": std::exception : " << ex.what();
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+        catch (...)
+        {
+            LOGERROR(funcName + ": unrecognized exception");
+            return TskModule::FAIL;
+        }
+    }
+ }
diff --git a/framework/modules/c_RegRipperModule/cpl1.0.txt b/framework/modules/c_RegRipperModule/cpl1.0.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c9990a7ea45dbb64f81f7bface6d0f765d96c086
--- /dev/null
+++ b/framework/modules/c_RegRipperModule/cpl1.0.txt
@@ -0,0 +1,213 @@
+Common Public License Version 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC
+LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
+CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+    a) in the case of the initial Contributor, the initial code and
+documentation distributed under this Agreement, and
+
+    b) in the case of each subsequent Contributor:
+
+    i) changes to the Program, and
+
+    ii) additions to the Program;
+
+    where such changes and/or additions to the Program originate from and are
+distributed by that particular Contributor. A Contribution 'originates' from a
+Contributor if it was added to the Program by such Contributor itself or anyone
+acting on such Contributor's behalf. Contributions do not include additions to
+the Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii) are not
+derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are
+necessarily infringed by the use or sale of its Contribution alone or when
+combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement,
+including all Contributors.
+
+2. GRANT OF RIGHTS
+
+    a) Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide, royalty-free copyright license to
+reproduce, prepare derivative works of, publicly display, publicly perform,
+distribute and sublicense the Contribution of such Contributor, if any, and such
+derivative works, in source code and object code form.
+
+    b) Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed
+Patents to make, use, sell, offer to sell, import and otherwise transfer the
+Contribution of such Contributor, if any, in source code and object code form.
+This patent license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor, such
+addition of the Contribution causes such combination to be covered by the
+Licensed Patents. The patent license shall not apply to any other combinations
+which include the Contribution. No hardware per se is licensed hereunder.
+
+    c) Recipient understands that although each Contributor grants the licenses
+to its Contributions set forth herein, no assurances are provided by any
+Contributor that the Program does not infringe the patent or other intellectual
+property rights of any other entity. Each Contributor disclaims any liability to
+Recipient for claims brought by any other entity based on infringement of
+intellectual property rights or otherwise. As a condition to exercising the
+rights and licenses granted hereunder, each Recipient hereby assumes sole
+responsibility to secure any other intellectual property rights needed, if any.
+For example, if a third party patent license is required to allow Recipient to
+distribute the Program, it is Recipient's responsibility to acquire that license
+before distributing the Program.
+
+    d) Each Contributor represents that to its knowledge it has sufficient
+copyright rights in its Contribution, if any, to grant the copyright license set
+forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its
+own license agreement, provided that:
+
+    a) it complies with the terms and conditions of this Agreement; and
+
+    b) its license agreement:
+
+    i) effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title and
+non-infringement, and implied warranties or conditions of merchantability and
+fitness for a particular purpose;
+
+    ii) effectively excludes on behalf of all Contributors all liability for
+damages, including direct, indirect, special, incidental and consequential
+damages, such as lost profits;
+
+    iii) states that any provisions which differ from this Agreement are offered
+by that Contributor alone and not by any other party; and
+
+    iv) states that source code for the Program is available from such
+Contributor, and informs licensees how to obtain it in a reasonable manner on or
+through a medium customarily used for software exchange. 
+
+When the Program is made available in source code form:
+
+    a) it must be made available under this Agreement; and
+
+    b) a copy of this Agreement must be included with each copy of the Program. 
+
+Contributors may not remove or alter any copyright notices contained within the
+Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if
+any, in a manner that reasonably allows subsequent Recipients to identify the
+originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with
+respect to end users, business partners and the like. While this license is
+intended to facilitate the commercial use of the Program, the Contributor who
+includes the Program in a commercial product offering should do so in a manner
+which does not create potential liability for other Contributors. Therefore, if
+a Contributor includes the Program in a commercial product offering, such
+Contributor ("Commercial Contributor") hereby agrees to defend and indemnify
+every other Contributor ("Indemnified Contributor") against any losses, damages
+and costs (collectively "Losses") arising from claims, lawsuits and other legal
+actions brought by a third party against the Indemnified Contributor to the
+extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor to
+control, and cooperate with the Commercial Contributor in, the defense and any
+related settlement negotiations. The Indemnified Contributor may participate in
+any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product
+offering, Product X. That Contributor is then a Commercial Contributor. If that
+Commercial Contributor then makes performance claims, or offers warranties
+related to Product X, those performance claims and warranties are such
+Commercial Contributor's responsibility alone. Under this section, the
+Commercial Contributor would have to defend claims against the other
+Contributors related to those performance claims and warranties, and if a court
+requires any other Contributor to pay any damages as a result, the Commercial
+Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
+IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each
+Recipient is solely responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its exercise of
+rights under this Agreement, including but not limited to the risks and costs of
+program errors, compliance with applicable laws, damage to or loss of data,
+programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
+CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
+PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
+GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable
+law, it shall not affect the validity or enforceability of the remainder of the
+terms of this Agreement, and without further action by the parties hereto, such
+provision shall be reformed to the minimum extent necessary to make such
+provision valid and enforceable.
+
+If Recipient institutes patent litigation against a Contributor with respect to
+a patent applicable to software (including a cross-claim or counterclaim in a
+lawsuit), then any patent licenses granted by that Contributor to such Recipient
+under this Agreement shall terminate as of the date such litigation is filed. In
+addition, if Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the Program
+itself (excluding combinations of the Program with other software or hardware)
+infringes such Recipient's patent(s), then such Recipient's rights granted under
+Section 2(b) shall terminate as of the date such litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to
+comply with any of the material terms or conditions of this Agreement and does
+not cure such failure in a reasonable period of time after becoming aware of
+such noncompliance. If all Recipient's rights under this Agreement terminate,
+Recipient agrees to cease use and distribution of the Program as soon as
+reasonably practicable. However, Recipient's obligations under this Agreement
+and any licenses granted by Recipient relating to the Program shall continue and
+survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in
+order to avoid inconsistency the Agreement is copyrighted and may only be
+modified in the following manner. The Agreement Steward reserves the right to
+publish new versions (including revisions) of this Agreement from time to time.
+No one other than the Agreement Steward has the right to modify this Agreement.
+IBM is the initial Agreement Steward. IBM may assign the responsibility to serve
+as the Agreement Steward to a suitable separate entity. Each new version of the
+Agreement will be given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the Agreement
+under which it was received. In addition, after a new version of the Agreement
+is published, Contributor may elect to distribute the Program (including its
+Contributions) under the new version. Except as expressly stated in Sections
+2(a) and 2(b) above, Recipient receives no rights or licenses to the
+intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the
+intellectual property laws of the United States of America. No party to this
+Agreement will bring a legal action under this Agreement more than one year
+after the cause of action arose. Each party waives its rights to a jury trial in
+any resulting litigation.
diff --git a/framework/modules/c_RegRipperModule/processorarchitecture.pl b/framework/modules/c_RegRipperModule/processorarchitecture.pl
new file mode 100644
index 0000000000000000000000000000000000000000..eefa530191717bff8d025a024a8666c37adecc33
--- /dev/null
+++ b/framework/modules/c_RegRipperModule/processorarchitecture.pl
@@ -0,0 +1,65 @@
+#-----------------------------------------------------------
+# processorarchitecture.pl
+#
+# copyright 2012 Basis Technology
+#-----------------------------------------------------------
+package processorarchitecture;
+use strict;
+
+my %config = (hive          => "System",
+              osmask        => 22,
+              hasShortDescr => 1,
+              hasDescr      => 0,
+              hasRefs       => 0,
+              version       => 20121109);
+
+sub getConfig{return %config}
+
+sub getShortDescr {
+	return "Get the processor architecture of the os";	
+}
+sub getDescr{}
+sub getRefs {}
+sub getHive {return $config{hive};}
+sub getVersion {return $config{version};}
+
+my $VERSION = getVersion();
+
+sub pluginmain {
+	my $class = shift;
+	my $hive = shift;
+	::logMsg("Launching processorarchitecture v.".$VERSION);
+    ::rptMsg("processorarchitecture v.".$VERSION); # 20110830 [fpi] + banner
+    ::rptMsg("(".getHive().") ".getShortDescr()."\n"); # 20110830 [fpi] + banner
+
+	my $reg = Parse::Win32Registry->new($hive);
+	my $root_key = $reg->get_root_key;
+
+# Code for System file, getting CurrentControlSet
+ my $current;
+	my $key_path = 'Select';
+	my $key;
+	if ($key = $root_key->get_subkey($key_path)) {
+		$current = $key->get_value("Current")->get_data();
+		
+		my $env_path = "ControlSet00".$current."\\Control\\Session Manager\\Environment";
+		my $env;
+		if ($env = $root_key->get_subkey($env_path)) {
+			
+			eval {
+				my $architecture = $env->get_value("PROCESSOR_ARCHITECTURE")->get_data();
+				::rptMsg("ProcessorArchitecture = ".$architecture);
+			};
+			::rptMsg($@) if ($@);
+			
+		}	
+		else {
+			::rptMsg($env_path." not found.");
+		}
+	}
+	else {
+		::rptMsg($key_path." not found.");
+		::logMsg($key_path." not found.");
+	}
+}
+1;
diff --git a/framework/modules/c_RegRipperModule/win32/RegRipperModule.sln b/framework/modules/c_RegRipperModule/win32/RegRipperModule.sln
new file mode 100644
index 0000000000000000000000000000000000000000..f475b976839ccd23df4ecfd7f635098ea2a932e8
--- /dev/null
+++ b/framework/modules/c_RegRipperModule/win32/RegRipperModule.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual C++ Express 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RegRipperModule", "RegRipperModule.vcxproj", "{4DD49717-8C15-4E07-8C18-D47A093184AA}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{4DD49717-8C15-4E07-8C18-D47A093184AA}.Debug|Win32.ActiveCfg = Debug|Win32
+		{4DD49717-8C15-4E07-8C18-D47A093184AA}.Debug|Win32.Build.0 = Debug|Win32
+		{4DD49717-8C15-4E07-8C18-D47A093184AA}.Release|Win32.ActiveCfg = Release|Win32
+		{4DD49717-8C15-4E07-8C18-D47A093184AA}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/framework/modules/c_RegRipperModule/win32/RegRipperModule.vcxproj b/framework/modules/c_RegRipperModule/win32/RegRipperModule.vcxproj
new file mode 100755
index 0000000000000000000000000000000000000000..b3695edcfa688960dfbee0c51d248607a121bf2e
--- /dev/null
+++ b/framework/modules/c_RegRipperModule/win32/RegRipperModule.vcxproj
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{4DD49717-8C15-4E07-8C18-D47A093184AA}</ProjectGuid>
+    <RootNamespace>EntropyModule</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">tsk$(ProjectName)</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">tsk$(ProjectName)</TargetName>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>$(TSK_HOME);$(TSK_HOME)\framework;$(POCO_HOME)\Foundation\include;$(POCO_HOME)\Util\include;$(POCO_HOME)\XML\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <MinimalRebuild>true</MinimalRebuild>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>libtskframework.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(TSK_HOME)\framework\msvcpp\framework\$(Configuration);$(POCO_HOME)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+    <PostBuildEvent>
+      <Command>move /Y "$(SolutionDir)$(Configuration)\tsk$(ProjectName).dll" "$(ProjectDir)..\..\..\runtime"</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <AdditionalIncludeDirectories>$(TSK_HOME);$(TSK_HOME)\framework;$(POCO_HOME)\Foundation\include;$(POCO_HOME)\Util\include;$(POCO_HOME)\XML\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>libtskframework.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(TSK_HOME)\framework\msvcpp\framework\$(Configuration);$(POCO_HOME)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+    <PostBuildEvent>
+      <Command>move /Y "$(SolutionDir)$(Configuration)\tsk$(ProjectName).dll" "$(ProjectDir)..\..\..\runtime"</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\RegRipperModule.cpp" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/framework/modules/c_SaveInterestingFilesModule/Makefile.am b/framework/modules/c_SaveInterestingFilesModule/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..0ece1b2ca7e4a7142eace72e683771859625c3cc
--- /dev/null
+++ b/framework/modules/c_SaveInterestingFilesModule/Makefile.am
@@ -0,0 +1,5 @@
+AM_CXXFLAGS = $(AM_CXXFLAGS_MOD)
+
+lib_LTLIBRARIES = libtskSaveInterestingFilesModule.la
+libtskSaveInterestingFilesModule_la_SOURCES = SaveInterestingFilesModule.cpp
+libtskSaveInterestingFilesModule_la_LIBADD = $(AM_LIBADD_MOD)
diff --git a/framework/modules/c_SaveInterestingFilesModule/NEWS.txt b/framework/modules/c_SaveInterestingFilesModule/NEWS.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e5691ea8405c4396d8993436be6ee1d149286233
--- /dev/null
+++ b/framework/modules/c_SaveInterestingFilesModule/NEWS.txt
@@ -0,0 +1,9 @@
+Numbers refer to github.net issue #s:
+    https://github.com/sleuthkit/c_SaveInterestingFilesModule/issues
+
+---------------- VERSION 1.0.0 --------------
+New Features:
+- Initial public release.
+
+Bug Fixes:
+- N/A. 
diff --git a/framework/modules/c_SaveInterestingFilesModule/README.txt b/framework/modules/c_SaveInterestingFilesModule/README.txt
new file mode 100644
index 0000000000000000000000000000000000000000..1e3d4fc8f9c572b5b9eadbc9f0cb9b10a4bbcf50
--- /dev/null
+++ b/framework/modules/c_SaveInterestingFilesModule/README.txt
@@ -0,0 +1,71 @@
+Save Interesting Files Module
+Sleuth Kit Framework C++ Module
+May 2012
+
+
+This module is for the C++ Sleuth Kit Framework.
+
+
+DESCRIPTION
+
+This module is a post-processing module that saves files and directories
+that were flagged as being interesting by the InterestingFiles module. 
+It is used to extract the suspicious files for further analysis.
+For example, you could use InterestingFiles to flag all files of
+a given type and then use this module to save them to a local
+folder for manual analysis. 
+
+DEPLOYMENT REQUIREMENTS
+
+This module does not have any specific deployment requirements.
+
+USAGE
+
+Add this module to a post-processing pipeline.  See the TSK 
+Framework documents for information on adding the module 
+to the pipeline:
+
+    http://www.sleuthkit.org/sleuthkit/docs/framework-docs/
+
+The module takes the path to a folder where the files should be saved.
+
+
+RESULTS
+
+Interesting files are saved to the output folder in subdirectories bearing
+the name given to the matching interesting files set in the configuration
+file for the Interesting Files module.  File names are augmented with
+their file ids to avoid name collisions. The resulting directory structure
+will night something like this:
+
+        c:\img503\out\Interesting Files\
+            ReadmeFiles\
+                README_1
+                readme_24.txt
+                readme_382.txt
+                ReadmeFiles.xml    
+
+The contents of interesting directories are saved to the output folder in 
+subdirectories bearing the name given to the matching interesting files set 
+in the configuration file for the Interesting Files module.  A subdirectory 
+is created with the same name as the directory, but augmented with the
+directory's file id to avoid name collisions. The contents of the directory,
+including both files and subdirectories, is then saved. The resulting 
+directory structure might look something like this:
+
+        c:\img503\out\Interesting Files\
+            SuspiciousDirs\
+                bomb_1\
+                    bomb\
+                        intructions.txt
+                        names.doc
+                bomb_42\
+                    bomb\
+                        readme.txt
+                        instructions\
+                            intructions.txt
+                            names.doc
+                SuspiciousDirs.xml
+
+Note that an XML report listing the saved files is placed in each interesting
+files set subdirectory. 
diff --git a/framework/modules/c_SaveInterestingFilesModule/SaveInterestingFilesModule.cpp b/framework/modules/c_SaveInterestingFilesModule/SaveInterestingFilesModule.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..0b65cdbf1265cf709edfcae3243dc973dee0913d
--- /dev/null
+++ b/framework/modules/c_SaveInterestingFilesModule/SaveInterestingFilesModule.cpp
@@ -0,0 +1,458 @@
+/*
+ * The Sleuth Kit
+ *
+ * Contact: Brian Carrier [carrier <at> sleuthkit [dot] org]
+ * Copyright (c) 2010-2012 Basis Technology Corporation. All Rights
+ * reserved.
+ *
+ * This software is distributed under the Common Public License 1.0
+ */
+
+/** \file InterestingFiles.cpp
+ * This file contains the implementation of a module that saves interesting 
+ * files recorded on the blackboard to a user-specified output directory.
+ */
+
+// Framework includes
+#include "tsk/framework/utilities/TskModuleDev.h"
+
+// Poco includes
+#include "Poco/Path.h"
+#include "Poco/File.h"
+#include "Poco/FileStream.h"
+#include "Poco/Exception.h"
+#include "Poco/XML/XMLWriter.h"
+#include "Poco/DOM/AutoPtr.h"
+#include "Poco/DOM/Document.h"
+#include "Poco/DOM/Element.h"
+#include "Poco/DOM/Attr.h"
+#include "Poco/DOM/DOMWriter.h"
+#include "Poco/DOM/Text.h"
+#include "Poco/DOM/Text.h"
+#include "Poco/DOM/DOMException.h"
+
+// System includes
+#include <string>
+#include <sstream>
+#include <vector>
+#include <set>
+#include <map>
+#include <iostream>
+#include <memory>
+#include <string.h>
+
+namespace
+{
+    const char *MODULE_NAME = "tskSaveInterestingFilesModule";
+    const char *MODULE_DESCRIPTION = "Saves files and directories that were flagged as being interesting to a location for further analysis";
+    const char *MODULE_VERSION = "1.0.0";
+
+    typedef std::map<std::string, std::string> FileSets; 
+    typedef std::multimap<std::string, TskBlackboardArtifact> FileSetHits;
+    typedef std::pair<FileSetHits::iterator, FileSetHits::iterator> FileSetHitsRange; 
+
+    std::string outputFolderPath;
+
+    void addFileToReport(const TskFile &file, const std::string &filePath, Poco::XML::Document *report)
+    {
+        Poco::XML::Element *reportRoot = static_cast<Poco::XML::Element*>(report->firstChild());
+
+        Poco::AutoPtr<Poco::XML::Element> fileElement; 
+        if (file.getMetaType() == TSK_FS_META_TYPE_DIR)
+        {
+            fileElement = report->createElement("SavedDirectory");
+        }
+        else
+        {
+            fileElement = report->createElement("SavedFile");
+        }
+        reportRoot->appendChild(fileElement);
+
+        Poco::AutoPtr<Poco::XML::Element> savedPathElement = report->createElement("Path");
+        fileElement->appendChild(savedPathElement);        
+        Poco::AutoPtr<Poco::XML::Text> savedPathText = report->createTextNode(filePath);
+        savedPathElement->appendChild(savedPathText);
+
+        Poco::AutoPtr<Poco::XML::Element> originalPathElement = report->createElement("OriginalPath");        
+        fileElement->appendChild(originalPathElement);
+        Poco::AutoPtr<Poco::XML::Text> originalPathText = report->createTextNode(file.getFullPath());
+        originalPathElement->appendChild(originalPathText);
+
+        Poco::AutoPtr<Poco::XML::Element> uniquePathElement = report->createElement("UniquePath");        
+        fileElement->appendChild(uniquePathElement);
+        Poco::AutoPtr<Poco::XML::Text> uniquePathText = report->createTextNode(file.getUniquePath());
+        uniquePathElement->appendChild(uniquePathText);
+
+        if (file.getMetaType() != TSK_FS_META_TYPE_DIR)
+        {
+            // This element will be empty unless a hash calculation module has operated on the file.
+            Poco::AutoPtr<Poco::XML::Element> md5HashElement = report->createElement("MD5");        
+            fileElement->appendChild(md5HashElement);                
+            Poco::AutoPtr<Poco::XML::Text> md5HashText = report->createTextNode(file.getHash(TskImgDB::MD5));
+            md5HashElement->appendChild(md5HashText);
+        }
+    }
+
+    void saveDirectoryContents(const std::string &dirPath, const TskFile &dir, Poco::XML::Document *report)
+    {
+        // Get a list corresponding to the files in the directory.
+        TskFileManager::AutoFilePtrList files(TskServices::Instance().getFileManager().findFilesByParent(dir.getId()));
+
+        // Save each file and subdirectory in the directory.
+        for (TskFileManager::FilePtrList::iterator file = files.begin(); file != files.end(); ++file)
+        {
+            if ((*file)->getMetaType() == TSK_FS_META_TYPE_DIR)
+            {
+                // Create a subdirectory to hold the contents of this subdirectory.
+                Poco::Path subDirPath(Poco::Path::forDirectory(dirPath));
+                subDirPath.pushDirectory((*file)->getName());
+                Poco::File(subDirPath).createDirectory();
+                
+                // Recurse into the subdirectory.
+                saveDirectoryContents(subDirPath.toString(), **file, report);
+            }
+            else
+            {
+                // Save the file.
+                std::stringstream filePath;
+                filePath << dirPath << Poco::Path::separator() << (*file)->getName();
+                TskServices::Instance().getFileManager().copyFile(*file, TskUtilities::toUTF16(filePath.str()));
+                addFileToReport(**file, (*file)->getName(), report);
+            }
+        }
+    }
+
+    void saveInterestingDirectory(const TskFile &dir, const std::string &fileSetFolderPath, Poco::XML::Document *report)
+    {
+        // Make a subdirectory of the output folder named for the interesting file search set and create a further subdirectory
+        // corresponding to the directory to be saved. The resulting directory structure will look like this:
+        // <output folder>/
+        //      <interesting file set name>/
+        //          <directory name>_<file id>/ /*Suffix the directory with its its file id to ensure uniqueness*/
+        //              <directory name>/
+        //                  <contents of directory including subdirectories>
+        //
+        Poco::Path path(Poco::Path::forDirectory(fileSetFolderPath));
+        std::stringstream subDir;
+        subDir << dir.getName() << '_' << dir.getId();
+        path.pushDirectory(subDir.str());
+        path.pushDirectory(dir.getName());
+        Poco::File(path).createDirectories();
+
+        addFileToReport(dir, path.toString(), report);
+
+        saveDirectoryContents(path.toString(), dir, report);
+    }
+
+    void saveInterestingFile(const TskFile &file, const std::string &fileSetFolderPath, Poco::XML::Document *report)
+    {
+        // Construct a path to write the contents of the file to a subdirectory of the output folder named for the interesting file search
+        // set. The resulting directory structure will look like this:
+        // <output folder>/
+        //      <interesting file set name>/
+        //          <file name>_<fileId>.<ext> /*Suffix the file with its its file id to ensure uniqueness*/
+        std::string fileName = file.getName();
+        std::stringstream id;
+        id << '_' << file.getId();
+        std::string::size_type pos = 0;
+        if ((pos = fileName.rfind(".")) != std::string::npos && pos != 0)
+        {
+            // The file name has a conventional extension. Insert the file id before the '.' of the extension.
+            fileName.insert(pos, id.str());
+        }
+        else
+        {
+            // The file has no extension or the only '.' in the file is an initial '.', as in a hidden file.
+            // Add the file id to the end of the file name.
+            fileName.append(id.str());
+        }
+        std::stringstream filePath;
+        filePath << fileSetFolderPath.c_str() << Poco::Path::separator() << fileName.c_str();
+    
+        // Save the file.
+        TskServices::Instance().getFileManager().copyFile(file.getId(), TskUtilities::toUTF16(filePath.str()));
+
+        addFileToReport(file, fileName.c_str(), report);
+    }
+
+    void saveFiles(const std::string &setName, const std::string &setDescription, FileSetHitsRange fileSetHitsRange)
+    {
+        // Start an XML report of the files in the set.
+        Poco::AutoPtr<Poco::XML::Document> report = new Poco::XML::Document();
+        Poco::AutoPtr<Poco::XML::Element> reportRoot = report->createElement("InterestingFileSet");
+        reportRoot->setAttribute("name", setName);
+        reportRoot->setAttribute("description", setDescription);
+        report->appendChild(reportRoot);
+
+        // Make a subdirectory of the output folder named for the interesting file set.
+        Poco::Path fileSetFolderPath(Poco::Path::forDirectory(outputFolderPath));
+        fileSetFolderPath.pushDirectory(setName);
+        Poco::File(fileSetFolderPath).createDirectory();
+        
+        // Save all of the files in the set.
+        for (FileSetHits::iterator fileHit = fileSetHitsRange.first; fileHit != fileSetHitsRange.second; ++fileHit)
+        {
+            std::auto_ptr<TskFile> file(TskServices::Instance().getFileManager().getFile((*fileHit).second.getObjectID()));
+            if (file->getMetaType() == TSK_FS_META_TYPE_DIR)
+            {
+                 saveInterestingDirectory(*file, fileSetFolderPath.toString(), report); 
+            }
+            else
+            {
+                saveInterestingFile(*file, fileSetFolderPath.toString(), report);
+            }
+        }
+
+        // Write out the completed XML report.
+        fileSetFolderPath.setFileName(setName + ".xml");
+        Poco::FileStream reportFile(fileSetFolderPath.toString());
+        Poco::XML::DOMWriter writer;
+        writer.setNewLine("\n");
+        writer.setOptions(Poco::XML::XMLWriter::PRETTY_PRINT);
+        writer.writeNode(reportFile, report);
+    }
+}
+
+extern "C" 
+{
+    /**
+     * Module identification function. 
+     *
+     * @return The name of the module.
+     */
+    TSK_MODULE_EXPORT const char *name()
+    {
+        return MODULE_NAME;
+    }
+
+    /**
+     * Module identification function. 
+     *
+     * @return A description of the module.
+     */
+    TSK_MODULE_EXPORT const char *description()
+    {
+        return MODULE_DESCRIPTION;
+    }
+
+    /**
+     * Module identification function. 
+     *
+     * @return The version of the module.
+     */
+    TSK_MODULE_EXPORT const char *version()
+    {
+        return MODULE_VERSION;
+    }
+
+    /**
+     * Module initialization function. Optionally receives an output folder
+     * path as the location for saving the files corresponding to interesting
+     * file set hits. The default output folder path is a folder named for the
+     * module in #MODULE_OUT_DIR#.
+     *
+     * @param args Optional output folder path.
+     * @return TskModule::OK if an output folder is created, TskModule::FAIL
+     * otherwise. 
+     */
+    TSK_MODULE_EXPORT TskModule::Status initialize(const char* arguments)
+    {
+        TskModule::Status status = TskModule::OK;
+
+        const std::string MSG_PREFIX = "SaveInterestingFilesModule::initialize : ";
+        try
+        {
+            Poco::Path outputDirPath;
+            if (strlen(arguments) != 0)
+            {
+                outputDirPath = Poco::Path::forDirectory(arguments);
+            }
+            else
+            {
+                outputDirPath = Poco::Path::forDirectory(GetSystemProperty(TskSystemProperties::MODULE_OUT_DIR));
+                outputDirPath.pushDirectory(MODULE_NAME);
+            }
+            outputFolderPath = outputDirPath.toString();
+
+            Poco::File(outputDirPath).createDirectories();
+        }
+        catch (TskException &ex)
+        {
+            status = TskModule::FAIL;
+            outputFolderPath.clear();
+            std::stringstream msg;
+            msg << MSG_PREFIX << "TskException: " << ex.message();
+            LOGERROR(msg.str());
+        }
+        catch (Poco::Exception &ex)
+        {
+            status = TskModule::FAIL;
+            outputFolderPath.clear();
+            std::stringstream msg;
+            msg << MSG_PREFIX << "Poco::Exception: " << ex.displayText();
+            LOGERROR(msg.str());
+        }
+        catch (std::exception &ex)
+        {
+            status = TskModule::FAIL;
+            outputFolderPath.clear();
+            std::stringstream msg;
+            msg << MSG_PREFIX << "std::exception: " << ex.what();
+            LOGERROR(msg.str());
+        }
+        catch (...)
+        {
+            status = TskModule::FAIL;
+            outputFolderPath.clear();
+            LOGERROR(MSG_PREFIX + "unrecognized exception");
+        }
+
+        return status;
+    }
+
+    /**
+     * Module execution function. Saves interesting files recorded on the 
+     * blackboard to a user-specified output directory.
+     *
+     * @returns TskModule::OK on success if all files saved, TskModule::FAIL if one or more files were not saved
+     */
+    TSK_MODULE_EXPORT TskModule::Status report()
+    {
+        TskModule::Status status = TskModule::OK;
+        
+        const std::string MSG_PREFIX = "SaveInterestingFilesModule::report : ";
+        try
+        {
+            if (outputFolderPath.empty())
+            {
+                // Initialization failed. The reason why was already logged in initialize().
+                return TskModule::FAIL;
+            }
+
+            // Get the interesting file set hits from the blackboard and sort them by set name.
+            FileSets fileSets;
+            FileSetHits fileSetHits;
+            std::vector<TskBlackboardArtifact> fileSetHitArtifacts = TskServices::Instance().getBlackboard().getArtifacts(TSK_INTERESTING_FILE_HIT);
+            for (std::vector<TskBlackboardArtifact>::iterator fileHit = fileSetHitArtifacts.begin(); fileHit != fileSetHitArtifacts.end(); ++fileHit)
+            {
+                // Find the set name attrbute of the artifact.
+                bool setNameFound = false;
+                std::vector<TskBlackboardAttribute> attrs = (*fileHit).getAttributes();
+                for (std::vector<TskBlackboardAttribute>::iterator attr = attrs.begin(); attr != attrs.end(); ++attr)
+                {
+                    if ((*attr).getAttributeTypeID() == TSK_SET_NAME)
+                    {
+                        setNameFound = true;
+                        
+                        // Save the set name and description, using a map to ensure that these values are saved once per file set.
+                        fileSets.insert(make_pair((*attr).getValueString(), (*attr).getContext()));
+                        
+                        // Drop the artifact into a multimap to allow for retrieval of all of the file hits for a file set as an 
+                        // iterator range.
+                        fileSetHits.insert(make_pair((*attr).getValueString(), (*fileHit)));
+                    }
+                }
+
+                if (!setNameFound)
+                {
+                    // Log the error and try the next artifact.
+                    std::stringstream msg;
+                    msg << MSG_PREFIX << "failed to find TSK_SET_NAME attribute for TSK_INTERESTING_FILE_HIT artifact with id '" << (*fileHit).getArtifactID() << "', skipping artifact";
+                    LOGERROR(msg.str());
+                }
+            }
+
+            // Save the interesting files to the output directory, file set by file set.
+            for (map<std::string, std::string>::const_iterator fileSet = fileSets.begin(); fileSet != fileSets.end(); ++fileSet)
+            {
+                // Get the file hits for the file set as an iterator range.
+                FileSetHitsRange fileSetHitsRange = fileSetHits.equal_range((*fileSet).first); 
+
+                // Save the files corresponding to the file hit artifacts.
+                saveFiles((*fileSet).first, (*fileSet).second, fileSetHitsRange);
+            }
+        }
+        catch (TskException &ex)
+        {
+            status = TskModule::FAIL;
+            std::stringstream msg;
+            msg << MSG_PREFIX << "TskException: " << ex.message();
+            LOGERROR(msg.str());
+        }
+        catch (Poco::Exception &ex)
+        {
+            status = TskModule::FAIL;
+            std::stringstream msg;
+            msg << MSG_PREFIX << "Poco::Exception: " << ex.displayText();
+            LOGERROR(msg.str());
+        }
+        catch (std::exception &ex)
+        {
+            status = TskModule::FAIL;
+            std::stringstream msg;
+            msg << MSG_PREFIX << "std::exception: " << ex.what();
+            LOGERROR(msg.str());
+        }
+        catch (...)
+        {
+            status = TskModule::FAIL;
+            LOGERROR(MSG_PREFIX + "unrecognized exception");
+        }
+        
+        return status;
+    }
+
+    /**
+     * Module cleanup function. Deletes output folder if empty.
+     *
+     * @returns TskModule::OK on success and TskModule::FAIL on error.
+     */
+    TSK_MODULE_EXPORT TskModule::Status finalize()
+    {
+        TskModule::Status status = TskModule::OK;        
+
+        const std::string MSG_PREFIX = "SaveInterestingFilesModule::finalize : ";
+        try
+        {
+            #if !defined(_DEBUG) 
+
+            Poco::File outputFolder(outputFolderPath);
+            std::vector<Poco::File> filesList;
+            outputFolder.list(filesList);
+            if (filesList.empty())
+            {
+                outputFolder.remove(true);
+            }
+
+            #endif
+        }
+        catch (TskException &ex)
+        {
+            status = TskModule::FAIL;
+            std::stringstream msg;
+            msg << MSG_PREFIX << "TskException: " << ex.message();
+            LOGERROR(msg.str());
+        }
+        catch (Poco::Exception &ex)
+        {
+            status = TskModule::FAIL;
+            std::stringstream msg;
+            msg << MSG_PREFIX << "Poco::Exception: " << ex.displayText();
+            LOGERROR(msg.str());
+        }
+        catch (std::exception &ex)
+        {
+            status = TskModule::FAIL;
+            std::stringstream msg;
+            msg << MSG_PREFIX << "std::exception: " << ex.what();
+            LOGERROR(msg.str());
+        }
+        catch (...)
+        {
+            status = TskModule::FAIL;
+            LOGERROR(MSG_PREFIX + "unrecognized exception");
+        }
+
+        return status;
+    }
+}
diff --git a/framework/modules/c_SaveInterestingFilesModule/cpl1.0.txt b/framework/modules/c_SaveInterestingFilesModule/cpl1.0.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c9990a7ea45dbb64f81f7bface6d0f765d96c086
--- /dev/null
+++ b/framework/modules/c_SaveInterestingFilesModule/cpl1.0.txt
@@ -0,0 +1,213 @@
+Common Public License Version 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC
+LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
+CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+    a) in the case of the initial Contributor, the initial code and
+documentation distributed under this Agreement, and
+
+    b) in the case of each subsequent Contributor:
+
+    i) changes to the Program, and
+
+    ii) additions to the Program;
+
+    where such changes and/or additions to the Program originate from and are
+distributed by that particular Contributor. A Contribution 'originates' from a
+Contributor if it was added to the Program by such Contributor itself or anyone
+acting on such Contributor's behalf. Contributions do not include additions to
+the Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii) are not
+derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are
+necessarily infringed by the use or sale of its Contribution alone or when
+combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement,
+including all Contributors.
+
+2. GRANT OF RIGHTS
+
+    a) Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide, royalty-free copyright license to
+reproduce, prepare derivative works of, publicly display, publicly perform,
+distribute and sublicense the Contribution of such Contributor, if any, and such
+derivative works, in source code and object code form.
+
+    b) Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed
+Patents to make, use, sell, offer to sell, import and otherwise transfer the
+Contribution of such Contributor, if any, in source code and object code form.
+This patent license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor, such
+addition of the Contribution causes such combination to be covered by the
+Licensed Patents. The patent license shall not apply to any other combinations
+which include the Contribution. No hardware per se is licensed hereunder.
+
+    c) Recipient understands that although each Contributor grants the licenses
+to its Contributions set forth herein, no assurances are provided by any
+Contributor that the Program does not infringe the patent or other intellectual
+property rights of any other entity. Each Contributor disclaims any liability to
+Recipient for claims brought by any other entity based on infringement of
+intellectual property rights or otherwise. As a condition to exercising the
+rights and licenses granted hereunder, each Recipient hereby assumes sole
+responsibility to secure any other intellectual property rights needed, if any.
+For example, if a third party patent license is required to allow Recipient to
+distribute the Program, it is Recipient's responsibility to acquire that license
+before distributing the Program.
+
+    d) Each Contributor represents that to its knowledge it has sufficient
+copyright rights in its Contribution, if any, to grant the copyright license set
+forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its
+own license agreement, provided that:
+
+    a) it complies with the terms and conditions of this Agreement; and
+
+    b) its license agreement:
+
+    i) effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title and
+non-infringement, and implied warranties or conditions of merchantability and
+fitness for a particular purpose;
+
+    ii) effectively excludes on behalf of all Contributors all liability for
+damages, including direct, indirect, special, incidental and consequential
+damages, such as lost profits;
+
+    iii) states that any provisions which differ from this Agreement are offered
+by that Contributor alone and not by any other party; and
+
+    iv) states that source code for the Program is available from such
+Contributor, and informs licensees how to obtain it in a reasonable manner on or
+through a medium customarily used for software exchange. 
+
+When the Program is made available in source code form:
+
+    a) it must be made available under this Agreement; and
+
+    b) a copy of this Agreement must be included with each copy of the Program. 
+
+Contributors may not remove or alter any copyright notices contained within the
+Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if
+any, in a manner that reasonably allows subsequent Recipients to identify the
+originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with
+respect to end users, business partners and the like. While this license is
+intended to facilitate the commercial use of the Program, the Contributor who
+includes the Program in a commercial product offering should do so in a manner
+which does not create potential liability for other Contributors. Therefore, if
+a Contributor includes the Program in a commercial product offering, such
+Contributor ("Commercial Contributor") hereby agrees to defend and indemnify
+every other Contributor ("Indemnified Contributor") against any losses, damages
+and costs (collectively "Losses") arising from claims, lawsuits and other legal
+actions brought by a third party against the Indemnified Contributor to the
+extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor to
+control, and cooperate with the Commercial Contributor in, the defense and any
+related settlement negotiations. The Indemnified Contributor may participate in
+any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product
+offering, Product X. That Contributor is then a Commercial Contributor. If that
+Commercial Contributor then makes performance claims, or offers warranties
+related to Product X, those performance claims and warranties are such
+Commercial Contributor's responsibility alone. Under this section, the
+Commercial Contributor would have to defend claims against the other
+Contributors related to those performance claims and warranties, and if a court
+requires any other Contributor to pay any damages as a result, the Commercial
+Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
+IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each
+Recipient is solely responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its exercise of
+rights under this Agreement, including but not limited to the risks and costs of
+program errors, compliance with applicable laws, damage to or loss of data,
+programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
+CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
+PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
+GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable
+law, it shall not affect the validity or enforceability of the remainder of the
+terms of this Agreement, and without further action by the parties hereto, such
+provision shall be reformed to the minimum extent necessary to make such
+provision valid and enforceable.
+
+If Recipient institutes patent litigation against a Contributor with respect to
+a patent applicable to software (including a cross-claim or counterclaim in a
+lawsuit), then any patent licenses granted by that Contributor to such Recipient
+under this Agreement shall terminate as of the date such litigation is filed. In
+addition, if Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the Program
+itself (excluding combinations of the Program with other software or hardware)
+infringes such Recipient's patent(s), then such Recipient's rights granted under
+Section 2(b) shall terminate as of the date such litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to
+comply with any of the material terms or conditions of this Agreement and does
+not cure such failure in a reasonable period of time after becoming aware of
+such noncompliance. If all Recipient's rights under this Agreement terminate,
+Recipient agrees to cease use and distribution of the Program as soon as
+reasonably practicable. However, Recipient's obligations under this Agreement
+and any licenses granted by Recipient relating to the Program shall continue and
+survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in
+order to avoid inconsistency the Agreement is copyrighted and may only be
+modified in the following manner. The Agreement Steward reserves the right to
+publish new versions (including revisions) of this Agreement from time to time.
+No one other than the Agreement Steward has the right to modify this Agreement.
+IBM is the initial Agreement Steward. IBM may assign the responsibility to serve
+as the Agreement Steward to a suitable separate entity. Each new version of the
+Agreement will be given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the Agreement
+under which it was received. In addition, after a new version of the Agreement
+is published, Contributor may elect to distribute the Program (including its
+Contributions) under the new version. Except as expressly stated in Sections
+2(a) and 2(b) above, Recipient receives no rights or licenses to the
+intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the
+intellectual property laws of the United States of America. No party to this
+Agreement will bring a legal action under this Agreement more than one year
+after the cause of action arose. Each party waives its rights to a jury trial in
+any resulting litigation.
diff --git a/framework/modules/c_SaveInterestingFilesModule/win32/SaveInterestingFilesModule.sln b/framework/modules/c_SaveInterestingFilesModule/win32/SaveInterestingFilesModule.sln
new file mode 100644
index 0000000000000000000000000000000000000000..a1b0c70786d03d5d7f2096c05ba8440c96de9a3d
--- /dev/null
+++ b/framework/modules/c_SaveInterestingFilesModule/win32/SaveInterestingFilesModule.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual C++ Express 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SaveInterestingFilesModule", "SaveInterestingFilesModule.vcxproj", "{39CDF492-FCD0-42E8-B2E2-42D2E0F6D2CC}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{39CDF492-FCD0-42E8-B2E2-42D2E0F6D2CC}.Debug|Win32.ActiveCfg = Debug|Win32
+		{39CDF492-FCD0-42E8-B2E2-42D2E0F6D2CC}.Debug|Win32.Build.0 = Debug|Win32
+		{39CDF492-FCD0-42E8-B2E2-42D2E0F6D2CC}.Release|Win32.ActiveCfg = Release|Win32
+		{39CDF492-FCD0-42E8-B2E2-42D2E0F6D2CC}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/framework/modules/c_SaveInterestingFilesModule/win32/SaveInterestingFilesModule.vcxproj b/framework/modules/c_SaveInterestingFilesModule/win32/SaveInterestingFilesModule.vcxproj
new file mode 100755
index 0000000000000000000000000000000000000000..876fc090dd288e5cd314d1b45aa092e830677ee7
--- /dev/null
+++ b/framework/modules/c_SaveInterestingFilesModule/win32/SaveInterestingFilesModule.vcxproj
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{39CDF492-FCD0-42E8-B2E2-42D2E0F6D2CC}</ProjectGuid>
+    <RootNamespace>EntropyModule</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">tsk$(ProjectName)</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">tsk$(ProjectName)</TargetName>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>$(TSK_HOME);$(TSK_HOME)\framework;$(POCO_HOME)\Foundation\include;$(POCO_HOME)\Util\include;$(POCO_HOME)\XML\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <MinimalRebuild>true</MinimalRebuild>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>libtskframework.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(TSK_HOME)\framework\msvcpp\framework\$(Configuration);$(POCO_HOME)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+    <PostBuildEvent>
+      <Command>move /Y "$(SolutionDir)$(Configuration)\tsk$(ProjectName).dll" "$(ProjectDir)..\..\..\runtime"</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <AdditionalIncludeDirectories>$(TSK_HOME);$(TSK_HOME)\framework;$(POCO_HOME)\Foundation\include;$(POCO_HOME)\Util\include;$(POCO_HOME)\XML\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>libtskframework.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(TSK_HOME)\framework\msvcpp\framework\$(Configuration);$(POCO_HOME)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+    <PostBuildEvent>
+      <Command>move /Y "$(SolutionDir)$(Configuration)\tsk$(ProjectName).dll" "$(ProjectDir)..\..\..\runtime"</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\SaveInterestingFilesModule.cpp" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/framework/modules/c_SummaryReportModule/Makefile.am b/framework/modules/c_SummaryReportModule/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..7fca150011417ce41e8630a948fd5f133ceaeda3
--- /dev/null
+++ b/framework/modules/c_SummaryReportModule/Makefile.am
@@ -0,0 +1,5 @@
+AM_CXXFLAGS = $(AM_CXXFLAGS_MOD)
+
+lib_LTLIBRARIES = libtskSummaryReportModule.la
+libtskSummaryReportModule_la_SOURCES = SummaryReport.cpp SummaryReportModule.cpp
+libtskSummaryReportModule_la_LIBADD = $(AM_LIBADD_MOD)
diff --git a/framework/modules/c_SummaryReportModule/NEWS.txt b/framework/modules/c_SummaryReportModule/NEWS.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e79b430c80e139676b41385d99bd62173fab020e
--- /dev/null
+++ b/framework/modules/c_SummaryReportModule/NEWS.txt
@@ -0,0 +1,12 @@
+Numbers refer to github.net issue #s:
+    https://github.com/sleuthkit/c_SummaryReportModule/issues
+
+---------------- VERSION 1.0.1 --------------
+- Minor udpate to way that directory paths are internally stored.
+
+---------------- VERSION 1.0.0 --------------
+New Features:
+- Initial public release.
+
+Bug Fixes:
+- N/A. 
diff --git a/framework/modules/c_SummaryReportModule/README.txt b/framework/modules/c_SummaryReportModule/README.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ed4496dcd90e644c384b9edfacf901480f2c466a
--- /dev/null
+++ b/framework/modules/c_SummaryReportModule/README.txt
@@ -0,0 +1,48 @@
+Tsk Summary Report Module
+Sleuth Kit Framework C++ Module
+May 2012
+
+This module is for the C++ Sleuth Kit Framework.
+
+
+DESCRIPTION
+
+This module is a post-processing module that creates a generic HTML report based on data in
+the blackboard.  This report will show the results from previously run analysis 
+modules.  This report is intended to be used by developers so that they can 
+see what their modules are posting to the blackboard and for users who want a
+very generic report.  In the future, module writers will hopefully make more
+customized reports. 
+
+This report has one table per artifact type that was found during the analysis.  
+Each table will have a column for each attribute.  There is a row for each
+artifact.
+
+DEPLOYMENT REQUIREMENTS
+
+This module does not have any specific deployment requirements.
+
+USAGE
+
+Add this module to a post-processing analysis pipeline.  See the TSK 
+Framework documents for information on adding the module to the pipeline:
+
+    http://www.sleuthkit.org/sleuthkit/docs/framework-docs/
+
+This module takes no configuration arguments.  
+
+
+RESULTS
+
+The HTML report is saved to the "Reports" folder in the output directory as defined
+in the framework for that session.
+
+
+TODO:
+ - Add parameters to allow for selective artifact/attribute lookup for more custom
+   reports.
+ - Add a table of contents showing the artifact types and the counts of artifacts
+   with links to the tables for easier navigation.
+
+
+
diff --git a/framework/modules/c_SummaryReportModule/SummaryReport.cpp b/framework/modules/c_SummaryReportModule/SummaryReport.cpp
new file mode 100755
index 0000000000000000000000000000000000000000..5bd32af07820a7d1b4ddfd53672baaf058513df4
--- /dev/null
+++ b/framework/modules/c_SummaryReportModule/SummaryReport.cpp
@@ -0,0 +1,313 @@
+/*
+ * The Sleuth Kit
+ *
+ * Contact: Brian Carrier [carrier <at> sleuthkit [dot] org]
+ * Copyright (c) 2011-2012 Basis Technology Corporation. All Rights
+ * reserved.
+ *
+ * This software is distributed under the Common Public License 1.0
+ */
+
+/** 
+ * \file SummaryReport.cpp 
+ * Contains the implementation of a function that creates a blackboard artifacts report.
+ */
+
+// TSK Framework includes
+#include "tsk/framework/utilities/TskUtilities.h"
+#include "tsk/framework/services/TskServices.h"
+
+// Poco includes
+#include "Poco/FileStream.h"
+
+// C/C++ standard library includes 
+#include <string>
+#include <sstream>
+
+namespace
+{
+    // Convert reserved HTML characters to HTML entities
+    std::string HTMLEncode(const std::string &str)
+    {
+        std::string convertedStr;
+        for (size_t i = 0; i < str.size(); i++) 
+        {
+            if (str[i] == '<')
+                convertedStr.append("&lt;");
+            else if (str[i] == '>')
+                convertedStr.append("&gt;");
+            else if (str[i] == '&')
+                convertedStr.append("&amp;");
+            else if (str[i] == '"')
+                convertedStr.append("&quot;");
+            else if (str[i] == '\'')
+                convertedStr.append("&apos;");
+            else
+                convertedStr += str[i];
+        }
+        return convertedStr;
+    }
+
+    void addStyle(Poco::FileOutputStream &out)
+    {
+        out << "<style type=\"text/css\">" << std::endl <<  
+            "table.gridtable {" << std::endl <<
+            "font-family: verdana,arial,sans-serif;" << std::endl <<
+            "font-size:11px;" << std::endl <<
+            "color:#333333;" << std::endl <<
+            "border-width: 1px;" << std::endl <<
+            "border-color: #666666;" << std::endl <<
+            "border-collapse: collapse;" << std::endl <<
+            "}" << std::endl <<
+            "table.gridtable th {" << std::endl <<
+            "border-width: 1px;" << std::endl <<
+            "padding: 8px;" << std::endl <<
+            "border-style: solid;" << std::endl <<
+            "border-color: #666666;" << std::endl <<
+            "background-color: #dedede;" << std::endl <<
+            "}" << std::endl <<
+            "table.gridtable td {" << std::endl <<
+            "border-width: 1px;" << std::endl <<
+            "padding: 8px;" << std::endl <<
+            "border-style: solid;" << std::endl <<
+            "border-color: #666666;" << std::endl <<
+            "background-color: #ffffff;" << std::endl <<
+            "}" << std::endl <<
+            "h1 {" << std::endl <<
+            "font-size: 1.5em;" << std::endl <<
+            "color: #000000;" << std::endl <<
+            "font-family: Arial, sans-serif;" << std::endl <<
+            "}" << std::endl <<
+
+            "h2 {" << std::endl <<
+            "font-size: 1.2em;" << std::endl <<
+            "color: #000000;" << std::endl <<
+            "font-family: Arial, sans-serif;" << std::endl <<
+            "}" << std::endl <<
+
+            "h3 {" << std::endl <<
+            "margin-left: 0;" << std::endl <<
+            "margin-bottom: 0;" << std::endl <<
+            "font-size: 1.0em;" << std::endl <<
+            "color: #000000;" << std::endl <<
+            "font-family: Arial, sans-serif;" << std::endl <<
+            "}" << std::endl <<
+            "</style>" << std::endl;
+    }
+
+    void writeReport(Poco::FileOutputStream &out)
+    {
+            out << "<html>" << std::endl;
+            out << "<head>" << std::endl;
+            out << "<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />" << std::endl;
+            addStyle(out);
+
+            out << "<title>Report</title>" << std::endl;
+            out << "</head>" << std::endl;
+            out << "<body>" << std::endl;
+
+            TskBlackboard &blackboard = TskServices::Instance().getBlackboard();
+            TskImgDB &imgdb = TskServices::Instance().getImgDB();
+            std::stringstream condition;
+
+            out << "<h1>Sleuth Kit Framework Summary Report</h1>" << std::endl;
+            std::vector<std::string> names = imgdb.getImageNames();
+            out << "<h2>Image Path: " << names.front() << "</h2>" << std::endl;
+
+            out << "<h2>Image Layout</h2>" << std::endl;
+            std::list<TskVolumeInfoRecord> volumeInfoList;
+            imgdb.getVolumeInfo(volumeInfoList);
+
+            std::list<TskFsInfoRecord> fsInfoList;
+            imgdb.getFsInfo(fsInfoList);
+            TskFsInfoRecord fsInfo;
+
+            if (fsInfoList.size() == 0)
+            {
+                out << "<em>NO FILE SYSTEMS FOUND IN THE DISK IMAGE.</em>" << std::endl;
+            }
+
+            out << "<table class=\"gridtable\">" << std::endl;
+            out << "<thead>" << std::endl;
+            out << "<tr>" << std::endl;
+            out << "<th>Start Sector</th>" << std::endl;
+            out << "<th>End Sector</th>" << std::endl;
+            out << "<th>Partition Type</th>" << std::endl;
+            out << "<th>Detected FS</th>" << std::endl;
+            out << "</tr>" << std::endl;
+            out << "</thead>" << std::endl;
+
+            for (list<TskVolumeInfoRecord>::const_iterator iter = volumeInfoList.begin(); iter != volumeInfoList.end(); iter++) 
+            {
+                const TskVolumeInfoRecord & vol_info = *iter;
+                out << "<tr>" << std::endl;
+                out << "<td>" << vol_info.sect_start << "</td>" << std::endl;
+                out << "<td>" << (vol_info.sect_start + vol_info.sect_len) - 1 << "</td>" << std::endl;
+                out << "<td>" << vol_info.description << "</td>" << std::endl;
+
+                for (list<TskFsInfoRecord>::const_iterator iter2 = fsInfoList.begin(); iter2 != fsInfoList.end(); iter2++)
+                {
+                    fsInfo = (*iter2); 
+                    if(fsInfo.vol_id == vol_info.vol_id)
+                    {
+                        const char* fsName = tsk_fs_type_toname((TSK_FS_TYPE_ENUM)fsInfo.fs_type);
+                        if (!fsName)
+                        {
+                            out << "<td>Name of file system type is unknown.</td>" << std::endl;
+                            LOGERROR("writeReport: Name of file system type is unknown.");
+                        }
+                        else
+                        {
+                            out << "<td>" << fsName << "</td>" << std::endl;
+                        }
+                    }
+                }
+
+                out << "</tr>" << std::endl;
+            }
+            out << "</table>" << std::endl;
+
+            out << "<h2>File Categories</h2>" << std::endl;
+            out << "<table class=\"gridtable\">" << std::endl;
+
+            out << "<tr>" << std::endl;
+            condition.str("");
+            condition << "WHERE files.dir_type = " << TSK_FS_NAME_TYPE_REG 
+                      << " AND files.type_id = " << TskImgDB::IMGDB_FILES_TYPE_FS;
+            out << "<td><b>File System:</b></td>";
+            out << "<td>" << imgdb.getFileCount(condition.str()) << "</td>" << std::endl;
+            out << "</tr>" << std::endl;
+
+            out << "<tr>" << std::endl;
+            condition.str("");
+            condition << "WHERE files.dir_type = " << TSK_FS_NAME_TYPE_REG 
+                      << " AND files.type_id = " << TskImgDB::IMGDB_FILES_TYPE_DERIVED;
+            out << "<td><b>Derived:</b></td>";
+            out << "<td>" << imgdb.getFileCount(condition.str()) << "</td>" << std::endl;
+            out << "</tr>" << std::endl;
+
+            out << "<tr>" << std::endl;
+            condition.str("");
+            condition << "WHERE files.dir_type = " << TSK_FS_NAME_TYPE_REG 
+                      << " AND files.type_id = " << TskImgDB::IMGDB_FILES_TYPE_CARVED;
+            out << "<td><b>Carved:</b></td>";
+            out << "<td>" << imgdb.getFileCount(condition.str()) << "</td>" << std::endl;
+            out << "</tr>" << std::endl;
+
+            out << "<tr>" << std::endl;
+            condition.str("");
+            condition << "WHERE files.dir_type = " << TSK_FS_NAME_TYPE_REG 
+                      << " AND files.type_id = " << TskImgDB::IMGDB_FILES_TYPE_UNUSED;
+            out << "<td><b>Contiguous Unallocated Sectors:</b></td>";
+            out << "<td>" << imgdb.getFileCount(condition.str()) << "</td>" << std::endl;
+            out << "</tr>" << std::endl;
+
+            out << "<tr>" << std::endl;
+            condition.str("");
+            condition << "WHERE files.dir_type = " << TSK_FS_NAME_TYPE_REG;
+            out << "<td><b>Total Files:</b></td>";
+            out << "<td><b>" << imgdb.getFileCount(condition.str()) << "</b></td>" << std::endl;
+            out << "</tr>" << std::endl;
+
+            out << "<tr>" << std::endl;
+            out << "</table>" << std::endl;
+
+            std::vector<TskBlackboardArtifact> artifacts = blackboard.getMatchingArtifacts("ORDER BY artifact_type_id");
+            std::vector<TskBlackboardArtifact>::iterator it;
+            int currentArtType = -1;
+            std::vector<int> attrTypeIDs;
+            out << "<h2>Blackboard Artifacts</h2>" << std::endl;
+            for (it = artifacts.begin(); it != artifacts.end(); it++)
+            {
+                if (currentArtType != it->getArtifactTypeID())
+                {
+                    if (currentArtType != -1)
+                    {
+                        out << "</tbody>" << std::endl << "</table>" << std::endl;
+                    }
+                    currentArtType = it->getArtifactTypeID();
+                    out << "<h3>" << it->getDisplayName() << "</h3>" << std::endl;
+                    attrTypeIDs = blackboard.findAttributeTypes(currentArtType);
+                    out << "<table class=\"gridtable\">" << std::endl;
+                    out << "<thead>" << std::endl;
+                    out << "<tr>" << std::endl;
+                    out << "<th>File Name</th>" << std::endl;
+                    for (size_t i = 0; i < attrTypeIDs.size(); i++)
+                    {
+                        out << "<th>" << blackboard.attrTypeIDToTypeDisplayName(attrTypeIDs[i]) << "</th>" << std::endl;
+                    }
+                    out << "</tr>" << std::endl << "</thead>" << std::endl;
+                    out << "<tbody>" << std::endl;
+                }
+                out << "<tr>" << std::endl;
+                out << "<td>" << imgdb.getFileName(it->getObjectID()) << "</td>" << std::endl;
+                std::vector<TskBlackboardAttribute> attrs = it->getAttributes();
+
+                for (size_t j = 0; j < attrTypeIDs.size(); j++)
+                {
+                    TskBlackboardAttribute * attr;
+                    bool found = false;
+                    for (size_t k = 0; k < attrs.size(); k++)
+                    {
+                        if (attrs[k].getAttributeTypeID() == attrTypeIDs[j])
+                        {
+                            attr = &attrs[k];
+                            found = true;
+                            break;
+                        }
+                    }
+                    if (!found)
+                    {
+                        out << "<td/>" << std::endl;
+                    }
+                    else
+                    {
+                        out << "<td>";
+                        std::vector<unsigned char> bytes;
+                        switch(attr->getValueType())
+                        {
+                            case TSK_BYTE:
+                                bytes = attr->getValueBytes();
+                                for(size_t k = 0; k < bytes.size(); k++)
+                                    out << bytes[k];
+                                out << "</td>" << std::endl;
+                                break;
+
+                            case TSK_DOUBLE:
+                                out << attr->getValueDouble() << "</td>" << std::endl;
+                                break;
+
+                            case TSK_INTEGER:
+                                out << attr->getValueInt() << "</td>" << std::endl;
+                                break;
+
+                            case TSK_LONG:
+                                out << attr->getValueLong() << "</td>" << std::endl;
+                                break;
+
+                            case TSK_STRING:
+                                std::string encoded = HTMLEncode(attr->getValueString());
+                                out << encoded << "</td>" << std::endl;
+                                break;
+                        }
+                    }
+                }
+                out << "</tr>" << std::endl;
+            }
+            if (artifacts.size() > 0)
+            {
+                out << "</tbody>" << std::endl << "</table>" << std::endl;
+            }
+            out << "</body>" << std::endl;
+            out << "</html>" << std::endl;
+    }
+}
+
+namespace TskSummaryReport
+{
+    void generateReport(const std::string &reportPath)
+    {
+        Poco::FileOutputStream out(reportPath, std::ios::out | std::ios::trunc);
+        writeReport(out);
+    }
+}
diff --git a/framework/modules/c_SummaryReportModule/SummaryReport.h b/framework/modules/c_SummaryReportModule/SummaryReport.h
new file mode 100755
index 0000000000000000000000000000000000000000..efbfbad9cedab8c0c738106aec91a41a304d46fb
--- /dev/null
+++ b/framework/modules/c_SummaryReportModule/SummaryReport.h
@@ -0,0 +1,22 @@
+/*
+ * The Sleuth Kit
+ *
+ * Contact: Brian Carrier [carrier <at> sleuthkit [dot] org]
+ * Copyright (c) 2011-2012 Basis Technology Corporation. All Rights
+ * reserved.
+ *
+ * This software is distributed under the Common Public License 1.0
+ */
+
+/** 
+ * \file SummaryReport.h 
+ * Contains the declaration of a function that creates a blackboard artifacts report.
+ */
+
+// C/C++ standard library includes 
+#include <string>
+
+namespace TskSummaryReport
+{
+    void generateReport(const std::string &reportPath);
+}
diff --git a/framework/modules/c_SummaryReportModule/SummaryReportModule.cpp b/framework/modules/c_SummaryReportModule/SummaryReportModule.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..6f12a47865a7a69d144886e58584508d36262521
--- /dev/null
+++ b/framework/modules/c_SummaryReportModule/SummaryReportModule.cpp
@@ -0,0 +1,193 @@
+/*
+ * The Sleuth Kit
+ *
+ * Contact: Brian Carrier [carrier <at> sleuthkit [dot] org]
+ * Copyright (c) 2011-2012 Basis Technology Corporation. All Rights
+ * reserved.
+ *
+ * This software is distributed under the Common Public License 1.0
+ */
+
+/** 
+ * \file SummaryReportModule.cpp 
+ * Contains the implementation of a post-processing module that creates a blackboard artifacts report.
+ */
+
+// Module includes
+#include "SummaryReport.h"
+
+// TSK Framework includes
+#include "tsk/framework/utilities/TskModuleDev.h"
+#include "tsk/framework/services/TskSystemProperties.h"
+
+// Poco includes
+#include "Poco/Path.h"
+#include "Poco/File.h"
+#include "Poco/Exception.h"
+
+// C/C++ standard library includes 
+#include <string>
+#include <sstream>
+#include <vector>
+
+namespace
+{
+    const char * MODULE_NAME = "tskSummaryReportModule";
+    const char * MODULE_DESCRIPTION = "Creates an HTML report on data posted to the blackboard";
+    const char * MODULE_VERSION = "1.0.0";        
+}
+
+extern "C" 
+{
+    /**
+     * Module identification function. 
+     *
+     * @return The name of the module.
+     */
+    TSK_MODULE_EXPORT const char *name()
+    {
+        return MODULE_NAME;
+    }
+
+    /**
+     * Module identification function. 
+     *
+     * @return A description of the module.
+     */
+    TSK_MODULE_EXPORT const char *description()
+    {
+        return MODULE_DESCRIPTION;
+    }
+
+    /**
+     * Module identification function. 
+     *
+     * @return The version of the module.
+     */
+    TSK_MODULE_EXPORT const char *version()
+    {
+        return MODULE_VERSION;
+    }
+
+    /**
+     * Module initialization function. Receives a string of initialization arguments, 
+     * typically read by the caller from a pipeline configuration file. 
+     * Returns TskModule::OK or TskModule::FAIL. Returning TskModule::FAIL indicates 
+     * the module is not in an operational state.  
+     *
+     * @param args a string of initialization arguments.
+     * @return TskModule::OK if initialization succeeded, otherwise TskModule::FAIL.
+     */
+    TskModule::Status TSK_MODULE_EXPORT initialize(const char* arguments)
+    {    
+        return TskModule::OK;
+    }
+
+    /**
+     * Module execution function. 
+     *
+     * @returns TskModule::OK on success, TskModule::FAIL on error, or TskModule::STOP.
+     */
+    TskModule::Status TSK_MODULE_EXPORT report() 
+    {
+        std::ostringstream msgPrefix;
+        msgPrefix << MODULE_NAME << "::report : ";
+        try
+        {
+            // Create an output folder.
+            Poco::Path outputFolderPath = Poco::Path::forDirectory(GetSystemProperty(TskSystemProperties::MODULE_OUT_DIR));
+            outputFolderPath.pushDirectory(MODULE_NAME);
+            Poco::File(outputFolderPath).createDirectories();
+
+            // Generate the report.
+            outputFolderPath.setFileName("SummaryReport.htm");
+            TskSummaryReport::generateReport(outputFolderPath.toString());
+
+            return TskModule::OK;
+        }
+        catch (TskException &ex)
+        {
+            std::ostringstream msg;
+            msg << msgPrefix.str() << "TskException: " << ex.message();
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+        catch (Poco::Exception &ex)
+        {
+            std::ostringstream msg;
+            msg << msgPrefix.str() << "Poco::Exception: " << ex.displayText();
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+        catch (std::exception &ex)
+        {
+            std::ostringstream msg;
+            msg << msgPrefix.str() << "std::exception: " << ex.what();
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+        catch (...)
+        {
+            LOGERROR(msgPrefix.str() + "unrecognized exception");
+            return TskModule::FAIL;
+        }
+    }
+
+    /**
+     * Module cleanup function. This is where the module should free any resources 
+     * allocated during initialization or execution.
+     *
+     * @returns TskModule::OK on success and TskModule::FAIL on error.
+     */
+    TskModule::Status TSK_MODULE_EXPORT finalize()
+    {
+        std::ostringstream msgPrefix;
+        msgPrefix << MODULE_NAME << "::finalize : ";
+        try
+        {
+            #if !defined(_DEBUG) 
+
+            // Delete the output folder if it's empty.
+            Poco::Path outputFolderPath = Poco::Path::forDirectory(GetSystemProperty(TskSystemProperties::MODULE_OUT_DIR));
+            outputFolderPath.pushDirectory(MODULE_NAME);
+            Poco::File outputFolder(outputFolderPath);
+            std::vector<Poco::File> filesList;
+            outputFolder.list(filesList);
+            if (filesList.empty())
+            {
+                outputFolder.remove(true);
+            }
+
+            #endif
+
+            return TskModule::OK;
+        }
+        catch (TskException &ex)
+        {
+            std::ostringstream msg;
+            msg << msgPrefix.str() << "TskException: " << ex.message();
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+        catch (Poco::Exception &ex)
+        {
+            std::ostringstream msg;
+            msg << msgPrefix.str() << "Poco::Exception: " << ex.displayText();
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+        catch (std::exception &ex)
+        {
+            std::ostringstream msg;
+            msg << msgPrefix.str() << "std::exception: " << ex.what();
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+        catch (...)
+        {
+            LOGERROR(msgPrefix.str() + "unrecognized exception");
+            return TskModule::FAIL;
+        }
+    }
+}
+
diff --git a/framework/modules/c_SummaryReportModule/cpl1.0.txt b/framework/modules/c_SummaryReportModule/cpl1.0.txt
new file mode 100644
index 0000000000000000000000000000000000000000..acb140da4ecf4d724b3b1e5c4b4df181d2de637c
--- /dev/null
+++ b/framework/modules/c_SummaryReportModule/cpl1.0.txt
@@ -0,0 +1,213 @@
+Common Public License Version 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC
+LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
+CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+    a) in the case of the initial Contributor, the initial code and
+documentation distributed under this Agreement, and
+
+    b) in the case of each subsequent Contributor:
+
+    i) changes to the Program, and
+
+    ii) additions to the Program;
+
+    where such changes and/or additions to the Program originate from and are
+distributed by that particular Contributor. A Contribution 'originates' from a
+Contributor if it was added to the Program by such Contributor itself or anyone
+acting on such Contributor's behalf. Contributions do not include additions to
+the Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii) are not
+derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are
+necessarily infringed by the use or sale of its Contribution alone or when
+combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement,
+including all Contributors.
+
+2. GRANT OF RIGHTS
+
+    a) Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide, royalty-free copyright license to
+reproduce, prepare derivative works of, publicly display, publicly perform,
+distribute and sublicense the Contribution of such Contributor, if any, and such
+derivative works, in source code and object code form.
+
+    b) Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed
+Patents to make, use, sell, offer to sell, import and otherwise transfer the
+Contribution of such Contributor, if any, in source code and object code form.
+This patent license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor, such
+addition of the Contribution causes such combination to be covered by the
+Licensed Patents. The patent license shall not apply to any other combinations
+which include the Contribution. No hardware per se is licensed hereunder.
+
+    c) Recipient understands that although each Contributor grants the licenses
+to its Contributions set forth herein, no assurances are provided by any
+Contributor that the Program does not infringe the patent or other intellectual
+property rights of any other entity. Each Contributor disclaims any liability to
+Recipient for claims brought by any other entity based on infringement of
+intellectual property rights or otherwise. As a condition to exercising the
+rights and licenses granted hereunder, each Recipient hereby assumes sole
+responsibility to secure any other intellectual property rights needed, if any.
+For example, if a third party patent license is required to allow Recipient to
+distribute the Program, it is Recipient's responsibility to acquire that license
+before distributing the Program.
+
+    d) Each Contributor represents that to its knowledge it has sufficient
+copyright rights in its Contribution, if any, to grant the copyright license set
+forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its
+own license agreement, provided that:
+
+    a) it complies with the terms and conditions of this Agreement; and
+
+    b) its license agreement:
+
+    i) effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title and
+non-infringement, and implied warranties or conditions of merchantability and
+fitness for a particular purpose;
+
+    ii) effectively excludes on behalf of all Contributors all liability for
+damages, including direct, indirect, special, incidental and consequential
+damages, such as lost profits;
+
+    iii) states that any provisions which differ from this Agreement are offered
+by that Contributor alone and not by any other party; and
+
+    iv) states that source code for the Program is available from such
+Contributor, and informs licensees how to obtain it in a reasonable manner on or
+through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+    a) it must be made available under this Agreement; and
+
+    b) a copy of this Agreement must be included with each copy of the Program.
+
+Contributors may not remove or alter any copyright notices contained within the
+Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if
+any, in a manner that reasonably allows subsequent Recipients to identify the
+originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with
+respect to end users, business partners and the like. While this license is
+intended to facilitate the commercial use of the Program, the Contributor who
+includes the Program in a commercial product offering should do so in a manner
+which does not create potential liability for other Contributors. Therefore, if
+a Contributor includes the Program in a commercial product offering, such
+Contributor ("Commercial Contributor") hereby agrees to defend and indemnify
+every other Contributor ("Indemnified Contributor") against any losses, damages
+and costs (collectively "Losses") arising from claims, lawsuits and other legal
+actions brought by a third party against the Indemnified Contributor to the
+extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor to
+control, and cooperate with the Commercial Contributor in, the defense and any
+related settlement negotiations. The Indemnified Contributor may participate in
+any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product
+offering, Product X. That Contributor is then a Commercial Contributor. If that
+Commercial Contributor then makes performance claims, or offers warranties
+related to Product X, those performance claims and warranties are such
+Commercial Contributor's responsibility alone. Under this section, the
+Commercial Contributor would have to defend claims against the other
+Contributors related to those performance claims and warranties, and if a court
+requires any other Contributor to pay any damages as a result, the Commercial
+Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
+IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each
+Recipient is solely responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its exercise of
+rights under this Agreement, including but not limited to the risks and costs of
+program errors, compliance with applicable laws, damage to or loss of data,
+programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
+CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
+PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
+GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable
+law, it shall not affect the validity or enforceability of the remainder of the
+terms of this Agreement, and without further action by the parties hereto, such
+provision shall be reformed to the minimum extent necessary to make such
+provision valid and enforceable.
+
+If Recipient institutes patent litigation against a Contributor with respect to
+a patent applicable to software (including a cross-claim or counterclaim in a
+lawsuit), then any patent licenses granted by that Contributor to such Recipient
+under this Agreement shall terminate as of the date such litigation is filed. In
+addition, if Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the Program
+itself (excluding combinations of the Program with other software or hardware)
+infringes such Recipient's patent(s), then such Recipient's rights granted under
+Section 2(b) shall terminate as of the date such litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to
+comply with any of the material terms or conditions of this Agreement and does
+not cure such failure in a reasonable period of time after becoming aware of
+such noncompliance. If all Recipient's rights under this Agreement terminate,
+Recipient agrees to cease use and distribution of the Program as soon as
+reasonably practicable. However, Recipient's obligations under this Agreement
+and any licenses granted by Recipient relating to the Program shall continue and
+survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in
+order to avoid inconsistency the Agreement is copyrighted and may only be
+modified in the following manner. The Agreement Steward reserves the right to
+publish new versions (including revisions) of this Agreement from time to time.
+No one other than the Agreement Steward has the right to modify this Agreement.
+IBM is the initial Agreement Steward. IBM may assign the responsibility to serve
+as the Agreement Steward to a suitable separate entity. Each new version of the
+Agreement will be given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the Agreement
+under which it was received. In addition, after a new version of the Agreement
+is published, Contributor may elect to distribute the Program (including its
+Contributions) under the new version. Except as expressly stated in Sections
+2(a) and 2(b) above, Recipient receives no rights or licenses to the
+intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the
+intellectual property laws of the United States of America. No party to this
+Agreement will bring a legal action under this Agreement more than one year
+after the cause of action arose. Each party waives its rights to a jury trial in
+any resulting litigation.
\ No newline at end of file
diff --git a/framework/modules/c_SummaryReportModule/win32/SummaryReportModule.sln b/framework/modules/c_SummaryReportModule/win32/SummaryReportModule.sln
new file mode 100644
index 0000000000000000000000000000000000000000..a788f4f5c3ab27d52422baec49670072f1197f29
--- /dev/null
+++ b/framework/modules/c_SummaryReportModule/win32/SummaryReportModule.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual C++ Express 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SummaryReportModule", "SummaryReportModule.vcxproj", "{1CA42FA6-A110-4BB1-B7D6-C0AB6C4FA1AD}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{1CA42FA6-A110-4BB1-B7D6-C0AB6C4FA1AD}.Debug|Win32.ActiveCfg = Debug|Win32
+		{1CA42FA6-A110-4BB1-B7D6-C0AB6C4FA1AD}.Debug|Win32.Build.0 = Debug|Win32
+		{1CA42FA6-A110-4BB1-B7D6-C0AB6C4FA1AD}.Release|Win32.ActiveCfg = Release|Win32
+		{1CA42FA6-A110-4BB1-B7D6-C0AB6C4FA1AD}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/framework/modules/c_SummaryReportModule/win32/SummaryReportModule.vcxproj b/framework/modules/c_SummaryReportModule/win32/SummaryReportModule.vcxproj
new file mode 100755
index 0000000000000000000000000000000000000000..26e4b28b311aac24809552a940602783cf9b883c
--- /dev/null
+++ b/framework/modules/c_SummaryReportModule/win32/SummaryReportModule.vcxproj
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{1CA42FA6-A110-4BB1-B7D6-C0AB6C4FA1AD}</ProjectGuid>
+    <RootNamespace>SummaryReportModule</RootNamespace>
+    <Keyword>Win32Proj</Keyword>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">tsk$(ProjectName)</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">tsk$(ProjectName)</TargetName>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>$(TSK_HOME);$(TSK_HOME)\framework;$(POCO_HOME)\Foundation\include;$(POCO_HOME)\Util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;HASHCALCMODULE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MinimalRebuild>true</MinimalRebuild>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>libtskframework.lib;libtsk.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(TSK_HOME)\framework\msvcpp\framework\$(Configuration);$(TSK_HOME)\win32\$(Configuration);$(POCO_HOME)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Windows</SubSystem>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+    <PostBuildEvent>
+      <Command>move /Y "$(SolutionDir)$(Configuration)\tsk$(ProjectName).dll" "$(ProjectDir)..\..\..\runtime"</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <AdditionalIncludeDirectories>$(TSK_HOME);$(TSK_HOME)\framework;$(POCO_HOME)\Foundation\include;$(POCO_HOME)\Util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;HASHCALCMODULE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>libtskframework.lib;libtsk.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(TSK_HOME)\framework\msvcpp\framework\$(Configuration);$(TSK_HOME)\win32\$(Configuration);$(POCO_HOME)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Windows</SubSystem>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+    <PostBuildEvent>
+      <Command>move /Y "$(SolutionDir)$(Configuration)\tsk$(ProjectName).dll" "$(ProjectDir)..\..\..\runtime"</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\SummaryReport.cpp" />
+    <ClCompile Include="..\SummaryReportModule.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\SummaryReport.h" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/framework/modules/c_TskHashLookupModule/Makefile.am b/framework/modules/c_TskHashLookupModule/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..c0504ca4911f639d0f908a166e580196995503c8
--- /dev/null
+++ b/framework/modules/c_TskHashLookupModule/Makefile.am
@@ -0,0 +1,5 @@
+AM_CXXFLAGS = $(AM_CXXFLAGS_MOD)
+
+lib_LTLIBRARIES = libtskHashLookupModule.la
+libtskHashLookupModule_la_SOURCES = TskHashLookupModule.cpp
+libtskHashLookupModule_la_LIBADD = $(AM_LIBADD_MOD)
diff --git a/framework/modules/c_TskHashLookupModule/NEWS.txt b/framework/modules/c_TskHashLookupModule/NEWS.txt
new file mode 100644
index 0000000000000000000000000000000000000000..98fd3dd251f5b9a3250445ef3f50b018d429c4c1
--- /dev/null
+++ b/framework/modules/c_TskHashLookupModule/NEWS.txt
@@ -0,0 +1,9 @@
+Numbers refer to github.net issue #s:
+    https://github.com/sleuthkit/c_TskHashLookupModule/issues
+
+---------------- VERSION 1.0.0 --------------
+New Features:
+- Initial public release.
+
+Bug Fixes:
+- N/A. 
diff --git a/framework/modules/c_TskHashLookupModule/README.txt b/framework/modules/c_TskHashLookupModule/README.txt
new file mode 100755
index 0000000000000000000000000000000000000000..23f314ca77c1e694399b5907fbf7a6f54b41f336
--- /dev/null
+++ b/framework/modules/c_TskHashLookupModule/README.txt
@@ -0,0 +1,54 @@
+Tsk Hash Lookup Module
+Sleuth Kit Framework C++ Module
+May 2012
+
+
+This module is for the C++ Sleuth Kit Framework.
+
+
+DESCRIPTION
+
+This module is a file analysis module that looks up a file's MD5 
+hash value in one or more hash databases that have been indexed using the
+Sleuth Kit's hfind tool.  Hash databases are used to identify files that are
+'known' and previously seen.  Known files can be both good (such as standard 
+OS files) or bad (such as contraband).
+
+DEPLOYMENT REQUIREMENTS
+
+The module requires that at least one hash database indexed using the Sleuth 
+Kit's hfind tool is specified in its arguments.  See the link below for instructions
+on using the Sleuthkit's hfind tool to create an NSRL database index file.
+
+  http://www.sleuthkit.org/informer/sleuthkit-informer-7.html#nsrl 
+
+
+USAGE
+
+Add this module to a file analysis pipeline.  See the TSK 
+Framework documents for information on adding the module 
+to the pipeline:
+
+    http://www.sleuthkit.org/sleuthkit/docs/framework-docs/
+
+
+This module takes a semi-colon delimited list of arguments:
+
+     -k <path> The path of a 'known' files hash database.
+     -b <path> The path of a 'known bad' or 'notable' files hash database.
+               Multiple 'known bad' hash sets may be specified.
+     -s        A flag directing the module to issue a pipeline stop request if
+               a hash set hit occurs.
+
+
+RESULTS
+
+Each hash set hit that is found is posted to the blackboard. If directed to do
+so, the module will also stop the file analysis pipeline for the file when a hit 
+occurs.
+
+TODO:
+ - Make a downstream module to issue stop requests after reading results 
+   from the blackboard. This would allow for multiple decision making criteria
+   and would support the ability to insert additional processing between the 
+   look up and the decision.
diff --git a/framework/modules/c_TskHashLookupModule/TskHashLookupModule.cpp b/framework/modules/c_TskHashLookupModule/TskHashLookupModule.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..5bc43271dd5c16c119ff39dbdccc48f83bc60423
--- /dev/null
+++ b/framework/modules/c_TskHashLookupModule/TskHashLookupModule.cpp
@@ -0,0 +1,264 @@
+/*
+ * The Sleuth Kit
+ *
+ * Contact: Brian Carrier [carrier <at> sleuthkit [dot] org]
+ * Copyright (c) 2011-2012 Basis Technology Corporation. All Rights
+ * reserved.
+ *
+ * This software is distributed under the Common Public License 1.0
+ */
+
+/** \file TskHashLookupModule.cpp
+ * Contains an implementation of a hash look up file analysis module that uses one or more
+ * TSK hash database indexes to check a given file's MD5 hash against known bad file and 
+ * known file hash sets. Hash set hits are posted to the blackboard and the module can be 
+ * configured to issue a pipeline stop request if there is a hit.
+ */
+
+// System includes
+#include <string>
+#include <vector>
+#include <sstream>
+
+// Framework includes
+#include "tsk/framework/utilities/TskModuleDev.h"
+
+// Poco includes
+#include "Poco/StringTokenizer.h"
+
+namespace
+{
+    const char *MODULE_NAME = "TskHashLookup";
+    const char *MODULE_DESCRIPTION = "Looks up a file's MD5 hash value in one or more hash databases that have been indexed using the Sleuth Kit's hfind tool";
+    const char *MODULE_VERSION = "1.0.0";
+
+    static bool issueStopRequestsOnHits = false;
+    static TSK_HDB_INFO* knownHashDBInfo = NULL;
+    static std::vector<TSK_HDB_INFO*> knownBadHashDBInfos;
+}
+
+
+
+/**
+ * Helper function to open the index file for a TSK-indexed hash database.
+ *
+ * @param hashDatabasePath The path to a TSK-indexed hash database file.
+ * @param option           The option argument associated with the file, 
+ *                         for logging purposes.
+ * @return                 A TSK_HDB_INFO pointer if the index file is 
+ *                         successfully opened, NULL otherwise.
+ */
+static TSK_HDB_INFO* openHashDatabaseIndexFile(const std::string& hashDatabasePath, const std::string& option)
+{
+    // Was the hash database path specified?
+    if (hashDatabasePath.empty()) {
+        std::wstringstream msg;
+        msg << L"TskHashLookupModule::initialize - missing hash database path for " << option.c_str() << L" option.";
+        LOGERROR(msg.str());
+        return NULL;
+    }
+
+    // Get a hash database info record for the hash database.
+    std::vector<TSK_TCHAR> hashDbPath(hashDatabasePath.length() + 1);
+    std::copy(hashDatabasePath.begin(), hashDatabasePath.end(), hashDbPath.begin());
+    hashDbPath[hashDatabasePath.length()] = '\0';
+    TSK_HDB_INFO* hashDBInfo = tsk_hdb_open(&hashDbPath[0], TSK_HDB_OPEN_IDXONLY);
+
+    if (!hashDBInfo) {
+        std::wstringstream msg;
+        msg << L"TskHashLookupModule::initialize - failed to hash database info record for '" << hashDatabasePath.c_str() << L"'";
+        LOGERROR(msg.str());
+        return NULL;
+    }
+
+    // Is there an MD5 index?
+    if (!tsk_hdb_hasindex(hashDBInfo, TSK_HDB_HTYPE_MD5_ID)) {
+        std::wstringstream msg;
+        msg << L"TskHashLookupModule::initialize - failed to find MD5 index for '" << hashDatabasePath.c_str() << L"'";
+        LOGERROR(msg.str());
+        return NULL;
+    }
+
+    return hashDBInfo;
+}
+
+extern "C" 
+{
+    /**
+     * Module identification function. 
+     *
+     * @return The name of the module.
+     */
+    TSK_MODULE_EXPORT const char *name()
+    {
+        return MODULE_NAME;
+    }
+
+    /**
+     * Module identification function. 
+     *
+     * @return A description of the module.
+     */
+    TSK_MODULE_EXPORT const char *description()
+    {
+        return MODULE_DESCRIPTION;
+    }
+
+    /**
+     * Module identification function. 
+     *
+     * @return The version of the module.
+     */
+    TSK_MODULE_EXPORT const char *version()
+    {
+        return MODULE_VERSION;
+    }
+
+    /**
+     * Module initialization function. 
+     *
+     * @param args A semicolon delimited list of arguments:
+     *      -k <path> The path of a TSK-indexed hash database for a known files
+     *                hash set.
+     *      -b <path> The path of a TSK-indexed hash database for a known bad 
+     *                files hash set. Multiple known bad hash sets may be 
+     *                specified.
+     *      -s        A flag directing the module to issue a pipeline stop 
+     *                request if a hash set hit occurs.
+     * @return TskModule::OK if initialization succeeded, otherwise TskModule::FAIL.
+     */
+    TskModule::Status TSK_MODULE_EXPORT initialize(const char* arguments)
+    {
+        std::string args(arguments);
+
+        // At least one hash database path must be provided.
+        if (args.empty()) {
+            LOGERROR(L"TskHashLookupModule::initialize - passed empty argument string.");
+            return TskModule::FAIL;
+        }
+
+        // Parse and process the arguments.
+        Poco::StringTokenizer tokenizer(args, ";");
+        std::vector<std::string> argsVector(tokenizer.begin(), tokenizer.end());
+        for (std::vector<std::string>::const_iterator it = argsVector.begin(); it < argsVector.end(); ++it) {
+            if ((*it).find("-s") == 0) {
+                issueStopRequestsOnHits = true;
+            }
+            else if ((*it).find("-k") == 0) {
+                // Only one known files hash set may be specified.
+                if (knownHashDBInfo) {
+                    LOGERROR(L"TskHashLookupModule::initialize - multiple known hash databases specified, only one is allowed.");
+                    return TskModule::FAIL;
+                }
+
+                knownHashDBInfo = openHashDatabaseIndexFile((*it).substr(3), "-k");
+                if (!knownHashDBInfo)
+                    return TskModule::FAIL;
+            }
+            else if ((*it).find("-b") == 0) {
+                // Any number of known bad files hash sets may be specified.
+                TSK_HDB_INFO* hashDBInfo = openHashDatabaseIndexFile((*it).substr(3), "-b");
+                if (hashDBInfo)
+                    knownBadHashDBInfos.push_back(hashDBInfo);
+                else
+                    return TskModule::FAIL;
+            }
+            else {
+                LOGERROR(L"TskHashLookupModule::initialize - unrecognized option in argument string.");
+                return TskModule::FAIL;
+            }
+        }
+
+        // At least one hash database file path must be provided.
+        if (!knownHashDBInfo && knownBadHashDBInfos.empty()) {
+            LOGERROR(L"TskHashLookupModule::initialize - no hash database paths specified in argument string.");
+            return TskModule::FAIL;
+        }
+
+        return TskModule::OK;
+    }
+
+    /**
+     * Module execution function. Receives a pointer to a file the module is to
+     * process. The file is represented by a TskFile interface which is queried
+     * to get the MD5 hash of the file. The hash is then used do a lookup in
+     * the hash database. If the lookup succeeds, a request to terminate 
+     * processing of the file is issued.
+     *
+     * @param pFile File for which the hash database lookup is to be performed.
+     * @returns     TskModule::FAIL if an error occurs, otherwise TskModule::OK 
+     *              or TskModule::STOP. TskModule::STOP is returned if the look 
+     *              up succeeds and the module is configured to request a 
+     *              pipeline stop when a hash set hit occurs.
+     */
+    TskModule::Status TSK_MODULE_EXPORT run(TskFile * pFile)
+    {
+        // Received a file to analyze?
+        if (pFile == NULL) {
+            LOGERROR(L"TskHashLookupModule::run passed NULL file pointer.");
+            return TskModule::FAIL;
+        }
+
+        // Need at least one hash database index file to run.
+        if (!knownHashDBInfo && knownBadHashDBInfos.empty()) {
+            LOGERROR(L"TskHashLookupModule::run - no hash database index files to search.");
+            return TskModule::FAIL;
+        }
+
+        // Check for hash set hits.
+        TskBlackboard &blackBoard = TskServices::Instance().getBlackboard();
+        TskImgDB& imageDB = TskServices::Instance().getImgDB();
+        bool hashSetHit = false;
+        try {
+            std::string md5 = pFile->getHash(TskImgDB::MD5); 
+
+            // Check for known bad files hash set hits. If a hit occurs, mark the file as IMGDB_FILES_KNOWN_BAD
+            // and post the hit to the blackboard.
+            for (std::vector<TSK_HDB_INFO*>::iterator it = knownBadHashDBInfos.begin(); it < knownBadHashDBInfos.end(); ++it) {
+                if (tsk_hdb_lookup_str(*it, md5.c_str(), TSK_HDB_FLAG_QUICK, NULL, NULL)) {
+                    if (!hashSetHit) {
+                        imageDB.updateKnownStatus(pFile->getId(), TskImgDB::IMGDB_FILES_KNOWN_BAD);
+                        hashSetHit = true;
+                    }
+                    TskBlackboardArtifact artifact = blackBoard.createArtifact(pFile->getId(), TSK_HASHSET_HIT);
+                    TskBlackboardAttribute attribute(TSK_SET_NAME, "TskHashLookupModule", "", (*it)->db_name);
+                    artifact.addAttribute(attribute);
+                }
+            }
+
+            // If there were no known bad file hits, check for a known file hash set hit. if a hit occurs, 
+            // mark the file as IMGDB_FILES_KNOWN and post the hit to the blackboard.
+            if (knownHashDBInfo && !hashSetHit && tsk_hdb_lookup_str(knownHashDBInfo, md5.c_str(), TSK_HDB_FLAG_QUICK, NULL, NULL)) {
+                imageDB.updateKnownStatus(pFile->getId(), TskImgDB::IMGDB_FILES_KNOWN);
+                hashSetHit = true;
+                TskBlackboardArtifact artifact = blackBoard.createArtifact(pFile->getId(), TSK_HASHSET_HIT);
+                TskBlackboardAttribute attribute(TSK_SET_NAME, "TskHashLookupModule", "", knownHashDBInfo->db_name);
+                artifact.addAttribute(attribute);
+            }
+        }
+        catch (TskException& ex) {
+            std::wstringstream msg;
+            msg << L"TskHashLookupModule::run - error on lookup for file id " << pFile->getId() << L": " << ex.what();
+            LOGERROR(msg.str());
+            return TskModule::FAIL;
+        }
+
+        return hashSetHit && issueStopRequestsOnHits ? TskModule::STOP : TskModule::OK;
+    }
+
+    /**
+     * Module cleanup function that closes the hash database index files.
+     *
+     * @returns TskModule::OK 
+     */
+    TskModule::Status TSK_MODULE_EXPORT finalize() 
+    {
+        if (knownHashDBInfo != NULL)
+            tsk_hdb_close(knownHashDBInfo); // Closes the index file and frees the memory for the TSK_HDB_INFO struct. 
+
+        for (std::vector<TSK_HDB_INFO*>::iterator it = knownBadHashDBInfos.begin(); it < knownBadHashDBInfos.end(); ++it)
+            tsk_hdb_close(*it); // Closes the index file and frees the memory for the TSK_HDB_INFO struct.
+
+        return TskModule::OK;
+    }
+}
diff --git a/framework/modules/c_TskHashLookupModule/cpl1.0.txt b/framework/modules/c_TskHashLookupModule/cpl1.0.txt
new file mode 100755
index 0000000000000000000000000000000000000000..c9990a7ea45dbb64f81f7bface6d0f765d96c086
--- /dev/null
+++ b/framework/modules/c_TskHashLookupModule/cpl1.0.txt
@@ -0,0 +1,213 @@
+Common Public License Version 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC
+LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
+CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+    a) in the case of the initial Contributor, the initial code and
+documentation distributed under this Agreement, and
+
+    b) in the case of each subsequent Contributor:
+
+    i) changes to the Program, and
+
+    ii) additions to the Program;
+
+    where such changes and/or additions to the Program originate from and are
+distributed by that particular Contributor. A Contribution 'originates' from a
+Contributor if it was added to the Program by such Contributor itself or anyone
+acting on such Contributor's behalf. Contributions do not include additions to
+the Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii) are not
+derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are
+necessarily infringed by the use or sale of its Contribution alone or when
+combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement,
+including all Contributors.
+
+2. GRANT OF RIGHTS
+
+    a) Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide, royalty-free copyright license to
+reproduce, prepare derivative works of, publicly display, publicly perform,
+distribute and sublicense the Contribution of such Contributor, if any, and such
+derivative works, in source code and object code form.
+
+    b) Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed
+Patents to make, use, sell, offer to sell, import and otherwise transfer the
+Contribution of such Contributor, if any, in source code and object code form.
+This patent license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor, such
+addition of the Contribution causes such combination to be covered by the
+Licensed Patents. The patent license shall not apply to any other combinations
+which include the Contribution. No hardware per se is licensed hereunder.
+
+    c) Recipient understands that although each Contributor grants the licenses
+to its Contributions set forth herein, no assurances are provided by any
+Contributor that the Program does not infringe the patent or other intellectual
+property rights of any other entity. Each Contributor disclaims any liability to
+Recipient for claims brought by any other entity based on infringement of
+intellectual property rights or otherwise. As a condition to exercising the
+rights and licenses granted hereunder, each Recipient hereby assumes sole
+responsibility to secure any other intellectual property rights needed, if any.
+For example, if a third party patent license is required to allow Recipient to
+distribute the Program, it is Recipient's responsibility to acquire that license
+before distributing the Program.
+
+    d) Each Contributor represents that to its knowledge it has sufficient
+copyright rights in its Contribution, if any, to grant the copyright license set
+forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its
+own license agreement, provided that:
+
+    a) it complies with the terms and conditions of this Agreement; and
+
+    b) its license agreement:
+
+    i) effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title and
+non-infringement, and implied warranties or conditions of merchantability and
+fitness for a particular purpose;
+
+    ii) effectively excludes on behalf of all Contributors all liability for
+damages, including direct, indirect, special, incidental and consequential
+damages, such as lost profits;
+
+    iii) states that any provisions which differ from this Agreement are offered
+by that Contributor alone and not by any other party; and
+
+    iv) states that source code for the Program is available from such
+Contributor, and informs licensees how to obtain it in a reasonable manner on or
+through a medium customarily used for software exchange. 
+
+When the Program is made available in source code form:
+
+    a) it must be made available under this Agreement; and
+
+    b) a copy of this Agreement must be included with each copy of the Program. 
+
+Contributors may not remove or alter any copyright notices contained within the
+Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if
+any, in a manner that reasonably allows subsequent Recipients to identify the
+originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with
+respect to end users, business partners and the like. While this license is
+intended to facilitate the commercial use of the Program, the Contributor who
+includes the Program in a commercial product offering should do so in a manner
+which does not create potential liability for other Contributors. Therefore, if
+a Contributor includes the Program in a commercial product offering, such
+Contributor ("Commercial Contributor") hereby agrees to defend and indemnify
+every other Contributor ("Indemnified Contributor") against any losses, damages
+and costs (collectively "Losses") arising from claims, lawsuits and other legal
+actions brought by a third party against the Indemnified Contributor to the
+extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor to
+control, and cooperate with the Commercial Contributor in, the defense and any
+related settlement negotiations. The Indemnified Contributor may participate in
+any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product
+offering, Product X. That Contributor is then a Commercial Contributor. If that
+Commercial Contributor then makes performance claims, or offers warranties
+related to Product X, those performance claims and warranties are such
+Commercial Contributor's responsibility alone. Under this section, the
+Commercial Contributor would have to defend claims against the other
+Contributors related to those performance claims and warranties, and if a court
+requires any other Contributor to pay any damages as a result, the Commercial
+Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
+IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each
+Recipient is solely responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its exercise of
+rights under this Agreement, including but not limited to the risks and costs of
+program errors, compliance with applicable laws, damage to or loss of data,
+programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
+CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
+PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
+GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable
+law, it shall not affect the validity or enforceability of the remainder of the
+terms of this Agreement, and without further action by the parties hereto, such
+provision shall be reformed to the minimum extent necessary to make such
+provision valid and enforceable.
+
+If Recipient institutes patent litigation against a Contributor with respect to
+a patent applicable to software (including a cross-claim or counterclaim in a
+lawsuit), then any patent licenses granted by that Contributor to such Recipient
+under this Agreement shall terminate as of the date such litigation is filed. In
+addition, if Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the Program
+itself (excluding combinations of the Program with other software or hardware)
+infringes such Recipient's patent(s), then such Recipient's rights granted under
+Section 2(b) shall terminate as of the date such litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to
+comply with any of the material terms or conditions of this Agreement and does
+not cure such failure in a reasonable period of time after becoming aware of
+such noncompliance. If all Recipient's rights under this Agreement terminate,
+Recipient agrees to cease use and distribution of the Program as soon as
+reasonably practicable. However, Recipient's obligations under this Agreement
+and any licenses granted by Recipient relating to the Program shall continue and
+survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in
+order to avoid inconsistency the Agreement is copyrighted and may only be
+modified in the following manner. The Agreement Steward reserves the right to
+publish new versions (including revisions) of this Agreement from time to time.
+No one other than the Agreement Steward has the right to modify this Agreement.
+IBM is the initial Agreement Steward. IBM may assign the responsibility to serve
+as the Agreement Steward to a suitable separate entity. Each new version of the
+Agreement will be given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the Agreement
+under which it was received. In addition, after a new version of the Agreement
+is published, Contributor may elect to distribute the Program (including its
+Contributions) under the new version. Except as expressly stated in Sections
+2(a) and 2(b) above, Recipient receives no rights or licenses to the
+intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the
+intellectual property laws of the United States of America. No party to this
+Agreement will bring a legal action under this Agreement more than one year
+after the cause of action arose. Each party waives its rights to a jury trial in
+any resulting litigation.
diff --git a/framework/modules/c_TskHashLookupModule/win32/TskHashLookupModule.sln b/framework/modules/c_TskHashLookupModule/win32/TskHashLookupModule.sln
new file mode 100755
index 0000000000000000000000000000000000000000..f0a6a857d95ae663610a64d9e0406b5c74d71eeb
--- /dev/null
+++ b/framework/modules/c_TskHashLookupModule/win32/TskHashLookupModule.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual C++ Express 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TskHashLookupModule", "TskHashLookupModule.vcxproj", "{430B8E55-C5F4-4936-A0C7-DABD8B34788A}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{430B8E55-C5F4-4936-A0C7-DABD8B34788A}.Debug|Win32.ActiveCfg = Debug|Win32
+		{430B8E55-C5F4-4936-A0C7-DABD8B34788A}.Debug|Win32.Build.0 = Debug|Win32
+		{430B8E55-C5F4-4936-A0C7-DABD8B34788A}.Release|Win32.ActiveCfg = Release|Win32
+		{430B8E55-C5F4-4936-A0C7-DABD8B34788A}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/framework/modules/c_TskHashLookupModule/win32/TskHashLookupModule.vcxproj b/framework/modules/c_TskHashLookupModule/win32/TskHashLookupModule.vcxproj
new file mode 100755
index 0000000000000000000000000000000000000000..b1636a601c891ee9a76325616752e1e28f797399
--- /dev/null
+++ b/framework/modules/c_TskHashLookupModule/win32/TskHashLookupModule.vcxproj
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{430B8E55-C5F4-4936-A0C7-DABD8B34788A}</ProjectGuid>
+    <RootNamespace>EntropyModule</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>$(TSK_HOME);$(TSK_HOME)\framework;$(POCO_HOME)\Foundation\include;$(POCO_HOME)\Util\include;$(POCO_HOME)\XML\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <MinimalRebuild>true</MinimalRebuild>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>libtskframework.lib;libtsk.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(TSK_HOME)\win32\$(Configuration);$(TSK_HOME)\framework\msvcpp\framework\$(Configuration);$(POCO_HOME)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+    <PostBuildEvent>
+      <Command>
+      </Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <AdditionalIncludeDirectories>$(TSK_HOME);$(TSK_HOME)\framework;$(POCO_HOME)\Foundation\include;$(POCO_HOME)\Util\include;$(POCO_HOME)\XML\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>libtskframework.lib;libtsk.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(TSK_HOME)\win32\$(Configuration);$(TSK_HOME)\framework\msvcpp\framework\$(Configuration);$(POCO_HOME)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+    <PostBuildEvent>
+      <Command>
+</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\TskHashLookupModule.cpp" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/framework/modules/c_ZIPExtractionModule/Makefile.am b/framework/modules/c_ZIPExtractionModule/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..4d07cbed4f47ce537bc49c3319bf06f571c351d0
--- /dev/null
+++ b/framework/modules/c_ZIPExtractionModule/Makefile.am
@@ -0,0 +1,5 @@
+AM_CXXFLAGS = $(AM_CXXFLAGS_MOD)
+
+lib_LTLIBRARIES = libtskZipExtractionModule.la
+libtskZipExtractionModule_la_SOURCES = ZipExtractionModule.cpp
+libtskZipExtractionModule_la_LIBADD = $(AM_LIBADD_MOD)
diff --git a/framework/modules/c_ZIPExtractionModule/NEWS.txt b/framework/modules/c_ZIPExtractionModule/NEWS.txt
new file mode 100644
index 0000000000000000000000000000000000000000..000c8cf7eebbee5b94cb7bff24dc3e75efd575b4
--- /dev/null
+++ b/framework/modules/c_ZIPExtractionModule/NEWS.txt
@@ -0,0 +1,9 @@
+Numbers refer to github.net issue #s:
+    https://github.com/sleuthkit/c_ZIPExtractionModule/issues
+
+---------------- VERSION 1.0.0 --------------
+New Features:
+- Initial public release.
+
+Bug Fixes:
+- N/A. 
diff --git a/framework/modules/c_ZIPExtractionModule/README.txt b/framework/modules/c_ZIPExtractionModule/README.txt
new file mode 100644
index 0000000000000000000000000000000000000000..829fe381a37edb54cbce2afb95c55405a31095ef
--- /dev/null
+++ b/framework/modules/c_ZIPExtractionModule/README.txt
@@ -0,0 +1,33 @@
+Zip Exraction Module
+Sleuth Kit Framework C++ Module
+May 2012
+
+
+This module is for the C++ Sleuth Kit Framework.
+
+
+DESCRIPTION
+
+This module extracts the files stored inside of ZIP files. This
+enables you to find all possible files with evidence. Files 
+extracted from ZIP files are scheduled so that they can later be
+analyzed in a file analysis pipeline.
+
+DEPLOYMENT REQUIREMENTS
+
+This module does not have any specific deployment requirements.
+
+USAGE
+
+Add this module to a file analysis pipeline.  See the TSK 
+Framework documents for information on adding the module 
+to the pipeline:
+
+    http://www.sleuthkit.org/sleuthkit/docs/framework-docs/
+
+This module takes no configuration arguments.  
+
+RESULTS
+
+The files are extracted, added to the database, and scheduled
+for analysis. 
\ No newline at end of file
diff --git a/framework/modules/c_ZIPExtractionModule/ZipExtractionModule.cpp b/framework/modules/c_ZIPExtractionModule/ZipExtractionModule.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..8bc0e854fc5f3bd2c62f477d47ac73344c79f37b
--- /dev/null
+++ b/framework/modules/c_ZIPExtractionModule/ZipExtractionModule.cpp
@@ -0,0 +1,376 @@
+/*
+ * The Sleuth Kit
+ *
+ * Contact: Brian Carrier [carrier <at> sleuthkit [dot] org]
+ * Copyright (c) 2010-2012 Basis Technology Corporation. All Rights
+ * reserved.
+ *
+ * This software is distributed under the Common Public License 1.0
+ */
+
+/**
+ * \file ZipExtractionModule.cpp
+ * Contains the implementation for the Zip extraction file analysis module.
+ * This module extracts zip file content and creates entries in the database 
+ * for the extracted files. 
+ */
+
+// System includes
+#include <sstream>
+#include <iostream>
+#include <fstream>
+
+// Poco includes
+#include "Poco/Path.h"
+#include "Poco/Zip/ZipStream.h"
+#include "Poco/Zip/Decompress.h"
+
+// Framework includes
+#include "tsk/framework/utilities/TskModuleDev.h"
+
+namespace
+{
+    const char *MODULE_NAME = "tskZipExtractionModule";
+    const char *MODULE_DESCRIPTION = "Extracts the files stored inside of ZIP files";
+    const char *MODULE_VERSION = "1.0.0";
+}
+
+namespace
+{
+    std::set<uint64_t> fileIdsToSchedule;
+
+    /**
+     * Schedule files for analysis. Iterates over the fileIdsToSchedule
+     * set calling Scheduler::schedule() for each consecutive range of
+     * file ids.
+     */
+    void scheduleFiles()
+    {
+        if (fileIdsToSchedule.empty())
+            return;
+
+        Scheduler& scheduler = TskServices::Instance().getScheduler();
+
+        std::set<uint64_t>::const_iterator it = fileIdsToSchedule.begin();
+        uint64_t startId = *it, endId = *it;
+
+        while (++it != fileIdsToSchedule.end())
+        {
+            if (*it > endId + 1)
+            {
+                scheduler.schedule(Scheduler::FileAnalysis, startId, endId);
+                startId = endId = *it;
+            }
+            else
+            {
+                endId++;
+            }
+        }
+
+        scheduler.schedule(Scheduler::FileAnalysis, startId, endId);
+        fileIdsToSchedule.clear();
+    }
+}
+
+/**
+ * Get the file id corresponding to the last directory on the given path.
+ * If elements along the path have not been seen before, create new entries
+ * for those elements both in the database and in the directory map (3rd parameter). 
+ * Note that the parent id for top level directories will be the file id of the zip file.
+ */
+static uint64_t getParentIdForPath(Poco::Path& path, const uint64_t fileId, std::string parentPath, std::map<std::string, uint64_t>& directoryMap)
+{
+    // If the path references a file, make it refer to to its parent instead
+    if (path.isFile())
+        path = path.makeParent();
+
+    // Initialize parent id to be the file id of the zip file.
+    uint64_t parentId = fileId;
+
+    // Iterate over every element of the path checking to see if we 
+    // already have an entry in the database and in the directory map.
+    Poco::Path tempPath;
+    TskImgDB& imgDB = TskServices::Instance().getImgDB();
+    std::map<std::string, uint64_t>::const_iterator pos;
+    for (int i = 0; i < path.depth(); i++)
+    {
+        // Build up a temporary path that only contains the path
+        // elements seen so far. This temporary path will be used
+        // below to add the full path to the map.
+        tempPath.pushDirectory(path[i]);
+
+        // Have we already seen this path?
+        pos = directoryMap.find(tempPath.toString());
+
+        if (pos == directoryMap.end())
+        {
+			std::string fullpath = "";
+            fullpath.append(parentPath);
+            fullpath.append("\\");
+            fullpath.append(path.toString());
+
+            // No entry exists for this directory so we create one.
+            if (imgDB.addDerivedFileInfo(path[i], parentId,
+                                         true, // isDirectory
+                                         0, // uncompressed size
+                                         "", // no details
+                                         0, // ctime
+                                         0, // crtime
+                                         0, // atime
+                                         0, // mtime
+                                         parentId,
+                                         fullpath) == -1)
+            {
+                throw TskException("ZipExtraction::getParentIdForPath : Failed to add derived file for " + path[i]);
+            }
+
+            // Add the full path (to this point) and new id to the map.
+            directoryMap[tempPath.toString()] = parentId;
+
+            // Update file status to indicate that it is ready for analysis.
+            imgDB.updateFileStatus(parentId, TskImgDB::IMGDB_FILES_STATUS_READY_FOR_ANALYSIS);
+            fileIdsToSchedule.insert(parentId);
+        }
+        else
+        {
+            parentId = pos->second;
+        }
+    }
+
+    return parentId;
+}
+
+extern "C" 
+{
+    /**
+     * Module identification function. 
+     *
+     * @return The name of the module.
+     */
+    TSK_MODULE_EXPORT const char *name()
+    {
+        return MODULE_NAME;
+    }
+
+    /**
+     * Module identification function. 
+     *
+     * @return A description of the module.
+     */
+    TSK_MODULE_EXPORT const char *description()
+    {
+        return MODULE_DESCRIPTION;
+    }
+
+    /**
+     * Module identification function. 
+     *
+     * @return The version of the module.
+     */
+    TSK_MODULE_EXPORT const char *version()
+    {
+        return MODULE_VERSION;
+    }
+
+    /**
+     * Module initialization function. Receives a string of intialization arguments, 
+     * typically read by the caller from a pipeline configuration file. 
+     * Returns TskModule::OK or TskModule::FAIL. Returning TskModule::FAIL indicates 
+     * the module is not in an operational state.  
+     *
+     * @param args Initialization arguments.
+     * @return TskModule::OK if initialization succeeded, otherwise TskModule::FAIL.
+     */
+    TskModule::Status TSK_MODULE_EXPORT initialize(const char* args)
+    {
+        return TskModule::OK;
+    }
+    
+    /**
+     * Module execution function. Receives a pointer to a file the module is to
+     * process. The file is represented by a TskFile interface from which both
+     * file content and file metadata can be retrieved. Returns TskModule::OK, 
+     * TskModule::FAIL, or TskModule::STOP. Returning TskModule::FAIL indicates 
+     * the module experienced an error processing the file. Returning TskModule::STOP
+     * is a request to terminate processing of the file.
+     *
+     * @param pFile A pointer to a file to be processed.
+     * @returns TskModule::OK on success, TskModule::FAIL on error, or TskModule::STOP.
+     */
+    TskModule::Status TSK_MODULE_EXPORT run(TskFile * pFile)
+    {
+        if (pFile == NULL)
+        {
+            LOGERROR(L"Zip extraction module passed NULL file pointer.");
+            return TskModule::FAIL;
+        }
+
+        try
+        {
+            TskImgDB& imgDB = TskServices::Instance().getImgDB();
+
+			// Create a map of directory names to file ids to use to 
+			// associate files/directories with the correct parent.
+			std::map<std::string, uint64_t> directoryMap;
+            uint64_t parentId = 0;
+
+            // Save the file to disk and attempt to open it as an archive file.
+            pFile->save();
+            std::ifstream input(pFile->getPath().c_str(), std::ios_base::binary);
+            Poco::Zip::ZipArchive archive(input);
+            Poco::Zip::ZipArchive::FileHeaders::const_iterator fh;
+
+            // Attempt to extract the files contained in the archive file.
+            for (fh = archive.headerBegin(); fh != archive.headerEnd(); ++fh)
+            {
+                Poco::Path path(fh->first);
+                Poco::Path parent = path.parent();
+                std::string name;
+
+                if (path.isDirectory())
+                    name = path[path.depth() - 1];
+                else
+                    name = path[path.depth()];
+
+                // Determine the parent id of the file.
+                if (path.depth() == 0 || (path.isDirectory() && path.depth() == 1))
+                    // This file or directory lives at the root so our parent id
+                    // is the containing file id.
+                    parentId = pFile->getId();
+                else
+                {
+                    // We are not at the root so we need to lookup the id of our
+                    // parent directory.
+                    std::map<std::string, uint64_t>::const_iterator pos;
+                    pos = directoryMap.find(parent.toString());
+
+                    if (pos == directoryMap.end())
+                    {
+                        // In certain circumstances (Windows Send to zip and .docx files)
+                        // there may not be entries in the zip file for directories.
+                        // For these cases we create database entries for the directories
+                        // so that we can accurately track parent relationships. The
+                        // getParentIdForPath() method creates the database entries for the
+                        // given path and returns the parentId of the last directory on the path.
+                        parentId = getParentIdForPath(parent, pFile->getId(), pFile->getFullPath(), directoryMap);
+                    }
+                    else
+                    {
+                        parentId = pos->second;
+                    }
+                }
+
+                // Store some extra details about the derived (i.e, extracted) file.
+                std::stringstream details;
+                details << "<ZIPFILE name=\"" << fh->second.getFileName()
+                    << "\" compressed_size=\"" << fh->second.getCompressedSize()
+                    << "\" uncompressed_size=\"" << fh->second.getUncompressedSize()
+                    << "\" crc=\"" << fh->second.getCRC()
+                    << "\" start_pos=\"" << fh->second.getStartPos()
+                    << "\" end_pos=\"" << fh->second.getEndPos()
+                    << "\" major_version=\"" << fh->second.getMajorVersionNumber()
+                    << "\" minor_version=\"" << fh->second.getMinorVersionNumber() << "\""
+                    << "</ZIPFILE>";
+
+                uint64_t fileId;
+
+                std::string fullpath = "";
+                fullpath.append(pFile->getFullPath());
+                fullpath.append("\\");
+                fullpath.append(path.toString());
+
+                if (imgDB.addDerivedFileInfo(name,
+                    parentId,
+                    path.isDirectory(),
+                    fh->second.getUncompressedSize(),
+                    details.str(), 
+                    0, // ctime
+                    0, // crtime
+                    0, // atime
+                    static_cast<int>(fh->second.lastModifiedAt().utcTime()),
+                    fileId, fullpath) == -1) 
+                {
+                        std::wstringstream msg;
+                        msg << L"ZipExtractionModule - addDerivedFileInfo failed for name="
+                            << name.c_str();
+                        LOGERROR(msg.str());
+
+                        return TskModule::FAIL;
+                }
+
+                TskImgDB::FILE_STATUS fileStatus = TskImgDB::IMGDB_FILES_STATUS_READY_FOR_ANALYSIS;
+
+                if (path.isDirectory())
+                {
+                    directoryMap[path.toString()] = fileId;
+                }
+                else
+                {
+                    // Only DEFLATE and STORE compression methods are supported. The STORE method
+                    // simply stores a file without compression.
+                    if (fh->second.getCompressionMethod() == Poco::Zip::ZipCommon::CM_DEFLATE ||
+                        fh->second.getCompressionMethod() == Poco::Zip::ZipCommon::CM_STORE)
+                    {
+                        // Save the file for subsequent processing.
+                        Poco::Zip::ZipInputStream zipin(input, fh->second);
+                        TskServices::Instance().getFileManager().addFile(fileId, zipin);
+                    }
+                    else
+                    {
+                        std::wstringstream msg;
+                        msg << L"ZipExtractionModule - Unsupported compression method for file: "
+                            << name.c_str();
+                        LOGWARN(msg.str());
+                        
+                        fileStatus = TskImgDB::IMGDB_FILES_STATUS_ANALYSIS_FAILED;
+                    }
+                }
+
+                // Update file status to indicate that it is ready for analysis.
+                imgDB.updateFileStatus(fileId, fileStatus);
+                fileIdsToSchedule.insert(fileId);
+            }
+
+            // Schedule files for analysis
+            scheduleFiles();
+        }
+        catch (Poco::IllegalStateException&)
+        {
+            // Poco::IllegalStateException is thrown if the file is not a valid zip file
+            // so we simply skip the file.
+            return TskModule::OK;
+        }
+        catch (Poco::AssertionViolationException&)
+        {
+            // Corrupt zip files are not uncommon, especially for carved files.
+            std::wstringstream msg;
+            msg << L"ZipExtractionModule - Encountered corrupt zip file ( " << pFile->getName().c_str()
+                << L")";
+            LOGWARN(msg.str());
+
+            return TskModule::FAIL;
+        }
+        catch (std::exception& ex)
+        {
+            std::wstringstream msg;
+            msg << L"ZipExtractionModule - Error processing zip file ( " << pFile->getName().c_str()
+                << L") : " << ex.what();
+            LOGERROR(msg.str());
+
+            return TskModule::FAIL;
+        }
+
+        return TskModule::OK;
+    }
+
+    /**
+     * Module cleanup function. This is where the module should free any resources 
+     * allocated during initialization or execution.
+     *
+     * @returns TskModule::OK on success and TskModule::FAIL on error.
+     */
+    TskModule::Status TSK_MODULE_EXPORT finalize()
+    {
+        return TskModule::OK;
+    }
+}
diff --git a/framework/modules/c_ZIPExtractionModule/cpl1.0.txt b/framework/modules/c_ZIPExtractionModule/cpl1.0.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c9990a7ea45dbb64f81f7bface6d0f765d96c086
--- /dev/null
+++ b/framework/modules/c_ZIPExtractionModule/cpl1.0.txt
@@ -0,0 +1,213 @@
+Common Public License Version 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC
+LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
+CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+    a) in the case of the initial Contributor, the initial code and
+documentation distributed under this Agreement, and
+
+    b) in the case of each subsequent Contributor:
+
+    i) changes to the Program, and
+
+    ii) additions to the Program;
+
+    where such changes and/or additions to the Program originate from and are
+distributed by that particular Contributor. A Contribution 'originates' from a
+Contributor if it was added to the Program by such Contributor itself or anyone
+acting on such Contributor's behalf. Contributions do not include additions to
+the Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii) are not
+derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are
+necessarily infringed by the use or sale of its Contribution alone or when
+combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement,
+including all Contributors.
+
+2. GRANT OF RIGHTS
+
+    a) Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide, royalty-free copyright license to
+reproduce, prepare derivative works of, publicly display, publicly perform,
+distribute and sublicense the Contribution of such Contributor, if any, and such
+derivative works, in source code and object code form.
+
+    b) Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed
+Patents to make, use, sell, offer to sell, import and otherwise transfer the
+Contribution of such Contributor, if any, in source code and object code form.
+This patent license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor, such
+addition of the Contribution causes such combination to be covered by the
+Licensed Patents. The patent license shall not apply to any other combinations
+which include the Contribution. No hardware per se is licensed hereunder.
+
+    c) Recipient understands that although each Contributor grants the licenses
+to its Contributions set forth herein, no assurances are provided by any
+Contributor that the Program does not infringe the patent or other intellectual
+property rights of any other entity. Each Contributor disclaims any liability to
+Recipient for claims brought by any other entity based on infringement of
+intellectual property rights or otherwise. As a condition to exercising the
+rights and licenses granted hereunder, each Recipient hereby assumes sole
+responsibility to secure any other intellectual property rights needed, if any.
+For example, if a third party patent license is required to allow Recipient to
+distribute the Program, it is Recipient's responsibility to acquire that license
+before distributing the Program.
+
+    d) Each Contributor represents that to its knowledge it has sufficient
+copyright rights in its Contribution, if any, to grant the copyright license set
+forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its
+own license agreement, provided that:
+
+    a) it complies with the terms and conditions of this Agreement; and
+
+    b) its license agreement:
+
+    i) effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title and
+non-infringement, and implied warranties or conditions of merchantability and
+fitness for a particular purpose;
+
+    ii) effectively excludes on behalf of all Contributors all liability for
+damages, including direct, indirect, special, incidental and consequential
+damages, such as lost profits;
+
+    iii) states that any provisions which differ from this Agreement are offered
+by that Contributor alone and not by any other party; and
+
+    iv) states that source code for the Program is available from such
+Contributor, and informs licensees how to obtain it in a reasonable manner on or
+through a medium customarily used for software exchange. 
+
+When the Program is made available in source code form:
+
+    a) it must be made available under this Agreement; and
+
+    b) a copy of this Agreement must be included with each copy of the Program. 
+
+Contributors may not remove or alter any copyright notices contained within the
+Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if
+any, in a manner that reasonably allows subsequent Recipients to identify the
+originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with
+respect to end users, business partners and the like. While this license is
+intended to facilitate the commercial use of the Program, the Contributor who
+includes the Program in a commercial product offering should do so in a manner
+which does not create potential liability for other Contributors. Therefore, if
+a Contributor includes the Program in a commercial product offering, such
+Contributor ("Commercial Contributor") hereby agrees to defend and indemnify
+every other Contributor ("Indemnified Contributor") against any losses, damages
+and costs (collectively "Losses") arising from claims, lawsuits and other legal
+actions brought by a third party against the Indemnified Contributor to the
+extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor to
+control, and cooperate with the Commercial Contributor in, the defense and any
+related settlement negotiations. The Indemnified Contributor may participate in
+any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product
+offering, Product X. That Contributor is then a Commercial Contributor. If that
+Commercial Contributor then makes performance claims, or offers warranties
+related to Product X, those performance claims and warranties are such
+Commercial Contributor's responsibility alone. Under this section, the
+Commercial Contributor would have to defend claims against the other
+Contributors related to those performance claims and warranties, and if a court
+requires any other Contributor to pay any damages as a result, the Commercial
+Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
+IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each
+Recipient is solely responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its exercise of
+rights under this Agreement, including but not limited to the risks and costs of
+program errors, compliance with applicable laws, damage to or loss of data,
+programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
+CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
+PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
+GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable
+law, it shall not affect the validity or enforceability of the remainder of the
+terms of this Agreement, and without further action by the parties hereto, such
+provision shall be reformed to the minimum extent necessary to make such
+provision valid and enforceable.
+
+If Recipient institutes patent litigation against a Contributor with respect to
+a patent applicable to software (including a cross-claim or counterclaim in a
+lawsuit), then any patent licenses granted by that Contributor to such Recipient
+under this Agreement shall terminate as of the date such litigation is filed. In
+addition, if Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the Program
+itself (excluding combinations of the Program with other software or hardware)
+infringes such Recipient's patent(s), then such Recipient's rights granted under
+Section 2(b) shall terminate as of the date such litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to
+comply with any of the material terms or conditions of this Agreement and does
+not cure such failure in a reasonable period of time after becoming aware of
+such noncompliance. If all Recipient's rights under this Agreement terminate,
+Recipient agrees to cease use and distribution of the Program as soon as
+reasonably practicable. However, Recipient's obligations under this Agreement
+and any licenses granted by Recipient relating to the Program shall continue and
+survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in
+order to avoid inconsistency the Agreement is copyrighted and may only be
+modified in the following manner. The Agreement Steward reserves the right to
+publish new versions (including revisions) of this Agreement from time to time.
+No one other than the Agreement Steward has the right to modify this Agreement.
+IBM is the initial Agreement Steward. IBM may assign the responsibility to serve
+as the Agreement Steward to a suitable separate entity. Each new version of the
+Agreement will be given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the Agreement
+under which it was received. In addition, after a new version of the Agreement
+is published, Contributor may elect to distribute the Program (including its
+Contributions) under the new version. Except as expressly stated in Sections
+2(a) and 2(b) above, Recipient receives no rights or licenses to the
+intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the
+intellectual property laws of the United States of America. No party to this
+Agreement will bring a legal action under this Agreement more than one year
+after the cause of action arose. Each party waives its rights to a jury trial in
+any resulting litigation.
diff --git a/framework/modules/c_ZIPExtractionModule/win32/ZipExtractionModule.sln b/framework/modules/c_ZIPExtractionModule/win32/ZipExtractionModule.sln
new file mode 100644
index 0000000000000000000000000000000000000000..8e1ca03e167b546772b76266157622fed5bb92ab
--- /dev/null
+++ b/framework/modules/c_ZIPExtractionModule/win32/ZipExtractionModule.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual C++ Express 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZipExtractionModule", "ZipExtractionModule.vcxproj", "{506823BC-AE48-4827-B72A-BA4C9E1E4670}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{506823BC-AE48-4827-B72A-BA4C9E1E4670}.Debug|Win32.ActiveCfg = Debug|Win32
+		{506823BC-AE48-4827-B72A-BA4C9E1E4670}.Debug|Win32.Build.0 = Debug|Win32
+		{506823BC-AE48-4827-B72A-BA4C9E1E4670}.Release|Win32.ActiveCfg = Release|Win32
+		{506823BC-AE48-4827-B72A-BA4C9E1E4670}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/framework/modules/c_ZIPExtractionModule/win32/ZipExtractionModule.vcxproj b/framework/modules/c_ZIPExtractionModule/win32/ZipExtractionModule.vcxproj
new file mode 100755
index 0000000000000000000000000000000000000000..028f2b95a20b81cf457d066a76e50c939c37e3a1
--- /dev/null
+++ b/framework/modules/c_ZIPExtractionModule/win32/ZipExtractionModule.vcxproj
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{506823BC-AE48-4827-B72A-BA4C9E1E4670}</ProjectGuid>
+    <RootNamespace>SampleZipFileAnalysis</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">tsk$(ProjectName)</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">tsk$(ProjectName)</TargetName>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>$(TSK_HOME);$(TSK_HOME)\framework;$(POCO_HOME)\Foundation\include;$(POCO_HOME)\Util\include;$(POCO_HOME)\Zip\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <MinimalRebuild>true</MinimalRebuild>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>libtskframework.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(TSK_HOME)\framework\msvcpp\framework\$(Configuration);$(POCO_HOME)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+    <PostBuildEvent>
+      <Command>move /Y "$(SolutionDir)$(Configuration)\tsk$(ProjectName).dll" "$(ProjectDir)..\..\..\runtime"
+xcopy "$(POCO_HOME)\bin\PocoZipd.dll" "$(ProjectDir)..\..\..\runtime" /R /Y</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <AdditionalIncludeDirectories>$(TSK_HOME);$(TSK_HOME)\framework;$(POCO_HOME)\Foundation\include;$(POCO_HOME)\Util\include;$(POCO_HOME)\Zip\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>libtskframework.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(TSK_HOME)\framework\msvcpp\framework\$(Configuration);$(POCO_HOME)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+    <PostBuildEvent>
+      <Command>move /Y "$(SolutionDir)$(Configuration)\tsk$(ProjectName).dll" "$(ProjectDir)..\..\..\runtime"
+xcopy "$(POCO_HOME)\bin\PocoZip.dll" "$(ProjectDir)..\..\..\runtime" /R /Y</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\ZipExtractionModule.cpp" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/framework/win32/Makefile b/framework/msvcpp/Makefile
similarity index 85%
rename from framework/win32/Makefile
rename to framework/msvcpp/Makefile
index 5be811baf6c82c11c65322ca5af374ae538f9df3..9de593d39e4041b29ec2677bf375b4764a658848 100755
--- a/framework/win32/Makefile
+++ b/framework/msvcpp/Makefile
@@ -5,7 +5,7 @@ MSBUILD	= msbuild.exe
 
 TSK_SOLN = "$(TSK_HOME)\win32\tsk-win.sln"
 EWF_SOLN = "$(LIBEWF_HOME)\msvscpp\libewf.sln"
-FRMWK_SOLN = "$(TSK_HOME)\framework\win32\framework\framework.sln"
+FRMWK_SOLN = "$(TSK_HOME)\framework\msvcpp\framework\framework.sln"
 POCO_SOLN = "$(POCO_HOME)\Foundation\Foundation_vs100.sln"
 POCO_UTIL_SOLN = "$(POCO_HOME)\Util\Util_vs100.sln"
 POCO_XML_SOLN = "$(POCO_HOME)\XML\XML_vs100.sln"
@@ -19,15 +19,16 @@ POCO_DEBUG_FLAGS = "/property:Configuration=debug_shared"
 
 LOGFILE_FLAGS = "/fileloggerparameters:logfile=$(BUILDLOG);Append;Verbosity=detailed"
 
-all:	framework
+all:	debug
 
 usage:
-    @echo Usage: nmake [poco ^| libewf ^| all_deps ^| framework ^| clean ^| spotless]
+    @echo Usage: nmake [poco ^| libewf ^| all_deps ^| debug ^| release ^| clean ^| spotless]
     @echo "   poco: Builds debug and release versions of Poco libraries"
     @echo "   libewf: Builds release version of libewf_dll and zlib"
     @echo "   all_deps: Builds all dependencies (i.e. Poco, libewf and zlib)"
-    @echo "   framework: Cleans debug and release versions of libtsk and libtskframework"
-    @echo "   clean: Cleans libtsk and libtskframework"
+    @echo "   release: Builds release versions of libtsk and libtskframework"
+    @echo "   debug: Builds debug versions of libtsk and libtskframework"
+    @echo "   clean: Cleans debug and release versions of libtsk and libtskframework"
     @echo "   spotless: Cleans libtsk, libtskframework, libewf, zlib and Poco."
 
 poco:
@@ -47,12 +48,14 @@ libewf:
     
 all_deps: poco libewf
 
-framework: all_deps
-	$(MSBUILD)  $(TSK_SOLN) /target:libtsk $(DEBUG_FLAGS) $(LOGFILE_FLAGS)
-	$(MSBUILD)  $(FRMWK_SOLN) $(DEBUG_FLAGS) $(LOGFILE_FLAGS)
+release: all_deps
 	$(MSBUILD)  $(TSK_SOLN) /target:libtsk $(RELEASE_FLAGS) $(LOGFILE_FLAGS)
 	$(MSBUILD)  $(FRMWK_SOLN) $(RELEASE_FLAGS) $(LOGFILE_FLAGS)
 
+debug: all_deps
+	$(MSBUILD)  $(TSK_SOLN) /target:libtsk $(DEBUG_FLAGS) $(LOGFILE_FLAGS)
+	$(MSBUILD)  $(FRMWK_SOLN) $(DEBUG_FLAGS) $(LOGFILE_FLAGS)
+
 clean:
     $(RM) $(BUILDLOG)
 	$(MSBUILD) $(TSK_SOLN) /target:Clean $(DEBUG_FLAGS)
diff --git a/framework/win32/build-deps.pl b/framework/msvcpp/build-deps.pl
similarity index 100%
rename from framework/win32/build-deps.pl
rename to framework/msvcpp/build-deps.pl
diff --git a/framework/win32/framework/framework.sln b/framework/msvcpp/framework/framework.sln
similarity index 83%
rename from framework/win32/framework/framework.sln
rename to framework/msvcpp/framework/framework.sln
index 821c1ca6300a9f9bd2d2a93be14f4d2b8e6d3bba..3ba0bf016754f7e4155da48d9dbf3f9836df8ba0 100755
--- a/framework/win32/framework/framework.sln
+++ b/framework/msvcpp/framework/framework.sln
@@ -3,53 +3,53 @@ Microsoft Visual Studio Solution File, Format Version 11.00
 # Visual C++ Express 2010
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtskframework", "framework.vcxproj", "{F791B16A-1489-4526-9FFF-CB481CEC5414}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EntropyModule", "..\..\TskModules\c_EntropyModule\win32\EntropyModule.vcxproj", "{00E3B0EE-B612-433A-A43E-1CE0B3DE1015}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EntropyModule", "..\..\modules\c_EntropyModule\win32\EntropyModule.vcxproj", "{00E3B0EE-B612-433A-A43E-1CE0B3DE1015}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HashCalcModule", "..\..\TskModules\c_HashCalcModule\win32\HashCalcModule.vcxproj", "{46CD18AC-3A1C-405D-B39F-F86BA0FD1820}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HashCalcModule", "..\..\modules\c_HashCalcModule\win32\HashCalcModule.vcxproj", "{46CD18AC-3A1C-405D-B39F-F86BA0FD1820}"
 	ProjectSection(ProjectDependencies) = postProject
 		{F791B16A-1489-4526-9FFF-CB481CEC5414} = {F791B16A-1489-4526-9FFF-CB481CEC5414}
 	EndProjectSection
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "InterestingFilesModule", "..\..\TskModules\c_InterestingFilesModule\win32\InterestingFilesModule.vcxproj", "{8F956113-11D2-4288-985D-53CBF84648E0}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "InterestingFilesModule", "..\..\modules\c_InterestingFilesModule\win32\InterestingFilesModule.vcxproj", "{8F956113-11D2-4288-985D-53CBF84648E0}"
 	ProjectSection(ProjectDependencies) = postProject
 		{F791B16A-1489-4526-9FFF-CB481CEC5414} = {F791B16A-1489-4526-9FFF-CB481CEC5414}
 	EndProjectSection
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RegRipperModule", "..\..\TskModules\c_RegRipperModule\win32\RegRipperModule.vcxproj", "{4DD49717-8C15-4E07-8C18-D47A093184AA}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RegRipperModule", "..\..\modules\c_RegRipperModule\win32\RegRipperModule.vcxproj", "{4DD49717-8C15-4E07-8C18-D47A093184AA}"
 	ProjectSection(ProjectDependencies) = postProject
 		{F791B16A-1489-4526-9FFF-CB481CEC5414} = {F791B16A-1489-4526-9FFF-CB481CEC5414}
 	EndProjectSection
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SaveInterestingFilesModule", "..\..\TskModules\c_SaveInterestingFilesModule\win32\SaveInterestingFilesModule.vcxproj", "{39CDF492-FCD0-42E8-B2E2-42D2E0F6D2CC}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SaveInterestingFilesModule", "..\..\modules\c_SaveInterestingFilesModule\win32\SaveInterestingFilesModule.vcxproj", "{39CDF492-FCD0-42E8-B2E2-42D2E0F6D2CC}"
 	ProjectSection(ProjectDependencies) = postProject
 		{F791B16A-1489-4526-9FFF-CB481CEC5414} = {F791B16A-1489-4526-9FFF-CB481CEC5414}
 	EndProjectSection
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TskHashLookupModule", "..\..\TskModules\c_TskHashLookupModule\win32\TskHashLookupModule.vcxproj", "{430B8E55-C5F4-4936-A0C7-DABD8B34788A}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TskHashLookupModule", "..\..\modules\c_TskHashLookupModule\win32\TskHashLookupModule.vcxproj", "{430B8E55-C5F4-4936-A0C7-DABD8B34788A}"
 	ProjectSection(ProjectDependencies) = postProject
 		{F791B16A-1489-4526-9FFF-CB481CEC5414} = {F791B16A-1489-4526-9FFF-CB481CEC5414}
 	EndProjectSection
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZipExtractionModule", "..\..\TskModules\c_ZIPExtractionModule\win32\ZipExtractionModule.vcxproj", "{506823BC-AE48-4827-B72A-BA4C9E1E4670}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZipExtractionModule", "..\..\modules\c_ZIPExtractionModule\win32\ZipExtractionModule.vcxproj", "{506823BC-AE48-4827-B72A-BA4C9E1E4670}"
 	ProjectSection(ProjectDependencies) = postProject
 		{F791B16A-1489-4526-9FFF-CB481CEC5414} = {F791B16A-1489-4526-9FFF-CB481CEC5414}
 	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tsk_analyzeimg", "..\tsk_analyzeimg\tsk_analyzeimg.vcxproj", "{13BD0806-028E-42F1-A91D-5128565A9717}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SummaryReportModule", "..\..\TskModules\c_SummaryReportModule\win32\SummaryReportModule.vcxproj", "{1CA42FA6-A110-4BB1-B7D6-C0AB6C4FA1AD}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SummaryReportModule", "..\..\modules\c_SummaryReportModule\win32\SummaryReportModule.vcxproj", "{1CA42FA6-A110-4BB1-B7D6-C0AB6C4FA1AD}"
 	ProjectSection(ProjectDependencies) = postProject
 		{F791B16A-1489-4526-9FFF-CB481CEC5414} = {F791B16A-1489-4526-9FFF-CB481CEC5414}
 	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tsk_validatepipeline", "..\tsk_validatepipeline\tsk_validatepipeline.vcxproj", "{352C3C04-1F31-4138-97A6-1DC6EC5FD379}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FileTypeSigModule", "..\..\TskModules\c_FileTypeSigModule\win32\FileTypeSigModule.vcxproj", "{18EC105E-A0F9-43D2-B66E-287828E61E7D}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FileTypeSigModule", "..\..\modules\c_FileTypeSigModule\win32\FileTypeSigModule.vcxproj", "{18EC105E-A0F9-43D2-B66E-287828E61E7D}"
 	ProjectSection(ProjectDependencies) = postProject
 		{F791B16A-1489-4526-9FFF-CB481CEC5414} = {F791B16A-1489-4526-9FFF-CB481CEC5414}
 	EndProjectSection
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LibExifModule", "..\..\TskModules\c_LibExifModule\win32\LibExifModule.vcxproj", "{A4B7B046-EA19-4179-9712-8A7B085443D8}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LibExifModule", "..\..\modules\c_LibExifModule\win32\LibExifModule.vcxproj", "{A4B7B046-EA19-4179-9712-8A7B085443D8}"
 	ProjectSection(ProjectDependencies) = postProject
 		{F791B16A-1489-4526-9FFF-CB481CEC5414} = {F791B16A-1489-4526-9FFF-CB481CEC5414}
 	EndProjectSection
diff --git a/framework/win32/framework/framework.vcproj b/framework/msvcpp/framework/framework.vcproj
similarity index 60%
rename from framework/win32/framework/framework.vcproj
rename to framework/msvcpp/framework/framework.vcproj
index b3ccdf6e125ed801449488c605c86714cd252e38..173a3b1f414560644c6a9aac347c33235cb05c2e 100755
--- a/framework/win32/framework/framework.vcproj
+++ b/framework/msvcpp/framework/framework.vcproj
@@ -172,135 +172,135 @@
 			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
 			>
 			<File
-				RelativePath="..\..\Services\Log.cpp"
+				RelativePath="..\..\tsk\framework\services\Log.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Services\Scheduler.cpp"
+				RelativePath="..\..\tsk\framework\services\Scheduler.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Utilities\SectorRuns.cpp"
+				RelativePath="..\..\tsk\framework\utilities\SectorRuns.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Extraction\TskAutoImpl.cpp"
+				RelativePath="..\..\tsk\framework\extraction\TskAutoImpl.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Services\TskBlackboard.cpp"
+				RelativePath="..\..\tsk\framework\services\TskBlackboard.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Services\TskBlackboardArtifact.cpp"
+				RelativePath="..\..\tsk\framework\services\TskBlackboardArtifact.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Services\TskBlackboardAttribute.cpp"
+				RelativePath="..\..\tsk\framework\services\TskBlackboardAttribute.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Extraction\TskCarveExtractScalpel.cpp"
+				RelativePath="..\..\tsk\framework\extraction\TskCarveExtractScalpel.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Extraction\TskCarvePrepSectorConcat.cpp"
+				RelativePath="..\..\tsk\framework\extraction\TskCarvePrepSectorConcat.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Services\TskDBBlackboard.cpp"
+				RelativePath="..\..\tsk\framework\services\TskDBBlackboard.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Utilities\TskException.cpp"
+				RelativePath="..\..\tsk\framework\utilities\TskException.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Pipeline\TskExecutableModule.cpp"
+				RelativePath="..\..\tsk\framework\pipeline\TskExecutableModule.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\File\TskFile.cpp"
+				RelativePath="..\..\tsk\framework\file\TskFile.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Pipeline\TskFileAnalysisPipeline.cpp"
+				RelativePath="..\..\tsk\framework\pipeline\TskFileAnalysisPipeline.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Pipeline\TskFileAnalysisPluginModule.cpp"
+				RelativePath="..\..\tsk\framework\pipeline\TskFileAnalysisPluginModule.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\File\TskFileManagerImpl.cpp"
+				RelativePath="..\..\tsk\framework\file\TskFileManagerImpl.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\File\TskFileTsk.cpp"
+				RelativePath="..\..\tsk\framework\file\TskFileTsk.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Extraction\TskImageFile.cpp"
+				RelativePath="..\..\tsk\framework\extraction\TskImageFile.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Extraction\TskImageFileTsk.cpp"
+				RelativePath="..\..\tsk\framework\extraction\TskImageFileTsk.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Services\TskImgDB.cpp"
+				RelativePath="..\..\tsk\framework\services\TskImgDB.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Services\TskImgDBSqlite.cpp"
+				RelativePath="..\..\tsk\framework\services\TskImgDBSqlite.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Pipeline\TskModule.cpp"
+				RelativePath="..\..\tsk\framework\pipeline\TskModule.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Pipeline\TskPipeline.cpp"
+				RelativePath="..\..\tsk\framework\pipeline\TskPipeline.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Pipeline\TskPipelineManager.cpp"
+				RelativePath="..\..\tsk\framework\pipeline\TskPipelineManager.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Pipeline\TskPluginModule.cpp"
+				RelativePath="..\..\tsk\framework\pipeline\TskPluginModule.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Pipeline\TskReportPipeline.cpp"
+				RelativePath="..\..\tsk\framework\pipeline\TskReportPipeline.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Pipeline\TskReportPluginModule.cpp"
+				RelativePath="..\..\tsk\framework\pipeline\TskReportPluginModule.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Services\TskSchedulerQueue.cpp"
+				RelativePath="..\..\tsk\framework\services\TskSchedulerQueue.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Services\TskServices.cpp"
+				RelativePath="..\..\tsk\framework\services\TskServices.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Services\TskSystemProperties.cpp"
+				RelativePath="..\..\tsk\framework\services\TskSystemProperties.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Services\TskSystemPropertiesImpl.cpp"
+				RelativePath="..\..\tsk\framework\services\TskSystemPropertiesImpl.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Utilities\TskUtilities.cpp"
+				RelativePath="..\..\tsk\framework\utilities\TskUtilities.cpp"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Utilities\UnallocRun.cpp"
+				RelativePath="..\..\tsk\framework\utilities\UnallocRun.cpp"
 				>
 			</File>
 		</Filter>
@@ -310,155 +310,155 @@
 			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
 			<File
-				RelativePath="..\..\Extraction\CarveExtract.h"
+				RelativePath="..\..\tsk\framework\extraction\CarveExtract.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Extraction\CarvePrep.h"
+				RelativePath="..\..\tsk\framework\extraction\CarvePrep.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\framework.h"
+				RelativePath="..\..\tsk\framework\framework.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\framework_i.h"
+				RelativePath="..\..\tsk\framework\framework_i.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Services\Log.h"
+				RelativePath="..\..\tsk\framework\services\Log.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Services\Scheduler.h"
+				RelativePath="..\..\tsk\framework\services\Scheduler.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Utilities\SectorRuns.h"
+				RelativePath="..\..\tsk\framework\utilities\SectorRuns.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Extraction\TskAutoImpl.h"
+				RelativePath="..\..\tsk\framework\extraction\TskAutoImpl.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Services\TskBlackboard.h"
+				RelativePath="..\..\tsk\framework\services\TskBlackboard.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Services\TskBlackboardArtifact.h"
+				RelativePath="..\..\tsk\framework\services\TskBlackboardArtifact.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Services\TskBlackBoardAttribute.h"
+				RelativePath="..\..\tsk\framework\services\TskBlackBoardAttribute.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Extraction\TskCarveExtractScalpel.h"
+				RelativePath="..\..\tsk\framework\extraction\TskCarveExtractScalpel.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Extraction\TskCarvePrepSectorConcat.h"
+				RelativePath="..\..\tsk\framework\extraction\TskCarvePrepSectorConcat.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Services\TskDBBlackboard.h"
+				RelativePath="..\..\tsk\framework\services\TskDBBlackboard.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Utilities\TskException.h"
+				RelativePath="..\..\tsk\framework\utilities\TskException.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Pipeline\TskExecutableModule.h"
+				RelativePath="..\..\tsk\framework\pipeline\TskExecutableModule.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\File\TskFile.h"
+				RelativePath="..\..\tsk\framework\file\TskFile.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Pipeline\TskFileAnalysisPipeline.h"
+				RelativePath="..\..\tsk\framework\pipeline\TskFileAnalysisPipeline.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Pipeline\TskFileAnalysisPluginModule.h"
+				RelativePath="..\..\tsk\framework\pipeline\TskFileAnalysisPluginModule.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\File\TskFileManager.h"
+				RelativePath="..\..\tsk\framework\file\TskFileManager.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\File\TskFileManagerImpl.h"
+				RelativePath="..\..\tsk\framework\file\TskFileManagerImpl.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\File\TskFileTsk.h"
+				RelativePath="..\..\tsk\framework\file\TskFileTsk.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Extraction\TskImageFile.h"
+				RelativePath="..\..\tsk\framework\extraction\TskImageFile.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Extraction\TskImageFileTsk.h"
+				RelativePath="..\..\tsk\framework\extraction\TskImageFileTsk.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Services\TskImgDB.h"
+				RelativePath="..\..\tsk\framework\services\TskImgDB.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Services\TskImgDBSqlite.h"
+				RelativePath="..\..\tsk\framework\services\TskImgDBSqlite.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Pipeline\TskModule.h"
+				RelativePath="..\..\tsk\framework\pipeline\TskModule.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Pipeline\TskPipeline.h"
+				RelativePath="..\..\tsk\framework\pipeline\TskPipeline.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Pipeline\TskPipelineManager.h"
+				RelativePath="..\..\tsk\framework\pipeline\TskPipelineManager.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Pipeline\TskPluginModule.h"
+				RelativePath="..\..\tsk\framework\pipeline\TskPluginModule.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Pipeline\TskReportPipeline.h"
+				RelativePath="..\..\tsk\framework\pipeline\TskReportPipeline.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Pipeline\TskReportPluginModule.h"
+				RelativePath="..\..\tsk\framework\pipeline\TskReportPluginModule.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Services\TskSchedulerQueue.h"
+				RelativePath="..\..\tsk\framework\services\TskSchedulerQueue.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Services\TskServices.h"
+				RelativePath="..\..\tsk\framework\services\TskServices.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Services\TskSystemProperties.h"
+				RelativePath="..\..\tsk\framework\services\TskSystemProperties.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Services\TskSystemPropertiesImpl.h"
+				RelativePath="..\..\tsk\framework\services\TskSystemPropertiesImpl.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Utilities\TskUtilities.h"
+				RelativePath="..\..\tsk\framework\utilities\TskUtilities.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\Utilities\UnallocRun.h"
+				RelativePath="..\..\tsk\framework\utilities\UnallocRun.h"
 				>
 			</File>
 		</Filter>
diff --git a/framework/msvcpp/framework/framework.vcxproj b/framework/msvcpp/framework/framework.vcxproj
new file mode 100755
index 0000000000000000000000000000000000000000..4240360f58a81e7be774cb33bf0ed8d77d05191c
--- /dev/null
+++ b/framework/msvcpp/framework/framework.vcxproj
@@ -0,0 +1,195 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectName>libtskframework</ProjectName>
+    <ProjectGuid>{F791B16A-1489-4526-9FFF-CB481CEC5414}</ProjectGuid>
+    <RootNamespace>framework</RootNamespace>
+    <Keyword>Win32Proj</Keyword>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>$(ProjectDir)\..\..;$(ProjectDir)\..\..\..;$(POCO_HOME)\Foundation\include;$(POCO_HOME)\Util\include;$(POCO_HOME)\XML\include;$(POCO_HOME)\Net\include;$(LIBEWF_HOME)\common;$(LIBEWF_HOME)\include;$(ProjectDir)\..\..\..\tsk\img;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;TSK_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MinimalRebuild>true</MinimalRebuild>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>libewf.lib;libtsk.lib;ws2_32.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(POCO_HOME)\lib;$(ProjectDir)\..\..\..\win32\Debug;$(LIBEWF_HOME)\msvscpp\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ImportLibrary>$(OutDir)$(ProjectName).lib</ImportLibrary>
+    </Link>
+    <PostBuildEvent>
+      <Command>mkdir "$(ProjectDir)..\..\runtime"
+move /Y "$(OutDir)$(TargetName)$(TargetExt)" "$(ProjectDir)..\..\runtime"
+xcopy "$(POCO_HOME)\bin\PocoFoundationd.dll" "$(ProjectDir)..\..\runtime" /R /Y
+xcopy "$(POCO_HOME)\bin\PocoNetd.dll" "$(ProjectDir)..\..\runtime" /R /Y
+xcopy "$(POCO_HOME)\bin\PocoUtild.dll" "$(ProjectDir)..\..\runtime" /R /Y
+xcopy "$(POCO_HOME)\bin\PocoXMLd.dll" "$(ProjectDir)..\..\runtime" /R /Y
+xcopy "$(LIBEWF_HOME)\msvscpp\Release\libewf.dll" "$(ProjectDir)..\..\runtime" /R /Y
+xcopy "$(LIBEWF_HOME)\msvscpp\Release\zlib.dll" "$(ProjectDir)..\..\runtime" /R /Y
+del "$(ProjectDir)..\..\runtime\framework_config.xml"
+xcopy "$(ProjectDir)..\..\SampleConfig\framework_config_win32dev.xml" "$(ProjectDir)..\..\runtime" /R /Y
+ren "$(ProjectDir)..\..\runtime\framework_config_win32dev.xml" framework_config.xml</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <AdditionalIncludeDirectories>$(ProjectDir)\..\..;$(ProjectDir)\..\..\..;$(POCO_HOME)\Foundation\include;$(POCO_HOME)\Util\include;$(POCO_HOME)\XML\include;$(POCO_HOME)\Net\include;$(LIBEWF_HOME)\common;$(LIBEWF_HOME)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;TSK_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>libewf.lib;libtsk.lib;ws2_32.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(POCO_HOME)\lib;$(ProjectDir)\..\..\..\win32\Release;$(LIBEWF_HOME)\msvscpp\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ImportLibrary>$(OutDir)$(ProjectName).lib</ImportLibrary>
+    </Link>
+    <PostBuildEvent>
+      <Command>mkdir "$(ProjectDir)..\..\runtime"
+move /Y "$(OutDir)$(TargetName)$(TargetExt)" "$(ProjectDir)..\..\runtime"
+xcopy "$(POCO_HOME)\bin\PocoFoundation.dll" "$(ProjectDir)..\..\runtime" /R /Y
+xcopy "$(POCO_HOME)\bin\PocoNet.dll" "$(ProjectDir)..\..\runtime" /R /Y
+xcopy "$(POCO_HOME)\bin\PocoUtil.dll" "$(ProjectDir)..\..\runtime" /R /Y
+xcopy "$(POCO_HOME)\bin\PocoXML.dll" "$(ProjectDir)..\..\runtime" /R /Y
+xcopy "$(LIBEWF_HOME)\msvscpp\Release\libewf.dll" "$(ProjectDir)..\..\runtime" /R /Y
+xcopy "$(LIBEWF_HOME)\msvscpp\Release\zlib.dll" "$(ProjectDir)..\..\runtime" /R /Y
+del "$(ProjectDir)..\..\runtime\framework_config.xml"
+xcopy "$(ProjectDir)..\..\SampleConfig\framework_config_win32dev.xml" "$(ProjectDir)..\..\runtime" /R /Y
+ren "$(ProjectDir)..\..\runtime\framework_config_win32dev.xml" framework_config.xml</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\tsk\framework\extraction\TskExtract.cpp" />
+    <ClCompile Include="..\..\tsk\framework\extraction\TskL01Extract.cpp" />
+    <ClCompile Include="..\..\tsk\framework\services\Log.cpp" />
+    <ClCompile Include="..\..\tsk\framework\services\Scheduler.cpp" />
+    <ClCompile Include="..\..\tsk\framework\utilities\SectorRuns.cpp" />
+    <ClCompile Include="..\..\tsk\framework\extraction\TskAutoImpl.cpp" />
+    <ClCompile Include="..\..\tsk\framework\services\TskBlackboard.cpp" />
+    <ClCompile Include="..\..\tsk\framework\services\TskBlackboardArtifact.cpp" />
+    <ClCompile Include="..\..\tsk\framework\services\TskBlackboardAttribute.cpp" />
+    <ClCompile Include="..\..\tsk\framework\extraction\TskCarveExtractScalpel.cpp" />
+    <ClCompile Include="..\..\tsk\framework\extraction\TskCarvePrepSectorConcat.cpp" />
+    <ClCompile Include="..\..\tsk\framework\services\TskDBBlackboard.cpp" />
+    <ClCompile Include="..\..\tsk\framework\utilities\TskException.cpp" />
+    <ClCompile Include="..\..\tsk\framework\pipeline\TskExecutableModule.cpp" />
+    <ClCompile Include="..\..\tsk\framework\file\TskFile.cpp" />
+    <ClCompile Include="..\..\tsk\framework\pipeline\TskFileAnalysisPipeline.cpp" />
+    <ClCompile Include="..\..\tsk\framework\pipeline\TskFileAnalysisPluginModule.cpp" />
+    <ClCompile Include="..\..\tsk\framework\file\TskFileManagerImpl.cpp" />
+    <ClCompile Include="..\..\tsk\framework\file\TskFileTsk.cpp" />
+    <ClCompile Include="..\..\tsk\framework\extraction\TskImageFile.cpp" />
+    <ClCompile Include="..\..\tsk\framework\extraction\TskImageFileTsk.cpp" />
+    <ClCompile Include="..\..\tsk\framework\services\TskImgDB.cpp" />
+    <ClCompile Include="..\..\tsk\framework\services\TskImgDBSqlite.cpp" />
+    <ClCompile Include="..\..\tsk\framework\pipeline\TskModule.cpp" />
+    <ClCompile Include="..\..\tsk\framework\pipeline\TskPipeline.cpp" />
+    <ClCompile Include="..\..\tsk\framework\pipeline\TskPipelineManager.cpp" />
+    <ClCompile Include="..\..\tsk\framework\pipeline\TskPluginModule.cpp" />
+    <ClCompile Include="..\..\tsk\framework\pipeline\TskReportPipeline.cpp" />
+    <ClCompile Include="..\..\tsk\framework\pipeline\TskReportPluginModule.cpp" />
+    <ClCompile Include="..\..\tsk\framework\services\TskSchedulerQueue.cpp" />
+    <ClCompile Include="..\..\tsk\framework\services\TskServices.cpp" />
+    <ClCompile Include="..\..\tsk\framework\services\TskSystemProperties.cpp" />
+    <ClCompile Include="..\..\tsk\framework\services\TskSystemPropertiesImpl.cpp" />
+    <ClCompile Include="..\..\tsk\framework\utilities\TskUtilities.cpp" />
+    <ClCompile Include="..\..\tsk\framework\utilities\UnallocRun.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\tsk\framework\extraction\CarveExtract.h" />
+    <ClInclude Include="..\..\tsk\framework\extraction\CarvePrep.h" />
+    <ClInclude Include="..\..\tsk\framework\extraction\TskExtract.h" />
+    <ClInclude Include="..\..\tsk\framework\extraction\TskL01Extract.h" />
+    <ClInclude Include="..\..\tsk\framework\framework.h" />
+    <ClInclude Include="..\..\tsk\framework\framework_i.h" />
+    <ClInclude Include="..\..\tsk\framework\services\Log.h" />
+    <ClInclude Include="..\..\tsk\framework\services\Scheduler.h" />
+    <ClInclude Include="..\..\tsk\framework\TskVersionInfo.h" />
+    <ClInclude Include="..\..\tsk\framework\utilities\SectorRuns.h" />
+    <ClInclude Include="..\..\tsk\framework\extraction\TskAutoImpl.h" />
+    <ClInclude Include="..\..\tsk\framework\services\TskBlackboard.h" />
+    <ClInclude Include="..\..\tsk\framework\services\TskBlackboardArtifact.h" />
+    <ClInclude Include="..\..\tsk\framework\services\TskBlackBoardAttribute.h" />
+    <ClInclude Include="..\..\tsk\framework\extraction\TskCarveExtractScalpel.h" />
+    <ClInclude Include="..\..\tsk\framework\extraction\TskCarvePrepSectorConcat.h" />
+    <ClInclude Include="..\..\tsk\framework\services\TskDBBlackboard.h" />
+    <ClInclude Include="..\..\tsk\framework\utilities\TskException.h" />
+    <ClInclude Include="..\..\tsk\framework\pipeline\TskExecutableModule.h" />
+    <ClInclude Include="..\..\tsk\framework\file\TskFile.h" />
+    <ClInclude Include="..\..\tsk\framework\pipeline\TskFileAnalysisPipeline.h" />
+    <ClInclude Include="..\..\tsk\framework\pipeline\TskFileAnalysisPluginModule.h" />
+    <ClInclude Include="..\..\tsk\framework\file\TskFileManager.h" />
+    <ClInclude Include="..\..\tsk\framework\file\TskFileManagerImpl.h" />
+    <ClInclude Include="..\..\tsk\framework\file\TskFileTsk.h" />
+    <ClInclude Include="..\..\tsk\framework\extraction\TskImageFile.h" />
+    <ClInclude Include="..\..\tsk\framework\extraction\TskImageFileTsk.h" />
+    <ClInclude Include="..\..\tsk\framework\services\TskImgDB.h" />
+    <ClInclude Include="..\..\tsk\framework\services\TskImgDBSqlite.h" />
+    <ClInclude Include="..\..\tsk\framework\pipeline\TskModule.h" />
+    <ClInclude Include="..\..\tsk\framework\pipeline\TskPipeline.h" />
+    <ClInclude Include="..\..\tsk\framework\pipeline\TskPipelineManager.h" />
+    <ClInclude Include="..\..\tsk\framework\pipeline\TskPluginModule.h" />
+    <ClInclude Include="..\..\tsk\framework\pipeline\TskReportPipeline.h" />
+    <ClInclude Include="..\..\tsk\framework\pipeline\TskReportPluginModule.h" />
+    <ClInclude Include="..\..\tsk\framework\services\TskSchedulerQueue.h" />
+    <ClInclude Include="..\..\tsk\framework\services\TskServices.h" />
+    <ClInclude Include="..\..\tsk\framework\services\TskSystemProperties.h" />
+    <ClInclude Include="..\..\tsk\framework\services\TskSystemPropertiesImpl.h" />
+    <ClInclude Include="..\..\tsk\framework\utilities\TskUtilities.h" />
+    <ClInclude Include="..\..\tsk\framework\utilities\UnallocRun.h" />
+    <ClInclude Include="..\..\tsk\framework\utilities\TskModuleDev.h" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/framework/msvcpp/framework/framework.vcxproj.filters b/framework/msvcpp/framework/framework.vcxproj.filters
new file mode 100755
index 0000000000000000000000000000000000000000..4d38be4d485d5a083d5776d2f6cc50d2dde0e395
--- /dev/null
+++ b/framework/msvcpp/framework/framework.vcxproj.filters
@@ -0,0 +1,248 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\tsk\framework\services\Log.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\services\Scheduler.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\utilities\SectorRuns.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\extraction\TskAutoImpl.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\services\TskBlackboard.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\services\TskBlackboardArtifact.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\services\TskBlackboardAttribute.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\extraction\TskCarveExtractScalpel.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\extraction\TskCarvePrepSectorConcat.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\services\TskDBBlackboard.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\utilities\TskException.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\pipeline\TskExecutableModule.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\file\TskFile.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\pipeline\TskFileAnalysisPipeline.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\pipeline\TskFileAnalysisPluginModule.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\file\TskFileManagerImpl.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\file\TskFileTsk.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\extraction\TskImageFile.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\extraction\TskImageFileTsk.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\services\TskImgDB.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\services\TskImgDBSqlite.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\pipeline\TskModule.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\pipeline\TskPipeline.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\pipeline\TskPipelineManager.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\pipeline\TskPluginModule.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\pipeline\TskReportPipeline.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\pipeline\TskReportPluginModule.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\services\TskSchedulerQueue.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\services\TskServices.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\services\TskSystemProperties.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\services\TskSystemPropertiesImpl.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\utilities\TskUtilities.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\utilities\UnallocRun.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\extraction\TskExtract.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\framework\extraction\TskL01Extract.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\tsk\framework\extraction\CarveExtract.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\extraction\CarvePrep.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\framework.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\framework_i.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\services\Log.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\services\Scheduler.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\utilities\SectorRuns.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\extraction\TskAutoImpl.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\services\TskBlackboard.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\services\TskBlackboardArtifact.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\services\TskBlackBoardAttribute.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\extraction\TskCarveExtractScalpel.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\extraction\TskCarvePrepSectorConcat.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\services\TskDBBlackboard.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\utilities\TskException.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\pipeline\TskExecutableModule.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\file\TskFile.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\pipeline\TskFileAnalysisPipeline.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\pipeline\TskFileAnalysisPluginModule.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\file\TskFileManager.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\file\TskFileManagerImpl.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\file\TskFileTsk.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\extraction\TskImageFile.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\extraction\TskImageFileTsk.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\services\TskImgDB.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\services\TskImgDBSqlite.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\pipeline\TskModule.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\pipeline\TskPipeline.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\pipeline\TskPipelineManager.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\pipeline\TskPluginModule.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\pipeline\TskReportPipeline.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\pipeline\TskReportPluginModule.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\services\TskSchedulerQueue.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\services\TskServices.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\services\TskSystemProperties.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\services\TskSystemPropertiesImpl.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\utilities\TskUtilities.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\utilities\UnallocRun.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\utilities\TskModuleDev.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\TskVersionInfo.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\extraction\TskExtract.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\tsk\framework\extraction\TskL01Extract.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/framework/win32/tsk_analyzeimg/tsk_analyzeimg.vcproj b/framework/msvcpp/tsk_analyzeimg/tsk_analyzeimg.vcproj
similarity index 100%
rename from framework/win32/tsk_analyzeimg/tsk_analyzeimg.vcproj
rename to framework/msvcpp/tsk_analyzeimg/tsk_analyzeimg.vcproj
diff --git a/framework/win32/tsk_analyzeimg/tsk_analyzeimg.vcxproj b/framework/msvcpp/tsk_analyzeimg/tsk_analyzeimg.vcxproj
similarity index 92%
rename from framework/win32/tsk_analyzeimg/tsk_analyzeimg.vcxproj
rename to framework/msvcpp/tsk_analyzeimg/tsk_analyzeimg.vcxproj
index 9c93cc8676ac89b03c0fd727d257192e2d827e79..fc639ac2e4efcb031ef62463002be0f14257fc3a 100755
--- a/framework/win32/tsk_analyzeimg/tsk_analyzeimg.vcxproj
+++ b/framework/msvcpp/tsk_analyzeimg/tsk_analyzeimg.vcxproj
@@ -64,6 +64,9 @@
       <SubSystem>Console</SubSystem>
       <TargetMachine>MachineX86</TargetMachine>
     </Link>
+    <PostBuildEvent>
+      <Command>move /Y "$(SolutionDir)$(Configuration)\$(ProjectName).exe" "$(ProjectDir)..\..\runtime"</Command>
+    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
@@ -87,9 +90,12 @@
       <EnableCOMDATFolding>true</EnableCOMDATFolding>
       <TargetMachine>MachineX86</TargetMachine>
     </Link>
+    <PostBuildEvent>
+      <Command>move /Y "$(SolutionDir)$(Configuration)\$(ProjectName).exe" "$(ProjectDir)..\..\runtime"</Command>
+    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\tsk_analyzeimg\tsk_analyzeimg.cpp" />
+    <ClCompile Include="..\..\tools\tsk_analyzeimg\tsk_analyzeimg.cpp" />
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\framework\framework.vcxproj">
diff --git a/framework/win32/tsk_analyzeimg/tsk_analyzeimg.vcxproj.filters b/framework/msvcpp/tsk_analyzeimg/tsk_analyzeimg.vcxproj.filters
similarity index 84%
rename from framework/win32/tsk_analyzeimg/tsk_analyzeimg.vcxproj.filters
rename to framework/msvcpp/tsk_analyzeimg/tsk_analyzeimg.vcxproj.filters
index e1ed32a2577f1164b32dc166f0a37091275bad0f..94e3f41cb91b273c2e479ad60dd2cc3ef015e399 100755
--- a/framework/win32/tsk_analyzeimg/tsk_analyzeimg.vcxproj.filters
+++ b/framework/msvcpp/tsk_analyzeimg/tsk_analyzeimg.vcxproj.filters
@@ -7,7 +7,7 @@
     </Filter>
   </ItemGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\tsk_analyzeimg\tsk_analyzeimg.cpp">
+    <ClCompile Include="..\..\tools\tsk_analyzeimg\tsk_analyzeimg.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
   </ItemGroup>
diff --git a/framework/win32/tsk_validatepipeline/tsk_validatepipeline.vcproj b/framework/msvcpp/tsk_validatepipeline/tsk_validatepipeline.vcproj
similarity index 100%
rename from framework/win32/tsk_validatepipeline/tsk_validatepipeline.vcproj
rename to framework/msvcpp/tsk_validatepipeline/tsk_validatepipeline.vcproj
diff --git a/framework/win32/tsk_validatepipeline/tsk_validatepipeline.vcxproj b/framework/msvcpp/tsk_validatepipeline/tsk_validatepipeline.vcxproj
similarity index 86%
rename from framework/win32/tsk_validatepipeline/tsk_validatepipeline.vcxproj
rename to framework/msvcpp/tsk_validatepipeline/tsk_validatepipeline.vcxproj
index 6a0cdaf921b8c43945b6f251e24bb1a898de023d..4953dcb773895e8ea45a0dbe59ef6289a3845d66 100755
--- a/framework/win32/tsk_validatepipeline/tsk_validatepipeline.vcxproj
+++ b/framework/msvcpp/tsk_validatepipeline/tsk_validatepipeline.vcxproj
@@ -59,11 +59,14 @@
     </ClCompile>
     <Link>
       <AdditionalDependencies>libtskframework.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>$(TSK_HOME)\framework\win32\framework\$(Configuration);$(POCO_HOME)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalLibraryDirectories>$(TSK_HOME)\framework\msvcpp\framework\$(Configuration);$(POCO_HOME)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Console</SubSystem>
       <TargetMachine>MachineX86</TargetMachine>
     </Link>
+    <PostBuildEvent>
+      <Command>move /Y "$(SolutionDir)$(Configuration)\$(ProjectName).exe" "$(ProjectDir)..\..\runtime"</Command>
+    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
@@ -80,16 +83,19 @@
     </ClCompile>
     <Link>
       <AdditionalDependencies>libtskframework.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>$(TSK_HOME)\framework\win32\framework\$(Configuration);$(POCO_HOME)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalLibraryDirectories>$(TSK_HOME)\framework\msvcpp\framework\$(Configuration);$(POCO_HOME)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Console</SubSystem>
       <OptimizeReferences>true</OptimizeReferences>
       <EnableCOMDATFolding>true</EnableCOMDATFolding>
       <TargetMachine>MachineX86</TargetMachine>
     </Link>
+    <PostBuildEvent>
+      <Command>move /Y "$(SolutionDir)$(Configuration)\$(ProjectName).exe" "$(ProjectDir)..\..\runtime"</Command>
+    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\tsk_validatePipeline\tsk_validatePipeline.cpp" />
+    <ClCompile Include="..\..\tools\tsk_validatePipeline\tsk_validatePipeline.cpp" />
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\framework\framework.vcxproj">
diff --git a/framework/win32/tsk_validatepipeline/tsk_validatepipeline.vcxproj.filters b/framework/msvcpp/tsk_validatepipeline/tsk_validatepipeline.vcxproj.filters
similarity index 82%
rename from framework/win32/tsk_validatepipeline/tsk_validatepipeline.vcxproj.filters
rename to framework/msvcpp/tsk_validatepipeline/tsk_validatepipeline.vcxproj.filters
index 2cfe6ed870ed96a238cd8e6409f0076130557f0f..7e5abb7f19ca662ead8dbc5545faef8c2a8e9dc2 100755
--- a/framework/win32/tsk_validatepipeline/tsk_validatepipeline.vcxproj.filters
+++ b/framework/msvcpp/tsk_validatepipeline/tsk_validatepipeline.vcxproj.filters
@@ -7,7 +7,7 @@
     </Filter>
   </ItemGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\tsk_validatePipeline\tsk_validatePipeline.cpp">
+    <ClCompile Include="..\..\tools\tsk_validatePipeline\tsk_validatePipeline.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
   </ItemGroup>
diff --git a/framework/tools/Makefile.am b/framework/tools/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..21246cf8ea21042a0b221e91dd272c9d36a205b4
--- /dev/null
+++ b/framework/tools/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = tsk_analyzeimg tsk_validatepipeline
diff --git a/framework/tools/tsk_analyzeimg/Makefile.am b/framework/tools/tsk_analyzeimg/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..c22d391bc78ccc4a2541bc3ea43d012216f6d506
--- /dev/null
+++ b/framework/tools/tsk_analyzeimg/Makefile.am
@@ -0,0 +1,5 @@
+tsk_analyzeimg_CXXFLAGS = -I.. -I../.. -I../../.. -Wall
+LDADD = ../../tsk/framework/libtskframework.la ../../../tsk/libtsk.la
+
+bin_PROGRAMS = tsk_analyzeimg
+tsk_analyzeimg_SOURCES = tsk_analyzeimg.cpp
diff --git a/framework/tsk_analyzeimg/tsk_analyzeimg.cpp b/framework/tools/tsk_analyzeimg/tsk_analyzeimg.cpp
similarity index 57%
rename from framework/tsk_analyzeimg/tsk_analyzeimg.cpp
rename to framework/tools/tsk_analyzeimg/tsk_analyzeimg.cpp
index 81fe7da42136c499c149b46b2b6296fef2fb9b96..61140bc76a5a9995bba79eba4680b0c7e95c6329 100755
--- a/framework/tsk_analyzeimg/tsk_analyzeimg.cpp
+++ b/framework/tools/tsk_analyzeimg/tsk_analyzeimg.cpp
@@ -13,16 +13,18 @@
 #include <cstdlib>
 #include <string>
 #include <sstream>
-
-#include "tsk3/tsk_tools_i.h" // Needed for tsk_getopt
-#include "framework.h"
-#include "Services/TskSchedulerQueue.h"
-#include "Services/TskSystemPropertiesImpl.h"
-#include "Services/TskImgDBSqlite.h"
-#include "File/TskFileManagerImpl.h"
-#include "Extraction/TskCarvePrepSectorConcat.h"
-#include "Extraction/TskCarveExtractScalpel.h"
-#include "Extraction/TskExtract.h"
+#include <time.h>
+#include <memory>
+
+#include "tsk/tsk_tools_i.h" // Needed for tsk_getopt
+#include "tsk/framework/framework.h"
+#include "tsk/framework/services/TskSchedulerQueue.h"
+#include "tsk/framework/services/TskSystemPropertiesImpl.h"
+#include "tsk/framework/services/TskImgDBSqlite.h"
+#include "tsk/framework/file/TskFileManagerImpl.h"
+#include "tsk/framework/extraction/TskCarvePrepSectorConcat.h"
+#include "tsk/framework/extraction/TskCarveExtractScalpel.h"
+#include "tsk/framework/extraction/TskExtract.h"
 
 #include "Poco/Path.h"
 #include "Poco/File.h"
@@ -30,23 +32,27 @@
 #ifdef TSK_WIN32
 #include <Windows.h>
 #else
-#error "Only Windows is currently supported"
+#include <sys/stat.h>
 #endif
 
 #include "Poco/File.h"
 #include "Poco/UnicodeConverter.h"
 
 static uint8_t 
-makeDir(const TSK_TCHAR *dir) 
+makeDir(const char *dir) 
 {
-#ifdef TSK_WIN32
-    if (CreateDirectoryW(dir, NULL) == 0) {
-        fprintf(stderr, "Error creating directory: %d\n", GetLastError());
+    Poco::File path(dir);
+    try {
+        if (!path.createDirectory()) {
+            fprintf(stderr, "Error creating directory: %s\n", dir);
+            return 1;
+        }
+    } catch (const Poco::Exception &ex) {
+        std::stringstream msg;
+        msg << "Error creating directory: " << dir << " Poco exception: " << ex.displayText();
+        fprintf(stderr, "%s\n", msg.str().c_str());
         return 1;
     }
-#else
-#error Unsupported OS
-#endif
     return 0;
 }
 
@@ -61,7 +67,6 @@ class StderrLog : public Log
     }
 
     ~StderrLog() {
-        Log::~Log();
     }
 
     void log(Channel a_channel, const std::wstring &a_msg)
@@ -82,6 +87,7 @@ usage(const char *program)
     fprintf(stderr, "\t-p pipeline_config_file: Path to XML pipeline config file (overrides pipeline config specified with -c)\n");
     fprintf(stderr, "\t-d outdir: Path to output directory\n");
     fprintf(stderr, "\t-C: Disable carving, overriding framework config file settings\n");
+    fprintf(stderr, "\t-u: Enable unused sector file creation\n");
     fprintf(stderr, "\t-v: Enable verbose mode to get more debug information\n");
     fprintf(stderr, "\t-V: Display the tool version\n");
     fprintf(stderr, "\t-L: Print no error messages to STDERR -- only log them\n");
@@ -93,12 +99,12 @@ int main(int argc, char **argv1)
     TSK_TCHAR **argv;
     extern int OPTIND;
     int ch;
-    struct STAT_STR stat_buf;
-    TSK_TCHAR *pipeline_config = NULL;
-    TSK_TCHAR *framework_config = NULL;
-    std::wstring outDirPath;
+    std::string pipeline_config;
+    std::string framework_config;
+    std::string outDirPath;
     bool suppressSTDERR = false;
     bool doCarving = true;
+    bool createUnusedSectorFiles = false;
 
 #ifdef TSK_WIN32
     // On Windows, get the wide arguments (mingw doesn't support wmain)
@@ -112,35 +118,56 @@ int main(int argc, char **argv1)
 #endif
 
     while ((ch =
-        GETOPT(argc, argv, _TSK_T("d:c:p:vVLC"))) > 0) {
+        GETOPT(argc, argv, _TSK_T("d:c:p:vuVLC"))) > 0) {
         switch (ch) {
-        case _TSK_T('?'):
-        default:
-            TFPRINTF(stderr, _TSK_T("Invalid argument: %s\n"),
-                argv[OPTIND]);
-            usage(argv1[0]);
         case _TSK_T('c'):
-            framework_config = OPTARG;
+#ifdef TSK_WIN32
+            framework_config.assign(TskUtilities::toUTF8(std::wstring(OPTARG)));
+#else
+            framework_config.assign(OPTARG);
+#endif
             break;
+
         case _TSK_T('p'):
-            pipeline_config = OPTARG;
+#ifdef TSK_WIN32
+            pipeline_config.assign(TskUtilities::toUTF8(std::wstring(OPTARG)));
+#else
+            pipeline_config.assign(OPTARG);
+#endif
+            break;
+        case _TSK_T('u'):
+            createUnusedSectorFiles = true;
             break;
         case _TSK_T('v'):
             tsk_verbose++;
             break;
+
         case _TSK_T('V'):
             tsk_version_print(stdout);
             exit(0);
             break;
+
         case _TSK_T('d'):
+#ifdef TSK_WIN32
+            outDirPath.assign(TskUtilities::toUTF8(std::wstring(OPTARG)));
+#else
             outDirPath.assign(OPTARG);
+#endif
             break;
+
         case _TSK_T('C'):
             doCarving = false;
             break;
+
         case _TSK_T('L'):
             suppressSTDERR = true;
             break;
+
+        case _TSK_T('?'):
+        default:
+            TFPRINTF(stderr, _TSK_T("Invalid argument: %s\n"),
+                argv[OPTIND]);
+            usage(argv1[0]);
         }
     }
 
@@ -150,10 +177,16 @@ int main(int argc, char **argv1)
         usage(argv1[0]);
     }
 
-    TSK_TCHAR *imagePath = argv[OPTIND];
-	if (TSTAT(imagePath, &stat_buf) != 0) {
-        std::wstringstream msg;
-        msg << L"Image file not found: " << imagePath;
+    std::string imagePath;
+#ifdef TSK_WIN32
+    imagePath = TskUtilities::toUTF8(std::wstring(argv[OPTIND]));
+#else
+    imagePath = argv1[OPTIND];
+#endif
+    
+    if (!Poco::File(imagePath).exists()) {
+        std::stringstream msg;
+        msg << "Image file not found: " << imagePath;
         LOGERROR(msg.str());
         return 1;
     }
@@ -161,82 +194,89 @@ int main(int argc, char **argv1)
     // Load the framework config if they specified it
     try
     {
-        if (framework_config) {
-            // Initialize properties based on the config file.
+        // try the one specified on the command line
+        if (framework_config.size()) {
             TskSystemPropertiesImpl *systemProperties = new TskSystemPropertiesImpl();
             systemProperties->initialize(framework_config);
             TskServices::Instance().setSystemProperties(*systemProperties);
         }
+        // try the one in the current directory
+        else if (Poco::File("framework_config.xml").exists()) {
+            TskSystemPropertiesImpl *systemProperties = new TskSystemPropertiesImpl();
+            systemProperties->initialize("framework_config.xml");
+            TskServices::Instance().setSystemProperties(*systemProperties);
+        }
+        // try one back up a few directories for the use case that we built this in
+        // the source tree.
         else {
-            Poco::File config("framework_config.xml");
-            if (config.exists()) {
-                TskSystemPropertiesImpl *systemProperties = new TskSystemPropertiesImpl();
-                systemProperties->initialize("framework_config.xml");
+            TskSystemPropertiesImpl *systemProperties = new TskSystemPropertiesImpl();
+            systemProperties->initialize();
+            std::string progdir = systemProperties->get(TskSystemProperties::PROG_DIR);
+            std::string configPath = progdir + "../../../runtime/framework_config.xml";
+            if (Poco::File(configPath).exists()) {
+                systemProperties->initialize(configPath);
                 TskServices::Instance().setSystemProperties(*systemProperties);
-            }
-            else {
+            } else {
                 fprintf(stderr, "No framework config file found\n");
             }
         }
     }
     catch (TskException& ex)
     {
-        fprintf(stderr, "%s\n", ex.message().c_str());
+        fprintf(stderr, "Loading framework config file: %s\n", ex.message().c_str());
         return 1;
     }
 
-    if (outDirPath == _TSK_T("")) {
+    // if they didn't specify the output directory, make one
+    if (outDirPath == "") {
         outDirPath.assign(imagePath);
-        outDirPath.append(_TSK_T("_tsk_out"));
+        outDirPath.append("_tsk_out");
     }
-    if (TSTAT(outDirPath.c_str(), &stat_buf) == 0) {
-        std::wstringstream msg;
-        msg << L"Output directory already exists " << outDirPath.c_str();
+    if (Poco::File(outDirPath).exists()) {
+        std::stringstream msg;
+        msg << "Output directory already exists " << outDirPath;
         LOGERROR(msg.str());
         return 1;
     }
 
-    // @@@ Not UNIX-friendly
-    SetSystemPropertyW(TskSystemProperties::OUT_DIR, outDirPath);
-
-    if (makeDir(outDirPath.c_str())) 
-    {
+    SetSystemProperty(TskSystemProperties::OUT_DIR, outDirPath);
+    // make the output dirs, makeDir() logs the error.
+    if (makeDir(outDirPath.c_str()))  {
         return 1;
     }
 
-    if (makeDir(GetSystemPropertyW(TskSystemProperties::SYSTEM_OUT_DIR).c_str()))
-    {
+    if (makeDir(GetSystemProperty(TskSystemProperties::SYSTEM_OUT_DIR).c_str())) {
         return 1;
     }
 
-    if (makeDir(GetSystemPropertyW(TskSystemProperties::MODULE_OUT_DIR).c_str()))
-    {
+    if (makeDir(GetSystemProperty(TskSystemProperties::MODULE_OUT_DIR).c_str())) {
         return 1;
     }
 
-    std::wstring logDir = GetSystemPropertyW(TskSystemProperties::LOG_DIR);
-    if (makeDir(logDir.c_str())) 
-    {
+    std::string logDir = GetSystemProperty(TskSystemProperties::LOG_DIR);
+    if (makeDir(logDir.c_str()))  {
         return 1;
     }
 
-    struct tm newtime;
+
+    // Create a log object
+    struct tm * newtime;
     time_t aclock;
 
     time(&aclock);   // Get time in seconds
-    localtime_s(&newtime, &aclock);   // Convert time to struct tm form 
-    wchar_t filename[MAX_BUFF_LENGTH];
-    _snwprintf_s(filename, MAX_BUFF_LENGTH, MAX_BUFF_LENGTH, L"\\log_%.4d-%.2d-%.2d-%.2d-%.2d-%.2d.txt",
-        newtime.tm_year + 1900, newtime.tm_mon+1, newtime.tm_mday,  
-        newtime.tm_hour, newtime.tm_min, newtime.tm_sec);
+    newtime = localtime(&aclock);
+    char filename[MAX_BUFF_LENGTH];
+    snprintf(filename, MAX_BUFF_LENGTH, "/log_%.4d-%.2d-%.2d-%.2d-%.2d-%.2d.txt",
+        newtime->tm_year + 1900, newtime->tm_mon+1, newtime->tm_mday,  
+        newtime->tm_hour, newtime->tm_min, newtime->tm_sec);
 
     logDir.append(filename);
-    Log *log = NULL;
+    std::auto_ptr<Log> log(NULL);
 
     if(suppressSTDERR)
-        log = new Log();
+        log = std::auto_ptr<Log>(new Log());
     else
-        log = new StderrLog();
+        log = std::auto_ptr<Log>(new StderrLog());
 
     log->open(logDir.c_str());
     TskServices::Instance().setLog(*log);
@@ -245,8 +285,8 @@ int main(int argc, char **argv1)
     std::auto_ptr<TskImgDB> pImgDB(NULL);
     pImgDB = std::auto_ptr<TskImgDB>(new TskImgDBSqlite(outDirPath.c_str()));
     if (pImgDB->initialize() != 0) {
-        std::wstringstream msg;
-        msg << L"Error initializing SQLite database: " << outDirPath.c_str();
+        std::stringstream msg;
+        msg << "Error initializing SQLite database: " << outDirPath;
         LOGERROR(msg.str());
         return 1;
     }
@@ -258,9 +298,8 @@ int main(int argc, char **argv1)
     // Create a Blackboard and register it with the framework.
     TskServices::Instance().setBlackboard((TskBlackboard &) TskDBBlackboard::instance());
 
-    // @@@ Not UNIX-friendly
-    if (pipeline_config != NULL) 
-        SetSystemPropertyW(TskSystemProperties::PIPELINE_CONFIG_FILE, pipeline_config);
+    if (pipeline_config.size()) 
+        SetSystemProperty(TskSystemProperties::PIPELINE_CONFIG_FILE, pipeline_config);
 
     // Create a Scheduler and register it
     TskSchedulerQueue scheduler;
@@ -278,8 +317,8 @@ int main(int argc, char **argv1)
     {
         // Create an ImageFile and register it with the framework.
         if (imageFileTsk.open(imagePath) != 0) {
-            std::wstringstream msg;
-            msg << L"Error opening image: " << imagePath;
+            std::stringstream msg;
+            msg << "Error opening image: " << imagePath;
             LOGERROR(msg.str());
             return 1;
         }
@@ -292,11 +331,9 @@ int main(int argc, char **argv1)
     try {
         filePipeline = pipelineMgr.createPipeline(TskPipelineManager::FILE_ANALYSIS_PIPELINE);
     }
-    catch (TskException &e ) {
-        std::wstringstream msg;
-        std::wstring exceptionMsg;
-        Poco::UnicodeConverter::toUTF16(e.message(), exceptionMsg);
-        msg << L"Error creating file analysis pipeline: " << exceptionMsg;
+    catch (const TskException &e ) {
+        std::stringstream msg;
+        msg << "Error creating file analysis pipeline: " << e.message();
         LOGERROR(msg.str());
         filePipeline = NULL;
     }
@@ -305,25 +342,23 @@ int main(int argc, char **argv1)
     try {
         reportPipeline = pipelineMgr.createPipeline(TskPipelineManager::POST_PROCESSING_PIPELINE);
     }
-    catch (TskException &e ) {
-        std::wstringstream msg;
-        std::wstring exceptionMsg;
-        Poco::UnicodeConverter::toUTF16(e.message(), exceptionMsg);
-        msg << L"Error creating reporting pipeline: " << exceptionMsg;
+    catch (const TskException &e ) {
+        std::stringstream msg;
+        msg << "Error creating reporting pipeline: " << e.message();
         LOGERROR(msg.str());
         reportPipeline = NULL;
     }
 
     if ((filePipeline == NULL) && (reportPipeline == NULL)) {
-        std::wstringstream msg;
-        msg << L"No pipelines configured.  Stopping";
+        std::stringstream msg;
+        msg << "No pipelines configured.  Stopping";
         LOGERROR(msg.str());
         exit(1);
     }
 
     // Now we analyze the data.
 
-    std::auto_ptr<TskCarveExtractScalpel> carver;
+    std::auto_ptr<TskCarveExtractScalpel> carver(new TskCarveExtractScalpel(createUnusedSectorFiles));
 
     // Extract
     if (!containerExtractor.isNull())   // Input is an archive file
@@ -349,7 +384,7 @@ int main(int argc, char **argv1)
         if (doCarving && !GetSystemProperty("SCALPEL_DIR").empty())
         {
             TskCarvePrepSectorConcat carvePrep;
-            carvePrep.processSectors(true);
+            carvePrep.processSectors();
             carver.reset(new TskCarveExtractScalpel());
         }
     }
@@ -369,11 +404,11 @@ int main(int argc, char **argv1)
             }
             else
             {
-                std::wstringstream msg;
-                msg << L"WARNING: Skipping task: " << task->task;
+                std::stringstream msg;
+                msg << "WARNING: Skipping task: " << task->task;
                 LOGWARN(msg.str());
-                continue;
             }
+            delete task;
         }
         catch (...) 
         {
@@ -395,8 +430,8 @@ int main(int argc, char **argv1)
         }
         catch (...) 
         {
-            std::wstringstream msg;
-            msg << L"Error running reporting pipeline";
+            std::stringstream msg;
+            msg << "Error running reporting pipeline";
             LOGERROR(msg.str());
             return 1;
         }
@@ -407,10 +442,10 @@ int main(int argc, char **argv1)
         }
     }
 
-    std::wstringstream msg;
-    msg << L"image analysis complete";
+    std::stringstream msg;
+    msg << "image analysis complete";
     LOGINFO(msg.str());
-    wcout << L"Results saved to " << outDirPath;
+    cout << "Results saved to " << outDirPath << std::endl;
     return 0;
 }
 
diff --git a/framework/tools/tsk_validatepipeline/Makefile.am b/framework/tools/tsk_validatepipeline/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..6cd84335ece847ebdf88a0dedc5e4044a48bbe99
--- /dev/null
+++ b/framework/tools/tsk_validatepipeline/Makefile.am
@@ -0,0 +1,5 @@
+tsk_validatepipeline_CXXFLAGS = -I.. -I../.. -I../../.. -Wall
+LDADD = ../../tsk/framework/libtskframework.la ../../../tsk/libtsk.la
+
+bin_PROGRAMS = tsk_validatepipeline
+tsk_validatepipeline_SOURCES = tsk_validatepipeline.cpp
diff --git a/framework/tsk_validatepipeline/tsk_validatepipeline.cpp b/framework/tools/tsk_validatepipeline/tsk_validatepipeline.cpp
similarity index 80%
rename from framework/tsk_validatepipeline/tsk_validatepipeline.cpp
rename to framework/tools/tsk_validatepipeline/tsk_validatepipeline.cpp
index 728f27b9e0bc5d78a8af86d8073c15f55da8c286..d38c3bca577b7de834995d5def653cdc664a97be 100755
--- a/framework/tsk_validatepipeline/tsk_validatepipeline.cpp
+++ b/framework/tools/tsk_validatepipeline/tsk_validatepipeline.cpp
@@ -8,14 +8,13 @@
 *
 *  This software is distributed under the Common Public License 1.0
 */
-#include <stdio.h>
-#include <stdlib.h>
+#include <cstdio>
+#include <cstdlib>
 #include <fstream>
 #include <sstream>
-#include <Windows.h>
 
-#include "framework.h"
-#include "Services/TskSystemPropertiesImpl.h"
+#include "tsk/framework/framework.h"
+#include "tsk/framework/services/TskSystemPropertiesImpl.h"
 
 #include "Poco/AutoPtr.h"
 #include "Poco/Path.h"
@@ -29,7 +28,7 @@
 #include "Poco/SAX/SAXException.h"
 #include "Poco/Util/XMLConfiguration.h"
 #include "Poco/Util/AbstractConfiguration.h"
-
+#include "Poco/TemporaryFile.h"
 
 #define VALIDATE_PIPELINE_VERSION "1.0.0.0"
 
@@ -98,7 +97,7 @@ bool ValidatePipeline::isValid(const char *a_configPath) const
 
                     std::string pipelineType = pElem->getAttribute(TskPipelineManager::PIPELINE_TYPE_ATTRIBUTE);
 
-                    TskPipeline * pipeline;
+                    TskPipeline * pipeline = 0;
                     if (pipelineType == TskPipelineManager::FILE_ANALYSIS_PIPELINE_STR)
                         pipeline = new TskFileAnalysisPipeline();
                     else if (pipelineType == TskPipelineManager::REPORTING_PIPELINE_STR)
@@ -115,6 +114,7 @@ bool ValidatePipeline::isValid(const char *a_configPath) const
                         fprintf(stdout, "Error parsing pipeline: %s\n", pElem->getAttribute(TskPipelineManager::PIPELINE_TYPE_ATTRIBUTE).c_str());
                         failed = true;
                     }
+                        delete pipeline;
                 }
             }
         } catch (Poco::XML::SAXParseException& ex) {
@@ -126,26 +126,6 @@ bool ValidatePipeline::isValid(const char *a_configPath) const
     return failed ? false : true;
 }
 
-static std::wstring getProgDir()
-{
-    wchar_t progPath[256];
-    wchar_t fullPath[256];
-    HINSTANCE hInstance = GetModuleHandle(NULL);
-
-    GetModuleFileName(hInstance, fullPath, 256);
-    for (int i = wcslen(fullPath)-1; i > 0; i--) {
-        if (i > 256)
-            break;
-
-        if (fullPath[i] == '\\') {
-            wcsncpy_s(progPath, fullPath, i+1);
-            progPath[i+1] = '\0';
-            break;
-        }
-    }
-    return std::wstring(progPath);
-}
-
 int main(int argc, char **argv)
 {
     progname = argv[0];
@@ -160,23 +140,19 @@ int main(int argc, char **argv)
 
     // open the log temp file
     Log log;
-    wchar_t filename[MAX_PATH];
+    Poco::TemporaryFile filename;
 
-    if (!GetTempFileName(L".", L"", 0, filename)) {
-        fprintf(stderr, "Failed to create temporary file.\n");
-        return 1;
-    }
-    log.open(filename);
+    log.open(filename.path().c_str());
     TskServices::Instance().setLog(log);
 
-    std::wstring progDirPath = getProgDir();
+    std::string progDirPath = TskUtilities::getProgDir();
 
     // Initialize properties based on the config file. Do this to shutdown noise in validation.
     TskSystemPropertiesImpl systemProperties;
     systemProperties.initialize(frameworkConfigPath);
     TskServices::Instance().setSystemProperties(systemProperties);
 
-    SetSystemPropertyW(TskSystemProperties::PROG_DIR, progDirPath); 
+    SetSystemProperty(TskSystemProperties::PROG_DIR, progDirPath); 
 
     ValidatePipeline vp;
     bool valid = vp.isValid(pipelineConfigPath);
@@ -187,7 +163,7 @@ int main(int argc, char **argv)
 
 #define MAX_BUF 1024
     char buf[MAX_BUF];
-    std::ifstream fin(filename);
+    std::ifstream fin(filename.path().c_str());
 
     fprintf(stdout, "\nLog messages created during validation: \n");
     while (fin.getline(buf, MAX_BUF)) {
@@ -195,8 +171,6 @@ int main(int argc, char **argv)
     }
     fin.close();
 
-    (void)DeleteFile(filename);
-
     if (valid)
         return 0;
     else
diff --git a/framework/tsk/framework/Makefile.am b/framework/tsk/framework/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..98f2409952b554de6fc53685d167bc3322d3121d
--- /dev/null
+++ b/framework/tsk/framework/Makefile.am
@@ -0,0 +1,13 @@
+SUBDIRS = extraction file pipeline services utilities
+
+# Merge the libraries into one
+lib_LTLIBRARIES = libtskframework.la
+libtskframework_la_SOURCES =
+libtskframework_la_LIBADD = extraction/libfwextract.la \
+                            file/libfwfile.la \
+                            pipeline/libfwpipe.la \
+                            services/libfwserv.la \
+                            utilities/libfwutil.la
+
+# current:revision:age
+libtskframework_la_LDFLAGS = -version-info 0:0:0
diff --git a/framework/TskVersionInfo.h b/framework/tsk/framework/TskVersionInfo.h
similarity index 92%
rename from framework/TskVersionInfo.h
rename to framework/tsk/framework/TskVersionInfo.h
index d6226ece55cd867f3fa10a7a4a588915b663030e..64e28c908425658afc9e6e34198d70d81392bf66 100755
--- a/framework/TskVersionInfo.h
+++ b/framework/tsk/framework/TskVersionInfo.h
@@ -11,7 +11,7 @@
 #ifndef _TSK_VERSIONINFO_H
 #define _TSK_VERSIONINFO_H
 
-#include "tsk3/base/tsk_base_i.h"
+#include "tsk/base/tsk_base.h"
 
 /** 
  * Class that allows us to determine framework version,
diff --git a/framework/Extraction/CarveExtract.h b/framework/tsk/framework/extraction/CarveExtract.h
similarity index 92%
rename from framework/Extraction/CarveExtract.h
rename to framework/tsk/framework/extraction/CarveExtract.h
index af638915dc3ecf3bd2d53eb7386d269f7a55cae5..cc117c6c410c67c99c67042be704e711f50a9c50 100755
--- a/framework/Extraction/CarveExtract.h
+++ b/framework/tsk/framework/extraction/CarveExtract.h
@@ -15,7 +15,7 @@
 #ifndef _TSK_CARVEEXTRACT_H
 #define _TSK_CARVEEXTRACT_H
 
-#include "Services/TskImgDB.h"
+#include "tsk/framework/services/TskImgDB.h"
 
 /**
  * Interface for class that will carve an unallocated sectors image file. The 
diff --git a/framework/Extraction/CarvePrep.h b/framework/tsk/framework/extraction/CarvePrep.h
similarity index 80%
rename from framework/Extraction/CarvePrep.h
rename to framework/tsk/framework/extraction/CarvePrep.h
index 114fd3d6744b901ad3f1657f395e2cae28a6dc0e..ba1b326e5b87d583384f896f7624412be5895734 100755
--- a/framework/Extraction/CarvePrep.h
+++ b/framework/tsk/framework/extraction/CarvePrep.h
@@ -15,7 +15,7 @@
 #ifndef _TSK_CARVE_PREP_H
 #define _TSK_CARVE_PREP_H
 
-#include "Services/TskImgDB.h"
+#include "tsk/framework/services/TskImgDB.h"
 
 /**
  * Interface for class that prepares for later carving. 
@@ -38,11 +38,9 @@ class TSK_FRAMEWORK_API CarvePrep
     /**
      * Make one or more unallocated sectors image files to carve. 
      *
-     * @param a_toSchedule True if the scheduler should be called to queue
-     * up the output files or false if the files should be processed now.
      * @returns 0 on success, 1 on error. 
      */
-    virtual int processSectors(bool a_toSchedule) = 0;
+    virtual int processSectors() = 0;
 };
 
-#endif
\ No newline at end of file
+#endif
diff --git a/framework/tsk/framework/extraction/Makefile.am b/framework/tsk/framework/extraction/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..bf03ba8e9521aae6d743e060cf09ceb2a24368bc
--- /dev/null
+++ b/framework/tsk/framework/extraction/Makefile.am
@@ -0,0 +1,10 @@
+AM_CXXFLAGS = -I.. -I../.. -I../../../.. -Wall
+
+noinst_LTLIBRARIES = libfwextract.la
+libfwextract_la_SOURCES = TskAutoImpl.cpp TskAutoImpl.h \
+    TskCarveExtractScalpel.cpp TskCarveExtractScalpel.h \
+    TskCarvePrepSectorConcat.cpp TskCarvePrepSectorConcat.h \
+    TskImageFile.cpp TskImageFile.h \
+    TskImageFileTsk.cpp TskImageFileTsk.h \
+    TskExtract.cpp TskExtract.h \
+    TskL01Extract.cpp TskL01Extract.h
diff --git a/framework/Extraction/TskAutoImpl.cpp b/framework/tsk/framework/extraction/TskAutoImpl.cpp
similarity index 94%
rename from framework/Extraction/TskAutoImpl.cpp
rename to framework/tsk/framework/extraction/TskAutoImpl.cpp
index 13b597eea7dd55a9a43faa292f23e512cad8338d..93946e8e6c543ecaaa3417a2642282b5fabbfe69 100755
--- a/framework/Extraction/TskAutoImpl.cpp
+++ b/framework/tsk/framework/extraction/TskAutoImpl.cpp
@@ -10,9 +10,10 @@
 
 #include <string>
 #include <sstream>
+#include <string.h>
 
-#include "TSKAutoImpl.h"
-#include "Services/TskServices.h"
+#include "TskAutoImpl.h"
+#include "tsk/framework/services/TskServices.h"
 
 #define TSK_SCHEMA_VER 1
 
@@ -305,7 +306,7 @@ TSK_RETVAL_ENUM TSKAutoImpl::insertFileData(TSK_FS_FILE * a_fsFile,
 TSK_RETVAL_ENUM TSKAutoImpl::processFile(TSK_FS_FILE * a_fsFile, const char * a_path)
 {
     // skip the . and .. dirs
-    if (isDotDir(a_fsFile, a_path) == 1)
+    if (isDotDir(a_fsFile) == 1)
     {
         return TSK_OK;
     }
@@ -419,7 +420,7 @@ TSK_RETVAL_ENUM TSKAutoImpl::processAttribute(TSK_FS_FILE * a_fsFile,
 }
 
 void TSKAutoImpl::createDummyVolume(const TSK_DADDR_T sect_start, const TSK_DADDR_T sect_len, 
-                                    char *desc, TSK_VS_PART_FLAG_ENUM flags)
+                                    const char * desc, TSK_VS_PART_FLAG_ENUM flags)
 {
     m_curVsId++;
 
@@ -428,7 +429,7 @@ void TSKAutoImpl::createDummyVolume(const TSK_DADDR_T sect_start, const TSK_DADD
     part.len = sect_len;
     part.start = sect_start;
     part.flags = flags;
-    part.desc = desc;
+    part.desc = (char *)desc; // remove the cast when TSK_VS_PART_INFO.desc is const char *
 
     if (m_db.addVolumeInfo(&part))
     {
diff --git a/framework/Extraction/TskAutoImpl.h b/framework/tsk/framework/extraction/TskAutoImpl.h
similarity index 81%
rename from framework/Extraction/TskAutoImpl.h
rename to framework/tsk/framework/extraction/TskAutoImpl.h
index dc397a02162403b6a7f95452f7dc4cfd807cf40a..042674306470c77a3414bd037f199fa6f3573b26 100755
--- a/framework/Extraction/TskAutoImpl.h
+++ b/framework/tsk/framework/extraction/TskAutoImpl.h
@@ -8,7 +8,7 @@
  * This software is distributed under the Common Public License 1.0
  */
 
-#include "framework_i.h"
+#include "tsk/framework/framework_i.h"
 
 #ifndef _TSK_AUTO_IMPL_H
 #define _TSK_AUTO_IMPL_H
@@ -16,9 +16,9 @@
 #ifdef __cplusplus
 
 // Include the other TSK header files
-#include "tsk3/libtsk.h"
-#include "Services/TskImgDB.h"
-#include "Services/Scheduler.h"
+#include "tsk/libtsk.h"
+#include "tsk/framework/services/TskImgDB.h"
+#include "tsk/framework/services/Scheduler.h"
 #include <map>
 #include <string>
 #include <queue>
@@ -53,7 +53,7 @@ class TSK_FRAMEWORK_API TSKAutoImpl:public TskAuto {
     uint64_t m_numFilesSeen;
     time_t m_lastUpdateMsg;
     std::queue<Scheduler::task_struct> m_filesToSchedule;   ///< Scheduler tasks to submit once transaction is commited
-    static const int m_numOfFilesToQueue = 1000;    ///< max number of files to queue up in a transaction before commiting
+    static const unsigned int m_numOfFilesToQueue = 1000;    ///< max number of files to queue up in a transaction before commiting
 
     TSK_RETVAL_ENUM insertFileData(TSK_FS_FILE * fs_file,
         const TSK_FS_ATTR *, const char *path, uint64_t & fileId);
@@ -61,7 +61,7 @@ class TSK_FRAMEWORK_API TSKAutoImpl:public TskAuto {
     virtual TSK_RETVAL_ENUM processAttribute(TSK_FS_FILE *,
         const TSK_FS_ATTR * fs_attr, const char *path);
     void createDummyVolume(const TSK_DADDR_T sect_start, const TSK_DADDR_T sect_len, 
-                           char * desc, TSK_VS_PART_FLAG_ENUM flags);
+                           const char * desc, TSK_VS_PART_FLAG_ENUM flags);
     void commitAndSchedule();
 };
 
diff --git a/framework/Extraction/TskCarveExtractScalpel.cpp b/framework/tsk/framework/extraction/TskCarveExtractScalpel.cpp
similarity index 93%
rename from framework/Extraction/TskCarveExtractScalpel.cpp
rename to framework/tsk/framework/extraction/TskCarveExtractScalpel.cpp
index a9adc164c108f1b61b2b578ffe08f15701a5a275..bd5bc48d875ff2fa9b39b3d49db3ef6ba64fef9d 100644
--- a/framework/Extraction/TskCarveExtractScalpel.cpp
+++ b/framework/tsk/framework/extraction/TskCarveExtractScalpel.cpp
@@ -18,11 +18,11 @@
 #include "TskCarveExtractScalpel.h"
 
 // TSK Framework includes
-#include "Services/TskServices.h"
-#include "Services/TskImgDB.h"
-#include "Utilities/TskUtilities.h"
-#include "Utilities/UnallocRun.h"
-#include "Utilities/TskException.h"
+#include "tsk/framework/services/TskServices.h"
+#include "tsk/framework/services/TskImgDB.h"
+#include "tsk/framework/utilities/TskUtilities.h"
+#include "tsk/framework/utilities/UnallocRun.h"
+#include "tsk/framework/utilities/TskException.h"
 
 // Poco includes
 #include "Poco/Path.h"
@@ -41,10 +41,15 @@
 #include <cstdlib>
 #include <vector>
 #include <algorithm>
+#include <memory>
 
 namespace
 {
+#ifdef TSK_WIN32
     const std::string SCALPEL_EXE_FILE_NAME = "scalpel.exe";
+#else
+    const std::string SCALPEL_EXE_FILE_NAME = "scalpel";
+#endif
     const std::string CARVED_FILES_FOLDER = "CarvedFiles";
     const std::string SCALPEL_RESULTS_FILE_NAME = "audit.txt";
     const std::string STD_OUT_DUMP_FILE_NAME = "stdout.txt";
@@ -100,8 +105,11 @@ int TskCarveExtractScalpel::processFile(int unallocImgId)
             processCarvedFiles(outputFolderPath.str(), parseCarvingResultsFile(unallocImgId, resultsFilePath.str()));
 
             // Update the unused sector info in the image database so it is known which of the unallocated sectors just carved did not go into a carved file.
-            std::vector<TskUnusedSectorsRecord> unusedSectorsList;
-            imgDB->addUnusedSectors(unallocImgId, unusedSectorsList);
+            if (m_createUnusedSectorFiles)
+            {
+                std::vector<TskUnusedSectorsRecord> unusedSectorsList;
+                imgDB->addUnusedSectors(unallocImgId, unusedSectorsList);
+            }
         }
         else
         {
@@ -337,14 +345,15 @@ void TskCarveExtractScalpel::processCarvedFiles(const std::string &outputFolderP
 
             // Add the mapping to the image database.
             uint64_t fileId;
-            if (imgDB.addCarvedFileInfo(run->getVolId(), const_cast<wchar_t*>(TskUtilities::toUTF16((*file).name).c_str()), (*file).length, &sectorRunStart[0], &sectorRunLength[0], numberOfRuns, fileId) == -1)
+            if (imgDB.addCarvedFileInfo(run->getVolId(), (*file).name.c_str(), (*file).length, &sectorRunStart[0], &sectorRunLength[0], numberOfRuns, fileId) == -1)
             {
                 std::stringstream msg;
                 msg << "TskCarveExtractScalpel::processCarvedFiles : unable to save carved file info for '" << filePath.str() << "'";
                 throw TskException(msg.str());
             }
 
-            TskServices::Instance().getFileManager().addFile(fileId, TskUtilities::toUTF16(filePath.str()));
+            std::wstring f(TskUtilities::toUTF16(filePath.str()));
+            TskServices::Instance().getFileManager().addFile(fileId, f);
 
             // Delete output (carved) files by default.
             std::string option = GetSystemProperty("CARVE_EXTRACT_KEEP_OUTPUT_FILES");
@@ -377,4 +386,4 @@ void TskCarveExtractScalpel::processCarvedFiles(const std::string &outputFolderP
 TskCarveExtractScalpel::CarvedFile::CarvedFile(int unallocImgId, const std::string &fileName, const std::string &offsetInBytes, const std::string &lengthInBytes) : 
     id(unallocImgId), name(fileName), offset(strtoul(offsetInBytes.c_str(), 0, 10)), length(strtoul(lengthInBytes.c_str(), 0, 10))
 {
-}
\ No newline at end of file
+}
diff --git a/framework/Extraction/TskCarveExtractScalpel.h b/framework/tsk/framework/extraction/TskCarveExtractScalpel.h
similarity index 85%
rename from framework/Extraction/TskCarveExtractScalpel.h
rename to framework/tsk/framework/extraction/TskCarveExtractScalpel.h
index 6ccf6206e8152824f1d8c4d1c6c0c2e9beb792aa..b92b8eaf526f2d5831b1b6191b333adddd8ac6c8 100644
--- a/framework/Extraction/TskCarveExtractScalpel.h
+++ b/framework/tsk/framework/extraction/TskCarveExtractScalpel.h
@@ -17,7 +17,7 @@
 #define _TSK_CARVEEXTRACTSCALPEL_H
 
 // TSK Framework includes
-#include "Extraction/CarveExtract.h"
+#include "tsk/framework/extraction/CarveExtract.h"
 
 // Poco includes
 #include "Poco/Pipe.h"
@@ -33,9 +33,15 @@
 class TSK_FRAMEWORK_API TskCarveExtractScalpel : public CarveExtract
 {
 public:
+    TskCarveExtractScalpel(bool createUnusedSectorFiles = false)
+        : m_createUnusedSectorFiles(createUnusedSectorFiles) {}
+
     virtual int processFile(int unallocImgId);
 
 private:
+    // Whether to generate unused sector files after carving.
+    bool m_createUnusedSectorFiles;
+
     /**
      * Uses Scalpel to attempt carving an unallocated sectors image file.
      *
@@ -74,7 +80,7 @@ class TSK_FRAMEWORK_API TskCarveExtractScalpel : public CarveExtract
      * @return A possibly empty vector of CarvedFile objects representing 
      * carved files. Throws TskException on error.
      */
-    std::vector<CarvedFile> TskCarveExtractScalpel::parseCarvingResultsFile(int unallocImgId, const std::string &resultsFilePath) const;
+    std::vector<CarvedFile> parseCarvingResultsFile(int unallocImgId, const std::string &resultsFilePath) const;
 
     /**
      * Writes the unallocated sectors mapping of a set of carved files to the 
diff --git a/framework/Extraction/TskCarvePrepSectorConcat.cpp b/framework/tsk/framework/extraction/TskCarvePrepSectorConcat.cpp
similarity index 81%
rename from framework/Extraction/TskCarvePrepSectorConcat.cpp
rename to framework/tsk/framework/extraction/TskCarvePrepSectorConcat.cpp
index 9c90baa4608879fd6e8743be0a33a2a01a0fa1b8..9e449c2e3092f634ab0f3ccf9e49b4b0d02bd2c3 100644
--- a/framework/Extraction/TskCarvePrepSectorConcat.cpp
+++ b/framework/tsk/framework/extraction/TskCarvePrepSectorConcat.cpp
@@ -17,10 +17,10 @@
 #include "TskCarvePrepSectorConcat.h" 
 
 // TSK Framework includes
-#include "Services/TskImgDB.h"
-#include "Services/TskServices.h"
-#include "Services/Log.h"
-#include "Utilities/TskUtilities.h"
+#include "tsk/framework/services/TskImgDB.h"
+#include "tsk/framework/services/TskServices.h"
+#include "tsk/framework/services/Log.h"
+#include "tsk/framework/utilities/TskUtilities.h"
 
 // Poco includes
 #include "Poco/File.h"
@@ -33,6 +33,9 @@
 #include <string>
 #include <sstream>
 #include <cstdlib>
+#include <iostream>
+#include <fstream>
+#include <memory>
 
 namespace
 {
@@ -44,7 +47,7 @@ TskCarvePrepSectorConcat::TskCarvePrepSectorConcat()
 {
 }
 
-int TskCarvePrepSectorConcat::processSectors(bool scheduleCarving)
+int TskCarvePrepSectorConcat::processSectors()
 {
     try 
     {
@@ -52,11 +55,11 @@ int TskCarvePrepSectorConcat::processSectors(bool scheduleCarving)
         std::string outputFileName;
         size_t maxOutputFileSize;
         setUpForCarvePrep(outputFolderPath, outputFileName, maxOutputFileSize);
-        
+
         std::auto_ptr<SectorRuns> sectorRuns(TskServices::Instance().getImgDB().getFreeSectors());
         if (sectorRuns.get())
         {
-            createUnallocSectorsImgFiles(outputFolderPath, outputFileName, maxOutputFileSize, *sectorRuns, scheduleCarving);
+            createUnallocSectorsImgFiles(outputFolderPath, outputFileName, maxOutputFileSize, *sectorRuns);
         }
     }
     catch (TskException &ex) 
@@ -68,7 +71,7 @@ int TskCarvePrepSectorConcat::processSectors(bool scheduleCarving)
     return 0;
 }
 
-void TskCarvePrepSectorConcat::processFiles(const std::string &fileName, bool scheduleCarving) const
+void TskCarvePrepSectorConcat::processFiles(const std::string &fileName) const
 {
     assert(!fileName.empty());
     if (fileName.empty())
@@ -93,28 +96,26 @@ void TskCarvePrepSectorConcat::processFiles(const std::string &fileName, bool sc
         sectorRuns.reset(imgDB.getFileSectors(*it));
         if (sectorRuns.get()) 
         {
-            createUnallocSectorsImgFiles(outputFolderPath, outputFileName, maxOutputFileSize, *sectorRuns, scheduleCarving);
+            createUnallocSectorsImgFiles(outputFolderPath, outputFileName, maxOutputFileSize, *sectorRuns);
         }
     }
 }
 
-void TskCarvePrepSectorConcat::onUnallocSectorsImgFileCreated(int unallocSectorsImgId, bool scheduleCarving) const
+void TskCarvePrepSectorConcat::onUnallocSectorsImgFileCreated(int unallocSectorsImgId) const
 {
     // Schedule the file for carving.
     TskImgDB &imgDB = TskServices::Instance().getImgDB();
-    if (scheduleCarving) 
+
+    if (TskServices::Instance().getScheduler().schedule(Scheduler::Carve, unallocSectorsImgId, unallocSectorsImgId) == 0)
     {
-        if (TskServices::Instance().getScheduler().schedule(Scheduler::Carve, unallocSectorsImgId, unallocSectorsImgId) == 0)
-        {
-            imgDB.setUnallocImgStatus(unallocSectorsImgId, TskImgDB::IMGDB_UNALLOC_IMG_STATUS_SCHEDULE_OK);
-        }
-        else 
-        {
-            imgDB.setUnallocImgStatus(unallocSectorsImgId, TskImgDB::IMGDB_UNALLOC_IMG_STATUS_SCHEDULE_ERR);
-            std::stringstream msg;
-            msg << "TskCarvePrepSectorConcat::onUnallocSectorsImgFileCreated : failed to schedule carving of unallocated image file " << unallocSectorsImgId; 
-            throw TskException(msg.str());
-        }
+        imgDB.setUnallocImgStatus(unallocSectorsImgId, TskImgDB::IMGDB_UNALLOC_IMG_STATUS_SCHEDULE_OK);
+    }
+    else 
+    {
+        imgDB.setUnallocImgStatus(unallocSectorsImgId, TskImgDB::IMGDB_UNALLOC_IMG_STATUS_SCHEDULE_ERR);
+        std::stringstream msg;
+        msg << "TskCarvePrepSectorConcat::onUnallocSectorsImgFileCreated : failed to schedule carving of unallocated image file " << unallocSectorsImgId; 
+        throw TskException(msg.str());
     }
 }
 
@@ -141,7 +142,7 @@ void TskCarvePrepSectorConcat::setUpForCarvePrep(std::string &outputFolderPath,
     }
 }
 
-void TskCarvePrepSectorConcat::createUnallocSectorsImgFiles(const std::string &outputFolderPath, const std::string &outputFileName, size_t maxOutputFileSize, SectorRuns &sectorRuns, bool scheduleCarving) const
+void TskCarvePrepSectorConcat::createUnallocSectorsImgFiles(const std::string &outputFolderPath, const std::string &outputFileName, size_t maxOutputFileSize, SectorRuns &sectorRuns) const
 {
     char *sectorBuffer = NULL;
     try
@@ -158,7 +159,7 @@ void TskCarvePrepSectorConcat::createUnallocSectorsImgFiles(const std::string &o
         TskImgDB &imgDB = TskServices::Instance().getImgDB();       
         int volumeID = -1;
         int unallocSectorsImgId = 0;
-        HANDLE outputFileHandle;
+        std::ofstream outfile;
         uint64_t currentFileOffset = 0; // In bytes
         do 
         {
@@ -187,7 +188,7 @@ void TskCarvePrepSectorConcat::createUnallocSectorsImgFiles(const std::string &o
                     // Store the mapping of the sectors written to the output file to the corresponding sectors in the image.
                     if (currentFileOffset != startingFileOffset) 
                     {
-                        mapFileToImage(unallocSectorsImgId, outputFileHandle, startingFileOffset, currentFileOffset, sectorRuns.getVolID(), startingImageOffset);
+                        mapFileToImage(unallocSectorsImgId, outfile, startingFileOffset, currentFileOffset, sectorRuns.getVolID(), startingImageOffset);
 
                         // Advance the starting image offset to accurately reflect the starting image offset for the next output file.  
                         startingImageOffset += (currentFileOffset - startingFileOffset) / 512;
@@ -196,13 +197,13 @@ void TskCarvePrepSectorConcat::createUnallocSectorsImgFiles(const std::string &o
                     // Close the current output file.
                     if (unallocSectorsImgId) 
                     {
-                        CloseHandle(outputFileHandle);
+                        outfile.close();
                     }
 
                     // Schedule the current output file for carving. Note that derived classes can change this behavior by overriding onUnallocSectorsImgFileCreated.
                     if (currentFileOffset > 0) 
                     {
-                        onUnallocSectorsImgFileCreated(unallocSectorsImgId, scheduleCarving); 
+                        onUnallocSectorsImgFileCreated(unallocSectorsImgId); 
                     }
 
                     // Get the next output file number. 
@@ -218,8 +219,8 @@ void TskCarvePrepSectorConcat::createUnallocSectorsImgFiles(const std::string &o
                     
                     // Create an output file in the subdirectory.
                     path << Poco::Path::separator() << outputFileName.c_str();
-                    outputFileHandle = CreateFileW(TskUtilities::toUTF16(path.str()).c_str(), GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
-                    if (outputFileHandle == INVALID_HANDLE_VALUE) 
+                    outfile.open(path.str().c_str(), std::ios_base::out|std::ios_base::binary);
+                    if (outfile.fail())
                     {
                         TskServices::Instance().getImgDB().setUnallocImgStatus(unallocSectorsImgId, TskImgDB::IMGDB_UNALLOC_IMG_STATUS_CARVED_ERR);
 
@@ -227,7 +228,6 @@ void TskCarvePrepSectorConcat::createUnallocSectorsImgFiles(const std::string &o
                         msg << "TskCarvePrepSectorConcat::createUnallocSectorsImgFiles : failed to create output file " << unallocSectorsImgId;
                         throw TskException(msg.str());
                     }
-
                     // Reset the output file offsets and volume ID.
                     currentFileOffset = 0;
                     startingFileOffset = 0;
@@ -244,8 +244,8 @@ void TskCarvePrepSectorConcat::createUnallocSectorsImgFiles(const std::string &o
                 }
 
                 // Write the chunk of sectors to the output file.
-                DWORD nBytesWritten;
-                if (WriteFile(outputFileHandle, sectorBuffer, sectorsRead * 512, &nBytesWritten, NULL) == FALSE) 
+                outfile.write(sectorBuffer, sectorsRead * 512);
+                if (outfile.bad())
                 {
                     imgDB.setUnallocImgStatus(unallocSectorsImgId, TskImgDB::IMGDB_UNALLOC_IMG_STATUS_CARVED_ERR);
                     std::stringstream msg;
@@ -254,7 +254,7 @@ void TskCarvePrepSectorConcat::createUnallocSectorsImgFiles(const std::string &o
                 }
 
                 // Update the output file and sector run offsets to reflect the sucessful read.
-                currentFileOffset += nBytesWritten;
+                currentFileOffset += sectorsRead * 512;
                 sectorRunOffset += sectorsRead;
 
                 if (sectorsRead == 0) 
@@ -266,22 +266,27 @@ void TskCarvePrepSectorConcat::createUnallocSectorsImgFiles(const std::string &o
             // Store the mapping of the sectors written to the output file to the corresponding sectors in the image.
             if (currentFileOffset != startingFileOffset)
             {
-                mapFileToImage(unallocSectorsImgId, outputFileHandle, startingFileOffset, currentFileOffset, sectorRuns.getVolID(), startingImageOffset);
+                mapFileToImage(unallocSectorsImgId, outfile, startingFileOffset, currentFileOffset, sectorRuns.getVolID(), startingImageOffset);
             }
-        } 
+        }
         while(sectorRuns.next() != -1);
 
         // Close the final output file.
         if (unallocSectorsImgId) 
         {
-            CloseHandle(outputFileHandle);
+            outfile.close();
         }
 
         // Schedule the final output file.
         if (currentFileOffset > 0)
         {
-            onUnallocSectorsImgFileCreated(unallocSectorsImgId, scheduleCarving);
+            onUnallocSectorsImgFileCreated(unallocSectorsImgId);
         }
+
+        if (sectorBuffer != NULL)
+        {
+            delete [] sectorBuffer;
+        }
     }
     catch(...)
     {
@@ -314,7 +319,7 @@ void TskCarvePrepSectorConcat::createFolder(const std::string &path) const
     }
 }
 
-void TskCarvePrepSectorConcat::mapFileToImage(int unallocSectorsImgId, HANDLE outputFileHandle, uint64_t startingFileOffset, uint64_t endingFileOffset, int volumeID, uint64_t startingImageOffset) const
+void TskCarvePrepSectorConcat::mapFileToImage(int unallocSectorsImgId, std::ofstream & outfile, uint64_t startingFileOffset, uint64_t endingFileOffset, int volumeID, uint64_t startingImageOffset) const
 {
     // Convert the starting offset in the output file from a byte offset to a sector offset and calculate the number of sectors written to the file.
     uint64_t startingFileOffsetInSectors = startingFileOffset / 512;
@@ -323,9 +328,9 @@ void TskCarvePrepSectorConcat::mapFileToImage(int unallocSectorsImgId, HANDLE ou
     // Store the mapping of the output file sectors to image sectors.
     if (TskServices::Instance().getImgDB().addAllocUnallocMapInfo(volumeID, unallocSectorsImgId, startingFileOffsetInSectors, sectorsWritten, startingImageOffset) != 0) 
     {
-        CloseHandle(outputFileHandle); 
+        outfile.close();
         std::stringstream msg;
         msg << "TskCarvePrepSectorConcat::mapFileToImage : failed to add mapping to image for output file " << unallocSectorsImgId;
         throw TskException(msg.str());
     }
-}
\ No newline at end of file
+}
diff --git a/framework/Extraction/TskCarvePrepSectorConcat.h b/framework/tsk/framework/extraction/TskCarvePrepSectorConcat.h
similarity index 85%
rename from framework/Extraction/TskCarvePrepSectorConcat.h
rename to framework/tsk/framework/extraction/TskCarvePrepSectorConcat.h
index 654280eee6ed2cc165482556b2f60768f5641a9b..02f7e4e6e82712f9b8734a197dc31482a99163fe 100644
--- a/framework/Extraction/TskCarvePrepSectorConcat.h
+++ b/framework/tsk/framework/extraction/TskCarvePrepSectorConcat.h
@@ -39,7 +39,7 @@ class TSK_FRAMEWORK_API TskCarvePrepSectorConcat : public CarvePrep
 	TskCarvePrepSectorConcat();
 	virtual ~TskCarvePrepSectorConcat() {}
 
-    virtual int processSectors(bool scheduleCarving);
+    virtual int processSectors();
 
     /**
      * Treats the contents of a set of files as unallocated sector runs and 
@@ -49,11 +49,9 @@ class TSK_FRAMEWORK_API TskCarvePrepSectorConcat : public CarvePrep
      *
      * @param fileName Output files for all files with this name will be 
      * generated.
-     * @param scheduleCarving Set to true if carving of the output files should
-     * be scheduled.
      * @return Throws TskException on error.
      */
-    void processFiles(const std::string &fileName, bool scheduleCarving) const;
+    void processFiles(const std::string &fileName) const;
 
 protected:
 
@@ -64,11 +62,9 @@ class TSK_FRAMEWORK_API TskCarvePrepSectorConcat : public CarvePrep
      *
      * @param unallocSectorsImgId ID assigned to the file by 
      * TskImgDB::addUnallocImg().
-     * @param scheduleCarving Set to true if carving of the output file should
-     * be scheduled.
      * @return Default implementation throws TskException on error.
      */
-    virtual void onUnallocSectorsImgFileCreated(int unallocSectorsImgId, bool scheduleCarving) const; 
+    virtual void onUnallocSectorsImgFileCreated(int unallocSectorsImgId) const; 
 
 private:
 
@@ -96,13 +92,11 @@ class TSK_FRAMEWORK_API TskCarvePrepSectorConcat : public CarvePrep
      * 
      * @param outputFolderPath Folder to which the output files are written.
      * @param outputFileName  Name given to the output files.
-     * @param maxOutputFileSize  Maximum output file size.
+     * @param maxOutputFileSize  Maximum output file size in bytes. If 0, then no size limit is used.
      * @param sectorRuns Sector runs to be written to the output files.
-     * @param scheduleCarving Whether or not to schedule carving of the output 
-     * files.
      * @return Throws TskException on error.
      */
-    void createUnallocSectorsImgFiles(const std::string &outputFolderPath, const std::string &outputFileName, size_t maxOutputFileSize, SectorRuns &sectorRuns, bool scheduleCarving) const;
+    void createUnallocSectorsImgFiles(const std::string &outputFolderPath, const std::string &outputFileName, size_t maxOutputFileSize, SectorRuns &sectorRuns) const;
 
     /** 
      * Creates a folder. If the specified folder already exists, deletes it
@@ -136,7 +130,7 @@ class TSK_FRAMEWORK_API TskCarvePrepSectorConcat : public CarvePrep
      *  the unallocated sectors image file.  
      *  @return Throws TskException on error.
      */
-    void mapFileToImage(int unallocSectorsImgId, HANDLE outputFileHandle, uint64_t startingFileOffset, uint64_t endingFileOffset, int volumeID, uint64_t startingImageOffset) const;
+    void mapFileToImage(int unallocSectorsImgId, std::ofstream & outfile, uint64_t startingFileOffset, uint64_t endingFileOffset, int volumeID, uint64_t startingImageOffset) const;
 };
 
 #endif
diff --git a/framework/Extraction/TskExtract.cpp b/framework/tsk/framework/extraction/TskExtract.cpp
old mode 100755
new mode 100644
similarity index 96%
rename from framework/Extraction/TskExtract.cpp
rename to framework/tsk/framework/extraction/TskExtract.cpp
index cb668629a9503c3fbe0cad66a9d349b35afcad65..172ae0b186bd97ea21e0cf22c57564f7fe4a75dc
--- a/framework/Extraction/TskExtract.cpp
+++ b/framework/tsk/framework/extraction/TskExtract.cpp
@@ -18,8 +18,8 @@
 
 #include "Poco/SharedPtr.h"
 
-#include "framework_i.h" // to get TSK_FRAMEWORK_API
-#include "Utilities/TskUtilities.h"
+#include "tsk/framework/framework_i.h" // to get TSK_FRAMEWORK_API
+#include "tsk/framework/utilities/TskUtilities.h"
 #include "TskExtract.h"
 #include "TskL01Extract.h"
 
diff --git a/framework/Extraction/TskExtract.h b/framework/tsk/framework/extraction/TskExtract.h
old mode 100755
new mode 100644
similarity index 100%
rename from framework/Extraction/TskExtract.h
rename to framework/tsk/framework/extraction/TskExtract.h
diff --git a/framework/Extraction/TskImageFile.cpp b/framework/tsk/framework/extraction/TskImageFile.cpp
similarity index 100%
rename from framework/Extraction/TskImageFile.cpp
rename to framework/tsk/framework/extraction/TskImageFile.cpp
diff --git a/framework/tsk/framework/extraction/TskImageFile.h b/framework/tsk/framework/extraction/TskImageFile.h
new file mode 100755
index 0000000000000000000000000000000000000000..db7ed535a5e45fdef265d1453286df5c1c18c900
--- /dev/null
+++ b/framework/tsk/framework/extraction/TskImageFile.h
@@ -0,0 +1,203 @@
+/*
+ *
+ *  The Sleuth Kit
+ *
+ *  Contact: Brian Carrier [carrier <at> sleuthkit [dot] org]
+ *  Copyright (c) 2010-2012 Basis Technology Corporation. All Rights
+ *  reserved.
+ *
+ *  This software is distributed under the Common Public License 1.0
+ */
+
+/**
+ * \file TskImageFile.h
+ * Contains the interface for the TskImageFile class.
+ */
+
+#ifndef _TSK_IMAGEFILE_H
+#define _TSK_IMAGEFILE_H
+
+#include "tsk/framework/framework_i.h"
+#include <vector>
+#include <string>
+
+/**
+ * An interface to a class that allows file system and low-level 
+ * access to a disk image.
+ * It supports opening split image files, extracting file system 
+ * information from the image and extracting data for a specific file
+ * or for a range of sectors.  You must call one of the open() methods
+ * before using any of the other methods in the interface. 
+ */
+class TSK_FRAMEWORK_API TskImageFile
+{
+public:
+    /**
+     * You must call one of the open() methods after creating the object.
+     */
+    TskImageFile();
+
+    virtual ~TskImageFile();
+
+    /**
+     * open the images at the paths saved in ImgDB
+     * @returns 0 on success and -1 on error
+     */
+    virtual int open() = 0;
+
+    /// Close the disk image.
+    virtual void close() = 0;
+
+    /// Return the file name(s) that make up the image.
+    virtual std::vector<std::string> getFileNames() const = 0;
+    virtual std::vector<std::wstring> getFileNamesW() const = 0;
+
+    /**
+     * Analyze the volume and file systems in the opened images and 
+     * populate the TskImgDB instance registered with TskServices.  This
+     * will not perform file carving.
+     * @returns 1 if there was a major error that prevented any extraction.  0 will
+     * be returned if there were minor errors during extraction or if there were 
+     * no errors.
+     */
+    virtual int extractFiles() = 0;
+
+    /**
+     * Return the data located at the given sector offset in the disk image.
+     * @param sect_start Sector offset into image from which to return data
+     * @param sect_len Number of sectors to read
+     * @param buffer A buffer into which data will be placed. Must be at
+     * least len * 512 large
+     * @return Number of sectors read or -1 on error
+     */
+    virtual int getSectorData(const uint64_t sect_start, 
+                              const uint64_t sect_len, 
+                              char *buffer) = 0;
+
+    /**
+     * Return the data located at the given byte offset in the disk image.
+     * @param byte_start Byte offset into image from which to return data
+     * @param byte_len Number of bytes to read
+     * @param buffer A buffer into which data will be placed. Must be at
+     * least byte_len large
+     * @return Number of bytes read or -1 on error
+     */
+    virtual int getByteData(const uint64_t byte_start, 
+                            const uint64_t byte_len, 
+                            char *buffer) = 0;
+
+    /**
+     * Provides access to the content of a specific file that was extracted from the disk image.
+     *
+     * @param fileId ID of the file (can be found in database)
+     * @returns A handle to the file or -1 on error.
+     */
+    virtual int openFile(const uint64_t fileId) = 0;
+
+    /**
+     * Reads content of a file that was opened with openFile(). 
+     * @param handle File handle that was returned by an earlier call to openFile()
+     * @param byte_offset Starting byte offset from which to read data
+     * @param byte_len The number of bytes to read
+     * @param buffer A buffer into which data will be placed. Must be at least
+     * byte_len bytes.
+     * @return Number of bytes read or -1 on error
+     */
+    virtual int readFile(const int handle, 
+                         const TSK_OFF_T byte_offset, 
+                         const size_t byte_len, 
+                         char * buffer) = 0;
+   /**
+     * Closes an opened file.
+     * @param handle File handle that was returned by an earlier call to openFile()
+     */
+    virtual int closeFile(const int handle) = 0;
+
+    /**
+    * Opens a single (non-split) disk image file so that it can be read.
+    *
+    * @param imageFile The path to the image file
+    * @param imageType The disk image type (can be autodetection)
+    * @param sectorSize Size of device sector in bytes (or 0 for default)
+    *
+    * @return -1 on error and 0 on success
+    */
+    virtual int open(const TSK_TCHAR *imageFile, 
+                     const TSK_IMG_TYPE_ENUM imageType = TSK_IMG_TYPE_DETECT, 
+                     const unsigned int sectorSize = 0) = 0;
+
+    /**
+    * Opens one or more disk image files so that they can be read. e UTF8, then consider
+    *
+    * @param numberOfImages The number of images to open (will be > 1 for split images).
+    * @param imageFile The path to the image files (the number of files must
+    * be equal to num_img and they must be in a sorted order)
+    * @param imageType The disk image type (can be autodetection)
+    * @param sectorSize Size of device sector in bytes (or 0 for default)
+    *
+    * @return -1 on error and 0 on success
+    */
+    virtual int open(const int numberOfImages, 
+                     const TSK_TCHAR * const imageFile[], 
+                     const TSK_IMG_TYPE_ENUM imageType = TSK_IMG_TYPE_DETECT, 
+                     const unsigned int sectorSize = 0) = 0;
+
+    /**
+    * Opens a single (non-split) disk image file so that it can be read.  This version
+    * always takes a UTF-8 encoding of the disk image.
+    *
+    * @param imageFile The UTF-8 path to the image file
+    * @param imageType The disk image type (can be autodetection)
+    * @param sectionSize Size of device sector in bytes (or 0 for default)
+    *
+    * @return -1 on error and 0 on success
+    */
+    virtual int open(const std::string &imageFile, 
+                     const TSK_IMG_TYPE_ENUM imageType = TSK_IMG_TYPE_DETECT, 
+                     const unsigned int sectorSize = 0) = 0;
+
+    /**
+    * Opens a single (non-split) disk image file so that it can be read.
+    *
+    * @param imageFile The path to the image file
+    * @param imageType The disk image type (can be autodetection)
+    * @param sectionSize Size of device sector in bytes (or 0 for default)
+    *
+    * @return -1 on error and 0 on success
+    */
+    virtual int open(const std::wstring &imageFile, 
+                     const TSK_IMG_TYPE_ENUM imageType = TSK_IMG_TYPE_DETECT, 
+                     const unsigned int sectorSize = 0) = 0;
+
+    /**
+    * Opens one or more disk image files so that they can be read.  This
+    * version always takes a UTF-8 encoding of the image files.
+    *
+    * @param imageFile A vector of UTF-8 encoded image files
+    * @param imageType The disk image type (can be autodetection)
+    * @param sectorSize Size of device sector in bytes (or 0 for default)
+    *
+    * @return -1 on error and 0 on success
+    */
+    virtual int open(const std::vector<std::string> &imageFile, 
+                     const TSK_IMG_TYPE_ENUM imageType = TSK_IMG_TYPE_DETECT, 
+                     const unsigned int sectorSize = 0) = 0;
+
+    /**
+    * Opens one or more disk image files so that they can be read.
+    *
+    * @param imageFile A vector of image files
+    * @param imageType The disk image type (can be autodetection)
+    * @param sectorSize Size of device sector in bytes (or 0 for default)
+    *
+    * @return -1 on error and 0 on success
+    */
+    virtual int open(const std::vector<std::wstring> &imageFile,
+                     const TSK_IMG_TYPE_ENUM imageType = TSK_IMG_TYPE_DETECT,
+                     const unsigned int sectorSize = 0) = 0;
+
+private:
+
+};
+
+#endif
diff --git a/framework/Extraction/TskImageFileTsk.cpp b/framework/tsk/framework/extraction/TskImageFileTsk.cpp
similarity index 72%
rename from framework/Extraction/TskImageFileTsk.cpp
rename to framework/tsk/framework/extraction/TskImageFileTsk.cpp
index a28dc6e8e155f54aa7adecde101d9113805478bf..009eafa846558133c2d1fc34cd1dbb417798b876 100755
--- a/framework/Extraction/TskImageFileTsk.cpp
+++ b/framework/tsk/framework/extraction/TskImageFileTsk.cpp
@@ -20,8 +20,9 @@
 
 #include "TskImageFileTsk.h"
 #include "TskAutoImpl.h"
-#include "Services/TskServices.h"
-#include "tsk3/base/tsk_base_i.h"
+#include "tsk/framework/utilities/TskUtilities.h"
+#include "tsk/framework/services/TskServices.h"
+#include "tsk/base/tsk_base_i.h"
 
 
 /**
@@ -44,24 +45,6 @@ TskImageFileTsk::~TskImageFileTsk()
     close();
 }
 
-int TskImageFileTsk::open(const TSK_TCHAR *imageFile)
-{
-    if (!m_images.empty()) {
-        close();        
-    }
-    m_images.push_back(imageFile);
-    return openImages();
-}
-
-int TskImageFileTsk::open(const std::vector<std::wstring> &images)
-{
-    if (!m_images.empty()) {
-        close();        
-    }
-    m_images = images;  
-    return openImages();
-}
-
 /*
  * Opens the image files listed in ImgDB for later analysis and extraction.  
  * @returns -1 on error and 0 on success
@@ -71,11 +54,14 @@ int TskImageFileTsk::open()
     if (!m_images.empty()) {
         close();        
     }
-    m_images = m_db.getImageNames();
-    if (m_images.empty()) {
+    std::vector<std::string> images = m_db.getImageNames();
+    if (images.empty()) {
         LOGERROR(L"TskImageFileTsk::open: Error getting image names from ImgDB");
         return -1;
     }
+    for (size_t i = 0; i < images.size(); i++) {
+        m_images.push_back(images[i]);
+    }
     return openImages();
 }
 
@@ -84,19 +70,20 @@ int TskImageFileTsk::open()
  * m_images.  Used internally by both open() methods.
  * @returns -1 on error.
  */
-int TskImageFileTsk::openImages() 
+int TskImageFileTsk::openImages(const TSK_IMG_TYPE_ENUM imageType,
+                                const unsigned int sectorSize) 
 {
-    m_images_ptrs = (const wchar_t **)malloc(m_images.size() * sizeof(wchar_t *));
+    m_images_ptrs = (const char **)malloc(m_images.size() * sizeof(char *));
     if (m_images_ptrs == NULL)
         return -1;
 
     int i = 0;
-    for(std::vector<std::wstring>::iterator list_iter = m_images.begin(); 
+    for(std::vector<std::string>::iterator list_iter = m_images.begin(); 
         list_iter != m_images.end(); list_iter++) {
             m_images_ptrs[i++] = (*list_iter).c_str();
     }
 
-    m_img_info = tsk_img_open(i, m_images_ptrs, TSK_IMG_TYPE_DETECT, 512);
+    m_img_info = tsk_img_open_utf8(i, m_images_ptrs, imageType, sectorSize);
     if (m_img_info == NULL) 
     {
         std::wstringstream logMessage;
@@ -187,32 +174,8 @@ int TskImageFileTsk::extractFiles()
     m_db.addImageInfo((int)m_img_info->itype, m_img_info->sector_size);
 
     for (uint32_t i = 0; i < m_images.size(); i++) {
-        char *img_ptr = NULL;
-#ifdef TSK_WIN32
-        char img2[1024];
-        UTF8 *ptr8;
-        UTF16 *ptr16;
-
-        ptr8 = (UTF8 *) img2;
-        ptr16 = (UTF16 *) m_images_ptrs[i];
-
-        TSKConversionResult retval =
-            tsk_UTF16toUTF8_lclorder((const UTF16 **) &ptr16, (UTF16 *)
-            & ptr16[wcslen(m_images_ptrs[i]) + 1], &ptr8,
-            (UTF8 *) ((uintptr_t) ptr8 + 1024), TSKlenientConversion);
-        if (retval != TSKconversionOK) 
-        {
-            std::wstringstream msg;
-            msg << L"TskImageFileTsk::extractFiles: Error converting image to UTF-8" << std::endl;
-            LOGERROR(msg.str());
-
-            return 1;
-        }
-        img_ptr = img2;
-#else
-        img_ptr = (char *) a_images[i];
-#endif
-
+        const char *img_ptr = NULL;
+        img_ptr = m_images[i].c_str();
         m_db.addImageName(img_ptr);
      }
 
@@ -315,7 +278,7 @@ int TskImageFileTsk::openFile(const uint64_t fileId)
 }
 
 int TskImageFileTsk::readFile(const int handle, 
-                              const uint64_t byte_offset, 
+                              const TSK_OFF_T byte_offset, 
                               const size_t byte_len, 
                               char * buffer)
 {
@@ -377,3 +340,91 @@ int TskImageFileTsk::closeFile(const int handle)
 
     return 0;
 }
+
+std::vector<std::wstring> TskImageFileTsk::getFileNamesW() const
+{
+    std::vector<std::wstring>imagesWide;
+    for (size_t i = 0; i < imagesWide.size(); i++) {
+        imagesWide.push_back(TskUtilities::toUTF16(m_images[i]));
+    }
+    return imagesWide;
+}
+
+int TskImageFileTsk::open(const TSK_TCHAR *imageFile, 
+                          const TSK_IMG_TYPE_ENUM imageType,
+                          const unsigned int sectorSize)
+{
+    if (!m_images.empty()) {
+        close();        
+    }
+#ifdef TSK_WIN32
+    m_images.push_back(TskUtilities::toUTF8(imageFile));
+#else
+    m_images.push_back(std::string(imageFile));
+#endif
+    return openImages(imageType, sectorSize);
+}
+
+int TskImageFileTsk::open(const int numberOfImages, 
+                          const TSK_TCHAR * const imageFile[], 
+                          const TSK_IMG_TYPE_ENUM imageType,
+                          const unsigned int sectorSize)
+{
+    if (!m_images.empty()) {
+        close();        
+    }
+    for (int i = 0; i < numberOfImages; i++) {
+#ifdef WIN32
+        m_images.push_back(TskUtilities::toUTF8(imageFile[i]));
+#else
+        m_images.push_back(std::string(imageFile[i]));
+#endif
+    }
+    return openImages(imageType, sectorSize);
+}
+
+int TskImageFileTsk::open(const std::string &imageFile, 
+                          const TSK_IMG_TYPE_ENUM imageType,
+                          const unsigned int sectorSize)
+{
+    if (!m_images.empty()) {
+        close();        
+    }
+    m_images.push_back(imageFile);
+    return openImages(imageType, sectorSize);
+}
+
+int TskImageFileTsk::open(const std::wstring &imageFile, 
+                          const TSK_IMG_TYPE_ENUM imageType,
+                          const unsigned int sectorSize)
+{
+    return open(TskUtilities::toUTF8(imageFile), imageType, sectorSize);
+}
+
+int TskImageFileTsk::open(const std::vector<std::string> &imageFile, 
+                          const TSK_IMG_TYPE_ENUM imageType,
+                          const unsigned int sectorSize)
+{
+    if (!m_images.empty()) {
+        close();        
+    }
+    for (size_t i = 0; i < imageFile.size(); i++) {
+        m_images.push_back(imageFile[i]);
+    }
+    return openImages(imageType, sectorSize);
+}
+
+int TskImageFileTsk::open(const std::vector<std::wstring> &imageFile, 
+                          const TSK_IMG_TYPE_ENUM imageType,
+                          const unsigned int sectorSize)
+{
+    if (!m_images.empty()) {
+        close();        
+    }
+    for (size_t i = 0; i < imageFile.size(); i++) {
+        m_images.push_back(TskUtilities::toUTF8(imageFile[i]));
+    }
+    return openImages(imageType, sectorSize);
+}
+
+
diff --git a/framework/Extraction/TskImageFileTsk.h b/framework/tsk/framework/extraction/TskImageFileTsk.h
similarity index 51%
rename from framework/Extraction/TskImageFileTsk.h
rename to framework/tsk/framework/extraction/TskImageFileTsk.h
index 0a0af911a33dc918240051d2a2dd728098c70728..a4e73c3313538ce0c08d53f12201ed32070c5ef3 100755
--- a/framework/Extraction/TskImageFileTsk.h
+++ b/framework/tsk/framework/extraction/TskImageFileTsk.h
@@ -17,9 +17,9 @@
 #define _TSK_IMAGEFILETSK_H
 
 #include "TskImageFile.h"
-#include "Services/TskImgDB.h"
-#include "Services/Log.h"
-#include "tsk3/libtsk.h"
+#include "tsk/framework/services/TskImgDB.h"
+#include "tsk/framework/services/Log.h"
+#include "tsk/libtsk.h"
 
 #include <vector>
 #include <map>
@@ -36,12 +36,11 @@ class TSK_FRAMEWORK_API TskImageFileTsk : public TskImageFile
 
     virtual ~TskImageFileTsk();
 
-    virtual int open(const std::vector<std::wstring> &images);
-    virtual int open(const TSK_TCHAR *imageFile);
     virtual int open();
     virtual void close();
 
-    virtual std::vector<std::wstring> filenames() const { return m_images; }
+    virtual std::vector<std::string> getFileNames() const { return m_images; }
+    virtual std::vector<std::wstring> getFileNamesW() const;
 
     virtual int getSectorData(const uint64_t sect_start, 
                               const uint64_t sect_len, 
@@ -56,17 +55,42 @@ class TSK_FRAMEWORK_API TskImageFileTsk : public TskImageFile
     virtual int openFile(const uint64_t fileId);
 
     virtual int readFile(const int handle, 
-                         const uint64_t byte_offset, 
+                         const TSK_OFF_T byte_offset, 
                          const size_t byte_len, 
                          char * buffer);
 
     virtual int closeFile(const int handle);
 
+    virtual int open(const TSK_TCHAR *imageFile, 
+                     const TSK_IMG_TYPE_ENUM imageType = TSK_IMG_TYPE_DETECT, 
+                     const unsigned int sectorSize = 0);
+
+    virtual int open(const int numberOfImages, 
+                     const TSK_TCHAR * const imageFile[], 
+                     const TSK_IMG_TYPE_ENUM imageType = TSK_IMG_TYPE_DETECT, 
+                     const unsigned int sectorSize = 0);
+
+    virtual int open(const std::string &imageFile, 
+                     const TSK_IMG_TYPE_ENUM imageType = TSK_IMG_TYPE_DETECT, 
+                     const unsigned int sectorSize = 0);
+
+    virtual int open(const std::wstring &imageFile, 
+                     const TSK_IMG_TYPE_ENUM imageType = TSK_IMG_TYPE_DETECT, 
+                     const unsigned int sectorSize = 0);
+
+    virtual int open(const std::vector<std::string> &imageFile, 
+                     const TSK_IMG_TYPE_ENUM imageType = TSK_IMG_TYPE_DETECT, 
+                     const unsigned int sectorSize = 0);
+
+    virtual int open(const std::vector<std::wstring> &imageFile,
+                     const TSK_IMG_TYPE_ENUM imageType = TSK_IMG_TYPE_DETECT,
+                     const unsigned int sectorSize = 0);
+
 private:
     TskImgDB &m_db;
     TSK_IMG_INFO *m_img_info;
-    std::vector<std::wstring> m_images;
-    const wchar_t **m_images_ptrs;
+    std::vector<std::string> m_images;
+    const char **m_images_ptrs;
 
     struct TSK_FRAMEWORK_API OPEN_FILE
     {
@@ -77,7 +101,8 @@ class TSK_FRAMEWORK_API TskImageFileTsk : public TskImageFile
     std::vector<OPEN_FILE *> m_openFiles; // maps handle returned from openFile() to the open TSK_FS_FILE object
     std::map<uint64_t, TSK_FS_INFO *> m_openFs; // maps the byte offset of a file system to its open object.
 
-    int openImages();
+    int openImages(const TSK_IMG_TYPE_ENUM imageType = TSK_IMG_TYPE_DETECT,
+                   const unsigned int sectorSize = 0);
 
     static void closeFs(std::pair<uint64_t, TSK_FS_INFO *> pair);
 };
diff --git a/framework/Extraction/TskL01Extract.cpp b/framework/tsk/framework/extraction/TskL01Extract.cpp
similarity index 95%
rename from framework/Extraction/TskL01Extract.cpp
rename to framework/tsk/framework/extraction/TskL01Extract.cpp
index 430627a6fa5c4bde8b725ccd8b293f0e0e178bc9..ef34c434e4d222937b236e9361bec4e1c405ac73 100755
--- a/framework/Extraction/TskL01Extract.cpp
+++ b/framework/tsk/framework/extraction/TskL01Extract.cpp
@@ -27,12 +27,12 @@
 #include "Poco/MemoryStream.h"
 
 // Framework includes
-#include "framework_i.h" // to get TSK_FRAMEWORK_API
+#include "tsk/framework/framework_i.h" // to get TSK_FRAMEWORK_API
 #include "TskL01Extract.h"
-#include "Services/TskServices.h"
-#include "Utilities/TskUtilities.h"
-#include "tsk3/base/tsk_base_i.h"
-#include "tsk3/img/tsk_img_i.h"
+#include "tsk/framework/services/TskServices.h"
+#include "tsk/framework/utilities/TskUtilities.h"
+#include "tsk/base/tsk_base_i.h"
+#include "tsk/img/tsk_img_i.h"
 
 #ifndef HAVE_LIBEWF
 #define HAVE_LIBEWF 1
@@ -40,7 +40,7 @@
 
 namespace ewf
 {
-    #include "ewf.h"
+    #include "tsk/img/ewf.h"
 }
 
 namespace
@@ -248,13 +248,14 @@ int TskL01Extract::extractFiles(TskFile * containerFile /*= NULL*/)
                 // Will save zero-length files
                 if (saveFile(fileId, *it) == 0)
                 {
-                    // Schedule
                     m_db.updateFileStatus(fileId, TskImgDB::IMGDB_FILES_STATUS_READY_FOR_ANALYSIS);
-                    TskServices::Instance().getScheduler().schedule(Scheduler::FileAnalysis, fileId, fileId);
+                    m_fileIdsToSchedule.insert(fileId);
                 }
             }
         }
 
+        // Schedule files for analysis
+        scheduleFiles();
     }
     catch (TskException &ex)
     {
@@ -777,3 +778,29 @@ int TskL01Extract::saveFile(const uint64_t fileId, const ArchivedFile &archivedF
     }
 }
 
+void TskL01Extract::scheduleFiles()
+{
+    if (m_fileIdsToSchedule.empty())
+        return;
+
+    Scheduler& scheduler = TskServices::Instance().getScheduler();
+
+    std::set<uint64_t>::const_iterator it = m_fileIdsToSchedule.begin();
+    uint64_t startId = *it, endId = *it;
+
+    while (++it != m_fileIdsToSchedule.end())
+    {
+        if (*it > endId + 1)
+        {
+            scheduler.schedule(Scheduler::FileAnalysis, startId, endId);
+            startId = endId = *it;
+        }
+        else
+        {
+            endId++;
+        }
+    }
+
+    scheduler.schedule(Scheduler::FileAnalysis, startId, endId);
+    m_fileIdsToSchedule.clear();
+}
diff --git a/framework/Extraction/TskL01Extract.h b/framework/tsk/framework/extraction/TskL01Extract.h
similarity index 91%
rename from framework/Extraction/TskL01Extract.h
rename to framework/tsk/framework/extraction/TskL01Extract.h
index 40ca994b17a71df21fc8f799be76e01a38718367..50b9c310887bbf8c5d310ae850fdb5fb887a6d95 100755
--- a/framework/Extraction/TskL01Extract.h
+++ b/framework/tsk/framework/extraction/TskL01Extract.h
@@ -17,13 +17,14 @@
 
 #include <vector>
 #include <map>
+#include <set>
 
 #include "Poco/Path.h"
 
 #include "TskExtract.h"
-#include "Services/TskImgDB.h"
-#include "Services/Log.h"
-#include "tsk3/libtsk.h"
+#include "tsk/framework/services/TskImgDB.h"
+#include "tsk/framework/services/Log.h"
+#include "tsk/libtsk.h"
 
 
 namespace ewf
@@ -76,12 +77,14 @@ class TskL01Extract : public TskArchiveExtraction::TskExtract
     const uint32_t getAccessTime(ewf::libewf_file_entry_t *node);
     const uint32_t getModifiedTime(ewf::libewf_file_entry_t *node);
     int                 saveFile(const uint64_t fileId, const ArchivedFile &archivedFile);
+    void                scheduleFiles();
 
     std::string  m_archivePath;
     TskFile      *m_containerFile;
     TskImgDB     &m_db;
     TSK_IMG_INFO *m_imgInfo;
     std::vector<ArchivedFile> m_archivedFiles;
+    std::set<uint64_t> m_fileIdsToSchedule;
 };
 
 #endif
diff --git a/framework/tsk/framework/file/Makefile.am b/framework/tsk/framework/file/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..59970a1dc66d9cfe9d82f457f00197615e553961
--- /dev/null
+++ b/framework/tsk/framework/file/Makefile.am
@@ -0,0 +1,11 @@
+AM_CXXFLAGS = -I.. -I../.. -I../../../.. -Wall
+
+noinst_LTLIBRARIES = libfwfile.la
+libfwfile_la_SOURCES = \
+    TskFile.cpp \
+    TskFile.h \
+    TskFileManager.h \
+    TskFileManagerImpl.cpp \
+    TskFileManagerImpl.h \
+    TskFileTsk.cpp \
+    TskFileTsk.h
diff --git a/framework/File/TskFile.cpp b/framework/tsk/framework/file/TskFile.cpp
similarity index 78%
rename from framework/File/TskFile.cpp
rename to framework/tsk/framework/file/TskFile.cpp
index eda24b960e728ed04f9548fb2b9f96c35774474a..ddec7fc5c4260334fbbc59098f6405e47fdcef13 100755
--- a/framework/File/TskFile.cpp
+++ b/framework/tsk/framework/file/TskFile.cpp
@@ -18,10 +18,7 @@
 
 // Framework includes
 #include "TskFile.h"
-#include "Services/TskServices.h"
-
-// Poco includes
-#include "Poco/NumberFormatter.h"
+#include "tsk/framework/services/TskServices.h"
 
 /**
  * Delete the TskFile object.
@@ -38,7 +35,7 @@ void TskFile::initialize()
 
     if (imgDB != NULL) {
         if (imgDB->getFileRecord(m_id, m_fileRecord)) {
-            throw TskException("TskFile::initialize: Error looking up file: " + Poco::NumberFormatter::format(m_id));
+            throw TskException("TskFile::initialize: Error looking up file: " + m_id);
         }
     }
 }
@@ -377,65 +374,12 @@ vector<TskBlackboardArtifact> TskFile::getAllArtifacts()
     return TskServices::Instance().getBlackboard().getMatchingArtifacts(str.str());
 }
 
-/**
- * @deprecated
- * Get all attributes associated with this file with the given type name
- * @param attributeTypeName type name
- * @returns all matching attributes will return an empty vector if there are no matches
- */
-vector<TskBlackboardAttribute> TskFile::getAttributes(string attributeTypeName)
-{
-    stringstream str;
-    str << "WHERE obj_id = " << m_id << " AND attribute_type_id = " << TskServices::Instance().getBlackboard().attrTypeNameToTypeID(attributeTypeName);
-    return TskServices::Instance().getBlackboard().getMatchingAttributes(str.str());
-}
-
-/**
- * @deprecated
- * Get all attributes associated with this file with the given type id
- * @param attributeTypeID type id
- * @returns all matching attributes will return an empty vector if there are no matches
- */
-vector<TskBlackboardAttribute> TskFile::getAttributes(int attributeTypeID)
-{
-    stringstream str;
-    str << "WHERE obj_id = " << m_id << " AND attribute_type_id = " << attributeTypeID;
-    return TskServices::Instance().getBlackboard().getMatchingAttributes(str.str());
-}
-
-/**
- * @deprecated
- * Get all attributes associated with this file with the given type
- * @param type attributes type
- * @returns all matching attributes will return an empty vector if there are no matches
- */
-vector<TskBlackboardAttribute> TskFile::getAttributes(TSK_ATTRIBUTE_TYPE type)
-{
-    stringstream str;
-    str << "WHERE obj_id = " << m_id << " AND attribute_type_id = " << type;
-    return TskServices::Instance().getBlackboard().getMatchingAttributes(str.str());
-}
-
-/**
- * @deprecated
- * Get all attributes associated with this file
- * @returns all attributes
- */
-vector<TskBlackboardAttribute> TskFile::getAllAttributes()
-{
-    stringstream str;
-    str << "WHERE obj_id = " << m_id;
-    return TskServices::Instance().getBlackboard().getMatchingAttributes(str.str());
-}
-
 /**
  * Get the general info artifact for this file
  * @returns the general info artifact or creates it if it has not already been made
  */
 TskBlackboardArtifact TskFile::getGenInfo()
 {
-    TskBlackboard& blackboard = TskServices::Instance().getBlackboard();
-
     vector<TskBlackboardArtifact> artifacts;
     artifacts = getArtifacts(TSK_GEN_INFO);
 
diff --git a/framework/File/TskFile.h b/framework/tsk/framework/file/TskFile.h
similarity index 91%
rename from framework/File/TskFile.h
rename to framework/tsk/framework/file/TskFile.h
index ae0732829cdd93a74950f294f651c27481ce13d3..ed32f00a5125eaf96e113e7cb33d356e91190db8 100755
--- a/framework/File/TskFile.h
+++ b/framework/tsk/framework/file/TskFile.h
@@ -21,8 +21,8 @@
 #include <ios>
 
 // Framework includes
-#include "Services/TskImgDB.h"
-#include "Services/TskBlackboardArtifact.h"
+#include "tsk/framework/services/TskImgDB.h"
+#include "tsk/framework/services/TskBlackboardArtifact.h"
 
 /**
  * An interface that is used to represent a file. This interface
@@ -238,10 +238,6 @@ class TSK_FRAMEWORK_API TskFile
     virtual vector<TskBlackboardArtifact> getArtifacts(int artifactTypeID);
     virtual vector<TskBlackboardArtifact> getArtifacts(TSK_ARTIFACT_TYPE type);
     virtual vector<TskBlackboardArtifact> getAllArtifacts();
-    virtual vector<TskBlackboardAttribute> getAttributes(string attributeTypeName);
-    virtual vector<TskBlackboardAttribute> getAttributes(int attributeTypeID);
-    virtual vector<TskBlackboardAttribute> getAttributes(TSK_ATTRIBUTE_TYPE type);
-    virtual vector<TskBlackboardAttribute> getAllAttributes();
     virtual TskBlackboardArtifact getGenInfo();
     virtual void addGenInfoAttribute(TskBlackboardAttribute attr);
 
diff --git a/framework/File/TskFileManager.h b/framework/tsk/framework/file/TskFileManager.h
similarity index 94%
rename from framework/File/TskFileManager.h
rename to framework/tsk/framework/file/TskFileManager.h
index 3319e00669faa235446f9d290ddeb4cdef164a41..8d816655a69f20a5e7d43515b7e4e8d746289e98 100755
--- a/framework/File/TskFileManager.h
+++ b/framework/tsk/framework/file/TskFileManager.h
@@ -16,7 +16,8 @@
 #ifndef _TSK_FILEMANAGER_H
 #define _TSK_FILEMANAGER_H
 
-#include "framework_i.h"
+#include <memory>
+#include "tsk/framework/framework_i.h"
 #include "TskFile.h"
 
 
@@ -160,7 +161,7 @@ class TSK_FRAMEWORK_API TskFileManager
      */
     virtual void copyFile(const uint64_t fileId, const std::wstring& filePath)
     {
-        copyFile(getFile(fileId), filePath);
+        copyFile(std::auto_ptr<TskFile>(getFile(fileId)).get(), filePath);
     }
 
     /**
@@ -187,7 +188,7 @@ class TSK_FRAMEWORK_API TskFileManager
      */
     virtual void copyDirectory(uint64_t directoryIdToCopy, const std::wstring& destinationPath, const bool bRecurse = false)
     {
-        copyDirectory(getFile(directoryIdToCopy), destinationPath, bRecurse);
+        copyDirectory(std::auto_ptr<TskFile>(getFile(directoryIdToCopy)).get(), destinationPath, bRecurse);
     }
 
     /**
@@ -225,7 +226,7 @@ class TSK_FRAMEWORK_API TskFileManager
      */
     virtual void deleteFile(const uint64_t fileId)
     {
-        deleteFile(getFile(fileId));
+        deleteFile(std::auto_ptr<TskFile>(getFile(fileId)).get());
     }
 
 protected:
diff --git a/framework/File/TskFileManagerImpl.cpp b/framework/tsk/framework/file/TskFileManagerImpl.cpp
similarity index 93%
rename from framework/File/TskFileManagerImpl.cpp
rename to framework/tsk/framework/file/TskFileManagerImpl.cpp
index 54be303abffbac98f070215afe563d5f540613b4..d85061261643adc876c38021c5a5c54926e93b8b 100755
--- a/framework/File/TskFileManagerImpl.cpp
+++ b/framework/tsk/framework/file/TskFileManagerImpl.cpp
@@ -13,14 +13,16 @@
  * Default implementation of the TskFileManager class.
  */
 
-// TSK Framework includes
+#include <sstream>
+#include <cstring>
+
+// Framework includes
 #include "TskFileManagerImpl.h"
 #include "TskFileTsk.h"
-#include "Services/TskImgDB.h"
-#include "Services/TskSystemProperties.h"
-#include "Services/TskServices.h"
-#include "Utilities/TskException.h"
-#include "Utilities/TskUtilities.h"
+#include "tsk/framework/services/TskSystemProperties.h"
+#include "tsk/framework/services/TskServices.h"
+#include "tsk/framework/utilities/TskException.h"
+#include "tsk/framework/utilities/TskUtilities.h"
 
 // Poco includes
 #include "Poco/Exception.h"
@@ -367,7 +369,9 @@ void TskFileManagerImpl::copyDirectory(TskFile* directoryToCopy, const std::wstr
 
 				if (pFile == NULL)
 				{
-					throw TskException("Failed to create file object for file id " + Poco::NumberFormatter::format(*it));
+				  std::stringstream msg;
+				  msg << "Failed to create file object for file id " << *it;
+				  throw TskException(msg.str());
 				}
 
 				if (pFile->isDirectory() && bRecurse)
@@ -383,6 +387,7 @@ void TskFileManagerImpl::copyDirectory(TskFile* directoryToCopy, const std::wstr
 					filePath.append(pFile->getName());
 					copyFile(pFile, TskUtilities::toUTF16(filePath.toString()));
 				}
+                delete pFile;
 			}
 		}
 	}
@@ -404,10 +409,12 @@ void TskFileManagerImpl::addFile(const uint64_t fileId, std::istream& istr)
 
     if (pFile != NULL && pFile->exists())
     {
+        delete pFile;
         std::stringstream msg;
         msg << "File id " << fileId << " already exists.";
         throw TskFileException(msg.str());
     }
+    delete pFile;
 
     try
     {
diff --git a/framework/File/TskFileManagerImpl.h b/framework/tsk/framework/file/TskFileManagerImpl.h
similarity index 100%
rename from framework/File/TskFileManagerImpl.h
rename to framework/tsk/framework/file/TskFileManagerImpl.h
diff --git a/framework/File/TskFileTsk.cpp b/framework/tsk/framework/file/TskFileTsk.cpp
similarity index 94%
rename from framework/File/TskFileTsk.cpp
rename to framework/tsk/framework/file/TskFileTsk.cpp
index 54c549eda3860740fd1a0b20df180d2c51fffbc9..df0f0fff326dfb9fc517259c1349a0b0fe42cd08 100755
--- a/framework/File/TskFileTsk.cpp
+++ b/framework/tsk/framework/file/TskFileTsk.cpp
@@ -18,9 +18,9 @@
 
 // Framework includes
 #include "TskFileTsk.h"
-#include "Services/TskServices.h"
-#include "Utilities/TskException.h"
-#include "Utilities/TskUtilities.h"
+#include "tsk/framework/services/TskServices.h"
+#include "tsk/framework/utilities/TskException.h"
+#include "tsk/framework/utilities/TskUtilities.h"
 #include "TskFileManagerImpl.h"
 
 /**
@@ -203,7 +203,7 @@ ssize_t TskFileTsk::read(char *buf, const size_t count)
             int bytesRead = 0;
             uint64_t bytesToRead = 0;
             uint64_t fileSize = m_unusedSectorsRecord.sectLen * 512;
-            if (m_offset + count > fileSize) {
+            if ((uint64_t)m_offset + count > fileSize) {
                 if (fileSize - m_offset > 0)
                     bytesToRead = fileSize - m_offset;
                 else
@@ -305,4 +305,4 @@ TSK_OFF_T TskFileTsk::seek(const TSK_OFF_T off, std::ios::seekdir origin)
         }
         return m_offset;
     }
-}
\ No newline at end of file
+}
diff --git a/framework/File/TskFileTsk.h b/framework/tsk/framework/file/TskFileTsk.h
similarity index 92%
rename from framework/File/TskFileTsk.h
rename to framework/tsk/framework/file/TskFileTsk.h
index 62074ab8baa7b507402b60cfd006b841d900ae36..ac50bd571992412d01206041c56cefbd3834d694 100755
--- a/framework/File/TskFileTsk.h
+++ b/framework/tsk/framework/file/TskFileTsk.h
@@ -21,8 +21,8 @@
 
 // Framework includes
 #include "TskFile.h"
-#include "Services/TskImgDB.h"
-#include "tsk3/base/tsk_os.h"
+#include "tsk/framework/services/TskImgDB.h"
+#include "tsk/base/tsk_os.h"
 
 // Poco includes
 #include "Poco/File.h"
diff --git a/framework/tsk/framework/framework.h b/framework/tsk/framework/framework.h
new file mode 100755
index 0000000000000000000000000000000000000000..df15c3c32e646a81105b2596c5b655552146bb72
--- /dev/null
+++ b/framework/tsk/framework/framework.h
@@ -0,0 +1,47 @@
+/*
+ *
+ *  The Sleuth Kit
+ *
+ *  Contact: Brian Carrier [carrier <at> sleuthkit [dot] org]
+ *  Copyright (c) 2010-2012 Basis Technology Corporation. All Rights
+ *  reserved.
+ *
+ *  This software is distributed under the Common Public License 1.0
+ */
+
+#ifndef _TSK_OSSLIBTSK_H
+#define _TSK_OSSLIBTSK_H
+
+/**
+ * Include this file when incorporating the framework into an
+ * application.
+ */
+
+#include "tsk/framework/framework_i.h"
+
+#include "tsk/framework/services/TskServices.h"
+#include "tsk/framework/services/Log.h"
+#include "tsk/framework/services/TskImgDB.h"
+#include "tsk/framework/services/Scheduler.h"
+#include "tsk/framework/services/TskSystemProperties.h"
+#include "tsk/framework/services/TskBlackboard.h"
+#include "tsk/framework/services/TskDBBlackboard.h"
+#include "tsk/framework/utilities/SectorRuns.h"
+#include "tsk/framework/utilities/TskException.h"
+#include "tsk/framework/utilities/TskUtilities.h"
+#include "tsk/framework/extraction/TskImageFileTsk.h"
+#include "tsk/framework/extraction/CarveExtract.h"
+#include "tsk/framework/extraction/CarvePrep.h"
+#include "tsk/framework/file/TskFileManager.h"
+#include "tsk/framework/file/TskFile.h"
+#include "tsk/framework/pipeline/TskPipelineManager.h"
+#include "tsk/framework/pipeline/TskPipeline.h"
+#include "tsk/framework/pipeline/TskFileAnalysisPipeline.h"
+#include "tsk/framework/pipeline/TskReportPipeline.h"
+#include "tsk/framework/pipeline/TskModule.h"
+#include "tsk/framework/pipeline/TskExecutableModule.h"
+#include "tsk/framework/pipeline/TskPluginModule.h"
+#include "tsk/framework/pipeline/TskFileAnalysisPluginModule.h"
+#include "tsk/framework/pipeline/TskReportPluginModule.h"
+
+#endif
diff --git a/framework/framework_i.h b/framework/tsk/framework/framework_i.h
similarity index 92%
rename from framework/framework_i.h
rename to framework/tsk/framework/framework_i.h
index 22e93fedd519a3d395fe0d08cb29678b9b83d89d..285382a502235242cb61755f25bd5bb2745f64d6 100755
--- a/framework/framework_i.h
+++ b/framework/tsk/framework/framework_i.h
@@ -13,7 +13,7 @@
 
 #include <stdlib.h>
 #include <stdio.h>
-#include <tsk3/libtsk.h>
+#include <tsk/libtsk.h>
 
 #define MAX_BUFF_LENGTH 1024
 
diff --git a/framework/tsk/framework/pipeline/Makefile.am b/framework/tsk/framework/pipeline/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..fe91d9bf09e03d1bf2255e37f44038b44705ffb8
--- /dev/null
+++ b/framework/tsk/framework/pipeline/Makefile.am
@@ -0,0 +1,22 @@
+AM_CXXFLAGS = -I.. -I../.. -I../../../.. -Wall
+
+noinst_LTLIBRARIES = libfwpipe.la
+libfwpipe_la_SOURCES = \
+    TskExecutableModule.cpp \
+    TskExecutableModule.h \
+    TskFileAnalysisPipeline.cpp \
+    TskFileAnalysisPipeline.h \
+    TskFileAnalysisPluginModule.cpp \
+    TskFileAnalysisPluginModule.h \
+    TskModule.cpp \
+    TskModule.h \
+    TskPipeline.cpp \
+    TskPipeline.h \
+    TskPipelineManager.cpp \
+    TskPipelineManager.h \
+    TskPluginModule.cpp \
+    TskPluginModule.h \
+    TskReportPipeline.cpp \
+    TskReportPipeline.h \
+    TskReportPluginModule.cpp \
+    TskReportPluginModule.h
diff --git a/framework/Pipeline/TskExecutableModule.cpp b/framework/tsk/framework/pipeline/TskExecutableModule.cpp
similarity index 93%
rename from framework/Pipeline/TskExecutableModule.cpp
rename to framework/tsk/framework/pipeline/TskExecutableModule.cpp
index 84958cf496090044f25bf110444e89a764b52fde..cd869f00e9948eab01aaa99bf6407625f5d38d91 100755
--- a/framework/Pipeline/TskExecutableModule.cpp
+++ b/framework/tsk/framework/pipeline/TskExecutableModule.cpp
@@ -19,10 +19,10 @@
 
 // Framework includes
 #include "TskExecutableModule.h"
-#include "Services/TskServices.h"
-#include "Utilities/TskException.h"
-#include "File/TskFileManagerImpl.h"
-#include "Utilities/TskUtilities.h"
+#include "tsk/framework/services/TskServices.h"
+#include "tsk/framework/utilities/TskException.h"
+#include "tsk/framework/file/TskFileManagerImpl.h"
+#include "tsk/framework/utilities/TskUtilities.h"
 
 // Poco includes
 #include "Poco/String.h"
diff --git a/framework/Pipeline/TskExecutableModule.h b/framework/tsk/framework/pipeline/TskExecutableModule.h
similarity index 100%
rename from framework/Pipeline/TskExecutableModule.h
rename to framework/tsk/framework/pipeline/TskExecutableModule.h
diff --git a/framework/Pipeline/TskFileAnalysisPipeline.cpp b/framework/tsk/framework/pipeline/TskFileAnalysisPipeline.cpp
similarity index 93%
rename from framework/Pipeline/TskFileAnalysisPipeline.cpp
rename to framework/tsk/framework/pipeline/TskFileAnalysisPipeline.cpp
index fce2381c57261b7fdd2179597066e05723187245..e9ca1eb96be2ad21c6c933854bb50a7d52db367a 100755
--- a/framework/Pipeline/TskFileAnalysisPipeline.cpp
+++ b/framework/tsk/framework/pipeline/TskFileAnalysisPipeline.cpp
@@ -17,8 +17,8 @@
 #include "TskFileAnalysisPipeline.h"
 
 // TSK Framework includes
-#include "File/TskFileManagerImpl.h"
-#include "Services/TskServices.h"
+#include "tsk/framework/file/TskFileManagerImpl.h"
+#include "tsk/framework/services/TskServices.h"
 
 // Poco includes
 #include "Poco/AutoPtr.h"
@@ -26,6 +26,7 @@
 
 // C/C++ library includes
 #include <sstream>
+#include <memory>
 
 void TskFileAnalysisPipeline::run(const uint64_t fileId)
 {
@@ -95,7 +96,7 @@ void TskFileAnalysisPipeline::run(TskFile* file)
         bool bModuleFailed = false;
 
         Poco::Stopwatch stopWatch;
-        for (int i = 0; i < m_modules.size(); i++)
+        for (size_t i = 0; i < m_modules.size(); i++)
         {
             // we have no way of knowing if the file was closed by a module,
             // so always make sure it is open
diff --git a/framework/Pipeline/TskFileAnalysisPipeline.h b/framework/tsk/framework/pipeline/TskFileAnalysisPipeline.h
similarity index 100%
rename from framework/Pipeline/TskFileAnalysisPipeline.h
rename to framework/tsk/framework/pipeline/TskFileAnalysisPipeline.h
diff --git a/framework/Pipeline/TskFileAnalysisPluginModule.cpp b/framework/tsk/framework/pipeline/TskFileAnalysisPluginModule.cpp
similarity index 93%
rename from framework/Pipeline/TskFileAnalysisPluginModule.cpp
rename to framework/tsk/framework/pipeline/TskFileAnalysisPluginModule.cpp
index edb83ec9210650936b47355ba45d328dfc276406..6d417435be50de9bc5971fea22dc5d6c9d11051d 100755
--- a/framework/Pipeline/TskFileAnalysisPluginModule.cpp
+++ b/framework/tsk/framework/pipeline/TskFileAnalysisPluginModule.cpp
@@ -17,8 +17,8 @@
 #include "TskFileAnalysisPluginModule.h"
 
 // Framework includes
-#include "Services/TskServices.h"
-#include "Utilities/TskException.h"
+#include "tsk/framework/services/TskServices.h"
+#include "tsk/framework/utilities/TskException.h"
 
 // C/C++ library includes
 #include <sstream>
diff --git a/framework/Pipeline/TskFileAnalysisPluginModule.h b/framework/tsk/framework/pipeline/TskFileAnalysisPluginModule.h
similarity index 100%
rename from framework/Pipeline/TskFileAnalysisPluginModule.h
rename to framework/tsk/framework/pipeline/TskFileAnalysisPluginModule.h
diff --git a/framework/Pipeline/TskModule.cpp b/framework/tsk/framework/pipeline/TskModule.cpp
similarity index 93%
rename from framework/Pipeline/TskModule.cpp
rename to framework/tsk/framework/pipeline/TskModule.cpp
index f8f28a89b8526ecb02f1f756f60e2f60b1fde541..643a6840ee14d11fd6a012898c1011ee7e3cc0bb 100755
--- a/framework/Pipeline/TskModule.cpp
+++ b/framework/tsk/framework/pipeline/TskModule.cpp
@@ -17,8 +17,8 @@
 #include <sstream>
 
 #include "TskModule.h"
-#include "Services/TskServices.h"
-#include "Services/TskSystemProperties.h"
+#include "tsk/framework/services/TskServices.h"
+#include "tsk/framework/services/TskSystemProperties.h"
 
 #include "Poco/String.h"
 #include "Poco/Environment.h"
diff --git a/framework/Pipeline/TskModule.h b/framework/tsk/framework/pipeline/TskModule.h
similarity index 95%
rename from framework/Pipeline/TskModule.h
rename to framework/tsk/framework/pipeline/TskModule.h
index 20b5672ec33844ab076769c8f3693c72cf242570..dde738d47e4633f4654357060ace0b8ace299785 100755
--- a/framework/Pipeline/TskModule.h
+++ b/framework/tsk/framework/pipeline/TskModule.h
@@ -16,7 +16,7 @@
 #ifndef _TSK_MODULE_H
 #define _TSK_MODULE_H
 
-#include "File/TskFile.h"
+#include "tsk/framework/file/TskFile.h"
 
 /**
  * Interface for classes that represent different types of modules
diff --git a/framework/Pipeline/TskPipeline.cpp b/framework/tsk/framework/pipeline/TskPipeline.cpp
similarity index 93%
rename from framework/Pipeline/TskPipeline.cpp
rename to framework/tsk/framework/pipeline/TskPipeline.cpp
index e6643cff6262d8f1f6f9219811f3a9eef6094195..c6a9ca894d7c409a80540c537ac22927bdb4e6c7 100755
--- a/framework/Pipeline/TskPipeline.cpp
+++ b/framework/tsk/framework/pipeline/TskPipeline.cpp
@@ -19,22 +19,23 @@
 // TSK Framework includes
 #include "TskExecutableModule.h"
 #include "TskPluginModule.h"
-#include "File/TskFileManagerImpl.h"
-#include "Services/TskServices.h"
-#include "Utilities/TskException.h"
-#include "Utilities/TskUtilities.h"
+#include "tsk/framework/file/TskFileManagerImpl.h"
+#include "tsk/framework/services/TskServices.h"
+#include "tsk/framework/utilities/TskException.h"
+#include "tsk/framework/utilities/TskUtilities.h"
 
 // Poco includes
 #include "Poco/AutoPtr.h"
 #include "Poco/NumberParser.h"
 #include "Poco/DOM/DOMParser.h"
-#include "Poco/DOM/Nodelist.h"
+#include "Poco/DOM/NodeList.h"
 #include "Poco/DOM/Document.h"
 #include "Poco/UnicodeConverter.h"
 
 // C/C++ library includes
 #include <sstream>
 #include <assert.h>
+#include <memory>
 
 const std::string TskPipeline::MODULE_ELEMENT = "MODULE";
 const std::string TskPipeline::MODULE_TYPE_ATTR = "type";
@@ -135,10 +136,6 @@ void TskPipeline::initialize(const std::string & pipelineConfig)
                 throw TskException("TskPipeline::initialize - Module creation failed.");
             }
 
-            // Put the new module into the list if the slot isn't already taken.
-            int order = Poco::NumberParser::parse(pElem->getAttribute(TskPipeline::MODULE_ORDER_ATTR));
-            
-
             if (m_loadDll) 
             {
                 TskImgDB& imgDB = TskServices::Instance().getImgDB();
@@ -200,7 +197,9 @@ TskModule * TskPipeline::createModule(Poco::XML::Element *pElem)
             // Use auto_ptr to ensure that module will be deleted if there 
             // are exceptions.
             std::auto_ptr<TskExecutableModule> pModule(new TskExecutableModule());
-            pModule->setPath(pElem->getAttribute(TskPipeline::MODULE_LOCATION_ATTR));
+            std::string location(pElem->getAttribute(TskPipeline::MODULE_LOCATION_ATTR));
+            pModule->setPath(location);
+            //pModule->setPath(pElem->getAttribute(TskPipeline::MODULE_LOCATION_ATTR));
             pModule->setArguments(pElem->getAttribute(TskPipeline::MODULE_ARGS_ATTR));
             pModule->setOutput(pElem->getAttribute(TskPipeline::MODULE_OUTPUT_ATTR));
 
diff --git a/framework/Pipeline/TskPipeline.h b/framework/tsk/framework/pipeline/TskPipeline.h
similarity index 96%
rename from framework/Pipeline/TskPipeline.h
rename to framework/tsk/framework/pipeline/TskPipeline.h
index 673575fe3e7c45ff8dcd9ca9eff2223d2e2ecc45..4764634a359090e0b6a322d992e6cb36db9c0ca9 100755
--- a/framework/Pipeline/TskPipeline.h
+++ b/framework/tsk/framework/pipeline/TskPipeline.h
@@ -18,7 +18,7 @@
 #define _TSK_PIPELINE_H
 
 // TSK includes
-#include "tsk3/base/tsk_os.h" // for uint64_t
+#include "tsk/base/tsk_os.h" // for uint64_t
 
 // TSK Framework includes
 #include "TskModule.h"
diff --git a/framework/Pipeline/TskPipelineManager.cpp b/framework/tsk/framework/pipeline/TskPipelineManager.cpp
similarity index 95%
rename from framework/Pipeline/TskPipelineManager.cpp
rename to framework/tsk/framework/pipeline/TskPipelineManager.cpp
index 6664cacda27f7295cf36f975aa2b910bf41b36a2..c81c4a364575e0e3b35488ad2418a52476f49d76 100755
--- a/framework/Pipeline/TskPipelineManager.cpp
+++ b/framework/tsk/framework/pipeline/TskPipelineManager.cpp
@@ -19,9 +19,9 @@
 
 // Framework includes
 #include "TskPipelineManager.h"
-#include "Services/TskSystemProperties.h"
-#include "Utilities/TskException.h"
-#include "Services/TskServices.h"
+#include "tsk/framework/services/TskSystemProperties.h"
+#include "tsk/framework/utilities/TskException.h"
+#include "tsk/framework/services/TskServices.h"
 #include "TskFileAnalysisPipeline.h"
 #include "TskReportPipeline.h"
 
diff --git a/framework/Pipeline/TskPipelineManager.h b/framework/tsk/framework/pipeline/TskPipelineManager.h
similarity index 100%
rename from framework/Pipeline/TskPipelineManager.h
rename to framework/tsk/framework/pipeline/TskPipelineManager.h
diff --git a/framework/Pipeline/TskPluginModule.cpp b/framework/tsk/framework/pipeline/TskPluginModule.cpp
similarity index 70%
rename from framework/Pipeline/TskPluginModule.cpp
rename to framework/tsk/framework/pipeline/TskPluginModule.cpp
index 1aa0d2ecc5ee5423691ce8afcb5689513f9d8c68..8b3171aa3367cc80be92f5ecafdce6697e7d9f6f 100755
--- a/framework/Pipeline/TskPluginModule.cpp
+++ b/framework/tsk/framework/pipeline/TskPluginModule.cpp
@@ -17,10 +17,10 @@
 #include "TskPluginModule.h"
 
 // Framework includes
-#include "Services/TskServices.h"
-#include "Utilities/TskException.h"
-#include "File/TskFileManagerImpl.h"
-#include "TskVersionInfo.h"
+#include "tsk/framework/services/TskServices.h"
+#include "tsk/framework/utilities/TskException.h"
+#include "tsk/framework/file/TskFileManagerImpl.h"
+#include "tsk/framework/TskVersionInfo.h"
 
 // Poco includes
 #include "Poco/String.h"
@@ -63,11 +63,23 @@ void TskPluginModule::setPath(const std::string& location)
 {
     try
     {
-        // Autogenerate filename extension if needed
+        if (location.empty()) 
+        {
+            throw TskException("TskPluginModule::setPath: location is empty or missing.");
+        }
+
+        std::string os = Poco::Environment::osName();        
         Poco::Path tempPath = location;
+            
+        // If on Linux or Mac, then prefix with "lib"
+        if ((os.find("Linux") != std::string::npos) || (os.find("Darwin") != std::string::npos))
+        {
+            tempPath.setFileName("lib" + tempPath.getFileName());
+        } 
+
+        // Autogenerate filename extension if needed
         if (tempPath.getExtension().empty())
         {
-            std::string os = Poco::Environment::osName();
             if (os.find("Linux") != std::string::npos)
             {
                 tempPath.setExtension("so");
@@ -88,8 +100,40 @@ void TskPluginModule::setPath(const std::string& location)
             }
         }
 
-        // Call parent to search for location
-        TskModule::setPath(tempPath.toString());
+        // Search for location
+        // Absolute (fully qualified) paths are not allowed.
+        if (!tempPath.isAbsolute())
+        {
+            // See if we can find the executable in MODULE_DIR.
+            std::string pathsToSearch = GetSystemProperty(TskSystemProperties::MODULE_DIR);
+
+            bool found = Poco::Path::find(pathsToSearch, tempPath.toString(), tempPath);
+
+            // Confirm existence of file at found location.
+            Poco::File moduleFile(tempPath);
+            if (found && moduleFile.exists())
+            {
+                std::wstringstream msg;
+                msg << L"TskPluginModule::setPath - Module found at: "
+                    << tempPath.toString().c_str();
+                LOGINFO(msg.str());
+            }
+            else
+            {
+                std::stringstream msg;
+                msg << "TskPluginModule::setPath - Module not found: "
+                    << tempPath.toString().c_str();
+                throw TskException(msg.str());
+            }
+        }
+        else
+        {
+            std::stringstream msg;
+            msg << "TskPluginModule::setPath: location (" << tempPath.toString() << ") is not relative to MODULE_DIR.";
+            throw TskException(msg.str());
+        }
+
+        m_modulePath = tempPath.toString();
 
         // Load the library.
         m_sharedLibrary.load(m_modulePath);
@@ -224,24 +268,32 @@ void TskPluginModule::validateLibraryVersionInfo()
    }
 
    int frameworkVersion = TskVersionInfo::getFrameworkVersion();
-   int moduleFrameworkVersion = static_cast<int(*)()>(m_sharedLibrary.getSymbol(TskPluginModule::GET_FRAMEWORK_VERSION_SYMBOL))();
+   typedef int (*GetFrameworkVersion)();
+   GetFrameworkVersion getFrameworkVersion = (GetFrameworkVersion) m_sharedLibrary.getSymbol(TskPluginModule::GET_FRAMEWORK_VERSION_SYMBOL);
+   int moduleFrameworkVersion = getFrameworkVersion();
    if (((frameworkVersion >> 16) & 0xFFFF)  != (( moduleFrameworkVersion >> 16) & 0xFFFF))
    {
       throw TskException("TskPluginModule::validateLibraryVersionInfo : framework version mismatch");
    }
 
-   if (TskVersionInfo::getCompiler() != static_cast<TskVersionInfo::Compiler(*)()>(m_sharedLibrary.getSymbol(TskPluginModule::GET_COMPILER_SYMBOL))())
+   typedef TskVersionInfo::Compiler (*GetCompiler)();
+   GetCompiler getCompiler = (GetCompiler) m_sharedLibrary.getSymbol(TskPluginModule::GET_COMPILER_SYMBOL);
+   if (TskVersionInfo::getCompiler() != getCompiler())
    {
       throw TskException("TskPluginModule::validateLibraryVersionInfo : compiler mismatch");
    }
 
-   if (TskVersionInfo::getCompilerVersion() != static_cast<int(*)()>(m_sharedLibrary.getSymbol(TskPluginModule::GET_COMPILER_VERSION_SYMBOL))())
+   typedef int (*GetCompilerVersion)();
+   GetCompilerVersion getCompilerVersion = (GetCompilerVersion) m_sharedLibrary.getSymbol(TskPluginModule::GET_COMPILER_VERSION_SYMBOL);
+   if (TskVersionInfo::getCompilerVersion() != getCompilerVersion())
    {
       throw TskException("TskPluginModule::validateLibraryVersionInfo : compiler version mismatch");
    }
 
-   if (TskVersionInfo::getBuildType() != static_cast<int(*)()>(m_sharedLibrary.getSymbol(TskPluginModule::GET_BUILD_TYPE_SYMBOL))())
+   typedef TskVersionInfo::BuildType (*GetBuildType)();
+   GetBuildType getBuildType = (GetBuildType) m_sharedLibrary.getSymbol(TskPluginModule::GET_BUILD_TYPE_SYMBOL);
+   if (TskVersionInfo::getBuildType() != getBuildType())
    {
       throw TskException("TskPluginModule::validateLibraryVersionInfo : build target mismatch");
    }
-}
\ No newline at end of file
+}
diff --git a/framework/Pipeline/TskPluginModule.h b/framework/tsk/framework/pipeline/TskPluginModule.h
similarity index 100%
rename from framework/Pipeline/TskPluginModule.h
rename to framework/tsk/framework/pipeline/TskPluginModule.h
diff --git a/framework/Pipeline/TskReportPipeline.cpp b/framework/tsk/framework/pipeline/TskReportPipeline.cpp
similarity index 89%
rename from framework/Pipeline/TskReportPipeline.cpp
rename to framework/tsk/framework/pipeline/TskReportPipeline.cpp
index 20e3261f0aa26c41a6d52747a6a0a23920a775ea..ea27ffba369abd52ce1bfc7c32687c289b19e3fa 100755
--- a/framework/Pipeline/TskReportPipeline.cpp
+++ b/framework/tsk/framework/pipeline/TskReportPipeline.cpp
@@ -17,7 +17,7 @@
 #include "TskReportPipeline.h"
 
 // TSK Framework includes
-#include "Services/TskServices.h"
+#include "tsk/framework/services/TskServices.h"
 
 // Poco includes
 #include "Poco/Stopwatch.h"
@@ -28,7 +28,7 @@
 void TskReportPipeline::run()
 {
     Poco::Stopwatch stopWatch;
-    for (int i = 0; i < m_modules.size(); i++)
+    for (size_t i = 0; i < m_modules.size(); i++)
     {
         stopWatch.restart();
         TskModule::Status status = m_modules[i]->report();
diff --git a/framework/Pipeline/TskReportPipeline.h b/framework/tsk/framework/pipeline/TskReportPipeline.h
similarity index 92%
rename from framework/Pipeline/TskReportPipeline.h
rename to framework/tsk/framework/pipeline/TskReportPipeline.h
index fe0c0f2b27fe0f5fee79f44d13bd7eac992deee6..ebf414f708bb4431411374192cde3596f62a8d83 100755
--- a/framework/Pipeline/TskReportPipeline.h
+++ b/framework/tsk/framework/pipeline/TskReportPipeline.h
@@ -19,7 +19,7 @@
 // TSK Framework includes
 #include "TskPipeline.h"
 #include "TskReportPluginModule.h"
-#include "Utilities/TskException.h"
+#include "tsk/framework/utilities/TskException.h"
 
 // C/C++ library includes
 #include <string>
diff --git a/framework/Pipeline/TskReportPluginModule.cpp b/framework/tsk/framework/pipeline/TskReportPluginModule.cpp
similarity index 93%
rename from framework/Pipeline/TskReportPluginModule.cpp
rename to framework/tsk/framework/pipeline/TskReportPluginModule.cpp
index 18eb5d106b0ce36d930bd6b63201b2709145c89e..0a92d24de9dd29e59acbc45c3826fb19fad1c46d 100755
--- a/framework/Pipeline/TskReportPluginModule.cpp
+++ b/framework/tsk/framework/pipeline/TskReportPluginModule.cpp
@@ -17,8 +17,8 @@
 #include "TskReportPluginModule.h"
 
 // TSK Framework includes
-#include "Services/TskServices.h"
-#include "Utilities/TskException.h"
+#include "tsk/framework/services/TskServices.h"
+#include "tsk/framework/utilities/TskException.h"
 
 // C/C++ includes
 #include <sstream>
diff --git a/framework/Pipeline/TskReportPluginModule.h b/framework/tsk/framework/pipeline/TskReportPluginModule.h
similarity index 100%
rename from framework/Pipeline/TskReportPluginModule.h
rename to framework/tsk/framework/pipeline/TskReportPluginModule.h
diff --git a/framework/tsk/framework/services/Log.cpp b/framework/tsk/framework/services/Log.cpp
new file mode 100755
index 0000000000000000000000000000000000000000..950d9af3b1e459cdb1a877f7b867b2b7d20b7d12
--- /dev/null
+++ b/framework/tsk/framework/services/Log.cpp
@@ -0,0 +1,160 @@
+/*
+ * The Sleuth Kit
+ *
+ * Contact: Brian Carrier [carrier <at> sleuthkit [dot] org]
+ * Copyright (c) 2010-2012 Basis Technology Corporation. All Rights
+ * reserved.
+ *
+ * This software is distributed under the Common Public License 1.0
+ */
+
+#include <string.h>
+#include <errno.h>
+#include "string.h"
+#include "Log.h"
+#include "tsk/framework/utilities/TskUtilities.h"
+#include "sys/stat.h"
+#include <time.h>
+#include "Poco/FileStream.h"
+#include "Poco/Exception.h"
+#include "Poco/LineEndingConverter.h"
+
+// @@@ imports for directory creation and deletion
+//#include "windows.h"
+
+
+Log::Log()
+: m_filePath(""), m_outStream()
+{
+}
+
+
+/**
+ * Opens a single log file with a default name, based on the time
+ * that the log was opened.
+ * @returns 1 on error and 0 on success.
+ */
+int Log::open()
+{
+    struct tm *newtime;
+    time_t aclock;
+
+    time(&aclock);   // Get time in seconds
+    newtime = localtime(&aclock);   // Convert time to struct tm form 
+    wchar_t filename[MAX_BUFF_LENGTH];
+    swprintf(filename, MAX_BUFF_LENGTH, L"log_%.4d-%.2d-%.2d-%.2d-%.2d-%.2d.txt",
+        newtime->tm_year + 1900, newtime->tm_mon+1, newtime->tm_mday,  
+        newtime->tm_hour, newtime->tm_min, newtime->tm_sec);
+
+    return open(filename);
+}
+/**
+ * Open the single log file at the path specified. All messages
+ * will be printed to the log.
+ * @param a_logFileFullPath Path to logfile to open.
+ * @returns 1 on error and 0 on success.
+ */
+int Log::open(const wchar_t * a_logFileFullPath)
+{
+    return open(TskUtilities::toUTF8(a_logFileFullPath).c_str());
+}
+
+int Log::open(const char * a_logFileFullPath)
+{
+    close(); // if needed
+
+    try {
+        m_outStream.open(a_logFileFullPath, std::ios::app);
+    } catch (const std::exception ex) {
+        printf("The file '%s' cannot be opened. Exception: %s\n", a_logFileFullPath, ex.what());
+        return 1;
+    }
+
+    m_filePath.assign(a_logFileFullPath);
+
+    return 0;
+}
+
+/**
+ * Close the opened log file.
+ * @returns 0 on success
+ */
+int Log::close()
+{
+    m_outStream.close();
+    if (m_outStream.bad()) {
+        printf("The file '%s' was not closed.", m_filePath.c_str());
+        return 1;
+    }
+    return 0;
+}
+
+Log::~Log()
+{
+    close();
+}
+
+
+void Log::logf(Channel a_channel, char const *format, ...)
+{
+    va_list args;
+    va_start(args, format);
+
+    char buf[2048];
+#ifdef TSK_WIN32
+    vsnprintf_s(buf, 2048, _TRUNCATE, format, args);
+#else
+    buf[2047] = '\0';
+    vsnprintf(buf, 2047, format, args);
+#endif
+    std::string msg(buf);
+    log(a_channel, buf);
+    va_end(args);
+}
+
+void Log::log(Channel a_channel, const std::string &a_msg)
+{
+    std::string level;
+    switch (a_channel) {
+    case Error:
+        level.assign("[ERROR]");
+        break;
+    case Warn:
+        level.assign("[WARN]");
+        break;
+    case Info:
+        level.assign("[INFO]");
+        break;
+    }
+
+    struct tm *newtime;
+    time_t aclock;
+
+    time(&aclock);   // Get time in seconds
+    newtime = localtime(&aclock);   // Convert time to struct tm form 
+    char timeStr[64];
+    snprintf(timeStr, 64, "%.2d/%.2d/%.2d %.2d:%.2d:%.2d",
+        newtime->tm_mon+1,newtime->tm_mday,newtime->tm_year % 100, 
+        newtime->tm_hour, newtime->tm_min, newtime->tm_sec);
+
+    if (m_outStream.good()) {
+        m_outStream << timeStr << " " << level << " " << a_msg << Poco::LineEnding::NEWLINE_DEFAULT;
+        m_outStream.flush();
+    }
+    else {
+        fprintf(stderr, "%s %s %s\n", timeStr, level.data(), a_msg.data());
+    }
+}
+
+void Log::log(Channel a_channel, const std::wstring &a_msg)
+{
+    log(a_channel, TskUtilities::toUTF8(a_msg).c_str());
+}
+/**
+ * Return the path to the log file.
+ * @returns path to log or NULL if log is going to STDERR
+ */
+const wchar_t * Log::getLogPathW()
+{
+    return (const wchar_t *)TskUtilities::toUTF16(m_filePath).c_str();
+}
diff --git a/framework/Services/Log.h b/framework/tsk/framework/services/Log.h
similarity index 89%
rename from framework/Services/Log.h
rename to framework/tsk/framework/services/Log.h
index 819d081df837b343f66e54231447fb5fd226543a..3edffd5ff4e9c429c61be129739bc933bff0d79a 100755
--- a/framework/Services/Log.h
+++ b/framework/tsk/framework/services/Log.h
@@ -11,9 +11,11 @@
 #ifndef _OSS_LOG_H
 #define _OSS_LOG_H
 
-#include "framework_i.h"
+#include "tsk/framework/framework_i.h"
 #include <time.h>
 #include <string>
+#include <iostream>
+#include <fstream>
 
 // @@@ TODO: Resolve circular references between TskServices.h and this header by replacing macros with inline functions in TskServices.h
 
@@ -117,12 +119,14 @@ class TSK_FRAMEWORK_API Log
     void logInfo(const std::wstring &msg)  { log(Log::Info,  msg); };
 
     int open(const wchar_t * a_logFileFullPath);
+    int open(const char * a_outDir);
     int open();
     int close();
-    const wchar_t * getLogPath();
+    const wchar_t * getLogPathW();
+    const char * getLogPath() { return m_filePath.c_str(); }
 
 protected:
-    wchar_t m_filePath[MAX_BUFF_LENGTH];
-    FILE * m_logFile;
+    std::string m_filePath;
+    std::ofstream m_outStream;
 };
 #endif
diff --git a/framework/tsk/framework/services/Makefile.am b/framework/tsk/framework/services/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..3f5aadfb0b0fb95f41fe3b8649f91cd1c05ee433
--- /dev/null
+++ b/framework/tsk/framework/services/Makefile.am
@@ -0,0 +1,28 @@
+AM_CXXFLAGS = -I.. -I../.. -I../../../.. -Wall
+
+noinst_LTLIBRARIES = libfwserv.la
+libfwserv_la_SOURCES = \
+    Log.cpp \
+    Log.h \
+    Scheduler.cpp \
+    Scheduler.h \
+    TskBlackboardArtifact.cpp \
+    TskBlackboardArtifact.h \
+    TskBlackboardAttribute.cpp \
+    TskBlackboardAttribute.h \
+    TskBlackboard.cpp \
+    TskBlackboard.h \
+    TskDBBlackboard.cpp \
+    TskDBBlackboard.h \
+    TskImgDB.cpp \
+    TskImgDB.h \
+    TskImgDBSqlite.cpp \
+    TskImgDBSqlite.h \
+    TskSchedulerQueue.cpp \
+    TskSchedulerQueue.h \
+    TskServices.cpp \
+    TskServices.h \
+    TskSystemProperties.cpp \
+    TskSystemProperties.h \
+    TskSystemPropertiesImpl.cpp \
+    TskSystemPropertiesImpl.h
diff --git a/framework/Services/Scheduler.cpp b/framework/tsk/framework/services/Scheduler.cpp
similarity index 100%
rename from framework/Services/Scheduler.cpp
rename to framework/tsk/framework/services/Scheduler.cpp
diff --git a/framework/Services/Scheduler.h b/framework/tsk/framework/services/Scheduler.h
similarity index 95%
rename from framework/Services/Scheduler.h
rename to framework/tsk/framework/services/Scheduler.h
index 5c14ae106734c3f32daf7930a5701566c3fa2b23..97805ba7efd03bd9f732fee8b8fda9d9778f2017 100755
--- a/framework/Services/Scheduler.h
+++ b/framework/tsk/framework/services/Scheduler.h
@@ -11,7 +11,7 @@
 #ifndef _OSS_SCHEDULER_H
 #define _OSS_SCHEDULER_H
 
-#include "framework_i.h"
+#include "tsk/framework/framework_i.h"
 
 
 /**
diff --git a/framework/Services/TskBlackboard.cpp b/framework/tsk/framework/services/TskBlackboard.cpp
similarity index 96%
rename from framework/Services/TskBlackboard.cpp
rename to framework/tsk/framework/services/TskBlackboard.cpp
index d64b5e7bda55f4766468dad28d8603e00637941a..e056a0fd9082f3276e22827eee174a7cf3b8e25e 100755
--- a/framework/Services/TskBlackboard.cpp
+++ b/framework/tsk/framework/services/TskBlackboard.cpp
@@ -116,8 +116,8 @@ map<int, TskAttributeNames> initializeAttributeTypeMap(){
 * The table used to store names and display names for built in artifacts
 */
 
-map<int, TskArtifactNames> artifact_type_table= initializeArtifactTypeMap();
-map<int, TskAttributeNames> attribute_type_table= initializeAttributeTypeMap();
+static map<int, TskArtifactNames> artifact_type_table= initializeArtifactTypeMap();
+static map<int, TskAttributeNames> attribute_type_table= initializeAttributeTypeMap();
 
 int m_artifactIDcounter = 1000;
 int m_attributeIDcounter = 1000;
@@ -130,8 +130,8 @@ string TskBlackboard::attrTypeIDToTypeDisplayName(const int attributeTypeID){
         return it->second.displayName;
 }
 int TskBlackboard::attrTypeNameToTypeID(const string& attributeTypeString){
-    map<int, TskAttributeNames>::iterator it = attribute_type_table.begin();
-    for(it; it != attribute_type_table.end(); it++){
+    map<int, TskAttributeNames>::iterator it;
+    for(it = attribute_type_table.begin(); it != attribute_type_table.end(); it++){
         if(attributeTypeString.compare(it->second.typeName) == 0)
             return it->first;
     }
diff --git a/framework/Services/TskBlackboard.h b/framework/tsk/framework/services/TskBlackboard.h
similarity index 88%
rename from framework/Services/TskBlackboard.h
rename to framework/tsk/framework/services/TskBlackboard.h
index bd832d6e4deb73f9a9c40da8fcb2742457690824..fe30305a33565fc3559ed8917cafe540a1a3292b 100755
--- a/framework/Services/TskBlackboard.h
+++ b/framework/tsk/framework/services/TskBlackboard.h
@@ -1,51 +1,51 @@
 /*
-* The Sleuth Kit
-*
-* Contact: Brian Carrier [carrier <at> sleuthkit [dot] org]
-* Copyright (c) 2010-2012 Basis Technology Corporation. All Rights
-* reserved.
-*
-* This software is distributed under the Common Public License 1.0
-*/
+ * The Sleuth Kit
+ *
+ * Contact: Brian Carrier [carrier <at> sleuthkit [dot] org]
+ * Copyright (c) 2010-2012 Basis Technology Corporation. All Rights
+ * reserved.
+ *
+ * This software is distributed under the Common Public License 1.0
+ */
 
 /**
-* \file TskBlackboard.h
-* Interface for class that will implement the black board.  The black board
-* is used to store data from analysis modules.  The data is available to
-* later modules in the pipeline and in the final reporting phase.
-*/
+ * \file TskBlackboard.h
+ * Interface for class that will implement the black board.  The black board
+ * is used to store data from analysis modules.  The data is available to
+ * later modules in the pipeline and in the final reporting phase.
+ */
 
 #ifndef _TSK_BLACKBOARD_H
 #define _TSK_BLACKBOARD_H
 
 #include <string>
 #include <vector>
-#include "Utilities/TskException.h"
-#include "framework_i.h"
-#include "Services/TskImgDB.h"
+#include "tsk/framework/utilities/TskException.h"
+#include "tsk/framework/framework_i.h"
+#include "tsk/framework/services/TskImgDB.h"
 #include "TskBlackboardArtifact.h"
 #include "TskBlackboardAttribute.h"
 
 using namespace std;
 
 /**
-* Built in artifact types.
-* Refer to http://wiki.sleuthkit.org/index.php?title=Artifact_Examples
-* for details on which attributes should be used for each artifact.
-*/
+ * Built in artifact types.
+ * Refer to http://wiki.sleuthkit.org/index.php?title=Artifact_Examples
+ * for details on which attributes should be used for each artifact.
+ */
 
 /* Note that the below comments are the only documentation 
-* for the standard types.  Please ensure that all types are
-* documented. 
-* 
-* The numbers are explicitly added to make it easier to verify
-* that the Java and C++ code is in sync.
-*
-* It is very important that this list be kept up to date and 
-* in sync with the Java code.  Do not add anything here unless
-* you also add it there.  
-* See bindings/java/src/org/sleuthkit/datamodel/BlackboardArtifact.java */
-typedef enum TSK_ARTIFACT_TYPE {
+ * for the standard types.  Please ensure that all types are
+ * documented. 
+ * 
+ * The numbers are explicitly added to make it easier to verify
+ * that the Java and C++ code is in sync.
+ *
+ * It is very important that this list be kept up to date and 
+ * in sync with the Java code.  Do not add anything here unless
+ * you also add it there.  
+ * See bindings/java/src/org/sleuthkit/datamodel/BlackboardArtifact.java */
+enum TSK_ARTIFACT_TYPE {
     TSK_GEN_INFO = 1,///< The general info artifact, if information doesn't need its own artifact it should go here
     TSK_WEB_BOOKMARK = 2,///< A web bookmark. 
     TSK_WEB_COOKIE = 3,///< A web cookie. 
@@ -75,17 +75,17 @@ typedef enum TSK_ARTIFACT_TYPE {
 };
 
 /**
-* Built in attribute types 
-*/
+ * Built in attribute types 
+ */
 /* The numbers are explicitly added to make it easier to verify
-* that the Java and C++ code is in sync.
-*
-* It is very important that this list be kept up to date and 
-* in sync with the Java code.  Do not add anything here unless
-* you also add it there.  
-* See bindings/java/src/org/sleuthkit/datamodel/BlackboardAttribute.java 
-*/
-typedef enum TSK_ATTRIBUTE_TYPE {
+ * that the Java and C++ code is in sync.
+ *
+ * It is very important that this list be kept up to date and 
+ * in sync with the Java code.  Do not add anything here unless
+ * you also add it there.  
+ * See bindings/java/src/org/sleuthkit/datamodel/BlackboardAttribute.java 
+ */
+enum TSK_ATTRIBUTE_TYPE {
     TSK_URL = 1,///< String of a URL, should start with http:// or ftp:// etc.  You should also make a TskBlackoard::TSK_DOMAIN entry for the base domain name. 
     TSK_DATETIME = 2,///< INT32: GMT based Unix time, defines number of secords elapsed since UTC Jan 1, 1970.
     TSK_NAME = 3,///< STRING: The name associated with an artifact
@@ -163,8 +163,8 @@ typedef enum TSK_ATTRIBUTE_TYPE {
 };
 
 /**
-* Class used to store the pair of type and display names of attributes.
-*/
+ * Class used to store the pair of type and display names of attributes.
+ */
 class TskAttributeNames{
 public:
     string typeName;
@@ -175,8 +175,8 @@ class TskAttributeNames{
 };
 
 /**
-* Class used to store the pair of type and display names of artifacts.
-*/
+ * Class used to store the pair of type and display names of artifacts.
+ */
 class TskArtifactNames{
 public:
     string typeName;
@@ -187,10 +187,10 @@ class TskArtifactNames{
 };
 
 /**
-* An interface for setting and retrieving name/value pairs to the blackboard.
-* The blackboard is used to store data for use by later modules in the pipeline.
-* Can be registered with and retrieved from TskServices.
-*/
+ * An interface for setting and retrieving name/value pairs to the blackboard.
+ * The blackboard is used to store data for use by later modules in the pipeline.
+ * Can be registered with and retrieved from TskServices.
+ */
 class TSK_FRAMEWORK_API TskBlackboard
 {
 public:
diff --git a/framework/Services/TskBlackboardArtifact.cpp b/framework/tsk/framework/services/TskBlackboardArtifact.cpp
similarity index 90%
rename from framework/Services/TskBlackboardArtifact.cpp
rename to framework/tsk/framework/services/TskBlackboardArtifact.cpp
index a8077684bec0834aac451054c940b7dc377a4376..3ecd7fb11f562bb95287c61362608a0d2e4ba232 100644
--- a/framework/Services/TskBlackboardArtifact.cpp
+++ b/framework/tsk/framework/services/TskBlackboardArtifact.cpp
@@ -12,11 +12,11 @@
 #include <vector>
 #include <iostream>
 #include <sstream>
-#include "framework_i.h"
+#include "tsk/framework/framework_i.h"
 #include "TskBlackboard.h"
 #include "TskBlackboardAttribute.h"
-#include "Utilities/TskException.h"
-#include "Services/TskServices.h"
+#include "tsk/framework/utilities/TskException.h"
+#include "tsk/framework/services/TskServices.h"
 
 #define BLACKBOARD() (TskServices::Instance().getBlackboard())
 
diff --git a/framework/Services/TskBlackboardArtifact.h b/framework/tsk/framework/services/TskBlackboardArtifact.h
similarity index 93%
rename from framework/Services/TskBlackboardArtifact.h
rename to framework/tsk/framework/services/TskBlackboardArtifact.h
index 52b54778bb60ef4bee7958d1090b612261fc667c..92e55ffd66c2b6eebb396773aad8c5acb7d79e9d 100644
--- a/framework/Services/TskBlackboardArtifact.h
+++ b/framework/tsk/framework/services/TskBlackboardArtifact.h
@@ -17,7 +17,7 @@
 
 #include <string>
 #include <vector>
-#include "framework_i.h"
+#include "tsk/framework/framework_i.h"
 
 using namespace std;
 
@@ -83,4 +83,4 @@ class TSK_FRAMEWORK_API TskBlackboardArtifact
     int m_artifactTypeID;
 };
 
-#endif
\ No newline at end of file
+#endif
diff --git a/framework/Services/TskBlackboardAttribute.cpp b/framework/tsk/framework/services/TskBlackboardAttribute.cpp
similarity index 76%
rename from framework/Services/TskBlackboardAttribute.cpp
rename to framework/tsk/framework/services/TskBlackboardAttribute.cpp
index c8128733a8674ab181a92e7f83b343295d2fcc5e..1e08c9d6dc597abc66586eec7e13ed370b95d915 100644
--- a/framework/Services/TskBlackboardAttribute.cpp
+++ b/framework/tsk/framework/services/TskBlackboardAttribute.cpp
@@ -10,11 +10,11 @@
 
 #include <string>
 #include <vector>
-#include "framework_i.h"
+#include "tsk/framework/framework_i.h"
 #include "TskBlackboardAttribute.h"
 #include "TskBlackboardArtifact.h"
 #include "TskBlackboard.h"
-#include "Utilities/TskException.h"
+#include "tsk/framework/utilities/TskException.h"
 #include "TskServices.h"
 
 /**
@@ -31,15 +31,17 @@ TskBlackboardAttribute::~TskBlackboardAttribute(){
 * @param valueInt integer value
 */	
 TskBlackboardAttribute::TskBlackboardAttribute(const int attributeTypeID, const string& moduleName, const string& context, const int valueInt): 
-m_attributeTypeID(attributeTypeID),
-m_moduleName(moduleName),
-m_context(context),
-m_valueInt(valueInt),   
-m_valueType(TSK_INTEGER),
-m_valueLong(),
-m_valueDouble(),
-m_valueString(),
-m_valueBytes(){}
+    m_artifactID(),
+    m_attributeTypeID(attributeTypeID),
+    m_moduleName(moduleName),
+    m_context(context),
+    m_valueType(TSK_INTEGER),
+    m_valueInt(valueInt),   
+    m_valueLong(),
+    m_valueDouble(),
+    m_valueString(),
+    m_valueBytes(),
+    m_objectID(){}
 
 /**
 * Constructor 
@@ -49,15 +51,17 @@ m_valueBytes(){}
 * @param valueLong 64 bit integer value
 */	
 TskBlackboardAttribute::TskBlackboardAttribute(const int attributeTypeID, const string& moduleName, const string& context, const uint64_t valueLong): 
-m_attributeTypeID(attributeTypeID),
-m_moduleName(moduleName),
-m_context(context),
-m_valueLong(valueLong),   
-m_valueType(TSK_LONG),
-m_valueInt(),
-m_valueDouble(),
-m_valueString(),
-m_valueBytes(){}
+    m_artifactID(),
+    m_attributeTypeID(attributeTypeID),
+    m_moduleName(moduleName),
+    m_context(context),
+    m_valueType(TSK_LONG),
+    m_valueInt(),
+    m_valueLong(valueLong),   
+    m_valueDouble(),
+    m_valueString(),
+    m_valueBytes(),
+    m_objectID(){}
 
 /**
 * Constructor 
@@ -67,15 +71,17 @@ m_valueBytes(){}
 * @param valueDouble double value
 */	
 TskBlackboardAttribute::TskBlackboardAttribute(const int attributeTypeID, const string& moduleName, const string& context, const double valueDouble): 
-m_attributeTypeID(attributeTypeID),
-m_moduleName(moduleName),
-m_context(context),
-m_valueDouble(valueDouble),   
-m_valueType(TSK_DOUBLE),
-m_valueInt(),
-m_valueLong(),
-m_valueString(),
-m_valueBytes(){}
+    m_artifactID(),
+    m_attributeTypeID(attributeTypeID),
+    m_moduleName(moduleName),
+    m_context(context),
+    m_valueType(TSK_DOUBLE),
+    m_valueInt(),
+    m_valueLong(),   
+    m_valueDouble(valueDouble),
+    m_valueString(),
+    m_valueBytes(),
+    m_objectID(){}
 
 /**
 * Constructor 
@@ -85,15 +91,17 @@ m_valueBytes(){}
 * @param valueString string value
 */	
 TskBlackboardAttribute::TskBlackboardAttribute(const int attributeTypeID, const string& moduleName, const string& context, const string& valueString): 
-m_attributeTypeID(attributeTypeID),
-m_moduleName(moduleName),
-m_context(context),
-m_valueString(valueString),   
-m_valueType(TSK_STRING),
-m_valueInt(),
-m_valueLong(),
-m_valueDouble(),
-m_valueBytes(){}
+    m_artifactID(),
+    m_attributeTypeID(attributeTypeID),
+    m_moduleName(moduleName),
+    m_context(context),
+    m_valueType(TSK_STRING),
+    m_valueInt(),
+    m_valueLong(),   
+    m_valueDouble(),
+    m_valueString(valueString),
+    m_valueBytes(),
+    m_objectID(){}
 
 /**
 * Constructor 
@@ -103,15 +111,17 @@ m_valueBytes(){}
 * @param valueBytes byte array value
 */	
 TskBlackboardAttribute::TskBlackboardAttribute(const int attributeTypeID, const string& moduleName, const string& context, const vector<unsigned char>& valueBytes): 
-m_attributeTypeID(attributeTypeID),
-m_moduleName(moduleName),
-m_context(context),
-m_valueBytes(valueBytes),   
-m_valueType(TSK_BYTE),
-m_valueInt(),
-m_valueLong(),
-m_valueDouble(),
-m_valueString(){}
+    m_artifactID(),
+    m_attributeTypeID(attributeTypeID),
+    m_moduleName(moduleName),
+    m_context(context),
+    m_valueType(TSK_BYTE),
+    m_valueInt(),
+    m_valueLong(),   
+    m_valueDouble(),
+    m_valueString(),
+    m_valueBytes(valueBytes),
+    m_objectID(){}
 
 /**
 * Constructor 
diff --git a/framework/Services/TskBlackBoardAttribute.h b/framework/tsk/framework/services/TskBlackboardAttribute.h
similarity index 95%
rename from framework/Services/TskBlackBoardAttribute.h
rename to framework/tsk/framework/services/TskBlackboardAttribute.h
index bcea932fc6e9815eff337133c4005a766257f950..4184665d4055575213863f7d2e95b17cad6f2e15 100644
--- a/framework/Services/TskBlackBoardAttribute.h
+++ b/framework/tsk/framework/services/TskBlackboardAttribute.h
@@ -19,7 +19,7 @@
 #include <string>
 #include <vector>
 #include <map>
-#include "framework_i.h"
+#include "tsk/framework/framework_i.h"
 
 using namespace std;
 
@@ -27,7 +27,7 @@ using namespace std;
 * Value type enum, should always correspond to the stored value in an 
 * attribute
 */
-typedef enum TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE {
+enum TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE {
     TSK_STRING = 0,	   ///< string
     TSK_INTEGER,   ///< int
     TSK_LONG,			///< long
diff --git a/framework/Services/TskDBBlackboard.cpp b/framework/tsk/framework/services/TskDBBlackboard.cpp
similarity index 94%
rename from framework/Services/TskDBBlackboard.cpp
rename to framework/tsk/framework/services/TskDBBlackboard.cpp
index 7e012b8428ce81532d8a2174fdae6f4311e6ddef..9f38cace14a703422e9021ae5b1fd5c5d63b489c 100755
--- a/framework/Services/TskDBBlackboard.cpp
+++ b/framework/tsk/framework/services/TskDBBlackboard.cpp
@@ -12,11 +12,11 @@
 #include <sstream>
 
 #include "TskDBBlackboard.h"
-#include "Services/TskImgDB.h"
-#include "Services/TskServices.h"
-#include "File/TskFileTsk.h"
-#include "File/TskFile.h"
-#include "File/TskFileManagerImpl.h"
+#include "tsk/framework/services/TskImgDB.h"
+#include "tsk/framework/services/TskServices.h"
+#include "tsk/framework/file/TskFileTsk.h"
+#include "tsk/framework/file/TskFile.h"
+#include "tsk/framework/file/TskFileManagerImpl.h"
 
 TskDBBlackboard * TskDBBlackboard::m_pInstance = NULL;
 
@@ -209,4 +209,4 @@ void TskDBBlackboard::createGenInfoAttribute(const uint64_t file_id, TskBlackboa
 
 vector<int> TskDBBlackboard::findAttributeTypes(int artifactTypeId){
     return IMGDB().findAttributeTypes(artifactTypeId);
-}
\ No newline at end of file
+}
diff --git a/framework/Services/TskDBBlackboard.h b/framework/tsk/framework/services/TskDBBlackboard.h
similarity index 92%
rename from framework/Services/TskDBBlackboard.h
rename to framework/tsk/framework/services/TskDBBlackboard.h
index 96ee9f3276479d38edb6ab736804172315c589a9..47d3ca7c129e0757098a8b80e8e91737f4e9fde5 100755
--- a/framework/Services/TskDBBlackboard.h
+++ b/framework/tsk/framework/services/TskDBBlackboard.h
@@ -17,10 +17,10 @@
 #define _TSK_DB_BLACKBOARD_H
 
 #include <string>
-#include "Utilities/TskException.h"
-#include "Services/TskBlackboard.h"
-#include "Services/TskImgDB.h"
-#include "Services/TskServices.h"
+#include "tsk/framework/utilities/TskException.h"
+#include "tsk/framework/services/TskBlackboard.h"
+#include "tsk/framework/services/TskImgDB.h"
+#include "tsk/framework/services/TskServices.h"
 #include "TskBlackboardArtifact.h"
 #include "TskBlackboardAttribute.h"
 
diff --git a/framework/tsk/framework/services/TskImDBPostgreSQL.cpp b/framework/tsk/framework/services/TskImDBPostgreSQL.cpp
new file mode 100755
index 0000000000000000000000000000000000000000..16e31d3c505f199f12b0abdf2112b85581ffafb5
--- /dev/null
+++ b/framework/tsk/framework/services/TskImDBPostgreSQL.cpp
@@ -0,0 +1,3853 @@
+/*
+ *
+ *  The Sleuth Kit
+ *
+ *  Contact: Brian Carrier [carrier <at> sleuthkit [dot] org]
+ *  Copyright (c) 2010-2011 Basis Technology Corporation. All Rights
+ *  reserved.
+ *
+ *  This software is distributed under the Common Public License 1.0
+ */
+
+/**
+ * \file TskImgDBPostgreSQL.cpp
+ * A PostgreSQL based implementation of the framework data access layer.
+ */
+#include <stdio.h>
+#include <iostream>
+#include <sstream>
+#include <iomanip>
+#include <Lmcons.h>
+#include <assert.h>
+
+#include "Services/TskDBBlackboard.h"
+#include "TskImgDBPostgreSQL.h"
+#include "Services/TskServices.h"
+#include "Utilities/TskException.h"
+#include "Utilities/TskUtilities.h"
+
+#include "Poco/String.h"
+#include "Poco/UnicodeConverter.h"
+#include "Poco/NumberParser.h"
+#include "Poco/Path.h"
+
+/**
+ *
+ */
+TskImgDBPostgreSQL::TskImgDBPostgreSQL(const std::string dbName) : m_dbName(dbName), m_dbConnection(NULL)
+{
+    m_artifactIDcounter = 1000;
+    m_attributeIDcounter = 1000;
+}
+
+TskImgDBPostgreSQL::~TskImgDBPostgreSQL()
+{
+    close();
+}
+
+int TskImgDBPostgreSQL::close()
+{
+    if (m_dbConnection != NULL)
+    {
+        m_dbConnection->disconnect();
+        delete m_dbConnection;
+        m_dbConnection = NULL;
+    }
+
+    return 0;
+}
+
+bool TskImgDBPostgreSQL::initialized() const
+{
+    if (m_dbConnection == NULL)
+    {
+        LOGERROR(L"TskImgDBPostgreSQL::initialized - Database not initialized.\n");
+        return false;
+    }
+
+    return true;
+}
+
+/** 
+ * Open the DB and create the tables.
+ * @returns 1 on error
+ */
+int TskImgDBPostgreSQL::initialize()
+{
+
+    // Open the database.
+    if (open() != 0)
+    {
+        // Error message will have been logged by open()
+        return 1;
+    }
+
+    try
+    {
+        pqxx::work W(*m_dbConnection);
+        // ----- DB_INFO
+        W.exec("CREATE TABLE db_info (name TEXT PRIMARY KEY, version TEXT)");
+        // ----- IMAGE_INFO
+        W.exec("CREATE TABLE image_info (type INTEGER, ssize INTEGER)");
+        // ----- IMAGE_NAMES
+        W.exec("CREATE TABLE image_names (seq SERIAL PRIMARY KEY, name TEXT)");
+        // ----- VOL_INFO
+        W.exec("CREATE TABLE vol_info (vol_id SERIAL PRIMARY KEY, sect_start BIGINT NOT NULL, sect_len BIGINT NOT NULL, description TEXT, flags INTEGER)");
+        // ----- FS_INFO
+        W.exec("CREATE TABLE fs_info (fs_id SERIAL PRIMARY KEY, img_byte_offset BIGINT, vol_id INTEGER NOT NULL, fs_type INTEGER, block_size INTEGER, block_count BIGINT, root_inum BIGINT, first_inum BIGINT, last_inum BIGINT)");
+        // ----- FILES
+        W.exec("CREATE TABLE files (file_id BIGSERIAL PRIMARY KEY, type_id INTEGER, name TEXT, par_file_id BIGINT, dir_type INTEGER, meta_type INTEGER, dir_flags INTEGER, meta_flags INTEGER, size BIGINT, ctime INTEGER, crtime INTEGER, atime INTEGER, mtime INTEGER, mode INTEGER, uid INTEGER, gid INTEGER, status INTEGER, full_path TEXT)");
+        // ----- FS_FILES
+        W.exec("CREATE TABLE fs_files (file_id BIGINT PRIMARY KEY, fs_id INTEGER, fs_file_id BIGINT, attr_type INTEGER, attr_id INTEGER)");
+        // ----- FS_BLOCKS
+        W.exec("CREATE TABLE fs_blocks (fs_id INTEGER NOT NULL, file_id BIGINT NOT NULL, seq INTEGER, blk_start BIGINT NOT NULL, blk_len BIGINT NOT NULL)");
+        // ----- CARVED_FILES
+        W.exec("CREATE TABLE carved_files (file_id BIGINT PRIMARY KEY, vol_id INTEGER)");
+        // ----- CARVED_SECTORS
+        W.exec("CREATE TABLE carved_sectors (file_id BIGINT, seq INTEGER, sect_start BIGINT, sect_len BIGINT)");
+        // ----- DERIVED_FILES
+        W.exec("CREATE TABLE derived_files (file_id BIGINT PRIMARY KEY, derivation_details TEXT)");
+        // ----- ALLOC_UNALLOC_MAP
+        W.exec("CREATE TABLE alloc_unalloc_map (vol_id INTEGER, unalloc_img_id INTEGER, unalloc_img_sect_start BIGINT, sect_len BIGINT, orig_img_sect_start BIGINT)");
+        // ----- FILE_HASHES
+        W.exec("CREATE TABLE file_hashes (file_id BIGINT PRIMARY KEY, md5 TEXT, sha1 TEXT, sha2_256 TEXT, sha2_512 TEXT, known INTEGER)");
+        // ----- MODULES
+        W.exec("CREATE TABLE modules (module_id SERIAL PRIMARY KEY, name TEXT UNIQUE NOT NULL, description TEXT)");
+        // ----- MODULE_STATUS
+        W.exec("CREATE TABLE module_status (file_id BIGINT, module_id SERIAL, status INTEGER, PRIMARY KEY (file_id, module_id))");
+        // ----- UNALLOC_IMG_STATUS
+        W.exec("CREATE TABLE unalloc_img_status (unalloc_img_id SERIAL PRIMARY KEY, status INTEGER)");
+        // ----- UNUSED_SECTORS
+        W.exec("CREATE TABLE unused_sectors (file_id BIGINT PRIMARY KEY, sect_start BIGINT, sect_len BIGINT, vol_id INTEGER)");
+        // ----- BLACKBOARD_ARTIFACTS
+        W.exec("CREATE TABLE blackboard_artifacts (artifact_id BIGSERIAL PRIMARY KEY, obj_id BIGINT NOT NULL, artifact_type_id INTEGER)");
+        // ----- BLACKBOARD_ATTRIBUTES
+        W.exec("CREATE TABLE blackboard_attributes (artifact_id BIGINT NOT NULL, source TEXT, context TEXT, attribute_type_id INTEGER NOT NULL, value_type INTEGER NOT NULL, "
+        "value_byte BYTEA, value_text TEXT, value_int32 INTEGER, value_int64 BIGINT, value_double NUMERIC(20, 10), obj_id BIGINT NOT NULL)");
+        // ----- BLACKBOARD_ARTIFACT_TYPES
+        W.exec("CREATE TABLE blackboard_artifact_types (artifact_type_id INTEGER PRIMARY KEY, type_name TEXT, display_name TEXT)");
+        // ----- BLACKBOARD_ATTRIBUTE_TYPES
+        W.exec("CREATE TABLE blackboard_attribute_types (attribute_type_id INTEGER PRIMARY KEY, type_name TEXT, display_name TEXT)");
+        // ----- INDEX ON ARTIFACT_ID OF BLACKBOARD_ATTRIBUTES
+        W.exec("CREATE INDEX attrs_artifact_id ON blackboard_attributes(artifact_id)");        
+        // ----- INDEX ON ATTRIBUTE_TYPE OF BLACKBOARD_ATTRIBUTES
+        W.exec("CREATE INDEX attrs_attribute_type ON blackboard_attributes(attribute_type_id)");        
+        // ----- INDEX ON OBJ_ID OF BLACKBOARD_ATTRIBUTES
+        W.exec("CREATE INDEX attrs_obj_id ON blackboard_attributes(obj_id)");        
+        
+        W.exec("SET synchronous_commit TO OFF");
+
+        W.commit();
+
+        map<int, TskArtifactNames> artTypes = TskImgDB::getAllArtifactTypes();
+        for(map<int, TskArtifactNames>::iterator it = artTypes.begin(); it != artTypes.end(); it++){
+            addArtifactType(it->first, it->second.typeName, it->second.displayName);
+        }
+        map<int, TskAttributeNames> attrTypes = TskImgDB::getAllAttributeTypes();
+        for(map<int, TskAttributeNames>::iterator it = attrTypes.begin(); it != attrTypes.end(); it++){
+            addAttributeType(it->first, it->second.typeName, it->second.displayName);
+        }
+
+    }
+    catch (std::exception& ex)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::initialize - Error creating database: " << ex.what() << std::endl;
+        LOGERROR(errorMsg.str());
+        return 1;
+    }
+
+    addToolInfo("DbSchema", IMGDB_SCHEMA_VERSION);
+    LOGINFO(L"ImgDB Created.");
+
+    return 0;
+}
+
+/*
+ * Attempt to connect to an existing database. If connection attempt fails
+ * a new database is created. This database must be initialized before it
+ * is used.
+ * Returns 1 if connection attempt fails.
+ */
+int TskImgDBPostgreSQL::open()
+{
+    // Get current user name. This will get used in connecting to the database.
+    char name[UNLEN+1];
+    DWORD size = UNLEN+1;
+
+    GetUserNameA(name, &size);
+
+    std::string db_host = GetSystemProperty(TskSystemProperties::DB_HOST);
+    std::string db_port = GetSystemProperty(TskSystemProperties::DB_PORT);
+
+    // Convert the hostname to an IPv4 address. We need to do this because if you attempt to establish a 
+    // connection to a database server that exists on the same machine PostgreSQL will use the 'localhost'
+    // rule from the pg_hba.conf file. Unfortunately, SSPI authentication doesn't work in that scenario.
+    std::string db_host_ip;
+
+    if (!TskUtilities::getHostIP(db_host, db_host_ip))
+        return 1;
+
+    try
+    {
+        // Construct the connection string to connect to the Postgres server.
+        std::stringstream pgConnectionString;
+        pgConnectionString << "host='" << db_host_ip << "' port='" << db_port
+            << "' dbname='postgres' user='" << name << "'";
+
+        pqxx::connection pgConnection(pgConnectionString.str());
+
+        // Check whether the database exists
+        pqxx::nontransaction nontrans(pgConnection);
+
+        std::stringstream dbQuery;
+        dbQuery << "select count(*) from pg_catalog.pg_database where datname = " << nontrans.quote(m_dbName);
+
+        pqxx::result R = nontrans.exec(dbQuery);
+
+        if (R.size() == 0 || R[0][0].as<int>() == 0) 
+        {
+            // There is no database. It needs to be created.
+            std::stringstream createDatabase;
+            createDatabase << "CREATE DATABASE \"" << m_dbName << "\" WITH OWNER=\"" << name << "\" ENCODING='UTF-8'";
+            nontrans.exec(createDatabase);
+        }
+
+        std::stringstream dbConnectionString;
+        dbConnectionString << "host='" << db_host_ip << "' port='" << db_port
+            << "' dbname='" << m_dbName << "' user='" << name << "'";
+
+        m_dbConnection = new pqxx::connection(dbConnectionString.str());
+    }
+    catch (std::exception& ex)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskDBPostgreSQL::open - Error connecting to the database: "
+            << ex.what() << std::endl;
+        LOGERROR(errorMsg.str());
+        return 1;
+    }
+
+    // We successfully connected to the database.
+    LOGINFO(L"ImgDB Opened.");
+    return 0;
+}
+
+pqxx::result TskImgDBPostgreSQL::executeStatement(const std::string& stmt) const
+{
+    pqxx::result R;
+
+    try
+    {
+        work W(*m_dbConnection);
+        R = W.exec(stmt);
+        W.commit();
+    }
+    catch (const exception &e)
+    {
+        std::stringstream errorMsg;
+        errorMsg << "TskDBPostgreSQL::executeStatement : " << e.what() << std::endl;
+        throw TskException(errorMsg.str());
+    }
+
+    return R;
+}
+
+int TskImgDBPostgreSQL::addToolInfo(const char* name, const char* version)
+{
+    if (!initialized())
+        return 1;
+
+    stringstream stmt;
+
+    stmt << "INSERT INTO db_info (name, version) VALUES ('" << name 
+        << "', '" << version << "')";
+
+    try
+    {
+        executeStatement(stmt.str());
+        return 0;
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskDBPostgreSQL::addToolInfo - Error adding data to db_info table: "
+            << e.what() << std::endl;
+        LOGERROR(errorMsg.str());
+
+        return 1;
+    }
+}
+
+int TskImgDBPostgreSQL::addImageInfo(int type, int size)
+{
+    if (!initialized())
+        return 1;
+
+    stringstream stmt;
+
+    stmt << "INSERT INTO image_info (type, ssize) VALUES (" << type << ", " << size << ")";
+
+    try
+    {
+        executeStatement(stmt.str());
+        return 0;
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskDBPostgreSQL::addImageInfo - Error adding data to image_info table: "
+            << e.what() << std::endl;
+        LOGERROR(errorMsg.str());
+
+        return 1;
+    }
+}
+
+int TskImgDBPostgreSQL::addImageName(char const * imgName)
+{
+    if (!initialized())
+        return 1;
+
+    stringstream stmt;
+
+    stmt << "INSERT INTO image_names (seq, name) VALUES (DEFAULT, E" 
+        << m_dbConnection->quote(imgName) << ")";
+
+    try
+    {
+        executeStatement(stmt.str());
+        return 0;
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskDBPostgreSQL::addImageName - Error adding data to image_names table: "
+            << e.what() << std::endl;
+        LOGERROR(errorMsg.str());
+
+        return 1;
+    }
+}
+
+/**
+ * Adds the sector addresses of the volumes into the db.
+ */
+int TskImgDBPostgreSQL::addVolumeInfo(const TSK_VS_PART_INFO * vs_part)
+{
+    if (!initialized())
+        return 1;
+
+    stringstream stmt;
+
+    stmt << "INSERT INTO vol_info (vol_id, sect_start, sect_len, description, flags) VALUES ("
+        << (int)vs_part->addr << ", " << vs_part->start 
+        << ", " << vs_part->len << ", '" << vs_part->desc 
+        << "', " << vs_part->flags << ")";
+
+    try
+    {
+        executeStatement(stmt.str());
+    }
+    catch (const TskException &e)
+    {
+        std::stringstream msg;
+        msg << "TskImgDBPostgreSQL::addVolumeInfo : " << e.what();
+        LOGERROR(msg.str());
+
+        return 1;
+    }
+
+    return 0;
+}
+
+int TskImgDBPostgreSQL::addFsInfo(int volId, int fsId, const TSK_FS_INFO * fs_info)
+{
+    if (!initialized())
+        return 1;
+
+    stringstream stmt;
+
+    stmt << "INSERT INTO fs_info (fs_id, img_byte_offset, vol_id, fs_type, block_size, block_count, root_inum, first_inum, last_inum) VALUES (" 
+        << fsId << ", " << fs_info->offset << ", " << volId
+        << ", " << (int)fs_info->ftype << ", " << fs_info->block_size << ", " << fs_info->block_count
+        << ", " << fs_info->root_inum << ", " << fs_info->first_inum << ", " << fs_info->last_inum << ")";
+
+    try
+    {
+        executeStatement(stmt.str());
+    }
+    catch (const TskException &e)
+    {
+        std::stringstream msg;
+        msg << "TskImgDBPostgreSQL::addFsInfo : " << e.what();
+        LOGERROR(msg.str());
+
+        return 1;
+    }
+
+    return 0;
+}
+
+
+/**
+ * Given a file system and fs_file_id, return the file_id.
+ */
+uint64_t TskImgDBPostgreSQL::getFileId(int a_fsId, uint64_t a_fsFileId) const
+{
+    if (!initialized())
+        return 0;
+
+    stringstream stmt;
+    uint64_t fileId = 0;
+
+    stmt << "SELECT file_id FROM fs_files WHERE fs_id=" 
+        << a_fsId << "AND fs_file_id=" << a_fsFileId;
+
+    try
+    {
+        pqxx::result R = executeStatement(stmt.str());
+
+        // @@@ It's possible to have multiple file_ids for the same fs_file_id.
+        // @@@ Which one should we use?
+        if (R.size() > 0)
+            fileId = R[0][0].as<uint64_t>();
+    }
+    catch (const TskException &e)
+    {
+        std::stringstream msg;
+        msg << "TskDBPostgreSQL::getFileId : Error querying fs_files table: " << e.what();
+        LOGERROR(msg.str());
+    }
+    return fileId;
+}
+
+/**
+ * @returns the file record or -1 on error.
+ */
+int TskImgDBPostgreSQL::getFileRecord(const uint64_t fileId, TskFileRecord& fileRecord) const
+{
+    if (!initialized())
+        return -1;
+
+    stringstream stmt;
+
+    stmt << "SELECT f.file_id, f.type_id, f.name, f.par_file_id, f.dir_type, f.meta_type, f.dir_flags, "
+        << "f.meta_flags, f.size, f.ctime, f.crtime, f.atime, f.mtime, f.mode, f.uid, f.gid, f.status, f.full_path, "
+        << "fh.md5, fh.sha1, fh.sha2_256, fh.sha2_512 "
+        << "FROM files f LEFT OUTER JOIN file_hashes fh ON f.file_id = fh.file_id WHERE f.file_id=" << fileId;
+
+    try
+    {
+        pqxx::read_transaction W(*m_dbConnection);
+        pqxx::result R = W.exec(stmt);
+
+        if (R.size() == 1)
+        {
+            R[0][0].to(fileRecord.fileId);
+            R[0][1].to((int &)fileRecord.typeId);
+            R[0][2].to(fileRecord.name);
+            R[0][3].to(fileRecord.parentFileId);
+            R[0][4].to((int &)fileRecord.dirType);
+            R[0][5].to((int &)fileRecord.metaType);
+            R[0][6].to((int &)fileRecord.dirFlags);
+            R[0][7].to((int &)fileRecord.metaFlags);
+            R[0][8].to(fileRecord.size);
+            R[0][9].to(fileRecord.ctime);
+            R[0][10].to(fileRecord.crtime);
+            R[0][11].to(fileRecord.atime);
+            R[0][12].to(fileRecord.mtime);
+            R[0][13].to((int &)fileRecord.mode);
+            R[0][14].to(fileRecord.uid);
+            R[0][15].to(fileRecord.gid);
+            R[0][16].to((int &)fileRecord.status);
+            R[0][17].to(fileRecord.fullPath);
+            R[0][18].to(fileRecord.md5);
+            R[0][19].to(fileRecord.sha1);
+            R[0][20].to(fileRecord.sha2_256);
+            R[0][21].to(fileRecord.sha2_512);            
+        }
+        else if (R.size() == 0)
+        {
+            std::wstringstream msg;
+            msg << L"TskImgDBPostgreSQL::getFileRecord - No record found for file id: " << fileId;
+            LOGERROR(msg.str());
+            return -1;
+        }
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream msg;
+        msg << L"TskImgDBPostgreSQL::getFileRecord - Error querying files table: "
+            << e.what();
+        LOGERROR(msg.str());
+        return -1;
+    }
+
+    return 0;
+}
+
+int TskImgDBPostgreSQL::addFsFileInfo(int fileSystemID, const TSK_FS_FILE *fileSystemFile, const char *fileName, int fileSystemAttrType, int fileSystemAttrID, uint64_t &fileID, const char *filePath)
+{
+    const std::string msgPrefix = "TskImgDBPostgreSQL::addFsFileInfo : ";
+    fileID = 0;
+
+    if (!initialized())
+    {
+        return -1;
+    }
+
+    // Construct the full path of the file within the image.
+    std::string fullpath(filePath);
+    fullpath.append(fileName);
+
+    // Check whether the file name contains a single quote. If so, replace it with a double single quote.
+    std::string fileNameAsString(fileName);
+    size_t found;
+    found = fileNameAsString.find("'");
+    if (found != std::string::npos) //Replace it and replace all its subsequent occurrences.
+    {
+        fileNameAsString.replace(found,1,"''");
+
+        while ((found=fileNameAsString.find("'",found+2)) != std::string::npos)// found+2 because we want to move past the newly inserted single quote.
+        {
+            fileNameAsString.replace(found,1,"''");
+        }
+    }
+
+    // Now remove all the control characters from the file name.
+    for (int codePoint=1; codePoint < 32; codePoint++)
+    {
+        char codePointAsHex[10];
+        codePointAsHex[0] = codePoint;
+        codePointAsHex[1] = '\0';
+        std::string stringToRemove(codePointAsHex);
+
+        found = fileNameAsString.find(stringToRemove);
+        if (found != std::string::npos) //Replace it and replace all its subsequent occurrences.
+        {
+            fileNameAsString.replace(found,1,"");
+
+            while ((found=fileNameAsString.find(stringToRemove,found+1)) != std::string::npos)// found+1 because the control characters are just 1 character.
+            {
+                fileNameAsString.replace(found,1,"");
+            }
+        }
+    }
+
+    fileName = fileNameAsString.c_str();
+
+    uint64_t parFileId = findParObjId(fileSystemID, fileSystemFile->name->par_addr);
+
+    // Get the file size.
+    TSK_OFF_T size = 0; 
+    const TSK_FS_ATTR *fileSystemAttribute = tsk_fs_file_attr_get_id(const_cast<TSK_FS_FILE*>(fileSystemFile), fileSystemAttrID); 
+    if (fileSystemAttribute)
+    {
+        size = fileSystemAttribute->size;
+    }
+
+    // Get the file metadata, if it's available.
+    int mtime = 0;
+    int crtime = 0;
+    int ctime = 0;
+    int atime = 0;
+    int meta_type = 0;
+    int meta_flags = 0;
+    int meta_mode = 0;
+    int gid = 0;
+    int uid = 0;
+    if (fileSystemFile->meta) 
+    {
+        mtime = static_cast<int>(fileSystemFile->meta->mtime);
+        atime = static_cast<int>(fileSystemFile->meta->atime);
+        ctime = static_cast<int>(fileSystemFile->meta->ctime);
+        crtime = static_cast<int>(fileSystemFile->meta->crtime);
+        meta_type = fileSystemFile->meta->type;
+        meta_flags = fileSystemFile->meta->flags;
+        meta_mode = fileSystemFile->meta->mode;
+        gid = fileSystemFile->meta->gid;
+        uid = fileSystemFile->meta->uid;
+    }
+
+    // Insert into the files table.
+    std::stringstream stmt;
+
+    try
+    {
+        stmt << "INSERT INTO files (file_id, type_id, status, name, par_file_id, dir_type, meta_type, dir_flags, meta_flags, size, crtime, ctime, atime, mtime, mode, gid, uid, full_path) VALUES ("
+            << "DEFAULT, " << IMGDB_FILES_TYPE_FS << ", " << IMGDB_FILES_STATUS_READY_FOR_ANALYSIS << ", " << m_dbConnection->quote(fileName) << ", "
+            << parFileId << ", " << fileSystemFile->name->type << ", " << meta_type << ", "
+            << fileSystemFile->name->flags << ", " << meta_flags << ", " << size << ", " << crtime << ", " << ctime << ", " << atime << ", "
+            << mtime << ", " << meta_mode << ", " << gid << ", " << uid << ", E" << m_dbConnection->quote(fullpath) << ")";
+
+        executeStatement(stmt.str());
+    }
+    catch (const exception &e)
+    {
+        std::ostringstream errorMsg;
+        errorMsg << msgPrefix << "Error adding data to files table: " << e.what();
+        LOGERROR(errorMsg.str());
+
+        return -1;
+    }
+
+    // get the file_id from the last insert
+    fileID = 0;
+    try
+    {
+        stmt.str("");
+        stmt << "SELECT currval(pg_get_serial_sequence('files', 'file_id'))";
+        result R = executeStatement(stmt.str());
+
+        if (R.size() == 1)
+        {
+            fileID = R[0][0].as<uint64_t>();
+        }
+        else if (R.size() > 1)
+        {
+            std::ostringstream msg;
+            msg << msgPrefix << "Unexpected number of records (" << R.size() << ") returned from files table INSERT";
+            LOGERROR(msg.str());
+        }
+    }
+    catch (const exception &e)
+    {
+        std::ostringstream errorMsg;
+        errorMsg << msgPrefix << "Error getting the file_id of the last inserted row: " << e.what();
+        LOGERROR(errorMsg.str());
+
+        return -1;
+    }
+
+    // Insert into the fs_files table.
+    try
+    {
+        stmt.str("");
+        stmt << "INSERT INTO fs_files (file_id, fs_id, fs_file_id, attr_type, attr_id) VALUES ("
+            << fileID << ", " << fileSystemID << ", " << fileSystemFile->name->meta_addr << ", " << fileSystemAttrType << ", " << fileSystemAttrID << ")";
+        executeStatement(stmt.str());
+    }
+    catch (const exception &e)
+    {
+        std::stringstream errorMsg;
+        errorMsg << msgPrefix << "Error adding data to fs_files table: " << e.what();
+        LOGERROR(errorMsg.str());
+
+        return -1;
+    }
+
+    //if dir, update parent id cache
+    if (meta_type == TSK_FS_META_TYPE_DIR) {
+        storeParObjId(fileSystemID, fileSystemFile->name->meta_addr, fileID);
+    }
+
+    return 0;
+}
+
+/**
+ * Add block info to the database.  This table stores the run information for each file so that we
+ * can map which blocks are used by what files.
+ * @param a_fsId Id that the file is located in
+ * @param a_fileId ID of the file
+ * @param a_sequence The sequence number of this run in the file (0 for the first run, 1 for the second run, etc.)
+ * @param a_blk_addr Block address (the address that the file system uses -- NOT the physical sector addr)
+ * @param a_len The number of blocks in the run
+ * @returns 1 on error
+ */
+int TskImgDBPostgreSQL::addFsBlockInfo(int a_fsId, uint64_t a_fileId, int a_sequence, uint64_t a_blk_addr, uint64_t a_len)
+{
+    if (!initialized())
+        return 1;
+
+    stringstream stmt;
+
+    stmt << "INSERT INTO fs_blocks (fs_id, file_id, seq, blk_start, blk_len) VALUES ("
+        << a_fsId << ", " << a_fileId << ", " << a_sequence << ", " << a_blk_addr << ", " << a_len << ")";
+
+    try
+    {
+        executeStatement(stmt.str());
+    }
+    catch (const exception &e)
+    {
+        std::stringstream errorMsg;
+        errorMsg << "TskDBPostgreSQL::addFsBlockInfo : Error adding data to fs_blocks table: "
+            << e.what();
+        LOGERROR(errorMsg.str());
+
+        return 1;
+    }
+
+    return 0;
+}
+
+
+int TskImgDBPostgreSQL::addAllocUnallocMapInfo(int a_volID, int unallocImgID, 
+                                               uint64_t unallocImgStart, uint64_t length, uint64_t origImgStart)
+{
+    if (!initialized())
+        return 1;
+
+    stringstream stmt;
+
+    stmt << "INSERT INTO alloc_unalloc_map (vol_id, unalloc_img_id, unalloc_img_sect_start, sect_len, orig_img_sect_start) VALUES ("
+        << a_volID << ", " << unallocImgID << ", " << unallocImgStart << ", " << length << ", " << origImgStart << ")";
+
+    try
+    {
+        executeStatement(stmt.str());
+        return 0;
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskDBPostgreSQL::addAllocUnallocMapInfo - Error adding data to alloc_unalloc_map table: "
+            << e.what();
+        LOGERROR(errorMsg.str());
+
+        return 1;
+    }
+}
+
+/**
+ * Get information on all of the free sectors in an image.
+ *
+ * @return Info on unallocated runs (or NULL on error).  Caller must free this when done.
+ */
+SectorRuns * TskImgDBPostgreSQL::getFreeSectors() const
+{
+    if (!initialized())
+        return NULL;
+
+    SectorRuns * sr = new SectorRuns();
+
+    LOGINFO(L"TskImgDBPostgreSQL::getFreeSectors - Identifying Unallocated Sectors");
+
+    std::stringstream stmt;
+    std::wstringstream msg;
+
+    /********** FIND the unallocated volumes *************/
+    stmt << "SELECT vol_id, sect_start, sect_len, flags FROM vol_info";
+    try
+    {
+        pqxx::read_transaction readTrans(*m_dbConnection);
+        pqxx::result R = readTrans.exec(stmt);
+
+        for (int rownum=0; rownum < R.size(); ++rownum)
+        {
+            const result::tuple row = R[rownum];
+
+            int flags = row[3].as<int>();
+
+            int vol_id = row[0].as<int>();
+            int64_t start = row[1].as<int64_t>();
+            int64_t len = row[2].as<int64_t>();
+
+            // add the unallocated volumes
+            if (flags & TSK_VS_PART_FLAG_UNALLOC) {
+                sr->addRun(start, len, vol_id);
+            }
+
+            // add the allocated volumes that don't have a known file system
+            else
+            {
+                stmt.str("");
+                stmt << "SELECT fs_id FROM fs_info WHERE vol_id = " << vol_id;
+                pqxx::result R1 = readTrans.exec(stmt);
+
+                if (R1.size() == 0)
+                {
+                    sr->addRun(start, len, vol_id);
+                }
+            }
+        } // end of 'for' statement
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::getFreeSectors - Error querying vol_info table: "
+            << e.what();
+        LOGERROR(errorMsg.str());
+
+        return NULL;
+    }
+
+    /*************** Find the unallocated blocks in each file system *************/
+    // @@@ Need to make more dynamic
+    int blk_size[32];
+    memset(blk_size, 0, sizeof(blk_size));
+    uint64_t blk_count[32];
+    memset(blk_count, 0, sizeof(blk_count));
+    int vol_id[32];
+    uint64_t img_offset[32];
+
+    // get basic info on each file system
+    stmt.str("");
+    stmt << "SELECT fs_id, vol_id, img_byte_offset, block_size, block_count FROM fs_info";
+    try
+    {
+        pqxx::read_transaction readTrans(*m_dbConnection);
+        pqxx::result R = readTrans.exec(stmt);
+
+        LOGINFO(L"TskImgDBPostgreSQL::getFreeSectors - START LOOP: Find the unallocated blocks in each file system.");
+        for (int rownum=0; rownum < R.size(); ++rownum)
+        {
+            const result::tuple row = R[rownum];
+
+            int fs_id = row[0].as<int>();
+            if (fs_id > 32)
+            {
+                std::wstringstream errorMsg;
+                errorMsg << L"TskImgDBPostgreSQL::getFreeSectors - fs_id in fs_info is bigger than 32: " << fs_id;
+                LOGERROR(errorMsg.str());
+                break;
+            }
+
+            vol_id[fs_id] = row[1].as<int>();
+            img_offset[fs_id] = row[2].as<uint64_t>() / 512;
+            blk_size[fs_id] = row[3].as<int>() / 512;
+            blk_count[fs_id] = row[4].as<uint64_t>(); 
+
+            // Debug Info
+            msg.str(L"");
+            msg << L"TskImgDBPostgreSQL::getFreeSectors - fs_id=" << fs_id << " vol_id=" << vol_id[fs_id] << " img_offset=" << img_offset[fs_id] << " blk_size=" << blk_size[fs_id] <<
+                " blk_count=" << blk_count[fs_id];
+            LOGINFO(msg.str().c_str());
+        }
+        LOGINFO(L"TskImgDBPostgreSQL::getFreeSectors - DONE: Find the unallocated blocks in each file system.");
+    }// end of 'try' block
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::getFreeSectors - Error querying fs_info table: "
+            << e.what();
+        LOGERROR(errorMsg.str());
+
+        return NULL;
+    }
+
+    // see what blocks have been used and add them to a list
+    TSK_LIST *seen[32];
+    memset(seen, 0, 32*sizeof(TSK_LIST *));
+
+    stmt.str("");
+    stmt << "SELECT fs_id, file_id, blk_start, blk_len FROM fs_blocks";
+    try
+    {
+        pqxx::read_transaction readTrans(*m_dbConnection);
+        pqxx::result blocksResult = readTrans.exec(stmt);
+
+        LOGINFO(L"TskImgDBPostgreSQL::getFreeSectors - START LOOP: see what blocks have been used and add them to a list.");
+        for (int rownum=0; rownum < blocksResult.size(); ++rownum)
+        {
+            const result::tuple row = blocksResult[rownum];
+
+            int fs_id = row[0].as<int>();
+            if (fs_id > 32)
+            {
+                std::wstringstream errorMsg;
+                errorMsg << L"TskImgDBPostgreSQL::getFreeSectors - fs_id in fs_info is bigger than 32: " << fs_id;
+                LOGERROR(errorMsg.str());
+                break;
+            }
+            uint64_t file_id = row[1].as<uint64_t>();
+            int64_t addr = row[2].as<int64_t>();
+            int64_t len = row[3].as<int64_t>();
+
+            // We only want to consider the runs for files that we allocated.
+            int flags = 0;
+            stmt.str("");
+            stmt << "SELECT meta_flags from files WHERE file_id=" << file_id;
+            pqxx::result flagsResult = readTrans.exec(stmt);
+
+            // @@@ It is possible for fs_blocks entries to have a file_id = 0
+            // @@@ An example is "pointer" blocks in ext file systems that
+            // @@@ contain the addresses of where the file content is stored.
+            // @@@ We should tag these blocks with the actual file_id instead of 0
+            // @@@ and use another mechanism to identify them as non-content blocks.
+            if (file_id != 0 && flagsResult.size() == 0)
+            {
+                std::wstringstream errorMsg;
+                errorMsg << L"TskImgDBPostgreSQL::getFreeSectors - error finding flags for file " << file_id;
+                LOGERROR(errorMsg.str());
+                continue;
+            }
+            else if (flagsResult.size() > 0)
+            {
+                flags = flagsResult[0][0].as<int>();
+            }
+
+            if (flags & TSK_FS_META_FLAG_UNALLOC)
+                continue;
+
+            // @@@ We can probably find a more effecient storage method than this...
+            int error = 0;
+            for (int64_t i = 0; i < len; i++) {
+                if (tsk_list_add(&seen[fs_id], addr+i)) {
+                    std::wstringstream errorMsg;
+                    errorMsg << L"TskImgDBPostgreSQL::getFreeSectors - Error adding seen block address to list";
+                    LOGERROR(errorMsg.str());
+
+                    error = 1;
+                    break;
+                }
+            }
+            if (error)
+                break;
+        } // end of 'for' block
+        LOGINFO(L"TskImgDBPostgreSQL::getFreeSectors - DONE: see what blocks have been used and add them to a list.");
+    } // end of 'try' block
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::getFreeSectors - Error querying fs_block table: "
+            << e.what();
+        LOGERROR(errorMsg.str());
+
+        return NULL;
+    }
+
+    // cycle through each file system to find the unused blocks
+    LOGINFO(L"TskImgDBPostgreSQL::getFreeSectors - START LOOP: cycle through each file system to find the unused blocks.");
+    for (int f = 0; f < 32; f++) {
+        if (blk_count[f] == 0)
+            continue;
+
+        uint64_t st = 0;
+        int len = 0;
+        // we previously adjusted blk_size and img_offset to be in sectors
+
+        msg.str(L"");
+        msg << L"blk_count[" << f << "]=" << blk_count[f];
+        LOGINFO(msg.str().c_str());
+
+        for (uint64_t a = 0; a < blk_count[f]; a++) {
+            // see if this addr was used in a file
+            if (tsk_list_find(seen[f], a) == 0) {
+                // we already have a run being defined
+                if (len) {
+                    // same run, so add on to it
+                    if (st + len == a) {
+                        len++;
+                    }
+                    // different run, make a new one
+                    else {
+                        sr->addRun(img_offset[f]+st*blk_size[f], len*blk_size[f], vol_id[f]);
+                        st = a;
+                        len = 1;
+                    }
+                }
+                // start a new run
+                else {
+                    st = a;
+                    len = 1;
+                }
+            }
+        }
+        // add the final run
+        if (len) {
+            sr->addRun(img_offset[f]+st*blk_size[f], len*blk_size[f], vol_id[f]);
+        }
+        tsk_list_free(seen[f]);
+        seen[f] = NULL;
+    }
+    LOGINFO(L"TskImgDBPostgreSQL::getFreeSectors - DONE: cycle through each file system to find the unused blocks.");
+
+    return sr;
+}
+
+std::string TskImgDBPostgreSQL::getImageBaseName() const
+{
+    // There may be multiple file paths if the image is a split image. Oreder by sequence number to extract the file name from the first path.
+    pqxx::read_transaction trans(*m_dbConnection);
+    pqxx::result resultSet = trans.exec("SELECT name FROM image_names ORDER BY seq;");
+    if (resultSet.begin() != resultSet.end())
+    {
+        Poco::Path imagePath((resultSet.begin())[0].c_str()); 
+        return imagePath.getFileName();
+    }
+    else
+    {
+        return "";
+    }
+}
+
+std::vector<std::wstring> TskImgDBPostgreSQL::getImageNames() const
+{
+    std::vector<std::wstring> imgList;
+
+    if (!initialized())
+        return imgList;
+
+    stringstream stmt;
+
+    stmt << "SELECT name FROM image_names ORDER BY seq";
+
+    try
+    {
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result R = trans.exec(stmt);
+
+        for (pqxx::result::const_iterator i = R.begin(); i != R.end(); ++i)
+        {
+            std::wstring imgName;
+            Poco::UnicodeConverter::toUTF16(i[0].c_str(), imgName);
+
+            imgList.push_back(imgName);
+        }
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::getImageNames - Error getting image names : "
+            << e.what();
+        LOGERROR(errorMsg.str());
+    }
+
+    if (imgList.empty()) 
+    {
+        LOGERROR(L"No images found in TskImgDBPostgres");
+    }
+
+    return imgList;
+}
+
+/**
+ * @param a_fileId  File id to get information about
+ * @param a_fsOffset Byte offset of start of file system that the file is located in
+ * @param a_fsFileId File system-specific id of the file
+ * @param a_attrType Type of attribute for this file
+ * @param a_attrId The ID of the attribute for this file
+ * @returns 0 on success, -1 on error
+ */
+int TskImgDBPostgreSQL::getFileUniqueIdentifiers(uint64_t a_fileId, uint64_t &a_fsOffset, uint64_t &a_fsFileId, int &a_attrType, int &a_attrId) const
+{
+    if (!initialized())
+        return -1;
+
+    stringstream stmt;
+
+    stmt << "SELECT fs_file_id, attr_type, attr_id, fs_info.img_byte_offset "
+        "FROM fs_files, fs_info WHERE file_id=" << a_fileId
+        << " AND fs_info.fs_id = fs_files.fs_id";
+
+    try
+    {
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result R = trans.exec(stmt);
+
+        if (R.size() == 1)
+        {
+            R[0][0].to(a_fsFileId);
+            R[0][1].to(a_attrType);
+            R[0][2].to(a_attrId);
+            R[0][3].to(a_fsOffset);
+        }
+        else
+        {
+            std::wstringstream errorMsg;
+            errorMsg << L"TskImgDBPostgreSQL::getFileUniqueIdentifiers - Not a file system file : "
+                << a_fileId;
+            LOGERROR(errorMsg.str());
+
+            return -1;
+        }
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::getFileUniqueIdentifiers - Error getting file identifiers: "
+            << e.what();
+        LOGERROR(errorMsg.str());
+
+        return -1;
+    }
+
+    return 0;
+}
+
+/**
+ * Get number of volumes in image.
+ * @return Number of volumes in image or -1 on error
+ */
+int TskImgDBPostgreSQL::getNumVolumes() const
+{
+    if (!initialized())
+        return -1;
+
+    int count = 0;
+
+    try
+    {
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result R = trans.exec("SELECT count(*) from vol_info");
+
+        if (R.size() == 1)
+        {
+            R[0][0].to(count);
+        }
+        else
+        {
+            std::wstringstream errorMsg;
+            errorMsg << L"TskImgDBPostgreSQL::getNumVolumes - Unexpected number of rows returned."
+                << R.size();
+            LOGERROR(errorMsg.str());
+
+            return -1;
+        }
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::getNumVolumes - Error getting number of volumes: "
+            << e.what();
+        LOGERROR(errorMsg.str());
+
+        return -1;
+    }
+
+    return count;
+}
+
+/**
+ * Get number of files in image.
+ * @return Number of files in image or -1 on error
+ */
+int TskImgDBPostgreSQL::getNumFiles() const
+{
+    if (!initialized())
+        return -1;
+
+    std::string condition("");
+    int count = getFileCount(condition);
+
+    return count;
+}
+
+/**
+ * @returns the session_id or -1 on error.
+ */
+int TskImgDBPostgreSQL::getSessionID() const
+{
+    if (!initialized())
+        return -1;
+
+    int sessionId;
+    stringstream stmt;
+
+    stmt << "SELECT version FROM db_info WHERE name = 'SID'";
+
+    try
+    {
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result R = trans.exec(stmt);
+
+        if (R.size() == 1)
+        {
+            R[0][0].to(sessionId);
+        }
+        else
+        {
+            std::wstringstream errorMsg;
+            errorMsg << L"TskImgDBPostgreSQL::getSessionID - Unexpected number of rows returned."
+                << R.size();
+            LOGERROR(errorMsg.str());
+
+            return -1;
+        }
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::getSessionID - Error getting session id: "
+            << e.what();
+        LOGERROR(errorMsg.str());
+
+        return -1;
+    }
+
+    return sessionId;
+}
+
+/**
+ * begin is a no-op since all PostgreSQL statements are run in the
+ * context of a transaction.
+ */
+int TskImgDBPostgreSQL::begin()
+{
+    return 0;
+}
+
+/**
+ * commit is a no-op since all PostgreSQL statements are run in the
+ * context of a transaction.
+ */
+int TskImgDBPostgreSQL::commit()
+{
+    return 0;
+}
+
+
+UnallocRun * TskImgDBPostgreSQL::getUnallocRun(int a_unalloc_img_id, int a_file_offset) const
+{
+    if (!initialized())
+        return NULL;
+
+    stringstream stmt;
+
+    stmt << "SELECT vol_id, unalloc_img_sect_start, sect_len, orig_img_sect_start FROM "
+        "alloc_unalloc_map WHERE unalloc_img_id = " << a_unalloc_img_id 
+        << " AND unalloc_img_sect_start <= " << a_file_offset << " ORDER BY unalloc_img_sect_start DESC";
+
+    try
+    {
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result R = trans.exec(stmt);
+
+        if (R.size() > 0)
+        {
+            int vol_id; R[0][0].to(vol_id);
+            int unalloc_img_sect_start; R[0][1].to(unalloc_img_sect_start);
+            int sect_len; R[0][2].to(sect_len);
+            int orig_img_sect_start; R[0][3].to(orig_img_sect_start);
+
+            return new UnallocRun(vol_id, a_unalloc_img_id, unalloc_img_sect_start, sect_len, orig_img_sect_start);
+        }
+        else
+        {
+            LOGERROR(L"TskImgDBPostgreSQL::getUnallocRun - No records returned.\n");
+            return new UnallocRun(-1, -1, -1, -1, -1);
+        }
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::getUnallocRun - Error fetching data from alloc_unalloc_map table: "
+            << e.what();
+        LOGERROR(errorMsg.str());
+
+        return new UnallocRun(-1, -1, -1, -1, -1);
+    }
+}
+
+/**
+ * Adds information about a carved file into the database.  This includes the sector layout
+ * information. 
+ * 
+ * @param size Number of bytes in file
+ * @param runStarts Array with starting sector (relative to start of image) for each run in file.
+ * @param runLengths Array with number of sectors in each run 
+ * @param numRuns Number of entries in previous arrays
+ * @param fileId Carved file Id (output)
+ * @returns 0 on success or -1 on error.
+ */
+int TskImgDBPostgreSQL::addCarvedFileInfo(int vol_id, wchar_t * name, uint64_t size, 
+                                          uint64_t *runStarts, uint64_t *runLengths, int numRuns, uint64_t & fileId)
+{
+    if (!initialized())
+        return -1;
+
+    std::string utf8Name;
+    Poco::UnicodeConverter::toUTF8(name, utf8Name);
+
+    fileId = 0;
+
+    stringstream stmt;
+
+    stmt << "INSERT INTO files (file_id, type_id, name, par_file_id, dir_type, meta_type,"
+        "dir_flags, meta_flags, size, ctime, crtime, atime, mtime, mode, uid, gid, status, full_path) "
+        "VALUES (DEFAULT, " << IMGDB_FILES_TYPE_CARVED << ", " << m_dbConnection->quote(utf8Name)
+        << ", NULL, " <<  TSK_FS_NAME_TYPE_REG << ", " <<  TSK_FS_META_TYPE_REG << ", "
+        << TSK_FS_NAME_FLAG_UNALLOC << ", " << TSK_FS_META_FLAG_UNALLOC << ", "
+        << size << ", 0, 0, 0, 0, NULL, NULL, NULL, " << IMGDB_FILES_STATUS_CREATED << "," << m_dbConnection->quote(utf8Name) << ")";
+
+    try
+    {
+        pqxx::work W(*m_dbConnection);
+        pqxx::result R = W.exec(stmt);
+
+        // get the file_id from the last insert
+        stmt.str("");
+        stmt << "SELECT currval(pg_get_serial_sequence('files', 'file_id'))";
+        R = W.exec(stmt);
+
+        fileId = R[0][0].as<uint64_t>();
+
+        stmt.str("");
+
+        // insert into the carved_files_table
+        stmt << "INSERT INTO carved_files (file_id, vol_id) VALUES ("
+            << fileId << ", " << vol_id << ")";
+
+        R = W.exec(stmt);
+
+        // insert into carved_sectors table
+        for (int i = 0; i < numRuns; i++)
+        {
+            stmt.str("");
+            stmt << "INSERT INTO carved_sectors (file_id, seq, sect_start, sect_len) VALUES ("
+                << fileId << ", " << i << ", " << runStarts[i] << ", " << runLengths[i] << ")";
+
+            R = W.exec(stmt);
+        }
+
+        W.commit();
+    }
+    catch (exception& ex)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::addCarvedFileInfo - Error adding data to carved_files table: "
+            << ex.what();
+        LOGERROR(errorMsg.str());
+
+        return -1;
+    }
+
+    return 0;
+}
+
+/**
+ * Adds information about derived files to the database.  Derived files typically come
+ * from archives and may be compressed.
+ * 
+ * @param name The name of the file.
+ * @param parentId The id of the file from which this file is derived.
+ * @param size The size of the file.
+ * @param details This is a string that may contain extra details related
+ * to the particular type of mechanism that was used to derive this file, 
+ * e.g. files derived from zip archives may have extra information about the
+ * compressed size of the file.
+ * @param ctime Time file system file entry was changed.
+ * @param crtime Time the file was created.
+ * @param atime Last access time.
+ * @param mtime Last modified time.
+ * @param fileId Return the file_id value.
+ *
+ * @returns 0 on success or -1 on error.
+ */
+int TskImgDBPostgreSQL::addDerivedFileInfo(const std::string& name, const uint64_t parentId, 
+                                           const bool isDirectory, const uint64_t size,
+                                           const std::string& details,
+                                           const int ctime, const int crtime, const int atime, const int mtime,
+                                           uint64_t &fileId, std::string path)
+{
+    if (!initialized())
+        return -1;
+
+    // Ensure that strings are valid UTF-8
+    std::vector<char> cleanName(name.begin(), name.end());
+    cleanName.push_back('\0');
+    TskUtilities::cleanUTF8(&cleanName[0]);
+
+    std::vector<char> cleanDetails(details.begin(), details.end());
+    cleanDetails.push_back('\0');
+    TskUtilities::cleanUTF8(&cleanDetails[0]);
+
+    std::vector<char> cleanPath(path.begin(), path.end());
+    cleanPath.push_back('\0');
+    TskUtilities::cleanUTF8(&cleanPath[0]);
+
+    TSK_FS_NAME_TYPE_ENUM dirType = isDirectory ? TSK_FS_NAME_TYPE_DIR : TSK_FS_NAME_TYPE_REG;
+    TSK_FS_META_TYPE_ENUM metaType = isDirectory ? TSK_FS_META_TYPE_DIR : TSK_FS_META_TYPE_REG;
+
+    std::stringstream stmt;
+
+    stmt << "INSERT INTO files (file_id, type_id, name, par_file_id, dir_type, meta_type, size, ctime, crtime, atime, mtime, status, full_path) "
+        "VALUES (DEFAULT, " << IMGDB_FILES_TYPE_DERIVED << ", " << m_dbConnection->quote(&cleanName[0]) << ", " << parentId << ", " << dirType << ", " << metaType << ", " << size
+        << ", " << ctime << ", " << crtime << ", " << atime << ", " << mtime << ", " << IMGDB_FILES_STATUS_CREATED << ", E" << m_dbConnection->quote(&cleanPath[0]) << ")";
+
+    try
+    {
+        pqxx::work W(*m_dbConnection);
+        pqxx::result R = W.exec(stmt);
+
+        // get the file_id from the last insert
+        stmt.str("");
+        stmt << "SELECT currval(pg_get_serial_sequence('files', 'file_id'))";
+        R = W.exec(stmt);
+
+        fileId = R[0][0].as<uint64_t>();
+
+        stmt.str("");
+
+        // insert into the derived_files table
+        stmt << "INSERT INTO derived_files (file_id, derivation_details) VALUES ("
+            << fileId << ", E" << m_dbConnection->quote(&cleanDetails[0]) << ")";
+
+        R = W.exec(stmt);
+        W.commit();
+    }
+    catch (exception& ex)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::addDerivedFileInfo - Error adding derived file data: "
+            << ex.what();
+        LOGERROR(errorMsg.str());
+
+        return -1;
+    }
+
+    return 0;
+}
+
+/**
+ * Fills outBuffer with file IDs that match the name fileName.
+ * Returns the number of file IDs written into outBuffer or -1 on error.
+ */
+int TskImgDBPostgreSQL::getFileIds(char *a_fileName, uint64_t *a_outBuffer, int a_buffSize) const
+{
+    if (!initialized())
+        return -1;
+
+    int outIdx = 0;
+    stringstream stmt;
+
+    stmt << "SELECT file_id FROM files WHERE name LIKE "
+        << m_dbConnection->quote(a_fileName);
+
+    try
+    {
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result R = trans.exec(stmt);
+
+        if (R.size() > a_buffSize)
+        {
+            std::wstringstream errorMsg;
+            errorMsg << L"TskImgDBPostgreSQL::getFileIds - Number of file ids returned ("
+                << R.size() << ") is greated than buffer capacity (" << a_buffSize << ")";
+            LOGERROR(errorMsg.str());
+            return -1;
+        }
+
+        for (pqxx::result::const_iterator i = R.begin(); i != R.end(); ++i)
+        {
+            i[0].to(a_outBuffer[outIdx++]);
+        }
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::getFileIds - Error getting file ids : "
+            << e.what();
+        LOGERROR(errorMsg.str());
+
+        return -1;
+    }
+
+    return outIdx;
+}
+
+/**
+ * Given the last file ID ready for analysis, find the largest file ID ready of analysis (in maxFileId)
+ * Returns 0 on success or -1 on error.
+ */
+int TskImgDBPostgreSQL::getMaxFileIdReadyForAnalysis(uint64_t a_lastFileId, uint64_t & maxFileId) const
+{
+    if (!initialized())
+        return -1;
+
+    maxFileId = 0;
+    stringstream stmt;
+
+    stmt << "SELECT max(file_id) FROM files WHERE status = " << TskImgDB::IMGDB_FILES_STATUS_READY_FOR_ANALYSIS
+        << " AND file_id >= " << a_lastFileId;
+
+    try
+    {
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result R = trans.exec(stmt);
+
+        if (R.size() == 1)
+        {
+            R[0][0].to(maxFileId);
+        }
+        else
+        {
+            std::wstringstream errorMsg;
+            errorMsg << L"TskImgDBPostgreSQL::getMaxFileIdReadyForAnalysis - Unexpected number of rows returned."
+                << R.size();
+            LOGERROR(errorMsg.str());
+            return -1;
+        }
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::getMaxFileIdReadyForAnalysis - Error retrieving maximum file id: "
+            << e.what();
+        LOGERROR(errorMsg.str());
+
+        return -1;
+    }
+
+    return 0;
+}
+
+/*
+ * Return the minimum file id with status = READY_FOR_ANALYSIS in minFileId.
+ * Return 0 on success, -1 if failed.
+ */
+int TskImgDBPostgreSQL::getMinFileIdReadyForAnalysis(uint64_t & minFileId) const
+{
+    if (!initialized())
+        return -1;
+
+    minFileId = 0;
+    stringstream stmt;
+
+    stmt << "SELECT min(file_id) FROM files WHERE status = " << TskImgDB::IMGDB_FILES_STATUS_READY_FOR_ANALYSIS;
+
+    try
+    {
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result R = trans.exec(stmt);
+
+        if (R.size() == 1)
+        {
+            R[0][0].to(minFileId);
+        }
+        else
+        {
+            std::wstringstream errorMsg;
+            errorMsg << L"TskImgDBPostgreSQL::getMinFileIdReadyForAnalysis - Unexpected number of rows returned."
+                << R.size();
+            LOGERROR(errorMsg.str());
+            return -1;
+        }
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::getMinFileIdReadyForAnalysis - Error retrieving minimum file id: "
+            << e.what();
+        LOGERROR(errorMsg.str());
+
+        return -1;
+    }
+
+    return 0;
+}
+
+SectorRuns * TskImgDBPostgreSQL::getFileSectors(uint64_t a_fileId) const 
+{
+    if (!initialized())
+        return NULL;
+
+    SectorRuns * sr = new SectorRuns();
+    int srCount = 0;
+
+    stringstream stmt;
+
+    stmt << "SELECT fs_blocks.blk_start, fs_blocks.blk_len, "
+        "fs_info.block_size, fs_info.img_byte_offset, fs_info.vol_id "
+        "FROM files "
+        "JOIN fs_files ON files.file_id = fs_files.file_id "
+        "JOIN fs_blocks ON files.file_id = fs_blocks.file_id "
+        "JOIN fs_info ON fs_blocks.fs_id = fs_info.fs_id "
+        "WHERE files.file_id = " << a_fileId << " ORDER BY fs_blocks.seq;";
+
+    try
+    {
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result R = trans.exec(stmt);
+
+        for (pqxx::result::const_iterator i = R.begin(); i!= R.end(); ++i)
+        {
+            uint64_t blkStart; i[0].to(blkStart);
+            uint64_t blkLength; i[1].to(blkLength);
+            int blkSize; i[2].to(blkSize);
+            uint64_t imgByteOffset; i[3].to(imgByteOffset);
+            int volId; i[4].to(volId);
+
+            uint64_t start = (imgByteOffset + blkStart * blkSize) / 512;
+            uint64_t len = (blkLength * blkSize) / 512;
+
+            sr->addRun(start, len, volId);
+            srCount++;
+        }
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::getFileSectors - Error finding block data for file_id= " << a_fileId
+            << e.what() << std::endl;
+        LOGERROR(errorMsg.str());
+
+        return NULL;
+    }
+
+    return sr;
+}
+
+/**
+ * update the status field in the database for a given file.
+ * @param a_file_id File to update.
+ * @param a_status Status flag to update to.
+ * @returns 1 on error.
+ */
+int TskImgDBPostgreSQL::updateFileStatus(uint64_t a_file_id, TskImgDB::FILE_STATUS a_status)
+{
+    if (!initialized())
+        return 1;
+
+    stringstream stmt;
+
+    stmt << "UPDATE files SET status = " << a_status << " WHERE file_id = " << a_file_id;
+
+    try
+    {
+        work W(*m_dbConnection);
+        result R = W.exec(stmt);
+        W.commit();
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::updateFileStatus - Error updating file status: "
+            << e.what();
+        LOGERROR(errorMsg.str());
+
+        return 1;
+    }
+
+    return 0;
+}
+
+/**
+ * update the known status field in the database for a given file.
+ * @param a_file_id File to update.
+ * @param a_status Status flag to update to.
+ * @returns 1 on error.
+ */
+int TskImgDBPostgreSQL::updateKnownStatus(uint64_t a_file_id, TskImgDB::KNOWN_STATUS a_status)
+{
+    if (!initialized())
+        return 1;
+
+    stringstream stmt;
+
+    stmt << "SELECT known FROM file_hashes WHERE file_id = " << a_file_id;
+
+    try
+    {
+        int status;
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result R = trans.exec(stmt);
+        pqxx::result::const_iterator i = R.begin(); 
+        if(R.size() != 0)
+            i[0].to(status);
+        else
+            status = TskImgDB::IMGDB_FILES_UNKNOWN;
+        trans.commit();
+
+        if((status == TskImgDB::IMGDB_FILES_UNKNOWN) ||
+           (a_status == TskImgDB::IMGDB_FILES_KNOWN_BAD) ||
+           (status == TskImgDB::IMGDB_FILES_KNOWN && a_status == TskImgDB::IMGDB_FILES_KNOWN_GOOD)){
+            stmt.str("");
+            stmt << "UPDATE file_hashes SET known = " << a_status << " WHERE file_id = " << a_file_id;
+
+            work W(*m_dbConnection);
+            R = W.exec(stmt);
+            W.commit();
+        }
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::updateKnownStatus - Error updating file status: "
+            << e.what();
+        LOGERROR(errorMsg.str());
+
+        return 1;
+    }
+
+    return 0;
+}
+
+bool TskImgDBPostgreSQL::dbExist() const
+{
+    bool rc = false;
+
+    // Get current user name. This will get used in connecting to the database.
+    char name[UNLEN+1];
+    DWORD size = UNLEN+1;
+
+    GetUserNameA(name, &size);
+
+    std::string db_host = GetSystemProperty(TskSystemProperties::DB_HOST);
+    std::string db_port = GetSystemProperty(TskSystemProperties::DB_PORT);
+    std::string db_host_ip;
+    if (!TskUtilities::getHostIP(db_host, db_host_ip))
+        return false;
+
+    try
+    {
+        // Construct the connection string to connect to the Postgres server.
+        std::stringstream pgConnectionString;
+        pgConnectionString << "host='" << db_host_ip << "' port='" << db_port
+            << "' dbname='postgres' user='" << name << "'";
+
+        pqxx::connection pgConnection(pgConnectionString.str());
+
+        // Check whether the database exists
+        pqxx::nontransaction nontrans(pgConnection);
+
+        std::stringstream dbQuery;
+        dbQuery << "select count(*) from pg_catalog.pg_database where datname = " << nontrans.quote(m_dbName);
+
+        pqxx::result R = nontrans.exec(dbQuery);
+
+        if (R.size() == 0 || R[0][0].as<int>() == 0) 
+        {
+            // There is no database.
+            ;
+        } else {
+            rc = true;
+        }
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskDBPostgreSQL::dbExist - Error pg_database where datname= " << m_dbName.c_str() << " Error: "
+            << e.what();
+        LOGERROR(errorMsg.str());
+    }
+    return rc;
+}
+
+void TskImgDBPostgreSQL::getCarvedFileInfo(const std::string& stmt,
+                                           std::map<uint64_t, std::string>& results) const
+{
+    try
+    {
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result R = trans.exec(stmt);
+        uint64_t file_id;
+        std::string cfileName;
+        std::string fileName;
+        for (pqxx::result::const_iterator i = R.begin(); i != R.end(); ++i)
+        {
+            i[0].to(file_id);
+            i[1].to(fileName);
+            i[2].to(cfileName);
+
+            // Grab the extension and append it to the cfile name
+            std::string::size_type pos = fileName.rfind('.');
+            if (pos != std::string::npos)
+                cfileName.append(fileName.substr(pos));
+
+            results[file_id] = cfileName;
+        }
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream msg;
+        msg << L"TskImgDBPostgreSQL::getCarvedFileInfo - Error getting carved file details : "
+            << e.what();
+        LOGERROR(msg.str());
+    }
+}
+
+std::map<uint64_t, std::string> TskImgDBPostgreSQL::getUniqueCarvedFiles(HASH_TYPE hashType) const
+{
+    std::map<uint64_t, std::string> results;
+
+    if (!initialized())
+        return results;
+
+    string hash;
+    switch (hashType) {
+    case TskImgDB::MD5:
+        hash = "md5";
+        break;
+    case TskImgDB::SHA1:
+        hash = "sha1";
+        break;
+    case TskImgDB::SHA2_256:
+        hash = "sha2_256";
+        break;
+    case TskImgDB::SHA2_512:
+        hash = "sha2_512";
+        break;
+    default:
+        std::wstringstream msg;
+        msg << L"TskImgDBPostgreSQL::getUniqueCarvedFiles - Unsupported hashType : " << hashType;
+        LOGERROR(msg.str());
+        return results;
+    }
+
+    std::stringstream stmt;
+
+    // If hashes have not been calculated return all carved files.
+    stmt << "select count(*) from file_hashes";
+
+    try
+    {
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result R = trans.exec(stmt);
+        uint64_t counter = 0;
+        if (R.size() == 1)
+            counter = R[0][0].as<uint64_t>();
+        if (counter == 0) 
+        {
+            std::wstringstream msg;
+            msg << L"TskImgDBPostgreSQL::getUniqueCarvedFiles - file_hashes table is empty";
+            LOGWARN(msg.str());
+
+            trans.commit();
+
+            stmt.str("");
+            stmt << "select c.file_id, f.name, 'cfile_' || c.vol_id || '_' || cs.sect_start || '_' "
+                << "|| c.file_id from files f, carved_files c, carved_sectors cs "
+                << "where c.file_id = cs.file_id and cs.seq = 0 and f.file_id = c.file_id order by c.file_id";
+            getCarvedFileInfo(stmt.str(), results);
+            return results;
+        }
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream msg;
+        msg << L"TskImgDBPostgreSQL::getUniqueCarvedFileIds - Error getting file_hashes count : "
+            << e.what();
+        LOGERROR(msg.str());
+    }
+
+    stmt.str("");
+    // Get the set of files for which the hash has been calculated.
+    stmt << "select c.file_id, f.name, 'cfile_' || c.vol_id || '_' || cs.sect_start || '_' "
+        << "|| c.file_id from files f, carved_files c, carved_sectors cs "
+        << "where c.file_id = cs.file_id and cs.seq = 0 and f.file_id = c.file_id and c.file_id in "
+        << "(select min(file_id) from file_hashes where " << hash << " != '' group by " << hash << " ) order by c.file_id";
+
+    getCarvedFileInfo(stmt.str(), results);
+
+    // Next get the set of files for which the hash has *not* been calculated.
+    stmt.str("");
+    stmt << "select c.file_id, f.name, 'cfile_' || c.vol_id || '_' || cs.sect_start || '_' "
+        << "|| c.file_id from files f, carved_files c, carved_sectors cs "
+        << "where c.file_id = cs.file_id and cs.seq = 0 and f.file_id = c.file_id and c.file_id in "
+        << "(select file_id from file_hashes where " << hash << " = '') order by c.file_id";
+
+    getCarvedFileInfo(stmt.str(), results);
+
+    // Finally, add file info for all of the carved files for which there are no hashes of any sort.
+        // All of these files must be included because without hashes there is no way to determine uniqueness.
+    stmt.clear();
+    stmt.str("");
+    stmt << "SELECT c.file_id, f.name, 'cfile_' || c.vol_id || '_' || cs.sect_start || '_' || c.file_id "
+         << "FROM files f, carved_files c, carved_sectors cs "
+         << "WHERE c.file_id = cs.file_id AND cs.seq = 0 AND f.file_id = c.file_id AND c.file_id NOT IN "
+         << "(SELECT fh.file_id FROM file_hashes fh) ORDER BY c.file_id";
+    getCarvedFileInfo(stmt.str(), results);
+
+    return results;
+}
+
+void TskImgDBPostgreSQL::getCarvedFileInfo(const std::string &stmtToExecute, bool getHash, std::vector<TskCarvedFileInfo> &carvedFileInfos) const
+{
+    TskCarvedFileInfo info;
+    std::string fileName;
+    pqxx::read_transaction trans(*m_dbConnection);
+    pqxx::result result = trans.exec(stmtToExecute);
+    for (pqxx::result::const_iterator row = result.begin(); row != result.end(); ++row)
+    {
+        row[0].to(info.fileID);
+        row[1].to(fileName);
+        row[2].to(info.cFileName);
+        if (getHash)
+        {
+            row[3].to(info.hash);
+        }
+
+        // Append the extension from the original file name to the constructed "cfile" name.
+        std::string::size_type pos = fileName.rfind('.');
+        if (pos != std::string::npos)
+        {
+            info.cFileName.append(fileName.substr(pos));
+        }
+
+        carvedFileInfos.push_back(info);
+    }
+}
+
+std::vector<TskCarvedFileInfo> TskImgDBPostgreSQL::getUniqueCarvedFilesInfo(HASH_TYPE hashType) const
+{
+    const std::string msgPrefix = "TskImgDBPostgreSQL::getUniqueCarvedFilesInfo : "; 
+
+    if (!initialized())
+    {
+        std::ostringstream msg;
+        msg << msgPrefix << "no database connection";
+        throw TskException(msg.str());
+    }
+
+    // Map the hash type to a file_hashes table column name.
+    string hash;
+    switch (hashType) 
+    {
+    case TskImgDB::MD5:
+        hash = "md5";
+        break;
+    case TskImgDB::SHA1:
+        hash = "sha1";
+        break;
+    case TskImgDB::SHA2_256:
+        hash = "sha2_256";
+        break;
+    case TskImgDB::SHA2_512:
+        hash = "sha2_512";
+        break;
+    default:
+        std::ostringstream msg;
+        msg << msgPrefix << "unsupported hash type :" << hashType;
+        throw TskException(msg.str());
+    }
+
+    try
+    {
+        std::vector<TskCarvedFileInfo> carvedFileInfos;
+
+        // Do a quick check to see if any hashes have been calculated.
+        std::ostringstream stmt;
+        stmt << "SELECT COUNT(*) FROM file_hashes;";
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result result = trans.exec(stmt.str());
+        uint64_t counter = 0;
+        if (result.size() == 1)
+        {
+            counter = result[0][0].as<uint64_t>();
+        }
+        trans.commit();
+
+        if (counter != 0)
+        {
+            // At least one type of hash has been calculated (presumably for all files, but this is not guaranteed). 
+            // First, add file info for the set of unique files among the carved files for which the specified type of hash is available.
+            stmt.clear();
+            stmt.str("");
+            stmt << "SELECT c.file_id, f.name, 'cfile_' || c.vol_id || '_' || cs.sect_start || '_' || c.file_id, fh." << hash << " "
+                 << "FROM files f, carved_files c, carved_sectors cs, file_hashes fh "
+                 << "WHERE c.file_id = cs.file_id AND cs.seq = 0 AND f.file_id = c.file_id AND c.file_id = fh.file_id AND c.file_id IN "
+                 << "(SELECT MIN(file_id) FROM file_hashes WHERE " << hash << " != '' GROUP BY " << hash << ") ORDER BY c.file_id";
+            getCarvedFileInfo(stmt.str(), true, carvedFileInfos);
+
+             // Next, add file info for all of the carved files for which the specified hash is not available.
+             // All of these files must be included because without the specified hash there is no acceptable way to determine uniqueness.
+            stmt.clear();
+            stmt.str("");
+            stmt << "SELECT c.file_id, f.name, 'cfile_' || c.vol_id || '_' || cs.sect_start || '_' || c.file_id "
+                 << "FROM files f, carved_files c, carved_sectors cs "
+                 << "WHERE c.file_id = cs.file_id AND cs.seq = 0 AND f.file_id = c.file_id AND c.file_id IN "
+                 << "(SELECT file_id FROM file_hashes WHERE " << hash << " = '') ORDER BY c.file_id";
+            getCarvedFileInfo(stmt.str(), false, carvedFileInfos);
+
+            // Finally, add file info for all of the carved files for which there are no hashes of any sort.
+             // All of these files must be included because without hashes there is no way to determine uniqueness.
+            stmt.clear();
+            stmt.str("");
+            stmt << "SELECT c.file_id, f.name, 'cfile_' || c.vol_id || '_' || cs.sect_start || '_' || c.file_id "
+                 << "FROM files f, carved_files c, carved_sectors cs "
+                 << "WHERE c.file_id = cs.file_id AND cs.seq = 0 AND f.file_id = c.file_id AND c.file_id NOT IN "
+                 << "(SELECT fh.file_id FROM file_hashes fh) ORDER BY c.file_id";
+            getCarvedFileInfo(stmt.str(), false, carvedFileInfos);
+        }
+        else
+        {
+            // No hashes have been calculated.
+            // Return carved file info all of the carved files because without hashes there is no way to determine uniqueness.
+            stmt.clear();
+            stmt.str("");
+            stmt << "SELECT c.file_id, f.name, 'cfile_' || c.vol_id || '_' || cs.sect_start || '_' || c.file_id "
+                 << "FROM files f, carved_files c, carved_sectors cs "
+                 << "WHERE c.file_id = cs.file_id AND cs.seq = 0 AND f.file_id = c.file_id ORDER BY c.file_id";
+            getCarvedFileInfo(stmt.str(), false, carvedFileInfos);
+
+            std::ostringstream msg;
+            msg << msgPrefix << "no hashes available, returning all carved files";
+            LOGWARN(msg.str());
+        }
+
+        return carvedFileInfos;
+    }
+    catch (std::exception &ex)
+    {
+        std::stringstream msg;
+        msg << msgPrefix << "std::exception: " << ex.what();
+        throw TskException(msg.str());
+    }
+    catch (...)
+    {
+        throw TskException(msgPrefix + "unrecognized exception");
+    }
+}
+
+std::vector<uint64_t> TskImgDBPostgreSQL::getCarvedFileIds() const
+{
+    return getFileIdsWorker("carved_files");
+}
+
+std::vector<uint64_t> TskImgDBPostgreSQL::getUniqueFileIds(HASH_TYPE hashType) const
+{
+    std::vector<uint64_t> results;
+
+    if (!initialized())
+        return results;
+
+    string hash;
+    switch (hashType) {
+    case TskImgDB::MD5:
+        hash = "md5";
+        break;
+    case TskImgDB::SHA1:
+        hash = "sha1";
+        break;
+    case TskImgDB::SHA2_256:
+        hash = "sha2_256";
+        break;
+    case TskImgDB::SHA2_512:
+        hash = "sha2_512";
+        break;
+    default:
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::getUniqueFileIds - Unsupported hashType : " << hashType;
+        LOGERROR(errorMsg.str());
+        return results;
+    }
+
+    stringstream stmt;
+
+    stmt << "SELECT min(file_id) FROM file_hashes WHERE " << hash << " != '' group by " << hash ;
+
+    try
+    {
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result R = trans.exec(stmt);
+        uint64_t file_id;
+        for (pqxx::result::const_iterator i = R.begin(); i != R.end(); ++i)
+        {
+            i[0].to(file_id);
+            results.push_back(file_id);
+        }
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::getUniqueFileIds - Error getting file ids : "
+            << e.what();
+        LOGERROR(errorMsg.str());
+    }
+
+    // Get all carved_files with empty hash, if hash was not generated.
+    stmt << "SELECT file_id FROM file_hashes WHERE " << hash << " = '' ";
+    try
+    {
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result R = trans.exec(stmt);
+        uint64_t file_id;
+        uint64_t counter = 0;
+        for (pqxx::result::const_iterator i = R.begin(); i != R.end(); ++i)
+        {
+            i[1].to(file_id);
+            results.push_back(file_id);
+            counter++;
+        }
+        if (counter) {
+            // There are some files without hash, generate a warning.
+            std::wstringstream errorMsg;
+            errorMsg << L"TskImgDBPostgreSQL::getUniqueFileIds - Including " << counter << L" files with no hash value.";
+            LOGWARN(errorMsg.str());
+        }
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::getUniqueFileIds - Error getting file ids : "
+            << e.what();
+        LOGERROR(errorMsg.str());
+    }
+    return results;
+}
+
+/**
+ * Get the list of file ids that match the given criteria.
+ * The given string will be appended to "select files.file_id from files".
+ *
+ * @param condition Must be a valid SQL string defining the selection criteria.
+ * @returns The collection of file ids matching the selection criteria. Throws
+ * TskException if database not initialized.
+ */
+std::vector<uint64_t> TskImgDBPostgreSQL::getFileIds(std::string& condition) const 
+{
+    if (!initialized())
+        throw TskException("Database not initialized.");
+
+    std::vector<uint64_t> results;
+    
+    std::string stmt("SELECT files.file_id from files");
+
+    constructStmt(stmt, condition);
+
+    try
+    {
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result R = trans.exec(stmt);
+        uint64_t file_id;
+        for (pqxx::result::const_iterator i = R.begin(); i != R.end(); ++i)
+        {
+            i[0].to(file_id);
+            results.push_back(file_id);
+        }
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::getFileIds - Error getting file ids : "
+            << e.what();
+        LOGERROR(errorMsg.str());
+    }
+
+    return results;
+}
+
+/**
+ * Get the list of file records that match the given criteria.
+ * The given string will be appended to "select .... from files".
+ *
+ * @param condition Must be a valid SQL string defining the selection criteria.
+ * @returns The collection of file records matching the selection criteria. Throws
+ * TskException if database not initialized.
+ */
+std::vector<const TskFileRecord> TskImgDBPostgreSQL::getFileRecords(std::string& condition) const 
+{
+    if (!initialized())
+        throw TskException("Database not initialized.");
+
+    std::vector<const TskFileRecord> results;
+    
+    std::stringstream stmtstrm;
+    stmtstrm << "SELECT f.file_id, f.type_id, f.name, f.par_file_id, f.dir_type, f.meta_type, f.dir_flags, "
+        << "f.meta_flags, f.size, f.ctime, f.crtime, f.atime, f.mtime, f.mode, f.uid, f.gid, f.status, f.full_path, "
+        << "fh.md5, fh.sha1, fh.sha2_256, fh.sha2_512 "
+        << "FROM files f LEFT OUTER JOIN file_hashes fh ON f.file_id = fh.file_id ";
+
+    std::string stmt = stmtstrm.str();
+
+    constructStmt(stmt, condition);
+
+    try
+    {
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result R = trans.exec(stmt);
+        for (pqxx::result::const_iterator i = R.begin(); i != R.end(); ++i)
+        {
+            TskFileRecord fileRecord;
+            
+            i[0].to(fileRecord.fileId);
+            i[1].to((int &)fileRecord.typeId);
+            i[2].to(fileRecord.name);
+            i[3].to(fileRecord.parentFileId);
+            i[4].to((int &)fileRecord.dirType);
+            i[5].to((int &)fileRecord.metaType);
+            i[6].to((int &)fileRecord.dirFlags);
+            i[7].to((int &)fileRecord.metaFlags);
+            i[8].to(fileRecord.size);
+            i[9].to(fileRecord.ctime);
+            i[10].to(fileRecord.crtime);
+            i[11].to(fileRecord.atime);
+            i[12].to(fileRecord.mtime);
+            i[13].to((int &)fileRecord.mode);
+            i[14].to(fileRecord.uid);
+            i[15].to(fileRecord.gid);
+            i[16].to((int &)fileRecord.status);
+            i[17].to(fileRecord.fullPath);
+            i[18].to(fileRecord.md5);
+            i[19].to(fileRecord.sha1);
+            i[20].to(fileRecord.sha2_256);
+            i[21].to(fileRecord.sha2_512);   
+            results.push_back(fileRecord);
+        }
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::getFileRecords - Error getting file records: "
+            << e.what();
+        LOGERROR(errorMsg.str());
+    }
+
+    return results;
+}
+
+/**
+ * Get the number of files that match the given criteria.
+ * The given string will be appended to "select files.file_id from files".
+ *
+ * @param condition Must be a valid SQL string defining the selection criteria.
+ * @returns The number of files matching the selection criteria. 
+ */
+int TskImgDBPostgreSQL::getFileCount(std::string& condition) const 
+{
+    if (!initialized())
+        throw TskException("Database not initialized.");
+
+    int result = 0;
+    std::string stmt("SELECT count(files.file_id) from files");
+
+    constructStmt(stmt, condition);
+
+    try
+    {
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result R = trans.exec(stmt);
+
+        if (R.size() == 1)
+        {
+            R[0][0].to(result);
+        }
+        else
+        {
+            std::wstringstream msg;
+            msg << L"TskImgDBPostgreSQL::getFileCount - Unexpected number of rows returned."
+                << R.size();
+            LOGERROR(msg.str());
+
+            return -1;
+        }
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream msg;
+        msg << L"TskImgDBPostgreSQL::getFileCount - Error getting file count : "
+            << e.what();
+        LOGERROR(msg.str());
+        return -1;
+    }
+
+    return result;
+}
+
+
+
+void TskImgDBPostgreSQL::constructStmt(std::string& stmt, std::string& condition) const
+{
+    if (!condition.empty())
+    {
+        // Remove leading whitespace from condition
+        std::string trimmedCond = Poco::trimLeft(condition);
+
+        std::string whereClause("WHERE");
+        std::string joinClause("JOIN");
+        std::string leftClause("LEFT");
+        std::string orderClause("ORDER");
+
+        // If the condition doesn't start with a WHERE clause and it doesn't
+        // start with a comma it is presumably extending the FROM clause with
+        // one or more table names. In this case we need to add the comma to
+        // the statement.
+        if (Poco::icompare(trimmedCond, 0, whereClause.length(), whereClause) != 0 
+            && Poco::icompare(trimmedCond, 0, joinClause.length(), joinClause) != 0
+            && Poco::icompare(trimmedCond, 0, leftClause.length(), leftClause) != 0
+            && Poco::icompare(trimmedCond, 0, orderClause.length(), orderClause) != 0
+            && trimmedCond[0] != ',')
+        {
+            stmt.append(",");
+        }
+    }
+
+    stmt.append(" ");
+    stmt.append(condition);
+}
+
+std::vector<uint64_t> TskImgDBPostgreSQL::getFileIds() const
+{
+    return getFileIdsWorker("files");
+}
+
+std::vector<uint64_t> TskImgDBPostgreSQL::getFileIdsWorker(std::string tableName, const std::string condition) const
+{
+    std::vector<uint64_t> results;
+
+    if (!initialized())
+        return results;
+
+    stringstream stmt;
+    stmt << "SELECT file_id FROM " << tableName;
+    if (condition.compare("") != 0)
+        stmt << " WHERE " << condition;
+    stmt << " ORDER BY file_id";
+
+    try
+    {
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result R = trans.exec(stmt);
+        uint64_t file_id;
+        for (pqxx::result::const_iterator i = R.begin(); i != R.end(); ++i)
+        {
+            i[0].to(file_id);
+            results.push_back(file_id);
+        }
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        std::wstring wTableName;
+        Poco::UnicodeConverter::toUTF16(tableName, wTableName);
+        errorMsg << L"TskImgDBPostgreSQL::getFileIdsWorker - Error getting file ids from " << wTableName << " : "
+            << e.what();
+        LOGERROR(errorMsg.str());
+    }
+
+    return results;
+}
+
+// Set file hash for hashType for a_file_id
+// Return 1 on failure, 0 on success.
+int TskImgDBPostgreSQL::setHash(const uint64_t a_file_id, const TskImgDB::HASH_TYPE hashType, const std::string& hash) const
+{
+    if (!initialized())
+        return 1;
+
+    string hashTypeStr;
+    switch (hashType) {
+    case TskImgDB::MD5:
+        hashTypeStr = "md5";
+        break;
+    case TskImgDB::SHA1:
+        hashTypeStr = "sha1";
+        break;
+    case TskImgDB::SHA2_256:
+        hashTypeStr = "sha2_256";
+        break;
+    case TskImgDB::SHA2_512:
+        hashTypeStr = "sha2_512";
+        break;
+    default:
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::setHash - Unsupported hashType : " << hashType;
+        LOGERROR(errorMsg.str());
+        return 1;
+    }
+
+    stringstream stmt;
+    bool found = false;
+    std::string md5, sha1, sha2_256, sha2_512;
+    int known = IMGDB_FILES_UNKNOWN;
+    std::stringstream stream;
+
+    stmt << "SELECT md5, sha1, sha2_256, sha2_512, known from file_hashes WHERE file_id = " << a_file_id;
+    try 
+    {
+        pqxx::read_transaction W(*m_dbConnection);
+        result R = W.exec(stmt);
+        if (R.size() == 1) {
+            R[0][0].to(md5);
+            R[0][1].to(sha1);
+            R[0][2].to(sha2_256);
+            R[0][3].to(sha2_512);
+            R[0][4].to(known);
+            found = true;
+        }
+    }
+    catch (const exception&)
+    {
+        ; // ok to fail if file_id don't exist
+    }
+
+    if (found) {
+        // delete existing record
+        stmt.str("");
+        stmt << "DELETE FROM file_hashes WHERE file_id=" << a_file_id;
+        try
+        {
+            pqxx::work W(*m_dbConnection);
+            pqxx::result R = W.exec(stmt);
+            W.commit();
+        }
+        catch (const exception &e)
+        {
+            std::wstringstream errorMsg;
+            errorMsg << L"TskImgDBPostgreSQL::setHash - DELETE " << hashType << L" failed: " << e.what();
+            LOGERROR(errorMsg.str());
+            return 1;
+        }
+
+    }
+    // insert new record
+    stmt.str("");
+    stmt << "INSERT INTO file_hashes (file_id, md5, sha1, sha2_256, sha2_512, known) VALUES (" << a_file_id;
+    switch (hashType) {
+    case TskImgDB::MD5:
+        stmt << ", '" << hash << "'";
+        stmt << ", '" << sha1 << "'";
+        stmt << ", '" << sha2_256 << "'";
+        stmt << ", '" << sha2_512 << "'";
+        stream << known;
+        stmt << ", " << stream.str();
+        break;
+    case TskImgDB::SHA1:
+        stmt << ", '" << md5 << "'";
+        stmt << ", '" << hash << "'";
+        stmt << ", '" << sha2_256 << "'";
+        stmt << ", '" << sha2_512 << "'";
+        stream << known;
+        stmt << ", " << stream.str();
+        break;
+    case TskImgDB::SHA2_256:
+        stmt << ", '" << md5 << "'";
+        stmt << ", '" << sha1 << "'";
+        stmt << ", '" << hash << "'";
+        stmt << ", '" << sha2_512 << "'";
+        stream << known;
+        stmt << ", " << stream.str();
+        break;
+    case TskImgDB::SHA2_512:
+        stmt << ", '" << md5 << "'";
+        stmt << ", '" << sha1 << "'";
+        stmt << ", '" << sha2_256 << "'";
+        stmt << ", '" << hash << "'";
+        stream << known;
+        stmt << ", " << stream.str();
+        break;
+    }
+    stmt << ")";
+
+    try
+    {
+        work W(*m_dbConnection);
+        result R = W.exec(stmt);
+        W.commit();
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskDBPostgreSQL::setHash - INSERT failed: "
+            << e.what();
+        LOGERROR(errorMsg.str());
+        return 1;
+    }
+    return 0;
+}
+
+std::string TskImgDBPostgreSQL::getCfileName(uint64_t a_file_id) const
+{
+    std::string cfileName;
+
+    if (!initialized())
+        return cfileName;
+
+    stringstream stmt;
+
+    stmt << "select 'cfile_' || c.vol_id || '_' || cs.sect_start || '_' || f.file_id"
+        " from files f, carved_files c, carved_sectors cs where f.file_id = c.file_id and c.file_id = cs.file_id and cs.seq = 0"
+        " and f.file_id = " << a_file_id;
+    try
+    {
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result R = trans.exec(stmt);
+        for (pqxx::result::const_iterator i = R.begin(); i != R.end(); ++i)
+        {
+            cfileName = (char *)i[0].c_str();
+        }
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::getCfileName - Error getting CFileName for file id " << a_file_id << " : "
+            << e.what();
+        LOGERROR(errorMsg.str());
+    }
+
+    stmt.str("");
+    stmt << "select f.name "
+        " from files f, carved_files c, carved_sectors cs where f.file_id = c.file_id and c.file_id = cs.file_id and cs.seq = 0"
+        " and f.file_id = " << a_file_id;
+    std::string name;
+    try
+    {
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result R = trans.exec(stmt);
+        for (pqxx::result::const_iterator i = R.begin(); i != R.end(); ++i)
+        {
+            name = (char *)i[0].c_str();
+            int pos = name.rfind('.');
+            if (pos != string::npos)
+                cfileName += name.substr(pos);
+        }
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::getCfileName - Error getting CFileName for file id " << a_file_id << " : "
+            << e.what();
+        LOGERROR(errorMsg.str());
+    }
+
+    return cfileName;
+}
+
+/**
+ * Return the ImageInfo
+ * @param type Image Type (output)
+ * @param sectorSize Image sector size (output)
+ * @returns 0 on success or -1 on error.
+ */
+int TskImgDBPostgreSQL::getImageInfo(int & type, int & sectorSize) const
+{
+    int result = -1;
+
+    if (!initialized())
+        return result;
+
+    try
+    {
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result R = trans.exec("SELECT type, ssize from image_info");
+
+        if (R.size() == 1)
+        {
+            R[0][0].to(type);
+            R[0][1].to(sectorSize);
+            result = 0;
+        }
+        else
+        {
+            std::wstringstream errorMsg;
+            errorMsg << L"TskImgDBPostgreSQL::getImageInfo - Unexpected number of rows returned."
+                << R.size();
+            LOGERROR(errorMsg.str());
+        }
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::getImageInfo - Error getting image_info: "
+            << e.what();
+        LOGERROR(errorMsg.str());
+    }
+    return result;
+}
+
+/**
+ * Return a list of TskVolumeInfoRecord
+ * @param volumeInfoList A list of TskVolumeInfoRecord (output)
+ * @returns 0 on success or -1 on error.
+ */
+int TskImgDBPostgreSQL::getVolumeInfo(std::list<TskVolumeInfoRecord> & volumeInfoList) const
+{
+    int rc = -1;
+
+    if (!initialized())
+        return rc;
+
+    try
+    {
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result R = trans.exec("SELECT vol_id, sect_start, sect_len, description, flags FROM vol_info");
+
+        for (result::size_type rownum=0; rownum < R.size(); ++rownum) {
+            const result::tuple row = R[rownum];
+            TskVolumeInfoRecord vol_info;
+            vol_info.vol_id = row[0].as<int>();
+            vol_info.sect_start = row[1].as<uint64_t>();
+            vol_info.sect_len = row[2].as<uint64_t>();
+            vol_info.description.assign(row[3].as<const char *>());
+            vol_info.flags = (TSK_VS_PART_FLAG_ENUM)row[4].as<int>();
+            volumeInfoList.push_back(vol_info);
+        }
+        rc = 0;
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::getVolumeInfo - Error getting vol_info: "
+            << e.what();
+        LOGERROR(errorMsg.str());
+    }
+    return rc;
+}
+
+/**
+ * Return a list of TskFsInfoRecord
+ * @param fsInfoList A list of TskFsInfoRecord (output)
+ * @returns 0 on success or -1 on error.
+ */
+int TskImgDBPostgreSQL::getFsInfo(std::list<TskFsInfoRecord> & fsInfoList) const
+{
+    int rc = -1;
+
+    if (!initialized())
+        return rc;
+
+    try
+    {
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result R = trans.exec("SELECT fs_id, img_byte_offset, vol_id, fs_type, block_size, block_count, root_inum, first_inum, last_inum FROM fs_info");
+
+        for (result::size_type rownum=0; rownum < R.size(); ++rownum) {
+            const result::tuple row = R[rownum];
+            TskFsInfoRecord fs_info;
+            fs_info.fs_id = row[0].as<int>();
+            fs_info.img_byte_offset = row[1].as<uint64_t>();
+            fs_info.vol_id = row[2].as<int>();
+            fs_info.fs_type = (TSK_FS_TYPE_ENUM)row[3].as<int>();
+            fs_info.block_size = row[4].as<int>();
+            fs_info.block_count = row[5].as<uint64_t>();
+            fs_info.root_inum = row[6].as<uint64_t>();
+            fs_info.first_inum = row[7].as<uint64_t>();
+            fs_info.last_inum =  row[8].as<uint64_t>();
+            fsInfoList.push_back(fs_info);
+        }
+        rc = 0;
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::getFsInfo - Error getting fs_info: "
+            << e.what();
+        LOGERROR(errorMsg.str());
+    }
+    return rc;
+}
+
+typedef std::map<std::string, int> FileTypeMap_t;
+
+static std::string getFileType(const char *name)
+{
+    std::string filename = name;
+    int pos = filename.rfind('.');
+    if (pos != std::string::npos) {
+        std::string suffix = filename.substr(pos);
+        std::string result;
+        for (size_t i=0; i < suffix.size(); i++) {
+            result += (char)tolower(suffix[i]);
+        }
+        return result;
+    }
+    else
+        return std::string("");
+}
+
+/**
+ * Return a list of TskFileTypeRecord for all files.
+ * @param fileTypeInfoList A list of TskFileTypeRecord (output)
+ * @returns 0 on success or -1 on error.
+ */
+int TskImgDBPostgreSQL::getFileInfoSummary(std::list<TskFileTypeRecord> &fileTypeInfoList) const
+{
+    std::stringstream stmt;
+    stmt << "SELECT name FROM files WHERE dir_type = " << TSK_FS_NAME_TYPE_REG;
+
+    return getFileTypeRecords(stmt.str(), fileTypeInfoList);
+}
+
+/**
+ * Return a list of TskFileTypeRecord for fileType
+ * @param fileType FILE_TYPE to report
+ * @param fileTypeInfoList A list of TskFileTypeRecord (output)
+ * @returns 0 on success or -1 on error.
+ */
+int TskImgDBPostgreSQL::getFileInfoSummary(FILE_TYPES fileType, std::list<TskFileTypeRecord> & fileTypeInfoList) const
+{
+    std::stringstream stmt;
+    stmt << "SELECT name FROM files WHERE type_id = " << fileType << " AND dir_type = " << TSK_FS_NAME_TYPE_REG;
+
+    return getFileTypeRecords(stmt.str(), fileTypeInfoList);
+}
+
+/**
+ * Return a list of TskFileTypeRecords matching the given SQL statement.
+ * @param stmt The SQL statement used to match file records.
+ * @param fileTypeInfoList A list of TskFileTypeRecord (output)
+ * @returns 0 on success of -1 on error.
+ */
+int TskImgDBPostgreSQL::getFileTypeRecords(std::string& stmt, std::list<TskFileTypeRecord>& fileTypeInfoList) const
+{
+    int rc = -1;
+
+    if (!initialized())
+        return rc;
+
+    std::list<TskFileTypeRecord> list;
+
+    try {
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result R = trans.exec(stmt.c_str());
+        FileTypeMap_t fileTypeMap;
+
+        for (result::size_type rownum=0; rownum < R.size(); ++rownum) {
+            const result::tuple row = R[rownum];
+            const char* name = row[0].as<const char *>();
+            std::string type = getFileType(name);
+            FileTypeMap_t::iterator iter = fileTypeMap.find(type);
+            if (iter != fileTypeMap.end()) {
+                // increment file counter
+                int count = iter->second;
+                fileTypeMap[type] = ++count;
+            } else {
+                // add a new file type
+                fileTypeMap.insert(pair<std::string, int>(type, 1));
+            }
+        }
+        for (FileTypeMap_t::const_iterator iter=fileTypeMap.begin(); iter != fileTypeMap.end(); iter++) {
+            TskFileTypeRecord info;
+            info.suffix.assign((*iter).first.c_str());
+            info.count = (*iter).second;
+            info.description.assign("File Type Description");
+            fileTypeInfoList.push_back(info);
+        }
+        rc = 0;
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::getFileTypeRecords - Error retrieving file type records: "
+            << e.what();
+        LOGERROR(errorMsg.str());
+    }
+    return rc;
+}
+
+/**
+ * Insert the Module record, if module name does not already exist in modules table.
+ * Returns Module Id associated with the Module record.
+ * @param name Module name
+ * @param description Module description
+ * @param moduleId Module Id (output)
+ * @returns 0 on success, -1 on error.
+ */
+int TskImgDBPostgreSQL::addModule(const std::string& name, const std::string& description, int & moduleId)
+{
+    if (!initialized())
+        return 0;
+
+    stringstream stmt;
+
+    stmt << "SELECT module_id FROM modules WHERE name = " << m_dbConnection->quote(name);
+
+    try 
+    {
+        work W(*m_dbConnection);
+        result R = W.exec(stmt);
+
+        if (R.size() == 1)
+        {
+            // Already exists, return module_id
+            R[0][0].to(moduleId);
+            return 0;
+        }
+
+        // Insert a new one
+        stmt.str("");
+        stmt << "INSERT INTO modules (module_id, name, description) VALUES (DEFAULT, " << m_dbConnection->quote(name) << ", " << m_dbConnection->quote(description) << ")";
+
+        R = W.exec(stmt);
+
+        // Get the newly assigned module id
+        stmt.str("");
+        stmt << "SELECT currval(pg_get_serial_sequence('modules', 'module_id'))";
+        R = W.exec(stmt);
+        R[0][0].to(moduleId);
+        W.commit();
+    } 
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskDBPostgreSQL::addModule - Error inserting into modules table: "
+            << e.what();
+        LOGERROR(errorMsg.str());
+        return -1;
+    }
+
+    return 0;
+}
+
+/**
+ * Insert the module status record.
+ * @param file_id file_id
+ * @param module_id module_id
+ * @param status Status of module
+ * @returns 0 on success, -1 on error.
+ */
+int TskImgDBPostgreSQL::setModuleStatus(uint64_t file_id, int module_id, int status)
+{
+    int rc = -1;
+
+    if (!initialized())
+        return rc;
+
+    stringstream stmt;
+    stmt << "INSERT INTO module_status (file_id, module_id, status) VALUES (" << 
+        file_id << ", " <<
+        module_id << ", " <<
+        status << ")";
+    try
+    {
+        work W(*m_dbConnection);
+        result R = W.exec(stmt);
+        W.commit();
+        rc = 0;
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskDBPostgreSQL::setModuleStatus - Error adding data to module_status table: "
+            << e.what();
+        LOGERROR(errorMsg.str());
+    }
+    return rc;
+}
+
+/**
+ * Get a list of TskModuleStatus.
+ * @param moduleStatusList A list of TskModuleStatus (output)
+ * @returns 0 on success, -1 on error.
+ */
+int TskImgDBPostgreSQL::getModuleInfo(std::vector<TskModuleInfo> & moduleInfoList) const
+{
+    int rc = -1;
+
+    if (!initialized())
+        return rc;
+
+    stringstream stmt;
+    stmt << "SELECT module_id, name, description FROM modules"
+         << " ORDER BY module_id";
+    try
+    {
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result R = trans.exec(stmt);
+        TskModuleInfo moduleInfo;
+        for (pqxx::result::const_iterator i = R.begin(); i != R.end(); ++i)
+        {
+            i[0].to(moduleInfo.module_id);
+            moduleInfo.module_name.assign(i[1].c_str());
+            moduleInfo.module_description.assign(i[2].c_str());
+            moduleInfoList.push_back(moduleInfo);
+        }
+        rc = 0;
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::getModuleErrors - Error getting module_status: "
+            << e.what();
+        LOGERROR(errorMsg.str());
+    }
+    return rc;
+}
+
+/**
+ * Get a list of TskModuleStatus.
+ * @param moduleStatusList A list of TskModuleStatus (output)
+ * @returns 0 on success, -1 on error.
+ */
+int TskImgDBPostgreSQL::getModuleErrors(std::vector<TskModuleStatus> & moduleStatusList) const
+{
+    int rc = -1;
+
+    if (!initialized())
+        return rc;
+
+    stringstream stmt;
+    stmt << "SELECT f.file_id, m.name, ms.status FROM module_status ms, files f, modules m"
+         << " WHERE ms.status != 0 AND ms.file_id = f.file_id AND m.module_id = ms.module_id"
+         << " ORDER BY f.file_id";
+    try
+    {
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result R = trans.exec(stmt);
+        TskModuleStatus moduleStatus;
+        for (pqxx::result::const_iterator i = R.begin(); i != R.end(); ++i)
+        {
+            i[0].to(moduleStatus.file_id);
+            moduleStatus.module_name.assign(i[1].c_str());
+            i[2].to(moduleStatus.status);
+            moduleStatusList.push_back(moduleStatus);
+        }
+        rc = 0;
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::getModuleErrors - Error getting module_status: "
+            << e.what();
+        LOGERROR(errorMsg.str());
+    }
+    // Find report module errors. These have file_id = 0.
+    stmt.str("");
+    stmt << "SELECT 0, m.name, ms.status FROM module_status ms, modules m"
+         << " WHERE ms.status != 0 AND ms.file_id = 0 AND m.module_id = ms.module_id";
+    try
+    {
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result R = trans.exec(stmt);
+        TskModuleStatus moduleStatus;
+        for (pqxx::result::const_iterator i = R.begin(); i != R.end(); ++i)
+        {
+            i[0].to(moduleStatus.file_id);
+            moduleStatus.module_name.assign(i[1].c_str());
+            i[2].to(moduleStatus.status);
+            moduleStatusList.push_back(moduleStatus);
+        }
+        rc = 0;
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::getModuleErrors - Error getting module_status: "
+            << e.what();
+        LOGERROR(errorMsg.str());
+    }
+    return rc;
+}
+
+/*
+ * Return a file name associated with a file_id, prefer Cfilename, otherwise name in the files table.
+ * @param file_id file id
+ * @returns file name as std::string
+ */
+std::string TskImgDBPostgreSQL::getFileName(uint64_t file_id) const
+{
+    std::string name;
+
+    if (!initialized())
+        return name;
+
+    name = getCfileName(file_id);
+    if (name == "") {
+        TskFileRecord fileRecord;
+        if (getFileRecord(file_id, fileRecord) == 0)
+            name = fileRecord.name;
+    }
+    return name;
+}
+
+/**
+ * Return the known status of the file with the given id
+ * @param fileId id of the file to get the status of
+ * @returns KNOWN_STATUS
+ */
+TskImgDB::KNOWN_STATUS TskImgDBPostgreSQL::getKnownStatus(const uint64_t fileId) const
+{
+     int retval = -1;
+
+    if (!initialized())
+        return (TskImgDB::KNOWN_STATUS)retval;
+
+    stringstream stmt;
+    stmt << "SELECT known FROM file_hashes WHERE file_id = " << fileId;
+
+    try
+    {
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result R = trans.exec(stmt);
+        pqxx::result::const_iterator i = R.begin(); 
+        if(i != R.end()){
+            i[0].to(retval);
+        }
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        std::wstring wTableName;
+        errorMsg << L"TskImgDBPostgreSQL::getFileIdsWorker - Error getting known status : "
+            << e.what() << std::endl;
+        LOGERROR(errorMsg.str());
+    }
+
+    return (TskImgDB::KNOWN_STATUS)retval;
+}
+
+/**
+ * Add a new row to the unalloc_img_status table, returning the unalloc_img_id.
+ * @param unallocImgId unalloc_img_id (output)
+ * @returns -1 on error, 0 on success.
+ */
+int TskImgDBPostgreSQL::addUnallocImg(int & unallocImgId)
+{
+    int rc = -1;
+
+    if (!initialized())
+        return rc;
+
+    std::stringstream stmt;
+    stmt << "INSERT INTO unalloc_img_status (unalloc_img_id, status) VALUES (DEFAULT, " << TskImgDB::IMGDB_UNALLOC_IMG_STATUS_CREATED << ")";
+    try
+    {
+        pqxx::work W(*m_dbConnection);
+        pqxx::result R = W.exec(stmt);
+
+        // get the unalloc_img_id from the last insert
+        stmt.str("");
+        stmt << "SELECT currval(pg_get_serial_sequence('unalloc_img_status', 'unalloc_img_id'))";
+        R = W.exec(stmt);
+        unallocImgId = R[0][0].as<int>();
+        W.commit();
+        rc = 0;
+    }
+    catch (const exception& ex)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::addUnallocImg - Error adding unalloc_img_status table: "
+            << ex.what();
+        LOGERROR(errorMsg.str());
+    }
+
+    return rc;
+}
+
+/**
+ * Set the status in the unalloc_img_status table given the unalloc_img_id.
+ * @param unallocImgId unalloc_img_id
+ * @param status status of unalloc_img_id
+ * @returns -1 on error, 0 on success.
+ */
+int TskImgDBPostgreSQL::setUnallocImgStatus(int unallocImgId, TskImgDB::UNALLOC_IMG_STATUS status)
+{
+    int rc = -1;
+
+    if (!initialized())
+        return rc;
+
+    std::stringstream stmt;
+    stmt << "UPDATE unalloc_img_status SET status = " << status << " WHERE unalloc_img_id = " << unallocImgId;
+    try
+    {
+        pqxx::work W(*m_dbConnection);
+        pqxx::result R = W.exec(stmt);
+        W.commit();
+        rc = 0;
+    }
+    catch (const exception& ex)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::setUnallocImgStatus - Error updating unalloc_img_status table: "
+            << ex.what() << std::endl;
+        LOGERROR(errorMsg.str());
+    }
+
+    return rc;
+}
+
+/**
+ * Get the status of the unalloc_img_status table given the unalloc_img_id.
+ * Can throws TskException.
+ * @param unallocImgId unalloc_img_id
+ * @returns TskImgDB::UNALLOC_IMG_STATUS
+ */
+TskImgDB::UNALLOC_IMG_STATUS TskImgDBPostgreSQL::getUnallocImgStatus(int unallocImgId) const
+{
+    if (!initialized())
+        throw TskException("Database not initialized.");
+
+    int status;
+
+    stringstream stmt;
+    stmt << "SELECT status FROM unalloc_img_status WHERE unalloc_img_id = " << unallocImgId;
+    try {
+        pqxx::read_transaction trans(*m_dbConnection);
+        pqxx::result R = trans.exec(stmt.str().c_str());
+        if (R.size() == 1) {
+            R[0][0].to(status);
+        } else {
+            throw TskException("No unalloc_img_status.");
+        }
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream errorMsg;
+        errorMsg << L"TskImgDBPostgreSQL::getUnallocImgStatus - Error getting unalloc_img_status: "
+            << e.what() << std::endl;
+        LOGERROR(errorMsg.str());
+    }
+    return (TskImgDB::UNALLOC_IMG_STATUS)status;
+}
+
+/**
+ * Get all the unalloc_img_status table.
+ * @param unallocImgStatusList A vector of TskUnallocImgStatusRecord (output)
+ * @returns -1 on error, 0 on success.
+ */
+int TskImgDBPostgreSQL::getAllUnallocImgStatus(std::vector<TskUnallocImgStatusRecord> & unallocImgStatusList) const
+{
+    int rc = -1;
+    unallocImgStatusList.clear();
+
+    if (!initialized())
+        return rc;
+
+    stringstream stmt;
+    stmt << "SELECT unalloc_img_id, status FROM unalloc_img_status";
+
+    try
+    {
+        pqxx::read_transaction W(*m_dbConnection);
+        pqxx::result R = W.exec(stmt.str().c_str());
+
+        for (pqxx::result::const_iterator i = R.begin(); i != R.end(); ++i)
+        {
+            TskUnallocImgStatusRecord record;
+
+            i[0].to(record.unallocImgId);
+            i[1].to((int &)record.status);
+            unallocImgStatusList.push_back(record);
+        }
+        rc = 0;
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream msg;
+        msg << L"TskDBPostgreSQL::getAllBlackboardRows - Error querying blackboard table: "
+            << e.what() << std::endl;
+        LOGERROR(msg.str());
+    }
+    return rc;
+}
+
+/**
+ * Find and add all the unused sectors (unallocated and uncarved bytes) in the given unallocImgId
+ * @param unallocImgId The unalloc image id.
+ * @param unusedSectorsList A vector of TskUnusedSectorsRecord
+ * @returns -1 on error, 0 on success.
+ */
+int TskImgDBPostgreSQL::addUnusedSectors(int unallocImgId, std::vector<TskUnusedSectorsRecord> & unusedSectorsList)
+{
+    assert(unallocImgId > 0);
+
+    if (!initialized())
+        return -1;
+
+    std::stringstream stmt;
+    stmt << "SELECT vol_id, unalloc_img_sect_start, sect_len, orig_img_sect_start FROM alloc_unalloc_map "
+        "WHERE unalloc_img_id = " << unallocImgId << " ORDER BY orig_img_sect_start ASC";
+
+    try {
+        pqxx::read_transaction W(*m_dbConnection);
+        pqxx::result R = W.exec(stmt.str());
+
+        vector<TskAllocUnallocMapRecord> allocUnallocMapList;
+
+        for (pqxx::result::const_iterator i = R.begin(); i != R.end(); ++i)
+        {
+            TskAllocUnallocMapRecord record;
+            i[0].to(record.vol_id);
+            record.unalloc_img_id = unallocImgId;
+            i[1].to(record.unalloc_img_sect_start);
+            i[2].to(record.sect_len);
+            i[3].to(record.orig_img_sect_start);
+            allocUnallocMapList.push_back(record);
+        }
+
+        W.commit();
+
+        for (std::vector<TskAllocUnallocMapRecord>::const_iterator it = allocUnallocMapList.begin();
+             it != allocUnallocMapList.end(); it++)
+        {
+            // Sector position tracks our position through the unallocated map record.
+            uint64_t sectPos = it->orig_img_sect_start;
+
+            uint64_t endSect = it->orig_img_sect_start + it->sect_len;
+
+            // Retrieve all carved_sector records in range for this section of unallocated space.
+            stmt.str("");
+            stmt << "SELECT cs.sect_start, cs.sect_len FROM carved_files cf, carved_sectors cs"
+                << " WHERE cf.file_id = cs.file_id AND cs.sect_start >= " << it->orig_img_sect_start
+                << " AND cs.sect_start < " << endSect << " ORDER BY cs.sect_start ASC";
+
+            pqxx::read_transaction trans(*m_dbConnection);
+
+            R = trans.exec(stmt.str());
+            trans.commit();
+
+            for (pqxx::result::const_iterator i = R.begin(); i != R.end(); i++)
+            {
+                uint64_t cfileSectStart;
+                uint64_t cfileSectLen;
+
+                i[0].to(cfileSectStart);
+                i[1].to(cfileSectLen);
+
+                if (cfileSectStart > sectPos)
+                {
+                    // We have a block of unused sectors between this position in the unallocated map
+                    // and the start of the carved file.
+                    addUnusedSector(sectPos, cfileSectStart, it->vol_id, unusedSectorsList);
+                }
+
+                sectPos = cfileSectStart + cfileSectLen;
+            }
+
+            // Handle case where there is slack at the end of the unalloc range
+            if (sectPos < endSect)
+                addUnusedSector(sectPos, endSect, it->vol_id, unusedSectorsList);
+        }
+    }
+    catch (const exception &e)
+    {
+        std::wstringstream msg;
+        msg << L"TskDBPostgreSQL::addUnusedSectors - Error adding unused sectors : "
+            << e.what() << std::endl;
+        LOGERROR(msg.str());
+    }
+
+    return 0;
+}
+
+/**
+ * Add one unused sector to the database, add it to the files and unused_sectors tables.
+ * @param sectStart Unused sector start.
+ * @param sectEnd Unused sector end.
+ * @param volId Volume Id of the unused sector.
+ * @param unusedSectorsList A vector of TskUnusedSectorsRecord (output)
+ * @returns -1 on error, 0 on success.
+ */
+int TskImgDBPostgreSQL::addUnusedSector(uint64_t sectStart, uint64_t sectEnd, int volId, std::vector<TskUnusedSectorsRecord> & unusedSectorsList)
+{
+    assert(sectEnd > sectStart);
+    int rc = -1;
+    if (!initialized())
+        return rc;
+
+    char *ufilename = "ufile";
+    std::stringstream stmt;
+
+    std::string maxUnused = GetSystemProperty("MAX_UNUSED_FILE_SIZE_BYTES");
+    const uint64_t maxUnusedFileSizeBytes = maxUnused.empty() ? (50 * 1024 * 1024) : Poco::NumberParser::parse64(maxUnused);
+
+    uint64_t maxUnusedSectorSize = maxUnusedFileSizeBytes / 512;
+    uint64_t sectorIndex = 0;
+    uint64_t sectorCount = (sectEnd - sectStart) / maxUnusedSectorSize;
+
+    while (sectorIndex <= sectorCount) {
+        uint64_t thisSectStart = sectStart + (sectorIndex * maxUnusedSectorSize);
+        uint64_t thisSectEnd = thisSectStart + std::min(maxUnusedSectorSize, sectEnd - thisSectStart);
+
+        stmt.str("");
+        stmt << "INSERT INTO files (file_id, type_id, name, par_file_id, dir_type, meta_type,"
+            "dir_flags, meta_flags, size, ctime, crtime, atime, mtime, mode, uid, gid, status, full_path) "
+            "VALUES (DEFAULT, " << IMGDB_FILES_TYPE_UNUSED << ", " << m_dbConnection->quote(ufilename)
+            << ", NULL, " <<  TSK_FS_NAME_TYPE_REG << ", " <<  TSK_FS_META_TYPE_REG << ", "
+            << TSK_FS_NAME_FLAG_UNALLOC << ", " << TSK_FS_META_FLAG_UNALLOC << ", "
+            << (thisSectEnd - thisSectStart) * 512 << ", NULL, NULL, NULL, NULL, NULL, NULL, NULL, " << IMGDB_FILES_STATUS_READY_FOR_ANALYSIS << "," << m_dbConnection->quote(ufilename) << ")";
+        try
+        {
+            pqxx::work W(*m_dbConnection);
+            pqxx::result R = W.exec(stmt.str().c_str());
+
+            TskUnusedSectorsRecord record;
+
+            // get the file_id from the last insert
+            stmt.str("");
+            stmt << "SELECT currval(pg_get_serial_sequence('files', 'file_id'))";
+            R = W.exec(stmt.str().c_str());
+            record.fileId = R[0][0].as<uint64_t>();
+            record.sectStart = thisSectStart;
+            record.sectLen = thisSectEnd - thisSectStart;
+
+            std::stringstream name;
+            name << "ufile_" << thisSectStart << "_" << thisSectEnd << "_" << record.fileId;
+            stmt.str("");
+            stmt << "UPDATE files SET name = " << m_dbConnection->quote(name.str().c_str()) << ", full_path = " 
+                << m_dbConnection->quote(name.str().c_str()) << " WHERE file_id = " << record.fileId;
+            R = W.exec(stmt.str().c_str());
+
+            stmt.str("");
+            stmt << "INSERT INTO unused_sectors (file_id, sect_start, sect_len, vol_id) VALUES (" 
+                 << record.fileId << ", " << record.sectStart << ", " << record.sectLen << ", " << volId << ")";
+            R = W.exec(stmt.str().c_str());
+
+            W.commit();
+            unusedSectorsList.push_back(record);
+            rc = 0;
+        } 
+        catch (const exception& ex)
+        {
+            std::wstringstream errorMsg;
+            errorMsg << L"TskImgDBPostgreSQL::addUnusedSector - Error insert into files table: "
+                << ex.what() << std::endl;
+            LOGERROR(errorMsg.str());
+            rc = -1;
+            break;
+        }
+        sectorIndex++;
+    } // while
+    return rc;
+}
+
+/**
+ * Get unused sector record given a file id.
+ * @param fileId File id of the unused sector.
+ * @param unusedSectorsRecord TskUnusedSectorsRecord (output)
+ * @returns -1 on error, 0 on success.
+ */
+int TskImgDBPostgreSQL::getUnusedSector(uint64_t fileId, TskUnusedSectorsRecord & unusedSectorsRecord) const
+{
+    int rc = -1;
+    if (!initialized())
+        return rc;
+
+    std::stringstream stmt;
+    stmt << "SELECT sect_start, sect_len FROM unused_sectors WHERE file_id = " << fileId;
+
+    try {
+        pqxx::read_transaction W(*m_dbConnection);
+        pqxx::result R = W.exec(stmt.str().c_str());
+        if (R.size() == 1) {
+            unusedSectorsRecord.fileId = fileId;
+            unusedSectorsRecord.sectStart = R[0][0].as<uint64_t>();
+            unusedSectorsRecord.sectLen = R[0][1].as<uint64_t>();
+            rc = 0;
+        } else {
+            std::wstringstream msg;
+            msg << L"TskDBPostgreSQL::getUnusedSector - Error querying unused_sectors table for file_id "
+                << fileId << ", result size = " << R.size() << std::endl;
+            LOGERROR(msg.str());
+        }
+    } 
+    catch (const exception &e)
+    {
+        std::wstringstream msg;
+        msg << L"TskDBPostgreSQL::getUnusedSector - Error querying unused_sectors table: "
+            << e.what() << std::endl;
+        LOGERROR(msg.str());
+    }
+    return rc;
+}
+
+///BLACKBOARD FUNCTIONS
+/**
+ * Add the given blackboard attribute to the database
+ * @param attr input attribute. should be fully populated
+ */
+void TskImgDBPostgreSQL::addBlackboardAttribute(TskBlackboardAttribute attr){
+    if (!m_dbConnection)
+        throw TskException("No database.");
+
+    artifact_t artifactId = 0;
+    std::stringstream str;
+
+    str << "INSERT INTO blackboard_attributes (artifact_id, source, context, attribute_type_id, value_type, "
+        "value_byte, value_text, value_int32, value_int64, value_double, obj_id) VALUES (";
+        str << attr.getArtifactID() << ", ";
+    str << m_dbConnection->quote(attr.getModuleName()) << ", ";
+    str << m_dbConnection->quote(attr.getContext()) << ", ";
+    str << attr.getAttributeTypeID() << ", ";
+    str << attr.getValueType() << ", ";
+    std::string escStr;
+    int a_size;
+    unsigned char *pBuf;
+    switch (attr.getValueType()) {
+        case TSK_BYTE:
+            a_size = attr.getValueBytes().size();
+            pBuf = new unsigned char[a_size];
+            
+            for (int i = 0; i < a_size; i++) {
+                pBuf[i] = attr.getValueBytes()[i];
+            }
+
+            escStr = m_dbConnection->esc_raw(pBuf, a_size);
+            delete pBuf;
+            str << " '" << escStr.c_str() << "', '', 0, 0, 0.0";
+            break;
+        case TSK_STRING:
+            a_size = attr.getValueString().size();
+            pBuf = new unsigned char[a_size];
+            
+            for (int i = 0; i < a_size; i++) {
+                pBuf[i] = attr.getValueString()[i];
+            }
+            str << " '', E" << m_dbConnection->quote(attr.getValueString()) << ", 0, 0, 0.0";
+            break;
+        case TSK_INTEGER:
+            str << " '', '', " << attr.getValueInt() << ",     0, 0.0";
+            break;
+        case TSK_LONG:
+            str << " '', '', 0, " << attr.getValueLong() << ",     0.0";
+            break;
+        case TSK_DOUBLE:
+            str << " '', '', 0, 0, " << setprecision(20) << attr.getValueDouble();
+            break;
+    };
+    str << ", " << attr.getObjectID() << ")";
+
+    try
+    {
+        pqxx::work W(*m_dbConnection);
+        pqxx::result R = W.exec(str);
+  
+        W.commit();
+
+    } catch (const exception &e) {
+        std::wstringstream msg;
+        msg << L"TskDBPostgreSQL::addBlackboardAttribute - Error adding data to blackboard table: "
+            << e.what() << std::endl;
+        LOGERROR(msg.str());
+        throw TskException("TskDBPostgreSQL::addBlackboardInfo - Insert failed");
+    }
+}
+
+/**
+ * Get the display name for the given artifact type id
+ * @param artifactTypeID artifact type id
+ * @returns display name
+ */
+string TskImgDBPostgreSQL::getArtifactTypeDisplayName(int artifactTypeID){
+    if (!m_dbConnection)
+        throw TskException("No database.");
+
+    std::stringstream str;
+    std::string displayName = "";
+
+    str << "SELECT display_name FROM blackboard_artifact_types WHERE artifact_type_id = " << artifactTypeID;
+
+    try{
+        pqxx::work W(*m_dbConnection);
+        pqxx::result R = W.exec(str);
+        
+        if(R.size() > 0)
+            displayName = R[0][0].as<string>();
+        
+        W.commit();
+        return displayName;
+
+    }catch(const exception &e) {
+        std::wstringstream msg;
+        msg << L"TskDBPostgreSQL::getArtifactTypeDisplayName:"
+            << e.what() << std::endl;
+        LOGERROR(msg.str());
+        throw TskException("TskDBPostgreSQL::getArtifactTypeDisplayName - No artifact type with that ID");
+    }
+}
+
+/**
+ * Get the artifact type id for the given artifact type string
+ * @param artifactTypeString display name
+ * @returns artifact type id
+ */
+int TskImgDBPostgreSQL::getArtifactTypeID(string artifactTypeString){
+    if (!m_dbConnection)
+        throw TskException("No database.");
+
+    std::stringstream str;
+    int typeID;
+
+    str << "SELECT artifact_type_id FROM blackboard_artifact_types WHERE type_name = " << artifactTypeString;
+
+    try{
+        pqxx::work W(*m_dbConnection);
+        pqxx::result R = W.exec(str);
+        
+        if(R.size() > 0)
+            typeID = R[0][0].as<int>();
+        
+        W.commit();
+        return typeID;
+    }catch(const exception &e) {
+        std::wstringstream msg;
+        msg << L"TskDBPostgreSQL::getArtifactTypeID:"
+            << e.what() << std::endl;
+        LOGERROR(msg.str());
+        throw TskException("TskDBPostgreSQL::getArtifactTypeID - No artifact type with that name");
+    }
+}
+
+/**
+ * Get the artifact type name for the given artifact type id
+ * @param artifactTypeID id
+ * @returns artifact type name
+ */
+string TskImgDBPostgreSQL::getArtifactTypeName(int artifactTypeID){
+    if (!m_dbConnection)
+        throw TskException("No database.");
+
+    std::stringstream str;
+    std::string typeName = "";
+
+    str << "SELECT type_name FROM blackboard_artifact_types WHERE artifact_type_id = " << artifactTypeID;
+
+    try{
+        pqxx::work W(*m_dbConnection);
+        pqxx::result R = W.exec(str);
+        
+        if(R.size() > 0)
+            typeName = R[0][0].as<string>();
+        W.commit();
+        return typeName;
+    }
+    catch(const exception &e) {
+        std::wstringstream msg;
+        msg << L"TskDBPostgreSQL::getArtifactTypeName:"
+            << e.what() << std::endl;
+        LOGERROR(msg.str());
+        throw TskException("TskDBPostgreSQL::getArtifactTypeName - No artifact type with that id");
+    }
+}
+
+/**
+ * Get the display name for the given attribute type id
+ * @param attributeTypeID attribute type id
+ * @returns display name
+ */
+string TskImgDBPostgreSQL::getAttributeTypeDisplayName(int attributeTypeID){
+    if (!m_dbConnection)
+        throw TskException("No database.");
+
+    std::stringstream str;
+    std::string displayName = "";
+
+    str << "SELECT display_name FROM blackboard_attribute_types WHERE attribute_type_id = " << attributeTypeID;
+
+    try{
+        pqxx::work W(*m_dbConnection);
+        pqxx::result R = W.exec(str);
+        
+        if(R.size() > 0)
+            displayName = R[0][0].as<string>();
+        W.commit();
+        return displayName;
+    }
+    catch(const exception &e) {
+        std::wstringstream msg;
+        msg << L"TskDBPostgreSQL::getAttributeTypeDisplayName:"
+            << e.what() << std::endl;
+        LOGERROR(msg.str());
+        throw TskException("TskDBPostgreSQL::getAttributeTypeDisplayName - No attribute type with that id");
+    }
+}
+
+/**
+ * Get the attribute type id for the given artifact type string
+ * @param attributeTypeString display name
+ * @returns attribute type id
+ */
+int TskImgDBPostgreSQL::getAttributeTypeID(string attributeTypeString){
+    if (!m_dbConnection)
+        throw TskException("No database.");
+
+    std::stringstream str;
+    int typeID;
+
+    str << "SELECT attribute_type_id FROM blackboard_attribute_types WHERE type_name = " << attributeTypeString;
+
+    try{
+        pqxx::work W(*m_dbConnection);
+        pqxx::result R = W.exec(str);
+        
+        if(R.size() > 0)
+            typeID = R[0][0].as<int>();
+        W.commit();
+        return typeID;
+    }
+    catch(const exception &e) {
+        std::wstringstream msg;
+        msg << L"TskDBPostgreSQL::getAttributeTypeID:"
+            << e.what() << std::endl;
+        LOGERROR(msg.str());
+        throw TskException("TskDBPostgreSQL::getAttributeTypeID - No attribute type with that name");
+    }
+}
+
+
+/**
+ * Get the attribute type name for the given artifact type id
+ * @param attributeTypeID id
+ * @returns attribute type name
+ */
+string TskImgDBPostgreSQL::getAttributeTypeName(int attributeTypeID){
+    if (!m_dbConnection)
+        throw TskException("No database.");
+
+    std::stringstream str;
+    std::string typeName = "";
+
+    str << "SELECT type_name FROM blackboard_attribute_types WHERE attribute_type_id = " << attributeTypeID;
+
+    try{
+        pqxx::work W(*m_dbConnection);
+        pqxx::result R = W.exec(str);
+        
+        if(R.size() > 0)
+            typeName = R[0][0].as<string>();
+        W.commit();
+        return typeName;
+    }
+    catch(const exception &e) {
+        std::wstringstream msg;
+        msg << L"TskDBPostgreSQL::getAttributeTypeName:"
+            << e.what() << std::endl;
+        LOGERROR(msg.str());
+        throw TskException("TskDBPostgreSQL::getAttributeTypeName - No attribute type with that id");
+    }
+}
+
+/**
+ * Get all artifacts with that match the given where clause 
+ * @param whereClause where clause to use for matching
+ * @returns vector of matching artifacts
+ */
+vector<TskBlackboardArtifact> TskImgDBPostgreSQL::getMatchingArtifacts(string whereClause){
+    if (!m_dbConnection)
+        throw TskException("No database.");
+    
+    vector<TskBlackboardArtifact> artifacts;
+    std::string stmt("SELECT blackboard_artifacts.artifact_id, blackboard_artifacts.obj_id, blackboard_artifacts.artifact_type_id FROM blackboard_artifacts");
+
+    constructStmt(stmt, whereClause);
+
+    try
+    {
+        pqxx::work W(*m_dbConnection);
+        pqxx::result R = W.exec(stmt);
+        W.commit();
+
+        for (pqxx::result::const_iterator i = R.begin(); i != R.end(); ++i) 
+        {
+            int artifactTypeID = i[2].as<int>();
+            
+            artifacts.push_back(TskImgDB::createArtifact(i[0].as<uint64_t>(), i[1].as<uint64_t>(), artifactTypeID));
+        }
+        
+        return artifacts;
+    } catch(const exception &e) {
+        std::wstringstream msg;
+        msg << L"TskDBPostgreSQL::getMatchingArtifacts:"
+            << e.what() << std::endl;
+        LOGERROR(msg.str());
+        throw TskException("TskDBPostgreSQL::getMatchingArtifacts");
+    }
+    return artifacts;
+}
+
+/**
+ * Get all attributes with that match the given where clause 
+ * @param whereClause where clause to use for matching
+ * @returns vector of matching attributes
+ */
+vector<TskBlackboardAttribute> TskImgDBPostgreSQL::getMatchingAttributes(string whereClause){
+    if (!m_dbConnection)
+        throw TskException("No database.");
+    
+    vector<TskBlackboardAttribute> attributes;
+    std::string stmt("SELECT blackboard_attributes.artifact_id, blackboard_attributes.source, blackboard_attributes.context, blackboard_attributes.attribute_type_id, blackboard_attributes.value_type, blackboard_attributes.value_byte, blackboard_attributes.value_text, blackboard_attributes.value_int32, blackboard_attributes.value_int64, blackboard_attributes.value_double, blackboard_attributes.obj_id FROM blackboard_attributes ");
+
+    constructStmt(stmt, whereClause);
+
+    try
+    {
+        pqxx::work W(*m_dbConnection);
+        pqxx::result R = W.exec(stmt);
+
+        for (pqxx::result::const_iterator i = R.begin(); i != R.end(); ++i) 
+        {
+            pqxx::binarystring binStr(i[6]);
+            int a_size = binStr.size();
+            vector<unsigned char> bytes;
+            bytes.reserve(a_size);
+            for (int j = 0; j < a_size; j++)
+                bytes.push_back((unsigned char)binStr[j]);
+            
+            attributes.push_back(TskImgDB::createAttribute(i[0].as<uint64_t>(), i[3].as<int>(), i[10].as<uint64_t>(), 
+                i[1].as<string>(), i[2].as<string>(), (TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE) i[4].as<int>(), i[7].as<int>(), 
+                i[8].as<uint64_t>(), i[9].as<double>(), i[6].as<string>(), bytes));
+        }
+        W.commit();
+    } catch(const exception &e) {
+        std::wstringstream msg;
+        msg << L"TskDBPostgreSQL::getMatchingAttributes:"
+            << e.what() << std::endl;
+        LOGERROR(msg.str());
+        throw TskException("TskDBPostgreSQL::getMatchingAttributes");
+    }
+    return attributes;
+}
+
+/**
+ * Create a new blackboard artifact with the given type id and file id
+ * @param artifactTypeID artifact type id
+ * @param file_id associated file id
+ * @returns the new artifact
+ */
+TskBlackboardArtifact TskImgDBPostgreSQL::createBlackboardArtifact(uint64_t file_id, int artifactTypeID){
+    if (!m_dbConnection)
+        throw TskException("No database.");
+
+    uint64_t artifactId = 0;
+    std::stringstream str;
+
+    str << "INSERT INTO blackboard_artifacts (artifact_id, obj_id, artifact_type_id) VALUES (DEFAULT, " 
+        << file_id << ", " << artifactTypeID << ")"
+        << "RETURNING artifact_id";
+
+    try {
+        pqxx::work W(*m_dbConnection);
+        pqxx::result R = W.exec(str);
+        
+        if (R.size() == 1)
+        {
+            R[0][0].to(artifactId);
+        }
+        else
+        {
+            std::stringstream errorMsg;
+            errorMsg << "TskImgDBPostgreSQL::createBlackboardArtifact - Unexpected number of rows returned."
+                << R.size();
+            throw TskException(errorMsg.str());
+        }
+        W.commit();
+    } catch(const exception &e) {
+        std::wstringstream msg;
+        msg << L"TskDBPostgreSQL::newBlackboardArtifact:"
+            << e.what() << std::endl;
+        LOGERROR(msg.str());
+        throw TskException("TskDBPostgreSQL::newBlackboardArtifact");
+    }
+
+    return TskImgDB::createArtifact(artifactId, file_id, artifactTypeID);
+}
+
+/**
+ * Add a new artifact type with the given name, display name and id 
+ * @param artifactTypeName type name
+ * @param displayName display name
+ * @param typeID type id
+ */
+void TskImgDBPostgreSQL::addArtifactType(int typeID, string artifactTypeName, string displayName){
+    if (!m_dbConnection)
+        throw TskException("No database.");
+
+    std::stringstream str;
+
+    str << "SELECT * FROM blackboard_artifact_types WHERE type_name = '" << artifactTypeName << "'";
+
+    try{
+        pqxx::work W(*m_dbConnection);
+        pqxx::result R = W.exec(str);
+        if(R.size() == 0){
+            str.str("");
+            str << "INSERT INTO blackboard_artifact_types (artifact_type_id, type_name, display_name) VALUES (" << typeID << " , '" << artifactTypeName << "', '" << displayName << "')";
+            pqxx::result R = W.exec(str);
+
+        }
+        else{
+            throw TskException("TskImgDBPostgreSQL::addArtifactType - Artifact type with that name already exists");
+        }
+        W.commit();
+    } catch(const exception &e) {
+        std::wstringstream msg;
+        msg << L"TskDBPostgreSQL::addArtifactType:"
+            << e.what() << std::endl;
+        LOGERROR(msg.str());
+        throw TskException("TskDBPostgreSQL::addArtifactType");
+    }
+}
+
+/**
+ * Add a new attribute type with the given name, display name and id 
+ * @param attributeTypeName type name
+ * @param displayName display name
+ * @param typeID type id
+ */
+void TskImgDBPostgreSQL::addAttributeType(int typeID, string attributeTypeName, string displayName){
+    if (!m_dbConnection)
+        throw TskException("No database.");
+
+    std::stringstream str;
+
+    str << "SELECT * FROM blackboard_attribute_types WHERE type_name = '" << attributeTypeName << "'";
+
+    try{
+        pqxx::work W(*m_dbConnection);
+        pqxx::result R = W.exec(str);
+        if(R.size() == 0){
+            str.str("");
+            str << "INSERT INTO blackboard_attribute_types (attribute_type_id, type_name, display_name) VALUES (" << typeID << " , '" << attributeTypeName << "', '" << displayName << "')";
+            pqxx::result R = W.exec(str);
+
+        }
+        else{
+            throw TskException("TskImgDBPostgreSQL::addArtifactType - Artifact type with that name already exists");
+        }
+        W.commit();
+    } catch(const exception &e) {
+        std::wstringstream msg;
+        msg << L"TskDBPostgreSQL::addAttributeType:"
+            << e.what() << std::endl;
+        LOGERROR(msg.str());
+        throw TskException("TskDBPostgreSQL::addAttributeType");
+    }
+}
+
+/**
+ * Get all artifacts with the given type id, type name, and file id
+ * @param artifactTypeID type id
+ * @param artifactTypeName type name
+ * @param file_id file id
+ */
+vector<TskBlackboardArtifact> TskImgDBPostgreSQL::getArtifactsHelper(uint64_t file_id, int artifactTypeID, string artifactTypeName){
+    if (!m_dbConnection)
+        throw TskException("No database.");
+    
+    int result = 0;
+    vector<TskBlackboardArtifact> artifacts;
+    std::stringstream stmt;
+    stmt << "SELECT artifact_id, obj_id, artifact_type_id FROM blackboard_artifacts WHERE obj_id = " << file_id << " AND artifact_type_id = " << artifactTypeID;
+
+    try 
+    {
+
+        string displayName = getArtifactTypeDisplayName(artifactTypeID);
+        pqxx::work W(*m_dbConnection);
+        pqxx::result R = W.exec(stmt);
+
+        for (pqxx::result::const_iterator i = R.begin(); i != R.end(); ++i) 
+        {
+            int artifactTypeID = i[2].as<int>();
+            
+            artifacts.push_back(TskImgDB::createArtifact(i[0].as<uint64_t>(), file_id, artifactTypeID));
+        }
+        W.commit();
+    } catch(const exception &e) {
+        std::wstringstream msg;
+        msg << L"TskDBPostgreSQL::getArtifactsHelper:"
+            << e.what() << std::endl;
+        LOGERROR(msg.str());
+        throw TskException("TskDBPostgreSQL::getArtifactsHelper");
+    }
+    return artifacts;
+}
+vector<int> TskImgDBPostgreSQL::findAttributeTypes(int artifactTypeId){
+    if (!m_dbConnection)
+        throw TskException("No database.");
+    
+    int result = 0;
+    vector<int> attributeTypes;
+    std::stringstream stmt;
+    stmt << "SELECT DISTINCT(attribute_type_id) FROM blackboard_attributes JOIN blackboard_artifacts ON blackboard_attributes.artifact_id = blackboard_artifacts.artifact_id WHERE artifact_type_id = " << artifactTypeId;
+
+    try 
+    {
+        pqxx::work W(*m_dbConnection);
+        pqxx::result R = W.exec(stmt);
+
+        for (pqxx::result::const_iterator i = R.begin(); i != R.end(); ++i) 
+        {
+            int artifactTypeID = i[0].as<int>();
+            
+            attributeTypes.push_back(artifactTypeID);
+        }
+        W.commit();
+    } catch(const exception &e) {
+        std::wstringstream msg;
+        msg << L"TskDBPostgreSQL::findAttributeTypes:"
+            << e.what() << std::endl;
+        LOGERROR(msg.str());
+        throw TskException("TskDBPostgreSQL::findAttributeTypes");
+    }
+    return attributeTypes;
+}
+
+std::string TskImgDBPostgreSQL::quote(const std::string str) const
+{
+    return m_dbConnection->quote(str);
+}
diff --git a/framework/tsk/framework/services/TskImDBPostgreSQL.h b/framework/tsk/framework/services/TskImDBPostgreSQL.h
new file mode 100755
index 0000000000000000000000000000000000000000..7397f6bd5120c3f175a736445134b0600404a9ba
--- /dev/null
+++ b/framework/tsk/framework/services/TskImDBPostgreSQL.h
@@ -0,0 +1,175 @@
+/*
+ *
+ *  The Sleuth Kit
+ *
+ *  Contact: Brian Carrier [carrier <at> sleuthkit [dot] org]
+ *  Copyright (c) 2010-2011 Basis Technology Corporation. All Rights
+ *  reserved.
+ *
+ *  This software is distributed under the Common Public License 1.0
+ */
+
+#ifndef _TSK_IMGDBPOSTGRESQL_H
+#define _TSK_IMGDBPOSTGRESQL_H
+
+// System includes
+#include <string> // to get std::wstring
+#include <list>
+#include <vector>
+
+// Framework includes
+#include "framework_i.h"
+#include "Services/TskImgDB.h"
+#include "Utilities/SectorRuns.h"
+#include "Utilities/UnallocRun.h"
+#include "services/TskBlackboard.h"
+
+#include "tsk3/libtsk.h"
+
+#include <iostream>
+#include <stdlib.h>
+#undef min
+#undef max
+#include <pqxx/pqxx>
+using namespace std;
+using namespace pqxx;
+
+/// Framework data access layer the uses PostgreSQL as the back end.
+class TskImgDBPostgreSQL : public TskImgDB
+{
+public:
+    TskImgDBPostgreSQL(const std::string dbName);
+    virtual ~ TskImgDBPostgreSQL();
+
+    virtual int initialize();
+    virtual int open();
+
+    virtual int close();
+
+    virtual int begin();
+    virtual int commit();
+
+    virtual int addToolInfo(const char* name, const char* version);
+    virtual int addImageInfo(int type, int sectorSize);
+    virtual int addImageName(char const * imgName);
+    virtual int addVolumeInfo(const TSK_VS_PART_INFO * vs_part);
+    virtual int addFsInfo(int volId, int fsId, const TSK_FS_INFO * fs_info);
+    virtual int addFsFileInfo(int fileSystemID, const TSK_FS_FILE *fileSystemFile, const char *fileName, int fileSystemAttrType, int fileSystemAttrID, uint64_t &fileID, const char *filePath);
+    virtual int addCarvedFileInfo(int vol_id, wchar_t * name, uint64_t size, uint64_t *runStarts, uint64_t *runLengths, int numRuns, uint64_t & fileId);
+    virtual int addDerivedFileInfo(const std::string& name, const uint64_t parentId,
+                                        const bool isDirectory, const uint64_t size, const std::string& details,
+                                        const int ctime, const int crtime, const int atime, const int mtime, uint64_t & fileId, std::string path);
+    virtual int addFsBlockInfo(int fsID, uint64_t a_mFileId, int count, uint64_t blk_addr, uint64_t len);
+    virtual int addAllocUnallocMapInfo(int unallocVolID, int unallocImgID, uint64_t unallocImgStart, uint64_t length, uint64_t origImgStart);
+    virtual int getSessionID() const;
+    virtual int getFileIds(char *a_fileName, uint64_t *a_outBuffer, int a_buffSize) const;
+    virtual int getMaxFileIdReadyForAnalysis(uint64_t a_lastFileId, uint64_t & maxFileId) const;
+    virtual int getMinFileIdReadyForAnalysis(uint64_t & minFileId) const;
+    virtual uint64_t getFileId(int fsId, uint64_t fs_file_id) const;
+    virtual int getFileRecord(const uint64_t fileId, TskFileRecord& fileRecord) const;
+    virtual SectorRuns * getFileSectors(uint64_t fileId) const;
+    virtual std::string getImageBaseName() const;
+    virtual std::vector<std::wstring> getImageNames() const;
+    virtual int getFileUniqueIdentifiers(uint64_t a_fileId, uint64_t &a_fsOffset, uint64_t &a_fsFileId, int &a_attrType, int &a_attrId) const;
+    virtual int getNumVolumes() const;
+    virtual int getNumFiles() const;
+    virtual int getImageInfo(int & type, int & sectorSize) const;
+    virtual int getVolumeInfo(std::list<TskVolumeInfoRecord> & volumeInfoList) const;
+    virtual int getFsInfo(std::list<TskFsInfoRecord> & FsInfoList) const;
+    virtual int getFileInfoSummary(std::list<TskFileTypeRecord> & fileTypeInfoList) const;
+    virtual int getFileInfoSummary(FILE_TYPES fileType, std::list<TskFileTypeRecord> & fileTypeInfoList) const;
+    virtual TskImgDB::KNOWN_STATUS getKnownStatus(const uint64_t fileId) const;
+
+    virtual UnallocRun * getUnallocRun(int file_id, int file_offset) const; 
+    virtual SectorRuns * getFreeSectors() const;
+
+    virtual int updateFileStatus(uint64_t a_file_id, TskImgDB::FILE_STATUS a_status);
+    virtual int updateKnownStatus(uint64_t a_file_id, TskImgDB::KNOWN_STATUS a_status);
+	
+    virtual bool dbExist() const;
+
+    /// Get set of file ids that match the given condition (i.e. SQL where clause)
+    virtual std::vector<uint64_t> getFileIds(std::string& condition) const;
+    virtual std::vector<const TskFileRecord> getFileRecords(std::string& condition) const;
+
+    /// Get the number of files that match the given condition
+    virtual int getFileCount(std::string& condition) const;
+
+    virtual std::map<uint64_t, std::string> getUniqueCarvedFiles(HASH_TYPE hashType) const;
+    virtual std::vector<TskCarvedFileInfo> getUniqueCarvedFilesInfo(HASH_TYPE hashType) const;
+    virtual std::vector<uint64_t> getCarvedFileIds() const;
+
+    virtual std::vector<uint64_t> getUniqueFileIds(HASH_TYPE hashType) const;
+    virtual std::vector<uint64_t> getFileIds() const;
+
+    virtual int setHash(const uint64_t a_file_id, const TskImgDB::HASH_TYPE hashType, const std::string& hash) const;
+    virtual std::string getCfileName(const uint64_t a_file_id) const;
+
+    virtual int addModule(const std::string& name, const std::string& description, int & moduleId);
+    virtual int setModuleStatus(uint64_t file_id, int module_id, int status);
+	virtual int getModuleInfo(std::vector<TskModuleInfo> & moduleInfoList) const;
+    virtual int getModuleErrors(std::vector<TskModuleStatus> & moduleStatusList) const;
+    virtual std::string getFileName(uint64_t file_id) const;
+
+    virtual int addUnallocImg(int & unallocImgId);
+    virtual int setUnallocImgStatus(int unallocImgId, TskImgDB::UNALLOC_IMG_STATUS status);
+    virtual TskImgDB::UNALLOC_IMG_STATUS getUnallocImgStatus(int unallocImgId) const;
+    virtual int getAllUnallocImgStatus(std::vector<TskUnallocImgStatusRecord> & unallocImgStatusList) const;
+ 
+    virtual int addUnusedSectors(int unallocImgId, std::vector<TskUnusedSectorsRecord> & unusedSectorsList);
+    virtual int getUnusedSector(uint64_t fileId, TskUnusedSectorsRecord & unusedSectorsRecord) const;
+
+    friend class TskDBBlackboard;
+
+protected:
+   // Blackboard methods.
+    virtual TskBlackboardArtifact createBlackboardArtifact(uint64_t file_id, int artifactTypeID);
+    virtual void addBlackboardAttribute(TskBlackboardAttribute attr);
+    
+    virtual void addArtifactType(int typeID, string artifactTypeName, string displayName);
+    virtual void addAttributeType(int typeID, string attributeTypeName, string displayName);
+
+    virtual string getArtifactTypeDisplayName(int artifactTypeID);
+    virtual int getArtifactTypeID(string artifactTypeString);
+    virtual string getArtifactTypeName(int artifactTypeID);
+    virtual vector<TskBlackboardArtifact> getMatchingArtifacts(string condition);
+
+    virtual string getAttributeTypeDisplayName(int attributeTypeID);
+    virtual int getAttributeTypeID(string attributeTypeString);
+    virtual string getAttributeTypeName(int attributeTypeID);
+    virtual vector<TskBlackboardAttribute> getMatchingAttributes(string condition);
+    
+    virtual vector<int> findAttributeTypes(int artifactTypeId);
+
+	std::string quote(const std::string str) const;
+
+private:
+    std::string m_dbName;
+    pqxx::connection * m_dbConnection;
+    int m_artifactIDcounter;
+    int m_attributeIDcounter;
+
+    // Execute the given statement and return the result set.
+	pqxx::result executeStatement(const std::string& stmt) const;
+
+    bool initialized() const;
+    std::vector<uint64_t> getFileIdsWorker(std::string tableName, const std::string condition = "") const;
+    void constructStmt(std::string& stmt, std::string& condition) const;
+    int addUnusedSector(uint64_t sectStart, uint64_t sectEnd, int volId, std::vector<TskUnusedSectorsRecord> & unusedSectorsList);
+    int getFileTypeRecords(std::string& stmt, std::list<TskFileTypeRecord>& fileTypeInfoList) const;
+    vector<TskBlackboardArtifact> getArtifactsHelper(uint64_t file_id, int artifactTypeID, string artifactTypeName);
+    void getCarvedFileInfo(const std::string& stmt, std::map<uint64_t, std::string>& results) const;
+
+    /**
+     * A helper function for getUniqueCarvedFilesInfo() that executes a very specific SQL SELECT statement 
+     * and returns the results as TskCarvedFileInfo objects.
+     *
+     * @param stmtToExecute The SQL statement
+     * @param getHash A flag indicating whether the SELECT includes a hash value
+     * @param carvedFileInfos The data returned by the query
+     * @return Throws TskException
+     */
+    void getCarvedFileInfo(const std::string &stmtToExecute,  bool getHash, std::vector<TskCarvedFileInfo> &carvedFileInfos) const;
+};
+
+#endif
diff --git a/framework/Services/TskImgDB.cpp b/framework/tsk/framework/services/TskImgDB.cpp
similarity index 77%
rename from framework/Services/TskImgDB.cpp
rename to framework/tsk/framework/services/TskImgDB.cpp
index eadca27bdde924569f354653f298b2dcf603a978..bcf5e9cbf71b2886b3db3e6e6685488baa6fad36 100755
--- a/framework/Services/TskImgDB.cpp
+++ b/framework/tsk/framework/services/TskImgDB.cpp
@@ -25,6 +25,12 @@ TskImgDB::~TskImgDB()
 {
 }
 
+/**
+ * Store meta_addr to object id mapping of the directory in a local cache map
+ * @param fsObjId fs id of this directory
+ * @param meta_addr meta_addr of this directory
+ * @param objId object id of this directory from the objects table
+ */
 void TskImgDB::storeParObjId(const int64_t & fsObjId, const TSK_INUM_T & meta_addr, const int64_t & objId) {
 	map<TSK_INUM_T,int64_t> &tmpMap = m_parentDirIdCache[fsObjId];
 	//store only if does not exist
@@ -32,6 +38,12 @@ void TskImgDB::storeParObjId(const int64_t & fsObjId, const TSK_INUM_T & meta_ad
 		tmpMap[meta_addr] = objId;
 }
 
+/**
+ * Find parent object id of TSK_FS_FILE. Use local cache map, if not found, fall back to SQL
+ * @param fs_file file to find parent obj id for
+ * @param fsObjId fs id of this file
+ * @returns parent obj id ( > 0), -1 on error
+ */
 int64_t TskImgDB::findParObjId(const int64_t & fsObjId, TSK_INUM_T meta_addr) {
     //get from cache by parent meta addr, if available
     map<TSK_INUM_T,int64_t> &tmpMap = m_parentDirIdCache[fsObjId];
diff --git a/framework/Services/TskImgDB.h b/framework/tsk/framework/services/TskImgDB.h
similarity index 93%
rename from framework/Services/TskImgDB.h
rename to framework/tsk/framework/services/TskImgDB.h
index 3cf151256f76d51a38761353294765ed8cab9585..3f4f922efe59eda1989b72c9917a3ac718d51fed 100755
--- a/framework/Services/TskImgDB.h
+++ b/framework/tsk/framework/services/TskImgDB.h
@@ -18,10 +18,10 @@
 #include <string> // to get std::wstring
 #include <list>
 #include <vector>
-#include "tsk3/libtsk.h"
-#include "framework_i.h"
-#include "Utilities/SectorRuns.h"
-#include "Utilities/UnallocRun.h"
+#include "tsk/libtsk.h"
+#include "tsk/framework/framework_i.h"
+#include "tsk/framework/utilities/SectorRuns.h"
+#include "tsk/framework/utilities/UnallocRun.h"
 #include "TskBlackboardAttribute.h"
 #include "TskBlackboard.h"
 #include "TskBlackboardArtifact.h"
@@ -244,7 +244,7 @@ class TSK_FRAMEWORK_API TskImgDB
      */
     virtual int addFsFileInfo(int fileSystemID, const TSK_FS_FILE *fileSystemFile, const char *fileName, int fileSystemAttrType, int fileSystemAttrID, uint64_t &fileID, const char *filePath) = 0;
 
-    virtual int addCarvedFileInfo(int vol_id, wchar_t * name, uint64_t size, uint64_t *runStarts, uint64_t *runLengths, int numRuns, uint64_t & fileId) = 0;
+    virtual int addCarvedFileInfo(int vol_id, const char *name, uint64_t size, uint64_t *runStarts, uint64_t *runLengths, int numRuns, uint64_t & fileId) = 0;
     virtual int addDerivedFileInfo(const std::string& name, const uint64_t parentId, 
                                         const bool isDirectory, const uint64_t size, const std::string& details,
                                         const int ctime, const int crtime, const int atime, const int mtime, uint64_t & fileId, std::string path) = 0;
@@ -292,9 +292,10 @@ class TSK_FRAMEWORK_API TskImgDB
     /**
      * Gets a list of image paths.
      *
-     * @returns A vector of image paths as std::wstrings. There may be multiple paths for a split image or the list may be empty if no image paths have been stored.
+     * @returns A vector of image paths as std::strings. There may be multiple paths for a split image or the list may be empty if no image paths have been stored.
      */
-    virtual std::vector<std::wstring> getImageNames() const = 0;
+    virtual std::vector<std::wstring> getImageNamesW() const = 0;
+    virtual std::vector<std::string>  getImageNames() const = 0;
 
     virtual int getFileUniqueIdentifiers(uint64_t a_fileId, uint64_t &a_fsOffset, uint64_t &a_fsFileId, int &a_attrType, int &a_attrId) const = 0;
     virtual int getNumVolumes() const = 0;
@@ -346,11 +347,11 @@ class TSK_FRAMEWORK_API TskImgDB
 	virtual bool dbExist() const = 0;
 
     // Get set of file ids that match the given condition (i.e. SQL where clause)
-    virtual std::vector<uint64_t> getFileIds(std::string& condition) const = 0;
-    virtual std::vector<const TskFileRecord> getFileRecords(std::string& condition) const = 0;
+    virtual std::vector<uint64_t> getFileIds(const std::string& condition) const = 0;
+    virtual const std::vector<TskFileRecord> getFileRecords(const std::string& condition) const = 0;
 
     // Get the number of files that match the given condition
-    virtual int getFileCount(std::string& condition) const = 0;
+    virtual int getFileCount(const std::string& condition) const = 0;
 
     /**
      * Returns the file ids and carved file names for a unique set of carved files.
diff --git a/framework/Services/TskImgDBSqlite.cpp b/framework/tsk/framework/services/TskImgDBSqlite.cpp
similarity index 79%
rename from framework/Services/TskImgDBSqlite.cpp
rename to framework/tsk/framework/services/TskImgDBSqlite.cpp
index fb26b8f739eff487da6c0971ed805a3ee2ffb54e..232bd1ea3cdc89442eeb537d31259fed271d79d7 100755
--- a/framework/Services/TskImgDBSqlite.cpp
+++ b/framework/tsk/framework/services/TskImgDBSqlite.cpp
@@ -15,6 +15,7 @@
  */
 
 #include <stdio.h>
+#include <string.h>
 #include <cassert>
 #include <iostream>
 #include <sstream>
@@ -22,9 +23,12 @@
 #include <map>
 #include <assert.h>
 
+#include "Poco/UnicodeConverter.h"
+#include "Poco/Thread.h"
+
 #include "TskImgDBSqlite.h"
 #include "TskServices.h"
-#include "Utilities/TskException.h"
+#include "tsk/framework/utilities/TskException.h"
 #include "TskDBBlackboard.h"
 
 #include "Poco/UnicodeConverter.h"
@@ -41,17 +45,17 @@
  * @param a_outpath Directory to store the database in. This 
  * directory must already exist.
 */
-TskImgDBSqlite::TskImgDBSqlite(const wchar_t * a_outpath)
+TskImgDBSqlite::TskImgDBSqlite(const char * a_outpath)
 {
-    wcsncpy_s(m_outPath, a_outpath, 256);
-    // ensure that the path ends with a '\'
-    if (m_outPath[wcslen(m_outPath)-1] != '\\') {
-        int len1 = wcslen(m_outPath);
-        m_outPath[len1] = '\\';
+    strncpy(m_outPath, a_outpath, 256);
+    // ensure that the path ends with a '/'
+    if (m_outPath[strlen(m_outPath)-1] != '/') {
+        int len1 = strlen(m_outPath);
+        m_outPath[len1] = '/';
         m_outPath[len1+1] = '\0';
     }
-    wcsncpy_s(m_dbFilePath, m_outPath, 256);
-    wcsncat_s(m_dbFilePath, L"image.db", 256);
+    strncpy(m_dbFilePath, m_outPath, 256);
+    strncat(m_dbFilePath, "image.db", 256);
     m_db = NULL;
 }
 
@@ -108,7 +112,7 @@ int TskImgDBSqlite::dropTables()
 
 int TskImgDBSqlite::initialize()
 {
-    wchar_t infoMessage[MAX_BUFF_LENGTH];
+    std::wstringstream infoMessage;
     char * errmsg;
 
     // Open the database.
@@ -121,7 +125,7 @@ int TskImgDBSqlite::initialize()
     // Clean up the whole database.
     dropTables();
 
-    char * stmt;
+    std::string stmt;
 
     sqlite3_stmt *statement;
 
@@ -135,9 +139,9 @@ int TskImgDBSqlite::initialize()
 
     // ----- DB_INFO
     stmt = "CREATE TABLE db_info (name TEXT PRIMARY KEY, version TEXT)";
-    if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK) {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::initialize - Error creating db_info table: %S", errmsg);
-        LOGERROR(infoMessage);
+    if (sqlite3_exec(m_db, stmt.c_str(), NULL, NULL, &errmsg) != SQLITE_OK) {
+        infoMessage << L"TskImgDBSqlite::initialize - Error creating db_info table: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -145,9 +149,9 @@ int TskImgDBSqlite::initialize()
 
     // ----- IMAGE_INFO
     stmt = "CREATE TABLE image_info (type INTEGER, ssize INTEGER)";
-    if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK) {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::initialize - Error creating image_info table: %S", errmsg);
-        LOGERROR(infoMessage);
+    if (sqlite3_exec(m_db, stmt.c_str(), NULL, NULL, &errmsg) != SQLITE_OK) {
+        infoMessage << L"TskImgDBSqlite::initialize - Error creating image_info table: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -155,9 +159,9 @@ int TskImgDBSqlite::initialize()
 
     // ----- IMAGE_NAMES
     stmt = "CREATE TABLE image_names (seq INTEGER PRIMARY KEY, name TEXT)";
-    if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK) {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::initialize - Error creating image_names table: %S", errmsg);
-        LOGERROR(infoMessage);
+    if (sqlite3_exec(m_db, stmt.c_str(), NULL, NULL, &errmsg) != SQLITE_OK) {
+        infoMessage << L"TskImgDBSqlite::initialize - Error creating image_names table: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -166,9 +170,9 @@ int TskImgDBSqlite::initialize()
     // ----- VOL_INFO
     stmt = "CREATE TABLE vol_info (vol_id INTEGER PRIMARY KEY, sect_start INTEGER NOT NULL, "
         "sect_len INTEGER NOT NULL, description TEXT, flags INTEGER)";
-    if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK) {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::initialize - Error creating vol_info table: %S", errmsg);
-        LOGERROR(infoMessage);
+    if (sqlite3_exec(m_db, stmt.c_str(), NULL, NULL, &errmsg) != SQLITE_OK) {
+        infoMessage << L"TskImgDBSqlite::initialize - Error creating vol_info table: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -178,9 +182,9 @@ int TskImgDBSqlite::initialize()
     stmt = "CREATE TABLE fs_info (fs_id INTEGER PRIMARY KEY, img_byte_offset INTEGER, "
         "vol_id INTEGER NOT NULL, fs_type INTEGER, block_size INTEGER, "
         "block_count INTEGER, root_inum INTEGER, first_inum INTEGER, last_inum INTEGER)";
-    if (sqlite3_exec(m_db, stmt , NULL, NULL, &errmsg) != SQLITE_OK) {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::initialize - Error creating fs_info table: %S", errmsg);
-        LOGERROR(infoMessage);
+    if (sqlite3_exec(m_db, stmt.c_str() , NULL, NULL, &errmsg) != SQLITE_OK) {
+        infoMessage << L"TskImgDBSqlite::initialize - Error creating fs_info table: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -192,9 +196,9 @@ int TskImgDBSqlite::initialize()
         "dir_flags INTEGER, meta_flags INTEGER, size INTEGER, ctime INTEGER, "
         "crtime INTEGER, atime INTEGER, mtime INTEGER, mode INTEGER, uid INTEGER, "
         "gid INTEGER, status INTEGER, full_path TEXT)";
-    if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK) {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::initialize - Error creating files table: %S", errmsg);
-        LOGERROR(infoMessage);
+    if (sqlite3_exec(m_db, stmt.c_str(), NULL, NULL, &errmsg) != SQLITE_OK) {
+        infoMessage << L"TskImgDBSqlite::initialize - Error creating files table: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -203,10 +207,10 @@ int TskImgDBSqlite::initialize()
     // ----- FS_FILES
     stmt = "CREATE TABLE fs_files (file_id INTEGER PRIMARY KEY, fs_id INTEGER, "
         "fs_file_id INTEGER, attr_type INTEGER, attr_id INTEGER)";
-    if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK)
+    if (sqlite3_exec(m_db, stmt.c_str(), NULL, NULL, &errmsg) != SQLITE_OK)
     {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::initialize - Error creating fs_files table: %S", errmsg);
-        LOGERROR(infoMessage);
+        infoMessage << L"TskImgDBSqlite::initialize - Error creating fs_files table: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -215,10 +219,10 @@ int TskImgDBSqlite::initialize()
     // ----- FS_BLOCKS
     stmt = "CREATE TABLE fs_blocks (fs_id INTEGER NOT NULL, file_id INTEGER NOT NULL, seq INTEGER, "
         "blk_start INTEGER NOT NULL, blk_len INTEGER NOT NULL)";
-    if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK)
+    if (sqlite3_exec(m_db, stmt.c_str(), NULL, NULL, &errmsg) != SQLITE_OK)
     {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::initialize - Error creating fs_blocks table: %S", errmsg);
-        LOGERROR(infoMessage);
+        infoMessage << L"TskImgDBSqlite::initialize - Error creating fs_blocks table: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -226,10 +230,10 @@ int TskImgDBSqlite::initialize()
 
     // ----- CARVED_FILES
     stmt = "CREATE TABLE carved_files (file_id INTEGER PRIMARY KEY, vol_id INTEGER)";
-    if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK)
+    if (sqlite3_exec(m_db, stmt.c_str(), NULL, NULL, &errmsg) != SQLITE_OK)
     {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::initialize - Error creating carved_files table: %S", errmsg);
-        LOGERROR(infoMessage);
+        infoMessage << L"TskImgDBSqlite::initialize - Error creating carved_files table: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -238,10 +242,10 @@ int TskImgDBSqlite::initialize()
     // ----- SECTOR_LIST
     stmt = "CREATE TABLE carved_sectors ("
         "file_id INTEGER, seq INTEGER, sect_start INTEGER, sect_len INTEGER)";
-    if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK)
+    if (sqlite3_exec(m_db, stmt.c_str(), NULL, NULL, &errmsg) != SQLITE_OK)
     {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::initialize - Error creating carved_sectors table: %S", errmsg);
-        LOGERROR(infoMessage);
+        infoMessage << L"TskImgDBSqlite::initialize - Error creating carved_sectors table: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -249,10 +253,10 @@ int TskImgDBSqlite::initialize()
 
     // ----- DERIVED_FILES
     stmt = "CREATE TABLE derived_files (file_id INTEGER PRIMARY KEY, derivation_details TEXT)";
-    if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK)
+    if (sqlite3_exec(m_db, stmt.c_str(), NULL, NULL, &errmsg) != SQLITE_OK)
     {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::initialize - Error creating derived_files table: %S", errmsg);
-        LOGERROR(infoMessage);
+        infoMessage << L"TskImgDBSqlite::initialize - Error creating derived_files table: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -261,10 +265,10 @@ int TskImgDBSqlite::initialize()
     // ----- ALLOC_UNALLOC_MAP
     stmt = "CREATE TABLE alloc_unalloc_map (vol_id INTEGER, unalloc_img_id INTEGER, "
         "unalloc_img_sect_start INTEGER, sect_len INTEGER, orig_img_sect_start INTEGER)";
-    if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK)
+    if (sqlite3_exec(m_db, stmt.c_str(), NULL, NULL, &errmsg) != SQLITE_OK)
     {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::initialize - Error creating alloc_unalloc_map table: %S", errmsg);
-        LOGERROR(infoMessage);
+        infoMessage << L"TskImgDBSqlite::initialize - Error creating alloc_unalloc_map table: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -272,9 +276,9 @@ int TskImgDBSqlite::initialize()
 
     // ----- FILE_HASHES
     stmt = "CREATE TABLE file_hashes (file_id INTEGER PRIMARY KEY, md5 TEXT, sha1 TEXT, sha2_256 TEXT, sha2_512 TEXT, known INTEGER)";
-    if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK) {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::initialize - Error creating file_hashes table: %S", errmsg);
-        LOGERROR(infoMessage);
+    if (sqlite3_exec(m_db, stmt.c_str(), NULL, NULL, &errmsg) != SQLITE_OK) {
+        infoMessage << L"TskImgDBSqlite::initialize - Error creating file_hashes table: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -282,9 +286,9 @@ int TskImgDBSqlite::initialize()
 
     // ----- MODULES
     stmt = "CREATE TABLE modules (module_id INTEGER PRIMARY KEY, name TEXT UNIQUE NOT NULL, description TEXT)";
-    if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK) {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::initialize - Error creating module table: %S", errmsg);
-        LOGERROR(infoMessage);
+    if (sqlite3_exec(m_db, stmt.c_str(), NULL, NULL, &errmsg) != SQLITE_OK) {
+        infoMessage << L"TskImgDBSqlite::initialize - Error creating module table: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -292,9 +296,9 @@ int TskImgDBSqlite::initialize()
 
     // ----- MODULE_STATUS
     stmt = "CREATE TABLE module_status (file_id INTEGER, module_id INTEGER, status INTEGER, PRIMARY KEY (file_id, module_id))";
-    if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK) {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::initialize - Error creating module_status table: %S", errmsg);
-        LOGERROR(infoMessage);
+    if (sqlite3_exec(m_db, stmt.c_str(), NULL, NULL, &errmsg) != SQLITE_OK) {
+        infoMessage << L"TskImgDBSqlite::initialize - Error creating module_status table: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -302,9 +306,9 @@ int TskImgDBSqlite::initialize()
 
     // ----- UNALLOC_IMG_STATUS
     stmt = "CREATE TABLE unalloc_img_status (unalloc_img_id INTEGER PRIMARY KEY, status INTEGER)";
-    if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK) {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::initialize - Error creating unalloc_img_status table: %S", errmsg);
-        LOGERROR(infoMessage);
+    if (sqlite3_exec(m_db, stmt.c_str(), NULL, NULL, &errmsg) != SQLITE_OK) {
+        infoMessage << L"TskImgDBSqlite::initialize - Error creating unalloc_img_status table: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -312,9 +316,9 @@ int TskImgDBSqlite::initialize()
 
     // ----- UNUSED_SECTORS
     stmt = "CREATE TABLE unused_sectors (file_id INTEGER PRIMARY KEY, sect_start INTEGER, sect_len INTEGER, vol_id INTEGER)";
-    if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK) {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::initialize - Error creating unused_sectors table: %S", errmsg);
-        LOGERROR(infoMessage);
+    if (sqlite3_exec(m_db, stmt.c_str(), NULL, NULL, &errmsg) != SQLITE_OK) {
+        infoMessage << L"TskImgDBSqlite::initialize - Error creating unused_sectors table: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -322,9 +326,9 @@ int TskImgDBSqlite::initialize()
 
     // ----- BLACKBOARD_ARTIFACTS
     stmt = "CREATE TABLE blackboard_artifacts (artifact_id INTEGER PRIMARY KEY, obj_id INTEGER NOT NULL, artifact_type_id INTEGER)";
-    if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK) {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::initialize - Error creating blackboard_artifacts table: %S", errmsg);
-        LOGERROR(infoMessage);
+    if (sqlite3_exec(m_db, stmt.c_str(), NULL, NULL, &errmsg) != SQLITE_OK) {
+        infoMessage << L"TskImgDBSqlite::initialize - Error creating blackboard_artifacts table: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -333,9 +337,9 @@ int TskImgDBSqlite::initialize()
     // ----- BLACKBOARD_ATTRIBUTES
     stmt = "CREATE TABLE blackboard_attributes (artifact_id INTEGER NOT NULL, source TEXT, context TEXT, attribute_type_id INTEGER NOT NULL, value_type INTEGER NOT NULL, "
         "value_byte BLOB, value_text TEXT, value_int32 INTEGER, value_int64 INTEGER, value_double NUMERIC(20, 10), obj_id INTEGER NOT NULL)";
-    if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK) {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::initialize - Error creating blackboard_attributes table: %S", errmsg);
-        LOGERROR(infoMessage);
+    if (sqlite3_exec(m_db, stmt.c_str(), NULL, NULL, &errmsg) != SQLITE_OK) {
+        infoMessage << L"TskImgDBSqlite::initialize - Error creating blackboard_attributes table: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -343,9 +347,9 @@ int TskImgDBSqlite::initialize()
 
     // ----- BLACKBOARD_ARTIFACT_TYPES
     stmt = "CREATE TABLE blackboard_artifact_types (artifact_type_id INTEGER PRIMARY KEY, type_name TEXT, display_name TEXT)";
-    if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK) {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::initialize - Error creating blackboard_artifact_types table: %S", errmsg);
-        LOGERROR(infoMessage);
+    if (sqlite3_exec(m_db, stmt.c_str(), NULL, NULL, &errmsg) != SQLITE_OK) {
+        infoMessage << L"TskImgDBSqlite::initialize - Error creating blackboard_artifact_types table: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -353,9 +357,9 @@ int TskImgDBSqlite::initialize()
 
     // ----- BLACKBOARD_ATTRIBUTE_TYPES
     stmt = "CREATE TABLE blackboard_attribute_types (attribute_type_id INTEGER PRIMARY KEY, type_name TEXT, display_name TEXT)";
-    if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK) {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::initialize - Error creating blackboard_attribute_types table: %S", errmsg);
-        LOGERROR(infoMessage);
+    if (sqlite3_exec(m_db, stmt.c_str(), NULL, NULL, &errmsg) != SQLITE_OK) {
+        infoMessage << L"TskImgDBSqlite::initialize - Error creating blackboard_attribute_types table: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -363,41 +367,38 @@ int TskImgDBSqlite::initialize()
 
     // ----- CREATE INDEXES
     stmt = "CREATE INDEX attrs_artifact_id ON blackboard_attributes(artifact_id)";
-
-    if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK) {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::initialize - Error creating attrs_artifact_id index: %S", errmsg);
-        LOGERROR(infoMessage);
+    if (sqlite3_exec(m_db, stmt.c_str(), NULL, NULL, &errmsg) != SQLITE_OK) {
+        infoMessage << L"TskImgDBSqlite::initialize - Error creating attrs_artifact_id index: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
     }
 
     stmt = "CREATE INDEX attrs_attribute_type ON blackboard_attributes(attribute_type_id)";
-
-    if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK) {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::initialize - Error creating attrs_attribute_type index: %S", errmsg);
-        LOGERROR(infoMessage);
+    if (sqlite3_exec(m_db, stmt.c_str(), NULL, NULL, &errmsg) != SQLITE_OK) {
+        infoMessage << L"TskImgDBSqlite::initialize - Error creating attrs_attribute_type index: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
     }
 
     stmt = "CREATE INDEX attrs_obj_id ON blackboard_attributes(obj_id)";
-
-    if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK) {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::initialize - Error creating attrs_obj_id index: %S", errmsg);
-        LOGERROR(infoMessage);
+    if (sqlite3_exec(m_db, stmt.c_str(), NULL, NULL, &errmsg) != SQLITE_OK) {
+        infoMessage << L"TskImgDBSqlite::initialize - Error creating attrs_obj_id index: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
     }
 
     map<int, TskArtifactNames> artTypes = TskImgDB::getAllArtifactTypes();
-    for(map<int, TskArtifactNames>::iterator it = artTypes.begin(); it != artTypes.end(); it++){
+    for (map<int, TskArtifactNames>::iterator it = artTypes.begin(); it != artTypes.end(); it++) {
         addArtifactType(it->first, it->second.typeName, it->second.displayName);
     }
     map<int, TskAttributeNames> attrTypes = TskImgDB::getAllAttributeTypes();
-    for(map<int, TskAttributeNames>::iterator it = attrTypes.begin(); it != attrTypes.end(); it++){
+    for (map<int, TskAttributeNames>::iterator it = attrTypes.begin(); it != attrTypes.end(); it++) {
         addAttributeType(it->first, it->second.typeName, it->second.displayName);
     }
 
@@ -415,12 +416,16 @@ int TskImgDBSqlite::initialize()
 */
 int TskImgDBSqlite::open()
 {
-    wchar_t infoMessage[MAX_BUFF_LENGTH];
+    std::wstringstream infoMessage;
 
+#if 0
     if (sqlite3_open16(m_dbFilePath, &m_db)) 
+#else
+    if (sqlite3_open(m_dbFilePath, &m_db)) 
+#endif
     {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::open - Can't create new database: %S", sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+        infoMessage << L"TskImgDBSqlite::open - Can't create new database: " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
 
         sqlite3_close(m_db);
         return 1;
@@ -440,8 +445,8 @@ int TskImgDBSqlite::open()
 
     if (sqlite3_file_control(m_db, NULL, SQLITE_FCNTL_CHUNK_SIZE, &chunkSize) != SQLITE_OK)
     {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::open - Failed to set chunk size: %S", sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+        infoMessage << L"TskImgDBSqlite::open - Failed to set chunk size: " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
 
         sqlite3_close(m_db);
         return 1;
@@ -451,8 +456,8 @@ int TskImgDBSqlite::open()
     // where the database is locked by another process.
     if (sqlite3_busy_handler(m_db, TskImgDBSqlite::busyHandler, m_db) != SQLITE_OK)
     {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::open - Failed to set busy handler: %S", sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+        infoMessage <<  L"TskImgDBSqlite::open - Failed to set busy handler: " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
 
         sqlite3_close(m_db);
         return 1;
@@ -476,9 +481,9 @@ int TskImgDBSqlite::addToolInfo(const char* name, const char* version)
         name, version);
     if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK)
     {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::addToolInfo - Error adding data to db_info table: %S", errmsg);
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::addToolInfo - Error adding data to db_info table: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -490,19 +495,17 @@ int TskImgDBSqlite::addToolInfo(const char* name, const char* version)
 int TskImgDBSqlite::addImageInfo(int type, int size)
 {
     char *errmsg;
-    char stmt[1024];
+    std::stringstream stmt;
 
     if (!m_db)
         return 1;
 
-    _snprintf_s(stmt, 1024, _TRUNCATE, 
-        "INSERT INTO image_info (type, ssize) VALUES (%d, %u);",
-        type, size);
-    if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK)
+    stmt << "INSERT INTO image_info (type, ssize) VALUES ("<< type << ", " << size << ");";
+    if (sqlite3_exec(m_db, stmt.str().c_str(), NULL, NULL, &errmsg) != SQLITE_OK)
     {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::addImageInfo - Error adding data to image_info table: %S", errmsg);
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage <<  L"TskImgDBSqlite::addImageInfo - Error adding data to image_info table: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -524,10 +527,9 @@ int TskImgDBSqlite::addImageName(char const *imgPath)
         imgPath);
     if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK)
     {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::addImageName - "
-            L"Error adding data to image_names table: %S", errmsg);
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::addImageName - Error adding data to image_names table: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -552,10 +554,9 @@ int TskImgDBSqlite::addVolumeInfo(const TSK_VS_PART_INFO * vs_part)
         vs_part->start, vs_part->len, vs_part->desc, vs_part->flags);
 
     if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK) {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::addVolumeInfo - "
-            L"Error adding data to vol_info table: %S", errmsg);
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::addVolumeInfo - Error adding data to vol_info table: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -566,25 +567,23 @@ int TskImgDBSqlite::addVolumeInfo(const TSK_VS_PART_INFO * vs_part)
 
 int TskImgDBSqlite::addFsInfo(int volId, int fsId, const TSK_FS_INFO * fs_info)
 {
-    char stmt[1024];
+    std::stringstream stmt;
     char * errmsg;
 
     if (!m_db)
         return 1;
 
-    _snprintf_s(stmt, 1024, _TRUNCATE, 
+    stmt <<
         "INSERT INTO fs_info (fs_id, img_byte_offset, vol_id, fs_type, block_size, "
-        "block_count, root_inum, first_inum, last_inum) VALUES (%d,%"
-        PRIuOFF ",%d,'%d',%d,%" PRIuDADDR ",%" PRIuINUM ",%" PRIuINUM ",%"
-        PRIuINUM ")", fsId, fs_info->offset, volId,
-        (int)fs_info->ftype, fs_info->block_size, fs_info->block_count,
-        fs_info->root_inum, fs_info->first_inum, fs_info->last_inum);
+        "block_count, root_inum, first_inum, last_inum) VALUES (" << 
+        fsId << ", " << fs_info->offset << ", " <<  volId << ", " << 
+        (int)fs_info->ftype << ", " <<  fs_info->block_size << ", " <<  fs_info->block_count << ", " << 
+        fs_info->root_inum << ", " <<  fs_info->first_inum << ", " <<  fs_info->last_inum << ")";
 
-    if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK) {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::addFsInfo - "
-            L"Error adding data to fs_info table: %S", errmsg);
-        LOGERROR(infoMessage);
+    if (sqlite3_exec(m_db, stmt.str().c_str(), NULL, NULL, &errmsg) != SQLITE_OK) {
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::addFsInfo - Error adding data to fs_info table: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -603,12 +602,12 @@ uint64_t TskImgDBSqlite::getFileId(int a_fsId, uint64_t a_fsFileId) const
         return 0;
 
     sqlite3_stmt * statement;
-    char stmt[1024];
+    std::stringstream stmt;
     uint64_t fileId = 0;
-    _snprintf_s(stmt, 1024, _TRUNCATE, "SELECT file_id FROM fs_files WHERE fs_id=%d and fs_file_id=%llu;", a_fsId, a_fsFileId);
+    stmt << "SELECT file_id FROM fs_files WHERE fs_id=" << a_fsId << " and fs_file_id=" << a_fsFileId << ";";
 
     /********** FIND the unallocated volumes *************/
-    if (sqlite3_prepare_v2(m_db, stmt, -1, &statement, 0) == SQLITE_OK) {
+    if (sqlite3_prepare_v2(m_db, stmt.str().c_str(), -1, &statement, 0) == SQLITE_OK) {
         int result = sqlite3_step(statement);
         if (result == SQLITE_ROW) {
             fileId = (uint64_t)sqlite3_column_int64(statement, 0);
@@ -616,9 +615,9 @@ uint64_t TskImgDBSqlite::getFileId(int a_fsId, uint64_t a_fsFileId) const
         sqlite3_finalize(statement);
     }
     else {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::getFileId - Error querying fs_files table: %S", sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::getFileId - Error querying fs_files table: " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
 
         return 0;
     }
@@ -803,7 +802,7 @@ int TskImgDBSqlite::addFsFileInfo(int fileSystemID, const TSK_FS_FILE *fileSyste
     fileID = sqlite3_last_insert_rowid(m_db);
 
     // Insert into the fs_files table.
-    _snprintf_s(stmt, 4096, _TRUNCATE, 
+    sqlite3_snprintf(4096, stmt,
         "INSERT INTO fs_files (file_id, fs_id, fs_file_id, attr_type, attr_id) VALUES (%llu,%d,%"
         PRIuINUM ",%d,%d)", fileID, fileSystemID, fileSystemFile->name->meta_addr, fileSystemAttrType, fileSystemAttrID);
 
@@ -837,20 +836,20 @@ int TskImgDBSqlite::addFsFileInfo(int fileSystemID, const TSK_FS_FILE *fileSyste
  */
 int TskImgDBSqlite::addFsBlockInfo(int a_fsId, uint64_t a_fileId, int a_sequence, uint64_t a_blk_addr, uint64_t a_len)
 {
-    char stmt[1024];
+    std::stringstream stmt;
     char * errmsg;
 
     if (!m_db)
         return 1;
 
-    _snprintf_s(stmt, 1024, _TRUNCATE, 
-        "INSERT INTO fs_blocks (fs_id, file_id, seq, blk_start, blk_len) VALUES (%d,%llu,%d,%"
-        PRIuOFF ",%"PRIuOFF")", a_fsId, a_fileId, a_sequence, a_blk_addr, a_len);
+    stmt <<
+        "INSERT INTO fs_blocks (fs_id, file_id, seq, blk_start, blk_len) VALUES (" <<
+        a_fsId << "," << a_fileId << "," << a_sequence << "," << a_blk_addr << "," <<  a_len << ")";
 
-    if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK) {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::addFsBlockInfo - Error adding data to fs_blocks table: %S", errmsg);
-        LOGERROR(infoMessage);
+    if (sqlite3_exec(m_db, stmt.str().c_str(), NULL, NULL, &errmsg) != SQLITE_OK) {
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::addFsBlockInfo - Error adding data to fs_blocks table: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -862,22 +861,22 @@ int TskImgDBSqlite::addFsBlockInfo(int a_fsId, uint64_t a_fileId, int a_sequence
 int TskImgDBSqlite::addAllocUnallocMapInfo(int a_volID, int unallocImgID, 
                                            uint64_t unallocImgStart, uint64_t length, uint64_t origImgStart)
 {
-    char stmt[1024];
+    std::stringstream stmt;
     char * errmsg;
 
     if (!m_db)
         return 1;
 
-    _snprintf_s(stmt, 1024, _TRUNCATE, 
+    stmt <<
         "INSERT INTO alloc_unalloc_map (vol_id, unalloc_img_id, unalloc_img_sect_start, "
-        "sect_len, orig_img_sect_start) VALUES (%d,%d,%"
-        PRIuOFF ",%"PRIuOFF",%"PRIuOFF")", a_volID, unallocImgID, 
-        unallocImgStart, length, origImgStart);
+        "sect_len, orig_img_sect_start) VALUES (" <<
+        a_volID << "," << unallocImgID << "," << 
+        unallocImgStart << "," << length << "," <<  origImgStart << ")";
 
-    if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK) {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::addAllocUnallocMapInfo - Error adding data to alloc_unalloc_map table: %S", errmsg);
-        LOGERROR(infoMessage);
+    if (sqlite3_exec(m_db, stmt.str().c_str(), NULL, NULL, &errmsg) != SQLITE_OK) {
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::addAllocUnallocMapInfo - Error adding data to alloc_unalloc_map table: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -893,15 +892,15 @@ int TskImgDBSqlite::addAllocUnallocMapInfo(int a_volID, int unallocImgID,
  */
 SectorRuns * TskImgDBSqlite::getFreeSectors() const
 {
-    wchar_t infoMessage[MAX_BUFF_LENGTH];
-    std::wstringstream msg;
+    std::stringstream infoMessage;
+    std::stringstream msg;
 
     if (!m_db)
         return NULL;
 
     SectorRuns * sr = new SectorRuns();
 
-    LOGINFO(L"TskImgDBSqlite::getFreeSectors - Identifying Unallocated Sectors");
+    LOGINFO("TskImgDBSqlite::getFreeSectors - Identifying Unallocated Sectors");
 
     sqlite3_stmt * statement;
 
@@ -924,10 +923,10 @@ SectorRuns * TskImgDBSqlite::getFreeSectors() const
                     }
                     // add the allocated volumes that don't have a known file system
                     else {
-                        char stmt[512];
+                        std::stringstream stmt;
                         sqlite3_stmt *statement2;
-                        _snprintf_s(stmt, 512, _TRUNCATE, "SELECT fs_id FROM fs_info WHERE vol_id = %d;", vol_id);
-                        if (sqlite3_prepare_v2(m_db, stmt , -1, &statement2, 0) == SQLITE_OK) {
+                        stmt << "SELECT fs_id FROM fs_info WHERE vol_id = " << vol_id << ";";
+                        if (sqlite3_prepare_v2(m_db, stmt.str().c_str() , -1, &statement2, 0) == SQLITE_OK) {
                             if (sqlite3_step(statement2) != SQLITE_ROW) {
                                 sr->addRun(start, len, vol_id);
                             }
@@ -942,8 +941,8 @@ SectorRuns * TskImgDBSqlite::getFreeSectors() const
             sqlite3_finalize(statement);
     }
     else {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::getFreeSectors - Error querying vol_info table: %S", sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+        infoMessage << "TskImgDBSqlite::getFreeSectors - Error querying vol_info table: " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
 
         return NULL;
     }
@@ -959,7 +958,7 @@ SectorRuns * TskImgDBSqlite::getFreeSectors() const
 
     // get basic info on each file system
     if (sqlite3_prepare_v2(m_db, "SELECT fs_id, vol_id, img_byte_offset, block_size, block_count FROM fs_info;", -1, &statement, 0) == SQLITE_OK) {
-        LOGINFO(L"TskImgDBSqlite::getFreeSectors - START LOOP: Find the unallocated blocks in each file system.");
+        LOGINFO("TskImgDBSqlite::getFreeSectors - START LOOP: Find the unallocated blocks in each file system.");
         while(true)
         {
             int result = sqlite3_step(statement);
@@ -968,8 +967,9 @@ SectorRuns * TskImgDBSqlite::getFreeSectors() const
                 int fs_id = sqlite3_column_int(statement, 0);
                 if (fs_id > 32)
                 {
-                    _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::getFreeSectors - fs_id in fs_info is bigger than 32: %d", fs_id);
-                    LOGERROR(infoMessage);
+                    infoMessage.str("");
+                    infoMessage << "TskImgDBSqlite::getFreeSectors - fs_id in fs_info is bigger than 32: " << fs_id;
+                    LOGERROR(infoMessage.str());
                     break;
                 }
                 vol_id[fs_id] = sqlite3_column_int(statement, 1);
@@ -977,8 +977,8 @@ SectorRuns * TskImgDBSqlite::getFreeSectors() const
                 blk_size[fs_id] = sqlite3_column_int(statement, 3) / 512;
                 blk_count[fs_id] = sqlite3_column_int64(statement, 4);
                 // Debug Info
-                msg.str(L"");
-                msg << L"TskImgDBSqlite::getFreeSectors - fs_id=" << fs_id << " vol_id=" << vol_id[fs_id] << " img_offset=" << img_offset[fs_id] << " blk_size=" << blk_size[fs_id] <<
+                msg.str("");
+                msg << "TskImgDBSqlite::getFreeSectors - fs_id=" << fs_id << " vol_id=" << vol_id[fs_id] << " img_offset=" << img_offset[fs_id] << " blk_size=" << blk_size[fs_id] <<
                     " blk_count=" << blk_count[fs_id];
                 LOGINFO(msg.str().c_str());
             }
@@ -988,12 +988,13 @@ SectorRuns * TskImgDBSqlite::getFreeSectors() const
             }
         }
         sqlite3_finalize(statement);
-        LOGINFO(L"TskImgDBSqlite::getFreeSectors - DONE: Find the unallocated blocks in each file system.");
+        LOGINFO("TskImgDBSqlite::getFreeSectors - DONE: Find the unallocated blocks in each file system.");
     }
     else
     {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::getFreeSectors - Error querying fs_info table: %S", sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+        infoMessage.str("");
+        infoMessage << "TskImgDBSqlite::getFreeSectors - Error querying fs_info table: " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
 
         return NULL;
     }
@@ -1003,14 +1004,15 @@ SectorRuns * TskImgDBSqlite::getFreeSectors() const
     memset(seen, 0, 32*sizeof(TSK_LIST *));
 
     if (sqlite3_prepare_v2(m_db, "SELECT fs_id, file_id, blk_start, blk_len FROM fs_blocks;", -1, &statement, 0) == SQLITE_OK) {
-        LOGINFO(L"TskImgDBSqlite::getFreeSectors - START LOOP: see what blocks have been used and add them to a list.");
+        LOGINFO("TskImgDBSqlite::getFreeSectors - START LOOP: see what blocks have been used and add them to a list.");
         while(true) {
             int result = sqlite3_step(statement);
             if (result == SQLITE_ROW) {
                 int fs_id = sqlite3_column_int(statement, 0);
                 if (fs_id > 32) {
-                    _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::getFreeSectors - fs_id in fs_info is bigger than 32: %d", fs_id);
-                    LOGERROR(infoMessage);
+                    infoMessage.str("");
+                    infoMessage << "TskImgDBSqlite::getFreeSectors - fs_id in fs_info is bigger than 32: " << fs_id;
+                    LOGERROR(infoMessage.str());
                     continue;
                 }
                 uint64_t file_id = (uint64_t)sqlite3_column_int64(statement, 1);
@@ -1018,13 +1020,14 @@ SectorRuns * TskImgDBSqlite::getFreeSectors() const
                 int64_t len = sqlite3_column_int64(statement, 3);
 
                 // We only want to consider the runs for files that we allocated.
-                char stmt[1024];
-                _snprintf_s(stmt, 1024, _TRUNCATE, "SELECT meta_flags from files WHERE file_id=%d;", file_id);
+                std::stringstream stmt;
+                stmt << "SELECT meta_flags from files WHERE file_id=" << file_id;
 
                 sqlite3_stmt * statement2;
-                if (sqlite3_prepare_v2(m_db, stmt, -1, &statement2, 0) != SQLITE_OK) {
-                    _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::getFreeSectors - error finding flags for file %lld", file_id);
-                    LOGERROR(infoMessage);
+                if (sqlite3_prepare_v2(m_db, stmt.str().c_str(), -1, &statement2, 0) != SQLITE_OK) {
+                    infoMessage.str("");
+                    infoMessage << "TskImgDBSqlite::getFreeSectors - error finding flags for file " << file_id;
+                    LOGERROR(infoMessage.str());
                     continue;
                 }
                 sqlite3_step(statement2);
@@ -1038,8 +1041,9 @@ SectorRuns * TskImgDBSqlite::getFreeSectors() const
                 int error = 0;
                 for (int64_t i = 0; i < len; i++) {
                     if (tsk_list_add(&seen[fs_id], addr+i)) {
-                        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::getFreeSectors - Error adding seen block address to list");
-                        LOGERROR(infoMessage);
+                        infoMessage.str("");
+                        infoMessage << "TskImgDBSqlite::getFreeSectors - Error adding seen block address to list";
+                        LOGERROR(infoMessage.str());
 
                         error = 1;
                         break;
@@ -1053,17 +1057,18 @@ SectorRuns * TskImgDBSqlite::getFreeSectors() const
             }
         }
         sqlite3_finalize(statement);
-        LOGINFO(L"TskImgDBSqlite::getFreeSectors - DONE: see what blocks have been used and add them to a list.");
+        LOGINFO("TskImgDBSqlite::getFreeSectors - DONE: see what blocks have been used and add them to a list.");
     }
     else {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::getFreeSectors - Error querying fs_block table: %S", sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+        infoMessage.str("");
+        infoMessage << "TskImgDBSqlite::getFreeSectors - Error querying fs_block table: " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
 
         return NULL;
     }
 
     // cycle through each file system to find the unused blocks
-    LOGINFO(L"TskImgDBSqlite::getFreeSectors - START LOOP: cycle through each file system to find the unused blocks.");
+    LOGINFO("TskImgDBSqlite::getFreeSectors - START LOOP: cycle through each file system to find the unused blocks.");
     for (int f = 0; f < 32; f++) {
         if (blk_count[f] == 0)
             continue;
@@ -1072,8 +1077,8 @@ SectorRuns * TskImgDBSqlite::getFreeSectors() const
         int len = 0;
         // we previously adjusted blk_size and img_offset to be in sectors
 
-        msg.str(L"");
-        msg << L"blk_count[" << f << "]=" << blk_count[f];
+        msg.str("");
+        msg << "blk_count[" << f << "]=" << blk_count[f];
         LOGINFO(msg.str().c_str());
 
         for (uint64_t a = 0; a < blk_count[f]; a++) {
@@ -1106,7 +1111,7 @@ SectorRuns * TskImgDBSqlite::getFreeSectors() const
         tsk_list_free(seen[f]);
         seen[f] = NULL;
     }
-    LOGINFO(L"TskImgDBSqlite::getFreeSectors - DONE: cycle through each file system to find the unused blocks.");
+    LOGINFO("TskImgDBSqlite::getFreeSectors - DONE: cycle through each file system to find the unused blocks.");
 
     return sr;
 }
@@ -1129,7 +1134,7 @@ std::string TskImgDBSqlite::getImageBaseName() const
     }
 }
 
-std::vector<std::wstring> TskImgDBSqlite::getImageNames() const
+std::vector<std::wstring> TskImgDBSqlite::getImageNamesW() const
 {
     std::vector<std::wstring> imgList;
 
@@ -1158,6 +1163,39 @@ std::vector<std::wstring> TskImgDBSqlite::getImageNames() const
     return imgList;
 }
 
+
+std::vector<std::string> TskImgDBSqlite::getImageNames() const
+{
+    std::vector<std::string> imgList;
+
+    if (!m_db)
+        return imgList;
+
+    sqlite3_stmt *statement;
+
+    if (sqlite3_prepare_v2(m_db, "SELECT name FROM image_names ORDER BY seq;",
+        -1, &statement, 0) == SQLITE_OK) 
+    {
+        while(true)
+        {
+            int result = sqlite3_step(statement);
+            if (result == SQLITE_ROW) {
+                imgList.push_back((char *)sqlite3_column_text(statement, 0));
+            }
+            else {
+                break;
+            }
+        }
+
+        sqlite3_finalize(statement);
+    }
+
+    return imgList;
+}
+
+
+
+
 /**
  * @param a_fileId  File id to get information about
  * @param a_fsOffset Byte offset of start of file system that the file is located in
@@ -1172,13 +1210,12 @@ int TskImgDBSqlite::getFileUniqueIdentifiers(uint64_t a_fileId, uint64_t &a_fsOf
         return -1;
 
     sqlite3_stmt * statement;
-    char stmt[MAX_BUFF_LENGTH];
+    std::stringstream stmt;
 
-    _snprintf_s(stmt, MAX_BUFF_LENGTH, MAX_BUFF_LENGTH, 
+    stmt <<
         "SELECT fs_file_id, attr_type, attr_id, fs_info.img_byte_offset "
-        "FROM fs_files, fs_info WHERE file_id=%llu AND fs_info.fs_id = fs_files.fs_id;",
-        a_fileId);
-    if (sqlite3_prepare_v2(m_db, stmt, -1, &statement, 0) == SQLITE_OK) {
+        "FROM fs_files, fs_info WHERE file_id=" << a_fileId << " AND fs_info.fs_id = fs_files.fs_id;";
+    if (sqlite3_prepare_v2(m_db, stmt.str().c_str(), -1, &statement, 0) == SQLITE_OK) {
         int result = sqlite3_step(statement);
         if (result == SQLITE_ROW) {
             a_fsFileId = sqlite3_column_int64(statement, 0);
@@ -1192,10 +1229,9 @@ int TskImgDBSqlite::getFileUniqueIdentifiers(uint64_t a_fileId, uint64_t &a_fsOf
         sqlite3_finalize(statement);
     }
     else {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::getFileUniqueIdentifiers - "
-            L"Error querying fs_files table : ", sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::getFileUniqueIdentifiers - Error querying fs_files table : " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
         return -1;
     }
 
@@ -1257,12 +1293,11 @@ int TskImgDBSqlite::getSessionID() const
         return 0;
 
     sqlite3_stmt * statement;
-    char stmt[1024];
-    int sessionId;
-    _snprintf_s(stmt, 1024, _TRUNCATE, "SELECT version from db_info WHERE name=%s;", "\"SID\"");
+    std::string stmt("SELECT version from db_info WHERE name=\"SID\";");
+    int sessionId = -1;
 
     /********** FIND the unallocated volumes *************/
-    if (sqlite3_prepare_v2(m_db, stmt, -1, &statement, 0) == SQLITE_OK) {
+    if (sqlite3_prepare_v2(m_db, stmt.c_str(), -1, &statement, 0) == SQLITE_OK) {
         int result = sqlite3_step(statement);
         if (result == SQLITE_ROW) {
             sessionId = (int)sqlite3_column_int(statement, 0);
@@ -1270,9 +1305,9 @@ int TskImgDBSqlite::getSessionID() const
         sqlite3_finalize(statement);
     }
     else {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::getSessionID - Error querying db_info table for Session ID: %S", sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::getSessionID - Error querying db_info table for Session ID: " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
 
         return -1;
     }
@@ -1286,9 +1321,9 @@ int TskImgDBSqlite::begin()
         return 1;
 
     if (sqlite3_exec(m_db, "BEGIN", NULL, NULL, &errmsg) != SQLITE_OK) {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::begin - BEGIN Error: %S", errmsg);
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::begin - BEGIN Error: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -1303,9 +1338,9 @@ int TskImgDBSqlite::commit()
         return 1;
 
     if (sqlite3_exec(m_db, "COMMIT", NULL, NULL, &errmsg) != SQLITE_OK) {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::commit - COMMIT Error: %S", errmsg);
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::commit - COMMIT Error: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return 1;
@@ -1315,22 +1350,22 @@ int TskImgDBSqlite::commit()
 
 UnallocRun * TskImgDBSqlite::getUnallocRun(int a_unalloc_img_id, int a_file_offset) const
 {
-    char stmt[1024];
+    std::stringstream stmt;
     char * errmsg;
     if (!m_db)
         return NULL;
 
-    _snprintf_s(stmt, 1024, _TRUNCATE, "SELECT vol_id, unalloc_img_sect_start, sect_len, orig_img_sect_start FROM "
-        "alloc_unalloc_map WHERE unalloc_img_id = %d AND unalloc_img_sect_start <= %d ORDER BY unalloc_img_sect_start DESC",
-        a_unalloc_img_id, a_file_offset);
+    stmt << "SELECT vol_id, unalloc_img_sect_start, sect_len, orig_img_sect_start FROM "
+        "alloc_unalloc_map WHERE unalloc_img_id = " << a_unalloc_img_id << 
+        " AND unalloc_img_sect_start <= " << a_file_offset << " ORDER BY unalloc_img_sect_start DESC";
+
     char **result;
     int nrow, ncol;
-    if (sqlite3_get_table(m_db, stmt, &result, &nrow, &ncol, &errmsg) != SQLITE_OK)
+    if (sqlite3_get_table(m_db, stmt.str().c_str(), &result, &nrow, &ncol, &errmsg) != SQLITE_OK)
     {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::getUnallocRun - Error fetching data from alloc_unalloc_map table: %S", errmsg);
-
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::getUnallocRun - Error fetching data from alloc_unalloc_map table: " << errmsg;
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
 
@@ -1344,10 +1379,10 @@ UnallocRun * TskImgDBSqlite::getUnallocRun(int a_unalloc_img_id, int a_file_offs
         int orig_img_sect_start;
         // skip the headers
         // @@@ DO SOME ERROR CHECKING HERE to make sure that results has data...
-        sscanf_s(result[4], "%d", &vol_id);
-        sscanf_s(result[5], "%d", &unalloc_img_sect_start);
-        sscanf_s(result[6], "%d", &sect_len);
-        sscanf_s(result[7], "%d", &orig_img_sect_start);
+        sscanf(result[4], "%d", &vol_id);
+        sscanf(result[5], "%d", &unalloc_img_sect_start);
+        sscanf(result[6], "%d", &sect_len);
+        sscanf(result[7], "%d", &orig_img_sect_start);
         sqlite3_free_table(result);
         return new UnallocRun(vol_id, a_unalloc_img_id, unalloc_img_sect_start, sect_len, orig_img_sect_start);
     }
@@ -1366,29 +1401,28 @@ UnallocRun * TskImgDBSqlite::getUnallocRun(int a_unalloc_img_id, int a_file_offs
  * @param fileId Carved file Id (output)
  * @returns 0 on success or -1 on error.
  */
-int TskImgDBSqlite::addCarvedFileInfo(int vol_id, wchar_t * name, uint64_t size, 
+int TskImgDBSqlite::addCarvedFileInfo(int vol_id, const char *name, uint64_t size, 
                                       uint64_t *runStarts, uint64_t *runLengths, int numRuns, uint64_t & fileId)
 {
     char stmt[1024];
-    std::string utf8Name;
     char * errmsg;
-    wchar_t infoMessage[MAX_BUFF_LENGTH];
+    std::wstringstream infoMessage;
+
     if (!m_db)
         return -1;
 
-    Poco::UnicodeConverter::toUTF8(name, utf8Name); // needed for sqlite3_sprintf
     // insert into files table
     sqlite3_snprintf(1024, stmt,
         "INSERT INTO files (file_id, type_id, name, par_file_id, dir_type, meta_type,"
         "dir_flags, meta_flags, size, ctime, crtime, atime, mtime, mode, uid, gid, status, full_path) "
         "VALUES (NULL, %d, '%q', NULL, %d, %d, %d, %d, %llu, 0, 0, 0, 0, NULL, NULL, NULL, %d, '%q')",
-        IMGDB_FILES_TYPE_CARVED, utf8Name.c_str(), (int)TSK_FS_NAME_TYPE_REG, (int)TSK_FS_META_TYPE_REG,
-        (int)TSK_FS_NAME_FLAG_UNALLOC, (int)TSK_FS_META_FLAG_UNALLOC, size, IMGDB_FILES_STATUS_CREATED, utf8Name.c_str());
+        IMGDB_FILES_TYPE_CARVED, name, (int)TSK_FS_NAME_TYPE_REG, (int)TSK_FS_META_TYPE_REG,
+        (int)TSK_FS_NAME_FLAG_UNALLOC, (int)TSK_FS_META_FLAG_UNALLOC, size, IMGDB_FILES_STATUS_CREATED, name);
     // MAY-118 NOTE: addCarvedFileInfo insert entry into files table, but actual file on disk has not been created yet.
     if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK) {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::addCarvedFileInfo - Error adding data to file table for carved file: %S %S", errmsg, stmt);
+        infoMessage << L"TskImgDBSqlite::addCarvedFileInfo - Error adding data to file table for carved file: " << errmsg << L" " << stmt;
 
-        LOGERROR(infoMessage);
+        LOGERROR(infoMessage.str());
 
         sqlite3_free(errmsg);
         return -1;
@@ -1398,12 +1432,12 @@ int TskImgDBSqlite::addCarvedFileInfo(int vol_id, wchar_t * name, uint64_t size,
     fileId = (uint64_t)sqlite3_last_insert_rowid(m_db);
 
     // insert into the carved_files_table
-    _snprintf_s(stmt, 1024, _TRUNCATE, "INSERT INTO carved_files (file_id, vol_id)"
+    sqlite3_snprintf(1024, stmt, "INSERT INTO carved_files (file_id, vol_id)"
         "VALUES (%llu, %d)", fileId, vol_id);
     if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK) {
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::addCarvedFileInfo - Error adding data to carved_files table: %S", errmsg);
+        infoMessage << L"TskImgDBSqlite::addCarvedFileInfo - Error adding data to carved_files table: " << errmsg;
 
-        LOGERROR(infoMessage);
+        LOGERROR(infoMessage.str());
         sqlite3_free(errmsg);
         return -1;
     }
@@ -1411,14 +1445,14 @@ int TskImgDBSqlite::addCarvedFileInfo(int vol_id, wchar_t * name, uint64_t size,
     // insert into carved_sectors table
     for (int i = 0; i < numRuns; i++)
     {
-        _snprintf_s(stmt, 1024, _TRUNCATE, 
+        sqlite3_snprintf(1023, stmt,
             "INSERT INTO carved_sectors (file_id, seq, sect_start, sect_len) "
             "VALUES (%llu, %d, %llu, %llu)",
             fileId, i, runStarts[i], runLengths[i]);
         if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK) {
-            _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::addCarvedFileInfo - Error adding data to carved_sectors table: %S", errmsg);
+            infoMessage << L"TskImgDBSqlite::addCarvedFileInfo - Error adding data to carved_sectors table: " << errmsg;
 
-            LOGERROR(infoMessage);
+            LOGERROR(infoMessage.str());
 
             sqlite3_free(errmsg);
             return -1;
@@ -1515,21 +1549,18 @@ int TskImgDBSqlite::getFileIds(char *a_fileName, uint64_t *a_outBuffer, int a_bu
     int outIdx = 0;
 
     sqlite3_stmt * statement;
-    char stmt[MAX_BUFF_LENGTH];
-    _snprintf_s(stmt, MAX_BUFF_LENGTH, MAX_BUFF_LENGTH, 
-        "SELECT file_id FROM files WHERE name LIKE '%s';",
-        a_fileName);
-    if (sqlite3_prepare_v2(m_db, stmt, -1, &statement, 0) == SQLITE_OK) {
+    std::stringstream stmt;
+    stmt << "SELECT file_id FROM files WHERE name LIKE '" << a_fileName << "';";
+    if (sqlite3_prepare_v2(m_db, stmt.str().c_str(), -1, &statement, 0) == SQLITE_OK) {
         while(sqlite3_step(statement) == SQLITE_ROW) {
             a_outBuffer[outIdx++] = (uint64_t)sqlite3_column_int64(statement, 0);
         }
         sqlite3_finalize(statement);
     }
     else {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::getFileIds - "
-            L"Error querying files table : %S", sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::getFileIds - Error querying files table : " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
         return -1;
     }
 
@@ -1548,10 +1579,10 @@ int TskImgDBSqlite::getMinFileIdReadyForAnalysis(uint64_t & minFileId) const
     minFileId = 0;
 
     sqlite3_stmt * statement;
-    char stmt[MAX_BUFF_LENGTH];
-    _snprintf_s(stmt, MAX_BUFF_LENGTH, MAX_BUFF_LENGTH, 
-        "SELECT min(file_id) FROM files WHERE status = %d;", TskImgDB::IMGDB_FILES_STATUS_READY_FOR_ANALYSIS);
-    if (sqlite3_prepare_v2(m_db, stmt, -1, &statement, 0) == SQLITE_OK) {
+    std::stringstream stmt;
+    stmt << "SELECT min(file_id) FROM files WHERE status = " << 
+        TskImgDB::IMGDB_FILES_STATUS_READY_FOR_ANALYSIS << ";";
+    if (sqlite3_prepare_v2(m_db, stmt.str().c_str(), -1, &statement, 0) == SQLITE_OK) {
         int result = sqlite3_step(statement);
         if (result == SQLITE_ROW) {
             minFileId = (uint64_t)sqlite3_column_int64(statement, 0);
@@ -1559,10 +1590,9 @@ int TskImgDBSqlite::getMinFileIdReadyForAnalysis(uint64_t & minFileId) const
         sqlite3_finalize(statement);
     }
     else {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::getMinFileIdReadyForAnalysis - "
-            L"Error querying files table : %S", sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::getMinFileIdReadyForAnalysis - Error querying files table : " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
         return -1;
     }
     return 0;
@@ -1580,10 +1610,11 @@ int TskImgDBSqlite::getMaxFileIdReadyForAnalysis(uint64_t a_lastFileId, uint64_t
     maxFileId = 0;
 
     sqlite3_stmt * statement;
-    char stmt[MAX_BUFF_LENGTH];
-    _snprintf_s(stmt, MAX_BUFF_LENGTH, MAX_BUFF_LENGTH, 
-        "SELECT max(file_id) FROM files WHERE status = %d AND file_id >= %d;", TskImgDB::IMGDB_FILES_STATUS_READY_FOR_ANALYSIS, a_lastFileId);
-    if (sqlite3_prepare_v2(m_db, stmt, -1, &statement, 0) == SQLITE_OK) {
+    std::stringstream stmt;
+    stmt << "SELECT max(file_id) FROM files WHERE status = " <<  
+        TskImgDB::IMGDB_FILES_STATUS_READY_FOR_ANALYSIS << 
+        " AND file_id >= " <<  a_lastFileId << ";";
+    if (sqlite3_prepare_v2(m_db, stmt.str().c_str(), -1, &statement, 0) == SQLITE_OK) {
         int result = sqlite3_step(statement);
         if (result == SQLITE_ROW) {
             maxFileId = (uint64_t)sqlite3_column_int64(statement, 0);
@@ -1591,10 +1622,9 @@ int TskImgDBSqlite::getMaxFileIdReadyForAnalysis(uint64_t a_lastFileId, uint64_t
         sqlite3_finalize(statement);
     }
     else {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::getMaxFileIdReadyForAnalysis - "
-            L"Error querying files table : %S", sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage <<  L"TskImgDBSqlite::getMaxFileIdReadyForAnalysis - Error querying files table : " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
         return -1;
     }
     return 0;
@@ -1608,19 +1638,18 @@ SectorRuns * TskImgDBSqlite::getFileSectors(uint64_t a_fileId) const
     SectorRuns * sr = new SectorRuns();
 
     sqlite3_stmt * statement;
-    char stmt[MAX_BUFF_LENGTH];
+    std::stringstream stmt;
     int srCount = 0;
-    _snprintf_s(stmt, MAX_BUFF_LENGTH, MAX_BUFF_LENGTH,
+    stmt <<
         "SELECT fs_blocks.blk_start, fs_blocks.blk_len, "
         "fs_info.block_size, fs_info.img_byte_offset, fs_info.vol_id "
         "FROM files "
         "JOIN fs_files ON files.file_id = fs_files.file_id "
         "JOIN fs_blocks ON files.file_id = fs_blocks.file_id "
         "JOIN fs_info ON fs_blocks.fs_id = fs_info.fs_id "
-        "WHERE files.file_id = %u "
-        "ORDER BY fs_blocks.seq;", 
-        a_fileId);
-    if (sqlite3_prepare_v2(m_db, stmt, -1, &statement, 0) == SQLITE_OK) {
+        "WHERE files.file_id = " << a_fileId << " "
+        "ORDER BY fs_blocks.seq;";
+    if (sqlite3_prepare_v2(m_db, stmt.str().c_str(), -1, &statement, 0) == SQLITE_OK) {
         while(sqlite3_step(statement) == SQLITE_ROW) {
             uint64_t blkStart = (uint64_t)sqlite3_column_int64(statement, 0);
             uint64_t blkLength = (uint64_t)sqlite3_column_int64(statement, 1);
@@ -1638,13 +1667,11 @@ SectorRuns * TskImgDBSqlite::getFileSectors(uint64_t a_fileId) const
         sqlite3_finalize(statement);
     }
     else {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH,
+        std::wstringstream infoMessage;
+        infoMessage <<
             L"TskImgDBSqlite::getFileSectors - "
-            L"Error finding block data for file_id=%u: %S",
-            a_fileId,
-            sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+            L"Error finding block data for file_id=" << a_fileId << ": " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
         return NULL;
     }
 
@@ -1672,7 +1699,7 @@ int TskImgDBSqlite::busyHandler(void * pDB, int count)
 {
     if (count < IMGDB_MAX_RETRY_COUNT)
     {
-        Sleep(IMGDB_RETRY_WAIT * count);
+        Poco::Thread::sleep(IMGDB_RETRY_WAIT * count);
         return 1;
     }
 
@@ -1686,16 +1713,14 @@ int TskImgDBSqlite::updateFileStatus(uint64_t a_file_id, FILE_STATUS a_status)
     if (!m_db)
         return 1;
 
-    char stmt[MAX_BUFF_LENGTH];
+    std::stringstream stmt;
     char * errmsg;
 
-    _snprintf_s(stmt, MAX_BUFF_LENGTH, MAX_BUFF_LENGTH, 
-        "UPDATE files SET status = %d WHERE file_id = %d;", a_status, a_file_id);
-    if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK) {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::updateFileStatus - Error UPDATE file status: %S",
-            sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+    stmt << "UPDATE files SET status = " << a_status << " WHERE file_id = " << a_file_id << ";";
+    if (sqlite3_exec(m_db, stmt.str().c_str(), NULL, NULL, &errmsg) != SQLITE_OK) {
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::updateFileStatus - Error UPDATE file status: " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
         return 1;
     }
 
@@ -1708,16 +1733,14 @@ int TskImgDBSqlite::updateKnownStatus(uint64_t a_file_id, KNOWN_STATUS a_status)
     if (!m_db)
         return 1;
 
-    char stmt[MAX_BUFF_LENGTH];
+    std::stringstream stmt;
     char * errmsg;
 
-    _snprintf_s(stmt, MAX_BUFF_LENGTH, MAX_BUFF_LENGTH, 
-                "UPDATE file_hashes SET known = %d WHERE file_id = %d;", a_status, a_file_id);
-    if (sqlite3_exec(m_db, stmt, NULL, NULL, &errmsg) != SQLITE_OK) {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::updateFileStatus - Error UPDATE file status: %S",
-            sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+    stmt << "UPDATE file_hashes SET known = " << a_status << " WHERE file_id = " << a_file_id << ";";
+    if (sqlite3_exec(m_db, stmt.str().c_str(), NULL, NULL, &errmsg) != SQLITE_OK) {
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::updateFileStatus - Error UPDATE file status: " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
         return 1;
     }
 
@@ -1783,7 +1806,7 @@ std::map<uint64_t, std::string> TskImgDBSqlite::getUniqueCarvedFiles(HASH_TYPE h
         break;
     default:
         std::wstringstream msg;
-        msg << L"TskImgDBSqlite::getUniqueCarvedFiles - Unsupported hashType : " << hashType << std::endl;
+        msg << L"TskImgDBSqlite::getUniqueCarvedFiles - Unsupported hashType : " << hashType;
         LOGERROR(msg.str());
         return results;
     }
@@ -1813,9 +1836,9 @@ std::map<uint64_t, std::string> TskImgDBSqlite::getUniqueCarvedFiles(HASH_TYPE h
         sqlite3_finalize(statement);
     } else 
     {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::getUniqueCarvedFiles - Error getting file_hashes count: %S", sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::getUniqueCarvedFiles - Error getting file_hashes count: " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
     }
 
     stmt.str("");
@@ -2017,9 +2040,9 @@ std::vector<uint64_t> TskImgDBSqlite::getUniqueFileIds(HASH_TYPE hashType) const
         }
         sqlite3_finalize(statement);
     } else {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::getUniqueFileIds - Error querying file_hashes table: %S", sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::getUniqueFileIds - Error querying file_hashes table: " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
     }
     return results;
 }
@@ -2051,9 +2074,10 @@ std::vector<uint64_t> TskImgDBSqlite::getFileIdsWorker(std::string tableName, co
         }
         sqlite3_finalize(statement);
     } else {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::getFileIdsWorker - Error getting file ids from table %s, %S", tableName.c_str(), sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::getFileIdsWorker - Error getting file ids from table " << 
+            tableName.c_str() << ", " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
     }
     return results;
 }
@@ -2068,7 +2092,7 @@ std::vector<uint64_t> TskImgDBSqlite::getFileIdsWorker(std::string tableName, co
  * @returns The collection of file ids matching the selection criteria. Throws
  * TskException if database not initialized.
  */
-std::vector<uint64_t> TskImgDBSqlite::getFileIds(std::string &condition) const
+std::vector<uint64_t> TskImgDBSqlite::getFileIds(const std::string& condition) const
 {
     if (!m_db)
         throw TskException("Database not initialized.");
@@ -2104,12 +2128,12 @@ std::vector<uint64_t> TskImgDBSqlite::getFileIds(std::string &condition) const
  * @returns The collection of file records matching the selection criteria. Throws
  * TskException if database not initialized.
  */
-std::vector<const TskFileRecord> TskImgDBSqlite::getFileRecords(std::string &condition) const
+const std::vector<TskFileRecord> TskImgDBSqlite::getFileRecords(const std::string& condition) const
 {
     if (!m_db)
         throw TskException("Database not initialized.");
 
-    std::vector<const TskFileRecord> results;
+    std::vector<TskFileRecord> results;
 
     std::stringstream stmtstrm;
 
@@ -2173,7 +2197,7 @@ std::vector<const TskFileRecord> TskImgDBSqlite::getFileRecords(std::string &con
  * @param condition Must be a valid SQL string defining the selection criteria.
  * @returns The number of files matching the selection criteria. 
  */
-int TskImgDBSqlite::getFileCount(std::string& condition) const
+int TskImgDBSqlite::getFileCount(const std::string& condition) const
 {
     if (!m_db)
         throw TskException("Database not initialized.");
@@ -2201,9 +2225,27 @@ int TskImgDBSqlite::getFileCount(std::string& condition) const
     return result;
 }
 
+int tsk_strnicmp(const char *s1, const char *s2, size_t N)
+{
+    if (N == 0)
+        return 0;
+    int diff = 0;
+    if (s1 && s2) {
+        while (N-- > 0 && (diff = (toupper(*s1) - toupper(*s2))) == 0 && *s1 && *s2) {
+            s1++;
+            s2++;
+        }
+    }
+    else if (s1)
+        return +1;
+    else if (s2)
+        return -1;
+    return diff;
+}
+
 /* Append condition to stmt to make a single SQL query.
  */
-void TskImgDBSqlite::constructStmt(std::string& stmt, std::string& condition) const
+void TskImgDBSqlite::constructStmt(std::string& stmt, std::string condition) const
 {
     if (!condition.empty())
     {
@@ -2220,10 +2262,10 @@ void TskImgDBSqlite::constructStmt(std::string& stmt, std::string& condition) co
          * it is presumably extending the FROM clause with
          * one or more table names. In this case we need to add the comma to
          * the statement. */
-        if (strnicmp(condition.c_str(), whereClause.c_str(), whereClause.length()) != 0 &&
-            strnicmp(condition.c_str(), joinClause.c_str(), joinClause.length()) != 0 &&
-            strnicmp(condition.c_str(), leftClause.c_str(), leftClause.length()) != 0 &&
-            strnicmp(condition.c_str(), orderClause.c_str(), orderClause.length()) != 0 &&
+        if (tsk_strnicmp(condition.c_str(), whereClause.c_str(), whereClause.length()) != 0 &&
+            tsk_strnicmp(condition.c_str(), joinClause.c_str(), joinClause.length()) != 0 &&
+            tsk_strnicmp(condition.c_str(), leftClause.c_str(), leftClause.length()) != 0 &&
+            tsk_strnicmp(condition.c_str(), orderClause.c_str(), orderClause.length()) != 0 &&
             condition[0] != ',')
         {
             stmt.append(",");
@@ -2263,7 +2305,6 @@ int TskImgDBSqlite::setHash(const uint64_t a_file_id, const TskImgDB::HASH_TYPE
     }
 
     stringstream stmt;
-    bool found = false;
     std::string md5, sha1, sha2_256, sha2_512;
     int known = IMGDB_FILES_UNKNOWN;
     std::stringstream stream;
@@ -2326,9 +2367,9 @@ int TskImgDBSqlite::setHash(const uint64_t a_file_id, const TskImgDB::HASH_TYPE
 
     char *errmsg;
     if (sqlite3_exec(m_db, stmt.str().c_str(), NULL, NULL, &errmsg) != SQLITE_OK) {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::setHash - Error adding hash to file_hashes table: %S", errmsg);
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::setHash - Error adding hash to file_hashes table: " << errmsg;
+        LOGERROR(infoMessage.str());
         sqlite3_free(errmsg);
         return 1;
     }
@@ -2356,9 +2397,9 @@ std::string TskImgDBSqlite::getCfileName(const uint64_t a_file_id) const
         }
         sqlite3_finalize(statement);
     } else {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::getCfileName - Error querying tables: %S", sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage <<  L"TskImgDBSqlite::getCfileName - Error querying tables: %S" << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
     }
 
     stmt.str("");
@@ -2373,13 +2414,13 @@ std::string TskImgDBSqlite::getCfileName(const uint64_t a_file_id) const
             name = (char *)sqlite3_column_text(statement, 0);
         }
         sqlite3_finalize(statement);
-        int pos = name.rfind('.');
+        size_t pos = name.rfind('.');
         if (pos != string::npos)
             cfileName += name.substr(pos);
     } else {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::getCfileName - Error querying tables: %S", sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::getCfileName - Error querying tables: " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
     }
 
     return cfileName;
@@ -2411,9 +2452,9 @@ int TskImgDBSqlite::getImageInfo(int & type, int & sectorSize) const
         }
         sqlite3_finalize(statement);
     } else {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::getImageInfo - Error querying image_info table: %S", sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage <<  L"TskImgDBSqlite::getImageInfo - Error querying image_info table: " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
         return -1;
     }
     return rc;
@@ -2447,9 +2488,9 @@ int TskImgDBSqlite::getVolumeInfo(std::list<TskVolumeInfoRecord> & volumeInfoLis
         }
         sqlite3_finalize(statement);
     } else {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::getVolumeInfo - Error getting from vol_info table: %S", sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::getVolumeInfo - Error getting from vol_info table: " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
         return -1;
     }
     return 0;
@@ -2487,9 +2528,9 @@ int TskImgDBSqlite::getFsInfo(std::list<TskFsInfoRecord> & fsInfoList) const
         }
         sqlite3_finalize(statement);
     } else {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::getFsInfo - Error getting from fs_info table: %S", sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::getFsInfo - Error getting from fs_info table: " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
         return -1;
     }
     return 0;
@@ -2500,7 +2541,7 @@ typedef std::map<std::string, int> FileTypeMap_t;
 static std::string getFileType(const char *name)
 {
     std::string filename = name;
-    int pos = filename.rfind('.');
+    size_t pos = filename.rfind('.');
     if (pos != std::string::npos) {
         std::string suffix = filename.substr(pos);
         std::string result;
@@ -2546,7 +2587,7 @@ int TskImgDBSqlite::getFileInfoSummary(FILE_TYPES fileType, std::list<TskFileTyp
  * @param fileTypeInfoList A list of TskFileTypeRecord (output)
  * @returns 0 on success of -1 on error.
  */
-int TskImgDBSqlite::getFileTypeRecords(std::string& stmt, std::list<TskFileTypeRecord>& fileTypeInfoList) const
+int TskImgDBSqlite::getFileTypeRecords(const std::string& stmt, std::list<TskFileTypeRecord>& fileTypeInfoList) const
 {
     if (!m_db)
         return -1;
@@ -2578,9 +2619,9 @@ int TskImgDBSqlite::getFileTypeRecords(std::string& stmt, std::list<TskFileTypeR
         }
         sqlite3_finalize(statement);
     } else {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::getFileTypeRecords - Error querying files table: %S", sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::getFileTypeRecords - Error querying files table: " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
         return -1;
     }
     return 0;
@@ -2677,9 +2718,9 @@ int TskImgDBSqlite::setModuleStatus(uint64_t file_id, int module_id, int status)
     if (sqlite3_exec(m_db, stmt.str().c_str(), NULL, NULL, &errmsg) == SQLITE_OK) {
         rc = 0;
     } else {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::setModuleStatus - Error adding data to module_status table: %S", errmsg);
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::setModuleStatus - Error adding data to module_status table: " << errmsg;
+        LOGERROR(infoMessage.str());
         sqlite3_free(errmsg);
     }
     return rc;
@@ -2712,9 +2753,9 @@ int TskImgDBSqlite::getModuleInfo(std::vector<TskModuleInfo> & moduleInfoList) c
         sqlite3_finalize(statement);
         rc = 0;
     } else {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::getModuleInfo - Error querying modules table: %S", sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::getModuleInfo - Error querying modules table: " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
     }
     return rc;
 }
@@ -2748,9 +2789,9 @@ int TskImgDBSqlite::getModuleErrors(std::vector<TskModuleStatus> & moduleStatusL
         sqlite3_finalize(statement);
         rc = 0;
     } else {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::getModuleErrors - Error querying module_status table: %S", sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::getModuleErrors - Error querying module_status table: " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
     }
     // Find report module errors. These have file_id = 0.
     stmt.str("");
@@ -2768,9 +2809,9 @@ int TskImgDBSqlite::getModuleErrors(std::vector<TskModuleStatus> & moduleStatusL
         sqlite3_finalize(statement);
         rc = 0;
     } else {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::getModuleErrors - Error querying module_status table: %S", sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::getModuleErrors - Error querying module_status table: " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
     }
     return rc;
 }
@@ -2814,9 +2855,9 @@ TskImgDB::KNOWN_STATUS TskImgDBSqlite::getKnownStatus(const uint64_t fileId) con
         }
         sqlite3_finalize(statement);
     } else {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::getKnownStatus - Error getting known status %S", sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::getKnownStatus - Error getting known status " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
     }
 
     return (KNOWN_STATUS)retval;
@@ -2842,9 +2883,9 @@ int TskImgDBSqlite::addUnallocImg(int & unallocImgId)
         unallocImgId = (int)sqlite3_last_insert_rowid(m_db);
         rc = 0;
     } else {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::addUnallocImg - Error adding unalloc_img_status table: %S", errmsg);
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::addUnallocImg - Error adding unalloc_img_status table: " << errmsg;
+        LOGERROR(infoMessage.str());
         sqlite3_free(errmsg);
     }
     return rc;
@@ -2869,9 +2910,9 @@ int TskImgDBSqlite::setUnallocImgStatus(int unallocImgId, TskImgDB::UNALLOC_IMG_
     if (sqlite3_exec(m_db, stmt.str().c_str(), NULL, NULL, &errmsg) == SQLITE_OK) {
         rc = 0;
     } else {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::addUnallocImg - Error adding unalloc_img_status table: %S", errmsg);
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::addUnallocImg - Error adding unalloc_img_status table: " << errmsg;
+        LOGERROR(infoMessage.str());
         sqlite3_free(errmsg);
     }
     return rc;
@@ -2888,7 +2929,7 @@ TskImgDB::UNALLOC_IMG_STATUS TskImgDBSqlite::getUnallocImgStatus(int unallocImgI
     if (!m_db)
         throw TskException("Database not initialized.");
 
-    int status;
+    int status = 0;
     stringstream stmt;
     stmt << "SELECT status FROM unalloc_img_status WHERE unalloc_img_id = " << unallocImgId;
 
@@ -2899,9 +2940,9 @@ TskImgDB::UNALLOC_IMG_STATUS TskImgDBSqlite::getUnallocImgStatus(int unallocImgI
         }
         sqlite3_finalize(statement);
     } else {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH,  L"TskImgDBSqlite::getUnallocImgStatus - Error getting unalloc_img_status: %S ", sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::getUnallocImgStatus - Error getting unalloc_img_status: " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
     }
     return (TskImgDB::UNALLOC_IMG_STATUS)status;
 }
@@ -2933,9 +2974,9 @@ int TskImgDBSqlite::getAllUnallocImgStatus(std::vector<TskUnallocImgStatusRecord
         rc = 0;
         sqlite3_finalize(statement);
     } else {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH,  L"TskImgDBSqlite::getAllUnallocImgStatus - Error getting unalloc_img_status: %S ", sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::getAllUnallocImgStatus - Error getting unalloc_img_status: " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
     }
     return rc;
 }
@@ -3006,15 +3047,15 @@ int TskImgDBSqlite::addUnusedSectors(int unallocImgId, std::vector<TskUnusedSect
 
                 sqlite3_finalize(statement);
             } else {
-                wchar_t infoMessage[MAX_BUFF_LENGTH];
-                _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::addUnusedSectors - Error querying carved_files, carved_sectors table: %S", sqlite3_errmsg(m_db));
-                LOGERROR(infoMessage);
+                std::wstringstream infoMessage;
+                infoMessage << L"TskImgDBSqlite::addUnusedSectors - Error querying carved_files, carved_sectors table: " << sqlite3_errmsg(m_db);
+                LOGERROR(infoMessage.str());
             }
         }
     } else {
-        wchar_t infoMessage[MAX_BUFF_LENGTH];
-        _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::addUnusedSectors - Error querying alloc_unalloc_map table: %S", sqlite3_errmsg(m_db));
-        LOGERROR(infoMessage);
+        std::wstringstream infoMessage;
+        infoMessage << L"TskImgDBSqlite::addUnusedSectors - Error querying alloc_unalloc_map table: " << sqlite3_errmsg(m_db);
+        LOGERROR(infoMessage.str());
     }
     return 0;
 }
@@ -3031,11 +3072,9 @@ int TskImgDBSqlite::addUnusedSector(uint64_t sectStart, uint64_t sectEnd, int vo
 {
     assert(sectEnd > sectStart);
     int rc = -1;
-    unusedSectorsList.clear();
     if (!m_db)
         return rc;
 
-    char *ufilename = "ufile";
     std::stringstream stmt;
 
     std::string maxUnused = GetSystemProperty("MAX_UNUSED_FILE_SIZE_BYTES");
@@ -3076,9 +3115,9 @@ int TskImgDBSqlite::addUnusedSector(uint64_t sectStart, uint64_t sectEnd, int vo
             sqlite3_free(item);
 
             if (sqlite3_exec(m_db, stmt.str().c_str(), NULL, NULL, NULL) != SQLITE_OK) {
-                wchar_t infoMessage[MAX_BUFF_LENGTH];
-                _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::addUnusedSector - Error update into files table: %S", sqlite3_errmsg(m_db));
-                LOGERROR(infoMessage);
+                std::wstringstream infoMessage;
+                infoMessage << L"TskImgDBSqlite::addUnusedSector - Error update into files table: " << sqlite3_errmsg(m_db);
+                LOGERROR(infoMessage.str());
                 rc = -1;
                 break;
             }
@@ -3088,9 +3127,9 @@ int TskImgDBSqlite::addUnusedSector(uint64_t sectStart, uint64_t sectEnd, int vo
                  << record.fileId << ", " << record.sectStart << ", " << record.sectLen << ", " << volId << ")";
 
             if (sqlite3_exec(m_db, stmt.str().c_str(), NULL, NULL, NULL) != SQLITE_OK) {
-                wchar_t infoMessage[MAX_BUFF_LENGTH];
-                _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::addUnusedSector - Error insert into unused_sectors table: %S", sqlite3_errmsg(m_db));
-                LOGERROR(infoMessage);
+                std::wstringstream infoMessage;
+                infoMessage << L"TskImgDBSqlite::addUnusedSector - Error insert into unused_sectors table: " << sqlite3_errmsg(m_db);
+                LOGERROR(infoMessage.str());
                 rc = -1;
                 break;
             }
@@ -3099,10 +3138,9 @@ int TskImgDBSqlite::addUnusedSector(uint64_t sectStart, uint64_t sectEnd, int vo
             rc = 0;
 
         } else {
-
-            wchar_t infoMessage[MAX_BUFF_LENGTH];
-            _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::addUnusedSector - Error insert into files table: %S", sqlite3_errmsg(m_db));
-            LOGERROR(infoMessage);
+            std::wstringstream infoMessage;
+            infoMessage << L"TskImgDBSqlite::addUnusedSector - Error insert into files table: " << sqlite3_errmsg(m_db);
+            LOGERROR(infoMessage.str());
             rc = -1;
             break;
         }
@@ -3153,11 +3191,11 @@ int TskImgDBSqlite::getUnusedSector(uint64_t fileId, TskUnusedSectorsRecord & un
  * Add the given blackboard attribute to the database
  * @param attr input attribute. should be fully populated
  */
-void TskImgDBSqlite::addBlackboardAttribute(TskBlackboardAttribute attr){
+void TskImgDBSqlite::addBlackboardAttribute(TskBlackboardAttribute attr)
+{
     if (!m_db)
         throw TskException("No database.");
 
-    artifact_t artifactId = 0;
     std::stringstream str;
     char *item;
     sqlite3_stmt * statement;
@@ -3455,11 +3493,11 @@ string TskImgDBSqlite::getAttributeTypeName(int attributeTypeID){
  * @param condition The SQL select where clause that should be used in the query.
  * @returns vector of matching artifacts
  */
-vector<TskBlackboardArtifact> TskImgDBSqlite::getMatchingArtifacts(string condition){
+vector<TskBlackboardArtifact> TskImgDBSqlite::getMatchingArtifacts(string condition)
+{
     if (!m_db)
         throw TskException("No database.");
     
-    int result = 0;
     vector<TskBlackboardArtifact> artifacts;
     std::string stmt("SELECT blackboard_artifacts.artifact_id, blackboard_artifacts.obj_id, blackboard_artifacts.artifact_type_id FROM blackboard_artifacts");
 
@@ -3490,11 +3528,11 @@ vector<TskBlackboardArtifact> TskImgDBSqlite::getMatchingArtifacts(string condit
  * @param condition where clause to use for matching
  * @returns vector of matching attributes
  */
-vector<TskBlackboardAttribute> TskImgDBSqlite::getMatchingAttributes(string condition){
+vector<TskBlackboardAttribute> TskImgDBSqlite::getMatchingAttributes(string condition)
+{
     if (!m_db)
         throw TskException("No database.");
     
-    int result = 0;
     vector<TskBlackboardAttribute> attributes;
     std::string stmt("SELECT blackboard_attributes.artifact_id, blackboard_attributes.source, blackboard_attributes.context, blackboard_attributes.attribute_type_id, blackboard_attributes.value_type, blackboard_attributes.value_byte, blackboard_attributes.value_text, blackboard_attributes.value_int32, blackboard_attributes.value_int64, blackboard_attributes.value_double, blackboard_attributes.obj_id FROM blackboard_attributes ");
 
@@ -3518,8 +3556,7 @@ vector<TskBlackboardAttribute> TskImgDBSqlite::getMatchingAttributes(string cond
                 sqlite3_column_int64(statement, 8), sqlite3_column_double(statement, 9), std::string((char *)sqlite3_column_text(statement, 6)), bytes));
         }
         sqlite3_finalize(statement);
-    } else 
-    {
+    } else {
         std::wstringstream msg;
         msg << L"TskImgDBSqlite::getMatchingAttributes - Error getting attributes: " << sqlite3_errmsg(m_db);
         LOGERROR(msg.str());
@@ -3534,7 +3571,8 @@ vector<TskBlackboardAttribute> TskImgDBSqlite::getMatchingAttributes(string cond
  * @param file_id associated file id
  * @returns the new artifact
  */
-TskBlackboardArtifact TskImgDBSqlite::createBlackboardArtifact(uint64_t file_id, int artifactTypeID){
+TskBlackboardArtifact TskImgDBSqlite::createBlackboardArtifact(uint64_t file_id, int artifactTypeID)
+{
     if (!m_db)
         throw TskException("No database.");
 
@@ -3545,7 +3583,7 @@ TskBlackboardArtifact TskImgDBSqlite::createBlackboardArtifact(uint64_t file_id,
     str << "INSERT INTO blackboard_artifacts (artifact_id, obj_id, artifact_type_id) VALUES (NULL, " << file_id << ", " << artifactTypeID << ")";
 
     if (sqlite3_prepare_v2(m_db, str.str().c_str(), -1, &statement, 0) == SQLITE_OK) {
-        if(!(sqlite3_step(statement) == SQLITE_DONE)){
+        if (!(sqlite3_step(statement) == SQLITE_DONE)) {
             sqlite3_finalize(statement);
             throw TskException("TskImgDBSqlite::addBlackboardInfo - Insert failed");
         }
@@ -3580,7 +3618,8 @@ TskBlackboardArtifact TskImgDBSqlite::createBlackboardArtifact(uint64_t file_id,
  * @param displayName display name
  * @param typeID type id
  */
-void TskImgDBSqlite::addArtifactType(int typeID, string artifactTypeName, string displayName){
+void TskImgDBSqlite::addArtifactType(int typeID, string artifactTypeName, string displayName)
+{
     if (!m_db)
         throw TskException("No database.");
 
@@ -3590,12 +3629,12 @@ void TskImgDBSqlite::addArtifactType(int typeID, string artifactTypeName, string
     str << "SELECT * FROM blackboard_artifact_types WHERE type_name = '" << artifactTypeName << "'";
 
     if (sqlite3_prepare_v2(m_db, str.str().c_str(), -1, &statement, 0) == SQLITE_OK) {
-        if(!(sqlite3_step(statement) == SQLITE_ROW)){
+        if (!(sqlite3_step(statement) == SQLITE_ROW)) {
             sqlite3_finalize(statement);
             str.str("");
             str << "INSERT INTO blackboard_artifact_types (artifact_type_id, type_name, display_name) VALUES (" << typeID << " , '" << artifactTypeName << "', '" << displayName << "')";
             if (sqlite3_prepare_v2(m_db, str.str().c_str(), -1, &statement, 0) == SQLITE_OK) {
-                if(!(sqlite3_step(statement) == SQLITE_DONE)){
+                if (!(sqlite3_step(statement) == SQLITE_DONE)) {
                     sqlite3_finalize(statement);
                     std::wstringstream infoMessage;
                     infoMessage << L"TskImgDBSqlite::addArtifactType - Error adding data to blackboard table: " << sqlite3_errmsg(m_db);
@@ -3623,7 +3662,8 @@ void TskImgDBSqlite::addArtifactType(int typeID, string artifactTypeName, string
  * @param displayName display name
  * @param typeID type id
  */
-void TskImgDBSqlite::addAttributeType(int typeID, string attributeTypeName, string displayName){
+void TskImgDBSqlite::addAttributeType(int typeID, string attributeTypeName, string displayName)
+{
     if (!m_db)
         throw TskException("No database.");
 
@@ -3633,22 +3673,20 @@ void TskImgDBSqlite::addAttributeType(int typeID, string attributeTypeName, stri
     str << "SELECT * FROM blackboard_attribute_types WHERE type_name = '" << attributeTypeName << "'";
 
     if (sqlite3_prepare_v2(m_db, str.str().c_str(), -1, &statement, 0) == SQLITE_OK) {
-        if(!(sqlite3_step(statement) == SQLITE_ROW)){
+        if (!(sqlite3_step(statement) == SQLITE_ROW)) {
             sqlite3_finalize(statement);
             str.str("");
             str << "INSERT INTO blackboard_attribute_types (attribute_type_id, type_name, display_name) VALUES (" << typeID << " , '" << attributeTypeName << "', '" << displayName << "')";
             if (sqlite3_prepare_v2(m_db, str.str().c_str(), -1, &statement, 0) == SQLITE_OK) {
-                if(!(sqlite3_step(statement) == SQLITE_DONE)){
+                if (!(sqlite3_step(statement) == SQLITE_DONE)) {
                     sqlite3_finalize(statement);
-                    wchar_t infoMessage[MAX_BUFF_LENGTH];
-                    _snwprintf_s(infoMessage, MAX_BUFF_LENGTH, L"TskImgDBSqlite::addAttributeType - Error adding data to blackboard table: %S", sqlite3_errmsg(m_db));
-                    LOGERROR(infoMessage);
+                    std::wstringstream infoMessage;
+                    infoMessage << L"TskImgDBSqlite::addAttributeType - Error adding data to blackboard table: " << sqlite3_errmsg(m_db);
+                    LOGERROR(infoMessage.str());
                     throw TskException("TskImgDBSqlite::addAttributeType - Attribute type insert failed");
                 }
             }
-
-        }
-        else{
+        } else {
             sqlite3_finalize(statement);
             throw TskException("TskImgDBSqlite::addAttributeType - Attribute type with that name already exists");
         }
@@ -3667,11 +3705,11 @@ void TskImgDBSqlite::addAttributeType(int typeID, string attributeTypeName, stri
  * @param artifactTypeName type name
  * @param file_id file id
  */
-vector<TskBlackboardArtifact> TskImgDBSqlite::getArtifactsHelper(uint64_t file_id, int artifactTypeID, string artifactTypeName){
+vector<TskBlackboardArtifact> TskImgDBSqlite::getArtifactsHelper(uint64_t file_id, int artifactTypeID, string artifactTypeName)
+{
     if (!m_db)
         throw TskException("No database.");
     
-    int result = 0;
     vector<TskBlackboardArtifact> artifacts;
     std::stringstream stmt;
     stmt << "SELECT artifact_id, obj_id, artifact_type_id FROM blackboard_artifacts WHERE obj_id = " << file_id << " AND artifact_type_id = " << artifactTypeID;
@@ -3686,8 +3724,7 @@ vector<TskBlackboardArtifact> TskImgDBSqlite::getArtifactsHelper(uint64_t file_i
             artifacts.push_back(TskImgDB::createArtifact(sqlite3_column_int64(statement, 0), file_id, artifactTypeID));
         }
         sqlite3_finalize(statement);
-    } else 
-    {
+    } else {
         std::wstringstream msg;
         msg << L"TskImgDBSqlite::getArtifactsHelper - Error getting artifacts: " << sqlite3_errmsg(m_db);
         LOGERROR(msg.str());
@@ -3696,11 +3733,11 @@ vector<TskBlackboardArtifact> TskImgDBSqlite::getArtifactsHelper(uint64_t file_i
     return artifacts;
 }
 
-vector<int> TskImgDBSqlite::findAttributeTypes(int artifactTypeId){
-    if(!m_db){
+vector<int> TskImgDBSqlite::findAttributeTypes(int artifactTypeId)
+{
+    if (!m_db) {
         throw TskException("No database.");
     }
-    int result = 0;
     vector<int> attrTypes;
     std::stringstream stmt;
     stmt << "SELECT DISTINCT(attribute_type_id) FROM blackboard_attributes JOIN blackboard_artifacts ON blackboard_attributes.artifact_id = blackboard_artifacts.artifact_id WHERE artifact_type_id = " << artifactTypeId;
@@ -3715,8 +3752,7 @@ vector<int> TskImgDBSqlite::findAttributeTypes(int artifactTypeId){
             attrTypes.push_back(artifactTypeID);
         }
         sqlite3_finalize(statement);
-    } else 
-    {
+    } else {
         std::wstringstream msg;
         msg << L"TskImgDBSqlite::findAttributeTypes - Error finding attribute types: " << sqlite3_errmsg(m_db);
         LOGERROR(msg.str());
@@ -3728,9 +3764,9 @@ vector<int> TskImgDBSqlite::findAttributeTypes(int artifactTypeId){
 std::string TskImgDBSqlite::quote(const std::string str) const
 {
     char *item = sqlite3_mprintf("%Q", str.c_str());
-	std::string returnStr(item);
+    std::string returnStr(item);
     sqlite3_free(item);
-	return returnStr;
+    return returnStr;
 }
 
 void TskImgDBSqlite::executeStatement(const std::string &stmtToExecute, sqlite3_stmt *&statement, const std::string &caller) const
@@ -3743,3 +3779,5 @@ void TskImgDBSqlite::executeStatement(const std::string &stmtToExecute, sqlite3_
         throw TskException(msg.str());
     }
 }
+
+
diff --git a/framework/Services/TskImgDBSqlite.h b/framework/tsk/framework/services/TskImgDBSqlite.h
similarity index 87%
rename from framework/Services/TskImgDBSqlite.h
rename to framework/tsk/framework/services/TskImgDBSqlite.h
index a0d7acf438b8ca9e3838cbfceca2f5b1d9155ef8..b2c885457c5ac9f1d853570bd8ae562035bff21e 100755
--- a/framework/Services/TskImgDBSqlite.h
+++ b/framework/tsk/framework/services/TskImgDBSqlite.h
@@ -19,15 +19,15 @@
 using namespace std;
 
 // Framework includes
-#include "framework_i.h"
+#include "tsk/framework/framework_i.h"
 #include "TskImgDB.h"
-#include "Utilities/SectorRuns.h"
-#include "Utilities/UnallocRun.h"
+#include "tsk/framework/utilities/SectorRuns.h"
+#include "tsk/framework/utilities/UnallocRun.h"
 #include "TskBlackboardArtifact.h"
 #include "TskBlackboardAttribute.h"
 
-#include "tsk3/libtsk.h"
-#include "tsk3/auto/sqlite3.h"
+#include "tsk/libtsk.h"
+#include "tsk/auto/sqlite3.h"
 
 /** 
  * Implementation of TskImgDB that uses SQLite to store the data.
@@ -37,7 +37,7 @@ using namespace std;
 class TSK_FRAMEWORK_API TskImgDBSqlite : public TskImgDB
 {
 public:
-    TskImgDBSqlite(const wchar_t * a_outpath);
+    TskImgDBSqlite(const char * a_outpath);
     virtual ~ TskImgDBSqlite();
 
     virtual int initialize();
@@ -54,7 +54,8 @@ class TSK_FRAMEWORK_API TskImgDBSqlite : public TskImgDB
     virtual int addVolumeInfo(const TSK_VS_PART_INFO * vs_part);
     virtual int addFsInfo(int volId, int fsId, const TSK_FS_INFO * fs_info);
     virtual int addFsFileInfo(int fsId, const TSK_FS_FILE *fs_file, const char *name, int type, int idx, uint64_t & fileId, const char * path);
-    virtual int addCarvedFileInfo(int vol_id, wchar_t * name, uint64_t size, uint64_t *runStarts, uint64_t *runLengths, int numRuns, uint64_t & fileId);
+
+    virtual int addCarvedFileInfo(int vol_id, const char * name, uint64_t size, uint64_t *runStarts, uint64_t *runLengths, int numRuns, uint64_t & fileId);
     virtual int addDerivedFileInfo(const std::string& name, const uint64_t parentId,
                                         const bool isDirectory, const uint64_t size, const std::string& details,
                                         const int ctime, const int crtime, const int atime, const int mtime, uint64_t & fileId, std::string path);
@@ -68,7 +69,8 @@ class TSK_FRAMEWORK_API TskImgDBSqlite : public TskImgDB
     virtual int getFileRecord(const uint64_t fileId, TskFileRecord& fileRecord) const;
     virtual SectorRuns * getFileSectors(uint64_t fileId) const;
     virtual std::string getImageBaseName() const;
-    virtual std::vector<std::wstring> getImageNames() const;
+    virtual std::vector<std::wstring> getImageNamesW() const;
+    virtual std::vector<std::string> getImageNames() const;
     virtual int getFileUniqueIdentifiers(uint64_t a_fileId, uint64_t &a_fsOffset, uint64_t &a_fsFileId, int &a_attrType, int &a_attrId) const;
     virtual int getNumVolumes() const;
     virtual int getNumFiles() const;
@@ -87,11 +89,11 @@ class TSK_FRAMEWORK_API TskImgDBSqlite : public TskImgDB
 	virtual bool dbExist() const;
 
     // Get set of file ids that match the given condition (i.e. SQL where clause)
-    virtual std::vector<uint64_t> getFileIds(std::string& condition) const;
-    virtual std::vector<const TskFileRecord> getFileRecords(std::string& condition) const;
+    virtual std::vector<uint64_t> getFileIds(const std::string& condition) const;
+    virtual const std::vector<TskFileRecord> getFileRecords(const std::string& condition) const;
 
     // Get the number of files that match the given condition
-    virtual int getFileCount(std::string& condition) const;
+    virtual int getFileCount(const std::string& condition) const;
 
     virtual std::map<uint64_t, std::string> getUniqueCarvedFiles(HASH_TYPE hashType) const;
     virtual std::vector<TskCarvedFileInfo> getUniqueCarvedFilesInfo(HASH_TYPE hashType) const;
@@ -140,18 +142,17 @@ class TSK_FRAMEWORK_API TskImgDBSqlite : public TskImgDB
     virtual vector<TskBlackboardAttribute> getMatchingAttributes(string condition);
     virtual vector<int> findAttributeTypes(int artifactTypeId);
 private:
-    wchar_t m_outPath[256];
-    wchar_t m_progPath[256];
-    wchar_t m_dbFilePath[256];
+    char m_outPath[256];
+    char m_dbFilePath[256];
     sqlite3 * m_db;
 
     int dropTables();
 
     static int busyHandler(void *, int);
     std::vector<uint64_t> getFileIdsWorker(std::string tableName, const std::string condition = "") const;
-    void constructStmt(std::string& stmt, std::string& condition) const;
+    void constructStmt(std::string& stmt, std::string condition) const;
     int addUnusedSector(uint64_t sectStart, uint64_t sectEnd, int volId, std::vector<TskUnusedSectorsRecord> & unusedSectorsList);
-    int getFileTypeRecords(std::string& stmt, std::list<TskFileTypeRecord>& fileTypeInfoList) const;
+    int getFileTypeRecords(const std::string& stmt, std::list<TskFileTypeRecord>& fileTypeInfoList) const;
     virtual vector<TskBlackboardArtifact> getArtifactsHelper(uint64_t file_id, int artifactTypeID, string artifactTypeName);
     void getCarvedFileInfo(const std::string& stmt, std::map<uint64_t, std::string>& results) const;
     
diff --git a/framework/Services/TskSchedulerQueue.cpp b/framework/tsk/framework/services/TskSchedulerQueue.cpp
similarity index 100%
rename from framework/Services/TskSchedulerQueue.cpp
rename to framework/tsk/framework/services/TskSchedulerQueue.cpp
diff --git a/framework/Services/TskSchedulerQueue.h b/framework/tsk/framework/services/TskSchedulerQueue.h
similarity index 100%
rename from framework/Services/TskSchedulerQueue.h
rename to framework/tsk/framework/services/TskSchedulerQueue.h
diff --git a/framework/Services/TskServices.cpp b/framework/tsk/framework/services/TskServices.cpp
similarity index 94%
rename from framework/Services/TskServices.cpp
rename to framework/tsk/framework/services/TskServices.cpp
index b82d6a800c54f6d9b38537740b42072db1616012..fb997cfea33c654402de8fa5322c4e2af0ffdfdb 100755
--- a/framework/Services/TskServices.cpp
+++ b/framework/tsk/framework/services/TskServices.cpp
@@ -11,8 +11,8 @@
 #include <string>
 
 #include "TskServices.h"
-#include "Utilities/TskException.h"
-#include "Services/TskSystemPropertiesImpl.h"
+#include "tsk/framework/utilities/TskException.h"
+#include "tsk/framework/services/TskSystemPropertiesImpl.h"
 
 TskServices *TskServices::m_pInstance = NULL;
 
diff --git a/framework/Services/TskServices.h b/framework/tsk/framework/services/TskServices.h
similarity index 93%
rename from framework/Services/TskServices.h
rename to framework/tsk/framework/services/TskServices.h
index ce9f64d4ae3f06cacd8560a1817dc8e66d5c051b..00ec69e9b8f7772507b0e57f369ea9e68ead61b9 100755
--- a/framework/Services/TskServices.h
+++ b/framework/tsk/framework/services/TskServices.h
@@ -14,10 +14,10 @@
 #include "Log.h"
 #include "Scheduler.h"
 #include "TskImgDB.h"
-#include "Extraction/TskImageFile.h"
-#include "Services/TskBlackboard.h"
-#include "Services/TskSystemProperties.h"
-#include "File/TskFileManager.h"
+#include "tsk/framework/extraction/TskImageFile.h"
+#include "tsk/framework/services/TskBlackboard.h"
+#include "tsk/framework/services/TskSystemProperties.h"
+#include "tsk/framework/file/TskFileManager.h"
 
 /**
  * Provides singleton access to many framework services.  This is used
diff --git a/framework/Services/TskSystemProperties.cpp b/framework/tsk/framework/services/TskSystemProperties.cpp
similarity index 92%
rename from framework/Services/TskSystemProperties.cpp
rename to framework/tsk/framework/services/TskSystemProperties.cpp
index b5a31f6a4f268c2596bb09933d2915db5746d3ab..1804eaa1c6e8fc24d959e116f24a2d4b23abbda1 100644
--- a/framework/Services/TskSystemProperties.cpp
+++ b/framework/tsk/framework/services/TskSystemProperties.cpp
@@ -17,10 +17,10 @@
 #include "TskSystemProperties.h"
 
 // TSK Framework includes
-#include "Services/TskServices.h" // @@@ TODO: Resolve need to include TskServices.h before Log.h (macros in Log.h cause circular references)
-#include "Services/Log.h"
-#include "Utilities/TskUtilities.h"
-#include "Utilities/TskException.h"
+#include "tsk/framework/services/TskServices.h" // @@@ TODO: Resolve need to include TskServices.h before Log.h (macros in Log.h cause circular references)
+#include "tsk/framework/services/Log.h"
+#include "tsk/framework/utilities/TskUtilities.h"
+#include "tsk/framework/utilities/TskException.h"
 
 // Poco includes
 #include "Poco/Path.h"
@@ -63,6 +63,7 @@ namespace
         PredefProp(TskSystemProperties::PROG_DIR, "PROG_DIR", false, ""),
         PredefProp(TskSystemProperties::CONFIG_DIR, "CONFIG_DIR", false, DEFAULT_CONFIG_DIR),
         PredefProp(TskSystemProperties::MODULE_DIR, "MODULE_DIR", false, DEFAULT_MODULE_DIR),
+        PredefProp(TskSystemProperties::MODULE_CONFIG_DIR, "MODULE_CONFIG_DIR", false, DEFAULT_MODULE_DIR),    // default == MODULE_DIR
         PredefProp(TskSystemProperties::OUT_DIR, "OUT_DIR", true, ""),
         PredefProp(TskSystemProperties::SYSTEM_OUT_DIR, "SYSTEM_OUT_DIR", false, DEFAULT_SYSTEM_OUT_DIR),
         PredefProp(TskSystemProperties::MODULE_OUT_DIR, "MODULE_OUT_DIR", false, DEFAULT_MODULE_OUT_DIR),
@@ -201,11 +202,10 @@ std::string TskSystemProperties::get(PredefinedProperty prop) const
         else if (prop == IMAGE_FILE)
         {
             // If IMAGE_FILE has not been set, attempt to retrieve it from the image database.
-            std::vector<std::wstring> imgNames = TskServices::Instance().getImgDB().getImageNames();
+            const std::vector<std::string> imgNames = TskServices::Instance().getImgDB().getImageNames();
             if (!imgNames.empty())
             {
-                value = TskUtilities::toUTF8(imgNames[0]);
-                const_cast<TskSystemProperties*>(this)->set(prop, value);
+                const_cast<TskSystemProperties*>(this)->set(prop, imgNames[0]);
             }
         }
         else
diff --git a/framework/Services/TskSystemProperties.h b/framework/tsk/framework/services/TskSystemProperties.h
similarity index 94%
rename from framework/Services/TskSystemProperties.h
rename to framework/tsk/framework/services/TskSystemProperties.h
index 8b870b5d370d619ece6b39ff44d4a7d9013441d7..24b50e42d8845cbe4993d6437b8bf506ffc34222 100755
--- a/framework/Services/TskSystemProperties.h
+++ b/framework/tsk/framework/services/TskSystemProperties.h
@@ -17,7 +17,7 @@
 #define _TSK_SYSTEMPROPERTIES_H
 
 // TSK Framework includes
-#include "framework_i.h"
+#include "tsk/framework/framework_i.h"
 
 // C/C++ library includes
 #include <string>
@@ -72,6 +72,13 @@ class TSK_FRAMEWORK_API TskSystemProperties
           */
         MODULE_DIR,
 
+        /** 
+          * Directory where plug-in modules can find their configuration files,
+          * if any.
+          * Defaults to MODULE_DIR.
+          */
+        MODULE_CONFIG_DIR,
+
         /** 
          * Root output directory. It should be a shared location if the TSK
          * Framework is being used in a distributed environment. It is a 
@@ -120,8 +127,8 @@ class TSK_FRAMEWORK_API TskSystemProperties
         UNALLOC_SECTORS_IMG_FILE_NAME,
 
         /**
-         * Maximum allowable size for unallocated sectors image files. Can be 
-         * Set to zero to have no maximum size and instead break files on 
+         * Maximum allowable size (in bytes) for unallocated sectors image files. Can be 
+         * set to zero to have no maximum size and instead break files on 
          * volume boundaries only. Defaults to zero.
          */
         MAX_UNALLOC_SECTORS_IMG_FILE_SIZE,
diff --git a/framework/Services/TskSystemPropertiesImpl.cpp b/framework/tsk/framework/services/TskSystemPropertiesImpl.cpp
similarity index 87%
rename from framework/Services/TskSystemPropertiesImpl.cpp
rename to framework/tsk/framework/services/TskSystemPropertiesImpl.cpp
index 7a1863f8cde02fdb83187a0164ebab578b0138c8..11c6ae1dc1d46b7c0a1dc25288a096fa8cd9c25c 100755
--- a/framework/Services/TskSystemPropertiesImpl.cpp
+++ b/framework/tsk/framework/services/TskSystemPropertiesImpl.cpp
@@ -17,10 +17,10 @@
 // Include the class definition first to ensure it does not depend on subsequent includes in this file.
 #include "TskSystemPropertiesImpl.h"
 
-#include "Services/Log.h"
-#include "Services/TskServices.h"
-#include "Utilities/TskUtilities.h"
-#include "Utilities/TskException.h"
+#include "tsk/framework/services/Log.h"
+#include "tsk/framework/services/TskServices.h"
+#include "tsk/framework/utilities/TskUtilities.h"
+#include "tsk/framework/utilities/TskException.h"
 #include "Poco/Util/XMLConfiguration.h"
 #include "Poco/Util/MapConfiguration.h"
 #include <sstream>
diff --git a/framework/Services/TskSystemPropertiesImpl.h b/framework/tsk/framework/services/TskSystemPropertiesImpl.h
similarity index 95%
rename from framework/Services/TskSystemPropertiesImpl.h
rename to framework/tsk/framework/services/TskSystemPropertiesImpl.h
index 0bc7fd5f6d0ade8007777ec14dbbaa24abd2f199..da6b09fd746d5481e78ddb57cef23345f925ce72 100755
--- a/framework/Services/TskSystemPropertiesImpl.h
+++ b/framework/tsk/framework/services/TskSystemPropertiesImpl.h
@@ -16,7 +16,7 @@
 #ifndef _TSK_SYSTEMPROPERTIESIMPL_H
 #define _TSK_SYSTEMPROPERTIESIMPL_H
 
-#include "framework_i.h"
+#include "tsk/framework/framework_i.h"
 #include "TskSystemProperties.h"
 #include "Poco/Util/AbstractConfiguration.h"
 #include <string>
diff --git a/framework/Utilities/Makefile.am b/framework/tsk/framework/utilities/Makefile.am
similarity index 84%
rename from framework/Utilities/Makefile.am
rename to framework/tsk/framework/utilities/Makefile.am
index 5b744bca7d1869abd944fabf0ac462c371ce6e5b..bb9d644e8b7e856505773a34677098917273c147 100644
--- a/framework/Utilities/Makefile.am
+++ b/framework/tsk/framework/utilities/Makefile.am
@@ -1,4 +1,4 @@
-AM_CXXFLAGS = -I.. -I../.. -Wall
+AM_CXXFLAGS = -I.. -I../.. -I../../../.. -Wall
 
 noinst_LTLIBRARIES = libfwutil.la
 libfwutil_la_SOURCES = SectorRuns.cpp SectorRuns.h \
diff --git a/framework/Utilities/SectorRuns.cpp b/framework/tsk/framework/utilities/SectorRuns.cpp
similarity index 92%
rename from framework/Utilities/SectorRuns.cpp
rename to framework/tsk/framework/utilities/SectorRuns.cpp
index d722b4ac05f3da989eb9d4e0486966ccfb8ac40b..5dc498bebff3b9327c50cb0dbae153f479c23d74 100755
--- a/framework/Utilities/SectorRuns.cpp
+++ b/framework/tsk/framework/utilities/SectorRuns.cpp
@@ -9,16 +9,16 @@
  */
 
 #include "SectorRuns.h"
-#include "Services/TskServices.h"
+#include "tsk/framework/services/TskServices.h"
 
 /* This class is used to store a list of sector runs.  It is 
  * used to identify which runs contain unallocated data.
  */
 SectorRuns::SectorRuns() :
-        m_numRunsUsed(0),
-        m_numRunsAlloc(0),
-        m_curRun(0),
-        m_runs(NULL)
+    m_runs(NULL),
+    m_numRunsUsed(0),
+    m_numRunsAlloc(0),
+    m_curRun(0)
 {
     // @@@
     // Constructor should query the DB
diff --git a/framework/Utilities/SectorRuns.h b/framework/tsk/framework/utilities/SectorRuns.h
similarity index 93%
rename from framework/Utilities/SectorRuns.h
rename to framework/tsk/framework/utilities/SectorRuns.h
index a194cf840468d533a7baf6ade60bdf588ed82918..20ffeeb8f944736c8340bc1cc80081ac6bd01fd4 100755
--- a/framework/Utilities/SectorRuns.h
+++ b/framework/tsk/framework/utilities/SectorRuns.h
@@ -11,7 +11,7 @@
 #ifndef _OSS_SECTORRUNS_H
 #define _OSS_SECTORRUNS_H
 
-#include "framework_i.h"
+#include "tsk/framework/framework_i.h"
 
 /**
  * Stores a list of runs (which have a starting sector and length).
diff --git a/framework/Utilities/TskException.cpp b/framework/tsk/framework/utilities/TskException.cpp
similarity index 100%
rename from framework/Utilities/TskException.cpp
rename to framework/tsk/framework/utilities/TskException.cpp
diff --git a/framework/Utilities/TskException.h b/framework/tsk/framework/utilities/TskException.h
similarity index 95%
rename from framework/Utilities/TskException.h
rename to framework/tsk/framework/utilities/TskException.h
index 3090d060acce908fa6e0c4d9e034ece973f70da5..8fea8f9826bed716a05edaac6859f3d263230efb 100755
--- a/framework/Utilities/TskException.h
+++ b/framework/tsk/framework/utilities/TskException.h
@@ -19,7 +19,7 @@
 
 #include <stdexcept>
 
-#include "framework_i.h"
+#include "tsk/framework/framework_i.h"
 
 /**
  * Framework exception class
diff --git a/framework/TskModuleDev.h b/framework/tsk/framework/utilities/TskModuleDev.h
similarity index 79%
rename from framework/TskModuleDev.h
rename to framework/tsk/framework/utilities/TskModuleDev.h
index b91bda588aabb75694eda2f6b0077c06f1b2da45..bb4c4d58b27a71fd17021746693f286137e8c875 100644
--- a/framework/TskModuleDev.h
+++ b/framework/tsk/framework/utilities/TskModuleDev.h
@@ -15,17 +15,20 @@
  * Include this .h file when writing a dynamic link library
  */
 
-#include "TskVersionInfo.h"
-#include "Services/TskServices.h"
-#include "Utilities/TskUtilities.h"
-#include "Pipeline/TskModule.h"
+#include "tsk/framework/TskVersionInfo.h"
+#include "tsk/framework/services/TskServices.h"
+#include "tsk/framework/utilities/TskUtilities.h"
+#include "tsk/framework/pipeline/TskModule.h"
 
-#if defined(_WIN32) && !defined(TSK_MODULE_IMPORT)
+#if defined(_WIN32)
+#if !defined(TSK_MODULE_IMPORT)
     #define TSK_MODULE_EXPORT __declspec(dllexport)
-
 #else
     #define TSK_MODULE_EXPORT __declspec(dllimport)
 #endif
+#else
+    #define TSK_MODULE_EXPORT
+#endif
 
 #ifdef __cplusplus
 extern "C"
diff --git a/framework/Utilities/TskUtilities.cpp b/framework/tsk/framework/utilities/TskUtilities.cpp
similarity index 54%
rename from framework/Utilities/TskUtilities.cpp
rename to framework/tsk/framework/utilities/TskUtilities.cpp
index 284b81b24e787f6f4085c36d7276883dd9bc7807..4083bca6e026fad2e831b22ac87e093be100a4a4 100755
--- a/framework/Utilities/TskUtilities.cpp
+++ b/framework/tsk/framework/utilities/TskUtilities.cpp
@@ -16,22 +16,25 @@
 
 // TSK and TSK Framework includes
 #include "TskUtilities.h"
-#include "Services/TskServices.h"
-#include <tsk3/base/tsk_base_i.h>
+#include "tsk/framework/services/TskServices.h"
+#include "tsk/base/tsk_base_i.h"
 
 // Poco Includes
 #include "Poco/UnicodeConverter.h"
 #include "Poco/Net/DNS.h"
 #include "Poco/Net/HostEntry.h"
 #include "Poco/Net/NetException.h"
+#include "Poco/Path.h"
 
 // C/C++ library includes
 #include <sstream>
 
 #if defined _WIN32 || defined _WIN64
 #include <Windows.h>
-#else
-#error "Only Windows is currently supported"
+#endif
+
+#ifdef __APPLE__
+#include <mach-o/dyld.h>
 #endif
 
 /**
@@ -42,7 +45,27 @@
 std::string TskUtilities::toUTF8(const std::wstring &utf16Str)
 {
     std::string utf8Str;
-    Poco::UnicodeConverter::toUTF8(utf16Str, utf8Str);
+    char *utf8Buf;
+    int utf8Size = utf16Str.size() * 5 + 1;
+    utf8Buf = new char[utf8Size];
+    UTF8 *ptr8;
+    wchar_t *ptr16;
+
+    ptr8 = (UTF8 *) utf8Buf;
+    ptr16 = (wchar_t *) utf16Str.c_str();
+
+    TSKConversionResult retval =
+        tsk_UTF16WtoUTF8_lclorder((const wchar_t **)&ptr16, 
+                                  (wchar_t *)&ptr16[utf16Str.size()+1],
+                                  &ptr8,
+                                  (UTF8 *) ((uintptr_t) ptr8 + utf8Size * sizeof(UTF8)), 
+                                  TSKstrictConversion);
+    if (retval != TSKconversionOK) 
+    {
+        return "";
+    }
+    utf8Str.assign(utf8Buf);
+    delete [] utf8Buf;
     return utf8Str;
 }
 
@@ -54,7 +77,27 @@ std::string TskUtilities::toUTF8(const std::wstring &utf16Str)
 std::wstring TskUtilities::toUTF16(const std::string &utf8Str)
 {
     std::wstring utf16Str;
-    Poco::UnicodeConverter::toUTF16(utf8Str, utf16Str);
+    wchar_t *utf16Buf;
+    int utf16Size = utf8Str.size() + 1;
+    utf16Buf = new wchar_t[utf16Size];
+    UTF8 *ptr8;
+    wchar_t *ptr16;
+
+    ptr16 = (wchar_t *) utf16Buf;
+    ptr8 = (UTF8 *) utf8Str.data();
+
+    TSKConversionResult retval =
+        tsk_UTF8toUTF16W((const UTF8 **) &ptr8, 
+                        (UTF8 *) & utf8Str.data()[utf8Str.size()], 
+                        &ptr16,
+                        (wchar_t *) ((uintptr_t) ptr16 + utf16Size * sizeof(wchar_t)), 
+                        TSKstrictConversion);
+    if (retval != TSKconversionOK) 
+    {
+        return L"";
+    }
+    utf16Str.assign(utf16Buf, ptr16 - utf16Buf);
+    delete [] utf16Buf;
     return utf16Str;
 }
 
@@ -102,23 +145,58 @@ bool TskUtilities::getHostIP(const std::string& host, std::string & host_ip)
  */
 std::string TskUtilities::getProgDir()
 {
+#ifdef TSK_WIN32
     wchar_t progPath[256];
     wchar_t fullPath[256];
     HINSTANCE hInstance = GetModuleHandleW(NULL);
 
     GetModuleFileNameW(hInstance, fullPath, 256);
-    for (int i = wcslen(fullPath)-1; i > 0; i--) {
+    int i = wcslen(fullPath)-1;
+    for (; i > 0; i--) {
         if (i > 256)
             break;
 
         if (fullPath[i] == '\\') {
             wcsncpy_s(progPath, fullPath, i+1);
-            progPath[i+1] = '\0';
             break;
         }
     }
 
-    return TskUtilities::toUTF8(std::wstring(progPath));
+    std::wstring progPathNoNull(progPath, i+1);
+    return TskUtilities::toUTF8(progPathNoNull);
+
+#elif __APPLE__
+    char path[MAXPATHLEN+1];
+    uint32_t path_len = MAXPATHLEN;
+    if (_NSGetExecutablePath(path, &path_len) == 0) {
+        Poco::Path p(path);
+        return p.makeParent().toString();
+    }
+    return std::string("");
+#else // NOT TSK_WIN32
+    int size = 256;
+    char* buf = 0;
+    int ret = 0;
+ 
+    while (1) {
+        buf = (char*)realloc(buf, size*sizeof(char));
+        if (!buf)
+            return std::string("");
+        ret = readlink("/proc/self/exe", buf, size);
+        if (ret < 0) {
+            free(buf);
+            return std::string("");
+        }
+        if (ret < size) {
+            std::string s(buf, ret);
+            free(buf);
+            Poco::Path path(s);
+            return path.makeParent().toString();
+        }
+        size *= 2;
+    }
+    return std::string("");
+#endif // NOT TSK_WIN32
 }
 
 /** Strip matching leading and trailing double quotes from the input str.
diff --git a/framework/Utilities/TskUtilities.h b/framework/tsk/framework/utilities/TskUtilities.h
similarity index 92%
rename from framework/Utilities/TskUtilities.h
rename to framework/tsk/framework/utilities/TskUtilities.h
index 97d9654198badef3047010ec2fce28fde07c10e7..d0d7c43f4d302637b82edbdc40ac5375261870f1 100755
--- a/framework/Utilities/TskUtilities.h
+++ b/framework/tsk/framework/utilities/TskUtilities.h
@@ -19,7 +19,7 @@
 
 #include <string>
 
-#include "framework_i.h"
+#include "tsk/framework/framework_i.h"
 
 /**
  * Contains commonly needed utility methods.  Refer to the poco library
diff --git a/framework/Utilities/UnallocRun.cpp b/framework/tsk/framework/utilities/UnallocRun.cpp
similarity index 100%
rename from framework/Utilities/UnallocRun.cpp
rename to framework/tsk/framework/utilities/UnallocRun.cpp
diff --git a/framework/Utilities/UnallocRun.h b/framework/tsk/framework/utilities/UnallocRun.h
similarity index 92%
rename from framework/Utilities/UnallocRun.h
rename to framework/tsk/framework/utilities/UnallocRun.h
index bac77b357b69e567b92f7ef4152d804ed8ce04a9..95177a0080417f941d08fb8e521989a6749dce1a 100755
--- a/framework/Utilities/UnallocRun.h
+++ b/framework/tsk/framework/utilities/UnallocRun.h
@@ -11,7 +11,7 @@
 #ifndef _OSS_UNALLOCRUN_H
 #define _OSS_UNALLOCRUN_H
 
-#include "framework_i.h"
+#include "tsk/framework/framework_i.h"
 
 /**
  * Stores information that can map a region in the original disk image
diff --git a/framework/win32/framework/framework.vcxproj b/framework/win32/framework/framework.vcxproj
deleted file mode 100755
index 59e3d152e7ffb024c14ec71136cd173e055f4865..0000000000000000000000000000000000000000
--- a/framework/win32/framework/framework.vcxproj
+++ /dev/null
@@ -1,191 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectName>libtskframework</ProjectName>
-    <ProjectGuid>{F791B16A-1489-4526-9FFF-CB481CEC5414}</ProjectGuid>
-    <RootNamespace>framework</RootNamespace>
-    <Keyword>Win32Proj</Keyword>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup>
-    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(ProjectDir)\..\..;$(ProjectDir)\..\..\..;$(ProjectDir)\..\..\..\tsk3\img;$(POCO_HOME)\Foundation\include;$(POCO_HOME)\Util\include;$(POCO_HOME)\XML\include;$(POCO_HOME)\Net\include;$(LIBEWF_HOME)\common;$(LIBEWF_HOME)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;TSK_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <MinimalRebuild>true</MinimalRebuild>
-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
-    </ClCompile>
-    <Link>
-      <AdditionalDependencies>libewf.lib;libtsk.lib;ws2_32.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>$(POCO_HOME)\lib;$(ProjectDir)\..\..\..\win32\Debug;$(LIBEWF_HOME)\msvscpp\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <ImportLibrary>$(OutDir)$(ProjectName).lib</ImportLibrary>
-    </Link>
-    <PostBuildEvent>
-      <Command>xcopy "$(POCO_HOME)\bin\PocoFoundationd.dll" "$(OutDir)" /R /Y
-xcopy "$(POCO_HOME)\bin\PocoNetd.dll" "$(OutDir)" /R /Y
-xcopy "$(POCO_HOME)\bin\PocoUtild.dll" "$(OutDir)" /R /Y
-xcopy "$(POCO_HOME)\bin\PocoXMLd.dll" "$(OutDir)" /R /Y
-xcopy "$(LIBEWF_HOME)\msvscpp\Release\libewf.dll" "$(OutDir)" /R /Y
-xcopy "$(LIBEWF_HOME)\msvscpp\Release\zlib.dll" "$(OutDir)" /R /Y
-del "$(OutDir)framework_config.xml"
-xcopy "$(ProjectDir)..\..\SampleConfig\framework_config_win32dev.xml" "$(OutDir)" /R /Y
-ren "$(OutDir)framework_config_win32dev.xml" framework_config.xml
-</Command>
-    </PostBuildEvent>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <ClCompile>
-      <Optimization>MaxSpeed</Optimization>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <AdditionalIncludeDirectories>$(ProjectDir)\..\..;$(ProjectDir)\..\..\..;$(ProjectDir)\..\..\..\tsk3\img;$(POCO_HOME)\Foundation\include;$(POCO_HOME)\Util\include;$(POCO_HOME)\XML\include;$(POCO_HOME)\Net\include;$(LIBEWF_HOME)\common;$(LIBEWF_HOME)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;TSK_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-    </ClCompile>
-    <Link>
-      <AdditionalDependencies>libewf.lib;libtsk.lib;ws2_32.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>$(POCO_HOME)\lib;$(ProjectDir)\..\..\..\win32\Release;$(LIBEWF_HOME)\msvscpp\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <ImportLibrary>$(OutDir)$(ProjectName).lib</ImportLibrary>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-    </Link>
-    <PostBuildEvent>
-      <Command>xcopy "$(POCO_HOME)\bin\PocoFoundation.dll" "$(OutDir)" /R /Y
-xcopy "$(POCO_HOME)\bin\PocoNet.dll" "$(OutDir)" /R /Y
-xcopy "$(POCO_HOME)\bin\PocoUtil.dll" "$(OutDir)" /R /Y
-xcopy "$(POCO_HOME)\bin\PocoXML.dll" "$(OutDir)" /R /Y
-xcopy "$(LIBEWF_HOME)\msvscpp\Release\libewf.dll" "$(outDir)" /R /Y
-xcopy "$(LIBEWF_HOME)\msvscpp\Release\zlib.dll" "$(OutDir)" /R /Y
-del "$(OutDir)framework_config.xml"
-xcopy "$(ProjectDir)..\..\SampleConfig\framework_config_win32dev.xml" "$(outDir)" /R /Y
-ren "$(OutDir)framework_config_win32dev.xml" framework_config.xml
-</Command>
-    </PostBuildEvent>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\Extraction\TskExtract.cpp" />
-    <ClCompile Include="..\..\Extraction\TskL01Extract.cpp" />
-    <ClCompile Include="..\..\Services\Log.cpp" />
-    <ClCompile Include="..\..\Services\Scheduler.cpp" />
-    <ClCompile Include="..\..\Utilities\SectorRuns.cpp" />
-    <ClCompile Include="..\..\Extraction\TskAutoImpl.cpp" />
-    <ClCompile Include="..\..\Services\TskBlackboard.cpp" />
-    <ClCompile Include="..\..\Services\TskBlackboardArtifact.cpp" />
-    <ClCompile Include="..\..\Services\TskBlackboardAttribute.cpp" />
-    <ClCompile Include="..\..\Extraction\TskCarveExtractScalpel.cpp" />
-    <ClCompile Include="..\..\Extraction\TskCarvePrepSectorConcat.cpp" />
-    <ClCompile Include="..\..\Services\TskDBBlackboard.cpp" />
-    <ClCompile Include="..\..\Utilities\TskException.cpp" />
-    <ClCompile Include="..\..\Pipeline\TskExecutableModule.cpp" />
-    <ClCompile Include="..\..\File\TskFile.cpp" />
-    <ClCompile Include="..\..\Pipeline\TskFileAnalysisPipeline.cpp" />
-    <ClCompile Include="..\..\Pipeline\TskFileAnalysisPluginModule.cpp" />
-    <ClCompile Include="..\..\File\TskFileManagerImpl.cpp" />
-    <ClCompile Include="..\..\File\TskFileTsk.cpp" />
-    <ClCompile Include="..\..\Extraction\TskImageFile.cpp" />
-    <ClCompile Include="..\..\Extraction\TskImageFileTsk.cpp" />
-    <ClCompile Include="..\..\Services\TskImgDB.cpp" />
-    <ClCompile Include="..\..\Services\TskImgDBSqlite.cpp" />
-    <ClCompile Include="..\..\Pipeline\TskModule.cpp" />
-    <ClCompile Include="..\..\Pipeline\TskPipeline.cpp" />
-    <ClCompile Include="..\..\Pipeline\TskPipelineManager.cpp" />
-    <ClCompile Include="..\..\Pipeline\TskPluginModule.cpp" />
-    <ClCompile Include="..\..\Pipeline\TskReportPipeline.cpp" />
-    <ClCompile Include="..\..\Pipeline\TskReportPluginModule.cpp" />
-    <ClCompile Include="..\..\Services\TskSchedulerQueue.cpp" />
-    <ClCompile Include="..\..\Services\TskServices.cpp" />
-    <ClCompile Include="..\..\Services\TskSystemProperties.cpp" />
-    <ClCompile Include="..\..\Services\TskSystemPropertiesImpl.cpp" />
-    <ClCompile Include="..\..\Utilities\TskUtilities.cpp" />
-    <ClCompile Include="..\..\Utilities\UnallocRun.cpp" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\Extraction\CarveExtract.h" />
-    <ClInclude Include="..\..\Extraction\CarvePrep.h" />
-    <ClInclude Include="..\..\Extraction\TskExtract.h" />
-    <ClInclude Include="..\..\Extraction\TskL01Extract.h" />
-    <ClInclude Include="..\..\framework.h" />
-    <ClInclude Include="..\..\framework_i.h" />
-    <ClInclude Include="..\..\Services\Log.h" />
-    <ClInclude Include="..\..\Services\Scheduler.h" />
-    <ClInclude Include="..\..\TskVersionInfo.h" />
-    <ClInclude Include="..\..\Utilities\SectorRuns.h" />
-    <ClInclude Include="..\..\Extraction\TskAutoImpl.h" />
-    <ClInclude Include="..\..\Services\TskBlackboard.h" />
-    <ClInclude Include="..\..\Services\TskBlackboardArtifact.h" />
-    <ClInclude Include="..\..\Services\TskBlackBoardAttribute.h" />
-    <ClInclude Include="..\..\Extraction\TskCarveExtractScalpel.h" />
-    <ClInclude Include="..\..\Extraction\TskCarvePrepSectorConcat.h" />
-    <ClInclude Include="..\..\Services\TskDBBlackboard.h" />
-    <ClInclude Include="..\..\Utilities\TskException.h" />
-    <ClInclude Include="..\..\Pipeline\TskExecutableModule.h" />
-    <ClInclude Include="..\..\File\TskFile.h" />
-    <ClInclude Include="..\..\Pipeline\TskFileAnalysisPipeline.h" />
-    <ClInclude Include="..\..\Pipeline\TskFileAnalysisPluginModule.h" />
-    <ClInclude Include="..\..\File\TskFileManager.h" />
-    <ClInclude Include="..\..\File\TskFileManagerImpl.h" />
-    <ClInclude Include="..\..\File\TskFileTsk.h" />
-    <ClInclude Include="..\..\Extraction\TskImageFile.h" />
-    <ClInclude Include="..\..\Extraction\TskImageFileTsk.h" />
-    <ClInclude Include="..\..\Services\TskImgDB.h" />
-    <ClInclude Include="..\..\Services\TskImgDBSqlite.h" />
-    <ClInclude Include="..\..\Pipeline\TskModule.h" />
-    <ClInclude Include="..\..\Pipeline\TskPipeline.h" />
-    <ClInclude Include="..\..\Pipeline\TskPipelineManager.h" />
-    <ClInclude Include="..\..\Pipeline\TskPluginModule.h" />
-    <ClInclude Include="..\..\Pipeline\TskReportPipeline.h" />
-    <ClInclude Include="..\..\Pipeline\TskReportPluginModule.h" />
-    <ClInclude Include="..\..\Services\TskSchedulerQueue.h" />
-    <ClInclude Include="..\..\Services\TskServices.h" />
-    <ClInclude Include="..\..\Services\TskSystemProperties.h" />
-    <ClInclude Include="..\..\Services\TskSystemPropertiesImpl.h" />
-    <ClInclude Include="..\..\Utilities\TskUtilities.h" />
-    <ClInclude Include="..\..\Utilities\UnallocRun.h" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>
\ No newline at end of file
diff --git a/framework/win32/framework/framework.vcxproj.filters b/framework/win32/framework/framework.vcxproj.filters
deleted file mode 100755
index 4091bc0d0acad93685ef67f08cd016ae144c079f..0000000000000000000000000000000000000000
--- a/framework/win32/framework/framework.vcxproj.filters
+++ /dev/null
@@ -1,245 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <Filter Include="Source Files">
-      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
-      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
-    </Filter>
-    <Filter Include="Header Files">
-      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
-      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\Services\Log.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Services\Scheduler.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Utilities\SectorRuns.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Extraction\TskAutoImpl.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Services\TskBlackboard.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Services\TskBlackboardArtifact.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Services\TskBlackboardAttribute.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Extraction\TskCarveExtractScalpel.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Extraction\TskCarvePrepSectorConcat.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Services\TskDBBlackboard.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Utilities\TskException.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Pipeline\TskExecutableModule.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\File\TskFile.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Pipeline\TskFileAnalysisPipeline.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Pipeline\TskFileAnalysisPluginModule.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\File\TskFileManagerImpl.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\File\TskFileTsk.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Extraction\TskImageFile.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Extraction\TskImageFileTsk.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Services\TskImgDB.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Services\TskImgDBSqlite.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Pipeline\TskModule.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Pipeline\TskPipeline.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Pipeline\TskPipelineManager.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Pipeline\TskPluginModule.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Pipeline\TskReportPipeline.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Pipeline\TskReportPluginModule.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Services\TskSchedulerQueue.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Services\TskServices.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Services\TskSystemProperties.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Services\TskSystemPropertiesImpl.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Utilities\TskUtilities.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Utilities\UnallocRun.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Extraction\TskExtract.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Extraction\TskL01Extract.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\Extraction\CarveExtract.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Extraction\CarvePrep.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\framework.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\framework_i.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Services\Log.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Services\Scheduler.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Utilities\SectorRuns.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Extraction\TskAutoImpl.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Services\TskBlackboard.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Services\TskBlackboardArtifact.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Services\TskBlackBoardAttribute.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Extraction\TskCarveExtractScalpel.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Extraction\TskCarvePrepSectorConcat.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Services\TskDBBlackboard.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Utilities\TskException.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Pipeline\TskExecutableModule.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\File\TskFile.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Pipeline\TskFileAnalysisPipeline.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Pipeline\TskFileAnalysisPluginModule.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\File\TskFileManager.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\File\TskFileManagerImpl.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\File\TskFileTsk.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Extraction\TskImageFile.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Extraction\TskImageFileTsk.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Services\TskImgDB.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Services\TskImgDBSqlite.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Pipeline\TskModule.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Pipeline\TskPipeline.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Pipeline\TskPipelineManager.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Pipeline\TskPluginModule.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Pipeline\TskReportPipeline.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Pipeline\TskReportPluginModule.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Services\TskSchedulerQueue.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Services\TskServices.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Services\TskSystemProperties.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Services\TskSystemPropertiesImpl.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Utilities\TskUtilities.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Utilities\UnallocRun.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\TskVersionInfo.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Extraction\TskExtract.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Extraction\TskL01Extract.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-  </ItemGroup>
-</Project>
\ No newline at end of file
diff --git a/man/fcat.1 b/man/fcat.1
index 15cca8bd542e7fc9011bc8c113ba15b93d801485..cbcd50ddfaf81a66c8a09df982d822be26fa3a5a 100644
--- a/man/fcat.1
+++ b/man/fcat.1
@@ -1,6 +1,6 @@
 .TH FCAT 1 
 .SH NAME
-icat \- Output the contents of a file based on its name.
+fcat \- Output the contents of a file based on its name.
 .SH SYNOPSIS
 .B fcat [-hRsvV] [-f
 .I fstype
diff --git a/packages/sleuthkit.spec b/packages/sleuthkit.spec
index fb0552b984fd9e23ddfffd551e25d09c8f31267a..7dc5bf7c6448267d5f263984282be065830d080d 100644
--- a/packages/sleuthkit.spec
+++ b/packages/sleuthkit.spec
@@ -43,23 +43,23 @@ rm -rf $RPM_BUILD_ROOT
 %{_bindir}/*
 %dir %{_mandir}/man1
 %{_mandir}/man1/*
-%dir /usr/include/tsk3
-/usr/include/tsk3/*
-%dir /usr/include/tsk3/base
-/usr/include/tsk3/base/*
-%dir /usr/include/tsk3/fs
-/usr/include/tsk3/fs/*
-%dir /usr/include/tsk3/hashdb
-/usr/include/tsk3/hashdb/*
-%dir /usr/include/tsk3/img
-/usr/include/tsk3/img/*
-%dir /usr/include/tsk3/vs
-/usr/include/tsk3/vs/*
-%dir /usr/include/tsk3/auto
-/usr/include/tsk3/auto/*
-%dir /usr/share/tsk3
-%dir /usr/share/tsk3/sorter
-/usr/share/tsk3/sorter/*
+%dir /usr/include/tsk
+/usr/include/tsk/*
+%dir /usr/include/tsk/base
+/usr/include/tsk/base/*
+%dir /usr/include/tsk/fs
+/usr/include/tsk/fs/*
+%dir /usr/include/tsk/hashdb
+/usr/include/tsk/hashdb/*
+%dir /usr/include/tsk/img
+/usr/include/tsk/img/*
+%dir /usr/include/tsk/vs
+/usr/include/tsk/vs/*
+%dir /usr/include/tsk/auto
+/usr/include/tsk/auto/*
+%dir /usr/share/tsk
+%dir /usr/share/tsk/sorter
+/usr/share/tsk/sorter/*
 %doc ChangeLog.txt NEWS.txt INSTALL.txt README.txt README_win32.txt
 
 
diff --git a/release/release-unix.pl b/release/release-unix.pl
index 8b31691fbadb6069f306e1d2f8ce7d1ef7be0e8e..883b6a8776f8ee8144046617d40a131c93057b79 100755
--- a/release/release-unix.pl
+++ b/release/release-unix.pl
@@ -180,8 +180,8 @@ sub update_hver {
 
     print "Updating the version in tsk_base.h\n";
     
-    open (CONF_IN, "<tsk3/base/tsk_base.h") or die "Cannot open tsk3/base/tsk_base.h";
-    open (CONF_OUT, ">tsk3/base/tsk_base2.h") or die "Cannot open tsk3/base/tsk_base2.h";
+    open (CONF_IN, "<tsk/base/tsk_base.h") or die "Cannot open tsk/base/tsk_base.h";
+    open (CONF_OUT, ">tsk/base/tsk_base2.h") or die "Cannot open tsk/base/tsk_base2.h";
 
     my $found = 0;
     while (<CONF_IN>) {
@@ -230,8 +230,8 @@ sub update_hver {
         die "$found (instead of 2) occurances of VERSION in tsk_base.h";
     }
 
-    unlink ("tsk3/base/tsk_base.h") or die "Error deleting tsk3/base/tsk_base.h";
-    rename ("tsk3/base/tsk_base2.h", "tsk3/base/tsk_base.h") or die "Error renaming tmp tsk3/base/tsk_base.h file";
+    unlink ("tsk/base/tsk_base.h") or die "Error deleting tsk/base/tsk_base.h";
+    rename ("tsk/base/tsk_base2.h", "tsk/base/tsk_base.h") or die "Error renaming tmp tsk/base/tsk_base.h file";
 }
 
 # update the version in the package files in current source directory
@@ -282,7 +282,7 @@ sub update_libver {
     }
     return if ($a eq "n");
 
-    exec_pipe(*OUT, "cat tsk3/Makefile.am | grep version\-info");
+    exec_pipe(*OUT, "cat tsk/Makefile.am | grep version\-info");
     print "Current Makefile Contents: " . read_pipe_line(*OUT) . "\n";
     close (OUT);
 
@@ -290,7 +290,7 @@ sub update_libver {
     my $rev;
     my $age;
     while (1) {
-        $a = prompt_user("Enter library version used in last release (from tsk3/Makefile.am)");
+        $a = prompt_user("Enter library version used in last release (from tsk/Makefile.am)");
         if ($a =~ /(\d+):(\d+):(\d+)/) {
             $cur = $1;
             $rev = $2;
@@ -325,8 +325,8 @@ sub update_libver {
         }
     }
 
-    my $IFILE = "tsk3/Makefile.am";
-    my $OFILE = "tsk3/Makefile.am2";
+    my $IFILE = "tsk/Makefile.am";
+    my $OFILE = "tsk/Makefile.am2";
 
     open (CONF_IN, "<${IFILE}") or 
         die "Cannot open $IFILE";
diff --git a/release/release-win.pl b/release/release-win.pl
index 0b65a06565c9abbcb6afd2d73a94b7f335b26acb..c3d99eaf0645349c9e4d0e7ae79716cf106f19fc 100755
--- a/release/release-win.pl
+++ b/release/release-win.pl
@@ -259,25 +259,28 @@ sub package_core {
 sub build_framework {
 	print "Building TSK framework\n";
 
-	chdir "framework/win32/framework" or die "error changing directory into framework/win32";
+	chdir "framework/msvcpp/framework" or die "error changing directory into framework/msvcpp";
 	# Get rid of everything in the release dir (since we'll be doing * copy)
 	`rm -rf Release`;
 	`rm -f BuildErrors.txt`;
 	# This was not needed for VS2008, but is for VS2010
-	`rm -rf ../../TskModules/*/win32/Release`;
+	`rm -rf ../../modules/*/win32/Release`;
 
 	# 2008 version
 	#`vcbuild /errfile:BuildErrors.txt framework.sln "Release|Win32"`; 
 	# 2010 version
 	`msbuild.exe framework.sln /p:Configuration=Release /clp:ErrorsOnly /nologo > BuildErrors.txt`;
-	die "Build errors -- check framework/win32/framework/BuildErrors.txt" if (-e "BuildErrors.txt" && -s "BuildErrors.txt");
+	die "Build errors -- check framework/msvcpp/framework/BuildErrors.txt" if (-e "BuildErrors.txt" && -s "BuildErrors.txt");
 
+	chdir "../..";
+
+	chdir "runtime";
 	# Do a basic check on some of the executables
-	die "libtskframework.dll missing" unless (-x "Release/libtskframework.dll");
-	die "tsk_analyzeimg missing" unless (-x "Release/tsk_analyzeimg.exe");
-	die "HashCalcModule.dll missing" unless (-x "Release/HashCalcModule.dll");
+	die "libtskframework.dll missing" unless (-x "libtskframework.dll");
+	die "tsk_analyzeimg missing" unless (-x "tsk_analyzeimg.exe");
+	die "tskHashCalcModule.dll missing" unless (-x "tskHashCalcModule.dll");
+	chdir "../..";
 
-	chdir "../../..";
 }
 
 sub package_framework {
@@ -296,11 +299,9 @@ sub package_framework {
 	mkdir ("${rdir}/licenses") or die "error making licenses release directory: $rdir";
 	mkdir ("${rdir}/docs") or die "error making docs release directory: $rdir";
 
-	chdir "framework" or die "error changing directory into framework";
 
 	# Copy the files
-	chdir "win32/framework/Release" or die "Error changing directory into release / framework";
-
+	chdir "framework/runtime" or die "Error changing directory into runtime";
 	`cp *.exe \"${rdir}/bin\"`;
 	`cp libtsk*.dll \"${rdir}/bin\"`;
 	`cp Poco*.dll \"${rdir}/bin\"`;
@@ -309,8 +310,9 @@ sub package_framework {
 
 	
 	# Copy the modules and config dirs
-	opendir(DIR, ".") or die "Error opening framework release folder";
+	opendir(DIR, ".") or die "Error opening framework runtime folder";
 	while(my $f = readdir(DIR)) {
+        # Skip it unless it ends in Module.dll
 		next unless ($f =~ /Module\.dll$/);
 		`cp \"$f\" \"${rdir}/modules\"`;
 		my $base = $1 if ($f =~ /^(.*)\.dll$/);
@@ -324,11 +326,12 @@ sub package_framework {
 
 	# Special case libs
 	# libmagic
+    die unless (-e "libmagic-1.dll");
 	`cp libmagic-1.dll \"${rdir}/modules\"`;
+    die unless (-e "libgnurx-0.dll");
 	`cp libgnurx-0.dll \"${rdir}/modules\"`;
 
-	chdir "../../..";
-
+	chdir "..";
 
 	`cp SampleConfig/framework_config_bindist.xml \"${rdir}/bin/framework_config.xml\"`;
 	`unix2dos \"${rdir}/bin/framework_config.xml\" 2> /dev/null`;
@@ -339,15 +342,14 @@ sub package_framework {
 
 
 	# Copy the readme files for each module
-	opendir(my $modDir, "./TskModules") or die "Error opening TskModules folder";
+	opendir(my $modDir, "./modules") or die "Error opening modules folder";
 	while(my $f = readdir($modDir)) {
 		next unless ($f =~ /^c_\w+/);
-		if (-f "TskModules/$f/README.txt") {
-			`cp TskModules/$f/README.txt \"${rdir}/docs/README_${f}.txt\"`;
+		if (-f "modules/$f/README.txt") {
+			`cp modules/$f/README.txt \"${rdir}/docs/README_${f}.txt\"`;
 			`unix2dos \"${rdir}/docs/README_${f}.txt\" 2> /dev/null`;
-			`cp TskModules/$f/NEWS.txt \"${rdir}/docs/NEWS_${f}.txt\"`;
+			`cp modules/$f/NEWS.txt \"${rdir}/docs/NEWS_${f}.txt\"`;
 			`unix2dos \"${rdir}/docs/NEWS_${f}.txt\" 2> /dev/null`;
-			
 		}
 		else {
 			print "Didn't find readme in $f\n";
@@ -392,9 +394,9 @@ sub package_framework {
 
 # Assumes path in /cygwin/style
 sub copy_runtime_2010 { 
-    	my $dest = shift(@_);
-	`cp /cygdrive/c/windows/system32/msvcp100.dll \"$dest\"`;
-	`cp /cygdrive/c/windows/system32/msvcr100.dll \"$dest\"`;
+    my $dest = shift(@_);
+    `cp /cygdrive/c/windows/system32/msvcp100.dll \"$dest\"`;
+    `cp /cygdrive/c/windows/system32/msvcr100.dll \"$dest\"`;
 }
 
 chdir ("$TSKDIR") or die "Error changing to TSK dir $TSKDIR";
diff --git a/samples/Makefile.am b/samples/Makefile.am
index aee7a5ce4924a3e780dba6a413a8e946c0fc7843..c94df6406fbc0a9ebb825ab6451241efcb80e308 100644
--- a/samples/Makefile.am
+++ b/samples/Makefile.am
@@ -1,5 +1,5 @@
 AM_CPPFLAGS = -I.. -I$(srcdir)/.. -Wall 
-LDADD = ../tsk3/libtsk3.la
+LDADD = ../tsk/libtsk.la
 AM_LDFLAGS = -static
 EXTRA_DIST = .indent.pro 
 
diff --git a/samples/callback-cpp-style.cpp b/samples/callback-cpp-style.cpp
index c2bb2102763627d8dbbf31bbde6c0c9bda0fc92e..d917053d42ba8324edd0f6bc1f358f3152670721 100644
--- a/samples/callback-cpp-style.cpp
+++ b/samples/callback-cpp-style.cpp
@@ -38,7 +38,7 @@
 #include <string.h>
 #include <stdlib.h>
 
-#include <tsk3/libtsk.h>
+#include <tsk/libtsk.h>
 
 static TskHdbInfo *hdb_info;
 
diff --git a/samples/callback-style.cpp b/samples/callback-style.cpp
index e31f51bbfb1bc6f4eddc803168a8a9b3e87e1c6b..e0a35f6bead8526794564a7bed4ca12b59e71104 100644
--- a/samples/callback-style.cpp
+++ b/samples/callback-style.cpp
@@ -38,7 +38,7 @@
 #include <string.h>
 #include <stdlib.h>
 
-#include <tsk3/libtsk.h>
+#include <tsk/libtsk.h>
 
 static TSK_HDB_INFO *hdb_info;
 
diff --git a/samples/posix-cpp-style.cpp b/samples/posix-cpp-style.cpp
index 7c83003aea211723501beaefb6d3cb98e15f5329..23bc9f1ff6eadaf7115993fb7e9642455e977872 100644
--- a/samples/posix-cpp-style.cpp
+++ b/samples/posix-cpp-style.cpp
@@ -37,7 +37,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-#include <tsk3/libtsk.h>
+#include <tsk/libtsk.h>
 
 /**
  * Open a directory and cycle through its contents.  Read each file and recurse
diff --git a/samples/posix-style.cpp b/samples/posix-style.cpp
index c4246a7fe40d2c3a90611842918b19b5eccd76aa..2e53cefe9457a0ad9198bdbf5f7aff50e058fcee 100644
--- a/samples/posix-style.cpp
+++ b/samples/posix-style.cpp
@@ -38,7 +38,7 @@
 #include <string.h>
 #include <stdlib.h>
 
-#include <tsk3/libtsk.h>
+#include <tsk/libtsk.h>
 
 
 /**
diff --git a/tests/Makefile.am b/tests/Makefile.am
index d7051bfc49557d601706b69b0d29a33829fd829e..a9105e331857ac601aae68b8d5d2c1de254ec24c 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -1,5 +1,5 @@
 AM_CPPFLAGS = -I.. -I$(srcdir)/.. -Wall $(PTHREAD_CFLAGS)
-LDADD = ../tsk3/libtsk3.la
+LDADD = ../tsk/libtsk.la
 LDFLAGS += -static $(PTHREAD_LIBS)
 EXTRA_DIST = .indent.pro 
 
diff --git a/tests/fs_attrlist_apis.cpp b/tests/fs_attrlist_apis.cpp
index 00410bfece9bd1934af477b46ae2f144623a7dc5..74d67610f8cb1ab147fd5e179a202f98b828d10c 100644
--- a/tests/fs_attrlist_apis.cpp
+++ b/tests/fs_attrlist_apis.cpp
@@ -11,7 +11,7 @@
 
 /* Test and compare the file attribute list apis */
 
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 
 static char *s_root;
 
diff --git a/tests/fs_fname_apis.cpp b/tests/fs_fname_apis.cpp
index 8f58abdce71347139f8d04e637c8c8e466381f79..9d8d56e1a4b02c96c4ef112a74f3446ecc97c3e6 100644
--- a/tests/fs_fname_apis.cpp
+++ b/tests/fs_fname_apis.cpp
@@ -16,7 +16,7 @@
  * Need to uncommen parent addr check in open() check when fs_meta is defined
  */
 
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 
 static char *s_root;
 
diff --git a/tests/fs_thread_test.cpp b/tests/fs_thread_test.cpp
index a32f7054e5d08739bbcc10e2a5ed8f0fb38ed48d..117e36e1e9dccf869a8554216ef6a34ee5750a30 100644
--- a/tests/fs_thread_test.cpp
+++ b/tests/fs_thread_test.cpp
@@ -19,12 +19,12 @@
 // safety, but by running enough threads and enough repetitions of
 // the test without error, you can be more confident.
 
-#include <tsk3/libtsk.h>
+#include <tsk/libtsk.h>
 
 #include "tsk_thread.h"
 
 // for tsk_getopt() and friends
-#include "tsk3/base/tsk_base_i.h"
+#include "tsk/base/tsk_base_i.h"
 
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tests/read_apis.cpp b/tests/read_apis.cpp
index e4539a7372b246c41f0999bb7e174fa5c86ce747..ad706f6615b583e3b7d11bf5750c5eea06dbbfd0 100644
--- a/tests/read_apis.cpp
+++ b/tests/read_apis.cpp
@@ -17,7 +17,7 @@
  * not all files can be tested with the latter options because the file
  * could be sparse or compressed. 
  */
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 
 static TSK_FS_FILE *s_file2;
 static TSK_OFF_T s_off;
diff --git a/tools/autotools/Makefile.am b/tools/autotools/Makefile.am
index 307f474ec3351a3fc5e98dcf4febca4779eb3c6c..75a587912e49559be12b89bd4fabc35d2c6fff40 100644
--- a/tools/autotools/Makefile.am
+++ b/tools/autotools/Makefile.am
@@ -1,5 +1,5 @@
 AM_CPPFLAGS = -I../.. -I$(srcdir)/../.. -Wall
-LDADD = ../../tsk3/libtsk3.la
+LDADD = ../../tsk/libtsk.la
 LDFLAGS += -static
 EXTRA_DIST = .indent.pro
 
diff --git a/tools/autotools/tsk_comparedir.cpp b/tools/autotools/tsk_comparedir.cpp
index a7e4ba827c408eb25074f6512bf2da3f1146ec58..c1cf55040a36f48cd425e9f691b7e74c812145ee 100644
--- a/tools/autotools/tsk_comparedir.cpp
+++ b/tools/autotools/tsk_comparedir.cpp
@@ -9,7 +9,7 @@
  **
  */
 
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 #include "tsk_comparedir.h"
 #include <locale.h>
 #include <sys/stat.h>
@@ -208,7 +208,7 @@ TSK_RETVAL_ENUM
 TskCompareDir::processFile(TSK_FS_FILE * a_fs_file, const char *a_path)
 {
     //exclude certain types
-    if (isDotDir(a_fs_file, a_path))
+    if (isDotDir(a_fs_file))
         return TSK_OK;
     
     if (isDir(a_fs_file))
diff --git a/tools/autotools/tsk_gettimes.cpp b/tools/autotools/tsk_gettimes.cpp
index 794e4e36e18c1961e1bd2778eaff20d3e59fff56..de388a3c0733727f94125a6fd900e95da241c419 100644
--- a/tools/autotools/tsk_gettimes.cpp
+++ b/tools/autotools/tsk_gettimes.cpp
@@ -9,7 +9,7 @@
  **
  */
 
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 #include <locale.h>
 #include <time.h>
 
diff --git a/tools/autotools/tsk_loaddb.cpp b/tools/autotools/tsk_loaddb.cpp
index 6bb496cfe0d0a17cd85c9f14b6aa3345a338786e..63c54e9eb84c174aee218dbe12a9be0aa8dcf4de 100644
--- a/tools/autotools/tsk_loaddb.cpp
+++ b/tools/autotools/tsk_loaddb.cpp
@@ -9,8 +9,8 @@
  **
  */
 
-#include "tsk3/tsk_tools_i.h"
-#include "tsk3/auto/tsk_case_db.h"
+#include "tsk/tsk_tools_i.h"
+#include "tsk/auto/tsk_case_db.h"
 #include <locale.h>
 
 static TSK_TCHAR *progname;
diff --git a/tools/autotools/tsk_recover.cpp b/tools/autotools/tsk_recover.cpp
index 351393d9e7024a955d53d6e38c7c0f5a1931e15f..ac9acb1da3556fa716bdbd45ae77b3b1e6b4c98a 100644
--- a/tools/autotools/tsk_recover.cpp
+++ b/tools/autotools/tsk_recover.cpp
@@ -9,7 +9,7 @@
  **
  */
 
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 #include <locale.h>
 #include <sys/stat.h>
 #include <errno.h>
@@ -149,7 +149,9 @@ uint8_t TskRecover::writeFile(TSK_FS_FILE * a_fs_file, const char *a_path)
     *utf16 = '\0';
 
     //combine the target directory with volume name and path
-    wchar_t path16full[FILENAME_MAX];
+    //wchar_t path16full[FILENAME_MAX];
+	wchar_t path16full[FILENAME_MAX+1];
+	path16full[FILENAME_MAX] = L'\0'; // Try this
     wcsncpy(path16full, (wchar_t *) m_base_dir, FILENAME_MAX);
     wcsncat(path16full, L"\\", FILENAME_MAX-wcslen(path16full));
     wcsncat(path16full, path16, FILENAME_MAX-wcslen(path16full));
@@ -320,7 +322,7 @@ uint8_t TskRecover::writeFile(TSK_FS_FILE * a_fs_file, const char *a_path)
 TSK_RETVAL_ENUM TskRecover::processFile(TSK_FS_FILE * fs_file, const char *path)
 {
     // skip a bunch of the files that we don't want to write
-    if (isDotDir(fs_file, path))
+    if (isDotDir(fs_file))
         return TSK_OK;
     else if (isDir(fs_file))
         return TSK_OK;
diff --git a/tools/fiwalk/src/Makefile.am b/tools/fiwalk/src/Makefile.am
index fc0d8a90045ffd08f0ad8a262879b77a6a84ff89..b3ae44f4a78bf9797085192ef70cd440d6451f04 100644
--- a/tools/fiwalk/src/Makefile.am
+++ b/tools/fiwalk/src/Makefile.am
@@ -2,7 +2,7 @@ bin_PROGRAMS = fiwalk
 
 AM_CFLAGS = -Wall
 AM_CPPFLAGS = -I../../.. -Wall
-LDADD = ../../../tsk3/libtsk3.la
+LDADD = ../../../tsk/libtsk.la
 
 EXTRA_DIST = README_PLUGINS.txt ficonfig.txt \
     config-simple.txt word-count-plugin.sh \
diff --git a/tools/fiwalk/src/arff.cpp b/tools/fiwalk/src/arff.cpp
index 9182ef353312da250e226e1e60f9fdff3ba3657e..13fd7e734d70081cef18542640e327d3935ebf16 100644
--- a/tools/fiwalk/src/arff.cpp
+++ b/tools/fiwalk/src/arff.cpp
@@ -17,7 +17,7 @@
  * not subject to copyright.
  */
 
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 #include "fiwalk.h"
 #include <sys/types.h>
 
diff --git a/tools/fiwalk/src/base64.cpp b/tools/fiwalk/src/base64.cpp
index 3acd7f2aabbf9bca1d100466d5649ebd0c510c71..3c4b38a53ff4098f87f7080a1e14bec1cf14ee7f 100644
--- a/tools/fiwalk/src/base64.cpp
+++ b/tools/fiwalk/src/base64.cpp
@@ -40,7 +40,7 @@
  * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES.
  */
 
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/tools/fiwalk/src/content.cpp b/tools/fiwalk/src/content.cpp
index 0123904301eab906d5afdbc7b5d542ef56ff6967..7ca1723c5474f6bd91269cdaf7af5af26f0e844d 100644
--- a/tools/fiwalk/src/content.cpp
+++ b/tools/fiwalk/src/content.cpp
@@ -1,4 +1,4 @@
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 
 
 #ifndef __STDC_FORMAT_MACROS
diff --git a/tools/fiwalk/src/dfxml.cpp b/tools/fiwalk/src/dfxml.cpp
index 1165f441f65e7b6bbe38e031c9bebb1433e4b400..ca1efb35638b87a423fb1704ea0f64ff2f705658 100644
--- a/tools/fiwalk/src/dfxml.cpp
+++ b/tools/fiwalk/src/dfxml.cpp
@@ -17,7 +17,7 @@
  */
 
 
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 
 #include "dfxml.h"
 #include <errno.h>
@@ -486,7 +486,7 @@ void xml::add_DFXML_build_environment()
 	xmlout("compilation_date",buf);
     }
 #endif
-#ifdef HAVE_LIBTSK3
+#ifdef HAVE_LIBTSK
     xmlout("library", "", std::string("name=\"tsk\" version=\"") + tsk_version_get_str() + "\"",false);
 #endif
 #ifdef HAVE_LIBAFFLIB
diff --git a/tools/fiwalk/src/dfxml.h b/tools/fiwalk/src/dfxml.h
index 159ba3129c0051695629c69b5255163e61a5785d..9b9c0a632a40784e2a536d58f2edf2da828d8819 100644
--- a/tools/fiwalk/src/dfxml.h
+++ b/tools/fiwalk/src/dfxml.h
@@ -70,7 +70,7 @@
   #endif
 #endif
 
-#include "tsk3/libtsk.h"
+#include "tsk/libtsk.h"
 
 #ifdef __cplusplus
 class xml {
diff --git a/tools/fiwalk/src/fiwalk.cpp b/tools/fiwalk/src/fiwalk.cpp
index ce27073790644e61a43e091b123267bc268112d1..1ca8a218ad142a11019f56cba0e2791271ec1548 100644
--- a/tools/fiwalk/src/fiwalk.cpp
+++ b/tools/fiwalk/src/fiwalk.cpp
@@ -33,7 +33,7 @@
 
 
 /* config.h must be first */
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 
 #include <stdio.h>
 #include "fiwalk.h"
diff --git a/tools/fiwalk/src/fiwalk_tsk.cpp b/tools/fiwalk/src/fiwalk_tsk.cpp
index dd5448d52712a28203299e25a2b27d709581c808..ef7879930e83de40a0983fceeabb71edc798e5de 100644
--- a/tools/fiwalk/src/fiwalk_tsk.cpp
+++ b/tools/fiwalk/src/fiwalk_tsk.cpp
@@ -18,12 +18,12 @@
  */
 
 /* config.h must be first */
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 #include "fiwalk.h"
 #include "arff.h"
 #include "plugin.h"
 #include "unicode_escape.h"
-#include "tsk3/fs/tsk_fatfs.h"
+#include "tsk/fs/tsk_fatfs.h"
 
 #ifdef _MSC_VER
 #define _CRT_SECURE_NO_WARNINGS
@@ -139,8 +139,8 @@ file_act(TSK_FS_FILE * fs_file, TSK_OFF_T a_off, TSK_DADDR_T addr, char *buf,
     return TSK_WALK_CONT;
 }
 
-/* This is modeled on print_dent_act printit in ./tsk3/fs/fls_lib.c
- * See also tsk_fs_name_print() in ./tsk3/fs/fs_name.c
+/* This is modeled on print_dent_act printit in ./tsk/fs/fls_lib.c
+ * See also tsk_fs_name_print() in ./tsk/fs/fs_name.c
  */
 
 static uint8_t
diff --git a/tools/fiwalk/src/hexbuf.c b/tools/fiwalk/src/hexbuf.c
index 02459390723cd71d38de00c523d7ebf3449e6f39..ee60e48a947018b94c5535af0c3661d862ab7f5f 100644
--- a/tools/fiwalk/src/hexbuf.c
+++ b/tools/fiwalk/src/hexbuf.c
@@ -3,7 +3,7 @@
  * Turns a binary buffer into a hexdecimal string.
  */
 
-#include "tsk3/tsk_config.h"
+#include "tsk/tsk_config.h"
 #include "hexbuf.h"
 #include <stdio.h>
 
diff --git a/tools/fiwalk/src/plugin.cpp b/tools/fiwalk/src/plugin.cpp
index 5758ddf9edc5ecd25ae000699fe8bcd9b99db9e9..1be0afd1ebdbbeed62dba383fa42485222e8bac5 100644
--- a/tools/fiwalk/src/plugin.cpp
+++ b/tools/fiwalk/src/plugin.cpp
@@ -18,7 +18,7 @@
  *          
  */
 
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 
 #define __DARWIN_64_BIT_INO_T 1		
 
@@ -44,7 +44,7 @@
 #include <string>
 #include <vector>
 
-#include <tsk3/libtsk.h>
+#include <tsk/libtsk.h>
 
 #include "fiwalk.h"
 #include "plugin.h"
diff --git a/tools/fiwalk/src/unicode_escape.cpp b/tools/fiwalk/src/unicode_escape.cpp
index 0cf5e394f7036823366981c7c5fc2fa4c602e3e0..ede95f7d3d496185c7bb3181f04ef1f75d75f909 100644
--- a/tools/fiwalk/src/unicode_escape.cpp
+++ b/tools/fiwalk/src/unicode_escape.cpp
@@ -24,7 +24,7 @@
  * not subject to copyright.
  */
 
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 #include "unicode_escape.h"
 
 #include <stdio.h>
diff --git a/tools/fiwalk/src/utils.c b/tools/fiwalk/src/utils.c
index 8afec6924bb691df6c8ffd708dbeea0874929eaf..681ee8c66e6437728c3d0440f6298a340074520f 100644
--- a/tools/fiwalk/src/utils.c
+++ b/tools/fiwalk/src/utils.c
@@ -11,7 +11,7 @@
 #define __STDC_FORMAT_MACROS
 #endif
 
-#include "tsk3/tsk_config.h"
+#include "tsk/tsk_config.h"
 #include "utils.h"
 
 #ifdef HAVE_UNISTD_H
diff --git a/tools/fstools/Makefile.am b/tools/fstools/Makefile.am
index 5c9a30dbd7e1e17fbc12c888ea07e8623e780b6b..8c04326c337e02bdac7eff70095b6d04f9497ce2 100644
--- a/tools/fstools/Makefile.am
+++ b/tools/fstools/Makefile.am
@@ -1,5 +1,5 @@
 AM_CPPFLAGS = -I../.. -I$(srcdir)/../.. -Wall 
-LDADD = ../../tsk3/libtsk3.la
+LDADD = ../../tsk/libtsk.la
 LDFLAGS += -static
 EXTRA_DIST = .indent.pro fscheck.cpp
 
diff --git a/tools/fstools/blkcalc.cpp b/tools/fstools/blkcalc.cpp
index adbbf1ca395e7221456e85dbcc76c98941ee1e31..dddd1efdef8e9e9a2d9a788a917efb0fc2950d79 100644
--- a/tools/fstools/blkcalc.cpp
+++ b/tools/fstools/blkcalc.cpp
@@ -21,7 +21,7 @@
 ** This software is distributed under the Common Public License 1.0
 **
 */
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 #include <locale.h>
 
 static TSK_TCHAR *progname;
diff --git a/tools/fstools/blkcat.cpp b/tools/fstools/blkcat.cpp
index ada48cd09f2f45f142a95b1ae2d40fad66a77748..f34fc07e26b81d547d5f00b07637169e57e81af8 100644
--- a/tools/fstools/blkcat.cpp
+++ b/tools/fstools/blkcat.cpp
@@ -19,7 +19,7 @@
 ** This software is distributed under the Common Public License 1.0
 **
 */
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 #include <locale.h>
 
 #define BLKLS_TYPE _TSK_T("blkls")
diff --git a/tools/fstools/blkls.cpp b/tools/fstools/blkls.cpp
index e306e84216059cfc9117e6e91120990d432bf10f..f9b9ce9d35f2a74b6e45f7868aa5163b831f9de4 100644
--- a/tools/fstools/blkls.cpp
+++ b/tools/fstools/blkls.cpp
@@ -23,7 +23,7 @@
  *	P.O. Box 704
  *	Yorktown Heights, NY 10598, USA
  */
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 #include <locale.h>
 
 static TSK_TCHAR *progname;
diff --git a/tools/fstools/blkstat.cpp b/tools/fstools/blkstat.cpp
index 4bb053a0e74c35dc041ade68b36e9e9bbb21facc..4f8f8ddf3cd715b6a7f21107e4cc2868dba1f56d 100644
--- a/tools/fstools/blkstat.cpp
+++ b/tools/fstools/blkstat.cpp
@@ -14,7 +14,7 @@
 ** This software is distributed under the Common Public License 1.0
 **
 */
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 #include <locale.h>
 
 static TSK_TCHAR *progname;
diff --git a/tools/fstools/fcat.cpp b/tools/fstools/fcat.cpp
index e21c61eecf2fe84153d4ead758b6d44d7df975e3..d563c1c440b7f9f7eb586fb1506d07bbedeeb897 100644
--- a/tools/fstools/fcat.cpp
+++ b/tools/fstools/fcat.cpp
@@ -8,7 +8,7 @@
 ** This software is distributed under the Common Public License 1.0
 **/
 
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 #include <locale.h>
 
 /* usage - explain and terminate */
diff --git a/tools/fstools/ffind.cpp b/tools/fstools/ffind.cpp
index 32fefb87d41f45f9b62abf9a457602ecaab62bca..3c4ff22b690c7fa5b175f87ff301dcfeb8378e6b 100644
--- a/tools/fstools/ffind.cpp
+++ b/tools/fstools/ffind.cpp
@@ -18,7 +18,7 @@
 ** This software is distributed under the Common Public License 1.0
 **
 */
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 #include <locale.h>
 
 static TSK_TCHAR *progname;
diff --git a/tools/fstools/fls.cpp b/tools/fstools/fls.cpp
index a2231fa6e68d9470e3adab54bed48aa76eaa6de2..60e7e80ef568fe1bd137e6ad1fa892e200250807 100644
--- a/tools/fstools/fls.cpp
+++ b/tools/fstools/fls.cpp
@@ -19,7 +19,7 @@
 ** This software is distributed under the Common Public License 1.0
 **
 */
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 #include <locale.h>
 #include <time.h>
 
diff --git a/tools/fstools/fscheck.cpp b/tools/fstools/fscheck.cpp
index 0cee3c786072650584117688906287b59d9ae267..77d5cf623d42630074889bb02270ccc0872dac8e 100644
--- a/tools/fstools/fscheck.cpp
+++ b/tools/fstools/fscheck.cpp
@@ -7,7 +7,7 @@
 **
 ** This software is distributed under the Common Public License 1.0
 */
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 
 static void
 usage()
diff --git a/tools/fstools/fsstat.cpp b/tools/fstools/fsstat.cpp
index 4c35da7dc538a827ede8f21551caa731b49e7404..ba9b203e2af0b844189c022c63cf69dc8f73fb6b 100644
--- a/tools/fstools/fsstat.cpp
+++ b/tools/fstools/fsstat.cpp
@@ -12,7 +12,7 @@
 ** This software is distributed under the Common Public License 1.0
 */
 
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 #include <locale.h>
 
 static TSK_TCHAR *progname;
diff --git a/tools/fstools/icat.cpp b/tools/fstools/icat.cpp
index 1d9d36df9e47b61767a3adee6f37f4ccee9d18aa..d14999651ccf384cbf3df190d3e1073d0a461940 100644
--- a/tools/fstools/icat.cpp
+++ b/tools/fstools/icat.cpp
@@ -21,7 +21,7 @@
  *	Yorktown Heights, NY 10598, USA
  --*/
 
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 #include <locale.h>
 
 /* usage - explain and terminate */
diff --git a/tools/fstools/ifind.cpp b/tools/fstools/ifind.cpp
index 237f1433e09708690608076c4e5f8835cd082805..f83d7fe4cd26414c17c6c517a684b54a903209bb 100644
--- a/tools/fstools/ifind.cpp
+++ b/tools/fstools/ifind.cpp
@@ -19,7 +19,7 @@
 **
 */
 
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 #include <locale.h>
 #include <time.h>
 
diff --git a/tools/fstools/ils.cpp b/tools/fstools/ils.cpp
index 9ebc0ce17df54131cca3098819dec42a08a6cbe0..8b4522496efaacdafa3f21f09740d3c5f1fc736d 100644
--- a/tools/fstools/ils.cpp
+++ b/tools/fstools/ils.cpp
@@ -23,7 +23,7 @@
  *	Yorktown Heights, NY 10598, USA
  --*/
 
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 #include <locale.h>
 
 static TSK_TCHAR *progname;
@@ -188,6 +188,7 @@ main(int argc, char **argv1)
              */
         case _TSK_T('a'):
             flags |= TSK_FS_META_FLAG_ALLOC;
+			flags &= ~TSK_FS_META_FLAG_UNALLOC;
             break;
         case _TSK_T('A'):
             flags |= TSK_FS_META_FLAG_UNALLOC;
diff --git a/tools/fstools/istat.cpp b/tools/fstools/istat.cpp
index 7076b4df125e10a4baaecfce22c38aa0a70af9dc..9e80b7b604ab6c5f0beb850afb3517d795cb77fc 100644
--- a/tools/fstools/istat.cpp
+++ b/tools/fstools/istat.cpp
@@ -18,7 +18,7 @@
 ** This software is distributed under the Common Public License 1.0
 **
 */
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 #include <locale.h>
 #include <time.h>
 
diff --git a/tools/fstools/jcat.cpp b/tools/fstools/jcat.cpp
index f21ee3dc053ff49153a47d213155d4e812f18eab..0aed1b8ac2e555c7201aed09f105d8ceea759883 100644
--- a/tools/fstools/jcat.cpp
+++ b/tools/fstools/jcat.cpp
@@ -9,7 +9,7 @@
 **
 ** This software is distributed under the Common Public License 1.0
 */
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 #include <locale.h>
 
 #ifdef TSK_WIN32
diff --git a/tools/fstools/jls.cpp b/tools/fstools/jls.cpp
index 1a993d84a875bf2ff59a2c06851c54b10dfd5ef1..073cbb66c4f9ca197db2f5a7a89b93fcd200d627 100644
--- a/tools/fstools/jls.cpp
+++ b/tools/fstools/jls.cpp
@@ -9,7 +9,7 @@
 ** This software is distributed under the Common Public License 1.0
 */
 
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 #include <locale.h>
 
 static TSK_TCHAR *progname;
diff --git a/tools/hashtools/Makefile.am b/tools/hashtools/Makefile.am
index 73ce5a274458f435ff7b9220ac35edb94556c1d7..957037717b656403952c0c399e2ac72d94b7d0b9 100644
--- a/tools/hashtools/Makefile.am
+++ b/tools/hashtools/Makefile.am
@@ -1,5 +1,5 @@
 AM_CPPFLAGS = -I../.. -I$(srcdir)/../.. -Wall 
-LDADD = ../../tsk3/libtsk3.la
+LDADD = ../../tsk/libtsk.la
 LDFLAGS += -static
 EXTRA_DIST = .indent.pro md5.c sha1.c
 
diff --git a/tools/hashtools/hfind.cpp b/tools/hashtools/hfind.cpp
index 724a9bee0500ffb4b680d5faee70fb762581a8a4..0486c25b5f8b33cb456047d136017d77cae4d767 100644
--- a/tools/hashtools/hfind.cpp
+++ b/tools/hashtools/hfind.cpp
@@ -12,7 +12,7 @@
  * \file hfind.c
  * Command line tool to index and lookup values in a hash database
  */
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 #include <locale.h>
 
 static TSK_TCHAR *progname;
diff --git a/tools/hashtools/md5.c b/tools/hashtools/md5.c
index 867ea82549e76731e4b7680c7e69713db0781a03..08229077227bceaf70010e92324577e89d97f723 100644
--- a/tools/hashtools/md5.c
+++ b/tools/hashtools/md5.c
@@ -24,7 +24,7 @@
 *--*/
 
 #include <stdio.h>
-#include "tsk3/libtsk.h"
+#include "tsk/libtsk.h"
 
 #define MD5_HASH_LENGTH	16
 
diff --git a/tools/hashtools/sha1.c b/tools/hashtools/sha1.c
index b10a4ae1f79d9ab86a2ba95855032eab601df53b..4a34562557e1b27bed0d5774e57f9883b737a62d 100644
--- a/tools/hashtools/sha1.c
+++ b/tools/hashtools/sha1.c
@@ -31,7 +31,7 @@ effort (for example the reengineering of a great many Capstone chips).
 
 #include <stdio.h>
 #include <string.h>
-#include "tsk3/libtsk.h"
+#include "tsk/libtsk.h"
 
 
 #define SHA_HASH_LENGTH 	20
diff --git a/tools/imgtools/Makefile.am b/tools/imgtools/Makefile.am
index 0e0d04f9773be395c6a622359702307c3f5c4b6d..4a2c291c969034acfe69e513b31946c97bd48d09 100644
--- a/tools/imgtools/Makefile.am
+++ b/tools/imgtools/Makefile.am
@@ -1,5 +1,5 @@
 AM_CPPFLAGS = -I../.. -I$(srcdir)/../.. -Wall
-LDADD = ../../tsk3/libtsk3.la
+LDADD = ../../tsk/libtsk.la
 LDFLAGS += -static
 EXTRA_DIST = .indent.pro
 
diff --git a/tools/imgtools/img_cat.cpp b/tools/imgtools/img_cat.cpp
index 8d0579ce277230f074773ed64a0a3c706356106f..a052a5f646008ffe4f03f5393c52469830f9de4f 100644
--- a/tools/imgtools/img_cat.cpp
+++ b/tools/imgtools/img_cat.cpp
@@ -7,7 +7,7 @@
  *
  * This software is distributed under the Common Public License 1.0
  */
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 #include <errno.h>
 
 #ifdef TSK_WIN32
diff --git a/tools/imgtools/img_stat.cpp b/tools/imgtools/img_stat.cpp
index d9d32b884cceb1e93a09b1e4c955de935d7ed205..483505cb92a22045210f0f31848bda0ebc7a51a5 100644
--- a/tools/imgtools/img_stat.cpp
+++ b/tools/imgtools/img_stat.cpp
@@ -8,7 +8,7 @@
  *
  * This software is distributed under the Common Public License 1.0
  */
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 
 static TSK_TCHAR *progname;
 
diff --git a/tools/sorter/sorter.base b/tools/sorter/sorter.base
index 4b98fc13f65493e602316ce21cc8d8fb19038ef5..cef2b60ee82ba0aeaaad12984fabd54319914977 100644
--- a/tools/sorter/sorter.base
+++ b/tools/sorter/sorter.base
@@ -12,7 +12,7 @@
 use strict;
 use integer;
 
-my $SHARE_DIR = "$DATA_DIR/tsk3/sorter/";
+my $SHARE_DIR = "$DATA_DIR/tsk/sorter/";
 
 my $SK_FLS     = "${BIN_DIR}/fls";
 my $SK_ICAT    = "${BIN_DIR}/icat";
@@ -1418,9 +1418,11 @@ sub set_platform {
     }
     elsif (($FSTYPE eq "-f linux-ext2")
         || ($FSTYPE eq "-f linux-ext3")
+        || ($FSTYPE eq "-f linux-ext4")
         || ($FSTYPE eq "-f ext")
         || ($FSTYPE eq "-f ext2")
-        || ($FSTYPE eq "-f ext3"))
+        || ($FSTYPE eq "-f ext3")
+        || ($FSTYPE eq "-f ext4"))
     {
         $PLATFORM = "linux";
     }
diff --git a/tools/srchtools/Makefile.am b/tools/srchtools/Makefile.am
index 622837404e99237631c7e028c18893e642f04059..e7f8a7592213f40cbb26989ba52dfd7956a8a631 100644
--- a/tools/srchtools/Makefile.am
+++ b/tools/srchtools/Makefile.am
@@ -5,7 +5,7 @@ AM_CPPFLAGS = -I../.. -I$(srcdir)/../.. -Wall
 srch_strings_SOURCES = srch_strings.c
 
 sigfind_SOURCES = sigfind.cpp 
-sigfind_LDADD = ../../tsk3/libtsk3.la
+sigfind_LDADD = ../../tsk/libtsk.la
 sigfind_LDFLAGS = -static
 
 indent:
diff --git a/tools/srchtools/sigfind.cpp b/tools/srchtools/sigfind.cpp
index c7b67927b309b916de45b93a33cbda8562388447..23c016473538226b5c709ced71138b570e2358ca 100644
--- a/tools/srchtools/sigfind.cpp
+++ b/tools/srchtools/sigfind.cpp
@@ -9,7 +9,7 @@
  * This software is distributed under the Common Public License 1.0
  */
 
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -33,7 +33,7 @@ usage()
     fprintf(stderr,
             "\t-t template: The name of a data structure template:\n");
     fprintf(stderr,
-            "\t\tdospart, ext2, ext3, fat, hfs, hfs+, ntfs, ufs1, ufs2\n");
+            "\t\tdospart, ext2, ext3, ext4, fat, hfs, hfs+, ntfs, ufs1, ufs2\n");
     exit(1);
 }
 
@@ -90,7 +90,8 @@ main(int argc, char **argv)
 
         case 't':
             if ((strcmp(optarg, "ext2") == 0) ||
-                (strcmp(optarg, "ext3") == 0)) {
+                (strcmp(optarg, "ext3") == 0) ||
+                (strcmp(optarg, "ext4") == 0)) {
                 lit_end = 1;
                 sig[0] = 0x53;
                 sig[1] = 0xef;
diff --git a/tools/vstools/Makefile.am b/tools/vstools/Makefile.am
index e55f74ddc11b5b953181e8883fb6c1e08c7542b3..2ac9c2149bb7a6f212ed675ed6b371a5a5374689 100644
--- a/tools/vstools/Makefile.am
+++ b/tools/vstools/Makefile.am
@@ -1,5 +1,5 @@
 AM_CPPFLAGS = -I../.. -I$(srcdir)/../.. -Wall 
-LDADD = ../../tsk3/libtsk3.la
+LDADD = ../../tsk/libtsk.la
 LDFLAGS += -static
 EXTRA_DIST = .indent.pro
 
diff --git a/tools/vstools/mmcat.cpp b/tools/vstools/mmcat.cpp
index 5ae5aa7fdad10d34da26e2c758d2498310a5b774..ce3bca39d50ddc46aac00a16ee40dc55a906c5cf 100644
--- a/tools/vstools/mmcat.cpp
+++ b/tools/vstools/mmcat.cpp
@@ -9,7 +9,7 @@
  * This software is distributed under the Covson Public License 1.0
  */
 
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 
 #ifdef TSK_WIN32
 #include <fcntl.h>
diff --git a/tools/vstools/mmls.cpp b/tools/vstools/mmls.cpp
index b95d30537a13d217a95046b487f966e87a1d314a..412f19164fd52ec3ff06beccb14a3948b264bd29 100644
--- a/tools/vstools/mmls.cpp
+++ b/tools/vstools/mmls.cpp
@@ -9,7 +9,7 @@
  *
  * This software is distributed under the Common Public License 1.0
  */
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 
 static TSK_TCHAR *progname;
 
diff --git a/tools/vstools/mmstat.cpp b/tools/vstools/mmstat.cpp
index ec7130f1a5f33b78bc384078f3f103f549037ad2..60d392bdd1277960ed813a8d4863c9be0ffecb2a 100644
--- a/tools/vstools/mmstat.cpp
+++ b/tools/vstools/mmstat.cpp
@@ -10,7 +10,7 @@
  * This software is distributed under the Common Public License 1.0
  */
 
-#include "tsk3/tsk_tools_i.h"
+#include "tsk/tsk_tools_i.h"
 
 static TSK_TCHAR *progname;
 
diff --git a/tsk3/Makefile.am b/tsk/Makefile.am
similarity index 64%
rename from tsk3/Makefile.am
rename to tsk/Makefile.am
index 04ae47daa7f7b941752d96bc914b224c38a70d1a..bd8c0146670edda1c7e1420622656611d58be438 100644
--- a/tsk3/Makefile.am
+++ b/tsk/Makefile.am
@@ -2,12 +2,12 @@
 SUBDIRS = base img vs fs hashdb auto
 
 # Merge the libraries into one
-lib_LTLIBRARIES = libtsk3.la
-libtsk3_la_SOURCES =
-libtsk3_la_LIBADD = base/libtskbase.la img/libtskimg.la \
+lib_LTLIBRARIES = libtsk.la
+libtsk_la_SOURCES =
+libtsk_la_LIBADD = base/libtskbase.la img/libtskimg.la \
     vs/libtskvs.la fs/libtskfs.la hashdb/libtskhashdb.la \
     auto/libtskauto.la
 # current:revision:age
-libtsk3_la_LDFLAGS = -version-info 9:1:0
+libtsk_la_LDFLAGS = -version-info 9:1:0
 
 EXTRA_DIST = tsk_tools_i.h docs/Doxyfile docs/*.dox docs/*.html
diff --git a/tsk3/auto/.indent.pro b/tsk/auto/.indent.pro
similarity index 100%
rename from tsk3/auto/.indent.pro
rename to tsk/auto/.indent.pro
diff --git a/tsk3/auto/Makefile.am b/tsk/auto/Makefile.am
similarity index 100%
rename from tsk3/auto/Makefile.am
rename to tsk/auto/Makefile.am
diff --git a/tsk3/auto/auto.cpp b/tsk/auto/auto.cpp
similarity index 99%
rename from tsk3/auto/auto.cpp
rename to tsk/auto/auto.cpp
index 0a7034abaa56f54fc202001b7f7678c789851a39..6f9f4a1f34067a7d55b38908f3b65b21723e9bbc 100644
--- a/tsk3/auto/auto.cpp
+++ b/tsk/auto/auto.cpp
@@ -14,7 +14,7 @@
  */
 
 #include "tsk_auto_i.h"
-#include "tsk3/fs/tsk_fatfs.h"
+#include "tsk/fs/tsk_fatfs.h"
 
 
 // @@@ Follow through some error paths for sanity check and update docs somewhere to relfect the new scheme
@@ -667,11 +667,12 @@ TskAuto::isFATSystemFiles(TSK_FS_FILE * a_fs_file)
 
 /**
  * Utility method to help determine if a file is a . or .. directory.
+ * @param a_fs_file File to evaluate
  *
  * @returns 1 if the file is a dot directory, 0 if not. 
  */
 uint8_t
-TskAuto::isDotDir(TSK_FS_FILE * a_fs_file, const char *a_path)
+TskAuto::isDotDir(TSK_FS_FILE * a_fs_file)
 {
     if ((!a_fs_file) || (!a_fs_file->name)
         || (a_fs_file->name->type != TSK_FS_NAME_TYPE_DIR))
diff --git a/tsk3/auto/auto_db.cpp b/tsk/auto/auto_db.cpp
similarity index 99%
rename from tsk3/auto/auto_db.cpp
rename to tsk/auto/auto_db.cpp
index b05a3a9b530aa1e87e47220e1053aa4e9938d8c4..47f3b197249b37f89ba4317d2789986c48003055 100644
--- a/tsk3/auto/auto_db.cpp
+++ b/tsk/auto/auto_db.cpp
@@ -622,7 +622,7 @@ TskAutoDb::processAttribute(TSK_FS_FILE * fs_file,
 
     // add the block map, if requested and the file is non-resident
     if ((m_blkMapFlag) && (isNonResident(fs_attr))
-        && (isDotDir(fs_file, path) == 0)) {
+        && (isDotDir(fs_file) == 0)) {
         TSK_FS_ATTR_RUN *run;
         int sequence = 0;
 
diff --git a/tsk3/auto/case_db.cpp b/tsk/auto/case_db.cpp
similarity index 100%
rename from tsk3/auto/case_db.cpp
rename to tsk/auto/case_db.cpp
diff --git a/tsk3/auto/db_sqlite.cpp b/tsk/auto/db_sqlite.cpp
similarity index 100%
rename from tsk3/auto/db_sqlite.cpp
rename to tsk/auto/db_sqlite.cpp
diff --git a/tsk3/auto/sqlite3.c b/tsk/auto/sqlite3.c
similarity index 100%
rename from tsk3/auto/sqlite3.c
rename to tsk/auto/sqlite3.c
diff --git a/tsk3/auto/sqlite3.h b/tsk/auto/sqlite3.h
similarity index 100%
rename from tsk3/auto/sqlite3.h
rename to tsk/auto/sqlite3.h
diff --git a/tsk3/auto/tsk_auto.h b/tsk/auto/tsk_auto.h
similarity index 98%
rename from tsk3/auto/tsk_auto.h
rename to tsk/auto/tsk_auto.h
index 848a2704b818d0c685179c89293c525bf0e39c56..f99169ac4645c99b4ace3e2917de783653e83d77 100644
--- a/tsk3/auto/tsk_auto.h
+++ b/tsk/auto/tsk_auto.h
@@ -26,10 +26,10 @@
 
 // Include the other TSK header files
 
-#include "tsk3/base/tsk_base.h"
-#include "tsk3/img/tsk_img.h"
-#include "tsk3/vs/tsk_vs.h"
-#include "tsk3/fs/tsk_fs.h"
+#include "tsk/base/tsk_base.h"
+#include "tsk/img/tsk_img.h"
+#include "tsk/vs/tsk_vs.h"
+#include "tsk/fs/tsk_fs.h"
 
 #include <string>
 #include <vector>
@@ -225,7 +225,7 @@ class TskAuto {
     
     uint8_t isNtfsSystemFiles(TSK_FS_FILE * fs_file, const char *path);
     uint8_t isFATSystemFiles(TSK_FS_FILE * fs_file);
-    uint8_t isDotDir(TSK_FS_FILE * fs_file, const char *path);
+    uint8_t isDotDir(TSK_FS_FILE * fs_file);
     uint8_t isDir(TSK_FS_FILE * fs_file);
     uint8_t isFile(TSK_FS_FILE * fs_file);
     uint8_t isDefaultType(TSK_FS_FILE * fs_file,
diff --git a/tsk3/auto/tsk_auto_i.h b/tsk/auto/tsk_auto_i.h
similarity index 81%
rename from tsk3/auto/tsk_auto_i.h
rename to tsk/auto/tsk_auto_i.h
index b87a958afd50f4305e71170befe6b6f913f5b4f3..5125b1ad6d9c890515e5fab33f68d1ea17c2ff27 100644
--- a/tsk3/auto/tsk_auto_i.h
+++ b/tsk/auto/tsk_auto_i.h
@@ -20,10 +20,10 @@
 #ifdef __cplusplus
 
 // Include the other internal TSK header files
-#include "tsk3/base/tsk_base_i.h"
-#include "tsk3/img/tsk_img_i.h"
-#include "tsk3/vs/tsk_vs_i.h"
-#include "tsk3/fs/tsk_fs_i.h"
+#include "tsk/base/tsk_base_i.h"
+#include "tsk/img/tsk_img_i.h"
+#include "tsk/vs/tsk_vs_i.h"
+#include "tsk/fs/tsk_fs_i.h"
 
 // Include the external file 
 #include "tsk_auto.h"
diff --git a/tsk3/auto/tsk_case_db.h b/tsk/auto/tsk_case_db.h
similarity index 99%
rename from tsk3/auto/tsk_case_db.h
rename to tsk/auto/tsk_case_db.h
index b2f02e7a9e11898a451fb4cb167af77067fedd1f..c71eed1e6dd12845c57c80fdfc66a167dfaff3d9 100644
--- a/tsk3/auto/tsk_case_db.h
+++ b/tsk/auto/tsk_case_db.h
@@ -23,7 +23,7 @@ using std::string;
 
 #include "tsk_auto_i.h"
 #include "tsk_db_sqlite.h"
-#include "tsk3/hashdb/tsk_hashdb.h"
+#include "tsk/hashdb/tsk_hashdb.h"
 
 #define TSK_ADD_IMAGE_SAVEPOINT "ADDIMAGE"
 
diff --git a/tsk3/auto/tsk_db_sqlite.h b/tsk/auto/tsk_db_sqlite.h
similarity index 100%
rename from tsk3/auto/tsk_db_sqlite.h
rename to tsk/auto/tsk_db_sqlite.h
diff --git a/tsk3/base/.indent.pro b/tsk/base/.indent.pro
similarity index 100%
rename from tsk3/base/.indent.pro
rename to tsk/base/.indent.pro
diff --git a/tsk3/base/Makefile.am b/tsk/base/Makefile.am
similarity index 95%
rename from tsk3/base/Makefile.am
rename to tsk/base/Makefile.am
index 7c774c0c494201fd5c997df688e39e2d36867969..c8315ac9875d7a4ac628bb12ef9add5218bfe411 100644
--- a/tsk3/base/Makefile.am
+++ b/tsk/base/Makefile.am
@@ -3,6 +3,7 @@ AM_CXXFLAGS = -I../.. -Wall
 
 noinst_LTLIBRARIES = libtskbase.la
 libtskbase_la_SOURCES = md5c.c mymalloc.c sha1c.c \
+    crc.c crc.h \
     tsk_endian.c tsk_error.c tsk_list.c tsk_parse.c tsk_printf.c \
     tsk_unicode.c tsk_version.c tsk_stack.c XGetopt.c tsk_base_i.h \
     tsk_lock.c tsk_error_win32.cpp 
diff --git a/tsk3/base/XGetopt.c b/tsk/base/XGetopt.c
similarity index 100%
rename from tsk3/base/XGetopt.c
rename to tsk/base/XGetopt.c
diff --git a/tsk/base/crc.c b/tsk/base/crc.c
new file mode 100644
index 0000000000000000000000000000000000000000..3b416efae0e4ac98bdcca78c50a96400d2540f19
--- /dev/null
+++ b/tsk/base/crc.c
@@ -0,0 +1,233 @@
+/*
+
+Code taken and modified from:
+A PAINLESS GUIDE TO CRC ERROR DETECTION ALGORITHMS
+
+Where the following copyright appears:
+
+Status  : Copyright (C) Ross Williams, 1993. However, permission is
+          granted to make and distribute verbatim copies of this
+          document provided that this information block and copyright
+          notice is included. Also, the C code modules included
+          in this document are fully public domain.
+*/
+
+/******************************************************************************/
+/*                             Start of crcmodel.c                            */
+/******************************************************************************/
+/*                                                                            */
+/* Author : Ross Williams (ross@guest.adelaide.edu.au.).                      */
+/* Date   : 3 June 1993.                                                      */
+/* Status : Public domain.                                                    */
+/*                                                                            */
+/* Description : This is the implementation (.c) file for the reference       */
+/* implementation of the Rocksoft^tm Model CRC Algorithm. For more            */
+/* information on the Rocksoft^tm Model CRC Algorithm, see the document       */
+/* titled "A Painless Guide to CRC Error Detection Algorithms" by Ross        */
+/* Williams (ross@guest.adelaide.edu.au.). This document is likely to be in   */
+/* "ftp.adelaide.edu.au/pub/rocksoft".                                        */
+/*                                                                            */
+/* Note: Rocksoft is a trademark of Rocksoft Pty Ltd, Adelaide, Australia.    */
+/*                                                                            */
+/******************************************************************************/
+/*                                                                            */
+/* Implementation Notes                                                       */
+/* --------------------                                                       */
+/* To avoid inconsistencies, the specification of each function is not echoed */
+/* here. See the header file for a description of these functions.            */
+/* This package is light on checking because I want to keep it short and      */
+/* simple and portable (i.e. it would be too messy to distribute my entire    */
+/* C culture (e.g. assertions package) with this package.                     */
+/*                                                                            */
+/******************************************************************************/
+
+#include "crc.h"
+#include <stdio.h>
+
+#ifndef _MSC_VER
+#include <stdint.h>
+#endif
+/******************************************************************************/
+
+/* The following definitions make the code more readable. */
+
+#define BITMASK(X) (1L << (X))
+#define MASK32 0xFFFFFFFFL
+#define LOCAL static
+
+/******************************************************************************/
+
+LOCAL ulong reflect P_((ulong v,int b));
+LOCAL ulong reflect (v,b)
+/* Returns the value v with the bottom b [0,32] bits reflected. */
+/* Example: reflect(0x3e23L,3) == 0x3e26                        */
+ulong v;
+int   b;
+{
+ int   i;
+ ulong t = v;
+ for (i=0; i<b; i++)
+   {
+    if (t & 1L)
+       v|=  BITMASK((b-1)-i);
+    else
+       v&= ~BITMASK((b-1)-i);
+    t>>=1;
+   }
+ return v;
+}
+
+/******************************************************************************/
+
+LOCAL ulong widmask P_((p_cm_t));
+LOCAL ulong widmask (p_cm)
+/* Returns a longword whose value is (2^p_cm->cm_width)-1.     */
+/* The trick is to do this portably (e.g. without doing <<32). */
+p_cm_t p_cm;
+{
+ return (((1L<<(p_cm->cm_width-1))-1L)<<1)|1L;
+}
+
+/******************************************************************************/
+
+void cm_ini (p_cm)
+p_cm_t p_cm;
+{
+ p_cm->cm_reg = p_cm->cm_init;
+}
+
+/******************************************************************************/
+
+void cm_nxt (p_cm,ch)
+p_cm_t p_cm;
+int    ch;
+{
+ int   i;
+ ulong uch  = (ulong) ch;
+ ulong topbit = BITMASK(p_cm->cm_width-1);
+ 
+  
+ if (p_cm->cm_refin) uch = reflect(uch,8);
+ p_cm->cm_reg ^= (uch << (p_cm->cm_width-8));
+ for (i=0; i<8; i++)
+   {
+    if (p_cm->cm_reg & topbit)
+       p_cm->cm_reg = (p_cm->cm_reg << 1) ^ p_cm->cm_poly;
+    else
+       p_cm->cm_reg <<= 1;
+    p_cm->cm_reg &= widmask(p_cm);
+   }
+}
+
+/******************************************************************************/
+
+void cm_blk (p_cm,blk_adr,blk_len)
+p_cm_t   p_cm;
+p_ubyte_ blk_adr;
+ulong    blk_len;
+{
+ while (blk_len--) cm_nxt(p_cm,*blk_adr++);
+}
+
+/******************************************************************************/
+
+ulong cm_crc (p_cm)
+p_cm_t p_cm;
+{
+ if (p_cm->cm_refot)
+    return p_cm->cm_xorot ^ reflect(p_cm->cm_reg,p_cm->cm_width);
+ else
+    return p_cm->cm_xorot ^ p_cm->cm_reg;
+}
+
+/******************************************************************************/
+
+ulong cm_tab (p_cm_t p_cm, int index)
+{
+ int   i;
+ ulong r;
+ ulong topbit = BITMASK(p_cm->cm_width-1);
+ ulong inbyte = (ulong) index;
+
+ if (p_cm->cm_refin) inbyte = reflect(inbyte,8);
+ r = inbyte << (p_cm->cm_width-8);
+ for (i=0; i<8; i++)
+    if (r & topbit)
+       r = (r << 1) ^ p_cm->cm_poly;
+    else
+       r<<=1;
+ if (p_cm->cm_refin) r = reflect(r,p_cm->cm_width);
+ return r & widmask(p_cm);
+}
+
+
+void generate_crc_table(short *crctab[], p_cm_t p_cm){
+    int i, j;
+    unsigned long bit, crc;
+    unsigned long crchighbit = (unsigned long)1 << (p_cm->cm_width-1);
+    unsigned long crcmask = ((((unsigned long)1<<(p_cm->cm_width-1))-1)<<1)|1;
+
+    for (i=0; i<256; i++)
+    {
+        crc=(unsigned long)i;
+        if(p_cm->cm_refin) crc = reflect(crc,8);
+        crc <<= p_cm->cm_width-8;
+        for(j=0; j<8; j++)
+        {
+            bit = crc & crchighbit;
+            crc <<=1;
+            if(bit) crc ^=p_cm->cm_poly;
+        }
+        if(p_cm->cm_refin) crc = reflect(crc,p_cm->cm_width);
+        crc &= crcmask;
+        crctab[i]= crc;
+    }
+    return;
+}
+
+/******************************************************************************/
+/*                             End of crcmodel.c                              */
+/******************************************************************************/
+
+void crc16(p_cm_t crc_context, unsigned char const *buff, unsigned int size)
+{
+    while(size > 0)
+    {
+        cm_nxt(crc_context, *buff++);
+        size--;
+    }   
+}
+
+
+#ifdef TEST_CRC
+
+main()
+{
+    cm_t TestCRC;
+
+    TestCRC.cm_width = 16;
+    TestCRC.cm_poly = 0x8005L;
+    TestCRC.cm_init = 0x0000;
+//    TestCRC.cm_init = 0xFFFF;
+    TestCRC.cm_refin = TRUE;
+    TestCRC.cm_refot = TRUE;
+    TestCRC.cm_xorot = 0x0000;
+//    TestCRC.cm_xorot = 0xFFFF;
+
+    cm_ini(&TestCRC);
+    char TestString[]="123456789";
+    char *finger = NULL;
+    int i = 0;
+    for(i = 0; i <strlen(TestString); i++)
+    {
+        finger = &TestString[i];
+        printf("%c-", *finger);
+        cm_nxt(&TestCRC, *finger);
+    }
+        printf("\n");
+    printf("crc: 0x%04X\n", TestCRC.cm_reg);
+    printf("crc: 0x%04X\n", cm_crc(&TestCRC));
+ 
+}
+
+#endif
diff --git a/tsk/base/crc.h b/tsk/base/crc.h
new file mode 100644
index 0000000000000000000000000000000000000000..cd41c44d1548b7451a88bfdf06a3554d26dea5db
--- /dev/null
+++ b/tsk/base/crc.h
@@ -0,0 +1,173 @@
+/*
+
+Code taken and modified from:
+A PAINLESS GUIDE TO CRC ERROR DETECTION ALGORITHMS
+
+Where the following copyright appears:
+
+Status  : Copyright (C) Ross Williams, 1993. However, permission is
+          granted to make and distribute verbatim copies of this
+          document provided that this information block and copyright
+          notice is included. Also, the C code modules included
+          in this document are fully public domain.
+*/
+/******************************************************************************/
+/*                             Start of crcmodel.h                            */
+/******************************************************************************/
+/*                                                                            */
+/* Author : Ross Williams (ross@guest.adelaide.edu.au.).                      */
+/* Date   : 3 June 1993.                                                      */
+/* Status : Public domain.                                                    */
+/*                                                                            */
+/* Description : This is the header (.h) file for the reference               */
+/* implementation of the Rocksoft^tm Model CRC Algorithm. For more            */
+/* information on the Rocksoft^tm Model CRC Algorithm, see the document       */
+/* titled "A Painless Guide to CRC Error Detection Algorithms" by Ross        */
+/* Williams (ross@guest.adelaide.edu.au.). This document is likely to be in   */
+/* "ftp.adelaide.edu.au/pub/rocksoft".                                        */
+/*                                                                            */
+/* Note: Rocksoft is a trademark of Rocksoft Pty Ltd, Adelaide, Australia.    */
+/*                                                                            */
+/******************************************************************************/
+/*                                                                            */
+/* How to Use This Package                                                    */
+/* -----------------------                                                    */
+/* Step 1: Declare a variable of type cm_t. Declare another variable          */
+/*         (p_cm say) of type p_cm_t and initialize it to point to the first  */
+/*         variable (e.g. p_cm_t p_cm = &cm_t).                               */
+/*                                                                            */
+/* Step 2: Assign values to the parameter fields of the structure.            */
+/*         If you don't know what to assign, see the document cited earlier.  */
+/*         For example:                                                       */
+/*            p_cm->cm_width = 16;                                            */
+/*            p_cm->cm_poly  = 0x8005L;                                       */
+/*            p_cm->cm_init  = 0L;                                            */
+/*            p_cm->cm_refin = TRUE;                                          */
+/*            p_cm->cm_refot = TRUE;                                          */
+/*            p_cm->cm_xorot = 0L;                                            */
+/*         Note: Poly is specified without its top bit (18005 becomes 8005).  */
+/*         Note: Width is one bit less than the raw poly width.               */
+/*                                                                            */
+/* Step 3: Initialize the instance with a call cm_ini(p_cm);                  */
+/*                                                                            */
+/* Step 4: Process zero or more message bytes by placing zero or more         */
+/*         successive calls to cm_nxt. Example: cm_nxt(p_cm,ch);              */
+/*                                                                            */
+/* Step 5: Extract the CRC value at any time by calling crc = cm_crc(p_cm);   */
+/*         If the CRC is a 16-bit value, it will be in the bottom 16 bits.    */
+/*                                                                            */
+/******************************************************************************/
+/*                                                                            */
+/* Design Notes                                                               */
+/* ------------                                                               */
+/* PORTABILITY: This package has been coded very conservatively so that       */
+/* it will run on as many machines as possible. For example, all external     */
+/* identifiers have been restricted to 6 characters and all internal ones to  */
+/* 8 characters. The prefix cm (for Crc Model) is used as an attempt to avoid */
+/* namespace collisions. This package is endian independent.                  */
+/*                                                                            */
+/* EFFICIENCY: This package (and its interface) is not designed for           */
+/* speed. The purpose of this package is to act as a well-defined reference   */
+/* model for the specification of CRC algorithms. If you want speed, cook up  */
+/* a specific table-driven implementation as described in the document cited  */
+/* above. This package is designed for validation only; if you have found or  */
+/* implemented a CRC algorithm and wish to describe it as a set of parameters */
+/* to the Rocksoft^tm Model CRC Algorithm, your CRC algorithm implementation  */
+/* should behave identically to this package under those parameters.          */
+/*                                                                            */
+/******************************************************************************/
+
+/* The following #ifndef encloses this entire */
+/* header file, rendering it indempotent.     */
+#ifndef CM_DONE
+#define CM_DONE
+
+/******************************************************************************/
+
+/* The following definitions are extracted from my style header file which    */
+/* would be cumbersome to distribute with this package. The DONE_STYLE is the */
+/* idempotence symbol used in my style header file.                           */
+
+#ifndef DONE_STYLE
+
+typedef unsigned long   ulong;
+typedef unsigned        bool;
+typedef unsigned char * p_ubyte_;
+
+#ifndef TRUE
+#define FALSE 0
+#define TRUE  1
+#endif
+
+/* Change to the second definition if you don't have prototypes. */
+#define P_(A) A
+/* #define P_(A) () */
+
+/* Uncomment this definition if you don't have void. */
+/* typedef int void; */
+
+#endif
+
+/******************************************************************************/
+
+/* CRC Model Abstract Type */
+/* ----------------------- */
+/* The following type stores the context of an executing instance of the  */
+/* model algorithm. Most of the fields are model parameters which must be */
+/* set before the first initializing call to cm_ini.                      */
+typedef struct
+  {
+   int   cm_width;   /* Parameter: Width in bits [8,32].       */
+   ulong cm_poly;    /* Parameter: The algorithm's polynomial. */
+   ulong cm_init;    /* Parameter: Initial register value.     */
+   bool  cm_refin;   /* Parameter: Reflect input bytes?        */
+   bool  cm_refot;   /* Parameter: Reflect output CRC?         */
+   ulong cm_xorot;   /* Parameter: XOR this to output CRC.     */
+
+   ulong cm_reg;     /* Context: Context during execution.     */
+  } cm_t;
+typedef cm_t *p_cm_t;
+
+/******************************************************************************/
+
+/* Functions That Implement The Model */
+/* ---------------------------------- */
+/* The following functions animate the cm_t abstraction. */
+
+void cm_ini P_((p_cm_t p_cm));
+/* Initializes the argument CRC model instance.          */
+/* All parameter fields must be set before calling this. */
+
+void cm_nxt P_((p_cm_t p_cm,int ch));
+/* Processes a single message byte [0,255]. */
+
+void cm_blk P_((p_cm_t p_cm,p_ubyte_ blk_adr,ulong blk_len));
+/* Processes a block of message bytes. */
+
+ulong cm_crc P_((p_cm_t p_cm));
+/* Returns the CRC value for the message bytes processed so far. */
+
+/******************************************************************************/
+
+/* Functions For Table Calculation */
+/* ------------------------------- */
+/* The following function can be used to calculate a CRC lookup table.        */
+/* It can also be used at run-time to create or check static tables.          */
+
+ulong cm_tab P_((p_cm_t p_cm,int index));
+/* Returns the i'th entry for the lookup table for the specified algorithm.   */
+/* The function examines the fields cm_width, cm_poly, cm_refin, and the      */
+/* argument table index in the range [0,255] and returns the table entry in   */
+/* the bottom cm_width bytes of the return value.                             */
+
+/******************************************************************************/
+
+/* End of the header file idempotence #ifndef */
+
+void crc16(p_cm_t crc_context, unsigned char const *buff, unsigned int size);
+
+#endif
+
+/******************************************************************************/
+/*                             End of crcmodel.h                              */
+/******************************************************************************/
diff --git a/tsk3/base/md5c.c b/tsk/base/md5c.c
similarity index 100%
rename from tsk3/base/md5c.c
rename to tsk/base/md5c.c
diff --git a/tsk3/base/mymalloc.c b/tsk/base/mymalloc.c
similarity index 100%
rename from tsk3/base/mymalloc.c
rename to tsk/base/mymalloc.c
diff --git a/tsk3/base/sha1c.c b/tsk/base/sha1c.c
similarity index 100%
rename from tsk3/base/sha1c.c
rename to tsk/base/sha1c.c
diff --git a/tsk/base/sha2.c b/tsk/base/sha2.c
new file mode 100644
index 0000000000000000000000000000000000000000..c019ac184d0c6502dbbe8ffdb4dfd25687e069d3
--- /dev/null
+++ b/tsk/base/sha2.c
@@ -0,0 +1,949 @@
+/*
+ * FIPS 180-2 SHA-224/256/384/512 implementation
+ * Last update: 02/02/2007
+ * Issue date:  04/30/2005
+ *
+ * Copyright (C) 2005, 2007 Olivier Gay <olivier.gay@a3.epfl.ch>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#if 0
+#define UNROLL_LOOPS /* Enable loops unrolling */
+#endif
+
+#include <string.h>
+
+#include "sha2.h"
+
+#define SHFR(x, n)    (x >> n)
+#define ROTR(x, n)   ((x >> n) | (x << ((sizeof(x) << 3) - n)))
+#define ROTL(x, n)   ((x << n) | (x >> ((sizeof(x) << 3) - n)))
+#define CH(x, y, z)  ((x & y) ^ (~x & z))
+#define MAJ(x, y, z) ((x & y) ^ (x & z) ^ (y & z))
+
+#define SHA256_F1(x) (ROTR(x,  2) ^ ROTR(x, 13) ^ ROTR(x, 22))
+#define SHA256_F2(x) (ROTR(x,  6) ^ ROTR(x, 11) ^ ROTR(x, 25))
+#define SHA256_F3(x) (ROTR(x,  7) ^ ROTR(x, 18) ^ SHFR(x,  3))
+#define SHA256_F4(x) (ROTR(x, 17) ^ ROTR(x, 19) ^ SHFR(x, 10))
+
+#define SHA512_F1(x) (ROTR(x, 28) ^ ROTR(x, 34) ^ ROTR(x, 39))
+#define SHA512_F2(x) (ROTR(x, 14) ^ ROTR(x, 18) ^ ROTR(x, 41))
+#define SHA512_F3(x) (ROTR(x,  1) ^ ROTR(x,  8) ^ SHFR(x,  7))
+#define SHA512_F4(x) (ROTR(x, 19) ^ ROTR(x, 61) ^ SHFR(x,  6))
+
+#define UNPACK32(x, str)                      \
+{                                             \
+    *((str) + 3) = (uint8) ((x)      );       \
+    *((str) + 2) = (uint8) ((x) >>  8);       \
+    *((str) + 1) = (uint8) ((x) >> 16);       \
+    *((str) + 0) = (uint8) ((x) >> 24);       \
+}
+
+#define PACK32(str, x)                        \
+{                                             \
+    *(x) =   ((uint32) *((str) + 3)      )    \
+           | ((uint32) *((str) + 2) <<  8)    \
+           | ((uint32) *((str) + 1) << 16)    \
+           | ((uint32) *((str) + 0) << 24);   \
+}
+
+#define UNPACK64(x, str)                      \
+{                                             \
+    *((str) + 7) = (uint8) ((x)      );       \
+    *((str) + 6) = (uint8) ((x) >>  8);       \
+    *((str) + 5) = (uint8) ((x) >> 16);       \
+    *((str) + 4) = (uint8) ((x) >> 24);       \
+    *((str) + 3) = (uint8) ((x) >> 32);       \
+    *((str) + 2) = (uint8) ((x) >> 40);       \
+    *((str) + 1) = (uint8) ((x) >> 48);       \
+    *((str) + 0) = (uint8) ((x) >> 56);       \
+}
+
+#define PACK64(str, x)                        \
+{                                             \
+    *(x) =   ((uint64) *((str) + 7)      )    \
+           | ((uint64) *((str) + 6) <<  8)    \
+           | ((uint64) *((str) + 5) << 16)    \
+           | ((uint64) *((str) + 4) << 24)    \
+           | ((uint64) *((str) + 3) << 32)    \
+           | ((uint64) *((str) + 2) << 40)    \
+           | ((uint64) *((str) + 1) << 48)    \
+           | ((uint64) *((str) + 0) << 56);   \
+}
+
+/* Macros used for loops unrolling */
+
+#define SHA256_SCR(i)                         \
+{                                             \
+    w[i] =  SHA256_F4(w[i -  2]) + w[i -  7]  \
+          + SHA256_F3(w[i - 15]) + w[i - 16]; \
+}
+
+#define SHA512_SCR(i)                         \
+{                                             \
+    w[i] =  SHA512_F4(w[i -  2]) + w[i -  7]  \
+          + SHA512_F3(w[i - 15]) + w[i - 16]; \
+}
+
+#define SHA256_EXP(a, b, c, d, e, f, g, h, j)               \
+{                                                           \
+    t1 = wv[h] + SHA256_F2(wv[e]) + CH(wv[e], wv[f], wv[g]) \
+         + sha256_k[j] + w[j];                              \
+    t2 = SHA256_F1(wv[a]) + MAJ(wv[a], wv[b], wv[c]);       \
+    wv[d] += t1;                                            \
+    wv[h] = t1 + t2;                                        \
+}
+
+#define SHA512_EXP(a, b, c, d, e, f, g ,h, j)               \
+{                                                           \
+    t1 = wv[h] + SHA512_F2(wv[e]) + CH(wv[e], wv[f], wv[g]) \
+         + sha512_k[j] + w[j];                              \
+    t2 = SHA512_F1(wv[a]) + MAJ(wv[a], wv[b], wv[c]);       \
+    wv[d] += t1;                                            \
+    wv[h] = t1 + t2;                                        \
+}
+
+uint32 sha224_h0[8] =
+            {0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,
+             0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4};
+
+uint32 sha256_h0[8] =
+            {0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,
+             0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19};
+
+uint64 sha384_h0[8] =
+            {0xcbbb9d5dc1059ed8ULL, 0x629a292a367cd507ULL,
+             0x9159015a3070dd17ULL, 0x152fecd8f70e5939ULL,
+             0x67332667ffc00b31ULL, 0x8eb44a8768581511ULL,
+             0xdb0c2e0d64f98fa7ULL, 0x47b5481dbefa4fa4ULL};
+
+uint64 sha512_h0[8] =
+            {0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL,
+             0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL,
+             0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL,
+             0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL};
+
+uint32 sha256_k[64] =
+            {0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
+             0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
+             0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
+             0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
+             0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
+             0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
+             0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,
+             0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
+             0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
+             0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
+             0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
+             0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
+             0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
+             0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
+             0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
+             0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2};
+
+uint64 sha512_k[80] =
+            {0x428a2f98d728ae22ULL, 0x7137449123ef65cdULL,
+             0xb5c0fbcfec4d3b2fULL, 0xe9b5dba58189dbbcULL,
+             0x3956c25bf348b538ULL, 0x59f111f1b605d019ULL,
+             0x923f82a4af194f9bULL, 0xab1c5ed5da6d8118ULL,
+             0xd807aa98a3030242ULL, 0x12835b0145706fbeULL,
+             0x243185be4ee4b28cULL, 0x550c7dc3d5ffb4e2ULL,
+             0x72be5d74f27b896fULL, 0x80deb1fe3b1696b1ULL,
+             0x9bdc06a725c71235ULL, 0xc19bf174cf692694ULL,
+             0xe49b69c19ef14ad2ULL, 0xefbe4786384f25e3ULL,
+             0x0fc19dc68b8cd5b5ULL, 0x240ca1cc77ac9c65ULL,
+             0x2de92c6f592b0275ULL, 0x4a7484aa6ea6e483ULL,
+             0x5cb0a9dcbd41fbd4ULL, 0x76f988da831153b5ULL,
+             0x983e5152ee66dfabULL, 0xa831c66d2db43210ULL,
+             0xb00327c898fb213fULL, 0xbf597fc7beef0ee4ULL,
+             0xc6e00bf33da88fc2ULL, 0xd5a79147930aa725ULL,
+             0x06ca6351e003826fULL, 0x142929670a0e6e70ULL,
+             0x27b70a8546d22ffcULL, 0x2e1b21385c26c926ULL,
+             0x4d2c6dfc5ac42aedULL, 0x53380d139d95b3dfULL,
+             0x650a73548baf63deULL, 0x766a0abb3c77b2a8ULL,
+             0x81c2c92e47edaee6ULL, 0x92722c851482353bULL,
+             0xa2bfe8a14cf10364ULL, 0xa81a664bbc423001ULL,
+             0xc24b8b70d0f89791ULL, 0xc76c51a30654be30ULL,
+             0xd192e819d6ef5218ULL, 0xd69906245565a910ULL,
+             0xf40e35855771202aULL, 0x106aa07032bbd1b8ULL,
+             0x19a4c116b8d2d0c8ULL, 0x1e376c085141ab53ULL,
+             0x2748774cdf8eeb99ULL, 0x34b0bcb5e19b48a8ULL,
+             0x391c0cb3c5c95a63ULL, 0x4ed8aa4ae3418acbULL,
+             0x5b9cca4f7763e373ULL, 0x682e6ff3d6b2b8a3ULL,
+             0x748f82ee5defb2fcULL, 0x78a5636f43172f60ULL,
+             0x84c87814a1f0ab72ULL, 0x8cc702081a6439ecULL,
+             0x90befffa23631e28ULL, 0xa4506cebde82bde9ULL,
+             0xbef9a3f7b2c67915ULL, 0xc67178f2e372532bULL,
+             0xca273eceea26619cULL, 0xd186b8c721c0c207ULL,
+             0xeada7dd6cde0eb1eULL, 0xf57d4f7fee6ed178ULL,
+             0x06f067aa72176fbaULL, 0x0a637dc5a2c898a6ULL,
+             0x113f9804bef90daeULL, 0x1b710b35131c471bULL,
+             0x28db77f523047d84ULL, 0x32caab7b40c72493ULL,
+             0x3c9ebe0a15c9bebcULL, 0x431d67c49c100d4cULL,
+             0x4cc5d4becb3e42b6ULL, 0x597f299cfc657e2aULL,
+             0x5fcb6fab3ad6faecULL, 0x6c44198c4a475817ULL};
+
+/* SHA-256 functions */
+
+void sha256_transf(SHA256_CTX *ctx, const unsigned char *message,
+                   unsigned int block_nb)
+{
+    uint32 w[64];
+    uint32 wv[8];
+    uint32 t1, t2;
+    const unsigned char *sub_block;
+    int i;
+
+#ifndef UNROLL_LOOPS
+    int j;
+#endif
+
+    for (i = 0; i < (int) block_nb; i++) {
+        sub_block = message + (i << 6);
+
+#ifndef UNROLL_LOOPS
+        for (j = 0; j < 16; j++) {
+            PACK32(&sub_block[j << 2], &w[j]);
+        }
+
+        for (j = 16; j < 64; j++) {
+            SHA256_SCR(j);
+        }
+
+        for (j = 0; j < 8; j++) {
+            wv[j] = ctx->h[j];
+        }
+
+        for (j = 0; j < 64; j++) {
+            t1 = wv[7] + SHA256_F2(wv[4]) + CH(wv[4], wv[5], wv[6])
+                + sha256_k[j] + w[j];
+            t2 = SHA256_F1(wv[0]) + MAJ(wv[0], wv[1], wv[2]);
+            wv[7] = wv[6];
+            wv[6] = wv[5];
+            wv[5] = wv[4];
+            wv[4] = wv[3] + t1;
+            wv[3] = wv[2];
+            wv[2] = wv[1];
+            wv[1] = wv[0];
+            wv[0] = t1 + t2;
+        }
+
+        for (j = 0; j < 8; j++) {
+            ctx->h[j] += wv[j];
+        }
+#else
+        PACK32(&sub_block[ 0], &w[ 0]); PACK32(&sub_block[ 4], &w[ 1]);
+        PACK32(&sub_block[ 8], &w[ 2]); PACK32(&sub_block[12], &w[ 3]);
+        PACK32(&sub_block[16], &w[ 4]); PACK32(&sub_block[20], &w[ 5]);
+        PACK32(&sub_block[24], &w[ 6]); PACK32(&sub_block[28], &w[ 7]);
+        PACK32(&sub_block[32], &w[ 8]); PACK32(&sub_block[36], &w[ 9]);
+        PACK32(&sub_block[40], &w[10]); PACK32(&sub_block[44], &w[11]);
+        PACK32(&sub_block[48], &w[12]); PACK32(&sub_block[52], &w[13]);
+        PACK32(&sub_block[56], &w[14]); PACK32(&sub_block[60], &w[15]);
+
+        SHA256_SCR(16); SHA256_SCR(17); SHA256_SCR(18); SHA256_SCR(19);
+        SHA256_SCR(20); SHA256_SCR(21); SHA256_SCR(22); SHA256_SCR(23);
+        SHA256_SCR(24); SHA256_SCR(25); SHA256_SCR(26); SHA256_SCR(27);
+        SHA256_SCR(28); SHA256_SCR(29); SHA256_SCR(30); SHA256_SCR(31);
+        SHA256_SCR(32); SHA256_SCR(33); SHA256_SCR(34); SHA256_SCR(35);
+        SHA256_SCR(36); SHA256_SCR(37); SHA256_SCR(38); SHA256_SCR(39);
+        SHA256_SCR(40); SHA256_SCR(41); SHA256_SCR(42); SHA256_SCR(43);
+        SHA256_SCR(44); SHA256_SCR(45); SHA256_SCR(46); SHA256_SCR(47);
+        SHA256_SCR(48); SHA256_SCR(49); SHA256_SCR(50); SHA256_SCR(51);
+        SHA256_SCR(52); SHA256_SCR(53); SHA256_SCR(54); SHA256_SCR(55);
+        SHA256_SCR(56); SHA256_SCR(57); SHA256_SCR(58); SHA256_SCR(59);
+        SHA256_SCR(60); SHA256_SCR(61); SHA256_SCR(62); SHA256_SCR(63);
+
+        wv[0] = ctx->h[0]; wv[1] = ctx->h[1];
+        wv[2] = ctx->h[2]; wv[3] = ctx->h[3];
+        wv[4] = ctx->h[4]; wv[5] = ctx->h[5];
+        wv[6] = ctx->h[6]; wv[7] = ctx->h[7];
+
+        SHA256_EXP(0,1,2,3,4,5,6,7, 0); SHA256_EXP(7,0,1,2,3,4,5,6, 1);
+        SHA256_EXP(6,7,0,1,2,3,4,5, 2); SHA256_EXP(5,6,7,0,1,2,3,4, 3);
+        SHA256_EXP(4,5,6,7,0,1,2,3, 4); SHA256_EXP(3,4,5,6,7,0,1,2, 5);
+        SHA256_EXP(2,3,4,5,6,7,0,1, 6); SHA256_EXP(1,2,3,4,5,6,7,0, 7);
+        SHA256_EXP(0,1,2,3,4,5,6,7, 8); SHA256_EXP(7,0,1,2,3,4,5,6, 9);
+        SHA256_EXP(6,7,0,1,2,3,4,5,10); SHA256_EXP(5,6,7,0,1,2,3,4,11);
+        SHA256_EXP(4,5,6,7,0,1,2,3,12); SHA256_EXP(3,4,5,6,7,0,1,2,13);
+        SHA256_EXP(2,3,4,5,6,7,0,1,14); SHA256_EXP(1,2,3,4,5,6,7,0,15);
+        SHA256_EXP(0,1,2,3,4,5,6,7,16); SHA256_EXP(7,0,1,2,3,4,5,6,17);
+        SHA256_EXP(6,7,0,1,2,3,4,5,18); SHA256_EXP(5,6,7,0,1,2,3,4,19);
+        SHA256_EXP(4,5,6,7,0,1,2,3,20); SHA256_EXP(3,4,5,6,7,0,1,2,21);
+        SHA256_EXP(2,3,4,5,6,7,0,1,22); SHA256_EXP(1,2,3,4,5,6,7,0,23);
+        SHA256_EXP(0,1,2,3,4,5,6,7,24); SHA256_EXP(7,0,1,2,3,4,5,6,25);
+        SHA256_EXP(6,7,0,1,2,3,4,5,26); SHA256_EXP(5,6,7,0,1,2,3,4,27);
+        SHA256_EXP(4,5,6,7,0,1,2,3,28); SHA256_EXP(3,4,5,6,7,0,1,2,29);
+        SHA256_EXP(2,3,4,5,6,7,0,1,30); SHA256_EXP(1,2,3,4,5,6,7,0,31);
+        SHA256_EXP(0,1,2,3,4,5,6,7,32); SHA256_EXP(7,0,1,2,3,4,5,6,33);
+        SHA256_EXP(6,7,0,1,2,3,4,5,34); SHA256_EXP(5,6,7,0,1,2,3,4,35);
+        SHA256_EXP(4,5,6,7,0,1,2,3,36); SHA256_EXP(3,4,5,6,7,0,1,2,37);
+        SHA256_EXP(2,3,4,5,6,7,0,1,38); SHA256_EXP(1,2,3,4,5,6,7,0,39);
+        SHA256_EXP(0,1,2,3,4,5,6,7,40); SHA256_EXP(7,0,1,2,3,4,5,6,41);
+        SHA256_EXP(6,7,0,1,2,3,4,5,42); SHA256_EXP(5,6,7,0,1,2,3,4,43);
+        SHA256_EXP(4,5,6,7,0,1,2,3,44); SHA256_EXP(3,4,5,6,7,0,1,2,45);
+        SHA256_EXP(2,3,4,5,6,7,0,1,46); SHA256_EXP(1,2,3,4,5,6,7,0,47);
+        SHA256_EXP(0,1,2,3,4,5,6,7,48); SHA256_EXP(7,0,1,2,3,4,5,6,49);
+        SHA256_EXP(6,7,0,1,2,3,4,5,50); SHA256_EXP(5,6,7,0,1,2,3,4,51);
+        SHA256_EXP(4,5,6,7,0,1,2,3,52); SHA256_EXP(3,4,5,6,7,0,1,2,53);
+        SHA256_EXP(2,3,4,5,6,7,0,1,54); SHA256_EXP(1,2,3,4,5,6,7,0,55);
+        SHA256_EXP(0,1,2,3,4,5,6,7,56); SHA256_EXP(7,0,1,2,3,4,5,6,57);
+        SHA256_EXP(6,7,0,1,2,3,4,5,58); SHA256_EXP(5,6,7,0,1,2,3,4,59);
+        SHA256_EXP(4,5,6,7,0,1,2,3,60); SHA256_EXP(3,4,5,6,7,0,1,2,61);
+        SHA256_EXP(2,3,4,5,6,7,0,1,62); SHA256_EXP(1,2,3,4,5,6,7,0,63);
+
+        ctx->h[0] += wv[0]; ctx->h[1] += wv[1];
+        ctx->h[2] += wv[2]; ctx->h[3] += wv[3];
+        ctx->h[4] += wv[4]; ctx->h[5] += wv[5];
+        ctx->h[6] += wv[6]; ctx->h[7] += wv[7];
+#endif /* !UNROLL_LOOPS */
+    }
+}
+
+void SHA256(const unsigned char *message, unsigned int len, unsigned char *digest)
+{
+    SHA256_CTX ctx;
+
+    SHA256_Init(&ctx);
+    SHA256_Update(&ctx, message, len);
+    SHA256_Final(&ctx, digest);
+}
+
+void SHA256_Init(SHA256_CTX *ctx)
+{
+#ifndef UNROLL_LOOPS
+    int i;
+    for (i = 0; i < 8; i++) {
+        ctx->h[i] = sha256_h0[i];
+    }
+#else
+    ctx->h[0] = sha256_h0[0]; ctx->h[1] = sha256_h0[1];
+    ctx->h[2] = sha256_h0[2]; ctx->h[3] = sha256_h0[3];
+    ctx->h[4] = sha256_h0[4]; ctx->h[5] = sha256_h0[5];
+    ctx->h[6] = sha256_h0[6]; ctx->h[7] = sha256_h0[7];
+#endif /* !UNROLL_LOOPS */
+
+    ctx->len = 0;
+    ctx->tot_len = 0;
+}
+
+void SHA256_Update(SHA256_CTX *ctx, const unsigned char *message,
+                   unsigned int len)
+{
+    unsigned int block_nb;
+    unsigned int new_len, rem_len, tmp_len;
+    const unsigned char *shifted_message;
+
+    tmp_len = SHA256_BLOCK_SIZE - ctx->len;
+    rem_len = len < tmp_len ? len : tmp_len;
+
+    memcpy(&ctx->block[ctx->len], message, rem_len);
+
+    if (ctx->len + len < SHA256_BLOCK_SIZE) {
+        ctx->len += len;
+        return;
+    }
+
+    new_len = len - rem_len;
+    block_nb = new_len / SHA256_BLOCK_SIZE;
+
+    shifted_message = message + rem_len;
+
+    sha256_transf(ctx, ctx->block, 1);
+    sha256_transf(ctx, shifted_message, block_nb);
+
+    rem_len = new_len % SHA256_BLOCK_SIZE;
+
+    memcpy(ctx->block, &shifted_message[block_nb << 6],
+           rem_len);
+
+    ctx->len = rem_len;
+    ctx->tot_len += (block_nb + 1) << 6;
+}
+
+void SHA256_Final(SHA256_CTX *ctx, unsigned char *digest)
+{
+    unsigned int block_nb;
+    unsigned int pm_len;
+    unsigned int len_b;
+
+#ifndef UNROLL_LOOPS
+    int i;
+#endif
+
+    block_nb = (1 + ((SHA256_BLOCK_SIZE - 9)
+                     < (ctx->len % SHA256_BLOCK_SIZE)));
+
+    len_b = (ctx->tot_len + ctx->len) << 3;
+    pm_len = block_nb << 6;
+
+    memset(ctx->block + ctx->len, 0, pm_len - ctx->len);
+    ctx->block[ctx->len] = 0x80;
+    UNPACK32(len_b, ctx->block + pm_len - 4);
+
+    sha256_transf(ctx, ctx->block, block_nb);
+
+#ifndef UNROLL_LOOPS
+    for (i = 0 ; i < 8; i++) {
+        UNPACK32(ctx->h[i], &digest[i << 2]);
+    }
+#else
+   UNPACK32(ctx->h[0], &digest[ 0]);
+   UNPACK32(ctx->h[1], &digest[ 4]);
+   UNPACK32(ctx->h[2], &digest[ 8]);
+   UNPACK32(ctx->h[3], &digest[12]);
+   UNPACK32(ctx->h[4], &digest[16]);
+   UNPACK32(ctx->h[5], &digest[20]);
+   UNPACK32(ctx->h[6], &digest[24]);
+   UNPACK32(ctx->h[7], &digest[28]);
+#endif /* !UNROLL_LOOPS */
+}
+
+/* SHA-512 functions */
+
+void sha512_transf(SHA512_CTX *ctx, const unsigned char *message,
+                   unsigned int block_nb)
+{
+    uint64 w[80];
+    uint64 wv[8];
+    uint64 t1, t2;
+    const unsigned char *sub_block;
+    int i, j;
+
+    for (i = 0; i < (int) block_nb; i++) {
+        sub_block = message + (i << 7);
+
+#ifndef UNROLL_LOOPS
+        for (j = 0; j < 16; j++) {
+            PACK64(&sub_block[j << 3], &w[j]);
+        }
+
+        for (j = 16; j < 80; j++) {
+            SHA512_SCR(j);
+        }
+
+        for (j = 0; j < 8; j++) {
+            wv[j] = ctx->h[j];
+        }
+
+        for (j = 0; j < 80; j++) {
+            t1 = wv[7] + SHA512_F2(wv[4]) + CH(wv[4], wv[5], wv[6])
+                + sha512_k[j] + w[j];
+            t2 = SHA512_F1(wv[0]) + MAJ(wv[0], wv[1], wv[2]);
+            wv[7] = wv[6];
+            wv[6] = wv[5];
+            wv[5] = wv[4];
+            wv[4] = wv[3] + t1;
+            wv[3] = wv[2];
+            wv[2] = wv[1];
+            wv[1] = wv[0];
+            wv[0] = t1 + t2;
+        }
+
+        for (j = 0; j < 8; j++) {
+            ctx->h[j] += wv[j];
+        }
+#else
+        PACK64(&sub_block[  0], &w[ 0]); PACK64(&sub_block[  8], &w[ 1]);
+        PACK64(&sub_block[ 16], &w[ 2]); PACK64(&sub_block[ 24], &w[ 3]);
+        PACK64(&sub_block[ 32], &w[ 4]); PACK64(&sub_block[ 40], &w[ 5]);
+        PACK64(&sub_block[ 48], &w[ 6]); PACK64(&sub_block[ 56], &w[ 7]);
+        PACK64(&sub_block[ 64], &w[ 8]); PACK64(&sub_block[ 72], &w[ 9]);
+        PACK64(&sub_block[ 80], &w[10]); PACK64(&sub_block[ 88], &w[11]);
+        PACK64(&sub_block[ 96], &w[12]); PACK64(&sub_block[104], &w[13]);
+        PACK64(&sub_block[112], &w[14]); PACK64(&sub_block[120], &w[15]);
+
+        SHA512_SCR(16); SHA512_SCR(17); SHA512_SCR(18); SHA512_SCR(19);
+        SHA512_SCR(20); SHA512_SCR(21); SHA512_SCR(22); SHA512_SCR(23);
+        SHA512_SCR(24); SHA512_SCR(25); SHA512_SCR(26); SHA512_SCR(27);
+        SHA512_SCR(28); SHA512_SCR(29); SHA512_SCR(30); SHA512_SCR(31);
+        SHA512_SCR(32); SHA512_SCR(33); SHA512_SCR(34); SHA512_SCR(35);
+        SHA512_SCR(36); SHA512_SCR(37); SHA512_SCR(38); SHA512_SCR(39);
+        SHA512_SCR(40); SHA512_SCR(41); SHA512_SCR(42); SHA512_SCR(43);
+        SHA512_SCR(44); SHA512_SCR(45); SHA512_SCR(46); SHA512_SCR(47);
+        SHA512_SCR(48); SHA512_SCR(49); SHA512_SCR(50); SHA512_SCR(51);
+        SHA512_SCR(52); SHA512_SCR(53); SHA512_SCR(54); SHA512_SCR(55);
+        SHA512_SCR(56); SHA512_SCR(57); SHA512_SCR(58); SHA512_SCR(59);
+        SHA512_SCR(60); SHA512_SCR(61); SHA512_SCR(62); SHA512_SCR(63);
+        SHA512_SCR(64); SHA512_SCR(65); SHA512_SCR(66); SHA512_SCR(67);
+        SHA512_SCR(68); SHA512_SCR(69); SHA512_SCR(70); SHA512_SCR(71);
+        SHA512_SCR(72); SHA512_SCR(73); SHA512_SCR(74); SHA512_SCR(75);
+        SHA512_SCR(76); SHA512_SCR(77); SHA512_SCR(78); SHA512_SCR(79);
+
+        wv[0] = ctx->h[0]; wv[1] = ctx->h[1];
+        wv[2] = ctx->h[2]; wv[3] = ctx->h[3];
+        wv[4] = ctx->h[4]; wv[5] = ctx->h[5];
+        wv[6] = ctx->h[6]; wv[7] = ctx->h[7];
+
+        j = 0;
+
+        do {
+            SHA512_EXP(0,1,2,3,4,5,6,7,j); j++;
+            SHA512_EXP(7,0,1,2,3,4,5,6,j); j++;
+            SHA512_EXP(6,7,0,1,2,3,4,5,j); j++;
+            SHA512_EXP(5,6,7,0,1,2,3,4,j); j++;
+            SHA512_EXP(4,5,6,7,0,1,2,3,j); j++;
+            SHA512_EXP(3,4,5,6,7,0,1,2,j); j++;
+            SHA512_EXP(2,3,4,5,6,7,0,1,j); j++;
+            SHA512_EXP(1,2,3,4,5,6,7,0,j); j++;
+        } while (j < 80);
+
+        ctx->h[0] += wv[0]; ctx->h[1] += wv[1];
+        ctx->h[2] += wv[2]; ctx->h[3] += wv[3];
+        ctx->h[4] += wv[4]; ctx->h[5] += wv[5];
+        ctx->h[6] += wv[6]; ctx->h[7] += wv[7];
+#endif /* !UNROLL_LOOPS */
+    }
+}
+
+void SHA512(const unsigned char *message, unsigned int len,
+            unsigned char *digest)
+{
+    SHA512_CTX ctx;
+
+    SHA512_Init(&ctx);
+    SHA512_Update(&ctx, message, len);
+    SHA512_Final(&ctx, digest);
+}
+
+void SHA512_Init(SHA512_CTX *ctx)
+{
+#ifndef UNROLL_LOOPS
+    int i;
+    for (i = 0; i < 8; i++) {
+        ctx->h[i] = sha512_h0[i];
+    }
+#else
+    ctx->h[0] = sha512_h0[0]; ctx->h[1] = sha512_h0[1];
+    ctx->h[2] = sha512_h0[2]; ctx->h[3] = sha512_h0[3];
+    ctx->h[4] = sha512_h0[4]; ctx->h[5] = sha512_h0[5];
+    ctx->h[6] = sha512_h0[6]; ctx->h[7] = sha512_h0[7];
+#endif /* !UNROLL_LOOPS */
+
+    ctx->len = 0;
+    ctx->tot_len = 0;
+}
+
+void SHA512_Update(SHA512_CTX *ctx, const unsigned char *message,
+                   unsigned int len)
+{
+    unsigned int block_nb;
+    unsigned int new_len, rem_len, tmp_len;
+    const unsigned char *shifted_message;
+
+    tmp_len = SHA512_BLOCK_SIZE - ctx->len;
+    rem_len = len < tmp_len ? len : tmp_len;
+
+    memcpy(&ctx->block[ctx->len], message, rem_len);
+
+    if (ctx->len + len < SHA512_BLOCK_SIZE) {
+        ctx->len += len;
+        return;
+    }
+
+    new_len = len - rem_len;
+    block_nb = new_len / SHA512_BLOCK_SIZE;
+
+    shifted_message = message + rem_len;
+
+    sha512_transf(ctx, ctx->block, 1);
+    sha512_transf(ctx, shifted_message, block_nb);
+
+    rem_len = new_len % SHA512_BLOCK_SIZE;
+
+    memcpy(ctx->block, &shifted_message[block_nb << 7],
+           rem_len);
+
+    ctx->len = rem_len;
+    ctx->tot_len += (block_nb + 1) << 7;
+}
+
+void SHA512_Final(SHA512_CTX *ctx, unsigned char *digest)
+{
+    unsigned int block_nb;
+    unsigned int pm_len;
+    unsigned int len_b;
+
+#ifndef UNROLL_LOOPS
+    int i;
+#endif
+
+    block_nb = 1 + ((SHA512_BLOCK_SIZE - 17)
+                     < (ctx->len % SHA512_BLOCK_SIZE));
+
+    len_b = (ctx->tot_len + ctx->len) << 3;
+    pm_len = block_nb << 7;
+
+    memset(ctx->block + ctx->len, 0, pm_len - ctx->len);
+    ctx->block[ctx->len] = 0x80;
+    UNPACK32(len_b, ctx->block + pm_len - 4);
+
+    sha512_transf(ctx, ctx->block, block_nb);
+
+#ifndef UNROLL_LOOPS
+    for (i = 0 ; i < 8; i++) {
+        UNPACK64(ctx->h[i], &digest[i << 3]);
+    }
+#else
+    UNPACK64(ctx->h[0], &digest[ 0]);
+    UNPACK64(ctx->h[1], &digest[ 8]);
+    UNPACK64(ctx->h[2], &digest[16]);
+    UNPACK64(ctx->h[3], &digest[24]);
+    UNPACK64(ctx->h[4], &digest[32]);
+    UNPACK64(ctx->h[5], &digest[40]);
+    UNPACK64(ctx->h[6], &digest[48]);
+    UNPACK64(ctx->h[7], &digest[56]);
+#endif /* !UNROLL_LOOPS */
+}
+
+/* SHA-384 functions */
+
+void SHA384(const unsigned char *message, unsigned int len,
+            unsigned char *digest)
+{
+    SHA384_CTX ctx;
+
+    SHA384_Init(&ctx);
+    SHA384_Update(&ctx, message, len);
+    SHA384_Final(&ctx, digest);
+}
+
+void SHA384_Init(SHA384_CTX *ctx)
+{
+#ifndef UNROLL_LOOPS
+    int i;
+    for (i = 0; i < 8; i++) {
+        ctx->h[i] = sha384_h0[i];
+    }
+#else
+    ctx->h[0] = sha384_h0[0]; ctx->h[1] = sha384_h0[1];
+    ctx->h[2] = sha384_h0[2]; ctx->h[3] = sha384_h0[3];
+    ctx->h[4] = sha384_h0[4]; ctx->h[5] = sha384_h0[5];
+    ctx->h[6] = sha384_h0[6]; ctx->h[7] = sha384_h0[7];
+#endif /* !UNROLL_LOOPS */
+
+    ctx->len = 0;
+    ctx->tot_len = 0;
+}
+
+void SHA384_Update(SHA384_CTX *ctx, const unsigned char *message,
+                   unsigned int len)
+{
+    unsigned int block_nb;
+    unsigned int new_len, rem_len, tmp_len;
+    const unsigned char *shifted_message;
+
+    tmp_len = SHA384_BLOCK_SIZE - ctx->len;
+    rem_len = len < tmp_len ? len : tmp_len;
+
+    memcpy(&ctx->block[ctx->len], message, rem_len);
+
+    if (ctx->len + len < SHA384_BLOCK_SIZE) {
+        ctx->len += len;
+        return;
+    }
+
+    new_len = len - rem_len;
+    block_nb = new_len / SHA384_BLOCK_SIZE;
+
+    shifted_message = message + rem_len;
+
+    sha512_transf(ctx, ctx->block, 1);
+    sha512_transf(ctx, shifted_message, block_nb);
+
+    rem_len = new_len % SHA384_BLOCK_SIZE;
+
+    memcpy(ctx->block, &shifted_message[block_nb << 7],
+           rem_len);
+
+    ctx->len = rem_len;
+    ctx->tot_len += (block_nb + 1) << 7;
+}
+
+void SHA384_Final(SHA384_CTX *ctx, unsigned char *digest)
+{
+    unsigned int block_nb;
+    unsigned int pm_len;
+    unsigned int len_b;
+
+#ifndef UNROLL_LOOPS
+    int i;
+#endif
+
+    block_nb = (1 + ((SHA384_BLOCK_SIZE - 17)
+                     < (ctx->len % SHA384_BLOCK_SIZE)));
+
+    len_b = (ctx->tot_len + ctx->len) << 3;
+    pm_len = block_nb << 7;
+
+    memset(ctx->block + ctx->len, 0, pm_len - ctx->len);
+    ctx->block[ctx->len] = 0x80;
+    UNPACK32(len_b, ctx->block + pm_len - 4);
+
+    sha512_transf(ctx, ctx->block, block_nb);
+
+#ifndef UNROLL_LOOPS
+    for (i = 0 ; i < 6; i++) {
+        UNPACK64(ctx->h[i], &digest[i << 3]);
+    }
+#else
+    UNPACK64(ctx->h[0], &digest[ 0]);
+    UNPACK64(ctx->h[1], &digest[ 8]);
+    UNPACK64(ctx->h[2], &digest[16]);
+    UNPACK64(ctx->h[3], &digest[24]);
+    UNPACK64(ctx->h[4], &digest[32]);
+    UNPACK64(ctx->h[5], &digest[40]);
+#endif /* !UNROLL_LOOPS */
+}
+
+/* SHA-224 functions */
+
+void SHA224(const unsigned char *message, unsigned int len,
+            unsigned char *digest)
+{
+    SHA224_CTX ctx;
+
+    SHA224_Init(&ctx);
+    SHA224_Update(&ctx, message, len);
+    SHA224_Final(&ctx, digest);
+}
+
+void SHA224_Init(SHA224_CTX *ctx)
+{
+#ifndef UNROLL_LOOPS
+    int i;
+    for (i = 0; i < 8; i++) {
+        ctx->h[i] = sha224_h0[i];
+    }
+#else
+    ctx->h[0] = sha224_h0[0]; ctx->h[1] = sha224_h0[1];
+    ctx->h[2] = sha224_h0[2]; ctx->h[3] = sha224_h0[3];
+    ctx->h[4] = sha224_h0[4]; ctx->h[5] = sha224_h0[5];
+    ctx->h[6] = sha224_h0[6]; ctx->h[7] = sha224_h0[7];
+#endif /* !UNROLL_LOOPS */
+
+    ctx->len = 0;
+    ctx->tot_len = 0;
+}
+
+void SHA224_Update(SHA224_CTX *ctx, const unsigned char *message,
+                   unsigned int len)
+{
+    unsigned int block_nb;
+    unsigned int new_len, rem_len, tmp_len;
+    const unsigned char *shifted_message;
+
+    tmp_len = SHA224_BLOCK_SIZE - ctx->len;
+    rem_len = len < tmp_len ? len : tmp_len;
+
+    memcpy(&ctx->block[ctx->len], message, rem_len);
+
+    if (ctx->len + len < SHA224_BLOCK_SIZE) {
+        ctx->len += len;
+        return;
+    }
+
+    new_len = len - rem_len;
+    block_nb = new_len / SHA224_BLOCK_SIZE;
+
+    shifted_message = message + rem_len;
+
+    sha256_transf(ctx, ctx->block, 1);
+    sha256_transf(ctx, shifted_message, block_nb);
+
+    rem_len = new_len % SHA224_BLOCK_SIZE;
+
+    memcpy(ctx->block, &shifted_message[block_nb << 6],
+           rem_len);
+
+    ctx->len = rem_len;
+    ctx->tot_len += (block_nb + 1) << 6;
+}
+
+void SHA224_Final(SHA224_CTX *ctx, unsigned char *digest)
+{
+    unsigned int block_nb;
+    unsigned int pm_len;
+    unsigned int len_b;
+
+#ifndef UNROLL_LOOPS
+    int i;
+#endif
+
+    block_nb = (1 + ((SHA224_BLOCK_SIZE - 9)
+                     < (ctx->len % SHA224_BLOCK_SIZE)));
+
+    len_b = (ctx->tot_len + ctx->len) << 3;
+    pm_len = block_nb << 6;
+
+    memset(ctx->block + ctx->len, 0, pm_len - ctx->len);
+    ctx->block[ctx->len] = 0x80;
+    UNPACK32(len_b, ctx->block + pm_len - 4);
+
+    sha256_transf(ctx, ctx->block, block_nb);
+
+#ifndef UNROLL_LOOPS
+    for (i = 0 ; i < 7; i++) {
+        UNPACK32(ctx->h[i], &digest[i << 2]);
+    }
+#else
+   UNPACK32(ctx->h[0], &digest[ 0]);
+   UNPACK32(ctx->h[1], &digest[ 4]);
+   UNPACK32(ctx->h[2], &digest[ 8]);
+   UNPACK32(ctx->h[3], &digest[12]);
+   UNPACK32(ctx->h[4], &digest[16]);
+   UNPACK32(ctx->h[5], &digest[20]);
+   UNPACK32(ctx->h[6], &digest[24]);
+#endif /* !UNROLL_LOOPS */
+}
+
+#ifdef TEST_VECTORS
+
+/* FIPS 180-2 Validation tests */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+void test(const char *vector, unsigned char *digest,
+          unsigned int digest_size)
+{
+    char output[2 * SHA512_DIGEST_SIZE + 1];
+    int i;
+
+    output[2 * digest_size] = '\0';
+
+    for (i = 0; i < (int) digest_size ; i++) {
+       sprintf(output + 2 * i, "%02x", digest[i]);
+    }
+
+    printf("H: %s\n", output);
+    if (strcmp(vector, output)) {
+        fprintf(stderr, "Test failed.\n");
+        exit(EXIT_FAILURE);
+    }
+}
+
+int main(void)
+{
+    static const char *vectors[4][3] =
+    {   /* SHA-224 */
+        {
+        "23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7",
+        "75388b16512776cc5dba5da1fd890150b0c6455cb4f58b1952522525",
+        "20794655980c91d8bbb4c1ea97618a4bf03f42581948b2ee4ee7ad67",
+        },
+        /* SHA-256 */
+        {
+        "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad",
+        "248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1",
+        "cdc76e5c9914fb9281a1c7e284d73e67f1809a48a497200e046d39ccc7112cd0",
+        },
+        /* SHA-384 */
+        {
+        "cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed"
+        "8086072ba1e7cc2358baeca134c825a7",
+        "09330c33f71147e83d192fc782cd1b4753111b173b3b05d22fa08086e3b0f712"
+        "fcc7c71a557e2db966c3e9fa91746039",
+        "9d0e1809716474cb086e834e310a4a1ced149e9c00f248527972cec5704c2a5b"
+        "07b8b3dc38ecc4ebae97ddd87f3d8985",
+        },
+        /* SHA-512 */
+        {
+        "ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a"
+        "2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f",
+        "8e959b75dae313da8cf4f72814fc143f8f7779c6eb9f7fa17299aeadb6889018"
+        "501d289e4900f7e4331b99dec4b5433ac7d329eeb6dd26545e96e55b874be909",
+        "e718483d0ce769644e2e42c7bc15b4638e1f98b13b2044285632a803afa973eb"
+        "de0ff244877ea60a4cb0432ce577c31beb009c5c2c49aa2e4eadb217ad8cc09b"
+        }
+    };
+
+    static const char message1[] = "abc";
+    static const char message2a[] = "abcdbcdecdefdefgefghfghighijhi"
+                                    "jkijkljklmklmnlmnomnopnopq";
+    static const char message2b[] = "abcdefghbcdefghicdefghijdefghijkefghij"
+                                    "klfghijklmghijklmnhijklmnoijklmnopjklm"
+                                    "nopqklmnopqrlmnopqrsmnopqrstnopqrstu";
+    unsigned char *message3;
+    unsigned int message3_len = 1000000;
+    unsigned char digest[SHA512_DIGEST_SIZE];
+
+    message3 = malloc(message3_len);
+    if (message3 == NULL) {
+        fprintf(stderr, "Can't allocate memory\n");
+        return -1;
+    }
+    memset(message3, 'a', message3_len);
+
+    printf("SHA-2 FIPS 180-2 Validation tests\n\n");
+    printf("SHA-224 Test vectors\n");
+
+    sha224((const unsigned char *) message1, strlen(message1), digest);
+    test(vectors[0][0], digest, SHA224_DIGEST_SIZE);
+    sha224((const unsigned char *) message2a, strlen(message2a), digest);
+    test(vectors[0][1], digest, SHA224_DIGEST_SIZE);
+    sha224(message3, message3_len, digest);
+    test(vectors[0][2], digest, SHA224_DIGEST_SIZE);
+    printf("\n");
+
+    printf("SHA-256 Test vectors\n");
+
+    sha256((const unsigned char *) message1, strlen(message1), digest);
+    test(vectors[1][0], digest, SHA256_DIGEST_SIZE);
+    sha256((const unsigned char *) message2a, strlen(message2a), digest);
+    test(vectors[1][1], digest, SHA256_DIGEST_SIZE);
+    sha256(message3, message3_len, digest);
+    test(vectors[1][2], digest, SHA256_DIGEST_SIZE);
+    printf("\n");
+
+    printf("SHA-384 Test vectors\n");
+
+    sha384((const unsigned char *) message1, strlen(message1), digest);
+    test(vectors[2][0], digest, SHA384_DIGEST_SIZE);
+    sha384((const unsigned char *)message2b, strlen(message2b), digest);
+    test(vectors[2][1], digest, SHA384_DIGEST_SIZE);
+    sha384(message3, message3_len, digest);
+    test(vectors[2][2], digest, SHA384_DIGEST_SIZE);
+    printf("\n");
+
+    printf("SHA-512 Test vectors\n");
+
+    sha512((const unsigned char *) message1, strlen(message1), digest);
+    test(vectors[3][0], digest, SHA512_DIGEST_SIZE);
+    sha512((const unsigned char *) message2b, strlen(message2b), digest);
+    test(vectors[3][1], digest, SHA512_DIGEST_SIZE);
+    sha512(message3, message3_len, digest);
+    test(vectors[3][2], digest, SHA512_DIGEST_SIZE);
+    printf("\n");
+
+    printf("All tests passed.\n");
+
+    return 0;
+}
+
+#endif /* TEST_VECTORS */
+
diff --git a/tsk/base/sha2.h b/tsk/base/sha2.h
new file mode 100644
index 0000000000000000000000000000000000000000..186e8183fbae20dbb57fe917817a2e018c33a83c
--- /dev/null
+++ b/tsk/base/sha2.h
@@ -0,0 +1,108 @@
+/*
+ * FIPS 180-2 SHA-224/256/384/512 implementation
+ * Last update: 02/02/2007
+ * Issue date:  04/30/2005
+ *
+ * Copyright (C) 2005, 2007 Olivier Gay <olivier.gay@a3.epfl.ch>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef SHA2_H
+#define SHA2_H
+
+#define SHA224_DIGEST_LENGTH ( 224 / 8)
+#define SHA256_DIGEST_LENGTH ( 256 / 8)
+#define SHA384_DIGEST_LENGTH ( 384 / 8)
+#define SHA512_DIGEST_LENGTH ( 512 / 8)
+
+#define SHA256_BLOCK_SIZE  ( 512 / 8)
+#define SHA512_BLOCK_SIZE  (1024 / 8)
+#define SHA384_BLOCK_SIZE  SHA512_BLOCK_SIZE
+#define SHA224_BLOCK_SIZE  SHA256_BLOCK_SIZE
+
+#ifndef SHA2_TYPES
+#define SHA2_TYPES
+typedef unsigned char uint8;
+typedef unsigned int  uint32;
+typedef unsigned long long uint64;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct {
+    unsigned int tot_len;
+    unsigned int len;
+    unsigned char block[2 * SHA256_BLOCK_SIZE];
+    uint32 h[8];
+} SHA256_CTX;
+
+typedef struct {
+    unsigned int tot_len;
+    unsigned int len;
+    unsigned char block[2 * SHA512_BLOCK_SIZE];
+    uint64 h[8];
+} SHA512_CTX;
+
+typedef SHA512_CTX SHA384_CTX;
+typedef SHA256_CTX SHA224_CTX;
+
+void SHA224_Init(SHA224_CTX *ctx);
+void SHA224_Update(SHA224_CTX *ctx, const unsigned char *message,
+                   unsigned int len);
+void SHA224_Final(SHA224_CTX *ctx, unsigned char *digest);
+void SHA224(const unsigned char *message, unsigned int len,
+            unsigned char *digest);
+
+void SHA256_Init(SHA256_CTX * ctx);
+void SHA256_Update(SHA256_CTX *ctx, const unsigned char *message,
+                   unsigned int len);
+void SHA256_Final(SHA256_CTX *ctx, unsigned char *digest);
+void SHA256(const unsigned char *message, unsigned int len,
+            unsigned char *digest);
+
+void SHA384_Init(SHA384_CTX *ctx);
+void SHA384_Update(SHA384_CTX *ctx, const unsigned char *message,
+                   unsigned int len);
+void SHA384_Final(SHA384_CTX *ctx, unsigned char *digest);
+void SHA384(const unsigned char *message, unsigned int len,
+            unsigned char *digest);
+
+void SHA512_Init(SHA512_CTX *ctx);
+void SHA512_Update(SHA512_CTX *ctx, const unsigned char *message,
+                   unsigned int len);
+void SHA512_Final(SHA512_CTX *ctx, unsigned char *digest);
+void SHA512(const unsigned char *message, unsigned int len,
+            unsigned char *digest);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !SHA2_H */
+
diff --git a/tsk3/base/tsk_base.h b/tsk/base/tsk_base.h
similarity index 99%
rename from tsk3/base/tsk_base.h
rename to tsk/base/tsk_base.h
index ec2821dbd2e066a6d5ed121a384bbb79930abd71..6bb7660c98f330e23d722a5a10687757fbfd89a2 100644
--- a/tsk3/base/tsk_base.h
+++ b/tsk/base/tsk_base.h
@@ -50,7 +50,7 @@
  * On Win32 (Visual Studio) though, we will not have this file...
  */
 #if !defined(_MSC_VER)
-#include "tsk3/tsk_incs.h"
+#include "tsk/tsk_incs.h"
 #endif
 
 // get some other TSK / OS settings
diff --git a/tsk3/base/tsk_base_i.h b/tsk/base/tsk_base_i.h
similarity index 95%
rename from tsk3/base/tsk_base_i.h
rename to tsk/base/tsk_base_i.h
index 52fd0a99e3c8c7b745542acaa2b04b09dac33717..4506b93e3902189ae746893131681110d3c4712f 100644
--- a/tsk3/base/tsk_base_i.h
+++ b/tsk/base/tsk_base_i.h
@@ -12,7 +12,7 @@
 
 // include the autoconf header file
 #if HAVE_CONFIG_H
-#include "tsk3/tsk_config.h"
+#include "tsk/tsk_config.h"
 #endif
 
 /* Some Linux systems need LARGEFILE64_SOURCE and autoconf does
@@ -313,6 +313,12 @@ extern "C" {
         const UTF8 * sourceEnd,
         UTF16 ** targetStart, UTF16 * targetEnd, TSKConversionFlags flags);
 
+    extern TSKConversionResult tsk_UTF8toUTF16W(const UTF8 ** sourceStart,
+                                                const UTF8 * sourceEnd, 
+                                                wchar_t ** targetStart,
+                                                wchar_t * targetEnd, 
+                                                TSKConversionFlags flags);
+
     extern TSKConversionResult tsk_UTF16toUTF8(TSK_ENDIAN_ENUM,
         const UTF16 ** sourceStart, const UTF16 * sourceEnd,
         UTF8 ** targetStart, UTF8 * targetEnd, TSKConversionFlags flags);
@@ -322,6 +328,10 @@ extern "C" {
         const UTF16 * sourceEnd, UTF8 ** targetStart,
         UTF8 * targetEnd, TSKConversionFlags flags);
 
+    extern TSKConversionResult
+        tsk_UTF16WtoUTF8_lclorder(const wchar_t ** sourceStart,
+        const wchar_t * sourceEnd, UTF8 ** targetStart,
+        UTF8 * targetEnd, TSKConversionFlags flags);
 
     extern Boolean tsk_isLegalUTF8Sequence(const UTF8 * source,
         const UTF8 * sourceEnd);
diff --git a/tsk3/base/tsk_endian.c b/tsk/base/tsk_endian.c
similarity index 100%
rename from tsk3/base/tsk_endian.c
rename to tsk/base/tsk_endian.c
diff --git a/tsk3/base/tsk_error.c b/tsk/base/tsk_error.c
similarity index 100%
rename from tsk3/base/tsk_error.c
rename to tsk/base/tsk_error.c
diff --git a/tsk3/base/tsk_error_win32.cpp b/tsk/base/tsk_error_win32.cpp
similarity index 100%
rename from tsk3/base/tsk_error_win32.cpp
rename to tsk/base/tsk_error_win32.cpp
diff --git a/tsk3/base/tsk_list.c b/tsk/base/tsk_list.c
similarity index 100%
rename from tsk3/base/tsk_list.c
rename to tsk/base/tsk_list.c
diff --git a/tsk3/base/tsk_lock.c b/tsk/base/tsk_lock.c
similarity index 100%
rename from tsk3/base/tsk_lock.c
rename to tsk/base/tsk_lock.c
diff --git a/tsk3/base/tsk_os.h b/tsk/base/tsk_os.h
similarity index 100%
rename from tsk3/base/tsk_os.h
rename to tsk/base/tsk_os.h
diff --git a/tsk3/base/tsk_parse.c b/tsk/base/tsk_parse.c
similarity index 100%
rename from tsk3/base/tsk_parse.c
rename to tsk/base/tsk_parse.c
diff --git a/tsk3/base/tsk_printf.c b/tsk/base/tsk_printf.c
similarity index 100%
rename from tsk3/base/tsk_printf.c
rename to tsk/base/tsk_printf.c
diff --git a/tsk3/base/tsk_stack.c b/tsk/base/tsk_stack.c
similarity index 100%
rename from tsk3/base/tsk_stack.c
rename to tsk/base/tsk_stack.c
diff --git a/tsk3/base/tsk_unicode.c b/tsk/base/tsk_unicode.c
similarity index 75%
rename from tsk3/base/tsk_unicode.c
rename to tsk/base/tsk_unicode.c
index 944615c3900754bd4e2dd313331a2aaa45bf8ecc..14c2b482373d0545867156cec753d201cd85a50b 100644
--- a/tsk3/base/tsk_unicode.c
+++ b/tsk/base/tsk_unicode.c
@@ -355,6 +355,106 @@ tsk_UTF16toUTF8_lclorder(const UTF16 ** sourceStart,
     return result;
 }
 
+TSKConversionResult
+tsk_UTF16WtoUTF8_lclorder(const wchar_t ** sourceStart,
+    const wchar_t * sourceEnd, UTF8 ** targetStart,
+    UTF8 * targetEnd, TSKConversionFlags flags)
+{
+    TSKConversionResult result = TSKconversionOK;
+    const wchar_t *source = *sourceStart;
+    UTF8 *target = *targetStart;
+    while (source < sourceEnd) {
+        UTF32 ch;
+        unsigned short bytesToWrite = 0;
+        const UTF32 byteMask = 0xBF;
+        const UTF32 byteMark = 0x80;
+        const wchar_t *oldSource = source;        /* In case we have to back up because of target overflow. */
+        ch = *source++;
+
+        /* If we have a surrogate pair, convert to UTF32 first. */
+        if (ch >= UNI_SUR_HIGH_START && ch <= UNI_SUR_HIGH_END) {
+            /* If the 16 bits following the high surrogate are in the source buffer... */
+            if (source < sourceEnd) {
+                UTF32 ch2 = *source;
+                source++;
+                /* If it's a low surrogate, convert to UTF32. */
+                if (ch2 >= UNI_SUR_LOW_START && ch2 <= UNI_SUR_LOW_END) {
+                    ch = ((ch - UNI_SUR_HIGH_START) << halfShift)
+                        + (ch2 - UNI_SUR_LOW_START) + halfBase;
+                }
+                else if (flags == TSKstrictConversion) {        /* it's an unpaired high surrogate */
+                    result = TSKsourceIllegal;
+                    break;
+                }
+                // replace with another character
+                else {
+                    ch = '^';
+                }
+            }
+            else {              /* We don't have the 16 bits following the high surrogate. */
+                --source;       /* return to the high surrogate */
+                result = TSKsourceExhausted;
+                break;
+            }
+        }
+        /* UTF-16 surrogate values are illegal in UTF-32 */
+        else if (ch >= UNI_SUR_LOW_START && ch <= UNI_SUR_LOW_END) {
+            if (flags == TSKstrictConversion) {
+                --source;       /* return to the illegal value itself */
+                result = TSKsourceIllegal;
+                break;
+            }
+            // replace with another character
+            else {
+                ch = '^';
+            }
+        }
+
+        /* Figure out how many bytes the result will require */
+        if (ch < (UTF32) 0x80) {
+            bytesToWrite = 1;
+        }
+        else if (ch < (UTF32) 0x800) {
+            bytesToWrite = 2;
+        }
+        else if (ch < (UTF32) 0x10000) {
+            bytesToWrite = 3;
+        }
+        else if (ch < (UTF32) 0x110000) {
+            bytesToWrite = 4;
+        }
+        else {
+            bytesToWrite = 3;
+            ch = TSK_UNI_REPLACEMENT_CHAR;
+        }
+
+        target += bytesToWrite;
+        if (target > targetEnd) {
+            source = oldSource; /* Back up source pointer! */
+            target -= bytesToWrite;
+            result = TSKtargetExhausted;
+            break;
+        }
+        switch (bytesToWrite) { /* note: everything falls through. */
+        case 4:
+            *--target = (UTF8) ((ch | byteMark) & byteMask);
+            ch >>= 6;
+        case 3:
+            *--target = (UTF8) ((ch | byteMark) & byteMask);
+            ch >>= 6;
+        case 2:
+            *--target = (UTF8) ((ch | byteMark) & byteMask);
+            ch >>= 6;
+        case 1:
+            *--target = (UTF8) (ch | firstByteMark[bytesToWrite]);
+        }
+        target += bytesToWrite;
+    }
+    *sourceStart = source;
+    *targetStart = target;
+    return result;
+}
+
 /* --------------------------------------------------------------------- */
 
 /*
@@ -571,3 +671,95 @@ tsk_UTF8toUTF16(const UTF8 ** sourceStart,
     *targetStart = target;
     return result;
 }
+
+TSKConversionResult
+tsk_UTF8toUTF16W(const UTF8 ** sourceStart,
+    const UTF8 * sourceEnd, wchar_t ** targetStart,
+    wchar_t * targetEnd, TSKConversionFlags flags)
+{
+    TSKConversionResult result = TSKconversionOK;
+    const UTF8 *source = *sourceStart;
+    wchar_t *target = *targetStart;
+    while (source < sourceEnd) {
+        UTF32 ch = 0;
+        unsigned short extraBytesToRead = trailingBytesForUTF8[*source];
+        if (source + extraBytesToRead >= sourceEnd) {
+            result = TSKsourceExhausted;
+            break;
+        }
+        /* Do this check whether lenient or strict */
+        if (!isLegalUTF8(source, extraBytesToRead + 1)) {
+            result = TSKsourceIllegal;
+            break;
+        }
+        /*
+         * The cases all fall through. See "Note A" below.
+         */
+        switch (extraBytesToRead) {
+        case 5:
+            ch += *source++;
+            ch <<= 6;           /* remember, illegal UTF-8 */
+        case 4:
+            ch += *source++;
+            ch <<= 6;           /* remember, illegal UTF-8 */
+        case 3:
+            ch += *source++;
+            ch <<= 6;
+        case 2:
+            ch += *source++;
+            ch <<= 6;
+        case 1:
+            ch += *source++;
+            ch <<= 6;
+        case 0:
+            ch += *source++;
+        }
+        ch -= offsetsFromUTF8[extraBytesToRead];
+
+        if (target >= targetEnd) {
+            source -= (extraBytesToRead + 1);   /* Back up source pointer! */
+            result = TSKtargetExhausted;
+            break;
+        }
+        if (ch <= TSK_UNI_MAX_BMP) {    /* Target is a character <= 0xFFFF */
+            /* UTF-16 surrogate values are illegal in UTF-32 */
+            if (ch >= UNI_SUR_HIGH_START && ch <= UNI_SUR_LOW_END) {
+                if (flags == TSKstrictConversion) {
+                    source -= (extraBytesToRead + 1);   /* return to the illegal value itself */
+                    result = TSKsourceIllegal;
+                    break;
+                }
+                else {
+                    *target++ = TSK_UNI_REPLACEMENT_CHAR;
+                }
+            }
+            else {
+                *target++ = (wchar_t) ch; /* normal case */
+            }
+        }
+        else if (ch > TSK_UNI_MAX_UTF16) {
+            if (flags == TSKstrictConversion) {
+                result = TSKsourceIllegal;
+                source -= (extraBytesToRead + 1);       /* return to the start */
+                break;          /* Bail out; shouldn't continue */
+            }
+            else {
+                *target++ = TSK_UNI_REPLACEMENT_CHAR;
+            }
+        }
+        else {
+            /* target is a character in range 0xFFFF - 0x10FFFF. */
+            if (target + 1 >= targetEnd) {
+                source -= (extraBytesToRead + 1);       /* Back up source pointer! */
+                result = TSKtargetExhausted;
+                break;
+            }
+            ch -= halfBase;
+            *target++ = (wchar_t) ((ch >> halfShift) + UNI_SUR_HIGH_START);
+            *target++ = (wchar_t) ((ch & halfMask) + UNI_SUR_LOW_START);
+        }
+    }
+    *sourceStart = source;
+    *targetStart = target;
+    return result;
+}
diff --git a/tsk3/base/tsk_version.c b/tsk/base/tsk_version.c
similarity index 100%
rename from tsk3/base/tsk_version.c
rename to tsk/base/tsk_version.c
diff --git a/tsk3/docs/Doxyfile b/tsk/docs/Doxyfile
similarity index 99%
rename from tsk3/docs/Doxyfile
rename to tsk/docs/Doxyfile
index 9efc75fe4d446ff80787a60611e742e6dc3db27b..d918fe536682c10aa94d11b7a93bdaf455a4f78e 100644
--- a/tsk3/docs/Doxyfile
+++ b/tsk/docs/Doxyfile
@@ -661,21 +661,21 @@ WARN_LOGFILE           =
 # directories like "/usr/src/myproject". Separate the files or directories
 # with spaces.
 
-INPUT                  = tsk3/docs/main.dox \
-                         tsk3/docs/basics.dox \
-                         tsk3/docs/base.dox \
-                         tsk3/docs/img.dox \
-                         tsk3/docs/vs.dox \
-                         tsk3/docs/fs.dox \
-                         tsk3/docs/hashdb.dox \
-                         tsk3/docs/auto.dox \
-                         tsk3/docs/cpp.dox \
-                         tsk3/base \
-                         tsk3/fs \
-                         tsk3/hashdb \
-                         tsk3/img \
-                         tsk3/vs \
-                         tsk3/auto
+INPUT                  = tsk/docs/main.dox \
+                         tsk/docs/basics.dox \
+                         tsk/docs/base.dox \
+                         tsk/docs/img.dox \
+                         tsk/docs/vs.dox \
+                         tsk/docs/fs.dox \
+                         tsk/docs/hashdb.dox \
+                         tsk/docs/auto.dox \
+                         tsk/docs/cpp.dox \
+                         tsk/base \
+                         tsk/fs \
+                         tsk/hashdb \
+                         tsk/img \
+                         tsk/vs \
+                         tsk/auto
 
 # This tag can be used to specify the character encoding of the source files
 # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
@@ -912,7 +912,7 @@ HTML_HEADER            =
 # each generated HTML page. If it is left blank doxygen will generate a
 # standard footer.
 
-HTML_FOOTER            = tsk3/docs/footer.html
+HTML_FOOTER            = tsk/docs/footer.html
 
 # The HTML_STYLESHEET tag can be used to specify a user-defined cascading
 # style sheet that is used by each HTML page. It can be used to
diff --git a/tsk3/docs/auto.dox b/tsk/docs/auto.dox
similarity index 100%
rename from tsk3/docs/auto.dox
rename to tsk/docs/auto.dox
diff --git a/tsk3/docs/base.dox b/tsk/docs/base.dox
similarity index 100%
rename from tsk3/docs/base.dox
rename to tsk/docs/base.dox
diff --git a/tsk3/docs/basics.dox b/tsk/docs/basics.dox
similarity index 91%
rename from tsk3/docs/basics.dox
rename to tsk/docs/basics.dox
index 9211ef822a1ab1ead42f2fff3298d6ef7215dbe9..326fa2c0289667b428981ab7ef93d4536856ffe1 100644
--- a/tsk3/docs/basics.dox
+++ b/tsk/docs/basics.dox
@@ -56,13 +56,13 @@ This section describes how to incorporate the TSK library into your application.
       \subsection ov_build_unix Unix
 This document assumes that you used <tt>'make install'</tt> to install the library and header files and that you used the default location of <tt>/usr/local/</tt>.  If you specified a different location, you will need to do the obvious path replacements in this document. 
 
-To include the API definitions, you will need to include the <tt>tsk3/libtsk.h</tt> file in your source code. Depending on system configuration, you may need to add <tt>/usr/local/include</tt> to the list of directories that your compiler looks in for header files (using <tt>-I</tt> for example). 
+To include the API definitions, you will need to include the <tt>tsk/libtsk.h</tt> file in your source code. Depending on system configuration, you may need to add <tt>/usr/local/include</tt> to the list of directories that your compiler looks in for header files (using <tt>-I</tt> for example). 
 
 <code>
-\#include <tsk3/libtsk.h>
+\#include <tsk/libtsk.h>
 </code>
 
-To include the library in your application during the linking phase, you will need to add <tt>-ltsk3</tt>  to add the <tt>libtsk3</tt> library.  Depending on system configuration, you may need to add <tt>/usr/local/lib/</tt> to the list of directories that your compiler looks in for libraries (using <tt>-L</tt> for example).
+To include the library in your application during the linking phase, you will need to add <tt>-ltsk</tt>  to add the <tt>libtsk</tt> library.  Depending on system configuration, you may need to add <tt>/usr/local/lib/</tt> to the list of directories that your compiler looks in for libraries (using <tt>-L</tt> for example).
 
 Note that if you built TSK with support for AFFLIB and libewf then you will also  need to include <tt>-lewf</tt> and/or <tt>-lafflib</tt>.  You may also need to include other libraries that AFFLIB and libewf require (my current system requires <tt>-lcrypto -lssl -lz -lncurses -lreadlin</tt>).  Refer to the libewf and AFFLIB documentation for details.   
 
@@ -71,7 +71,7 @@ The Windows setup is similar to the Unix setup, except that you need to include
 
 The Visual Studio solution file is located in <tt>win32/tsk-win.sln</tt>.  There is a <tt>libtsk</tt> project for the five library layers (as described in \ref basic_layers).  Build this to create a static library in the <tt>Debug</tt>, <tt>Release</tt>, or <tt>Debug_NoLibs</tt> folder (depending on which version you built). The <tt>Debug_NoLibs</tt> configuration does not have any dependencies on libewf or afflib.
 
-To include the header files, configure your build environment to search in the root TSK directory (i.e. <tt>sleuthkit-3.0.0</tt>) and include the <tt>tsk3/libtsk.h</tt> file in your source code. The location of the TSK directory will depend on where you unpacked it. 
+To include the header files, configure your build environment to search in the root TSK directory (i.e. <tt>sleuthkit-3.0.0</tt>) and include the <tt>tsk/libtsk.h</tt> file in your source code. The location of the TSK directory will depend on where you unpacked it. 
 
 To link with the libraries, you must configure your environment to include the <tt>libtsk</tt> library.  You will need to specify the directory where the library is located, which could be the <tt>Debug</tt> or <tt>Release</tt> subdirectories in the <tt>win32</tt> directory.  You can also move the library to a different location. 
 
diff --git a/tsk3/docs/cpp.dox b/tsk/docs/cpp.dox
similarity index 100%
rename from tsk3/docs/cpp.dox
rename to tsk/docs/cpp.dox
diff --git a/tsk3/docs/footer.html b/tsk/docs/footer.html
similarity index 100%
rename from tsk3/docs/footer.html
rename to tsk/docs/footer.html
diff --git a/tsk3/docs/fs.dox b/tsk/docs/fs.dox
similarity index 100%
rename from tsk3/docs/fs.dox
rename to tsk/docs/fs.dox
diff --git a/tsk3/docs/hashdb.dox b/tsk/docs/hashdb.dox
similarity index 100%
rename from tsk3/docs/hashdb.dox
rename to tsk/docs/hashdb.dox
diff --git a/tsk3/docs/img.dox b/tsk/docs/img.dox
similarity index 100%
rename from tsk3/docs/img.dox
rename to tsk/docs/img.dox
diff --git a/tsk3/docs/main.dox b/tsk/docs/main.dox
similarity index 100%
rename from tsk3/docs/main.dox
rename to tsk/docs/main.dox
diff --git a/tsk3/docs/vs.dox b/tsk/docs/vs.dox
similarity index 100%
rename from tsk3/docs/vs.dox
rename to tsk/docs/vs.dox
diff --git a/tsk3/fs/.indent.pro b/tsk/fs/.indent.pro
similarity index 100%
rename from tsk3/fs/.indent.pro
rename to tsk/fs/.indent.pro
diff --git a/tsk3/fs/Makefile.am b/tsk/fs/Makefile.am
similarity index 96%
rename from tsk3/fs/Makefile.am
rename to tsk/fs/Makefile.am
index 8b7dd2b2bf382180ff31bd1e9131a80c74519fce..8743330f9bf4999e32557c13421cfdd91e349bb4 100644
--- a/tsk3/fs/Makefile.am
+++ b/tsk/fs/Makefile.am
@@ -14,7 +14,7 @@ libtskfs_la_SOURCES  = tsk_fs_i.h fs_inode.c fs_io.c fs_block.c fs_open.c \
     hfs.c hfs_dent.c hfs_journal.c hfs_unicompare.c \
     dcalc_lib.c dcat_lib.c dls_lib.c dstat_lib.c ffind_lib.c \
     fls_lib.c icat_lib.c ifind_lib.c ils_lib.c \
-    walk_cpp.cpp
+    walk_cpp.cpp yaffs.cpp
 
 indent:
 	indent *.c *.h
diff --git a/tsk3/fs/dcalc_lib.c b/tsk/fs/dcalc_lib.c
similarity index 100%
rename from tsk3/fs/dcalc_lib.c
rename to tsk/fs/dcalc_lib.c
diff --git a/tsk3/fs/dcat_lib.c b/tsk/fs/dcat_lib.c
similarity index 100%
rename from tsk3/fs/dcat_lib.c
rename to tsk/fs/dcat_lib.c
diff --git a/tsk3/fs/dls_lib.c b/tsk/fs/dls_lib.c
similarity index 100%
rename from tsk3/fs/dls_lib.c
rename to tsk/fs/dls_lib.c
diff --git a/tsk3/fs/dstat_lib.c b/tsk/fs/dstat_lib.c
similarity index 100%
rename from tsk3/fs/dstat_lib.c
rename to tsk/fs/dstat_lib.c
diff --git a/tsk3/fs/ext2fs.c b/tsk/fs/ext2fs.c
similarity index 58%
rename from tsk3/fs/ext2fs.c
rename to tsk/fs/ext2fs.c
index dee1ee3c9007ee2e4ca13401daffbbd626ec151c..97498894206dd27223d05b0a714605ad06fdb520 100644
--- a/tsk3/fs/ext2fs.c
+++ b/tsk/fs/ext2fs.c
@@ -14,7 +14,7 @@
 
 /**
  *\file ext2fs.c
- * Contains the internal TSK ext2/ext3 file system functions.
+ * Contains the internal TSK ext2/ext3/ext4 file system functions.
  */
 
 /* TCT
@@ -29,6 +29,72 @@
 
 #include "tsk_fs_i.h"
 #include "tsk_ext2fs.h"
+#include "tsk/base/crc.h"
+#include <stddef.h>
+//#define Ext4_DBG 1
+//#define EXT4_CHECKSUMS 1
+
+
+#ifdef Ext4_DBG
+static uint8_t debug_print_buf(unsigned char *buf, int len)
+{
+    int i = 0;
+    for(i=0; i<len; i++)
+    {
+        if(i%8 == 0)
+            printf("%08X:\t", i);
+        printf("0x%02X ", buf[i]);
+        if((i+1)%8 == 0)
+            printf("\n");
+    }
+    printf("\n");
+    return 0;
+}
+#endif
+
+
+/** \internal
+    test_root - tests to see if a is power of b
+    Adapted from E2fsprogs sparse.c
+    Super blocks are only in block groups that are powers of 3,5, and 7
+    @param a the number being investigated
+    @param b the root
+    @return 1 if a is a power of b, otherwise 0
+*/
+static uint8_t test_root(uint32_t a, uint32_t b)
+{
+        if (a == 0)
+                  return 1;
+          while (1) {
+                  if (a == 1)
+                          return 1;
+                  if (a % b)
+                          return 0;
+                  a = a / b;
+          }
+}
+
+/** ext2fs_bg_has_super - wrapper around test_root
+    Adapted from E2fsprogs sparse.c
+    @param  flags     pointer to s_feature_ro_compat flags for superblock
+    @param  group_num the block group number
+    @return 1 if block group has superblock, otherwise 0
+*/
+uint32_t ext2fs_bg_has_super(uint32_t feature_ro_compat, uint32_t group_block)
+{
+        if (!(feature_ro_compat &
+                EXT2FS_FEATURE_RO_COMPAT_SPARSE_SUPER))
+                  return 1;
+
+          if (test_root(group_block, 3) || (test_root(group_block, 5)) ||
+              test_root(group_block, 7))
+                  return 1;
+
+          return 0;
+}
+
+
+
 
 
 /* ext2fs_group_load - load block group descriptor into cache
@@ -41,10 +107,23 @@
 static uint8_t
 ext2fs_group_load(EXT2FS_INFO * ext2fs, EXT2_GRPNUM_T grp_num)
 {
-    ext2fs_gd *gd;
+    void  *gd;
     TSK_OFF_T offs;
     ssize_t cnt;
     TSK_FS_INFO *fs = (TSK_FS_INFO *) ext2fs;
+    int gd_size = tsk_getu16(fs->endian,ext2fs->fs->s_desc_size);
+	ext4fs_gd *ext4_gd = NULL;
+
+    if(!gd_size){
+        if(fs->ftype == TSK_FS_TYPE_EXT4 &&
+           EXT2FS_HAS_INCOMPAT_FEATURE(fs,ext2fs->fs,EXT2FS_FEATURE_INCOMPAT_64BIT))
+        {
+            gd_size=sizeof(ext4fs_gd);
+        }else{
+            gd_size=sizeof(ext2fs_gd);
+        }
+    }
+    
 
     /*
      * Sanity check
@@ -58,27 +137,35 @@ ext2fs_group_load(EXT2FS_INFO * ext2fs, EXT2_GRPNUM_T grp_num)
         return 1;
     }
 
-
     if (ext2fs->grp_buf == NULL) {
-        if ((ext2fs->grp_buf =
-                (ext2fs_gd *) tsk_malloc(sizeof(ext2fs_gd))) == NULL) {
+        if(fs->ftype == TSK_FS_TYPE_EXT4){
+            ext2fs->ext4_grp_buf = (ext4fs_gd *)tsk_malloc(gd_size);
+        }else{
+            ext2fs->grp_buf = (ext2fs_gd *)tsk_malloc(gd_size);
+        }
+        if(ext2fs->grp_buf == NULL && ext2fs->ext4_grp_buf == NULL){
             return 1;
         }
+
     }
     else if (ext2fs->grp_num == grp_num) {
         return 0;
     }
-
     gd = ext2fs->grp_buf;
 
     /*
      * We're not reading group descriptors often, so it is OK to do small
      * reads instead of cacheing group descriptors in a large buffer.
      */
-    offs = ext2fs->groups_offset + grp_num * sizeof(ext2fs_gd);
-    cnt = tsk_fs_read(&ext2fs->fs_info, offs, (char *) gd,
-        sizeof(ext2fs_gd));
-    if (cnt != sizeof(ext2fs_gd)) {
+    offs = ext2fs->groups_offset + grp_num * gd_size;
+    if (fs->ftype == TSK_FS_TYPE_EXT4)
+        gd = ext2fs->ext4_grp_buf;
+    cnt = tsk_fs_read(&ext2fs->fs_info, offs, (char *) gd, gd_size);
+    /*DEBUG*/
+#ifdef Ext4_DBG
+    debug_print_buf((char *)ext2fs->ext4_grp_buf, gd_size);
+#endif
+    if (cnt != gd_size) {
         if (cnt >= 0) {
             tsk_error_reset();
             tsk_error_set_errno(TSK_ERR_FS_READ);
@@ -87,37 +174,132 @@ ext2fs_group_load(EXT2FS_INFO * ext2fs, EXT2_GRPNUM_T grp_num)
             PRI_EXT2GRP " at %" PRIuOFF, grp_num, offs);
         return 1;
     }
-
-
     /* Perform a sanity check on the data to make sure offsets are in range */
-    if ((tsk_getu32(fs->endian,
-                gd->bg_block_bitmap) > fs->last_block) ||
-        (tsk_getu32(fs->endian,
-                gd->bg_inode_bitmap) > fs->last_block) ||
-        (tsk_getu32(fs->endian, gd->bg_inode_table) > fs->last_block)) {
-        tsk_error_reset();
-        tsk_error_set_errno(TSK_ERR_FS_CORRUPT);
-        tsk_error_set_errstr("extXfs_group_load: Group %" PRI_EXT2GRP
-            " descriptor block locations too large at byte offset %"
-            PRIuDADDR, grp_num, offs);
-        return 1;
+    if (fs->ftype == TSK_FS_TYPE_EXT4){
+        ext2fs->grp_buf =(ext2fs_gd*)ext2fs->ext4_grp_buf;
+        gd = ext2fs->ext4_grp_buf;
+        ext4_gd = ext2fs->ext4_grp_buf;
+        if(EXT2FS_HAS_INCOMPAT_FEATURE(fs,ext2fs->fs,EXT2FS_FEATURE_INCOMPAT_64BIT)){
+#ifdef Ext4_DBG
+	    printf("DEBUG hi: %04X\n",*ext4_gd->bg_block_bitmap_hi);
+            printf("DEBUG lo: %08X\n",*ext4_gd->bg_block_bitmap_lo);
+            printf("block_bitmap :%012lX\n",
+                   ext4_getu48(fs->endian,
+                   ext4_gd->bg_block_bitmap_hi,
+                   ext4_gd->bg_block_bitmap_lo));
+#endif
+        }else{
+#ifdef Ext4_DBG
+            printf("block_bitmap:%08lX\n",tsk_getu32(fs->endian,ext4_gd->bg_block_bitmap_lo));
+            printf("stored checksum: %X\n",tsk_getu16(fs->endian,ext4_gd->bg_checksum));
+#endif
+        }
+    }else{
+        ext2fs_gd *ext2_gd = (ext2fs_gd *)gd;
+        if ((tsk_getu32(fs->endian,
+                    ext2_gd->bg_block_bitmap) > fs->last_block) ||
+            (tsk_getu32(fs->endian,
+                    ext2_gd->bg_inode_bitmap) > fs->last_block) ||
+            (tsk_getu32(fs->endian, ext2_gd->bg_inode_table) > fs->last_block)) {
+            tsk_error_reset();
+            tsk_error_set_errno(TSK_ERR_FS_CORRUPT);
+            tsk_error_set_errstr("extXfs_group_load: Group %" PRI_EXT2GRP
+                " descriptor block locations too large at byte offset %"
+                PRIuDADDR, grp_num, offs);
+            return 1;
+        }
     }
 
-
     ext2fs->grp_num = grp_num;
 
-    if (tsk_verbose) {
-        TSK_FS_INFO *fs = (TSK_FS_INFO *) & ext2fs->fs_info;
-        tsk_fprintf(stderr,
-            "\tgroup %" PRI_EXT2GRP ": %" PRIu16 "/%" PRIu16
-            " free blocks/inodes\n", grp_num, tsk_getu16(fs->endian,
-                gd->bg_free_blocks_count),
-            tsk_getu16(fs->endian, gd->bg_free_inodes_count));
+    if (fs->ftype == TSK_FS_TYPE_EXT4){
+
+    }else{
+        ext2fs_gd * ext2_gd = (ext2fs_gd *) gd;
+        if (tsk_verbose) {
+            TSK_FS_INFO *fs = (TSK_FS_INFO *) & ext2fs->fs_info;
+            tsk_fprintf(stderr,
+                "\tgroup %" PRI_EXT2GRP ": %" PRIu16 "/%" PRIu16
+                " free blocks/inodes\n", grp_num, tsk_getu16(fs->endian,
+                    ext2_gd->bg_free_blocks_count),
+                tsk_getu16(fs->endian, ext2_gd->bg_free_inodes_count));
+        }
     }
 
     return 0;
 }
 
+#ifdef EXT4_CHECKSUMS
+/**
+ * ext4_group_desc_csum - Calculates the checksum of a group descriptor
+ * Ported from linux/fs/ext4/super.c
+ * @ext4_sb:       pointer to ext2 super block structure
+ * @block_group:   group descriptor number
+ * @gdp:           pointer to group descriptor to calculate checksum for
+ * returns the checksum value
+ */
+
+//Temporarily removing CRC16 code until non-GPL version implemented
+//static uint16_t
+//ext4_group_desc_csum(ext2fs_sb *ext4_sb, uint32_t block_group,
+//			    struct ext4fs_gd *gdp)
+//{
+//	uint16_t crc = 0;
+//	if (*ext4_sb->s_feature_ro_compat & EXT2FS_FEATURE_RO_COMPAT_GDT_CSUM)
+//	{
+//		int offset = offsetof(struct ext4fs_gd, bg_checksum);
+//		uint32_t le_group = tsk_getu32(TSK_LIT_ENDIAN, &block_group);
+//		crc = crc16(~0, ext4_sb->s_uuid, sizeof(ext4_sb->s_uuid));
+//		crc = crc16(crc, (uint8_t *)&le_group, sizeof(le_group));
+//		crc = crc16(crc, (uint8_t *)gdp, offset);
+//		offset += sizeof(gdp->bg_checksum); /* skip checksum */
+//		/* for checksum of struct ext4_group_desc do the rest...*/
+//		if ((*ext4_sb->s_feature_incompat &
+//		     EXT2FS_FEATURE_INCOMPAT_64BIT) &&
+//		    offset < *ext4_sb->s_desc_size)
+//        {
+//			crc = crc16(crc, (uint8_t *)gdp + offset, *ext4_sb->s_desc_size - offset);
+//        }
+//	}
+//
+//	return crc;
+//}
+
+static cm_t CRC16_CTX;
+
+static uint16_t
+ext4_group_desc_csum(ext2fs_sb *ext4_sb, uint32_t block_group,
+			    struct ext4fs_gd *gdp)
+{
+CRC16_CTX.cm_width  = 16;
+CRC16_CTX.cm_poly   = 0x8005L;
+CRC16_CTX.cm_init   = 0xFFFFL;
+CRC16_CTX.cm_refin  = TRUE;
+CRC16_CTX.cm_refot  = TRUE;
+CRC16_CTX.cm_xorot  = 0x0000L;
+    cm_ini(&CRC16_CTX);
+	if (*ext4_sb->s_feature_ro_compat & EXT2FS_FEATURE_RO_COMPAT_GDT_CSUM)
+	{
+		int offset = offsetof(struct ext4fs_gd, bg_checksum);
+		uint32_t le_group = tsk_getu32(TSK_LIT_ENDIAN, &block_group);
+		crc16(&CRC16_CTX, ext4_sb->s_uuid, sizeof(ext4_sb->s_uuid));
+		crc16(&CRC16_CTX, (uint8_t *)&le_group, sizeof(le_group));
+		crc16(&CRC16_CTX, (uint8_t *)gdp, offset);
+		offset += sizeof(gdp->bg_checksum); /* skip checksum */
+		/* for checksum of struct ext4_group_desc do the rest...*/
+		if ((*ext4_sb->s_feature_incompat &
+		     EXT2FS_FEATURE_INCOMPAT_64BIT) &&
+		    offset < *ext4_sb->s_desc_size)
+       {
+			crc16(&CRC16_CTX, (uint8_t *)gdp + offset, *ext4_sb->s_desc_size - offset);
+       }
+	}
+
+    return cm_crc(&CRC16_CTX);
+}
+#endif
+
+
 /* ext2fs_print_map - print a bitmap */
 
 static void
@@ -258,30 +440,62 @@ ext2fs_imap_load(EXT2FS_INFO * ext2fs, EXT2_GRPNUM_T grp_num)
     /*
      * Look up the inode allocation bitmap.
      */
-    if (tsk_getu32(fs->endian,
-            ext2fs->grp_buf->bg_inode_bitmap) > fs->last_block) {
-        tsk_error_reset();
-        tsk_error_set_errno(TSK_ERR_FS_BLK_NUM);
-        tsk_error_set_errstr
-            ("ext2fs_imap_load: Block too large for image: %" PRIu32 "",
-            tsk_getu32(fs->endian, ext2fs->grp_buf->bg_inode_bitmap));
+    if(EXT2FS_HAS_INCOMPAT_FEATURE(fs, ext2fs->fs, EXT2FS_FEATURE_INCOMPAT_64BIT))
+    {
+        if( ext4_getu64(fs->endian, ext2fs->ext4_grp_buf->bg_block_bitmap_hi, ext2fs->ext4_grp_buf->bg_block_bitmap_lo)
+                > fs->last_block)
+        {
+            tsk_error_reset();
+            tsk_error_set_errno(TSK_ERR_FS_BLK_NUM);
+            tsk_error_set_errstr
+                ("ext2fs_imap_load: Block too large for image: %" PRIu64 "",
+                ext4_getu64(fs->endian, ext2fs->ext4_grp_buf->bg_block_bitmap_hi, ext2fs->ext4_grp_buf->bg_block_bitmap_lo));
+        }       
+
+        cnt = tsk_fs_read(fs,
+            (TSK_DADDR_T) ext4_getu64(fs->endian,
+                ext2fs->ext4_grp_buf->bg_inode_bitmap_hi, ext2fs->ext4_grp_buf->bg_block_bitmap_lo) * fs->block_size,
+            (char *) ext2fs->imap_buf, ext2fs->fs_info.block_size);
+
+        if (cnt != ext2fs->fs_info.block_size) {
+             if (cnt >= 0) {
+                 tsk_error_reset();
+                 tsk_error_set_errno(TSK_ERR_FS_READ);
+             }
+             tsk_error_set_errstr2("ext2fs_imap_load: Inode bitmap %"
+                PRI_EXT2GRP " at %" PRIu32, grp_num, tsk_getu32(fs->endian,
+                    ext2fs->grp_buf->bg_inode_bitmap));
+        }
     }
+    else
+    {
+        if (tsk_getu32(fs->endian,
+                ext2fs->grp_buf->bg_inode_bitmap) > fs->last_block) 
+        {
+            tsk_error_reset();
+            tsk_error_set_errno(TSK_ERR_FS_BLK_NUM);
+            tsk_error_set_errstr
+                ("ext2fs_imap_load: Block too large for image: %" PRIu32 "",
+                tsk_getu32(fs->endian, ext2fs->grp_buf->bg_inode_bitmap));
+        }
 
-    cnt = tsk_fs_read(fs,
-        (TSK_DADDR_T) tsk_getu32(fs->endian,
-            ext2fs->grp_buf->bg_inode_bitmap) * fs->block_size,
-        (char *) ext2fs->imap_buf, ext2fs->fs_info.block_size);
+        cnt = tsk_fs_read(fs,
+            (TSK_DADDR_T) tsk_getu32(fs->endian,
+                ext2fs->grp_buf->bg_inode_bitmap) * fs->block_size,
+            (char *) ext2fs->imap_buf, ext2fs->fs_info.block_size);
 
-    if (cnt != ext2fs->fs_info.block_size) {
-        if (cnt >= 0) {
-            tsk_error_reset();
-            tsk_error_set_errno(TSK_ERR_FS_READ);
+        if (cnt != ext2fs->fs_info.block_size) {
+            if (cnt >= 0) {
+                tsk_error_reset();
+                tsk_error_set_errno(TSK_ERR_FS_READ);
+            }
+            tsk_error_set_errstr2("ext2fs_imap_load: Inode bitmap %"
+                PRI_EXT2GRP " at %" PRIu32, grp_num, tsk_getu32(fs->endian,
+                    ext2fs->grp_buf->bg_inode_bitmap));
         }
-        tsk_error_set_errstr2("ext2fs_imap_load: Inode bitmap %"
-            PRI_EXT2GRP " at %" PRIu32, grp_num, tsk_getu32(fs->endian,
-                ext2fs->grp_buf->bg_inode_bitmap));
     }
 
+
     ext2fs->imap_grp_num = grp_num;
     if (tsk_verbose > 1)
         ext2fs_print_map(ext2fs->imap_buf,
@@ -290,7 +504,7 @@ ext2fs_imap_load(EXT2FS_INFO * ext2fs, EXT2_GRPNUM_T grp_num)
     return 0;
 }
 
-/* ext2fs_dinode_load - look up disk inode & load into ext2fs_inode structure 
+/* ext2fs_dinode_load - look up disk inode & load into ext2fs_inode structure
  * @param ext2fs A ext2fs file system information structure
  * @param dino_inum Metadata address
  * @param dino_buf The buffer to store the block in (must be size of ext2fs->inode_size or larger)
@@ -347,14 +561,30 @@ ext2fs_dinode_load(EXT2FS_INFO * ext2fs, TSK_INUM_T dino_inum,
     rel_inum =
         (dino_inum - 1) - tsk_getu32(fs->endian,
         ext2fs->fs->s_inodes_per_group) * grp_num;
-    addr =
-        (TSK_OFF_T) tsk_getu32(fs->endian,
-        ext2fs->grp_buf->bg_inode_table) * (TSK_OFF_T) fs->block_size +
-        rel_inum * (TSK_OFF_T) ext2fs->inode_size;
-
+    if(EXT2FS_HAS_INCOMPAT_FEATURE(fs, ext2fs->fs, EXT2FS_FEATURE_INCOMPAT_64BIT) && 
+                    (tsk_getu16(fs->endian,ext2fs->fs->s_desc_size) >= 64))
+    {
+#ifdef Ext4_DBG
+        printf("DEBUG: d_inode_load 64bit gd_size=%d\n", tsk_getu16(fs->endian,ext2fs->fs->s_desc_size));
+#endif 
+        addr =
+                (TSK_OFF_T) ext4_getu64(fs->endian,
+                                ext2fs->ext4_grp_buf->bg_inode_table_hi, 
+                                ext2fs->ext4_grp_buf->bg_inode_table_lo)
+                * (TSK_OFF_T) fs->block_size +
+                rel_inum * (TSK_OFF_T) ext2fs->inode_size;
+    }
+    else
+    {
+        addr =
+            (TSK_OFF_T) tsk_getu32(fs->endian,
+            ext2fs->grp_buf->bg_inode_table) * (TSK_OFF_T) fs->block_size +
+            rel_inum * (TSK_OFF_T) ext2fs->inode_size;
+    }
     tsk_release_lock(&ext2fs->lock);
 
     cnt = tsk_fs_read(fs, addr, (char *) dino_buf, ext2fs->inode_size);
+
     if (cnt != ext2fs->inode_size) {
         if (cnt >= 0) {
             tsk_error_reset();
@@ -364,6 +594,8 @@ ext2fs_dinode_load(EXT2FS_INFO * ext2fs, TSK_INUM_T dino_inum,
             " from %" PRIuOFF, dino_inum, addr);
         return 1;
     }
+//DEBUG    printf("Inode Size: %d, %d, %d, %d\n", sizeof(ext2fs_inode), *ext2fs->fs->s_inode_size, ext2fs->inode_size, *ext2fs->fs->s_want_extra_isize);
+//DEBUG    debug_print_buf((char *)dino_buf, ext2fs->inode_size);
 
     if (tsk_verbose) {
         tsk_fprintf(stderr,
@@ -402,7 +634,7 @@ ext2fs_dinode_copy(EXT2FS_INFO * ext2fs, TSK_FS_META * fs_meta,
     ext2fs_sb *sb = ext2fs->fs;
     EXT2_GRPNUM_T grp_num;
     TSK_INUM_T ibase = 0;
-    TSK_DADDR_T *addr_ptr;
+
 
     if (dino_buf == NULL) {
         tsk_error_reset();
@@ -504,10 +736,18 @@ ext2fs_dinode_copy(EXT2FS_INFO * ext2fs, TSK_FS_META * fs_meta,
     fs_meta->mtime = tsk_getu32(fs->endian, dino_buf->i_mtime);
     fs_meta->atime = tsk_getu32(fs->endian, dino_buf->i_atime);
     fs_meta->ctime = tsk_getu32(fs->endian, dino_buf->i_ctime);
-    fs_meta->crtime = 0;
     fs_meta->time2.ext2.dtime = tsk_getu32(fs->endian, dino_buf->i_dtime);
-    fs_meta->mtime_nano = fs_meta->atime_nano = fs_meta->ctime_nano =
-        fs_meta->crtime_nano = 0;
+    if(fs->ftype == TSK_FS_TYPE_EXT4){
+        fs_meta->mtime_nano = tsk_getu32(fs->endian, dino_buf->i_mtime_extra) >> 2;
+        fs_meta->atime_nano = tsk_getu32(fs->endian, dino_buf->i_atime_extra) >> 2;
+        fs_meta->ctime_nano = tsk_getu32(fs->endian, dino_buf->i_ctime_extra) >> 2;
+        fs_meta->crtime=tsk_getu32(fs->endian,dino_buf->i_crtime);
+        fs_meta->crtime_nano = tsk_getu32(fs->endian, dino_buf->i_crtime_extra) >> 2;
+    }else
+    {
+        fs_meta->mtime_nano = fs_meta->atime_nano = fs_meta->ctime_nano =
+            fs_meta->crtime = 0;
+    }
     fs_meta->time2.ext2.dtime_nano = 0;
     fs_meta->seq = 0;
 
@@ -524,92 +764,104 @@ ext2fs_dinode_copy(EXT2FS_INFO * ext2fs, TSK_FS_META * fs_meta,
         }
     }
 
-    addr_ptr = (TSK_DADDR_T *) fs_meta->content_ptr;
-    for (i = 0; i < EXT2FS_NDADDR + EXT2FS_NIADDR; i++)
-        addr_ptr[i] = tsk_gets32(fs->endian, dino_buf->i_block[i]);
-
-    /* set the link string
-     * the size check prevents us from trying to allocate a huge amount of
-     * memory for a bad inode value
-     */
-    if ((fs_meta->type == TSK_FS_META_TYPE_LNK)
-        && (fs_meta->size < EXT2FS_MAXPATHLEN) && (fs_meta->size >= 0)) {
-        unsigned int count = 0;
-        int i;
+    if (tsk_getu32(fs->endian, dino_buf->i_flags) & EXT2_IN_EXTENTS) {
+        uint32_t *addr_ptr;
+        fs_meta->content_type = TSK_FS_META_CONTENT_TYPE_EXT4_EXTENTS;
+        /* NOTE TSK_DADDR_T != uint32_t, so lets make sure we use uint32_t */
+        addr_ptr = (uint32_t *)fs_meta->content_ptr;
+        for (i = 0; i < EXT2FS_NDADDR + EXT2FS_NIADDR; i++) {
+            addr_ptr[i] = tsk_gets32(fs->endian, dino_buf->i_block[i]);;
+        }
+    }
+    else {
+        TSK_DADDR_T *addr_ptr;
+        addr_ptr = (TSK_DADDR_T *) fs_meta->content_ptr;
+        for (i = 0; i < EXT2FS_NDADDR + EXT2FS_NIADDR; i++)
+            addr_ptr[i] = tsk_gets32(fs->endian, dino_buf->i_block[i]);
+
+        /* set the link string
+         * the size check prevents us from trying to allocate a huge amount of
+         * memory for a bad inode value
+         */
+        if ((fs_meta->type == TSK_FS_META_TYPE_LNK)
+            && (fs_meta->size < EXT2FS_MAXPATHLEN) && (fs_meta->size >= 0)) {
+            unsigned int count = 0;
+            int i;
 
-        if ((fs_meta->link =
-                tsk_malloc((size_t) (fs_meta->size + 1))) == NULL)
-            return 1;
+            if ((fs_meta->link =
+                    tsk_malloc((size_t) (fs_meta->size + 1))) == NULL)
+                return 1;
 
-        /* it is located directly in the pointers */
-        if (fs_meta->size < 4 * (EXT2FS_NDADDR + EXT2FS_NIADDR)) {
-            unsigned int j;
+            /* it is located directly in the pointers */
+            if (fs_meta->size < 4 * (EXT2FS_NDADDR + EXT2FS_NIADDR)) {
+                unsigned int j;
 
-            for (i = 0; i < (EXT2FS_NDADDR + EXT2FS_NIADDR) &&
-                count < fs_meta->size; i++) {
-                char *a_ptr = (char *) &dino_buf->i_block[i];
-                for (j = 0; j < 4 && count < fs_meta->size; j++) {
-                    fs_meta->link[count++] = a_ptr[j];
+                for (i = 0; i < (EXT2FS_NDADDR + EXT2FS_NIADDR) &&
+                    count < fs_meta->size; i++) {
+                    char *a_ptr = (char *) &dino_buf->i_block[i];
+                    for (j = 0; j < 4 && count < fs_meta->size; j++) {
+                        fs_meta->link[count++] = a_ptr[j];
+                    }
                 }
-            }
-            fs_meta->link[count] = '\0';
-
-            /* clear the content pointer data to avoid the prog from reading them */
-            memset(fs_meta->content_ptr, 0, fs_meta->content_len);
-        }
+                fs_meta->link[count] = '\0';
 
-        /* it is in blocks */
-        else {
-            TSK_FS_INFO *fs = (TSK_FS_INFO *) & ext2fs->fs_info;
-            char *data_buf = NULL;
-            char *a_ptr = fs_meta->link;
-            TSK_DADDR_T *addr_ptr = fs_meta->content_ptr;;
-
-            if ((data_buf = tsk_malloc(fs->block_size)) == NULL) {
-                return 1;
+                /* clear the content pointer data to avoid the prog from reading them */
+                memset(fs_meta->content_ptr, 0, fs_meta->content_len);
             }
 
-            /* we only need to do the direct blocks due to the limit
-             * on path length */
-            for (i = 0; i < EXT2FS_NDADDR && count < fs_meta->size; i++) {
-                ssize_t cnt;
-
-                int read_count =
-                    (fs_meta->size - count <
-                    fs->block_size) ? (int) (fs_meta->size -
-                    count) : (int) (fs->block_size);
+            /* it is in blocks */
+            else {
+                TSK_FS_INFO *fs = (TSK_FS_INFO *) & ext2fs->fs_info;
+                char *data_buf = NULL;
+                char *a_ptr = fs_meta->link;
+                TSK_DADDR_T *addr_ptr = fs_meta->content_ptr;;
 
-                cnt = tsk_fs_read_block(fs,
-                    addr_ptr[i], data_buf, fs->block_size);
+                if ((data_buf = tsk_malloc(fs->block_size)) == NULL) {
+                    return 1;
+                }
 
-                if (cnt != fs->block_size) {
-                    if (cnt >= 0) {
-                        tsk_error_reset();
-                        tsk_error_set_errno(TSK_ERR_FS_READ);
+                /* we only need to do the direct blocks due to the limit
+                 * on path length */
+                for (i = 0; i < EXT2FS_NDADDR && count < fs_meta->size; i++) {
+                    ssize_t cnt;
+
+                    int read_count =
+                        (fs_meta->size - count <
+                        fs->block_size) ? (int) (fs_meta->size -
+                        count) : (int) (fs->block_size);
+
+                    cnt = tsk_fs_read_block(fs,
+                        addr_ptr[i], data_buf, fs->block_size);
+
+                    if (cnt != fs->block_size) {
+                        if (cnt >= 0) {
+                            tsk_error_reset();
+                            tsk_error_set_errno(TSK_ERR_FS_READ);
+                        }
+                        tsk_error_set_errstr2
+                            ("ext2fs_dinode_copy: symlink destination from %"
+                            PRIuDADDR, addr_ptr[i]);
+                        free(data_buf);
+                        return 1;
                     }
-                    tsk_error_set_errstr2
-                        ("ext2fs_dinode_copy: symlink destination from %"
-                        PRIuDADDR, addr_ptr[i]);
-                    free(data_buf);
-                    return 1;
+
+                    memcpy(a_ptr, data_buf, read_count);
+                    count += read_count;
+                    a_ptr = (char *) ((uintptr_t) a_ptr + count);
                 }
 
-                memcpy(a_ptr, data_buf, read_count);
-                count += read_count;
-                a_ptr = (char *) ((uintptr_t) a_ptr + count);
+                /* terminate the string */
+                *a_ptr = '\0';
+                free(data_buf);
             }
 
-            /* terminate the string */
-            *a_ptr = '\0';
-            free(data_buf);
-        }
-
-        /* Clean up name */
-        i = 0;
-        while (fs_meta->link[i] != '\0') {
-            if (TSK_IS_CNTRL(fs_meta->link[i]))
-                fs_meta->link[i] = '^';
-            i++;
+            /* Clean up name */
+            i = 0;
+            while (fs_meta->link[i] != '\0') {
+                if (TSK_IS_CNTRL(fs_meta->link[i]))
+                    fs_meta->link[i] = '^';
+                i++;
+            }
         }
     }
 
@@ -661,6 +913,7 @@ ext2fs_inode_lookup(TSK_FS_INFO * fs, TSK_FS_FILE * a_fs_file,
 {
     EXT2FS_INFO *ext2fs = (EXT2FS_INFO *) fs;
     ext2fs_inode *dino_buf = NULL;
+    unsigned int size = 0;
 
     if (a_fs_file == NULL) {
         tsk_error_set_errno(TSK_ERR_FS_ARG);
@@ -685,8 +938,9 @@ ext2fs_inode_lookup(TSK_FS_INFO * fs, TSK_FS_FILE * a_fs_file,
             return 0;
     }
 
+    size = ext2fs->inode_size > sizeof(ext2fs_inode) ? ext2fs->inode_size : sizeof(ext2fs_inode);
     if ((dino_buf =
-            (ext2fs_inode *) tsk_malloc(ext2fs->inode_size)) == NULL) {
+            (ext2fs_inode *) tsk_malloc(size)) == NULL) {
         return 1;
     }
 
@@ -731,6 +985,7 @@ ext2fs_inode_walk(TSK_FS_INFO * fs, TSK_INUM_T start_inum,
     TSK_FS_FILE *fs_file;
     int myflags;
     ext2fs_inode *dino_buf = NULL;
+    unsigned int size = 0;
 
     // clean up any error messages that are lying around
     tsk_error_reset();
@@ -808,8 +1063,9 @@ ext2fs_inode_walk(TSK_FS_INFO * fs, TSK_INUM_T start_inum,
     /*
      * Iterate.
      */
+    size = ext2fs->inode_size > sizeof(ext2fs_inode) ? ext2fs->inode_size : sizeof(ext2fs_inode);
     if ((dino_buf =
-            (ext2fs_inode *) tsk_malloc(ext2fs->inode_size)) == NULL) {
+            (ext2fs_inode *) tsk_malloc(size)) == NULL) {
         return 1;
     }
 
@@ -1130,6 +1386,433 @@ ext2fs_fscheck(TSK_FS_INFO * fs, FILE * hFile)
     return 1;
 }
 
+/** \internal
+ * Add a single extent -- that is, a single data ran -- to the file data attribute.
+ * @return 0 on success, 1 on error.
+ */
+static TSK_OFF_T
+ext2fs_make_data_run_extent(TSK_FS_INFO * fs_info, TSK_FS_ATTR * fs_attr,
+                            ext2fs_extent *extent)
+{
+    TSK_FS_ATTR_RUN *data_run;
+    data_run = tsk_fs_attr_run_alloc();
+    if (data_run == NULL) {
+        return 1;
+    }
+
+    data_run->offset = tsk_getu32(fs_info->endian, extent->ee_block);
+    data_run->addr = (((uint32_t)tsk_getu16(fs_info->endian, extent->ee_start_hi)) << 16) | tsk_getu32(fs_info->endian, extent->ee_start_lo);
+    data_run->len = tsk_getu16(fs_info->endian, extent->ee_len);
+
+    // save the run
+    if (tsk_fs_attr_add_run(fs_info, fs_attr, data_run)) {
+        return 1;
+    }
+
+    return 0;
+}
+
+
+/** \internal
+ * Given a block that contains an extent node (which starts with extent_header),
+ * walk it, and add everything encountered to the appropriate attributes.
+ * @return 0 on success, 1 on error.
+ */
+static TSK_OFF_T
+ext2fs_make_data_run_extent_index(TSK_FS_INFO *fs_info, TSK_FS_ATTR *fs_attr,
+                                  TSK_FS_ATTR *fs_attr_extent, TSK_DADDR_T idx_block)
+{
+    ext2fs_extent_header *header;
+    TSK_FS_ATTR_RUN* data_run;
+    uint8_t *buf;
+    ssize_t cnt;
+    unsigned int i;
+
+    /* first, read the block specified by the parameter */
+    int fs_blocksize = fs_info->block_size;
+    if ((buf = (uint8_t *)tsk_malloc(fs_blocksize)) == NULL) {
+        return 1;
+    }
+
+    cnt = tsk_fs_read_block(fs_info, idx_block, (char *)buf, fs_blocksize);
+    if (cnt != fs_blocksize) {
+        if (cnt >= 0) {
+            tsk_error_reset();
+            tsk_error_set_errno(TSK_ERR_FS_READ);
+        }
+	    tsk_error_set_errstr("ext2fs_make_data_run_extent_index: Block %" PRIuDADDR, idx_block);
+        return 1;
+    }
+    header = (ext2fs_extent_header *)buf;
+
+    /* add it to the extent attribute */
+    if (tsk_getu16(fs_info->endian, header->eh_magic) != 0xF30A) {
+        tsk_error_set_errno(TSK_ERR_FS_INODE_COR);
+        tsk_error_set_errstr("ext2fs_make_data_run_extent_index: extent header magic valid incorrect!");
+        return 1;
+    }
+
+    data_run = tsk_fs_attr_run_alloc();
+    if (data_run == NULL) {
+        return 1;
+    }
+    data_run->addr = idx_block;
+    data_run->len = fs_blocksize;
+
+    if (tsk_fs_attr_add_run(fs_info, fs_attr_extent, data_run)) {
+        return 1;
+    }
+
+    /* process leaf nodes */
+    if (tsk_getu16(fs_info->endian, header->eh_depth) == 0) {
+        ext2fs_extent *extents = (ext2fs_extent *)(header + 1);
+        for (i = 0; i < tsk_getu16(fs_info->endian, header->eh_entries); i++) {
+            ext2fs_extent extent = extents[i];
+            if (ext2fs_make_data_run_extent(fs_info, fs_attr, &extent)) {
+                return 1;
+            }
+        }
+    }
+    /* recurse on interior nodes */
+    else {
+        ext2fs_extent_idx *indices = (ext2fs_extent_idx *)(header + 1);
+        for (i = 0; i < tsk_getu16(fs_info->endian, header->eh_entries); i++) {
+            ext2fs_extent_idx *index = &indices[i];
+            TSK_DADDR_T child_block = (((uint32_t)tsk_getu16(fs_info->endian, index->ei_leaf_hi)) << 16) | tsk_getu32(fs_info->endian, index->ei_leaf_lo);
+            if (ext2fs_make_data_run_extent_index(fs_info, fs_attr, fs_attr_extent, child_block)) {
+                return 1;
+            }
+        }
+    }
+
+    free(buf);
+    return 0;
+}
+
+/** \internal
+ * Get the number of extent blocks rooted at the given extent_header.
+ * The count does not include the extent header passed as a parameter.
+ *
+ * @return the number of extent blocks, or -1 on error.
+ */
+static int32_t
+ext2fs_extent_tree_index_count(TSK_FS_INFO *fs_info, TSK_FS_META *fs_meta,
+                               ext2fs_extent_header *header) {
+    int fs_blocksize = fs_info->block_size;
+    ext2fs_extent_idx *indices;
+    int count = 0;
+    uint8_t *buf;
+    int i;
+
+    if (tsk_getu16(fs_info->endian, header->eh_magic) != 0xF30A) {
+        tsk_error_set_errno(TSK_ERR_FS_INODE_COR);
+        tsk_error_set_errstr("ext2fs_load_attrs: extent header magic valid incorrect!");
+        return -1;
+    }
+
+    if (tsk_getu16(fs_info->endian, header->eh_depth) == 0) {
+      return 0;
+    }
+
+    if ((buf = (uint8_t *)tsk_malloc(fs_blocksize)) == NULL) {
+        return -1;
+    }
+
+    indices = (ext2fs_extent_idx *)(header + 1);
+    for (i = 0; i < tsk_getu16(fs_info->endian, header->eh_entries); i++) {
+        ext2fs_extent_idx *index = &indices[i];
+        TSK_DADDR_T block = (((uint32_t)tsk_getu16(fs_info->endian, index->ei_leaf_hi)) << 16) | tsk_getu32(fs_info->endian, index->ei_leaf_lo);
+        ssize_t cnt = tsk_fs_read_block(fs_info, block, (char *)buf, fs_blocksize);
+        int ret;
+
+        if (cnt != fs_blocksize) {
+            if (cnt >= 0) {
+                tsk_error_reset();
+                tsk_error_set_errno(TSK_ERR_FS_READ);
+            }
+            tsk_error_set_errstr2("ext2fs_extent_tree_index_count: Block %" PRIuDADDR, block);
+            return -1;
+        }
+
+        if ((ret = ext2fs_extent_tree_index_count(fs_info, fs_meta, (ext2fs_extent_header *)buf)) < 0) {
+            return -1;
+        }
+        count += ret;
+        count++;
+    }
+
+    free(buf);
+    return count;
+}
+
+
+/** \internal
+ * Add the data runs and extents to the file attributes.
+ *
+ * @param fs_file File system to analyze
+ * @returns 0 on success, 1 otherwise
+ */
+static uint8_t
+ext2fs_load_attrs(TSK_FS_FILE * fs_file)
+{
+    TSK_FS_META *fs_meta = fs_file->meta;
+    TSK_FS_INFO *fs_info = fs_file->fs_info;
+    TSK_OFF_T length = 0;
+    TSK_FS_ATTR *fs_attr;
+    int i;
+	ext2fs_extent *extents = NULL;
+	ext2fs_extent_idx *indices = NULL;
+
+    if (fs_meta->content_type == TSK_FS_META_CONTENT_TYPE_EXT4_EXTENTS) {
+        ext2fs_extent_header *header = (ext2fs_extent_header *)fs_meta->content_ptr;
+        uint16_t num_entries = tsk_getu16(fs_info->endian, header->eh_entries);
+        uint16_t depth = tsk_getu16(fs_info->endian, header->eh_depth);
+
+        if (tsk_getu16(fs_info->endian, header->eh_magic) != 0xF30A) {
+            tsk_error_set_errno(TSK_ERR_FS_INODE_COR);
+            tsk_error_set_errstr("ext2fs_load_attrs: extent header magic valid incorrect!");
+            return TSK_COR;
+        }
+
+        if (num_entries == 0) {
+            return 0;
+        }
+
+        if ((fs_meta->attr != NULL)
+            && (fs_meta->attr_state == TSK_FS_META_ATTR_STUDIED)) {
+            return 0;
+        }
+        else if (fs_meta->attr_state == TSK_FS_META_ATTR_ERROR) {
+            return 1;
+        }
+        else if (fs_meta->attr != NULL) {
+            tsk_fs_attrlist_markunused(fs_meta->attr);
+        }
+        else if (fs_meta->attr == NULL) {
+            fs_meta->attr = tsk_fs_attrlist_alloc();
+        }
+
+        if (TSK_FS_TYPE_ISEXT(fs_info->ftype) == 0) {
+            tsk_error_set_errno(TSK_ERR_FS_INODE_COR);
+	    tsk_error_set_errstr(
+                "ext2fs_load_attr: Called with non-ExtX file system: %x",
+                fs_info->ftype);
+            return 1;
+        }
+
+        length = roundup(fs_meta->size, fs_info->block_size);
+
+        if ((fs_attr =
+                tsk_fs_attrlist_getnew(fs_meta->attr,
+                    TSK_FS_ATTR_NONRES)) == NULL) {
+            return 1;
+        }
+
+        if (tsk_fs_attr_set_run(fs_file, fs_attr, NULL, NULL,
+                TSK_FS_ATTR_TYPE_DEFAULT, TSK_FS_ATTR_ID_DEFAULT,
+                fs_meta->size, fs_meta->size, length, 0, 0)) {
+            return 1;
+        }
+
+        if (depth == 0) { /* leaf node */
+            if (num_entries > (fs_info->block_size - sizeof(ext2fs_extent_header)) / sizeof(ext2fs_extent)) {
+                tsk_error_set_errno(TSK_ERR_FS_INODE_COR);
+	        tsk_error_set_errstr("ext2fs_load_attr: Inode reports too many extents");
+                return 1;
+            }
+
+            extents = (ext2fs_extent *)(header + 1);
+            for (i = 0; i < num_entries; i++) {
+                ext2fs_extent extent = extents[i];
+                if (ext2fs_make_data_run_extent(fs_info, fs_attr, &extent)) {
+                    return 1;
+                }
+            }
+        }
+        else { /* interior node */
+            TSK_FS_ATTR *fs_attr_extent;
+            int32_t extent_index_size;
+
+            if (num_entries > (fs_info->block_size - sizeof(ext2fs_extent_header)) / sizeof(ext2fs_extent_idx)) {
+                tsk_error_set_errno(TSK_ERR_FS_INODE_COR);
+	        tsk_error_set_errstr("ext2fs_load_attr: Inode reports too many extent indices");
+                return 1;
+            }
+
+            if ((fs_attr_extent =
+                    tsk_fs_attrlist_getnew(fs_meta->attr,
+                        TSK_FS_ATTR_NONRES)) == NULL) {
+                return 1;
+            }
+
+            extent_index_size = ext2fs_extent_tree_index_count(fs_info, fs_meta, header);
+            if (extent_index_size < 0) {
+                return 1;
+            }
+
+            if (tsk_fs_attr_set_run(fs_file, fs_attr_extent, NULL, NULL,
+                    TSK_FS_ATTR_TYPE_UNIX_EXTENT, TSK_FS_ATTR_ID_DEFAULT,
+                    fs_info->block_size * extent_index_size,
+                    fs_info->block_size * extent_index_size,
+                    fs_info->block_size * extent_index_size,
+                        0, 0)) {
+                return 1;
+            }
+
+            indices= (ext2fs_extent_idx *)(header + 1);
+            for (i = 0; i < num_entries; i++) {
+                ext2fs_extent_idx *index = &indices[i];
+                TSK_DADDR_T child_block = (((uint32_t)tsk_getu16(fs_info->endian, index->ei_leaf_hi)) << 16) | tsk_getu32(fs_info->endian, index->ei_leaf_lo);
+                if (ext2fs_make_data_run_extent_index(fs_info, fs_attr, fs_attr_extent, child_block)) {
+                    return 1;
+                }
+            }
+        }
+        fs_meta->attr_state = TSK_FS_META_ATTR_STUDIED;
+
+        return 0;
+    }
+    else {
+        return tsk_fs_unix_make_data_run(fs_file);
+    }
+}
+
+
+static void
+ext4_fsstat_datablock_helper(TSK_FS_INFO *fs, FILE *hFile, unsigned int i, TSK_DADDR_T cg_base, int gd_size)
+{
+    EXT2FS_INFO *ext2fs = (EXT2FS_INFO *) fs;
+    ext2fs_sb *sb = ext2fs->fs;
+    unsigned int gpfbg = (1 << sb->s_log_groups_per_flex);
+    unsigned int ibpg, gd_blocks;
+    unsigned int num_flex_bg, curr_flex_bg;
+    uint64_t last_block;
+    ext4fs_gd *ext4_gd = ext2fs->ext4_grp_buf;
+	uint64_t db_offset = 0;
+	unsigned int num_groups = 0, left_over = 0;
+
+#ifdef Ext4_DBG    
+    printf("\nDEBUG 64bit:%d, gd_size %d, combined %d\n",
+                    EXT2FS_HAS_INCOMPAT_FEATURE(fs, sb, EXT2FS_FEATURE_INCOMPAT_64BIT),
+                    gd_size >= 64,
+                    EXT2FS_HAS_INCOMPAT_FEATURE(fs, sb, EXT2FS_FEATURE_INCOMPAT_64BIT) && gd_size >= 64);
+#endif 
+    /* number of blocks the inodes consume */
+    ibpg =
+        (tsk_getu32(fs->endian,
+            sb->s_inodes_per_group) * ext2fs->inode_size + fs->block_size -
+        1) / fs->block_size;
+    /* number of blocks group descriptors consume */
+    gd_blocks = (gd_size * ext2fs->groups_count + fs->block_size-1)/ fs->block_size;
+    num_flex_bg = (ext2fs->groups_count/gpfbg);
+    if(ext2fs->groups_count % gpfbg)
+        num_flex_bg ++;
+    curr_flex_bg = i/gpfbg;
+
+    last_block = cg_base + tsk_getu32(fs->endian,sb->s_blocks_per_group) - 1;
+    if (last_block > fs->last_block)
+    {
+        last_block = fs->last_block;
+    }
+
+//DEBUG printf("ibpg %d  cur_flex: %d, flex_bgs: %d : %d, %d",ibpg, i/gpfbg, num_flex_bg, ext2fs->groups_count/gpfbg, ext2fs->groups_count%gpfbg);
+
+#ifdef Ext4_DBG
+    printf("\nDEBUG: Flex BG PROCESSING cg_base: %"PRIuDADDR", gpfbg: %d, ibpg: %d \n", cg_base, gpfbg, ibpg);
+#endif
+    /*If this is the 1st bg in a flex bg then it contains the bitmaps and inode tables */
+    //if(ext2fs_bg_has_super(tsk_getu32(fs->endian,sb->s_feature_ro_compat),i))
+    //{
+    if (i%gpfbg == 0)
+    {
+        if (curr_flex_bg == (num_flex_bg-1))
+        {
+        num_groups = fs->last_block / tsk_getu32(fs->endian,sb->s_blocks_per_group);
+        if (num_groups % tsk_getu32(fs->endian,sb->s_blocks_per_group))
+            num_groups++;
+        left_over = (num_groups % gpfbg);
+            if(EXT2FS_HAS_INCOMPAT_FEATURE(fs, sb, EXT2FS_FEATURE_INCOMPAT_64BIT) && gd_size >= 64)
+            {
+//DEBUG                printf("DEBUG processing 64bit file system with 64 bit group descriptors");
+                tsk_fprintf(hFile, "    Uninit Data Bitmaps: ");
+                tsk_fprintf(hFile, "%" PRIu64 " - %" PRIu64 "\n",
+                            ext4_getu64(fs->endian, ext4_gd->bg_block_bitmap_hi, ext2fs->ext4_grp_buf->bg_block_bitmap_lo)
+                            + (left_over),
+                            ext4_getu64(fs->endian, ext4_gd->bg_block_bitmap_hi, ext2fs->ext4_grp_buf->bg_block_bitmap_lo)
+                            + gpfbg -1 );
+                tsk_fprintf(hFile, "    Uninit Inode Bitmaps: ");
+                tsk_fprintf(hFile, "%" PRIu64 " - %" PRIu64 "\n",
+                            ext4_getu64(fs->endian, ext4_gd->bg_inode_bitmap_hi, ext2fs->ext4_grp_buf->bg_inode_bitmap_lo)
+                            + (left_over),
+                            ext4_getu64(fs->endian, ext4_gd->bg_inode_bitmap_hi,ext2fs->ext4_grp_buf->bg_inode_bitmap_lo)
+                            + gpfbg - 1 );
+                tsk_fprintf(hFile, "    Uninit Inode Table: ");
+                tsk_fprintf(hFile, "%" PRIu64 " - %" PRIu64 "\n",
+                            ext4_getu64(fs->endian, ext4_gd->bg_inode_table_hi,ext2fs->ext4_grp_buf->bg_inode_table_lo)
+                            +((left_over) * ibpg),
+                            ext4_getu64(fs->endian, ext4_gd->bg_inode_table_hi, ext2fs->ext4_grp_buf->bg_inode_table_lo)
+                            +(gpfbg * ibpg) - 1);
+            }
+            else
+            {
+                tsk_fprintf(hFile, "    Uninit Data Bitmaps: ");
+                tsk_fprintf(hFile, "%" PRIu32 " - %" PRIu32 "\n",
+                            tsk_getu32(fs->endian, ext2fs->ext4_grp_buf->bg_block_bitmap_lo)
+                            + (left_over),
+                            tsk_getu32(fs->endian, ext2fs->ext4_grp_buf->bg_block_bitmap_lo)
+                            + gpfbg - 1 );
+                tsk_fprintf(hFile, "    Uninit Inode Bitmaps: ");
+                tsk_fprintf(hFile, "%" PRIu32 " - %" PRIu32 "\n",
+                            tsk_getu32(fs->endian, ext2fs->ext4_grp_buf->bg_inode_bitmap_lo)
+                            + (left_over),
+                            tsk_getu32(fs->endian, ext2fs->ext4_grp_buf->bg_inode_bitmap_lo)
+                            + gpfbg - 1 );
+                tsk_fprintf(hFile, "    Uninit Inode Table: ");
+                tsk_fprintf(hFile, "%" PRIu32 " - %" PRIu32 "\n",
+                            tsk_getu32(fs->endian, ext2fs->ext4_grp_buf->bg_inode_table_lo)
+                            +((left_over) * ibpg),
+                            tsk_getu32(fs->endian, ext2fs->ext4_grp_buf->bg_inode_table_lo)
+                            +(gpfbg * ibpg) - 1);
+            }
+        }
+        tsk_fprintf(hFile, "    Data Blocks: ");
+        db_offset = 0;
+        if(ext2fs_bg_has_super(tsk_getu32(fs->endian,sb->s_feature_ro_compat),i))
+        {
+            db_offset = cg_base
+            + (gpfbg * 2)  //To account for the bitmaps
+            + (ibpg*gpfbg) //Combined inode tables
+            + tsk_getu16(fs->endian, ext2fs->fs->pad_or_gdt.s_reserved_gdt_blocks) + gd_blocks //group descriptors
+            +1; //superblock
+        }
+        else
+        {
+            db_offset = cg_base
+            + (gpfbg * 2)  //To account for the bitmaps
+            + (ibpg*gpfbg); //Combined inode tables
+        }
+        tsk_fprintf(hFile, "%" PRIuDADDR " - %" PRIuDADDR "\n",
+            db_offset, last_block);
+    }
+    else
+    {
+        tsk_fprintf(hFile, "    Data Blocks: ");
+        db_offset = 0;
+        if(ext2fs_bg_has_super(tsk_getu32(fs->endian,sb->s_feature_ro_compat),i))
+        {
+            db_offset = cg_base
+            + tsk_getu16(fs->endian, ext2fs->fs->pad_or_gdt.s_reserved_gdt_blocks) + gd_blocks //group descriptors
+            +1; //superblock
+        }
+        else
+        {
+            db_offset = cg_base;
+        }
+        tsk_fprintf(hFile, "%" PRIuDADDR " - %" PRIuDADDR "\n",
+            db_offset, last_block);
+    }
+
+}
 
 /**
  * Print details about the file system to a file handle.
@@ -1143,11 +1826,15 @@ static uint8_t
 ext2fs_fsstat(TSK_FS_INFO * fs, FILE * hFile)
 {
     unsigned int i;
+    unsigned int gpfbg;
+    unsigned int gd_blocks;
     EXT2FS_INFO *ext2fs = (EXT2FS_INFO *) fs;
     ext2fs_sb *sb = ext2fs->fs;
     int ibpg;
+    int gd_size;
     time_t tmptime;
     char timeBuf[128];
+    const char *tmptypename;
 
 
     // clean up any error messages that are lying around
@@ -1156,8 +1843,23 @@ ext2fs_fsstat(TSK_FS_INFO * fs, FILE * hFile)
     tsk_fprintf(hFile, "FILE SYSTEM INFORMATION\n");
     tsk_fprintf(hFile, "--------------------------------------------\n");
 
-    tsk_fprintf(hFile, "File System Type: %s\n",
-        (fs->ftype == TSK_FS_TYPE_EXT3) ? "Ext3" : "Ext2");
+    switch(fs->ftype) {
+      case TSK_FS_TYPE_EXT3:
+        tmptypename = "Ext3";
+        gd_size=sizeof(ext2fs_gd);
+        break;
+      case TSK_FS_TYPE_EXT4:
+        tmptypename = "Ext4";
+        if (EXT2FS_HAS_INCOMPAT_FEATURE(fs,sb,EXT2FS_FEATURE_INCOMPAT_64BIT))
+            gd_size=sizeof(ext4fs_gd);
+        else
+            gd_size=sizeof(ext2fs_gd);
+        break;
+      default:
+        tmptypename = "Ext2";
+        gd_size=sizeof(ext2fs_gd);
+    }
+    tsk_fprintf(hFile, "File System Type: %s\n", tmptypename);
     tsk_fprintf(hFile, "Volume Name: %s\n", sb->s_volume_name);
     tsk_fprintf(hFile, "Volume ID: %" PRIx64 "%" PRIx64 "\n",
         tsk_getu64(fs->endian, &sb->s_uuid[8]), tsk_getu64(fs->endian,
@@ -1253,6 +1955,27 @@ ext2fs_fsstat(TSK_FS_INFO * fs, FILE * hFile)
         if (tsk_getu32(fs->endian, sb->s_feature_incompat) &
             EXT2FS_FEATURE_INCOMPAT_JOURNAL_DEV)
             tsk_fprintf(hFile, "Journal Dev");
+        if (tsk_getu32(fs->endian, sb->s_feature_incompat) &
+            EXT2FS_FEATURE_INCOMPAT_META_BG)
+            tsk_fprintf(hFile, "Meta Block Groups, ");
+        if (tsk_getu32(fs->endian, sb->s_feature_incompat) &
+            EXT2FS_FEATURE_INCOMPAT_EXTENTS)
+            tsk_fprintf(hFile, "Extents, ");
+        if (tsk_getu32(fs->endian, sb->s_feature_incompat) &
+            EXT2FS_FEATURE_INCOMPAT_64BIT)
+            tsk_fprintf(hFile, "64bit, ");
+        if (tsk_getu32(fs->endian, sb->s_feature_incompat) &
+            EXT2FS_FEATURE_INCOMPAT_MMP)
+            tsk_fprintf(hFile, "Multiple Mount Protection, ");
+        if (tsk_getu32(fs->endian, sb->s_feature_incompat) &
+            EXT2FS_FEATURE_INCOMPAT_FLEX_BG)
+            tsk_fprintf(hFile, "Flexible Block Groups, ");
+        if (tsk_getu32(fs->endian, sb->s_feature_incompat) &
+            EXT2FS_FEATURE_INCOMPAT_EA_INODE)
+            tsk_fprintf(hFile, "Extended Attributes, ");
+        if (tsk_getu32(fs->endian, sb->s_feature_incompat) &
+            EXT2FS_FEATURE_INCOMPAT_DIRDATA)
+            tsk_fprintf(hFile, "Directory Entry Data");
 
         tsk_fprintf(hFile, "\n");
     }
@@ -1265,10 +1988,15 @@ ext2fs_fsstat(TSK_FS_INFO * fs, FILE * hFile)
             tsk_fprintf(hFile, "Sparse Super, ");
         if (tsk_getu32(fs->endian, sb->s_feature_ro_compat) &
             EXT2FS_FEATURE_RO_COMPAT_LARGE_FILE)
-            tsk_fprintf(hFile, "Has Large Files, ");
+            tsk_fprintf(hFile, "Large File, ");
+        if(EXT2FS_HAS_RO_COMPAT_FEATURE(fs,sb,EXT2FS_FEATURE_RO_COMPAT_HUGE_FILE))
+            tsk_fprintf(hFile, "Huge File, ");
         if (tsk_getu32(fs->endian, sb->s_feature_ro_compat) &
             EXT2FS_FEATURE_RO_COMPAT_BTREE_DIR)
-            tsk_fprintf(hFile, "Btree Dir");
+            tsk_fprintf(hFile, "Btree Dir, ");
+        if (tsk_getu32(fs->endian, sb->s_feature_ro_compat) &
+            EXT2FS_FEATURE_RO_COMPAT_EXTRA_ISIZE)
+            tsk_fprintf(hFile, "Extra Inode Size");
 
         tsk_fprintf(hFile, "\n");
     }
@@ -1301,6 +2029,15 @@ ext2fs_fsstat(TSK_FS_INFO * fs, FILE * hFile)
 
     tsk_fprintf(hFile, "Free Inodes: %" PRIu32 "\n",
         tsk_getu32(fs->endian, sb->s_free_inode_count));
+    /*
+       Only print size of inode for Ext4
+       This determines if you will get nanosecs and crtime
+     */
+    if(!strcmp(tmptypename, "Ext4"))
+    {
+        tsk_fprintf(hFile, "Inode Size: %" PRIu16 "\n",
+            tsk_getu16(fs->endian, sb->s_inode_size));
+    }
 
 
     if (tsk_getu32(fs->endian, sb->s_last_orphan)) {
@@ -1338,6 +2075,13 @@ ext2fs_fsstat(TSK_FS_INFO * fs, FILE * hFile)
     tsk_fprintf(hFile, "\nCONTENT INFORMATION\n");
     tsk_fprintf(hFile, "--------------------------------------------\n");
 
+    if(fs->ftype == TSK_FS_TYPE_EXT4)
+    {
+        tsk_fprintf(hFile,"Block Groups Per Flex Group: %" PRIu32 "\n",
+            (1 << sb->s_log_groups_per_flex));
+        gpfbg = (1 << sb->s_log_groups_per_flex);
+    }
+
     tsk_fprintf(hFile, "Block Range: %" PRIuDADDR " - %" PRIuDADDR "\n",
         fs->first_block, fs->last_block);
 
@@ -1373,6 +2117,15 @@ ext2fs_fsstat(TSK_FS_INFO * fs, FILE * hFile)
         (tsk_getu32(fs->endian,
             sb->s_inodes_per_group) * ext2fs->inode_size + fs->block_size -
         1) / fs->block_size;
+    /* number of blocks group descriptors consume */
+    gd_blocks = (gd_size * ext2fs->groups_count + fs->block_size-1)/ fs->block_size;
+
+#ifdef Ext4_DBG
+    tsk_fprintf(hFile, "\n\tDEBUG: Group Descriptor Size: %d\n", gd_size); //DEBUG
+    tsk_fprintf(hFile, "\n\tDEBUG: Group Descriptor Size: %d\n", *sb->s_desc_size); //DEBUG
+    debug_print_buf((unsigned char *)&sb->pad_or_gdt, 16);
+    printf("\n\tDEBUG: gdt_growth: %d\n", tsk_getu16(fs->endian,sb->pad_or_gdt.s_reserved_gdt_blocks));
+#endif
 
     for (i = 0; i < ext2fs->groups_count; i++) {
         TSK_DADDR_T cg_base;
@@ -1386,7 +2139,16 @@ ext2fs_fsstat(TSK_FS_INFO * fs, FILE * hFile)
             return 1;
         }
         tsk_fprintf(hFile, "\nGroup: %d:\n", i);
-
+        if(fs->ftype == TSK_FS_TYPE_EXT4){
+            tsk_fprintf(hFile,"  Block Group Flags: [");
+            if(EXT4BG_HAS_FLAG(fs, ext2fs->ext4_grp_buf, EXT4_BG_INODE_UNINIT))
+                tsk_fprintf(hFile,"INODE_UNINIT, ");
+            if(EXT4BG_HAS_FLAG(fs, ext2fs->ext4_grp_buf, EXT4_BG_BLOCK_UNINIT))
+                tsk_fprintf(hFile,"BLOCK_UNINIT, ");
+            if(EXT4BG_HAS_FLAG(fs, ext2fs->ext4_grp_buf, EXT4_BG_INODE_ZEROED))
+                tsk_fprintf(hFile,"INODE_ZEROED, ");
+            tsk_fprintf(hFile,"\b\b]\n");
+        }
         inum =
             fs->first_inum + tsk_gets32(fs->endian,
             sb->s_inodes_per_group) * i;
@@ -1399,15 +2161,47 @@ ext2fs_fsstat(TSK_FS_INFO * fs, FILE * hFile)
         else
             tsk_fprintf(hFile, "%" PRIuINUM "\n", fs->last_inum);
 
+       if (tsk_getu32(fs->endian, ext2fs->fs->s_feature_incompat) & EXT2FS_FEATURE_INCOMPAT_64BIT)
+       {
+            cg_base = ext4_cgbase_lcl(fs, sb, i);
+#ifdef Ext4_DBG
+        printf("DEBUG64: ext2_cgbase_lcl %"PRIuDADDR"\n", cg_base);
+        printf("DEBUG64: fs->s_first_data_block %"PRIuDADDR"\n", tsk_getu32(fs->endian, sb->s_first_data_block));
+        printf("DEBUG64: blocks_per_group %"PRIuDADDR"\n", tsk_getu32(fs->endian, sb->s_blocks_per_group));
+        printf("DEBUG64: i %"PRIuDADDR" %"PRIuDADDR" %"PRIuDADDR"\n", i, tsk_getu32(fs->endian, sb->s_blocks_per_group),(uint64_t)i * (uint64_t)tsk_getu32(fs->endian, sb->s_blocks_per_group));
+        //printf("DEBUG: calculated %"PRIuDADDR"\n", )
+#endif
+            tsk_fprintf(hFile,
+                "  Block Range: %" PRIuDADDR " - %" PRIuDADDR "\n", cg_base,
+                ((ext4_cgbase_lcl(fs, sb,
+                            i + 1) - 1) <
+                    fs->last_block) ? (ext4_cgbase_lcl(fs, sb,
+                        i + 1) - 1) : fs->last_block);
+       }
+       else
+       {
+            cg_base = ext2_cgbase_lcl(fs, sb, i);
+#ifdef Ext4_DBG
+		debug_print_buf(sb, 100);
+        printf("DEBUG32: ext2_cgbase_lcl %"PRIuDADDR"\n", cg_base);
+		printf("DEBUG32: fs->s_first_data_block %"PRIu32"\n",
+			tsk_getu32(fs->endian, sb->s_first_data_block));
+        printf("DEBUG32: blocks_per_group %"PRIu32"\n",
+			tsk_getu32(fs->endian, sb->s_blocks_per_group));
+		printf("DEBUG32: i: %"PRIu32" blocks per group: %"PRIu32
+			" i*blocks_per_group: %"PRIu32"\n",
+			i, tsk_getu32(fs->endian, sb->s_blocks_per_group),
+			(uint64_t)i * (uint64_t)tsk_getu32(fs->endian, sb->s_blocks_per_group));
+        //printf("DEBUG: calculated %"PRIuDADDR"\n", )
+#endif
+            tsk_fprintf(hFile,
+                "  Block Range: %" PRIuDADDR " - %" PRIuDADDR "\n", cg_base,
+                ((ext2_cgbase_lcl(fs, sb,
+                            i + 1) - 1) <
+                    fs->last_block) ? (ext2_cgbase_lcl(fs, sb,
+                        i + 1) - 1) : fs->last_block);
+       }
 
-        cg_base = ext2_cgbase_lcl(fs, sb, i);
-
-        tsk_fprintf(hFile,
-            "  Block Range: %" PRIuDADDR " - %" PRIuDADDR "\n", cg_base,
-            ((ext2_cgbase_lcl(fs, sb,
-                        i + 1) - 1) <
-                fs->last_block) ? (ext2_cgbase_lcl(fs, sb,
-                    i + 1) - 1) : fs->last_block);
 
 
         tsk_fprintf(hFile, "  Layout:\n");
@@ -1415,14 +2209,19 @@ ext2fs_fsstat(TSK_FS_INFO * fs, FILE * hFile)
         /* only print the super block data if we are not in a sparse
          * group
          */
-        if (((tsk_getu32(fs->endian, ext2fs->fs->s_feature_ro_compat) &
+#ifdef Ext4_DBG
+        printf("DEBUG: ext2fs_super: %d\n", 
+			ext2fs_bg_has_super(tsk_getu32(fs->endian,sb->s_feature_ro_compat),i));
+#endif
+/*        if (((tsk_getu32(fs->endian, ext2fs->fs->s_feature_ro_compat) &
                     EXT2FS_FEATURE_RO_COMPAT_SPARSE_SUPER) &&
                 (cg_base != tsk_getu32(fs->endian,
                         ext2fs->grp_buf->bg_block_bitmap)))
             || ((tsk_getu32(fs->endian,
                         ext2fs->fs->s_feature_ro_compat) &
                     EXT2FS_FEATURE_RO_COMPAT_SPARSE_SUPER) == 0)) {
-
+*/
+        if(ext2fs_bg_has_super(tsk_getu32(fs->endian,sb->s_feature_ro_compat),i)) {
             TSK_OFF_T boff;
 
             /* the super block is the first 1024 bytes */
@@ -1440,60 +2239,108 @@ ext2fs_fsstat(TSK_FS_INFO * fs, FILE * hFile)
                 "    Group Descriptor Table: %" PRIuDADDR " - ",
                 (cg_base + (boff + fs->block_size - 1) / fs->block_size));
 
-            boff += (ext2fs->groups_count * sizeof(ext2fs_gd));
+//            printf("DEBUG: Groups Count: %u * gd_size: %u = %u\n", ext2fs->groups_count, gd_size, ext2fs->groups_count * gd_size);
+            boff += (ext2fs->groups_count * gd_size);
             tsk_fprintf(hFile, "%" PRIuDADDR "\n",
                 ((cg_base +
                         (boff + fs->block_size - 1) / fs->block_size) -
                     1));
+            if(fs->ftype == TSK_FS_TYPE_EXT4)
+            {
+                tsk_fprintf(hFile,
+                    "    Group Descriptor Growth Blocks: %" PRIuDADDR " - ", cg_base + (boff + fs->block_size -1)/fs->block_size);
+                boff += tsk_getu16(fs->endian, ext2fs->fs->pad_or_gdt.s_reserved_gdt_blocks) * fs->block_size;
+                tsk_fprintf(hFile, "%" PRIuDADDR "\n",
+                    ((cg_base +
+                            (boff + fs->block_size - 1) / fs->block_size) -
+                        1));
+            }
         }
 
 
-        /* The block bitmap is a full block */
-        tsk_fprintf(hFile, "    Data bitmap: %" PRIu32 " - %" PRIu32 "\n",
-            tsk_getu32(fs->endian, ext2fs->grp_buf->bg_block_bitmap),
-            tsk_getu32(fs->endian, ext2fs->grp_buf->bg_block_bitmap));
-
-
-        /* The inode bitmap is a full block */
-        tsk_fprintf(hFile, "    Inode bitmap: %" PRIu32 " - %" PRIu32 "\n",
-            tsk_getu32(fs->endian, ext2fs->grp_buf->bg_inode_bitmap),
-            tsk_getu32(fs->endian, ext2fs->grp_buf->bg_inode_bitmap));
-
-
-        tsk_fprintf(hFile, "    Inode Table: %" PRIu32 " - %" PRIu32 "\n",
-            tsk_getu32(fs->endian, ext2fs->grp_buf->bg_inode_table),
-            tsk_getu32(fs->endian,
-                ext2fs->grp_buf->bg_inode_table) + ibpg - 1);
-
-
-        tsk_fprintf(hFile, "    Data Blocks: ");
-
-        /* If we are in a sparse group, display the other addresses */
-        if ((tsk_getu32(fs->endian, ext2fs->fs->s_feature_ro_compat) &
+       if (tsk_getu32(fs->endian, ext2fs->fs->s_feature_incompat) & EXT2FS_FEATURE_INCOMPAT_64BIT)
+       {
+            /* The block bitmap is a full block */
+            tsk_fprintf(hFile, "    Data bitmap: %" PRIu64 " - %" PRIu64 "\n",
+                ext4_getu64(fs->endian, 
+                        ext2fs->ext4_grp_buf->bg_block_bitmap_hi, 
+                        ext2fs->ext4_grp_buf->bg_block_bitmap_lo),
+                ext4_getu64(fs->endian, 
+                        ext2fs->ext4_grp_buf->bg_block_bitmap_hi, 
+                        ext2fs->ext4_grp_buf->bg_block_bitmap_lo));
+    
+    
+            /* The inode bitmap is a full block */
+            tsk_fprintf(hFile, "    Inode bitmap: %" PRIu64 " - %" PRIu64 "\n",
+                ext4_getu64(fs->endian, 
+                        ext2fs->ext4_grp_buf->bg_inode_bitmap_hi, 
+                        ext2fs->ext4_grp_buf->bg_inode_bitmap_lo),
+                ext4_getu64(fs->endian, 
+                        ext2fs->ext4_grp_buf->bg_inode_bitmap_hi, 
+                        ext2fs->ext4_grp_buf->bg_inode_bitmap_lo));
+    
+    
+            tsk_fprintf(hFile, "    Inode Table: %" PRIu64 " - %" PRIu64 "\n",
+                ext4_getu64(fs->endian, 
+                        ext2fs->ext4_grp_buf->bg_inode_table_hi, 
+                        ext2fs->ext4_grp_buf->bg_inode_table_lo),
+                ext4_getu64(fs->endian,
+                   ext2fs->ext4_grp_buf->bg_inode_table_hi,
+                   ext2fs->ext4_grp_buf->bg_inode_table_lo) 
+                     + ibpg - 1);
+       }
+       else
+       {
+            /* The block bitmap is a full block */
+            tsk_fprintf(hFile, "    Data bitmap: %" PRIu32 " - %" PRIu32 "\n",
+                tsk_getu32(fs->endian, ext2fs->grp_buf->bg_block_bitmap),
+                tsk_getu32(fs->endian, ext2fs->grp_buf->bg_block_bitmap));
+    
+    
+            /* The inode bitmap is a full block */
+            tsk_fprintf(hFile, "    Inode bitmap: %" PRIu32 " - %" PRIu32 "\n",
+                tsk_getu32(fs->endian, ext2fs->grp_buf->bg_inode_bitmap),
+                tsk_getu32(fs->endian, ext2fs->grp_buf->bg_inode_bitmap));
+    
+    
+            tsk_fprintf(hFile, "    Inode Table: %" PRIu32 " - %" PRIu32 "\n",
+                tsk_getu32(fs->endian, ext2fs->grp_buf->bg_inode_table),
+                tsk_getu32(fs->endian,
+                    ext2fs->grp_buf->bg_inode_table) + ibpg - 1);
+        }
+       /* If we are in a sparse group, display the other addresses */
+        if(fs->ftype == TSK_FS_TYPE_EXT4)
+        {
+            ext4_fsstat_datablock_helper(fs, hFile, i, cg_base, gd_size);
+        }
+        else
+        {
+        if(ext2fs_bg_has_super(tsk_getu32(fs->endian,sb->s_feature_ro_compat),i)) {
+/*        if ((tsk_getu32(fs->endian, ext2fs->fs->s_feature_ro_compat) &
                 EXT2FS_FEATURE_RO_COMPAT_SPARSE_SUPER) &&
             (cg_base == tsk_getu32(fs->endian,
                     ext2fs->grp_buf->bg_block_bitmap))) {
-
+*/
             /* it goes from the end of the inode bitmap to before the
              * table
              *
              * This hard coded aspect does not scale ...
              */
+            tsk_fprintf(hFile, "    Data Blocks: ");
             tsk_fprintf(hFile, "%" PRIu32 " - %" PRIu32 ", ",
                 tsk_getu32(fs->endian,
                     ext2fs->grp_buf->bg_inode_bitmap) + 1,
                 tsk_getu32(fs->endian,
                     ext2fs->grp_buf->bg_inode_table) - 1);
         }
-
-        tsk_fprintf(hFile, "%" PRIuDADDR " - %" PRIuDADDR "\n",
+        tsk_fprintf(hFile, "    Data Blocks: ");
+        tsk_fprintf(hFile, "%" PRIu32 " - %" PRIu32 "\n",
             (uint64_t) tsk_getu32(fs->endian,
                 ext2fs->grp_buf->bg_inode_table) + ibpg,
             ((ext2_cgbase_lcl(fs, sb, i + 1) - 1) <
                 fs->last_block) ? (ext2_cgbase_lcl(fs, sb,
                     i + 1) - 1) : fs->last_block);
-
-
+        }
         /* Print the free info */
 
 
@@ -1520,16 +2367,16 @@ ext2fs_fsstat(TSK_FS_INFO * fs, FILE * hFile)
             TSK_DADDR_T blk_left;
 
             inum_left =
-                fs->last_inum % tsk_gets32(fs->endian,
-                sb->s_inodes_per_group);
+                (fs->last_inum % tsk_gets32(fs->endian,sb->s_inodes_per_group)) -1;
+
             if (inum_left == 0)
                 inum_left = tsk_getu32(fs->endian, sb->s_inodes_per_group);
 
             tsk_fprintf(hFile, "  Free Inodes: %" PRIu16 " (%d%%)\n",
                 tsk_getu16(fs->endian,
                     ext2fs->grp_buf->bg_free_inodes_count),
-                (100 * tsk_getu16(fs->endian,
-                        ext2fs->grp_buf->bg_free_inodes_count)) /
+                100 * tsk_getu16(fs->endian,
+                        ext2fs->grp_buf->bg_free_inodes_count) /
                 inum_left);
 
             /* Now blocks */
@@ -1542,14 +2389,23 @@ ext2fs_fsstat(TSK_FS_INFO * fs, FILE * hFile)
             tsk_fprintf(hFile, "  Free Blocks: %" PRIu16 " (%d%%)\n",
                 tsk_getu16(fs->endian,
                     ext2fs->grp_buf->bg_free_blocks_count),
-                (100 * tsk_getu16(fs->endian,
-                        ext2fs->grp_buf->bg_free_blocks_count)) /
+                100 * tsk_getu16(fs->endian,
+                        ext2fs->grp_buf->bg_free_blocks_count) /
                 blk_left);
         }
 
         tsk_fprintf(hFile, "  Total Directories: %" PRIu16 "\n",
             tsk_getu16(fs->endian, ext2fs->grp_buf->bg_used_dirs_count));
 
+        if(fs->ftype == TSK_FS_TYPE_EXT4){
+			tsk_fprintf(hFile, "  Stored Checksum: 0x%04" PRIX16 "\n", 
+				tsk_getu16(fs->endian,ext2fs->ext4_grp_buf->bg_checksum));
+#ifdef EXT4_CHECKSUMS
+//Need Non-GPL CRC16
+            tsk_fprintf(hFile, "  Calculated Checksum: 0x%04" PRIX16 "\n",ext4_group_desc_csum(ext2fs->fs, i, ext2fs->ext4_grp_buf));
+#endif
+        }
+
         tsk_release_lock(&ext2fs->lock);
     }
 
@@ -1646,11 +2502,23 @@ ext2fs_istat(TSK_FS_INFO * fs, FILE * hFile, TSK_INUM_T inum,
     const TSK_FS_ATTR *fs_attr_indir;
     ext2fs_inode *dino_buf = NULL;
     char timeBuf[128];
+    unsigned int size;
+    unsigned int large_inodes;
 
     // clean up any error messages that are lying around
     tsk_error_reset();
+    if (ext2fs->inode_size > 128)
+    {
+        large_inodes = 1;
+    }
+    else
+    {
+        large_inodes = 0;
+    }
+
+    size = ext2fs->inode_size > sizeof(ext2fs_inode) ? ext2fs->inode_size : sizeof(ext2fs_inode);
     if ((dino_buf =
-            (ext2fs_inode *) tsk_malloc(ext2fs->inode_size)) == NULL) {
+            (ext2fs_inode *) tsk_malloc(size)) == NULL) {
         return 1;
     }
 
@@ -1718,6 +2586,63 @@ ext2fs_istat(TSK_FS_INFO * fs, FILE * hFile, TSK_INUM_T inum,
         if (tsk_getu32(fs->endian, dino_buf->i_flags) & EXT2_IN_NOA)
             tsk_fprintf(hFile, "No A-Time, ");
 
+        if (tsk_getu32(fs->endian,
+               dino_buf->i_flags) & EXT2_IN_DIRTY)
+           tsk_fprintf(hFile, "Dirty Compressed File, ");
+
+       if (tsk_getu32(fs->endian,
+               dino_buf->i_flags) & EXT2_IN_COMPRBLK)
+           tsk_fprintf(hFile, "Compressed Clusters, ");
+
+       if (tsk_getu32(fs->endian,
+               dino_buf->i_flags) & EXT2_IN_NOCOMPR)
+           tsk_fprintf(hFile, "Do Not Compress, ");
+
+       if (tsk_getu32(fs->endian,
+               dino_buf->i_flags) & EXT2_IN_ECOMPR)
+           tsk_fprintf(hFile, "Compression Error, ");
+
+       if (tsk_getu32(fs->endian,
+               dino_buf->i_flags) & EXT2_IN_INDEX)
+           tsk_fprintf(hFile, "Hash Indexed Directory, ");
+
+       if (tsk_getu32(fs->endian,
+               dino_buf->i_flags) & EXT2_IN_IMAGIC)
+           tsk_fprintf(hFile, "AFS Magic Directory, ");
+
+       if (tsk_getu32(fs->endian,
+               dino_buf->i_flags) & EXT2_IN_JOURNAL_DATA)
+           tsk_fprintf(hFile, "Journal Data, ");
+
+       if (tsk_getu32(fs->endian,
+               dino_buf->i_flags) & EXT2_IN_NOTAIL)
+           tsk_fprintf(hFile, "Do Not Merge Tail, ");
+
+       if (tsk_getu32(fs->endian,
+               dino_buf->i_flags) & EXT2_IN_DIRSYNC)
+           tsk_fprintf(hFile, "Directory  Sync, ");
+
+       if (tsk_getu32(fs->endian,
+               dino_buf->i_flags) & EXT2_IN_TOPDIR)
+           tsk_fprintf(hFile, "Top Directory, ");
+
+       if (tsk_getu32(fs->endian,
+               dino_buf->i_flags) & EXT2_IN_HUGE_FILE)
+           tsk_fprintf(hFile, "Huge File, ");
+
+       if (tsk_getu32(fs->endian,
+               dino_buf->i_flags) & EXT2_IN_EXTENTS)
+           tsk_fprintf(hFile, "Extents, ");
+
+       if (tsk_getu32(fs->endian,
+               dino_buf->i_flags) & EXT2_IN_EA_INODE)
+           tsk_fprintf(hFile, "Large Extended Attribute, ");
+
+       if (tsk_getu32(fs->endian,
+               dino_buf->i_flags) & EXT2_IN_EOFBLOCKS)
+           tsk_fprintf(hFile, "Blocks Allocated Beyond EOF, ");
+
+
         tsk_fprintf(hFile, "\n");
     }
 
@@ -1805,6 +2730,7 @@ ext2fs_istat(TSK_FS_INFO * fs, FILE * hFile, TSK_INUM_T inum,
 
 
             /* Is the value location and size valid? */
+            //if ((tsk_getu32(fs->endian,
             if ((tsk_getu16(fs->endian,
                         ea_entry->val_off) > fs->block_size)
                 || ((tsk_getu16(fs->endian,
@@ -1958,12 +2884,33 @@ ext2fs_istat(TSK_FS_INFO * fs, FILE * hFile, TSK_INUM_T inum,
         if (fs_meta->ctime)
             fs_meta->ctime -= sec_skew;
 
-        tsk_fprintf(hFile, "Accessed:\t%s\n",
-            tsk_fs_time_to_str(fs_meta->atime, timeBuf));
-        tsk_fprintf(hFile, "File Modified:\t%s\n",
-            tsk_fs_time_to_str(fs_meta->mtime, timeBuf));
-        tsk_fprintf(hFile, "Inode Modified:\t%s\n",
-            tsk_fs_time_to_str(fs_meta->ctime, timeBuf));
+
+        if(fs->ftype == TSK_FS_TYPE_EXT4 && large_inodes)
+        {
+            tsk_fprintf(hFile, "Accessed:\t%s\n",
+                tsk_fs_time_to_str_subsecs(fs_meta->atime, fs_meta->atime_nano, timeBuf));
+            tsk_fprintf(hFile, "File Modified:\t%s\n",
+                tsk_fs_time_to_str_subsecs(fs_meta->mtime, fs_meta->mtime_nano, timeBuf));
+            tsk_fprintf(hFile, "Inode Modified:\t%s\n",
+                tsk_fs_time_to_str_subsecs(fs_meta->ctime, fs_meta->ctime_nano, timeBuf));
+        }
+        else
+        {
+            tsk_fprintf(hFile, "Accessed:\t%s\n",
+                tsk_fs_time_to_str(fs_meta->atime, timeBuf));
+            tsk_fprintf(hFile, "File Modified:\t%s\n",
+                tsk_fs_time_to_str(fs_meta->mtime, timeBuf));
+            tsk_fprintf(hFile, "Inode Modified:\t%s\n",
+                tsk_fs_time_to_str(fs_meta->ctime, timeBuf));
+        }
+
+        if(fs->ftype == TSK_FS_TYPE_EXT4 && large_inodes) {
+            fs_meta->crtime -= sec_skew;
+            tsk_fprintf(hFile, "File Created:\t%s\n",
+                tsk_fs_time_to_str(fs_meta->crtime, timeBuf));
+            fs_meta->crtime += sec_skew;
+
+        }
 
         if (fs_meta->time2.ext2.dtime) {
             fs_meta->time2.ext2.dtime -= sec_skew;
@@ -1985,13 +2932,31 @@ ext2fs_istat(TSK_FS_INFO * fs, FILE * hFile, TSK_INUM_T inum,
         tsk_fprintf(hFile, "\nInode Times:\n");
     }
 
-    tsk_fprintf(hFile, "Accessed:\t%s\n",
-        tsk_fs_time_to_str(fs_meta->atime, timeBuf));
-    tsk_fprintf(hFile, "File Modified:\t%s\n",
-        tsk_fs_time_to_str(fs_meta->mtime, timeBuf));
-    tsk_fprintf(hFile, "Inode Modified:\t%s\n",
-        tsk_fs_time_to_str(fs_meta->ctime, timeBuf));
+    if(fs->ftype == TSK_FS_TYPE_EXT4 && large_inodes)
+    {
+        tsk_fprintf(hFile, "Accessed:\t%s\n",
+            tsk_fs_time_to_str_subsecs(fs_meta->atime, fs_meta->atime_nano, timeBuf));
+        tsk_fprintf(hFile, "File Modified:\t%s\n",
+            tsk_fs_time_to_str_subsecs(fs_meta->mtime, fs_meta->mtime_nano, timeBuf));
+        tsk_fprintf(hFile, "Inode Modified:\t%s\n",
+            tsk_fs_time_to_str_subsecs(fs_meta->ctime, fs_meta->ctime_nano, timeBuf));
+    }
+    else
+    {
+        tsk_fprintf(hFile, "Accessed:\t%s\n",
+            tsk_fs_time_to_str(fs_meta->atime, timeBuf));
+        tsk_fprintf(hFile, "File Modified:\t%s\n",
+            tsk_fs_time_to_str(fs_meta->mtime, timeBuf));
+        tsk_fprintf(hFile, "Inode Modified:\t%s\n",
+            tsk_fs_time_to_str(fs_meta->ctime, timeBuf));
+    }
+
 
+
+    if(fs->ftype == TSK_FS_TYPE_EXT4 && large_inodes) {
+        tsk_fprintf(hFile, "File Created:\t%s\n",
+            tsk_fs_time_to_str_subsecs(fs_meta->crtime, fs_meta->crtime_nano, timeBuf));
+    }
     if (fs_meta->time2.ext2.dtime)
         tsk_fprintf(hFile, "Deleted:\t%s\n",
             tsk_fs_time_to_str(fs_meta->time2.ext2.dtime, timeBuf));
@@ -2014,28 +2979,47 @@ ext2fs_istat(TSK_FS_INFO * fs, FILE * hFile, TSK_INUM_T inum,
         tsk_fprintf(hFile, "\n");
     }
 
-    fs_attr_indir = tsk_fs_file_attr_get_type(fs_file,
-        TSK_FS_ATTR_TYPE_UNIX_INDIR, 0, 0);
-    if (fs_attr_indir) {
-        tsk_fprintf(hFile, "\nIndirect Blocks:\n");
+    if (fs_meta->content_type == TSK_FS_META_CONTENT_TYPE_EXT4_EXTENTS) {
+        const TSK_FS_ATTR *fs_attr_extent = tsk_fs_file_attr_get_type(fs_file, TSK_FS_ATTR_TYPE_UNIX_EXTENT, 0, 0);
+        if (fs_attr_extent) {
+            tsk_fprintf(hFile, "\nExtent Blocks:\n");
 
-        print.idx = 0;
+            print.idx = 0;
 
-        if (tsk_fs_attr_walk(fs_attr_indir, TSK_FS_FILE_WALK_FLAG_AONLY,
-                print_addr_act, (void *) &print)) {
-            tsk_fprintf(hFile, "\nError reading indirect attribute:  ");
-            tsk_error_print(hFile);
-            tsk_error_reset();
+            if (tsk_fs_attr_walk(fs_attr_extent, TSK_FS_FILE_WALK_FLAG_AONLY,
+                    print_addr_act, (void *) &print)) {
+                tsk_fprintf(hFile, "\nError reading indirect attribute:  ");
+                tsk_error_print(hFile);
+                tsk_error_reset();
+            }
+            else if (print.idx != 0) {
+                tsk_fprintf(hFile, "\n");
+            }
         }
-        else if (print.idx != 0) {
-            tsk_fprintf(hFile, "\n");
+    }
+    else {
+        fs_attr_indir = tsk_fs_file_attr_get_type(fs_file,
+            TSK_FS_ATTR_TYPE_UNIX_INDIR, 0, 0);
+        if (fs_attr_indir) {
+            tsk_fprintf(hFile, "\nIndirect Blocks:\n");
+
+            print.idx = 0;
+
+            if (tsk_fs_attr_walk(fs_attr_indir, TSK_FS_FILE_WALK_FLAG_AONLY,
+                    print_addr_act, (void *) &print)) {
+                tsk_fprintf(hFile, "\nError reading indirect attribute:  ");
+                tsk_error_print(hFile);
+                tsk_error_reset();
+            }
+            else if (print.idx != 0) {
+                tsk_fprintf(hFile, "\n");
+            }
         }
     }
 
     tsk_fs_file_close(fs_file);
     if (dino_buf != NULL)
         free((char *) dino_buf);
-
     return 0;
 }
 
@@ -2153,7 +3137,12 @@ ext2fs_open(TSK_IMG_INFO * img_info, TSK_OFF_T offset,
 
     /* If autodetect was given, look for the journal */
     if (ftype == TSK_FS_TYPE_EXT_DETECT) {
-        if (tsk_getu32(fs->endian, ext2fs->fs->s_feature_compat) &
+        if (tsk_getu32(fs->endian, ext2fs->fs->s_feature_incompat) &
+            EXT2FS_FEATURE_INCOMPAT_EXTENTS){
+            fs->ftype = TSK_FS_TYPE_EXT4;
+            fs->flags |= TSK_FS_INFO_FLAG_HAVE_NANOSEC;
+        }
+        else if (tsk_getu32(fs->endian, ext2fs->fs->s_feature_compat) &
             EXT2FS_FEATURE_COMPAT_HAS_JOURNAL)
             fs->ftype = TSK_FS_TYPE_EXT3;
         else
@@ -2195,10 +3184,9 @@ ext2fs_open(TSK_IMG_INFO * img_info, TSK_OFF_T offset,
      * size if it is larger */
     ext2fs->inode_size = tsk_getu16(fs->endian, ext2fs->fs->s_inode_size);
     if (ext2fs->inode_size < sizeof(ext2fs_inode)) {
-        ext2fs->inode_size = sizeof(ext2fs_inode);
         if (tsk_verbose)
             tsk_fprintf(stderr,
-                "SB inode size is too small, using default");
+                "SB inode size is small");
     }
 
 
@@ -2206,7 +3194,15 @@ ext2fs_open(TSK_IMG_INFO * img_info, TSK_OFF_T offset,
      * Calculate the block info
      */
     fs->dev_bsize = img_info->sector_size;
-    fs->block_count = tsk_getu32(fs->endian, ext2fs->fs->s_blocks_count);
+    if (tsk_getu32(fs->endian, ext2fs->fs->s_feature_incompat) & EXT2FS_FEATURE_INCOMPAT_64BIT)
+    {
+//        printf("DEBUG fs_open: 64bit file system\n");
+        fs->block_count = ext4_getu64(fs->endian, ext2fs->fs->s_blocks_count_hi, ext2fs->fs->s_blocks_count);
+    }
+    else
+    {
+        fs->block_count = tsk_getu32(fs->endian, ext2fs->fs->s_blocks_count);
+    }
     fs->first_block = 0;
     fs->last_block_act = fs->last_block = fs->block_count - 1;
     ext2fs->first_data_block =
@@ -2243,13 +3239,22 @@ ext2fs_open(TSK_IMG_INFO * img_info, TSK_OFF_T offset,
     ext2fs->groups_offset =
         roundup((EXT2FS_SBOFF + sizeof(ext2fs_sb)), fs->block_size);
 
-    ext2fs->groups_count =
+    if (tsk_getu32(fs->endian, ext2fs->fs->s_feature_incompat) & EXT2FS_FEATURE_INCOMPAT_64BIT)
+    {
+        ext2fs->groups_count = 
+        (EXT2_GRPNUM_T) ((ext4_getu64(fs->endian, ext2fs->fs->s_blocks_count_hi, ext2fs->fs->s_blocks_count)
+                        - ext2fs->first_data_block +
+                        tsk_getu32(fs->endian,ext2fs->fs->s_blocks_per_group) - 1)
+                        / tsk_getu32(fs->endian, ext2fs->fs->s_blocks_per_group));
+    }
+    else{
+        ext2fs->groups_count =
         (EXT2_GRPNUM_T) ((tsk_getu32(fs->endian,
                 ext2fs->fs->s_blocks_count) - ext2fs->first_data_block +
             tsk_getu32(fs->endian,
                 ext2fs->fs->s_blocks_per_group) -
             1) / tsk_getu32(fs->endian, ext2fs->fs->s_blocks_per_group));
-
+    }
 
     /* Volume ID */
     for (fs->fs_id_used = 0; fs->fs_id_used < 16; fs->fs_id_used++) {
@@ -2262,7 +3267,8 @@ ext2fs_open(TSK_IMG_INFO * img_info, TSK_OFF_T offset,
     fs->block_getflags = ext2fs_block_getflags;
 
     fs->get_default_attr_type = tsk_fs_unix_get_default_attr_type;
-    fs->load_attrs = tsk_fs_unix_make_data_run;
+    //fs->load_attrs = tsk_fs_unix_make_data_run;
+    fs->load_attrs = ext2fs_load_attrs;
 
     fs->file_add_meta = ext2fs_inode_lookup;
     fs->dir_open_meta = ext2fs_dir_open_meta;
diff --git a/tsk3/fs/ext2fs_dent.c b/tsk/fs/ext2fs_dent.c
similarity index 95%
rename from tsk3/fs/ext2fs_dent.c
rename to tsk/fs/ext2fs_dent.c
index 2e9e6ce67ea884821ddb9ab10601b75f58d4d07e..d370c040af5bf20a703e9533fafe7000d33e95f9 100644
--- a/tsk3/fs/ext2fs_dent.c
+++ b/tsk/fs/ext2fs_dent.c
@@ -268,9 +268,17 @@ ext2fs_dir_open_meta(TSK_FS_INFO * a_fs, TSK_FS_DIR ** a_fs_dir,
     }
 
     if (tsk_verbose)
+    {
         tsk_fprintf(stderr,
             "ext2fs_dir_open_meta: Processing directory %" PRIuINUM
             "\n", a_addr);
+#ifdef Ext4_DBG
+        tsk_fprintf(stderr,
+            "ext2fs_dir_open_meta: $OrphanFiles Inum %" PRIuINUM
+            " == %" PRIuINUM ": %d\n", TSK_FS_ORPHANDIR_INUM(a_fs), a_addr, 
+            a_addr == TSK_FS_ORPHANDIR_INUM(a_fs));
+#endif
+    }
 
     fs_dir = *a_fs_dir;
     if (fs_dir) {
@@ -285,8 +293,17 @@ ext2fs_dir_open_meta(TSK_FS_INFO * a_fs, TSK_FS_DIR ** a_fs_dir,
 
     //  handle the orphan directory if its contents were requested
     if (a_addr == TSK_FS_ORPHANDIR_INUM(a_fs)) {
+#ifdef Ext4_DBG
+        tsk_fprintf(stderr,"DEBUG: Getting ready to process ORPHANS\n");
+#endif
         return tsk_fs_dir_find_orphans(a_fs, fs_dir);
     }
+    else
+    {
+#ifdef Ext4_DBG
+        tsk_fprintf(stderr,"DEBUG: not orphan %" PRIuINUM "!=%"PRIuINUM"\n", a_addr, TSK_FS_ORPHANDIR_INUM(a_fs));
+#endif
+    }
 
     if ((fs_dir->fs_file =
             tsk_fs_file_open_meta(a_fs, NULL, a_addr)) == NULL) {
diff --git a/tsk3/fs/ext2fs_journal.c b/tsk/fs/ext2fs_journal.c
similarity index 87%
rename from tsk3/fs/ext2fs_journal.c
rename to tsk/fs/ext2fs_journal.c
index c4b929faa31fc0fbd906d5abb5e1bd7ad61275c3..c2259c94c72ea91382dd5bcb4767396275cd391d 100644
--- a/tsk3/fs/ext2fs_journal.c
+++ b/tsk/fs/ext2fs_journal.c
@@ -139,6 +139,8 @@ ext2fs_jentry_walk(TSK_FS_INFO * fs, int flags,
     TSK_FS_LOAD_FILE buf1;
     TSK_DADDR_T i;
     int b_desc_seen = 0;
+    ext2fs_journ_sb * journ_sb = NULL;
+	ext4fs_journ_commit_head *commit_head;
 
     // clean up any error messages that are lying around
     tsk_error_reset();
@@ -187,7 +189,7 @@ ext2fs_jentry_walk(TSK_FS_INFO * fs, int flags,
     /* Process the journal 
      * Cycle through each block
      */
-    tsk_printf("JBlk\tDescriptrion\n");
+    tsk_printf("JBlk\tDescription\n");
 
     /* Note that 'i' is incremented when we find a descriptor block and
      * process its contents. */
@@ -325,6 +327,20 @@ ext2fs_jentry_walk(TSK_FS_INFO * fs, int flags,
             (big_tsk_getu32(head->entry_type) == EXT2_J_ETYPE_SB2)) {
             tsk_printf("%" PRIuDADDR ":\tSuperblock (seq: %" PRIu32 ")\n",
                 i, big_tsk_getu32(head->entry_seq));
+            journ_sb = head;
+            tsk_printf("sb version: %d\n", big_tsk_getu32(head->entry_type));
+            tsk_printf("sb version: %d\n", big_tsk_getu32(journ_sb->entrytype));
+            tsk_printf("sb feature_compat flags 0x%08X\n", big_tsk_getu32(journ_sb->feature_compat));
+            if(big_tsk_getu32(journ_sb->feature_compat) & JBD2_FEATURE_COMPAT_CHECKSUM)
+                tsk_printf("\tJOURNAL_CHECKSUMS\n");
+            tsk_printf("sb feature_incompat flags 0x%08X\n", big_tsk_getu32(journ_sb->feature_incompat));
+            if(big_tsk_getu32(journ_sb->feature_incompat) & JBD2_FEATURE_INCOMPAT_REVOKE) 
+                tsk_printf("\tJOURNAL_REVOKE\n");
+            if(big_tsk_getu32(journ_sb->feature_incompat) & JBD2_FEATURE_INCOMPAT_64BIT) 
+                tsk_printf("\tJOURNAL_64BIT\n");
+            if(big_tsk_getu32(journ_sb->feature_incompat) & JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT) 
+                tsk_printf("\tJOURNAL_ASYNC_COMMIT\n");
+            tsk_printf("sb feature_ro_incompat flags 0x%08X\n", big_tsk_getu32(journ_sb->feature_ro_incompat));
         }
 
         /* Revoke Block */
@@ -339,10 +355,38 @@ ext2fs_jentry_walk(TSK_FS_INFO * fs, int flags,
         /* The commit is the end of the entries */
         else if (big_tsk_getu32(head->entry_type) == EXT2_J_ETYPE_COM) {
             tsk_printf("%" PRIuDADDR ":\t%sCommit Block (seq: %" PRIu32
-                ")\n", i, ((i < jinfo->start_blk)
+                , i, ((i < jinfo->start_blk)
                     || (big_tsk_getu32(head->entry_seq) <
                         jinfo->start_seq)) ? "Unallocated " : "Allocated ",
                 big_tsk_getu32(head->entry_seq));
+           commit_head=head;
+            //tsk_printf("commit seq %" PRIu32 "\n", big_tsk_getu32(commit_head->c_header.entry_seq));
+            if(big_tsk_getu32(journ_sb->feature_compat) & JBD2_FEATURE_COMPAT_CHECKSUM)
+            {
+                int chksum_type = commit_head->chksum_type;
+                if(chksum_type)
+                {
+                    tsk_printf(", checksum_type: %d", commit_head->chksum_type);
+                    switch(commit_head->chksum_type){
+                        case JBD2_CRC32_CHKSUM:
+                            tsk_printf("-CRC32");
+                            break;
+                        case JBD2_MD5_CHKSUM:
+                            tsk_printf("-MD5");
+                            break;
+                        case JBD2_SHA1_CHKSUM:
+                            tsk_printf("-SHA1");
+                            break;
+                        default:
+                            tsk_printf("-UNKOWN");
+                            break;
+                    }
+                    tsk_printf(", checksum_size: %d", commit_head->chksum_size);
+                    tsk_printf(", chksum: 0x%08X", big_tsk_getu32(commit_head->chksum));
+                }
+            }
+            tsk_printf(", sec: %llu.%u", tsk_getu64( TSK_BIG_ENDIAN,commit_head->commit_sec), NSEC_PER_SEC/10 * tsk_getu32(TSK_BIG_ENDIAN,commit_head->commit_nsec));
+            tsk_printf(")\n");
         }
 
         /* The descriptor describes the FS blocks that follow it */
diff --git a/tsk3/fs/fatfs.c b/tsk/fs/fatfs.c
similarity index 100%
rename from tsk3/fs/fatfs.c
rename to tsk/fs/fatfs.c
diff --git a/tsk3/fs/fatfs_dent.cpp b/tsk/fs/fatfs_dent.cpp
similarity index 100%
rename from tsk3/fs/fatfs_dent.cpp
rename to tsk/fs/fatfs_dent.cpp
diff --git a/tsk3/fs/fatfs_meta.c b/tsk/fs/fatfs_meta.c
similarity index 100%
rename from tsk3/fs/fatfs_meta.c
rename to tsk/fs/fatfs_meta.c
diff --git a/tsk3/fs/ffind_lib.c b/tsk/fs/ffind_lib.c
similarity index 100%
rename from tsk3/fs/ffind_lib.c
rename to tsk/fs/ffind_lib.c
diff --git a/tsk3/fs/ffs.c b/tsk/fs/ffs.c
similarity index 100%
rename from tsk3/fs/ffs.c
rename to tsk/fs/ffs.c
diff --git a/tsk3/fs/ffs_dent.c b/tsk/fs/ffs_dent.c
similarity index 100%
rename from tsk3/fs/ffs_dent.c
rename to tsk/fs/ffs_dent.c
diff --git a/tsk3/fs/fls_lib.c b/tsk/fs/fls_lib.c
similarity index 100%
rename from tsk3/fs/fls_lib.c
rename to tsk/fs/fls_lib.c
diff --git a/tsk3/fs/fs_attr.c b/tsk/fs/fs_attr.c
similarity index 100%
rename from tsk3/fs/fs_attr.c
rename to tsk/fs/fs_attr.c
diff --git a/tsk3/fs/fs_attrlist.c b/tsk/fs/fs_attrlist.c
similarity index 100%
rename from tsk3/fs/fs_attrlist.c
rename to tsk/fs/fs_attrlist.c
diff --git a/tsk3/fs/fs_block.c b/tsk/fs/fs_block.c
similarity index 100%
rename from tsk3/fs/fs_block.c
rename to tsk/fs/fs_block.c
diff --git a/tsk3/fs/fs_dir.c b/tsk/fs/fs_dir.c
similarity index 100%
rename from tsk3/fs/fs_dir.c
rename to tsk/fs/fs_dir.c
diff --git a/tsk3/fs/fs_file.c b/tsk/fs/fs_file.c
similarity index 99%
rename from tsk3/fs/fs_file.c
rename to tsk/fs/fs_file.c
index 54a8961e7e0a7c4f0fa4e326d1aa3d46a395864c..b4e0d31517e2f062b874dca09ef99ff1d1478832 100644
--- a/tsk3/fs/fs_file.c
+++ b/tsk/fs/fs_file.c
@@ -130,6 +130,7 @@ tsk_fs_file_open_meta(TSK_FS_INFO * a_fs,
             free(fs_file);
         return NULL;
     }
+
     return fs_file;
 }
 
diff --git a/tsk3/fs/fs_inode.c b/tsk/fs/fs_inode.c
similarity index 96%
rename from tsk3/fs/fs_inode.c
rename to tsk/fs/fs_inode.c
index 6642f93e2a73fb2bb622764cfb55b6e41d8cf1a4..2166bc0bf6d2f38779d28e201be4b02fdd2e787c 100644
--- a/tsk3/fs/fs_inode.c
+++ b/tsk/fs/fs_inode.c
@@ -65,8 +65,7 @@ tsk_fs_meta_alloc(size_t a_buf_len)
  * block pointers. 
  *
  * @param fs_meta Structure to resize
- * @param direct_count Number of direct block address pointers to include in structure
- * @param indir_count Number of indirect block address pointers to include in structure
+ * @param a_buf_len Size of file system specific data that is used to store references to file content
  * @return NULL on error 
  */
 TSK_FS_META *
diff --git a/tsk3/fs/fs_io.c b/tsk/fs/fs_io.c
similarity index 100%
rename from tsk3/fs/fs_io.c
rename to tsk/fs/fs_io.c
diff --git a/tsk3/fs/fs_load.c b/tsk/fs/fs_load.c
similarity index 100%
rename from tsk3/fs/fs_load.c
rename to tsk/fs/fs_load.c
diff --git a/tsk3/fs/fs_name.c b/tsk/fs/fs_name.c
similarity index 95%
rename from tsk3/fs/fs_name.c
rename to tsk/fs/fs_name.c
index 32ccd5dae4e985a8b5b6d579c336bdf60f376673..83605dc2b5328347c3a31aeadab3e2a9cd78a8aa 100644
--- a/tsk3/fs/fs_name.c
+++ b/tsk/fs/fs_name.c
@@ -308,6 +308,35 @@ tsk_fs_time_to_str(time_t time, char buf[128])
     return buf;
 }
 
+/** \ingroup fslib
+ * Converts a time value to a string representation. Prints
+ * all zero values instead of 1970 if time is 0.
+ * @param time Time to be displayed.
+ * @param buf Buffer to print into (must b 64 bytes or larger)
+ * @param subsecs Subseconds to be printed
+ * @returns Pointer to buffer that was passed in.
+ */
+char *
+tsk_fs_time_to_str_subsecs(time_t time, unsigned int subsecs, char buf[128])
+{
+    buf[0] = '\0';
+    if (time <= 0) {
+        strncpy(buf, "0000-00-00 00:00:00 (UTC)", 32);
+    }
+    else {
+        struct tm *tmTime = localtime(&time);
+        
+        snprintf(buf, 64, "%.4d-%.2d-%.2d %.2d:%.2d:%.2d.%.9d (%s)",
+                 (int) tmTime->tm_year + 1900,
+                 (int) tmTime->tm_mon + 1, (int) tmTime->tm_mday,
+                 tmTime->tm_hour,
+                 (int) tmTime->tm_min, (int) tmTime->tm_sec,
+                 subsecs,
+                 tzname[(tmTime->tm_isdst == 0) ? 0 : 1]);
+    }
+    return buf;
+}
+
 
 static void
 tsk_fs_print_time(FILE * hFile, time_t time)
diff --git a/tsk3/fs/fs_open.c b/tsk/fs/fs_open.c
similarity index 92%
rename from tsk3/fs/fs_open.c
rename to tsk/fs/fs_open.c
index 6529ba9d6c4b8a68c9ec60cf36a0b5a3a138ca34..e7bde9eeb9f7d306058fbe5b2c2aeafbab0402a1 100644
--- a/tsk3/fs/fs_open.c
+++ b/tsk/fs/fs_open.c
@@ -172,6 +172,26 @@ tsk_fs_open_img(TSK_IMG_INFO * a_img_info, TSK_OFF_T a_offset,
             tsk_error_reset();
         }
 
+		if ((fs_info =
+                yaffs2_open(a_img_info, a_offset,
+                    TSK_FS_TYPE_YAFFS2_DETECT, 1)) != NULL) {
+            if (set == NULL) {
+                set = "YAFFS2";
+                fs_set = fs_info;
+            }
+            else {
+                fs_set->close(fs_set);
+                fs_info->close(fs_info);
+                tsk_error_reset();
+                tsk_error_set_errno(TSK_ERR_FS_UNKTYPE);
+                tsk_error_set_errstr("YAFFS2 or %s", set);
+                return NULL;
+            }
+        }
+        else {
+            tsk_error_reset();
+        }
+
 
 #if TSK_USE_HFS
         if ((fs_info =
@@ -237,6 +257,8 @@ tsk_fs_open_img(TSK_IMG_INFO * a_img_info, TSK_OFF_T a_offset,
             return rawfs_open(a_img_info, a_offset);
         else if (TSK_FS_TYPE_ISSWAP(a_ftype))
             return swapfs_open(a_img_info, a_offset);
+        else if (TSK_FS_TYPE_ISYAFFS2(a_ftype))
+            return yaffs2_open(a_img_info, a_offset, a_ftype, 0);
         else {
             tsk_error_reset();
             tsk_error_set_errno(TSK_ERR_FS_UNSUPTYPE);
diff --git a/tsk3/fs/fs_parse.c b/tsk/fs/fs_parse.c
similarity index 100%
rename from tsk3/fs/fs_parse.c
rename to tsk/fs/fs_parse.c
diff --git a/tsk3/fs/fs_types.c b/tsk/fs/fs_types.c
similarity index 96%
rename from tsk3/fs/fs_types.c
rename to tsk/fs/fs_types.c
index 6b505311bc8c1239578e9e9c6c2897504f376eb5..d9d8cfc60d0d9b2830d76f74c2bcbbf41c1b6ff0 100644
--- a/tsk3/fs/fs_types.c
+++ b/tsk/fs/fs_types.c
@@ -51,8 +51,10 @@ static FS_TYPES fs_type_table[] = {
     {"fat32", TSK_FS_TYPE_FAT32, "FAT32"},
     {"ext2", TSK_FS_TYPE_EXT2, "Ext2"},
     {"ext3", TSK_FS_TYPE_EXT3, "Ext3"},
+    {"ext4", TSK_FS_TYPE_EXT4, "Ext4"},
     {"ufs1", TSK_FS_TYPE_FFS1, "UFS1"},
     {"ufs2", TSK_FS_TYPE_FFS2, "UFS2"},
+    {"yaffs2", TSK_FS_TYPE_YAFFS2, "YAFFS2"},
     {0},
 };
 
@@ -61,6 +63,7 @@ static FS_TYPES fs_legacy_type_table[] = {
     {"linux-ext", TSK_FS_TYPE_EXT_DETECT, "auto-detect Linux EXTxFS"},
     {"linux-ext2", TSK_FS_TYPE_EXT2, "Linux TSK_FS_TYPE_EXT_2"},
     {"linux-ext3", TSK_FS_TYPE_EXT3, "Linux TSK_FS_TYPE_EXT_3"},
+    {"linux-ext4", TSK_FS_TYPE_EXT4, "Linux TSK_FS_TYPE_EXT_4"},
     {"bsdi", TSK_FS_TYPE_FFS1, "BSDi FFS"},
     {"freebsd", TSK_FS_TYPE_FFS1, "FreeBSD FFS"},
     {"netbsd", TSK_FS_TYPE_FFS1, "NetBSD FFS"},
diff --git a/tsk3/fs/hfs.c b/tsk/fs/hfs.c
similarity index 100%
rename from tsk3/fs/hfs.c
rename to tsk/fs/hfs.c
diff --git a/tsk3/fs/hfs_dent.c b/tsk/fs/hfs_dent.c
similarity index 100%
rename from tsk3/fs/hfs_dent.c
rename to tsk/fs/hfs_dent.c
diff --git a/tsk3/fs/hfs_journal.c b/tsk/fs/hfs_journal.c
similarity index 100%
rename from tsk3/fs/hfs_journal.c
rename to tsk/fs/hfs_journal.c
diff --git a/tsk3/fs/hfs_unicompare.c b/tsk/fs/hfs_unicompare.c
similarity index 100%
rename from tsk3/fs/hfs_unicompare.c
rename to tsk/fs/hfs_unicompare.c
diff --git a/tsk3/fs/icat_lib.c b/tsk/fs/icat_lib.c
similarity index 100%
rename from tsk3/fs/icat_lib.c
rename to tsk/fs/icat_lib.c
diff --git a/tsk3/fs/ifind_lib.c b/tsk/fs/ifind_lib.c
similarity index 100%
rename from tsk3/fs/ifind_lib.c
rename to tsk/fs/ifind_lib.c
diff --git a/tsk3/fs/ils_lib.c b/tsk/fs/ils_lib.c
similarity index 100%
rename from tsk3/fs/ils_lib.c
rename to tsk/fs/ils_lib.c
diff --git a/tsk3/fs/iso9660.c b/tsk/fs/iso9660.c
similarity index 100%
rename from tsk3/fs/iso9660.c
rename to tsk/fs/iso9660.c
diff --git a/tsk3/fs/iso9660_dent.c b/tsk/fs/iso9660_dent.c
similarity index 100%
rename from tsk3/fs/iso9660_dent.c
rename to tsk/fs/iso9660_dent.c
diff --git a/tsk3/fs/nofs_misc.c b/tsk/fs/nofs_misc.c
similarity index 100%
rename from tsk3/fs/nofs_misc.c
rename to tsk/fs/nofs_misc.c
diff --git a/tsk3/fs/ntfs.c b/tsk/fs/ntfs.c
similarity index 100%
rename from tsk3/fs/ntfs.c
rename to tsk/fs/ntfs.c
diff --git a/tsk3/fs/ntfs_dent.cpp b/tsk/fs/ntfs_dent.cpp
similarity index 100%
rename from tsk3/fs/ntfs_dent.cpp
rename to tsk/fs/ntfs_dent.cpp
diff --git a/tsk3/fs/rawfs.c b/tsk/fs/rawfs.c
similarity index 100%
rename from tsk3/fs/rawfs.c
rename to tsk/fs/rawfs.c
diff --git a/tsk3/fs/swapfs.c b/tsk/fs/swapfs.c
similarity index 100%
rename from tsk3/fs/swapfs.c
rename to tsk/fs/swapfs.c
diff --git a/tsk3/fs/tsk_ext2fs.h b/tsk/fs/tsk_ext2fs.h
similarity index 53%
rename from tsk3/fs/tsk_ext2fs.h
rename to tsk/fs/tsk_ext2fs.h
index f068bb24fac5f54f904466716d8401085d9c358d..6e9765fb8545c7b0a88691bdc7a7aab7c28537be 100644
--- a/tsk3/fs/tsk_ext2fs.h
+++ b/tsk/fs/tsk_ext2fs.h
@@ -1,13 +1,13 @@
 /*
-** The Sleuth Kit 
+** The Sleuth Kit
 **
 ** Brian Carrier [carrier <at> sleuthkit [dot] org]
 ** Copyright (c) 2003-2011 Brian Carrier.  All rights reserved
 **
 ** TASK
 ** Copyright (c) 2002 Brian Carrier, @stake Inc.  All rights reserved
-** 
-** This software is distributed under the Common Public License 1.0 
+**
+** This software is distributed under the Common Public License 1.0
 */
 
 /*
@@ -21,8 +21,65 @@
 extern "C" {
 #endif
 
-    typedef uint32_t EXT2_GRPNUM_T;
-#define PRI_EXT2GRP	PRIu32
+    typedef uint64_t EXT2_GRPNUM_T;
+#define PRI_EXT2GRP	PRIu64
+
+
+/** \internal
+* Read a 48-bit unsigned value.
+* @param endian Flag that identifies local ordering.
+* @param x 16-bit MSB byte array to read from
+* @param y 32-bit byte array to read from
+* @returns 48-bit unsigned value
+*/
+#define ext4_getu48(endian, x, y)   \
+(uint64_t)( ((endian) == TSK_LIT_ENDIAN)  ?	\
+            ((uint64_t) \
+             ((uint64_t)((uint8_t *)(y))[0] <<  0) + \
+             ((uint64_t)((uint8_t *)(y))[1] <<  8) + \
+             ((uint64_t)((uint8_t *)(y))[2] << 16) + \
+             ((uint64_t)((uint8_t *)(y))[3] << 24) + \
+             ((uint64_t)((uint8_t *)(x))[0] << 32) + \
+             ((uint64_t)((uint8_t *)(x))[1] << 40)) \
+                                          : \
+            ((uint64_t) \
+             ((uint64_t)((uint8_t *)(y))[3] <<  0) + \
+             ((uint64_t)((uint8_t *)(y))[2] <<  8) + \
+             ((uint64_t)((uint8_t *)(y))[1] << 16) + \
+             ((uint64_t)((uint8_t *)(y))[0] << 24) + \
+             ((uint64_t)((uint8_t *)(x))[1] << 32) + \
+             ((uint64_t)((uint8_t *)(x))[0] << 40)) )\
+
+
+/** \internal
+* Read a 48-bit unsigned value.
+* @param endian Flag that identifies local ordering.
+* @param x 32-bit MSB byte array to read from
+* @param y 32-bit byte array to read from
+* @returns 48-bit unsigned value
+*/
+#define ext4_getu64(endian, x, y)   \
+(uint64_t)( ((endian) == TSK_LIT_ENDIAN)  ?	\
+            ((uint64_t) \
+             ((uint64_t)((uint8_t *)(y))[0] <<  0) + \
+             ((uint64_t)((uint8_t *)(y))[1] <<  8) + \
+             ((uint64_t)((uint8_t *)(y))[2] << 16) + \
+             ((uint64_t)((uint8_t *)(y))[3] << 24) + \
+             ((uint64_t)((uint8_t *)(x))[0] << 32) + \
+             ((uint64_t)((uint8_t *)(x))[1] << 40) + \
+             ((uint64_t)((uint8_t *)(x))[2] << 48) + \
+             ((uint64_t)((uint8_t *)(x))[3] << 56))\
+                                          : \
+            ((uint64_t) \
+             ((uint64_t)((uint8_t *)(y))[3] <<  0) + \
+             ((uint64_t)((uint8_t *)(y))[2] <<  8) + \
+             ((uint64_t)((uint8_t *)(y))[1] << 16) + \
+             ((uint64_t)((uint8_t *)(y))[0] << 24) + \
+             ((uint64_t)((uint8_t *)(x))[3] << 32) + \
+             ((uint64_t)((uint8_t *)(x))[2] << 40) + \
+             ((uint64_t)((uint8_t *)(x))[1] << 48) + \
+             ((uint64_t)((uint8_t *)(x))[0] << 56)) )\
+
 
 /*
 ** Constants
@@ -77,15 +134,61 @@ extern "C" {
         uint8_t s_uuid[16];     /* u8[16] */
         char s_volume_name[16];
         char s_last_mounted[64];
-        uint8_t s_algorithm_usage_bitmap[4];    /* u32 */
+        uint8_t s_algorithm_usage_bitmap[4]; /* u32 */
         uint8_t s_prealloc_blocks;      /* u8 */
         uint8_t s_prealloc_dir_blocks;  /* u8 */
-        uint8_t s_padding1[2];  /* u16 */
+        union pad_or_gdt{
+            uint8_t s_padding1[2];          /* u16 */
+            uint8_t s_reserved_gdt_blocks[2]; /*u16*/
+        }pad_or_gdt;
+/* Valid if EXT2_FEATURE_COMPAT_HAS_JOURNAL */
         uint8_t s_journal_uuid[16];     /* u8[16] */
         uint8_t s_journal_inum[4];      /* u32 */
         uint8_t s_journal_dev[4];       /* u32 */
         uint8_t s_last_orphan[4];       /* u32 */
-        uint8_t s_padding[788];
+        uint8_t s_hash_seed[16];        /* u32[4] */
+        uint8_t s_def_hash_version;     /* u8 */
+        uint8_t s_jnl_backup_type;      /* u8 */
+        uint8_t s_desc_size[2];         /* u16 */
+        uint8_t s_default_mount_opts[4];  /* u32 */
+        uint8_t s_first_meta_bg[4];     /* u32 */
+        uint8_t s_mkfs_time[4];         /* u32 */
+        uint8_t s_jnl_blocks[17 * 4];   /* u32[17] */
+/* Valid if EXT4_FEATURE_INCOMPAT_64BIT*/
+        uint8_t s_blocks_count_hi[4];   /* u32 */
+        uint8_t s_r_blocks_count_hi[4]; /* u32 */
+        uint8_t s_free_blocks_count_hi[4]; /* u32 */
+        uint8_t s_min_extra_isize[2];   /* u16 */
+        uint8_t s_want_extra_isize[2];  /* u16 */
+        uint8_t s_flags[4];             /* u32 */
+        uint8_t s_raid_stride[2];       /* u16 */
+        uint8_t s_mmp_interval[2];      /* u16 */
+        uint8_t s_mmp_block[8];         /* u64 */
+        uint8_t s_raid_stripe_width[4]; /* u32 */
+        uint8_t s_log_groups_per_flex;  /* u8 */
+        uint8_t s_reserved_char_pad;    /* u8 */
+        uint8_t s_reserved_pad[2];      /* u16 */
+        uint8_t s_kbytes_written[8];    /* u64 */
+        uint8_t s_snapshot_inum[4];     /* u32 */
+        uint8_t s_snapshot_id[4];       /* u32 */
+        uint8_t s_snapshot_r_blocks_count[8]; /* u64 */
+        uint8_t s_snapshot_list[4];     /* u32 */
+        uint8_t s_error_count[4];       /* u32 */
+        uint8_t s_first_error_time[4];  /* u32 */
+        uint8_t s_first_error_ino[4];   /* u32 */
+        uint8_t s_first_error_block[8]; /* u64 */
+        uint8_t s_first_error_func[32]; /* u8[32] */
+        uint8_t s_first_error_line[4];  /* u32 */
+        uint8_t s_last_error_time[4];   /* u32 */
+        uint8_t s_last_error_ino[4];    /* u32 */
+        uint8_t s_last_error_line[4];   /* u32 */
+        uint8_t s_last_error_block[8];  /* u64 */
+        uint8_t s_last_error_func[32];  /* u8[32] */
+        uint8_t s_mount_opts[64];       /* u8[64] */
+        uint8_t s_usr_quota_inum[4];    /* u32 */
+        uint8_t s_grp_quota_inum[4];    /* u32 */
+        uint8_t s_overhead_clusters[4]; /* u32 */
+        uint8_t s_padding[ 109 * 4];
     } ext2fs_sb;
 
 /* File system State Values */
@@ -104,6 +207,9 @@ extern "C" {
 #define EXT2FS_REV_DYN		1
 
 /* feature flags */
+#define EXT2FS_HAS_COMPAT_FEATURE(fs,sb,mask)\
+    ((tsk_getu32(fs->endian,sb->s_feature_compat) & mask) != 0)
+
 #define EXT2FS_FEATURE_COMPAT_DIR_PREALLOC	0x0001
 #define EXT2FS_FEATURE_COMPAT_IMAGIC_INODES	0x0002
 #define EXT2FS_FEATURE_COMPAT_HAS_JOURNAL	0x0004
@@ -111,21 +217,42 @@ extern "C" {
 #define EXT2FS_FEATURE_COMPAT_RESIZE_INO	0x0010
 #define EXT2FS_FEATURE_COMPAT_DIR_INDEX		0x0020
 
+#define EXT2FS_HAS_INCOMPAT_FEATURE(fs,sb,mask)\
+    ((tsk_getu32(fs->endian,sb->s_feature_incompat) & mask) != 0)
+
 #define EXT2FS_FEATURE_INCOMPAT_COMPRESSION	0x0001
 #define EXT2FS_FEATURE_INCOMPAT_FILETYPE	0x0002
 #define EXT2FS_FEATURE_INCOMPAT_RECOVER		0x0004
 #define EXT2FS_FEATURE_INCOMPAT_JOURNAL_DEV	0x0008
+#define EXT2FS_FEATURE_INCOMPAT_META_BG         0x0010
+#define EXT2FS_FEATURE_INCOMPAT_EXTENTS         0x0040
+#define EXT2FS_FEATURE_INCOMPAT_64BIT           0x0080
+#define EXT2FS_FEATURE_INCOMPAT_MMP             0x0100
+#define EXT2FS_FEATURE_INCOMPAT_FLEX_BG         0x0200
+#define EXT2FS_FEATURE_INCOMPAT_EA_INODE        0x0400
+#define EXT2FS_FEATURE_INCOMPAT_DIRDATA         0x1000
+#define EXT4FS_FEATURE_INCOMPAT_INLINEDATA      0x2000 /* data in inode */
+#define EXT4FS_FEATURE_INCOMPAT_LARGEDIR        0x4000 /* >2GB or 3-lvl htree */
+
+#define EXT2FS_HAS_RO_COMPAT_FEATURE(fs,sb,mask)\
+    ((tsk_getu32(fs->endian,sb->s_feature_ro_compat) & mask) != 0)
 
 #define EXT2FS_FEATURE_RO_COMPAT_SPARSE_SUPER	0x0001
-#define EXT2FS_FEATURE_RO_COMPAT_LARGE_FILE		0x0002
-#define EXT2FS_FEATURE_RO_COMPAT_BTREE_DIR		0x0004
-
+#define EXT2FS_FEATURE_RO_COMPAT_LARGE_FILE 	0x0002
+#define EXT2FS_FEATURE_RO_COMPAT_BTREE_DIR  	0x0004
+#define EXT2FS_FEATURE_RO_COMPAT_HUGE_FILE      0x0008
+#define EXT2FS_FEATURE_RO_COMPAT_GDT_CSUM       0x0010
+#define EXT2FS_FEATURE_RO_COMPAT_DIR_NLINK      0x0020
+#define EXT2FS_FEATURE_RO_COMPAT_EXTRA_ISIZE    0x0040
+#define EXT4FS_FEATURE_RO_COMPAT_QUOTA          0x0100
+#define EXT4FS_FEATURE_RO_COMPAT_BIGALLOC       0x0200
+#define EXT4FS_FEATURE_RO_COMPAT_METADATA_CSUM  0x0400
 
 
 /*
  * Group Descriptor
  */
-    typedef struct {
+    typedef struct ext2fs_gd{
         uint8_t bg_block_bitmap[4];     /* u32: block of blocks bitmap */
         uint8_t bg_inode_bitmap[4];     /* u32: block of inodes bitmap */
         uint8_t bg_inode_table[4];      /* u32: block of inodes table */
@@ -135,6 +262,34 @@ extern "C" {
         uint8_t f1[14];
     } ext2fs_gd;
 
+#define EXT4_BG_INODE_UNINIT    0x0001 /* Inode table/bitmap not in use */
+#define EXT4_BG_BLOCK_UNINIT    0x0002 /* Block bitmap not in use */
+#define EXT4_BG_INODE_ZEROED    0x0004 /* On-disk itable initialized to zero */
+
+#define EXT4BG_HAS_FLAG(fs,gd,flag)\
+    ((tsk_getu16(fs->endian,gd->bg_flags) & flag) != 0)
+
+    typedef struct ext4fs_gd{
+        uint8_t bg_block_bitmap_lo[4];      /* u32 */
+        uint8_t bg_inode_bitmap_lo[4];      /* u32 */
+        uint8_t bg_inode_table_lo[4];       /* u32 */
+        uint8_t bg_free_blocks_count_lo[2]; /* u16 */
+        uint8_t bg_free_inodes_count_lo[2]; /* u16 */
+        uint8_t bg_used_dirs_count_lo[2];   /* u16 */
+        uint8_t bg_flags[2];                /* u16 */
+        uint8_t bg_reserved[4*2];           /* u32 */
+        uint8_t bg_itable_unused_lo[2];     /* u16 */
+        uint8_t bg_checksum[2];             /* u16 */
+        uint8_t bg_block_bitmap_hi[4];      /* u32 */
+        uint8_t bg_inode_bitmap_hi[4];      /* u32 */
+        uint8_t bg_inode_table_hi[4];       /* u32 */
+        uint8_t bg_free_blocks_count_hi[2]; /* u16 */
+        uint8_t bg_free_inodes_count_hi[2]; /* u16 */
+        uint8_t bg_used_dirs_count_hi[2];   /* u16 */
+        uint8_t bg_itable_unused_hi[2];     /* u16 */
+        uint8_t bg_reserved2[4*3];          /* u32 */
+    }ext4fs_gd;
+
 
 /* data address to group number */
 #define ext2_dtog_lcl(fsi, fs, d)	\
@@ -147,6 +302,9 @@ extern "C" {
 	((TSK_DADDR_T)((tsk_getu32(fsi->endian, fs->s_blocks_per_group) * (c)) + \
 	tsk_getu32(fsi->endian, fs->s_first_data_block)))
 
+#define ext4_cgbase_lcl(fsi, fs, c)	\
+	((TSK_DADDR_T)((uint64_t)(tsk_getu32(fsi->endian, fs->s_blocks_per_group) * (uint64_t)(c)) + \
+	(uint64_t)tsk_getu32(fsi->endian, fs->s_first_data_block)))
 
 /*
  * Inode
@@ -172,11 +330,41 @@ extern "C" {
         uint8_t i_frag;
         uint8_t i_fsize;
         uint8_t f1[2];
-        uint8_t i_uid_high[2];
-        uint8_t i_gid_high[2];
-        uint8_t f7[4];
+        uint8_t i_uid_high[2];     /* u16 */
+        uint8_t i_gid_high[2];     /* u16 */
+        uint8_t f7[4];             /* u32 */
+        uint8_t i_extra_isize[2];  /* u16 */
+        uint8_t i_pad1[2];         /* u16 */
+        uint8_t i_ctime_extra[4];  /* u32 */
+        uint8_t i_mtime_extra[4];  /* u32 */
+        uint8_t i_atime_extra[4];  /* u32 */
+        uint8_t i_crtime[4];       /* u32 */
+        uint8_t i_crtime_extra[4]; /* u32 */
+        uint8_t i_version_hi[4];   /* u32 */
     } ext2fs_inode;
 
+    typedef struct ext2fs_extent {
+        uint8_t  ee_block[4];       /* u32 */
+        uint8_t  ee_len[2];         /* u16 */
+        uint8_t  ee_start_hi[2];    /* u16 */
+        uint8_t  ee_start_lo[4];    /* u32 */
+    } ext2fs_extent;
+
+    typedef struct ext2fs_extent_idx {
+        uint8_t  ei_block[4];       /* u32 */
+        uint8_t  ei_leaf_lo[4];     /* u32 */
+        uint8_t  ei_leaf_hi[2];     /* u16 */
+        uint8_t  ei_unused[2];      /* u16 */
+    } ext2fs_extent_idx;
+
+    typedef struct ext2fs_extent_header {
+        uint8_t  eh_magic[2];       /* u16 */
+        uint8_t  eh_entries[2];     /* u16 */
+        uint8_t  eh_max[2];         /* u16 */
+        uint8_t  eh_depth[2];       /* u16 */
+        uint8_t  eh_generation[4];  /* u32 */
+    } ext2fs_extent_header;
+
 /* MODE */
 #define EXT2_IN_FMT  0170000
 #define EXT2_IN_SOCK 0140000
@@ -209,7 +397,23 @@ extern "C" {
 #define EXT2_IN_APPEND 		0x00000020      /* writes to file may only append */
 #define EXT2_IN_NODUMP 		0x00000040      /* do not dump file */
 #define EXT2_IN_NOA		 	0x00000080      /* do not update atime */
-
+#define EXT2_IN_DIRTY                   0x00000100
+#define EXT2_IN_COMPRBLK                0x00000200 /* One or more compressed clusters */
+#define EXT2_IN_NOCOMPR                 0x00000400 /* Don't compress */
+#define EXT2_IN_ECOMPR                  0x00000800 /* Compression error */
+#define EXT2_IN_INDEX                   0x00001000 /* hash-indexed directory */
+#define EXT2_IN_IMAGIC                  0x00002000 /* AFS directory */
+#define EXT2_IN_JOURNAL_DATA            0x00004000 /* file data should be journaled */
+#define EXT2_IN_NOTAIL                  0x00008000 /* file tail should not be merged */
+#define EXT2_IN_DIRSYNC                 0x00010000 /* dirsync behaviour (directories only) */
+#define EXT2_IN_TOPDIR                  0x00020000 /* Top of directory hierarchies*/
+#define EXT2_IN_HUGE_FILE               0x00040000 /* Set to each huge file */
+#define EXT2_IN_EXTENTS                 0x00080000 /* Inode uses extents */
+#define EXT2_IN_EA_INODE                0x00200000 /* Inode used for large EA */
+#define EXT2_IN_EOFBLOCKS               0x00400000 /* Blocks allocated beyond EOF */
+#define EXT2_IN_RESERVED                0x80000000 /* reserved for ext4 lib */
+#define EXT2_IN_USER_VISIBLE            0x004BDFFF /* User visible flags */
+#define EXT2_IN_USER_MODIFIABLE         0x004B80FF /* User modifiable flags */
 
 
 /*
@@ -275,8 +479,8 @@ extern "C" {
 #define EXT2_EA_IDX_LUSTRE                 5
 #define EXT2_EA_IDX_SECURITY               6
 
-/* Entries follow the header and are aligned to 4-byte boundaries 
- * the value of the attribute is stored at the bottom of the block 
+/* Entries follow the header and are aligned to 4-byte boundaries
+ * the value of the attribute is stored at the bottom of the block
  */
     typedef struct {
         uint8_t nlen;
@@ -330,6 +534,13 @@ extern "C" {
 
 #define EXT2_JMAGIC	0xC03b3998
 
+/*JBD2 Feature Flags */
+#define JBD2_FEATURE_COMPAT_CHECKSUM        0x00000001
+
+#define JBD2_FEATURE_INCOMPAT_REVOKE        0x00000001
+#define JBD2_FEATURE_INCOMPAT_64BIT         0x00000002
+#define JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT  0x00000004
+
     typedef struct {
         uint8_t magic[4];
         uint8_t entrytype[4];
@@ -371,6 +582,27 @@ extern "C" {
         uint8_t entry_seq[4];
     } ext2fs_journ_head;
 
+/* JBD2 Checksum types */
+#define JBD2_CRC32_CHKSUM   1
+#define JBD2_MD5_CHKSUM     2
+#define JBD2_SHA1_CHKSUM    3
+
+#define JBD2_CRC32_CHKSUM_SIZE  4
+#define JBD2_CHECKSUM_BYTES (32/ sizeof(unsigned int))
+
+#define NSEC_PER_SEC 1000000000L
+
+/* Header for ext4 commit blocks */
+    typedef struct {
+        ext2fs_journ_head c_header;
+        uint8_t chksum_type;
+        uint8_t chksum_size;
+        uint8_t padding[2];
+        uint8_t chksum[4*JBD2_CHECKSUM_BYTES];
+        uint8_t commit_sec[8];
+        uint8_t commit_nsec[4];
+    } ext4fs_journ_commit_head;
+
 
 /* dentry flags */
 #define EXT2_J_DENTRY_ESC	1       /* The orig block starts with magic */
@@ -412,7 +644,10 @@ extern "C" {
         /* lock protects grp_buf, grp_num, bmap_buf, bmap_grp_num, imap_buf, imap_grp_num */
         tsk_lock_t lock;
 
+        void *v_grp_buf;
+        ext4fs_gd *ext4_grp_buf;
         ext2fs_gd *grp_buf;     /* cached group descriptor r/w shared - lock */
+
         EXT2_GRPNUM_T grp_num;  /* cached group number r/w shared - lock */
 
         uint8_t *bmap_buf;      /* cached block allocation bitmap r/w shared - lock */
diff --git a/tsk3/fs/tsk_fatfs.h b/tsk/fs/tsk_fatfs.h
similarity index 100%
rename from tsk3/fs/tsk_fatfs.h
rename to tsk/fs/tsk_fatfs.h
diff --git a/tsk3/fs/tsk_ffs.h b/tsk/fs/tsk_ffs.h
similarity index 100%
rename from tsk3/fs/tsk_ffs.h
rename to tsk/fs/tsk_ffs.h
diff --git a/tsk3/fs/tsk_fs.h b/tsk/fs/tsk_fs.h
similarity index 98%
rename from tsk3/fs/tsk_fs.h
rename to tsk/fs/tsk_fs.h
index 42cc4efff63b4948a03ecb5edb11111762820b58..87b256e7e62b8ee80acfce9165d85a0e0624e11b 100644
--- a/tsk3/fs/tsk_fs.h
+++ b/tsk/fs/tsk_fs.h
@@ -238,6 +238,7 @@ extern "C" {
         TSK_FS_ATTR_TYPE_NTFS_PROP = 0xF0,      //  (NT)
         TSK_FS_ATTR_TYPE_NTFS_LOG = 0x100,      //  (2K)
         TSK_FS_ATTR_TYPE_UNIX_INDIR = 0x1001,   //  Indirect blocks for UFS and ExtX file systems
+        TSK_FS_ATTR_TYPE_UNIX_EXTENT = 0x1002,   //  Extents for Ext4 file system
 
         // Types for HFS+ File Attributes
         TSK_FS_ATTR_TYPE_HFS_DEFAULT = 0x01,    // 1    Data fork of fs special files and misc
@@ -419,6 +420,11 @@ extern "C" {
     };
     typedef enum TSK_FS_META_MODE_ENUM TSK_FS_META_MODE_ENUM;
 
+    typedef enum TSK_FS_META_CONTENT_TYPE_ENUM {
+        TSK_FS_META_CONTENT_TYPE_DEFAULT = 0x0,
+        TSK_FS_META_CONTENT_TYPE_EXT4_EXTENTS = 0x1 ///< Ext4 with extents instead of individual pointers
+    } TSK_FS_META_CONTENT_TYPE_ENUM;
+
 
 #define TSK_FS_META_TAG 0x13524635
     /** 
@@ -468,6 +474,7 @@ extern "C" {
 
         void *content_ptr;      ///< Pointer to file system specific data that is used to store references to file content
         size_t content_len;     ///< size of content  buffer
+        TSK_FS_META_CONTENT_TYPE_ENUM content_type; ///< File system-specific and describes type of data in content_ptr in case file systems have multiple ways of storing things. 
 
         uint32_t seq;           ///< Sequence number for file (NTFS only, is incremented when entry is reallocated) 
 
@@ -746,7 +753,7 @@ extern "C" {
         TSK_FS_TYPE_FFS_DETECT = 0x00000070,    ///< UFS auto detection
         TSK_FS_TYPE_EXT2 = 0x00000080,  ///< Ext2 file system
         TSK_FS_TYPE_EXT3 = 0x00000100,  ///< Ext3 file system
-        TSK_FS_TYPE_EXT_DETECT = 0x00000180,    ///< ExtX auto detection
+        TSK_FS_TYPE_EXT_DETECT = 0x00002180,    ///< ExtX auto detection
         TSK_FS_TYPE_SWAP = 0x00000200,  ///< SWAP file system
         TSK_FS_TYPE_SWAP_DETECT = 0x00000200,   ///< SWAP auto detection
         TSK_FS_TYPE_RAW = 0x00000400,   ///< RAW file system
@@ -755,6 +762,9 @@ extern "C" {
         TSK_FS_TYPE_ISO9660_DETECT = 0x00000800,        ///< ISO9660 auto detection
         TSK_FS_TYPE_HFS = 0x00001000,   ///< HFS file system
         TSK_FS_TYPE_HFS_DETECT = 0x00001000,    ///< HFS auto detection
+        TSK_FS_TYPE_EXT4 = 0x00002000,  ///< Ext4 file system
+        TSK_FS_TYPE_YAFFS2 = 0x00003000,  ///< YAFFS2 file system
+        TSK_FS_TYPE_YAFFS2_DETECT = 0x00003000,   ///< YAFFS2 auto detection
         TSK_FS_TYPE_UNSUPP = 0xffffffff,        ///< Unsupported file system
     };
     typedef enum TSK_FS_TYPE_ENUM TSK_FS_TYPE_ENUM;
@@ -808,6 +818,13 @@ extern "C" {
 #define TSK_FS_TYPE_ISSWAP(ftype) \
     (((ftype) & TSK_FS_TYPE_SWAP_DETECT)?1:0)
 
+    /**
+    * \ingroup fslib
+    * Macro that takes a file system type and returns 1 if the type
+    * is for a YAFFS2 file system. */
+#define TSK_FS_TYPE_ISYAFFS2(ftype) \
+    (((ftype) & TSK_FS_TYPE_YAFFS2_DETECT)?1:0)
+
     /**
     * \ingroup fslib
     * Macro that takes a file system type and returns 1 if the type
@@ -821,7 +838,8 @@ extern "C" {
     */
     enum TSK_FS_INFO_FLAG_ENUM {
         TSK_FS_INFO_FLAG_NONE = 0x00,   ///< No Flags
-        TSK_FS_INFO_FLAG_HAVE_SEQ = 0x01        ///< File system has sequence numbers in the inode addresses.
+        TSK_FS_INFO_FLAG_HAVE_SEQ = 0x01,        ///< File system has sequence numbers in the inode addresses.
+        TSK_FS_INFO_FLAG_HAVE_NANOSEC = 0x02    ///< Nano second field in times will be set.
     };
     typedef enum TSK_FS_INFO_FLAG_ENUM TSK_FS_INFO_FLAG_ENUM;
 
diff --git a/tsk3/fs/tsk_fs_i.h b/tsk/fs/tsk_fs_i.h
similarity index 97%
rename from tsk3/fs/tsk_fs_i.h
rename to tsk/fs/tsk_fs_i.h
index 23b7d79630fdf2ec24fe3b42cb29675c880e101b..e466969ccc1b635dc6dba0b70a1c2e0f8211cf36 100644
--- a/tsk3/fs/tsk_fs_i.h
+++ b/tsk/fs/tsk_fs_i.h
@@ -32,9 +32,9 @@
 #define _TSK_FS_I_H
 
 // Include the other internal TSK header files
-#include "tsk3/base/tsk_base_i.h"
-#include "tsk3/img/tsk_img_i.h"
-#include "tsk3/vs/tsk_vs_i.h"
+#include "tsk/base/tsk_base_i.h"
+#include "tsk/img/tsk_img_i.h"
+#include "tsk/vs/tsk_vs_i.h"
 
 // Include the external file 
 #include "tsk_fs.h"
@@ -166,6 +166,7 @@ extern "C" {
         const TSK_FS_NAME * a_fs_name_from);
     extern void tsk_fs_name_reset(TSK_FS_NAME * a_fs_name);
     extern char *tsk_fs_time_to_str(time_t, char buf[128]);
+    extern char *tsk_fs_time_to_str_subsecs(time_t, unsigned int subsecs, char buf[128]);
 
     /* Utilities */
     extern uint8_t tsk_fs_unix_make_data_run(TSK_FS_FILE * fs_file);
@@ -189,6 +190,8 @@ extern "C" {
         TSK_FS_TYPE_ENUM, uint8_t);
     extern TSK_FS_INFO *hfs_open(TSK_IMG_INFO *, TSK_OFF_T,
         TSK_FS_TYPE_ENUM, uint8_t);
+    extern TSK_FS_INFO *yaffs2_open(TSK_IMG_INFO *, TSK_OFF_T,
+        TSK_FS_TYPE_ENUM, uint8_t);
 
     /* Generic functions for swap and raw -- many say "not supported" */
     extern uint8_t tsk_fs_nofs_fsstat(TSK_FS_INFO * fs, FILE * hFile);
diff --git a/tsk3/fs/tsk_hfs.h b/tsk/fs/tsk_hfs.h
similarity index 100%
rename from tsk3/fs/tsk_hfs.h
rename to tsk/fs/tsk_hfs.h
diff --git a/tsk3/fs/tsk_iso9660.h b/tsk/fs/tsk_iso9660.h
similarity index 100%
rename from tsk3/fs/tsk_iso9660.h
rename to tsk/fs/tsk_iso9660.h
diff --git a/tsk3/fs/tsk_ntfs.h b/tsk/fs/tsk_ntfs.h
similarity index 100%
rename from tsk3/fs/tsk_ntfs.h
rename to tsk/fs/tsk_ntfs.h
diff --git a/tsk/fs/tsk_yaffs.h b/tsk/fs/tsk_yaffs.h
new file mode 100644
index 0000000000000000000000000000000000000000..c0c1a1d3dc0554035401e1cbee3bec6b8f88cc1a
--- /dev/null
+++ b/tsk/fs/tsk_yaffs.h
@@ -0,0 +1,225 @@
+/*
+** The Sleuth Kit 
+**
+** Brian Carrier [carrier <at> sleuthkit [dot] org]
+** Copyright (c) 2003-2011 Brian Carrier.  All rights reserved
+**
+** TASK
+** Copyright (c) 2002 Brian Carrier, @stake Inc.  All rights reserved
+** 
+** This software is distributed under the Common Public License 1.0 
+*/
+
+/*
+ * Contains the structures and function APIs for YAFFSFS file system support.
+ */
+
+#ifndef _TSK_YAFFSFS_H
+#define _TSK_YAFFSFS_H
+
+#include <map>
+#include <utility>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+** Constants
+*/
+#define YAFFSFS_MAXNAMLEN	255
+
+#define YAFFS_DEFAULT_PAGE_SIZE     2048
+#define YAFFS_DEFAULT_SPARE_SIZE    64
+
+/*
+** Yaffs Object Flags
+*/
+typedef enum 
+  {
+    NONE,
+    YAFFS_HEADER,
+    YAFFS_CHUNK,
+    YAFFS_PAGES,
+    YAFFS_SPARES,
+    YAFFS_PAGES_AND_SPARES,
+    UNKNOWN
+  } YAFFS_OBJECT_FLAGS;
+
+/*
+** Yaffs2 Header Object
+*/
+
+#define YAFFS_HEADER_NAME_LENGTH   256
+#define YAFFS_HEADER_ALIAS_LENGTH  160
+typedef struct yaffsObj_header {
+    uint32_t obj_type;
+    uint32_t parent_id;
+    char name[YAFFS_HEADER_NAME_LENGTH];
+    uint32_t file_mode;
+    uint32_t user_id;
+    uint32_t group_id;
+    uint32_t atime;
+    uint32_t mtime;
+    uint32_t ctime;
+    uint32_t file_size;
+    uint32_t equivalent_id;
+    char alias[YAFFS_HEADER_ALIAS_LENGTH];
+    uint32_t rdev_mode;
+    uint32_t win_ctime[2];
+    uint32_t win_atime[2];
+    uint32_t win_mtime[2];
+    uint32_t inband_obj_id;
+    uint32_t inband_is_shrink;
+    uint32_t file_size_high;
+    uint32_t reserved[1];
+    int shadows_obj;
+    uint32_t is_shrink;
+  } YaffsHeader;
+
+/*
+** Spare object - this is subject to change...
+*/
+
+#define YAFFS_OBJECT_SPACE              0x40000
+#define YAFFS_MAX_OBJECT_ID             (YAFFS_OBJECT_SPACE - 1)
+#define YAFFS_LOWEST_SEQUENCE_NUMBER    0x00001000
+#define YAFFS_HIGHEST_SEQUENCE_NUMBER   0xefffff00
+#define YAFFS_SPARE_FLAGS_IS_HEADER     0x80000000
+#define YAFFS_SPARE_PARENT_ID_MASK      0x0fffffff
+#define YAFFS_SPARE_OBJECT_TYPE_SHIFT   28
+#define YAFFS_SPARE_OBJECT_TYPE_MASK    0xf0000000
+
+
+  typedef struct  yaffsObj_spare {
+    uint32_t seq_number;
+    uint32_t object_id;
+    uint32_t chunk_id;
+
+	uint32_t has_extra_fields;
+    uint32_t extra_object_type;
+    uint32_t extra_parent_id;
+  } YaffsSpare;
+
+/*
+** Holds the metadata for a single YAFFS2 chunk.
+*/
+typedef enum {
+    YAFFS_CHUNK_DEAD,  /* Either bad or unallocated */
+    YAFFS_CHUNK_META,  /* Contains a header */
+    YAFFS_CHUNK_DATA   /* Contains file data */
+  } YaffsChunkType;
+
+typedef struct _YaffsChunk
+  {
+    YaffsChunkType type;
+    YaffsSpare *spare;
+    YaffsHeader *header;
+  } YaffsChunk;
+
+/* File system State Values */
+#define YAFFSFS_STATE_VALID	0x0001  /* unmounted correctly */
+#define YAFFSFS_STATE_ERROR	0x0002  /* errors detected */
+
+/*
+ * Special File Objects for the YAFFS2 File system
+ */
+#define YAFFS_OBJECT_ROOT 1
+#define YAFFS_OBJECT_FIRST 1
+#define YAFFS_OBJECT_LOSTNFOUND 2
+#define YAFFS_OBJECT_UNLINKED 3
+#define YAFFS_OBJECT_DELETED 4
+
+#define YAFFS_OBJECT_ROOT_NAME           ""
+#define YAFFS_OBJECT_LOSTNFOUND_NAME     "lost+found"
+#define YAFFS_OBJECT_UNLINKED_NAME       "<unlinked>"
+#define YAFFS_OBJECT_DELETED_NAME        "<deleted>"
+
+/*
+ * Yaffs File Types...
+ */
+#define YAFFS_TYPE_UNKNOWN 0
+#define YAFFS_TYPE_FILE    1
+#define YAFFS_TYPE_SOFTLINK 2
+#define YAFFS_TYPE_DIRECTORY 3
+#define YAFFS_TYPE_HARDLINK 4
+#define YAFFS_TYPE_SPECIAL 5
+
+
+
+struct _YaffsCacheVersion;
+struct _YaffsCacheChunk;
+
+typedef struct _YaffsCacheObject {
+  struct _YaffsCacheObject *yco_next;
+
+  uint32_t yco_obj_id;
+
+  struct _YaffsCacheVersion *yco_latest;
+} YaffsCacheObject;
+
+#define YAFFS_OBJECT_ID_MASK         0x0003ffff
+#define YAFFS_VERSION_NUM_SHIFT      18
+#define YAFFS_VERSION_NUM_MASK       0x00003fff
+
+typedef struct _YaffsCacheVersion {
+  struct _YaffsCacheVersion *ycv_prior;
+
+  uint32_t ycv_version;
+  uint32_t ycv_seq_number;
+
+  struct _YaffsCacheChunk *ycv_header_chunk;
+  struct _YaffsCacheChunk *ycv_first_chunk;
+  struct _YaffsCacheChunk *ycv_last_chunk;
+} YaffsCacheVersion;
+
+typedef struct _YaffsCacheChunk {
+  struct _YaffsCacheChunk *ycc_next;
+  struct _YaffsCacheChunk *ycc_prev;
+
+  TSK_OFF_T ycc_offset;
+  uint32_t ycc_seq_number;
+  uint32_t ycc_obj_id;
+  uint32_t ycc_chunk_id;
+  uint32_t ycc_parent_id;
+  uint32_t ycc_n_bytes;
+} YaffsCacheChunk;
+
+typedef struct _YaffsCacheChunkGroup {
+	YaffsCacheChunk * cache_chunks_head;
+	YaffsCacheChunk * cache_chunks_tail;
+} YaffsCacheChunkGroup;
+
+    /*
+     * Structure of an yaffsfs file system handle.
+     */
+    typedef struct {
+        TSK_FS_INFO fs_info;    /* super class */
+
+        unsigned int page_size;
+        unsigned int spare_size;
+		unsigned int chunks_per_block;
+
+		uint32_t max_obj_id;
+		uint32_t max_version;
+
+		// Offsets into the spare area
+		unsigned int spare_seq_offset;
+		unsigned int spare_obj_id_offset;
+		unsigned int spare_chunk_id_offset;
+		unsigned int spare_nbytes_offset;
+
+        tsk_lock_t cache_lock;
+        YaffsCacheObject *cache_objects;
+		std::map<uint32_t, YaffsCacheChunkGroup> * chunkMap;
+
+		// If the user specified that the image is YAFFS2, print out additional verbose error messages
+		int autoDetect;
+    } YAFFSFS_INFO;
+
+#define YAFFS_FILE_CONTENT_LEN 0
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/tsk3/fs/unix_misc.c b/tsk/fs/unix_misc.c
similarity index 100%
rename from tsk3/fs/unix_misc.c
rename to tsk/fs/unix_misc.c
diff --git a/tsk3/fs/walk_cpp.cpp b/tsk/fs/walk_cpp.cpp
similarity index 98%
rename from tsk3/fs/walk_cpp.cpp
rename to tsk/fs/walk_cpp.cpp
index e5a5070cd8db005bafa29d3550f4e2b4107ee749..edd589d63bf4901ad15b8e0f7e28ca1f10a3c32c 100644
--- a/tsk3/fs/walk_cpp.cpp
+++ b/tsk/fs/walk_cpp.cpp
@@ -1,5 +1,5 @@
 #include "tsk_fs_i.h"
-#include "tsk3/vs/tsk_vs_i.h"
+#include "tsk/vs/tsk_vs_i.h"
 
 /**
 * \internal
diff --git a/tsk/fs/yaffs.cpp b/tsk/fs/yaffs.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..b407462884cc0afd11bbd3672294e39be820302b
--- /dev/null
+++ b/tsk/fs/yaffs.cpp
@@ -0,0 +1,2770 @@
+/*
+** The Sleuth Kit
+**
+** Brian Carrier [carrier <at> sleuthkit [dot] org]
+** Copyright (c) 2006-2011 Brian Carrier, Basis Technology.  All Rights reserved
+** Copyright (c) 2003-2005 Brian Carrier.  All rights reserved
+**
+** TASK
+v** Copyright (c) 2002-2003 Brian Carrier, @stake Inc.  All rights reserved
+**
+** Copyright (c) 1997,1998,1999, International Business Machines
+** Corporation and others. All Rights Reserved.
+*/
+
+/**
+*\file yaffs.c
+* Contains the internal TSK YAFFS2 file system functions.
+*/
+
+/* TCT
+* LICENSE
+*	This software is distributed under the IBM Public License.
+* AUTHOR(S)
+*	Wietse Venema
+*	IBM T.J. Watson Research
+*	P.O. Box 704
+*	Yorktown Heights, NY 10598, USA
+--*/
+
+#include <vector>
+
+#include "tsk_fs_i.h"
+#include "tsk_yaffs.h"
+#include "tsk_fs.h"
+
+/*
+* Implementation Notes:
+*    - As inode, we use object id and a version number derived from the 
+*      number of unique sequence ids for the object still left in the
+*      file system.
+*
+*    - The version numbers start at 1 and increase as they get closer to
+*      the the latest version.  Version number 0 is a special version
+*      that is equivalent to the latest version (without having to know
+*      the latest version number.)
+*
+*    - Since inodes are composed using the object id in the least 
+*      significant bits and the version up higher, requesting the
+*      inode that matches the object id you are looking for will
+*      retreive the latest version of this object.
+*
+*    - Files always exist in the latest version of their parent directory 
+*      only.
+*
+*    - Filenames are not unique even with attached version numbers, since
+*      version numbers are namespaced by inode.
+*
+*    - The cache stores a lot of info via the structure.  As this is
+*      used for investigations, we assume these decisions will be updated
+*      to expose the most useful view of this log based file system.  TSK
+*      doesn't seem have a real way to expose a versioned view of a log
+*      based file system like this.  Shoehorning it into the framework
+*      ends up dropping some information.  I looked at using resource 
+*      streams as versions, but the abstraction breaks quickly.
+*
+*/
+
+static uint8_t 
+    yaffsfs_read_header(YAFFSFS_INFO *yfs, YaffsHeader ** header, TSK_OFF_T offset);
+
+/*
+* Cache
+*
+*
+*/
+
+static TSK_RETVAL_ENUM
+    yaffscache_obj_id_and_version_to_inode(uint32_t obj_id, uint32_t version_num, TSK_INUM_T *inode) {
+        if ((obj_id & ~YAFFS_OBJECT_ID_MASK) != 0) {
+            return TSK_ERR;
+        }
+
+        if ((version_num & ~YAFFS_VERSION_NUM_MASK) != 0) {
+            return TSK_ERR;
+        }
+
+        *inode = obj_id | (version_num << YAFFS_VERSION_NUM_SHIFT);
+        return TSK_OK;
+}
+
+static TSK_RETVAL_ENUM
+    yaffscache_inode_to_obj_id_and_version(TSK_INUM_T inode, uint32_t *obj_id, uint32_t *version_num) {
+        *obj_id = inode & YAFFS_OBJECT_ID_MASK;
+        *version_num = (inode >> YAFFS_VERSION_NUM_SHIFT) & YAFFS_VERSION_NUM_MASK;
+
+        return TSK_OK;
+}
+
+/*
+* Order it like yaffs2.git does -- sort by (seq_num, offset/block)
+*/
+static int
+    yaffscache_chunk_compare(YaffsCacheChunk *curr, uint32_t addee_obj_id, TSK_OFF_T addee_offset, uint32_t addee_seq_number)
+{
+    if (curr->ycc_obj_id == addee_obj_id) {
+        if (curr->ycc_seq_number == addee_seq_number) {
+            if (curr->ycc_offset == addee_offset) {
+                return 0;
+            }
+            else if (curr->ycc_offset < addee_offset) {
+                return -1;
+            }
+            else {
+                return 1;
+            }
+        }
+        else if (curr->ycc_seq_number < addee_seq_number) {
+            return -1;
+        }
+        else {
+            return 1;
+        }
+    }
+    else if (curr->ycc_obj_id < addee_obj_id) {
+        return -1;
+    }
+    else {
+        return 1;
+    }
+}
+
+static TSK_RETVAL_ENUM
+    yaffscache_chunk_find_insertion_point(YAFFSFS_INFO *yfs, uint32_t obj_id, TSK_OFF_T offset, uint32_t seq_number, YaffsCacheChunk **chunk)
+{
+    YaffsCacheChunk *curr, *prev;
+
+    // Have we seen this obj_id? If not, add an entry for it
+    if(yfs->chunkMap->find(obj_id) == yfs->chunkMap->end()){
+        fflush(stderr);
+        YaffsCacheChunkGroup chunkGroup;
+        chunkGroup.cache_chunks_head = NULL;
+        chunkGroup.cache_chunks_tail = NULL;
+        yfs->chunkMap->insert(std::make_pair(obj_id, chunkGroup));
+    }
+
+    curr = yfs->chunkMap->operator[](obj_id).cache_chunks_head;
+    prev = NULL;
+
+    if (chunk == NULL) {
+        return TSK_ERR;
+    }
+
+    while(curr != NULL) {
+        // Compares obj id, then seq num, then offset. -1 => current < new
+        int cmp = yaffscache_chunk_compare(curr, obj_id, offset, seq_number);
+
+        if (cmp == 0) {
+            *chunk = curr;
+            return TSK_OK;
+        }
+        else if (cmp == 1) {
+            *chunk = prev;
+            return TSK_STOP;
+        }
+
+        prev = curr;
+        curr = curr->ycc_next;
+    }
+
+    *chunk = prev;
+    return TSK_STOP;
+}
+
+static TSK_RETVAL_ENUM
+    yaffscache_chunk_add(YAFFSFS_INFO *yfs, TSK_OFF_T offset, uint32_t seq_number,
+    uint32_t obj_id, uint32_t chunk_id, uint32_t parent_id)
+{
+    TSK_RETVAL_ENUM result;
+    YaffsCacheChunk *prev;
+    YaffsCacheChunk *chunk;
+    if ((chunk = (YaffsCacheChunk*)tsk_malloc(sizeof(YaffsCacheChunk))) == NULL) {
+        return TSK_ERR;
+    }
+
+    chunk->ycc_offset = offset;
+    chunk->ycc_seq_number = seq_number;
+    chunk->ycc_obj_id = obj_id;
+    chunk->ycc_chunk_id = chunk_id;
+    chunk->ycc_parent_id = parent_id;
+
+    // Find the chunk that should go right before the new chunk
+    result = yaffscache_chunk_find_insertion_point(yfs, obj_id, offset, seq_number, &prev);
+
+    if (result == TSK_ERR) {
+        return TSK_ERR;
+    }
+
+    if (prev == NULL) {
+        // No previous chunk - new chunk is the lowest we've seen and the new start of the list
+        chunk->ycc_prev = NULL;
+        chunk->ycc_next = yfs->chunkMap->operator[](obj_id).cache_chunks_head;
+    }
+    else {
+        chunk->ycc_prev = prev;
+        chunk->ycc_next = prev->ycc_next;
+    }
+
+    if (chunk->ycc_next != NULL) {
+        // If we're not at the end, set the prev pointer on the next chunk to point to our new one
+        chunk->ycc_next->ycc_prev = chunk;
+    }
+    else {
+        yfs->chunkMap->operator[](obj_id).cache_chunks_tail = chunk;
+    }
+
+    if (chunk->ycc_prev != NULL) {
+        // If we're not at the beginning, set the next pointer on the previous chunk to point at our new one
+        chunk->ycc_prev->ycc_next = chunk;
+    }
+    else {
+        yfs->chunkMap->operator[](obj_id).cache_chunks_head = chunk;
+    }
+
+    return TSK_OK;
+}
+
+static TSK_RETVAL_ENUM
+    yaffscache_object_find(YAFFSFS_INFO *yfs, uint32_t obj_id, YaffsCacheObject **obj)
+{
+    YaffsCacheObject *curr, *prev;
+    curr = yfs->cache_objects;
+    prev = NULL;
+
+    if (obj == NULL) {
+        return TSK_ERR;
+    }
+
+    while(curr != NULL) {
+        if (curr->yco_obj_id == obj_id) {
+            *obj = curr;
+            return TSK_OK;
+        }
+        else if (curr->yco_obj_id > obj_id) {
+            *obj = prev;
+            return TSK_STOP;
+        }
+
+        prev = curr;
+        curr = curr->yco_next;
+    }
+
+    *obj = prev;
+    return TSK_STOP;
+}
+
+static TSK_RETVAL_ENUM
+    yaffscache_object_find_or_add(YAFFSFS_INFO *yfs, uint32_t obj_id, YaffsCacheObject **obj)
+{
+    YaffsCacheObject *prev;
+    TSK_RETVAL_ENUM result;
+
+    if (obj == NULL) {
+        return TSK_ERR;
+    }
+
+    // Look for this obj_id in yfs->cache_objects
+    // If not found, add it in the correct spot
+    // yaffscache_object_find returns the last object with obj_id less than the one
+    // we were searching for, so use that to insert the new one in the list
+    result = yaffscache_object_find(yfs, obj_id, &prev);
+    if (result == TSK_OK) {
+        *obj = prev;
+        return TSK_OK;
+    }
+    else if (result == TSK_STOP) {
+        *obj = (YaffsCacheObject *) tsk_malloc(sizeof(YaffsCacheObject));
+        (*obj)->yco_obj_id = obj_id;
+        if (prev == NULL) {
+            (*obj)->yco_next = yfs->cache_objects;
+            yfs->cache_objects = *obj;
+        }
+        else {
+            (*obj)->yco_next = prev->yco_next;
+            prev->yco_next = (*obj);
+        }
+        return TSK_OK;
+    }
+    else {
+        *obj = NULL;
+        return TSK_ERR;
+    }
+}
+
+static TSK_RETVAL_ENUM
+    yaffscache_object_add_version(YaffsCacheObject *obj, YaffsCacheChunk *chunk)
+{
+    uint32_t ver_number;
+    YaffsCacheChunk *header_chunk = NULL;
+    YaffsCacheVersion *version;
+
+    // Going to try ignoring unlinked/deleted headers (objID 3 and 4)
+    if ((chunk->ycc_chunk_id == 0) && (chunk->ycc_parent_id != YAFFS_OBJECT_UNLINKED) 
+        &&(chunk->ycc_parent_id != YAFFS_OBJECT_DELETED)) {
+            header_chunk = chunk;
+    }
+
+    /* If this is the second version (since last header_chunk is not NULL) and no
+    * header was added, get rid of this incomplete old version -- can't be
+    * reasonably recovered.
+    *
+    * TODO: These chunks are still in the structure and can be walked,
+    *       but I'm not sure how to represent this set of data chunks
+    *       with no metadata under TSK. This is rare and we don't have
+    *       a testcase for it now. Punting right now.
+    *
+    * Edit: Shouldn't get to this point anymore. Changes to 
+    *       yaffscache_versions_insert_chunk make a version continue until it
+    *       has a header block.
+    */
+    if (obj->yco_latest != NULL) {
+        if (obj->yco_latest->ycv_header_chunk == NULL) {
+            YaffsCacheVersion *incomplete = obj->yco_latest;
+
+            if (tsk_verbose)
+                tsk_fprintf(stderr, "yaffscache_object_add_version: "
+                "removed an incomplete first version (no header)\n");
+
+            obj->yco_latest = obj->yco_latest->ycv_prior;
+            free(incomplete);
+        }
+    }
+
+    if (obj->yco_latest != NULL) {
+        ver_number = obj->yco_latest->ycv_version + 1;
+
+        /* Until a new header is given, use the last seen header. */
+        if (header_chunk == NULL) {
+            header_chunk = obj->yco_latest->ycv_header_chunk;
+
+            // If we haven't seen a good header yet and we have a deleted/unlinked one, use it
+            if((header_chunk == NULL) && (chunk->ycc_chunk_id == 0)){
+                header_chunk = chunk;
+            }
+        }
+    }
+    else {
+        ver_number = 1;
+    }
+
+    if ((version = (YaffsCacheVersion *) tsk_malloc(sizeof(YaffsCacheVersion))) == NULL) {
+        return TSK_ERR;
+    }
+
+    version->ycv_prior = obj->yco_latest;
+    version->ycv_version = ver_number;
+    version->ycv_seq_number = chunk->ycc_seq_number;
+    version->ycv_header_chunk = header_chunk;
+    version->ycv_first_chunk = chunk;
+    version->ycv_last_chunk = chunk;
+
+    obj->yco_latest = version;
+
+    return TSK_OK;
+}
+
+static TSK_RETVAL_ENUM
+    yaffscache_versions_insert_chunk(YAFFSFS_INFO *yfs, YaffsCacheChunk *chunk)
+{
+    YaffsCacheObject *obj;
+    TSK_RETVAL_ENUM result;
+    YaffsCacheVersion *version;
+
+    // Building a list in yfs->cache_objects, sorted by obj_id
+    result = yaffscache_object_find_or_add(yfs, chunk->ycc_obj_id, &obj);
+    if (result != TSK_OK) {
+        return TSK_ERR;
+    }
+    version = obj->yco_latest;
+
+    /* First chunk in this object? */
+    if (version == NULL) {
+        yaffscache_object_add_version(obj, chunk);
+    }
+    else {
+        /* Chunk in the same update? */
+        if (chunk->ycc_seq_number == version->ycv_seq_number) {
+            version->ycv_last_chunk = chunk;
+            if ((chunk->ycc_chunk_id == 0) && (chunk->ycc_parent_id != YAFFS_OBJECT_UNLINKED) 
+                &&(chunk->ycc_parent_id != YAFFS_OBJECT_DELETED)) {
+                    version->ycv_header_chunk = chunk;
+            }
+            else if((chunk->ycc_chunk_id == 0) && (version->ycv_header_chunk == NULL)){
+                version->ycv_header_chunk = chunk;
+            }
+        }
+        // If there was no header for the last version, continue adding to it instead
+        // of starting a new version. 
+        else if(version->ycv_header_chunk == NULL){
+            version->ycv_seq_number = chunk->ycc_seq_number;
+            version->ycv_last_chunk = chunk;
+            if ((chunk->ycc_chunk_id == 0) && (chunk->ycc_parent_id != YAFFS_OBJECT_UNLINKED) 
+                &&(chunk->ycc_parent_id != YAFFS_OBJECT_DELETED)) {
+                    version->ycv_header_chunk = chunk;
+            }
+            else if((chunk->ycc_chunk_id == 0) && (version->ycv_header_chunk == NULL)){
+                version->ycv_header_chunk = chunk;
+            }
+        }
+        else if(chunk->ycc_chunk_id == 0){   // Directories only have a header block
+            // If we're looking at a new version of a directory where the previous version had the same name, 
+            // leave everything in the same version. Multiple versions of the same directory aren't really giving us 
+            // any information.
+            YaffsHeader * newHeader;
+            yaffsfs_read_header(yfs, &newHeader, chunk->ycc_offset);
+            if((newHeader != NULL) && (newHeader->obj_type == YAFFS_TYPE_DIRECTORY)){
+                // Read in the old header
+                YaffsHeader * oldHeader;
+                yaffsfs_read_header(yfs, &oldHeader, version->ycv_header_chunk->ycc_offset);
+                if((oldHeader != NULL) && (oldHeader->obj_type == YAFFS_TYPE_DIRECTORY) &&
+                    (0 == strncmp(oldHeader->name, newHeader->name, YAFFS_HEADER_NAME_LENGTH))){
+                        version->ycv_seq_number = chunk->ycc_seq_number;
+                        version->ycv_last_chunk = chunk;
+                        version->ycv_header_chunk = chunk;
+                }
+                else{
+                    // The older header either isn't a directory or it doesn't have the same name, so leave it
+                    // as its own version
+                    yaffscache_object_add_version(obj, chunk);
+                }
+            }
+            else{
+                //  Not a directory
+                yaffscache_object_add_version(obj, chunk);
+            }
+        }
+        else{
+            //  Otherwise, add this chunk as the start of a new version
+            yaffscache_object_add_version(obj, chunk);
+        }
+    }
+
+    return TSK_OK;
+}
+
+static TSK_RETVAL_ENUM
+    yaffscache_versions_compute(YAFFSFS_INFO *yfs)
+{
+    std::map<unsigned int,YaffsCacheChunkGroup>::iterator iter;
+    for( iter = yfs->chunkMap->begin(); iter != yfs->chunkMap->end(); ++iter ) {
+        YaffsCacheChunk *chunk_curr = yfs->chunkMap->operator[](iter->first).cache_chunks_head;
+
+        while(chunk_curr != NULL) {
+            if (yaffscache_versions_insert_chunk(yfs, chunk_curr) != TSK_OK) {
+                return TSK_ERR;
+            }
+
+            chunk_curr = chunk_curr->ycc_next;
+        }
+    }
+
+    return TSK_OK;
+}
+
+typedef TSK_RETVAL_ENUM yc_find_children_cb(YaffsCacheObject *obj, YaffsCacheVersion *version, void *args);
+static TSK_RETVAL_ENUM
+    yaffscache_find_children(YAFFSFS_INFO *yfs, TSK_INUM_T parent_inode, yc_find_children_cb cb, void *args)
+{
+    YaffsCacheObject *obj;
+    YaffsCacheVersion *version;
+
+    uint32_t parent_id, version_num;
+    if (yaffscache_inode_to_obj_id_and_version(parent_inode, &parent_id, &version_num) != TSK_OK) {
+        return TSK_ERR;
+    }
+
+    for(obj = yfs->cache_objects; obj != NULL; obj = obj->yco_next) {
+        for(version = obj->yco_latest; version != NULL; version = version->ycv_prior) {
+            /* Is this an incomplete version? */
+            if (version->ycv_header_chunk == NULL)
+                continue;
+
+            if (version->ycv_header_chunk->ycc_parent_id == parent_id) {
+                TSK_RETVAL_ENUM result = cb(obj, version, args);
+                if (result != TSK_OK)
+                    return result;
+            }
+        }
+    }
+
+    return TSK_OK;
+}
+
+static TSK_RETVAL_ENUM
+    yaffscache_version_find_by_inode(YAFFSFS_INFO *yfs, TSK_INUM_T inode, YaffsCacheVersion **version, YaffsCacheObject **obj_ret) {
+        uint32_t obj_id, version_num;
+        YaffsCacheObject *obj;
+        YaffsCacheVersion *curr;
+
+        if (version == NULL) {
+            return TSK_ERR;
+        }
+
+        if (yaffscache_inode_to_obj_id_and_version(inode, &obj_id, &version_num) != TSK_OK) {
+            *version = NULL;
+            return TSK_ERR;
+        }
+
+        if (yaffscache_object_find(yfs, obj_id, &obj) != TSK_OK) {
+            *version = NULL;
+            return TSK_ERR;
+        }
+
+        if (version_num == 0) {
+            if (obj_ret != NULL) {
+                *obj_ret = obj;
+            }
+            *version = obj->yco_latest;
+            return TSK_OK;
+        }
+
+        for(curr = obj->yco_latest; curr != NULL; curr = curr->ycv_prior) {
+            if (curr->ycv_version == version_num) {
+                if (obj_ret != NULL) {
+                    *obj_ret = obj;
+                }
+                *version = curr;
+                return TSK_OK;
+            }
+        }
+
+        if (obj_ret != NULL) {
+            *obj_ret = NULL;
+        }
+        *version = NULL;
+        return TSK_ERR;
+}
+
+static void
+    yaffscache_object_dump(FILE *fp, YaffsCacheObject *obj)
+{
+    YaffsCacheVersion *next_version = obj->yco_latest;
+    YaffsCacheChunk *chunk = next_version->ycv_last_chunk;
+
+    fprintf(fp, "Object %d\n", obj->yco_obj_id);
+    while(chunk != NULL && chunk->ycc_obj_id == obj->yco_obj_id) {
+        if (next_version != NULL && 
+            chunk == next_version->ycv_last_chunk) {
+                fprintf(fp, "  @%d: %p %p %p\n", 
+                    next_version->ycv_version, 
+                    next_version->ycv_header_chunk, 
+                    next_version->ycv_first_chunk,
+                    next_version->ycv_last_chunk);
+                next_version = next_version->ycv_prior;
+        }
+
+        fprintf(fp, "    + %p %08x %08x %08llx\n",
+            chunk,
+            chunk->ycc_chunk_id,
+            chunk->ycc_seq_number,
+            chunk->ycc_offset);
+
+        chunk = chunk->ycc_prev;
+    }
+}
+
+static void
+    yaffscache_objects_dump(FILE *fp, YAFFSFS_INFO *yfs)
+{
+    YaffsCacheObject *obj;
+
+    for(obj = yfs->cache_objects; obj != NULL; obj = obj->yco_next)
+        yaffscache_object_dump(fp, obj);
+}
+
+static void
+    yaffscache_objects_stats(YAFFSFS_INFO *yfs, 
+    unsigned int *obj_count,
+    uint32_t *obj_first, uint32_t *obj_last,
+    uint32_t *version_count,
+    uint32_t *version_first, uint32_t *version_last)
+{
+    YaffsCacheObject *obj;
+    YaffsCacheVersion *ver;
+
+    /* deleted and unlinked special objects don't have headers */
+    *obj_count = 2;
+    *obj_first = 0xffffffff;
+    *obj_last = 0;
+
+    *version_count = 0;
+    *version_first = 0xffffffff;
+    *version_last = 0;
+
+    for(obj = yfs->cache_objects; obj != NULL; obj = obj->yco_next) {
+        *obj_count += 1;
+        if (obj->yco_obj_id < *obj_first)
+            *obj_first = obj->yco_obj_id;
+        if (obj->yco_obj_id > *obj_last)
+            *obj_last = obj->yco_obj_id;
+
+        for(ver = obj->yco_latest; ver != NULL; ver = ver->ycv_prior) {
+            *version_count += 1;
+            if (ver->ycv_seq_number < *version_first)
+                *version_first = ver->ycv_seq_number;
+            if (ver->ycv_seq_number > *version_last)
+                *version_last = ver->ycv_seq_number;
+        }
+    }
+}
+
+static void
+    yaffscache_objects_free(YAFFSFS_INFO *yfs)
+{
+    YaffsCacheObject *obj = yfs->cache_objects;
+    while(obj != NULL) {
+        YaffsCacheObject *to_free = obj;
+
+        YaffsCacheVersion *ver = obj->yco_latest;
+        while(ver != NULL) {
+            YaffsCacheVersion *v_to_free = ver;
+            ver = ver->ycv_prior;
+            free(v_to_free);
+        }
+
+        obj = obj->yco_next;
+        free(to_free);
+    }
+}
+
+static void
+    yaffscache_chunks_free(YAFFSFS_INFO *yfs)
+{
+    std::map<unsigned int,YaffsCacheChunkGroup>::iterator iter;
+    for( iter = yfs->chunkMap->begin(); iter != yfs->chunkMap->end(); ++iter ) {
+        YaffsCacheChunk *chunk = yfs->chunkMap->operator[](iter->first).cache_chunks_head;
+        while(chunk != NULL) {
+            YaffsCacheChunk *to_free = chunk;
+            chunk = chunk->ycc_next;
+            free(to_free);
+        }
+    }
+}
+
+
+
+/*
+* Parsing and helper functions
+*
+*
+*/
+
+uint8_t yaffs_initialize_spare_format(YAFFSFS_INFO * yfs){
+
+    // Testing parameters - can all be changed
+    int blocksToTest = 10;  // Number of blocks (64 chunks) to test
+    int chunksToTest = 10;  // Number of chunks to test in each block 
+    int minChunksRead = 10; // Minimum number of chunks we require to run the test (we might not get the full number we want to test for a very small file)
+
+
+    TSK_FS_INFO *fs = &(yfs->fs_info);
+    int cnt;
+    unsigned char *spareBuffer;
+
+    unsigned int blockIndex;
+    unsigned int chunkIndex;
+    int blocksTested = 0;
+
+    unsigned int currentOffset;
+
+    unsigned char * allSpares;
+    unsigned int offset;
+
+    int badBlock;
+    int goodOffset;
+    int outOfData;
+    int nGoodSpares;
+
+    int okOffsetFound = 0;   // Used as a flag for if we've found an offset that sort of works but doesn't seem great
+    int goodOffsetFound = 0; // Flag to mark that we've found an offset that also passed secondary testing
+    int bestOffset = 0;
+
+    unsigned int i;
+
+    int thisChunkBase;
+    int lastChunkBase;
+
+    if ((spareBuffer = (unsigned char*) tsk_malloc(yfs->spare_size)) == NULL) {
+        return TSK_ERR;
+    }
+
+    if ((allSpares = (unsigned char*) tsk_malloc(yfs->spare_size * blocksToTest * chunksToTest)) == NULL) {
+        return TSK_ERR;
+    }
+
+    // Initialize the array containing the spares so that uninitialized entries won't cause failure if we don't have enough
+    // data to fill it.
+    for(i = 0;i < yfs->spare_size * blocksToTest * chunksToTest;i++){
+        allSpares[i] = 0x01;
+    }
+
+    // Initialize the pointers to one of the configurations we've seen (thought these defaults should not get used)
+    yfs->spare_seq_offset = 0;
+    yfs->spare_obj_id_offset = 4;
+    yfs->spare_chunk_id_offset = 8;
+    yfs->spare_nbytes_offset = 12;
+
+    // Assume the data we want is 16 consecutive bytes in the order:
+    //  seq num, obj id, chunk id, byte count
+    //  (not sure we're guaranteed this but we wouldn't be able to deal with the alternative anyway)
+    // Seq num is the important one. This number is constant in each block (block = 64 chunks), meaning
+    //  all chunks in a block will share the same sequence number. The YAFFS2 descriptions would seem to
+    //  indicate it should be different for each block, but this doesn't seem to always be the case.
+    //  In particular we frequently see the 0x1000 seq number used over multiple blocks, but this isn't the only
+    //  observed exception.
+
+    // We'll test the first ten chunks of the first ten blocks, assuming they are allocated.
+    blockIndex = 0;
+    outOfData = 0;
+    nGoodSpares = 0;
+
+    for(blocksTested = 0;blocksTested < blocksToTest;blocksTested++){
+
+        // Find a block that's in use
+        badBlock = 1;
+        while(badBlock && (! outOfData)){
+            // Read the last one of the set first. It makes dealing with the unallocated stuff easier
+            offset = blockIndex * yfs->chunks_per_block * (yfs->page_size + yfs->spare_size) + (chunksToTest - 1) * (yfs->page_size + yfs->spare_size) + yfs->page_size;
+            cnt = tsk_img_read(fs->img_info, offset, (char *) spareBuffer,
+                yfs->spare_size);
+            if (cnt == -1 || cnt < yfs->spare_size) {
+                outOfData = 1;
+            }
+
+            if(! outOfData){
+                // Is the spare all 0xff?
+                // If not, we know we should have all allocated chunks since YAFFS2 writes sequentially in a block
+                // (can't have an unallocated chunk followed by an allocated one)
+                // Also occasionally see almost all null spare area with a few 0xff. Not a valid spare.
+                badBlock = 1;
+                for(i = 0;i < yfs->spare_size;i++){
+                    if((spareBuffer[i] != 0xff) && (spareBuffer[i] != 0x00)){
+                        badBlock = 0;
+                        break;
+                    }
+                }
+
+                if(badBlock){
+                    blockIndex++;
+                }
+            }
+        }
+
+        if(! outOfData){
+
+            // Copy it into the big array of spares
+            nGoodSpares++;
+            for(i = 0;i < yfs->spare_size;i++){
+                allSpares[blocksTested * yfs->spare_size * chunksToTest + (chunksToTest - 1) * yfs->spare_size + i] = spareBuffer[i];
+            }
+
+            // Now copy 9 more
+            for(chunkIndex = 0;chunkIndex < chunksToTest - 1;chunkIndex++){
+                offset = blockIndex * yfs->chunks_per_block * (yfs->page_size + yfs->spare_size) + chunkIndex * (yfs->page_size + yfs->spare_size) + yfs->page_size;
+                cnt = tsk_img_read(fs->img_info, offset, (char *) spareBuffer,
+                    yfs->spare_size);
+                if (cnt == -1 || cnt < yfs->spare_size) {
+                    // We really shouldn't run out of data here since we already read in the furthest entry
+                    outOfData = 1;
+                    break; // Break out of chunksToTest loop
+                }
+
+                if(! outOfData){
+                    nGoodSpares++;
+                    for(i = 0;i < yfs->spare_size;i++){
+                        allSpares[blocksTested * yfs->spare_size * chunksToTest + chunkIndex * yfs->spare_size + i] = spareBuffer[i];
+                    }
+                }
+            }
+        }
+
+        if(outOfData){
+            break; // Break out of blocksToTest loop
+        }
+
+        blockIndex++;
+    }
+
+
+    // Make sure we read enough data to reasonably perform the testing
+    if(nGoodSpares < minChunksRead){
+
+        if(tsk_verbose && (! yfs->autoDetect)){
+            tsk_fprintf(stderr,
+                "yaffs_initialize_spare_format failed - not enough potentially valid data could be read\n");
+        }
+
+        free(spareBuffer);
+        free(allSpares);
+        return TSK_ERR;
+    }
+
+    if(tsk_verbose && (! yfs->autoDetect)){
+        tsk_fprintf(stderr,
+            "yaffs_initialize_spare_format: Testing potential offsets for the sequence number in the spare area\n");
+    }
+
+    if(tsk_verbose && (! yfs->autoDetect)){
+        for(blockIndex = 0;blockIndex < blocksToTest;blockIndex++){
+            for(chunkIndex = 0;chunkIndex < chunksToTest;chunkIndex++){
+                for(i = 0;i < yfs->spare_size;i++){
+                    fprintf(stderr, "%02x", allSpares[blockIndex * yfs->spare_size * chunksToTest + chunkIndex * yfs->spare_size + i]);
+                }
+                fprintf(stderr, "\n");
+            }
+        }
+    }
+
+    // Test all indices into the spare area (that leave enough space for all 16 bytes)
+    for(currentOffset = 0;currentOffset < yfs->spare_size - 16;currentOffset++){
+        goodOffset = 1;
+        for(blockIndex = 0;blockIndex < blocksToTest;blockIndex++){
+            for(chunkIndex = 1;chunkIndex < chunksToTest;chunkIndex++){
+
+                lastChunkBase = blockIndex * yfs->spare_size * chunksToTest + (chunkIndex - 1) * yfs->spare_size;
+                thisChunkBase = lastChunkBase + yfs->spare_size;
+
+                // Seq num should not be all 0xff (we tested earlier that the chunk has been initialized)
+                if((0xff == allSpares[thisChunkBase + currentOffset]) &&
+                    (0xff == allSpares[thisChunkBase + currentOffset + 1]) &&
+                    (0xff == allSpares[thisChunkBase + currentOffset + 2]) &&
+                    (0xff == allSpares[thisChunkBase + currentOffset + 3])){
+                        if(tsk_verbose && (! yfs->autoDetect)){
+                            tsk_fprintf(stderr,
+                                "yaffs_initialize_spare_format: Elimimating offset %d - invalid sequence number 0xffffffff\n", 
+                                currentOffset);
+                        }
+                        goodOffset = 0;
+                        break;
+                }
+
+                // Seq num should not be zero
+                if((0 == allSpares[thisChunkBase + currentOffset]) &&
+                    (0 == allSpares[thisChunkBase + currentOffset + 1]) &&
+                    (0 == allSpares[thisChunkBase + currentOffset + 2]) &&
+                    (0 == allSpares[thisChunkBase + currentOffset + 3])){
+                        if(tsk_verbose && (! yfs->autoDetect)){
+                            tsk_fprintf(stderr,
+                                "yaffs_initialize_spare_format: Elimimating offset %d - invalid sequence number 0\n", 
+                                currentOffset);
+                        }
+                        goodOffset = 0;
+                        break;
+                }
+
+                // Seq num should match the previous one in the block
+                if((allSpares[lastChunkBase + currentOffset] != allSpares[thisChunkBase + currentOffset]) ||
+                    (allSpares[lastChunkBase + currentOffset + 1] != allSpares[thisChunkBase + currentOffset + 1]) ||
+                    (allSpares[lastChunkBase + currentOffset + 2] != allSpares[thisChunkBase + currentOffset + 2]) ||
+                    (allSpares[lastChunkBase + currentOffset + 3] != allSpares[thisChunkBase + currentOffset + 3])){
+                        if(tsk_verbose && (! yfs->autoDetect)){
+                            tsk_fprintf(stderr,
+                                "yaffs_initialize_spare_format: Elimimating offset %d - did not match previous chunk sequence number\n", 
+                                currentOffset);
+                        }
+                        goodOffset = 0;
+                        break;
+                }
+
+                // Obj id should not be zero
+                if((0 == allSpares[thisChunkBase + currentOffset + 4]) &&
+                    (0 == allSpares[thisChunkBase + currentOffset + 5]) &&
+                    (0 == allSpares[thisChunkBase + currentOffset + 6]) &&
+                    (0 == allSpares[thisChunkBase + currentOffset + 7])){
+                        if(tsk_verbose && (! yfs->autoDetect)){
+                            tsk_fprintf(stderr,
+                                "yaffs_initialize_spare_format: Elimimating offset %d - invalid object id 0\n", 
+                                currentOffset);
+                        }
+                        goodOffset = 0;
+                        break;
+                }
+            }
+            if(!goodOffset){
+                break;
+            }
+        }
+        if(goodOffset){
+
+            // Note that we've found an offset that is at least promising
+            if((! goodOffsetFound) && (! okOffsetFound)){
+                bestOffset = currentOffset;
+            }
+            okOffsetFound = 1;
+
+            if(tsk_verbose && (! yfs->autoDetect)){
+                tsk_fprintf(stderr,
+                    "yaffs_initialize_spare_format: Found potential spare offsets:  %d (sequence number), %d (object id), %d (chunk id), %d (n bytes)\n",
+                    currentOffset, currentOffset+4, currentOffset+8, currentOffset+12);
+            }
+
+            // Now do some more tests
+            // Really need some more real-world test data to do this right.
+            int possibleError = 0;
+
+            // We probably don't want the first byte to always be 0xff
+            int firstByteFF = 1;
+            for(blockIndex = 0;blockIndex < blocksToTest;blockIndex++){
+                for(chunkIndex = 1;chunkIndex < chunksToTest;chunkIndex++){
+                    if(allSpares[blockIndex * yfs->spare_size * chunksToTest + chunkIndex * yfs->spare_size + currentOffset] != 0xff){
+                        firstByteFF = 0;
+                    }
+                }
+            }
+
+            if(firstByteFF){
+                if(tsk_verbose && (! yfs->autoDetect)){
+                    tsk_fprintf(stderr,
+                        "yaffs_initialize_spare_format:  Previous data starts with all 0xff bytes. Looking for better offsets.\n");
+                }
+                possibleError = 1;
+            }
+
+            if(! possibleError){
+
+                // If we already have a good offset, print this one out but don't record it
+                if(! goodOffsetFound){
+
+                    goodOffsetFound = 1;
+                    bestOffset = currentOffset;
+
+                    // Offset passed additional testing and we haven't seen an earlier good one, so go ahead and use it
+                    if(tsk_verbose && (! yfs->autoDetect)){
+                        tsk_fprintf(stderr,
+                            "yaffs_initialize_spare_format:  Previous offsets appear good - will use as final offsets\n");
+                    }
+
+                }
+                else{
+                    // Keep using the old one
+                    if(tsk_verbose && (! yfs->autoDetect)){
+                        tsk_fprintf(stderr,
+                            "yaffs_initialize_spare_format:  Previous offsets appear good but staying with earlier valid ones\n");
+                    }
+                }
+            }
+        }
+    }
+
+    // If we get down here, we failed to find a good offset for the spare data.
+    // If we have an "ok" one, use that
+    free(spareBuffer);
+    free(allSpares);
+
+    if(okOffsetFound || goodOffsetFound){
+        // Record everything
+        yfs->spare_seq_offset = bestOffset;
+        yfs->spare_obj_id_offset = bestOffset + 4;
+        yfs->spare_chunk_id_offset = bestOffset + 8;
+        yfs->spare_nbytes_offset = bestOffset + 12;
+
+        if(tsk_verbose && (! yfs->autoDetect)){
+            tsk_fprintf(stderr,
+                "yaffs_initialize_spare_format: Final offsets: %d (sequence number), %d (object id), %d (chunk id), %d (n bytes)\n",
+                bestOffset, bestOffset+4, bestOffset+8, bestOffset+12);
+        }
+        return TSK_OK;
+    }
+    else{
+        return TSK_ERR;
+    }
+}
+
+/**
+* yaffsfs_read_header( ... )
+*
+*/
+static uint8_t 
+    yaffsfs_read_header(YAFFSFS_INFO *yfs, YaffsHeader ** header, TSK_OFF_T offset)
+{
+    unsigned char *hdr;
+    ssize_t cnt;
+    YaffsHeader *head;
+    TSK_FS_INFO *fs = &(yfs->fs_info);
+
+    if ((hdr = (unsigned char*) tsk_malloc(yfs->page_size)) == NULL) {
+        return 1;
+    }
+
+    cnt = tsk_img_read(fs->img_info, offset, (char *) hdr,
+        yfs->page_size);
+    if (cnt == -1 || cnt < yfs->page_size) {
+        free(hdr);
+        return 1;
+    }
+
+    if ((head = (YaffsHeader*) tsk_malloc( sizeof(YaffsHeader))) == NULL) {
+        free(hdr);
+        return 1;
+    }
+
+    memcpy(&head->obj_type, hdr, 4);
+    memcpy(&head->parent_id, &hdr[4], 4);
+    memcpy(head->name, (char*) &hdr[0xA], YAFFS_HEADER_NAME_LENGTH);
+    memcpy(&head->file_mode, &hdr[0x10C], 4);
+    memcpy(&head->user_id, &hdr[0x110], 4);
+    memcpy(&head->group_id, &hdr[0x114], 4);
+    memcpy(&head->atime, &hdr[0x118], 4);
+    memcpy(&head->mtime, &hdr[0x11C], 4);
+    memcpy(&head->ctime, &hdr[0x120], 4);
+    memcpy(&head->file_size, &hdr[0x124], 4);
+    memcpy(&head->equivalent_id, &hdr[0x128], 4);
+    memcpy(head->alias, (char*) &hdr[0x12C], YAFFS_HEADER_ALIAS_LENGTH);
+
+    //memcpy(&head->rdev_mode, &hdr[0x1CC], 4);
+    //memcpy(&head->win_ctime, &hdr[0x1D0], 8);
+    //memcpy(&head->win_atime, &hdr[0x1D8], 8);
+    //memcpy(&head->win_mtime, &hdr[0x1E0], 8);
+    //memcpy(&head->inband_obj_id, &hdr[0x1E8], 4);
+    //memcpy(&head->inband_is_shrink, &hdr[0x1EC], 4);
+
+    // NOTE: This isn't in Android 3.3 kernel but is in YAFFS2 git
+    //memcpy(&head->file_size_high, &hdr[0x1F0], 4);
+
+    free(hdr);
+
+    *header = head;
+    return 0;
+}
+
+/**
+* Read and parse the YAFFS2 tags in the NAND spare bytes.
+*
+* @param info is a YAFFS fs handle
+* @param spare YaffsSpare object to be populated
+* @param offset, offset to read from
+*
+* @returns 0 on success and 1 on error
+*/
+static uint8_t 
+    yaffsfs_read_spare(YAFFSFS_INFO *yfs, YaffsSpare ** spare, TSK_OFF_T offset)
+{
+    unsigned char *spr;
+    ssize_t cnt;
+    YaffsSpare *sp;
+    TSK_FS_INFO *fs = &(yfs->fs_info);
+
+    uint32_t seq_number;
+    uint32_t object_id;
+    uint32_t chunk_id;
+
+    if ((spr = (unsigned char*) tsk_malloc(yfs->spare_size)) == NULL) {
+        return 1;
+    }
+
+    if (yfs->spare_size < 46) {
+        tsk_error_reset();
+        tsk_error_set_errno(TSK_ERR_FS_ARG);
+        tsk_error_set_errstr("yaffsfs_read_spare: spare size is too small");
+        free(spr);
+        return 1;
+    }
+
+    cnt = tsk_img_read(fs->img_info, offset, (char*) spr, yfs->spare_size);
+    if (cnt == -1 || cnt < yfs->spare_size) {
+        // couldn't read sufficient bytes...
+        if (spare) {
+            free(spr);
+            *spare = NULL;
+        }
+        return 1;
+    }
+
+    if ((sp = (YaffsSpare*) tsk_malloc(sizeof(YaffsSpare))) == NULL) {
+        return 1;
+    }
+
+    memset(sp, 0, sizeof(YaffsSpare));
+
+    /*
+    * Complete read of the YAFFS2 spare
+    */
+
+
+    // The format of the spare area should have been determined earlier
+    memcpy(&seq_number, &spr[yfs->spare_seq_offset], 4);
+    memcpy(&object_id, &spr[yfs->spare_obj_id_offset], 4);
+    memcpy(&chunk_id, &spr[yfs->spare_chunk_id_offset], 4);
+
+    if ((YAFFS_SPARE_FLAGS_IS_HEADER & chunk_id) != 0) {
+
+        sp->seq_number = seq_number;
+        sp->object_id = object_id & ~YAFFS_SPARE_OBJECT_TYPE_MASK;
+        sp->chunk_id = 0;
+
+        sp->has_extra_fields = 1;
+        sp->extra_parent_id = chunk_id & YAFFS_SPARE_PARENT_ID_MASK;
+        sp->extra_object_type =
+            (object_id & YAFFS_SPARE_OBJECT_TYPE_MASK)
+            >> YAFFS_SPARE_OBJECT_TYPE_SHIFT;
+    }
+    else {
+        sp->seq_number = seq_number;
+        sp->object_id = object_id;
+        sp->chunk_id = chunk_id;
+
+        sp->has_extra_fields = 0;
+    }
+
+    free(spr);
+    *spare = sp;
+
+    return 0;
+}
+
+static uint8_t 
+    yaffsfs_is_spare_valid(YAFFSFS_INFO *yfs, YaffsSpare *spare)
+{
+    if (spare == NULL) {
+        return 1;
+    }
+
+    if ((spare->object_id > YAFFS_MAX_OBJECT_ID) ||
+        (spare->seq_number < YAFFS_LOWEST_SEQUENCE_NUMBER) ||
+        (spare->seq_number > YAFFS_HIGHEST_SEQUENCE_NUMBER)) {
+            return 1;
+    }
+
+    return 0;
+}
+
+static uint8_t 
+    yaffsfs_read_chunk(YAFFSFS_INFO *yfs,
+    YaffsHeader **header, YaffsSpare **spare, TSK_OFF_T offset)
+{
+    TSK_OFF_T header_offset = offset;
+    TSK_OFF_T spare_offset = offset + yfs->page_size; 
+
+    if (header == NULL || spare == NULL) {
+        return 1;
+    }
+
+    if (yaffsfs_read_header(yfs, header, header_offset) != 0) {
+        return 1;
+    }
+
+    if (yaffsfs_read_spare(yfs, spare, spare_offset) != 0) {
+        free(*header);
+        *header = NULL;
+        return 1;
+    }
+
+    return 0;
+}
+
+/**
+*/
+static uint8_t 
+    yaffsfs_cache_fs(YAFFSFS_INFO * yfs)
+{
+    uint8_t status = TSK_OK;
+    size_t offset = 0;
+    uint32_t nentries = 0;
+    YaffsSpare *spare = NULL;
+
+    uint8_t tempBuf[8];
+    uint32_t parentID;
+
+    if (yfs->cache_objects)
+        return 0;
+
+    offset = 0;
+    while (1) {
+
+        status = yaffsfs_read_spare( yfs, &spare, offset + yfs->page_size);
+        if (status != TSK_OK) {
+            break;
+        }
+
+        if (yaffsfs_is_spare_valid(yfs, spare) == TSK_OK) {
+
+
+            if((spare->has_extra_fields) || (spare->chunk_id != 0)){
+                yaffscache_chunk_add(yfs,
+                    offset, 
+                    spare->seq_number, 
+                    spare->object_id, 
+                    spare->chunk_id, 
+                    spare->extra_parent_id);
+            }
+            else{
+                // If we have a header block and didn't extract it already from the spare, get the parent ID from
+                // the non-spare data
+                if(8 == tsk_img_read(yfs->fs_info.img_info, offset, (char*) tempBuf, 8)){
+                    memcpy(&parentID, &tempBuf[4], 4);
+
+                    yaffscache_chunk_add(yfs,
+                        offset, 
+                        spare->seq_number, 
+                        spare->object_id, 
+                        spare->chunk_id, 
+                        parentID);
+                }
+                else{
+                    // Really shouldn't happen
+                    fprintf(stderr, "Error reading header to get parent id at offset %x\n", offset);
+                    yaffscache_chunk_add(yfs,
+                        offset, 
+                        spare->seq_number, 
+                        spare->object_id, 
+                        spare->chunk_id, 
+                        0);
+                }
+            }
+        }
+
+        free(spare);
+        spare = NULL;
+
+        ++nentries;
+        offset += yfs->page_size + yfs->spare_size;
+    }
+
+    if (tsk_verbose)
+        fprintf(stderr, "yaffsfs_cache_fs: read %d entries\n", nentries);
+
+    if (tsk_verbose)
+        fprintf(stderr, "yaffsfs_cache_fs: started processing chunks for version cache...\n");
+    fflush(stderr);
+
+    // At this point, we have a list of chunks sorted by obj id, seq number, and offset
+    // This makes the list of objects in cache_objects, which link to different versions
+    yaffscache_versions_compute(yfs);
+
+    if (tsk_verbose)
+        fprintf(stderr, "yaffsfs_cache_fs: done version cache!\n");
+    fflush(stderr);
+
+
+    // Having multiple inodes point to the same object seems to cause trouble in TSK, especally in orphan file detection,
+    //  so set the version number of the final one to zero.
+    // While we're at it, find the highest obj_id and the highest version (before resetting to zero)
+    TSK_INUM_T orphanParentID = yfs->fs_info.last_inum;
+    YaffsCacheObject * currObj = yfs->cache_objects;
+    YaffsCacheVersion * currVer;
+    while(currObj != NULL){
+        if(currObj->yco_obj_id > yfs->max_obj_id){
+            yfs->max_obj_id = currObj->yco_obj_id;
+        }
+
+        currVer = currObj->yco_latest;
+        if(currVer->ycv_version > yfs->max_version){
+            yfs->max_version = currVer->ycv_version;
+        }
+
+        currVer->ycv_version = 0;
+        currObj = currObj->yco_next;
+    }
+
+    // Use the max object id and version number to construct an upper bound on the inode
+    TSK_INUM_T max_inum;
+    yaffscache_obj_id_and_version_to_inode(yfs->max_obj_id, yfs->max_version, &max_inum);
+    yfs->fs_info.last_inum = max_inum + 1; // One more for the orphan dir
+
+    return TSK_OK;
+}
+
+// A version is allocated if:
+//   1. This version is pointed to by yco_latest
+//   2. This version didn't have a delete/unlinked header after the most recent copy of the normal header
+uint8_t yaffs_is_version_allocated(YAFFSFS_INFO * yfs, TSK_INUM_T inode){
+    YaffsCacheObject * obj;
+    YaffsCacheVersion * version;
+    YaffsCacheChunk * curr;
+
+    TSK_RETVAL_ENUM result = yaffscache_version_find_by_inode(yfs, inode, &version, &obj);
+    if (result != TSK_OK) {
+        if (tsk_verbose)
+            tsk_fprintf(stderr, "yaffs_is_version_allocated: yaffscache_version_find_by_inode failed! (inode: %d)\n", inode);
+        return 0;
+    }
+
+    if(obj->yco_latest == version){
+        curr = obj->yco_latest->ycv_header_chunk;
+        while(curr != NULL){
+            // We're looking for a newer unlinked or deleted header. If one exists, then this object should be considered unallocated
+            if((curr->ycc_parent_id == YAFFS_OBJECT_UNLINKED) || (curr->ycc_parent_id == YAFFS_OBJECT_DELETED)){
+                return 0;
+            }
+            curr = curr ->ycc_next;
+        }
+        return 1;
+    }
+    else{
+        return 0;
+    }
+
+}
+
+/*
+* TSK integration
+*
+*
+*/
+
+static uint8_t
+    yaffs_make_directory(YAFFSFS_INFO *yaffsfs, TSK_FS_FILE *a_fs_file, 
+    TSK_INUM_T inode, char *name)
+{
+    TSK_FS_FILE *fs_file = a_fs_file;
+
+
+    fs_file->meta->type = TSK_FS_META_TYPE_DIR;
+    fs_file->meta->mode = (TSK_FS_META_MODE_ENUM)0;
+    fs_file->meta->nlink = 1;
+
+    if((inode == YAFFS_OBJECT_UNLINKED) || (inode == YAFFS_OBJECT_DELETED) ||
+        (inode == yaffsfs->fs_info.last_inum)){
+            fs_file->meta->flags =
+                (TSK_FS_META_FLAG_ENUM)(TSK_FS_META_FLAG_USED | TSK_FS_META_FLAG_ALLOC);
+    }
+    else{
+        if(yaffs_is_version_allocated(yaffsfs, inode)){
+            fs_file->meta->flags =
+                (TSK_FS_META_FLAG_ENUM)(TSK_FS_META_FLAG_USED | TSK_FS_META_FLAG_ALLOC);
+        }
+        else{
+            fs_file->meta->flags =
+                (TSK_FS_META_FLAG_ENUM)(TSK_FS_META_FLAG_USED | TSK_FS_META_FLAG_UNALLOC);
+        }
+    }
+    fs_file->meta->uid = fs_file->meta->gid = 0;
+    fs_file->meta->mtime = fs_file->meta->atime = fs_file->meta->ctime =
+        fs_file->meta->crtime = 0;
+    fs_file->meta->mtime_nano = fs_file->meta->atime_nano =
+        fs_file->meta->ctime_nano = fs_file->meta->crtime_nano = 0;
+
+    if (fs_file->meta->name2 == NULL) {
+        if ((fs_file->meta->name2 = (TSK_FS_META_NAME_LIST *)
+            tsk_malloc(sizeof(TSK_FS_META_NAME_LIST))) == NULL)
+            return 1;
+        fs_file->meta->name2->next = NULL;
+    }
+
+    if (fs_file->meta->attr != NULL) {
+        tsk_fs_attrlist_markunused(fs_file->meta->attr);
+    }
+    else {
+        fs_file->meta->attr = tsk_fs_attrlist_alloc();
+    }
+
+    strncpy(fs_file->meta->name2->name, name,
+        TSK_FS_META_NAME_LIST_NSIZE);
+
+    fs_file->meta->size = 0;
+    fs_file->meta->attr_state = TSK_FS_META_ATTR_EMPTY;
+    fs_file->meta->addr = inode;
+    return 0;
+}
+
+static uint8_t
+    yaffs_make_regularfile( YAFFSFS_INFO * yaffsfs, TSK_FS_FILE * a_fs_file, 
+    TSK_INUM_T inode, char * name )
+{
+    TSK_FS_FILE *fs_file = a_fs_file;
+
+    fs_file->meta->type = TSK_FS_META_TYPE_REG;
+    fs_file->meta->mode = (TSK_FS_META_MODE_ENUM)0;
+    fs_file->meta->nlink =1;
+
+    if(yaffs_is_version_allocated(yaffsfs, inode)){
+        fs_file->meta->flags =
+            (TSK_FS_META_FLAG_ENUM)(TSK_FS_META_FLAG_USED | TSK_FS_META_FLAG_ALLOC);
+    }
+    else{
+        fs_file->meta->flags =
+            (TSK_FS_META_FLAG_ENUM)(TSK_FS_META_FLAG_USED | TSK_FS_META_FLAG_UNALLOC);
+    }
+
+    fs_file->meta->uid = fs_file->meta->gid = 0;
+    fs_file->meta->mtime = fs_file->meta->atime = fs_file->meta->ctime =
+        fs_file->meta->crtime = 0;
+    fs_file->meta->mtime_nano = fs_file->meta->atime_nano =
+        fs_file->meta->ctime_nano = fs_file->meta->crtime_nano = 0;
+
+    if (fs_file->meta->name2 == NULL) {
+        if ((fs_file->meta->name2 = (TSK_FS_META_NAME_LIST *)
+            tsk_malloc(sizeof(TSK_FS_META_NAME_LIST))) == NULL)
+            return 1;
+        fs_file->meta->name2->next = NULL;
+    }
+
+    if (fs_file->meta->attr != NULL) {
+        tsk_fs_attrlist_markunused(fs_file->meta->attr);
+    }
+    else {
+        fs_file->meta->attr = tsk_fs_attrlist_alloc();
+    }
+
+    fs_file->meta->addr = inode;
+    strncpy(fs_file->meta->name2->name, name,
+        TSK_FS_META_NAME_LIST_NSIZE);
+
+    fs_file->meta->size = 0;
+    fs_file->meta->attr_state = TSK_FS_META_ATTR_EMPTY;
+
+    return 0;
+}
+
+/**
+* \internal 
+* Create YAFFS2 Deleted Object
+*
+* @ param yaffs file system
+* fs_file to copy file information to
+* return 1 on error, 0 on success
+*/
+static uint8_t
+    yaffs_make_deleted( YAFFSFS_INFO * yaffsfs, TSK_FS_FILE * a_fs_file )
+{
+    TSK_FS_FILE *fs_file = a_fs_file;
+
+    if (tsk_verbose)
+        tsk_fprintf(stderr, "yaffs_make_deleted: Making virtual deleted node\n");
+
+    if (yaffs_make_directory(yaffsfs, fs_file, YAFFS_OBJECT_DELETED, YAFFS_OBJECT_DELETED_NAME))
+        return 1;
+
+    return 0;
+}
+
+/**
+* \internal 
+* Create YAFFS2 Unlinked object
+*
+* @ param yaffs file system
+* fs_file to copy file information to
+* return 1 on error, 0 on success
+*/
+static uint8_t
+    yaffs_make_unlinked( YAFFSFS_INFO * yaffsfs, TSK_FS_FILE * a_fs_file )
+{
+    TSK_FS_FILE * fs_file = a_fs_file;
+
+    if (tsk_verbose)
+        tsk_fprintf(stderr, "yaffs_make_unlinked: Making virtual unlinked node\n");
+
+    if (yaffs_make_directory(yaffsfs, fs_file, YAFFS_OBJECT_UNLINKED, YAFFS_OBJECT_UNLINKED_NAME))
+        return 1;
+
+    return 0;
+}
+
+/**
+* \internal 
+* Create YAFFS2 orphan object
+*
+* @ param yaffs file system
+* fs_file to copy file information to
+* return 1 on error, 0 on success
+*/
+static uint8_t
+    yaffs_make_orphan_dir( YAFFSFS_INFO * yaffsfs, TSK_FS_FILE * a_fs_file )
+{
+    TSK_FS_FILE * fs_file = a_fs_file;
+    TSK_FS_NAME *fs_name = tsk_fs_name_alloc(256, 0);
+    if (fs_name == NULL)
+        return TSK_ERR;
+
+    if (tsk_verbose)
+        tsk_fprintf(stderr, "yaffs_make_orphan_dir: Making orphan dir node\n");
+
+    if (tsk_fs_dir_make_orphan_dir_name(&(yaffsfs->fs_info), fs_name)) {
+        tsk_fs_name_free(fs_name);
+        return TSK_ERR;
+    }
+
+    if (yaffs_make_directory(yaffsfs, fs_file, yaffsfs->fs_info.last_inum, (char *)fs_name)){
+        tsk_fs_name_free(fs_name);
+        return 1;
+    }
+    tsk_fs_name_free(fs_name);
+    return 0;
+}
+
+/* yaffsfs_inode_lookup - lookup inode, external interface
+*
+* Returns 1 on error and 0 on success
+*
+*/
+
+static uint8_t
+    yaffs_inode_lookup(TSK_FS_INFO *a_fs, TSK_FS_FILE * a_fs_file,
+    TSK_INUM_T inum)
+{
+    YAFFSFS_INFO *yfs = (YAFFSFS_INFO *)a_fs;
+    YaffsCacheObject *obj;
+    YaffsCacheVersion *version;
+    YaffsHeader *header = NULL;
+    YaffsSpare *spare = NULL;
+    TSK_RETVAL_ENUM result;
+    uint8_t type;
+    char *real_name;
+
+
+    if (a_fs_file == NULL) {
+        tsk_error_set_errno(TSK_ERR_FS_ARG);
+        tsk_error_set_errstr("yaffsfs_inode_lookup: fs_file is NULL");
+        return 1;
+    }
+
+    if (a_fs_file->meta == NULL) {
+        if ((a_fs_file->meta =
+            tsk_fs_meta_alloc(YAFFS_FILE_CONTENT_LEN)) == NULL)
+            return 1;
+    }
+    else {
+        tsk_fs_meta_reset(a_fs_file->meta);
+    }
+
+    if (tsk_verbose)
+        tsk_fprintf(stderr, "yaffs_inode_lookup: looking up %" PRIuINUM "\n",inum);
+
+    switch(inum) {
+    case YAFFS_OBJECT_UNLINKED:
+        yaffs_make_unlinked(yfs, a_fs_file);
+        return 0;
+
+    case YAFFS_OBJECT_DELETED:
+        yaffs_make_deleted(yfs, a_fs_file);
+        return 0;
+    }
+
+    if(inum == yfs->fs_info.last_inum){
+        yaffs_make_orphan_dir(yfs, a_fs_file);
+        return 0;
+    }
+
+    result = yaffscache_version_find_by_inode(yfs, inum, &version, &obj);
+    if (result != TSK_OK) {
+        if (tsk_verbose)
+            tsk_fprintf(stderr, "yaffs_inode_lookup: yaffscache_version_find_by_inode failed! (inode = %d)\n", inum);
+        return 1;
+    }
+
+    if (yaffsfs_read_chunk(yfs, &header, &spare, version->ycv_header_chunk->ycc_offset) != TSK_OK) {
+        if (tsk_verbose)
+            tsk_fprintf(stderr, "yaffs_inode_lookup: yaffsfs_read_chunk failed!\n");
+        return 1;
+    }
+
+    type = header->obj_type;
+
+    switch(inum) {
+    case YAFFS_OBJECT_LOSTNFOUND:
+        real_name = YAFFS_OBJECT_LOSTNFOUND_NAME;
+        break;
+    case YAFFS_OBJECT_UNLINKED:
+        real_name = YAFFS_OBJECT_UNLINKED_NAME;
+        break;
+    case YAFFS_OBJECT_DELETED:
+        real_name = YAFFS_OBJECT_DELETED_NAME;
+        break;
+    default:
+        real_name = header->name;
+        break;
+    }
+
+    switch(type) {
+    case YAFFS_TYPE_FILE:
+        if (tsk_verbose)
+            tsk_fprintf(stderr, "yaffs_inode_lookup: is a file\n");
+        yaffs_make_regularfile(yfs, a_fs_file, inum, real_name);
+        break;
+
+    case YAFFS_TYPE_DIRECTORY:
+        if (tsk_verbose)
+            tsk_fprintf(stderr, "yaffs_inode_lookup: is a directory\n");
+        yaffs_make_directory(yfs, a_fs_file, inum, real_name);
+        break;
+
+    case YAFFS_TYPE_SOFTLINK:
+        if (tsk_verbose)
+            tsk_fprintf(stderr, "yaffs_inode_lookup: is a symbolic link\n");
+        yaffs_make_regularfile(yfs, a_fs_file, inum, real_name);
+        a_fs_file->meta->type = TSK_FS_META_TYPE_LNK;
+        break;
+
+    case YAFFS_TYPE_HARDLINK:
+    case YAFFS_TYPE_UNKNOWN:
+    default:
+        if (tsk_verbose)
+            tsk_fprintf(stderr, "yaffs_inode_lookup: is *** UNHANDLED *** (type %d, header at 0x%x)\n", type, version->ycv_header_chunk->ycc_offset);
+        // We can still set a few things
+        a_fs_file->meta->type = TSK_FS_META_TYPE_UNDEF;
+        a_fs_file->meta->addr = inum;
+        if(yaffs_is_version_allocated(yfs, inum)){
+            a_fs_file->meta->flags =
+                (TSK_FS_META_FLAG_ENUM)(TSK_FS_META_FLAG_USED | TSK_FS_META_FLAG_ALLOC);
+        }
+        else{
+            a_fs_file->meta->flags =
+                (TSK_FS_META_FLAG_ENUM)(TSK_FS_META_FLAG_USED | TSK_FS_META_FLAG_UNALLOC);
+        }
+        if (a_fs_file->meta->name2 == NULL) {
+            if ((a_fs_file->meta->name2 = (TSK_FS_META_NAME_LIST *)
+                tsk_malloc(sizeof(TSK_FS_META_NAME_LIST))) == NULL){
+                    return 1;
+            }
+            a_fs_file->meta->name2->next = NULL;
+        }
+        strncpy(a_fs_file->meta->name2->name, real_name,
+            TSK_FS_META_NAME_LIST_NSIZE);
+        break;
+    }
+
+    /* Who owns this? I'm following the way FATFS does it by freeing + NULLing 
+    * this and mallocing if used. 
+    */
+    if (a_fs_file->meta->link != NULL) {
+        free(a_fs_file->meta->link);
+        a_fs_file->meta->link = NULL;
+    }
+
+    if (type != YAFFS_TYPE_HARDLINK) {
+        a_fs_file->meta->mode = (TSK_FS_META_MODE_ENUM)header->file_mode;
+        a_fs_file->meta->uid = header->user_id;
+        a_fs_file->meta->gid = header->group_id;
+        a_fs_file->meta->mtime = header->mtime;
+        a_fs_file->meta->atime = header->atime;
+        a_fs_file->meta->ctime = header->ctime;
+    }
+
+    if (type == YAFFS_TYPE_FILE) {
+        a_fs_file->meta->size = header->file_size;
+        // NOTE: This isn't in Android 3.3 kernel but is in YAFFS2 git
+        //a_fs_file->meta->size |= ((TSK_OFF_T) header->file_size_high) << 32;
+    }
+
+    if (type == YAFFS_TYPE_HARDLINK) {
+        // TODO: Store equivalent_id somewhere? */
+    }
+
+    if (type == YAFFS_TYPE_SOFTLINK) {
+        a_fs_file->meta->link = (char*)tsk_malloc(YAFFS_HEADER_ALIAS_LENGTH);
+        if (a_fs_file->meta->link == NULL) {
+            free(header);
+            free(spare);
+            return 1;
+        }
+
+        memcpy(a_fs_file->meta->link, header->alias, YAFFS_HEADER_ALIAS_LENGTH);
+    }
+
+    free(header);
+    free(spare);
+    return 0;
+}
+
+
+
+/* yaffsfs_inode_walk - inode iterator
+*
+* flags used: TSK_FS_META_FLAG_USED, TSK_FS_META_FLAG_UNUSED,
+*  TSK_FS_META_FLAG_ALLOC, TSK_FS_META_FLAG_UNALLOC, TSK_FS_META_FLAG_ORPHAN
+*
+*  Return 1 on error and 0 on success
+*/
+
+static uint8_t
+    yaffsfs_inode_walk(TSK_FS_INFO *fs, TSK_INUM_T start_inum,
+    TSK_INUM_T end_inum, TSK_FS_META_FLAG_ENUM flags,
+    TSK_FS_META_WALK_CB a_action, void *a_ptr)
+{
+    YAFFSFS_INFO *yfs = (YAFFSFS_INFO *)fs;
+    TSK_FS_FILE *fs_file;
+    TSK_RETVAL_ENUM result;
+
+    uint32_t start_obj_id;
+    uint32_t start_ver_number;
+    uint32_t end_obj_id;
+    uint32_t end_ver_number;
+
+    uint32_t obj_id;
+
+    YaffsCacheObject *curr_obj;
+    YaffsCacheVersion *curr_version;
+
+    result = yaffscache_inode_to_obj_id_and_version(start_inum, &start_obj_id, &start_ver_number);
+
+    result = yaffscache_inode_to_obj_id_and_version(end_inum, &end_obj_id, &end_ver_number);
+
+    if (end_obj_id < start_obj_id) {
+        tsk_error_reset();
+        tsk_error_set_errno(TSK_ERR_FS_WALK_RNG);
+        tsk_error_set_errstr("yaffsfs_inode_walk: end object id must be >= start object id: "
+            "%" PRIx32 " must be >= %" PRIx32 "",
+            end_obj_id, start_obj_id);
+        return 1;
+    }
+
+    /* The ORPHAN flag is unsupported for YAFFS2 */
+    if (flags & TSK_FS_META_FLAG_ORPHAN) {
+        if (tsk_verbose){
+            tsk_fprintf(stderr, "yaffsfs_inode_walk: ORPHAN flag unsupported by YAFFS2");
+        }
+    }
+
+    if (((flags & TSK_FS_META_FLAG_ALLOC) == 0) &&
+        ((flags & TSK_FS_META_FLAG_UNALLOC) == 0)) {
+            flags = (TSK_FS_META_FLAG_ENUM)(flags | TSK_FS_META_FLAG_ALLOC | TSK_FS_META_FLAG_UNALLOC);
+    }
+
+    /* If neither of the USED or UNUSED flags are set, then set them
+    * both
+    */
+    if (((flags & TSK_FS_META_FLAG_USED) == 0) &&
+        ((flags & TSK_FS_META_FLAG_UNUSED) == 0)) {
+            flags = (TSK_FS_META_FLAG_ENUM)(flags | TSK_FS_META_FLAG_USED | TSK_FS_META_FLAG_UNUSED);
+    }
+
+    if ((fs_file = tsk_fs_file_alloc(fs)) == NULL)
+        return 1;
+    if ((fs_file->meta =
+        tsk_fs_meta_alloc(YAFFS_FILE_CONTENT_LEN)) == NULL)
+        return 1;
+
+
+    for (obj_id = start_obj_id; obj_id <= end_obj_id; obj_id++) {
+        int retval;
+
+        result = yaffscache_version_find_by_inode(yfs, obj_id, &curr_version, &curr_obj);
+        if (result == TSK_OK) {
+
+            TSK_INUM_T curr_inode;
+            YaffsCacheVersion *version;
+
+            // ALLOC, UNALLOC, or both are set at this point 
+            if (flags & TSK_FS_META_FLAG_ALLOC) {
+                // Allocated only - just look at current version
+                if (yaffscache_obj_id_and_version_to_inode(obj_id, curr_obj->yco_latest->ycv_version, &curr_inode) != TSK_OK) {
+                    tsk_fs_file_close(fs_file);
+                    return 1;
+                }
+
+                // It's possible for the current version to be unallocated if the last header was a deleted or unlinked header
+                if(yaffs_is_version_allocated(yfs, curr_inode)){
+                    if (yaffs_inode_lookup(fs, fs_file, curr_inode) != TSK_OK) {
+                        tsk_fs_file_close(fs_file);
+                        return 1;
+                    }
+
+                    retval = a_action(fs_file, a_ptr);
+                    if (retval == TSK_WALK_STOP) {
+                        tsk_fs_file_close(fs_file);
+                        return 0;
+                    }
+                    else if (retval == TSK_WALK_ERROR) {
+                        tsk_fs_file_close(fs_file);
+                        return 1;
+                    }
+                }
+            }
+            if (flags & TSK_FS_META_FLAG_UNALLOC){
+                for (version = curr_obj->yco_latest; version != NULL; version = version->ycv_prior) {
+                    if (yaffscache_obj_id_and_version_to_inode(obj_id, version->ycv_version, &curr_inode) != TSK_OK) {
+                        tsk_fs_file_close(fs_file);
+                        return 1;
+                    }
+
+                    if(! yaffs_is_version_allocated(yfs, curr_inode)){
+                        if (yaffs_inode_lookup(fs, fs_file, curr_inode) != TSK_OK) {
+                            tsk_fs_file_close(fs_file);
+                            return 1;
+                        }
+
+                        retval = a_action(fs_file, a_ptr);
+                        if (retval == TSK_WALK_STOP) {
+                            tsk_fs_file_close(fs_file);
+                            return 0;
+                        }
+                        else if (retval == TSK_WALK_ERROR) {
+                            tsk_fs_file_close(fs_file);
+                            return 1;
+                        }
+                    }
+                }
+            }
+
+            curr_obj = curr_obj->yco_next;
+        }
+    }
+
+    /*
+    * Cleanup.
+    */
+    tsk_fs_file_close(fs_file);
+    return 0;
+}
+
+static TSK_FS_BLOCK_FLAG_ENUM
+    yaffsfs_block_getflags(TSK_FS_INFO *fs, TSK_DADDR_T a_addr)
+{
+    YAFFSFS_INFO *yfs = (YAFFSFS_INFO *)fs;
+    TSK_FS_BLOCK_FLAG_ENUM flags = TSK_FS_BLOCK_FLAG_UNUSED;
+
+    TSK_OFF_T offset = (a_addr * (fs->block_pre_size + fs->block_size + fs->block_post_size)) + yfs->page_size;
+    YaffsSpare *spare = NULL;
+    YaffsHeader *header = NULL;
+    if (yaffsfs_read_spare(yfs, &spare, offset) != TSK_OK) {
+        /* NOTE: Uh, how do we signal error? */
+        return flags;
+    }
+
+    if (yaffsfs_is_spare_valid(yfs, spare) == TSK_OK) {
+        /* XXX: Do we count blocks of older versions unallocated?
+        *      If so, we need a smarter way to do this :/
+        *
+        *      Walk the object from this block and see if this
+        *      block is used in the latest version. Could pre-
+        *      calculate this at cache time as well.
+        */
+
+
+        if (spare->chunk_id == 0) {
+            flags = (TSK_FS_BLOCK_FLAG_ENUM)(flags | TSK_FS_BLOCK_FLAG_META);
+        } else {
+            flags = (TSK_FS_BLOCK_FLAG_ENUM)(flags | TSK_FS_BLOCK_FLAG_CONT);
+        }
+
+        // Have obj id and offset
+        // 1. Is the current version of this object allocated?
+        // 2. If this is a header, is it the header of the current version?
+        // 3. Is the chunk id too big given the current header?
+        // 4. Is there a more recent version of this chunk id?
+        YaffsCacheObject * obj = NULL;
+        yaffscache_object_find(yfs, spare->object_id, &obj);
+
+        // The result really shouldn't be NULL since we loaded every chunk
+        if(obj != NULL){
+            if(! yaffs_is_version_allocated(yfs, spare->object_id)){
+                // If the current version isn't allocated, then no chunks in it are
+                flags = (TSK_FS_BLOCK_FLAG_ENUM)(flags | TSK_FS_BLOCK_FLAG_UNALLOC);
+            }
+            else if(spare->chunk_id == 0){
+                if(obj->yco_latest->ycv_header_chunk->ycc_offset == offset - yfs->page_size){
+                    // Have header chunk and it's the most recent header chunk
+                    flags = (TSK_FS_BLOCK_FLAG_ENUM)(flags | TSK_FS_BLOCK_FLAG_ALLOC);
+                }
+                else{
+                    // Have header chunk but isn't the most recent
+                    flags = (TSK_FS_BLOCK_FLAG_ENUM)(flags | TSK_FS_BLOCK_FLAG_UNALLOC);
+                }
+            }
+            else{
+                // Read in the full header
+                yaffsfs_read_header(yfs, &header, obj->yco_latest->ycv_header_chunk->ycc_offset);
+
+                // chunk_id is 1-based, so for example chunk id 2 would be too big for a file
+                //   500 bytes long
+                if(header->file_size <= ((spare->chunk_id - 1) * (fs->block_size))){
+                    flags = (TSK_FS_BLOCK_FLAG_ENUM)(flags | TSK_FS_BLOCK_FLAG_UNALLOC);
+                }
+                else{
+                    // Since at this point we know there should be a chunk with this chunk id in the file, if
+                    // this is the most recent version of the chunk assume it's part of the current version of the object.
+                    YaffsCacheChunk * curr = obj->yco_latest->ycv_last_chunk;
+                    while(curr != NULL){ // curr should really never make it to the beginning of the list
+
+                        // Did we find our chunk?
+                        if(curr->ycc_offset == offset - yfs->page_size){
+                            flags = (TSK_FS_BLOCK_FLAG_ENUM)(flags | TSK_FS_BLOCK_FLAG_ALLOC);
+                            break;
+                        }
+
+                        // Did we find a different chunk with our chunk id?
+                        if(curr->ycc_chunk_id == spare->chunk_id){
+                            flags = (TSK_FS_BLOCK_FLAG_ENUM)(flags | TSK_FS_BLOCK_FLAG_UNALLOC);
+                            break;
+                        }
+                        curr = curr->ycc_prev;
+                    }
+                }
+            }
+        }
+
+    } else {
+        flags = (TSK_FS_BLOCK_FLAG_ENUM)(flags | TSK_FS_BLOCK_FLAG_UNUSED | TSK_FS_BLOCK_FLAG_UNALLOC);
+    }
+
+    free(spare);
+    free(header);
+    return flags;
+}
+
+
+/* yaffsfs_block_walk - block iterator
+*
+* flags: TSK_FS_BLOCK_FLAG_ALLOC, TSK_FS_BLOCK_FLAG_UNALLOC, TSK_FS_BLOCK_FLAG_CONT,
+*  TSK_FS_BLOCK_FLAG_META
+*
+*  Return 1 on error and 0 on success
+*/
+static uint8_t
+    yaffsfs_block_walk(TSK_FS_INFO *a_fs, TSK_DADDR_T a_start_blk,
+    TSK_DADDR_T a_end_blk, TSK_FS_BLOCK_WALK_FLAG_ENUM a_flags,
+    TSK_FS_BLOCK_WALK_CB a_action, void *a_ptr)
+{
+    TSK_FS_BLOCK *fs_block;
+    TSK_DADDR_T addr;
+
+    // clean up any error messages that are lying around
+    tsk_error_reset();
+
+    /*
+    * Sanity checks.
+    */
+    if (a_start_blk < a_fs->first_block || a_start_blk > a_fs->last_block) {
+        tsk_error_reset();
+        tsk_error_set_errno(TSK_ERR_FS_WALK_RNG);
+        tsk_error_set_errstr("yaffsfs_block_walk: start block: %" PRIuDADDR,
+            a_start_blk);
+        return 1;
+    }
+    if (a_end_blk < a_fs->first_block || a_end_blk > a_fs->last_block
+        || a_end_blk < a_start_blk) {
+            tsk_error_reset();
+            tsk_error_set_errno(TSK_ERR_FS_WALK_RNG);
+            tsk_error_set_errstr("yaffsfs_block_walk: end block: %" PRIuDADDR ,
+                a_end_blk);
+            return 1;
+    }
+
+    /* Sanity check on a_flags -- make sure at least one ALLOC is set */
+    if (((a_flags & TSK_FS_BLOCK_WALK_FLAG_ALLOC) == 0) &&
+        ((a_flags & TSK_FS_BLOCK_WALK_FLAG_UNALLOC) == 0)) {
+            a_flags = (TSK_FS_BLOCK_WALK_FLAG_ENUM)
+                (a_flags | TSK_FS_BLOCK_WALK_FLAG_ALLOC |
+                TSK_FS_BLOCK_WALK_FLAG_UNALLOC);
+    }
+    if (((a_flags & TSK_FS_BLOCK_WALK_FLAG_META) == 0) &&
+        ((a_flags & TSK_FS_BLOCK_WALK_FLAG_CONT) == 0)) {
+            a_flags = (TSK_FS_BLOCK_WALK_FLAG_ENUM)
+                (a_flags | TSK_FS_BLOCK_WALK_FLAG_CONT | TSK_FS_BLOCK_WALK_FLAG_META);
+    }
+
+
+    if ((fs_block = tsk_fs_block_alloc(a_fs)) == NULL) {
+        return 1;
+    }
+
+    for (addr = a_start_blk; addr <= a_end_blk; addr++) {
+        int retval;
+        int myflags;
+
+        myflags = yaffsfs_block_getflags(a_fs, addr);
+
+        // test if we should call the callback with this one
+        if ((myflags & TSK_FS_BLOCK_FLAG_META)
+            && (!(a_flags & TSK_FS_BLOCK_WALK_FLAG_META)))
+            continue;
+        else if ((myflags & TSK_FS_BLOCK_FLAG_CONT)
+            && (!(a_flags & TSK_FS_BLOCK_WALK_FLAG_CONT)))
+            continue;
+        else if ((myflags & TSK_FS_BLOCK_FLAG_ALLOC)
+            && (!(a_flags & TSK_FS_BLOCK_WALK_FLAG_ALLOC)))
+            continue;
+        else if ((myflags & TSK_FS_BLOCK_FLAG_UNALLOC)
+            && (!(a_flags & TSK_FS_BLOCK_WALK_FLAG_UNALLOC)))
+            continue;
+
+        if (tsk_fs_block_get(a_fs, fs_block, addr) == NULL) {
+            tsk_error_set_errstr2("yaffsfs_block_walk: block %" PRIuDADDR,
+                addr);
+            tsk_fs_block_free(fs_block);
+            return 1;
+        }
+
+        retval = a_action(fs_block, a_ptr);
+        if (retval == TSK_WALK_STOP) {
+            break;
+        }
+        else if (retval == TSK_WALK_ERROR) {
+            tsk_fs_block_free(fs_block);
+            return 1;
+        }
+    }
+
+    /*
+    * Cleanup.
+    */
+    tsk_fs_block_free(fs_block);
+    return 0;
+}
+
+static uint8_t
+    yaffsfs_fscheck(TSK_FS_INFO * fs, FILE * hFile)
+{
+    tsk_error_reset();
+    tsk_error_set_errno(TSK_ERR_FS_UNSUPFUNC);
+    tsk_error_set_errstr("fscheck not implemented yet for YAFFS");
+    return 1;
+}
+
+
+/**
+* Print details about the file system to a file handle.
+*
+* @param fs File system to print details on
+* @param hFile File handle to print text to
+*
+* @returns 1 on error and 0 on success
+*/
+static uint8_t
+    yaffsfs_fsstat(TSK_FS_INFO * fs, FILE * hFile)
+{
+    YAFFSFS_INFO *yfs = (YAFFSFS_INFO *) fs;
+    unsigned int obj_count, version_count;
+    uint32_t obj_first, obj_last, version_first, version_last;
+
+    // clean up any error messages that are lying around
+    tsk_error_reset();
+
+    tsk_fprintf(hFile, "FILE SYSTEM INFORMATION\n");
+    tsk_fprintf(hFile, "--------------------------------------------\n");
+
+    tsk_fprintf(hFile, "File System Type: YAFFS2\n");
+    tsk_fprintf(hFile, "Page Size: %u\n", yfs->page_size);
+    tsk_fprintf(hFile, "Spare Size: %u\n", yfs->spare_size);
+    tsk_fprintf(hFile, "Spare Offsets: Sequence number: %d, Object ID: %d, Chunk ID: %d, nBytes: %d\n",
+        yfs->spare_seq_offset, yfs->spare_obj_id_offset, yfs->spare_chunk_id_offset, yfs->spare_nbytes_offset);
+
+    tsk_fprintf(hFile, "\nMETADATA INFORMATION\n");
+    tsk_fprintf(hFile, "--------------------------------------------\n");
+
+
+    yaffscache_objects_stats(yfs, 
+        &obj_count, &obj_first, &obj_last,
+        &version_count, &version_first, &version_last);
+
+    tsk_fprintf(hFile, "Number of Allocated Objects: %u\n", obj_count);
+    tsk_fprintf(hFile, "Object Id Range: %" PRIu32 " - %" PRIu32 "\n",
+        obj_first, obj_last);
+    tsk_fprintf(hFile, "Number of Total Object Versions: %u\n", version_count);
+    tsk_fprintf(hFile, "Object Version Range: %" PRIu32 " - %" PRIu32 "\n",
+        version_first, version_last);
+
+    return 0;
+}
+
+/************************* istat *******************************/
+
+typedef struct {
+    FILE *hFile;
+    int idx;
+} YAFFSFS_PRINT_ADDR;
+
+/* Callback for istat to print the block addresses */
+static TSK_WALK_RET_ENUM
+    print_addr_act(YAFFSFS_INFO * fs_file, TSK_OFF_T a_off, TSK_DADDR_T addr,
+    char *buf, size_t size, TSK_FS_BLOCK_FLAG_ENUM flags, void *a_ptr)
+{
+    YAFFSFS_PRINT_ADDR *print = (YAFFSFS_PRINT_ADDR *) a_ptr;
+
+    if (flags & TSK_FS_BLOCK_FLAG_CONT) {
+        tsk_fprintf(print->hFile, "%" PRIuDADDR " ", addr);
+
+        if (++(print->idx) == 8) {
+            tsk_fprintf(print->hFile, "\n");
+            print->idx = 0;
+        }
+    }
+
+    return TSK_WALK_CONT;
+}
+
+/**
+* Print details on a specific file to a file handle.
+*
+* @param fs File system file is located in
+* @param hFile File handle to print text to
+* @param inum Address of file in file system
+* @param numblock The number of blocks in file to force print (can go beyond file size)
+* @param sec_skew Clock skew in seconds to also print times in
+*
+* @returns 1 on error and 0 on success
+*/
+static uint8_t
+    yaffsfs_istat(TSK_FS_INFO *fs, FILE * hFile, TSK_INUM_T inum,
+    TSK_DADDR_T numblock, int32_t sec_skew)
+{
+    TSK_FS_META *fs_meta;
+    TSK_FS_FILE *fs_file;
+    YAFFSFS_INFO *yfs = (YAFFSFS_INFO *)fs;
+    char ls[12];
+    YAFFSFS_PRINT_ADDR print;
+    char timeBuf[32];
+    YaffsCacheObject * obj = NULL;
+    YaffsCacheVersion * version = NULL;
+    YaffsHeader * header = NULL;
+
+    yaffscache_version_find_by_inode(yfs, inum, &version, &obj);
+
+    if ((fs_file = tsk_fs_file_open_meta(fs, NULL, inum)) == NULL) {
+        return 1;
+    }
+    fs_meta = fs_file->meta;
+
+    tsk_fprintf(hFile, "inode: %" PRIuINUM "\n", inum);
+    tsk_fprintf(hFile, "%sAllocated\n",
+        (fs_meta->flags & TSK_FS_META_FLAG_ALLOC) ? "" : "Not ");
+
+    if (fs_meta->link)
+        tsk_fprintf(hFile, "symbolic link to: %s\n", fs_meta->link);
+
+    tsk_fprintf(hFile, "uid / gid: %" PRIuUID " / %" PRIuGID "\n",
+        fs_meta->uid, fs_meta->gid);
+
+    tsk_fs_meta_make_ls(fs_meta, ls, sizeof(ls));
+    tsk_fprintf(hFile, "mode: %s\n", ls);
+
+    tsk_fprintf(hFile, "size: %" PRIuOFF "\n", fs_meta->size);
+    tsk_fprintf(hFile, "num of links: %d\n", fs_meta->nlink);
+
+    if(version != NULL){
+        yaffsfs_read_header(yfs, &header, version->ycv_header_chunk->ycc_offset);
+        if(header != NULL){
+            tsk_fprintf(hFile, "Name: %s\n", header->name);
+        }
+    }
+
+    if (sec_skew != 0) {
+        tsk_fprintf(hFile, "\nAdjusted Inode Times:\n");
+        fs_meta->mtime -= sec_skew;
+        fs_meta->atime -= sec_skew;
+        fs_meta->ctime -= sec_skew;
+
+        tsk_fprintf(hFile, "Accessed:\t%s\n",
+            tsk_fs_time_to_str(fs_meta->atime, timeBuf));
+        tsk_fprintf(hFile, "File Modified:\t%s\n",
+            tsk_fs_time_to_str(fs_meta->mtime, timeBuf));
+        tsk_fprintf(hFile, "Inode Modified:\t%s\n",
+            tsk_fs_time_to_str(fs_meta->ctime, timeBuf));
+
+        fs_meta->mtime += sec_skew;
+        fs_meta->atime += sec_skew;
+        fs_meta->ctime += sec_skew;
+
+        tsk_fprintf(hFile, "\nOriginal Inode Times:\n");
+    }
+    else {
+        tsk_fprintf(hFile, "\nInode Times:\n");
+    }
+
+    tsk_fprintf(hFile, "Accessed:\t%s\n",
+        tsk_fs_time_to_str(fs_meta->atime, timeBuf));
+    tsk_fprintf(hFile, "File Modified:\t%s\n",
+        tsk_fs_time_to_str(fs_meta->mtime, timeBuf));
+    tsk_fprintf(hFile, "Inode Modified:\t%s\n",
+        tsk_fs_time_to_str(fs_meta->ctime, timeBuf));
+
+    if(version != NULL){
+        tsk_fprintf(hFile, "\nHeader Chunk:\n");
+        tsk_fprintf(hFile, "%" PRIuDADDR "\n", (version->ycv_header_chunk->ycc_offset / (yfs->page_size + yfs->spare_size)));
+    }
+
+    if (numblock > 0) {
+        TSK_OFF_T lower_size = numblock * fs->block_size;
+        fs_meta->size = (lower_size < fs_meta->size)?(lower_size):(fs_meta->size);
+    }
+    tsk_fprintf(hFile, "\nData Chunks:\n");
+
+    print.idx = 0;
+    print.hFile = hFile;
+
+    if (tsk_fs_file_walk(fs_file, TSK_FS_FILE_WALK_FLAG_AONLY,
+        (TSK_FS_FILE_WALK_CB) print_addr_act, (void *) &print)) {
+            tsk_fprintf(hFile, "\nError reading file:  ");
+            tsk_error_print(hFile);
+            tsk_error_reset();
+    }
+    else if (print.idx != 0) {
+        tsk_fprintf(hFile, "\n");
+    }
+
+    tsk_fs_file_close(fs_file);
+
+    return 0;
+}
+
+/* yaffsfs_close - close an yaffsfs file system */
+static void
+    yaffsfs_close(TSK_FS_INFO *fs)
+{
+    YAFFSFS_INFO *yfs = (YAFFSFS_INFO *)fs;
+
+    fs->tag = 0;
+
+    // TODO: Walk and free the cache structures
+    yaffscache_objects_free(yfs);
+    yaffscache_chunks_free(yfs);
+
+    //tsk_deinit_lock(&yaffsfs->lock);
+
+    tsk_fs_free(fs);
+}
+
+typedef struct _dir_open_cb_args {
+    YAFFSFS_INFO *yfs;
+    TSK_FS_DIR *dir;
+    TSK_INUM_T parent_addr;
+} dir_open_cb_args;
+
+static TSK_RETVAL_ENUM
+    yaffs_dir_open_meta_cb(YaffsCacheObject *obj, YaffsCacheVersion *version, void *args) {
+        dir_open_cb_args *cb_args = (dir_open_cb_args *) args;
+        YaffsCacheChunk *chunk = version->ycv_header_chunk;
+        TSK_INUM_T curr_inode = 0;
+        uint32_t obj_id = chunk->ycc_obj_id;
+        uint32_t chunk_id = chunk->ycc_chunk_id;
+        uint32_t vnum = version->ycv_version;
+        YaffsHeader *header = NULL;
+        TSK_FS_NAME * fs_name;
+        char version_string[64];
+
+        yaffscache_obj_id_and_version_to_inode(obj_id, vnum, &curr_inode);
+
+        if (chunk_id != 0) {
+            return TSK_ERR;
+        }
+
+        if (tsk_verbose)
+            fprintf(stderr, "dir_open_find_children_cb: %08" PRIxINUM " -> %08" PRIx32 ":%d\n", cb_args->parent_addr, obj_id, vnum);
+
+
+        if (yaffsfs_read_header(cb_args->yfs, &header, chunk->ycc_offset) != TSK_OK) {
+            return TSK_ERR;
+        }
+
+        if ((fs_name = tsk_fs_name_alloc(YAFFSFS_MAXNAMLEN + 64, 0)) == NULL) {
+            free(header);
+            return TSK_ERR;
+        }
+
+        switch (obj_id) {
+        case YAFFS_OBJECT_LOSTNFOUND:
+            strncpy(fs_name->name, YAFFS_OBJECT_LOSTNFOUND_NAME,
+                fs_name->name_size - 64);
+            break;
+        case YAFFS_OBJECT_UNLINKED:
+            strncpy(fs_name->name, YAFFS_OBJECT_UNLINKED_NAME,
+                fs_name->name_size - 64);
+            break;
+        case YAFFS_OBJECT_DELETED:
+            strncpy(fs_name->name, YAFFS_OBJECT_DELETED_NAME,
+                fs_name->name_size - 64);
+            break;
+        default:
+            strncpy(fs_name->name, header->name, fs_name->name_size - 64);
+            break;
+        }
+        fs_name->name[fs_name->name_size - 65] = 0;
+
+        // Only put object/version string onto unallocated versions
+        if(! yaffs_is_version_allocated(cb_args->yfs, curr_inode)){ 
+            snprintf(version_string, 64, "#%d,%d", obj_id, vnum); 
+            strncat(fs_name->name, version_string, 31);
+            fs_name->flags = TSK_FS_NAME_FLAG_UNALLOC;
+        }
+        else{
+            fs_name->flags = TSK_FS_NAME_FLAG_ALLOC;
+        }
+
+        fs_name->meta_addr = curr_inode;
+
+        switch (header->obj_type) {
+        case YAFFS_TYPE_FILE:
+            fs_name->type = TSK_FS_NAME_TYPE_REG;
+            break;
+
+        case YAFFS_TYPE_DIRECTORY:
+            fs_name->type = TSK_FS_NAME_TYPE_DIR;
+            break;
+
+        case YAFFS_TYPE_SOFTLINK:
+        case YAFFS_TYPE_HARDLINK:
+            fs_name->type = TSK_FS_NAME_TYPE_LNK;
+            break;
+
+        case YAFFS_TYPE_SPECIAL:
+            fs_name->type = TSK_FS_NAME_TYPE_UNDEF; // Could be a socket
+            break;
+
+        default:
+            if (tsk_verbose)
+                fprintf(stderr, "yaffs_dir_open_meta_cb: unhandled object type\n");
+            fs_name->type = TSK_FS_NAME_TYPE_UNDEF;
+            break;
+        }
+
+        free(header);
+
+        if (tsk_fs_dir_add(cb_args->dir, fs_name)) {
+            tsk_fs_name_free(fs_name);
+            return TSK_ERR;
+        }
+
+        /* A copy is made in tsk_fs_dir_add, so we can free this one */
+        tsk_fs_name_free(fs_name);
+
+        return TSK_OK;
+}
+
+static TSK_RETVAL_ENUM
+    yaffsfs_dir_open_meta(TSK_FS_INFO *a_fs, TSK_FS_DIR ** a_fs_dir,
+    TSK_INUM_T a_addr)
+{
+    TSK_FS_DIR *fs_dir;
+    TSK_FS_NAME *fs_name;
+    YAFFSFS_INFO *yfs = (YAFFSFS_INFO *)a_fs;
+    int should_walk_children = 0;
+    uint32_t obj_id;
+    uint32_t ver_number;
+
+    if (a_addr < a_fs->first_inum || a_addr > a_fs->last_inum) { 
+        tsk_error_reset();
+        tsk_error_set_errno(TSK_ERR_FS_WALK_RNG);
+        tsk_error_set_errstr("yaffs_dir_open_meta: Invalid inode value: %"
+            PRIuINUM, a_addr);
+        return TSK_ERR;
+    }
+    else if (a_fs_dir == NULL) {
+        tsk_error_reset();
+        tsk_error_set_errno(TSK_ERR_FS_ARG);
+        tsk_error_set_errstr("yaffs_dir_open_meta: NULL fs_dir argument given");
+        return TSK_ERR;
+    }
+
+    fs_dir = *a_fs_dir;
+
+    if (fs_dir) {
+        tsk_fs_dir_reset(fs_dir);
+    }
+    else if ((*a_fs_dir = fs_dir = tsk_fs_dir_alloc(a_fs, a_addr, 128)) == NULL) {
+        return TSK_ERR;
+    }
+
+    if (tsk_verbose)
+        fprintf(stderr,"yaffs_dir_open_meta: called for directory %" PRIu32 "\n", (uint32_t) a_addr);
+
+    //  handle the orphan directory if its contents were requested
+    if (a_addr == TSK_FS_ORPHANDIR_INUM(a_fs)) {
+        return tsk_fs_dir_find_orphans(a_fs, fs_dir);
+    }
+
+    if ((fs_name = tsk_fs_name_alloc(YAFFSFS_MAXNAMLEN, 0)) == NULL) {
+        return TSK_ERR;
+    }
+
+    if ((fs_dir->fs_file = 
+        tsk_fs_file_open_meta(a_fs, NULL, a_addr)) == NULL) {
+            tsk_error_errstr2_concat(" - yaffs_dir_open_meta");
+            tsk_fs_name_free(fs_name);
+            return TSK_ERR;
+    }
+
+    yaffscache_inode_to_obj_id_and_version(a_addr, &obj_id, &ver_number);
+
+    // Decide if we should walk the directory structure
+    if (obj_id == YAFFS_OBJECT_DELETED ||
+        obj_id == YAFFS_OBJECT_UNLINKED) {
+            should_walk_children = 1;
+    }
+    else {
+        YaffsCacheObject *obj;
+        YaffsCacheVersion *version;
+        TSK_RETVAL_ENUM result = yaffscache_version_find_by_inode(yfs, a_addr, &version, &obj);
+        if (result != TSK_OK) {
+            if (tsk_verbose)
+                tsk_fprintf(stderr, "yaffsfs_dir_open_meta: yaffscache_version_find_by_inode failed! (inode: %d\n", a_addr);
+            tsk_fs_name_free(fs_name);
+            return TSK_ERR;
+        }
+
+        /* Only attach files onto the latest version of the directory */
+        should_walk_children = (obj->yco_latest == version);
+    }
+
+    if (should_walk_children) {
+        dir_open_cb_args args;
+        args.yfs = yfs;
+        args.dir = fs_dir;
+        args.parent_addr = a_addr;
+        yaffscache_find_children(yfs, a_addr, yaffs_dir_open_meta_cb, &args);
+    }
+
+    if (obj_id == YAFFS_OBJECT_ROOT) {
+        strncpy(fs_name->name, YAFFS_OBJECT_UNLINKED_NAME, fs_name->name_size);
+        fs_name->meta_addr = YAFFS_OBJECT_UNLINKED;
+        fs_name->type = TSK_FS_NAME_TYPE_DIR;
+        fs_name->flags = TSK_FS_NAME_FLAG_ALLOC;
+        if (tsk_fs_dir_add(fs_dir, fs_name)) {
+            tsk_fs_name_free(fs_name);
+            return TSK_ERR;
+        }
+
+        strncpy(fs_name->name, YAFFS_OBJECT_DELETED_NAME, fs_name->name_size);
+        fs_name->meta_addr = YAFFS_OBJECT_DELETED;
+        fs_name->type = TSK_FS_NAME_TYPE_DIR;
+        fs_name->flags = TSK_FS_NAME_FLAG_ALLOC;
+        if (tsk_fs_dir_add(fs_dir, fs_name)) {
+            tsk_fs_name_free(fs_name);
+            return TSK_ERR;
+        }
+
+        // orphan directory
+        if (tsk_fs_dir_make_orphan_dir_name(a_fs, fs_name)) {
+            tsk_fs_name_free(fs_name);
+            return TSK_ERR;
+        }
+        fs_name->meta_addr = yfs->fs_info.last_inum;
+        fs_name->type = TSK_FS_NAME_TYPE_DIR;
+        fs_name->flags = TSK_FS_NAME_FLAG_ALLOC;
+        if (tsk_fs_dir_add(fs_dir, fs_name)) {
+            tsk_fs_name_free(fs_name);
+            return TSK_ERR;
+        }
+    }
+
+    tsk_fs_name_free(fs_name);
+    return TSK_OK;
+}
+
+static TSK_FS_ATTR_TYPE_ENUM
+    yaffsfs_get_default_attr_type(const TSK_FS_FILE * a_file)
+{
+    return TSK_FS_ATTR_TYPE_DEFAULT;
+}
+
+static uint8_t
+    yaffsfs_load_attrs(TSK_FS_FILE *file)
+{
+    TSK_FS_ATTR *attr;
+    TSK_FS_META *meta;
+    TSK_FS_INFO *fs;
+    YAFFSFS_INFO *yfs;
+    TSK_FS_ATTR_RUN *data_run;
+    TSK_DADDR_T file_block_count;
+    YaffsCacheObject *obj;
+    YaffsCacheVersion *version;
+    TSK_RETVAL_ENUM result;
+    TSK_LIST *chunks_seen = NULL;
+    YaffsCacheChunk *curr;
+    TSK_FS_ATTR_RUN *data_run_new;
+
+    if (file == NULL || file->meta == NULL || file->fs_info == NULL)
+    {
+        tsk_error_set_errno(TSK_ERR_FS_ARG);
+        tsk_error_set_errstr
+            ("yaffsfs_load_attrs: called with NULL pointers");
+        return 1;
+    }
+
+    meta = file->meta;
+    yfs = (YAFFSFS_INFO *)file->fs_info;
+    fs = &yfs->fs_info;
+
+    // see if we have already loaded the runs
+    if ((meta->attr != NULL)
+        && (meta->attr_state == TSK_FS_META_ATTR_STUDIED)) {
+            return 0;
+    }
+    else if (meta->attr_state == TSK_FS_META_ATTR_ERROR) {
+        return 1;
+    }
+    // not sure why this would ever happen, but...
+    else if (meta->attr != NULL) {
+        tsk_fs_attrlist_markunused(meta->attr);
+    }
+    else if (meta->attr == NULL) {
+        meta->attr = tsk_fs_attrlist_alloc();
+    }
+
+    attr = tsk_fs_attrlist_getnew(meta->attr, TSK_FS_ATTR_NONRES);
+    if (attr == NULL) {
+        meta->attr_state = TSK_FS_META_ATTR_ERROR;
+        return 1;
+    }
+
+    data_run = tsk_fs_attr_run_alloc();
+    if (data_run == NULL) {
+        tsk_fs_attr_run_free(data_run);
+        meta->attr_state = TSK_FS_META_ATTR_ERROR;
+        return 1;
+    }
+
+    data_run->offset = 0;
+    data_run->addr = 0;
+    data_run->len = (meta->size + fs->block_size - 1) / fs->block_size;
+    data_run->flags = TSK_FS_ATTR_RUN_FLAG_FILLER;
+
+    file_block_count = data_run->len;
+
+    // initialize the data run
+    if (tsk_fs_attr_set_run(file, attr, data_run, NULL,
+        TSK_FS_ATTR_TYPE_DEFAULT, TSK_FS_ATTR_ID_DEFAULT,
+        meta->size, meta->size, roundup(meta->size, fs->block_size), (TSK_FS_ATTR_FLAG_ENUM)0, 0)) {
+            meta->attr_state = TSK_FS_META_ATTR_ERROR;
+            return 1;
+    }
+
+    /* Walk the version pointer back to the start adding single
+    * block runs as we go.
+    */
+
+    result = yaffscache_version_find_by_inode(yfs, meta->addr, &version, &obj);
+    if (result != TSK_OK || version == NULL) {
+        if (tsk_verbose)
+            tsk_fprintf(stderr, "yaffsfs_load_attrs: yaffscache_version_find_by_inode failed!\n");
+        meta->attr_state = TSK_FS_META_ATTR_ERROR;
+        return 1;
+    }
+
+    if (tsk_verbose)
+        yaffscache_object_dump(stderr, obj);
+
+    curr = version->ycv_last_chunk;
+    while (curr != NULL && curr->ycc_obj_id == obj->yco_obj_id) {
+
+        if (curr->ycc_chunk_id == 0) {
+            if (tsk_verbose)
+                tsk_fprintf(stderr, "yaffsfs_load_attrs: skipping header chunk\n");
+        }
+        else if (tsk_list_find(chunks_seen, curr->ycc_chunk_id)) {
+            if (tsk_verbose)
+                tsk_fprintf(stderr, "yaffsfs_load_attrs: skipping duplicate chunk\n");
+        }
+        else if (curr->ycc_chunk_id > file_block_count) {
+            if (tsk_verbose)
+                tsk_fprintf(stderr, "yaffsfs_load_attrs: skipping chunk past end\n");
+        }
+        else {
+            if (tsk_list_add(&chunks_seen, curr->ycc_chunk_id)) {
+                meta->attr_state = TSK_FS_META_ATTR_ERROR;
+                tsk_list_free(chunks_seen);
+                chunks_seen = NULL;
+                return 1;
+            }
+
+            data_run_new = tsk_fs_attr_run_alloc();
+            if (data_run_new == NULL) {
+                tsk_fs_attr_run_free(data_run_new);
+                meta->attr_state = TSK_FS_META_ATTR_ERROR;
+                return 1;
+            }
+
+            data_run_new->offset = (curr->ycc_chunk_id - 1);
+            data_run_new->addr = curr->ycc_offset / (fs->block_pre_size + fs->block_size + fs->block_post_size);
+            data_run_new->len = 1;
+            data_run_new->flags = TSK_FS_ATTR_RUN_FLAG_NONE;
+
+            if (tsk_verbose)
+                tsk_fprintf(stderr, "yaffsfs_load_attrs: @@@ Chunk %d : %08x is at offset 0x%016llx\n",
+                curr->ycc_chunk_id, curr->ycc_seq_number, curr->ycc_offset);
+
+            tsk_fs_attr_add_run(fs, attr, data_run_new);
+        }
+
+        curr = curr->ycc_prev;
+    }
+
+    tsk_list_free(chunks_seen);
+    meta->attr_state = TSK_FS_META_ATTR_STUDIED;
+    return 0;
+}
+
+static uint8_t 
+    yaffsfs_jentry_walk(TSK_FS_INFO *info, int entry,
+    TSK_FS_JENTRY_WALK_CB cb, void *fn)
+{
+    tsk_error_reset();
+    tsk_error_set_errno(TSK_ERR_FS_UNSUPFUNC);
+    tsk_error_set_errstr("Journal support for YAFFS is not implemented");
+    return 1;
+}
+
+static uint8_t 
+    yaffsfs_jblk_walk(TSK_FS_INFO *info, TSK_DADDR_T daddr,
+    TSK_DADDR_T daddrt, int entry, TSK_FS_JBLK_WALK_CB cb, void *fn)
+{
+    tsk_error_reset();
+    tsk_error_set_errno(TSK_ERR_FS_UNSUPFUNC);
+    tsk_error_set_errstr("Journal support for YAFFS is not implemented");
+    return 1;
+}
+
+static uint8_t 
+    yaffsfs_jopen(TSK_FS_INFO *info, TSK_INUM_T inum)
+{
+    tsk_error_reset();
+    tsk_error_set_errno(TSK_ERR_FS_UNSUPFUNC);
+    tsk_error_set_errstr("Journal support for YAFFS is not implemented");
+    return 1;
+}
+
+/**
+* \internal
+* Open part of a disk image as a Yaffs/2 file system.
+*
+* @param img_info Disk image to analyze
+* @param offset Byte offset where file system starts
+* @param ftype Specific type of file system
+* @param test Going to use this - 1 if we're doing auto-detect, 0 if not (display more verbose messages if the user specified YAFFS2)
+* @returns NULL on error or if data is not an Yaffs/3 file system
+*/
+TSK_FS_INFO *
+    yaffs2_open(TSK_IMG_INFO * img_info, TSK_OFF_T offset,
+    TSK_FS_TYPE_ENUM ftype, uint8_t test)
+{
+    YAFFSFS_INFO *yaffsfs;
+    TSK_FS_INFO *fs;
+    const unsigned int psize = img_info->page_size;
+    const unsigned int ssize = img_info->spare_size;
+    YaffsHeader * first_header = NULL;
+    TSK_FS_DIR *test_dir;
+
+    // clean up any error messages that are lying around
+    tsk_error_reset();
+
+    if (TSK_FS_TYPE_ISYAFFS2(ftype) == 0) {
+        tsk_error_reset();
+        tsk_error_set_errno(TSK_ERR_FS_ARG);
+        tsk_error_set_errstr("Invalid FS Type in yaffsfs_open");
+        return NULL;
+    }
+
+    if ((yaffsfs = (YAFFSFS_INFO *) tsk_fs_malloc(sizeof(YAFFSFS_INFO))) == NULL)
+        return NULL;
+
+    yaffsfs->page_size = psize == 0 ? YAFFS_DEFAULT_PAGE_SIZE : psize;
+    yaffsfs->spare_size = ssize == 0 ? YAFFS_DEFAULT_SPARE_SIZE : ssize;
+    yaffsfs->chunks_per_block = 64;
+    yaffsfs->chunkMap = new std::map<uint32_t, YaffsCacheChunkGroup>;
+    yaffsfs->max_obj_id = 1;
+    yaffsfs->max_version = 0;
+
+    // Keep track of whether we're doing auto-detection of the file system
+    if(test){
+        yaffsfs->autoDetect = 1;
+    }
+    else{
+        yaffsfs->autoDetect = 0;
+    }
+
+    fs = &(yaffsfs->fs_info);
+
+    fs->tag = TSK_FS_INFO_TAG;
+    fs->ftype = ftype;
+    fs->flags = (TSK_FS_INFO_FLAG_ENUM)0;
+    fs->img_info = img_info;
+    fs->offset = offset;
+    fs->endian = TSK_LIT_ENDIAN;
+
+    // Determine the layout of the spare area
+    if(yaffs_initialize_spare_format(yaffsfs)){
+        tsk_error_reset();
+        tsk_error_set_errno(TSK_ERR_FS_MAGIC);
+        tsk_error_set_errstr("not a YAFFS file system (bad spare format)");
+        if (tsk_verbose)
+            fprintf(stderr, "yaffsfs_open: could not find valid spare area format\n");
+        return NULL;
+    }
+
+    /*
+    * Read the first record, make sure it's a valid header...
+    *
+    * Used for verification and autodetection of
+    * the FS type.
+    */
+    if (yaffsfs_read_header(yaffsfs, &first_header, 0)) {
+        tsk_error_reset();
+        tsk_error_set_errno(TSK_ERR_FS_MAGIC);
+        tsk_error_set_errstr("not a YAFFS file system (first record)");
+        if (tsk_verbose)
+            fprintf(stderr, "yaffsfs_open: invalid first record\n");
+        return NULL;
+    }
+    free(first_header);
+
+    fs->duname = "Chunk";
+
+    /*
+    * Calculate the meta data info
+    */
+    //fs->last_inum = 0xffffffff; // Will update this as we go
+    fs->last_inum = 0;
+    fs->root_inum = YAFFS_OBJECT_ROOT;
+    fs->first_inum = YAFFS_OBJECT_FIRST;
+    //fs->inum_count = fs->last_inum; // For now this will be the last_inum - 1 (after we calculate it)
+
+    /*
+    * Calculate the block info
+    */
+    fs->dev_bsize = img_info->sector_size;
+    fs->block_size = yaffsfs->page_size;
+    fs->block_pre_size = 0;
+    fs->block_post_size = yaffsfs->spare_size;
+    fs->block_count = img_info->size / (fs->block_pre_size + fs->block_size + fs->block_post_size);
+    fs->first_block = 0;
+    fs->last_block_act = fs->last_block = fs->block_count ? fs->block_count - 1 : 0;
+
+    /* Set the generic function pointers */
+    fs->inode_walk = yaffsfs_inode_walk;
+    fs->block_walk = yaffsfs_block_walk;
+    fs->block_getflags = yaffsfs_block_getflags;
+
+    fs->get_default_attr_type = yaffsfs_get_default_attr_type;
+    fs->load_attrs = yaffsfs_load_attrs;
+
+    fs->file_add_meta = yaffs_inode_lookup;
+    fs->dir_open_meta = yaffsfs_dir_open_meta;
+    fs->fsstat = yaffsfs_fsstat;
+    fs->fscheck = yaffsfs_fscheck;
+    fs->istat = yaffsfs_istat;
+    fs->name_cmp = tsk_fs_unix_name_cmp;
+
+    fs->close = yaffsfs_close;
+
+    /* Journal */
+    fs->jblk_walk = yaffsfs_jblk_walk;
+    fs->jentry_walk = yaffsfs_jentry_walk;
+    fs->jopen = yaffsfs_jopen;
+
+    /* Initialize the caches */
+    if (tsk_verbose)
+        fprintf(stderr, "yaffsfs_open: building cache...\n");
+
+    /* Build cache */
+    /* NOTE: The only modifications to the cache happen here, during at 
+    *       the open. Should be fine with no lock, even if access to the
+    *       cache is shared among threads.
+    */
+    //tsk_init_lock(&yaffsfs->lock);
+    yaffsfs->cache_objects = NULL;
+    yaffsfs_cache_fs(yaffsfs);
+
+    if (tsk_verbose) {
+        fprintf(stderr, "yaffsfs_open: done building cache!\n");
+        //yaffscache_objects_dump(yaffsfs, stderr);
+    }
+    fflush(stderr);
+
+    // Update the number of inums now that we've read in the file system
+    fs->inum_count = fs->last_inum - 1;
+
+    test_dir = tsk_fs_dir_open_meta(fs, fs->root_inum);
+    if (test_dir == NULL) {
+        yaffsfs_close(fs);
+
+        tsk_error_reset();
+        tsk_error_set_errno(TSK_ERR_FS_MAGIC);
+        tsk_error_set_errstr("not a YAFFS file system (no root directory)");
+        if (tsk_verbose)
+            fprintf(stderr, "yaffsfs_open: invalid file system\n");
+        return NULL;
+    }
+    tsk_fs_dir_close(test_dir);
+
+    return fs;
+}
+
diff --git a/tsk3/hashdb/.indent.pro b/tsk/hashdb/.indent.pro
similarity index 100%
rename from tsk3/hashdb/.indent.pro
rename to tsk/hashdb/.indent.pro
diff --git a/tsk3/hashdb/Makefile.am b/tsk/hashdb/Makefile.am
similarity index 100%
rename from tsk3/hashdb/Makefile.am
rename to tsk/hashdb/Makefile.am
diff --git a/tsk3/hashdb/encase_index.c b/tsk/hashdb/encase_index.c
similarity index 100%
rename from tsk3/hashdb/encase_index.c
rename to tsk/hashdb/encase_index.c
diff --git a/tsk3/hashdb/hk_index.c b/tsk/hashdb/hk_index.c
similarity index 100%
rename from tsk3/hashdb/hk_index.c
rename to tsk/hashdb/hk_index.c
diff --git a/tsk3/hashdb/idxonly_index.c b/tsk/hashdb/idxonly_index.c
similarity index 100%
rename from tsk3/hashdb/idxonly_index.c
rename to tsk/hashdb/idxonly_index.c
diff --git a/tsk3/hashdb/md5sum_index.c b/tsk/hashdb/md5sum_index.c
similarity index 100%
rename from tsk3/hashdb/md5sum_index.c
rename to tsk/hashdb/md5sum_index.c
diff --git a/tsk3/hashdb/nsrl_index.c b/tsk/hashdb/nsrl_index.c
similarity index 100%
rename from tsk3/hashdb/nsrl_index.c
rename to tsk/hashdb/nsrl_index.c
diff --git a/tsk3/hashdb/tm_lookup.c b/tsk/hashdb/tm_lookup.c
similarity index 100%
rename from tsk3/hashdb/tm_lookup.c
rename to tsk/hashdb/tm_lookup.c
diff --git a/tsk3/hashdb/tsk_hashdb.h b/tsk/hashdb/tsk_hashdb.h
similarity index 100%
rename from tsk3/hashdb/tsk_hashdb.h
rename to tsk/hashdb/tsk_hashdb.h
diff --git a/tsk3/hashdb/tsk_hashdb_i.h b/tsk/hashdb/tsk_hashdb_i.h
similarity index 99%
rename from tsk3/hashdb/tsk_hashdb_i.h
rename to tsk/hashdb/tsk_hashdb_i.h
index fa4c5c3475cc559aa13bfb952faf10d8d7d21aa7..b6066f03d27be1175c9ece9d801350f5d9ff0d56 100644
--- a/tsk3/hashdb/tsk_hashdb_i.h
+++ b/tsk/hashdb/tsk_hashdb_i.h
@@ -16,7 +16,7 @@
 
 
 // Include the other internal TSK header files
-#include "tsk3/base/tsk_base_i.h"
+#include "tsk/base/tsk_base_i.h"
 
 // include the external header file
 #include "tsk_hashdb.h"
diff --git a/tsk3/img/.indent.pro b/tsk/img/.indent.pro
similarity index 100%
rename from tsk3/img/.indent.pro
rename to tsk/img/.indent.pro
diff --git a/tsk3/img/Makefile.am b/tsk/img/Makefile.am
similarity index 100%
rename from tsk3/img/Makefile.am
rename to tsk/img/Makefile.am
diff --git a/tsk3/img/aff.c b/tsk/img/aff.c
similarity index 100%
rename from tsk3/img/aff.c
rename to tsk/img/aff.c
diff --git a/tsk3/img/aff.h b/tsk/img/aff.h
similarity index 100%
rename from tsk3/img/aff.h
rename to tsk/img/aff.h
diff --git a/tsk3/img/ewf.c b/tsk/img/ewf.c
similarity index 100%
rename from tsk3/img/ewf.c
rename to tsk/img/ewf.c
diff --git a/tsk3/img/ewf.h b/tsk/img/ewf.h
similarity index 100%
rename from tsk3/img/ewf.h
rename to tsk/img/ewf.h
diff --git a/tsk3/img/img_io.c b/tsk/img/img_io.c
similarity index 100%
rename from tsk3/img/img_io.c
rename to tsk/img/img_io.c
diff --git a/tsk3/img/img_open.c b/tsk/img/img_open.c
similarity index 100%
rename from tsk3/img/img_open.c
rename to tsk/img/img_open.c
diff --git a/tsk3/img/img_types.c b/tsk/img/img_types.c
similarity index 100%
rename from tsk3/img/img_types.c
rename to tsk/img/img_types.c
diff --git a/tsk3/img/mult_files.c b/tsk/img/mult_files.c
similarity index 100%
rename from tsk3/img/mult_files.c
rename to tsk/img/mult_files.c
diff --git a/tsk3/img/raw.c b/tsk/img/raw.c
similarity index 100%
rename from tsk3/img/raw.c
rename to tsk/img/raw.c
diff --git a/tsk3/img/raw.h b/tsk/img/raw.h
similarity index 100%
rename from tsk3/img/raw.h
rename to tsk/img/raw.h
diff --git a/tsk3/img/tsk_img.h b/tsk/img/tsk_img.h
similarity index 98%
rename from tsk3/img/tsk_img.h
rename to tsk/img/tsk_img.h
index 6586f9b3bcfad668df9c6d328e17d1abff965c80..c50de864737b504b277d95176fca5d4ef2dbcd4c 100644
--- a/tsk3/img/tsk_img.h
+++ b/tsk/img/tsk_img.h
@@ -83,6 +83,8 @@ extern "C" {
         TSK_IMG_TYPE_ENUM itype;        ///< Type of disk image format
         TSK_OFF_T size;         ///< Total size of image in bytes
         unsigned int sector_size;       ///< sector size of device in bytes (typically 512)
+        unsigned int page_size;         ///< page size of NAND page in bytes (defaults to 2048)
+        unsigned int spare_size;        ///< spare or OOB size of NAND in bytes (defaults to 64)
 
         tsk_lock_t cache_lock;  ///< Lock for cache and associated values
         char cache[TSK_IMG_INFO_CACHE_NUM][TSK_IMG_INFO_CACHE_LEN];     ///< read cache (r/w shared - lock) 
diff --git a/tsk3/img/tsk_img_i.h b/tsk/img/tsk_img_i.h
similarity index 96%
rename from tsk3/img/tsk_img_i.h
rename to tsk/img/tsk_img_i.h
index 7d5a58a9124b8f01757b73bf61ea1ab627d12d0b..ee8586bd5030e9a8882923d3a2bc94962ae7b848 100644
--- a/tsk3/img/tsk_img_i.h
+++ b/tsk/img/tsk_img_i.h
@@ -15,7 +15,7 @@
  */
 
 // include the base internal header file
-#include "tsk3/base/tsk_base_i.h"
+#include "tsk/base/tsk_base_i.h"
 
 // include the external disk image header file
 #include "tsk_img.h"
diff --git a/tsk/libtsk.h b/tsk/libtsk.h
new file mode 100644
index 0000000000000000000000000000000000000000..d5089125d28b6ec2f51b2b12ab30ff301777b285
--- /dev/null
+++ b/tsk/libtsk.h
@@ -0,0 +1,11 @@
+#ifndef _TSK_LIBTSK_H
+#define _TSK_LIBTSK_H
+
+#include "tsk/base/tsk_base.h"
+#include "tsk/img/tsk_img.h"
+#include "tsk/vs/tsk_vs.h"
+#include "tsk/fs/tsk_fs.h"
+#include "tsk/hashdb/tsk_hashdb.h"
+#include "tsk/auto/tsk_auto.h"
+
+#endif
diff --git a/tsk3/sorter/default.sort b/tsk/sorter/default.sort
similarity index 100%
rename from tsk3/sorter/default.sort
rename to tsk/sorter/default.sort
diff --git a/tsk3/sorter/freebsd.sort b/tsk/sorter/freebsd.sort
similarity index 100%
rename from tsk3/sorter/freebsd.sort
rename to tsk/sorter/freebsd.sort
diff --git a/tsk3/sorter/images.sort b/tsk/sorter/images.sort
similarity index 100%
rename from tsk3/sorter/images.sort
rename to tsk/sorter/images.sort
diff --git a/tsk3/sorter/linux.sort b/tsk/sorter/linux.sort
similarity index 100%
rename from tsk3/sorter/linux.sort
rename to tsk/sorter/linux.sort
diff --git a/tsk3/sorter/openbsd.sort b/tsk/sorter/openbsd.sort
similarity index 100%
rename from tsk3/sorter/openbsd.sort
rename to tsk/sorter/openbsd.sort
diff --git a/tsk3/sorter/solaris.sort b/tsk/sorter/solaris.sort
similarity index 100%
rename from tsk3/sorter/solaris.sort
rename to tsk/sorter/solaris.sort
diff --git a/tsk3/sorter/windows.sort b/tsk/sorter/windows.sort
similarity index 100%
rename from tsk3/sorter/windows.sort
rename to tsk/sorter/windows.sort
diff --git a/tsk3/tsk_config.h.in b/tsk/tsk_config.h.in
similarity index 98%
rename from tsk3/tsk_config.h.in
rename to tsk/tsk_config.h.in
index 9989c346a3a05890990d73ba55b92746e89b01fe..5a24f9971b681018f0229cfb94c69909312b3755 100644
--- a/tsk3/tsk_config.h.in
+++ b/tsk/tsk_config.h.in
@@ -1,4 +1,4 @@
-/* tsk3/tsk_config.h.in.  Generated from configure.ac by autoheader.  */
+/* tsk/tsk_config.h.in.  Generated from configure.ac by autoheader.  */
 
 /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
    systems. This function is required for `alloca.c' support on those systems.
diff --git a/tsk3/tsk_tools_i.h b/tsk/tsk_tools_i.h
similarity index 57%
rename from tsk3/tsk_tools_i.h
rename to tsk/tsk_tools_i.h
index 8d4deb9800bf4837dad6334171b3fe0213906ef6..50ae2ddb2462424f6cbfd4de10c2b7d296061eca 100644
--- a/tsk3/tsk_tools_i.h
+++ b/tsk/tsk_tools_i.h
@@ -5,11 +5,11 @@
  * instead of base.h so that we can get the _config defines.
  * This is to be used by the tools included with TSK (such as fls).
  */
-#include "tsk3/base/tsk_base_i.h"
-#include "tsk3/img/tsk_img.h"
-#include "tsk3/vs/tsk_vs.h"
-#include "tsk3/fs/tsk_fs.h"
-#include "tsk3/hashdb/tsk_hashdb.h"
-#include "tsk3/auto/tsk_auto.h"
+#include "tsk/base/tsk_base_i.h"
+#include "tsk/img/tsk_img.h"
+#include "tsk/vs/tsk_vs.h"
+#include "tsk/fs/tsk_fs.h"
+#include "tsk/hashdb/tsk_hashdb.h"
+#include "tsk/auto/tsk_auto.h"
 
 #endif
diff --git a/tsk3/vs/.indent.pro b/tsk/vs/.indent.pro
similarity index 100%
rename from tsk3/vs/.indent.pro
rename to tsk/vs/.indent.pro
diff --git a/tsk3/vs/Makefile.am b/tsk/vs/Makefile.am
similarity index 100%
rename from tsk3/vs/Makefile.am
rename to tsk/vs/Makefile.am
diff --git a/tsk3/vs/bsd.c b/tsk/vs/bsd.c
similarity index 100%
rename from tsk3/vs/bsd.c
rename to tsk/vs/bsd.c
diff --git a/tsk3/vs/dos.c b/tsk/vs/dos.c
similarity index 100%
rename from tsk3/vs/dos.c
rename to tsk/vs/dos.c
diff --git a/tsk3/vs/gpt.c b/tsk/vs/gpt.c
similarity index 100%
rename from tsk3/vs/gpt.c
rename to tsk/vs/gpt.c
diff --git a/tsk3/vs/mac.c b/tsk/vs/mac.c
similarity index 100%
rename from tsk3/vs/mac.c
rename to tsk/vs/mac.c
diff --git a/tsk3/vs/mm_io.c b/tsk/vs/mm_io.c
similarity index 100%
rename from tsk3/vs/mm_io.c
rename to tsk/vs/mm_io.c
diff --git a/tsk3/vs/mm_open.c b/tsk/vs/mm_open.c
similarity index 100%
rename from tsk3/vs/mm_open.c
rename to tsk/vs/mm_open.c
diff --git a/tsk3/vs/mm_part.c b/tsk/vs/mm_part.c
similarity index 100%
rename from tsk3/vs/mm_part.c
rename to tsk/vs/mm_part.c
diff --git a/tsk3/vs/mm_types.c b/tsk/vs/mm_types.c
similarity index 100%
rename from tsk3/vs/mm_types.c
rename to tsk/vs/mm_types.c
diff --git a/tsk3/vs/sun.c b/tsk/vs/sun.c
similarity index 100%
rename from tsk3/vs/sun.c
rename to tsk/vs/sun.c
diff --git a/tsk3/vs/tsk_bsd.h b/tsk/vs/tsk_bsd.h
similarity index 100%
rename from tsk3/vs/tsk_bsd.h
rename to tsk/vs/tsk_bsd.h
diff --git a/tsk3/vs/tsk_dos.h b/tsk/vs/tsk_dos.h
similarity index 100%
rename from tsk3/vs/tsk_dos.h
rename to tsk/vs/tsk_dos.h
diff --git a/tsk3/vs/tsk_gpt.h b/tsk/vs/tsk_gpt.h
similarity index 100%
rename from tsk3/vs/tsk_gpt.h
rename to tsk/vs/tsk_gpt.h
diff --git a/tsk3/vs/tsk_mac.h b/tsk/vs/tsk_mac.h
similarity index 100%
rename from tsk3/vs/tsk_mac.h
rename to tsk/vs/tsk_mac.h
diff --git a/tsk3/vs/tsk_sun.h b/tsk/vs/tsk_sun.h
similarity index 100%
rename from tsk3/vs/tsk_sun.h
rename to tsk/vs/tsk_sun.h
diff --git a/tsk3/vs/tsk_vs.h b/tsk/vs/tsk_vs.h
similarity index 100%
rename from tsk3/vs/tsk_vs.h
rename to tsk/vs/tsk_vs.h
diff --git a/tsk3/vs/tsk_vs_i.h b/tsk/vs/tsk_vs_i.h
similarity index 95%
rename from tsk3/vs/tsk_vs_i.h
rename to tsk/vs/tsk_vs_i.h
index 01cdeb6a6e820c6e479588bdbf1653673c934adb..cb2c5aeeb818b0ac8d17eb70a311f5bcfb9733ad 100644
--- a/tsk3/vs/tsk_vs_i.h
+++ b/tsk/vs/tsk_vs_i.h
@@ -16,8 +16,8 @@
 #define _TSK_VS_I_H
 
 // Include the other internal TSK header files
-#include "tsk3/base/tsk_base_i.h"
-#include "tsk3/img/tsk_img_i.h"
+#include "tsk/base/tsk_base_i.h"
+#include "tsk/img/tsk_img_i.h"
 
 // include the external vs header file
 #include "tsk_vs.h"
diff --git a/tsk3/libtsk.h b/tsk3/libtsk.h
deleted file mode 100644
index 7e481924c2057f72c1e1c5dfc85747247eeabc75..0000000000000000000000000000000000000000
--- a/tsk3/libtsk.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef _TSK_LIBTSK_H
-#define _TSK_LIBTSK_H
-
-#include "tsk3/base/tsk_base.h"
-#include "tsk3/img/tsk_img.h"
-#include "tsk3/vs/tsk_vs.h"
-#include "tsk3/fs/tsk_fs.h"
-#include "tsk3/hashdb/tsk_hashdb.h"
-#include "tsk3/auto/tsk_auto.h"
-
-#endif
diff --git a/unit_tests/base/Makefile.am b/unit_tests/base/Makefile.am
index 8155276519fe72cb5916b325f3c4ed1f7b4e315f..627f46af838b68211f59c515dae7f709eb2a9a98 100644
--- a/unit_tests/base/Makefile.am
+++ b/unit_tests/base/Makefile.am
@@ -1,5 +1,5 @@
 AM_CPPFLAGS = -I../.. -Wall $(CPPUNIT_CFLAGS) 
-LDADD = ../../tsk3/libtsk3.la $(CPPUNIT_LIBS)
+LDADD = ../../tsk/libtsk.la $(CPPUNIT_LIBS)
 LDFLAGS = -static 
 
 noinst_PROGRAMS = test_base
@@ -10,6 +10,6 @@ indent:
 
 clean-local:
 	-rm -f *.cpp~ *.h~
-	
+
 check:
 	./test_base
diff --git a/win32/blkcalc/blkcalc.vcproj b/win32/blkcalc/blkcalc.vcproj
deleted file mode 100755
index 53be44a5c2102e6141287d489d91e396ec0a2933..0000000000000000000000000000000000000000
--- a/win32/blkcalc/blkcalc.vcproj
+++ /dev/null
@@ -1,263 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="blkcalc"
-	ProjectGUID="{46B82840-9832-466F-8568-132407CA3853}"
-	RootNamespace="blkcalc"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug_NoLibs|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\fstools\blkcalc.cpp"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/blkcat/blkcat.vcproj b/win32/blkcat/blkcat.vcproj
deleted file mode 100755
index de016ba0c85355bee287377e303c18db2e1cc829..0000000000000000000000000000000000000000
--- a/win32/blkcat/blkcat.vcproj
+++ /dev/null
@@ -1,263 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="blkcat"
-	ProjectGUID="{A2BEA467-A4CC-4FA6-9C74-587498E35467}"
-	RootNamespace="blkcat"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug_NoLibs|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\fstools\blkcat.cpp"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/blkls/blkls.vcproj b/win32/blkls/blkls.vcproj
deleted file mode 100755
index 9aaec49138ca2d4599c740d7d63be521ae799976..0000000000000000000000000000000000000000
--- a/win32/blkls/blkls.vcproj
+++ /dev/null
@@ -1,263 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="blkls"
-	ProjectGUID="{48D98A0A-BF9C-4D7E-9AF8-E4CAE8437997}"
-	RootNamespace="blkls"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug_NoLibs|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\fstools\blkls.cpp"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/blkstat/blkstat.vcproj b/win32/blkstat/blkstat.vcproj
deleted file mode 100755
index f470a118fc5315f4ad613066b888983d1bc4bb7c..0000000000000000000000000000000000000000
--- a/win32/blkstat/blkstat.vcproj
+++ /dev/null
@@ -1,263 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="blkstat"
-	ProjectGUID="{FBB66156-9A54-4713-A801-C507BE7A3AE3}"
-	RootNamespace="blkstat"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug_NoLibs|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\fstools\blkstat.cpp"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/callback-cpp-sample/callback-cpp-sample.vcproj b/win32/callback-cpp-sample/callback-cpp-sample.vcproj
deleted file mode 100755
index 42b03e980740e0b4e6d07138478a584c8a895a30..0000000000000000000000000000000000000000
--- a/win32/callback-cpp-sample/callback-cpp-sample.vcproj
+++ /dev/null
@@ -1,265 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="callback-cpp-sample"
-	ProjectGUID="{3B32F1BE-9686-4DC9-8197-F734D146E9F8}"
-	RootNamespace="callbackcppsample"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				EnableIntrinsicFunctions="true"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug_NoLibs|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\samples\callback-cpp-style.cpp"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/callback-sample/callback-sample.vcproj b/win32/callback-sample/callback-sample.vcproj
deleted file mode 100755
index 11926dfe4c2a7003fd2f0becdae7850c92d42390..0000000000000000000000000000000000000000
--- a/win32/callback-sample/callback-sample.vcproj
+++ /dev/null
@@ -1,263 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="callback-sample"
-	ProjectGUID="{6CE3D593-E90D-4CC1-A66B-694AC909F6B8}"
-	RootNamespace="callbacksample"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug_NoLibs|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\samples\callback-style.cpp"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/ffind/ffind.vcproj b/win32/ffind/ffind.vcproj
deleted file mode 100755
index 85c82202b46a31dcce650e033a00a1a6c5161a05..0000000000000000000000000000000000000000
--- a/win32/ffind/ffind.vcproj
+++ /dev/null
@@ -1,263 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="ffind"
-	ProjectGUID="{7C132953-1700-42FF-9F61-A814C9F2C758}"
-	RootNamespace="ffind"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug_NoLibs|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\fstools\ffind.cpp"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/fls/fls.vcproj b/win32/fls/fls.vcproj
deleted file mode 100755
index a21d882c394e75e6982ee4c99ba0c30e4b87d47e..0000000000000000000000000000000000000000
--- a/win32/fls/fls.vcproj
+++ /dev/null
@@ -1,266 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="fls"
-	ProjectGUID="{58DA1042-AC19-4779-AC1A-AA8EEB3A4524}"
-	RootNamespace="fls"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug_NoLibs|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\fstools\fls.cpp"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/fsstat/fsstat.vcproj b/win32/fsstat/fsstat.vcproj
deleted file mode 100755
index 5fc644f52e31ce3b6c07d668033c58875ab1f3ec..0000000000000000000000000000000000000000
--- a/win32/fsstat/fsstat.vcproj
+++ /dev/null
@@ -1,266 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="fsstat"
-	ProjectGUID="{D1E6567A-4F65-4832-8018-D33B3CB4692B}"
-	RootNamespace="fsstat"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug_NoLibs|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\fstools\fsstat.cpp"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/hfind/hfind.vcproj b/win32/hfind/hfind.vcproj
deleted file mode 100755
index 8f3d730c6eadd7dd6dc30fbbf9550173618a7e9f..0000000000000000000000000000000000000000
--- a/win32/hfind/hfind.vcproj
+++ /dev/null
@@ -1,266 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="hfind"
-	ProjectGUID="{0B127AE3-0C18-4EEF-AB20-A0693E6AA822}"
-	RootNamespace="hfind"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug_NoLibs|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\hashtools\hfind.cpp"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/icat/icat.vcproj b/win32/icat/icat.vcproj
deleted file mode 100755
index 3fa21133f96bd388612fe9bbcc63c8f115b2a1ff..0000000000000000000000000000000000000000
--- a/win32/icat/icat.vcproj
+++ /dev/null
@@ -1,266 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="icat"
-	ProjectGUID="{38D89022-2C83-4436-A333-375A2E3E7BB0}"
-	RootNamespace="icat"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug_NoLibs|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\fstools\icat.cpp"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/ifind/ifind.vcproj b/win32/ifind/ifind.vcproj
deleted file mode 100755
index 1ffd18a02a4193cc104b474c133a69991d587e22..0000000000000000000000000000000000000000
--- a/win32/ifind/ifind.vcproj
+++ /dev/null
@@ -1,266 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="ifind"
-	ProjectGUID="{52251CB2-65A3-421B-9CB4-7DAC13BB3758}"
-	RootNamespace="ifind"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug_NoLibs|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\fstools\ifind.cpp"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/ils/ils.vcproj b/win32/ils/ils.vcproj
deleted file mode 100755
index 8f9123ee6499434486ec76c58737bf1ffa0d5407..0000000000000000000000000000000000000000
--- a/win32/ils/ils.vcproj
+++ /dev/null
@@ -1,266 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="ils"
-	ProjectGUID="{62C97F5E-64DD-4623-9563-747C4C173348}"
-	RootNamespace="ils"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug_NoLibs|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\fstools\ils.cpp"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/img_cat/img_cat.vcproj b/win32/img_cat/img_cat.vcproj
deleted file mode 100755
index 71e72ec3efd871edfdc2772f39c434ebd5dfd658..0000000000000000000000000000000000000000
--- a/win32/img_cat/img_cat.vcproj
+++ /dev/null
@@ -1,266 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="img_cat"
-	ProjectGUID="{671D843F-4DFA-4CB8-8BC9-D44E7F4ECF1E}"
-	RootNamespace="img_cat"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug_NoLibs|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\imgtools\img_cat.cpp"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/img_stat/img_stat.vcproj b/win32/img_stat/img_stat.vcproj
deleted file mode 100755
index cb7dbd14e33c7bd925cc2af2041092e9823a92f7..0000000000000000000000000000000000000000
--- a/win32/img_stat/img_stat.vcproj
+++ /dev/null
@@ -1,266 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="img_stat"
-	ProjectGUID="{48F52EA8-A5D1-4BF4-B774-6ECFCB0CE3C9}"
-	RootNamespace="img_stat"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug_NoLibs|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\imgtools\img_stat.cpp"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/istat/istat.vcproj b/win32/istat/istat.vcproj
deleted file mode 100755
index 2ef055a288f48c87ea277f1c1a1789ff75b8651d..0000000000000000000000000000000000000000
--- a/win32/istat/istat.vcproj
+++ /dev/null
@@ -1,266 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="istat"
-	ProjectGUID="{D7643AD7-8518-4B3E-8F3F-F11258D9540E}"
-	RootNamespace="istat"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug_NoLibs|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\fstools\istat.cpp"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/jcat/jcat.vcproj b/win32/jcat/jcat.vcproj
deleted file mode 100755
index edef0262af11f4bb998c870a868626f8300a7f53..0000000000000000000000000000000000000000
--- a/win32/jcat/jcat.vcproj
+++ /dev/null
@@ -1,266 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="jcat"
-	ProjectGUID="{44A003BE-400D-4434-AFED-64D8E3B448D9}"
-	RootNamespace="jcat"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug_NoLibs|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\fstools\jcat.cpp"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/jls/jls.vcproj b/win32/jls/jls.vcproj
deleted file mode 100755
index 6cedc4ffcb9813a56f167a394b48082954126d63..0000000000000000000000000000000000000000
--- a/win32/jls/jls.vcproj
+++ /dev/null
@@ -1,266 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="jls"
-	ProjectGUID="{C52F935E-1FD2-443C-A181-27908DAB3BC8}"
-	RootNamespace="jls"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug_NoLibs|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\fstools\jls.cpp"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/libtsk/libtsk.vcproj b/win32/libtsk/libtsk.vcproj
deleted file mode 100755
index 3a27e95aedd88d9be23bb5a71715256decc62144..0000000000000000000000000000000000000000
--- a/win32/libtsk/libtsk.vcproj
+++ /dev/null
@@ -1,691 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="libtsk"
-	ProjectGUID="{76EFC06C-1F64-4478-ABE8-79832716B393}"
-	RootNamespace="libtsk"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="196613"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="&quot;$(ProjectDir)\..\..\&quot;;&quot;$(LIBEWF_HOME)\common&quot;;&quot;$(LIBEWF_HOME)\include&quot;;&quot;$(LIBEWF_HOME)\msvscpp\zlib-1.2.6&quot;"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;HAVE_LIBEWF;HAVE_LIBZ;WIN32;_DEBUG;_LIB"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy &quot;$(LIBEWF_HOME)\msvscpp\release\libewf.dll&quot; &quot;$(OutDir)&quot;&#x0D;&#x0A;copy &quot;$(LIBEWF_HOME)\msvscpp\release\zlib.dll&quot; &quot;$(OutDir)&quot;&#x0D;&#x0A;"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				EnableIntrinsicFunctions="true"
-				AdditionalIncludeDirectories="&quot;$(ProjectDir)\..\..\&quot;;&quot;$(LIBEWF_HOME)\common&quot;;&quot;$(LIBEWF_HOME)\include&quot;;&quot;$(LIBEWF_HOME)\msvscpp\zlib-1.2.6&quot;"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;HAVE_LIBEWF;HAVE_LIBZ;WIN32;NDEBUG;_LIB"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy &quot;$(LIBEWF_HOME)\msvscpp\release\libewf.dll&quot; &quot;$(OutDir)&quot;&#x0D;&#x0A;copy &quot;$(LIBEWF_HOME)\msvscpp\release\zlib.dll&quot; &quot;$(OutDir)&quot;&#x0D;&#x0A;"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug_NoLibs|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;WIN32;_DEBUG;_LIB"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="vs"
-			>
-			<File
-				RelativePath="..\..\tsk3\vs\bsd.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\vs\dos.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\vs\gpt.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\vs\mac.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\vs\mm_io.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\vs\mm_open.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\vs\mm_part.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\vs\mm_types.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\vs\sun.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\vs\tsk_bsd.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\vs\tsk_dos.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\vs\tsk_gpt.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\vs\tsk_mac.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\vs\tsk_sun.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\vs\tsk_vs.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\vs\tsk_vs_i.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="fs"
-			>
-			<File
-				RelativePath="..\..\tsk3\fs\dcalc_lib.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\dcat_lib.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\dls_lib.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\dstat_lib.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\ext2fs.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\ext2fs_dent.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\ext2fs_journal.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\fatfs.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\fatfs_dent.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\fatfs_meta.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\ffind_lib.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\ffs.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\ffs_dent.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\fls_lib.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\fs_attr.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\fs_attrlist.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\fs_block.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\fs_dir.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\fs_file.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\fs_inode.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\fs_io.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\fs_load.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\fs_name.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\fs_open.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\fs_parse.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\fs_types.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\hfs.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\hfs_dent.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\hfs_journal.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\hfs_unicompare.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\icat_lib.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\ifind_lib.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\ils_lib.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\iso9660.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\iso9660_dent.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\nofs_misc.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\ntfs.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\ntfs_dent.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\rawfs.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\swapfs.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\tsk_ext2fs.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\tsk_fatfs.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\tsk_ffs.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\tsk_fs.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\tsk_fs_i.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\tsk_hfs.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\tsk_iso9660.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\tsk_ntfs.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\unix_misc.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\fs\walk_cpp.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="auto"
-			>
-			<File
-				RelativePath="..\..\tsk3\auto\auto.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\auto\auto_db.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\auto\case_db.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\auto\db_sqlite.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\auto\sqlite3.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\auto\sqlite3.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\auto\tsk_auto.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\auto\tsk_auto_i.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\auto\tsk_case_db.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\auto\tsk_db_sqlite.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="base"
-			>
-			<File
-				RelativePath="..\..\tsk3\base\md5c.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\base\mymalloc.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\base\sha1c.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\base\tsk_base.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\base\tsk_base_i.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\base\tsk_endian.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\base\tsk_error.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\base\tsk_error_win32.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\base\tsk_list.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\base\tsk_lock.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\base\tsk_os.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\base\tsk_parse.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\base\tsk_printf.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\base\tsk_stack.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\base\tsk_unicode.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\base\tsk_version.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\base\XGetopt.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="hash"
-			>
-			<File
-				RelativePath="..\..\tsk3\hashdb\encase_index.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\hashdb\hk_index.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\hashdb\idxonly_index.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\hashdb\md5sum_index.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\hashdb\nsrl_index.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\hashdb\tm_lookup.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\hashdb\tsk_hashdb.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\hashdb\tsk_hashdb_i.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="img"
-			>
-			<File
-				RelativePath="..\..\tsk3\img\aff.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\img\aff.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\img\ewf.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\img\ewf.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\img\img_io.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\img\img_open.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\img\img_types.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\img\mult_files.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\img\raw.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\img\raw.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\img\tsk_img.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tsk3\img\tsk_img_i.h"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/libtsk/libtsk.vcxproj b/win32/libtsk/libtsk.vcxproj
index e341ec10749ce7db5509e062f45963f966a66092..e2fdf5481fe6c6c7e9b9f800d552191b9ca41ff6 100755
--- a/win32/libtsk/libtsk.vcxproj
+++ b/win32/libtsk/libtsk.vcxproj
@@ -108,123 +108,125 @@ copy "$(LIBEWF_HOME)\msvscpp\release\zlib.dll" "$(OutDir)"
     </ClCompile>
   </ItemDefinitionGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\tsk3\vs\bsd.c" />
-    <ClCompile Include="..\..\tsk3\vs\dos.c" />
-    <ClCompile Include="..\..\tsk3\vs\gpt.c" />
-    <ClCompile Include="..\..\tsk3\vs\mac.c" />
-    <ClCompile Include="..\..\tsk3\vs\mm_io.c" />
-    <ClCompile Include="..\..\tsk3\vs\mm_open.c" />
-    <ClCompile Include="..\..\tsk3\vs\mm_part.c" />
-    <ClCompile Include="..\..\tsk3\vs\mm_types.c" />
-    <ClCompile Include="..\..\tsk3\vs\sun.c" />
-    <ClCompile Include="..\..\tsk3\fs\dcalc_lib.c" />
-    <ClCompile Include="..\..\tsk3\fs\dcat_lib.c" />
-    <ClCompile Include="..\..\tsk3\fs\dls_lib.c" />
-    <ClCompile Include="..\..\tsk3\fs\dstat_lib.c" />
-    <ClCompile Include="..\..\tsk3\fs\ext2fs.c" />
-    <ClCompile Include="..\..\tsk3\fs\ext2fs_dent.c" />
-    <ClCompile Include="..\..\tsk3\fs\ext2fs_journal.c" />
-    <ClCompile Include="..\..\tsk3\fs\fatfs.c" />
-    <ClCompile Include="..\..\tsk3\fs\fatfs_dent.cpp" />
-    <ClCompile Include="..\..\tsk3\fs\fatfs_meta.c" />
-    <ClCompile Include="..\..\tsk3\fs\ffind_lib.c" />
-    <ClCompile Include="..\..\tsk3\fs\ffs.c" />
-    <ClCompile Include="..\..\tsk3\fs\ffs_dent.c" />
-    <ClCompile Include="..\..\tsk3\fs\fls_lib.c" />
-    <ClCompile Include="..\..\tsk3\fs\fs_attr.c" />
-    <ClCompile Include="..\..\tsk3\fs\fs_attrlist.c" />
-    <ClCompile Include="..\..\tsk3\fs\fs_block.c" />
-    <ClCompile Include="..\..\tsk3\fs\fs_dir.c" />
-    <ClCompile Include="..\..\tsk3\fs\fs_file.c" />
-    <ClCompile Include="..\..\tsk3\fs\fs_inode.c" />
-    <ClCompile Include="..\..\tsk3\fs\fs_io.c" />
-    <ClCompile Include="..\..\tsk3\fs\fs_load.c" />
-    <ClCompile Include="..\..\tsk3\fs\fs_name.c" />
-    <ClCompile Include="..\..\tsk3\fs\fs_open.c" />
-    <ClCompile Include="..\..\tsk3\fs\fs_parse.c" />
-    <ClCompile Include="..\..\tsk3\fs\fs_types.c" />
-    <ClCompile Include="..\..\tsk3\fs\hfs.c" />
-    <ClCompile Include="..\..\tsk3\fs\hfs_dent.c" />
-    <ClCompile Include="..\..\tsk3\fs\hfs_journal.c" />
-    <ClCompile Include="..\..\tsk3\fs\hfs_unicompare.c" />
-    <ClCompile Include="..\..\tsk3\fs\icat_lib.c" />
-    <ClCompile Include="..\..\tsk3\fs\ifind_lib.c" />
-    <ClCompile Include="..\..\tsk3\fs\ils_lib.c" />
-    <ClCompile Include="..\..\tsk3\fs\iso9660.c" />
-    <ClCompile Include="..\..\tsk3\fs\iso9660_dent.c" />
-    <ClCompile Include="..\..\tsk3\fs\nofs_misc.c" />
-    <ClCompile Include="..\..\tsk3\fs\ntfs.c" />
-    <ClCompile Include="..\..\tsk3\fs\ntfs_dent.cpp" />
-    <ClCompile Include="..\..\tsk3\fs\rawfs.c" />
-    <ClCompile Include="..\..\tsk3\fs\swapfs.c" />
-    <ClCompile Include="..\..\tsk3\fs\unix_misc.c" />
-    <ClCompile Include="..\..\tsk3\fs\walk_cpp.cpp" />
-    <ClCompile Include="..\..\tsk3\auto\auto.cpp" />
-    <ClCompile Include="..\..\tsk3\auto\auto_db.cpp" />
-    <ClCompile Include="..\..\tsk3\auto\case_db.cpp" />
-    <ClCompile Include="..\..\tsk3\auto\db_sqlite.cpp" />
-    <ClCompile Include="..\..\tsk3\auto\sqlite3.c" />
-    <ClCompile Include="..\..\tsk3\base\md5c.c" />
-    <ClCompile Include="..\..\tsk3\base\mymalloc.c" />
-    <ClCompile Include="..\..\tsk3\base\sha1c.c" />
-    <ClCompile Include="..\..\tsk3\base\tsk_endian.c" />
-    <ClCompile Include="..\..\tsk3\base\tsk_error.c" />
-    <ClCompile Include="..\..\tsk3\base\tsk_error_win32.cpp" />
-    <ClCompile Include="..\..\tsk3\base\tsk_list.c" />
-    <ClCompile Include="..\..\tsk3\base\tsk_lock.c" />
-    <ClCompile Include="..\..\tsk3\base\tsk_parse.c" />
-    <ClCompile Include="..\..\tsk3\base\tsk_printf.c" />
-    <ClCompile Include="..\..\tsk3\base\tsk_stack.c" />
-    <ClCompile Include="..\..\tsk3\base\tsk_unicode.c" />
-    <ClCompile Include="..\..\tsk3\base\tsk_version.c" />
-    <ClCompile Include="..\..\tsk3\base\XGetopt.c" />
-    <ClCompile Include="..\..\tsk3\hashdb\encase_index.c" />
-    <ClCompile Include="..\..\tsk3\hashdb\hk_index.c" />
-    <ClCompile Include="..\..\tsk3\hashdb\idxonly_index.c" />
-    <ClCompile Include="..\..\tsk3\hashdb\md5sum_index.c" />
-    <ClCompile Include="..\..\tsk3\hashdb\nsrl_index.c" />
-    <ClCompile Include="..\..\tsk3\hashdb\tm_lookup.c" />
-    <ClCompile Include="..\..\tsk3\img\aff.c" />
-    <ClCompile Include="..\..\tsk3\img\ewf.c" />
-    <ClCompile Include="..\..\tsk3\img\img_io.c" />
-    <ClCompile Include="..\..\tsk3\img\img_open.c" />
-    <ClCompile Include="..\..\tsk3\img\img_types.c" />
-    <ClCompile Include="..\..\tsk3\img\mult_files.c" />
-    <ClCompile Include="..\..\tsk3\img\raw.c" />
+    <ClCompile Include="..\..\tsk\vs\bsd.c" />
+    <ClCompile Include="..\..\tsk\vs\dos.c" />
+    <ClCompile Include="..\..\tsk\vs\gpt.c" />
+    <ClCompile Include="..\..\tsk\vs\mac.c" />
+    <ClCompile Include="..\..\tsk\vs\mm_io.c" />
+    <ClCompile Include="..\..\tsk\vs\mm_open.c" />
+    <ClCompile Include="..\..\tsk\vs\mm_part.c" />
+    <ClCompile Include="..\..\tsk\vs\mm_types.c" />
+    <ClCompile Include="..\..\tsk\vs\sun.c" />
+    <ClCompile Include="..\..\tsk\fs\dcalc_lib.c" />
+    <ClCompile Include="..\..\tsk\fs\dcat_lib.c" />
+    <ClCompile Include="..\..\tsk\fs\dls_lib.c" />
+    <ClCompile Include="..\..\tsk\fs\dstat_lib.c" />
+    <ClCompile Include="..\..\tsk\fs\ext2fs.c" />
+    <ClCompile Include="..\..\tsk\fs\ext2fs_dent.c" />
+    <ClCompile Include="..\..\tsk\fs\ext2fs_journal.c" />
+    <ClCompile Include="..\..\tsk\fs\fatfs.c" />
+    <ClCompile Include="..\..\tsk\fs\fatfs_dent.cpp" />
+    <ClCompile Include="..\..\tsk\fs\fatfs_meta.c" />
+    <ClCompile Include="..\..\tsk\fs\ffind_lib.c" />
+    <ClCompile Include="..\..\tsk\fs\ffs.c" />
+    <ClCompile Include="..\..\tsk\fs\ffs_dent.c" />
+    <ClCompile Include="..\..\tsk\fs\fls_lib.c" />
+    <ClCompile Include="..\..\tsk\fs\fs_attr.c" />
+    <ClCompile Include="..\..\tsk\fs\fs_attrlist.c" />
+    <ClCompile Include="..\..\tsk\fs\fs_block.c" />
+    <ClCompile Include="..\..\tsk\fs\fs_dir.c" />
+    <ClCompile Include="..\..\tsk\fs\fs_file.c" />
+    <ClCompile Include="..\..\tsk\fs\fs_inode.c" />
+    <ClCompile Include="..\..\tsk\fs\fs_io.c" />
+    <ClCompile Include="..\..\tsk\fs\fs_load.c" />
+    <ClCompile Include="..\..\tsk\fs\fs_name.c" />
+    <ClCompile Include="..\..\tsk\fs\fs_open.c" />
+    <ClCompile Include="..\..\tsk\fs\fs_parse.c" />
+    <ClCompile Include="..\..\tsk\fs\fs_types.c" />
+    <ClCompile Include="..\..\tsk\fs\hfs.c" />
+    <ClCompile Include="..\..\tsk\fs\hfs_dent.c" />
+    <ClCompile Include="..\..\tsk\fs\hfs_journal.c" />
+    <ClCompile Include="..\..\tsk\fs\hfs_unicompare.c" />
+    <ClCompile Include="..\..\tsk\fs\icat_lib.c" />
+    <ClCompile Include="..\..\tsk\fs\ifind_lib.c" />
+    <ClCompile Include="..\..\tsk\fs\ils_lib.c" />
+    <ClCompile Include="..\..\tsk\fs\iso9660.c" />
+    <ClCompile Include="..\..\tsk\fs\iso9660_dent.c" />
+    <ClCompile Include="..\..\tsk\fs\nofs_misc.c" />
+    <ClCompile Include="..\..\tsk\fs\ntfs.c" />
+    <ClCompile Include="..\..\tsk\fs\ntfs_dent.cpp" />
+    <ClCompile Include="..\..\tsk\fs\rawfs.c" />
+    <ClCompile Include="..\..\tsk\fs\swapfs.c" />
+    <ClCompile Include="..\..\tsk\fs\unix_misc.c" />
+    <ClCompile Include="..\..\tsk\fs\walk_cpp.cpp" />
+    <ClCompile Include="..\..\tsk\fs\yaffs.cpp" />
+    <ClCompile Include="..\..\tsk\auto\auto.cpp" />
+    <ClCompile Include="..\..\tsk\auto\auto_db.cpp" />
+    <ClCompile Include="..\..\tsk\auto\case_db.cpp" />
+    <ClCompile Include="..\..\tsk\auto\db_sqlite.cpp" />
+    <ClCompile Include="..\..\tsk\auto\sqlite3.c" />
+    <ClCompile Include="..\..\tsk\base\md5c.c" />
+    <ClCompile Include="..\..\tsk\base\mymalloc.c" />
+    <ClCompile Include="..\..\tsk\base\sha1c.c" />
+    <ClCompile Include="..\..\tsk\base\tsk_endian.c" />
+    <ClCompile Include="..\..\tsk\base\tsk_error.c" />
+    <ClCompile Include="..\..\tsk\base\tsk_error_win32.cpp" />
+    <ClCompile Include="..\..\tsk\base\tsk_list.c" />
+    <ClCompile Include="..\..\tsk\base\tsk_lock.c" />
+    <ClCompile Include="..\..\tsk\base\tsk_parse.c" />
+    <ClCompile Include="..\..\tsk\base\tsk_printf.c" />
+    <ClCompile Include="..\..\tsk\base\tsk_stack.c" />
+    <ClCompile Include="..\..\tsk\base\tsk_unicode.c" />
+    <ClCompile Include="..\..\tsk\base\tsk_version.c" />
+    <ClCompile Include="..\..\tsk\base\XGetopt.c" />
+    <ClCompile Include="..\..\tsk\hashdb\encase_index.c" />
+    <ClCompile Include="..\..\tsk\hashdb\hk_index.c" />
+    <ClCompile Include="..\..\tsk\hashdb\idxonly_index.c" />
+    <ClCompile Include="..\..\tsk\hashdb\md5sum_index.c" />
+    <ClCompile Include="..\..\tsk\hashdb\nsrl_index.c" />
+    <ClCompile Include="..\..\tsk\hashdb\tm_lookup.c" />
+    <ClCompile Include="..\..\tsk\img\aff.c" />
+    <ClCompile Include="..\..\tsk\img\ewf.c" />
+    <ClCompile Include="..\..\tsk\img\img_io.c" />
+    <ClCompile Include="..\..\tsk\img\img_open.c" />
+    <ClCompile Include="..\..\tsk\img\img_types.c" />
+    <ClCompile Include="..\..\tsk\img\mult_files.c" />
+    <ClCompile Include="..\..\tsk\img\raw.c" />
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="..\..\tsk3\vs\tsk_bsd.h" />
-    <ClInclude Include="..\..\tsk3\vs\tsk_dos.h" />
-    <ClInclude Include="..\..\tsk3\vs\tsk_gpt.h" />
-    <ClInclude Include="..\..\tsk3\vs\tsk_mac.h" />
-    <ClInclude Include="..\..\tsk3\vs\tsk_sun.h" />
-    <ClInclude Include="..\..\tsk3\vs\tsk_vs.h" />
-    <ClInclude Include="..\..\tsk3\vs\tsk_vs_i.h" />
-    <ClInclude Include="..\..\tsk3\fs\tsk_ext2fs.h" />
-    <ClInclude Include="..\..\tsk3\fs\tsk_fatfs.h" />
-    <ClInclude Include="..\..\tsk3\fs\tsk_ffs.h" />
-    <ClInclude Include="..\..\tsk3\fs\tsk_fs.h" />
-    <ClInclude Include="..\..\tsk3\fs\tsk_fs_i.h" />
-    <ClInclude Include="..\..\tsk3\fs\tsk_hfs.h" />
-    <ClInclude Include="..\..\tsk3\fs\tsk_iso9660.h" />
-    <ClInclude Include="..\..\tsk3\fs\tsk_ntfs.h" />
-    <ClInclude Include="..\..\tsk3\auto\sqlite3.h" />
-    <ClInclude Include="..\..\tsk3\auto\tsk_auto.h" />
-    <ClInclude Include="..\..\tsk3\auto\tsk_auto_i.h" />
-    <ClInclude Include="..\..\tsk3\auto\tsk_case_db.h" />
-    <ClInclude Include="..\..\tsk3\auto\tsk_db_sqlite.h" />
-    <ClInclude Include="..\..\tsk3\base\tsk_base.h" />
-    <ClInclude Include="..\..\tsk3\base\tsk_base_i.h" />
-    <ClInclude Include="..\..\tsk3\base\tsk_os.h" />
-    <ClInclude Include="..\..\tsk3\hashdb\tsk_hashdb.h" />
-    <ClInclude Include="..\..\tsk3\hashdb\tsk_hashdb_i.h" />
-    <ClInclude Include="..\..\tsk3\img\aff.h" />
-    <ClInclude Include="..\..\tsk3\img\ewf.h" />
-    <ClInclude Include="..\..\tsk3\img\raw.h" />
-    <ClInclude Include="..\..\tsk3\img\tsk_img.h" />
-    <ClInclude Include="..\..\tsk3\img\tsk_img_i.h" />
+    <ClInclude Include="..\..\tsk\vs\tsk_bsd.h" />
+    <ClInclude Include="..\..\tsk\vs\tsk_dos.h" />
+    <ClInclude Include="..\..\tsk\vs\tsk_gpt.h" />
+    <ClInclude Include="..\..\tsk\vs\tsk_mac.h" />
+    <ClInclude Include="..\..\tsk\vs\tsk_sun.h" />
+    <ClInclude Include="..\..\tsk\vs\tsk_vs.h" />
+    <ClInclude Include="..\..\tsk\vs\tsk_vs_i.h" />
+    <ClInclude Include="..\..\tsk\fs\tsk_ext2fs.h" />
+    <ClInclude Include="..\..\tsk\fs\tsk_fatfs.h" />
+    <ClInclude Include="..\..\tsk\fs\tsk_ffs.h" />
+    <ClInclude Include="..\..\tsk\fs\tsk_fs.h" />
+    <ClInclude Include="..\..\tsk\fs\tsk_fs_i.h" />
+    <ClInclude Include="..\..\tsk\fs\tsk_hfs.h" />
+    <ClInclude Include="..\..\tsk\fs\tsk_iso9660.h" />
+    <ClInclude Include="..\..\tsk\fs\tsk_ntfs.h" />
+    <ClInclude Include="..\..\tsk\fs\tsk_yaffs.h" />
+    <ClInclude Include="..\..\tsk\auto\sqlite3.h" />
+    <ClInclude Include="..\..\tsk\auto\tsk_auto.h" />
+    <ClInclude Include="..\..\tsk\auto\tsk_auto_i.h" />
+    <ClInclude Include="..\..\tsk\auto\tsk_case_db.h" />
+    <ClInclude Include="..\..\tsk\auto\tsk_db_sqlite.h" />
+    <ClInclude Include="..\..\tsk\base\tsk_base.h" />
+    <ClInclude Include="..\..\tsk\base\tsk_base_i.h" />
+    <ClInclude Include="..\..\tsk\base\tsk_os.h" />
+    <ClInclude Include="..\..\tsk\hashdb\tsk_hashdb.h" />
+    <ClInclude Include="..\..\tsk\hashdb\tsk_hashdb_i.h" />
+    <ClInclude Include="..\..\tsk\img\aff.h" />
+    <ClInclude Include="..\..\tsk\img\ewf.h" />
+    <ClInclude Include="..\..\tsk\img\raw.h" />
+    <ClInclude Include="..\..\tsk\img\tsk_img.h" />
+    <ClInclude Include="..\..\tsk\img\tsk_img_i.h" />
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/win32/libtsk/libtsk.vcxproj.filters b/win32/libtsk/libtsk.vcxproj.filters
index 51b0ec4a95d3d36516734b8022fc362c23e35595..a4eeca709d2ab3a581ba0fc1b366242f4528fe6d 100755
--- a/win32/libtsk/libtsk.vcxproj.filters
+++ b/win32/libtsk/libtsk.vcxproj.filters
@@ -21,346 +21,355 @@
     </Filter>
   </ItemGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\tsk3\vs\bsd.c">
+    <ClCompile Include="..\..\tsk\vs\bsd.c">
       <Filter>vs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\vs\dos.c">
+    <ClCompile Include="..\..\tsk\vs\dos.c">
       <Filter>vs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\vs\gpt.c">
+    <ClCompile Include="..\..\tsk\vs\gpt.c">
       <Filter>vs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\vs\mac.c">
+    <ClCompile Include="..\..\tsk\vs\mac.c">
       <Filter>vs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\vs\mm_io.c">
+    <ClCompile Include="..\..\tsk\vs\mm_io.c">
       <Filter>vs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\vs\mm_open.c">
+    <ClCompile Include="..\..\tsk\vs\mm_open.c">
       <Filter>vs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\vs\mm_part.c">
+    <ClCompile Include="..\..\tsk\vs\mm_part.c">
       <Filter>vs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\vs\mm_types.c">
+    <ClCompile Include="..\..\tsk\vs\mm_types.c">
       <Filter>vs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\vs\sun.c">
+    <ClCompile Include="..\..\tsk\vs\sun.c">
       <Filter>vs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\dcalc_lib.c">
+    <ClCompile Include="..\..\tsk\fs\dcalc_lib.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\dcat_lib.c">
+    <ClCompile Include="..\..\tsk\fs\dcat_lib.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\dls_lib.c">
+    <ClCompile Include="..\..\tsk\fs\dls_lib.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\dstat_lib.c">
+    <ClCompile Include="..\..\tsk\fs\dstat_lib.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\ext2fs.c">
+    <ClCompile Include="..\..\tsk\fs\ext2fs.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\ext2fs_dent.c">
+    <ClCompile Include="..\..\tsk\fs\ext2fs_dent.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\ext2fs_journal.c">
+    <ClCompile Include="..\..\tsk\fs\ext2fs_journal.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\fatfs.c">
+    <ClCompile Include="..\..\tsk\fs\fatfs.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\fatfs_meta.c">
+    <ClCompile Include="..\..\tsk\fs\fatfs_meta.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\ffind_lib.c">
+    <ClCompile Include="..\..\tsk\fs\ffind_lib.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\ffs.c">
+    <ClCompile Include="..\..\tsk\fs\ffs.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\ffs_dent.c">
+    <ClCompile Include="..\..\tsk\fs\ffs_dent.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\fls_lib.c">
+    <ClCompile Include="..\..\tsk\fs\fls_lib.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\fs_attr.c">
+    <ClCompile Include="..\..\tsk\fs\fs_attr.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\fs_attrlist.c">
+    <ClCompile Include="..\..\tsk\fs\fs_attrlist.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\fs_block.c">
+    <ClCompile Include="..\..\tsk\fs\fs_block.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\fs_dir.c">
+    <ClCompile Include="..\..\tsk\fs\fs_dir.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\fs_file.c">
+    <ClCompile Include="..\..\tsk\fs\fs_file.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\fs_inode.c">
+    <ClCompile Include="..\..\tsk\fs\fs_inode.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\fs_io.c">
+    <ClCompile Include="..\..\tsk\fs\fs_io.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\fs_load.c">
+    <ClCompile Include="..\..\tsk\fs\fs_load.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\fs_name.c">
+    <ClCompile Include="..\..\tsk\fs\fs_name.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\fs_open.c">
+    <ClCompile Include="..\..\tsk\fs\fs_open.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\fs_parse.c">
+    <ClCompile Include="..\..\tsk\fs\fs_parse.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\fs_types.c">
+    <ClCompile Include="..\..\tsk\fs\fs_types.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\hfs.c">
+    <ClCompile Include="..\..\tsk\fs\hfs.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\hfs_dent.c">
+    <ClCompile Include="..\..\tsk\fs\hfs_dent.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\hfs_journal.c">
+    <ClCompile Include="..\..\tsk\fs\hfs_journal.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\hfs_unicompare.c">
+    <ClCompile Include="..\..\tsk\fs\hfs_unicompare.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\icat_lib.c">
+    <ClCompile Include="..\..\tsk\fs\icat_lib.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\ifind_lib.c">
+    <ClCompile Include="..\..\tsk\fs\ifind_lib.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\ils_lib.c">
+    <ClCompile Include="..\..\tsk\fs\ils_lib.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\iso9660.c">
+    <ClCompile Include="..\..\tsk\fs\iso9660.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\iso9660_dent.c">
+    <ClCompile Include="..\..\tsk\fs\iso9660_dent.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\nofs_misc.c">
+    <ClCompile Include="..\..\tsk\fs\nofs_misc.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\rawfs.c">
+    <ClCompile Include="..\..\tsk\fs\rawfs.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\swapfs.c">
+    <ClCompile Include="..\..\tsk\fs\swapfs.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\unix_misc.c">
+    <ClCompile Include="..\..\tsk\fs\unix_misc.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\walk_cpp.cpp">
+    <ClCompile Include="..\..\tsk\fs\walk_cpp.cpp">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\auto\auto.cpp">
+    <ClCompile Include="..\..\tsk\auto\auto.cpp">
       <Filter>auto</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\auto\auto_db.cpp">
+    <ClCompile Include="..\..\tsk\auto\auto_db.cpp">
       <Filter>auto</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\auto\case_db.cpp">
+    <ClCompile Include="..\..\tsk\auto\case_db.cpp">
       <Filter>auto</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\auto\db_sqlite.cpp">
+    <ClCompile Include="..\..\tsk\auto\db_sqlite.cpp">
       <Filter>auto</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\auto\sqlite3.c">
+    <ClCompile Include="..\..\tsk\auto\sqlite3.c">
       <Filter>auto</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\base\md5c.c">
+    <ClCompile Include="..\..\tsk\base\md5c.c">
       <Filter>base</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\base\mymalloc.c">
+    <ClCompile Include="..\..\tsk\base\mymalloc.c">
       <Filter>base</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\base\sha1c.c">
+    <ClCompile Include="..\..\tsk\base\sha1c.c">
       <Filter>base</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\base\tsk_endian.c">
+    <ClCompile Include="..\..\tsk\base\tsk_endian.c">
       <Filter>base</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\base\tsk_error.c">
+    <ClCompile Include="..\..\tsk\base\tsk_error.c">
       <Filter>base</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\base\tsk_error_win32.cpp">
+    <ClCompile Include="..\..\tsk\base\tsk_error_win32.cpp">
       <Filter>base</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\base\tsk_list.c">
+    <ClCompile Include="..\..\tsk\base\tsk_list.c">
       <Filter>base</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\base\tsk_lock.c">
+    <ClCompile Include="..\..\tsk\base\tsk_lock.c">
       <Filter>base</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\base\tsk_parse.c">
+    <ClCompile Include="..\..\tsk\base\tsk_parse.c">
       <Filter>base</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\base\tsk_printf.c">
+    <ClCompile Include="..\..\tsk\base\tsk_printf.c">
       <Filter>base</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\base\tsk_stack.c">
+    <ClCompile Include="..\..\tsk\base\tsk_stack.c">
       <Filter>base</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\base\tsk_unicode.c">
+    <ClCompile Include="..\..\tsk\base\tsk_unicode.c">
       <Filter>base</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\base\tsk_version.c">
+    <ClCompile Include="..\..\tsk\base\tsk_version.c">
       <Filter>base</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\base\XGetopt.c">
+    <ClCompile Include="..\..\tsk\base\XGetopt.c">
       <Filter>base</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\hashdb\encase_index.c">
+    <ClCompile Include="..\..\tsk\base\crc.c">
+       <Filter>base</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\hashdb\encase_index.c">
       <Filter>hash</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\hashdb\hk_index.c">
+    <ClCompile Include="..\..\tsk\hashdb\hk_index.c">
       <Filter>hash</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\hashdb\idxonly_index.c">
+    <ClCompile Include="..\..\tsk\hashdb\idxonly_index.c">
       <Filter>hash</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\hashdb\md5sum_index.c">
+    <ClCompile Include="..\..\tsk\hashdb\md5sum_index.c">
       <Filter>hash</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\hashdb\nsrl_index.c">
+    <ClCompile Include="..\..\tsk\hashdb\nsrl_index.c">
       <Filter>hash</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\hashdb\tm_lookup.c">
+    <ClCompile Include="..\..\tsk\hashdb\tm_lookup.c">
       <Filter>hash</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\img\aff.c">
+    <ClCompile Include="..\..\tsk\img\aff.c">
       <Filter>img</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\img\ewf.c">
+    <ClCompile Include="..\..\tsk\img\ewf.c">
       <Filter>img</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\img\img_io.c">
+    <ClCompile Include="..\..\tsk\img\img_io.c">
       <Filter>img</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\img\img_open.c">
+    <ClCompile Include="..\..\tsk\img\img_open.c">
       <Filter>img</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\img\img_types.c">
+    <ClCompile Include="..\..\tsk\img\img_types.c">
       <Filter>img</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\img\mult_files.c">
+    <ClCompile Include="..\..\tsk\img\mult_files.c">
       <Filter>img</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\img\raw.c">
+    <ClCompile Include="..\..\tsk\img\raw.c">
       <Filter>img</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\fatfs_dent.cpp">
+    <ClCompile Include="..\..\tsk\fs\fatfs_dent.cpp">
+      <Filter>fs</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\tsk\fs\ntfs.c">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\ntfs.c">
+    <ClCompile Include="..\..\tsk\fs\ntfs_dent.cpp">
       <Filter>fs</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\tsk3\fs\ntfs_dent.cpp">
+    <ClCompile Include="..\..\tsk3\fs\yaffs.cpp">
       <Filter>fs</Filter>
     </ClCompile>
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="..\..\tsk3\vs\tsk_bsd.h">
+    <ClInclude Include="..\..\tsk\vs\tsk_bsd.h">
       <Filter>vs</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\tsk3\vs\tsk_dos.h">
+    <ClInclude Include="..\..\tsk\vs\tsk_dos.h">
       <Filter>vs</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\tsk3\vs\tsk_gpt.h">
+    <ClInclude Include="..\..\tsk\vs\tsk_gpt.h">
       <Filter>vs</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\tsk3\vs\tsk_mac.h">
+    <ClInclude Include="..\..\tsk\vs\tsk_mac.h">
       <Filter>vs</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\tsk3\vs\tsk_sun.h">
+    <ClInclude Include="..\..\tsk\vs\tsk_sun.h">
       <Filter>vs</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\tsk3\vs\tsk_vs.h">
+    <ClInclude Include="..\..\tsk\vs\tsk_vs.h">
       <Filter>vs</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\tsk3\vs\tsk_vs_i.h">
+    <ClInclude Include="..\..\tsk\vs\tsk_vs_i.h">
       <Filter>vs</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\tsk3\fs\tsk_ext2fs.h">
+    <ClInclude Include="..\..\tsk\fs\tsk_ext2fs.h">
       <Filter>fs</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\tsk3\fs\tsk_fatfs.h">
+    <ClInclude Include="..\..\tsk\fs\tsk_fatfs.h">
       <Filter>fs</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\tsk3\fs\tsk_ffs.h">
+    <ClInclude Include="..\..\tsk\fs\tsk_ffs.h">
       <Filter>fs</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\tsk3\fs\tsk_fs.h">
+    <ClInclude Include="..\..\tsk\fs\tsk_fs.h">
       <Filter>fs</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\tsk3\fs\tsk_fs_i.h">
+    <ClInclude Include="..\..\tsk\fs\tsk_fs_i.h">
       <Filter>fs</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\tsk3\fs\tsk_hfs.h">
+    <ClInclude Include="..\..\tsk\fs\tsk_hfs.h">
       <Filter>fs</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\tsk3\fs\tsk_iso9660.h">
+    <ClInclude Include="..\..\tsk\fs\tsk_iso9660.h">
       <Filter>fs</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\tsk3\fs\tsk_ntfs.h">
+    <ClInclude Include="..\..\tsk\fs\tsk_ntfs.h">
       <Filter>fs</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\tsk3\auto\sqlite3.h">
+    <ClInclude Include="..\..\tsk\auto\sqlite3.h">
       <Filter>auto</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\tsk3\auto\tsk_auto.h">
+    <ClInclude Include="..\..\tsk\auto\tsk_auto.h">
       <Filter>auto</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\tsk3\auto\tsk_auto_i.h">
+    <ClInclude Include="..\..\tsk\auto\tsk_auto_i.h">
       <Filter>auto</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\tsk3\auto\tsk_case_db.h">
+    <ClInclude Include="..\..\tsk\auto\tsk_case_db.h">
       <Filter>auto</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\tsk3\auto\tsk_db_sqlite.h">
+    <ClInclude Include="..\..\tsk\auto\tsk_db_sqlite.h">
       <Filter>auto</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\tsk3\base\tsk_base.h">
+    <ClInclude Include="..\..\tsk\base\tsk_base.h">
       <Filter>base</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\tsk3\base\tsk_base_i.h">
+    <ClInclude Include="..\..\tsk\base\tsk_base_i.h">
       <Filter>base</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\tsk3\base\tsk_os.h">
+    <ClInclude Include="..\..\tsk\base\tsk_os.h">
       <Filter>base</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\tsk3\hashdb\tsk_hashdb.h">
+    <ClInclude Include="..\..\tsk\hashdb\tsk_hashdb.h">
       <Filter>hash</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\tsk3\hashdb\tsk_hashdb_i.h">
+    <ClInclude Include="..\..\tsk\hashdb\tsk_hashdb_i.h">
       <Filter>hash</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\tsk3\img\aff.h">
+    <ClInclude Include="..\..\tsk\img\aff.h">
       <Filter>img</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\tsk3\img\ewf.h">
+    <ClInclude Include="..\..\tsk\img\ewf.h">
       <Filter>img</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\tsk3\img\raw.h">
+    <ClInclude Include="..\..\tsk\img\raw.h">
       <Filter>img</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\tsk3\img\tsk_img.h">
+    <ClInclude Include="..\..\tsk\img\tsk_img.h">
       <Filter>img</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\tsk3\img\tsk_img_i.h">
+    <ClInclude Include="..\..\tsk\img\tsk_img_i.h">
       <Filter>img</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\tsk3\fs\tsk_yaffs.h">
+      <Filter>fs</Filter>
+    </ClInclude>
   </ItemGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/win32/mmcat/mmcat.vcproj b/win32/mmcat/mmcat.vcproj
deleted file mode 100755
index 191e63bec911077e96ccff593d666b83dda98879..0000000000000000000000000000000000000000
--- a/win32/mmcat/mmcat.vcproj
+++ /dev/null
@@ -1,266 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="mmcat"
-	ProjectGUID="{A15F1E4F-951A-403E-B746-2A6D63D9C416}"
-	RootNamespace="mmcat"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug_NoLibs|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\vstools\mmcat.cpp"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/mmls/mmls.vcproj b/win32/mmls/mmls.vcproj
deleted file mode 100755
index cbcc8a6444508b9c8e57a0fdc5d6ccd6cc2834e8..0000000000000000000000000000000000000000
--- a/win32/mmls/mmls.vcproj
+++ /dev/null
@@ -1,266 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="mmls"
-	ProjectGUID="{712DD83B-786E-485E-83C7-7197DD851B78}"
-	RootNamespace="mmls"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug_NoLibs|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\vstools\mmls.cpp"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/mmstat/mmstat.vcproj b/win32/mmstat/mmstat.vcproj
deleted file mode 100755
index 76e73026394f3fa7bbd9a3f458bc6885d51f3f61..0000000000000000000000000000000000000000
--- a/win32/mmstat/mmstat.vcproj
+++ /dev/null
@@ -1,266 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="mmstat"
-	ProjectGUID="{5D75FBFB-539A-4014-ACEB-520BB16F5BFC}"
-	RootNamespace="mmstat"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug_NoLibs|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\vstools\mmstat.cpp"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/posix-cpp-sample/posix-cpp-sample.vcproj b/win32/posix-cpp-sample/posix-cpp-sample.vcproj
deleted file mode 100755
index f0697ae93ac8ec93914b8abe5fd650c4341a8038..0000000000000000000000000000000000000000
--- a/win32/posix-cpp-sample/posix-cpp-sample.vcproj
+++ /dev/null
@@ -1,262 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="posix-cpp-sample"
-	ProjectGUID="{5594DC0E-191C-4F2A-83FE-97F53A9C1222}"
-	RootNamespace="posixcppsample"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				EnableIntrinsicFunctions="true"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug_NoLibs|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\samples\posix-cpp-style.cpp"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/posix-sample/posix-sample.vcproj b/win32/posix-sample/posix-sample.vcproj
deleted file mode 100755
index a8c78317914cb5f42fda801dadebc322047ba934..0000000000000000000000000000000000000000
--- a/win32/posix-sample/posix-sample.vcproj
+++ /dev/null
@@ -1,266 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="posix-sample"
-	ProjectGUID="{1BA0B9E8-F135-494F-9CF5-86427C1F6E41}"
-	RootNamespace="posixsample"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug_NoLibs|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\samples\posix-style.cpp"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/tsk_comparedir/tsk_compare.vcproj b/win32/tsk_comparedir/tsk_compare.vcproj
deleted file mode 100755
index 6327c73c44257289139629fdfc69e69e56afda5c..0000000000000000000000000000000000000000
--- a/win32/tsk_comparedir/tsk_compare.vcproj
+++ /dev/null
@@ -1,259 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="tsk_comparedir"
-	ProjectGUID="{8EE881F4-78DC-49C7-8845-E842358AC0FA}"
-	RootNamespace="tsk_compare"
-	TargetFrameworkVersion="196613"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				WarningLevel="3"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				EnableIntrinsicFunctions="true"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug_NoLibs|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				WarningLevel="1"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				AssemblyDebug="1"
-				TargetMachine="0"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\autotools\tsk_comparedir.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\tools\autotools\tsk_comparedir.h"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/tsk_gettimes/tsk_gettimes.vcproj b/win32/tsk_gettimes/tsk_gettimes.vcproj
deleted file mode 100755
index 40398f9520c1a52862da081bb7c764b44a867b86..0000000000000000000000000000000000000000
--- a/win32/tsk_gettimes/tsk_gettimes.vcproj
+++ /dev/null
@@ -1,268 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="tsk_gettimes"
-	ProjectGUID="{11A8927C-F971-4104-A286-5DC11C25E2EC}"
-	RootNamespace="tsk_gettimes"
-	Keyword="ManagedCProj"
-	TargetFrameworkVersion="196613"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			ManagedExtensions="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				AssemblyDebug="1"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			ManagedExtensions="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug_NoLibs|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			ManagedExtensions="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				AssemblyDebug="1"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-		<AssemblyReference
-			RelativePath="System.dll"
-			AssemblyName="System, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"
-			MinFrameworkVersion="131072"
-		/>
-		<AssemblyReference
-			RelativePath="System.Data.dll"
-			AssemblyName="System.Data, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=x86"
-			MinFrameworkVersion="131072"
-		/>
-		<AssemblyReference
-			RelativePath="System.XML.dll"
-			AssemblyName="System.Xml, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"
-			MinFrameworkVersion="131072"
-		/>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\autotools\tsk_gettimes.cpp"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/tsk_jni/tsk_jni.vcproj b/win32/tsk_jni/tsk_jni.vcproj
deleted file mode 100755
index 09e342bbfa2198326eaa33268dfb8c727b25cc8e..0000000000000000000000000000000000000000
--- a/win32/tsk_jni/tsk_jni.vcproj
+++ /dev/null
@@ -1,277 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="libtsk_jni"
-	ProjectGUID="{62D88133-09F6-4E13-B39F-36FCEFBE4FAF}"
-	RootNamespace="tsk_jni"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="196613"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="&quot;$(JDK_HOME)\include&quot;;&quot;$(JDK_HOME)\include\win32&quot;;&quot;$(ProjectDir)\..\..&quot;"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;TSK_JNI_EXPORTS;_CRT_SECURE_NO_WARNINGS"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				UseLibraryDependencyInputs="false"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine=""
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			UseOfMFC="0"
-			UseOfATL="0"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				EnableIntrinsicFunctions="true"
-				AdditionalIncludeDirectories="&quot;$(JDK_HOME)\include&quot;;&quot;$(JDK_HOME)\include\win32&quot;;&quot;$(ProjectDir)\..\..&quot;"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;TSK_JNI_EXPORTS;_CRT_SECURE_NO_WARNINGS"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="0"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="false"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine=""
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug_NoLibs|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="&quot;$(JDK_HOME)\include&quot;;&quot;$(JDK_HOME)\include\win32&quot;;&quot;$(ProjectDir)\..\..&quot;"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;TSK_JNI_EXPORTS;_CRT_SECURE_NO_WARNINGS"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				UseLibraryDependencyInputs="false"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine=""
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\bindings\java\jni\dataModel_SleuthkitJNI.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\bindings\java\jni\dataModel_SleuthkitJNI.h"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/tsk_loaddb/tsk_loaddb.vcproj b/win32/tsk_loaddb/tsk_loaddb.vcproj
deleted file mode 100755
index aebc63b56ad9d666c81403d7b1d270d50cd84265..0000000000000000000000000000000000000000
--- a/win32/tsk_loaddb/tsk_loaddb.vcproj
+++ /dev/null
@@ -1,253 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="tsk_loaddb"
-	ProjectGUID="{96AFC6D4-A3DC-44D4-8F55-F74E1D21798C}"
-	RootNamespace="tsk_loaddb"
-	TargetFrameworkVersion="196613"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="0"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				WarningLevel="3"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				EnableIntrinsicFunctions="true"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug_NoLibs|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="0"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				WarningLevel="3"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\autotools\tsk_loaddb.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/win32/tsk_recover/tsk_recover.vcproj b/win32/tsk_recover/tsk_recover.vcproj
deleted file mode 100755
index 8bbd75df62179162b26496ede9703f2620a4bea7..0000000000000000000000000000000000000000
--- a/win32/tsk_recover/tsk_recover.vcproj
+++ /dev/null
@@ -1,263 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="tsk_recover"
-	ProjectGUID="{06D707E5-68FF-4FC4-AFD0-C84584E32F47}"
-	RootNamespace="tsk_recover"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="196613"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				EnableIntrinsicFunctions="true"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libewf.lib zlib.lib"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="&quot;$(LIBEWF_HOME)\msvscpp\release&quot;"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug_NoLibs|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			ManagedExtensions="0"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="$(ProjectDir)\..\..\"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalLibraryDirectories=""
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\autotools\tsk_recover.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\tools\autotools\tsk_recover.h"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>